Initial contribution of Motorola MOTODEV tools code

This patch contains Eclipse plugins that complement the Android Development
Tools (ADT). The patch also contains the MOTODEV App Validator, a static
analysis tool for Android apps. App Validator is built as an Eclipse RCP
that runs on the command line, but also has an Eclipse IDE integration.  To
build the plugins, you will need Eclipse 3.7 or 4.2 with the PDE installed
with Java 6. An ant build file will come in a separate patch.

Change-Id: I8af2e5980eb24ed1c206bb2ddb9b3d733b9eff56
Signed-off-by: Eric Cloninger <dcp874@motorola.com>
diff --git a/makefile/common.properties b/makefile/common.properties
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/makefile/common.properties
diff --git a/src/features/basic/.project b/src/features/basic/.project
new file mode 100644
index 0000000..0f14b7f
--- /dev/null
+++ b/src/features/basic/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>com.motorola.studio.android.basic.feature</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.pde.FeatureBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.pde.FeatureNature</nature>

+	</natures>

+</projectDescription>

diff --git a/src/features/basic/build.properties b/src/features/basic/build.properties
new file mode 100644
index 0000000..705997e
--- /dev/null
+++ b/src/features/basic/build.properties
@@ -0,0 +1,3 @@
+bin.includes = feature.xml,\

+               feature.properties,\

+               eula.html

diff --git a/src/features/basic/feature.properties b/src/features/basic/feature.properties
new file mode 100644
index 0000000..e4e4060
--- /dev/null
+++ b/src/features/basic/feature.properties
@@ -0,0 +1,14 @@
+#################################################################################
+#
+# MOTODEV ANDROID Feature properties
+#
+#################################################################################
+
+
+feature.android.label = MOTODEV Studio for Android Core Development
+feature.android.provider.name = Motorola Mobility, Inc.
+feature.android.update.site.name = MOTODEV Studio for Android Product Updates
+
+feature.android.description = MOTODEV Studio for Android core features. Contains code development tools/utilities and database support for projects.
+feature.android.copyright = Copyright (C) 2012 The Android Open Source Project
+feature.android.license = place your license text here
\ No newline at end of file
diff --git a/src/features/basic/feature.xml b/src/features/basic/feature.xml
new file mode 100644
index 0000000..deda110
--- /dev/null
+++ b/src/features/basic/feature.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<feature

+      id="com.motorola.studio.android.basic.feature"

+      label="%feature.android.label"

+      version="5.0.0.qualifier"

+      provider-name="%feature.android.provider.name"

+      plugin="com.motorola.studio.android.common"

+      os="linux,macosx,win32"

+      ws="carbon,cocoa,gtk,win32"

+      arch="ppc,x86,x86_64">

+

+   <description>

+      %feature.android.description

+   </description>

+

+   <copyright>

+      %feature.android.copyright

+   </copyright>

+

+   <license url="">

+      %feature.android.license

+   </license>

+

+   <url>

+      <update label="%feature.android.update.site.name" url="https://studio-android.motodevupdate.com/android/4.0/basic/"/>

+   </url>

+

+   <requires>

+      <import feature="com.android.ide.eclipse.adt" version="15.0.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.datatools.enablement.sqlite.feature" version="1.8.0" match="greaterOrEqual"/>

+   </requires>

+

+   <plugin

+         id="com.motorola.studio.android.common"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.codeutils"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.translation"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.codesnippets"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.studio.android.db.core"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.studio.android.certmanager"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.studio.android.logger"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"/>

+

+</feature>

diff --git a/src/features/feature/.project b/src/features/feature/.project
new file mode 100644
index 0000000..2c4e29d
--- /dev/null
+++ b/src/features/feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>com.motorola.studio.android.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/src/features/feature/build.properties b/src/features/feature/build.properties
new file mode 100644
index 0000000..e99172f
--- /dev/null
+++ b/src/features/feature/build.properties
@@ -0,0 +1,8 @@
+bin.includes = feature.xml,\
+               feature.properties,\
+               eula.html
+
+root = absolute:${MAKEFILE}/legal_files/licenses/
+root.folder.MOTODEV = absolute:${MAKEFILE}/legal_files/motodev_site
+root.linux.gtk.x86 = absolute:file:${GIT_REPOSITORY_PATH}/android/src/plugins/product/res/motodev_icon.xpm
+root.linux.gtk.x86_64 = absolute:file:${GIT_REPOSITORY_PATH}/android/src/plugins/product/res/motodev_icon.xpm
\ No newline at end of file
diff --git a/src/features/feature/feature.properties b/src/features/feature/feature.properties
new file mode 100644
index 0000000..c109199
--- /dev/null
+++ b/src/features/feature/feature.properties
@@ -0,0 +1,15 @@
+#################################################################################
+#
+# MOTODEV ANDROID Feature properties
+#
+#################################################################################
+
+
+feature.android.label=MOTODEV Studio for Android Feature
+feature.android.provider.name=Motorola Mobility, Inc.
+feature.android.update.site.name=MOTODEV Studio for Android Product Updates
+
+feature.android.description=MOTODEV Studio for Android Product.\
+\ NOTE: We recommend that you install all MOTODEV Studio for Android components by selecting the top-most check box. This allows all features to update properly when new releases are made available.
+feature.android.copyright=Copyright (C) 2012 The Android Open Source Project
+feature.android.license=place your license text here
\ No newline at end of file
diff --git a/src/features/feature/feature.xml b/src/features/feature/feature.xml
new file mode 100644
index 0000000..c348f9d
--- /dev/null
+++ b/src/features/feature/feature.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<feature

+      id="com.motorola.studio.android.feature"

+      label="%feature.android.label"

+      version="5.0.0.qualifier"

+      provider-name="%feature.android.provider.name"

+      plugin="com.motorola.studio.android.product"

+      os="linux,macosx,win32"

+      ws="carbon,cocoa,gtk,win32"

+      arch="ppc,x86,x86_64">

+

+   <description>

+      %feature.android.description

+   </description>

+

+   <copyright>

+      %feature.android.copyright

+   </copyright>

+

+   <license url="">

+      %feature.android.license

+   </license>

+

+   <url>

+      <update label="MOTODEV Studio for Android Updates" url="https://studio-android.motodevupdate.com/android/4.1/"/>

+   </url>

+

+   <includes

+         id="com.motorola.studio.android.basic.feature"

+         version="0.0.0"/>

+

+   <requires>

+      <import feature="biz.junginger.rss.eclipse.RssPlugin.feature" version="1.0.0" match="equivalent"/>

+      <import feature="com.android.ide.eclipse.adt" version="15.0.0" match="greaterOrEqual"/>

+      <import feature="com.android.ide.eclipse.hierarchyviewer" version="15.0.0" match="greaterOrEqual"/>

+      <import feature="com.android.ide.eclipse.ddms" version="15.0.0" match="greaterOrEqual"/>

+      <import feature="com.android.ide.eclipse.traceview" version="15.0.0" match="greaterOrEqual"/>

+      <import feature="com.motorolamobility.preflighting.ui.feature" version="1.0.0" match="greaterOrEqual"/>

+      <import feature="com.motorolamobility.preflighting.feature" version="1.0.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.datatools.enablement.sqlite.feature" version="1.8.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.datatools.common.doc.user" version="1.8.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.datatools.sqltools.doc.user" version="1.8.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.datatools.connectivity.doc.user" version="1.8.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.datatools.doc.user" version="1.8.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.gef" version="3.6.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.jdt" version="3.6.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.mat.feature" version="1.0.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.mat.chart.feature" version="1.0.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.sequoyah.device.feature" version="2.0.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.sequoyah.localization.tools.feature" version="2.1.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.sequoyah.localization.android.feature" version="2.0.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.wst.common.fproj" version="3.2.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.wst.jsdt.feature" version="1.2.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.wst.server_adapters.feature" version="3.2.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.wst.web_ui.feature" version="3.2.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.wst.xml_core.feature" version="3.2.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.wst.xml_ui.feature" version="3.2.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.wst.xsl.feature" version="1.1.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.platform" version="3.6.0" match="greaterOrEqual"/>

+      <import feature="net.certiv.proguarddt.feature" version="0.8.0" match="greaterOrEqual"/>

+      <import feature="org.eclipse.epp.mpc" version="1.1.1" match="greaterOrEqual"/>

+   </requires>

+

+   <plugin

+         id="com.motorola.studio.android"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.emulator"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.launch"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.packaging.ui"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.handset"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.tooldocs.studio.helpbase"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.remote"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.macosx"

+         os="macosx"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         fragment="true"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.linux.x86"

+         os="linux"

+         arch="x86"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         fragment="true"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.linux.x86_64"

+         os="linux"

+         arch="x86_64"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         fragment="true"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.win32.x86"

+         os="win32"

+         ws="win32"

+         arch="x86"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         fragment="true"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.win32.x86_64"

+         os="win32"

+         ws="win32"

+         arch="x86_64"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         fragment="true"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.mat"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.devices.services"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.videos"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.studio.android.db.devices"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.installer"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.studio.android.logger.collector"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+</feature>

diff --git a/src/features/feature/p2.inf b/src/features/feature/p2.inf
new file mode 100644
index 0000000..feb4ba9
--- /dev/null
+++ b/src/features/feature/p2.inf
@@ -0,0 +1 @@
+instructions.configure=org.eclipse.equinox.p2.touchpoint.eclipse.removeProgramArg(programArg:--launcher.XXMaxPermSize);org.eclipse.equinox.p2.touchpoint.eclipse.removeProgramArg(programArg:256m);org.eclipse.equinox.p2.touchpoint.eclipse.addProgramArg(programArg:--launcher.XXMaxPermSize);org.eclipse.equinox.p2.touchpoint.eclipse.addProgramArg(programArg:512m);org.eclipse.equinox.p2.touchpoint.eclipse.removeJvmArg(jvmArg:-Xmx256m);org.eclipse.equinox.p2.touchpoint.eclipse.addJvmArg(jvmArg:-Xmx512m);org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/LanguagePacks);
\ No newline at end of file
diff --git a/src/features/preflighting.sdk/.project b/src/features/preflighting.sdk/.project
new file mode 100644
index 0000000..1683e54
--- /dev/null
+++ b/src/features/preflighting.sdk/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>com.motorolamobility.preflighting.sdk.feature</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.pde.FeatureBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.pde.FeatureNature</nature>

+	</natures>

+</projectDescription>

diff --git a/src/features/preflighting.sdk/build.properties b/src/features/preflighting.sdk/build.properties
new file mode 100644
index 0000000..2a0da75
--- /dev/null
+++ b/src/features/preflighting.sdk/build.properties
@@ -0,0 +1,3 @@
+bin.includes = feature.xml,\
+               feature.properties,\
+               eula.html
\ No newline at end of file
diff --git a/src/features/preflighting.sdk/feature.properties b/src/features/preflighting.sdk/feature.properties
new file mode 100644
index 0000000..15b57d5
--- /dev/null
+++ b/src/features/preflighting.sdk/feature.properties
@@ -0,0 +1,13 @@
+#################################################################################
+#
+# MOTODEV Preflighting Feature properties
+#
+#################################################################################
+
+
+feature.preflighting.label= MOTODEV Studio App Validator SDK
+feature.preflighting.provider.name=Motorola Mobility, Inc.
+feature.preflighting.description=MOTODEV Studio App Validator SDK.\
+\ NOTE: We recommend that you install all MOTODEV Studio for Android components by selecting the top-most check box. This allows all features to update properly when new releases are made available.
+feature.preflighting.copyright=Copyright (C) 2012 The Android Open Source Project
+feature.preflighting.license=place your license text here
\ No newline at end of file
diff --git a/src/features/preflighting.sdk/feature.xml b/src/features/preflighting.sdk/feature.xml
new file mode 100644
index 0000000..3e37553
--- /dev/null
+++ b/src/features/preflighting.sdk/feature.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<feature

+      id="com.motorolamobility.preflighting.sdk.feature"

+      label="%feature.preflighting.label"

+      version="2.0.0.qualifier"

+      provider-name="%feature.preflighting.provider.name"

+      plugin="com.motorolamobility.preflighting.sdk">

+

+   <description>

+      %feature.preflighting.description

+   </description>

+

+   <copyright>

+      %feature.preflighting.copyright

+   </copyright>

+

+   <license url="">

+      %feature.preflighting.license

+   </license>

+

+   <requires>

+      <import feature="org.eclipse.pde" version="3.6.0" match="greaterOrEqual"/>

+   </requires>

+

+   <plugin

+         id="com.motorolamobility.preflighting.sdk"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+</feature>

diff --git a/src/features/preflighting.ui/.project b/src/features/preflighting.ui/.project
new file mode 100644
index 0000000..2ee5ada
--- /dev/null
+++ b/src/features/preflighting.ui/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>com.motorolamobility.preflighting.ui.feature</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.pde.FeatureBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.pde.FeatureNature</nature>

+	</natures>

+</projectDescription>

diff --git a/src/features/preflighting.ui/build.properties b/src/features/preflighting.ui/build.properties
new file mode 100644
index 0000000..705997e
--- /dev/null
+++ b/src/features/preflighting.ui/build.properties
@@ -0,0 +1,3 @@
+bin.includes = feature.xml,\

+               feature.properties,\

+               eula.html

diff --git a/src/features/preflighting.ui/feature.properties b/src/features/preflighting.ui/feature.properties
new file mode 100644
index 0000000..c854455
--- /dev/null
+++ b/src/features/preflighting.ui/feature.properties
@@ -0,0 +1,13 @@
+#################################################################################
+#
+# MOTODEV Preflighting Feature properties
+#
+#################################################################################
+
+
+feature.preflighting.label= MOTODEV Studio App Validator Tool UI Integration
+feature.preflighting.provider.name=Motorola Mobility, Inc.
+feature.preflighting.description=MOTODEV Studio App Validator Tool UI Integration.\
+\ NOTE: We recommend that you install all MOTODEV Studio for Android components by selecting the top-most check box. This allows all features to update properly when new releases are made available.
+feature.preflighting.copyright=Copyright (C) 2012 The Android Open Source Project
+feature.preflighting.license=Place your license text here
\ No newline at end of file
diff --git a/src/features/preflighting.ui/feature.xml b/src/features/preflighting.ui/feature.xml
new file mode 100644
index 0000000..624b966
--- /dev/null
+++ b/src/features/preflighting.ui/feature.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<feature

+      id="com.motorolamobility.preflighting.ui.feature"

+      label="%feature.preflighting.label"

+      version="2.0.0.qualifier"

+      provider-name="%feature.preflighting.provider.name"

+      plugin="com.motorolamobility.preflighting.ui">

+

+   <description>

+      %feature.preflighting.description

+   </description>

+

+   <copyright>

+      %feature.preflighting.copyright

+   </copyright>

+

+   <license url="">

+      %feature.preflighting.license

+   </license>

+

+   <requires>

+      <import feature="com.motorolamobility.preflighting.feature" version="1.0.0" match="greaterOrEqual"/>

+      <import feature="com.motorolamobility.preflighting.sdk.feature" version="1.0.0" match="greaterOrEqual"/>

+      <import feature="com.android.ide.eclipse.adt" version="15.0.0" match="greaterOrEqual"/>

+      <import plugin="com.motorola.studio.android.common" version="4.0.0" match="greaterOrEqual"/>

+      <import plugin="com.motorolamobility.studio.android.logger" version="4.1.0" match="greaterOrEqual"/>

+   </requires>

+

+   <plugin

+         id="com.motorolamobility.preflighting.ui"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.preflighting.tooldocs.validator.helpbase"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorola.studio.android.common"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.preflighting.checkers.ui"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.preflighting.samplechecker.findviewbyid.ui"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.studio.android.logger"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"/>

+

+</feature>

diff --git a/src/features/preflighting/.project b/src/features/preflighting/.project
new file mode 100644
index 0000000..0e4d842
--- /dev/null
+++ b/src/features/preflighting/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>com.motorolamobility.preflighting.feature</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.pde.FeatureBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.pde.FeatureNature</nature>

+	</natures>

+</projectDescription>

diff --git a/src/features/preflighting/build.properties b/src/features/preflighting/build.properties
new file mode 100644
index 0000000..c4e9243
--- /dev/null
+++ b/src/features/preflighting/build.properties
@@ -0,0 +1,16 @@
+bin.includes = feature.xml,\
+               feature.properties,\
+               eula.html
+               
+root = absolute:${GIT_REPOSITORY_PATH}/android/makefile/legal_files/appValidator_licenses/
+root.folder.devices = absolute:${GIT_REPOSITORY_PATH}/android/src/plugins/preflighting.core/devices/
+root.win32.win32.x86 = absolute:${GIT_REPOSITORY_PATH}/android/makefile/preflighting/win32,absolute:file:${GIT_REPOSITORY_PATH}/android/src/plugins/preflighting.core/configuration_files/appvalidator.cfg
+root.win32.win32.x86_64 = absolute:${GIT_REPOSITORY_PATH}/android/makefile/preflighting/win32,absolute:file:${GIT_REPOSITORY_PATH}/android/src/plugins/preflighting.core/configuration_files/appvalidator.cfg
+root.linux.gtk.x86 = absolute:${GIT_REPOSITORY_PATH}/android/makefile/preflighting/linux,absolute:file:${GIT_REPOSITORY_PATH}/android/src/plugins/preflighting.core/configuration_files/appvalidator.cfg
+root.linux.gtk.x86_64 = absolute:${GIT_REPOSITORY_PATH}/android/makefile/preflighting/linux,absolute:file:${GIT_REPOSITORY_PATH}/android/src/plugins/preflighting.core/configuration_files/appvalidator.cfg
+root.macosx.cocoa.x86 = absolute:${GIT_REPOSITORY_PATH}/android/makefile/preflighting/macosx,absolute:file:${GIT_REPOSITORY_PATH}/android/src/plugins/preflighting.core/configuration_files/macosx_x86/appvalidator.cfg
+root.macosx.cocoa.x86_64 = absolute:${GIT_REPOSITORY_PATH}/android/makefile/preflighting/macosx,absolute:file:${GIT_REPOSITORY_PATH}/android/src/plugins/preflighting.core/configuration_files/appvalidator.cfg
+root.linux.gtk.x86.permissions.755 = appvalidator.sh
+root.linux.gtk.x86_64.permissions.755 = appvalidator.sh
+root.macosx.cocoa.x86.permissions.755 = appvalidator.sh
+root.macosx.cocoa.x86_64.permissions.755 = appvalidator.sh
\ No newline at end of file
diff --git a/src/features/preflighting/feature.properties b/src/features/preflighting/feature.properties
new file mode 100644
index 0000000..a97c6f3
--- /dev/null
+++ b/src/features/preflighting/feature.properties
@@ -0,0 +1,14 @@
+#################################################################################
+#
+# MOTODEV Preflighting Feature properties
+#
+#################################################################################
+
+
+feature.preflighting.label= MOTODEV Studio App Validator Tool
+feature.preflighting.provider.name=Motorola Mobility, Inc.
+
+feature.preflighting.description=MOTODEV Studio App Validator Tool.\
+\ NOTE: We recommend that you install all MOTODEV Studio for Android components by selecting the top-most check box. This allows all features to update properly when new releases are made available.
+feature.preflighting.copyright=Copyright (C) 2012 The Android Open Source Project
+feature.preflighting.license=place your license text here
\ No newline at end of file
diff --git a/src/features/preflighting/feature.xml b/src/features/preflighting/feature.xml
new file mode 100644
index 0000000..c247663
--- /dev/null
+++ b/src/features/preflighting/feature.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<feature

+      id="com.motorolamobility.preflighting.feature"

+      label="%feature.preflighting.label"

+      version="2.0.0.qualifier"

+      provider-name="%feature.preflighting.provider.name"

+      plugin="com.motorolamobility.preflighting.core">

+

+   <description>

+      %feature.preflighting.description

+   </description>

+

+   <copyright>

+      %feature.preflighting.copyright

+   </copyright>

+

+   <license url="">

+      %feature.preflighting.license

+   </license>

+

+   <plugin

+         id="com.motorolamobility.preflighting"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.preflighting.core"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.preflighting.checkers"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.preflighting.samplechecker.androidlabel"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="com.motorolamobility.preflighting.samplechecker.findviewbyid"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+</feature>

diff --git a/src/help/appvalidator_help/ReadMe.txt b/src/help/appvalidator_help/ReadMe.txt
new file mode 100644
index 0000000..d9a854b
--- /dev/null
+++ b/src/help/appvalidator_help/ReadMe.txt
@@ -0,0 +1,13 @@
+Setting up to build:

+1. Obtain the DITA Open Toolkit from http://dita-ot.sourceforge.net. Install it into the tools folder. Note that there is already a ditaot plugin in this folder; that plugin needs to reside in the plugins folder within your ditaot installation.

+2. Obtain DITAReports from http://dita-ot.sourceforge.net/doc/ot-userguide131/ditaotug131-18042007-tools.zip. Install it so that you wind up with a ditareports folder inside tools (parallel to the ditaot folder).

+3. Obtain Linklint from http://www.linklint.org and install it into the tools folder, so that you wind up with a linklint folder inside tools. You should now have three folders inside the tools folder: "ditaot", "ditareports", and "linklint", and within the plugins folder inside ditaot you should see cshelp (part of ditaot) and com.mot.mdb.deved.xhtml. If the cshelp plugin isn't there, you'll need to obtain it from http://dita-ot.sourceforge.net and install it separately.

+

+Instructions for building the online help on Mac OS X:

+

+1. In Finder, double-click docs_dita/studio_help/tools/ditaot/startcmd_mac.command. The terminal window will open and the environment will be set up.

+2. In the terminal window, do:

+	cd ../../etc/buildfiles/android_appvalidator-help

+	ant all -f build.xml

+	

+There are Windows batch files (in tools/ditaot) that can be used in place of step 1 on a Windows machine. 

diff --git a/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/build.properties b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/build.properties
new file mode 100644
index 0000000..dc4e940
--- /dev/null
+++ b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/build.properties
@@ -0,0 +1,6 @@
+# Set version number for all plug-ins
+plugin-version=1.1.0.release
+# Set build number for all plug-in zip files
+build-number=01.01.00i_b001
+# Generate a ditamap debugging report
+report=true
diff --git a/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/build.xml b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/build.xml
new file mode 100644
index 0000000..fb9ec59
--- /dev/null
+++ b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/build.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>

+<project name="android_appvalidator-help" default="all" basedir=".">

+

+  <!--Properties unique to this build (others are specified in ../build_lib.xml)-->

+

+  <loadproperties srcfile="build.properties"/>

+

+  <!--Location of output folder where each plug-in's folder goes-->

+  <property name="out-projdir" value="${basedir}/../../../out/android_appvalidator-help"/>

+  <property name="out-basedir" value="${out-projdir}/product"/>

+  <property name="out-jardir" value="${out-basedir}/jars"/>

+  <!--Name of plug-in's TOC file (without extension)-->

+  <property name="toc-filenoext" value="main"/>

+  <!--Path of file containing context extension points for context-sensitive help-->

+  <property name="context-file" value="${basedir}/context_extension_points.xml"/>

+  <property name="report" value="false"/>

+

+  <import file="../build_lib.xml"/>

+

+  <target name="all" depends="plugins"/>

+

+  <target name="plugins" depends="clean" description="Build App Validator help plug-ins.">

+

+    <mkdir dir="${out-jardir}"/>

+

+    <!-- Call build-topics-plugin macro to build help for each ditamap. -->

+    <build-topics-plugin map="validation_editor.ditamap" ditaval="${basedir}/filter_appvalidator.ditaval"

+      hdr="${basedir}/../../resources/hdr-none.xml">

+      <build-cshelp cshelp-topic="${src-dir}/topics/cs_app-validator.dita"

+        context-out-dir="${@{map}-plugin-temp-dir}/contexts" ditaval="${basedir}/filter_appvalidator.ditaval"

+        context-temp-dir="${@{map}-plugin-temp-dir}_contexts"

+        plugin-out-dir="${out-basedir}/${@{map}-plugin-id}_${plugin-version}"/>

+      <zip destfile="${out-jardir}/${@{map}-plugin-id}_${plugin-version}.jar"

+        basedir="${out-basedir}/${@{map}-plugin-id}_${plugin-version}"/>

+      <report map="@{map}"/>

+      <checklinks dir="${out-basedir}/${@{map}-plugin-id}_${plugin-version}" map="@{map}"/>

+      <!-- Create zip file from jar so zip filename includes build number -->

+      <zip destfile="${out-jardir}/android_appvalidator-help_${build-number}.zip">

+        <fileset dir="${out-jardir}" includes="${@{map}-plugin-id}_${plugin-version}.jar"/>

+      </zip>

+    </build-topics-plugin>

+

+  </target>

+

+

+  <target name="releasenotes">

+    <property name="mapfile" value="android_studio-release-notes.ditamap"/>

+    <basename property="mapname" file="${mapfile}" suffix=".ditamap"/>

+    <property name="relnote-out-dir" value="${out-projdir}/web/${mapname}"/>

+    <delete dir="${relnote-out-dir}" quiet="yes"/>

+    <!-- Call DITA-OT build script-->

+    <ant antfile="${dita.dir}/build.xml" target="init" description="Call DITA OT build script">

+      <property name="transtype" value="xhtml"/>

+      <property name="args.input" value="${src-dir}/${mapfile}"/>

+      <property name="dita.input.valfile" value="${basedir}/filter_appvalidator.ditaval"/>

+      <property name="output.dir" value="${relnote-out-dir}"/>

+      <property name="dita.temp.dir" value="${temp-dir}/${mapname}"/>

+      <property name="args.logdir" value="${log-dir}"/>

+    </ant>

+

+    <deleteflagimages output-dir="${relnote-out-dir}"/>

+    <replacecss output-dir="${relnote-out-dir}"/>

+

+  </target>

+

+</project>

diff --git a/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/context_extension_points.xml b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/context_extension_points.xml
new file mode 100644
index 0000000..ce1f058
--- /dev/null
+++ b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/context_extension_points.xml
@@ -0,0 +1,5 @@
+
+<!--Context extension point for all Sequoyah context-sensitive help-->
+<extension point="org.eclipse.help.contexts">
+  <contexts file="cs_app-validator.xml" plugin="com.motorolamobility.preflighting.ui"/>
+</extension>
diff --git a/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/enable-win32.xml b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/enable-win32.xml
new file mode 100644
index 0000000..980649c
--- /dev/null
+++ b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/enable-win32.xml
@@ -0,0 +1,6 @@
+

+          <enablement>

+            <or>

+              <systemTest property="osgi.os" value="win32"/>

+            </or>

+          </enablement>
\ No newline at end of file
diff --git a/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/filter_appvalidator.ditaval b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/filter_appvalidator.ditaval
new file mode 100644
index 0000000..01cf654
--- /dev/null
+++ b/src/help/appvalidator_help/etc/buildfiles/android_appvalidator-help/filter_appvalidator.ditaval
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Filter file for App Validator help. -->
+<val>
+  <prop att="product" val="android-studio" action="include"/>
+  <prop att="product" val="javame-studio" action="exclude"/>
+  <prop att="product" val="javame-sdk" action="exclude"/>
+  <prop att="product" val="webui" action="exclude"/>
+</val>
diff --git a/src/help/appvalidator_help/etc/buildfiles/build_lib.xml b/src/help/appvalidator_help/etc/buildfiles/build_lib.xml
new file mode 100644
index 0000000..4c6efbb
--- /dev/null
+++ b/src/help/appvalidator_help/etc/buildfiles/build_lib.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="utf-8"?>

+<project name="lib" basedir=".">

+

+  <taskdef resource="net/sf/antcontrib/antlib.xml"/>

+

+  <!--Location of DITA Open Toolkit-->

+  <property name="dita.dir" value="${basedir}/../../../tools/ditaot"/>

+  <!--Location of DITA source files to build-->

+  <property name="src-dir" value="${basedir}/../../../src"/>

+  <!--Location of temp folder-->

+  <property name="temp-dir" value="${basedir}/temp"/>

+  <!--Location of logs folder-->

+  <property name="log-dir" value="${basedir}/logs"/>

+  <!--Path of file containing context extension points for context-sensitive help-->

+  <property name="context-file" value="${basedir}/context_extension_points.xml"/>

+  <!--If present, load file containing Eclipse enablement elements for Windows-only content.-->

+  <available file="enable-win32.xml" property="enablement-present"/>

+  <if>

+    <isset property="enablement-present"/>

+    <then>

+      <loadfile property="enablement-win32" srcfile="enable-win32.xml"/>

+    </then>

+  </if>

+

+  <!--  References ANT extension that provides Perl 5 compatible regex functionality.-->

+  <property name="ant.regexp.regexpimpl" value="org.apache.tools.ant.util.regexp.JakartaOroRegexp"/>

+

+  <!--Import DITA OT build file-->

+  <import file="${dita.dir}/build.xml"/>

+

+  <target name="clean" description="Delete all generated files (out, temp, and logs folders)">

+    <delete dir="${out-projdir}" quiet="yes"/>

+    <delete dir="${log-dir}" quiet="yes"/>

+    <delete dir="${temp-dir}" quiet="yes"/>

+    <delete file="${basedir}/ditaot_batch.log"/>

+  </target>

+

+  <macrodef name="build-topics-plugin" description="Build a DevEd Eclipse help plug-in">

+    <attribute name="map" default="NOT_SET"/>

+    <attribute name="ditaval" default="NOT_SET"/>

+    <attribute name="hdr" default="NOT_SET"/>

+    <attribute name="provider" default="Motorola Mobility, Inc."/>

+    <element name="build-callers-tasks" implicit="yes" optional="yes"/>

+    <sequential>

+      <echo/>

+      <echo>=============================================================================</echo>

+      <echo>START build-topics-plugin for @{map}</echo>

+      <echo>Ditaval file: "@{ditaval}"</echo>

+      <property name="@{map}-path" value="${src-dir}/@{map}"/>

+      <!-- Reads ditamap into ANT XML properties so that build script can use same map ID as plug-in ID everywhere. -->

+      <xmlproperty file="${@{map}-path}" prefix="@{map}"/>

+      <property name="@{map}-plugin-id" value="${@{map}.map(id)}"/>

+      <echo>Plug-in ID: ${@{map}-plugin-id}</echo>

+      <property name="@{map}-plugin-out-dir"

+        value="${out-basedir}/${@{map}-plugin-id}_${plugin-version}"/>

+      <property name="@{map}-plugin-temp-dir"

+        value="${temp-dir}/${@{map}-plugin-id}_${plugin-version}"/>

+      <!-- Get copyright info from map file -->

+      <property name="@{map}-copyryear" value="${@{map}.map.topicmeta.copyright.copyryear(year)}"/>

+      <property name="@{map}-copyrholder" value="${@{map}.map.topicmeta.copyright.copyrholder}"/>

+      <echo>Copyright date: ${@{map}-copyryear}</echo>

+      <echo>Copyright holder: ${@{map}-copyrholder}</echo>

+      <!--Delete output folder before building so no unnecessary files from previous build are left.-->

+      <delete dir="${@{map}-plugin-out-dir}" quiet="yes"/>

+

+      <!-- Call DITA-OT build script-->

+      <ant antfile="${dita.dir}/build.xml" target="init" description="Call DITA OT build script">

+        <property name="transtype" value="eclipsehelp"/>

+        <property name="args.input" value="${@{map}-path}"/>

+        <property name="dita.input.valfile" value="@{ditaval}"/>

+        <property name="args.hdr" value="@{hdr}"/>

+        <property name="output.dir" value="${@{map}-plugin-out-dir}"/>

+        <property name="dita.temp.dir" value="${@{map}-plugin-temp-dir}"/>

+        <property name="args.logdir" value="${log-dir}"/>

+        <!-- Sets "Bundle-Version" in meta-mf/manifest.mf, the version of this help plug-in. -->

+        <property name="args.eclipse.version" value="${plugin-version}"/>

+        <property name="args.eclipse.provider" value="@{provider}"/>

+        <property name="args.eclipsehelp.toc" value="${toc-filenoext}"/>

+      </ant>

+

+      <!--Change filename of TOC file from ditamapname.xml to specified.-->

+      <basename property="@{map}-filenoext" file="@{map}" suffix=".ditamap"/>

+      <move file="${@{map}-plugin-out-dir}/${@{map}-filenoext}.xml"

+        tofile="${@{map}-plugin-out-dir}/${toc-filenoext}.xml"/>

+

+      <deleteflagimages output-dir="${@{map}-plugin-out-dir}"/>

+      <replacecss output-dir="${@{map}-plugin-out-dir}"/>

+

+      <!--Replace special anchors in TOC with Eclipse enablement elements-->

+      <!--Set anchor id="eclipse-enable-win32onlyXXX" for topics that should appear in TOC only in Windows.-->

+      <!--XXX can be anything (required only to make anchor id unique in ditamap file.-->

+      <if>

+        <isset property="enablement-present"/>

+        <then>

+          <replaceregexp file="${@{map}-plugin-out-dir}/${toc-filenoext}.xml"

+            match="\s*?&lt;anchor\s+id\s*?=\s*?&quot;eclipse-enable-win32only.*?&quot;\s*?/&gt;"

+            replace="${enablement-win32}" flags="gi"/>

+        </then>

+      </if>

+

+      <!--Move debugging files to temp folder.-->

+      <!--<move file="${@{map}-plugin-out-dir}/dita.list" todir="${@{map}-plugin-temp-dir}"/>

+        <move file="${@{map}-plugin-out-dir}/dita.xml.properties" todir="${@{map}-plugin-temp-dir}"/>-->

+

+      <!--Perform caller's implicit tasks here-->

+      <build-callers-tasks/>

+

+      <echo>END build-topics-plugin for @{map}</echo>

+    </sequential>

+  </macrodef>

+

+

+  <macrodef name="build-cshelp" description="Build cshelp for a DevEd Eclipse help plug-in">

+    <attribute name="cshelp-topic" default="NOT_SET"/>

+    <attribute name="ditaval" default="NOT_SET"/>

+    <attribute name="context-out-dir" default="NOT_SET"/>

+    <attribute name="context-temp-dir" default="NOT_SET"/>

+    <attribute name="plugin-out-dir" default="NOT_SET"/>

+    <element name="build-callers-tasks" implicit="yes" optional="yes"/>

+    <sequential>

+      <basename property="@{cshelp-topic}-filenoext" file="@{cshelp-topic}" suffix=".dita"/>

+      <echo/>

+      <echo>======================================================</echo>

+      <echo>START build-cshelp for ${@{cshelp-topic}-filenoext}</echo>

+      <!-- Call DITA-OT build script to build cshelp topics using special XSL-->

+      <ant antfile="${dita.dir}/build.xml" target="init">

+        <property name="args.input" value="@{cshelp-topic}"/>

+        <property name="dita.input.valfile" value="@{ditaval}"/>

+        <property name="output.dir" value="@{context-out-dir}"/>

+        <property name="dita.temp.dir" value="@{context-temp-dir}"/>

+        <property name="args.xsl" value="${dita.dir}/plugins/cshelp/xsl/dit2context.xsl"/>

+        <property name="dita.extname" value=".dita"/>

+        <property name="transtype" value="xhtml"/>

+        <property name="args.outext" value="xml"/>

+      </ant>

+      <!-- Add "topics/" to start of each href so that contexts link to topics in "topics" subfolder-->

+      <replaceregexp file="@{context-out-dir}/${@{cshelp-topic}-filenoext}.xml"

+        match="&lt;topic(\s+)href=&#34;" replace="&lt;topic\1href=&#34;topics/"

+        byline="true"/>

+      <!-- Move context XML file to this plug-in's output folder-->

+      <move file="@{context-out-dir}/${@{cshelp-topic}-filenoext}.xml" todir="@{plugin-out-dir}"/>

+      <!--Load context ext points file, then add it to the end of the plugin.xml file-->

+      <loadfile property="context-ext-pts" srcfile="${context-file}"/>

+      <replaceregexp file="@{plugin-out-dir}/plugin.xml" match="&lt;/plugin&gt;"

+        replace="${context-ext-pts}&lt;/plugin&gt;" byline="yes"/>

+

+      <!--Perform caller's implicit tasks here-->

+      <build-callers-tasks/>

+

+      <echo>END build-cshelp for ${@{cshelp-topic}-filenoext}</echo>

+    </sequential>

+  </macrodef>

+

+  <macrodef name="report" description="Generate debugging report for a ditamap">

+    <attribute name="map" default="NOT_SET"/>

+    <sequential>

+      <if>

+        <istrue value="${report}"/>

+        <then>

+          <exec dir="${basedir}" executable="php" output="${log-dir}/@{map}_debug-report.txt"

+            os="Mac OS X" failifexecutionfails="false" logerror="true">

+            <arg file="${dita.dir}/../ditareports/src/ditadebug.php"/>

+            <arg file="${src-dir}/@{map}"/>

+          </exec>

+        </then>

+      </if>

+    </sequential>

+  </macrodef>

+

+  <macrodef name="checklinks" description="Check links in HTML output and generate report">

+    <attribute name="dir" default="NOT_SET"/>

+    <attribute name="map" default="NOT_SET"/>

+    <sequential>

+      <!--Run linklint if report="true" and if OS is Mac or a Unix-like OS, which ship with Perl.-->

+      <if>

+        <and>

+          <istrue value="${report}"/>

+          <or>

+            <os family="mac"/>

+            <os family="unix"/>

+          </or>

+        </and>

+        <then>

+          <echo/>

+          <echo>------------------------------------------------------</echo>

+          <echo message="linklint:  checking links in output"/>

+          <exec dir="${basedir}" executable="perl" os="Mac OS X" failifexecutionfails="false"

+            logerror="true">

+            <arg file="${dita.dir}/../linklint/src/linklint"/>

+            <arg value="-root"/>

+            <arg path="@{dir}"/>

+            <arg line="/@ -no_warn_index -htmlonly -quiet"/>

+            <arg value="-doc"/>

+            <arg path="${log-dir}/@{map}_link-report"/>

+          </exec>

+          <echo/>

+          <echo>See index.html in logs directory for full link report:  ${log-dir}/@{map}_link-report</echo>

+          <echo>------------------------------------------------------</echo>

+          <echo/>

+        </then>

+      </if>

+    </sequential>

+  </macrodef>

+

+  <macrodef name="deleteflagimages" description="Delete flagging images inserted by DITA-OT">

+    <!--Delete flagging images inserted by DITA-OT because a ditaval file is specified-->

+    <attribute name="output-dir" default="NOT_SET"/>

+    <sequential>

+      <delete file="@{output-dir}/delta.gif"/>

+      <delete file="@{output-dir}/deltaend.gif"/>

+    </sequential>

+  </macrodef>

+

+  <macrodef name="replacecss" description="Replace default CSS">

+    <!--Delete extraneous CSS from output folder and copy Motorola Dev Ed CSS to output folder..-->

+    <attribute name="output-dir" default="NOT_SET"/>

+    <sequential>

+      <delete file="@{output-dir}/commonrtl.css"/>

+      <copy file="${basedir}/../../resources/commonltr.css" todir="@{output-dir}" overwrite="yes"/>

+    </sequential>

+  </macrodef>

+

+</project>

diff --git a/src/help/appvalidator_help/etc/resources/commonltr.css b/src/help/appvalidator_help/etc/resources/commonltr.css
new file mode 100644
index 0000000..ab4917c
--- /dev/null
+++ b/src/help/appvalidator_help/etc/resources/commonltr.css
@@ -0,0 +1,217 @@
+/*

+ | This file is part of the DITA Open Toolkit project hosted on 

+ | Sourceforge.net. See the accompanying license.txt file for 

+ | applicable licenses.

+*/

+

+/*

+ | (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved.

+ */

+ 

+ 

+.hdr-confidential {

+ background-color: #dddddd;

+ float: right;

+ padding: 0.5em;

+}

+

+.help_breadcrumbs {

+ font: message-box;

+ margin-bottom: 10px;

+}

+ 

+body {

+ color: black;

+ background-color: white;

+ font-family: Arial, sans-serif;

+ font-size: 0.8em;

+ margin-left: 10px;

+ margin-right: 2em;

+ margin-bottom: 15px;

+ margin-top: 4px;

+}

+

+.unresolved { background-color: skyblue; }

+.noTemplate { background-color: yellow; }

+

+.base { background-color: #ffffff; }

+

+/* Add space for top level topics */

+.nested0 { margin-top: 0em;}

+.nested1 { margin-top: 3em; margin-left: 2%; }

+.nested2 { margin-left: 2%;}

+

+div.glossentry { margin-top: 1em; }

+div.glossentry .topictitle2 { border-top: none; }

+

+/* div with class=p is used for paragraphs that contain blocks, to keep the XHTML valid */

+.p {margin-top: 1em}

+

+/* Default of italics to set apart figure captions */

+.figcap { font-style: italic }

+.figdesc { font-style: normal }

+

+/* Use @frame to create frames on figures */

+.figborder { border-style: solid; padding-left : 3px; border-width : 2px; padding-right : 3px; margin-top: 1em; border-color : Silver;}

+.figsides { border-left : 2px solid; padding-left : 3px; border-right : 2px solid; padding-right : 3px; margin-top: 1em; border-color : Silver;}

+.figtop { border-top : 2px solid; margin-top: 1em; border-color : Silver;}

+.figbottom { border-bottom : 2px solid; border-color : Silver;}

+.figtopbot { border-top : 2px solid; border-bottom : 2px solid; margin-top: 1em; border-color : Silver;}

+

+/* Most link groups are created with <div>. Ensure they have space before and after. */

+.familylinks { margin-top: 2em;  }

+.ullinks { list-style-type: none; margin-top: 2em;  margin-left: 0.5em; padding-left: 0.5em; }

+.ulchildlink { margin-top: 1em; margin-bottom: 1em }

+.olchildlink { margin-top: 1em; margin-bottom: 1em }

+.linklist { margin-bottom: 1em }

+.linklistwithchild { margin-left: 1.5em; margin-bottom: 1em  }

+.sublinklist { margin-left: 1.5em; margin-bottom: 1em  }

+.relconcepts { margin-top: 2em; margin-bottom: 1em }

+.reltasks { margin-top: 2em; margin-bottom: 1em }

+.relref { margin-top: 2em; margin-bottom: 1em }

+.relinfo { margin-top: 2em; margin-bottom: 1em }

+.breadcrumb { font-size : smaller; margin-bottom: 1em }

+.prereq { margin-left : 20px;}

+

+

+

+/* Set heading sizes, getting smaller for deeper nesting */

+.topictitle1 { margin-top: 0em; margin-bottom: .1em; font-size: 1.8em; }

+.topictitle2 { margin-top: 1em; margin-bottom: .45em; font-size: 1.25em;  margin-left: -2%; border-top: thin solid #CCCCCC; padding-top: .5em;}

+.topictitle3 { margin-top: 2em; margin-bottom: 0.2em; font-size: 1.0em; font-weight: bold; margin-left: -2%; border-top: thin solid #CCCCCC; padding-top: 0.5em; }

+.topictitle4 { margin-top: .83em; font-size: 0.9em; font-weight: bold; }

+.topictitle5 { font-size: 0.8em; font-weight: bold; }

+.topictitle6 { font-size: 0.7em; font-style: italic; }

+.sectiontitle { margin-top: 1em; margin-bottom: 0em; color: black; font-size: 1.2em; font-weight: bold;}

+.nested2 .sectiontitle { font-size: 1.0em; }

+.section { margin-top: 2em; margin-bottom: 1em }

+.example { margin-top: 2em; margin-bottom: 1em }

+

+/* All note formats have the same default presentation */

+.note { margin-top: 1em; margin-bottom : 1em;}

+.notetitle { font-weight: bold }

+.notelisttitle { font-weight: bold }

+.tip { margin-top: 1em; margin-bottom : 1em;}

+.tiptitle { font-weight: bold }

+.fastpath { margin-top: 1em; margin-bottom : 1em;}

+.fastpathtitle { font-weight: bold }

+.important { margin-top: 1em; margin-bottom : 1em;}

+.importanttitle { font-weight: bold }

+.remember { margin-top: 1em; margin-bottom : 1em;}

+.remembertitle { font-weight: bold }

+.restriction { margin-top: 1em; margin-bottom : 1em;}

+.restrictiontitle { font-weight: bold }

+.attention { margin-top: 1em; margin-bottom : 1em;}

+.attentiontitle { font-weight: bold }

+.dangertitle { font-weight: bold }

+.danger { margin-top: 1em; margin-bottom : 1em;}

+.cautiontitle { font-weight: bold; margin-top: 0.53em; }

+.caution { font-weight: bold; margin-bottom : 1em; }

+

+/* Simple lists do not get a bullet */

+ul.simple { list-style-type: none }

+

+/* Used on the first column of a table, when rowheader="firstcol" is used */

+.firstcol { font-weight : bold;}

+

+/* Various basic phrase styles */

+.bold { font-weight: bold; }

+.boldItalic { font-weight: bold; font-style: italic; }

+.italic { font-style: italic; }

+.underlined { text-decoration: underline; }

+.uicontrol { font-weight: bold; }

+.parmname { font-weight: bold; }

+.kwd { font-weight: bold; }

+.defkwd { font-weight: bold; text-decoration: underline; }

+.var { font-style : italic;}

+.shortcut { text-decoration: underline; }

+.term { font-style: italic; }

+

+/* Default of bold for definition list terms */

+.dlterm { font-weight: bold; margin-top: 0.5em; }

+

+/* Use CSS to expand lists with @compact="no" */

+.dltermexpand { font-weight: bold; margin-top: 1em; }

+*[compact="yes"]>li { margin-top: 0em;}

+*[compact="no"]>li { margin-top: .53em;}	

+.liexpand { margin-top: 1em; margin-bottom: 1em }

+.sliexpand { margin-top: 1em; margin-bottom: 1em }

+.dlexpand { margin-top: 1em; margin-bottom: 1em }

+.ddexpand { margin-top: 1em; margin-bottom: 1em }

+.stepexpand { margin-top: 1em; margin-bottom: 1em }

+.substepexpand { margin-top: 1em; margin-bottom: 1em }

+

+/* Default list styles */

+ul li, ol li, dl { margin-top: .53em; margin-bottom: 0.0em; margin-left: 0.0em;}

+ul, ol { margin-bottom: 1em; margin-top: 0em;}

+

+/* Align images based on @align on topic/image */

+div.imageleft { text-align: left; margin-top: 1em; margin-bottom: 1em; }

+div.imagecenter { text-align: center; margin-top: 1em; }

+div.imageright { text-align: right; margin-top: 1em; }

+div.imagejustify { text-align: justify; margin-top: 1em; }

+

+/* The cell border can be turned on with

+   {border-right:solid}

+   This value creates a very thick border in Firefox (does not match other tables)

+

+   Firefox works with 

+   {border-right:solid 1pt}

+   but this causes a barely visible line in IE */

+

+.cellrowborder { border-left:none; border-top:none; border-right:solid 1px; border-bottom:solid 1px }

+.row-nocellborder { border-left:none; border-right:none; border-top:none; border-right: hidden; border-bottom:solid 1px}

+.cell-norowborder { border-top:none; border-bottom:none; border-left:none; border-bottom: hidden; border-right:solid 1px}

+.nocellnorowborder { border:none; border-right: hidden;border-bottom: hidden }

+

+

+table {

+   color: black; 

+   border-collapse: collapse;

+   border-color: black;

+   background: white;  

+   margin-top: 0.5em;

+   margin-bottom: 0.5em;

+   margin-left: 0em;

+   margin-right: 0em;

+   font-size: 1em;

+} 

+

+.tablenoborder { margin-top: 1em; margin-bottom: 1em; }

+table caption { text-align: left; padding-bottom: .5em;}

+.tablecap { font-weight: bold; }

+thead, th { background-color: #dddddd; font-weight: bold; }

+table div.p { margin-top: 0; margin-bottom: 0; }

+th { vertical-align: bottom;}

+td p:first-child, th p:first-child { margin-top: 0em; }

+

+pre.screen { padding: 5px 5px 5px 5px; border: outset; background-color: #CCCCCC; margin-top: 2px; margin-bottom : 2px; white-space: pre; overflow: auto; }

+

+.codeblock { 

+  font-family: Monaco, "Courier New", Courier, fixed, Monospace; 

+  font-size: 1em; 

+  background-color: #dddddd; 

+  padding: 6px; 

+  margin-top: 1em; 

+  margin-bottom: 1em; 

+  white-space: pre-wrap;       /* css-3 */

+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */

+  white-space: -pre-wrap;      /* Opera 4-6 */

+  white-space: -o-pre-wrap;    /* Opera 7 */

+  word-wrap: break-word;       /* Internet Explorer 5.5+ */

+}

+

+.msgblock { 

+  font-family: Monaco, "Courier New", Courier, fixed, Monospace; 

+  font-size: 1em; 

+  margin-top: 1em; 

+  margin-bottom: 1em; 

+  white-space: pre-wrap;       /* css-3 */

+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */

+  white-space: -pre-wrap;      /* Opera 4-6 */

+  white-space: -o-pre-wrap;    /* Opera 7 */

+  word-wrap: break-word;       /* Internet Explorer 5.5+ */

+}

+

+

+.codeph, .apiname { font-family: Monaco, "Courier New", Courier, fixed, Monospace; font-size: 1em; }
\ No newline at end of file
diff --git a/src/help/appvalidator_help/etc/resources/hdr-confidential.xml b/src/help/appvalidator_help/etc/resources/hdr-confidential.xml
new file mode 100644
index 0000000..b3f1f73
--- /dev/null
+++ b/src/help/appvalidator_help/etc/resources/hdr-confidential.xml
@@ -0,0 +1 @@
+<div class="hdr-confidential">Motorola Confidential Restricted</div>
\ No newline at end of file
diff --git a/src/help/appvalidator_help/etc/resources/hdr-none.xml b/src/help/appvalidator_help/etc/resources/hdr-none.xml
new file mode 100644
index 0000000..953ebac
--- /dev/null
+++ b/src/help/appvalidator_help/etc/resources/hdr-none.xml
@@ -0,0 +1 @@
+<a class="hdr-none"/>
\ No newline at end of file
diff --git a/src/help/appvalidator_help/src/topics/c_appvalidator-conditions.dita b/src/help/appvalidator_help/src/topics/c_appvalidator-conditions.dita
new file mode 100644
index 0000000..7b82d17
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/c_appvalidator-conditions.dita
@@ -0,0 +1,436 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "../dtd/concept.dtd">
+<concept id="c_appvalidator-conditions" xml:lang="en-us">
+  <title>Interpreting App Validator results</title>
+  <shortdesc>The App Validator runs a series of "checkers," each of which has one or more conditions that it checks for.
+    This document provides detailed information about each checker and each condition, detailing the issues that the
+    checkers and conditions are examining your Android apps for and noting the corrective action you may want to take in
+    the event that your app is flagged for a given checker/condition combination. </shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <conbody>
+    <p>Note that whether or not you elect to take corrective action is up to you; many conditions simply point out
+      possible problem areas that in some cases may not actually require any correction.</p>
+    <section>
+      <title>Permissions Checker</title>
+      <p>Checker ID: <b>permissions</b></p>
+      <p>Examines the permissions required by the app and the APIs used by the app, looking for possible problems.</p>
+      <dl>
+        <dlentry>
+          <dt>Condition: blockedPermission</dt>
+          <dd>
+            <p>Verifies that the requested permissions are required by the application. Permissions have a "protection
+              level" that characterizes the potential risk implied by the permission and indicates how the system will
+              determine whether to grant the permission to the requesting application (see the Android documentation on
+              AndroidManifestPermission_protectionLevel for more information on these protection levels). The
+              blockedPermission condition looks to see if the application requires a permission that has a <b
+              >signature</b> or <b>signatureOrSystem</b> protection level. Such permissions are not intended to be used
+              by third-party developers; Android will deny their use.</p>
+            <p>If your app fails this test, remove the requirement for the problematic permissions within your app's
+              Android manifest file.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: missingPermission</dt>
+          <dd>
+            <p>Some APIs require that the app request specific permissions in order to be used. If the necessary
+              permissions are not declared in the Android manifest file, a SecurityException is thrown at runtime. This
+              checker looks at the permissions requested in the Android manifest file to ensure that all needed
+              permissions (based upon an examination of the app's source) have been requested.</p>
+            <p>If your app fails this test, add the noted permissions to your application's Android manifest file.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: unneededPermission</dt>
+          <dd>
+            <p>Verifies that all of the requested permissions are actually needed by the app</p>
+            <p>If you are notified that your app is requesting unneeded permissions, ensure that they are truly needed.
+              If they are not, remove the superfluous ones from your AndroidManifest.xml file.</p>
+          </dd>
+        </dlentry>
+      </dl>
+    </section>
+    <section>
+      <title>Google Play Filters Checker</title>
+      <p>Checker ID: <b>googlePlayFilters</b></p>
+      <p>The Google Play Filters checker looks for situations where:<ul>
+          <li>your app will be rejected by Google Play</li>
+          <li>your app will not appear in Google Play on specific devices</li>
+          <li>your app will appear in Google Play on devices for which it wasn't intended</li>
+        </ul></p>
+      <dl>
+        <dlentry>
+          <dt>Condition: missingVersionCodeOrName</dt>
+          <dd>
+            <p>Verifies the existence of android:versionCode and android:versionName attributes in the &lt;manifest&gt;
+              element within the app's Android manifest file. Google Play requires the presence of both of these
+              attributes. It uses android:versionCode to identify the application internally and to handle updates, and
+              it displays the android:versionName value to users as the application's version.</p>
+            <p>If your app fails this test, add the required attributes to the &lt;manifest&gt; element in your app's
+              Android manifest file.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: certificatePeriodExpired</dt>
+          <dd>
+            <p>Verifies that the validity period for the certificate used to sign the app meets the requirements set by
+              Google Play. Google Play requires that your app be signed with a cryptographic private key that is valid
+              beyond 22 October 2033.</p>
+            <p>If your app fails this test, re-sign the app with a certificate that has the required validity
+            period.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: missingManifestIconOrLabel</dt>
+          <dd>
+            <p>Verifies the existence of android:icon and android:label attributes on the &lt;application&gt; element
+              within the app's Android manifest file. Both of these attributes are required by Google Play.</p>
+            <p>If your app fails this test, edit the app's Android manifest file and add the missing attributes to the
+              &lt;application&gt; element.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: missingMinSdkVersion</dt>
+          <dd>
+            <p>Verifies that the &lt;uses-sdk&gt; element has the android:minSdkVersion attribute set to an explicit
+              value. Although this attribute is not strictly required, Android assumes a value of "1" if it is not
+              present, indicating that the app is compatible with all versions of Android. Most apps are not compatible
+              with all versions of Android, for various reasons. If, for instance, your app uses an API that was
+              introduced in a later version and you do not set the android:minSdkVersion attribute to that version (or
+              later), your app could potentially be installed on a device running an earlier version of Android, where
+              it will crash when the missing API is called. Because of this, apps should always explicitly declare the
+              minimum SDK version they support.</p>
+            <p>If your app fails this test, add the android:minSdkVersion attribute, with the appropriate API level
+              value, to the &lt;uses-sdk&gt; element in your Android manifest file.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: permissionToImpliedFeatures</dt>
+          <dd>
+            <p>Checks if an application's manifest file contains &lt;uses-permission> elements that imply certain
+              features without explicitly declaring those features. For example, if an application requests the CAMERA
+              permission but does not declare a &lt;uses-feature> element for android.hardware.camera, Google Play
+              assumes that the application requires a camera and does not show it on devices that do not have a camera. </p>
+            <p>For a list of permissions that imply hardware features, see the <xref
+                href="http://developer.android.com/guide/topics/manifest/uses-feature-element.html" format="html"
+                scope="external">documentation for the &lt;uses-feature> element</xref>. </p>
+            <p>Because Google Play does not filter based on &lt;uses-permission> elements, and because it is able to
+              infer certain features based upon permission requests, you are not required to supply the implied
+              &lt;uses-feature> elements. However, it is good practice to do so: explicitly list all features and
+              permissions required by your app in the app's Android manifest file. Note that if your app is able to use,
+              but does not require, an implied feature, add <b>android:required="false"</b> to the feature declaration,
+              and check for the presence of the feature at run time by calling <b>getSystemAvailableFeatures()</b>. </p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: declaredMaxSdkVersion</dt>
+          <dd>
+            <p>Checks if the &lt;uses-sdk> element has the android:maxSdkVersion attribute. This attribute has been
+              deprecated; it is ignored by Android version 2.1 and later. Declaring android:maxSdkVersion is not
+              recommended. </p>
+            <p>If your app fails this test, remove the android:maxSdkVersion attribute from the &lt;uses-sdk> element in
+              your app's Android manifest file. </p>
+          </dd>
+        </dlentry>
+        
+      </dl>
+    </section>
+    <section>
+      <title>Device Compatibility Checker</title>
+      <p>Checker ID: <b>deviceCompatibility</b></p>
+      <p>The App Validator maintains a set of specifications for various Android-powered Motorola devices. The Device
+        Compatibility checker compares the requirements listed in the app's Android manifest file against these device
+        specifications, noting those devices with which the app is incompatible.</p>
+      <p>Note that you can get a list of the device specifications by issuing the <b>appValidator</b> command (on the
+        command line) with the <b>-list-devices</b> option. To see the specifications for a given device, use the <b
+          >-describe-device</b> option.</p>
+      <dl>
+        <dlentry>
+          <dt>Condition: smallScreenSupport</dt>
+          <dd>
+            <p>Checks for a lack of support for small screen devices by examining the android:smallScreens attribute
+              within the &lt;supports-screens> element in the app's Android manifest file. Note that if the
+              &lt;uses-sdk> element has both its android:minSdkVersion and android:targetSdkVersion attributes set to 3
+              or less (or are omitted, which implies a value of 1), android:smallScreens is defined to be <b>false</b>.
+              Either or both of these values must be 4 or higher in order for your app to be able to target small screen
+              devices.</p>
+            <p>A small screen is defined as one with a smaller aspect ratio than the "normal" screen. An example of a
+              small screen device is the <xref href="http://developer.motorola.com/products/charm-mb502/" format="html"
+                scope="external">Motorola CHARM™</xref>.</p>
+            <p>This condition is not checked if android:smallScreens is explictly set to <b>false</b>.</p>
+            <p>If your app fails this test and you want it to be available in Google Play for small screen devices,
+              ensure that the android:minSdkVersion and android:targetSdkVersion attributes in the &lt;uses-sdk> element
+              are set to 4 or higher, and set android:smallScreens (an attribute of the &lt;supports-screens> element)
+              to <b>true</b>.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: xlargeScreenSupport</dt>
+          <dd>
+            <p>Checks for extra large screen support. Unless the app has explicitly indicated a lack of extra large
+              screen support (with &lt;supports-screens android:xlargeScreens="false"&gt; or extra large screens not
+              listed in the &lt;compatible-screens> element within the manifest file), the checker looks to see if
+              either targetSdk or minSdk are less than 4.</p>
+            <p>If your app fails this test, either change your target API level to 4 or higher (if you intend for your
+              app to support extra large screens) or indicate that your app does not support extra large screens by both
+              adding &lt;supports-screens android:xlargeScreens="false"&gt; to your app's manifest file and ensuring
+              that the &lt;compatible-screens> element, if present, does not mention xlarge screens.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: unsupportedFeatures</dt>
+          <dd>
+            <p>Compares the permissions and features required by the application (as declared in the application's
+              Android Manifest file) against the device specifications to see if the device has all of the required
+              features. The app will not appear in Google Play on a device that does not have all of the required
+              features (including those that may be implied by required permissions). </p>
+            <p>If your app fails this test, ensure that the noted permission or feature truly is required by your
+              application. Consider adding <b>android:required="false"</b> to the feature declaration if the feature is
+              optional, and not strictly required. Note that if the feature is optional your app can use <b
+                >getSystemAvailableFeatures()</b> to check for the presence of the feature at run time.</p>
+          </dd>
+        </dlentry>
+      </dl>
+    </section>
+    <section>
+      <title>Localization Strings Checker</title>
+      <p>Checker ID: <b>localizationStrings</b></p>
+      <p>The Localization Strings checker attempts to verify that the application is correctly localized, specifically
+        by checking if all values are translated to all languages.</p>
+      <p>This checker only validates applications that have at least one language-specific resource.</p>
+      <dl>
+        <dlentry>
+          <dt>Condition: missingDefaultLanguageKey</dt>
+          <dd>
+            <p>The <b>missingDefaultLanguageKey</b> condition verifies that the default strings file
+              (res/values/strings.xml) is present and that it contains a default string value for each key. If this
+              default strings file is absent, or is missing a string that your application needs, your application will
+              Force Close and present the user with an error message. </p>
+            <p>If your app fails this test, ensure that res/values/strings.xml exists. Within it, supply default text
+              strings for any keys that don't already have them. </p>
+            <p>Note that this situation applies to all types of resources, not just strings: you should create a set of
+              default resource files containing all of the layouts, drawables, animations, and other resources that your
+              application relies upon. For information about localization in Android, see <xref
+                href="http://developer.android.com/guide/topics/resources/localization.html" format="html"
+                scope="external">the Localization topic within the Android Dev Guide</xref>.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: missingLanguageKey</dt>
+          <dd>
+            <p>Examines non-default text strings files for missing keys: keys that are present in the default strings
+              file (res/values/strings.xml) but not in the locale-specific text strings file. This lack of a translation
+              for a specific key can represent a failure in the translation process. </p>
+            <p>If your app fails this test, ensure that it is OK for your app to fall back to the default string values.
+              If not, add the missing keys to the non-default text strings file and supply localized string values.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: missingValue</dt>
+          <dd>
+            <p>Checks for keys that do not have a value defined in either the default language or in other languages. If
+              the default string is empty, nothing is displayed on screen, which is probably not what you intend. If a
+              locale-specific key has the empty string for a value, it prevents a fallback to the default value, which
+              is also probably not what you intend. </p>
+            <p>If your app fails this test, and the key with the missing value is in the default text strings file
+              (res/values/strings.xml), supply the missing value. If the missing value is in a locale-specific text
+              strings file, do one of the following:<ul>
+                <li>supply a localized value for the key if there should be one</li>
+                <li>remove the key from the file if the value from the default strings file should be used</li>
+                <li>leave the value empty if the empty string is the correct value for the key in that locale</li>
+              </ul></p>
+          </dd>
+        </dlentry>
+      </dl>
+    </section>
+    <section>
+      <title>Missing Drawable Resources Checker</title>
+      <p>Checker ID: <b>missingDrawableResources</b>
+      </p>
+      <p>Checks your application's drawable resources, looking to see if your app has properly-sized images for every
+        supported screen size and density. </p>
+      <p>This checker only runs if the android:anyDensity attribute of the &lt;supports-screens> element in your app's
+        Android manifest file is set to <b>true</b> and the target SDK is higher than 3. Note that during app packaging
+        AAPT automatically overrides the android:anyDensity value and forces it to <b>false</b> if there are missing
+        drawables. Because of this, this checker does not generate results when you supply an APK to the MOTODEV App
+        Validator.</p>
+      <dl>
+        <dlentry>
+          <dt>Condition: unsupportedDensity</dt>
+          <dd>
+            <p>Checks for the existence of a drawable-xdpi folder when the application's API level is lower than 8. An
+              API level of 7 or lower will cause the drawable-xdpi folder to be ignored, thus the existence of this
+              particular condition. </p>
+            <p>If your app fails this test, consider increasing the app's API level to 8 or above (and then verifying
+              that your app properly supports extra-high-density screens). Alternatively, you can remove the
+              drawable-xdpi folder, since it will be ignored and its contents simply take up unnecessary space in the
+              application package. </p>
+            <p>For more information on screen sizes and supporting the wide variety of Android devices on the market
+              today, see <xref href="http://developer.android.com/guide/practices/screens_support.html" format="html"
+                scope="external">Supporting Multiple Screens in the Android Dev Guide</xref>.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: missingDrawables</dt>
+          <dd>
+            <p>Examines each of the drawable folders to ensure that they all contain the same set of images. Images that
+              appear in one drawable folder but not in another have not been properly customized for every supported
+              screen size and density. Although Android will fall back on the default in this case, scaling the
+              corresponding default image as necessary, this may result in a less-than-optimal image. For the best
+              results you should supply a full set of images corresponding to each drawable folder. </p>
+            <p>If your app fails this test, consider supplying the missing images, properly sized and scaled as
+              appropriate for the enclosing drawable folder. </p>
+            <p>For more information on screen sizes and supporting the wide variety of Android devices on the market
+              today, see <xref href="http://developer.android.com/guide/practices/screens_support.html" format="html"
+                scope="external">Supporting Multiple Screens in the Android Dev Guide</xref>.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: missingDrawableFolders</dt>
+          <dd>
+            <p>Verifies that separate drawable folders exist for the four supported densities: low, medium, high, and
+              extra-high. Although Android can automatically scale a default drawable to make up for a missing density,
+              for best results you should supply a full set of images for each supported density. </p>
+            <p>If your app fails this test, consider adding folders for the missing density, complete with a full set of
+              drawables scaled properly for that density. </p>
+            <p>For more information on screen sizes and supporting the wide variety of Android devices on the market
+              today, see <xref href="http://developer.android.com/guide/practices/screens_support.html" format="html"
+                scope="external">Supporting Multiple Screens in the Android Dev Guide</xref>.</p>
+          </dd>
+        </dlentry>
+      </dl>
+    </section>
+    <section>
+      <title>Layout Checker</title>
+      <p>Checker ID: <b>layout</b>
+      </p>
+      <p>Check the application layout files for problems within their definitions and inconsistencies among the layouts
+        for different configurations.</p>
+      <dl>
+        <dlentry>
+          <dt>Condition: missingId</dt>
+          <dd>
+            <p>Compares corresponding layouts to ensure that they each have the same set of IDs. If two corresponding
+              layouts define different IDs for the same UI element, the resulting R.java file will have definitions for
+              both, and any code that references either (or both) will compile. However, the app will force close at run
+              time if the particular layout being shown does not contain the ID being referenced. </p>
+            <p>If your app fails this test, update the named layouts so that they properly declare the noted IDs.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: repeatedId</dt>
+          <dd>
+            <p>Scans through your layout files, looking for duplicate IDs. Two or more widgets that share an ID can
+              cause problems if your code references one of those widgets by ID: the wrong widget might be referenced,
+              causing unexpected behavior.</p>
+            <p>If your app fails this test, update the widgets containing the listed IDs so that they no longer share a
+              common ID value.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: viewTypeIds</dt>
+          <dd>
+            <p>Verifies that a given ID is always used by the same kind of view when that ID appears in multiple layout
+              configurations. This condition arises, for example, when you have both portrait and landscape
+              configurations of your layout in which a given ID is used for one widget type (a TextView, say) in one
+              configuration and an entirely different widget type (a Button, say) in the other. A situation such as this
+              can result in a class cast exception: a call to findViewById(), for instance will succeed or fail
+              depending upon the device's current orientation.</p>
+            <p>If your app fails this test, examine those layout configurations that use the listed ID and update them
+              as needed to ensure that different widget types used different IDs.</p>
+          </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Condition: xlargeLayouts</dt>
+          <dd>
+            <p>Examines your project to see if it contains layouts within the res/layout-xlarge folder.</p>
+            <p>If your application fails this test and you intend for it to run on a device with an extra large screen
+              (such as a 10" tablet), be sure that it runs with the look and feel you expect. Most applications will
+              need layouts designed specifically for extra large screens. If your app is not intended to be run on a
+              device with an extra large screen, add &lt;supports-screens android:xlargeScreens="false"&gt; to your
+              AndroidManifest.xml file.</p>
+          </dd>
+        </dlentry>
+      </dl>
+    </section>
+    <section>
+      <title>Single Main Activity Checker</title>
+      <p>Checker ID: <b>singleMainActivity</b>
+      </p>
+      <p>Checks the number of activities set as "main". Although some applications can have more than one (or zero)
+        entry points, most applications have only one.</p>
+      <dl>
+        <dlentry>
+          <dt>Condition: exactlyOne</dt>
+          <dd>
+            <p>Checks for the presence of exactly one activity set as "main", indicating that the app has a single
+              activity that initiates the application. Although having more (or less) than one main activity is not
+              wrong, it is rare enough to warrant a condition check. </p>
+            <p>If your app fails this test, and you intend for it to only have a single main entry point, examine your
+              app's Android manifest file and ensure that only a single activity has an intent filter with the following
+              action: </p>
+            <codeblock>&lt;action android:name="code android.intent.action.MAIN"/></codeblock>
+          </dd>
+        </dlentry>
+      </dl>
+    </section>
+    <section>
+      <title>Code Checker</title>
+      <p>Checker ID: <b>codeChecker</b></p>
+      <p>Looks for possible issues with Java code.</p>
+      <dl>
+        <dlentry>
+          <dt>Condition: openedCursors</dt>
+          <dd>
+            <p>Looks for methods that don't seem to properly close their cursors. Note that this checker can report a
+              problem when none exists, if the cursor is closed in a non-obvious way. Also note that managed cursors
+              don't need to be closed by your app.</p>
+            <p>If your app fails this test, verify that all cursors are properly closed.</p>
+          </dd>
+        </dlentry>
+      </dl>
+    </section>
+    <section>
+      <title>Widget Preview Checker</title>
+      <p>Checker ID: <b>widgetPreview</b></p>
+      <p>Examines widget projects to see if they support the preview feature.</p>
+      <dl>
+        <dlentry>
+          <dt>Condition: missingWidgetPreview</dt>
+          <dd>
+            <p>Warns you if your widget project does not appear to contain a preview of what the AppWidget will look
+              like after it's configured. A widget project that doesn't include a preview image will initially be
+              displayed to the user as the AppWidget's icon. </p>
+            <p>This condition is only valid for Android 3.1 or higher.</p>
+            <p>If you receive this warning, consider whether your widget project should contain a preview image. If so,
+              add the image to your project and then add the the android:previewImage attribute to the &lt;receiver&gt;
+              element in your AndroidManifest.xml file.</p>
+          </dd>
+        </dlentry>
+      </dl>
+    </section>
+    <section>
+      <title>Building Blocks Declaration Checker</title>
+      <p>Checker ID: <b>buildingBlocksDeclaration</b></p>
+      <p>Looks for inconsistencies within the Android components—such as Activities, Services, Content providers, and
+        Broadcast receivers—declared in your AndroidManifest.xml file.</p>
+      <dl>
+        <dlentry>
+          <dt>Condition: buildingBlockMissDeclaration</dt>
+          <dd>
+            <p>Verifies that the Android components declared in your project's AndroidManifest.xml file extend the
+              classes from which they should inherit. If your app fails this test, verify that the indicated building
+              block extends the listed class. If it does not, your app may crash.<note type="note">A class that
+                indirectly inherits from an Android building block will be flagged as a possible problem, even though it
+                is not.</note></p>
+          </dd>
+        </dlentry>
+      </dl>
+    </section>
+  </conbody>
+</concept>
diff --git a/src/help/appvalidator_help/src/topics/cs_app-validator.dita b/src/help/appvalidator_help/src/topics/cs_app-validator.dita
new file mode 100644
index 0000000..28e8ed6
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/cs_app-validator.dita
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cshelp
+  PUBLIC "-//IBM//DTD DITA CSHelp//EN" "../dtd/cshelp.dtd">
+<cshelp id="cs_app-validator" xml:lang="en-us">
+  <title>Android Application Validator CS Help</title>
+  <shortdesc/>
+  <csbody/>
+
+  <!-- Plug-in: com.motorolamobility.preflighting.ui -->
+  <cshelp id="preference-appvalidator-commandline">
+    <title>Android App Validator preferences dialog</title>
+    <shortdesc>The Android App Validator preferences dialog enables you to control how the validator operates when invoked
+    from within Eclipse.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_appvalidator-prefs.dita"/>
+    </related-links>
+  </cshelp>
+</cshelp>
diff --git a/src/help/appvalidator_help/src/topics/g_legal.dita b/src/help/appvalidator_help/src/topics/g_legal.dita
new file mode 100644
index 0000000..bf09c2f
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/g_legal.dita
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>

+<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/topic.dtd">

+<topic id="g_legal">

+  <title>Trademark notices</title>

+  <body>

+    <p>Copyright © <ph conref="g_variables.dita#g_variables/product-copyright-years"/>, Motorola Mobility, Inc. All rights

+      reserved.</p>

+    <p>This documentation is provided to you under the terms of the Motorola End User License Agreement. Motorola Mobility, Inc.

+      reserves the right to revise this documentation and to make changes in content from time to time without

+      obligation on the part of Motorola Mobility, Inc. to provide notification of such revision or changes.</p>

+    <p>If this documentation is provided on compact disc or as part of another software package, the other software and

+      documentation on the compact disc are subject to the license agreement accompanying the compact disc.</p>

+    <p>MOTOROLA and the Stylized M Logo are registered in the U.S. Patent &amp; Trademark Office. <ph

+        product="android-studio">Android is a trademark of Google Inc. Use of this trademark is subject to <xref

+          scope="external" format="html" href="http://www.google.com/permissions/index.html">Google Permissions</xref>.

+      </ph>Java and all other Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the

+      U.S. and other countries. Eclipse is a trademark of Eclipse Foundation, Inc. <ph product="android-studio"

+        >DeviceAnywhere is a trademark of Mobile Complete, Inc. </ph><ph product="webui">Microsoft, Windows, Windows Me,

+        and Windows XP are registered trademarks of Microsoft Corporation. Linux is the registered trademark of Linus

+        Torvalds in the United States and other countries. VMware is a registered trademark or trademarks (the "Marks")

+        of VMware, Inc. in the United States and/or other jurisdictions. </ph>

+      <ph product="javame-studio javame-sdk">Symbian and UIQ are registered trademarks of Symbian Software Ltd. </ph>

+      All other product and service names are the property of their respective owners.</p>

+  </body>

+</topic>

diff --git a/src/help/appvalidator_help/src/topics/g_variables.dita b/src/help/appvalidator_help/src/topics/g_variables.dita
new file mode 100644
index 0000000..1e8b5ec
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/g_variables.dita
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/topic.dtd">
+<topic id="g_variables">
+    <title>Variables</title>
+    <body>
+        <p>Use this file to create variables for elements supported in generic topics. Create a
+            phrase or other element, assign it an ID, then add text to the element. To have a
+            different value based on a filtered attribute (product, platform, audience, otherprops),
+            nest multiple elements within the ID'd element, each with a different attribute value.
+            See the example below:</p>
+        <p>
+            <ph id="studio-sdk-product-name"><ph product="javame-sdk">MOTODEV SDK for Java ME</ph><ph product="javame-studio">MOTODEV Studio for Java ME</ph><ph product="webui">MOTODEV Studio for WebUI</ph><ph product="android-studio">MOTODEV Studio for Android</ph></ph>
+            <ph id="gui-product-name"><ph product="javame-sdk">the Launchpad application</ph><ph product="javame-studio">MOTODEV Studio for Java ME</ph><ph product="webui">MOTODEV Studio for WebUI</ph><ph product="android-studio">MOTODEV Studio for Android</ph></ph>            
+            <ph id="tools-and-services-view-name"><ph product="javame-sdk">Utilities</ph><ph product="javame-studio">Java ME Options</ph></ph>
+            <ph id="studio-sdk-prefs-parent-menu"><ph product="javame-sdk"><uicontrol>File</uicontrol></ph><ph product="javame-studio android-studio"><uicontrol>Window</uicontrol> (on Mac OS X, <uicontrol>MOTODEV Studio for Android</uicontrol>)</ph></ph>
+        </p>
+      
+        <p>
+            <ph id="product-copyright-years"><ph product="javame-sdk javame-studio">2007-2009</ph><ph product="android-studio">2009-2012</ph></ph>
+        </p>
+    
+    <p>Here's an example of how to conref one of the above variables:</p>
+    <codeblock>&lt;ph conref="g_variables.dita#g_variables/studio-sdk-product-name"/></codeblock>
+      
+    </body>
+</topic>
diff --git a/src/help/appvalidator_help/src/topics/r_appvalidator-cmdline.dita b/src/help/appvalidator_help/src/topics/r_appvalidator-cmdline.dita
new file mode 100644
index 0000000..51179b7
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/r_appvalidator-cmdline.dita
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE reference

+  PUBLIC "-//OASIS//DTD DITA Reference//EN" "../dtd/reference.dtd">

+<reference xml:lang="en-us" id="r_appvalidator-cmdline">

+  <title>appvalidator command-line options</title>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <refbody>

+    <section>

+      <p>The appvalidator script (located in the MOTODEV Studio for Android installation directory) has a number of

+        command-line options that can be used to customize its operation.</p>

+    </section>

+    <section><title>Getting Help</title>Invoke the appvalidator script with the <codeph>-help</codeph> option to see a

+      list of the command-line options.</section>

+    <section>

+      <title>Invoking the App Validator</title>

+      <p><codeblock>appvalidator [FILE] [OPTION [PARAMETER]]...</codeblock>

+        <codeph>FILE</codeph> is the Android APK or project to be validated. </p>

+    </section>

+    <section>

+      <title>Options</title>

+      <p>The <codeph>appvalidator</codeph> command-line options are as follows:</p>

+      <p>

+        <simpletable>

+          <sthead>

+            <stentry>Option</stentry>

+            <stentry>Parameter</stentry>

+            <stentry>Description</stentry>

+          </sthead>

+          <strow>

+            <stentry><codeph>-sdk</codeph></stentry>

+            <stentry>path to the SDK</stentry>

+            <stentry>Allows you to specify the location of the Android SDK to be used when validating the application.

+              If an SDK is not explicitly specified using this option, the Android SDK specified in your system PATH is

+              used instead.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-c</codeph></stentry>

+            <stentry>checker ID, (optional) checker parameters</stentry>

+            <stentry>Specifies the checker to use when validating the application. You specify checkers by their IDs; a

+              list of available checkers and their IDs can be obtained with the <codeph>-list-checkers</codeph>

+            option.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-wx</codeph></stentry>

+            <stentry>(optional) one or more checker IDs or conditions, separated by whitespace</stentry>

+            <stentry>Increases the warning level of the validation results for the specified set of checkers and/or

+              conditions. If no checker ID or condition ID is supplied, increases the warning level for all checkers and

+              conditions. A list of available checkers and their IDs can be obtained with the <codeph

+              >-list-checkers</codeph> option. A list of conditions and their IDs for a given checker can be obtained

+              through the use of the <codeph>-help</codeph> option.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-xw</codeph></stentry>

+            <stentry>(optional) one or more checker IDs, separated by whitespace</stentry>

+            <stentry>Decreases the warning level of the validation results for the specified set of checkers and/or

+              conditions. If no checker ID or condition ID is supplied, decreases the warning level for all checkers and

+              conditions. A list of available checkers and their IDs can be obtained with the <codeph

+              >-list-checkers</codeph> option. A list of conditions and their IDs for a given checker can be obtained

+              through the use of the <codeph>-help</codeph> option.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-output</codeph></stentry>

+            <stentry><codeph>text | csv | xml</codeph></stentry>

+            <stentry>Format the output as text (the default), as comma-separated values suitable for importing into a

+              spreadsheet (<codeph>csv</codeph>) or as XML. When this option is specified, the verbosity level is

+              automatically set to 0.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-limit</codeph></stentry>

+            <stentry>an integer value indicating the number of entries</stentry>

+            <stentry>Limits the output to the specified number of entries.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-list-checkers</codeph></stentry>

+            <stentry/>

+            <stentry>Lists the available checkers. Use the <codeph>-help</codeph> option to get information about an

+              individual checker.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-list-devices</codeph></stentry>

+            <stentry/>

+            <stentry>Lists the devices for which the Android app can be validated.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-describe-device</codeph></stentry>

+            <stentry>device name</stentry>

+            <stentry>For a specified device, enumerates the device parameters that may be used when validating an

+              Android app against that device. Supply the name of the device as listed with the <codeph

+              >-list-devices</codeph> option.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-d</codeph></stentry>

+            <stentry>device name</stentry>

+            <stentry>Validates the app only against the named device (to validate against more than one device, use

+              multiple <codeph>-d</codeph> options). If this option is not supplied, the app is validated against all of

+              the devices listed when you use the <codeph>-list-checkers</codeph> option.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-help</codeph></stentry>

+            <stentry>(optional) checker ID</stentry>

+            <stentry>When used by itself (without a checker ID) this option lists the command-line syntax and options

+              used to invoke the App Validator from the command line. If a checker ID is specified, the <codeph

+                >-help</codeph> option displays information about the specified checker, including a list of conditions

+              and their IDs for use with the <codeph>-wx</codeph> and <codeph>-xw</codeph> options. A list of available

+              checkers and their IDs can be obtained with the <codeph>-list-checkers</codeph> option.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-v</codeph><i>N</i></stentry>

+            <stentry/>

+            <stentry>Indicates the "verbosity level" - the level of detail that is logged (in the Console view, if run

+              from Eclipse) when the validator is run. In place of <i>N</i> supply a digit—either 0, 1, or 2—to indicate

+              the level. <codeph>-v0</codeph> (the default level) results in the most concise output, while <codeph

+              >-v2</codeph> produces a detailed log of every action that the validator takes.</stentry>

+          </strow>

+          <strow>

+            <stentry><codeph>-w</codeph><i>N</i></stentry>

+            <stentry/>

+            <stentry>Indicates the level of warnings that are logged (in the Problems view, if run from Eclipse) when

+              the validator is run. In place of <i>N</i> supply a digit—either 0, 1, 2, 3, or 4—to indicate the warning

+              level. <codeph>-w0</codeph> results in the most concise output, with only fatal errors being logged, while

+                <codeph>-w4</codeph> (the default) produces a detailed log of every warning and error.</stentry>

+          </strow>

+        </simpletable>

+      </p>

+    </section>

+  </refbody>

+</reference>

diff --git a/src/help/appvalidator_help/src/topics/t_app-validating-command-line.dita b/src/help/appvalidator_help/src/topics/t_app-validating-command-line.dita
new file mode 100644
index 0000000..ab9e4c4
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/t_app-validating-command-line.dita
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_app-validating-command-line" xml:lang="en-us">
+  <title>Validating an application from the command line</title>
+  <shortdesc>The App Validator can be run from the command-line as well as from within Eclipse. This enables you
+    to run the validator as part of your automated build process.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody><steps>
+      <step>
+        <cmd>From the command-line, or from within your build script, invoke the appvalidator script located in the
+          MOTODEV Studio for Android installation directory. Note that on Microsoft Windows the script is a batch file
+          (appvalidator.bat), while on Mac OS X and Linux it is a shell script (appvalidator.sh). Specify the APK file
+          or the Android project folder for the application to be validated. If your system path does not include the
+          location of the Android SDK's primary tools directory, specify it using the <codeph>-sdk</codeph> option.</cmd>
+        <info>See <xref href="r_appvalidator-cmdline.dita"/> for the set of options you can use when invoking the
+          appvalidator script.</info>
+      </step>
+    </steps><example>To run all available checkers on your project or APK, issue the following command from within the
+      MOTODEV Studio for Android installation directory:
+      <codeblock>appvalidator &lt;path_to_project_or_APK&gt; -sdk &lt;path_to_SDK&gt;></codeblock> To run a specific
+      checker:
+      <codeblock>appvalidator &lt;path_to_project_or_APK&gt; -sdk &lt;path_to_SDK&gt; -c &lt;checker_ID&gt;</codeblock></example></taskbody>
+</task>
diff --git a/src/help/appvalidator_help/src/topics/t_app-validating-gui.dita b/src/help/appvalidator_help/src/topics/t_app-validating-gui.dita
new file mode 100644
index 0000000..90645c7
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/t_app-validating-gui.dita
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task id="t_app-validating" xml:lang="en-us">

+  <title>Validating an application from Eclipse</title>

+  <shortdesc>From within Eclipse you can easily run the App Validator against any of your open projects.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <steps>

+      <step>

+        <cmd>From the Package Explorer view either right-click the open project or right-click an APK file from your

+          workspace and then select <uicontrol>Validate Android Application</uicontrol>. Note that you can validate

+          multiple APKs or multiple Android projects at one time by selecting <menucascade><uicontrol

+              >MOTODEV</uicontrol><uicontrol>App Validator</uicontrol><uicontrol>Validate Android

+          Apps</uicontrol></menucascade> (to validate one or more APKs) or <menucascade><uicontrol

+              >MOTODEV</uicontrol><uicontrol>App Validator</uicontrol><uicontrol>Validate Android

+          Project(s)</uicontrol></menucascade> (to validate one or more Android projects).</cmd>

+        <stepresult>The App Validator runs. The overall results are displayed in a Console view, and the various errors

+          and warnings are listed in the Problems view, often with suggestions for fixing the problem. Double-click an

+          entry in the Problems view to open the appropriate file in an editor view with the problem area highlighted.

+            <p>After running the App Validator, those files with problems are appropriately marked with error or warning

+            symbols in the Package Explorer.</p>Note that by default the output produced by the Android App Validator is

+          equivalent to running it with command-line options for the default verbosity level (-v2) and a detailed log of

+          every warning and error (-w4). These defaults can be changed (and other command-line options added) using the

+          App Validator preferences dialog.</stepresult>

+      </step>

+    </steps>

+  </taskbody>

+</task>

diff --git a/src/help/appvalidator_help/src/topics/t_validate-about.dita b/src/help/appvalidator_help/src/topics/t_validate-about.dita
new file mode 100644
index 0000000..27172fd
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/t_validate-about.dita
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_validate-about" xml:lang="en-us">
+  <title>Validating Android applications</title>
+  <shortdesc>Using the Android Application Validator, you can easily run a set of "checkers" against your application
+    that look for problems that might not be immediately apparent at build or install time. The set of checks that the
+    Android Application Validator runs is extensible; as new checks are developed, they will be made available for
+    download.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+</task>
diff --git a/src/help/appvalidator_help/src/topics/u_appvalidator-prefs-checkers.dita b/src/help/appvalidator_help/src/topics/u_appvalidator-prefs-checkers.dita
new file mode 100644
index 0000000..3946efb
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/u_appvalidator-prefs-checkers.dita
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "../dtd/reference.dtd">

+<reference id="u_appvalidator-prefs-checkers" xml:lang="en-us">

+  <title>Android App Validator preferences - Checkers tab</title>

+  <shortdesc>The Checkers tab of the Android App Validator preferences dialog enables you to specify which checkers and

+    conditions the App Validator should validate your app against, as well as to fine-tune the operation of those

+    checkers.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <refbody>

+    <section>

+      <p>This tab contains two list boxes, one beneath the other. The upper list box lists all of the supported

+        checkers, while the lower list box lists those conditions that are validated by the currently selected checker

+        (this lower list box is empty if a checker is not selected). To the left of each checker is a checkbox that

+        indicates whether the checker or condition will be run. By default, all checkers are selected; clearing a given

+        checkbox prevents that checker from being run when an app is validated. Note the <uicontrol>Select/deselect

+        all</uicontrol> control beneath the list of checkers; this applies to all listed checkers.</p>

+      <p>In addition to the checkboxes, you can click in the <uicontrol>Parameters</uicontrol> and <uicontrol>Change

+          Warning Level</uicontrol> columns for a given checker row to specify parameters and increase or decrease the

+        warning level for that checker. Similarly, for a given condition row you can click within the <uicontrol>Change

+          Warning Level</uicontrol> column to increase or decrease the warning level for an individual condition.</p>

+    </section>

+  </refbody>

+</reference>

diff --git a/src/help/appvalidator_help/src/topics/u_appvalidator-prefs-devices.dita b/src/help/appvalidator_help/src/topics/u_appvalidator-prefs-devices.dita
new file mode 100644
index 0000000..327953f
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/u_appvalidator-prefs-devices.dita
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "../dtd/reference.dtd">

+<reference id="u_appvalidator-prefs-devices" xml:lang="en-us">

+  <title>Android App Validator preferences - Devices tab</title>

+  <shortdesc>Allows you to specify which devices, if any, an app should be validated against when the Android App

+    Validator is run.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <refbody>

+    <section>The list box on this tab lists all devices for which validation criteria is known. By default, all devices

+      are selected, meaning that when the App Validator is run it will validate the app against all of the

+      listed devices. If you don't intend your app to run on certain devices (tablets, for instance, or small-screen

+      devices) you can clear the appropriate checkboxes to prevent the App Validator from generating error or

+      warning messages for those devices. Note that although the device list is initially sorted by device name, you can

+      click the <uicontrol>Screen Size</uicontrol> or <uicontrol>Pixel Density</uicontrol> column headings to sort the

+      list by the selected criteria, making it easier to select or eliminate devices by their screen specifications.

+      Finally, note the <uicontrol>Select/deselect all</uicontrol> control beneath the list, which allows you to quickly

+      select or clear the list of devices for which the app will be validated.</section>

+  </refbody>

+</reference>

diff --git a/src/help/appvalidator_help/src/topics/u_appvalidator-prefs-general.dita b/src/help/appvalidator_help/src/topics/u_appvalidator-prefs-general.dita
new file mode 100644
index 0000000..f0d1b86
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/u_appvalidator-prefs-general.dita
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "../dtd/reference.dtd">

+<reference id="u_appvalidator-prefs-general" xml:lang="en-us">

+  <title>Android App Validator preferences - General Settings tab</title>

+  <shortdesc>Use the General Settings tab to control those aspects of the App Validator that are independent of

+    any specific checker or target device.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <refbody>

+    <simpletable>

+      <strow>

+        <stentry><b>Output limit</b></stentry>

+        <stentry>Limits the output to the specified number of entries. A value of zero indicates that there should be no

+          limit on the number of entries output by the App Validator.</stentry>

+      </strow>

+      <strow>

+        <stentry><uicontrol>Output type</uicontrol></stentry>

+        <stentry>Format the output as text (the default), as XML, or as comma-separated values suitable for importing

+          into a spreadsheet (CSV). When this option is specified, the verbosity level is automatically set to

+        0.</stentry>

+      </strow>

+      <strow>

+        <stentry><uicontrol>Warning levels</uicontrol></stentry>

+        <stentry>Controls the level of messages that are logged in the Problems view when the validator is run. Level 0

+          ("No messages") results in the most concise output, with no errors, warnings, or fix suggestions being logged,

+          while level 4 (the default) produces a detailed log of every error, warning, and fix suggestion.</stentry>

+      </strow>

+      <strow>

+        <stentry><uicontrol>Verbosity levels</uicontrol></stentry>

+        <stentry>Controls the "verbosity level" - the level of detail that is logged in the Console view when the

+          validator is run. Level 0 ("Only validation results") results in the most concise output, while level 2

+          ("Debug and Execution Info"--the default) is the most verbose.</stentry>

+      </strow>

+      <strow>

+        <stentry><b>Show errors as warnings in Eclipse Problems view</b></stentry>

+        <stentry>If selected, causes validation errors to be downgraded to warnings in the Problems view. This ensures

+          that validation errors don't prevent your app from building.</stentry>

+      </strow>

+    </simpletable>

+  </refbody>

+</reference>

diff --git a/src/help/appvalidator_help/src/topics/u_appvalidator-prefs.dita b/src/help/appvalidator_help/src/topics/u_appvalidator-prefs.dita
new file mode 100644
index 0000000..218720e
--- /dev/null
+++ b/src/help/appvalidator_help/src/topics/u_appvalidator-prefs.dita
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "../dtd/reference.dtd">

+<reference id="u_appvalidator-prefs" xml:lang="en-us">

+  <title>Android App Validator preferences dialog</title>

+  <shortdesc>The Android App Validator preferences dialog enables you to control how the validator operates when invoked

+    from within Eclipse. The Android App Validator preferences dialog can be found among the Eclipse preferences, under

+      <menucascade><uicontrol>MOTODEV Studio</uicontrol><uicontrol>Android App Validator</uicontrol></menucascade>.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <refbody/>

+</reference>

diff --git a/src/help/appvalidator_help/src/validation_editor.ditamap b/src/help/appvalidator_help/src/validation_editor.ditamap
new file mode 100644
index 0000000..9c323ac
--- /dev/null
+++ b/src/help/appvalidator_help/src/validation_editor.ditamap
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "../dtd/map.dtd">

+<!--<map title="Android App Validator User Guide" id="com.motorola.studio.android.tooldocs.validator.helpbase">-->

+<map title="Android App Validator User Guide" id="com.motorolamobility.preflighting.tooldocs.validator.helpbase">

+  <topicmeta>

+    <copyright>

+      <copyryear year="2010-2012"/>

+      <copyrholder>Motorola Mobility, Inc.</copyrholder>

+    </copyright>

+  </topicmeta>

+  <topichead navtitle="Tasks">

+    <topicref href="topics/t_validate-about.dita">

+      <topicref href="topics/t_app-validating-gui.dita"/>

+      <topicref href="topics/t_app-validating-command-line.dita"/>

+    </topicref>

+    <topicref href="topics/c_appvalidator-conditions.dita"/>

+  </topichead>

+  <topichead navtitle="Reference" type="reference">

+    <topicref href="topics/u_appvalidator-prefs.dita">

+      <topicref href="topics/u_appvalidator-prefs-general.dita"/>

+      <topicref href="topics/u_appvalidator-prefs-checkers.dita"/>

+      <topicref href="topics/u_appvalidator-prefs-devices.dita"/>

+    </topicref>

+    <topicref href="topics/r_appvalidator-cmdline.dita"/>

+  </topichead>

+  <reltable title="Uni-directional links (topics in col 1 show links to topics in col 2)">

+    <relheader>

+      <relcolspec linking="sourceonly"/>

+      <relcolspec/>

+    </relheader>

+    <relrow>

+      <relcell>

+        <topicref href="topics/u_appvalidator-prefs-checkers.dita"/>

+      </relcell>

+      <relcell>

+        <topicref href="topics/c_appvalidator-conditions.dita"/>

+      </relcell>

+    </relrow>

+  </reltable>

+  <reltable title="Bi-directional links (topics in col 1 and 2 show links to each other)">

+    <relheader>

+      <relcolspec/>

+      <relcolspec/>

+    </relheader>

+    <relrow>

+      <relcell>

+        <topicref href="topics/t_app-validating-command-line.dita"/>

+      </relcell>

+      <relcell>

+        <topicref href="topics/t_app-validating-gui.dita"/>

+      </relcell>

+    </relrow>

+    <relrow>

+      <relcell>

+        <topicref href="topics/t_app-validating-command-line.dita"/>

+      </relcell>

+      <relcell>

+        <topicref href="topics/r_appvalidator-cmdline.dita"/>

+      </relcell>

+    </relrow>

+    <relrow>

+      <relcell>

+        <topicref href="topics/t_app-validating-gui.dita"/>

+      </relcell>

+      <relcell>

+        <topicref href="topics/u_appvalidator-prefs.dita"/>

+      </relcell>

+    </relrow>

+  </reltable>

+</map>

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/plugin.xml b/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/plugin.xml
new file mode 100644
index 0000000..31ff52a
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/plugin.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- 
+     This is the plugin file that controls integration into the toolkit.
+     Each item in the plugin that extends a toolkit function must be listed
+     here. The only critical component is the catalog file, which must 
+     extend the Toolkit's catalog in order for your files to be processed.
+
+     If nothing else is overridden, then the toolkit will use fallback processing.
+     This plugin implements overrides for XHTML (including Eclipse help) produced 
+     by Motorola Dev Ed.
+
+     NOTE: paths in this file are relative to the current directory
+           (the same directory that includes this file).
+-->
+
+<plugin id="com.mot.mdb.deved.xhtml">
+
+  <!-- Extend the toolkit's XHTML processing to override XHTML output. -->
+  <feature extension="dita.xsl.xhtml" value="xsl/deved_xhtml.xsl" type="file"/>
+
+  <feature extension="dita.xsl.eclipse.plugin" value="xsl/deved_map2plugin.xsl" type="file"/>
+  
+  <!--  ************************************************************
+        Any other extensions to standard toolkit files will be listed here.
+        For example, to extend the RTF transform:
+
+        <feature extension="dita.xsl.rtf" value="xsl/music2rtf.xsl" type="file"/>
+
+        To extend the docbook transform:
+        <feature extension="dita.xsl.docbook" value="xsl/music2rtf.xsl" type="file"/>
+        
+       -->
+
+</plugin>
diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/readme.dita b/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/readme.dita
new file mode 100644
index 0000000..9bfbdb7
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/readme.dita
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN"

+ "reference.dtd">

+

+<!-- (C) Copyright IBM Corporation 2006 All Rights Reserved. -->

+<reference id="readme" xml:lang="en-us">

+  <title>Motorola Dev Ed XHTML processing overrides</title>

+  <shortdesc>This DITA Open Toolkit plug-in implements overrides to standard XHTML processing that Motorola Dev Ed

+    uses in all such output.</shortdesc>

+  <refbody>

+    

+    

+    

+    

+    

+  </refbody>

+</reference>

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/xsl/deved_map2plugin.xsl b/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/xsl/deved_map2plugin.xsl
new file mode 100644
index 0000000..d1b3cfc
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/xsl/deved_map2plugin.xsl
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="../../../xsl/map2pluginImpl.xsl"/>
+
+  <!--  -->
+  <!-- BEGIN OVERRIDE:  USE CRLF RATHER THAN LF IN MANIFEST.MF -->
+  <!-- 2009.06.26 BG:  Appears that Eclipse 3.5 requires this, so
+       I added explicit CRLF characters. Be careful not to change 
+       the whitespace within this variable.-->
+  <!--  -->
+  <xsl:variable name="newline">
+<xsl:text>&#13;&#10;</xsl:text></xsl:variable>
+  <!-- END OVERRIDE:  USE CRLF RATHER THAN LF IN MANIFEST.MF -->
+
+  <!--  -->
+  <!-- BEGIN OVERRIDE:  PLUGIN.PROPERTIES  -->
+  <!-- 2010.02.16 BG:  Engineering requested we change name property to pluginName -->
+  <!--  -->
+  <xsl:template match="*[contains(@class, ' map/map ')]" mode="eclipse.properties">
+    
+    <xsl:text># NLS_MESSAGEFORMAT_NONE</xsl:text><xsl:value-of select="$newline"/>
+    <xsl:text># NLS_ENCODING=UTF-8</xsl:text><xsl:value-of select="$newline"/>
+    <!--<xsl:value-of select="$newline"/>-->
+    <xsl:choose>
+      <xsl:when test="@title">
+        <xsl:text>pluginName=</xsl:text><xsl:value-of select="@title"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>name=Sample Title</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:value-of select="$newline"/>
+    <xsl:text>providerName=</xsl:text><xsl:value-of select="$provider"/>
+  </xsl:template>
+  <!-- END OVERRIDE:  PLUGIN.PROPERTIES -->
+
+
+  <!--  -->
+  <!-- BEGIN OVERRIDE:  MANIFEST.MF  -->
+  <!-- 2010.02.18 BG:  Engineering requested we change "name" property to "pluginName", 
+           "Eclipse-LazyStart: true" to "Bundle-ActivationPolicy: lazy", and add 
+           "Bundle-RequiredExecutionEnvironment: J2SE-1.5".-->
+  <!--  -->
+<xsl:template match="*[contains(@class, ' map/map ')]" mode="eclipse.manifest">
+    
+    <xsl:text>Bundle-Version: </xsl:text><xsl:value-of select="$version"/><xsl:value-of select="$newline"/>
+    <xsl:text>Manifest-Version: 1.0</xsl:text><xsl:value-of select="$newline"/>
+    <xsl:text>Bundle-ManifestVersion: 2</xsl:text><xsl:value-of select="$newline"/>
+    <xsl:text>Bundle-Localization: plugin</xsl:text><xsl:value-of select="$newline"/>
+    <xsl:text>Bundle-Name: %pluginName</xsl:text><xsl:value-of select="$newline"/>
+    <xsl:text>Bundle-Vendor: %providerName</xsl:text><xsl:value-of select="$newline"/>
+    
+    <xsl:choose>
+      <xsl:when test="$plugin='true'">
+        <xsl:text>Bundle-ActivationPolicy: lazy</xsl:text><xsl:value-of select="$newline"/>
+        <xsl:choose>
+          <xsl:when test="@id">
+            <xsl:text>Bundle-SymbolicName: </xsl:text><xsl:value-of select="@id"/>;<xsl:text> singleton:=true</xsl:text><xsl:value-of select="$newline"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>Bundle-SymbolicName: org.sample.help.doc; singleton:=true</xsl:text><xsl:value-of select="$newline"/>
+            <xsl:call-template name="output-message">
+              <xsl:with-param name="msgnum">050</xsl:with-param>
+              <xsl:with-param name="msgsev">W</xsl:with-param>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose> 
+        <xsl:text>Bundle-RequiredExecutionEnvironment: J2SE-1.5</xsl:text><xsl:value-of select="$newline"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="@id">                        
+            <xsl:if test="$fragment.lang!=''">
+              <xsl:text>Fragment-Host: </xsl:text><xsl:value-of select="@id"/>;
+              <xsl:text>Bundle-SymbolicName: </xsl:text>
+              <xsl:choose>
+                <xsl:when test="$fragment.country!=''">
+                  <xsl:value-of select="@id"/>.<xsl:value-of select="$fragment.lang"/>.<xsl:value-of select="$fragment.country"/>;<xsl:text/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="@id"/>.<xsl:value-of select="$fragment.lang"/>;<xsl:text/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:if> 
+            <xsl:if test="$fragment.lang=''">
+              <xsl:text>Bundle-SymbolicName: </xsl:text><xsl:value-of select="@id"/><xsl:value-of select="$newline"/>
+            </xsl:if>
+          </xsl:when>
+          <xsl:otherwise>
+            
+            <xsl:text>Bundle-SymbolicName: org.sample.help.doc.</xsl:text>
+            <xsl:choose>
+              <xsl:when test="$fragment.lang!=''">
+                <xsl:choose>
+                  <xsl:when test="$fragment.country!=''">
+                    <xsl:value-of select="$fragment.lang"/>.<xsl:value-of select="$fragment.country"/>;
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="$fragment.lang"/>;
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:when>
+              <!-- We shouldn' t be getting here, but just in case -->
+              <xsl:otherwise>
+                <xsl:text>lang; </xsl:text>
+              </xsl:otherwise>
+            </xsl:choose>
+            <xsl:value-of select="$newline"/>
+            <xsl:text>Fragment-Host: org.sample.help.doc;</xsl:text><xsl:value-of select="$newline"/>
+            <xsl:call-template name="output-message">
+              <xsl:with-param name="msgnum">050</xsl:with-param>
+              <xsl:with-param name="msgsev">W</xsl:with-param>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>                 
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <!-- END OVERRIDE:  MANIFEST.MF -->
+
+</xsl:stylesheet>
diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/xsl/deved_xhtml.xsl b/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/xsl/deved_xhtml.xsl
new file mode 100644
index 0000000..db9530c
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/com.mot.mdb.deved.xhtml/xsl/deved_xhtml.xsl
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!--<xsl:import href="../../../xsl/xslhtml/dita2htmlImpl.xsl"/>-->
+  
+  <!--  -->
+  <!-- BEGIN OVERRIDE:  DON'T REQUIRE @TMCLASS VALUE TO RENDER TRADEMARK -->
+  <!-- Change trademark logic to remove test for specific values of @tmclass, so symbol appears regardless of @tmclass. -->
+  <!--  -->
+  <xsl:template match="*[contains(@class,' topic/tm ')]" name="topic.tm">
+
+    <xsl:apply-templates/>
+    <!-- output the TM content -->
+
+    <xsl:variable name="Ltmclass">
+      <xsl:call-template name="convert-to-lower">
+        <!-- ensure lowercase for comparisons -->
+        <xsl:with-param name="inputval" select="@tmclass"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <!-- If this is a good class, continue... -->
+    <!--  Commented out <xsl:if> test for @tmclass value, so processing continues even if no value is specified. BG 2008.11.25. -->
+    <!--    <xsl:if test="$Ltmclass='ibm' or $Ltmclass='ibmsub' or $Ltmclass='special'">-->
+    <!-- Test for TM area's language -->
+    <xsl:variable name="tmtest">
+      <xsl:call-template name="tm-area"/>
+    </xsl:variable>
+
+    <!-- If this language should get trademark markers, continue... -->
+    <xsl:if test="$tmtest='tm'">
+      <xsl:variable name="tmvalue">
+        <xsl:value-of select="@trademark"/>
+      </xsl:variable>
+
+      <!-- Determine if this is in a title, and should be marked -->
+      <xsl:variable name="usetitle">
+        <xsl:if
+          test="ancestor::*[contains(@class,' topic/title ')]/parent::*[contains(@class,' topic/topic ')]">
+          <xsl:choose>
+            <!-- Not the first one in a title -->
+            <xsl:when test="generate-id(.)!=generate-id(key('tm',.)[1])">skip</xsl:when>
+            <!-- First one in the topic, BUT it appears in a shortdesc or body -->
+            <xsl:when
+              test="//*[contains(@class,' topic/shortdesc ') or contains(@class,' topic/body ')]//*[contains(@class,' topic/tm ')][@trademark=$tmvalue]"
+              >skip</xsl:when>
+            <xsl:otherwise>use</xsl:otherwise>
+          </xsl:choose>
+        </xsl:if>
+      </xsl:variable>
+
+      <!-- Determine if this is in a body, and should be marked -->
+      <xsl:variable name="usebody">
+        <xsl:choose>
+          <!-- If in a title or prolog, skip -->
+          <xsl:when
+            test="ancestor::*[contains(@class,' topic/title ') or contains(@class,' topic/prolog ')]/parent::*[contains(@class,' topic/topic ')]"
+            >skip</xsl:when>
+          <!-- If first in the document, use it -->
+          <xsl:when test="generate-id(.)=generate-id(key('tm',.)[1])">use</xsl:when>
+          <!-- If there is another before this that is in the body or shortdesc, skip -->
+          <xsl:when
+            test="preceding::*[contains(@class,' topic/tm ')][@trademark=$tmvalue][ancestor::*[contains(@class,' topic/body ') or contains(@class,' topic/shortdesc ')]]"
+            >skip</xsl:when>
+          <!-- Otherwise, any before this must be in a title or ignored section -->
+          <xsl:otherwise>use</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <!-- If it should be used in a title or used in the body, output your favorite TM marker based on the attributes -->
+      <xsl:if test="$usetitle='use' or $usebody='use'">
+        <xsl:choose>
+          <!-- ignore @tmtype=service or anything else -->
+          <xsl:when test="@tmtype='tm'">&#x2122;</xsl:when>
+          <!-- Removed superscript from TM symbol.  2008.11.25 BG. -->
+          <xsl:when test="@tmtype='reg'">&#xAE;</xsl:when>
+          <xsl:otherwise/>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:if>
+   <!-- </xsl:if>-->
+  </xsl:template>
+  <!-- END OVERRIDE:  DON'T REQUIRE @TMCLASS VALUE TO RENDER TRADEMARK -->
+
+
+
+<!--  -->
+<!-- BEGIN OVERRIDE:  REMOVE BR TAG BEFORE/AFTER IMAGES  -->
+<!--2009.03.17 bg:  Removed br tags before and after images when placement="break". 
+                                   Instead, added a div with class="imageleft" around such images.--> 
+<!--  -->
+<!-- =========== IMAGE/OBJECT =========== -->
+<xsl:template match="*[contains(@class,' topic/image ')]" name="topic.image">
+  <xsl:variable name="flagrules">
+    <xsl:call-template name="getrules"/>
+  </xsl:variable>
+  <!-- build any pre break indicated by style -->
+  <xsl:choose>
+    <xsl:when test="parent::fig[contains(@frame,'top ')]">
+      <!-- NOP if there is already a break implied by a parent property -->
+    </xsl:when>
+    <xsl:otherwise>
+     <xsl:choose>
+      <!-- 2009.03.17 bg:  Removed br tag in next line. --> 
+      <xsl:when test="(@placement='break')">
+        <xsl:call-template name="start-flagit">
+          <xsl:with-param name="flagrules" select="$flagrules"></xsl:with-param>     
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:call-template name="flagcheck"/>
+      </xsl:otherwise>
+     </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:call-template name="start-revflag">
+    <xsl:with-param name="flagrules" select="$flagrules"/>
+  </xsl:call-template>
+  <xsl:call-template name="setaname"/>
+  <xsl:choose>
+   <xsl:when test="@placement='break'"><!--Align only works for break-->
+    <xsl:choose>
+     <xsl:when test="@align='left'">
+      <div class="imageleft">
+       <xsl:call-template name="topic-image"/>
+      </div>
+     </xsl:when>
+     <xsl:when test="@align='right'">
+      <div class="imageright">
+       <xsl:call-template name="topic-image"/>
+      </div>
+     </xsl:when>
+     <xsl:when test="@align='center'">
+      <div class="imagecenter">
+       <xsl:call-template name="topic-image"/>
+      </div>
+     </xsl:when>
+     <xsl:otherwise>
+      <!--2009.03.17 bg: If @placement=break and @align isn't set, then style the same as when align is set to left.-->
+      <div class="imageleft">
+       <xsl:call-template name="topic-image"/>
+      </div>
+     </xsl:otherwise>
+    </xsl:choose>
+   </xsl:when>
+   <xsl:otherwise>
+    <xsl:call-template name="topic-image"/>
+   </xsl:otherwise>
+  </xsl:choose>
+  <xsl:call-template name="end-revflag">
+    <xsl:with-param name="flagrules" select="$flagrules"/>
+  </xsl:call-template>
+  <xsl:call-template name="end-flagit">
+    <xsl:with-param name="flagrules" select="$flagrules"></xsl:with-param> 
+  </xsl:call-template>
+  <!-- build any post break indicated by style -->
+  <!-- 2009.03.17 bg:  Removed br tag in next line. --> 
+  <xsl:if test="not(@placement='inline')"></xsl:if>
+  <!-- image name for review -->
+  <xsl:if test="$ARTLBL='yes'">
+    [<xsl:value-of select="@href"/>]
+  </xsl:if>
+</xsl:template>
+<!-- END OVERRIDE:  REMOVE BR TAG BEFORE/AFTER IMAGES  -->
+
+
+
+<!--  -->
+<!-- BEGIN OVERRIDE:  GLOSSENTRY TOPIC CSS STYLE -->
+<!-- 2009.03.17 bg:  Added class="glossentry" to div enclosing glossentry--> 
+<!--  -->
+<!-- child topics get a div wrapper and fall through -->
+<xsl:template match="*[contains(@class,' glossentry/glossentry ')]" name="child.topic">
+  <xsl:param name="nestlevel">
+      <xsl:choose>
+          <!-- Limit depth for historical reasons, could allow any depth. Previously limit was 5. -->
+          <xsl:when test="count(ancestor::*[contains(@class,' topic/topic ')]) > 9">9</xsl:when>
+          <xsl:otherwise><xsl:value-of select="count(ancestor::*[contains(@class,' topic/topic ')])"/></xsl:otherwise>
+      </xsl:choose>
+  </xsl:param>
+<div class="glossentry nested{$nestlevel}">
+ <xsl:call-template name="gen-topic"/>
+</div><xsl:value-of select="$newline"/>
+</xsl:template>
+<!-- END OVERRIDE:  GLOSSENTRY TOPIC CSS STYLE -->
+  
+  
+<!--  -->
+<!-- BEGIN OVERRIDE:  REMOVED BR BEFORE UNORDERED LISTS -->
+<!-- 2009.03.17 bg:  Removed br element before ul--> 
+<!--  -->
+<xsl:template match="*[contains(@class,' topic/ul ')]" mode="ul-fmt">
+  <xsl:variable name="flagrules">
+    <xsl:call-template name="getrules"/>
+  </xsl:variable>
+  <xsl:variable name="conflictexist">
+    <xsl:call-template name="conflict-check">
+      <xsl:with-param name="flagrules" select="$flagrules"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:call-template name="start-flagit">
+    <xsl:with-param name="flagrules" select="$flagrules"></xsl:with-param>     
+  </xsl:call-template>
+  <xsl:call-template name="start-revflag">
+    <xsl:with-param name="flagrules" select="$flagrules"/>
+  </xsl:call-template>
+ <xsl:call-template name="setaname"/>
+ <ul>
+   <xsl:call-template name="commonattributes"/>
+   <xsl:call-template name="gen-style">
+     <xsl:with-param name="conflictexist" select="$conflictexist"></xsl:with-param> 
+     <xsl:with-param name="flagrules" select="$flagrules"></xsl:with-param>
+   </xsl:call-template>
+   <xsl:apply-templates select="@compact"/>
+   <xsl:call-template name="setid"/>
+   <xsl:apply-templates/>
+ </ul>
+  <xsl:call-template name="end-revflag">
+    <xsl:with-param name="flagrules" select="$flagrules"/>
+  </xsl:call-template>
+  <xsl:call-template name="end-flagit">
+    <xsl:with-param name="flagrules" select="$flagrules"></xsl:with-param> 
+  </xsl:call-template>
+ <xsl:value-of select="$newline"/>
+</xsl:template>
+  <!-- END OVERRIDE:  REMOVED BR BEFORE UNORDERED LISTS -->
+  
+<!--  -->
+<!-- BEGIN OVERRIDE:  REMOVED BR BEFORE ORDERED LISTS -->
+<!-- 2009.03.17 bg:  Removed br element before ol--> 
+<!--  -->
+<xsl:template match="*[contains(@class,' topic/ol ')]" name="topic.ol">
+  <xsl:variable name="flagrules">
+    <xsl:call-template name="getrules"/>
+  </xsl:variable>
+  <xsl:variable name="conflictexist">
+    <xsl:call-template name="conflict-check">
+      <xsl:with-param name="flagrules" select="$flagrules"/>
+    </xsl:call-template>
+  </xsl:variable>
+<xsl:variable name="olcount" select="count(ancestor-or-self::*[contains(@class,' topic/ol ')])"/>
+  <xsl:call-template name="start-flagit">
+    <xsl:with-param name="flagrules" select="$flagrules"></xsl:with-param>     
+  </xsl:call-template>
+  <xsl:call-template name="start-revflag">
+    <xsl:with-param name="flagrules" select="$flagrules"/>
+  </xsl:call-template>
+<xsl:call-template name="setaname"/>
+<ol>
+  <xsl:call-template name="commonattributes"/>
+  <xsl:call-template name="gen-style">
+    <xsl:with-param name="conflictexist" select="$conflictexist"></xsl:with-param> 
+    <xsl:with-param name="flagrules" select="$flagrules"></xsl:with-param>
+  </xsl:call-template>
+  <xsl:apply-templates select="@compact"/>
+  <xsl:choose>
+    <xsl:when test="$olcount mod 3 = 1"/>
+    <xsl:when test="$olcount mod 3 = 2"><xsl:attribute name="type">a</xsl:attribute></xsl:when>
+    <xsl:otherwise><xsl:attribute name="type">i</xsl:attribute></xsl:otherwise>
+  </xsl:choose>
+  <xsl:call-template name="setid"/>
+  <xsl:apply-templates/>
+</ol>
+  <xsl:call-template name="end-revflag">
+    <xsl:with-param name="flagrules" select="$flagrules"/>
+  </xsl:call-template>
+  <xsl:call-template name="end-flagit">
+    <xsl:with-param name="flagrules" select="$flagrules"></xsl:with-param> 
+  </xsl:call-template>
+<xsl:value-of select="$newline"/>
+</xsl:template>
+<!-- END OVERRIDE:  REMOVED BR BEFORE ORDERED LISTS -->
+
+</xsl:stylesheet>
diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/catalog-dita.xml b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/catalog-dita.xml
new file mode 100644
index 0000000..e12052c
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/catalog-dita.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" ?>

+<!-- This file is part of the DITA Open Toolkit project hosted on 

+     Sourceforge.net. See the accompanying license.txt file in the

+     main toolkit package for applicable licenses.-->

+<!-- (C) Copyright IBM Corporation 2006 All Rights Reserved. -->

+

+<!--

+     This file declares each DTD module that is part of the specialization.

+     The path is relative to the base toolkit directory.

+-->

+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"

+         prefer="public">

+

+  <public publicId="-//IBM//DTD DITA CSHelp//EN"

+          uri="plugins/cshelp/dtd/cshelp.dtd"/>

+  <public publicId="-//IBM//ELEMENTS DITA CSHelp//EN"

+       uri="plugins/cshelp/dtd/cshelp.mod"/>

+

+</catalog>

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/dtd/cshelp.dtd b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/dtd/cshelp.dtd
new file mode 100644
index 0000000..331576f
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/dtd/cshelp.dtd
@@ -0,0 +1,101 @@
+<?xml encoding="utf-8"?>

+<!--

+ | (C) Copyright IBM Corporation 2005, 2006 All Rights Reserved.

+ | This file is a specialization of DITA 3.0. See license.txt

+ | for disclaimers and permissions.

+ |

+ | This file is part of the DITA Open Toolkit project hosted on

+ | Sourceforge.net. See the accompanying license.txt file for 

+ | applicable licenses.

+ |

+ | The Darwin Information Typing Architecture (DITA) was orginated by

+ | IBM's XML Workgroup and ID Workbench tools team.

+ |

+ | Refer to this file by the following public identfier or an appropriate

+ | system identifier:

+ |

+ |   PUBLIC "-//IBM//DTD DITA CSHelp//EN"

+ |

+ | Release history (vrm):

+ |   1.0.0 Initial release, December 2005

+ *-->

+

+<!--vocabulary declarations-->

+<!ENTITY % ui-d-dec     PUBLIC 

+"-//OASIS//ENTITIES DITA User Interface Domain//EN" 

+"../../../dtd/uiDomain.ent"                                         >

+%ui-d-dec;

+

+<!ENTITY % hi-d-dec     PUBLIC 

+"-//OASIS//ENTITIES DITA Highlight Domain//EN" 

+"../../../dtd/highlightDomain.ent"                                  >

+%hi-d-dec;

+

+<!ENTITY % pr-d-dec     PUBLIC 

+"-//OASIS//ENTITIES DITA Programming Domain//EN" 

+"../../../dtd/programmingDomain.ent"                                >

+%pr-d-dec;

+

+<!ENTITY % sw-d-dec     PUBLIC 

+"-//OASIS//ENTITIES DITA Software Domain//EN" 

+"../../../dtd/softwareDomain.ent"                                   >

+%sw-d-dec;

+

+<!ENTITY % ut-d-dec     PUBLIC 

+"-//OASIS//ENTITIES DITA Utilities Domain//EN" 

+"../../../dtd/utilitiesDomain.ent"                                  >

+%ut-d-dec;

+

+

+<!--vocabulary substitution (one for each extended base element,

+    with the name of the domain(s) in which the extension was declared)-->

+<!ENTITY % pre     "pre     | %pr-d-pre;     | %sw-d-pre;     | %ui-d-pre;">

+<!ENTITY % keyword "keyword | %pr-d-keyword; | %sw-d-keyword; | %ui-d-keyword;">

+<!ENTITY % ph      "ph      | %pr-d-ph;      | %sw-d-ph;      | %hi-d-ph; | %ui-d-ph;">

+<!ENTITY % fig     "fig     | %pr-d-fig;     | %ut-d-fig;">

+<!ENTITY % dl      "dl      | %pr-d-dl;">

+

+<!--Allow nesting of only cshelp infotype-->

+<!ENTITY % cshelp-info-types "cshelp">

+

+<!--vocabulary attributes (must be declared ahead of the dtds, which puts @domains first in order) -->

+<!ENTITY included-domains "&ui-d-att; &hi-d-att; &pr-d-att; &sw-d-att; &ut-d-att;">

+

+<!--Embed topic to get generic elements -->

+<!ENTITY % topic-type PUBLIC 

+"-//OASIS//ELEMENTS DITA Topic//EN" 

+"../../../dtd/topic.mod">

+  %topic-type;

+

+<!--Embed reference to get specific elements -->

+<!ENTITY % cshelp-typemod PUBLIC

+"-//IBM//ELEMENTS DITA CSHelp//EN"

+"cshelp.mod">

+  %cshelp-typemod;

+

+

+<!--vocabulary definitions-->

+<!ENTITY % ui-d-def     PUBLIC 

+"-//OASIS//ELEMENTS DITA User Interface Domain//EN" 

+"../../../dtd/uiDomain.mod">

+%ui-d-def;

+

+<!ENTITY % hi-d-def     PUBLIC 

+"-//OASIS//ELEMENTS DITA Highlight Domain//EN" 

+"../../../dtd/highlightDomain.mod">

+%hi-d-def;

+

+<!ENTITY % pr-d-def     PUBLIC 

+"-//OASIS//ELEMENTS DITA Programming Domain//EN" 

+"../../../dtd/programmingDomain.mod">

+%pr-d-def;

+

+<!ENTITY % sw-d-def     PUBLIC 

+"-//OASIS//ELEMENTS DITA Software Domain//EN" 

+"../../../dtd/softwareDomain.mod">

+%sw-d-def;

+

+<!ENTITY % ut-d-def     PUBLIC 

+"-//OASIS//ELEMENTS DITA Utilities Domain//EN" 

+"../../../dtd/utilitiesDomain.mod">

+%ut-d-def;

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/dtd/cshelp.mod b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/dtd/cshelp.mod
new file mode 100644
index 0000000..66942e3
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/dtd/cshelp.mod
@@ -0,0 +1,85 @@
+<!--

+ |  (C) Copyright IBM Corporation 2005, 2006 All Rights Reserved.

+ | This file is a specialization of DITA 3.0. See license.txt

+ | for disclaimers and permissions.

+ |

+ | This file is part of the DITA Open Toolkit project hosted on

+ | Sourceforge.net. See the accompanying license.txt file for 

+ | applicable licenses.

+ |

+ | The Darwin Information Typing Architecture (DITA) was orginated by

+ | IBM's XML Workgroup and ID Workbench tools team.

+ |

+ | Refer to this file by the following public identfier or an appropriate

+ | system identifier:

+ |

+ |   PUBLIC "-//IBM//ELEMENTS DITA CSHelp//EN"

+ |

+ | Release history (vrm):

+ |   1.0.0 Initial release, December 2005

+ *-->

+

+<!ENTITY DTDVersion 'V1.1.1' >

+

+

+<!-- Specialization of declared elements -->

+

+<!ENTITY % csprolog      "csprolog">

+<!ENTITY % csmetadata    "csmetadata">

+<!ENTITY % cswindowtitle "cswindowtitle">

+<!ENTITY % cswidgetlabel "cswidgetlabel"> 

+<!ENTITY % csbody        "csbody">

+<!ENTITY % cshelp-info-types "%info-types;">

+

+<!-- declared here, defined later -->

+<!ENTITY included-domains "">

+

+<!--doc:The <cshelp> element is the top-level element for a topic that corresponds to an Eclipse Help context (a brief description and link that appear after the user presses a Help button). To create one Eclipse context.xml file, create one DITA file with a root element of <cshelp> in which you next further <cshelp> topics, one for each context-sensitive help item. Only the content of the nested elements is output; the root element is a required, but empty container.

+Category: CS Help plug-in elements-->

+<!ELEMENT cshelp (%title;, (%titlealts;)?, (%shortdesc;), (%csprolog;)?, %csbody;, (%related-links;)?, (%cshelp-info-types;)* )>

+<!ATTLIST cshelp  id ID #REQUIRED

+                  conref CDATA #IMPLIED

+                  %select-atts;

+                  outputclass CDATA #IMPLIED

+                  xml:lang NMTOKEN #IMPLIED

+                  DTDVersion CDATA #FIXED "&DTDVersion;"

+                  domains CDATA "&included-domains;"

+>

+

+<!--doc:The optional <csprolog> element contains <csmetadata> elements to describe the UI related to this context. 

+Category: CS Help plug-in elements-->

+<!ELEMENT csprolog ((%author;)*,(%source;)?,(%publisher;)?,(%copyright;)*,(%critdates;)?,(%permissions;)?,(%csmetadata;)*, (%resourceid;)*)>

+

+<!--doc:The optional <csmetadata> element contains <cswindowtitle> and <cswidgetlabel> elements. 

+Category: CS Help plug-in elements-->

+<!ELEMENT csmetadata ((%audience;)*,(%cswindowtitle;)?,(%cswidgetlabel;)?,(%category;)*,(%keywords;)*,(%prodinfo;)*,(%othermeta;)*)>

+

+<!-- define a custom block type with predefined topic content types -->

+

+<!-- txt.incl minus footnotes and index entries -->

+

+<!--doc:The <csbody> element contains the body of the CS Help topic.  All the elements allowed in <body> are allowed in <csbody>; however, some result in no output because of Eclipse Help limitations.  For example, table, simpletable, image, figure, xref, indexterm, indextermref, footnote, object are not output. Many in-line elements display using the <b> tag. Lists are supported, but nested lists are not recommended.

+Category: CS Help plug-in elements-->

+<!ELEMENT csbody  (%body.cnt;)*>

+<!ATTLIST csbody  %id-atts;

+                  translate (yes|no) #IMPLIED

+                  xml:lang NMTOKEN #IMPLIED

+                  outputclass CDATA #IMPLIED

+>

+

+<!--doc:The optional <cswindowtitle> element identifies the window associated with this context-sensitive help item. This content does not appear in the output context file. 

+Category: CS Help plug-in elements-->

+<!ELEMENT cswindowtitle (#PCDATA)>

+

+<!--doc:The optional <cswidgetlabel> element identifies the UI widget within the window associated with this context-sensitive help item. This content does not appear in the output context file. 

+Category: CS Help plug-in elements-->

+<!ELEMENT cswidgetlabel (#PCDATA)>

+

+<!--specialization attributes-->

+

+<!ATTLIST cshelp        %global-atts; class  CDATA "- topic/topic cshelp/cshelp ">

+<!ATTLIST csbody        %global-atts; class  CDATA "- topic/body cshelp/csbody ">

+<!ATTLIST csprolog      %global-atts; class  CDATA "- topic/prolog cshelp/csprolog ">

+<!ATTLIST csmetadata    %global-atts; class  CDATA "- topic/metadata cshelp/csmetadata ">

+<!ATTLIST cswindowtitle %global-atts; class  CDATA "- topic/category cshelp/cswindowtitle ">

+<!ATTLIST cswidgetlabel %global-atts; class  CDATA "- topic/category cshelp/cswidgetlabel ">

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/install-plugin.xml b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/install-plugin.xml
new file mode 100644
index 0000000..d3ac98b
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/install-plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!-- This file is part of the DITA Open Toolkit project hosted on 

+     Sourceforge.net. See the accompanying license.txt file in the

+     main toolkit package for applicable licenses.-->

+<!-- (C) Copyright IBM Corporation 2006 All Rights Reserved. -->

+

+<!-- 

+     This is a shortcut file that will integrate the plugin, if you do not regularly

+     run the integrator as part of a build.

+

+     Alternatively, from the main toolkit directory, you could integrate with:

+     ant -f integrator.xml

+-->

+     

+<project name="cshelp" default="all" basedir="../..">

+    <import file="${basedir}${file.separator}integrator.xml"/>

+

+	<target name="all" depends="integrate"/>

+

+</project>

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/plugin.xml b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/plugin.xml
new file mode 100644
index 0000000..a4a5d07
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/plugin.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file is part of the DITA Open Toolkit project hosted on 
+     Sourceforge.net. See the accompanying license.txt file in the
+     main toolkit package for applicable licenses.-->
+<!-- (C) Copyright IBM Corporation 2006 All Rights Reserved. -->
+
+<plugin id="org.dita.specialization.cshelp">
+  <!-- Extend the toolkit catalog to include DTDs. -->
+  <feature extension="dita.specialization.catalog"
+      value="catalog-dita.xml" type="file"/>
+
+  <!-- Extend the toolkit's XHTML processing to override XHTML output. -->
+  <feature extension="dita.xsl.xhtml"
+      value="xsl/cshdisplay.xsl" type="file"/>
+
+</plugin>
diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/samples/test.ditamap b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/samples/test.ditamap
new file mode 100644
index 0000000..55549f5
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/samples/test.ditamap
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN"

+ "ibm-map.dtd">

+<!-- This file is part of the DITA Open Toolkit project hosted on -->

+<!-- Sourceforge.net. See the accompanying license.txt file for   -->

+<!-- applicable licenses.                                         -->

+<map title="CS Help test">

+<topicmeta>

+<copyright>

+<copyryear year="2000"/>

+<copyryear year="2006"/>

+<copyrholder></copyrholder>

+</copyright>

+</topicmeta>

+<topicref href="test_csh_1.dita" navtitle=""></topicref>

+<topicref href="test_csh_2.dita" navtitle=""></topicref>

+</map>

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/samples/test_csh_1.dita b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/samples/test_csh_1.dita
new file mode 100644
index 0000000..f1b729b
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/samples/test_csh_1.dita
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"

+ "..\dtd\cshelp.dtd">

+<!-- This file is part of the DITA Open Toolkit project hosted on -->

+<!-- Sourceforge.net. See the accompanying license.txt file for   -->

+<!-- applicable licenses.                                         -->

+<cshelp id="test_csh_1" xml:lang="en-us">

+<title>Test CSH file</title>

+<shortdesc></shortdesc>

+<csbody></csbody>

+<cshelp id="contextId1" xml:lang="en-us">

+<title>My First CSH topic</title>

+<shortdesc>This is the first sentence of my context-sensitive help topic.</shortdesc>

+<csprolog><csmetadata>

+<cswindowtitle>(optional) The name of the window or view discussed by this

+CSH topic.</cswindowtitle>

+<cswidgetlabel>(optional) The name of the control discussed by this CSH topic.</cswidgetlabel>

+</csmetadata></csprolog>

+<csbody>

+<p>Here is the second sentence of my cshelp topic.</p>

+</csbody>

+<related-links>

+<link format="dita" href="../com.mycompany.myplugin/a.dita" scope="peer"><linktext>Link

+text</linktext></link>

+</related-links>

+</cshelp>

+<cshelp id="contextId2" xml:lang="en-us">

+<title>Another CSH topic</title>

+<shortdesc>This is the first sentence of another context-sensitive help topic.</shortdesc>

+<csbody>

+<p>This is the second sentence of my cshelp topic.</p>

+</csbody>

+<related-links>

+<link format="dita" href="../com.mycompany.myplugin/a.dita" scope="peer"><linktext>Link

+text</linktext></link>

+</related-links>

+</cshelp>

+<cshelp id="contextId3" xml:lang="en-us">

+<title>Third CSH topic</title>

+<shortdesc>Here is the third CSH topic.</shortdesc>

+<csbody></csbody>

+<related-links>

+<link format="dita" href="../com.mycompany.myplugin/b.dita" scope="peer"><linktext>Link

+text</linktext></link>

+</related-links>

+</cshelp>

+</cshelp>

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/samples/test_csh_2.dita b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/samples/test_csh_2.dita
new file mode 100644
index 0000000..e797c89
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/samples/test_csh_2.dita
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE cshelp PUBLIC "-//IBM//DTD DITA CSHelp//EN"

+ "..\dtd\cshelp.dtd">

+<!-- This file is part of the DITA Open Toolkit project hosted on -->

+<!-- Sourceforge.net. See the accompanying license.txt file for   -->

+<!-- applicable licenses.                                         -->

+<cshelp id="test_csh_1" xml:lang="en-us">

+<title>Second CSH file</title>

+<shortdesc></shortdesc>

+<csbody></csbody>

+<cshelp id="contextId4" xml:lang="en-us">

+<title>CSH topic four</title>

+<shortdesc>This is the first sentence of context-sensitive help topic four.</shortdesc>

+<csbody>

+<p>Here is the second sentence.</p>

+</csbody>

+<related-links>

+<link format="dita" href="../com.mycompany.myplugin/a.dita" scope="peer"><linktext>Link

+text</linktext></link>

+</related-links>

+</cshelp>

+<cshelp id="contextId5" xml:lang="en-us">

+<title>CSH topic five</title>

+<shortdesc>This is the first sentence of context-sensitive help topic five.</shortdesc>

+<csbody>

+<p>This is the second sentence.</p>

+</csbody>

+<related-links>

+<link format="dita" href="../com.mycompany.myplugin/a.dita" scope="peer"><linktext>Link

+text</linktext></link>

+</related-links>

+</cshelp>

+</cshelp>

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/GetCSHMeta.xsl b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/GetCSHMeta.xsl
new file mode 100644
index 0000000..d69cc01
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/GetCSHMeta.xsl
@@ -0,0 +1,591 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!-- (c) Copyright IBM Corp. 2005, 2006 All Rights Reserved.      -->

+<!-- This file is part of the DITA Open Toolkit project hosted on -->

+<!-- Sourceforge.net. See the accompanying license.txt file for   -->

+<!-- applicable licenses.                                         -->

+

+<xsl:stylesheet version="1.0"

+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

+

+<!-- Metadata conversions from DITA to Eclipse context file XML -->

+

+<xsl:key name="meta-keywords" match="*[ancestor::*[contains(@class,' topic/keywords ')]]" use="text()"/>

+

+<xsl:template name="getCSHMeta">

+

+  <!-- = = = = = = = = = = = CONTENT = = = = = = = = = = = -->

+

+  <!-- CONTENT: Type -->

+  <xsl:apply-templates select="." mode="gen-type-metadata"/>

+

+  <!-- CONTENT: Title - title -->

+  <xsl:apply-templates select="*[contains(@class,' topic/title ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/title ')]" mode="gen-metadata"/>

+

+  <!-- CONTENT: Description - shortdesc -->

+  <xsl:apply-templates select="*[contains(@class,' topic/shortdesc ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/shortdesc ')]" mode="gen-metadata"/>

+

+  <!-- CONTENT: Source - prolog/source/@href -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/source ')]/@href |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/source ')]/@href" mode="gen-metadata"/>

+

+  <!-- CONTENT: Coverage prolog/metadata/category -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/category ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/category ')]" mode="gen-metadata"/>

+

+  <!-- CONTENT: Subject - prolog/metadata/keywords -->

+  <xsl:apply-templates select="." mode="gen-keywords-metadata"/>

+

+  <!-- CONTENT: Relation - related-links -->

+  <xsl:apply-templates select="*[contains(@class,' topic/related-links ')]/descendant::*/@href |

+                               self::dita/*/*[contains(@class,' topic/related-links ')]/descendant::*/@href" mode="gen-metadata"/>

+

+  <!-- = = = = = = = = = = = Product - Audience = = = = = = = = = = = -->

+  <!-- Audience -->

+  <!-- prolog/metadata/audience/@experiencelevel and other attributes -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@experiencelevel |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@experiencelevel" mode="gen-metadata"/>

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@importance |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@importance" mode="gen-metadata"/>

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@job |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@job" mode="gen-metadata"/>

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@name |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@name" mode="gen-metadata"/>

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@type |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/audience ')]/@type" mode="gen-metadata"/>

+

+

+  <!-- <prodname> -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/prodname ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/prodname ')]" mode="gen-metadata"/>

+

+  <!-- <vrmlist><vrm modification="3" release="2" version="5"/></vrmlist> -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/vrmlist ')]/*[contains(@class,' topic/vrm ')]/@version |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/vrmlist ')]/*[contains(@class,' topic/vrm ')]/@version" mode="gen-metadata"/>

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/vrmlist ')]/*[contains(@class,' topic/vrm ')]/@release |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/vrmlist ')]/*[contains(@class,' topic/vrm ')]/@release" mode="gen-metadata"/>

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/vrmlist ')]/*[contains(@class,' topic/vrm ')]/@modification |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/vrmlist ')]/*[contains(@class,' topic/vrm ')]/@modification" mode="gen-metadata"/>

+

+  <!-- <brand> -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/brand ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/brand ')]" mode="gen-metadata"/>

+  <!-- <component> -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/component ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/component ')]" mode="gen-metadata"/>

+  <!-- <featnum> -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/featnum ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/featnum ')]" mode="gen-metadata"/>

+  <!-- <prognum> -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/prognum ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/prognum ')]" mode="gen-metadata"/>

+  <!-- <platform> -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/platform ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/platform ')]" mode="gen-metadata"/>

+  <!-- <series> -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/series ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/prodinfo ')]/*[contains(@class,' topic/series ')]" mode="gen-metadata"/>

+

+  <!-- = = = = = = = = = = = INTELLECTUAL PROPERTY = = = = = = = = = = = -->

+

+  <!-- INTELLECTUAL PROPERTY: Contributor - prolog/author -->

+  <!-- INTELLECTUAL PROPERTY: Creator -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/author ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/author ')]" mode="gen-metadata"/>

+

+  <!-- INTELLECTUAL PROPERTY: Publisher - prolog/publisher -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/publisher ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/publisher ')]" mode="gen-metadata"/>

+

+  <!-- INTELLECTUAL PROPERTY: Rights - prolog/copyright -->

+  <!-- Put primary first, then secondary, then remainder -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/copyright ')][@type='primary'] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/copyright ')][@type='primary']" mode="gen-metadata"/>

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/copyright ')][@type='secondary'] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/copyright ')][@type='seconday']" mode="gen-metadata"/>

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/copyright ')][not(@type)] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/copyright ')][not(@type)]" mode="gen-metadata"/>

+

+  <!-- Usage Rights - prolog/permissions -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/permissions ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/permissions ')]" mode="gen-metadata"/>

+

+  <!-- = = = = = = = = = = = INSTANTIATION = = = = = = = = = = = -->

+

+  <!-- INSTANTIATION: Date - prolog/critdates/created -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/created ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/created ')]" mode="gen-metadata"/>

+

+  <!-- prolog/critdates/revised/@modified -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/revised ')]/@modified |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/revised ')]/@modified" mode="gen-metadata"/>

+

+  <!-- prolog/critdates/revised/@golive -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/revised ')]/@golive |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/revised ')]/@golive" mode="gen-metadata"/>

+

+  <!-- prolog/critdates/revised/@expiry -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/revised ')]/@expiry |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/revised ')]/@expiry" mode="gen-metadata"/>

+

+  <!-- prolog/metadata/othermeta -->

+  <xsl:apply-templates select="*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/othermeta ')] |

+                               self::dita/*[1]/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/othermeta ')]" mode="gen-metadata"/>

+

+  <!-- INSTANTIATION: Format -->

+  <xsl:apply-templates select="." mode="gen-format-metadata"/>

+

+  <!-- INSTANTIATION: Identifier --> <!-- id is an attribute on Topic -->

+  <xsl:apply-templates select="@id | self::dita/*[1]/@id" mode="gen-metadata"/>

+

+  <!-- INSTANTIATION: Language -->

+  <xsl:apply-templates select="@xml:lang | self::dita/*[1]/@xml:lang" mode="gen-metadata"/>

+

+</xsl:template>

+

+

+<!-- CONTENT: Type -->

+<xsl:template match="dita" mode="gen-type-metadata">

+  <xsl:apply-templates select="*[1]" mode="gen-type-metadata"/>

+</xsl:template>

+<xsl:template match="*" mode="gen-type-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Type" content="</xsl:text>

+	<xsl:value-of select="name(.)"/>

+  <xsl:text disable-output-escaping="yes"> --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- CONTENT: Title - title -->

+<xsl:template match="*[contains(@class,' topic/title ')]" mode="gen-metadata">

+  <xsl:variable name="titlemeta">

+    <xsl:apply-templates select="*|text()" mode="text-only"/>

+  </xsl:variable>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Title" content="</xsl:text>

+	<xsl:value-of select="normalize-space($titlemeta)" />

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- CONTENT: Description - shortdesc -->

+<xsl:template match="*[contains(@class,' topic/shortdesc ')]" mode="gen-metadata">

+  <xsl:variable name="shortmeta">

+    <xsl:apply-templates select="*|text()" mode="text-only"/>

+  </xsl:variable>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="abstract" content="</xsl:text>

+     <xsl:value-of select="normalize-space($shortmeta)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="description" content="</xsl:text>

+     <xsl:value-of select="normalize-space($shortmeta)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- CONTENT: Source - prolog/source/@href -->

+<xsl:template match="*[contains(@class,' topic/source ')]/@href" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Source" content="</xsl:text>

+     <xsl:value-of select="normalize-space(.)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- CONTENT: Coverage prolog/metadata/category -->

+<xsl:template match="*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/category ')]" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Coverage" content="</xsl:text>

+     <xsl:value-of select="normalize-space(.)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- CONTENT: Subject - prolog/metadata/keywords -->

+<xsl:template match="*" mode="gen-keywords-metadata">

+  <xsl:variable name="keywords-content">

+    <!-- for each item inside keywords (including nested index terms) -->

+    <xsl:for-each select="descendant::*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/metadata ')]/*[contains(@class,' topic/keywords ')]/descendant-or-self::*">

+      <!-- If this is the first term or keyword with this value -->

+      <xsl:if test="generate-id(key('meta-keywords',text())[1])=generate-id(.)">

+        <xsl:if test="position()>2"><xsl:text>, </xsl:text></xsl:if>

+        <xsl:value-of select="normalize-space(text())"/>

+      </xsl:if>

+    </xsl:for-each>

+  </xsl:variable>

+

+  <xsl:if test="string-length($keywords-content)>0">

+    <!-- <meta name="DC.subject" content="{$keywords-content}"/> -->

+    <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.subject" content="</xsl:text>

+       <xsl:value-of select="$keywords-content"/>

+    <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+    <xsl:value-of select="$newline"/>

+    <!-- <meta name="keywords" content="{$keywords-content}"/> -->

+    <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.subject" content="</xsl:text>

+       <xsl:value-of select="$keywords-content"/>

+    <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+    <xsl:value-of select="$newline"/>

+  </xsl:if>

+</xsl:template>

+

+<!-- CONTENT: Relation - related-links -->

+<xsl:template match="*[contains(@class,' topic/link ')]/@href" mode="gen-metadata">

+ <xsl:variable name="linkmeta">

+  <xsl:value-of select="normalize-space(.)"/>

+ </xsl:variable>

+ <xsl:choose>

+  <xsl:when test="substring($linkmeta,1,1)='#'" />  <!-- ignore internal file links -->

+  <xsl:otherwise>

+    <xsl:variable name="linkmeta_ext">

+     <xsl:choose>

+      <xsl:when test="contains($linkmeta,'.dita')">

+       <xsl:value-of select="substring-before($linkmeta,'.dita')"/>.<xsl:value-of select="$OUTEXT"/><xsl:value-of select="substring-after($linkmeta,'.dita')"/>

+      </xsl:when>

+      <xsl:otherwise>

+       <xsl:value-of select="$linkmeta"/>

+      </xsl:otherwise>

+     </xsl:choose>

+    </xsl:variable>

+    <!-- <meta name="DC.Relation" scheme="URI">

+      <xsl:attribute name="content"><xsl:value-of select="$linkmeta_ext"/></xsl:attribute>

+    </meta> -->

+    <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.relation" scheme="URI" content="</xsl:text>

+       <xsl:value-of select="$linkmeta_ext"/>

+    <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+    <xsl:value-of select="$newline"/>

+   </xsl:otherwise>

+ </xsl:choose>

+</xsl:template>

+

+<!-- Do not let any other @href's inside related-links generate metadata -->

+<xsl:template match="*/@href" mode="gen-metadata" priority="0"/>

+

+<!-- INTELLECTUAL PROPERTY: Contributor - prolog/author -->

+<!-- INTELLECTUAL PROPERTY: Creator -->

+<!-- Default is type='creator' -->

+<xsl:template match="*[contains(@class,' topic/author ')]" mode="gen-metadata">

+  <xsl:choose>

+    <xsl:when test="@type= 'contributor'">

+      <!-- <meta name="DC.Contributor" content="{normalize-space(.)}"/> -->

+      <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Contributor" content="</xsl:text>

+        <xsl:value-of select="normalize-space(.)"/>

+      <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+      <xsl:value-of select="$newline"/>

+    </xsl:when>

+    <xsl:otherwise>

+      <!-- <meta name="DC.Creator" content="{normalize-space(.)}"/> -->

+      <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Creator" content="</xsl:text>

+        <xsl:value-of select="normalize-space(.)"/>

+      <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+      <xsl:value-of select="$newline"/>

+    </xsl:otherwise>

+  </xsl:choose>

+</xsl:template>

+

+<!-- INTELLECTUAL PROPERTY: Publisher - prolog/publisher -->

+<xsl:template match="*[contains(@class,' topic/publisher ')]" mode="gen-metadata">

+  <!-- <meta name="DC.Publisher" content="{normalize-space(.)}"/> -->

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Publisher" content="</xsl:text>

+    <xsl:value-of select="normalize-space(.)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- Place copyrights in keys for quick lookup. A copyright should only appear once; if it is primary

+     it should appear first with other primaries; if secondary, after primaries; otherwise, after

+     any that had @type. -->

+<xsl:key name="primary-meta-copyright" match="*[contains(@class,' topic/copyright ')][@type='primary']"

+                               use="concat(*[contains(@class,' topic/copyryear ')]/@year,

+                                           *[contains(@class,' topic/copyrholder ')])"/>

+<xsl:key name="secondary-meta-copyright" match="*[contains(@class,' topic/copyright ')][@type='secondary']"

+                               use="concat(*[contains(@class,' topic/copyryear ')]/@year,

+                                           *[contains(@class,' topic/copyrholder ')])"/>

+<xsl:key name="meta-copyright" match="*[contains(@class,' topic/copyright ')][not(@type)]"

+                               use="concat(*[contains(@class,' topic/copyryear ')]/@year,

+                                           *[contains(@class,' topic/copyrholder ')])"/>

+

+<xsl:template name="generate-copyright-attributes">

+   <xsl:choose>

+     <xsl:when test="*[contains(@class,' topic/copyrholder ')]/text() | *[contains(@class,' topic/copyrholder ')]/*">

+       <xsl:value-of select="normalize-space(*[contains(@class,' topic/copyrholder ')])"/>

+     </xsl:when>

+     <xsl:otherwise>

+       <xsl:text>(C) </xsl:text>

+       <xsl:call-template name="getString">

+        <xsl:with-param name="stringName" select="'Copyright IBM'"/>

+       </xsl:call-template>

+     </xsl:otherwise>

+   </xsl:choose>

+   <xsl:for-each select="*[contains(@class,' topic/copyryear ')]">

+    <xsl:text> </xsl:text><xsl:value-of select="@year"/>

+   </xsl:for-each>

+</xsl:template>

+

+<xsl:template match="*" mode="valid-copyright">

+  <!--P018721: if year and holder are both empty, do not generate anything -->

+  <xsl:variable name="copyrInfo">

+    <!-- Check for any text in the copyrholder or the year; if both are empty, no

+         copyright will be used -->

+    <xsl:value-of select="*[contains(@class,' topic/copyrholder ')] |

+                          *[contains(@class,' topic/copyryear ')]/@year"/>

+  </xsl:variable>

+  <xsl:if test="normalize-space($copyrInfo)!=''">

+    <!-- <meta name="copyright"><xsl:call-template name="generate-copyright-attributes"/></meta> -->

+    <xsl:text disable-output-escaping="yes">&lt;!-- meta name="copyright" content="</xsl:text>

+      <xsl:call-template name="generate-copyright-attributes"/>

+    <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+    <xsl:value-of select="$newline"/>

+    <!-- <meta name="DC.Rights.Owner"><xsl:call-template name="generate-copyright-attributes"/></meta> -->

+    <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Rights.Owner" content="</xsl:text>

+      <xsl:call-template name="generate-copyright-attributes"/>

+    <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+    <xsl:value-of select="$newline"/>

+  </xsl:if>

+</xsl:template>

+

+<!-- INTELLECTUAL PROPERTY: Rights - prolog/copyright -->

+<xsl:template match="*[contains(@class,' topic/copyright ')]" mode="gen-metadata">

+  <xsl:variable name="keylookup"><xsl:value-of select="concat(*[contains(@class,' topic/copyryear ')]/@year,

+                                           *[contains(@class,' topic/copyrholder ')])"/></xsl:variable>

+  <xsl:choose>

+    <!-- If primary, ensure this is the first time it was used as primary -->

+    <xsl:when test="@type='primary'">

+      <xsl:if test="generate-id(.)=generate-id(key('primary-meta-copyright',$keylookup)[1])">

+        <xsl:apply-templates select="." mode="valid-copyright"/>

+      </xsl:if>

+    </xsl:when>

+    <!-- If secondary, this should be the first time it was used as secondary, AND it should not be primary -->

+    <xsl:when test="@type='secondary'">

+      <xsl:if test="not(key('primary-meta-copyright',$keylookup)) and

+                    generate-id(.)=generate-id(key('secondary-meta-copyright',$keylookup)[1])">

+        <xsl:apply-templates select="." mode="valid-copyright"/>

+      </xsl:if>

+    </xsl:when>

+    <!-- No type: should not be used as primary or secondary, and this should be the first time it is used -->

+    <xsl:otherwise>

+      <xsl:if test="not(key('primary-meta-copyright',$keylookup)) and

+                    not(key('secondary-meta-copyright',$keylookup)) and

+                    generate-id(.)=generate-id(key('meta-copyright',$keylookup)[1])">

+        <xsl:apply-templates select="." mode="valid-copyright"/>

+      </xsl:if>

+    </xsl:otherwise>

+  </xsl:choose>

+</xsl:template>

+

+<!-- Usage Rights - prolog/permissions -->

+<xsl:template match="*[contains(@class,' topic/permissions ')]" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Rights.Usage" content="</xsl:text>

+    <xsl:value-of select="@view"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- = = = = = = = = = = = Product - Audience = = = = = = = = = = = -->

+<!-- Audience -->

+<xsl:template match="*[contains(@class,' topic/audience ')]/@experiencelevel" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Audience.Experiencelevel" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+<xsl:template match="*[contains(@class,' topic/audience ')]/@importance" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Audience.Importance" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+<xsl:template match="*[contains(@class,' topic/audience ')]/@name" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Audience.Name" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+<xsl:template match="*[contains(@class,' topic/audience ')]/@job" mode="gen-metadata">

+ <xsl:choose>

+  <xsl:when test=".='other'">

+    <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Audience.Job" content="</xsl:text>

+      <xsl:value-of select="normalize-space(../@otherjob)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  </xsl:when>

+  <xsl:otherwise>

+    <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Audience.Job" content="</xsl:text>

+      <xsl:value-of select="."/>

+    <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  </xsl:otherwise>

+ </xsl:choose>

+ <xsl:value-of select="$newline"/>

+</xsl:template>

+<xsl:template match="*[contains(@class,' topic/audience ')]/@type" mode="gen-metadata">

+ <xsl:choose>

+  <xsl:when test=".='other'">

+    <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Audience.Type" content="</xsl:text>

+      <xsl:value-of select="normalize-space(../@othertype)"/>

+    <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  </xsl:when>

+  <xsl:otherwise>

+    <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Audience.Type" content="</xsl:text>

+      <xsl:value-of select="."/>

+    <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  </xsl:otherwise>

+ </xsl:choose>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<xsl:template match="*[contains(@class,' topic/prodname ')]" mode="gen-metadata">

+  <xsl:variable name="prodnamemeta">

+    <xsl:apply-templates select="*|text()" mode="text-only"/>

+  </xsl:variable>

+  <meta name="prodname">

+    <xsl:attribute name="content"><xsl:value-of select="normalize-space($prodnamemeta)"/></xsl:attribute>

+  </meta>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<xsl:template match="*[contains(@class,' topic/vrm ')]/@version" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="version" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+<xsl:template match="*[contains(@class,' topic/vrm ')]/@release" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="release" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+<xsl:template match="*[contains(@class,' topic/vrm ')]/@modification" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="modification" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<xsl:template match="*[contains(@class,' topic/brand ')]" mode="gen-metadata">

+  <xsl:variable name="brandmeta">

+    <xsl:apply-templates select="*|text()" mode="text-only"/>

+  </xsl:variable>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="brand" content="</xsl:text>

+    <xsl:value-of select="normalize-space($brandmeta)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<xsl:template match="*[contains(@class,' topic/component ')]" mode="gen-metadata">

+  <xsl:variable name="componentmeta">

+    <xsl:apply-templates select="*|text()" mode="text-only"/>

+  </xsl:variable>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="component" content="</xsl:text>

+    <xsl:value-of select="normalize-space($componentmeta)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<xsl:template match="*[contains(@class,' topic/featnum ')]" mode="gen-metadata">

+  <xsl:variable name="featnummeta">

+    <xsl:apply-templates select="*|text()" mode="text-only"/>

+  </xsl:variable>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="featnum" content="</xsl:text>

+    <xsl:value-of select="normalize-space($featnummeta)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<xsl:template match="*[contains(@class,' topic/prognum ')]" mode="gen-metadata">

+  <xsl:variable name="prognummeta">

+    <xsl:apply-templates select="*|text()" mode="text-only"/>

+  </xsl:variable>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="prognum" content="</xsl:text>

+    <xsl:value-of select="normalize-space($prognummeta)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<xsl:template match="*[contains(@class,' topic/platform ')]" mode="gen-metadata">

+  <xsl:variable name="platformmeta">

+    <xsl:apply-templates select="*|text()" mode="text-only"/>

+  </xsl:variable>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="platform" content="</xsl:text>

+    <xsl:value-of select="normalize-space($platformmeta)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<xsl:template match="*[contains(@class,' topic/series ')]" mode="gen-metadata">

+  <xsl:variable name="seriesmeta">

+    <xsl:apply-templates select="*|text()" mode="text-only"/>

+  </xsl:variable>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="series" content="</xsl:text>

+    <xsl:value-of select="normalize-space($seriesmeta)"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- INSTANTIATION: Date - prolog/critdates/created -->

+<xsl:template match="*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/created ')]" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Date.Created" content="</xsl:text>

+    <xsl:value-of select="@date"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- prolog/critdates/revised/@modified -->

+<xsl:template match="*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/revised ')]/@modified" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Date.Modified" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- prolog/critdates/revised/@golive -->

+<xsl:template match="*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/revised ')]/@golive" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Date.Issued" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Date.Available" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- prolog/critdates/revised/@expiry -->

+<xsl:template match="*[contains(@class,' topic/critdates ')]/*[contains(@class,' topic/revised ')]/@expiry" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Date.Expiry" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- prolog/metadata/othermeta -->

+<xsl:template match="*[contains(@class,' topic/othermeta ')]" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="</xsl:text>

+    <xsl:value-of select="@name"/>   

+  <xsl:text>" content="</xsl:text>

+    <xsl:value-of select="@content"/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- INSTANTIATION: Format -->

+<!-- this value is based on output format used for DC indexing, not source.

+     Put in this odd template for easy overriding, if creating another output format. -->

+<xsl:template match="*" mode="gen-format-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Format" content="XML" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- INSTANTIATION: Identifier --> <!-- id is an attribute on Topic -->

+<xsl:template match="@id" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Identifier" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+<!-- INSTANTIATION: Language -->

+<!-- ideally, take the first token of the language attribute value -->

+<xsl:template match="@xml:lang" mode="gen-metadata">

+  <xsl:text disable-output-escaping="yes">&lt;!-- meta name="DC.Language" content="</xsl:text>

+    <xsl:value-of select="."/>

+  <xsl:text disable-output-escaping="yes">" --&gt;</xsl:text>

+  <xsl:value-of select="$newline"/>

+</xsl:template>

+

+</xsl:stylesheet>

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/context2contexttemp.xsl b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/context2contexttemp.xsl
new file mode 100644
index 0000000..25fe1a6
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/context2contexttemp.xsl
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>

+<!-- (c) Copyright IBM Corp. 2005, 2006 All Rights Reserved.      -->

+<!-- This file is part of the DITA Open Toolkit project hosted on -->

+<!-- Sourceforge.net. See the accompanying license.txt file for   -->

+<!-- applicable licenses.                                         -->

+

+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

+

+<xsl:variable name="cr"><xsl:text>

+</xsl:text></xsl:variable>

+<xsl:variable name="lt">&#60;</xsl:variable>

+<xsl:variable name="gt">&#62;</xsl:variable>

+

+    <xsl:template match="/">

+	  <xsl:processing-instruction name="NLS">type="org.eclipse.help.contexts"</xsl:processing-instruction><xsl:value-of select="$cr"/>

+	  <contexts><xsl:value-of select="$cr"/>

+	  <xsl:apply-templates select="//context" />

+	  </contexts><xsl:value-of select="$cr"/>

+	</xsl:template>

+

+     <xsl:template match="//comment()">

+        <xsl:copy />		

+     </xsl:template>

+

+     <xsl:template match="context">

+	   <context id="{@id}">		

+		<xsl:value-of select="$cr"/>

+		<xsl:apply-templates />

+	   </context><xsl:value-of select="$cr"/>

+     </xsl:template>

+

+     <xsl:template match="description">

+	   <description>

+		<xsl:apply-templates />

+	   </description><xsl:value-of select="$cr"/>

+     </xsl:template>

+

+     <xsl:template match="b">

+	   <xsl:text>&lt;b&gt;</xsl:text>

+		<xsl:apply-templates />

+	   <xsl:text>&lt;/b&gt;</xsl:text>

+	</xsl:template>

+

+	<xsl:template match="topic">

+		<xsl:copy-of select="." />

+	</xsl:template>

+

+</xsl:stylesheet>
\ No newline at end of file
diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/context2dita.xsl b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/context2dita.xsl
new file mode 100644
index 0000000..65ac1bc
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/context2dita.xsl
@@ -0,0 +1,130 @@
+<?xml version="1.0"?>

+<!-- (c) Copyright IBM Corp. 2005, 2006 All Rights Reserved.      -->

+<!-- This file is part of the DITA Open Toolkit project hosted on -->

+<!-- Sourceforge.net. See the accompanying license.txt file for   -->

+<!-- applicable licenses.                                         -->

+

+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

+

+<xsl:output method="xml"

+            encoding="utf-8"

+            indent="no"

+            doctype-system="..\dtd\cshelp.dtd"

+            doctype-public="-//IBM//DTD DITA CSHelp//EN"

+/>

+

+<xsl:variable name="cr"><xsl:text>

+</xsl:text></xsl:variable>

+<xsl:variable name="lt">&#60;</xsl:variable>

+<xsl:variable name="gt">&#62;</xsl:variable>

+

+    <xsl:template match="//contexts">

+	  <xsl:value-of select="$cr"/>

+	  <cshelp id="csh_outer_container" xml:lang="en-us"><xsl:value-of select="$cr"/>

+		<title></title><xsl:value-of select="$cr"/>

+		<shortdesc></shortdesc><xsl:value-of select="$cr"/>

+		<csbody></csbody><xsl:value-of select="$cr"/>

+            <xsl:apply-templates />

+	  </cshelp><xsl:value-of select="$cr"/>

+    </xsl:template>

+

+	<xsl:template match="//comment()">

+		<xsl:copy />		

+	</xsl:template>

+

+	<xsl:template match="//context">

+

+	   <cshelp id="{@id}">

+	   <xsl:value-of select="$cr"/>

+

+		<title><xsl:value-of select="@title"/></title><xsl:value-of select="$cr"/>

+

+		<shortdesc>

+               <xsl:choose>

+                 <xsl:when test="contains(description,$cr)">

+			<xsl:call-template name="br-replace-1">

+			<xsl:with-param name="brtext" select="substring-before(description,$cr)"/>

+			</xsl:call-template>

+                 </xsl:when>

+                 <xsl:otherwise>

+		        <xsl:value-of select="description" disable-output-escaping="yes" />

+                 </xsl:otherwise>

+               </xsl:choose>

+		</shortdesc><xsl:value-of select="$cr"/>

+

+		<csbody><xsl:value-of select="$cr"/>

+                <xsl:if test="contains(description,$cr)">

+			  <p>

+			  <xsl:call-template name="br-replace-2">

+			  <xsl:with-param name="brtext2" select="substring-after(description,$cr)"/>

+			  </xsl:call-template>

+			  </p>

+                </xsl:if>

+		</csbody><xsl:value-of select="$cr" />		

+

+		<xsl:if test="topic">

+			<related-links><xsl:value-of select="$cr"/>

+			<xsl:for-each select="topic">

+			<link href="{@href}">

+				<xsl:attribute name="format">

+					<xsl:call-template name="find-file-ext">

+					<xsl:with-param name="path" select="@href"/>

+					</xsl:call-template>

+				</xsl:attribute>

+				<linktext>

+					<xsl:value-of select="@label"/>

+				</linktext>

+			</link><xsl:value-of select="$cr"/>

+			</xsl:for-each>	

+			</related-links><xsl:value-of select="$cr"/>

+		</xsl:if>

+	   </cshelp><xsl:value-of select="$cr"/>

+	</xsl:template>

+

+	<xsl:template name="br-replace-1">

+	  <xsl:param name="brtext"/>

+	  <xsl:choose>

+	    <xsl:when test="contains($brtext,$cr)"> <!-- is there a CR within the text? -->

+		 <xsl:value-of select="$brtext" disable-output-escaping="yes" />

+		 <xsl:value-of select="$cr"/>

+	    </xsl:when>

+	    <xsl:otherwise>

+	      <xsl:value-of select="$brtext" disable-output-escaping="yes" /> <!-- No CRs, just output -->

+	    </xsl:otherwise>

+	  </xsl:choose>

+      </xsl:template>

+

+      <xsl:template name="br-replace-2">

+	  <xsl:param name="brtext2"/>

+	  <xsl:choose>

+	    <xsl:when test="contains($brtext2,$cr)"> <!-- is there a CR within the text? -->

+		<xsl:if test="string-length(substring-before($brtext2,$cr)) &gt; 0">

+	       <xsl:value-of select="substring-before($brtext2,$cr)" disable-output-escaping="yes" /> <!-- yes - substring & add the BR & newline -->

+		 <xsl:text disable-output-escaping="yes">&#60;</xsl:text>/p<xsl:text disable-output-escaping="yes">&#62;</xsl:text><xsl:value-of select="$cr"/>

+		 <xsl:text disable-output-escaping="yes">&#60;</xsl:text>p<xsl:text disable-output-escaping="yes">&#62;</xsl:text>

+		</xsl:if>

+		<xsl:call-template name="br-replace-2">

+		   <xsl:with-param name="brtext2" select="substring-after($brtext2,$cr)"/>

+		</xsl:call-template>

+	    </xsl:when>

+	    <xsl:otherwise>

+	      <xsl:value-of select="$brtext2" disable-output-escaping="yes" /> <!-- No CRs, just output -->

+	    </xsl:otherwise>

+	  </xsl:choose>

+      </xsl:template>

+

+	<xsl:template name="find-file-ext">

+		<xsl:param name="path"/>

+		<xsl:choose>

+	 	<xsl:when test="contains($path,'.')">

+			<xsl:call-template name="find-file-ext">

+			<xsl:with-param name="path" select="substring-after($path,'.')" />

+			</xsl:call-template>

+		</xsl:when>

+		<xsl:otherwise>

+			<xsl:value-of select="$path" />

+		</xsl:otherwise>

+		</xsl:choose>

+	</xsl:template>

+

+</xsl:stylesheet>
\ No newline at end of file
diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/cshdisplay.xsl b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/cshdisplay.xsl
new file mode 100644
index 0000000..0c0c8b5
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/cshdisplay.xsl
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>

+<!-- (c) Copyright IBM Corp. 2005, 2006 All Rights Reserved.      -->

+<!-- This file is part of the DITA Open Toolkit project hosted on -->

+<!-- Sourceforge.net. See the accompanying license.txt file for   -->

+<!-- applicable licenses.                                         -->

+

+<xsl:stylesheet version="1.0"

+     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

+

+<xsl:template match="*[contains(@class,' cshelp/cshelp ')]" name="cshelp">

+  <xsl:choose>

+    <xsl:when test="$DRAFT='yes'">

+      <!-- review output -->

+      <xsl:choose>

+        <xsl:when test="not(parent::*)">

+        <html><xsl:value-of select="$newline"/>

+        <head /><xsl:value-of select="$newline"/>

+        <body><xsl:value-of select="$newline"/>

+	  <xsl:call-template name="csreviewoutput"/>

+        <xsl:if test="*[contains(@class,' cshelp/cshelp ')]">

+          <xsl:apply-templates select="*[contains(@class,' cshelp/cshelp ')]"/>

+        </xsl:if>

+        </body><xsl:value-of select="$newline"/>

+        </html><xsl:value-of select="$newline"/>

+	</xsl:when>

+      <xsl:otherwise>

+	  <xsl:call-template name="csreviewoutput"/>

+        <xsl:if test="*[contains(@class,' cshelp/cshelp ')]">

+          <xsl:apply-templates select="*[contains(@class,' cshelp/cshelp ')]"/>

+        </xsl:if>

+      </xsl:otherwise>

+      </xsl:choose>

+    </xsl:when>

+    <xsl:otherwise>

+      <!-- Otherwise, do standard processing -->

+      <xsl:choose>

+        <xsl:when test="not(parent::*)">

+          <xsl:call-template name="chapter-setup"/>

+        </xsl:when>

+        <xsl:otherwise>

+          <xsl:apply-imports/>

+        </xsl:otherwise>

+      </xsl:choose>

+    </xsl:otherwise>

+  </xsl:choose>

+</xsl:template>

+

+<xsl:template name="csreviewoutput"> 

+       <hr/><xsl:value-of select="$newline"/>

+       <hr/><xsl:value-of select="$newline"/>

+<strong><xsl:value-of select="@id"/></strong><br/><xsl:value-of select="$newline"/>

+<xsl:value-of select="*[contains(@class,' cshelp/csprolog ')]/*[contains(@class,' cshelp/csmetadata ')]/*[contains(@class,' cshelp/cswindowtitle ')]"/><br/><xsl:value-of select="$newline"/>

+<xsl:value-of select="*[contains(@class,' cshelp/csprolog ')]/*[contains(@class,' cshelp/csmetadata ')]/*[contains(@class,' cshelp/cswidgetlabel ')]"/><br/><xsl:value-of select="$newline"/>

+<br/><xsl:value-of select="$newline"/>

+          <p><xsl:apply-templates select="*[contains(@class,' topic/shortdesc ')]"/></p><xsl:value-of select="$newline"/>

+          <xsl:apply-templates select="*[contains(@class,' cshelp/csbody ')]"/><xsl:value-of select="$newline"/>

+          <xsl:if test="*[contains(@class,' topic/related-links ')]">

+            <xsl:for-each select="*[contains(@class,' topic/related-links ')]/*[contains(@class,' topic/link ')]">

+              <a>

+                <xsl:attribute name="href">

+                  <xsl:call-template name="href"/>

+                </xsl:attribute>

+                <xsl:value-of select="linktext" />

+              </a>

+              <br/><xsl:value-of select="$newline"/>

+            </xsl:for-each>

+          </xsl:if>

+        <br/><xsl:value-of select="$newline"/><xsl:value-of select="$newline"/>

+</xsl:template>

+

+</xsl:stylesheet>

diff --git a/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/dit2context.xsl b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/dit2context.xsl
new file mode 100644
index 0000000..b28b4a7
--- /dev/null
+++ b/src/help/appvalidator_help/tools/ditaot/plugins/cshelp/xsl/dit2context.xsl
@@ -0,0 +1,1275 @@
+<?xml version="1.0"?>

+<!-- (c) Copyright IBM Corp. 2005, 2007 All Rights Reserved.      -->

+<!-- This file is part of the DITA Open Toolkit project hosted on -->

+<!-- Sourceforge.net. See the accompanying license.txt file for   -->

+<!-- applicable licenses.                                         -->

+

+<xsl:stylesheet version="1.0"

+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

+                xmlns:saxon="http://icl.com/saxon"

+                xmlns:xt="http://www.jclark.com/xt"

+                extension-element-prefixes="saxon xt">

+

+<xsl:import href="../../../xsl/common/dita-utilities.xsl" />

+<xsl:include href="../../../xsl/common/output-message.xsl"/>

+<xsl:include href="GetCSHMeta.xsl"/>

+

+<!-- /OUTEXT = default "output extension" processing parameter ('html')-->

+<!-- Should be overridden by rexx command to be 'xml' -->

+<xsl:param name="OUTEXT" select="'html'"/><!-- "htm" and "html" are valid values -->

+

+<!-- /WORKDIR = the working directory that contains the document being transformed.

+     Needed as a directory prefix for the @conref "document()" function calls.

+     default is '../doc/')-->

+<xsl:param name="WORKDIR" select="'./'"/>

+

+<!-- /FILENAME = the file name (file name and extension only - no path) of the document being transformed.

+     Needed to help with debugging.

+     default is 'myfile.xml')-->

+<xsl:param name="FILENAME"/>

+

+<xsl:variable name="msgprefix">IDXS</xsl:variable>

+<xsl:variable name="newline"><xsl:text>

+</xsl:text></xsl:variable>

+

+<xsl:output indent="no"/>

+

+      <xsl:template match="/">

+	  <xsl:value-of select="$newline"/>

+        <xsl:processing-instruction name="NLS">type="org.eclipse.help.contexts"</xsl:processing-instruction>

+ 	  <xsl:value-of select="$newline"/>

+	  <xsl:apply-templates select="//*[contains(@class,' cshelp/cshelp ')]"/> <!-- select is formatted to unnest nested cshelp elements -->

+	  <xsl:text disable-output-escaping="yes">&lt;/contexts&gt;</xsl:text>

+	  <xsl:value-of select="$newline"/>

+      </xsl:template>

+

+	<xsl:template match="//comment()">

+		<xsl:copy />

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' cshelp/cshelp ')]" name="cshelp">

+

+		<xsl:if test="not(parent::*[contains(@class,' cshelp/cshelp ')])">

+			<xsl:call-template name="getCSHMeta"/>  <!-- 5/31/2006 -->

+		  <!--			<xsl:call-template name="ibmcopyright"/>-->  <!-- 5/30/2006 -->

+			<xsl:text disable-output-escaping="yes">&lt;contexts&gt;</xsl:text>

+			<xsl:value-of select="$newline"/>

+		</xsl:if>

+		

+		<xsl:if test="parent::*[contains(@class,' cshelp/cshelp ')]">

+			<xsl:element name="context">

+			<xsl:attribute name="id">

+			<xsl:value-of select="@id"/>

+			</xsl:attribute>

+			<xsl:if test="*[contains(@class,' topic/title ')]/text() | *[contains(@class,' topic/title ')]/*">

+				<xsl:attribute name="title">

+				<xsl:value-of select="*[contains(@class,' topic/title ')]" />

+				</xsl:attribute>

+			</xsl:if>

+			<xsl:text>&#xA;</xsl:text>

+			

+			<xsl:element name="description">

+			<xsl:apply-templates select="*[contains(@class,' topic/shortdesc ')]" />

+			<xsl:apply-templates select="*[contains(@class,' cshelp/csbody ')]" />

+			</xsl:element>

+	     	   	<xsl:text>&#xA;</xsl:text>

+

+			<xsl:if test="*[contains(@class,' topic/related-links ')]">

+			<xsl:for-each select="*[contains(@class,' topic/related-links ')]/*[contains(@class,' topic/link ')]">

+			<xsl:element name="topic">

+           	             <xsl:attribute name="href">

+           	             <xsl:call-template name="href"/>

+           	             </xsl:attribute>

+				<xsl:attribute name="label">

+           	             <xsl:choose>

+           	                <xsl:when test="*[contains(@class, ' topic/linktext ')]">

+           	                   <xsl:apply-templates select="*[contains(@class, ' topic/linktext ')]"/>

+           	                </xsl:when>

+           	                <xsl:otherwise>

+           	                   <!-- use href -->

+           	                   <xsl:call-template name="href"/>

+           	                </xsl:otherwise>

+           	             </xsl:choose>

+				</xsl:attribute>

+			</xsl:element><xsl:text>&#xA;</xsl:text>

+			</xsl:for-each>

+			</xsl:if>

+

+			</xsl:element><xsl:text>&#xA;</xsl:text>

+		</xsl:if>

+	</xsl:template>

+

+

+	<xsl:template match="*[contains(@class,' topic/shortdesc ')]" name="shortdesc">

+		<xsl:apply-templates />

+	</xsl:template>

+

+        <xsl:template match="*[contains(@class,' cshelp/csbody ')]" name="csbody">

+            <xsl:if test="node()"><xsl:text>&#xA;&#xA;</xsl:text></xsl:if>

+		<xsl:apply-templates />

+	</xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/boolean ')]" name="topic.boolean">

+        <!-- below copied from dit2htm.xsl -->

+        <xsl:value-of select="name()"/><xsl:text>: </xsl:text><xsl:value-of select="@state"/>

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/cite ')]" name="topic.cite">

+        <xsl:call-template name="checkPreceding" />

+       	<xsl:apply-templates />

+        <xsl:call-template name="checkFollowing" />

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/dd ')]" name="topic.dd">

+        <!-- jta 11/06/2006 -->

+        <xsl:call-template name="indentDL"/>

+	<xsl:text>  </xsl:text>

+        <xsl:apply-templates />

+	<!-- jta 10/16/2006 -->

+        <!-- <xsl:if test="position()!=last()"> -->

+        <xsl:if test="following-sibling::*[contains(@class,' topic/dd ')]">

+          <xsl:text>&#xA;</xsl:text>

+        </xsl:if>

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/ddhd ')]" name="topic.ddhd">

+        <!-- jta 11/06/2006 -->

+        <xsl:call-template name="indentDL"/>

+		<xsl:text>  </xsl:text><b><xsl:apply-templates /></b><xsl:text>&#xA;</xsl:text>

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/desc ')]" name="topic.desc">

+        <xsl:call-template name="checkPreceding" />

+        <xsl:text>(</xsl:text><xsl:apply-templates /><xsl:text>)</xsl:text>

+        <xsl:call-template name="checkFollowing" />

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/dl ')]" name="topic.dl">

+        <xsl:if test="not(parent::*[contains(@class,' cshelp/csbody ')])">

+          <xsl:choose>

+             <xsl:when test="parent::*[contains(@class,' topic/p ')]">

+               <xsl:text>&#xA;&#xA;</xsl:text>

+             </xsl:when>

+             <xsl:otherwise>

+               <xsl:text>&#xA;</xsl:text>

+             </xsl:otherwise>

+           </xsl:choose>

+        </xsl:if>

+        <xsl:apply-templates />

+        <xsl:call-template name="isNestedTextFollows" />

+        <xsl:call-template name="isFirstChildOfCsbody" />

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/dlentry ')]" name="topic.dlentry">

+        <xsl:apply-templates />

+        <!-- jta 11/07/2006 -->

+        <xsl:if test="following-sibling::*[contains(@class,' topic/dlentry ')]">

+           <xsl:text>&#xA;</xsl:text>

+        </xsl:if>

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/dlhead ')]" name="topic.dlhead">

+        <xsl:apply-templates />

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/draft-comment ')]" name="topic.draft-comment">

+        <!-- no output -->

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/dt ')]" name="topic.dt">

+        <!-- jta 11/06/2006 -->

+        <xsl:call-template name="indentDL"/>

+      	<b><xsl:apply-templates /></b><xsl:text>&#xA;</xsl:text>

+      </xsl:template>

+     

+      <xsl:template match="*[contains(@class,' topic/dthd ')]" name="topic.dthd">   

+        <!-- jta 11/06/2006 -->

+        <xsl:call-template name="indentDL"/>

+      	<b><xsl:apply-templates /></b><xsl:text>&#xA;</xsl:text>

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/fig ')]" name="topic.fig">

+        <xsl:call-template name="twoPrecedingCRs" />

+        <xsl:apply-templates />

+        <xsl:call-template name="isFirstChildOfCsbody" />

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/fn ')]" name="topic.fn">

+        <!-- no output -->

+        <xsl:call-template name="output-message">

+           <xsl:with-param name="msg">Eclipse context-sensitive help files do not support footnotes.</xsl:with-param>

+            <xsl:with-param name="msgnum">066</xsl:with-param>

+           <xsl:with-param name="msgsev">I</xsl:with-param>

+        </xsl:call-template>

+      </xsl:template>

+

+      <xsl:template match="*[contains(@class,' topic/image ')]" name="topic.image">

+        <xsl:variable name="alttext">

+          <xsl:choose>

+            <xsl:when test="*[contains(@class,' topic/alt ')]"><xsl:apply-templates/></xsl:when>

+            <xsl:otherwise><xsl:value-of select="@alt"/></xsl:otherwise>

+          </xsl:choose>

+        </xsl:variable>

+        <!-- no output -->

+        <xsl:if test="$alttext=''">

+          <xsl:call-template name="output-message">

+             <xsl:with-param name="msg">Eclipse context-sensitive help files do not support images.</xsl:with-param>

+              <xsl:with-param name="msgnum">066</xsl:with-param>

+             <xsl:with-param name="msgsev">I</xsl:with-param>

+          </xsl:call-template>

+        </xsl:if>

+        <xsl:choose>

+          <xsl:when test="@placement='break'">

+            <xsl:call-template name="twoPrecedingCRs" />

+            <xsl:value-of select="$alttext"/>

+            <xsl:call-template name="isFirstChildOfCsbody" />

+          </xsl:when>

+          <xsl:otherwise>

+            <xsl:call-template name="checkPreceding" />

+            <xsl:value-of select="$alttext"/>

+            <xsl:call-template name="checkFollowing" />

+          </xsl:otherwise>

+        </xsl:choose>

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/indexterm ')]" name="topic.indexterm">

+        <!-- no output -->

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/indextermref ')]" name="topic.indextermref">

+        <!-- no output -->

+	</xsl:template>

+

+        <xsl:template match="*[contains(@class,' topic/itemgroup ')]" name="topic.itemgroup">

+           <xsl:text>&#xA;   </xsl:text><xsl:apply-templates />

+	   <!-- jta 10/16/2006 -->

+	   <xsl:call-template name="isFirstChildOfCsbody" />

+        </xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/keyword ')]" name="topic.keyword">

+        <xsl:call-template name="checkPreceding" />

+		<xsl:apply-templates />

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/li ')]" name="topic.li">

+            <xsl:variable name="olcount" select="count(ancestor-or-self::*[contains(@class,' topic/ol ')])"/>

+ <!--       <xsl:variable name="ulcount" select="count(ancestor-or-self::*[contains(@class,' topic/ul ')])"/> -->

+ <!--       <xsl:variable name="slcount" select="count(ancestor-or-self::*[contains(@class,' topic/sl ')])"/> -->

+ <!--       <xsl:variable name="nestcount" select="number($olcount) + number($ulcount) + number($slcount)" /> -->

+ <!--       <xsl:choose> -->

+ <!--         <xsl:when test="number($nestcount)=1"> -->

+ <!--            <xsl:text>  </xsl:text> -->

+ <!--         </xsl:when> -->

+ <!--         <xsl:when test="number($nestcount)=2"> -->

+ <!--            <xsl:text>    </xsl:text> -->

+ <!--         </xsl:when> -->

+ <!--         <xsl:when test="number($nestcount)=3"> -->

+ <!--            <xsl:text>      </xsl:text> -->

+ <!--         </xsl:when> -->

+ <!--         <xsl:otherwise> -->

+ <!--            <xsl:text>        </xsl:text> -->

+ <!--         </xsl:otherwise> -->

+ <!--        </xsl:choose> -->

+          <xsl:call-template name="indentLI"/>

+          <xsl:if test="parent::*[contains(@class,' topic/ul ')]">

+               <xsl:text>&#x2D; </xsl:text>

+          </xsl:if>

+          <xsl:apply-templates />

+	  <!-- jta 11/06/2006 -->

+         <xsl:if test="following-sibling::*[contains(@class,' topic/li ')]">

+           <xsl:text>&#xA;</xsl:text>

+         </xsl:if>

+	</xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/lines ')]" name="topic.lines">

+	    <xsl:call-template name="spec-title-nospace"/>

+	    <xsl:call-template name="br-replace">

+	    <xsl:with-param name="brtext" select="."/>

+        </xsl:call-template>

+        <xsl:call-template name="isFirstChildOfCsbody" />

+    </xsl:template>

+

+    <xsl:template name="spec-title-nospace">

+        <!-- below adapted from dit2htm.xsl -->

+        <xsl:if test="@spectitle"><b><xsl:value-of select="@spectitle"/></b><xsl:text>&#xA;</xsl:text></xsl:if>

+    </xsl:template>

+

+    <!-- Break replace - used for LINES -->

+    <!-- this replaces newlines with the BR element. Forces breaks. -->

+    <xsl:template name="br-replace">

+	  <xsl:param name="brtext"/>

+	  <!-- capture an actual newline within the xsl:text element -->

+	  <xsl:variable name="cr"><xsl:text>

+</xsl:text></xsl:variable>

+	  <xsl:choose>

+	    <xsl:when test="contains($brtext,$cr)"> <!-- is there a CR within the text? -->

+	       <xsl:value-of select="substring-before($brtext,$cr)"/> <!-- yes - substring & add the BR & newline -->

+		 <xsl:value-of select="$cr"/>

+	       <xsl:call-template name="br-replace"> <!-- call again to get remaining CRs -->

+	         <xsl:with-param name="brtext" select="substring-after($brtext,$cr)"/>

+	       </xsl:call-template>

+	    </xsl:when>

+	    <xsl:otherwise>

+	      <xsl:value-of select="$brtext"/> <!-- No CRs, just output -->

+	    </xsl:otherwise>

+	  </xsl:choose>

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/linkinfo ')]" name="topic.linkinfo">

+        <xsl:text>&#xA;</xsl:text><xsl:apply-templates /><xsl:text>&#xA;&#xA;</xsl:text>

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/linklist ')]" name="topic.linklist">

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/linkpool ')]" name="topic.linkpool">

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/linktext ')]" name="topic.linktext">

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/lq ')]" name="topic.lq">

+        <xsl:call-template name="twoPrecedingCRs" />

+	  <xsl:call-template name="indentLQ" />

+        <xsl:text>&#34;</xsl:text><xsl:apply-templates /><xsl:text>&#34;</xsl:text>

+        <xsl:call-template name="isNestedTextFollows" />

+        <xsl:call-template name="isFirstChildOfCsbody" />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/msgblock ')]" name="topic.msgblock">

+	  <xsl:call-template name="br-replace">

+	  <xsl:with-param name="brtext" select="."/>

+	  </xsl:call-template>

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/note ')]" name="topic.note">

+	   <!-- jta 10/16/2006 -->

+         <xsl:call-template name="twoPrecedingCRs"/>

+         <xsl:call-template name="indentNote" />

+         <!-- <xsl:text>&#xA;&#xA;</xsl:text> -->

+         <xsl:call-template name="spec-title"/>

+          <xsl:choose>

+            <xsl:when test="@type='note'">

+             <xsl:call-template name="note"/>

+            </xsl:when>

+            <xsl:when test="@type='tip'">

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'Tip'"/>

+               </xsl:call-template>

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+               </xsl:call-template>

+              <xsl:text> </xsl:text>

+              <xsl:apply-templates /><xsl:text>&#xA;&#xA;</xsl:text>

+            </xsl:when>

+            <xsl:when test="@type='fastpath'">

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'Fastpath'"/>

+               </xsl:call-template>

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+               </xsl:call-template>

+              <xsl:text> </xsl:text>

+              <xsl:apply-templates /><xsl:text>&#xA;&#xA;</xsl:text>

+            </xsl:when>

+            <xsl:when test="@type='important'">

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'Important'"/>

+               </xsl:call-template>

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+               </xsl:call-template>

+              <xsl:text> </xsl:text>

+              <xsl:apply-templates /><xsl:text>&#xA;&#xA;</xsl:text>

+            </xsl:when>

+            <xsl:when test="@type='remember'">

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'Remember'"/>

+               </xsl:call-template>

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+               </xsl:call-template>

+              <xsl:text> </xsl:text>

+              <xsl:apply-templates /><xsl:text>&#xA;&#xA;</xsl:text>

+            </xsl:when>

+            <xsl:when test="@type='restriction'">

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'Restriction'"/>

+               </xsl:call-template>

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+               </xsl:call-template>

+              <xsl:text> </xsl:text>

+              <xsl:apply-templates />

+            </xsl:when>

+            <xsl:when test="@type='attention'">

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'Attention'"/>

+               </xsl:call-template>

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+               </xsl:call-template>

+              <xsl:text> </xsl:text>

+              <xsl:apply-templates />

+            </xsl:when>

+            <xsl:when test="@type='caution'">

+              <xsl:call-template name="getString">

+               <xsl:with-param name="stringName" select="'Caution'"/>

+              </xsl:call-template>

+               <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+               </xsl:call-template>

+              <xsl:text> </xsl:text>

+              <xsl:apply-templates />

+            </xsl:when>

+            <xsl:when test="@type='danger'">

+              <xsl:call-template name="getString">

+               <xsl:with-param name="stringName" select="'Danger'"/>

+              </xsl:call-template>

+              <xsl:call-template name="getString">

+                <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+              </xsl:call-template>

+              <xsl:text> </xsl:text>

+              <xsl:apply-templates />

+            </xsl:when>

+            <xsl:when test="@type='other'">

+             <xsl:choose>

+              <xsl:when test="@othertype"> <!-- is there a type title? Use that -->

+                 <!-- TBD: this attr is a key that should look up external, translateable text.

+                      For now, just output the othertype attr value. -->

+                 <xsl:value-of select="@othertype"/>

+                 <xsl:call-template name="getString">

+                  <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+                 </xsl:call-template>

+                <xsl:text> </xsl:text>

+              </xsl:when>

+              <xsl:otherwise>

+               <xsl:call-template name="note"/> <!-- otherwise, give them the standard note -->

+              </xsl:otherwise>

+             </xsl:choose>

+            </xsl:when>

+            <xsl:otherwise>

+             <xsl:call-template name="note"/>

+            </xsl:otherwise>

+          </xsl:choose>

+         <xsl:call-template name="isNestedTextFollows" />

+         <xsl:call-template name="isFirstChildOfCsbody" />

+        </xsl:template>

+

+    <xsl:template name="note">

+        <xsl:call-template name="getString">

+        <xsl:with-param name="stringName" select="'Note'"/>

+        </xsl:call-template>

+        <xsl:call-template name="getString">

+        <xsl:with-param name="stringName" select="'ColonSymbol'"/>

+        </xsl:call-template>

+        <xsl:text> </xsl:text>

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template name="spec-title">

+        <xsl:if test="@spectitle"><b><xsl:value-of select="@spectitle"/></b><xsl:text>&#xA;</xsl:text></xsl:if>

+    </xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/object ')]" name="topic.object">

+        <!-- no output -->

+        <xsl:call-template name="output-message">

+           <xsl:with-param name="msg">Eclipse context-sensitive help files do not support objects.</xsl:with-param>

+            <xsl:with-param name="msgnum">066</xsl:with-param>

+           <xsl:with-param name="msgsev">I</xsl:with-param>

+        </xsl:call-template>

+	</xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/ol ')]" name="topic.ol">

+        <xsl:variable name="olcount" select="count(ancestor-or-self::*[contains(@class,' topic/ol ')])"/>

+<!--    <xsl:variable name="ulcount" select="count(ancestor-or-self::*[contains(@class,' topic/ul ')])"/> -->

+<!--    <xsl:variable name="slcount" select="count(ancestor-or-self::*[contains(@class,' topic/sl ')])"/> -->

+<!--    <xsl:variable name="ddcount" select="count(ancestor-or-self::*[contains(@class,' topic/dd ')])"/> -->

+<!--    <xsl:variable name="nestcount" select="number($olcount) + number($ulcount) + number($slcount) + number($ddcount)" /> -->

+        <xsl:call-template name="twoPrecedingCRs" />

+

+<!--    <xsl:if test="parent::*[contains(@class,' topic/li ')] | parent::*[contains(@class,' topic/sli ')]"><xsl:text>&#xA;</xsl:text></xsl:if> -->

+  	   <xsl:for-each select="*[contains(@class,' topic/li ')]">

+<!--       <xsl:choose> -->

+<!--              <xsl:when test="number($nestcount)=1"> -->

+<!--                 <xsl:text>  </xsl:text> -->

+<!--              </xsl:when> -->

+<!--              <xsl:when test="number($nestcount)=2"> -->

+<!--                 <xsl:text>    </xsl:text> -->

+<!--              </xsl:when> -->

+<!--              <xsl:when test="number($nestcount)=3"> -->

+<!--                 <xsl:text>      </xsl:text> -->

+<!--              </xsl:when> -->

+<!--              <xsl:otherwise> -->

+<!--                 <xsl:text>        </xsl:text> -->

+<!--              </xsl:otherwise> -->

+<!--            </xsl:choose> -->

+           <xsl:call-template name="indentLI"/> <!-- jta 11/07/2006 -->

+           <xsl:choose>

+             <xsl:when test="$olcount mod 3 = 1">

+               <xsl:number value="position()" format="1. "/>

+             </xsl:when>

+             <xsl:when test="$olcount mod 3 = 2">

+               <xsl:number value="position()" format="a. "/>

+             </xsl:when>

+             <xsl:otherwise>

+               <xsl:number value="position()" format="i. "/>

+             </xsl:otherwise>

+           </xsl:choose>

+           <xsl:apply-templates /><!-- jta 11/07/2006 <xsl:text>&#xA;</xsl:text> -->

+           <xsl:if test="following-sibling::*[contains(@class,' topic/li ')]">

+             <xsl:text>&#xA;</xsl:text>

+           </xsl:if>

+         </xsl:for-each>

+       <xsl:call-template name="isNestedTextFollows" />

+       <xsl:call-template name="isFirstChildOfCsbody" />

+    </xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/p ')]" name="topic.p">

+		<!-- jta 10/16/2006 -->

+		<xsl:call-template name="twoPrecedingCRs"/>

+                <xsl:call-template name="indentP" />

+		<xsl:apply-templates />

+		<!-- <xsl:text>&#xA;&#xA;</xsl:text> -->

+                <xsl:call-template name="isNestedTextFollows" />

+		<xsl:call-template name="isFirstChildOfCsbody" />

+	</xsl:template>

+

+        <xsl:template match="*[contains(@class,' topic/ph ')]" name="topic.ph">

+        <xsl:call-template name="checkPreceding" />

+		<xsl:apply-templates />

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/pre ')]" name="topic.pre">

+        <xsl:call-template name="checkPreceding" />

+	        <xsl:call-template name="br-replace">

+	        <xsl:with-param name="brtext" select="."/>

+	        </xsl:call-template>

+        <xsl:call-template name="checkFollowing" />

+        <xsl:call-template name="isFirstChildOfCsbody" />

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/q ')]" name="topic.q">

+        <xsl:call-template name="checkPreceding" />

+		<xsl:text>&#34;</xsl:text><xsl:apply-templates /><xsl:text>&#34;</xsl:text> <!-- places quotation marks -->

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+ 	<xsl:template match="*[contains(@class,' topic/required-cleanup ')]" name="topic.required-cleanup">

+        <!-- no output -->

+	</xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/simpletable ')]" name="topic.simpletable">

+        <!-- no output -->

+        <xsl:call-template name="output-message">

+           <xsl:with-param name="msg">Eclipse context-sensitive help files do not support tables.</xsl:with-param>

+            <xsl:with-param name="msgnum">066</xsl:with-param>

+           <xsl:with-param name="msgsev">I</xsl:with-param>

+        </xsl:call-template>

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/sl ')]" name="topic.sl">

+        <xsl:call-template name="twoPrecedingCRs" />

+<!--    <xsl:if test="parent::*[contains(@class,' topic/li ')] | parent::*[contains(@class,' topic/sli ')]"><xsl:text>&#xA;</xsl:text></xsl:if> -->

+        <xsl:apply-templates />

+        <xsl:call-template name="isNestedTextFollows" />

+        <xsl:call-template name="isFirstChildOfCsbody" />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/sli ')]" name="topic.sli">

+<!--        <xsl:variable name="olcount" select="count(ancestor-or-self::*[contains(@class,' topic/ol ')])"/> -->

+<!--        <xsl:variable name="ulcount" select="count(ancestor-or-self::*[contains(@class,' topic/ul ')])"/> -->

+<!--        <xsl:variable name="slcount" select="count(ancestor-or-self::*[contains(@class,' topic/sl ')])"/> -->

+<!--	  <xsl:variable name="ddcount" select="count(ancestor-or-self::*[contains(@class,' topic/dd ')])"/> -->

+<!--        <xsl:variable name="nestcount" select="number($olcount) + number($ulcount) + number($slcount) + number($ddcount)" /> -->

+<!--        <xsl:choose> -->

+<!--          <xsl:when test="number($nestcount)=1"> -->

+<!--             <xsl:text>  </xsl:text> -->

+<!--          </xsl:when> -->

+<!--          <xsl:when test="number($nestcount)=2"> -->

+<!--             <xsl:text>    </xsl:text> -->

+<!--          </xsl:when> -->

+<!--          <xsl:when test="number($nestcount)=3"> -->

+<!--             <xsl:text>      </xsl:text> -->

+<!--          </xsl:when> -->

+<!--          <xsl:otherwise> -->

+<!--             <xsl:text>        </xsl:text> -->

+<!--          </xsl:otherwise> -->

+<!--         </xsl:choose> -->

+         <xsl:call-template name="indentLI"/>

+         <xsl:text>&#x2D; </xsl:text>

+         <xsl:apply-templates />

+         <xsl:if test="following-sibling::*[contains(@class,' topic/sli ')]">

+           <xsl:text>&#xA;</xsl:text>

+         </xsl:if>

+	</xsl:template>

+

+

+    <xsl:template match="*[contains(@class,' topic/state ')]" name="topic.state">

+        <xsl:value-of select="name()"/><xsl:text>: </xsl:text><xsl:value-of select="@name"/><xsl:text>=</xsl:text><xsl:value-of select="@value"/>

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/table ')]" name="topic.table">

+        <!-- no output -->

+        <xsl:call-template name="output-message">

+           <xsl:with-param name="msg">Eclipse context-sensitive help files do not support tables.</xsl:with-param>

+            <xsl:with-param name="msgnum">066</xsl:with-param>

+           <xsl:with-param name="msgsev">I</xsl:with-param>

+        </xsl:call-template>

+    </xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/term ')]" name="topic.term">

+        <xsl:call-template name="checkPreceding" />

+		<xsl:apply-templates />

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/title ')]" name="topic.title">

+        <b><xsl:apply-templates /></b><xsl:text>&#xA;</xsl:text>	

+      </xsl:template>

+

+	<xsl:template match="*[contains(@class,' topic/tm ')]" name="topic.tm">

+        <!-- output nothing -->

+        <!--<xsl:call-template name="output-message">

+           <xsl:with-param name="msg">Trademarks are not required in context-sensitive help.</xsl:with-param>

+            <xsl:with-param name="msgnum">069</xsl:with-param>

+           <xsl:with-param name="msgsev">I</xsl:with-param>

+        </xsl:call-template>-->

+        <xsl:call-template name="checkPreceding" />

+        <xsl:apply-templates />

+        <xsl:call-template name="checkFollowing" />

+      </xsl:template>

+

+    <xsl:template match="*[contains(@class,' topic/ul ')]" name="topic.ul">

+        <xsl:call-template name="twoPrecedingCRs" />

+        <!-- jta commenting out 11/03/2006 -->

+        <!-- <xsl:if test="parent::*[contains(@class,' topic/li ')] | parent::*[contains(@class,' topic/sli ')]"><xsl:text>&#xA;</xsl:text></xsl:if> -->

+           <xsl:apply-templates />

+        <xsl:call-template name="isNestedTextFollows" />

+        <xsl:call-template name="isFirstChildOfCsbody" />

+	</xsl:template>

+

+

+    <xsl:template match="*[contains(@class,' topic/xref ')]" name="topic.xref" priority="100">

+        <xsl:call-template name="checkPreceding" />

+        <xsl:choose>

+            <xsl:when test="*|text()"><xsl:text>&#34;</xsl:text><xsl:apply-templates select="*|text()"/><xsl:text>&#34;</xsl:text></xsl:when>

+            <xsl:otherwise><xsl:call-template name="href"/></xsl:otherwise>

+        </xsl:choose>

+        <xsl:call-template name="checkFollowing" />

+    </xsl:template>

+

+    <xsl:template name="href">

+        <!-- below adapted from rel-links.xsl -->

+          <xsl:choose>

+            <!-- For non-DITA formats - use the href as is -->

+            <xsl:when test="(not(@format) and (@type='external' or @scope='external')) or (@format and not(@format='dita' or @format='DITA'))">

+                <xsl:value-of select="@href"/>

+              </xsl:when>

+              <!-- For DITA - process the internal href -->

+              <xsl:when test="starts-with(@href,'#')">

+                <xsl:call-template name="parsehref">

+                  <xsl:with-param name="href" select="@href"/>

+                </xsl:call-template>

+              </xsl:when>

+              <!-- It's to a DITA file - process the file name (adding the html extension)

+              and process the rest of the href -->

+              <xsl:when test="contains(@href,'.dita')">

+                <xsl:value-of select="substring-before(@href,'.dita')"/>.html<xsl:call-template name="parsehref"><xsl:with-param name="href" select="substring-after(@href,'.dita')"/></xsl:call-template>

+              </xsl:when>

+              <xsl:when test="@href=''"/>

+              <xsl:otherwise>

+		    <xsl:call-template name="output-message">

+                  <xsl:with-param name="msg">Unknown file extension in href: <xsl:value-of select="@href"/>

+If this is a link to a non-DITA resource, set the format attribute to match the resource (for example, 'txt', 'pdf', or 'html').

+If it's a link to a DITA resource, the file extension must be .dita .</xsl:with-param>

+                    <xsl:with-param name="msgnum">015</xsl:with-param>

+                  <xsl:with-param name="msgsev">E</xsl:with-param>

+                </xsl:call-template>

+                <xsl:value-of select="@href"/>

+            </xsl:otherwise>

+          </xsl:choose>

+        </xsl:template>

+

+    <!-- "/" is not legal in IDs - need to swap it with two underscores -->

+    <xsl:template name="parsehref">

+         <xsl:param name="href"/>

+          <xsl:choose>

+           <xsl:when test="contains($href,'/')">

+            <xsl:value-of select="substring-before($href,'/')"/>__<xsl:value-of select="substring-after($href,'/')"/>

+           </xsl:when>

+           <xsl:otherwise>

+            <xsl:value-of select="$href"/>

+           </xsl:otherwise>

+          </xsl:choose>

+        </xsl:template>

+

+

+

+

+    <!-- Highlight domain overrides -->

+

+	<xsl:template match="*[contains(@class,' hi-d/b ')]" name="topic.hi-d.b" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<b><xsl:apply-templates /></b>

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+	

+    <xsl:template match="*[contains(@class,' hi-d/i ')]" name="topic.hi-d.i" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<b><xsl:apply-templates /></b>

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+    <xsl:template match="*[contains(@class,' hi-d/sub ')]" name="topic.hi-d.sub" priority="100">

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' hi-d/sup ')]" name="topic.hi-d.sup" priority="100">

+        <xsl:text>&#94;</xsl:text><xsl:apply-templates /> <!-- adds caret -->

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' hi-d/tt ')]" name="topic.hi-d.tt" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<xsl:apply-templates />

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' hi-d/u ')]" name="topic.hi-d.u" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<b><xsl:apply-templates /></b>

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+    <!-- Programming domain overrides -->

+

+    <xsl:template match="*[contains(@class,' pr-d/codeph ')]" name="topic.pr-d.codeph" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<b><xsl:apply-templates /></b>

+        <xsl:call-template name="checkFollowing" />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/kwd ')]" name="topic.pr-d.kwd" priority="100">

+		<xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/var ')]" name="topic.pr-d.var" priority="100">

+		<xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/synph ')]" name="topic.pr-d.synph" priority="100">

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/oper ')]" name="topic.pr-d.oper" priority="100">

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/delim ')]" name="topic.pr-d.delim" priority="100">

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/sep ')]" name="topic.pr-d.sep" priority="100">

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/repsep ')]" name="topic.pr-d.repsep" priority="100">

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/option ')]" name="topic.pr-d.option" priority="100">

+		<xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/parmname ')]" name="topic.pr-d.parmname" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<xsl:apply-templates />

+        <xsl:call-template name="checkFollowing" />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/apiname ')]" name="topic.pr-d.apiname" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<xsl:apply-templates />

+        <xsl:call-template name="checkFollowing" />

+    </xsl:template>

+

+    <!-- Programming overrides - not found in pr-d.xsl? -->

+

+    <xsl:template match="*[contains(@class,' pr-d/codeblock ')]" name="topic.pr-d.codeblock" priority="100">

+        <!-- same as topic.lines -->

+	    <xsl:call-template name="br-replace">

+	    <xsl:with-param name="brtext" select="."/>

+        </xsl:call-template>

+        <xsl:call-template name="isFirstChildOfCsbody" />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/parml ')]" name="topic.pr-d.parml" priority="100">

+        <xsl:apply-templates />

+        <xsl:call-template name="isFirstChildOfCsbody" />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/plentry ')]" name="topic.pr-d.plentry" priority="100">

+        <!-- same as topic.dlentry -->

+        <xsl:apply-templates />

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/pt ')]" name="topic.pr-d.pt" priority="100">

+        <!-- same as topic.dt -->

+		<b><xsl:apply-templates /></b><xsl:text>&#xA;</xsl:text>

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' pr-d/pd ')]" name="topic.pr-d.pd" priority="100">

+        <!-- same as topic.dd -->

+		<xsl:text>   </xsl:text>

+        <xsl:apply-templates />

+        <xsl:if test="position()!=last()">

+        <xsl:text>&#xA;</xsl:text>

+        </xsl:if>

+    </xsl:template>

+

+

+

+    <!-- Syntax diagram (Programming domain) overrides -->

+

+    <xsl:template match="*[contains(@class, ' pr-d/syntaxdiagram ')]" name="topic.pr-d.syntaxdiagram" priority="100">

+        <xsl:call-template name="output-message">

+           <xsl:with-param name="msg">Syntax diagrams are not supported in Eclipse context-sensitive help.</xsl:with-param>

+            <xsl:with-param name="msgnum">066</xsl:with-param>

+           <xsl:with-param name="msgsev">I</xsl:with-param>

+        </xsl:call-template>

+    </xsl:template>

+

+<!-- above template modified; several more syntax diagram templates removed -->

+

+

+

+    <!-- Software domain overrides -->

+

+	<xsl:template match="*[contains(@class,' sw-d/cmdname ')]" name="topic.sw-d.cmdname" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<b><xsl:apply-templates /></b>

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+	

+    <xsl:template match="*[contains(@class,' sw-d/filepath ')]" name="topic.sw-d.filepath" priority="100">

+        <xsl:call-template name="checkPreceding" />

+	<xsl:apply-templates />

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+	

+    <xsl:template match="*[contains(@class,' sw-d/msgnum ')]" name="topic.sw-d.msgnum" priority="100">

+        <b><xsl:apply-templates /></b>

+    </xsl:template>

+

+    <xsl:template match="*[contains(@class,' sw-d/msgph ')]" name="topic.sw-d.msgph" priority="100">

+        <b><xsl:apply-templates /></b>

+    </xsl:template>

+

+	<xsl:template match="*[contains(@class,' sw-d/systemoutput ')]" name="topic.sw-d.systemoutput" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<b><xsl:apply-templates /></b>

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+	

+ 	<xsl:template match="*[contains(@class,' sw-d/userinput ')]" name="topic.sw-d.userinput" priority="100">

+        <xsl:call-template name="checkPreceding" />

+		<b><xsl:apply-templates /></b>

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' sw-d/varname ')]" name="topic.sw-d.varname" priority="100">

+		<b><xsl:apply-templates /></b>

+	</xsl:template>

+	

+	

+

+    <!-- UI domain overrides -->

+

+    <xsl:template match="*[contains(@class,' ui-d/menucascade ')]" name="topic.ui-d.menucascade" priority="100">

+        <xsl:apply-templates />

+    </xsl:template>

+

+	<xsl:template match="*[contains(@class,' ui-d/screen ')]" name="topic.ui-d.screen" priority="100">

+        <!-- no output -->

+	</xsl:template>

+	

+    <xsl:template match="*[contains(@class,' ui-d/shortcut ')]" name="topic.ui-d.shortcut" priority="100">

+        <b><xsl:apply-templates /></b>

+    </xsl:template>

+

+	<xsl:template match="*[contains(@class,' ui-d/uicontrol ')]" name="topic.ui-d.uicontrol" priority="100">

+        <xsl:call-template name="checkPreceding" />

+        <xsl:if test="parent::*[contains(@class,' ui-d/menucascade ')] and preceding-sibling::*[contains(@class,' ui-d/uicontrol ')]">

+        <xsl:text> > </xsl:text>

+        </xsl:if>

+        <b><xsl:apply-templates /></b>

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+	<xsl:template match="*[contains(@class,' ui-d/wintitle ')]" name="topic.ui-d.wintitle" priority="100">

+        <xsl:call-template name="checkPreceding" />

+        <b><xsl:apply-templates /></b>

+        <xsl:call-template name="checkFollowing" />

+	</xsl:template>

+

+

+

+    <!-- Utilities domain overrides -->

+

+    <!-- imagemap -->

+    <xsl:template match="*[contains(@class,' ut-d/imagemap ')]" name="topic.ut-d.imagemap">

+        <!-- Process the image to get alternate text -->

+        <!--<xsl:call-template name="output-message">

+           <xsl:with-param name="msg">Eclipse context-sensitive help files do not support images.</xsl:with-param>

+            <xsl:with-param name="msgnum">066</xsl:with-param>

+           <xsl:with-param name="msgsev">I</xsl:with-param>

+        </xsl:call-template>-->

+      <xsl:apply-templates select="*[contains(@class,' topic/image ')]"/>

+    </xsl:template>

+

+

+

+	<!-- Miscellaneous templates -->

+	

+    <xsl:template match="text()">

+		<xsl:value-of select="normalize-space(.)" />

+    </xsl:template>

+

+    <xsl:template name="commonattributes" />

+    <xsl:template name="setscale" />

+    <xsl:template name="flagit" />

+    <xsl:template name="start-revflag" />

+    <xsl:template name="end-revflag" />

+

+    <xsl:template name="checkPreceding">

+		<xsl:if test="(substring(preceding-sibling::text()[position()=string-length()],1,1)!=' ') and (substring(preceding-sibling::text()[position()=string-length()],1,1)!='(')"><xsl:text> </xsl:text></xsl:if>

+	</xsl:template>

+

+    <xsl:template name="checkFollowing">

+       	<xsl:if test="(substring(following-sibling::text()[position()=1],1,1)!='.') and (substring(following-sibling::text()[position()=1],1,1)!=',') and (substring(following-sibling::text()[position()=1],1,1)!=';') and (substring(following-sibling::text()[position()=1],1,1)!=':')"><xsl:text> </xsl:text></xsl:if>

+    </xsl:template>

+

+    <xsl:template name="twoPrecedingCRs">

+        <!-- <xsl:if test="parent::*[contains(@class,' topic/desc ')] | parent::*[contains(@class,' topic/p ')] | parent::*[contains(@class,' topic/note ')] | parent::*[contains(@class,' topic/lq ')] | parent::*[contains(@class,' topic/li ')] | parent::*[contains(@class,' topic/sli ')] | parent::*[contains(@class,' topic/itemgroup ')] | parent::*[contains(@class,' topic/dd ')]"> -->

+        <xsl:choose>

+          <xsl:when test="parent::*[contains(@class,'topic/li ')] | parent::*[contains(@class, 'topic/dd ')] ">

+            <xsl:choose>

+              <xsl:when test="self::*[contains(@class,' topic/ul ')] | self::*[contains(@class,' topic/sl ')] | self::*[contains(@class,' topic/ol ')]">

+                <xsl:text>&#xA;</xsl:text>

+              </xsl:when>

+              <xsl:otherwise>

+                <xsl:text>&#xA;&#xA;</xsl:text>

+              </xsl:otherwise>

+            </xsl:choose>

+          </xsl:when>

+          <xsl:when test="parent::*[contains(@class,' topic/p ')]">

+            <xsl:if test="preceding-sibling::text()"> <!-- only add 2 cr's if nesting p has text before nested tag -->

+              <xsl:text>&#xA;&#xA;</xsl:text>

+            </xsl:if>

+          </xsl:when>

+          <xsl:when test="not(parent::*[contains(@class,' cshelp/csbody ')])">

+            <xsl:text>&#xA;&#xA;</xsl:text>

+          </xsl:when>

+          <xsl:otherwise>

+            <!-- do nothing -->

+          </xsl:otherwise>            

+        </xsl:choose>

+    </xsl:template>

+    

+<!-- jta: endOfP no longer called 11/03/2006 -->

+    <xsl:template name="endOfP">

+        <xsl:choose>

+        <xsl:when test="parent::*[contains(@class,' topic/p ')] and position()=last()">

+        <!-- do nothing -->

+        </xsl:when>

+        <xsl:when test="parent::*[contains(@class,' topic/p ')] and position()!=last()">

+        <xsl:text>&#xA;</xsl:text>

+        </xsl:when>

+        <xsl:otherwise>

+        <xsl:text>&#xA;&#xA;</xsl:text>

+        </xsl:otherwise>

+        </xsl:choose>

+    </xsl:template>

+

+<!-- jta: listEndOfP no longer called 11/03/2006 -->

+    <xsl:template name="listEndOfP">

+        <xsl:choose>

+	  <!-- jta 10/16/2006 -->

+        <xsl:when test="parent::*[contains(@class,' topic/p ')] | parent::*[contains(@class,' topic/desc ')] | parent::*[contains(@class,' topic/note ')] | parent::*[contains(@class,' topic/lq ')] | parent::*[contains(@class,' topic/li ')] | parent::*[contains(@class,' topic/sli ')] | parent::*[contains(@class,' topic/itemgroup ')] | parent::*[contains(@class,' topic/dd ')]">

+        <!-- do nothing -->

+        </xsl:when>

+        <xsl:otherwise>

+        <xsl:text>&#xA;&#xA;</xsl:text>

+        </xsl:otherwise>

+        </xsl:choose>

+    </xsl:template>

+

+<!-- jta 10/16/2006 -->

+    <xsl:template name="isFirstChildOfCsbody">

+	  <xsl:choose>

+           <xsl:when test="parent::*[contains(@class,' cshelp/csbody ')]">

+             <xsl:if test="following-sibling::*">

+               <xsl:text>&#xA;&#xA;</xsl:text>

+             </xsl:if>

+	   </xsl:when>

+           <xsl:when test="parent::*[contains(@class,' topic/dd ')] | parent::*[contains(@class,' topic/li ')]">

+             <xsl:choose>

+               <xsl:when test="self::*[contains(@class,' topic/ol ')] | self::*[contains(@class,' topic/sl ')] | self::*[contains(@class,' topic/ul ')]">

+                 <!-- do nothing -->

+               </xsl:when>

+               <xsl:otherwise>

+                 <xsl:if test="not(following-sibling::*)"><xsl:text>&#xA;</xsl:text></xsl:if>

+               </xsl:otherwise>

+             </xsl:choose>

+           </xsl:when>

+           <xsl:otherwise>

+             <!-- do nothing -->

+	   </xsl:otherwise>

+        </xsl:choose>

+    </xsl:template>

+

+<!-- jta 10/19/2006 -->

+    <xsl:template name="indentDL">

+        <xsl:variable name="ddcount" select="count(ancestor::*[contains(@class,' topic/dd ')])"/> 

+        <xsl:variable name="licount" select="count(ancestor::*[contains(@class,' topic/li ')])"/>

+        <xsl:variable name="lqcount" select="count(ancestor::*[contains(@class,' topic/lq ')])"/>

+	<xsl:variable name="notecnt" select="count(ancestor::*[contains(@class,' topic/note ')])"/>

+	<xsl:variable name="dd_adj"><xsl:choose><xsl:when test="number($ddcount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+	<xsl:variable name="li_adj"><xsl:choose><xsl:when test="number($licount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+        <xsl:variable name="indent" select="number($ddcount) + number($dd_adj) + number($licount) + number($li_adj) + number($lqcount) + number($notecnt)" />

+        <xsl:choose>

+          <xsl:when test="number($indent)=1">

+             <xsl:text>  </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=2">

+             <xsl:text>    </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=3">

+             <xsl:text>      </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=4">

+             <xsl:text>        </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=5">

+             <xsl:text>          </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=6">

+             <xsl:text>            </xsl:text>

+          </xsl:when>

+          <xsl:otherwise>

+             <!-- no indent -->

+          </xsl:otherwise>

+         </xsl:choose>

+    </xsl:template>

+            

+    <xsl:template name="indentP">

+        <xsl:variable name="ddcount" select="count(ancestor::*[contains(@class,' topic/dd ')])"/> 

+        <xsl:variable name="licount" select="count(ancestor::*[contains(@class,' topic/li ')])"/>

+        <xsl:variable name="lqcount" select="count(ancestor::*[contains(@class,' topic/lq ')])"/>

+	<xsl:variable name="notecnt" select="count(ancestor::*[contains(@class,' topic/note ')])"/>

+	<xsl:variable name="p_count" select="count(ancestor::*[contains(@class,' topic/p ')])"/>

+	<!-- <xsl:variable name="dd_adj"><xsl:choose><xsl:when test="number($ddcount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable> -->

+ 	<xsl:variable name="li_adj"><xsl:choose><xsl:when test="number($licount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+        <xsl:variable name="indent" select="number($ddcount) + number($licount) + number($li_adj) + number($lqcount) + number($notecnt) + number($p_count)" />

+        <xsl:choose>

+          <xsl:when test="number($indent)=1">

+             <xsl:text>  </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=2">

+             <xsl:text>    </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=3">

+             <xsl:text>      </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=4">

+             <xsl:text>        </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=5">

+             <xsl:text>          </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=6">

+             <xsl:text>            </xsl:text>

+          </xsl:when>

+          <xsl:otherwise>

+             <!-- no indent -->

+          </xsl:otherwise>

+         </xsl:choose>

+    </xsl:template>

+    

+    <xsl:template name="indentNote">

+        <xsl:variable name="ddcount" select="count(ancestor::*[contains(@class,' topic/dd ')])"/> 

+        <xsl:variable name="licount" select="count(ancestor::*[contains(@class,' topic/li ')])"/>

+        <xsl:variable name="lqcount" select="count(ancestor::*[contains(@class,' topic/lq ')])"/>

+	<xsl:variable name="notecnt" select="count(ancestor::*[contains(@class,' topic/note ')])"/>

+	<xsl:variable name="p_count" select="count(ancestor::*[contains(@class,' topic/p ')])"/>

+	<xsl:variable name="dd_adj"><xsl:choose><xsl:when test="number($ddcount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+	<xsl:variable name="li_adj"><xsl:choose><xsl:when test="number($licount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+        <xsl:variable name="indent" select="number($ddcount) + number($dd_adj) + number($licount) + number($li_adj) + number($lqcount) + number($notecnt) + number($p_count)" />

+        <xsl:choose>

+          <xsl:when test="number($indent)=1">

+             <xsl:text>  </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=2">

+             <xsl:text>    </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=3">

+             <xsl:text>      </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=4">

+             <xsl:text>        </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=5">

+             <xsl:text>          </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=6">

+             <xsl:text>            </xsl:text>

+          </xsl:when>

+          <xsl:otherwise>

+             <!-- no indent -->

+          </xsl:otherwise>

+         </xsl:choose>

+    </xsl:template>

+    

+    <xsl:template name="indentLQ">

+        <xsl:variable name="ddcount" select="count(ancestor::*[contains(@class,' topic/dd ')])"/> 

+        <xsl:variable name="licount" select="count(ancestor::*[contains(@class,' topic/li ')])"/>

+        <xsl:variable name="lqcount" select="count(ancestor::*[contains(@class,' topic/lq ')])"/>

+	<xsl:variable name="notecnt" select="count(ancestor::*[contains(@class,' topic/note ')])"/>

+	<xsl:variable name="p_count" select="count(ancestor::*[contains(@class,' topic/p ')])"/>

+	<xsl:variable name="dd_adj"><xsl:choose><xsl:when test="number($ddcount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+	<xsl:variable name="li_adj"><xsl:choose><xsl:when test="number($licount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+        <xsl:variable name="indent" select="number($ddcount) + number($dd_adj) + number($licount) + number($li_adj) + number($lqcount) + number($notecnt) + number($p_count)" />

+        <xsl:choose>

+          <xsl:when test="number($indent)=0">

+             <xsl:text>  </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=1">

+             <xsl:text>  </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=2">

+             <xsl:text>    </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=3">

+             <xsl:text>      </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=4">

+             <xsl:text>        </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=5">

+             <xsl:text>          </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=6">

+             <xsl:text>            </xsl:text>

+          </xsl:when>

+          <xsl:otherwise>

+             <xsl:text>  </xsl:text>

+          </xsl:otherwise>

+         </xsl:choose>

+    </xsl:template>

+

+

+    <xsl:template name="indentLI">

+        <xsl:variable name="ddcount" select="count(ancestor::*[contains(@class,' topic/dd ')])"/> 

+        <xsl:variable name="licount" select="count(ancestor::*[contains(@class,' topic/li ')])"/>

+        <xsl:variable name="lqcount" select="count(ancestor::*[contains(@class,' topic/lq ')])"/>

+	<xsl:variable name="notecnt" select="count(ancestor::*[contains(@class,' topic/note ')])"/>

+	<xsl:variable name="p_count" select="count(ancestor::*[contains(@class,' topic/p ')])"/>

+	<xsl:variable name="dd_adj"><xsl:choose><xsl:when test="number($ddcount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+	<xsl:variable name="li_adj"><xsl:choose><xsl:when test="number($licount)>0">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+	<xsl:variable name="p__adj"><xsl:choose><xsl:when test="number($p_count)>0">-1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>

+        <xsl:variable name="indent" select="number($ddcount) + number($dd_adj) + number($licount) + number($li_adj) + number($lqcount) + number($notecnt) + number($p_count) + number($p__adj)" />

+        <xsl:choose>

+          <xsl:when test="number($indent)=0">

+             <xsl:text>  </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=1">

+             <xsl:text>  </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=2">

+             <xsl:text>    </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=3">

+             <xsl:text>      </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=4">

+             <xsl:text>        </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=5">

+             <xsl:text>          </xsl:text>

+          </xsl:when>

+          <xsl:when test="number($indent)=6">

+             <xsl:text>            </xsl:text>

+          </xsl:when>

+          <xsl:otherwise>

+             <xsl:text>  </xsl:text>

+          </xsl:otherwise>

+        </xsl:choose>

+    </xsl:template>

+    

+    <xsl:template name="isNestedTextFollows">

+        <!-- <xsl:if test="parent::*[contains(@class,' topic/dd ')][following-sibling::text()] |

+                parent::*[contains(@class,' topic/lq ')][following-sibling::text()] |

+                parent::*[contains(@class,' topic/li ')][following-sibling::text()] |

+                parent::*[contains(@class,' topic/note ')][following-sibling::text()] |

+                parent::*[contains(@class,' topic/p ')][following-sibling::text()]"> -->

+        <xsl:if test="not(parent::*[contains(@class,' cshelp/csbody ')]) and following-sibling::text()">

+          <xsl:text>&#xA;&#xA;</xsl:text> <!-- jta 11/03/2006: condition when nesting tag has more text -->

+        </xsl:if>

+    </xsl:template>

+

+    <!-- IBM Copyright - English only output, and only when copyright belongs to IBM -->

+

+    <xsl:template name="ibmcopyright">

+      <xsl:variable name="userCopyright">

+        <xsl:value-of select="self::dita/*/*[contains(@class,' topic/prolog ')]/

+                                       *[contains(@class,' topic/copyright ')]/

+                                       *[contains(@class,' topic/copyrholder ')] |

+                          *[contains(@class,' topic/prolog ')]/

+                                       *[contains(@class,' topic/copyright ')]/

+                                       *[contains(@class,' topic/copyrholder ')]"/>

+      </xsl:variable>

+      <xsl:variable name="copyYears">

+        <xsl:value-of select="self::dita/*/*[contains(@class,' topic/prolog ')]/

+                                       *[contains(@class,' topic/copyright ')]/

+                                       *[contains(@class,' topic/copyryear ')]/@year |

+                          *[contains(@class,' topic/prolog ')]/

+                                       *[contains(@class,' topic/copyright ')]/

+                                       *[contains(@class,' topic/copyryear ')]/@year"/>

+      </xsl:variable>

+      <xsl:choose>

+        <xsl:when test="normalize-space($userCopyright)!='' and not(contains($userCopyright,'IBM'))">

+          <!-- P018721: user copyright is specified, and it does not contain IBM; do not put out the comment -->

+        </xsl:when>

+        <xsl:when test="(self::dita/*/*[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/copyright ')] |

+                     *[contains(@class,' topic/prolog ')]/*[contains(@class,' topic/copyright ')]) and

+                    normalize-space($userCopyright)='' and normalize-space($copyYears)=''">

+          <!-- P018721: if user forces empty copyright, empty year, do not put out the copyright comment -->

+        </xsl:when>

+        <xsl:otherwise>

+          <xsl:variable name="childlang">

+            <xsl:choose>

+              <xsl:when test="self::dita">

+                <xsl:for-each select="*[1]"><xsl:call-template name="getLowerCaseLang"/></xsl:for-each>

+              </xsl:when>

+              <xsl:otherwise><xsl:call-template name="getLowerCaseLang"/></xsl:otherwise>

+            </xsl:choose>

+          </xsl:variable>

+          <xsl:choose>

+            <xsl:when test="$childlang='en-us' or $childlang='en'">

+              <xsl:comment> All rights reserved. Licensed Materials Property of IBM </xsl:comment><xsl:value-of select="$newline"/>

+              <xsl:comment> US Government Users Restricted Rights </xsl:comment><xsl:value-of select="$newline"/>

+              <xsl:comment> Use, duplication or disclosure restricted by </xsl:comment><xsl:value-of select="$newline"/>

+              <xsl:comment> GSA ADP Schedule Contract with IBM Corp. </xsl:comment><xsl:value-of select="$newline"/>

+            </xsl:when>

+            <xsl:otherwise/>

+          </xsl:choose>

+        </xsl:otherwise>

+      </xsl:choose>

+    </xsl:template>

+

+</xsl:stylesheet>

diff --git a/src/help/studio_help/ReadMe.txt b/src/help/studio_help/ReadMe.txt
new file mode 100644
index 0000000..2099b7c
--- /dev/null
+++ b/src/help/studio_help/ReadMe.txt
@@ -0,0 +1,13 @@
+Setting up to build:

+1. Obtain the DITA Open Toolkit from http://dita-ot.sourceforge.net. Install it into the tools folder. Note that there is already a ditaot plugin in this folder; that plugin needs to reside in the plugins folder within your ditaot installation.

+2. Obtain DITAReports from http://dita-ot.sourceforge.net/doc/ot-userguide131/ditaotug131-18042007-tools.zip. Install it so that you wind up with a ditareports folder inside tools (parallel to the ditaot folder).

+3. Obtain Linklint from http://www.linklint.org and install it into the tools folder, so that you wind up with a linklint folder inside tools. You should now have three folders inside the tools folder: "ditaot", "ditareports", and "linklint", and within the plugins folder inside ditaot you should see cshelp (part of ditaot) and com.mot.mdb.deved.xhtml. If the cshelp plugin isn't there, you'll need to obtain it from http://dita-ot.sourceforge.net and install it separately.

+

+Instructions for building the online help on Mac OS X:

+

+1. In Finder, double-click docs_dita/studio_help/tools/ditaot/startcmd_mac.command. The terminal window will open and the environment will be set up.

+2. In the terminal window, do:

+	cd ../../etc/buildfiles/android_studio-help

+	ant all -f build.xml

+	

+There are Windows batch files (in tools/ditaot) that can be used in place of step 1 on a Windows machine. 

diff --git a/src/help/studio_help/etc/buildfiles/android_studio-help/build.properties b/src/help/studio_help/etc/buildfiles/android_studio-help/build.properties
new file mode 100644
index 0000000..3a716d6
--- /dev/null
+++ b/src/help/studio_help/etc/buildfiles/android_studio-help/build.properties
@@ -0,0 +1,6 @@
+# Set version number for all plug-ins
+plugin-version=4.1.0.release
+# Set build number for all plug-in zip files
+build-number=04.01.00i_b002
+# Generate a ditamap debugging report
+report=true
diff --git a/src/help/studio_help/etc/buildfiles/android_studio-help/build.xml b/src/help/studio_help/etc/buildfiles/android_studio-help/build.xml
new file mode 100644
index 0000000..1e95743
--- /dev/null
+++ b/src/help/studio_help/etc/buildfiles/android_studio-help/build.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>

+<project name="android_studio-help" default="all" basedir=".">

+

+  <!--Properties unique to this build (others are specified in ../build_lib.xml)-->

+

+  <loadproperties srcfile="build.properties"/>

+

+  <!--Location of output folder where each plug-in's folder goes-->

+  <property name="out-projdir" value="${basedir}/../../../out/android_studio-help"/>

+  <property name="out-basedir" value="${out-projdir}/product"/>

+  <property name="out-jardir" value="${out-basedir}/jars"/>

+  <!--Name of plug-in's TOC file (without extension)-->

+  <property name="toc-filenoext" value="main"/>

+  <!--Path of file containing context extension points for context-sensitive help-->

+  <property name="context-file" value="${basedir}/context_extension_points.xml"/>

+  <property name="report" value="false"/>

+

+  <import file="../build_lib.xml"/>

+

+  <target name="all" depends="plugins"/>

+

+  <target name="plugins" depends="clean" description="Build Studio for Android help plug-ins.">

+

+    <mkdir dir="${out-jardir}"/>

+

+    <!-- Call build-topics-plugin macro to build help for each ditamap. -->

+    <build-topics-plugin map="android_help-studio.ditamap" ditaval="${basedir}/filter_android-studio.ditaval"

+      hdr="${basedir}/../../resources/hdr-none.xml">

+      <build-cshelp cshelp-topic="${src-dir}/topics/cs_android.dita"

+        context-out-dir="${@{map}-plugin-temp-dir}/contexts" ditaval="${basedir}/filter_android-studio.ditaval"

+        context-temp-dir="${@{map}-plugin-temp-dir}_contexts"

+        plugin-out-dir="${out-basedir}/${@{map}-plugin-id}_${plugin-version}"/>

+      <zip destfile="${out-jardir}/${@{map}-plugin-id}_${plugin-version}.jar"

+        basedir="${out-basedir}/${@{map}-plugin-id}_${plugin-version}"/>

+      <report map="@{map}"/>

+      <checklinks dir="${out-basedir}/${@{map}-plugin-id}_${plugin-version}" map="@{map}"/>

+      <!-- Create zip file from jar so zip filename includes build number -->

+      <zip destfile="${out-jardir}/android_studio-help_${build-number}.zip">

+        <fileset dir="${out-jardir}" includes="${@{map}-plugin-id}_${plugin-version}.jar"/>

+      </zip>

+    </build-topics-plugin>

+

+  </target>

+

+

+  <target name="releasenotes">

+    <property name="mapfile" value="android_studio-release-notes.ditamap"/>

+    <basename property="mapname" file="${mapfile}" suffix=".ditamap"/>

+    <property name="relnote-out-dir" value="${out-projdir}/web/${mapname}"/>

+    <delete dir="${relnote-out-dir}" quiet="yes"/>

+    <!-- Call DITA-OT build script-->

+    <ant antfile="${dita.dir}/build.xml" target="init" description="Call DITA OT build script">

+      <property name="transtype" value="xhtml"/>

+      <property name="args.input" value="${src-dir}/${mapfile}"/>

+      <property name="dita.input.valfile" value="${basedir}/filter_android-studio.ditaval"/>

+      <property name="output.dir" value="${relnote-out-dir}"/>

+      <property name="dita.temp.dir" value="${temp-dir}/${mapname}"/>

+      <property name="args.logdir" value="${log-dir}"/>

+    </ant>

+

+    <deleteflagimages output-dir="${relnote-out-dir}"/>

+    <replacecss output-dir="${relnote-out-dir}"/>

+

+  </target>

+

+</project>

diff --git a/src/help/studio_help/etc/buildfiles/android_studio-help/context_extension_points.xml b/src/help/studio_help/etc/buildfiles/android_studio-help/context_extension_points.xml
new file mode 100644
index 0000000..ccae836
--- /dev/null
+++ b/src/help/studio_help/etc/buildfiles/android_studio-help/context_extension_points.xml
@@ -0,0 +1,22 @@
+

+<!--Context extension point for all Studio for Android cshelp-->

+<extension point="org.eclipse.help.contexts">

+

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.android.codeutils"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.android.devices.services"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.android.emulator"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.android.installer"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.android.launch.ui"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.android.launch"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.android.packaging.ui"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.android.videos.views"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.android"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.platform.logger.collector"/>

+  <contexts file="cs_android.xml" plugin="com.motorola.studio.platform.tools.sign.ui"/>

+  <contexts file="cs_android.xml" plugin="com.motorolamobility.studio.android.db.core"/>

+  <contexts file="cs_android.xml" plugin="com.motorolamobility.studio.android.db.devices"/>

+  <contexts file="cs_android.xml" plugin="org.eclipse.datatools.sqltools.sqleditor"/>

+  <contexts file="cs_android.xml" plugin="org.eclipse.sequoyah.device.framework.ui"/>

+  <contexts file="cs_android.xml" plugin="com.motorolamobility.studio.android.certmanager"/>

+

+</extension>

diff --git a/src/help/studio_help/etc/buildfiles/android_studio-help/enable-win32.xml b/src/help/studio_help/etc/buildfiles/android_studio-help/enable-win32.xml
new file mode 100644
index 0000000..980649c
--- /dev/null
+++ b/src/help/studio_help/etc/buildfiles/android_studio-help/enable-win32.xml
@@ -0,0 +1,6 @@
+

+          <enablement>

+            <or>

+              <systemTest property="osgi.os" value="win32"/>

+            </or>

+          </enablement>
\ No newline at end of file
diff --git a/src/help/studio_help/etc/buildfiles/android_studio-help/filter_android-studio.ditaval b/src/help/studio_help/etc/buildfiles/android_studio-help/filter_android-studio.ditaval
new file mode 100644
index 0000000..17e5db1
--- /dev/null
+++ b/src/help/studio_help/etc/buildfiles/android_studio-help/filter_android-studio.ditaval
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Filter file for MOTODEV Studio for Android help. -->
+<val>
+  <prop att="product" val="android-studio" action="include"/>
+  <prop att="product" val="javame-studio" action="exclude"/>
+  <prop att="product" val="javame-sdk" action="exclude"/>
+  <prop att="product" val="webui" action="exclude"/>
+</val>
diff --git a/src/help/studio_help/etc/buildfiles/build_lib.xml b/src/help/studio_help/etc/buildfiles/build_lib.xml
new file mode 100644
index 0000000..4c6efbb
--- /dev/null
+++ b/src/help/studio_help/etc/buildfiles/build_lib.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="utf-8"?>

+<project name="lib" basedir=".">

+

+  <taskdef resource="net/sf/antcontrib/antlib.xml"/>

+

+  <!--Location of DITA Open Toolkit-->

+  <property name="dita.dir" value="${basedir}/../../../tools/ditaot"/>

+  <!--Location of DITA source files to build-->

+  <property name="src-dir" value="${basedir}/../../../src"/>

+  <!--Location of temp folder-->

+  <property name="temp-dir" value="${basedir}/temp"/>

+  <!--Location of logs folder-->

+  <property name="log-dir" value="${basedir}/logs"/>

+  <!--Path of file containing context extension points for context-sensitive help-->

+  <property name="context-file" value="${basedir}/context_extension_points.xml"/>

+  <!--If present, load file containing Eclipse enablement elements for Windows-only content.-->

+  <available file="enable-win32.xml" property="enablement-present"/>

+  <if>

+    <isset property="enablement-present"/>

+    <then>

+      <loadfile property="enablement-win32" srcfile="enable-win32.xml"/>

+    </then>

+  </if>

+

+  <!--  References ANT extension that provides Perl 5 compatible regex functionality.-->

+  <property name="ant.regexp.regexpimpl" value="org.apache.tools.ant.util.regexp.JakartaOroRegexp"/>

+

+  <!--Import DITA OT build file-->

+  <import file="${dita.dir}/build.xml"/>

+

+  <target name="clean" description="Delete all generated files (out, temp, and logs folders)">

+    <delete dir="${out-projdir}" quiet="yes"/>

+    <delete dir="${log-dir}" quiet="yes"/>

+    <delete dir="${temp-dir}" quiet="yes"/>

+    <delete file="${basedir}/ditaot_batch.log"/>

+  </target>

+

+  <macrodef name="build-topics-plugin" description="Build a DevEd Eclipse help plug-in">

+    <attribute name="map" default="NOT_SET"/>

+    <attribute name="ditaval" default="NOT_SET"/>

+    <attribute name="hdr" default="NOT_SET"/>

+    <attribute name="provider" default="Motorola Mobility, Inc."/>

+    <element name="build-callers-tasks" implicit="yes" optional="yes"/>

+    <sequential>

+      <echo/>

+      <echo>=============================================================================</echo>

+      <echo>START build-topics-plugin for @{map}</echo>

+      <echo>Ditaval file: "@{ditaval}"</echo>

+      <property name="@{map}-path" value="${src-dir}/@{map}"/>

+      <!-- Reads ditamap into ANT XML properties so that build script can use same map ID as plug-in ID everywhere. -->

+      <xmlproperty file="${@{map}-path}" prefix="@{map}"/>

+      <property name="@{map}-plugin-id" value="${@{map}.map(id)}"/>

+      <echo>Plug-in ID: ${@{map}-plugin-id}</echo>

+      <property name="@{map}-plugin-out-dir"

+        value="${out-basedir}/${@{map}-plugin-id}_${plugin-version}"/>

+      <property name="@{map}-plugin-temp-dir"

+        value="${temp-dir}/${@{map}-plugin-id}_${plugin-version}"/>

+      <!-- Get copyright info from map file -->

+      <property name="@{map}-copyryear" value="${@{map}.map.topicmeta.copyright.copyryear(year)}"/>

+      <property name="@{map}-copyrholder" value="${@{map}.map.topicmeta.copyright.copyrholder}"/>

+      <echo>Copyright date: ${@{map}-copyryear}</echo>

+      <echo>Copyright holder: ${@{map}-copyrholder}</echo>

+      <!--Delete output folder before building so no unnecessary files from previous build are left.-->

+      <delete dir="${@{map}-plugin-out-dir}" quiet="yes"/>

+

+      <!-- Call DITA-OT build script-->

+      <ant antfile="${dita.dir}/build.xml" target="init" description="Call DITA OT build script">

+        <property name="transtype" value="eclipsehelp"/>

+        <property name="args.input" value="${@{map}-path}"/>

+        <property name="dita.input.valfile" value="@{ditaval}"/>

+        <property name="args.hdr" value="@{hdr}"/>

+        <property name="output.dir" value="${@{map}-plugin-out-dir}"/>

+        <property name="dita.temp.dir" value="${@{map}-plugin-temp-dir}"/>

+        <property name="args.logdir" value="${log-dir}"/>

+        <!-- Sets "Bundle-Version" in meta-mf/manifest.mf, the version of this help plug-in. -->

+        <property name="args.eclipse.version" value="${plugin-version}"/>

+        <property name="args.eclipse.provider" value="@{provider}"/>

+        <property name="args.eclipsehelp.toc" value="${toc-filenoext}"/>

+      </ant>

+

+      <!--Change filename of TOC file from ditamapname.xml to specified.-->

+      <basename property="@{map}-filenoext" file="@{map}" suffix=".ditamap"/>

+      <move file="${@{map}-plugin-out-dir}/${@{map}-filenoext}.xml"

+        tofile="${@{map}-plugin-out-dir}/${toc-filenoext}.xml"/>

+

+      <deleteflagimages output-dir="${@{map}-plugin-out-dir}"/>

+      <replacecss output-dir="${@{map}-plugin-out-dir}"/>

+

+      <!--Replace special anchors in TOC with Eclipse enablement elements-->

+      <!--Set anchor id="eclipse-enable-win32onlyXXX" for topics that should appear in TOC only in Windows.-->

+      <!--XXX can be anything (required only to make anchor id unique in ditamap file.-->

+      <if>

+        <isset property="enablement-present"/>

+        <then>

+          <replaceregexp file="${@{map}-plugin-out-dir}/${toc-filenoext}.xml"

+            match="\s*?&lt;anchor\s+id\s*?=\s*?&quot;eclipse-enable-win32only.*?&quot;\s*?/&gt;"

+            replace="${enablement-win32}" flags="gi"/>

+        </then>

+      </if>

+

+      <!--Move debugging files to temp folder.-->

+      <!--<move file="${@{map}-plugin-out-dir}/dita.list" todir="${@{map}-plugin-temp-dir}"/>

+        <move file="${@{map}-plugin-out-dir}/dita.xml.properties" todir="${@{map}-plugin-temp-dir}"/>-->

+

+      <!--Perform caller's implicit tasks here-->

+      <build-callers-tasks/>

+

+      <echo>END build-topics-plugin for @{map}</echo>

+    </sequential>

+  </macrodef>

+

+

+  <macrodef name="build-cshelp" description="Build cshelp for a DevEd Eclipse help plug-in">

+    <attribute name="cshelp-topic" default="NOT_SET"/>

+    <attribute name="ditaval" default="NOT_SET"/>

+    <attribute name="context-out-dir" default="NOT_SET"/>

+    <attribute name="context-temp-dir" default="NOT_SET"/>

+    <attribute name="plugin-out-dir" default="NOT_SET"/>

+    <element name="build-callers-tasks" implicit="yes" optional="yes"/>

+    <sequential>

+      <basename property="@{cshelp-topic}-filenoext" file="@{cshelp-topic}" suffix=".dita"/>

+      <echo/>

+      <echo>======================================================</echo>

+      <echo>START build-cshelp for ${@{cshelp-topic}-filenoext}</echo>

+      <!-- Call DITA-OT build script to build cshelp topics using special XSL-->

+      <ant antfile="${dita.dir}/build.xml" target="init">

+        <property name="args.input" value="@{cshelp-topic}"/>

+        <property name="dita.input.valfile" value="@{ditaval}"/>

+        <property name="output.dir" value="@{context-out-dir}"/>

+        <property name="dita.temp.dir" value="@{context-temp-dir}"/>

+        <property name="args.xsl" value="${dita.dir}/plugins/cshelp/xsl/dit2context.xsl"/>

+        <property name="dita.extname" value=".dita"/>

+        <property name="transtype" value="xhtml"/>

+        <property name="args.outext" value="xml"/>

+      </ant>

+      <!-- Add "topics/" to start of each href so that contexts link to topics in "topics" subfolder-->

+      <replaceregexp file="@{context-out-dir}/${@{cshelp-topic}-filenoext}.xml"

+        match="&lt;topic(\s+)href=&#34;" replace="&lt;topic\1href=&#34;topics/"

+        byline="true"/>

+      <!-- Move context XML file to this plug-in's output folder-->

+      <move file="@{context-out-dir}/${@{cshelp-topic}-filenoext}.xml" todir="@{plugin-out-dir}"/>

+      <!--Load context ext points file, then add it to the end of the plugin.xml file-->

+      <loadfile property="context-ext-pts" srcfile="${context-file}"/>

+      <replaceregexp file="@{plugin-out-dir}/plugin.xml" match="&lt;/plugin&gt;"

+        replace="${context-ext-pts}&lt;/plugin&gt;" byline="yes"/>

+

+      <!--Perform caller's implicit tasks here-->

+      <build-callers-tasks/>

+

+      <echo>END build-cshelp for ${@{cshelp-topic}-filenoext}</echo>

+    </sequential>

+  </macrodef>

+

+  <macrodef name="report" description="Generate debugging report for a ditamap">

+    <attribute name="map" default="NOT_SET"/>

+    <sequential>

+      <if>

+        <istrue value="${report}"/>

+        <then>

+          <exec dir="${basedir}" executable="php" output="${log-dir}/@{map}_debug-report.txt"

+            os="Mac OS X" failifexecutionfails="false" logerror="true">

+            <arg file="${dita.dir}/../ditareports/src/ditadebug.php"/>

+            <arg file="${src-dir}/@{map}"/>

+          </exec>

+        </then>

+      </if>

+    </sequential>

+  </macrodef>

+

+  <macrodef name="checklinks" description="Check links in HTML output and generate report">

+    <attribute name="dir" default="NOT_SET"/>

+    <attribute name="map" default="NOT_SET"/>

+    <sequential>

+      <!--Run linklint if report="true" and if OS is Mac or a Unix-like OS, which ship with Perl.-->

+      <if>

+        <and>

+          <istrue value="${report}"/>

+          <or>

+            <os family="mac"/>

+            <os family="unix"/>

+          </or>

+        </and>

+        <then>

+          <echo/>

+          <echo>------------------------------------------------------</echo>

+          <echo message="linklint:  checking links in output"/>

+          <exec dir="${basedir}" executable="perl" os="Mac OS X" failifexecutionfails="false"

+            logerror="true">

+            <arg file="${dita.dir}/../linklint/src/linklint"/>

+            <arg value="-root"/>

+            <arg path="@{dir}"/>

+            <arg line="/@ -no_warn_index -htmlonly -quiet"/>

+            <arg value="-doc"/>

+            <arg path="${log-dir}/@{map}_link-report"/>

+          </exec>

+          <echo/>

+          <echo>See index.html in logs directory for full link report:  ${log-dir}/@{map}_link-report</echo>

+          <echo>------------------------------------------------------</echo>

+          <echo/>

+        </then>

+      </if>

+    </sequential>

+  </macrodef>

+

+  <macrodef name="deleteflagimages" description="Delete flagging images inserted by DITA-OT">

+    <!--Delete flagging images inserted by DITA-OT because a ditaval file is specified-->

+    <attribute name="output-dir" default="NOT_SET"/>

+    <sequential>

+      <delete file="@{output-dir}/delta.gif"/>

+      <delete file="@{output-dir}/deltaend.gif"/>

+    </sequential>

+  </macrodef>

+

+  <macrodef name="replacecss" description="Replace default CSS">

+    <!--Delete extraneous CSS from output folder and copy Motorola Dev Ed CSS to output folder..-->

+    <attribute name="output-dir" default="NOT_SET"/>

+    <sequential>

+      <delete file="@{output-dir}/commonrtl.css"/>

+      <copy file="${basedir}/../../resources/commonltr.css" todir="@{output-dir}" overwrite="yes"/>

+    </sequential>

+  </macrodef>

+

+</project>

diff --git a/src/help/studio_help/etc/resources/commonltr.css b/src/help/studio_help/etc/resources/commonltr.css
new file mode 100644
index 0000000..ab4917c
--- /dev/null
+++ b/src/help/studio_help/etc/resources/commonltr.css
@@ -0,0 +1,217 @@
+/*

+ | This file is part of the DITA Open Toolkit project hosted on 

+ | Sourceforge.net. See the accompanying license.txt file for 

+ | applicable licenses.

+*/

+

+/*

+ | (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved.

+ */

+ 

+ 

+.hdr-confidential {

+ background-color: #dddddd;

+ float: right;

+ padding: 0.5em;

+}

+

+.help_breadcrumbs {

+ font: message-box;

+ margin-bottom: 10px;

+}

+ 

+body {

+ color: black;

+ background-color: white;

+ font-family: Arial, sans-serif;

+ font-size: 0.8em;

+ margin-left: 10px;

+ margin-right: 2em;

+ margin-bottom: 15px;

+ margin-top: 4px;

+}

+

+.unresolved { background-color: skyblue; }

+.noTemplate { background-color: yellow; }

+

+.base { background-color: #ffffff; }

+

+/* Add space for top level topics */

+.nested0 { margin-top: 0em;}

+.nested1 { margin-top: 3em; margin-left: 2%; }

+.nested2 { margin-left: 2%;}

+

+div.glossentry { margin-top: 1em; }

+div.glossentry .topictitle2 { border-top: none; }

+

+/* div with class=p is used for paragraphs that contain blocks, to keep the XHTML valid */

+.p {margin-top: 1em}

+

+/* Default of italics to set apart figure captions */

+.figcap { font-style: italic }

+.figdesc { font-style: normal }

+

+/* Use @frame to create frames on figures */

+.figborder { border-style: solid; padding-left : 3px; border-width : 2px; padding-right : 3px; margin-top: 1em; border-color : Silver;}

+.figsides { border-left : 2px solid; padding-left : 3px; border-right : 2px solid; padding-right : 3px; margin-top: 1em; border-color : Silver;}

+.figtop { border-top : 2px solid; margin-top: 1em; border-color : Silver;}

+.figbottom { border-bottom : 2px solid; border-color : Silver;}

+.figtopbot { border-top : 2px solid; border-bottom : 2px solid; margin-top: 1em; border-color : Silver;}

+

+/* Most link groups are created with <div>. Ensure they have space before and after. */

+.familylinks { margin-top: 2em;  }

+.ullinks { list-style-type: none; margin-top: 2em;  margin-left: 0.5em; padding-left: 0.5em; }

+.ulchildlink { margin-top: 1em; margin-bottom: 1em }

+.olchildlink { margin-top: 1em; margin-bottom: 1em }

+.linklist { margin-bottom: 1em }

+.linklistwithchild { margin-left: 1.5em; margin-bottom: 1em  }

+.sublinklist { margin-left: 1.5em; margin-bottom: 1em  }

+.relconcepts { margin-top: 2em; margin-bottom: 1em }

+.reltasks { margin-top: 2em; margin-bottom: 1em }

+.relref { margin-top: 2em; margin-bottom: 1em }

+.relinfo { margin-top: 2em; margin-bottom: 1em }

+.breadcrumb { font-size : smaller; margin-bottom: 1em }

+.prereq { margin-left : 20px;}

+

+

+

+/* Set heading sizes, getting smaller for deeper nesting */

+.topictitle1 { margin-top: 0em; margin-bottom: .1em; font-size: 1.8em; }

+.topictitle2 { margin-top: 1em; margin-bottom: .45em; font-size: 1.25em;  margin-left: -2%; border-top: thin solid #CCCCCC; padding-top: .5em;}

+.topictitle3 { margin-top: 2em; margin-bottom: 0.2em; font-size: 1.0em; font-weight: bold; margin-left: -2%; border-top: thin solid #CCCCCC; padding-top: 0.5em; }

+.topictitle4 { margin-top: .83em; font-size: 0.9em; font-weight: bold; }

+.topictitle5 { font-size: 0.8em; font-weight: bold; }

+.topictitle6 { font-size: 0.7em; font-style: italic; }

+.sectiontitle { margin-top: 1em; margin-bottom: 0em; color: black; font-size: 1.2em; font-weight: bold;}

+.nested2 .sectiontitle { font-size: 1.0em; }

+.section { margin-top: 2em; margin-bottom: 1em }

+.example { margin-top: 2em; margin-bottom: 1em }

+

+/* All note formats have the same default presentation */

+.note { margin-top: 1em; margin-bottom : 1em;}

+.notetitle { font-weight: bold }

+.notelisttitle { font-weight: bold }

+.tip { margin-top: 1em; margin-bottom : 1em;}

+.tiptitle { font-weight: bold }

+.fastpath { margin-top: 1em; margin-bottom : 1em;}

+.fastpathtitle { font-weight: bold }

+.important { margin-top: 1em; margin-bottom : 1em;}

+.importanttitle { font-weight: bold }

+.remember { margin-top: 1em; margin-bottom : 1em;}

+.remembertitle { font-weight: bold }

+.restriction { margin-top: 1em; margin-bottom : 1em;}

+.restrictiontitle { font-weight: bold }

+.attention { margin-top: 1em; margin-bottom : 1em;}

+.attentiontitle { font-weight: bold }

+.dangertitle { font-weight: bold }

+.danger { margin-top: 1em; margin-bottom : 1em;}

+.cautiontitle { font-weight: bold; margin-top: 0.53em; }

+.caution { font-weight: bold; margin-bottom : 1em; }

+

+/* Simple lists do not get a bullet */

+ul.simple { list-style-type: none }

+

+/* Used on the first column of a table, when rowheader="firstcol" is used */

+.firstcol { font-weight : bold;}

+

+/* Various basic phrase styles */

+.bold { font-weight: bold; }

+.boldItalic { font-weight: bold; font-style: italic; }

+.italic { font-style: italic; }

+.underlined { text-decoration: underline; }

+.uicontrol { font-weight: bold; }

+.parmname { font-weight: bold; }

+.kwd { font-weight: bold; }

+.defkwd { font-weight: bold; text-decoration: underline; }

+.var { font-style : italic;}

+.shortcut { text-decoration: underline; }

+.term { font-style: italic; }

+

+/* Default of bold for definition list terms */

+.dlterm { font-weight: bold; margin-top: 0.5em; }

+

+/* Use CSS to expand lists with @compact="no" */

+.dltermexpand { font-weight: bold; margin-top: 1em; }

+*[compact="yes"]>li { margin-top: 0em;}

+*[compact="no"]>li { margin-top: .53em;}	

+.liexpand { margin-top: 1em; margin-bottom: 1em }

+.sliexpand { margin-top: 1em; margin-bottom: 1em }

+.dlexpand { margin-top: 1em; margin-bottom: 1em }

+.ddexpand { margin-top: 1em; margin-bottom: 1em }

+.stepexpand { margin-top: 1em; margin-bottom: 1em }

+.substepexpand { margin-top: 1em; margin-bottom: 1em }

+

+/* Default list styles */

+ul li, ol li, dl { margin-top: .53em; margin-bottom: 0.0em; margin-left: 0.0em;}

+ul, ol { margin-bottom: 1em; margin-top: 0em;}

+

+/* Align images based on @align on topic/image */

+div.imageleft { text-align: left; margin-top: 1em; margin-bottom: 1em; }

+div.imagecenter { text-align: center; margin-top: 1em; }

+div.imageright { text-align: right; margin-top: 1em; }

+div.imagejustify { text-align: justify; margin-top: 1em; }

+

+/* The cell border can be turned on with

+   {border-right:solid}

+   This value creates a very thick border in Firefox (does not match other tables)

+

+   Firefox works with 

+   {border-right:solid 1pt}

+   but this causes a barely visible line in IE */

+

+.cellrowborder { border-left:none; border-top:none; border-right:solid 1px; border-bottom:solid 1px }

+.row-nocellborder { border-left:none; border-right:none; border-top:none; border-right: hidden; border-bottom:solid 1px}

+.cell-norowborder { border-top:none; border-bottom:none; border-left:none; border-bottom: hidden; border-right:solid 1px}

+.nocellnorowborder { border:none; border-right: hidden;border-bottom: hidden }

+

+

+table {

+   color: black; 

+   border-collapse: collapse;

+   border-color: black;

+   background: white;  

+   margin-top: 0.5em;

+   margin-bottom: 0.5em;

+   margin-left: 0em;

+   margin-right: 0em;

+   font-size: 1em;

+} 

+

+.tablenoborder { margin-top: 1em; margin-bottom: 1em; }

+table caption { text-align: left; padding-bottom: .5em;}

+.tablecap { font-weight: bold; }

+thead, th { background-color: #dddddd; font-weight: bold; }

+table div.p { margin-top: 0; margin-bottom: 0; }

+th { vertical-align: bottom;}

+td p:first-child, th p:first-child { margin-top: 0em; }

+

+pre.screen { padding: 5px 5px 5px 5px; border: outset; background-color: #CCCCCC; margin-top: 2px; margin-bottom : 2px; white-space: pre; overflow: auto; }

+

+.codeblock { 

+  font-family: Monaco, "Courier New", Courier, fixed, Monospace; 

+  font-size: 1em; 

+  background-color: #dddddd; 

+  padding: 6px; 

+  margin-top: 1em; 

+  margin-bottom: 1em; 

+  white-space: pre-wrap;       /* css-3 */

+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */

+  white-space: -pre-wrap;      /* Opera 4-6 */

+  white-space: -o-pre-wrap;    /* Opera 7 */

+  word-wrap: break-word;       /* Internet Explorer 5.5+ */

+}

+

+.msgblock { 

+  font-family: Monaco, "Courier New", Courier, fixed, Monospace; 

+  font-size: 1em; 

+  margin-top: 1em; 

+  margin-bottom: 1em; 

+  white-space: pre-wrap;       /* css-3 */

+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */

+  white-space: -pre-wrap;      /* Opera 4-6 */

+  white-space: -o-pre-wrap;    /* Opera 7 */

+  word-wrap: break-word;       /* Internet Explorer 5.5+ */

+}

+

+

+.codeph, .apiname { font-family: Monaco, "Courier New", Courier, fixed, Monospace; font-size: 1em; }
\ No newline at end of file
diff --git a/src/help/studio_help/etc/resources/hdr-confidential.xml b/src/help/studio_help/etc/resources/hdr-confidential.xml
new file mode 100644
index 0000000..b3f1f73
--- /dev/null
+++ b/src/help/studio_help/etc/resources/hdr-confidential.xml
@@ -0,0 +1 @@
+<div class="hdr-confidential">Motorola Confidential Restricted</div>
\ No newline at end of file
diff --git a/src/help/studio_help/etc/resources/hdr-none.xml b/src/help/studio_help/etc/resources/hdr-none.xml
new file mode 100644
index 0000000..953ebac
--- /dev/null
+++ b/src/help/studio_help/etc/resources/hdr-none.xml
@@ -0,0 +1 @@
+<a class="hdr-none"/>
\ No newline at end of file
diff --git a/src/help/studio_help/src/android_help-studio.ditamap b/src/help/studio_help/src/android_help-studio.ditamap
new file mode 100644
index 0000000..82fd5b3
--- /dev/null
+++ b/src/help/studio_help/src/android_help-studio.ditamap
@@ -0,0 +1,916 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/map.dtd">
+<map title="MOTODEV Studio for Android User's Guide" id="com.motorola.studio.android.tooldocs.studio.helpbase">
+  <topicmeta>
+    <copyright>
+      <copyryear year="2009-2012"/>
+      <copyrholder>Motorola Mobility, Inc.</copyrholder>
+    </copyright>
+  </topicmeta>
+  <!-- <topichead navtitle="Concepts" type="concept" format="dita">
+  </topichead> -->
+  <!--  <topichead navtitle="Tasks" format="dita"> -->
+  <topicref href="topics/c_android-studio.dita"/>
+  <topicref href="topics/t_project-creating_android.dita"/>
+  <topicref href="topics/t_project-creating-widget_android.dita"/>
+  <topicref href="topics/t_activity-creating.dita"/>
+  <topicref href="topics/t_bcast-rcvr-creating.dita"/>
+  <topicref href="topics/t_service-creating.dita"/>
+  <topicref href="topics/t_content-provider-creating.dita"/>
+  <topicref href="topics/c_code-generator.dita">
+    <topicref href="topics/t_code-generator.dita"/>
+  </topicref>
+  <topicref href="topics/t_app-launching_android.dita"/>
+  <topicref href="topics/t_app-debugging_android.dita"/>
+  <topicref href="topics/t_app-testing-monkey.dita"/>
+  <topicref href="topics/t_app-memory-analyzing.dita"/>
+  <topicref href="topics/t_device-screen-capturing.dita"/>
+  <topicref href="topics/t_device-creating_android.dita"/>
+  <topicref href="topics/t_device-editing_android.dita"/>
+  <topicref href="topics/t_device-starting_android.dita"/>
+  <topicref href="topics/t_device-state-managing.dita"/>
+  <topicref href="topics/t_emulator-view-opening.dita"/>
+  <topicref href="topics/t_emulator-view-closing.dita"/>
+  <topicref href="topics/t_emulator-view-manipulating.dita">
+    <topicref href="topics/t_emulator-external.dita"/>
+    <topicref href="topics/t_emulator-language-changing.dita"/>
+  </topicref>
+  <topicref href="topics/t_android-perspective-opening.dita"/>
+  <topicref href="topics/t_app-packaging_android.dita"/>
+  <topicref href="topics/t_app-deploying_android.dita"/>
+  <topicref href="topics/t_app-uninstalling-android.dita"/>
+  <topicref href="topics/t_app-cert-signing_android.dita">
+    <topicref href="topics/t_app-signature-removing.dita"/>
+  </topicref>
+  <topicref href="topics/t_app-cert-props-changing.dita">
+    <topicref href="topics/t_cert-key-generating.dita"/>
+    <topicref href="topics/t_cert-key-properties.dita"/>
+    <topicref href="topics/t_app-cert-removing.dita"/>
+    <topicref href="topics/t_cert-key-pwd-changing.dita"/>
+    <topicref href="topics/t_keystore-creating.dita"/>
+    <topicref href="topics/t_keystore-deleting.dita"/>
+    <topicref href="topics/t_keystore-importing.dita"/>
+    <topicref href="topics/t_keystore-entries-importing.dita"/>
+    <topicref href="topics/t_keystore-backup.dita"/>
+    <topicref href="topics/t_keystore-backup-restore.dita"/>
+    <topicref href="topics/t_keystore-type-changing.dita"/>
+    <topicref href="topics/t_keystore-password-changing.dita"/>
+  </topicref>
+  <topicref href="topics/t_obfuscating.dita"/>
+  <topicref href="topics/t_db-about.dita">
+    <topicref href="topics/t_db-connecting.dita"/>
+    <topicref href="topics/t_db-creating.dita"/>
+    <topicref href="topics/t_db-deleting.dita"/>
+    <topicref href="topics/t_db-table-creating.dita"/>
+    <topicref href="topics/t_db-table-deleting.dita"/>
+    <topicref href="topics/t_db-table-editing.dita"/>
+    <topicref href="topics/t_db-classes-create.dita"/>
+  </topicref>
+  <!--<topicref href="topics/t_vdl-starting.dita"/>-->
+  <topicref href="topics/t_log-files-collecting.dita"/>
+  <anchor id="tasks_end"/>
+  <!--  </topichead> -->
+  <topichead navtitle="Reference">
+    <topichead navtitle="Views and Editors">
+      <topicref href="topics/u_emulator_android.dita" type="reference"/>
+      <!--     <topicref href="topics/u_snippets-view_android.dita" type="reference"/> -->
+      <topicref href="topics/u_new-proj_android.dita" type="reference"/>
+      <topicref href="topics/u_new-proj-widget_android.dita"/>
+      <topicref href="topics/u_new-activity.dita" type="reference"/>
+      <topicref href="topics/u_new-activity-template.dita">
+        <topicref href="topics/u_select-table.dita"/>
+        <topicref href="topics/u_select-columns.dita"/>
+      </topicref>
+      <topicref href="topics/u_new-broadcast-receiver.dita" type="reference"/>
+      <topicref href="topics/u_new-service.dita" type="reference"/>
+      <topicref href="topics/u_new-content-provider.dita" type="reference"/>
+      <topicref href="topics/u_new-widget-provider.dita"/>
+      <topichead navtitle="Manage Database">
+        <topicref href="topics/u_db-classes-create.dita"/>
+        <topicref href="topics/u_db-create.dita"/>
+      </topichead>
+      <topichead navtitle="Auto-Generated Code">
+        <topicref href="topics/u_code-generator.dita"/>
+        <topicref href="topics/u_save-ui-state.dita"/>
+        <topicref href="topics/u_options-menu-code-create.dita"/>
+        <topicref href="topics/u_new-activity-template.dita"/>
+      </topichead>
+      <topicref href="topics/u_collect-log-files.dita" type="reference"/>
+      <topicref href="topics/u_device-manager_android.dita" type="reference">
+        <topicref href="topics/u_new-device.dita" type="reference">
+          <topicref href="topics/u_new-device-main_android.dita" type="reference"/>
+          <topicref href="topics/u_new-device-startup_android.dita" type="reference"/>
+        </topicref>
+        <topicref href="topics/u_pkg-install.dita"/>
+        <topicref href="topics/u_device-app-uninstall.dita"/>
+        <topicref href="topics/u_emulator-language.dita"/>
+        <topicref href="topics/u_memory-analyze-app-select.dita"/>
+      </topicref>
+      <topicref href="topics/u_android-handset-properties.dita">
+        <topicref href="topics/u_device-properties_android.dita"/>
+      </topicref>
+      <topicref href="topics/u_avd-properties.dita">
+        <topicref href="topics/u_device-properties_android.dita"/>
+        <topicref href="topics/u_avd-startup-options.dita"/>
+      </topicref>
+      <topicref href="topics/u_screen-calculator.dita"/>
+      <topicref href="topics/u_device-screen-capture.dita"/>
+      <topicref href="topics/u_run-config-main.dita" type="reference">
+        <topicref href="topics/u_select-project.dita"/>
+        <topicref href="topics/u_select-instance.dita"/>
+        <topicref href="topics/u_select-activity.dita"/>
+      </topicref>
+      <topicref href="topics/u_avd-offline-dialog.dita"/>
+      <topicref href="topics/u_run-config-monkey-main.dita"/>
+      <topicref href="topics/u_pkg-export.dita">
+        <topicref href="topics/u_keystore-select.dita"/>
+      </topicref>
+      <topicref href="topics/u_app-signing-view.dita">
+        <topicref href="topics/u_sign-create-keystore.dita"/>
+        <topicref href="topics/u_sign-keystore-type-changing.dita"/>
+        <topicref href="topics/u_sign-import-keystore.dita"/>
+        <topicref href="topics/u_sign-import-keystore-entries.dita"/>
+        <topicref href="topics/u_sign-keystore-backup.dita"/>
+        <topicref href="topics/u_sign-keystore-backup-restore.dita"/>
+        <topicref href="topics/u_sign-create-self-cert.dita"/>
+        <topicref href="topics/u_sign-cert-properties.dita"/>
+        <topicref href="topics/u_mpkg-sign_android.dita" type="reference"/>
+        <topicref href="topics/u_mpkg-unsign_android.dita"/>
+      </topicref>
+      <topicref href="topics/u_obfuscation-prop.dita"/>
+      <topicref href="topics/u_obfuscate-projects.dita"/>
+      <topicref href="topics/u_db-database-perspective.dita"/>
+      <topicref href="topics/u_db-database-explorer.dita"/>
+      <topicref href="topics/u_db-create.dita"/>
+      <topicref href="topics/u_db-table-create.dita"/>
+      <topicref href="topics/u_db-sql-results-view.dita"/>
+      <topicref href="topics/u_db-sql-scrapbook.dita"/>
+      <topicref href="PLUGINS_ROOT/org.eclipse.datatools.sqltools.doc.user/doc/html/asc1229700427574.html"
+        navtitle="SQL Query Builder" locktitle="yes" format="html" scope="peer"/>
+      <topicref href="PLUGINS_ROOT/org.eclipse.datatools.sqltools.doc.user/doc/html/asc1229700412058.html" format="html"
+        scope="peer" navtitle="SQL Results View Options" locktitle="yes"/>
+      <topicref href="topics/u_studio-prefs.dita">
+        <topicref href="topics/u_studio-prefs_emulator.dita"/>
+        <topicref href="topics/u_studio-prefs_db.dita"/>
+        <topicref href="topics/u_studio-prefs_android.dita"/>
+      </topicref>
+      <topicref href="topics/u_video-view.dita"/>
+      <anchor id="reference_end"/>
+    </topichead>
+  </topichead>
+  <topicref href="topics/g_legal.dita"/>
+  <reltable title="Uni-directional links (topics in col 1 show links to topics in col 2)">
+    <relheader>
+      <relcolspec linking="sourceonly"/>
+      <relcolspec/>
+    </relheader>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_activity-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_bcast-rcvr-creating.dita"/>
+        <topicref href="topics/t_content-provider-creating.dita"/>
+        <topicref href="topics/t_service-creating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_bcast-rcvr-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_activity-creating.dita"/>
+        <topicref href="topics/t_content-provider-creating.dita"/>
+        <topicref href="topics/t_service-creating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_content-provider-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_activity-creating.dita"/>
+        <topicref href="topics/t_bcast-rcvr-creating.dita"/>
+        <topicref href="topics/t_service-creating.dita"/>
+        <topicref href="http://developer.android.com/resources/articles/live-folders.html" navtitle="Live Folders"
+          locktitle="yes" format="html" scope="external"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_service-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_activity-creating.dita"/>
+        <topicref href="topics/t_bcast-rcvr-creating.dita"/>
+        <topicref href="topics/t_content-provider-creating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-launching_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_device-creating_android.dita"/>
+        <topicref href="topics/t_device-editing_android.dita"/>
+        <!--<topicref href="topics/t_vdl-starting.dita"/>-->
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-debugging_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_device-creating_android.dita"/>
+        <topicref href="topics/t_device-editing_android.dita"/>
+        <!--<topicref href="topics/t_vdl-starting.dita"/>-->
+        <topicref href="PLUGINS_ROOT/org.eclipse.jdt.doc.user/concepts/clocdbug.htm"
+          navtitle="Local Debugging (Java development user guide)" locktitle="yes" format="html" scope="peer"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_device-creating_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-launching_android.dita"/>
+        <topicref href="http://d.android.com/guide/developing/tools/emulator.html#startup-options" format="html"
+          navtitle="Emulator Startup Options" scope="external" locktitle="yes"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_device-editing_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-launching_android.dita"/>
+        <topicref href="http://d.android.com/guide/developing/tools/emulator.html#startup-options" format="html"
+          navtitle="Emulator Startup Options" scope="external" locktitle="yes"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_emulator-view-opening.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-launching_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-packaging_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-cert-props-changing.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-deploying_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-cert-signing_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_cert-key-generating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-cert-signing_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_device-state-managing.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="http://developer.android.com/guide/developing/tools/adb.html#shellcommands"
+          navtitle="Issuing Shell Commands (Android developers documentation)" locktitle="yes" format="html"
+          scope="external"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_emulator-controlling.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="http://developer.android.com/guide/developing/tools/emulator.html#console"
+          navtitle="Using the Emulator Console (Android developers documentation)" locktitle="yes" format="html"
+          scope="external"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_db-table-creating.dita"/>
+        <topicref href="topics/t_db-table-deleting.dita"/>
+        <topicref href="topics/t_db-table-editing.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_db-connecting.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_db-database-explorer.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_db-sql-results-view.dita"/>
+        <topicref href="topics/u_studio-prefs_db.dita"/>
+        <topicref href="topics/u_db-classes-create.dita"/>
+        <topicref href="topics/u_db-table-create.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_run-config-main.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_device-creating_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_emulator-external.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_device-creating_android.dita"/>
+        <topicref href="topics/t_device-editing_android.dita"/>
+        <topicref href="topics/t_emulator-view-opening.dita"/>
+        <topicref href="topics/u_new-device-startup_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-testing-monkey.dita"/>
+        <topicref href="topics/u_run-config-monkey-main.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="http://developer.android.com/guide/developing/tools/monkey.html"
+          navtitle="UI/Application Exerciser Monkey documentation" locktitle="yes" format="html" scope="external"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_run-config-monkey-main.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_device-manager_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-memory-analyzing.dita"/>
+        <topicref href="topics/u_memory-analyze-app-select.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="http://www.eclipse.org/mat/" navtitle="Memory Analyzer (MAT) documentation" locktitle="yes"
+          format="html" scope="external"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_emulator-language-changing.dita"/>
+        <topicref href="topics/u_emulator-language.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="http://developer.android.com/guide/topics/resources/localization.html#emulator"
+          navtitle="Testing on an Emulator" locktitle="yes" format="html" scope="external"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_project-creating_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_config-for-native.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_obfuscating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="http://developer.android.com/guide/developing/tools/proguard.html" format="html"
+          scope="external" locktitle="yes" navtitle="ProGuard (in Android developer documentation)"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_code-generator.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/c_code-generator.dita"/>
+      </relcell>
+    </relrow>
+  </reltable>
+  <reltable title="Bi-directional links (topics in col 1 and 2 show links to each other)">
+    <relheader>
+      <relcolspec/>
+      <relcolspec/>
+    </relheader>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_activity-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_new-activity.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_activity-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_new-activity-template.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_bcast-rcvr-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_new-broadcast-receiver.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_content-provider-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_new-content-provider.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_service-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_new-service.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-launching_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_run-config-main.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-debugging_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_run-config-main.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_device-creating_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_device-editing_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_device-creating_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_new-device.dita"/>
+        <topicref href="topics/u_new-device-main_android.dita"/>
+        <topicref href="topics/u_new-device-startup_android.dita"/>
+        <topicref href="topics/t_device-starting_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_device-editing_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_new-device.dita"/>
+        <topicref href="topics/u_new-device-main_android.dita"/>
+        <topicref href="topics/u_new-device-startup_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_device-manager_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_device-starting_android.dita"/>
+        <topicref href="topics/t_device-state-managing.dita"/>
+        <topicref href="topics/t_emulator-controlling.dita"/>
+        <topicref href="topics/t_app-deploying_android.dita"/>
+        <topicref href="topics/t_app-uninstalling-android.dita"/>
+        <topicref href="topics/t_app-testing-monkey.dita"/>
+        <topicref href="topics/t_app-memory-analyzing.dita"/>
+        <topicref href="topics/t_device-screen-capturing.dita"/>
+        <topicref href="topics/t_emulator-language-changing.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_emulator-view-opening.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_emulator-view-closing.dita"/>
+        <topicref href="topics/t_emulator-view-manipulating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_emulator_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_emulator-view-opening.dita"/>
+        <topicref href="topics/t_emulator-view-closing.dita"/>
+        <topicref href="topics/t_emulator-view-manipulating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_emulator_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_emulator-view-closing.dita"/>
+        <topicref href="topics/t_emulator-view-manipulating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-packaging_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-cert-signing_android.dita"/>
+        <topicref href="topics/t_app-deploying_android.dita"/>
+        <topicref href="topics/u_pkg-export.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-cert-signing_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-cert-props-changing.dita"/>
+        <topicref href="topics/u_app-signing-view.dita"/>
+        <topicref href="topics/u_mpkg-sign_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-signature-removing.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_app-signing-view.dita"/>
+        <topicref href="topics/u_mpkg-unsign_android.dita"/>
+        <topicref href="topics/t_app-cert-props-changing.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-deploying_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-launching_android.dita"/>
+        <topicref href="topics/t_app-packaging_android.dita"/>
+        <topicref href="topics/u_device-manager_android.dita"/>
+        <topicref href="topics/u_pkg-install.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-cert-props-changing.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_app-signing-view.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_cert-key-generating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_sign-create-self-cert.dita"/>
+        <topicref href="topics/t_app-cert-removing.dita"/>
+        <topicref href="topics/u_sign-cert-properties.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_emulator-view-manipulating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_emulator-controlling.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_log-files-collecting.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_collect-log-files.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_db-sql-scrapbook.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_db-sql-results-view.dita"/>
+        <topicref href="PLUGINS_ROOT/org.eclipse.datatools.sqltools.doc.user/doc/html/asc1229700427574.html"
+          navtitle="SQL Query Builder" locktitle="yes" format="html" scope="peer"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_db-sql-results-view.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="PLUGINS_ROOT/org.eclipse.datatools.sqltools.doc.user/doc/html/asc1229700412058.html"
+          format="html" scope="peer" navtitle="SQL Results View Options" locktitle="yes"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_db-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_db-table-creating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-deploying_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-uninstalling-android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_device-screen-capturing.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_device-screen-capture.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_new-device-startup_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_screen-calculator.dita"/>
+        <topicref href="topics/u_avd-startup-options.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_avd-startup-options.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_screen-calculator.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_android-handset-properties.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_avd-properties.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_app-testing-monkey.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-debugging_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_run-config-monkey-main.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-testing-monkey.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_db-classes-create.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_db-classes-create.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_db-classes-create.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_content-provider-creating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_emulator-language.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_emulator-language-changing.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_device-app-uninstall.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-uninstalling-android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_memory-analyze-app-select.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-memory-analyzing.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_project-creating_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_project-creating-widget_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_obfuscating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_project-creating_android.dita"/>
+        <topicref href="topics/u_obfuscate-projects.dita"/>
+        <topicref href="topics/u_obfuscation-prop.dita"/>
+        <topicref href="topics/t_app-packaging_android.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_obfuscate-projects.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_obfuscation-prop.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_new-proj_android.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_project-creating_android.dita"/>
+      </relcell>
+    </relrow>
+    <!--<relrow>
+      <relcell>
+        <topicref href="topics/t_vdl-starting.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_studio-prefs_da.dita"/>
+      </relcell>
+    </relrow>-->
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_db-create.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_db-table-create.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_db-create.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_db-creating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_db-table-create.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_db-table-creating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/u_new-activity.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_new-activity-template.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_code-generator.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_code-generator.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_cert-key-properties.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_sign-cert-properties.dita"/>
+        <topicref href="topics/t_cert-key-generating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_cert-key-pwd-changing.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_cert-key-generating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_keystore-creating.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_keystore-deleting.dita"/>
+        <topicref href="topics/t_keystore-backup-restore.dita"/>
+        <topicref href="topics/t_keystore-importing.dita"/>
+        <topicref href="topics/t_keystore-entries-importing.dita"/>
+        <topicref href="topics/u_sign-create-keystore.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_keystore-backup.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_keystore-backup-restore.dita"/>
+        <topicref href="topics/u_sign-keystore-backup.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_keystore-backup-restore.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_sign-keystore-backup-restore.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_keystore-deleting.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_app-cert-removing.dita"/>
+        <topicref href="topics/t_keystore-backup.dita"/>
+        <topicref href="topics/t_keystore-creating.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_keystore-importing.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_keystore-entries-importing.dita"/>
+        <topicref href="topics/u_sign-import-keystore.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_keystore-entries-importing.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/t_cert-key-generating.dita"/>
+        <topicref href="topics/t_app-cert-removing.dita"/>
+        <topicref href="topics/u_sign-import-keystore-entries.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/t_keystore-type-changing.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_sign-keystore-type-changing.dita"/>
+      </relcell>
+    </relrow>
+    <relrow>
+      <relcell>
+        <topicref href="topics/c_keys-keystores.dita"/>
+      </relcell>
+      <relcell>
+        <topicref href="topics/u_app-signing-view.dita"/>
+        <topicref href="topics/t_app-cert-props-changing.dita"/>
+      </relcell>
+    </relrow>
+  </reltable>
+</map>
diff --git a/src/help/studio_help/src/images/KeyCreate.png b/src/help/studio_help/src/images/KeyCreate.png
new file mode 100644
index 0000000..c8131b1
--- /dev/null
+++ b/src/help/studio_help/src/images/KeyCreate.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeyDelete.png b/src/help/studio_help/src/images/KeyDelete.png
new file mode 100644
index 0000000..85e7de0
--- /dev/null
+++ b/src/help/studio_help/src/images/KeyDelete.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeyPasswordChange.png b/src/help/studio_help/src/images/KeyPasswordChange.png
new file mode 100644
index 0000000..dc1396b
--- /dev/null
+++ b/src/help/studio_help/src/images/KeyPasswordChange.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeyProperties.png b/src/help/studio_help/src/images/KeyProperties.png
new file mode 100644
index 0000000..07c9c1c
--- /dev/null
+++ b/src/help/studio_help/src/images/KeyProperties.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeystoreCreate.png b/src/help/studio_help/src/images/KeystoreCreate.png
new file mode 100644
index 0000000..c2ffade
--- /dev/null
+++ b/src/help/studio_help/src/images/KeystoreCreate.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeystoreDelete.png b/src/help/studio_help/src/images/KeystoreDelete.png
new file mode 100644
index 0000000..7bdab30
--- /dev/null
+++ b/src/help/studio_help/src/images/KeystoreDelete.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeystoreEntriesImport.png b/src/help/studio_help/src/images/KeystoreEntriesImport.png
new file mode 100644
index 0000000..ebb6a11
--- /dev/null
+++ b/src/help/studio_help/src/images/KeystoreEntriesImport.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeystoreImport.png b/src/help/studio_help/src/images/KeystoreImport.png
new file mode 100644
index 0000000..e425ae9
--- /dev/null
+++ b/src/help/studio_help/src/images/KeystoreImport.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeystorePasswordChange.png b/src/help/studio_help/src/images/KeystorePasswordChange.png
new file mode 100644
index 0000000..8f55c6d
--- /dev/null
+++ b/src/help/studio_help/src/images/KeystorePasswordChange.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeystoreRefresh.png b/src/help/studio_help/src/images/KeystoreRefresh.png
new file mode 100644
index 0000000..fa0204e
--- /dev/null
+++ b/src/help/studio_help/src/images/KeystoreRefresh.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeystoreTypeChange.png b/src/help/studio_help/src/images/KeystoreTypeChange.png
new file mode 100644
index 0000000..f82f15b
--- /dev/null
+++ b/src/help/studio_help/src/images/KeystoreTypeChange.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeystoresBackup.png b/src/help/studio_help/src/images/KeystoresBackup.png
new file mode 100644
index 0000000..6621a9f
--- /dev/null
+++ b/src/help/studio_help/src/images/KeystoresBackup.png
Binary files differ
diff --git a/src/help/studio_help/src/images/KeystoresRestore.png b/src/help/studio_help/src/images/KeystoresRestore.png
new file mode 100644
index 0000000..2feac28
--- /dev/null
+++ b/src/help/studio_help/src/images/KeystoresRestore.png
Binary files differ
diff --git a/src/help/studio_help/src/images/PackageSign.png b/src/help/studio_help/src/images/PackageSign.png
new file mode 100644
index 0000000..84efb17
--- /dev/null
+++ b/src/help/studio_help/src/images/PackageSign.png
Binary files differ
diff --git a/src/help/studio_help/src/images/PackageUnsign.png b/src/help/studio_help/src/images/PackageUnsign.png
new file mode 100644
index 0000000..759118b
--- /dev/null
+++ b/src/help/studio_help/src/images/PackageUnsign.png
Binary files differ
diff --git a/src/help/studio_help/src/images/browse-table-contents.png b/src/help/studio_help/src/images/browse-table-contents.png
new file mode 100644
index 0000000..2fcc207
--- /dev/null
+++ b/src/help/studio_help/src/images/browse-table-contents.png
Binary files differ
diff --git a/src/help/studio_help/src/images/collapse-all.png b/src/help/studio_help/src/images/collapse-all.png
new file mode 100644
index 0000000..30c1c2f
--- /dev/null
+++ b/src/help/studio_help/src/images/collapse-all.png
Binary files differ
diff --git a/src/help/studio_help/src/images/db-connected-states.png b/src/help/studio_help/src/images/db-connected-states.png
new file mode 100644
index 0000000..077ec2a
--- /dev/null
+++ b/src/help/studio_help/src/images/db-connected-states.png
Binary files differ
diff --git a/src/help/studio_help/src/images/db-create-classes.png b/src/help/studio_help/src/images/db-create-classes.png
new file mode 100644
index 0000000..8d27ffd
--- /dev/null
+++ b/src/help/studio_help/src/images/db-create-classes.png
Binary files differ
diff --git a/src/help/studio_help/src/images/db-create-table.png b/src/help/studio_help/src/images/db-create-table.png
new file mode 100644
index 0000000..af8aea3
--- /dev/null
+++ b/src/help/studio_help/src/images/db-create-table.png
Binary files differ
diff --git a/src/help/studio_help/src/images/db-icon.png b/src/help/studio_help/src/images/db-icon.png
new file mode 100644
index 0000000..1c7db35
--- /dev/null
+++ b/src/help/studio_help/src/images/db-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/db-tables.png b/src/help/studio_help/src/images/db-tables.png
new file mode 100644
index 0000000..f523d54
--- /dev/null
+++ b/src/help/studio_help/src/images/db-tables.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_adb-shell-icon.png b/src/help/studio_help/src/images/dev-mgr_adb-shell-icon.png
new file mode 100644
index 0000000..75d3f2c
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_adb-shell-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_console-icon.png b/src/help/studio_help/src/images/dev-mgr_console-icon.png
new file mode 100644
index 0000000..f3c790e
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_console-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_install-app-icon.png b/src/help/studio_help/src/images/dev-mgr_install-app-icon.png
new file mode 100644
index 0000000..363a6bd
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_install-app-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_language-icon.png b/src/help/studio_help/src/images/dev-mgr_language-icon.png
new file mode 100644
index 0000000..5d03c1e
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_language-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_mat-analyze-icon.png b/src/help/studio_help/src/images/dev-mgr_mat-analyze-icon.png
new file mode 100644
index 0000000..429aafd
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_mat-analyze-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_monkey-test-icon.png b/src/help/studio_help/src/images/dev-mgr_monkey-test-icon.png
new file mode 100644
index 0000000..b74276f
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_monkey-test-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_new-icon.png b/src/help/studio_help/src/images/dev-mgr_new-icon.png
new file mode 100644
index 0000000..f90fa58
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_new-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_repair-icon.png b/src/help/studio_help/src/images/dev-mgr_repair-icon.png
new file mode 100644
index 0000000..77856a7
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_repair-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_reset-icon.png b/src/help/studio_help/src/images/dev-mgr_reset-icon.png
new file mode 100644
index 0000000..c989439
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_reset-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_start-icon.png b/src/help/studio_help/src/images/dev-mgr_start-icon.png
new file mode 100644
index 0000000..5c18480
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_start-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_stop-icon.png b/src/help/studio_help/src/images/dev-mgr_stop-icon.png
new file mode 100644
index 0000000..0fc73dd
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_stop-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_take-screenshot-icon.png b/src/help/studio_help/src/images/dev-mgr_take-screenshot-icon.png
new file mode 100644
index 0000000..b879dba
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_take-screenshot-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/dev-mgr_uninstall-app-icon.png b/src/help/studio_help/src/images/dev-mgr_uninstall-app-icon.png
new file mode 100644
index 0000000..0d09fbc
--- /dev/null
+++ b/src/help/studio_help/src/images/dev-mgr_uninstall-app-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/display-selected-console-button.png b/src/help/studio_help/src/images/display-selected-console-button.png
new file mode 100644
index 0000000..8616ccc
--- /dev/null
+++ b/src/help/studio_help/src/images/display-selected-console-button.png
Binary files differ
diff --git a/src/help/studio_help/src/images/display-single-tab-icon.png b/src/help/studio_help/src/images/display-single-tab-icon.png
new file mode 100644
index 0000000..eac6f44
--- /dev/null
+++ b/src/help/studio_help/src/images/display-single-tab-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/display-text-mode-icon.png b/src/help/studio_help/src/images/display-text-mode-icon.png
new file mode 100644
index 0000000..f0ad54d
--- /dev/null
+++ b/src/help/studio_help/src/images/display-text-mode-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/emulator-switch-layout.png b/src/help/studio_help/src/images/emulator-switch-layout.png
new file mode 100644
index 0000000..e3d71b6
--- /dev/null
+++ b/src/help/studio_help/src/images/emulator-switch-layout.png
Binary files differ
diff --git a/src/help/studio_help/src/images/emulator-zoom-in.png b/src/help/studio_help/src/images/emulator-zoom-in.png
new file mode 100644
index 0000000..71b3422
--- /dev/null
+++ b/src/help/studio_help/src/images/emulator-zoom-in.png
Binary files differ
diff --git a/src/help/studio_help/src/images/emulator-zoom-out.png b/src/help/studio_help/src/images/emulator-zoom-out.png
new file mode 100644
index 0000000..3fc573a
--- /dev/null
+++ b/src/help/studio_help/src/images/emulator-zoom-out.png
Binary files differ
diff --git a/src/help/studio_help/src/images/filter-results-icon.png b/src/help/studio_help/src/images/filter-results-icon.png
new file mode 100644
index 0000000..2dbb696
--- /dev/null
+++ b/src/help/studio_help/src/images/filter-results-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/loc_editor-remove-line-button.png b/src/help/studio_help/src/images/loc_editor-remove-line-button.png
new file mode 100644
index 0000000..e32c8d0
--- /dev/null
+++ b/src/help/studio_help/src/images/loc_editor-remove-line-button.png
Binary files differ
diff --git a/src/help/studio_help/src/images/menu-button.png b/src/help/studio_help/src/images/menu-button.png
new file mode 100644
index 0000000..ecf92b6
--- /dev/null
+++ b/src/help/studio_help/src/images/menu-button.png
Binary files differ
diff --git a/src/help/studio_help/src/images/new-config-button.png b/src/help/studio_help/src/images/new-config-button.png
new file mode 100644
index 0000000..dd02df2
--- /dev/null
+++ b/src/help/studio_help/src/images/new-config-button.png
Binary files differ
diff --git a/src/help/studio_help/src/images/open-persp-button.jpg b/src/help/studio_help/src/images/open-persp-button.jpg
new file mode 100644
index 0000000..a55b4d0
--- /dev/null
+++ b/src/help/studio_help/src/images/open-persp-button.jpg
Binary files differ
diff --git a/src/help/studio_help/src/images/open-scrapbook.png b/src/help/studio_help/src/images/open-scrapbook.png
new file mode 100644
index 0000000..312461c
--- /dev/null
+++ b/src/help/studio_help/src/images/open-scrapbook.png
Binary files differ
diff --git a/src/help/studio_help/src/images/refresh-device-list-button_android.png b/src/help/studio_help/src/images/refresh-device-list-button_android.png
new file mode 100644
index 0000000..0b71440
--- /dev/null
+++ b/src/help/studio_help/src/images/refresh-device-list-button_android.png
Binary files differ
diff --git a/src/help/studio_help/src/images/refresh-sdks.png b/src/help/studio_help/src/images/refresh-sdks.png
new file mode 100644
index 0000000..1ef3b3a
--- /dev/null
+++ b/src/help/studio_help/src/images/refresh-sdks.png
Binary files differ
diff --git a/src/help/studio_help/src/images/remove-result-icon.png b/src/help/studio_help/src/images/remove-result-icon.png
new file mode 100644
index 0000000..46c97b4
--- /dev/null
+++ b/src/help/studio_help/src/images/remove-result-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/remove-visible-results-icon.png b/src/help/studio_help/src/images/remove-visible-results-icon.png
new file mode 100644
index 0000000..018acd1
--- /dev/null
+++ b/src/help/studio_help/src/images/remove-visible-results-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/start-avd-button.png b/src/help/studio_help/src/images/start-avd-button.png
new file mode 100644
index 0000000..f9fbc7b
--- /dev/null
+++ b/src/help/studio_help/src/images/start-avd-button.png
Binary files differ
diff --git a/src/help/studio_help/src/images/terminate-result-icon.png b/src/help/studio_help/src/images/terminate-result-icon.png
new file mode 100644
index 0000000..91f13dc
--- /dev/null
+++ b/src/help/studio_help/src/images/terminate-result-icon.png
Binary files differ
diff --git a/src/help/studio_help/src/images/tml-new-instance.png b/src/help/studio_help/src/images/tml-new-instance.png
new file mode 100644
index 0000000..7f9bc0a
--- /dev/null
+++ b/src/help/studio_help/src/images/tml-new-instance.png
Binary files differ
diff --git a/src/help/studio_help/src/topics/c_android-studio.dita b/src/help/studio_help/src/topics/c_android-studio.dita
new file mode 100644
index 0000000..d9e52f0
--- /dev/null
+++ b/src/help/studio_help/src/topics/c_android-studio.dita
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "../dtd/concept.dtd">
+<concept xml:lang="en-us" id="c_android-studio">
+  <title>About MOTODEV Studio for Android</title>
+  <prolog>
+    <metadata>
+      <keywords><!--<indexterm></indexterm>--></keywords>
+    </metadata>
+  </prolog>
+  <conbody>
+    <p>MOTODEV Studio for Android offers unsurpassed workflow ease and a unique integrated experience for developing
+      Android applications. One installer brings you everything you need: from design to development to deployment on an
+      Android handset to sales, with a focus on Motorola products. MOTODEV Studio for Android saves you many steps so
+      you can focus on creativity while maximizing productivity.</p>
+    <p>Among the many features of MOTODEV Studio for Android are:</p>
+    <ul>
+      <li><b>Complete Development Package</b>: one installer ensures an integrated development environment with Eclipse
+        and Android Development Tools (ADT) plus automatic download of the Android SDKs, add-ons, and samples on 32-bit
+        or 64-bit versions of Microsoft Windows and Linux, and 64-bit versions of Mac OS X. All of the essentials are
+        set up for you. Or, install as plugins into an existing Eclipse installation.</li>
+      <li><uicontrol>Native Development</uicontrol>: Build projects with native (C/C++) components, generate C/C++
+        classes from native function declarations in your Java source files.</li>
+      <li><uicontrol>App Validator</uicontrol>: Detect and repair problems before your app is distributed. The App
+        Validator checks your app for a wide range of improper conditions: missing permissions and translated strings,
+        improper layouts, incompatibilities with various devices, and problems with your Java code such as unclosed
+        database cursors. </li>
+      <li><b>Code Generation</b>: Automatically generate code to access UI widgets defined in your xml-based layout
+        files.</li>
+      <li><b>Device Management View</b>: Easily create and manage AVDs (Android Virtual Devices), and set AVD startup
+        options using the Device Management view. Use this view to quickly launch an ADB shell or Emulator Console.</li>
+      <li><b>Screen Capture</b>: From the Device Management view you can easily capture an image of the screen on a real
+        or emulated device.</li>
+      <li><b>Handset Emulators in a view</b>: test applications on an integrated emulator within a MOTODEV Studio view:
+        no need to switch between IDE and target. Make use of handset-specific emulators.</li>
+      <li><b>Target Motorola Handsets</b>: debug and run applications on connected Android handsets, such as those
+        available from Motorola, Mobility.</li>
+      <li><b>Application Creation Wizards</b>: create essential classes simply and easily, including Broadcast Receiver,
+        Content Provider, Service, and Activity.</li>
+      <li><b>Drag and Drop Snippets</b>: add often-used code from templates for more stable and better performing
+        applications.</li>
+      <li><b>Application Signing</b>: create and import certificates to sign applications.</li>
+      <li><b>Deploy Packages</b>: load your applications onto a target handset or emulator with just a few clicks.
+        Easily export zip-aligned packages (signed or unsigned) compatible with Google Play.</li>
+      <li><b>MOTODEV Studio Perspective</b>: displays the most common development views by default.</li>
+      <li><b>MOTODEV Database Perspective</b>: allows you to view and edit SQLite databases on developer handsets and
+        emulated devices.</li>
+      <li><b>Localization Files Editor</b>: helps you to create, translate, and manage localized strings files.</li>
+      <li><b>RSS Feeds view</b>: includes feeds from Motorola, Inc. related to Android app development and marketing.</li>
+      <li><b>MOTODEV Web Resources</b>: this web page, presented as an Eclipse view, contains links to MOTODEV Studio
+        release notes and other helpful resources on the web.</li>
+    </ul>
+  </conbody>
+</concept>
diff --git a/src/help/studio_help/src/topics/c_code-generator.dita b/src/help/studio_help/src/topics/c_code-generator.dita
new file mode 100644
index 0000000..2744a3f
--- /dev/null
+++ b/src/help/studio_help/src/topics/c_code-generator.dita
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "../dtd/concept.dtd">
+<concept id="c_code-generator" xml:lang="en-us">
+  <title>Generating Java Code for an Activity or Fragment Layout</title>
+  <shortdesc>MOTODEV Studio can generate boilerplate code for selected UI objects defined in an activity's or fragment's
+    layout file. It generates attribute declarations, findViewById() calls, and event handlers.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <conbody>
+    <p>Initiate the Java code generator by right-clicking the Java source file for your Activity or Fragment and
+      selecting <menucascade><uicontrol>Source</uicontrol><uicontrol>Generate Java Code Based on
+      Layout</uicontrol></menucascade>. The code generator begins by looking through the Java code for your selected
+      Activity or Fragment to identify the xml-based layout file it uses. If it is processing an Activity, it searches
+      for a call to setContentView() in the Activity's onCreate() method. If it is processing a Fragment, it searches
+      for code that looks like this:
+      <codeblock>	View v = inflater.inflate(R.layout.<i>myLayoutFileName</i>, container, false);
+	return v;</codeblock>Having
+      identified the layout file corresponding to the selected Java class, the code generator looks through the layout
+      file for UI objects that have Android IDs defined with "@+id". It then presents the list of UI objects to you, and
+      you indicate those UI objects for which it should generate code. Finally, the code generator generates the
+      appropriate code and inserts it into the Activity's or Fragment's top-level class. </p>
+    <p>Note that in order for the above to work, your Activity or Fragment code must not have errors. As well, the xml
+      file that defines your layout must be well-formed. Also note that the Java code generator works with the Android
+      Compatibility package: FragmentActivity subclasses are supported.</p>
+    <section>
+      <title>What it Generates</title>
+      <p>The code generator adds to the Activity or Fragment an attribute for each selected UI object as well as for
+        Fragments inside an Activity. Then, it generates the following code within your Activity's onCreate() method or
+        your Fragment's onCreateView() method: <ol>
+          <li>findViewById() statements for graphical items such as TextView, EditText, Button, etc.</li>
+          <li>OnClickListener handlers for Button, ImageButton, and ToggleButton objects. If the button has an
+            android:onClick attribute defined in the layout file, the named method is created (empty) instead of an
+            inline OnClickListener handler.</li>
+          <li>OnItemSelectedListener handlers for Spinner objects.</li>
+          <li>OnItemClickListener handlers for Gallery objects.</li>
+          <li>OnKeyListener handlers for EditText objects.</li>
+          <li>OnSeekBarChangeListener handlers for SeekBar objects.</li>
+          <li>OnRatingBarChangeListener handlers for RatingBar objects.</li>
+        </ol></p>
+      <p>For fragments inside an Activity, the code generator creates setFragmentManager().findFragmentById() calls.</p>
+      <p>For RadioButtons inside a RadioGroup, the code generator creates an object that implements the
+        View.OnClickListener interface. The object's generated onClick() method contains a switch statement with a case
+        for each RadioButton.</p>
+      <p>Note that the code generator does not simply add all of the above blindly. It is careful not to add duplicate
+        attributes, event handlers, or findViewById() statements if it finds an existing findViewById() statement for a
+        given UI object. So, for instance, if you have an existing layout with supporting code, upon adding a new UI
+        object to that layout and initiating the code-generation process you will only be given the option to generate
+        code for the new UI object. As well, the code is added in such a way as to allow you to use <menucascade
+            ><uicontrol>Edit</uicontrol><uicontrol>Undo</uicontrol></menucascade> to back out the additions, if you
+        decide not to go ahead with them. </p>
+    </section>
+  </conbody>
+</concept>
diff --git a/src/help/studio_help/src/topics/c_keys-keystores.dita b/src/help/studio_help/src/topics/c_keys-keystores.dita
new file mode 100644
index 0000000..9e535ff
--- /dev/null
+++ b/src/help/studio_help/src/topics/c_keys-keystores.dita
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "../dtd/concept.dtd">
+<concept id="c_keys-keystores" xml:lang="en-us">
+  <title>Keys and Keystores</title>
+  <shortdesc>Keys are used to sign Android packages. Keys live within keystore files.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <conbody>
+    <section>
+      <p>Android relies upon "public key cryptography" to ensure the integrity of all Android packages (APKs). Public
+        Key Cryptography is a cryptographic system that uses a pair of keys—one public and one private—where one key
+        encrypts a message or signs an app while the other decrypts the encrypted message or verifies the app's
+        signature. The two keys are strings of binary digits; for purposes of Android app signing, Google recommends
+        that your keys be at least 2048 bits in length. Because of the way that the signing algorithm works, the private
+        key must be kept private while the public key can be freely distributed. Note that for message encryption, you
+        encrypt the message with the public key and decrypt it with the private key. For app signing, the reverse is
+        true: you sign the app with the private key, and verify the signature using the public key. </p>
+    </section>
+<section><title>Certificates</title>A certificate is an electronic document that uses a digital signature to connect a
+      public key to an identity (of a person or corporation, typically). The identity is a set of information such as
+      the name of a person or an organization, their address, and so forth. Certificates used to sign Android
+      applications follow the X.509 standard; that standard defines the set of identity fields used within the
+      certificate. Android uses the certificate both to identify the author of an app and to establish a trust
+      relationship between apps that have both been signed using the same certificate. In addition to the public key and
+      identity information, certificates also have a "validity period": a period of time during which the certificate is
+      valid. Beyond this validity period, the certificate is considered invalid. Android developers apply their own
+      certificates; unlike on some platforms, Google doesn't apply a certificate of its own to apps submitted to Google
+      Play. <p>Certificates can be issued by a trusted source—a "Certificate Authority" or CA—or they can be
+        user-generated. This latter form is often referred to as "self-signed". When used to sign an Android app, the
+        certificate need not be issued by a CA. In fact, self-signed certificates are not only allowed but are typically
+        what developers use to sign Android apps. As with your key pairs, you can use keytool to generate, display,
+        import, and export digital certificates. </p><p>X.509 certificates are kept in files; install one by moving the
+        file to the device and pointing the app that needs it to the certificate file. </p><note>The Signing and Keys view presents a streamlined interface for
+      working with keystores and "keys." In reality, you are creating and manipulating certificates, but to minimize the
+      confusion for developers not comfortable with keys, certificates, and signing, the term "key" is used by the tools
+      within this view to represent both certificates and the public/private key pairs associated with them.</note></section>    <section>
+      <title>Keystores</title>
+    <p>A keystore is a repository (usually, an encrypted file) containing private keys and
+      security certificates. You can use a command-line tool called keytool to manipulate the keystore, or you can use
+      the tools provided in MOTODEV Studio's Signing and Keys view. These tools employ keytool on your behalf; you don't
+      have to invoke the command-line tools to generate keys and certificates, to manipulate keystores, or to sign your
+      apps.</p>
+    </section>
+    <section>
+      <title>Why Are Apps Signed?</title>
+      <p>Android requires that all apps—development builds and release builds alike—installed on an Android device be
+        signed. There are a few reasons for this: <ul>
+          <li>To provide some degree of assurance that an app is unaltered</li>
+          <li>To securely tie an app to its updates</li>
+          <li>To allow close ties between separate apps signed using the same certificate </li>
+        </ul>For Android apps, there are additional benefits to code signing: <ul>
+          <li>Application signing is the first step to placing an application into its own application sandbox. The
+            signing certificate helps to define which user ID is associated with a given application. Apps signed with
+            different certificates run under different user IDs, and cannot directly access each other's data.
+            Application signing thus ensures that one application can only interact with another through a well-defined
+            IPC mechanism.</li>
+          <li>Two apps signed with the same certificate can be run in the same process. An APK has the option to specify
+            in its manifest that it will share its UID with other similarly signed APKs. If the certificate (or, more
+            accurately, the public key in the certificate) used to sign one app matches the one used to sign another app
+            on the same device, those apps will be run in the same process and will have access to each other's
+            data.</li>
+          <li>Apps can declare security permissions at the Signature protection level, allowing some access by apps
+            signed with the same key while maintaining distinct UIDs and application sandboxes.</li>
+        </ul> The requirement that all apps be signed extends to apps under development, as well as to the release
+        versions of your apps. Both at app installation, and again when the app is run, the device checks the app for a
+        signature. This check cannot be bypassed by "side-loading" apps or downloading apps from other than Google Play.
+        Therefore, all apps must be signed. Fortunately for developers the tools automatically generate and apply a
+        debug certificate to development builds; you need only get involved when you create release versions of your
+        apps. When you are ready to release an app, you sign it with a suitable private key. Note that you cannot
+        publish an app that has been signed with a debug key. </p>
+      <p>You can publish, but users can't install, an app that is signed using a certificate that has expired. Android
+        will, however, allow you to run an app that has already been installed even if the certificate has since
+        expired. Related to this is the fact that app updates must be signed using the same certificate as the app to
+        which they apply. Thus when creating a certificate to use for app signing make sure that it has a sufficiently
+        long validity period—Google recommends a minimum of 25 years—to last for not only the projected lifetime of the
+        app itself, but also any updates you may issue. This is a very important point, because after the certificate
+        expires, users can no longer install the app and can no longer install any updates. </p>
+    </section>
+  </conbody>
+</concept>
diff --git a/src/help/studio_help/src/topics/cs_android.dita b/src/help/studio_help/src/topics/cs_android.dita
new file mode 100644
index 0000000..124a356
--- /dev/null
+++ b/src/help/studio_help/src/topics/cs_android.dita
@@ -0,0 +1,559 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cshelp
+  PUBLIC "-//IBM//DTD DITA CSHelp//EN" "../dtd/cshelp.dtd">
+<cshelp id="cs_android" xml:lang="en-us">
+  <title>Android CS Help</title>
+  <shortdesc/>
+  <csbody/>
+  <!-- Plug-in: com.motorola.studio.android.emulator -->
+  <cshelp id="emulator">
+    <title>Android Emulator view</title>
+    <shortdesc>Presents a simulated handset to which you can deploy and test your applications.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_emulator_android.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="newproj">
+    <title>New Android Project wizard</title>
+    <shortdesc>Creates a new MOTODEV Studio for Android project.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-proj_android.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="newwdgproj">
+    <title>New Android Widget Project wizard</title>
+    <shortdesc>Creates a new MOTODEV Studio for Android project for an Android widget.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-proj-widget_android.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="newactivity">
+    <title>New Activity wizard</title>
+    <shortdesc>Creates a new activity in an existing project.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-activity.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="new-activity-based-on-template">
+    <title>New Android Activity Based on Template wizard</title>
+    <shortdesc>Creates a new activity, based on a sample activity, in an existing project.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-activity-template.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="newbcastrcvr">
+    <title>New Broadcast Receiver wizard</title>
+    <shortdesc>Creates a new broadcast receiver in an existing project.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-broadcast-receiver.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="newcontprov">
+    <title>New Content Provider wizard</title>
+    <shortdesc>Creates a new content provider in an existing project.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-content-provider.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="newwidgtprvd">
+    <title>New Android Widget Provider wizard</title>
+    <shortdesc>Creates a new Android widget provider in an existing project.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-widget-provider.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="newservice">
+    <title>New Service wizard</title>
+    <shortdesc>Creates a new Android service in an existing project.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-service.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="started_instances_selection_dialog">
+    <title>Preferred AVD Offline dialog</title>
+    <shortdesc>Shown when the AVD specified by a run configuration is not running, and a compatible AVD is running. This dialog allows you to specify whether the app should be deployed to the compatible AVD or the specified AVD.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_avd-offline-dialog.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.platform.logger.collector -->
+  <cshelp id="collectlogs">
+    <title>Collect Log Files dialog</title>
+    <shortdesc>Allows you to collect Eclipse and Studio log files and package them into a single ZIP archive.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_collect-log-files.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: org.eclipse.sequoyah.device.framework.ui -->
+  <cshelp id="devmgr">
+    <title>Device Management view</title>
+    <shortdesc>Displays configuration information for a selected device and can be used to manually start or stop a
+      selected device.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_device-manager_android.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: org.eclipse.sequoyah.device.framework.ui -->
+  <cshelp id="newdev">
+    <title>Create a New Device dialog</title>
+    <shortdesc>Creates a new Android Virtual Device (AVD).</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-device.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.emulator -->
+  <cshelp id="newdevmain">
+    <title>New Android Virtual Device Instance dialog (main information)</title>
+    <shortdesc>Supply basic information about the AVD, such as the target operating system and the device skin to use.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-device-main_android.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.emulator -->
+  <cshelp id="newdevstartup">
+    <title>New Android Virtual Device Instance dialog (startup options)</title>
+    <shortdesc>Supply options to use when starting the AVD.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_new-device-startup_android.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.launch -->
+  <cshelp id="mainLaunchTab">
+    <title>MOTODEV Studio for Android Application - run/debug configuration dialog</title>
+    <shortdesc>A run configuration brings together all of the information needed to run a specific executable on a
+      specific device instance, making it simple to repeatedly run that executable on that device instance.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_run-config-main.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.launch.ui -->
+  <!-- the above plug-in doesn't exist... -->
+  <cshelp id="DeviceSelectionDialog">
+    <title>Instance Selection dialog</title>
+    <shortdesc>Select a device instance (either real or emulated).</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_select-instance.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.launch -->
+  <cshelp id="activitySelectionDialog">
+    <title>Activity Selection dialog</title>
+    <shortdesc>Select an activity.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_select-activity.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.launch -->
+  <cshelp id="projectSelectionDialog">
+    <title>Project Selection dialog</title>
+    <shortdesc>Select a project.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_select-project.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="sign_external_pkg_wiz">
+    <title>Package Signing dialog</title>
+    <shortdesc>Allows you to sign one or more Android packages with a public/private key pair.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_mpkg-sign_android.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="unsign_external_pkg_wiz">
+    <title>Package Signature Removal dialog</title>
+    <shortdesc>Allows you to remove the signatures applied to one or more packages.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_mpkg-unsign_android.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.platform.tools.sign.ui -->
+  <cshelp id="appsigning">
+    <title>Application Signing Tool view</title>
+    <shortdesc>Automates the digital signing of applications for Android devices.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_app-signing-view.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="preference-emulator-view">
+    <title>Android Emulator preferences</title>
+    <shortdesc>Contains preferences that control the operation of the Android Emulator view.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_studio-prefs_emulator.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="preference-android-emulator">
+    <title>MOTODEV Studio for Android preferences</title>
+    <shortdesc>Contains preferences specific to MOTODEV Studio for Android.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_studio-prefs_android.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <!-- Currently this one is not linked from anywhere, but should be Preferences > MOTODEV Studio > MOTODEV Login -->
+  <cshelp id="preference-motoappstore">
+    <title>MOTODEV Login preferences</title>
+    <shortdesc>Contains preferences specific to publishing apps to Motorola.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_studio-prefs_appstore.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.db.devices -->
+  <cshelp id="preference-database">
+    <title>MOTODEV Database preferences</title>
+    <shortdesc>Contains preferences that are used when working with databases within MOTODEV Studio.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_studio-prefs_db.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.platform.tools.sign.ui -->
+  <cshelp id="create-key-pair">
+    <title>Create Key Pair dialog</title>
+    <shortdesc>Create a public/private key pair.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-create-key-pair.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.platform.tools.sign.ui -->
+  <cshelp id="import-cert">
+    <title>Import Certificate dialog</title>
+    <shortdesc>Import a certificate.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-import-cert.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.platform.tools.sign.ui -->
+  <cshelp id="import-key">
+    <title>Import Key dialog</title>
+    <shortdesc>Import a key.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-import-key.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="create-self-cert">
+    <title>Create Key dialog</title>
+    <shortdesc>Create a new self-signing key for use when signing Android packages (APKs).</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-create-self-cert.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="import_keystore">
+    <title>Import Keystore dialog</title>
+    <shortdesc>Import a keystore created outside of MOTODEV Studio for use within MOTODEV Studio's Signing and Keys view.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-import-keystore.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.packaging.ui -->
+  <cshelp id="packaging_help">
+    <title>Export Android Package Files dialog</title>
+    <shortdesc>Create Android package files for selected projects.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_pkg-export.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="install_app">
+    <title>Install application dialog</title>
+    <shortdesc>Specify a package to be installed.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_pkg-install.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="uninstall_app">
+    <title>Uninstall Application dialog</title>
+    <shortdesc>Specify one or more packages to be removed from a device.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_device-app-uninstall.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.db.core -->
+  <cshelp id="dbexplorer">
+    <title>MOTODEV Database Explorer</title>
+    <shortdesc>View and edit SQLite databases in Android apps.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_db-database-explorer.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: org.eclipse.datatools.sqltools.sqleditor -->
+  <cshelp id="sqleditorhelp">
+    <title>SQL Scrapbook</title>
+    <shortdesc>Construct and execute SQL statements.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_db-sql-scrapbook.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="create_db_classes">
+    <title>Database Management Classes</title>
+    <shortdesc>Generate classes that allow you to manage and access a database.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_db-classes-create.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.installer -->
+  <cshelp id="configuration_dialog">
+    <title>Download Components</title>
+    <shortdesc>Downloads and installs new components, such as SDKs, SDK add-ons, language packs, and code samples.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_download-components.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.installer -->
+  <cshelp id="sdk_download_location">
+    <title>SDK Download Location</title>
+    <shortdesc>Specifies the location to which the Android SDK should be downloaded.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sdk-download-location.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.installer -->
+  <cshelp id="sdk_download_retry">
+    <title>SDK Not Found</title>
+    <shortdesc>Indicates that the chosen SDK could not be downloaded due to a problem with your Internet connection.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_download-components.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.devices.services -->
+  <cshelp id="langPage">
+    <title>Emulator Language</title>
+    <shortdesc>Changes the device's language configuration.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_emulator-language.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="dump_hprof">
+    <title>Analyze Memory Using MAT dialog</title>
+    <shortdesc>Select the running application to be analyzed using MAT, the Eclipse memory analyzer.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_memory-analyze-app-select.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="monkey">
+    <title>Run Configurations (Monkey) dialog</title>
+    <shortdesc>The Android UI/Application Exerciser Monkey sends pseudo-random events (within limits you set) to your
+      application. This can prove to be an effective way to exercise little-used paths within your code, thus uncovering
+      bugs you might otherwise not find. Within MOTODEV Studio for Android you create "Test events with Monkey" run
+      configurations that specify the device on which to test, the packages to be exercised, the number of pseudo-random
+      events to send, and other constraints on how the events are generated. These configurations allow you to create
+      repeatable test scenarios for your applications.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_run-config-monkey-main.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="obuscation_property">
+    <title>MOTODEV Studio</title>
+    <shortdesc>Use this dialog to control whether Java classes should be obfuscated when the parent Android project is
+      built for release.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_obfuscation-prop.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android -->
+  <cshelp id="obfuscation-dialog">
+    <title>Obfuscation</title>
+    <shortdesc>Obfuscate the Java classes that make up one or more Android projects.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_obfuscate-projects.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="generate-code-from-layout-dialog">
+    <title>Generate Java Code Based on Layout</title>
+    <shortdesc>Generates boilerplate code for selected UI elements defined in an activity's or fragment's layout file.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_code-generator.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.videos.views -->
+  <cshelp id="MOTODEVVideosView">
+    <title>MOTODEV Video Tutorials view</title>
+    <shortdesc>Presents tutorial videos that demonstrate how to use MOTODEV Studio.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_video-view.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.db.core -->
+  <cshelp id="create_database_wizard">
+    <title>Create New Database</title>
+    <shortdesc>Creates a new database, and optionally defines one or more new, empty tables within that database.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_db-create.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.db.core -->
+  <cshelp id="create_table_wizard">
+    <title>Create New Table</title>
+    <shortdesc>Defines a new, empty table within an existing database.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_db-table-create.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="generate-code-from-context-menu-dialog">
+    <title>Generate Options Menu Code Based on XML file</title>
+    <shortdesc>Generates options menu code from a selected XML-format menu definition file in your project's res/menu
+    folder.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_options-menu-code-create.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="defineconnectiondatabasepage">
+    <title>Select Database Table dialog</title>
+    <shortdesc>Allows you to select the database table to be displayed when creating a new activity based upon the Database List template.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_select-table.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorola.studio.android.codeutils -->
+  <cshelp id="selectcolumnspage">
+    <title>Select Table Columns dialog</title>
+    <shortdesc>Allows you to select the database table's columns to be displayed when creating a new activity based upon the Database List template.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_select-columns.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="keystore-key-help-id">
+    <title>Keys and Keystores</title>
+    <shortdesc>Keys (public/private key pairs) are used to sign Android packages (APKs); APKs cannot be installed unless they are signed. Keys are contained within specially formatted files known as "keystores."</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="c_keys-keystores.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="import_entries_dialog">
+    <title>Import Entries dialog</title>
+    <shortdesc>Import into a keystore selected entries (keys) from another keystore.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-import-keystore-entries.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="new_keystore">
+    <title>Create Keystore dialog</title>
+    <shortdesc>Create a new keystore. A keystore contains keys for use when signing Android packages (APKs); each key must reside within a keystore.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-create-keystore.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="convert_keystore_type">
+    <title>Change Keystore Type dialog</title>
+    <shortdesc>Change the file format of a keystore.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-keystore-type-changing.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="backup_keystore">
+    <title>Keystores Backup dialog</title>
+    <shortdesc>Back up one or more keystores to a zip archive.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-keystore-backup.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="restore_keystore">
+    <title>Restore From Backup dialog</title>
+    <shortdesc>Restore one or more keystores that had been backed up to a zip archive.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-keystore-backup-restore.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="certificate_info_dialog">
+    <title>Key Properties dialog</title>
+    <shortdesc>Examine the various properties of a key.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_sign-cert-properties.dita"/>
+    </related-links>
+  </cshelp>
+  <!-- Plug-in: com.motorolamobility.studio.android.certmanager -->
+  <cshelp id="select_keystore">
+    <title>Import Keystore (during package export) dialog</title>
+    <shortdesc>Select a keystore that isn't known to the Signing and Keys view for use during the package export process.</shortdesc>
+    <csbody/>
+    <related-links>
+      <link href="u_keystore-select.dita"/>
+    </related-links>
+  </cshelp>
+</cshelp>
diff --git a/src/help/studio_help/src/topics/g_legal.dita b/src/help/studio_help/src/topics/g_legal.dita
new file mode 100644
index 0000000..bf09c2f
--- /dev/null
+++ b/src/help/studio_help/src/topics/g_legal.dita
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>

+<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/topic.dtd">

+<topic id="g_legal">

+  <title>Trademark notices</title>

+  <body>

+    <p>Copyright © <ph conref="g_variables.dita#g_variables/product-copyright-years"/>, Motorola Mobility, Inc. All rights

+      reserved.</p>

+    <p>This documentation is provided to you under the terms of the Motorola End User License Agreement. Motorola Mobility, Inc.

+      reserves the right to revise this documentation and to make changes in content from time to time without

+      obligation on the part of Motorola Mobility, Inc. to provide notification of such revision or changes.</p>

+    <p>If this documentation is provided on compact disc or as part of another software package, the other software and

+      documentation on the compact disc are subject to the license agreement accompanying the compact disc.</p>

+    <p>MOTOROLA and the Stylized M Logo are registered in the U.S. Patent &amp; Trademark Office. <ph

+        product="android-studio">Android is a trademark of Google Inc. Use of this trademark is subject to <xref

+          scope="external" format="html" href="http://www.google.com/permissions/index.html">Google Permissions</xref>.

+      </ph>Java and all other Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the

+      U.S. and other countries. Eclipse is a trademark of Eclipse Foundation, Inc. <ph product="android-studio"

+        >DeviceAnywhere is a trademark of Mobile Complete, Inc. </ph><ph product="webui">Microsoft, Windows, Windows Me,

+        and Windows XP are registered trademarks of Microsoft Corporation. Linux is the registered trademark of Linus

+        Torvalds in the United States and other countries. VMware is a registered trademark or trademarks (the "Marks")

+        of VMware, Inc. in the United States and/or other jurisdictions. </ph>

+      <ph product="javame-studio javame-sdk">Symbian and UIQ are registered trademarks of Symbian Software Ltd. </ph>

+      All other product and service names are the property of their respective owners.</p>

+  </body>

+</topic>

diff --git a/src/help/studio_help/src/topics/g_variables.dita b/src/help/studio_help/src/topics/g_variables.dita
new file mode 100644
index 0000000..1e8b5ec
--- /dev/null
+++ b/src/help/studio_help/src/topics/g_variables.dita
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/topic.dtd">
+<topic id="g_variables">
+    <title>Variables</title>
+    <body>
+        <p>Use this file to create variables for elements supported in generic topics. Create a
+            phrase or other element, assign it an ID, then add text to the element. To have a
+            different value based on a filtered attribute (product, platform, audience, otherprops),
+            nest multiple elements within the ID'd element, each with a different attribute value.
+            See the example below:</p>
+        <p>
+            <ph id="studio-sdk-product-name"><ph product="javame-sdk">MOTODEV SDK for Java ME</ph><ph product="javame-studio">MOTODEV Studio for Java ME</ph><ph product="webui">MOTODEV Studio for WebUI</ph><ph product="android-studio">MOTODEV Studio for Android</ph></ph>
+            <ph id="gui-product-name"><ph product="javame-sdk">the Launchpad application</ph><ph product="javame-studio">MOTODEV Studio for Java ME</ph><ph product="webui">MOTODEV Studio for WebUI</ph><ph product="android-studio">MOTODEV Studio for Android</ph></ph>            
+            <ph id="tools-and-services-view-name"><ph product="javame-sdk">Utilities</ph><ph product="javame-studio">Java ME Options</ph></ph>
+            <ph id="studio-sdk-prefs-parent-menu"><ph product="javame-sdk"><uicontrol>File</uicontrol></ph><ph product="javame-studio android-studio"><uicontrol>Window</uicontrol> (on Mac OS X, <uicontrol>MOTODEV Studio for Android</uicontrol>)</ph></ph>
+        </p>
+      
+        <p>
+            <ph id="product-copyright-years"><ph product="javame-sdk javame-studio">2007-2009</ph><ph product="android-studio">2009-2012</ph></ph>
+        </p>
+    
+    <p>Here's an example of how to conref one of the above variables:</p>
+    <codeblock>&lt;ph conref="g_variables.dita#g_variables/studio-sdk-product-name"/></codeblock>
+      
+    </body>
+</topic>
diff --git a/src/help/studio_help/src/topics/t_activity-creating.dita b/src/help/studio_help/src/topics/t_activity-creating.dita
new file mode 100644
index 0000000..0e50f7e
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_activity-creating.dita
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_activity-creating">

+  <title>Adding an Android activity</title>

+  <shortdesc>Allows you to easily add a new activity to an existing Android project. Activities are typically used to

+    implement part of the application's UI.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context/>

+    <steps>

+      <step>

+        <cmd>In the Package Explorer, right-click the project to which the activity should be added and select

+            <menucascade><uicontrol>New</uicontrol><uicontrol>Android Activity</uicontrol></menucascade>.</cmd>

+      </step>

+      <step>

+        <cmd>If you would like to base this activity on one of the supplied templates (and thus have some of the code

+          filled in for you), click <uicontrol>Create New Activity Based on Template</uicontrol>.</cmd>

+        <substeps>

+          <substep>

+            <cmd>From the list of template activities, select the one upon which the activity should be based. Note that

+              one of the samples--Database List--lists the contents of selected columns within your application's SQLite

+              database; in order to select this sample your application must already have a database in its <codeph

+                >assets</codeph> folder.</cmd>

+          </substep>

+          <substep>

+            <cmd>Click <uicontrol>Next</uicontrol>.</cmd>

+          </substep>

+        </substeps>

+      </step>

+      <step>

+        <cmd>Verify the contents of the <uicontrol>Source folder</uicontrol> and <uicontrol>Package</uicontrol> fields,

+          ensuring that they are correct for your project.</cmd>

+      </step>

+      <step>

+        <cmd>Specify a name for your new Activity subclass in <uicontrol>Name</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>By default the new activity will not have a label of its own; the application's label will be used if and

+          when the activity needs to be presented to the user. If you want a specific label for this activity, clear the

+            <uicontrol>Default</uicontrol> option (next to the <uicontrol>Label</uicontrol> field) and then enter your

+          preferred user-readable label.</cmd>

+      </step>

+      <step>

+        <cmd>If this activity uses device capabilities for which the user must grant permission, specify them in the

+            <uicontrol>Permission</uicontrol> area. These permissions will be added to the appropriate place in your

+          application's manifest file. To specify a permission, click <uicontrol>Add</uicontrol>, select the needed

+          permission, and click <uicontrol>OK</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>Specify the intents that this new activity responds to: for each, click <uicontrol>Add</uicontrol> (next to

+            <uicontrol>Action</uicontrol>) and select the appropriate intent or click <uicontrol>Input</uicontrol> and

+          enter the full name of the intent in the field provided.</cmd>

+        <info>You can select multiple intents from the dialog that appears when you click <uicontrol>Add</uicontrol>. To

+          select a range, select the first item in the set and then hold down the Shift key while selecting the last

+          item in the set. To select multiple separate intents, select the first item and then hold down the Control key

+          while selecting the remaining items.</info>

+      </step>

+      <step>

+        <cmd>If you need to specify additional information about the intents using one or more standard action

+          categories, for each click <uicontrol>Add</uicontrol> (next to <uicontrol>Category</uicontrol>) and select the

+          appropriate one or click <uicontrol>Input</uicontrol> and enter a category manually.</cmd>

+      </step>

+      <step>

+        <cmd>Unless you are basing your new activity on a template, the New Android Activity wizard will create the

+          activity with an empty onCreate() method. If you will be implementing onStart(), select the option to include

+          an empty onStart() method as well.</cmd>

+      </step>

+      <step>

+        <cmd>If this new activity is the one that should be started when the application is launched, select <uicontrol

+            >Set as the main activity</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>

+      </step>

+    </steps>

+    <result>The activity is created and added to the selected project. It is also opened in an editor view.</result>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_android-perspective-opening.dita b/src/help/studio_help/src/topics/t_android-perspective-opening.dita
new file mode 100644
index 0000000..5eb10ef
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_android-perspective-opening.dita
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_android-perspective-opening">
+  <title>Opening the MOTODEV Studio for Android perspective</title>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <context>The MOTODEV Studio for Android perspective is normally opened automatically, but in the event you need to
+      open it manually you open it like any other <tm tmtype="tm">Eclipse</tm> perspective.</context>
+    <steps>
+      <step>
+        <cmd>Bring up the Open Perspective dialog by doing one of the following:</cmd>
+        <choices>
+          <choice>Click Open Perspective (<image href="../images/open-persp-button.jpg" placement="inline">
+            </image>), located in the top right corner of the MOTODEV Studio window, and select <uicontrol
+            >Other</uicontrol>.</choice>
+          <choice>From the <uicontrol>Window</uicontrol> menu, select <menucascade><uicontrol>Open
+              Perspective</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade></choice>
+        </choices>
+      </step>
+      <step>
+        <cmd>In the <uicontrol>Open Perspective</uicontrol> dialog, click <uicontrol>MOTODEV Studio for
+          Android</uicontrol> and then click <uicontrol>OK</uicontrol>.</cmd>
+        <stepresult>The MOTODEV Studio for Android perspective is displayed. </stepresult>
+      </step>
+    </steps>
+    <postreq>
+      <note type="note">For further information on how to use, create, customize and configure perspectives, refer to
+        the Eclipse documentation: <ol>
+          <li>Select <uicontrol>Help Contents</uicontrol> from the <uicontrol>Help</uicontrol> menu. </li>
+          <li>Select <menucascade><uicontrol>Workbench User Guide</uicontrol><uicontrol>Getting
+                Started</uicontrol><uicontrol>Basic Tutorial</uicontrol>
+              <uicontrol>Perspectives</uicontrol></menucascade>.</li>
+        </ol></note>
+    </postreq>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_app-cert-props-changing.dita b/src/help/studio_help/src/topics/t_app-cert-props-changing.dita
new file mode 100644
index 0000000..0d298c9
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-cert-props-changing.dita
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_app-cert-props-changing">
+  <title>Managing keys and keystores</title>
+  <shortdesc>The Signing and Keys view provides you a simple means to generate keys and keystores, delete keys and
+    keystores, import keys from one keystore to another, backup and restore keystores, and of course sign Android
+    Package (APK) files with your keys.</shortdesc>
+</task>
diff --git a/src/help/studio_help/src/topics/t_app-cert-removing.dita b/src/help/studio_help/src/topics/t_app-cert-removing.dita
new file mode 100644
index 0000000..9e800f7
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-cert-removing.dita
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_app-cert-removing">
+  <title>Deleting a <ph product="android-studio">key</ph></title>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <context>
+      <p>To delete a key or certificate listed in the Signing and Keys view:</p>
+    </context>
+    <steps>
+      <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>Within the Signing and Keys view, if the key to be deleted is not already showing, expose the contents of
+          the keystore containing the key by clicking the disclosure triangle to the left of the keystore's name.</cmd>
+      </step>
+      <step>
+        <cmd>Select the key and click <image href="../images/KeyDelete.png"/> (Delete key).</cmd>
+      </step>
+      <step>
+        <cmd>Confirm the deletion of the selected item when prompted.</cmd>
+      </step>
+    </steps>
+    <result> The selected key is deleted from the keystore.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_app-cert-signing_android.dita b/src/help/studio_help/src/topics/t_app-cert-signing_android.dita
new file mode 100644
index 0000000..80b9348
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-cert-signing_android.dita
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_app-cert-signing">
+  <title>Signing Android packages</title>
+  <shortdesc>Once you have a keystore with at least one key pair, you can use that key to sign your Android packages
+    (APKs). You generally will sign your applications as you package them, but occasionally you will need to sign an
+    Android Package (APK) file that has already been created (for instance, if you need to change the certificate with
+    which an APK file is signed, you can remove the signature and then apply a new one as described here).</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>Note that this procedure requires that you have an Android Package (APK) file for each application being
+      signed. As well, the key must already be known to MOTODEV Studio for Android.</prereq>
+    <steps>
+      <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>In the Signing and Keys view click <image href="../images/PackageSign.png" placement="inline"/> (Sign
+          Android Package).</cmd>
+        <stepresult>The Package Signing dialog appears.</stepresult>
+      </step>
+      <step>
+        <cmd>Using the <uicontrol>Packages folder</uicontrol> field, specify the folder that contains the APK files
+          (there can be more than one) to be signed. This is often the <codeph>dist</codeph> directory within an Android
+          application's project.</cmd>
+      </step>
+      <step>
+        <cmd>Specify the keystore containing the key to use for signing, and enter the keystore password if necessary.
+          Note that if you instructed MOTODEV Studio to save the keystore password when you created the keystore (or
+          during a previous signing operation), the password is filled in for you.</cmd>
+      </step>
+      <step>
+        <cmd>Using the <uicontrol>Key</uicontrol> drop-down list, specify the key to be used when signing the selected
+          package(s).</cmd>
+      </step>
+      <step>
+        <cmd>Under <uicontrol>Select the packages</uicontrol>, select the APK files that are to be signed with the
+          specified key. Note that the listed packages are those found in the folder you specified earlier.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>
+      </step>
+      <step>
+        <cmd>If you did not instruct MOTODEV Studio to save the selected key's password (either when you created the key
+          or during a previous signing operation), you will be prompted to enter the password for the key. Enter it in
+          the  field provided and then click <uicontrol>OK</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>The selected Android Package files are signed with the chosen key and then aligned on 4-byte boundaries
+      using the zipalign tool.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_app-debugging_android.dita b/src/help/studio_help/src/topics/t_app-debugging_android.dita
new file mode 100644
index 0000000..473afe5
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-debugging_android.dita
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_app-debugging_android">
+  <title>Debugging an Android application</title>
+  <shortdesc>Use this procedure to debug an Android application, defined by a project listed in the Package Explorer, on
+    an emulated device, or on a physical device connected to your development
+    computer.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>In order to debug your application, you need to have a target device defined. To debug on an emulated
+      device, you must have created at least one AVD. To debug on a physical device, you must <!--either -->connect that
+      device to your development computer using a supported method such as a USB
+      cable<!--, or you must have acquired the device
+      and connected to it using the <tm tmtype="tm">DeviceAnywhere</tm> service-->.</prereq>
+    <steps>
+      <step>
+        <cmd>Set a breakpoint in your project by double-clicking in the grey "gutter" to the left of the line before
+          which execution should halt.</cmd>
+        <stepresult>A blue circle appears in the gutter, indicating that a breakpoint has been set. Note that if you do
+          not set a breakpoint before beginning to debug, execution does not automatically halt anywhere within your
+          application.</stepresult>
+      </step>
+      <step>
+        <cmd>Right-click the project in the Package Explorer and select <menucascade><uicontrol>Debug
+              As</uicontrol><uicontrol>Android Application using Studio for Android</uicontrol></menucascade> from the
+          menu that appears.</cmd>
+        <stepresult>The Debug Configurations dialog appears, open to your application's debug configuration (if this is
+          the first time you have debugged this application, a new configuration will have been created for
+        you).</stepresult>
+      </step>
+      <step>
+        <cmd>On the Main tab of the Debug Configurations dialog, click <uicontrol>Browse</uicontrol> next to the
+            <uicontrol>Instance</uicontrol> field and select the target AVD or device.</cmd>
+        <info>The Instance Selection list lists all AVDs and all physical devices connected to your development
+          computer<!--, and all Android devices acquired through the DeviceAnywhere VDL-->. If the Instance Selection
+          list is empty, you will either need to create an AVD or connect an Android device to your development
+          computer<!--, or use DeviceAnywhere Studio to acquire and connect to a target device-->.</info>
+      </step>
+      <!--<step xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/"><cmd>If you are debugging on a remote device through the DeviceAnywhere VDL, select <uicontrol>Launcher for DeviceAnywhere Studio devices</uicontrol>. Otherwise, leave <uicontrol>Default launcher</uicontrol> selected.</cmd></step>-->
+      <step>
+        <cmd>Click <uicontrol>Debug</uicontrol> to save and run your new configuration.</cmd>
+      </step>
+      <step>
+        <cmd>If you are debugging your application on an emulated device and the Android Emulator view is not open, you
+          will be asked whether the emulator should be presented within an Eclipse view. If you click <uicontrol
+          >No</uicontrol>, the emulator will appear in a separate window.</cmd>
+        <info>At any time you can switch the emulator from a view within MOTODEV Studio to an external window (or from an external window to a view): see <xref href="t_emulator-external.dita"></xref>.
+</info>
+      </step>
+    </steps>
+    <result>The application is transferred to the target device and then launched for debugging.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_app-deploying_android.dita b/src/help/studio_help/src/topics/t_app-deploying_android.dita
new file mode 100644
index 0000000..f534afb
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-deploying_android.dita
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_app-deploying_javame">
+  <title>Installing an application on a device</title>
+  <shortdesc>Describes how to deploy a packaged Android application onto a real or emulated Android device.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>
+      <note type="important">The target device must be listed in the Device Management view, and it must be online. If
+        you are deploying to an emulated device, that emulator must be running. If you are deploying to an Android
+        handset, it must be connected to your development computer.</note>
+    </prereq>
+    <steps>
+      <step>
+        <cmd>Click the <uicontrol>Device Management</uicontrol> tab, if necessary, to bring forward the Device
+          Management view.</cmd>
+      </step>
+      <step>
+        <cmd>Install the app by dragging and dropping its APK onto a running AVD or connected handset listed in the
+          Device Management view (note that you can use this technique to install multiple APKs by selecting them all
+          and then dragging and dropping the group onto the listed device). Alternatively, you can do the following:</cmd>
+        <substeps>
+          <substep>
+            <cmd>Right-click the device to which the application is to be deployed.</cmd>
+          </substep>
+          <substep>
+            <cmd>From the menu that appears, select <uicontrol>Install App</uicontrol>.</cmd>
+            <stepresult>The Install Application dialog appears.</stepresult>
+          </substep>
+          <substep>
+            <cmd>Using the <uicontrol>Application package</uicontrol> field, select the APK file to be installed.</cmd>
+            <info>If the APK file is not properly signed for the target device, the dialog will indicate that the
+              package is either unsigned or malformed. You cannot proceed if this is the case.</info>
+          </substep>
+          <substep>
+            <cmd>Specify what MOTODEV Studio for Android should do if a version of the application already exists on the
+              target device.</cmd>
+            <info>
+              <ul>
+                <li>If MOTODEV Studio can safely overwrite any existing version of the application, select <uicontrol
+                    >Overwrite if application already exists</uicontrol>.</li>
+                <li>To have any previous version of the application uninstalled before installing this new one, select
+                    <uicontrol>Uninstall application before install</uicontrol>.</li>
+                <li>If you do not want an existing version of the application overwritten--that is, if you only want the
+                  application deployed to the device if it does not already reside on the device--select the <uicontrol
+                    >Do nothing if application is already installed</uicontrol> option.</li>
+              </ul>
+            </info>
+          </substep>
+          <substep>
+            <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>
+          </substep>
+        </substeps>
+      </step>
+    </steps>
+    <result>The application is transferred to the chosen device, unless the application already exists on the device and
+      you elected not to overwrite it, in which case an error message will be generated.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_app-launching_android.dita b/src/help/studio_help/src/topics/t_app-launching_android.dita
new file mode 100644
index 0000000..c075d23
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-launching_android.dita
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_app-launching_android">
+  <title>Running an Android application</title>
+  <shortdesc>Use this procedure to run an Android application, defined by a project listed in the Package Explorer, on
+    an emulated device or on a physical device connected to your development
+    computer.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>In order to run your application, you need to have a target device defined. To run on an emulated device,
+      you must have created at least one AVD. To run on a physical device, you must <!--either -->connect that device to
+      your development computer using a supported method such as a USB
+      cable<!--, or you must have acquired the device and connected to it using the <tm tmtype="tm" xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/">DeviceAnywhere</tm> service-->.</prereq>
+    <steps>
+      <step>
+        <cmd>Right-click the project in the Package Explorer and select <menucascade><uicontrol>Run
+              As</uicontrol><uicontrol>Android Application using Studio for Android</uicontrol></menucascade> from the
+          menu that appears. If MOTODEV Studio is able to determine on which device the app should be run, it will
+          simply run the app. Otherwise, The Run Configurations dialog appears, open to your application's run
+          configuration (if this is the first time you have run this application, a new configuration will have been
+          created for you).</cmd>
+        <substeps>
+          <substep>
+            <cmd>On the Main tab of the Run Configurations dialog, click <uicontrol>Browse</uicontrol> next to the
+                <uicontrol>Device</uicontrol> field and select the target AVD or device.</cmd>
+            <info>The Device Selection list lists all AVDs and all physical devices connected to your development
+              computer<!--, and all Android devices acquired through the DeviceAnywhere VDL-->. If the Device Selection
+              list is empty, you will either need to create an AVD or connect an Android device to your development
+              computer<!--, or use the DeviceAnywhere VDL to acquire a target device-->.</info>
+          </substep>
+          <substep>
+            <cmd>Click <uicontrol>Run</uicontrol> to save and run your new configuration.</cmd>
+          </substep>
+        </substeps>
+        <info>When you use <menucascade><uicontrol>Run As</uicontrol><uicontrol>Android Application using Studio for
+              Android</uicontrol></menucascade> and there isn't an existing Run Configuration for your application,
+          MOTODEV Studio constructs one for you. It determines the appropriate target device by first looking at online
+          devices; the first one (in alphabetical order, by name) that has a compatible API version is used. If there
+          are no compatible devices currently online, it then looks at the offline devices: the first of these (again,
+          in alphabetical order, by name) that has a compatible API version is started and used. If none of the devices,
+          online or not, are compatible, you are presented with the Run Configurations dialog.</info>
+      </step>
+      <!--<step xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/"><cmd>If you are running on a remote device through the DeviceAnywhere VDL, select <uicontrol>Launcher for DeviceAnywhere Studio devices</uicontrol>. Otherwise, leave <uicontrol>Default launcher</uicontrol> selected.</cmd></step>-->
+      <step>
+        <cmd>If you are running your application on an emulated device and the Android Emulator view is not open, you
+          will be asked whether the emulator should be presented within an Eclipse view. If you click <uicontrol
+          >No</uicontrol>, the emulator will appear in a separate window.</cmd>
+        <info>At any time you can switch the emulator from a view within MOTODEV Studio to an external window (or from
+          an external window to a view): see <xref href="t_emulator-external.dita"/>. </info>
+      </step>
+    </steps>
+    <result>The application is transferred to the target device and then launched.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_app-memory-analyzing.dita b/src/help/studio_help/src/topics/t_app-memory-analyzing.dita
new file mode 100644
index 0000000..d11f080
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-memory-analyzing.dita
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task id="t_app-memory-analyzing" xml:lang="en-us">

+  <title>Analyzing Memory with MAT</title>

+  <shortdesc>MOTODEV Studio for Android provides an interface to MAT, the Eclipse memory analyzer. MAT analyzes the Java

+    heap and can be extremely helpful when trying to track down memory leaks. It is also a valuable tool when trying to

+    reduce your app's memory consumption.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context>

+      <p>MOTODEV Studio for Android will generate an HPROF binary formatted heap dump for a selected process on a

+        running emulator (or handset, provided that the handset has an SD card installed; on a handset the HPROF file is

+        written to the SD card), and will then launch MAT to analyze the heap dump.</p>

+    </context>

+    <steps>

+      <step>

+        <cmd>From the Device Management view, right-click the running emulator or connected device on which the app or

+          service to be analyzed is running and select <uicontrol>Analyze Memory with MAT</uicontrol>.</cmd>

+        <stepresult>MOTODEV Studio for Android displays a dialog showing all of the running applications and services on

+          the selected device.</stepresult>

+      </step>

+      <step>

+        <cmd>Select the application or service you wish to analyze and click <uicontrol>Finish</uicontrol>.</cmd>

+        <stepresult>MOTODEV Studio for Android generates an HPROF file from the selected application or service and

+          presents a basic analysis in the form of a pie chart in an editor view. It then launches the Getting Started

+          Wizard, from which you can select a report.</stepresult>

+      </step>

+      <step>

+        <cmd>Using the Getting Started Wizard select the desired report to run, or click <uicontrol>Cancel</uicontrol>

+          if you aren't interested in any of the listed reports at this time (you can run these reports at any time from

+          the editor view showing the pie chart; see the list of reports at the bottom of the view.</cmd>

+      </step>

+    </steps>

+    <postreq>Click the various links and pie chart segments to get information about how the selected application or

+      service is using memory. See the Memory Analyzer documentation for instructions on using the tool.</postreq>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_app-packaging_android.dita b/src/help/studio_help/src/topics/t_app-packaging_android.dita
new file mode 100644
index 0000000..99be724
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-packaging_android.dita
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_app-packaging_android">
+  <title>Packaging an Android application</title>
+  <shortdesc>Describes how to create Android Package (APK) files for one or more MOTODEV Studio for Android projects.
+    APK files are used to distribute and deploy applications for the Android platform. </shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>
+      <p>Note that in order to create an Android package the application being packaged must build without error.</p>
+    </prereq>
+    <steps>
+      <step>
+        <cmd>In the Package Explorer, right-click the project you wish to package into an APK file and select <uicontrol
+            >Export</uicontrol> from the menu that appears.</cmd>
+        <stepresult>The Export dialog appears.</stepresult>
+      </step>
+      <step>
+        <cmd>Select <menucascade><uicontrol>Android</uicontrol><uicontrol>Export Android Application using Studio for
+              Android</uicontrol></menucascade> and click <uicontrol>Next</uicontrol>.</cmd>
+      </step>
+      <step>
+        <cmd>Verify the contents of the Export Android Package Files dialog.</cmd>
+        <substeps>
+          <substep>
+            <cmd>Ensure that the desired packages are selected. An APK file will be generated for each selected
+            package.</cmd>
+          </substep>
+          <substep>
+            <cmd>By default, each APK file is placed in a <codeph>dist</codeph> directory within the corresponding
+              project. Alternatively, you can specify a single directory into which the generated APK files are to be
+              placed: clear the <uicontrol>Use default destination</uicontrol> option, and specify the destination
+              directory using the <uicontrol>Destination</uicontrol> field.</cmd>
+          </substep>
+          <substep>
+            <cmd>If the packages are to be signed, select <uicontrol>Sign the package</uicontrol> and choose the
+              keystore and key to be used. To create an unsigned APK file, make sure that <uicontrol>Sign the
+                package</uicontrol> is not selected.</cmd>
+            <info><ul>
+                <li>If the keystore is already known to (and listed in) the Signing and Keys view, select it from the
+                  drop-down list. Otherwise, click <uicontrol>Use existing</uicontrol> to specify an existing keystore
+                  that is not yet known to the Signing and Keys view, or <uicontrol>Add new</uicontrol> to create and
+                  use a new keystore.</li>
+                <li>Select an existing key from the drop-down list, or create a new key in the keystore by selecting
+                    <uicontrol>Add</uicontrol>.</li>
+              </ul></info>
+          </substep>
+        </substeps>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>
+        <stepresult>
+          <p>The APK files are generated as directed. If you elected to use the default destination, the APK file for
+            each selected project can be found in that project's <codeph>dist</codeph> directory. If you specified your
+            own destination directory, that directory should now contain an APK file for each selected project.</p>
+          <note importance="normal">If you chose to sign the packages, after signing the zipalign tool is used to align
+            the Android Package files on 4-byte boundaries. Also, if obfuscation is enabled for the project, the
+            project's Java classes will be obfuscated.</note>
+        </stepresult>
+      </step>
+    </steps>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_app-signature-removing.dita b/src/help/studio_help/src/topics/t_app-signature-removing.dita
new file mode 100644
index 0000000..badbd02
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-signature-removing.dita
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_app-signature-removing">
+  <title>Removing package signatures</title>
+  <shortdesc>Describes how to remove all signatures from an Android package (APK).</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>In the Signing and Keys view click <image href="../images/PackageUnsign.png" placement="inline"/> (Remove
+          Package Signatures).</cmd>
+        <stepresult>The Package Signature Removal dialog appears.</stepresult>
+      </step>
+      <step>
+        <cmd>Using the <uicontrol>Packages folder</uicontrol> field, specify the folder that contains the APK files
+          (there can be more than one) from which the signatures are to be removed. This is often the
+            <codeph>dist</codeph> directory within an Android application's project.</cmd>
+      </step>
+      <step product="android-studio">
+        <cmd>Under <uicontrol>Select the packages</uicontrol>, select the APK files that are to have their signatures
+          removed. </cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>
+      <p product="javame-studio javame-sdk">A message confirms that the signature has been removed.</p>
+      <p product="android-studio">The signatures are removed from the selected APK files.</p>
+    </result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_app-testing-monkey.dita b/src/help/studio_help/src/topics/t_app-testing-monkey.dita
new file mode 100644
index 0000000..aaf6a13
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-testing-monkey.dita
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task id="t_app-testing-monkey" xml:lang="en-us">

+  <title>Testing Your Application with the UI/Application Exerciser Monkey</title>

+  <shortdesc>The Android UI/Application Exerciser Monkey sends pseudo-random events (within limits you set) to your

+    application. This can prove to be an effective way to exercise little-used paths within your code, thus uncovering

+    bugs you might otherwise not find. The Monkey tool itself is provided as part of the Android SDK, but it has a

+    command-line interface. MOTODEV Studio for Android provides an interface for Monkey, so that you can exercise your

+    applications from within the same environment you use to build them.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context>

+      <p>Within MOTODEV Studio for Android you use "Test events with Monkey" launch configurations to test your apps

+        with the UI/Application Exerciser Monkey. </p>

+      <note type="important">Unlike other launch configurations, a "Test events with Monkey" configuration does not load

+        your app onto the target device. You must have previously installed the app(s) you wish to test prior to setting

+        up and running a Monkey configuration.</note>

+    </context>

+    <steps>

+      <step>

+        <cmd>Create the launch configuration using one of the following methods:</cmd>

+        <choices>

+          <choice>If the emulator you wish to use is running, or the device you wish to use is connected to your

+            development computer, right-click the emulator or device in the Device Management view and select <uicontrol

+              >Test events with Monkey</uicontrol>.</choice>

+          <choice>Select <uicontrol>Run Configurations</uicontrol> from the <uicontrol>Run</uicontrol> menu. From the

+            left pane of the Run Configurations dialog select <uicontrol>Test events with Monkey</uicontrol> and click

+            'New' <image href="../images/new-config-button.png"/> to create a new configuration.</choice>

+        </choices>

+      </step>

+      <step>

+        <cmd>Using the <uicontrol>Device</uicontrol> field (on the <uicontrol>Main</uicontrol> tab), select the device

+          instance to be used to run the Monkey test. Note that you can only select from among running emulators and

+          connected devices; if there are no device instances from which to choose, you'll first need to launch an

+          emulator or connect a handset. </cmd>

+      </step>

+      <step>

+        <cmd>Select those packages that Monkey should exercise from the package list. You can select one or several

+          packages; Monkey will limit its scope only to the selected packages. To select a single package, click it. To

+          select a block of adjacent packages, click the first and then Shift-click the last. To select several

+          individual packages, click the first one and then Control-click (Command-click, on Macintosh) the remaining

+          packages.</cmd>

+      </step>

+      <step>

+        <cmd>Using the <uicontrol>Event count</uicontrol> field, specify the number of pseudo-random events to be sent

+          to the selected packages.</cmd>

+      </step>

+      <step>

+        <cmd>To further customize the way that that Monkey tests your applications, select the <uicontrol

+          >Options</uicontrol> tab and fill in the desired fields. See the UI/Application Exerciser Monkey documentation

+          provided with the Android SDK for information on the purpose and allowable values for each of these fields.

+          Note that you can select <uicontrol>General</uicontrol> and supply options as command-line parameters, rather

+          than as form values.</cmd>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Run</uicontrol> to save your new configuration and run it. Or, click <uicontrol

+          >Apply</uicontrol> and then <uicontrol>Close</uicontrol> to save your new configuration without running it.

+        </cmd>

+      </step>

+    </steps>

+    <result>When Monkey runs it posts its progress to the MOTODEV Studio for Android Console view.</result>

+    <postreq>You can re-run your Monkey configuration at any time by selecting it from your Run configurations and

+      clicking <uicontrol>Run</uicontrol>.</postreq>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_app-uninstalling-android.dita b/src/help/studio_help/src/topics/t_app-uninstalling-android.dita
new file mode 100644
index 0000000..650a5ea
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_app-uninstalling-android.dita
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_app-uninstalling-android" xml:lang="en-us">
+  <title>Uninstalling Android applications</title>
+  <shortdesc>From within MOTODEV Studio for Android you can easily uninstall applications from a connected device or
+    emulator.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>Click the <uicontrol>Device Management</uicontrol> tab, if necessary, to bring forward the Device
+          Management view.</cmd>
+      </step>
+      <step>
+        <cmd>Right-click the device from which the application is to be uninstalled. </cmd>
+        <info>The target device must be listed in the Device Management view, and it must be online. If you are
+          uninstalling an application from an emulated device, that emulator must be running. If you are uninstalling
+          from an Android handset, it must be connected to your development computer.</info>
+      </step>
+      <step>
+        <cmd>From the menu that appears, select <uicontrol>Uninstall App</uicontrol>.</cmd>
+        <stepresult>The Uninstall Application dialog appears, listing all of the packages on the target device that can
+          be uninstalled.</stepresult>
+      </step>
+      <step>
+        <cmd>Select the package that you want to uninstall and click <uicontrol>Finish</uicontrol></cmd>
+      </step>
+    </steps>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_bcast-rcvr-creating.dita b/src/help/studio_help/src/topics/t_bcast-rcvr-creating.dita
new file mode 100644
index 0000000..b419bc6
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_bcast-rcvr-creating.dita
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_bcast-rcvr-creating">

+  <title>Adding a broadcast receiver</title>

+  <shortdesc>Allows you to easily add a new broadcast receiver to an existing Android project. A broadcast receiver

+    enables you to receive intents sent either from the system or from other applications, even when your application

+    isn't running.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context/>

+    <steps>

+      <step>

+        <cmd>In the Package Explorer, right-click the project to which the activity should be added and select

+            <menucascade><uicontrol>New</uicontrol><uicontrol>Android Broadcast

+        Receiver</uicontrol></menucascade>.</cmd>

+      </step>

+      <step>

+        <cmd>Specify a name for your new BroadcastReceiver subclass in <uicontrol>Name</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>By default the new broadcast receiver will not have a label of its own; the application's label will be

+          used wherever necessary. If you want a specific label for this broadcast receiver, clear the <uicontrol

+            >Default</uicontrol> option (next to the <uicontrol>Label</uicontrol> field) and then enter your preferred

+          user-readable label.</cmd>

+      </step>

+      <step>

+        <cmd>If this broadcast receiver uses device capabilities for which the user must grant permission, specify them

+          in the <uicontrol>Permission</uicontrol> area. These permissions will be added to the appropriate place in

+          your application's manifest file. To specify a permission, click <uicontrol>Add</uicontrol>, select the needed

+          permission, and click <uicontrol>OK</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>Specify the types of broadcasts that this new receiver can handle: for each, click <uicontrol

+          >Add</uicontrol> (next to <uicontrol>Action</uicontrol>) and select the appropriate intent.</cmd>

+      </step>

+      <step>

+        <cmd>If you need to specify additional information about the intents using one or more standard categories, for

+          each click <uicontrol>Add</uicontrol> (next to <uicontrol>Category</uicontrol>) and select the appropriate

+          one.</cmd>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>

+      </step>

+    </steps>

+    <result>The broadcast receiver is created and added to the selected project. It is also opened in an editor

+    view.</result>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_cert-key-generating.dita b/src/help/studio_help/src/topics/t_cert-key-generating.dita
new file mode 100644
index 0000000..4c0587a
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_cert-key-generating.dita
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_cert-key-generating">

+  <title>Creating a key</title>

+  <shortdesc>Use the Signing and Keys view within MOTODEV Studio for Android to generate public/private key pairs for

+    use when signing Android packages (APKs).</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <steps>

+      <step>

+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>

+              <uicontrol>Window</uicontrol>

+              <uicontrol>Show View</uicontrol>

+              <uicontrol>Other</uicontrol>

+            </menucascade> and then selecting <menucascade>

+              <uicontrol>MOTODEV Studio</uicontrol>

+              <uicontrol>Signing and Keys</uicontrol>

+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android

+          perspective and is thus normally opened when you switch to that perspective.</cmd>

+      </step>

+      <step>

+        <cmd>Within the Signing and Keys view, select the keystore into which the newly created key is to be stored.</cmd>

+      </step>

+      <step>

+        <cmd>Click <image href="../images/KeyCreate.png"/> (Create Key).</cmd>

+        <info>A dialog appears that contains fields for the key name (its "alias"), for each of the components of a

+          distinguished name (DN; used to identify the creator of a key pair or certificate) and for a password used to

+          protect the key.</info>

+      </step>

+      <step>

+        <cmd>Enter an identifier for your key using the <uicontrol>Alias name</uicontrol> field.</cmd>

+      </step>

+      <step>

+        <cmd>Fill out the DN fields. Note that most of these are optional, although the <uicontrol>Validity</uicontrol>

+          field is required.</cmd>

+        <info>See <xref href="u_sign-cert-properties.dita"/> if you have

+          questions about what to supply for a particular field.</info>

+      </step>

+      <step>

+        <cmd>Enter a password that will be used to protect the key (you'll need to supply this password when you sign an

+          Android package using this key). If you want the password to be saved (and automatically used when you sign an

+          APK with this key), select <uicontrol>Save this password</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>

+      </step>

+    </steps>

+    <result>The key pair is generated and added to the list shown in the Signing and Keys view.</result>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_cert-key-properties.dita b/src/help/studio_help/src/topics/t_cert-key-properties.dita
new file mode 100644
index 0000000..dc1367f
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_cert-key-properties.dita
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_cert-key-properties" xml:lang="en-us">
+  <title>Examining a key's properties</title>
+  <shortdesc>Use this procedure to look at the properties that were specified when a key was created.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>In the Signing and Keys view select the key whose properties you want to see. Note that you may need to
+          click the disclosure triangle next to the keystore containing the key to expose that keystore's
+          contents.</cmd>
+      </step>
+      <step>
+        <cmd>Click <image href="../images/KeyProperties.png"/> (Key Properties).</cmd>
+        <stepresult>The Key Properties dialog is displayed, which shows all of the properties that were specified when
+          the key was created. The Validity period, specified as a duration (in years) when the key was created, is
+          shown as two dates: the date the key was created, and the date that the key expires.</stepresult>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>OK</uicontrol> when you are done reviewing the key's properties.</cmd>
+      </step>
+    </steps>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_cert-key-pwd-changing.dita b/src/help/studio_help/src/topics/t_cert-key-pwd-changing.dita
new file mode 100644
index 0000000..a9a98c9
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_cert-key-pwd-changing.dita
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_cert-key-pwd-changing" xml:lang="en-us">
+  <title>Changing a key's password</title>
+  <shortdesc>Keys used to sign an Android package are protected using a password: you need to supply the key's password whenever you sign an Android package (APK). You specify the password when you create the key, but you can change that password at any time.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>In the Signing and Keys view select the key whose password is to be changed. Note that you may need to
+          click the disclosure triangle next to the keystore containing the key to expose that keystore's
+          contents.</cmd>
+      </step>
+      <step>
+        <cmd>Click <image href="../images/KeyPasswordChange.png"/> (Change Key Password).</cmd>
+        <stepresult>The Enter Password dialog is displayed.</stepresult>
+      </step>
+      <step>
+        <cmd>Enter the key's existing password into the <uicontrol>Old Password</uicontrol> field.</cmd>
+      </step>
+      <step>
+        <cmd>Enter the new key password into the <uicontrol>New password</uicontrol> field, and again in the
+            <uicontrol>Confirm new password</uicontrol> field.</cmd>
+      </step>
+      <step>
+        <cmd>If you want MOTODEV Studio to remember this key's password and automatically fill it in when you use the
+          key to sign an Android package (APK), select <uicontrol>Save this password</uicontrol>.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>OK</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>The key's password is changed.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_code-generator.dita b/src/help/studio_help/src/topics/t_code-generator.dita
new file mode 100644
index 0000000..1d273f5
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_code-generator.dita
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_code-generator" xml:lang="en-us">
+  <title>Generating Java Code</title>
+  <shortdesc>The Java code generator can quickly generate boilerplate code for selected UI elements defined in an
+    activity's or fragment's layout file. It generates attribute declarations, findViewById() calls, and event handlers.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>Construct your layout file, ensuring that it contains all of the UI elements that you want to
+          programmatically access from your Java Activity or Fragment subclass. Save your work.</cmd>
+      </step>
+      <step>
+        <cmd>Right-click the Activity or Fragment subclass that presents and controls the layout (right-click either the
+          editor window showing this subclass, or the subclass' filename in the Package Explorer) and select
+            <menucascade><uicontrol>Source</uicontrol><uicontrol>Generate Java Code Based on
+          Layout</uicontrol></menucascade>.</cmd>
+        <info>
+          <note>In order for this operation to work, your Activity or Fragment code must not have errors. As well, the
+            xml file that defines your layout must be well-formed.</note>
+        </info>
+        <stepresult>The Generate Java Code Based on Layout dialog appears.</stepresult>
+      </step>
+      <step>
+        <cmd>Ensure that the <uicontrol>Project</uicontrol> and <uicontrol>Target Class</uicontrol> selections are
+          correct.</cmd>
+      </step>
+      <step>
+        <cmd>From the <uicontrol>UI objects</uicontrol> list, select those items for which code is to be generated.</cmd>
+        <info>To avoid adding duplicate code, if the code generator finds an existing findViewById() statement for a
+          given UI object, it does not include that UI object in the list.</info>
+      </step>
+      <step>
+        <cmd>If at least one of the UI objects is normally used with a listener object, and you do <i>not</i> want
+          listeners to be created for you, clear the <uicontrol>Generate default listeners when possible</uicontrol>
+          option. Otherwise, leave this option selected so that listeners are generated for the appropriate UI
+        objects.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>OK</uicontrol>.</cmd>
+        <info>Note that the <uicontrol>OK</uicontrol> button isn't enabled until you select at least one UI object from
+          the list.</info>
+      </step>
+    </steps>
+    <result>Attribute declarations, findViewById() calls, and event handlers are generated, as appropriate, and added to
+      the selected Activity or Fragment subclass.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_config-for-native.dita b/src/help/studio_help/src/topics/t_config-for-native.dita
new file mode 100644
index 0000000..237c4ff
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_config-for-native.dita
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_config-for-native">

+  <title>Configuring your development environment for native development</title>

+  <shortdesc>After installing the Android NDK and a few other needed components, Eclipse can be configured to let you

+    develop Android applications that include native (C/C++) code.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <prereq>Native support requires that the following be installed:<ul>

+        <li>The Eclipse CDT plugin (version 7 or later)</li>

+        <li>The Sequoyah Android feature</li>

+        <li>Android NDK</li>

+        <li>Cygwin (only on systems running Microsoft Windows)</li>

+        <li>The Java JDK (the JRE is not sufficient; you need the full JDK)</li>

+      </ul><p>Your development computer's system path (not the Eclipse path) should include the directory containing the

+        Android NDK, and, on Microsoft Windows, the directory containing the Cygwin binaries.</p><p>For instructions on

+        locating and installing the above components, and on setting your computer's system path, see the <i>MOTODEV

+          Studio for Android Installation Guide</i>.</p></prereq>

+    <context/>

+    <steps>

+      <step>

+        <cmd>Specify the location of the NDK from within your development environment: navigate to the <menucascade

+              ><uicontrol>Android</uicontrol><uicontrol>Android NDK</uicontrol></menucascade> preferences page and

+          specify the path to the directory containing the NDK using the <uicontrol>NDK Location</uicontrol>

+        field.</cmd>

+      </step>

+    </steps>

+    <postreq>Now that you have configured your development environment to enable native development, enable it in those

+      Android projects that have (or will have) native code.</postreq>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_content-provider-creating.dita b/src/help/studio_help/src/topics/t_content-provider-creating.dita
new file mode 100644
index 0000000..4d45430
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_content-provider-creating.dita
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_content-provider-creating">

+  <title>Adding a content provider</title>

+  <shortdesc>Allows you to easily add a new content provider, with empty implementations of many commonly-used methods,

+    to an existing Android project. A content provider allows other applications and services to access your

+    application's data, and can be used to expose your application's tables as live folders.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context/>

+    <steps>

+      <step>

+        <cmd>In the Package Explorer, right-click the project to which the activity should be added and select

+            <menucascade><uicontrol>New</uicontrol><uicontrol>Android Content Provider</uicontrol></menucascade>.</cmd>

+      </step>

+      <step>

+        <cmd>Specify a name for your new ContentProvider subclass in <uicontrol>Name</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>By default the new provider will not have a label of its own; the application's label will be used to

+          represent the content being exposed. If you want a specific label for this content provider, clear the

+            <uicontrol>Default</uicontrol> option (next to the <uicontrol>Label</uicontrol> field) and then enter your

+          preferred user-readable label.</cmd>

+      </step>

+      <step>

+        <cmd>If this content provider uses device capabilities for which the user must grant permission, specify them in

+          the <uicontrol>Permission</uicontrol> area. These permissions will be added to the appropriate place in your

+          application's manifest file. To specify a permission, click <uicontrol>Add</uicontrol>, select the needed

+          permission, and click <uicontrol>OK</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>Content providers typically use a URI containing the name of their ContentProvider subclass to identify the

+          data being exposed by the provider. The <uicontrol>Use default authority</uicontrol> option, which is selected

+          by default, causes the New Android Content Provider wizard to do this for you. If you wish to specify a

+          different URI, or if you wish to specify additional URIs for this content provider, for each click <uicontrol

+            >Add</uicontrol> (next to <uicontrol>Authorities</uicontrol>) and enter the desired URI.</cmd>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>

+      </step>

+    </steps>

+    <result>The content provider is created and added to the selected project. It is also opened in an editor

+    view.</result>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_db-about.dita b/src/help/studio_help/src/topics/t_db-about.dita
new file mode 100644
index 0000000..64b38ac
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_db-about.dita
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_db-about" xml:lang="en-us">
+  <title>Exploring and manipulating Android databases</title>
+  <shortdesc>The MOTODEV Database Explorer perspective allows you to create and delete SQLite databases and database
+    tables, view and edit database table content, and import and export database table contents, all on a connected
+    developer handset or emulated device, within an Android project, or anywhere else accessible to your development
+    computer (such as on an SD card within a connected handset that is currently mounted for USB access). Note that for
+    security reasons you can only work with emulated devices or Android devices intended for development; you cannot
+    view or modify database contents on a production Android handset.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <context>
+      <p>The MOTODEV Database Explorer view lists the following:</p>
+      <dl>
+        <dlentry>
+          <dt>Connected devices and running emulators</dt>
+          <dd>These are listed first in the MOTODEV Database Explorer view. Note that all Android AVDs are listed, not
+            just those that are running (AVDs listed with a disclosure triangle to the left of them are running; those
+            without a disclosure triangle are not runing). Connected devices are listed, but once they are disconnected
+            they are removed from the list. If the connected device or running emulator contains an SD card, disclosing
+            the device's applications also lists "External Storage"; you can map the databases on the device's SD card
+            for browsing or editing without having to mount the SD card for USB access. Note that non-development
+            handsets do not provide access to their databases. </dd>
+        </dlentry>
+        <dlentry>
+          <dt>Projects in your current workspace</dt>
+          <dd>Within the entry labeled "Workspace" are all of the Android projects found within your current workspace.
+            Those listed with a disclosure triangle to the left contain a database. Those without a disclosure triangle
+            do not currently contain a database (although you can add one).</dd>
+        </dlentry>
+        <dlentry>
+          <dt>Databases outside your current workspace that you have mapped</dt>
+          <dd>The "Filesystem" grouping in the MOTODEV Database Explorer view lists additional SQLite databases that you
+            have "mapped" into the view. This allows you to work with databases that are outside of your current
+            workspace. In particular, you can connect an Android handset to your development computer, mount its SD card
+            for USB access, and then map any databases on that SD card. You can then browse and edit those databases as
+            you would any other.</dd>
+        </dlentry>
+      </dl>
+    </context>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_db-classes-create.dita b/src/help/studio_help/src/topics/t_db-classes-create.dita
new file mode 100644
index 0000000..d9c1447
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_db-classes-create.dita
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_db-classes-create" xml:lang="en-us">
+  <title>Creating database management classes</title>
+  <shortdesc>Creates classes you can use to manage and access your application's database: content providers for each of
+    the database's tables, and a SQL open helper that can create and if desired initialize your database at runtime.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>This feature creates classes based upon the schema of an existing database. Accordingly, the database for
+      which you want to create classes must already exist. Note that the tables need to have the desired structure, but
+      need not have any content.</prereq>
+    <steps>
+      <step>
+        <cmd>In the Package Explorer right-click the project into which the database management classes are to be added
+          and select <menucascade>
+            <uicontrol>MOTODEV Studio</uicontrol><uicontrol>Create Database Management Classes</uicontrol>
+          </menucascade>.</cmd>
+        <stepresult>The Database Management Classes dialog appears, with various fields specific to your project filled
+          in.</stepresult>
+      </step>
+      <step>
+        <cmd>Using the <uicontrol>Database File</uicontrol> field, specify the location of the database from which the
+          classes are to be generated.</cmd>
+        <choices>
+          <choice>If the database is already part of your project click <uicontrol>Workspace</uicontrol> and select your
+            project's database.</choice>
+          <choice>If the database is not part of your project, click <uicontrol>Filesystem</uicontrol> and specify the
+            database to be used. Note that if you select this option the database will be copied into the appropriate
+            location within your project.</choice>
+        </choices>
+      </step>
+      <step>
+        <cmd>An SQL Open Helper class ensures at runtime that there is a copy of your database in your application's
+            <filepath>/data/data/</filepath> directory, from where it can be accessed by your application; it is
+          particularly useful if you want your app to launch with a preinitialized database. If you would like to have a
+          SQL Open Helper class generated for your database, ensure that <uicontrol>Generate SQL Open Helper</uicontrol>
+          is selected and specify a name for the helper class in the <uicontrol>Name</uicontrol> field. Also indicate
+          the source folder into which the generated class is to be written using the <uicontrol>Source
+          folder</uicontrol> field, and the package of which the class is to be a member using the <uicontrol
+          >Package</uicontrol> field. If you do not want an SQL Open Helper, clear the <uicontrol>Generate SQL Open
+            Helper</uicontrol> option.</cmd>
+      </step>
+      <step>
+        <cmd>To generate content providers for each of your database's tables, ensure that <uicontrol>Generate content
+            providers for each table</uicontrol> is selected. Specify the source folder into which the generated classes
+          are to be written using the <uicontrol>Source Folder</uicontrol> field, and the package of which the classes
+          are to be a member using the <uicontrol>Package</uicontrol> field. Each generated content provider class will
+          be named for the table from which it was generated; the class name will have the form <i>table_name</i><codeph
+            >ContentProvider</codeph>. If the generated source file names conflict with existing files within the
+          specified source folder, the existing files will be overwritten unless you clear the <uicontrol>Overwrite if
+            it already exists</uicontrol> option.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>
+      </step>
+    </steps>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_db-connecting.dita b/src/help/studio_help/src/topics/t_db-connecting.dita
new file mode 100644
index 0000000..cde8eb7
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_db-connecting.dita
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_db-connecting" xml:lang="en-us">
+  <title>Connecting to a database</title>
+  <shortdesc>Before you can work with the contents of a database, you must connect to it.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody><prereq>You perform this task from within the MOTODEV Database Explorer view. This view is part of the
+      MOTODEV Database perspective; switch to this perspective when working with Android databases.</prereq><steps>
+      <step>
+        <cmd>Locate the database within the MOTODEV Database Explorer view.</cmd>
+        <choices>
+          <choice>If the database is within an app on a connected handset or a running emulator, click the disclosure
+            triangle to the left of the device or emulator to see all of the applications with databases. Click the
+            disclosure triangle next to the application that controls the database you wish to work with.</choice>
+          <choice>If the database is on an SD card on a connected handset or a running emulator, and the SD card is not
+            mounted for USB access, click the disclosure triangle to the left of the device or emulator. At the top of
+            the list of applications is an entry for <uicontrol>External Storage</uicontrol>; right-click it and select
+              <uicontrol>Map Database</uicontrol>. In the dialog that appears, enter the path to the database. Note that
+            although you can browse and edit the contents of a mapped database, you cannot delete it.</choice>
+          <choice>If the database is part of a project in your current workspace, click the disclosure triangle next to
+            the word "Workspace" to expose all of the projects in your workspace. Then, click the disclosure triangle
+            next to the project that contains the database you wish to work with.</choice>
+          <choice>If the database is somewhere else accessible to your development computer (for instance, if it is on
+            an SD card within a connected device that is mounted for USB access), right-click the "Filesystem" entry in
+            the MOTODEV Database Explorer view and select <uicontrol>Map Database</uicontrol>. Using the dialog that
+            appears, browse to the desired SQLite database and click <uicontrol>Open</uicontrol>. Note that although you
+            can browse and edit the contents of a mapped database, you cannot delete it.</choice>
+        </choices>
+      </step>
+      <step>
+        <cmd>Double-click the grey database icon (<image href="../images/db-icon.png"/>) to connect it. When it is
+          connected, a copy of the database is transferred from the target device to your computer's Temp directory and
+          displayed as a node in the MOTODEV Database Explorer view.</cmd>
+        <info>
+          <note type="important">Changes made to a database with the MOTODEV Studio Table Editor are made to the local
+            copy in your Temp directory. MOTODEV Studio normally will keep the local database and the version on the
+            connected device or emulator in sync. If necessary you can manually synchronize the two either by
+            right-clicking the database file and selecting <uicontrol>Refresh</uicontrol> or selecting the database file
+            and pressing F5. Note that MOTODEV Studio does not perform a true synchronization operation; if the database
+            has changed on the device since you connected to it, you cannot merge your changes with the device database.
+            Instead, you either must override the device database with your Temp copy or abandon your changes.</note>
+        </info>
+      </step>
+    </steps><example>The following shows how the "alarms" database within the MOTODEV Database Explorer view looks when
+      it is disconnected and when it is connected. <image href="../images/db-connected-states.png" placement="break"
+    /></example></taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_db-creating.dita b/src/help/studio_help/src/topics/t_db-creating.dita
new file mode 100644
index 0000000..8c214ad
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_db-creating.dita
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_db-creating" xml:lang="en-us">
+  <title>Creating a database</title>
+  <shortdesc>From the MOTODEV Database Explorer view you can create new databases on a device or within an Android
+    project in your workspace.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>You perform this task from within the MOTODEV Database Explorer view. This view is part of the MOTODEV
+      Database perspective; switch to this perspective when working with Android databases.</prereq>
+    <steps>
+      <step>
+        <cmd>In the MOTODEV Database Explorer view, right-click the app (under Workspace) or the APK on a connected
+          device or running emulator in which the database is to be created and select <uicontrol>Create
+          Database</uicontrol>.</cmd>
+        <info>
+          <note>The <uicontrol>Duplicate</uicontrol> command is not supported by MOTODEV Studio for Android, and cannot
+            be used to "clone" an existing database.</note>
+        </info>
+        <stepresult>You are prompted for a name for the new database.</stepresult>
+      </step>
+      <step>
+        <cmd>In the Database Name dialog, enter the name for your new database and click <uicontrol>OK</uicontrol>.</cmd>
+        <stepresult>The SQLite database is created. If you created it for a project in your current workspace, the
+          database file is created in the project's <filepath>assets</filepath> folder.</stepresult>
+      </step>
+      <step>
+        <cmd>In the MOTODEV Explorer view double-click the app to expose its contents, then double-click the grey
+          database icon (<image href="../images/db-icon.png"/>) to connect the database. When it is connected, a copy of
+          the database is transferred from the target app or device to your computer's Temp directory and displayed as a
+          node in the MOTODEV Database Explorer view.</cmd>
+        <info>
+          <note type="important">Changes made to a database using the MOTODEV Studio Table Editor are made to the local
+            copy in your Temp directory. MOTODEV Studio normally will keep the local database and the version on the
+            connected device or emulator in sync. If necessary you can manually synchronize the two either by
+            right-clicking the database file and selecting <uicontrol>Refresh</uicontrol> or selecting the database file
+            and pressing F5. Note that MOTODEV Studio does not perform a true synchronization operation; if the database
+            has changed on the device since you connected to it, you cannot merge your changes with the device database.
+            Instead, you either must override the device database with your Temp copy or abandon your changes.</note>
+        </info>
+      </step>
+    </steps>
+    <postreq>After creating a new database, you will likely want to create one or more tables within that
+    database.</postreq>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_db-deleting.dita b/src/help/studio_help/src/topics/t_db-deleting.dita
new file mode 100644
index 0000000..5cca984
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_db-deleting.dita
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_db-deleting" xml:lang="en-us">
+  <title>Deleting a database</title>
+  <shortdesc>From the MOTODEV Database Explorer view you can delete device databases.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>You perform this task from within the MOTODEV Database Explorer view. This view is part of the MOTODEV
+      Database perspective; switch to this perspective when working with Android databases.</prereq>
+    <steps>
+      <step>
+        <cmd>In the MOTODEV Database Explorer view, right-click the database to be deleted and select <uicontrol
+          >Delete</uicontrol>.</cmd>
+        <stepresult>You are asked to confirm that you want to delete the database.</stepresult>
+      </step>
+      <step>
+        <cmd>In the Drop Database(s) dialog, click <uicontrol>Yes</uicontrol>.</cmd>
+      </step>
+    </steps>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_db-table-creating.dita b/src/help/studio_help/src/topics/t_db-table-creating.dita
new file mode 100644
index 0000000..757d7af
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_db-table-creating.dita
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_db-table-creating" xml:lang="en-us">
+  <title>Creating a database table</title>
+  <shortdesc>From the MOTODEV Database Explorer view you can create new tables within SQLite databases.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>You perform this task from within the MOTODEV Database Explorer view. This view is part of the MOTODEV
+      Database perspective; switch to this perspective when working with Android databases.</prereq>
+    <steps>
+      <step>
+        <cmd>Ensure that you are connected to the database.</cmd>
+      </step>
+      <step>
+        <cmd>Right-click the connected database file and select <uicontrol>Create Table</uicontrol> from the menu that
+          appears.</cmd>
+        <stepresult>The Create New Table dialog appears.</stepresult>
+      </step>
+      <step>
+        <cmd>Supply a name for the new table using the <uicontrol>Table Name</uicontrol> field.</cmd>
+      </step>
+      <step>
+        <cmd>Add columns to your table (you must create at least one). For each:</cmd>
+        <substeps>
+          <substep>
+            <cmd>Click <uicontrol>Add</uicontrol>.</cmd>
+            <stepresult>The Add/Edit Field dialog appears</stepresult>
+          </substep>
+          <substep>
+            <cmd>Supply a name for the table column using the <uicontrol>Name</uicontrol> field.</cmd>
+          </substep>
+          <substep>
+            <cmd>If the column will contain a primary key, select <uicontrol>Primary key</uicontrol> and specify any
+              automatic key behavior. </cmd>
+          </substep>
+          <substep>
+            <cmd>Ensure that the column type is correct. If necessary, select a different type.</cmd>
+          </substep>
+          <substep>
+            <cmd>If the table column should have a default value, specify it using the <uicontrol>Default
+              Value</uicontrol> field.</cmd>
+          </substep>
+        </substeps>
+      </step>
+      <step>
+        <cmd>Once you have specified all of the needed table columns, click <uicontrol>Finish</uicontrol> in the Create
+          New Table dialog.</cmd>
+      </step>
+    </steps>
+    <result> The table is created and added to the database. </result>
+    <postreq>
+      <note type="important">If you create the new table within a database on a connected device or running emulator,
+        you may need to refresh the database (press F5, or right-click the database and select <uicontrol
+        >Refresh</uicontrol>) in order for the change to be reflected on the device.</note>
+    </postreq>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_db-table-deleting.dita b/src/help/studio_help/src/topics/t_db-table-deleting.dita
new file mode 100644
index 0000000..2564e06
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_db-table-deleting.dita
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_db-table-deleting" xml:lang="en-us">
+  <title>Deleting a database table</title>
+  <shortdesc>From the MOTODEV Database Explorer view you can delete device database tables.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>You perform this task from within the MOTODEV Database Explorer view. This view is part of the MOTODEV
+      Database perspective; switch to this perspective when working with Android databases.</prereq>
+    <steps>
+      <step>
+        <cmd>In the MOTODEV Database Explorer view, right-click the database table to be deleted and select <uicontrol
+          >Delete Table</uicontrol>.</cmd>
+        <stepresult>The selected database table is immediately deleted.</stepresult>
+      </step>
+    </steps>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_db-table-editing.dita b/src/help/studio_help/src/topics/t_db-table-editing.dita
new file mode 100644
index 0000000..a90e8c5
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_db-table-editing.dita
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_db-table-editing" xml:lang="en-us">
+  <title>Exploring or editing a database table</title>
+  <shortdesc>MOTODEV Studio for Android lets you easily view and manipulate the contents of an SQLite database table in
+    spreadsheet form.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>You perform this task from within the MOTODEV Database Explorer view. This view is part of the MOTODEV
+      Database perspective; switch to this perspective when working with Android databases.</prereq>
+    <steps>
+      <step>
+        <cmd>Ensure that you are connected to the database.</cmd>
+      </step>
+      <step>
+        <cmd>Within the MOTODEV Database Explorer view, use the dislosure triangles to expose the tables within your
+          database.</cmd>
+        <stepxmp>The following image shows the tables that make up the "alarms" database:<image
+            href="../images/db-tables.png" placement="break"/></stepxmp>
+      </step>
+      <step>
+        <cmd>Right-click the table you want to edit or explore, and select <uicontrol>Browse table contents</uicontrol>.</cmd>
+        <stepresult>A view appears showing the table contents, with columns representing the fields in a record, and
+          rows representing the table records.</stepresult>
+      </step>
+      <step>
+        <cmd>To change the contents of a record, simply click within the cell to be changed and edit its contents. To
+          add a new row, simply enter the new row's data in the row marked <uicontrol>&lt;new row></uicontrol>. To
+          perform other operations, right-click to get a context-sensitive menu that will allow you to:</cmd>
+        <choices>
+          <choice>Set the current cell's value to NULL.</choice>
+          <choice>Insert a new row at the bottom of the table.</choice>
+          <choice>Delete the current row.</choice>
+          <choice>Refresh the table. This will load the table's contents from the local filesystem, potentially
+            overwriting any changes you have made. You will be given an opportunity to first save any changes you have
+            made. To reload data from the device you must disconnect and reconnect.</choice>
+          <choice>Revert to the last saved version of the table. This will also re-load the table's contents from the
+            local filesystem, overwriting any changes you have made. You are not given an opportunity to save any
+            changes first. To reload data from the device you must disconnect and reconnect.</choice>
+        </choices>
+      </step>
+      <step>
+        <cmd>If you have made any changes, save them by selecting <menucascade><uicontrol>File</uicontrol><uicontrol
+              >Save</uicontrol></menucascade>.</cmd>
+        <info>
+          <note type="important">Changes made to a database on a connected device or running emulator with the MOTODEV
+            Studio Table Editor are made to the local copy in your Temp directory. To have those changes reflected on
+            the device, you must save your changes (<menucascade><uicontrol>File</uicontrol><uicontrol
+            >Save</uicontrol></menucascade>). Note that if the database has changed on the device since you connected to
+            it, you cannot merge your changes with the device database; you either must override the device database
+            with your Temp copy or abandon your changes.</note>
+        </info>
+      </step>
+    </steps>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_device-creating_android.dita b/src/help/studio_help/src/topics/t_device-creating_android.dita
new file mode 100644
index 0000000..cfa739a
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_device-creating_android.dita
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_device-creating_android">

+  <title>Creating an Android Virtual Device (AVD)</title>

+  <shortdesc>Although MOTODEV Studio for Android recognizes Android Virtual Devices (AVDs) created from the command

+    line, it is much simpler to create them from within MOTODEV Studio for Android.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <steps>

+      <step>

+        <cmd>Click the <uicontrol>Device Management</uicontrol> tab, if necessary, to bring forward the Device

+          Management view.</cmd>

+      </step>

+      <step>

+        <cmd>Click the New Device button (<image href="../images/tml-new-instance.png"/>) and select <uicontrol>Android

+            Virtual Device</uicontrol>.</cmd>

+        <stepresult>The Create a New Device dialog appears.</stepresult>

+      </step>

+      <step>

+        <cmd>Supply a name for your device instance and click <uicontrol>Next</uicontrol>. </cmd>

+        <info>Note that this name must not be in use by an existing AVD listed in the Device Management view.</info>

+      </step>

+      <step>

+        <cmd>Verify or supply the information found on the Main tab: </cmd>

+        <substeps>

+          <substep>

+            <cmd><uicontrol>AVD Target</uicontrol>: the system image the AVD is to use.</cmd>

+          </substep>

+          <substep>

+            <cmd><uicontrol>AVD Skin</uicontrol>: the screen resolution and orientation. For instance, "HVGA-L" causes

+              the AVD to use an HVGA display (480x320 pixels) in landscape orientation. "QVGA-P" indicates a QVGA

+              display (320x240 pixels) in portrait orientation. </cmd>

+          </substep>

+          <substep>

+            <cmd><uicontrol>ABI Type</uicontrol>: Application Binary Interface (ABI) type. For all current

+              Android-powered devices, this should be "ARM (armeabi)".</cmd>

+          </substep>

+          <substep>

+            <cmd><uicontrol>AVD Path</uicontrol>: Use this field if you want to specify a non-default location for the

+              AVD directory that will be constructed for this virtual device. Leave <uicontrol>Use default</uicontrol>

+              selected if the default location is acceptable. Otherwise, clear the <uicontrol>Use default</uicontrol>

+              option and specify your desired directory location. </cmd>

+            <info>

+              <note>Storing your AVD on a remote location on a network file system will result in decreased performance.

+                For best results, store your AVDs on the local file system. Note that on Linux hosts your user home

+                folder may be on a remote file server; in such cases storing the AVD in your home folder will cause

+                performance to suffer.</note>

+            </info>

+          </substep>

+          <substep>

+            <cmd><uicontrol>SD Card</uicontrol>: Allows you to specify whether the emulated device has an emulated SD

+              card. Select <uicontrol>None</uicontrol> if you don't need or want the emulated device to have an SD card.

+              To use an existing SD card image (a .img file), select <uicontrol>Existing</uicontrol> and then specify

+              the path to the card image file. To create a new SD card, select <uicontrol>New</uicontrol>, enter a

+              numeric value in the field that follows, and specify the units for that value (KB or MB).</cmd>

+          </substep>

+          <substep>

+            <cmd><uicontrol>Proxy Settings</uicontrol>: Select this option if you want the emulated device to use the

+              same network settings that Eclipse is configured to use. If your network requires the use of a proxy, for

+              instance, and Eclipse is configured to use that proxy, selecting this option causes the emulated device to

+              use that same proxy for its network communications.</cmd>

+          </substep>

+          <substep>

+            <cmd><uicontrol>Snapshot Settings</uicontrol>: Enables the capture and use of a "snapshot"--a copy of the

+              emulator's memory--to speed the emulator startup process (subsequent to the first startup; the initial

+              startup will proceed at the normal speed, but after a snapshot has been taken subsequent startups can be

+              based on that snapshot, bypassing much of the startup process). <uicontrol>Enable Snapshot</uicontrol>

+              enables snapshots, and activates the other snapshot options. <uicontrol>Launch emulator from

+              snapshot</uicontrol> indicates that the most recent snapshot should be used whenever the emulator is

+              launched. <uicontrol>Save to snapshot on exit</uicontrol> takes a snapshot--and thus records the current

+              state of the emulator--whenever the emulator is shut down.</cmd>

+          </substep>

+          <substep>

+            <cmd><uicontrol>Internal Emulator Window</uicontrol> (not available on Mac OS X): Leave <uicontrol>Show the

+                Native Emulator Window within an Eclipse View (Recommended)</uicontrol> selected unless you know that

+              the native option does not work correctly on your development machine (in which case you should select

+                <uicontrol>Use VNC to show the Emulator within an Eclipse View</uicontrol>). Note that if necessary you

+              can later change this setting for an existing AVD by editing its properties.</cmd>

+          </substep>

+          <substep>

+            <cmd><uicontrol>Timeout (sec)</uicontrol>: Use this field to specify a timeout period after which, if the

+              emulator has not finished starting, the emulator should be shut down. Typically this is set to two minutes

+              (120 seconds).</cmd>

+          </substep>

+        </substeps>

+        <info>Note that when creating an AVD, the name, target, skin, and path values cannot later be changed.</info>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Finish</uicontrol> if you don't need to further customize the AVD. Otherwise, click

+            <uicontrol>Next</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>Specify any additional options using the <uicontrol>User Interface</uicontrol>, <uicontrol>Disk

+          Images</uicontrol>, <uicontrol>Network</uicontrol>, <uicontrol>System</uicontrol>, and <uicontrol

+          >Others</uicontrol> tabs. Note that only the more commonly-used AVD options are presented on these tabs; if

+          you need to specify additional options, enter them into the field on the <uicontrol>Others</uicontrol> tab,

+          command-line style.</cmd>

+        <info>

+          <p>For a description of each of the startup options displayed on the various tabs, see <xref

+              href="u_new-device-startup_android.dita"/>. For all of the possible command-line arguments, see <xref

+              href="http://d.android.com/guide/developing/tools/emulator.html#startup-options" format="html"

+              scope="external">http://d.android.com/guide/developing/tools/emulator.html#startup-options</xref>.</p>

+          <p>Except on Mac OS X, to work with the emulator in a separate window simply close the Android Emulator view

+            and click <uicontrol>No</uicontrol> when you are asked if running emulator instances should be stopped.

+            Opening the Android Emulator view while the emulator is running externally causes the emulator to be shown

+            in the view. On Mac OS X, things work somewhat differently: see <xref href="t_emulator-external.dita"/> for

+            instructions.</p>

+        </info>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Finish</uicontrol>. </cmd>

+      </step>

+    </steps>

+    <result>The AVD is created and listed under <uicontrol>Android Virtual Device</uicontrol> in the Device Management

+      view.</result>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_device-editing_android.dita b/src/help/studio_help/src/topics/t_device-editing_android.dita
new file mode 100644
index 0000000..3990c27
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_device-editing_android.dita
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_device-editing_android">

+  <title>Editing or deleting an Android Virtual Device (AVD)</title>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context>

+      <p>To delete an existing AVD, ensure that it is not running (select it in the Device Management view and click

+          <uicontrol>Stop</uicontrol> if necessary), then right-click it in the Device Management view and select

+          <uicontrol>Delete</uicontrol>.</p>

+      <p>To edit an existing AVD:</p>

+    </context>

+    <steps>

+      <step>

+        <cmd>Click the <uicontrol>Device Management</uicontrol> tab, if necessary, to bring forward the Device

+          Management view.</cmd>

+      </step>

+      <step>

+        <cmd>Right-click the AVD and select <uicontrol>Properties</uicontrol>.</cmd>

+        <stepresult>The Android Virtual Device properties dialog appears.</stepresult>

+      </step>

+      <step>

+        <cmd>To alter the timeout, click Android Virtual Device in the left part of the dialog, and then change the

+          timeout value in the field on the right.</cmd>

+        <info>Note that you cannot change the name, target, skin, or path for an existing AVD.</info>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Startup Options</uicontrol> on the left side of the dialog.</cmd>

+      </step>

+      <step>

+        <cmd>Alter the AVD's startup options using the <uicontrol>User Interface</uicontrol>, <uicontrol>Disk

+          Images</uicontrol>, <uicontrol>Network</uicontrol>, <uicontrol>System</uicontrol>, and <uicontrol

+          >Others</uicontrol> tabs. Note that only the more commonly-used AVD options are presented on these tabs; if

+          you need to specify additional options, enter them into the field on the <uicontrol>Others</uicontrol> tab,

+          command-line style.</cmd>

+        <info>

+          <p>For a description of each of the startup options displayed on the various tabs, see <xref

+              href="u_new-device-startup_android.dita"/>. For all of the possible command-line arguments, see <xref

+              href="http://d.android.com/guide/developing/tools/emulator.html#startup-options" format="html"

+              scope="external">http://d.android.com/guide/developing/tools/emulator.html#startup-options</xref>.</p>

+          <p>Except on Mac OS X, to work with the emulator in a separate window simply close the Android Emulator view

+            and click <uicontrol>No</uicontrol> when you are asked if running emulator instances should be stopped.

+            Opening the Android Emulator view while the emulator is running externally causes the emulator to be shown

+            in the view. On Mac OS X, things work somewhat differently: see <xref href="t_emulator-external.dita"/> for

+            instructions.</p>

+        </info>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>OK</uicontrol>. </cmd>

+      </step>

+    </steps>

+    <result>Your changes are saved and the dialog is closed.</result>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_device-screen-capturing.dita b/src/help/studio_help/src/topics/t_device-screen-capturing.dita
new file mode 100644
index 0000000..95356de
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_device-screen-capturing.dita
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_device-screen-capturing" xml:lang="en-us">
+  <title>Capturing the device screen</title>
+  <shortdesc>MOTODEV Studio allows you to easily capture an image of the screen on a real or emulated device.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>If capturing the screen on a physical device, that device must be connected to your development computer and
+      listed in MOTODEV Studio's Device Management view (under <uicontrol>Android Handset</uicontrol>). If capturing the
+      screen of an emulated device, the AVD must be running and listed in the Device Management view under <uicontrol
+        >Android Virtual Device</uicontrol>. </prereq>
+    <steps>
+      <step>
+        <cmd>Right-click the device in the Device Management view and select <uicontrol>Take Screenshot</uicontrol>.</cmd>
+        <stepresult>The Device Screen Capture dialog opens, showing the snapshot.</stepresult>
+      </step>
+      <step>
+        <cmd>To save the captured image as a PNG file, click <uicontrol>Save</uicontrol>. To copy the captured image to
+          your computer's clipboard, click <uicontrol>Copy</uicontrol>. </cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>Done</uicontrol> or simply close the Device Screen Capture dialog when done.</cmd>
+      </step>
+    </steps>
+    <postreq>To capture a different screen while the Device Screen Capture dialog is open, manipulate the device to
+      display the screen you want to capture, and then click <uicontrol>Refresh</uicontrol>. </postreq>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_device-starting_android.dita b/src/help/studio_help/src/topics/t_device-starting_android.dita
new file mode 100644
index 0000000..9824f24
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_device-starting_android.dita
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_device-starting_android">

+  <title>Starting, stopping, and resetting an Android Virtual Device (AVD)</title>

+  <shortdesc/>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <prereq>You must have an existing AVD, listed in the Device Management view. </prereq>

+    <steps>

+      <step>

+        <cmd>Click the <uicontrol>Device Management</uicontrol> tab, if necessary, to bring forward the Device

+          Management view.</cmd>

+      </step>

+      <step>

+        <cmd>Double-click an offline AVD to start it. Similarly, double-click an online AVD to stop it. Or, in the

+          Device Management view, right-click the AVD you wish to start, stop, or reset and select the desired operation

+          from the menu that appears. </cmd>

+        <info>Note that when starting or resetting an AVD, it must not already be running. Also note that if you launch one of your Android projects using a run configuration that targets an AVD, and

+          that AVD is not yet running, it will be started automatically for you.</info>

+      </step>

+    </steps><postreq>You can also start, stop, or reset multiple AVDs at one time by selecting the AVDs and clicking the appropriate command icon at the top of the Device Management View.</postreq>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_device-state-managing.dita b/src/help/studio_help/src/topics/t_device-state-managing.dita
new file mode 100644
index 0000000..0820928
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_device-state-managing.dita
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_device-state-managing">
+  <title>Managing device state</title>
+  <shortdesc>Issue Android Debug Bridge (adb) commands to manage the state of real or emulated devices.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>Switch to the Device Management view.</cmd>
+      </step>
+      <step>
+        <cmd>Right-click an Android handset or running AVD.</cmd>
+        <info>The AVD must be running; start if, if necessary.</info>
+      </step>
+      <step>
+        <cmd>From the menu that appears, select <uicontrol>ADB Shell</uicontrol>.</cmd>
+        <stepresult>The Console view is opened or brought forward, and an adb shell console for the selected device is
+          displayed. Use it to issue adb shell commands. </stepresult>
+      </step>
+    </steps>
+    <postreq>Note that you can switch the Console view between various consoles by clicking <image
+        href="../images/display-selected-console-button.png"/> (Display Selected Console).</postreq>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_emulator-controlling.dita b/src/help/studio_help/src/topics/t_emulator-controlling.dita
new file mode 100644
index 0000000..e8342be
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_emulator-controlling.dita
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_emulator-controlling">
+  <title>Controlling an emulated device</title>
+  <shortdesc>Opens a new Emulator Console connected to the selected AVD instance. You can use the Emulator Console to
+    simulate hardware events, simulate telephony events, and control various aspects of the emulated device.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>Switch to the Device Management view.</cmd>
+      </step>
+      <step>
+        <cmd>Right-click a running AVD.</cmd>
+        <info>The AVD must be running; start if, if necessary.</info>
+      </step>
+      <step>
+        <cmd>From the menu that appears, select <uicontrol>Console</uicontrol>.</cmd>
+        <stepresult>The Console view is opened or brought forward, and an Emulator Console connected to the selected
+          device is displayed. Use it to issue Emulator Console commands. </stepresult>
+      </step>
+    </steps>
+    <postreq>Note that you can switch the Console view between various consoles by clicking <image
+        href="../images/display-selected-console-button.png"/> (Display Selected Console).</postreq>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_emulator-external.dita b/src/help/studio_help/src/topics/t_emulator-external.dita
new file mode 100644
index 0000000..a4d837d
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_emulator-external.dita
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_emulator_external" xml:lang="en-us">
+  <title>Opening the emulator in an external window</title>
+  <shortdesc>MOTODEV Studio normally presents emulated devices in the Android Emulator view. If you prefer, though,
+    emulated devices can be displayed in a window external to MOTODEV Studio.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <context>
+      <p>By default, MOTODEV Studio for Android opens the device emulator in an Eclipse view. Except on Mac OS X, to
+        work with the emulator in a separate window simply close the Android Emulator view and click <uicontrol
+        >No</uicontrol> when you are asked if running emulator instances should be stopped. The reverse works as you
+        might expect: while the emulator is running externally if you open the Android Emulator view the emulator will
+        be shown in that view (rather than externally).</p>
+      <p>On Mac OS X, things work a bit differently. Here, each AVD has an associated property that controls whether or
+        not the emulator is shown externally. In addition, if the Android Emulator view is open, the emulator is shown
+        there. This means that you can show the emulator in a view, or externally, or in both places at once, or in
+        neither place. </p>
+      <p><b>The remainder of this document assumes that you are running Mac OS X.</b>
+      </p>
+      <p>AVDs are presented within the Android Emulator view by default. To specify that an AVD be opened externally at
+        the time you create it: click <uicontrol>Next</uicontrol> after filling out the dialog asking for the AVD target
+        and skin. In the dialog that follows (the one in which you set startup options for the AVD), on the <uicontrol
+          >Others</uicontrol> tab, remove the <uicontrol>-no-window</uicontrol> option.</p>
+      <p>To alter an existing AVD so that it opens externally:</p>
+    </context>
+    <steps>
+      <step>
+        <cmd>Right-click the AVD and select <uicontrol>Properties</uicontrol>.</cmd>
+        <stepresult>The Properties dialog appears.</stepresult>
+      </step>
+      <step>
+        <cmd>In the Properties dialog, select <menucascade><uicontrol>Android Virtual Device</uicontrol><uicontrol
+              >Startup Options</uicontrol></menucascade>.</cmd>
+      </step>
+      <step>
+        <cmd>In the Startup Options dialog, on the <uicontrol>Others</uicontrol> tab, clear the <uicontrol
+          >-no-window</uicontrol> option.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>OK</uicontrol> to save your changes and close the dialog</cmd>
+        <info>
+          <note type="important">If the AVD is running at the time you make this change, you will need to stop and
+            restart the AVD.</note>
+        </info>
+      </step>
+      <step>
+        <cmd>If you do not wish to also see the emulator presented in the Android Emulator view, close that view. </cmd>
+      </step>
+    </steps>
+    <postreq>Note that if the AVD has the <uicontrol>-no-window</uicontrol> option set and you elect not to have the
+      emulator presented within an Eclipse view, the AVD will not be displayed. Conversely, if you leave the <uicontrol
+        >-no-window</uicontrol> option set and you also specify that the emulator is to be displayed within an Eclipse
+      view, it will appear both within Eclipse and in a separate window. </postreq>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_emulator-language-changing.dita b/src/help/studio_help/src/topics/t_emulator-language-changing.dita
new file mode 100644
index 0000000..e288ae9
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_emulator-language-changing.dita
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_emulator-language-changing" xml:lang="en-us">
+  <title>Changing the emulator's operating language</title>
+  <shortdesc>From the Device Management view you can change the locale of a running emulator, and thus its operating
+    language.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <context>
+      <p>You have two options for changing the operating language of a running emulator: either use the <uicontrol
+          >Custom Locale</uicontrol> application (found on the Application tab of the emulated device), or change the
+        emulator settings using the appropriate adb commands. MOTODEV Studio for Android simplifies this latter
+        operation, allowing you to easily change the emulator's locale from the Device Management view. Note that the
+        emulator will be restarted if you choose this option.</p>
+    </context>
+    <steps>
+      <step>
+        <cmd>In the Device Management view, right-click the running emulator and select <uicontrol>Language</uicontrol>.</cmd>
+        <stepresult>The Emulator Language dialog appears.</stepresult>
+      </step>
+      <step>
+        <cmd>Specify the desired locale as a combination of language and country. For example, to configure the emulator
+          to appear as it would in England, select "English" as the language and "United Kingdom" as the country.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>MOTODEV Studio for Android issues the appropriate <codeph>setprop persist</codeph> adb shell commands, and
+      then restarts the emulator.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_emulator-view-closing.dita b/src/help/studio_help/src/topics/t_emulator-view-closing.dita
new file mode 100644
index 0000000..a5515b9
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_emulator-view-closing.dita
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_emulator-view-closing">

+  <title>Closing the Android Emulator view</title>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context>

+      <p>To close the Android Emulator view, click the white "X" in the view's tab. If the view was displaying at least

+        one running emulator, and no other view is still displaying that emulator, you will be asked if the running

+        Android emulator instances should be stopped as well. Click <uicontrol>Yes</uicontrol> if you want to stop all

+        of them. Click <uicontrol>No</uicontrol> to leave them all running. Note that emulators can continue to run even

+        though they aren't displayed in an Eclipse view or in an external window; simply re-open the Android Emulator

+        view to once again view and interact with the running emulators.</p>

+      <p>The Device Management view shows which emulators are currently running (the Status column displays "Online" for

+        each running emulator). You can stop individual emulators from this view, even if they are not displayed in the

+        Android Emulator view. Note that stopping all emulator instances does not cause the Android Emulator view to

+        close automatically.</p>

+    </context>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_emulator-view-manipulating.dita b/src/help/studio_help/src/topics/t_emulator-view-manipulating.dita
new file mode 100644
index 0000000..4b7ce86
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_emulator-view-manipulating.dita
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_emulator-view-manipulating">

+  <title>Interacting with the Android emulator</title>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <task id="t_select_running_emulator">

+    <title>Selecting a running emulator</title>

+    <shortdesc>All running emulators are displayed within the Android Emulator view. Tabs are used to identify the

+      emulators and select between them.</shortdesc>

+  </task>

+  <task id="t_emulator_image_size">

+    <title>Changing the image size</title>

+    <shortdesc>Within the Android Emulator view you can enlarge or shrink the size of the emulated handset or emulated

+      display currently being displayed.</shortdesc>

+    <taskbody>

+      <steps-unordered>

+        <step>

+          <cmd>To "zoom in" on the current image, click <image href="../images/emulator-zoom-in.png"/></cmd>

+        </step>

+        <step>

+          <cmd>To "zoom out" and show more of the current image, click <image href="../images/emulator-zoom-out.png"

+          /></cmd>

+        </step>

+        <step>

+          <cmd>To change the image to a specific size, click menu (<image href="../images/menu-button.png"/>), and then

+            select <uicontrol>Zoom</uicontrol>. From the menu that appears, select one of the relative sizes (25%, 50%,

+            75%, 100%), or <uicontrol>Fit to Window</uicontrol>, which sizes the image so that it fits completely within

+            the view.</cmd>

+        </step>

+      </steps-unordered>

+    </taskbody>

+  </task>

+  <task id="t_emulator_change_orientation">

+    <title>Changing the emulator orientation</title>

+    <shortdesc>Click the handset image (<image href="../images/emulator-switch-layout.png"/>) at the top of the view to

+      toggle the orientation of the emulated device that is currently visible between portrait and landscape. You can

+      also click the small black triangle next to the handset image and then select <uicontrol>portrait</uicontrol> or

+        <uicontrol>landscape</uicontrol>. Note that other running emulators are not affected.</shortdesc>

+  </task>

+  <task id="t_device_interact">

+    <title>Interacting with the emulated device</title>

+    <shortdesc>From within the Android Emulator view you can enter data, click device keys, and use your mouse to

+      simulate tapping on the screen. Many of the keys on your development computer's keyboard map to the emulated

+      device's keyboard, making it easy to enter textual data.</shortdesc>

+  </task>

+  <!--

+  <task id="t_emulator_change_locale">

+    <title>Changing the emulated device's locale</title>

+    <shortdesc>From the Device Management view, you can change the locale of an emulated device. This feature is

+      particularly useful when testing localized versions of your applications.</shortdesc>

+    <taskbody>

+      <steps>

+        <step>

+          <cmd>In the Device Management view, right-click the emulated device (it must be running) and select <uicontrol

+              >Language</uicontrol>.</cmd>

+          <stepresult>You will be prompted for a language and a country.</stepresult>

+        </step>

+        <step>

+          <cmd>Specify the language and country that constitute the desired locale.</cmd>

+          <stepresult>The emulated device restarts using the specified locale.</stepresult>

+        </step>

+      </steps>

+      <postreq>Note that you can change the emulated device's locale to any language/country combination, whether or not

+        the device has the specified locale installed. If the chosen locale is not installed the device defaults to

+        English, but within your application your localized strings.xml file is used.</postreq>

+    </taskbody>

+  </task>

+-->

+</task>

diff --git a/src/help/studio_help/src/topics/t_emulator-view-opening.dita b/src/help/studio_help/src/topics/t_emulator-view-opening.dita
new file mode 100644
index 0000000..b805178
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_emulator-view-opening.dita
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_emulator-view-opening">

+  <title>Opening the Android Emulator view</title>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context>

+      <p>MOTODEV Studio for Android can open the Android Emulator view for you whenever you start an AVD from the Device

+        Management view or whenever you launch one of the run configurations that targets an AVD (which automatically

+        starts the AVD, which can open the Android Emulator view). At the point where MOTODEV Studio for Android

+        determines that you might want the Android Emulator view opened, it prompts you. If you say "no", the view is

+        not opened: instead the emulator launches and runs in an external window.</p>

+      <p>To explicitly open the Android Emulator view:</p>

+    </context>

+    <steps>

+      <step>

+        <cmd>Select <menucascade><uicontrol>Show View</uicontrol><uicontrol>Other</uicontrol></menucascade> from the

+            <uicontrol>Window</uicontrol> menu. (If <uicontrol>Android Emulator</uicontrol> is listed under <uicontrol

+            >Show View</uicontrol>, select that; the Android Emulator view will open directly.)</cmd>

+        <stepresult>The Show View dialog appears.</stepresult>

+      </step>

+      <step>

+        <cmd>Select <menucascade>

+            <uicontrol>MOTODEV Studio for Android</uicontrol><uicontrol>Android Emulator</uicontrol>

+          </menucascade>.</cmd>

+      </step>

+    </steps>

+    <result>The Android Emulator view appears. Any AVDs running in the background will be displayed in this view. If no

+      AVDs are running, it will be empty.</result>

+    <postreq>

+      <p>Using this view you can interact with the emulated device. You can enlarge or shrink the handset image or

+        switch between portrait and landscape orientation using the controls at the top of the view.</p>

+      <p>Except on Mac OS X, to work with the emulator in a separate window simply close the Android Emulator view and

+        click <uicontrol>No</uicontrol> when you are asked if running emulator instances should be stopped. Opening the

+        Android Emulator view while the emulator is running externally causes the emulator to be shown in the view. On

+        Mac OS X, things work somewhat differently: see <xref href="t_emulator-external.dita"/> for instructions.</p>

+    </postreq>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_keystore-backup-restore.dita b/src/help/studio_help/src/topics/t_keystore-backup-restore.dita
new file mode 100644
index 0000000..8da0449
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_keystore-backup-restore.dita
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_keystore-backup-restore" xml:lang="en-us">
+  <title>Restoring keystores from a backup</title>
+  <shortdesc>Because updates to an Android package (APK) must be signed with the same key as the original APK was signed
+    with, it is extremely important that you keep a copy of all of your signing keys. The Signing and Keys view provides
+    a simple mechanism to back up and then restore one or more keystores to a zip archive file.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>In the Signing and Keys view toolbar, click <image href="../images/KeystoresRestore.png"/> (Restore From
+          Backup).</cmd>
+        <stepresult>The Restore From Backup dialog is displayed.</stepresult>
+      </step>
+      <step>
+        <cmd>Specify the archive containing the backed-up keystore files using the <uicontrol>Backup File</uicontrol>
+          field.</cmd>
+      </step>
+      <step>
+        <cmd>In the <uicontrol>Destination</uicontrol> field, indicate the directory to which the backed-up keystores
+          should be restored.</cmd>
+      </step>
+      <step>
+        <cmd>The keystores contained in the specified archive are listed under <uicontrol>Keystores</uicontrol>. Select
+          the keystores to be restored.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>OK</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>The specified keystores are restored from the archive file and copied to the indicated destination
+      directory. They are also added to the Signing and Keys view so that you can use their entries (keys) to sign your
+      Android packages.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_keystore-backup.dita b/src/help/studio_help/src/topics/t_keystore-backup.dita
new file mode 100644
index 0000000..8acb175
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_keystore-backup.dita
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_keystore-backup" xml:lang="en-us">
+  <title>Backing up keystores</title>
+  <shortdesc>Because updates to an Android package (APK) must be signed with the same key as the original APK was signed
+    with, it is extremely important that you keep a copy of all of your signing keys. The Signing and Keys view provides
+    a simple mechanism to back up and then restore one or more keystores to a zip archive file.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>In the Signing and Keys view toolbar, click <image href="../images/KeystoresBackup.png"/> (Back Up
+          Keystores).</cmd>
+        <stepresult>The Keystores Backup dialog is displayed.</stepresult>
+      </step>
+      <step>
+        <cmd>Using the Path field, specify the path to and name of the archive (zip) file to be created. Note that if
+          you select an existing file, that file will be overwritten. Otherwise, the specified file will be created for
+          you.</cmd>
+      </step>
+      <step>
+        <cmd>From the list of keystores, select those keystores to be backed up.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>OK</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>The archive file will be created (if the specified file already exists, you will first be asked whether it
+      is OK to overwrite the existing file), containing the specified keystores.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_keystore-creating.dita b/src/help/studio_help/src/topics/t_keystore-creating.dita
new file mode 100644
index 0000000..467202c
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_keystore-creating.dita
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_keystore-creating" xml:lang="en-us">
+  <title>Creating a keystore</title>
+  <shortdesc>Keys must be contained within a keystore. Keystores are easy to create from within the Signing and Keys
+    view.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+           <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+
+      <step>
+        <cmd>In the Signing and Keys toolbar, click <image href="../images/KeystoreCreate.png"/> (Create
+          Keystore).</cmd>
+        <stepresult>The Create Keystore dialog is displayed.</stepresult>
+      </step>
+      <step>
+        <cmd>Specify the name (including the path to the file) to be given to the keystore file using the
+            <uicontrol>Keystore Filename</uicontrol> field.</cmd>
+      </step>
+      <step>
+        <cmd>Choose a keystore type from the Keystore Type pull-down list. The available choices are: JKS (the standard
+          Java keystore), JCEKS (a Java keystore that provides much stronger protection of private keys), or PKCS12 (a
+          file format defined as part of the Public-Key Cryptography Standards [PKCS] that can be created and
+          interpreted using the OpenSSL pkcs12 command).</cmd>
+      </step>
+      <step>
+        <cmd>By default, the chosen keystore type is added to the keystore filename you specified as an extension. Clear
+          this option if you don't want this extension to be automatically added.</cmd>
+      </step>
+      <step>
+        <cmd>Provide a password to be used to protect the keystore using the <uicontrol>Keystore Password</uicontrol>
+          and <uicontrol>Confirm Password</uicontrol> fields. You will be prompted to reenter this password whenever you
+          add keys to or alter keys within the keystore.</cmd>
+      </step>
+      <step>
+        <cmd>If you would like MOTODEV Studio to remember this keystore's password and automatically supply it whenever
+          it is needed, select <uicontrol>Save this password</uicontrol>.</cmd>
+      </step>
+      <step>
+        <cmd>Create the keystore. </cmd>
+        <choices>
+          <choice>Click <uicontrol>Finish</uicontrol> to create a new, empty keystore.</choice>
+          <choice>Click <uicontrol>Next</uicontrol> if you would like to create the keystore and create a new key within
+            that keystore. You will then be presented with a dialog asking for the characteristics of that new key;
+            follow the instructions under <xref href="t_cert-key-generating.dita">Creating a key</xref>.</choice>
+        </choices>
+      </step>
+    </steps>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_keystore-deleting.dita b/src/help/studio_help/src/topics/t_keystore-deleting.dita
new file mode 100644
index 0000000..bcf4fd1
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_keystore-deleting.dita
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_keystore-deleting" xml:lang="en-us">
+  <title>Deleting a keystore</title>
+  <shortdesc>Easily delete keystores that you no longer need from within the Signing and Keys view.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <prereq>Deleting a keystore deletes all of the keys within that keystore as well. Before deleting any keystore,
+      examine the keystore's contents to make sure that the keys are no longer needed. To be safe, you may want to back
+      up the keystore before deleting it.<note>When submitting an Android application update to Google Play, the update
+          <i>must</i> be signed using the exact same key that was used to sign the original application. Be sure to keep
+        copies of all keys you have used to sign apps submitted to Google Play.</note></prereq>
+    <steps>
+           <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+
+      <step>
+        <cmd>In the Signing and Keys toolbar, click <image href="../images/KeystoreDelete.png"/> (Delete
+          Keystore).</cmd>
+        <stepresult>The Delete Keystore dialog is displayed.</stepresult>
+      </step>
+      <step>
+        <cmd>If you want to delete the keystore file itself, select <uicontrol>Delete content on disk?</uicontrol>. If
+          you don't select this option, the keystore will be removed from the Signing and Keys view, but the keystore
+          file itself will not actually be deleted.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>Yes</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>The keystore is removed from the Signing and Keys view, and, if you selected the option, the keystore file
+      is deleted.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_keystore-entries-importing.dita b/src/help/studio_help/src/topics/t_keystore-entries-importing.dita
new file mode 100644
index 0000000..7ed3916
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_keystore-entries-importing.dita
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_keystore-entries-importing" xml:lang="en-us">
+  <title>Importing keystore entries</title>
+  <shortdesc>The Signing and Keys view makes it easy to copy keys from one keystore to another.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      
+      <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>From the list of keystores displayed in the Signing and Keys view, select the one into which the keys are
+          to be copied.</cmd>
+      </step>
+      <step>
+        <cmd>In the Signing and Keys toolbar, click <image href="../images/KeystoreEntriesImport.png"/> (Import
+          Entries).</cmd>
+        <stepresult>The Import Entries dialog is displayed.</stepresult>
+      </step>
+      <step>
+        <cmd>In the <uicontrol>Source Keystore</uicontrol> section of the dialog, select the keystore containing the
+          keys to be imported, and supply the keystore's password (if necessary; the password is filled in automatically
+          if you previously instructed MOTODEV Studio to save this keystore's password).</cmd>
+      </step>
+      <step>
+        <cmd>The keystore's entries should now be listed (if not, click <uicontrol>Load</uicontrol>). Select the entries
+          to be copied. You must select at least one key or you will see the message "There are no entries to
+          import".</cmd>
+      </step>
+      <step>
+        <cmd>For any selected keys that show "Not verified" in the <uicontrol>Verified</uicontrol> column, supply their
+          passwords in the <uicontrol>Password</uicontrol> column. "Not verified" indicates that the password is either
+          missing or incorrect. Note that if you previously instructed MOTODEV Studio to save the password for a given
+          key, that key's password is automatically filled in for you.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>OK</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>The selected keys are copied into the target keystore.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_keystore-importing.dita b/src/help/studio_help/src/topics/t_keystore-importing.dita
new file mode 100644
index 0000000..8e4f895
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_keystore-importing.dita
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_keystore-importing" xml:lang="en-us">
+  <title>Importing a keystore</title>
+  <shortdesc>A keystore created outside of MOTODEV Studio can be imported into the Signing and Keys view for use within that view.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+      <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>Click <image href="../images/KeystoreImport.png"/> (Import Keystore).</cmd>
+        <stepresult>The Import Keystore dialog is displayed.</stepresult>
+      </step>
+      <step>
+        <cmd>Using the <uicontrol>Keystore Filename</uicontrol> field, specify the keystore to be imported.</cmd>
+      </step>
+      <step>
+        <cmd>Specify the keystore file format using the <uicontrol>Keystore Type</uicontrol> pull-down list. Note that
+          the keystore being imported must be of one of the listed types.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>The specified keystore is imported and shown in the Signing and Keys view. You can now sign Android packages
+      using the keystore's keys. <note>Although you don't need to supply the keystore password as part of the import
+      process, you will need to do so when you attempt to display its contents in the Signing and Keys
+      view.</note></result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_keystore-password-changing.dita b/src/help/studio_help/src/topics/t_keystore-password-changing.dita
new file mode 100644
index 0000000..caca698
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_keystore-password-changing.dita
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_keystore-password-changing" xml:lang="en-us">
+  <title>Changing a keystore's password</title>
+  <shortdesc>The Signing and Keys view enables you to change the password used to protect a keystore.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+           <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>From the list of keystores displayed in the Signing and Keys view, select the keystore for which you want
+          to change the password.</cmd>
+      </step>
+
+      <step>
+        <cmd>Click <image href="../images/KeystorePasswordChange.png"/> (Change Keystore Password) in the Signing and
+          Keys toolbar.</cmd>
+        <stepresult>The Enter Password dialog is displayed.</stepresult>
+      </step>
+      <step>
+        <cmd>If necessary, supply the keystore's password in the <uicontrol>Old password</uicontrol> field provided.
+          Note that if you previously indicated that MOTODEV Studio should save this keystore's password, that password
+          is automatically filled in for you.</cmd>
+      </step>
+      <step>
+        <cmd>Enter the new password to be used to protect the keystore into the <uicontrol>New password</uicontrol> and
+            <uicontrol>Confirm new password fields</uicontrol>.</cmd>
+      </step>
+      <step>
+        <cmd>If you would like MOTODEV Studio to save this keystore's password and then automatically fill it in when it
+          is called for in the various Signing and Keys dialogs, select <uicontrol>Save this password</uicontrol>.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>OK</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>The keystore password is changed.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_keystore-type-changing.dita b/src/help/studio_help/src/topics/t_keystore-type-changing.dita
new file mode 100644
index 0000000..dda7f44
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_keystore-type-changing.dita
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task id="t_keystore-type-changing" xml:lang="en-us">
+  <title>Changing a keystore's type</title>
+  <shortdesc>The Signing and Keys view enables you to change the file format of a keystore file.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <steps>
+           <step>
+        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
+              <uicontrol>Window</uicontrol>
+              <uicontrol>Show View</uicontrol>
+              <uicontrol>Other</uicontrol>
+            </menucascade> and then selecting <menucascade>
+              <uicontrol>MOTODEV Studio</uicontrol>
+              <uicontrol>Signing and Keys</uicontrol>
+            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
+          perspective and is thus normally opened when you switch to that perspective.</cmd>
+      </step>
+      <step>
+        <cmd>From the list of keystores displayed in the Signing and Keys view, select the keystore for which you want
+          to change the type.</cmd>
+      </step>
+
+      <step>
+        <cmd>Click <image href="../images/KeystoreTypeChange.png"/> (Change Keystore Type) in the Signing and Keys
+          toolbar.</cmd>
+        <stepresult>The Change Keystore Type dialog is displayed.</stepresult>
+      </step>
+      <step>
+        <cmd>If necessary, supply the keystore's password in the field provided and then click
+            <uicontrol>Load</uicontrol> to display the keys contained in the keystore. Note that if you previously
+          indicated that MOTODEV Studio should save this keystore's password, that password is automatically filled in
+          for you.</cmd>
+      </step>
+      <step>
+        <cmd>Choose a new keystore type from the Keystore Type pull-down list. The available choices are: JKS (the
+          standard Java keystore), JCEKS (a Java keystore that provides much stronger protection of private keys), or
+          PKCS12 (a file format defined as part of the Public-Key Cryptography Standards [PKCS] that can be created and
+          interpreted using the OpenSSL pkcs12 command). Note that the keystore's current type is not included in the
+          pull-down list.</cmd>
+      </step>
+      <step>
+        <cmd>If any of the keys within the keystore do not have saved passwords (indicated by "Not verified" in the
+            <uicontrol>Entries</uicontrol> table), enter those passwords in the table's <uicontrol>Password</uicontrol>
+          column.</cmd>
+        <info>Note that you won't be able to change the keystore's type unless the keystore password and the password
+          for each of the keystore's entries are provided, either manually by you or automatically by MOTODEV
+          Studio.</info>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>OK</uicontrol>.</cmd>
+      </step>
+    </steps>
+    <result>The keystore file is reformatted as directed.</result>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_log-files-collecting.dita b/src/help/studio_help/src/topics/t_log-files-collecting.dita
new file mode 100644
index 0000000..a9cb94b
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_log-files-collecting.dita
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE task
+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
+<task xml:lang="en-us" id="t_log-files-collecting">
+  <title>Collecting log files</title>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <taskbody>
+    <context>
+      <p>MOTODEV Studio allows you to collect Eclipse and MOTODEV Studio log files and package them into a single ZIP
+        archive.</p>
+    </context>
+    <steps>
+      <step>
+        <cmd>Select <uicontrol>Collect Log Files</uicontrol> from the <ph product="javame-studio javame-sdk webui"
+              ><uicontrol>MOTODEV</uicontrol></ph><ph product="android-studio"><uicontrol>Help</uicontrol></ph> menu. </cmd>
+        <stepresult>The Collect Log Files dialog appears.</stepresult>
+      </step>
+      <step product="javame-studio javame-sdk webui">
+        <cmd>Using the <uicontrol>Directory</uicontrol> field, specify the directory into which the archive containing
+          the log files should be written.</cmd>
+        <info>By default, the log file is written to your home directory.</info>
+      </step>
+      <step product="javame-studio javame-sdk webui">
+        <cmd>In the <uicontrol>File Name</uicontrol> field, enter the name to be used for the archive file.</cmd>
+      </step>
+      <step product="android-studio">
+        <cmd>Using the <uicontrol>Output file</uicontrol> field, specify the path and filename for the archive file.
+          Because this is a ZIP archive, you may want to give the filename a <codeph>.zip</codeph> extension.</cmd>
+      </step>
+      <step>
+        <cmd>Select the log files that should be archived from those listed under <uicontrol>Log
+        Files</uicontrol>.</cmd>
+      </step>
+      <step>
+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>
+      </step>
+    </steps>
+  </taskbody>
+</task>
diff --git a/src/help/studio_help/src/topics/t_obfuscating.dita b/src/help/studio_help/src/topics/t_obfuscating.dita
new file mode 100644
index 0000000..f2c7295
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_obfuscating.dita
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_obfuscating">

+  <title>Obfuscating Android projects</title>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context>

+      <p>ADT uses ProGuard to shrink, optimize, and obfuscate your Java code. Obfuscation is intended to make your Java

+        code harder to reverse-engineer, and thus is a useful tool when writing code that needs to be secure. Android

+        projects are not obfuscated by default, but you can enable it at project creation time or after the fact. Note

+        that obfuscation is only performed when building a release version of your project: obfuscation gets in the way

+        of the debugging process and thus is not performed for debug builds.</p>

+      <ul>

+        <li>To specify at project creation time that a project should be obfuscated, simply select <uicontrol>Obfuscate

+            Java classes</uicontrol> in the New Android Project using Studio for Android dialog.</li>

+        <li>To enable obfuscation for a single project, right-click the project in the Package Explorer, select

+            <uicontrol>Properties</uicontrol>, select <uicontrol>MOTODEV Studio</uicontrol> from the list of properties,

+          and then select <uicontrol>Obfuscate Java classes</uicontrol>. Clear this option if you want to prevent

+          obfuscation of this project in future project builds.</li>

+        <li>To enable or disable obfuscation for multiple projects, select <uicontrol>Enable/Disable Obfuscation</uicontrol> from the MOTODEV menu. In the dialog that appears select those projects that should be

+          obfuscated (ensuring that any projects that should not be obfuscated are not selected), then click <uicontrol

+            >OK</uicontrol>. </li>

+      </ul>

+      <p>Whichever of the above you use to enable obfuscation, MOTODEV Studio for Android enables and configures

+        ProGuard for you. If needed you can then further customize it as outlined on the ProGuard page within the

+        Android developer documentation.</p>

+      <note>ProGuard requires that your development computer have a full JDK (Java Development Kit) installed; you

+        cannot obfuscate your Android projects with only a JRE (Java Runtime Environment). Also, ProGuard will not work

+        if the project's path contains spaces or parenthesis.</note>

+    </context>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_project-creating-widget_android.dita b/src/help/studio_help/src/topics/t_project-creating-widget_android.dita
new file mode 100644
index 0000000..3e75207
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_project-creating-widget_android.dita
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_project-creating-widget_android">

+  <title>Creating an Android widget project</title>

+  <shortdesc>The New Android Widget Project wizard allows you to quickly and easily create a new widget application for

+    an Android device.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context/>

+    <steps>

+      <step>

+        <cmd>Select <menucascade><uicontrol>File</uicontrol><uicontrol>New</uicontrol><uicontrol>Android Widget Project

+              using Studio for Android</uicontrol></menucascade>. </cmd>

+        <stepresult>The New Android Widget Project dialog appears with a number of default values filled

+        in.</stepresult>

+      </step>

+      <step>

+        <cmd>Specify a name for your new project in <uicontrol>Project name</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>If you want your project stored in a subdirectory (named with the project name) within default location

+          (usually the workspace root) leave <uicontrol>Use default location</uicontrol> selected. Otherwise: </cmd>

+        <substeps>

+          <substep>

+            <cmd>Clear <uicontrol>Use default location</uicontrol>.</cmd>

+          </substep>

+          <substep>

+            <cmd>Use the <uicontrol>Location</uicontrol> field to specify the directory in which the project

+              subdirectory should be created.</cmd>

+          </substep>

+        </substeps>

+      </step>

+      <step>

+        <cmd>Verify that the SDK target is correct for your widget application.</cmd>

+      </step>

+      <step>

+        <cmd>Using the <uicontrol>Application name</uicontrol> field, supply the name that should identify your widget

+          in the widgets list accessible from the Android home screen.</cmd>

+      </step>

+      <step>

+        <cmd>Verify the <uicontrol>Package name</uicontrol>, <uicontrol>Activity name</uicontrol>, and <uicontrol>Min

+            SDK version</uicontrol> fields. All are set to reasonable defaults by the new Android Widget Project wizard,

+          but all can be changed if needed for your particular application.</cmd>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>

+      </step>

+    </steps>

+    <result>You project is now created and added to those listed in the Project Explorer view. </result>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_project-creating_android.dita b/src/help/studio_help/src/topics/t_project-creating_android.dita
new file mode 100644
index 0000000..e55df60
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_project-creating_android.dita
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_project-creating_android">

+  <title>Creating a MOTODEV Studio for Android project</title>

+  <shortdesc>The New Android project wizard allows you to quickly and easily create a new application for an Android

+    device.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context/>

+    <steps>

+      <step>

+        <cmd>Select <menucascade><uicontrol>File</uicontrol><uicontrol>New</uicontrol><uicontrol>Android Project using

+              Studio for Android</uicontrol></menucascade>. </cmd>

+        <stepresult>The New Android Project dialog appears with a number of default values filled in.</stepresult>

+      </step>

+      <step>

+        <cmd>Specify a name for your new project in <uicontrol>Project name</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>By default the New Android Project wizard will create a very basic Android project with a single activity

+          that will serve as a starting point. If you would prefer to start from one of the sample applications included

+          with the Android SDK, select <uicontrol>Create new project using sample</uicontrol> (on the following dialog

+          you will be asked to select the sample application). Or, if you have an existing Android project outside of

+          your workspace that you want to open, select <uicontrol>Create project from existing source</uicontrol> and

+          then specify the path to the existing project using the <uicontrol>Location</uicontrol> field (note that in

+          this case the project already exists so there is no need to specify a location in which the project is to be

+          created; skip the next step).</cmd>

+      </step>

+      <step>

+        <cmd>If you want your project stored in a subdirectory (named with the project name) within default location

+          (usually the workspace root) leave <uicontrol>Use default location</uicontrol> selected. Otherwise: </cmd>

+        <substeps>

+          <substep>

+            <cmd>Clear <uicontrol>Use default location</uicontrol>.</cmd>

+          </substep>

+          <substep>

+            <cmd>Use the <uicontrol>Location</uicontrol> field to specify the directory in which the project

+              subdirectory should be created.</cmd>

+          </substep>

+        </substeps>

+        <info>Some features, such as obfuscation, will not work if the project's path contains spaces or

+        parenthesis.</info>

+      </step>

+      <step>

+        <cmd>Verify that the SDK target is correct for your application.</cmd>

+      </step>

+      <step>

+        <cmd>Using the <uicontrol>Application name</uicontrol> field, supply the name that your application should be

+          labeled with in the Android home screen.</cmd>

+      </step>

+      <step>

+        <cmd>Verify the <uicontrol>Package name</uicontrol>, <uicontrol>Activity name</uicontrol>, and <uicontrol>Min

+            SDK version</uicontrol> fields. All are set to reasonable defaults by the new Android Project wizard, but

+          all can be changed if needed for your particular application.</cmd>

+      </step>

+      <step>

+        <cmd>If the new Android project will contain native (C/C++) code in addition to Java, select <uicontrol>Add

+            native support</uicontrol>. Note that you will not be able to select this option unless you have properly

+          installed the Android NDK and configured MOTODEV Studio for Android for native development.</cmd>

+      </step>

+      <step>

+        <cmd>If your Java classes should be obfuscated when you create a release version of your app, select <uicontrol

+            >Obfuscate Java classes</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>If you elected to create a new project based upon an SDK sample, click <uicontrol>Next</uicontrol>, select

+          the sample, and then click <uicontrol>Finish</uicontrol>. Otherwise, just click <uicontrol

+        >Finish</uicontrol>.</cmd>

+      </step>

+    </steps>

+    <result>You project is now created and added to those listed in the Project Explorer view. </result>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/t_service-creating.dita b/src/help/studio_help/src/topics/t_service-creating.dita
new file mode 100644
index 0000000..16ac572
--- /dev/null
+++ b/src/help/studio_help/src/topics/t_service-creating.dita
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!DOCTYPE task

+  PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">

+<task xml:lang="en-us" id="t_service-creating">

+  <title>Adding an Android service</title>

+  <shortdesc>Allows you to easily add a new service to an existing Android project. A service allows you to perform

+    lengthy background operations or an API that can be called by other applications.</shortdesc>

+  <prolog>

+    <metadata>

+      <keywords>

+        <!--<indexterm></indexterm>-->

+      </keywords>

+    </metadata>

+  </prolog>

+  <taskbody>

+    <context/>

+    <steps>

+      <step>

+        <cmd>In the Package Explorer, right-click the project to which the service should be added and select

+            <menucascade><uicontrol>New</uicontrol><uicontrol>Android Service</uicontrol></menucascade>.</cmd>

+      </step>

+      <step>

+        <cmd>Specify a name for your new Service subclass in <uicontrol>Name</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>By default the new service will not have a label of its own; the application's label will be used when

+          necessary. If you want a specific label for this service, clear the <uicontrol>Default</uicontrol> option

+          (next to the <uicontrol>Label</uicontrol> field) and then enter your preferred user-readable label.</cmd>

+      </step>

+      <step>

+        <cmd>If this service uses device capabilities for which the user must grant permission, specify them in the

+            <uicontrol>Permission</uicontrol> area. These permissions will be added to the appropriate place in your

+          application's manifest file. To specify a permission, click <uicontrol>Add</uicontrol>, select the needed

+          permission, and click <uicontrol>OK</uicontrol>.</cmd>

+      </step>

+      <step>

+        <cmd>The New Android Service wizard will create the service with an empty onBind() method. If you will be

+          implementing onCreate() and/or onStart(), select the appropriate options to include empty versions of those

+          method as well.</cmd>

+      </step>

+      <step>

+        <cmd>Click <uicontrol>Finish</uicontrol>.</cmd>

+      </step>

+    </steps>

+    <result>The service is created and added to the selected project. It is also opened in an editor view.</result>

+  </taskbody>

+</task>

diff --git a/src/help/studio_help/src/topics/u_android-handset-properties.dita b/src/help/studio_help/src/topics/u_android-handset-properties.dita
new file mode 100644
index 0000000..6024381
--- /dev/null
+++ b/src/help/studio_help/src/topics/u_android-handset-properties.dita
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "../dtd/reference.dtd">
+<reference id="u_android-handset-properties" xml:lang="en-us">
+  <title>Android Handset Properties</title>
+  <shortdesc>Presents the basic properties of an Android handset, such as the device serial number, Android OS version, and API version.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <refbody><section>To view the properties of an Android handset connected to your development computer, right-click the entry for the handset in the Device Management view and select <uicontrol>Properties</uicontrol> from the menu that appears. For more detailed properties, select <menucascade><uicontrol>Android Handset Properties</uicontrol><uicontrol>Device Properties</uicontrol></menucascade> in the left pane of the Properties dialog.</section> </refbody>
+</reference>
diff --git a/src/help/studio_help/src/topics/u_app-signing-view.dita b/src/help/studio_help/src/topics/u_app-signing-view.dita
new file mode 100644
index 0000000..b6b95d4
--- /dev/null
+++ b/src/help/studio_help/src/topics/u_app-signing-view.dita
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "../dtd/reference.dtd">
+<reference id="u_app-signing-view" xml:lang="en-us">
+  <title>Signing And Keys view</title>
+  <shortdesc>The Signing and Keys view allows you to create and manage keys and keystores. From this view you can sign
+    or remove signatures from your application packages.</shortdesc>
+  <prolog>
+    <metadata>
+      <keywords>
+        <!--<indexterm></indexterm>-->
+      </keywords>
+    </metadata>
+  </prolog>
+  <refbody>
+    <section><p>The Signing and Keys view is part of the MOTODEV Studio for Android perspective. You can open it manually  by <ph
+          product="webui android-studio">selecting <menucascade>
+            <uicontrol>Window</uicontrol>
+            <uicontrol>Show View</uicontrol>
+            <uicontrol>Other</uicontrol>
+          </menucascade> and then selecting <menucascade>
+            <uicontrol product="webui">Studio for WebUI</uicontrol>
+            <uicontrol product="android-studio">MOTODEV Studio</uicontrol>
+            <uicontrol>Signing and Keys</uicontrol>
+          </menucascade> from the list of views.</ph></p></section>
+    <section>
+      <p>The Signing and Keys view lists the keys (within keystores) that you can use to sign your application packages.
+        In the upper-right corner of the view are a set of buttons that allow you to manipulate and use those keys and
+        keystores:</p>
+      <simpletable>
+        <strow product="android-studio">
+          <stentry><image href="../images/KeystoreRefresh.png"/></stentry>
+          <stentry>Refresh Keystore</stentry>
+          <stentry>Rereads the contents of the selected keystore and updates the Signing and Keys view
+            accordingly.</stentry>
+        </strow>
+        <strow>
+          <stentry><image href="../images/KeystoreCreate.png"/></stentry>
+          <stentry>Create Keystore</stentry>
+          <stentry>Creates a new keystore.</stentry>
+        </strow>
+        <strow product="android-studio">
+          <stentry><image href="../images/KeystoreDelete.png"/></stentry>
+          <stentry>Delete Keystore</stentry>
+          <stentry>Deletes the selected keystore.</stentry>
+        </strow>
+        <strow>
+          <stentry><image href="../images/KeystorePasswordChange.png"/></stentry>
+          <stentry>Change Keystore Password</stentry>
+          <stentry>Changes the password used to protect the selected keystore.</stentry>
+        </strow>
+        <strow>
+          <stentry><image href="../images/KeystoreTypeChange.png"/></stentry>
+          <stentry>Change Keystore Type</stentry>
+          <stentry>Changes the keystore type (to JKS, JCEKS, or PKCS12).</stentry>
+        </strow>
+        <strow>
+          <stentry><image href="../images/KeystoreImport.png"/></stentry>
+          <stentry>Import Keystore</stentry>
+          <stentry>Imports an existing keystore into the Signing and Keys view.</stentry>
+        </strow>
+        <strow product="android-studio">
+          <stentry><image href="../images/KeystoreEntriesImport.png"/></stentry>
+          <stentry>Import Entries</stentry>
+          <stentry>Imports one or more entries (keys) from one keystore into another.</stentry>
+        </strow>
+        <strow product="android-studio">
+          <stentry><image href="../images/KeystoresBackup.png"/></stentry>
+          <stentry>Backup Keystores</stentry>
+          <stentry>Backs up one or more keystores to a zip archive