resolved conflicts for merge of b7bad4f2 to honeycomb-plus-aosp

Change-Id: Ie672e1d34ca045127e2cf1fcb29dafb5ab998c37
diff --git a/NOTICE b/NOTICE
index 462d5ae..152be20 100644
--- a/NOTICE
+++ b/NOTICE
@@ -56,16 +56,6 @@
    =========================================================================
    ==  NOTICE file corresponding to the section 4 d of                    ==
    ==  the Apache License, Version 2.0,                                   ==
-   ==  in this case for Additional Codecs code.                           ==
-   =========================================================================
-
-Additional Codecs
-These files are Copyright 2003-2010 VisualOn, but released under
-the Apache2 License.
-
-   =========================================================================
-   ==  NOTICE file corresponding to the section 4 d of                    ==
-   ==  the Apache License, Version 2.0,                                   ==
    ==  in this case for the TagSoup code.                                 ==
    =========================================================================
 
@@ -82,6 +72,16 @@
 OF ANY KIND, either express or implied; not even the implied warranty
 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for Additional Codecs code.                           ==
+   =========================================================================
+
+Additional Codecs
+These files are Copyright 2003-2010 VisualOn, but released under
+the Apache2 License.
+
   =========================================================================
   ==  NOTICE file corresponding to the section 4 d of                    ==
   ==  the Apache License, Version 2.0,                                   ==
diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java
index da518c2..2d03e7c 100644
--- a/core/java/android/content/ContentResolver.java
+++ b/core/java/android/content/ContentResolver.java
@@ -1579,9 +1579,11 @@
 
         @Override
         protected void finalize() throws Throwable {
+            // TODO: integrate CloseGuard support.
             try {
                 if(!mCloseFlag) {
-                    ContentResolver.this.releaseProvider(mContentProvider);
+                    Log.w(TAG, "Cursor finalized without prior close()");
+                    close();
                 }
             } finally {
                 super.finalize();
diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java
index d30a0c6..f59d9cf 100644
--- a/core/java/android/nfc/NfcAdapter.java
+++ b/core/java/android/nfc/NfcAdapter.java
@@ -33,10 +33,11 @@
 import android.util.Log;
 
 /**
- * Represents the device's local NFC adapter.
+ * Represents the local NFC adapter.
  * <p>
  * Use the helper {@link #getDefaultAdapter(Context)} to get the default NFC
  * adapter for this Android device.
+ * <p>
  */
 public final class NfcAdapter {
     private static final String TAG = "NFC";
@@ -359,14 +360,13 @@
 
     /**
      * Return true if this NFC Adapter has any features enabled.
-     * <p>
-     * If this method returns false, then applications should request the user
-     * turn on NFC tag discovery in Settings.
-     * <p>
-     * If this method returns false, the NFC hardware is guaranteed not to
-     * perform or respond to any NFC communication.
      *
-     * @return true if this NFC Adapter is enabled to discover new tags
+     * <p>Application may use this as a helper to suggest that the user
+     * should turn on NFC in Settings.
+     * <p>If this method returns false, the NFC hardware is guaranteed not to
+     * generate or respond to any NFC transactions.
+     *
+     * @return true if this NFC Adapter has any features enabled
      */
     public boolean isEnabled() {
         try {
@@ -414,17 +414,24 @@
     }
 
     /**
-     * Enables foreground dispatching to the given Activity. This will force all NFC Intents that
-     * match the given filters to be delivered to the activity bypassing the standard dispatch
-     * mechanism. If no IntentFilters are given all the PendingIntent will be invoked for every
-     * dispatch Intent.
+     * Enable foreground dispatch to the given Activity.
      *
-     * This method must be called from the main thread.
+     * <p>This will give give priority to the foreground activity when
+     * dispatching a discovered {@link Tag} to an application.
+     *
+     * <p>Activities must call {@link #disableForegroundDispatch} in
+     * their {@link Activity#onPause} callback.
+     *
+     * <p>a null set of intent filters will cause the forground activity
+     * to receive all tags.
+     *
+     * <p>This method must be called from the main thread, and
+     * only when the activity is in the foreground (resumed).     *
      *
      * @param activity the Activity to dispatch to
      * @param intent the PendingIntent to start for the dispatch
      * @param filters the IntentFilters to override dispatching for, or null to always dispatch
-     * @throws IllegalStateException
+     * @throws IllegalStateException if the Activity is not currently in the foreground
      */
     public void enableForegroundDispatch(Activity activity, PendingIntent intent,
             IntentFilter[] filters, String[][] techLists) {
@@ -450,13 +457,16 @@
     }
 
     /**
-     * Disables foreground activity dispatching setup with
-     * {@link #enableForegroundDispatch}.
+     * Disable foreground dispatch to the given activity.
      *
-     * <p>This must be called before the Activity returns from
-     * it's <code>onPause()</code> or this method will throw an IllegalStateException.
+     * <p>After calling {@link #enableForegroundDispatch}, an activity
+     * must call this method before its {@link Activity#onPause} callback
+     * completes.
      *
      * <p>This method must be called from the main thread.
+     *
+     * @param activity the Activity to disable dispatch to
+     * @throws IllegalStateException if the Activity has already been paused
      */
     public void disableForegroundDispatch(Activity activity) {
         ActivityThread.currentActivityThread().unregisterOnActivityPausedListener(activity,
@@ -484,13 +494,22 @@
     }
 
     /**
-     * Enable NDEF message push over P2P while this Activity is in the foreground. For this to
-     * function properly the other NFC device being scanned must support the "com.android.npp"
-     * NDEF push protocol.
+     * Enable NDEF message push over P2P while this Activity is in the foreground.
+     *
+     * <p>For this to function properly the other NFC device being scanned must
+     * support the "com.android.npp" NDEF push protocol. Support for this
+     * protocol is currently optional for Android NFC devices.
+     *
+     * <p>This method must be called from the main thread.
      *
      * <p><em>NOTE</em> While foreground NDEF push is active standard tag dispatch is disabled.
      * Only the foreground activity may receive tag discovered dispatches via
      * {@link #enableForegroundDispatch}.
+     *
+     * @param activity the foreground Activity
+     * @param msg a NDEF Message to push over P2P
+     * @throws IllegalStateException if the Activity is not currently in the foreground
+     * @throws OperationNotSupportedException if this Android device does not support NDEF push
      */
     public void enableForegroundNdefPush(Activity activity, NdefMessage msg) {
         if (activity == null || msg == null) {
@@ -510,13 +529,17 @@
     }
 
     /**
-     * Disables foreground NDEF push setup with
-     * {@link #enableForegroundNdefPush}.
+     * Disable NDEF message push over P2P.
      *
-     * <p>This must be called before the Activity returns from
-     * it's <code>onPause()</code> or this method will throw an IllegalStateException.
+     * <p>After calling {@link #enableForegroundNdefPush}, an activity
+     * must call this method before its {@link Activity#onPause} callback
+     * completes.
      *
      * <p>This method must be called from the main thread.
+     *
+     * @param activity the Foreground activity
+     * @throws IllegalStateException if the Activity has already been paused
+     * @throws OperationNotSupportedException if this Android device does not support NDEF push
      */
     public void disableForegroundNdefPush(Activity activity) {
         ActivityThread.currentActivityThread().unregisterOnActivityPausedListener(activity,
diff --git a/core/java/android/nfc/NfcSecureElement.java b/core/java/android/nfc/NfcSecureElement.java
index ea2846e..3b5f39e 100755
--- a/core/java/android/nfc/NfcSecureElement.java
+++ b/core/java/android/nfc/NfcSecureElement.java
@@ -35,8 +35,8 @@
     private static final String TAG = "NfcSecureElement";
 
     private INfcSecureElement mService;
-    
-       
+
+
     /**
      * @hide
      */
@@ -68,7 +68,7 @@
 
 
     public byte [] exchangeAPDU(int handle,byte [] data) throws IOException {
-        
+
 
         // Perform exchange APDU
         try {
@@ -85,7 +85,7 @@
     }
 
     public void closeSecureElementConnection(int handle) throws IOException {
-         
+
         try {
             int status = mService.closeSecureElementConnection(handle);
             // Handle potential errors
@@ -96,14 +96,14 @@
             Log.e(TAG, "RemoteException in closeSecureElement(): ", e);
         }
     }
-    
-    
+
+
     /**
      * Returns target type. constants.
-     * 
+     *
      * @return Secure Element technology type. The possible values are defined in
      * {@link TagTechnology}
-     * 
+     *
      */
     public int[] getSecureElementTechList(int handle) throws IOException {
         try {
@@ -113,16 +113,16 @@
             return null;
         }
     }
-    
+
     /**
      * Returns Secure Element UID.
-     * 
+     *
      * @return Secure Element UID.
      */
     public byte[] getSecureElementUid(int handle) throws IOException {
-        
+
         byte[] uid = null;
-        try {            
+        try {
             uid = mService.getSecureElementUid(handle);
             // Handle potential errors
             if (uid == null) {
diff --git a/core/java/android/nfc/Tag.java b/core/java/android/nfc/Tag.java
index 45a3447..2305fb9 100644
--- a/core/java/android/nfc/Tag.java
+++ b/core/java/android/nfc/Tag.java
@@ -16,6 +16,7 @@
 
 package android.nfc;
 
+import android.content.Context;
 import android.nfc.tech.IsoDep;
 import android.nfc.tech.MifareClassic;
 import android.nfc.tech.MifareUltralight;
@@ -33,27 +34,69 @@
 import java.util.Arrays;
 
 /**
- * Represents a (generic) discovered tag.
+ * Represents an NFC tag that has been discovered.
  * <p>
- * A tag is a passive NFC element, such as NFC Forum Tag's, MIFARE class Tags,
- * Sony FeliCa Tags, etc.
- * <p>
- * Tag's have a type and usually have a UID.
- * <p>
- * {@link Tag} objects are passed to applications via the {@link NfcAdapter#EXTRA_TAG} extra
- * in {@link NfcAdapter#ACTION_TAG_DISCOVERED} intents. A {@link Tag} object is immutable
- * and represents the state of the tag at the time of discovery. It can be
- * directly queried for its UID and Type, or used to create a {@link TagTechnology} using the
- * static <code>get()</code> methods on the varios tech classes.
- * <p>
- * A {@link Tag} can  be used to create a {@link TagTechnology} only while the tag is in
- * range. If it is removed and then returned to range, then the most recent
- * {@link Tag} object (in {@link NfcAdapter#ACTION_TAG_DISCOVERED}) should be used to create a
- * {@link TagTechnology}.
- * <p>This is an immutable data class. All properties are set at Tag discovery
- * time and calls on this class will retrieve those read-only properties, and
- * not cause any further RF activity or block. Note however that arrays passed to and
+ * {@link Tag} is an immutable object that represents the state of a NFC tag at
+ * the time of discovery. It can be used as a handle to {@link TagTechnology} classes
+ * to perform advanced operations, or directly queried for its ID ({@link #getId} and the
+ * set of technologies it contains ({@link #getTechList}). Arrays passed to and
  * returned by this class are *not* cloned, so be careful not to modify them.
+ * <p>
+ * A new tag object is created every time a tag is discovered (comes into range), even
+ * if it is the same physical tag. If a tag is removed and then returned into range, then
+ * only the most recent tag object can be successfully used to create a {@link TagTechnology}.
+ *
+ * <h3>Tag Dispatch</h3>
+ * When a tag is discovered, a {@link Tag} object is created and passed to a
+ * single application via the {@link NfcAdapter#EXTRA_TAG} extra in a
+ * {@link Context#startActivity} {@link android.content.Intent}. A four stage dispatch is used to select the
+ * most appropriate application to handle the tag. The Android OS executes each stage in order,
+ * and completes dispatch as soon as a single matching application is found. If there are multiple
+ * matching applications found at any one stage then the Android Activity Chooser dialog is shown
+ * to allow the user to select the application.
+ * <h4>1. Foreground activity dispatch</h4>
+ * A foreground activity that has called {@link NfcAdapter#enableForegroundDispatch} is
+ * given priority. See the documentation on {#link NfcAdapter#enableForegroundDispatch} for
+ * its usage.
+ * <h4>2. NDEF data dispatch</h4>
+ * If the tag contains NDEF data, then {@link Context#startActivity} is called with
+ * {@link NfcAdapter#ACTION_NDEF_DISCOVERED} and a data URI determined from the
+ * first NDEF Record in the first NDEF Message in the Tag. This allows NDEF tags to be given
+ * priority dispatch to applications that can handle the content.
+ * See {@link NfcAdapter#ACTION_NDEF_DISCOVERED} for more detail. If the tag does not contain
+ * NDEF data, or if no application is registered
+ * for {@link NfcAdapter#ACTION_NDEF_DISCOVERED} with a matching data URI then dispatch moves
+ * to stage 3.
+ * <h4>3. Tag Technology dispatch</h4>
+ * {@link Context#startActivity} is called with {@link NfcAdapter#ACTION_TECH_DISCOVERED} to
+ * dispatch the tag to an application that can handle the technologies present on the tag.
+ * Technologies are defined as sub-classes of {@link TagTechnology}, see the package
+ * {@link android.nfc.tech}. The Android OS looks for an application that can handle one or
+ * more technologies in the tag. See {@link NfcAdapter#ACTION_TECH_DISCOVERED for more detail.
+ * <h4>4. Fall-back dispatch</h4>
+ * If no application has been matched, then {@link Context#startActivity} is called with
+ * {@link NfcAdapter#ACTION_TAG_DISCOVERED}. This is intended as a fall-back mechanism.
+ * See {@link NfcAdapter#ACTION_TAG_DISCOVERED}.
+ *
+ * <p>
+ * <i>The Tag dispatch mechanism was designed to give a high probability of dispatching
+ * a tag to the correct application without showing the user an Application Chooser dialog.
+ * This is important for NFC interactions because they are very transient - if a user has to
+ * move the Android device to choose an application then the connection is broken.</i>
+ *
+ * <h3>NFC Tag Background</h3>
+ * An NFC tag is a passive NFC device, powered by the NFC field of this Android device while
+ * it is in range. Tag's can come in many forms, such as stickers, cards, key fob, or
+ * even embedded in a more sophisticated device.
+ * <p>
+ * Tags can have a wide range of capabilities. Simple tags just offer read/write semantics,
+ * and contain some one time
+ * programmable areas to make read-only. More complex tags offer math operations
+ * and per-sector access control and authentication. The most sophisticated tags
+ * contain operating environments such as Javacard, allowing complex interactions with the
+ * applets executing on the tag. Use {@link TagTechnology} classes to access a broad
+ * range of capabilities available in NFC tags.
+ * <p>
  */
 public final class Tag implements Parcelable {
     /*package*/ final byte[] mId;
@@ -149,21 +192,35 @@
 
     /**
      * Get the Tag Identifier (if it has one).
-     * <p>Tag ID is usually a serial number for the tag.
-     *
-     * @return ID, or null if it does not exist
+     * <p>The tag identifier is a low level serial number, used for anti-collision
+     * and identification.
+     * <p> Most tags have a stable unique identifier
+     * (UID), but some tags will generate a random ID every time they are discovered
+     * (RID), and there are some tags with no ID at all (the byte array will be zero-sized).
+     * <p> The size and format of an ID is specific to the RF technology used by the tag.
+     * <p> This function retrieves the ID as determined at discovery time, and does not
+     * perform any further RF communication or block.
+     * @return ID as byte array, never null
      */
     public byte[] getId() {
         return mId;
     }
 
     /**
-     * Returns technologies present in the tag that this implementation understands,
-     * or a zero length array if there are no supported technologies on this tag.
-     *
-     * The elements of the list are the names of the classes implementing the technology. 
-     *
+     * Get the technologies available in this tag, as fully qualified class names.
+     * <p>
+     * A technology is an implementation of the {@link TagTechnology} interface,
+     * and can be instantiated by calling the static <code>get(Tag)</code>
+     * method on the implementation with this Tag. The {@link TagTechnology}
+     * object can then be used to perform advanced, technology-specific operations on a tag.
+     * <p>
+     * Android defines a mandatory set of technologies that must be correctly
+     * enumerated by all Android NFC devices, and an optional
+     * set of proprietary technologies.
+     * See {@link TagTechnology} for more details.
+     * <p>
      * The ordering of the returned array is undefined and should not be relied upon.
+     * @return an array of fully-qualified {@link TagTechnology} class-names.
      */
     public String[] getTechList() {
         return mTechStringList;
@@ -176,7 +233,7 @@
         }
         return false;
     }
-    
+
     /** @hide */
     public Bundle getTechExtras(int tech) {
         int pos = -1;
@@ -198,6 +255,9 @@
         return mTagService;
     }
 
+    /**
+     * Human-readable description of the tag, for debugging.
+     */
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder("TAG ")
diff --git a/core/java/android/nfc/tech/IsoDep.java b/core/java/android/nfc/tech/IsoDep.java
index 774982e..2a132f9 100644
--- a/core/java/android/nfc/tech/IsoDep.java
+++ b/core/java/android/nfc/tech/IsoDep.java
@@ -24,18 +24,14 @@
 import java.io.IOException;
 
 /**
- * A low-level connection to a {@link Tag} using the ISO-DEP technology, also known as
- * ISO1443-4.
+ * Provides access to ISO-DEP (ISO 14443-4) properties and I/O operations on a {@link Tag}.
  *
- * <p>You can acquire this kind of connection with {@link #get}.
- * Use this class to send and receive data with {@link #transceive transceive()}.
- *
- * <p>Applications must implement their own protocol stack on top of
- * {@link #transceive transceive()}.
- *
- * <p class="note"><strong>Note:</strong>
- * Use of this class requires the {@link android.Manifest.permission#NFC}
- * permission.
+ * <p>Acquire a {@link IsoDep} object using {@link #get}.
+ * <p>The primary ISO-DEP I/O operation is {@link #transceive}. Applications must
+ * implement their own protocol stack on top of {@link #transceive}.
+ * <p>Tags that enumerate the {@link IsoDep} technology in {@link Tag#getTechList}
+ * will also enumerate
+ * {@link NfcA} or {@link NfcB} (since IsoDep builds on top of either of these).
  */
 public final class IsoDep extends BasicTagTechnology {
     private static final String TAG = "NFC";
@@ -49,10 +45,13 @@
     private byte[] mHistBytes = null;
 
     /**
-     * Returns an instance of this tech for the given tag. If the tag doesn't support
-     * this tech type null is returned.
+     * Get an instance of {@link IsoDep} for the given tag.
+     * <p>Does not cause any RF activity and does not block.
+     * <p>Returns null if {@link IsoDep} was not enumerated in {@link Tag#getTechList}.
+     * This indicates the tag does not support ISO-DEP.
      *
-     * @param tag The tag to get the tech from
+     * @param tag an ISO-DEP compatible tag
+     * @return ISO-DEP object
      */
     public static IsoDep get(Tag tag) {
         if (!tag.hasTech(TagTechnology.ISO_DEP)) return null;
@@ -62,7 +61,7 @@
             return null;
         }
     }
-    
+
     /** @hide */
     public IsoDep(Tag tag)
             throws RemoteException {
@@ -75,13 +74,13 @@
     }
 
     /**
-     * Sets the timeout of an IsoDep transceive transaction in milliseconds.
-     * If the transaction has not completed before the timeout,
-     * any ongoing {@link #transceive} operation will be
-     * aborted and the connection to the tag is lost. This setting is applied
-     * only to the {@link Tag} object linked to this technology and will be
-     * reset when {@link IsoDep#close} is called.
-     * The default transaction timeout is 300 milliseconds.
+     * Set the timeout of {@link #transceive} in milliseconds.
+     * <p>The timeout only applies to ISO-DEP {@link #transceive}, and is
+     * reset to a default value when {@link #close} is called.
+     * <p>Setting a longer timeout may be useful when performing
+     * transactions that require a long processing time on the tag
+     * such as key generation.
+     * @param timeout timeout value in milliseconds
      */
     public void setTimeout(int timeout) {
         try {
@@ -102,29 +101,51 @@
     }
 
     /**
-     * Return the historical bytes if the tag is using {@link NfcA}, null otherwise.
+     * Return the ISO-DEP historical bytes for {@link NfcA} tags.
+     * <p>Does not cause any RF activity and does not block.
+     * <p>The historical bytes can be used to help identify a tag. They are present
+     * only on {@link IsoDep} tags that are based on {@link NfcA} RF technology.
+     * If this tag is not {@link NfcA} then null is returned.
+     * <p>In ISO 14443-4 terminology, the historical bytes are a subset of the RATS
+     * response.
+     *
+     * @return ISO-DEP historical bytes, or null if this is not a {@link NfcA} tag
      */
     public byte[] getHistoricalBytes() {
         return mHistBytes;
     }
 
     /**
-     * Return the hi layer response bytes if the tag is using {@link NfcB}, null otherwise.
+     * Return the higher layer response bytes for {@link NfcB} tags.
+     * <p>Does not cause any RF activity and does not block.
+     * <p>The higher layer response bytes can be used to help identify a tag.
+     * They are present only on {@link IsoDep} tags that are based on {@link NfcB}
+     * RF technology. If this tag is not {@link NfcB} then null is returned.
+     * <p>In ISO 14443-4 terminology, the higher layer bytes are a subset of the
+     * ATTRIB response.
+     *
+     * @return ISO-DEP historical bytes, or null if this is not a {@link NfcB} tag
      */
     public byte[] getHiLayerResponse() {
         return mHiLayerResponse;
     }
 
     /**
-     * Send data to a tag and receive the response.
-     * <p>
-     * This method will block until the response is received. It can be canceled
-     * with {@link #close}.
-     * <p>Requires {@link android.Manifest.permission#NFC} permission.
+     * Send raw ISO-DEP data to the tag and receive the response.
      *
-     * @param data bytes to send
-     * @return bytes received in response
-     * @throws IOException if the target is lost or connection closed
+     * <p>Applications must only send the INF payload, and not the start of frame and
+     * end of frame indicators. Applications do not need to fragment the payload, it
+     * will be automatically fragmented and defragmented by {@link #transceive} if
+     * it exceeds FSD/FSC limits.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param data command bytes to send, must not be null
+     * @return response bytes received, will not be null
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or this operation is canceled
      */
     public byte[] transceive(byte[] data) throws IOException {
         return transceive(data, true);
diff --git a/core/java/android/nfc/tech/MifareClassic.java b/core/java/android/nfc/tech/MifareClassic.java
index d337ead..3d513b7 100644
--- a/core/java/android/nfc/tech/MifareClassic.java
+++ b/core/java/android/nfc/tech/MifareClassic.java
@@ -25,32 +25,61 @@
 import java.nio.ByteOrder;
 
 /**
- * Technology class representing MIFARE Classic tags (also known as MIFARE Standard).
+ * Provides access to MIFARE Classic properties and I/O operations on a {@link Tag}.
  *
- * <p>Support for this technology type is optional. If the NFC stack doesn't support this technology
- * MIFARE Classic tags will still be scanned, but will only show the NfcA technology.
+ * <p>Acquire a {@link MifareClassic} object using {@link #get}.
  *
- * <p>MIFARE Classic tags have sectors that each contain blocks. The block size is constant at
- * 16 bytes, but the number of sectors and the sector size varies by product. MIFARE has encryption
- * built in and each sector has two keys associated with it, as well as ACLs to determine what
- * level acess each key grants. Before operating on a sector you must call either
- * {@link #authenticateSectorWithKeyA(int, byte[])} or
- * {@link #authenticateSectorWithKeyB(int, byte[])} to gain authorization for your request.
+ * <p>MIFARE Classic is also known as MIFARE Standard.
+ * <p>MIFARE Classic tags are divided into sectors, and each sector is sub-divided into
+ * blocks. Block size is always 16 bytes ({@link #BLOCK_SIZE}. Sector size varies.
+ * <ul>
+ * <li>MIFARE Classic Mini are 320 bytes ({@link #SIZE_MINI}), with 5 sectors each of 4 blocks.
+ * <li>MIFARE Classic 1k are 1024 bytes ({@link #SIZE_1K}), with 16 sectors each of 4 blocks.
+ * <li>MIFARE Classic 2k are 2048 bytes ({@link #SIZE_2K}), with 32 sectors each of 4 blocks.
+ * <li>MIFARE Classic 4k} are 4096 bytes ({@link #SIZE_4K}). The first 32 sectors contain 4 blocks
+ * and the last 8 sectors contain 16 blocks.
+ * </ul>
+ *
+ * <p>MIFARE Classic tags require authentication on a per-sector basis before any
+ * other I/O operations on that sector can be performed. There are two keys per sector,
+ * and ACL bits determine what I/O operations are allowed on that sector after
+ * authenticating with a key. {@see #authenticateSectorWithKeyA} and
+ * {@see #authenticateSectorWithKeyB}.
+ *
+ * <p>Three well-known authentication keys are defined in this class:
+ * {@link #KEY_DEFAULT}, {@link #KEY_MIFARE_APPLICATION_DIRECTORY},
+ * {@link #KEY_NFC_FORUM}.
+ * <ul>
+ * <li>{@link #KEY_DEFAULT} is the default factory key for MIFARE Classic.
+ * <li>{@link #KEY_MIFARE_APPLICATION_DIRECTORY} is the well-known key for
+ * MIFARE Classic cards that have been formatted according to the
+ * MIFARE Application Directory (MAD) specification.
+ * <li>{@link #KEY_NFC_FORUM} is the well-known key for MIFARE Classic cards that
+ * have been formatted according to the NFC
+ *
+ * <p>Implementation of this class on a Android NFC device is optional.
+ * If it is not implemented, then
+ * {@link MifareClassic} will never be enumerated in {@link Tag#getTechList}.
+ * If it is enumerated, then all {@link MifareClassic} I/O operations will be supported,
+ * and {@link Ndef#MIFARE_CLASSIC} NDEF tags will also be supported. In either case,
+ * {@link NfcA} will also be enumerated on the tag, because all MIFARE Classic tags are also
+ * {@link NfcA}.
  */
 public final class MifareClassic extends BasicTagTechnology {
     /**
-     * The well-known default MIFARE read key. All keys are set to this at the factory.
-     * Using this key will effectively make the payload in the sector public.
+     * The default factory key.
      */
     public static final byte[] KEY_DEFAULT =
             {(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF};
     /**
-     * The well-known, default MIFARE Application Directory read key.
+     * The well-known key for tags formatted according to the
+     * MIFARE Application Directory (MAD) specification.
      */
     public static final byte[] KEY_MIFARE_APPLICATION_DIRECTORY =
             {(byte)0xA0,(byte)0xA1,(byte)0xA2,(byte)0xA3,(byte)0xA4,(byte)0xA5};
     /**
-     * The well-known, default read key for NDEF data on a MIFARE Classic
+     * The well-known key for tags formatted according to the
+     * NDEF on Mifare Classic specification.
      */
     public static final byte[] KEY_NFC_FORUM =
             {(byte)0xD3,(byte)0xF7,(byte)0xD3,(byte)0xF7,(byte)0xD3,(byte)0xF7};
@@ -64,19 +93,19 @@
     /** A MIFARE Pro tag */
     public static final int TYPE_PRO = 2;
 
-    /** The tag contains 16 sectors, each holding 4 blocks. */
+    /** Tag contains 16 sectors, each with 4 blocks. */
     public static final int SIZE_1K = 1024;
-    /** The tag contains 32 sectors, each holding 4 blocks. */
+    /** Tag contains 32 sectors, each with 4 blocks. */
     public static final int SIZE_2K = 2048;
     /**
-     * The tag contains 40 sectors. The first 32 sectors contain 4 blocks and the last 8 sectors
+     * Tag contains 40 sectors. The first 32 sectors contain 4 blocks and the last 8 sectors
      * contain 16 blocks.
      */
     public static final int SIZE_4K = 4096;
-    /** The tag contains 5 sectors, each holding 4 blocks. */
+    /** Tag contains 5 sectors, each with 4 blocks. */
     public static final int SIZE_MINI = 320;
 
-    /** Size of a Mifare Classic block (in bytes) */
+    /** Size of a MIFARE Classic block (in bytes) */
     public static final int BLOCK_SIZE = 16;
 
     private static final int MAX_BLOCK_COUNT = 256;
@@ -87,10 +116,14 @@
     private int mSize;
 
     /**
-     * Returns an instance of this tech for the given tag. If the tag doesn't support
-     * this tech type null is returned.
+     * Get an instance of {@link MifareClassic} for the given tag.
+     * <p>Does not cause any RF activity and does not block.
+     * <p>Returns null if {@link MifareClassic} was not enumerated in {@link Tag#getTechList}.
+     * This indicates the tag is not MIFARE Classic compatible, or this Android
+     * device does not support MIFARE Classic.
      *
-     * @param tag The tag to get the tech from
+     * @param tag an MIFARE Classic compatible tag
+     * @return MIFARE Classic object
      */
     public static MifareClassic get(Tag tag) {
         if (!tag.hasTech(TagTechnology.MIFARE_CLASSIC)) return null;
@@ -160,17 +193,31 @@
         }
     }
 
-    /** Returns the type of the tag, determined at discovery time */
+    /**
+     * Return the type of this MIFARE Classic compatible tag.
+     * <p>One of {@link #TYPE_UNKNOWN}, {@link #TYPE_CLASSIC}, {@link #TYPE_PLUS} or
+     * {@link #TYPE_PRO}.
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return type
+     */
     public int getType() {
         return mType;
     }
 
-    /** Returns the size of the tag in bytes, determined at discovery time */
+    /**
+     * Return the size of the tag in bytes
+     * <p>One of {@link #SIZE_MINI}, {@link #SIZE_1K}, {@link #SIZE_2K}, {@link #SIZE_4K}.
+     * These constants are equal to their respective size in bytes.
+     * <p>Does not cause any RF activity and does not block.
+     * @return size in bytes
+     */
     public int getSize() {
         return mSize;
     }
 
-    /** Returns true if the tag is emulated, determined at discovery time.
+    /**
+     * Return true if the tag is emulated, determined at discovery time.
      * These are actually smart-cards that emulate a Mifare Classic interface.
      * They can be treated identically to a Mifare Classic tag.
      * @hide
@@ -179,7 +226,11 @@
         return mIsEmulated;
     }
 
-    /** Returns the number of sectors on this tag, determined at discovery time */
+    /**
+     * Return the number of MIFARE Classic sectors.
+     * <p>Does not cause any RF activity and does not block.
+     * @return number of sectors
+     */
     public int getSectorCount() {
         switch (mSize) {
         case SIZE_1K:
@@ -195,12 +246,22 @@
         }
     }
 
-    /** Returns the total block count, determined at discovery time */
+    /**
+     * Return the total number of MIFARE Classic blocks.
+     * <p>Does not cause any RF activity and does not block.
+     * @return total number of blocks
+     */
     public int getBlockCount() {
         return mSize / BLOCK_SIZE;
     }
 
-    /** Returns the block count for the given sector, determined at discovery time */
+    /**
+     * Return the number of blocks in the given sector.
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @param sectorIndex index of sector, starting from 0
+     * @return number of blocks in the sector
+     */
     public int getBlockCountInSector(int sectorIndex) {
         validateSector(sectorIndex);
 
@@ -211,7 +272,13 @@
         }
     }
 
-    /** Return the sector index of a given block */
+    /**
+     * Return the sector that contains a given block.
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @param blockIndex index of block to lookup, starting from 0
+     * @return sector index that contains the block
+     */
     public int blockToSector(int blockIndex) {
         validateBlock(blockIndex);
 
@@ -222,7 +289,13 @@
         }
     }
 
-    /** Return the first block of a given sector */
+    /**
+     * Return the first block of a given sector.
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @param sectorIndex index of sector to lookup, starting from 0
+     * @return block index of first block in sector
+     */
     public int sectorToBlock(int sectorIndex) {
         if (sectorIndex < 32) {
             return sectorIndex * 4;
@@ -231,22 +304,51 @@
         }
     }
 
-    // Methods that require connect()
     /**
-     * Authenticate a sector.
-     * <p>Every sector has an A and B key with different access privileges,
-     * this method attempts to authenticate against the A key.
-     * <p>This requires a that the tag be connected.
+     * Authenticate a sector with key A.
+     *
+     * <p>Successful authentication of a sector with key A enables other
+     * I/O operations on that sector. The set of operations granted by key A
+     * key depends on the ACL bits set in that sector. For more information
+     * see the MIFARE Classic specification on {@see http://www.nxp.com}.
+     *
+     * <p>A failed authentication attempt causes an implicit reconnection to the
+     * tag, so authentication to other sectors will be lost.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param sectorIndex index of sector to authenticate, starting from 0
+     * @param key 6-byte authentication key
+     * @return true on success, false on authentication failure
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public boolean authenticateSectorWithKeyA(int sectorIndex, byte[] key) throws IOException {
         return authenticate(sectorIndex, key, true);
     }
 
     /**
-     * Authenticate a sector.
-     * <p>Every sector has an A and B key with different access privileges,
-     * this method attempts to authenticate against the B key.
-     * <p>This requires a that the tag be connected.
+     * Authenticate a sector with key B.
+     *
+     * <p>Successful authentication of a sector with key B enables other
+     * I/O operations on that sector. The set of operations granted by key B
+     * depends on the ACL bits set in that sector. For more information
+     * see the MIFARE Classic specification on {@see http://www.nxp.com}.
+     *
+     * <p>A failed authentication attempt causes an implicit reconnection to the
+     * tag, so authentication to other sectors will be lost.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param sectorIndex index of sector to authenticate, starting from 0
+     * @param key 6-byte authentication key
+     * @return true on success, false on authentication failure
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public boolean authenticateSectorWithKeyB(int sectorIndex, byte[] key) throws IOException {
         return authenticate(sectorIndex, key, false);
@@ -291,8 +393,15 @@
 
     /**
      * Read 16-byte block.
-     * <p>This requires a that the tag be connected.
-     * @throws IOException
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param blockIndex index of block to read, starting from 0
+     * @return 16 byte block
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public byte[] readBlock(int blockIndex) throws IOException {
         validateBlock(blockIndex);
@@ -304,8 +413,15 @@
 
     /**
      * Write 16-byte block.
-     * <p>This requires a that the tag be connected.
-     * @throws IOException
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param blockIndex index of block to write, starting from 0
+     * @param data 16 bytes of data to write
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public void writeBlock(int blockIndex, byte[] data) throws IOException {
         validateBlock(blockIndex);
@@ -323,9 +439,16 @@
     }
 
     /**
-     * Increment a value block, and store the result in temporary memory.
-     * @param blockIndex
-     * @throws IOException
+     * Increment a value block, storing the result in the temporary block on the tag.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param blockIndex index of block to increment, starting from 0
+     * @param value non-negative to increment by
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public void increment(int blockIndex, int value) throws IOException {
         validateBlock(blockIndex);
@@ -342,9 +465,16 @@
     }
 
     /**
-     * Decrement a value block, and store the result in temporary memory.
-     * @param blockIndex
-     * @throws IOException
+     * Decrement a value block, storing the result in the temporary block on the tag.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param blockIndex index of block to decrement, starting from 0
+     * @param value non-negative to decrement by
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public void decrement(int blockIndex, int value) throws IOException {
         validateBlock(blockIndex);
@@ -361,9 +491,15 @@
     }
 
     /**
-     * Copy from temporary memory to value block.
-     * @param blockIndex
-     * @throws IOException
+     * Copy from the temporary block to a value block.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param blockIndex index of block to copy to
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public void transfer(int blockIndex) throws IOException {
         validateBlock(blockIndex);
@@ -375,9 +511,15 @@
     }
 
     /**
-     * Copy from value block to temporary memory.
-     * @param blockIndex
-     * @throws IOException
+     * Copy from a value block to the temporary block.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param blockIndex index of block to copy from
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public void restore(int blockIndex) throws IOException {
         validateBlock(blockIndex);
@@ -390,15 +532,16 @@
 
     /**
      * Send raw NfcA data to a tag and receive the response.
-     * <p>
-     * This method will block until the response is received. It can be canceled
-     * with {@link #close}.
-     * <p>Requires {@link android.Manifest.permission#NFC} permission.
-     * <p>This requires a that the tag be connected.
      *
-     * @param data bytes to send
-     * @return bytes received in response
-     * @throws IOException if the target is lost or connection closed
+     * <p>This is equivalent to connecting to this tag via {@link NfcA}
+     * and calling {@link NfcA#transceive}. Note that all MIFARE Classic
+     * tags are based on {@link NfcA} technology.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @see NfcA#transceive
      */
     public byte[] transceive(byte[] data) throws IOException {
         return transceive(data, true);
diff --git a/core/java/android/nfc/tech/MifareUltralight.java b/core/java/android/nfc/tech/MifareUltralight.java
index b514f1c..6c8f725 100644
--- a/core/java/android/nfc/tech/MifareUltralight.java
+++ b/core/java/android/nfc/tech/MifareUltralight.java
@@ -17,6 +17,7 @@
 package android.nfc.tech;
 
 import android.nfc.Tag;
+import android.nfc.TagLostException;
 import android.os.RemoteException;
 
 import java.io.IOException;
@@ -24,14 +25,13 @@
 //TOOD: Ultralight C 3-DES authentication, one-way counter
 
 /**
- * Technology class representing MIFARE Ultralight and MIFARE Ultralight C tags.
+ * Provides access to MIFARE Ultralight properties and I/O operations on a {@link Tag}.
  *
- * <p>Support for this technology type is optional. If the NFC stack doesn't support this technology
- * MIFARE Ultralight class tags will still be scanned, but will only show the NfcA technology.
+ * <p>Acquire a {@link MifareUltralight} object using {@link #get}.
  *
- * <p>MIFARE Ultralight compatible tags have 4 byte pages. The read command
- * returns 4 pages (16 bytes) at a time, for speed. The write command operates
- * on a single page (4 bytes) to minimize EEPROM write cycles.
+ * <p>MIFARE Ultralight compatible tags have 4 byte pages {@link #PAGE_SIZE}.
+ * The primary operations on an Ultralight tag are {@link #readPages} and
+ * {@link #writePage}.
  *
  * <p>The original MIFARE Ultralight consists of a 64 byte EEPROM. The first
  * 4 pages are for the OTP area, manufacturer data, and locking bits. They are
@@ -44,6 +44,13 @@
  * and authentication configuration and are readable. The final 4 pages are for
  * the authentication key and are not readable. For more information see the
  * NXP data sheet MF0ICU2.
+ *
+ * <p>Implementation of this class on a Android NFC device is optional.
+ * If it is not implemented, then
+ * {@link MifareUltralight} will never be enumerated in {@link Tag#getTechList}.
+ * If it is enumerated, then all {@link MifareUltralight} I/O operations will be supported.
+ * In either case, {@link NfcA} will also be enumerated on the tag,
+ * because all MIFARE Ultralight tags are also {@link NfcA} tags.
  */
 public final class MifareUltralight extends BasicTagTechnology {
     /** A MIFARE Ultralight compatible tag of unknown type */
@@ -62,10 +69,15 @@
     private int mType;
 
     /**
-     * Returns an instance of this tech for the given tag. If the tag doesn't support
-     * this tech type null is returned.
+     * Get an instance of {@link MifareUltralight} for the given tag.
+     * <p>Returns null if {@link MifareUltralight} was not enumerated in
+     * {@link Tag#getTechList} - this indicates the tag is not MIFARE
+     * Ultralight compatible, or that this Android
+     * device does not implement MIFARE Ultralight.
+     * <p>Does not cause any RF activity and does not block.
      *
-     * @param tag The tag to get the tech from
+     * @param tag an MIFARE Ultralight compatible tag
+     * @return MIFARE Ultralight object
      */
     public static MifareUltralight get(Tag tag) {
         if (!tag.hasTech(TagTechnology.MIFARE_ULTRALIGHT)) return null;
@@ -93,31 +105,44 @@
         }
     }
 
-    /** Returns the type of the tag.
-     * <p>It is very hard to always accurately classify a MIFARE Ultralight
-     * compatible tag as Ultralight original or Ultralight C. So consider
-     * {@link #getType} a hint. */
+    /**
+     * Return the MIFARE Ultralight type of the tag.
+     * <p>One of {@link #TYPE_ULTRALIGHT} or {@link #TYPE_ULTRALIGHT_C} or
+     * {@link #TYPE_UNKNOWN}.
+     * <p>Depending on how the tag has been formatted, it can be impossible
+     * to accurately classify between original MIFARE Ultralight and
+     * Ultralight C. So treat this method as a hint.
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return the type
+     */
     public int getType() {
         return mType;
     }
 
-    // Methods that require connect()
     /**
      * Read 4 pages (16 bytes).
-     * <p>The MIFARE Ultralight protocol always reads 4 pages at a time.
-     * <p>If the read spans past the last readable block, then the tag will
+     *
+     * <p>The MIFARE Ultralight protocol always reads 4 pages at a time, to
+     * reduce the number of commands required to read an entire tag.
+     * <p>If a read spans past the last readable block, then the tag will
      * return pages that have been wrapped back to the first blocks. MIFARE
      * Ultralight tags have readable blocks 0x00 through 0x0F. So a read to
      * block offset 0x0E would return blocks 0x0E, 0x0F, 0x00, 0x01. MIFARE
      * Ultralight C tags have readable blocks 0x00 through 0x2B. So a read to
      * block 0x2A would return blocks 0x2A, 0x2B, 0x00, 0x01.
-     * <p>This requires that the tag be connected.
      *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param pageOffset index of first page to read, starting from 0
      * @return 4 pages (16 bytes)
-     * @throws IOException
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public byte[] readPages(int pageOffset) throws IOException {
-        validatePageOffset(pageOffset);
+        validatePageIndex(pageOffset);
         checkConnected();
 
         byte[] cmd = { 0x30, (byte) pageOffset};
@@ -126,15 +151,21 @@
 
     /**
      * Write 1 page (4 bytes).
-     * <p>The MIFARE Ultralight protocol always writes 1 page at a time.
-     * <p>This requires that the tag be connected.
      *
-     * @param pageOffset The offset of the page to write
-     * @param data The data to write
-     * @throws IOException
+     * <p>The MIFARE Ultralight protocol always writes 1 page at a time, to
+     * minimize EEPROM write cycles.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param pageOffset index of page to write, starting from 0
+     * @param data 4 bytes to write
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public void writePage(int pageOffset, byte[] data) throws IOException {
-        validatePageOffset(pageOffset);
+        validatePageIndex(pageOffset);
         checkConnected();
 
         byte[] cmd = new byte[data.length + 2];
@@ -147,28 +178,29 @@
 
     /**
      * Send raw NfcA data to a tag and receive the response.
-     * <p>
-     * This method will block until the response is received. It can be canceled
-     * with {@link #close}.
-     * <p>Requires {@link android.Manifest.permission#NFC} permission.
-     * <p>This requires a that the tag be connected.
      *
-     * @param data bytes to send
-     * @return bytes received in response
-     * @throws IOException if the target is lost or connection closed
+     * <p>This is equivalent to connecting to this tag via {@link NfcA}
+     * and calling {@link NfcA#transceive}. Note that all MIFARE Classic
+     * tags are based on {@link NfcA} technology.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @see NfcA#transceive
      */
     public byte[] transceive(byte[] data) throws IOException {
         return transceive(data, true);
     }
 
-    private static void validatePageOffset(int pageOffset) {
+    private static void validatePageIndex(int pageIndex) {
         // Do not be too strict on upper bounds checking, since some cards
         // may have more addressable memory than they report.
         // Note that issuing a command to an out-of-bounds block is safe - the
         // tag will wrap the read to an addressable area. This validation is a
         // helper to guard against obvious programming mistakes.
-        if (pageOffset < 0 || pageOffset >= MAX_PAGE_COUNT) {
-            throw new IndexOutOfBoundsException("page out of bounds: " + pageOffset);
+        if (pageIndex < 0 || pageIndex >= MAX_PAGE_COUNT) {
+            throw new IndexOutOfBoundsException("page out of bounds: " + pageIndex);
         }
     }
 }
diff --git a/core/java/android/nfc/tech/Ndef.java b/core/java/android/nfc/tech/Ndef.java
index 39ff282..0467473 100644
--- a/core/java/android/nfc/tech/Ndef.java
+++ b/core/java/android/nfc/tech/Ndef.java
@@ -22,6 +22,7 @@
 import android.nfc.NdefMessage;
 import android.nfc.NfcAdapter;
 import android.nfc.Tag;
+import android.nfc.TagLostException;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.util.Log;
@@ -29,11 +30,41 @@
 import java.io.IOException;
 
 /**
- * A high-level connection to a {@link Tag} using one of the NFC type 1, 2, 3, or 4 technologies
- * to interact with NDEF data. MiFare Classic cards that present NDEF data may also be used
- * via this class. To determine the exact technology being used call {@link #getType()}
+ * Provides access to NDEF content and operations on a {@link Tag}.
  *
- * <p>You can acquire this kind of connection with {@link #get}.
+ * <p>Acquire a {@link Ndef} object using {@link #get}.
+ *
+ * <p>NDEF is an NFC Forum data format. The data formats are implemented in
+ * {@link android.nfc.NdefMessage} and
+ * {@link android.nfc.NdefRecord}. This class provides methods to
+ * retrieve and modify the {@link android.nfc.NdefMessage}
+ * on a tag.
+ *
+ * <p>There are currently four NFC Forum standardized tag types that can be
+ * formatted to contain NDEF data.
+ * <ul>
+ * <li>NFC Forum Type 1 Tag ({@link #NFC_FORUM_TYPE_1}), such as the Innovision Topaz
+ * <li>NFC Forum Type 2 Tag ({@link #NFC_FORUM_TYPE_2}), such as the NXP Mifare Ultralight
+ * <li>NFC Forum Type 3 Tag ({@link #NFC_FORUM_TYPE_3}), such as Sony Felica
+ * <li>NFC Forum Type 4 Tag ({@link #NFC_FORUM_TYPE_4}), such as NXP MIFARE Desfire
+ * </ul>
+ * It is mandatory for all Android devices with NFC to correctly enumerate
+ * {@link Ndef} on NFC Forum Tag Types 1-4, and implement all NDEF operations
+ * as defined in this class.
+ *
+ * <p>Some vendors have there own well defined specifications for storing NDEF data
+ * on tags that do not fall into the above categories. Android devices with NFC
+ * should enumerate and implement {@link Ndef} under these vendor specifications
+ * where possible, but it is not mandatory. {@link #getType} returns a String
+ * describing this specification, for example {@link #MIFARE_CLASSIC} is
+ * <code>com.nxp.ndef.mifareclassic</code>.
+ *
+ * <p>Android devices that support MIFARE Classic must also correctly
+ * implement {@link Ndef} on MIFARE Classic tags formatted to NDEF.
+ *
+ * <p>For guaranteed compatibility across all Android devices with NFC, it is
+ * recommended to use NFC Forum Types 1-4 in new deployments of NFC tags
+ * with NDEF payload. Vendor NDEF formats will not work on all Android devices.
  *
  * <p class="note"><strong>Note:</strong>
  * Use of this class requires the {@link android.Manifest.permission#NFC}
@@ -77,14 +108,15 @@
     /** @hide */
     public static final String UNKNOWN = "android.ndef.unknown";
 
+    /** NFC Forum Tag Type 1 */
     public static final String NFC_FORUM_TYPE_1 = "org.nfcforum.ndef.type1";
-
+    /** NFC Forum Tag Type 2 */
     public static final String NFC_FORUM_TYPE_2 = "org.nfcforum.ndef.type2";
-
+    /** NFC Forum Tag Type 4 */
     public static final String NFC_FORUM_TYPE_3 = "org.nfcforum.ndef.type3";
-
+    /** NFC Forum Tag Type 4 */
     public static final String NFC_FORUM_TYPE_4 = "org.nfcforum.ndef.type4";
-
+    /** NDEF on MIFARE Classic */
     public static final String MIFARE_CLASSIC = "com.nxp.ndef.mifareclassic";
 
     private final int mMaxNdefSize;
@@ -93,11 +125,19 @@
     private final int mNdefType;
 
     /**
-     * Returns an instance of this tech for the given tag. If the tag doesn't support
-     * this tech type null is returned.
+     * Get an instance of {@link Ndef} for the given tag.
      *
-     * @param tag The tag to get the tech from
+     * <p>Returns null if {@link Ndef} was not enumerated in {@link Tag#getTechList}.
+     * This indicates the tag is not NDEF formatted, or that this tag
+     * is NDEF formatted but under a vendor specification that this Android
+     * device does not implement.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @param tag an MIFARE Classic compatible tag
+     * @return MIFARE Classic object
      */
+
     public static Ndef get(Tag tag) {
         if (!tag.hasTech(TagTechnology.NDEF)) return null;
         try {
@@ -126,22 +166,29 @@
     }
 
     /**
-     * Get the primary NDEF message on this tag. This data is read at discovery time
-     * and does not require a connection.
+     * Get the {@link NdefMessage} that was read from the tag at discovery time.
+     *
+     * <p>If the NDEF Message is modified by an I/O operation then it
+     * will not be updated here, this function only returns what was discovered
+     * when the tag entered the field.
+     * <p>Does not cause any RF activity and does not block.
+     * @return NDEF Message read from the tag at discovery time
      */
     public NdefMessage getCachedNdefMessage() {
         return mNdefMsg;
     }
 
     /**
-     * Get NDEF tag type.
+     * Get the NDEF tag type.
+     *
      * <p>Returns one of {@link #NFC_FORUM_TYPE_1}, {@link #NFC_FORUM_TYPE_2},
      * {@link #NFC_FORUM_TYPE_3}, {@link #NFC_FORUM_TYPE_4},
-     * {@link #MIFARE_CLASSIC} or another NDEF tag type that is not yet in the
-     * Android API.
-     * <p>Android devices with NFC support must always correctly enumerate
-     * NFC Forum tag types, and may optionally enumerate
-     * {@link #MIFARE_CLASSIC} since it requires proprietary technology.
+     * {@link #MIFARE_CLASSIC} or another NDEF tag type that has not yet been
+     * formalized in this Android API.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return a string representing the NDEF tag type
      */
     public String getType() {
         switch (mNdefType) {
@@ -161,25 +208,44 @@
     }
 
     /**
-     * Get maximum NDEF message size in bytes
+     * Get the maximum NDEF message size in bytes.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return size in bytes
      */
     public int getMaxSize() {
         return mMaxNdefSize;
     }
 
     /**
-     * Provides a hint on whether writes are likely to succeed.
+     * Determine if the tag is writable.
+     *
+     * <p>NFC Forum tags can be in read-only or read-write states.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
      * <p>Requires {@link android.Manifest.permission#NFC} permission.
-     * @return true if write is likely to succeed
+     *
+     * @return true if the tag is writable
      */
     public boolean isWritable() {
         return (mCardState == NDEF_MODE_READ_WRITE);
     }
 
-    // Methods that require connect()
     /**
-     * Get the primary NDEF message on this tag. This data is read actively
-     * and requires a connection.
+     * Read the current {@link android.nfc.NdefMessage} on this tag.
+     *
+     * <p>This always reads the current NDEF Message stored on the tag.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @return the NDEF Message, never null
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
+     * @throws FormatException if the NDEF Message on the tag is malformed
      */
     public NdefMessage getNdefMessage() throws IOException, FormatException {
         checkConnected();
@@ -212,8 +278,16 @@
     }
 
     /**
-     * Overwrite the primary NDEF message
-     * @throws IOException
+     * Overwrite the {@link NdefMessage} on this tag.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param msg the NDEF Message to write, must not be null
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
+     * @throws FormatException if the NDEF Message to write is malformed
      */
     public void writeNdefMessage(NdefMessage msg) throws IOException, FormatException {
         checkConnected();
@@ -244,8 +318,11 @@
     }
 
     /**
-     * Indicates whether a tag can be made read-only with
-     * {@link #makeReadOnly()}
+     * Indicates whether a tag can be made read-only with {@link #makeReadOnly()}.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return true if it is possible to make this tag read-only
      */
     public boolean canMakeReadOnly() {
         if (mNdefType == TYPE_1 || mNdefType == TYPE_2) {
@@ -256,11 +333,20 @@
     }
 
     /**
-     * Sets the CC field to indicate this tag is read-only
-     * and permanently sets the lock bits to prevent any further NDEF
-     * modifications.
-     * This is a one-way process and can not be reverted!
-     * @throws IOException
+     * Make a tag read-only.
+     *
+     * <p>This sets the CC field to indicate the tag is read-only,
+     * and where possible permanently sets the lock bits to prevent
+     * any further modification of the memory.
+     * <p>This is a one-way process and cannot be reverted!
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @return true on success, false if it is not possible to make this tag read-only
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
      */
     public boolean makeReadOnly() throws IOException {
         checkConnected();
diff --git a/core/java/android/nfc/tech/NdefFormatable.java b/core/java/android/nfc/tech/NdefFormatable.java
index e2828b5..f667b58 100644
--- a/core/java/android/nfc/tech/NdefFormatable.java
+++ b/core/java/android/nfc/tech/NdefFormatable.java
@@ -22,15 +22,24 @@
 import android.nfc.NdefMessage;
 import android.nfc.NfcAdapter;
 import android.nfc.Tag;
+import android.nfc.TagLostException;
 import android.os.RemoteException;
 import android.util.Log;
 
 import java.io.IOException;
 
 /**
- * An interface to a {@link Tag} allowing to format the tag as NDEF.
+ * Provide access to NDEF format operations on a {@link Tag}.
  *
- * <p>You can acquire this kind of connection with {@link #get}.
+ * <p>Acquire a {@link NdefFormatable} object using {@link #get}.
+ *
+ * <p>Android devices with NFC must only enumerate and implement this
+ * class for tags for which it can format to NDEF.
+ *
+ * <p>Unfortunately the procedures to convert unformated tags to NDEF formatted
+ * tags are not specified by NFC Forum, and are not generally well-known. So
+ * there is no mandatory set of tags for which all Android devices with NFC
+ * must support {@link NdefFormatable}.
  *
  * <p class="note"><strong>Note:</strong>
  * Use of this class requires the {@link android.Manifest.permission#NFC}
@@ -40,10 +49,13 @@
     private static final String TAG = "NFC";
 
     /**
-     * Returns an instance of this tech for the given tag. If the tag doesn't support
-     * this tech type null is returned.
+     * Get an instance of {@link NdefFormatable} for the given tag.
+     * <p>Does not cause any RF activity and does not block.
+     * <p>Returns null if {@link NdefFormatable} was not enumerated in {@link Tag#getTechList}.
+     * This indicates the tag is not NDEF formatable by this Android device.
      *
-     * @param tag The tag to get the tech from
+     * @param tag an NDEF formatable tag
+     * @return NDEF formatable object
      */
     public static NdefFormatable get(Tag tag) {
         if (!tag.hasTech(TagTechnology.NDEF_FORMATABLE)) return null;
@@ -63,20 +75,40 @@
     }
 
     /**
-     * Formats a tag as NDEF, if possible. You may supply a first
-     * NdefMessage to be written on the tag.
-     * <p>Either all steps succeed, or an IOException is thrown if any one step
-     * fails.
+     * Format a tag as NDEF, and write a {@link NdefMessage}.
+     *
+     * <p>This is a multi-step process, an IOException is thrown
+     * if any one step fails.
+     * <p>The card is left in a read-write state after this operation.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param firstMessage the NDEF message to write after formatting
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
+     * @throws FormatException if the NDEF Message to write is malformed
      */
     public void format(NdefMessage firstMessage) throws IOException, FormatException {
         format(firstMessage, false);
     }
 
     /**
-     * Formats a tag as NDEF, if possible. You may supply a first
-     * NdefMessage to be written on the tag.
-     * <p>Either all steps succeed, or an IOException is thrown if any one step
-     * fails.
+     * Formats a tag as NDEF, write a {@link NdefMessage}, and make read-only.
+     *
+     * <p>This is a multi-step process, an IOException is thrown
+     * if any one step fails.
+     * <p>The card is left in a read-only state if this method returns successfully.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
+     *
+     * @param firstMessage the NDEF message to write after formatting
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or the operation is canceled
+     * @throws FormatException if the NDEF Message to write is malformed
      */
     public void formatReadOnly(NdefMessage firstMessage) throws IOException, FormatException {
         format(firstMessage, true);
diff --git a/core/java/android/nfc/tech/NfcA.java b/core/java/android/nfc/tech/NfcA.java
index 24badc4..93d8510 100644
--- a/core/java/android/nfc/tech/NfcA.java
+++ b/core/java/android/nfc/tech/NfcA.java
@@ -23,18 +23,11 @@
 import java.io.IOException;
 
 /**
- * A low-level connection to a {@link Tag} using the NFC-A technology, also known as
- * ISO1443-3A.
+ * Provides access to NFC-A (ISO 14443-3A) properties and I/O operations on a {@link Tag}.
  *
- * <p>You can acquire this kind of connection with {@link #get}.
- * Use this class to send and receive data with {@link #transceive transceive()}.
- *
- * <p>Applications must implement their own protocol stack on top of
- * {@link #transceive transceive()}.
- *
- * <p class="note"><strong>Note:</strong>
- * Use of this class requires the {@link android.Manifest.permission#NFC}
- * permission.
+ * <p>Acquire a {@link NfcA} object using {@link #get}.
+ * <p>The primary NFC-A I/O operation is {@link #transceive}. Applications must
+ * implement their own protocol stack on top of {@link #transceive}.
  */
 public final class NfcA extends BasicTagTechnology {
     /** @hide */
@@ -46,10 +39,13 @@
     private byte[] mAtqa;
 
     /**
-     * Returns an instance of this tech for the given tag. If the tag doesn't support
-     * this tech type null is returned.
+     * Get an instance of {@link NfcA} for the given tag.
+     * <p>Returns null if {@link NfcA} was not enumerated in {@link Tag#getTechList}.
+     * This indicates the tag does not support NFC-A.
+     * <p>Does not cause any RF activity and does not block.
      *
-     * @param tag The tag to get the tech from
+     * @param tag an NFC-A compatible tag
+     * @return NFC-A object
      */
     public static NfcA get(Tag tag) {
         if (!tag.hasTech(TagTechnology.NFC_A)) return null;
@@ -69,29 +65,44 @@
     }
 
     /**
-     * Returns the ATQA/SENS_RES bytes discovered at tag discovery.
+     * Return the ATQA/SENS_RES bytes from tag discovery.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return ATQA/SENS_RES bytes
      */
     public byte[] getAtqa() {
         return mAtqa;
     }
 
     /**
-     * Returns the SAK/SEL_RES discovered at tag discovery.
+     * Return the SAK/SEL_RES bytes from tag discovery.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return SAK bytes
      */
     public short getSak() {
         return mSak;
     }
 
     /**
-     * Send data to a tag and receive the response.
-     * <p>
-     * This method will block until the response is received. It can be canceled
-     * with {@link #close}.
-     * <p>Requires {@link android.Manifest.permission#NFC} permission.
+     * Send raw NFC-A commands to the tag and receive the response.
+     *
+     * <p>Applications must not append the EoD (CRC) to the payload,
+     * it will be automatically calculated.
+     * <p>Applications must only send commands that are complete bytes,
+     * for example a SENS_REQ is not possible (these are used to
+     * manage tag polling and initialization).
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
      *
      * @param data bytes to send
      * @return bytes received in response
-     * @throws IOException if the target is lost or connection closed
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or this operation is canceled
      */
     public byte[] transceive(byte[] data) throws IOException {
         return transceive(data, true);
diff --git a/core/java/android/nfc/tech/NfcB.java b/core/java/android/nfc/tech/NfcB.java
index abeef32..29246ee 100644
--- a/core/java/android/nfc/tech/NfcB.java
+++ b/core/java/android/nfc/tech/NfcB.java
@@ -23,18 +23,11 @@
 import java.io.IOException;
 
 /**
- * A low-level connection to a {@link Tag} using the NFC-B technology, also known as
- * ISO1443-3B.
+ * Provides access to NFC-B (ISO 14443-3B) properties and I/O operations on a {@link Tag}.
  *
- * <p>You can acquire this kind of connection with {@link #get}.
- * Use this class to send and receive data with {@link #transceive transceive()}.
- *
- * <p>Applications must implement their own protocol stack on top of
- * {@link #transceive transceive()}.
- *
- * <p class="note"><strong>Note:</strong>
- * Use of this class requires the {@link android.Manifest.permission#NFC}
- * permission.
+ * <p>Acquire a {@link NfcB} object using {@link #get}.
+ * <p>The primary NFC-B I/O operation is {@link #transceive}. Applications must
+ * implement their own protocol stack on top of {@link #transceive}.
  */
 public final class NfcB extends BasicTagTechnology {
     /** @hide */
@@ -46,10 +39,13 @@
     private byte[] mProtInfo;
 
     /**
-     * Returns an instance of this tech for the given tag. If the tag doesn't support
-     * this tech type null is returned.
+     * Get an instance of {@link NfcB} for the given tag.
+     * <p>Returns null if {@link NfcB} was not enumerated in {@link Tag#getTechList}.
+     * This indicates the tag does not support NFC-B.
+     * <p>Does not cause any RF activity and does not block.
      *
-     * @param tag The tag to get the tech from
+     * @param tag an NFC-B compatible tag
+     * @return NFC-B object
      */
     public static NfcB get(Tag tag) {
         if (!tag.hasTech(TagTechnology.NFC_B)) return null;
@@ -69,31 +65,43 @@
     }
 
     /**
-     * Returns the Application Data bytes from the ATQB/SENSB_RES
-     * bytes discovered at tag discovery.
+     * Return the Application Data bytes from ATQB/SENSB_RES at tag discovery.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return Application Data bytes from ATQB/SENSB_RES bytes
      */
     public byte[] getApplicationData() {
         return mAppData;
     }
 
     /**
-     * Returns the Protocol Info bytes from the ATQB/SENSB_RES
-     * bytes discovered at tag discovery.
+     * Return the Protocol Info bytes from ATQB/SENSB_RES at tag discovery.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return Protocol Info bytes from ATQB/SENSB_RES bytes
      */
     public byte[] getProtocolInfo() {
         return mProtInfo;
     }
 
     /**
-     * Send data to a tag and receive the response.
-     * <p>
-     * This method will block until the response is received. It can be canceled
-     * with {@link #close}.
-     * <p>Requires {@link android.Manifest.permission#NFC} permission.
+     * Send raw NFC-B commands to the tag and receive the response.
+     *
+     * <p>Applications must not append the EoD (CRC) to the payload,
+     * it will be automatically calculated.
+     * <p>Applications must not send commands that manage the polling
+     * loop and initialization (SENSB_REQ, SLOT_MARKER etc).
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
      *
      * @param data bytes to send
      * @return bytes received in response
-     * @throws IOException if the target is lost or connection closed
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or this operation is canceled
      */
     public byte[] transceive(byte[] data) throws IOException {
         return transceive(data, true);
diff --git a/core/java/android/nfc/tech/NfcF.java b/core/java/android/nfc/tech/NfcF.java
index f617739..27d1b57 100644
--- a/core/java/android/nfc/tech/NfcF.java
+++ b/core/java/android/nfc/tech/NfcF.java
@@ -23,18 +23,11 @@
 import java.io.IOException;
 
 /**
- * A low-level connection to a {@link Tag} using the NFC-F technology, also known as
- * JIS6319-4.
+ * Provides access to NFC-F (JIS 6319-4) properties and I/O operations on a {@link Tag}.
  *
- * <p>You can acquire this kind of connection with {@link #get}.
- * Use this class to send and receive data with {@link #transceive transceive()}.
- *
- * <p>Applications must implement their own protocol stack on top of
- * {@link #transceive transceive()}.
- *
- * <p class="note"><strong>Note:</strong>
- * Use of this class requires the {@link android.Manifest.permission#NFC}
- * permission.
+ * <p>Acquire a {@link NfcF} object using {@link #get}.
+ * <p>The primary NFC-F I/O operation is {@link #transceive}. Applications must
+ * implement their own protocol stack on top of {@link #transceive}.
  */
 public final class NfcF extends BasicTagTechnology {
     /** @hide */
@@ -46,10 +39,13 @@
     private byte[] mManufacturer = null;
 
     /**
-     * Returns an instance of this tech for the given tag. If the tag doesn't support
-     * this tech type null is returned.
+     * Get an instance of {@link NfcF} for the given tag.
+     * <p>Returns null if {@link NfcF} was not enumerated in {@link Tag#getTechList}.
+     * This indicates the tag does not support NFC-F.
+     * <p>Does not cause any RF activity and does not block.
      *
-     * @param tag The tag to get the tech from
+     * @param tag an NFC-F compatible tag
+     * @return NFC-F object
      */
     public static NfcF get(Tag tag) {
         if (!tag.hasTech(TagTechnology.NFC_F)) return null;
@@ -70,24 +66,42 @@
         }
     }
 
+    /**
+     * Return the System Code bytes from tag discovery.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return System Code bytes
+     */
     public byte[] getSystemCode() {
       return mSystemCode;
     }
 
+    /**
+     * Return the Manufacturer bytes from tag discovery.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return Manufacturer bytes
+     */
     public byte[] getManufacturer() {
       return mManufacturer;
     }
 
     /**
-     * Send data to a tag and receive the response.
-     * <p>
-     * This method will block until the response is received. It can be canceled
-     * with {@link #close}.
-     * <p>Requires {@link android.Manifest.permission#NFC} permission.
+     * Send raw NFC-F commands to the tag and receive the response.
+     *
+     * <p>Applications must not append the SoD (length) or EoD (CRC) to the payload,
+     * it will be automatically calculated.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
      *
      * @param data bytes to send
      * @return bytes received in response
-     * @throws IOException if the target is lost or connection closed
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or this operation is canceled
      */
     public byte[] transceive(byte[] data) throws IOException {
         return transceive(data, true);
diff --git a/core/java/android/nfc/tech/NfcV.java b/core/java/android/nfc/tech/NfcV.java
index 8e1f066..99dc318 100644
--- a/core/java/android/nfc/tech/NfcV.java
+++ b/core/java/android/nfc/tech/NfcV.java
@@ -23,18 +23,11 @@
 import java.io.IOException;
 
 /**
- * A low-level connection to a {@link Tag} using NFC vicinity technology, also known as
- * ISO15693.
+ * Provides access to NFC-V (ISO 15693) properties and I/O operations on a {@link Tag}.
  *
- * <p>You can acquire this kind of connection with {@link #get}.
- * Use this class to send and receive data with {@link #transceive transceive()}.
- *
- * <p>Applications must implement their own protocol stack on top of
- * {@link #transceive transceive()}.
- *
- * <p class="note"><strong>Note:</strong>
- * Use of this class requires the {@link android.Manifest.permission#NFC}
- * permission.
+ * <p>Acquire a {@link NfcV} object using {@link #get}.
+ * <p>The primary NFC-V I/O operation is {@link #transceive}. Applications must
+ * implement their own protocol stack on top of {@link #transceive}.
  */
 public final class NfcV extends BasicTagTechnology {
     /** @hide */
@@ -47,10 +40,13 @@
     private byte mDsfId;
 
     /**
-     * Returns an instance of this tech for the given tag. If the tag doesn't support
-     * this tech type null is returned.
+     * Get an instance of {@link NfcV} for the given tag.
+     * <p>Returns null if {@link NfcV} was not enumerated in {@link Tag#getTechList}.
+     * This indicates the tag does not support NFC-V.
+     * <p>Does not cause any RF activity and does not block.
      *
-     * @param tag The tag to get the tech from
+     * @param tag an NFC-V compatible tag
+     * @return NFC-V object
      */
     public static NfcV get(Tag tag) {
         if (!tag.hasTech(TagTechnology.NFC_V)) return null;
@@ -69,24 +65,43 @@
         mDsfId = extras.getByte(EXTRA_DSFID);
     }
 
+    /**
+     * Return the Response Flag bytes from tag discovery.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return Response Flag bytes
+     */
     public byte getResponseFlags() {
         return mRespFlags;
     }
 
+    /**
+     * Return the DSF ID bytes from tag discovery.
+     *
+     * <p>Does not cause any RF activity and does not block.
+     *
+     * @return DSF ID bytes
+     */
     public byte getDsfId() {
         return mDsfId;
     }
 
     /**
-     * Send data to a tag and receive the response.
-     * <p>
-     * This method will block until the response is received. It can be canceled
-     * with {@link #close}.
-     * <p>Requires {@link android.Manifest.permission#NFC} permission.
+     * Send raw NFC-V commands to the tag and receive the response.
+     *
+     * <p>Applications must not append the CRC to the payload,
+     * it will be automatically calculated. The application does
+     * provide FLAGS, CMD and PARAMETER bytes.
+     *
+     * <p>This is an I/O operation and will block until complete. It must
+     * not be called from the main application thread. A blocked call will be canceled with
+     * {@link IOException} if {@link #close} is called from another thread.
      *
      * @param data bytes to send
      * @return bytes received in response
-     * @throws IOException if the target is lost or connection closed
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or this operation is canceled
      */
     public byte[] transceive(byte[] data) throws IOException {
         return transceive(data, true);
diff --git a/core/java/android/nfc/tech/TagTechnology.java b/core/java/android/nfc/tech/TagTechnology.java
index 50df865..be6ccd0 100644
--- a/core/java/android/nfc/tech/TagTechnology.java
+++ b/core/java/android/nfc/tech/TagTechnology.java
@@ -21,6 +21,61 @@
 import java.io.Closeable;
 import java.io.IOException;
 
+/**
+ * {@link TagTechnology} is an interface to a technology in a {@link Tag}.
+ * <p>
+ * Obtain a {@link TagTechnology} implementation by calling the static method <code>get()</code>
+ * on the implementation class.
+ * <p>
+ * NFC tags are based on a number of independently developed technologies and offer a
+ * wide range of capabilities. The
+ * {@link TagTechnology} implementations provide access to these different
+ * technologies and capabilities. Some sub-classes map to technology
+ * specification (for example {@link NfcA}, {@link IsoDep}, others map to
+ * pseudo-technologies or capabilities (for example {@link Ndef}, {@link NdefFormatable}).
+ * <p>
+ * It is mandatory for all Android NFC devices to provide the following
+ * {@link TagTechnology} implementations.
+ * <ul>
+ * <li>{@link NfcA} (also known as ISO 14443-3A)
+ * <li>{@link NfcB} (also known as ISO 14443-3B)
+ * <li>{@link NfcF} (also known as JIS 6319-4)
+ * <li>{@link NfcV} (also known as ISO 15693)
+ * <li>{@link IsoDep}
+ * <li>{@link Ndef} on NFC Forum Type 1, Type 2, Type 3 or Type 4 compliant tags
+ * </ul>
+ * It is optional for Android NFC devices to provide the following
+ * {@link TagTechnology} implementations. If it is not provided, the
+ * Android device will never enumerate that class via {@link Tag#getTechList}.
+ * <ul>
+ * <li>{@link MifareClassic}
+ * <li>{@link MifareUltralight}
+ * <li>{@link NdefFormatable} must only be enumerated on tags for which this Android device
+ * is capable of formatting. Proprietary knowledge is often required to format a tag
+ * to make it NDEF compatible.
+ * </ul>
+ * <p>
+ * {@link TagTechnology} implementations provide methods that fall into two classes:
+ * <em>cached getters</em> and <em>I/O operations</em>.
+ * <h4>Cached getters</h4>
+ * These methods (usually prefixed by <code>get</code> or <code>is</code>) return
+ * properties of the tag, as determined at discovery time. These methods will never
+ * block or cause RF activity, and do not require {@link #connect} to have been called.
+ * They also never update, for example if a property is changed by an I/O operation with a tag
+ * then the cached getter will still return the result from tag discovery time.
+ * <h4>I/O operations</h4>
+ * I/O operations may require RF activity, and may block. They have the following semantics.
+ * <ul>
+ * <li>{@link #connect} must be called before using any other I/O operation.
+ * <li>{@link #close} must be called after completing I/O operations with a
+ * {@link TagTechnology}, and it will cancel all other blocked I/O operations on other threads
+ * (including {@link #connect} with {@link IOException}.
+ * <li>Only one {@link TagTechnology} can be connected at a time. Other calls to
+ * {@link #connect} will return {@link IOException}.
+ * <li>I/O operations may block, and should never be called on the main application
+ * thread.
+ * </ul>
+ */
 public interface TagTechnology extends Closeable {
     /**
      * This technology is an instance of {@link NfcA}.
@@ -90,22 +145,22 @@
     public static final int MIFARE_ULTRALIGHT = 9;
 
     /**
-     * Get the {@link Tag} object this technology came from.
+     * Get the {@link Tag} object backing this {@link TagTechnology} object.
+     * @return the {@link Tag} backing this {@link TagTechnology} object.
      */
     public Tag getTag();
 
     /**
-     * Opens a connection to the {@link Tag} enabling interactive commands. The command set
-     * varies by the technology type.
+     * Enable I/O operations to the tag from this {@link TagTechnology} object.
+     * <p>May cause RF activity and may block. Must not be called
+     * from the main application thread. A blocked call will be canceled with
+     * {@link IOException} by calling {@link #close} from another thread.
+     * <p>Only one {@link TagTechnology} object can be connected to a {@link Tag} at a time.
+     * <p>Applications must call {@link #close} when I/O operations are complete.
      *
-     * <p>This method blocks until the connection has been established.
-     *
-     * <p>A call to {@link #close} from another thread will cancel a blocked call and cause an
-     * IOException to be thrown on the thread that is blocked.
-     *
-     * @see #reconnect()
      * @see #close()
-     * @throws IOException if the target is lost, or connect canceled
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or connect is canceled
      */
     public void connect() throws IOException;
 
@@ -113,40 +168,34 @@
      * Re-connect to the {@link Tag} associated with this connection. Reconnecting to a tag can be
      * used to reset the state of the tag itself.
      *
-     * <p>This method blocks until the connection is re-established.
-     *
-     * <p>A call to {@link #close} from another thread will cancel a blocked call and cause an
-     * IOException to be thrown on the thread that is blocked.
+     * <p>May cause RF activity and may block. Must not be called
+     * from the main application thread. A blocked call will be canceled with
+     * {@link IOException} by calling {@link #close} from another thread.
      *
      * @see #connect()
      * @see #close()
-     * @throws IOException
+     * @throws TagLostException if the tag leaves the field
+     * @throws IOException if there is an I/O failure, or connect is canceled
      * @hide
      */
     public void reconnect() throws IOException;
 
     /**
-     * Closes the connection to the {@link Tag}. This call is non-blocking and causes all blocking
-     * operations such as {@link #connect} to be canceled and immediately throw
-     * {@link java.io.IOException} on the thread that is blocked.
-     *
-     * <p>
-     * Once this method is called, this object cannot be re-used and should be discarded. Further
-     * calls to {@link #connect} will fail.
+     * Disable I/O operations to the tag from this {@link TagTechnology} object, and release resources.
+     * <p>Also causes all blocked I/O operations on other thread to be canceled and
+     * return with {@link IOException}.
      *
      * @see #connect()
-     * @see #reconnect()
      */
     public void close() throws IOException;
 
     /**
-     * Helper to indicate if {@link #connect} has succeeded.
-     * <p>
-     * Does not cause RF activity, and does not block.
-     * @return true if {@link #connect} has completed successfully and the {@link Tag} is believed
-     * to be within range. Applications must still handle {@link java.io.IOException}
-     * while using methods that require a connection in case the connection is lost after this
-     * method returns.
+     * Helper to indicate if I/O operations should be possible.
+     *
+     * <p>Returns true if {@link #connect} has completed, and {@link #close} has not been
+     * called, and the {@link Tag} is not known to be out of range.
+     * <p>Does not cause RF activity, and does not block.
+     * @return true if I/O operations should be possible
      */
     public boolean isConnected();
 }
diff --git a/core/java/android/os/Message.java b/core/java/android/os/Message.java
index eb941e4..557e53f 100644
--- a/core/java/android/os/Message.java
+++ b/core/java/android/os/Message.java
@@ -96,9 +96,9 @@
     // sometimes we store linked lists of these things
     /*package*/ Message next;
 
-    private static Object mPoolSync = new Object();
-    private static Message mPool;
-    private static int mPoolSize = 0;
+    private static final Object sPoolSync = new Object();
+    private static Message sPool;
+    private static int sPoolSize = 0;
 
     private static final int MAX_POOL_SIZE = 10;
     
@@ -107,11 +107,12 @@
      * avoid allocating new objects in many cases.
      */
     public static Message obtain() {
-        synchronized (mPoolSync) {
-            if (mPool != null) {
-                Message m = mPool;
-                mPool = m.next;
+        synchronized (sPoolSync) {
+            if (sPool != null) {
+                Message m = sPool;
+                sPool = m.next;
                 m.next = null;
+                sPoolSize--;
                 return m;
             }
         }
@@ -248,12 +249,12 @@
      * freed.
      */
     public void recycle() {
-        synchronized (mPoolSync) {
-            if (mPoolSize < MAX_POOL_SIZE) {
+        synchronized (sPoolSync) {
+            if (sPoolSize < MAX_POOL_SIZE) {
                 clearForRecycle();
-                
-                next = mPool;
-                mPool = this;
+                next = sPool;
+                sPool = this;
+                sPoolSize++;
             }
         }
     }
diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
old mode 100644
new mode 100755
index 803446f..1a35112
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -115,8 +115,8 @@
 
         public static final int STATUS_NONE = -1;
         public static final int STATUS_COMPLETE = 0;
-        public static final int STATUS_PENDING = 64;
-        public static final int STATUS_FAILED = 128;
+        public static final int STATUS_PENDING = 32;
+        public static final int STATUS_FAILED = 64;
 
         /**
          * The subject of the message, if present
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index 912a88d..dd39714 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -524,8 +524,11 @@
                         mLayout.windowAnimations =
                                 com.android.internal.R.style.Animation_Wallpaper;
                         mInputChannel = new InputChannel();
-                        mSession.add(mWindow, mLayout, View.VISIBLE, mContentInsets,
-                                mInputChannel);
+                        if (mSession.add(mWindow, mLayout, View.VISIBLE, mContentInsets,
+                                mInputChannel) < 0) {
+                            Log.w(TAG, "Failed to add window while updating wallpaper surface.");
+                            return;
+                        }
                         mCreated = true;
 
                         InputQueue.registerInputChannel(mInputChannel, mInputHandler,
diff --git a/core/java/android/text/InputFilter.java b/core/java/android/text/InputFilter.java
index 2f55677..8d4b08e 100644
--- a/core/java/android/text/InputFilter.java
+++ b/core/java/android/text/InputFilter.java
@@ -88,7 +88,14 @@
             } else if (keep >= end - start) {
                 return null; // keep original
             } else {
-                return source.subSequence(start, start + keep);
+                keep += start;
+                if (Character.isHighSurrogate(source.charAt(keep - 1))) {
+                    --keep;
+                    if (keep == start) {
+                        return "";
+                    }
+                }
+                return source.subSequence(start, keep);
             }
         }
 
diff --git a/core/java/android/view/LayoutInflater.java b/core/java/android/view/LayoutInflater.java
index a17ed9d..81346b4 100644
--- a/core/java/android/view/LayoutInflater.java
+++ b/core/java/android/view/LayoutInflater.java
@@ -38,7 +38,7 @@
  * for the device you are running on.  For example:
  *
  * <pre>LayoutInflater inflater = (LayoutInflater)context.getSystemService
- *      Context.LAYOUT_INFLATER_SERVICE);</pre>
+ *      (Context.LAYOUT_INFLATER_SERVICE);</pre>
  * 
  * <p>
  * To create a new LayoutInflater with an additional {@link Factory} for your
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index c26fa93..02e5b63 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -1171,14 +1171,6 @@
                 gravity = o.gravity;
                 changes |= LAYOUT_CHANGED;
             }
-            if (horizontalMargin != o.horizontalMargin) {
-                horizontalMargin = o.horizontalMargin;
-                changes |= LAYOUT_CHANGED;
-            }
-            if (verticalMargin != o.verticalMargin) {
-                verticalMargin = o.verticalMargin;
-                changes |= LAYOUT_CHANGED;
-            }
             if (format != o.format) {
                 format = o.format;
                 changes |= FORMAT_CHANGED;
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index 5bdf408..b410699 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -56,7 +56,11 @@
         // Load libwebcore during static initialization. This happens in the
         // zygote process so it will be shared read-only across all app
         // processes.
-        System.loadLibrary("webcore");
+        try {
+            System.loadLibrary("webcore");
+        } catch (UnsatisfiedLinkError e) {
+            Log.e(LOGTAG, "Unable to load webcore library");
+        }
     }
 
     /*
diff --git a/core/res/res/values-mcc219/config.xml b/core/res/res/values-mcc219/config.xml
new file mode 100644
index 0000000..7ae82fa
--- /dev/null
+++ b/core/res/res/values-mcc219/config.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- Do not translate. Defines the slots is Two Digit Number for dialing normally not USSD -->
+    <string-array name="config_twoDigitNumberPattern">
+        <item>"92"</item>
+        <item>"93"</item>
+        <item>"94"</item>
+        <item>"95"</item>
+        <item>"96"</item>
+    </string-array>
+
+</resources>
diff --git a/core/res/res/values-mcc220/config.xml b/core/res/res/values-mcc220/config.xml
new file mode 100644
index 0000000..7ae82fa
--- /dev/null
+++ b/core/res/res/values-mcc220/config.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- Do not translate. Defines the slots is Two Digit Number for dialing normally not USSD -->
+    <string-array name="config_twoDigitNumberPattern">
+        <item>"92"</item>
+        <item>"93"</item>
+        <item>"94"</item>
+        <item>"95"</item>
+        <item>"96"</item>
+    </string-array>
+
+</resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index e0c26d4..713fa8e 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -544,4 +544,8 @@
     <!-- Sets whether menu shortcuts should be displayed on panel menus when
          a keyboard is present. -->
     <bool name="config_showMenuShortcutsWhenKeyboardPresent">false</bool>
+
+    <!-- Do not translate. Defines the slots is Two Digit Number for dialing normally not USSD -->
+    <string-array name="config_twoDigitNumberPattern">
+    </string-array>
 </resources>
diff --git a/core/tests/coretests/src/android/content/ContentResolverTest.java b/core/tests/coretests/src/android/content/ContentResolverTest.java
new file mode 100644
index 0000000..2b6dee8b
--- /dev/null
+++ b/core/tests/coretests/src/android/content/ContentResolverTest.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.content;
+
+import android.content.ContentResolver;
+import android.provider.ContactsContract;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.LargeTest;
+
+public class ContentResolverTest extends AndroidTestCase {
+    private ContentResolver mContentResolver;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mContentResolver = mContext.getContentResolver();
+    }
+
+    @LargeTest
+    public void testCursorFinalizer() throws Exception {
+        // TODO: Want a test case that more predictably reproduce this issue. Selected
+        // 600 as this causes the problem 100% of the runs on current hw, it might not
+        // do so on some other configuration though.
+        for (int i = 0; i < 600; i++) {
+            mContentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
+        }
+    }
+}
diff --git a/docs/html/guide/appendix/faq/commontasks.jd b/docs/html/guide/appendix/faq/commontasks.jd
index cf9cbd3..4747379 100644
--- a/docs/html/guide/appendix/faq/commontasks.jd
+++ b/docs/html/guide/appendix/faq/commontasks.jd
@@ -60,9 +60,9 @@
 folder in the SDK.</p>
 
 <p>Finally, a great way to started with Android development in Eclipse is to
-follow both the <a href="{@docRoot}guide/tutorials/hello-world.html">Hello,
+follow both the <a href="{@docRoot}resources/tutorials/hello-world.html">Hello,
 World</a> and <a
-href="{@docRoot}guide/tutorials/notepad/index.html">Notepad</a> code
+href="{@docRoot}resources/tutorials/notepad/index.html">Notepad</a> code
 tutorials. In particular, the start of the Hello Android tutorial is an
 excellent introduction to creating a new Android application in Eclipse.</p>
 
diff --git a/docs/html/guide/index.jd b/docs/html/guide/index.jd
index 5f0c6a5..cedf0f5 100644
--- a/docs/html/guide/index.jd
+++ b/docs/html/guide/index.jd
@@ -2,9 +2,9 @@
 @jd:body
 
 <p>
-Welcome to the <i>Android Dev Guide</i>! The Dev Guide is 
-a practical introduction to developing applications for Android.  
-It explores the concepts behind Android, the framework for 
+Welcome to the <i>Android Dev Guide</i>! The Dev Guide provides 
+a practical introduction to developing applications for Android and documentation about major
+platform features. It explores the concepts behind Android, the framework for 
 constructing an application, and the tools for developing, 
 testing, and publishing software for the platform.
 </p>
@@ -13,12 +13,12 @@
 The Dev Guide holds most of the documentation for the Android
 platform, except for reference material on the framework API.  
 For API specifications, go to the 
-<a href="{@docRoot}reference/packages.html">Reference</a> tab above.
+<a href="{@docRoot}reference/packages.html">Reference</a>.
 </p>  
 
 <p>
 As you can see in the panel on the left, the Dev Guide is 
-divided into a handful of sections.  They are:
+divided into several sections:
 <p>
 
 <dl>
@@ -34,6 +34,10 @@
 designing a user interface and setting up resources to storing 
 data and using permissions &mdash; as needed.</dd>
 
+<dt><b>Android Market Topics</b></dt>
+<dd>Documentation for topics that concern publishing and monetizing applications on Android
+Market, such as how to enforce licensing policies and implement in-app billing.</dd>
+
 <dt><b>Developing</b></dt>
 <dd>Directions for using Android's development and debugging tools, 
 and for testing the results.</dd>
@@ -47,9 +51,9 @@
 applications that perform efficiently and work well for the
 user.</dd>
 
-<dt><b>Tutorials and Samples</b></dt> 
-<dd>Step-by-step tutorials and sample code demonstrating how 
-an Android application is constructed.</dd>
+<dt><b>Web Applications</b></dt> 
+<dd>Documentation about how to create web applications that work seamlessly on Android-powered
+devices and create Android applications that embed web-based content.</dd>
 
 <dt><b>Appendix</b></dt>
 <dd>Reference information and specifications, as well as FAQs, 
@@ -58,16 +62,16 @@
 
 <p>
 The first step in programming for Android is downloading the SDK
-(software development kit).  For instructions and information about
-the kit, go to the <a href="{@docRoot}sdk/index.html">SDK</a> tab above.
+(software development kit).  For instructions and information, visit the <a
+href="{@docRoot}sdk/index.html">SDK</a> tab.
 </p>
 
 <p>
-After you have the SDK, begin by looking over the Dev Guide.
-If you want to start by getting a quick look at the code, the short 
-<a href="{@docRoot}guide/tutorials/hello-world.html">Hello World</a>
-tutorial walks you through a standard "Hello, World" application as 
-it would be written for the Android platform.  The 
+After you have the SDK, begin by looking through the Dev Guide.
+If you want to start by getting a quick look at some code, the 
+<a href="{@docRoot}resources/tutorials/hello-world.html">Hello World</a>
+tutorial walks you through a standard "Hello, World" application to introduce some basics of an
+Android application. The 
 <a href="{@docRoot}guide/topics/fundamentals.html">Application
 Fundamentals</a> documentation is a good place to start for an 
 understanding of the application framework.
@@ -77,7 +81,7 @@
 <p>
 For additional help, consider joining one or more of the Android 
 discussion groups.  Go to the 
-<a href="{@docRoot}resources/community-groups.html">Community</a> pages 
+<a href="{@docRoot}resources/community-groups.html">Developer Forums</a> page
 for more information.
 </p>
 
diff --git a/docs/html/guide/market/billing/billing_reference.jd b/docs/html/guide/market/billing/billing_reference.jd
index 357e58b..c91ca89 100755
--- a/docs/html/guide/market/billing/billing_reference.jd
+++ b/docs/html/guide/market/billing/billing_reference.jd
@@ -40,7 +40,7 @@
 <ul>
   <li><a href="#billing-codes">Android Market Server Response Codes for In-app Billing</a></li>
   <li><a href="#billing-interface">In-app Billing Interface Parameters</a></li>
-  <li><a href="billing-intents">In-app Billing Broadcast Intents</a></li>
+  <li><a href="#billing-intents">In-app Billing Broadcast Intents</a></li>
 </ul>
 
 <h2 id="billing-codes">Android Market Server Response Codes for In-app Billing</h2>
diff --git a/docs/html/guide/topics/resources/providing-resources.jd b/docs/html/guide/topics/resources/providing-resources.jd
index 5d00db1..60030f0 100644
--- a/docs/html/guide/topics/resources/providing-resources.jd
+++ b/docs/html/guide/topics/resources/providing-resources.jd
@@ -494,6 +494,7 @@
       <td>Keyboard availability</td>
       <td>
         <code>keysexposed</code><br/>
+        <code>keyshidden</code><br/>
         <code>keyssoft</code>
       </td>
       <td>
diff --git a/docs/html/guide/tutorials/views/index.jd b/docs/html/guide/tutorials/views/index.jd
index 2248c68..4e76ab9 100644
--- a/docs/html/guide/tutorials/views/index.jd
+++ b/docs/html/guide/tutorials/views/index.jd
@@ -12,7 +12,7 @@
 Of course, we'll discuss some of the given code so that it all makes sense.</p>
 
 <p>Note that a certain amount of knowledge is assumed for these tutorials. If you haven't
-completed the <a href="{@docRoot}guide/tutorials/hello-world.html">Hello, World</a> tutorial, 
+completed the <a href="{@docRoot}resources/tutorials/hello-world.html">Hello, World</a> tutorial, 
 please do so&mdash;it will teach you many things you should know about basic 
 Android development and Eclipse features. More specifically, you should know:</p>
 <ul>
diff --git a/docs/html/resources/dashboard/platform-versions.jd b/docs/html/resources/dashboard/platform-versions.jd
index 21d1ffb..d745cea 100644
--- a/docs/html/resources/dashboard/platform-versions.jd
+++ b/docs/html/resources/dashboard/platform-versions.jd
@@ -52,7 +52,7 @@
 <div class="dashboard-panel">
 
 <img alt="" height="250" width="460"
-src="http://chart.apis.google.com/chart?&cht=p&chs=460x250&chd=t:4.7,7.9,35.2,51.8,0.4&chl=Android%201.5|Android%201.6|Android%202.1|Android%202.2|Android%202.3&chco=c4df9b,6fad0c" />
+src="http://chart.apis.google.com/chart?&cht=p&chs=460x250&chd=t:3.9,6.3,31.4,57.6,0.8&chl=Android%201.5|Android%201.6|Android%202.1|Android%202.2|Android%202.3&chco=c4df9b,6fad0c" />
 
 <table>
 <tr>
@@ -60,14 +60,14 @@
   <th>API Level</th>
   <th>Distribution</th>
 </tr>
-<tr><td>Android 1.5</td><td>3</td><td>4.7%</td></tr> 
-<tr><td>Android 1.6</td><td>4</td><td>7.9%</td></tr> 
-<tr><td>Android 2.1</td><td>7</td><td>35.2%</td></tr> 
-<tr><td>Android 2.2</td><td>8</td><td>51.8%</td></tr> 
-<tr><td>Android 2.3</td><td>9</td><td>0.4%</td></tr> 
+<tr><td>Android 1.5</td><td>3</td><td>3.9%</td></tr> 
+<tr><td>Android 1.6</td><td>4</td><td>6.3%</td></tr> 
+<tr><td>Android 2.1</td><td>7</td><td>31.4%</td></tr> 
+<tr><td>Android 2.2</td><td>8</td><td>57.6%</td></tr> 
+<tr><td>Android 2.3</td><td>9</td><td>0.8%</td></tr> 
 </table>
 
-<p><em>Data collected during two weeks ending on January 4, 2011</em></p>
+<p><em>Data collected during two weeks ending on February 2, 2011</em></p>
 <!--
 <p style="font-size:.9em">* <em>Other: 0.1% of devices running obsolete versions</em></p>
 -->
@@ -96,9 +96,9 @@
 <div class="dashboard-panel">
 
 <img alt="" height="250" width="660" style="padding:5px;background:#fff"
-src="http://chart.apis.google.com/chart?&cht=lc&chs=660x250&chxt=x,x,y,r&chxr=0,0,12|1,0,12|2,0,100|3,0,100&chxl=0%3A%7C07/01%7C07/15%7C08/01%7C08/15%7C09/01%7C09/15%7C10/01%7C10/15%7C11/01%7C11/15%7C12/01%7C12/15%7C01/01%7C1%3A%7C2010%7C%7C%7C%7C%7C%7C%7C%7C%7C%7C%7C%7C2011%7C2%3A%7C0%25%7C25%25%7C50%25%7C75%25%7C100%25%7C3%3A%7C0%25%7C25%25%7C50%25%7C75%25%7C100%25&chxp=0,0,1,2,3,4,5,6,7,8,9,10,11,12&chxtc=0,5&chd=t:99.7,99.8,99.8,99.7,99.8,99.9,99.9,99.9,100.0,99.9,99.8,99.7,99.6|78.4,80.9,84.3,86.5,87.9,89.2,90.2,91.1,92.0,92.7,93.4,94.1,94.8|54.9,58.8,64.0,68.1,70.3,72.1,73.8,75.3,77.4,79.6,82.2,84.4,86.8|1.8,3.3,4.3,11.3,27.8,32.1,33.4,34.5,37.1,40.5,44.3,47.7,51.4&chm=tAndroid 1.5,7caa36,0,0,15,,t::-5|b,c3df9b,0,1,0|tAndroid 1.6,5b831d,1,0,15,,t::-5|b,aadb5e,1,2,0|tAndroid 2.1,38540b,2,0,15,,t::-5|b,91da1e,2,3,0|tAndroid 2.2,131d02,3,3,15,,t::-5|B,6fad0c,3,4,0&chg=7,25&chdl=Android 1.5|Android 1.6|Android 2.1|Android 2.2&chco=add274,94d134,73ad18,507d08" />
+src="http://chart.apis.google.com/chart?&cht=lc&chs=660x250&chxt=x,x,y,r&chxr=0,0,12|1,0,12|2,0,100|3,0,100&chxl=0%3A%7C08/01%7C08/15%7C09/01%7C09/15%7C10/01%7C10/15%7C11/01%7C11/15%7C12/01%7C12/15%7C01/01%7C01/15%7C02/01%7C1%3A%7C2010%7C%7C%7C%7C%7C%7C%7C%7C%7C%7C2011%7C%7C2011%7C2%3A%7C0%25%7C25%25%7C50%25%7C75%25%7C100%25%7C3%3A%7C0%25%7C25%25%7C50%25%7C75%25%7C100%25&chxp=0,0,1,2,3,4,5,6,7,8,9,10,11,12&chxtc=0,5&chd=t:99.8,99.7,99.8,99.9,99.9,99.9,100.0,99.9,99.8,99.7,99.6,99.4,99.1|84.3,86.5,87.9,89.2,90.2,91.1,92.0,92.7,93.4,94.1,94.8,95.1,95.2|64.0,68.1,70.3,72.1,73.8,75.3,77.4,79.6,82.2,84.4,86.8,87.8,88.9|4.3,11.3,27.8,32.1,33.4,34.5,37.1,40.5,44.3,47.7,51.4,53.8,57.5&chm=tAndroid 1.5,7caa36,0,0,15,,t::-5|b,c3df9b,0,1,0|tAndroid 1.6,5b831d,1,0,15,,t::-5|b,aadb5e,1,2,0|tAndroid 2.1,38540b,2,0,15,,t::-5|b,91da1e,2,3,0|tAndroid 2.2,131d02,3,1,15,,t::-5|B,6fad0c,3,4,0&chg=7,25&chdl=Android 1.5|Android 1.6|Android 2.1|Android 2.2&chco=add274,94d134,73ad18,507d08" />
 
-<p><em>Last historical dataset collected during two weeks ending on January 4, 2011</em></p>
+<p><em>Last historical dataset collected during two weeks ending on February 2, 2011</em></p>
 
 
 </div><!-- end dashboard-panel -->
diff --git a/docs/html/sdk/oem-usb.jd b/docs/html/sdk/oem-usb.jd
index 14015f5..e64c8d2 100644
--- a/docs/html/sdk/oem-usb.jd
+++ b/docs/html/sdk/oem-usb.jd
@@ -12,18 +12,18 @@
 </div>
 
 <p>If you are developing on Windows and would like to connect an Android-powered device
-  to test your applications, then you need to install the appropriate USB driver. This document
-provides links to the web sites for several device original equipment manufacturers (OEMs),
+to test your applications, then you need to install the appropriate USB driver. This document
+provides links to the web sites for several original equipment manufacturers (OEMs),
 where you can download the appropriate USB driver for your device. However, this list is
 not exhaustive for all available Android-powered devices.</p>
 
-<p>If your device is one of the Android Developer Phones (ADP), a Nexus One, or a Nexus S,
-then you should instead use the <a href="{@docRoot}sdk/win-usb.html">Google USB Driver</a>.</p>
+<p>If you're developing on Mac OS X or Linux, then you probably don't need to install a USB driver.
+Refer to <a href="{@docRoot}guide/developing/device.html#setting-up">Setting up a Device</a> to
+start development with a device.</p>
 
-<p class="note"><strong>Note:</strong> If you're developing on Mac OS X or Linux, then you probably
-  don't need to install a USB driver. Refer to <a 
-  href="{@docRoot}guide/developing/device.html#setting-up">Setting up a Device</a> to start
-  development with a device.</p>
+<p class="note"><strong>Note:</strong> If your device is one of the Android Developer Phones
+(purchased from the Android Market publisher site), a Nexus One, or a Nexus S, then you should
+use the <a href="{@docRoot}sdk/win-usb.html">Google USB Driver</a>, instead of an OEM driver.</p>
 
 <p>For instructions about how to install the driver on Windows, follow the guide for <a
  href="{@docRoot}sdk/win-usb.html#InstallingDriver">Installing the USB Driver</a>.</p>
@@ -38,24 +38,44 @@
     </td></tr>
 
 <tr><td>Dell</td>	<td>
-      <a href="http://support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml">http://support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml</a>  </td></tr>
+      <a
+href="http://support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml">http://
+support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml</a>  </td></tr>
 
 <tr><td>Foxconn</td>	<td><a
 href="http://drivers.cmcs.com.tw/">http://drivers.cmcs.com.tw/</a></td>
-</tr><tr><td>Garmin-Asus</td>	<td><a
+</tr>
+  <tr>
+    <td>
+      Fujitsu Toshiba
+    </td>
+    <td><a
+href="http://www.fmworld.net/product/phone/sp/android/develop/">http://www.fmworld.net/product/phone/sp/android/develop/</a>
+    </td>
+  </tr>
+  <tr><td>
+       Garmin-Asus
+    </td>	<td><a
 href="https://www.garminasus.com/en_US/support/pcsync/">https://www.garminasus.com/en_US/support/
 pcsync/</a></td>
-</tr><tr><td>HTC</td>	<td><a href="http://www.htc.com ">http://www.htc.com </a> <br>Click on the
+</tr><tr><td>HTC</td>	<td><a href="http://www.htc.com">http://www.htc.com </a> <br>Click on the
 support tab to select your products/device.  Different regions will have different links.</td>
 </tr>
 <tr><td>Huawei</td>	<td><a
-href="http://www.huaweidevice.com/worldwide/downloadCenter.do?method=list&flay=software&directoryId=
-20&treeId=0">http://www.huaweidevice.com/worldwide/downloadCenter.do?method=list&flay=software&
+href="http://www.huaweidevice.com/worldwide/downloadCenter.do?method=list&flay=software&directoryId=20&treeId=0">http://www.huaweidevice.com/worldwide/downloadCenter.do?method=list&flay=software&
 directoryId=20&treeId=0</a></td>
 </tr><tr><td>KT Tech</td>	<td><a
 href="http://www.kttech.co.kr/cscenter/download05.asp">http://www.kttech.co.kr/cscenter/download05.
 asp</a> for EV-S100(Take)</td>
-</tr><tr><td>LGE</td>	<td><a
+</tr>
+  <tr>
+    <td>
+      Kyocera
+    </td>
+    <td><a href="http://www.kyocera-wireless.com/">http://www.kyocera-wireless.com/</a>
+    </td>
+  </tr>
+  <tr><td>LGE</td>	<td><a
 href="http://www.lg.com/us/mobile-phones/mobile-support/mobile-lg-mobile-phone-support.jsp">http://
 www.lg.com/us/mobile-phones/mobile-support/mobile-lg-mobile-phone-support.jsp</a></td>
 </tr><tr><td>Motorola</td>	<td><a
diff --git a/docs/html/sitemap.txt b/docs/html/sitemap.txt
index f11dbc8..0298a8e 100644
--- a/docs/html/sitemap.txt
+++ b/docs/html/sitemap.txt
@@ -1,3 +1,4 @@
+http://developer.android.com/
 http://developer.android.com/index.html
 http://developer.android.com/sdk/index.html
 http://developer.android.com/guide/index.html
@@ -7,6 +8,8 @@
 http://developer.android.com/resources/dashboard/platform-versions.html
 http://developer.android.com/license.html
 http://developer.android.com/sdk/installing.html
+http://developer.android.com/sdk/android-3.0-highlights.html
+http://developer.android.com/sdk/preview/index.html
 http://developer.android.com/sdk/adding-components.html
 http://developer.android.com/sdk/android-2.3.html
 http://developer.android.com/sdk/android-2.3-highlights.html
@@ -23,6 +26,7 @@
 http://developer.android.com/sdk/eclipse-adt.html
 http://developer.android.com/sdk/ndk/index.html
 http://developer.android.com/sdk/ndk/overview.html
+http://developer.android.com/sdk/oem-usb.html
 http://developer.android.com/sdk/requirements.html
 http://developer.android.com/sdk/older_releases.html
 http://developer.android.com/guide/basics/what-is-android.html
@@ -104,6 +108,16 @@
 http://developer.android.com/guide/topics/testing/contentprovider_testing.html
 http://developer.android.com/guide/topics/testing/service_testing.html
 http://developer.android.com/guide/topics/testing/what_to_test.html
+http://developer.android.com/guide/publishing/licensing.html
+http://developer.android.com/guide/market/billing/index.html
+http://developer.android.com/guide/market/billing/billing_about.html
+http://developer.android.com/guide/market/billing/billing_overview.html
+http://developer.android.com/guide/market/billing/billing_integrate.html
+http://developer.android.com/guide/market/billing/billing_best_practices.html
+http://developer.android.com/guide/market/billing/billing_testing.html
+http://developer.android.com/guide/market/billing/billing_admin.html
+http://developer.android.com/guide/market/billing/billing_reference.html
+http://developer.android.com/guide/appendix/market-filters.html
 http://developer.android.com/guide/developing/eclipse-adt.html
 http://developer.android.com/guide/developing/other-ide.html
 http://developer.android.com/guide/developing/device.html
@@ -133,13 +147,18 @@
 http://developer.android.com/guide/developing/tools/zipalign.html
 http://developer.android.com/guide/publishing/app-signing.html
 http://developer.android.com/guide/publishing/versioning.html
-http://developer.android.com/guide/publishing/licensing.html
 http://developer.android.com/guide/publishing/preparing.html
 http://developer.android.com/guide/publishing/publishing.html
 http://developer.android.com/guide/practices/compatibility.html
 http://developer.android.com/guide/practices/screens_support.html
 http://developer.android.com/guide/practices/ui_guidelines/index.html
 http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
+http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html
+http://developer.android.com/guide/practices/ui_guidelines/icon_design_menu.html
+http://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html
+http://developer.android.com/guide/practices/ui_guidelines/icon_design_tab.html
+http://developer.android.com/guide/practices/ui_guidelines/icon_design_dialog.html
+http://developer.android.com/guide/practices/ui_guidelines/icon_design_list.html
 http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
 http://developer.android.com/guide/practices/ui_guidelines/activity_task_design.html
 http://developer.android.com/guide/practices/ui_guidelines/menu_design.html
@@ -152,13 +171,85 @@
 http://developer.android.com/guide/webapps/debugging.html
 http://developer.android.com/guide/webapps/best-practices.html
 http://developer.android.com/guide/appendix/api-levels.html
-http://developer.android.com/guide/appendix/market-filters.html
 http://developer.android.com/guide/appendix/install-location.html
 http://developer.android.com/guide/appendix/media-formats.html
 http://developer.android.com/guide/appendix/g-app-intents.html
 http://developer.android.com/guide/appendix/glossary.html
-http://developer.android.com/guide/tutorials/hello-world.html
 http://developer.android.com/resources/community-groups.html
+http://developer.android.com/resources/community-more.html
+http://developer.android.com/resources/dashboard/screens.html
+http://developer.android.com/resources/articles/index.html
+http://developer.android.com/resources/articles/avoiding-memory-leaks.html
+http://developer.android.com/resources/articles/backward-compatibility.html
+http://developer.android.com/resources/articles/can-i-use-this-intent.html
+http://developer.android.com/resources/articles/creating-input-method.html
+http://developer.android.com/resources/articles/drawable-mutations.html
+http://developer.android.com/resources/articles/faster-screen-orientation-change.html
+http://developer.android.com/resources/articles/future-proofing.html
+http://developer.android.com/resources/articles/gestures.html
+http://developer.android.com/resources/articles/glsurfaceview.html
+http://developer.android.com/resources/articles/layout-tricks-reuse.html
+http://developer.android.com/resources/articles/layout-tricks-efficiency.html
+http://developer.android.com/resources/articles/layout-tricks-stubs.html
+http://developer.android.com/resources/articles/layout-tricks-merge.html
+http://developer.android.com/resources/articles/listview-backgrounds.html
+http://developer.android.com/resources/articles/live-folders.html
+http://developer.android.com/resources/articles/live-wallpapers.html
+http://developer.android.com/resources/articles/on-screen-inputs.html
+http://developer.android.com/resources/articles/painless-threading.html
+http://developer.android.com/resources/articles/qsb.html
+http://developer.android.com/resources/articles/speech-input.html
+http://developer.android.com/resources/articles/touch-mode.html
+http://developer.android.com/resources/articles/track-mem.html
+http://developer.android.com/resources/articles/ui-1.5.html
+http://developer.android.com/resources/articles/ui-1.6.html
+http://developer.android.com/resources/articles/timed-ui-updates.html
+http://developer.android.com/resources/articles/tts.html
+http://developer.android.com/resources/articles/contacts.html
+http://developer.android.com/resources/articles/using-webviews.html
+http://developer.android.com/resources/articles/wikinotes-linkify.html
+http://developer.android.com/resources/articles/wikinotes-intents.html
+http://developer.android.com/resources/articles/window-bg-speed.html
+http://developer.android.com/resources/articles/zipalign.html
+http://developer.android.com/resources/tutorials/hello-world.html
+http://developer.android.com/resources/tutorials/views/index.html
+http://developer.android.com/resources/tutorials/localization/index.html
+http://developer.android.com/resources/tutorials/testing/helloandroid_test.html
+http://developer.android.com/resources/tutorials/notepad/index.html
+http://developer.android.com/resources/tutorials/testing/activity_test.html
+http://developer.android.com/resources/samples/get.html
+http://developer.android.com/resources/samples/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/index.html
+http://developer.android.com/resources/samples/AccessibilityService/index.html
+http://developer.android.com/resources/samples/ApiDemos/index.html
+http://developer.android.com/resources/samples/BackupRestore/index.html
+http://developer.android.com/resources/samples/BluetoothChat/index.html
+http://developer.android.com/resources/samples/BusinessCard/index.html
+http://developer.android.com/resources/samples/ContactManager/index.html
+http://developer.android.com/resources/samples/Home/index.html
+http://developer.android.com/resources/samples/JetBoy/index.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/index.html
+http://developer.android.com/resources/samples/LunarLander/index.html
+http://developer.android.com/resources/samples/MultiResolution/index.html
+http://developer.android.com/resources/samples/NFCDemo/index.html
+http://developer.android.com/resources/samples/NotePad/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/index.html
+http://developer.android.com/resources/samples/SipDemo/index.html
+http://developer.android.com/resources/samples/Snake/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/index.html
+http://developer.android.com/resources/samples/Spinner/index.html
+http://developer.android.com/resources/samples/SpinnerTest/index.html
+http://developer.android.com/resources/samples/TicTacToeLib/index.html
+http://developer.android.com/resources/samples/TicTacToeMain/index.html
+http://developer.android.com/resources/samples/Wiktionary/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/index.html
+http://developer.android.com/resources/faq/commontasks.html
+http://developer.android.com/resources/faq/troubleshooting.html
+http://developer.android.com/resources/faq/index.html
+http://developer.android.com/resources/faq/framework.html
+http://developer.android.com/resources/faq/licensingandoss.html
+http://developer.android.com/resources/faq/security.html
 http://developer.android.com/reference/classes.html
 http://developer.android.com/reference/android/package-summary.html
 http://developer.android.com/reference/android/accessibilityservice/package-summary.html
@@ -312,83 +403,17 @@
 http://developer.android.com/reference/org/xmlpull/v1/sax2/package-summary.html
 http://developer.android.com/reference/java/lang/ref/ReferenceQueue.html
 http://developer.android.com/reference/org/apache/http/message/AbstractHttpMessage.html
-http://developer.android.com/resources/community-more.html
-http://developer.android.com/resources/dashboard/screens.html
-http://developer.android.com/resources/articles/index.html
-http://developer.android.com/resources/articles/avoiding-memory-leaks.html
-http://developer.android.com/resources/articles/backward-compatibility.html
-http://developer.android.com/resources/articles/can-i-use-this-intent.html
-http://developer.android.com/resources/articles/creating-input-method.html
-http://developer.android.com/resources/articles/drawable-mutations.html
-http://developer.android.com/resources/articles/faster-screen-orientation-change.html
-http://developer.android.com/resources/articles/future-proofing.html
-http://developer.android.com/resources/articles/gestures.html
-http://developer.android.com/resources/articles/glsurfaceview.html
-http://developer.android.com/resources/articles/layout-tricks-reuse.html
-http://developer.android.com/resources/articles/layout-tricks-efficiency.html
-http://developer.android.com/resources/articles/layout-tricks-stubs.html
-http://developer.android.com/resources/articles/layout-tricks-merge.html
-http://developer.android.com/resources/articles/listview-backgrounds.html
-http://developer.android.com/resources/articles/live-folders.html
-http://developer.android.com/resources/articles/live-wallpapers.html
-http://developer.android.com/resources/articles/on-screen-inputs.html
-http://developer.android.com/resources/articles/painless-threading.html
-http://developer.android.com/resources/articles/qsb.html
-http://developer.android.com/resources/articles/speech-input.html
-http://developer.android.com/resources/articles/touch-mode.html
-http://developer.android.com/resources/articles/track-mem.html
-http://developer.android.com/resources/articles/ui-1.5.html
-http://developer.android.com/resources/articles/ui-1.6.html
-http://developer.android.com/resources/articles/timed-ui-updates.html
-http://developer.android.com/resources/articles/tts.html
-http://developer.android.com/resources/articles/contacts.html
-http://developer.android.com/resources/articles/using-webviews.html
-http://developer.android.com/resources/articles/wikinotes-linkify.html
-http://developer.android.com/resources/articles/wikinotes-intents.html
-http://developer.android.com/resources/articles/window-bg-speed.html
-http://developer.android.com/resources/articles/zipalign.html
-http://developer.android.com/resources/tutorials/hello-world.html
-http://developer.android.com/resources/tutorials/views/index.html
-http://developer.android.com/resources/tutorials/localization/index.html
-http://developer.android.com/resources/tutorials/testing/helloandroid_test.html
-http://developer.android.com/resources/tutorials/notepad/index.html
-http://developer.android.com/resources/tutorials/testing/activity_test.html
-http://developer.android.com/resources/samples/get.html
-http://developer.android.com/resources/samples/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/index.html
-http://developer.android.com/resources/samples/AccessibilityService/index.html
-http://developer.android.com/resources/samples/ApiDemos/index.html
-http://developer.android.com/resources/samples/BackupRestore/index.html
-http://developer.android.com/resources/samples/BluetoothChat/index.html
-http://developer.android.com/resources/samples/BusinessCard/index.html
-http://developer.android.com/resources/samples/ContactManager/index.html
-http://developer.android.com/resources/samples/Home/index.html
-http://developer.android.com/resources/samples/JetBoy/index.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/index.html
-http://developer.android.com/resources/samples/LunarLander/index.html
-http://developer.android.com/resources/samples/MultiResolution/index.html
-http://developer.android.com/resources/samples/NFCDemo/index.html
-http://developer.android.com/resources/samples/NotePad/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/index.html
-http://developer.android.com/resources/samples/SipDemo/index.html
-http://developer.android.com/resources/samples/Snake/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/index.html
-http://developer.android.com/resources/samples/Spinner/index.html
-http://developer.android.com/resources/samples/SpinnerTest/index.html
-http://developer.android.com/resources/samples/TicTacToeLib/index.html
-http://developer.android.com/resources/samples/TicTacToeMain/index.html
-http://developer.android.com/resources/samples/Wiktionary/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/index.html
-http://developer.android.com/resources/faq/commontasks.html
-http://developer.android.com/resources/faq/troubleshooting.html
-http://developer.android.com/resources/faq/index.html
-http://developer.android.com/resources/faq/framework.html
-http://developer.android.com/resources/faq/licensingandoss.html
-http://developer.android.com/resources/faq/security.html
-http://developer.android.com/sdk/api_diff/9/changes/jdiff_topleftframe.html
-http://developer.android.com/sdk/api_diff/9/changes/alldiffs_index_all.html
-http://developer.android.com/sdk/api_diff/9/changes/changes-summary.html
+http://developer.android.com/reference/android/app/NativeActivity.html
+http://developer.android.com/reference/android/opengl/GLSurfaceView.html
+http://developer.android.com/reference/android/graphics/Bitmap.html
+http://developer.android.com/sdk/api_diff/3/changes.html
+http://developer.android.com/sdk/android-1.5-highlights.html
+http://developer.android.com/reference/android/widget/SlidingDrawer.html
+http://developer.android.com/reference/android/widget/HorizontalScrollView.html
+http://developer.android.com/reference/android/provider/LiveFolders.html
+http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html
+http://developer.android.com/reference/android/speech/RecognizerIntent.html
+http://developer.android.com/reference/android/hardware/SensorManager.html
 http://developer.android.com/sdk/api_diff/6/changes.html
 http://developer.android.com/sdk/android-2.0-highlights.html
 http://developer.android.com/reference/android/widget/QuickContactBadge.html
@@ -398,9 +423,16 @@
 http://developer.android.com/reference/android/app/Activity.html
 http://developer.android.com/reference/android/provider/Contacts.html
 http://developer.android.com/sdk/api_diff/5/changes.html
-http://developer.android.com/reference/android/app/NativeActivity.html
-http://developer.android.com/reference/android/graphics/Bitmap.html
-http://developer.android.com/reference/android/opengl/GLSurfaceView.html
+http://developer.android.com/reference/android/view/KeyEvent.html
+http://developer.android.com/reference/android/preference/Preference.html
+http://developer.android.com/reference/android/app/backup/BackupAgentHelper.html
+http://developer.android.com/sdk/api_diff/9/changes/jdiff_topleftframe.html
+http://developer.android.com/sdk/api_diff/9/changes/alldiffs_index_all.html
+http://developer.android.com/sdk/api_diff/9/changes/changes-summary.html
+http://developer.android.com/reference/android/widget/AdapterView.html
+http://developer.android.com/reference/android/widget/EditText.html
+http://developer.android.com/reference/android/widget/LinearLayout.html
+http://developer.android.com/reference/android/widget/ImageButton.html
 http://developer.android.com/reference/android/net/sip/SipManager.html
 http://developer.android.com/reference/android/nfc/NfcAdapter.html
 http://developer.android.com/reference/android/nfc/NdefMessage.html
@@ -429,7 +461,6 @@
 http://developer.android.com/reference/android/view/ViewConfiguration.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/SecureView.html
 http://developer.android.com/reference/android/view/InputEvent.html
-http://developer.android.com/reference/android/view/KeyEvent.html
 http://developer.android.com/reference/android/view/MotionEvent.html
 http://developer.android.com/reference/android/view/InputDevice.html
 http://developer.android.com/reference/android/view/inputmethod/BaseInputConnection.html
@@ -474,16 +505,6 @@
 http://developer.android.com/reference/java/lang/String.html
 http://developer.android.com/reference/java/text/Normalizer.html
 http://developer.android.com/reference/java/text/Normalizer.Form.html
-http://developer.android.com/sdk/api_diff/7/changes.html
-http://developer.android.com/reference/android/app/WallpaperInfo.html
-http://developer.android.com/reference/android/app/WallpaperManager.html
-http://developer.android.com/reference/android/telephony/SignalStrength.html
-http://developer.android.com/reference/android/telephony/PhoneStateListener.html
-http://developer.android.com/reference/android/widget/RemoteViews.html
-http://developer.android.com/reference/android/view/ViewGroup.html
-http://developer.android.com/reference/android/webkit/WebStorage.html
-http://developer.android.com/reference/android/webkit/GeolocationPermissions.html
-http://developer.android.com/reference/android/webkit/WebChromeClient.html
 http://developer.android.com/sdk/api_diff/8/changes.html
 http://developer.android.com/sdk/android-2.2-highlights.html
 http://developer.android.com/reference/android/opengl/ETC1.html
@@ -496,7 +517,6 @@
 http://developer.android.com/reference/android/media/MediaScannerConnection.OnScanCompletedListener.html
 http://developer.android.com/reference/android/speech/RecognitionService.html
 http://developer.android.com/reference/android/speech/RecognitionListener.html
-http://developer.android.com/reference/android/speech/RecognizerIntent.html
 http://developer.android.com/reference/android/media/ThumbnailUtils.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html
 http://developer.android.com/reference/android/app/UiModeManager.html
@@ -506,152 +526,257 @@
 http://developer.android.com/reference/android/content/ContentResolver.html
 http://developer.android.com/reference/android/app/ActivityManager.html
 http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html
+http://developer.android.com/sdk/api_diff/7/changes.html
+http://developer.android.com/reference/android/app/WallpaperInfo.html
+http://developer.android.com/reference/android/app/WallpaperManager.html
+http://developer.android.com/reference/android/telephony/SignalStrength.html
+http://developer.android.com/reference/android/telephony/PhoneStateListener.html
+http://developer.android.com/reference/android/widget/RemoteViews.html
+http://developer.android.com/reference/android/view/ViewGroup.html
+http://developer.android.com/reference/android/webkit/WebStorage.html
+http://developer.android.com/reference/android/webkit/GeolocationPermissions.html
+http://developer.android.com/reference/android/webkit/WebChromeClient.html
+http://developer.android.com/reference/android/test/suitebuilder/annotation/LargeTest.html
+http://developer.android.com/reference/android/test/suitebuilder/annotation/MediumTest.html
+http://developer.android.com/reference/android/test/suitebuilder/annotation/SmallTest.html
+http://developer.android.com/reference/android/os/Process.html
+http://developer.android.com/reference/android/widget/TextView.html
+http://developer.android.com/reference/android/Manifest.permission.html
 http://developer.android.com/sdk/api_diff/4/changes.html
 http://developer.android.com/sdk/android-1.6-highlights.html
 http://developer.android.com/reference/android/view/View.OnClickListener.html
 http://developer.android.com/reference/android/app/SearchManager.html
 http://developer.android.com/reference/android/telephony/SmsManager.html
 http://developer.android.com/reference/android/util/DisplayMetrics.html
-http://developer.android.com/reference/android/Manifest.permission.html
-http://developer.android.com/sdk/api_diff/3/changes.html
-http://developer.android.com/sdk/android-1.5-highlights.html
-http://developer.android.com/reference/android/widget/SlidingDrawer.html
-http://developer.android.com/reference/android/widget/HorizontalScrollView.html
-http://developer.android.com/reference/android/provider/LiveFolders.html
-http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html
-http://developer.android.com/reference/android/hardware/SensorManager.html
-http://developer.android.com/reference/android/test/suitebuilder/annotation/LargeTest.html
-http://developer.android.com/reference/android/test/suitebuilder/annotation/MediumTest.html
-http://developer.android.com/reference/android/test/suitebuilder/annotation/SmallTest.html
-http://developer.android.com/reference/android/os/Process.html
-http://developer.android.com/reference/android/widget/TextView.html
-http://developer.android.com/reference/android/widget/EditText.html
-http://developer.android.com/reference/android/widget/Button.html
+http://developer.android.com/sdk/RELEASENOTES.html
+http://developer.android.com/sdk/OLD_RELEASENOTES.html
+http://developer.android.com/sdk/download.html?v=archives/android-sdk-windows-0.9_beta.zip
+http://developer.android.com/sdk/download.html?v=archives/android-sdk-mac_x86-0.9_beta.zip
+http://developer.android.com/sdk/download.html?v=archives/android-sdk-linux_x86-0.9_beta.zip
+http://developer.android.com/sdk/download.html?v=archives/android-sdk_m5-rc15_windows.zip
+http://developer.android.com/sdk/download.html?v=archives/android-sdk_m5-rc15_mac-x86.zip
+http://developer.android.com/sdk/download.html?v=archives/android-sdk_m5-rc15_linux-x86.zip
+http://developer.android.com/sdk/download.html?v=archives/android-sdk_m5-rc14_windows.zip
+http://developer.android.com/sdk/download.html?v=archives/android-sdk_m5-rc14_mac-x86.zip
+http://developer.android.com/sdk/download.html?v=archives/android-sdk_m5-rc14_linux-x86.zip
+http://developer.android.com/sdk/download.html?v=archives/android_sdk_windows_m3-rc37a.zip
+http://developer.android.com/sdk/download.html?v=archives/android_sdk_darwin_m3-rc37a.zip
+http://developer.android.com/sdk/download.html?v=archives/android_sdk_linux_m3-rc37a.zip
+http://developer.android.com/sdk/download.html?v=archives/android_sdk_windows_m3-rc22a.zip
+http://developer.android.com/sdk/download.html?v=archives/android_sdk_darwin_m3-rc22a.zip
+http://developer.android.com/sdk/download.html?v=archives/android_sdk_linux_m3-rc22a.zip
+http://developer.android.com/sdk/download.html?v=archives/android_sdk_windows_m3-rc20a.zip
+http://developer.android.com/sdk/download.html?v=archives/android_sdk_darwin_m3-rc20a.zip
+http://developer.android.com/sdk/download.html?v=archives/android_sdk_linux_m3-rc20a.zip
+http://developer.android.com/reference/javax/xml/parsers/DocumentBuilder.html
+http://developer.android.com/reference/javax/xml/parsers/DocumentBuilderFactory.html
+http://developer.android.com/reference/javax/xml/parsers/SAXParser.html
+http://developer.android.com/reference/javax/xml/parsers/SAXParserFactory.html
+http://developer.android.com/reference/javax/xml/parsers/ParserConfigurationException.html
+http://developer.android.com/reference/javax/xml/parsers/FactoryConfigurationError.html
+http://developer.android.com/reference/javax/xml/parsers/package-descr.html
+http://developer.android.com/reference/org/xml/sax/XMLReader.html
+http://developer.android.com/reference/org/xmlpull/v1/sax2/Driver.html
+http://developer.android.com/reference/android/text/format/DateFormat.html
+http://developer.android.com/reference/android/text/format/DateUtils.html
+http://developer.android.com/reference/android/text/format/Formatter.html
+http://developer.android.com/reference/android/text/format/Time.html
+http://developer.android.com/reference/android/view/MenuInflater.html
+http://developer.android.com/reference/android/view/Menu.html
+http://developer.android.com/reference/java/security/interfaces/DSAKey.html
+http://developer.android.com/reference/java/security/interfaces/DSAKeyPairGenerator.html
+http://developer.android.com/reference/java/security/interfaces/DSAParams.html
+http://developer.android.com/reference/java/security/interfaces/DSAPrivateKey.html
+http://developer.android.com/reference/java/security/interfaces/DSAPublicKey.html
+http://developer.android.com/reference/java/security/interfaces/ECKey.html
+http://developer.android.com/reference/java/security/interfaces/ECPrivateKey.html
+http://developer.android.com/reference/java/security/interfaces/ECPublicKey.html
+http://developer.android.com/reference/java/security/interfaces/RSAKey.html
+http://developer.android.com/reference/java/security/interfaces/RSAMultiPrimePrivateCrtKey.html
+http://developer.android.com/reference/java/security/interfaces/RSAPrivateCrtKey.html
+http://developer.android.com/reference/java/security/interfaces/RSAPrivateKey.html
+http://developer.android.com/reference/java/security/interfaces/RSAPublicKey.html
+http://developer.android.com/reference/java/security/interfaces/package-descr.html
+http://developer.android.com/reference/org/xml/sax/AttributeList.html
+http://developer.android.com/reference/org/xml/sax/Attributes.html
+http://developer.android.com/reference/org/xml/sax/ContentHandler.html
+http://developer.android.com/reference/org/xml/sax/DocumentHandler.html
+http://developer.android.com/reference/org/xml/sax/DTDHandler.html
+http://developer.android.com/reference/org/xml/sax/EntityResolver.html
+http://developer.android.com/reference/org/xml/sax/ErrorHandler.html
+http://developer.android.com/reference/org/xml/sax/Locator.html
+http://developer.android.com/reference/org/xml/sax/Parser.html
+http://developer.android.com/reference/org/xml/sax/XMLFilter.html
+http://developer.android.com/reference/org/xml/sax/HandlerBase.html
+http://developer.android.com/reference/org/xml/sax/InputSource.html
+http://developer.android.com/reference/org/xml/sax/SAXException.html
+http://developer.android.com/reference/org/xml/sax/SAXNotRecognizedException.html
+http://developer.android.com/reference/org/xml/sax/SAXNotSupportedException.html
+http://developer.android.com/reference/org/xml/sax/SAXParseException.html
+http://developer.android.com/reference/org/xml/sax/package-descr.html
+http://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html
 http://developer.android.com/reference/android/widget/ListView.html
-http://developer.android.com/reference/android/widget/CheckBox.html
-http://developer.android.com/reference/android/widget/RadioButton.html
-http://developer.android.com/reference/android/widget/Gallery.html
-http://developer.android.com/reference/android/widget/Spinner.html
-http://developer.android.com/reference/android/widget/AutoCompleteTextView.html
-http://developer.android.com/reference/android/widget/ImageSwitcher.html
-http://developer.android.com/reference/android/widget/TextSwitcher.html
-http://developer.android.com/reference/android/widget/LinearLayout.html
-http://developer.android.com/reference/android/widget/FrameLayout.html
-http://developer.android.com/reference/android/widget/RelativeLayout.html
 http://developer.android.com/reference/android/app/ListActivity.html
-http://developer.android.com/reference/android/graphics/Canvas.html
-http://developer.android.com/reference/android/view/SurfaceView.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LabelView.html
-http://developer.android.com/resources/samples/ApiDemos/res/layout/custom_view_1.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NoteEditor.html
-http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html
-http://developer.android.com/reference/android/bluetooth/BluetoothSocket.html
-http://developer.android.com/reference/android/bluetooth/BluetoothServerSocket.html
-http://developer.android.com/reference/java/net/Socket.html
-http://developer.android.com/reference/java/net/ServerSocket.html
-http://developer.android.com/reference/android/bluetooth/BluetoothClass.html
-http://developer.android.com/reference/java/util/UUID.html
-http://developer.android.com/reference/java/io/InputStream.html
-http://developer.android.com/reference/java/io/OutputStream.html
-http://developer.android.com/reference/javax/xml/transform/stream/StreamResult.html
-http://developer.android.com/reference/javax/xml/transform/stream/StreamSource.html
-http://developer.android.com/reference/javax/xml/transform/stream/package-descr.html
-http://developer.android.com/reference/android/content/BroadcastReceiver.html
-http://developer.android.com/reference/android/os/Handler.html
-http://developer.android.com/reference/android/app/Service.html
-http://developer.android.com/reference/android/app/NotificationManager.html
-http://developer.android.com/reference/android/widget/ProgressBar.html
-http://developer.android.com/reference/android/app/ProgressDialog.html
-http://developer.android.com/reference/android/os/Parcelable.html
-http://developer.android.com/reference/android/os/Parcelable.Creator.html
-http://developer.android.com/reference/android/graphics/Rect.html
-http://developer.android.com/reference/android/os/Parcel.html
-http://developer.android.com/reference/android/content/ServiceConnection.html
-http://developer.android.com/reference/android/os/IBinder.html
-http://developer.android.com/reference/android/os/DeadObjectException.html
-http://developer.android.com/reference/android/content/res/Resources.html
-http://developer.android.com/reference/android/text/Html.html
-http://developer.android.com/reference/android/text/TextUtils.html
-http://developer.android.com/reference/java/lang/ref/PhantomReference.html
-http://developer.android.com/reference/java/lang/ref/Reference.html
-http://developer.android.com/reference/java/lang/ref/SoftReference.html
-http://developer.android.com/reference/java/lang/ref/WeakReference.html
-http://developer.android.com/reference/java/lang/Object.html
-http://developer.android.com/reference/java/lang/Class.html
-http://developer.android.com/reference/java/lang/InterruptedException.html
-http://developer.android.com/reference/java/lang/IllegalArgumentException.html
-http://developer.android.com/reference/javax/security/auth/Destroyable.html
-http://developer.android.com/reference/javax/security/auth/AuthPermission.html
-http://developer.android.com/reference/javax/security/auth/PrivateCredentialPermission.html
-http://developer.android.com/reference/javax/security/auth/Subject.html
-http://developer.android.com/reference/javax/security/auth/SubjectDomainCombiner.html
-http://developer.android.com/reference/javax/security/auth/DestroyFailedException.html
-http://developer.android.com/reference/javax/security/auth/package-descr.html
-http://developer.android.com/reference/org/w3c/dom/ls/DOMImplementationLS.html
-http://developer.android.com/reference/org/w3c/dom/ls/LSInput.html
-http://developer.android.com/reference/org/w3c/dom/ls/LSOutput.html
-http://developer.android.com/reference/org/w3c/dom/ls/LSParser.html
-http://developer.android.com/reference/org/w3c/dom/ls/LSParserFilter.html
-http://developer.android.com/reference/org/w3c/dom/ls/LSResourceResolver.html
-http://developer.android.com/reference/org/w3c/dom/ls/LSSerializer.html
-http://developer.android.com/reference/org/w3c/dom/ls/LSException.html
-http://developer.android.com/reference/android/webkit/ConsoleMessage.html
-http://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel.html
-http://developer.android.com/reference/android/util/Log.html
-http://developer.android.com/reference/android/app/DatePickerDialog.OnDateSetListener.html
-http://developer.android.com/reference/android/app/KeyguardManager.OnKeyguardExitResult.html
-http://developer.android.com/reference/android/app/PendingIntent.OnFinished.html
-http://developer.android.com/reference/android/app/SearchManager.OnCancelListener.html
-http://developer.android.com/reference/android/app/SearchManager.OnDismissListener.html
-http://developer.android.com/reference/android/app/TimePickerDialog.OnTimeSetListener.html
-http://developer.android.com/reference/android/app/ActivityGroup.html
-http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html
-http://developer.android.com/reference/android/app/ActivityManager.ProcessErrorStateInfo.html
-http://developer.android.com/reference/android/app/ActivityManager.RecentTaskInfo.html
-http://developer.android.com/reference/android/app/ActivityManager.RunningServiceInfo.html
-http://developer.android.com/reference/android/app/ActivityManager.RunningTaskInfo.html
-http://developer.android.com/reference/android/app/AlarmManager.html
-http://developer.android.com/reference/android/app/AlertDialog.html
-http://developer.android.com/reference/android/app/AlertDialog.Builder.html
-http://developer.android.com/reference/android/app/AliasActivity.html
-http://developer.android.com/reference/android/app/Application.html
-http://developer.android.com/reference/android/app/DatePickerDialog.html
-http://developer.android.com/reference/android/app/Dialog.html
-http://developer.android.com/reference/android/app/ExpandableListActivity.html
-http://developer.android.com/reference/android/app/Instrumentation.html
-http://developer.android.com/reference/android/app/Instrumentation.ActivityMonitor.html
-http://developer.android.com/reference/android/app/Instrumentation.ActivityResult.html
-http://developer.android.com/reference/android/app/IntentService.html
-http://developer.android.com/reference/android/app/KeyguardManager.html
-http://developer.android.com/reference/android/app/KeyguardManager.KeyguardLock.html
-http://developer.android.com/reference/android/app/LauncherActivity.html
-http://developer.android.com/reference/android/app/LauncherActivity.IconResizer.html
-http://developer.android.com/reference/android/app/LauncherActivity.ListItem.html
-http://developer.android.com/reference/android/app/LocalActivityManager.html
-http://developer.android.com/reference/android/app/Notification.html
-http://developer.android.com/reference/android/app/PendingIntent.html
-http://developer.android.com/reference/android/app/SearchableInfo.html
-http://developer.android.com/reference/android/app/TabActivity.html
-http://developer.android.com/reference/android/app/TimePickerDialog.html
-http://developer.android.com/reference/android/app/PendingIntent.CanceledException.html
-http://developer.android.com/reference/android/app/package-descr.html
-http://developer.android.com/reference/android/widget/DatePicker.html
-http://developer.android.com/reference/android/widget/TimePicker.html
-http://developer.android.com/reference/android/test/mock/MockApplication.html
-http://developer.android.com/reference/android/test/mock/MockContentProvider.html
-http://developer.android.com/reference/android/test/mock/MockContentResolver.html
-http://developer.android.com/reference/android/test/mock/MockContext.html
-http://developer.android.com/reference/android/test/mock/MockCursor.html
-http://developer.android.com/reference/android/test/mock/MockDialogInterface.html
-http://developer.android.com/reference/android/test/mock/MockPackageManager.html
-http://developer.android.com/reference/android/test/mock/MockResources.html
-http://developer.android.com/reference/android/test/mock/package-descr.html
+http://developer.android.com/resources/tutorials/views/hello-listview.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
+http://developer.android.com/reference/android/widget/Adapter.html
+http://developer.android.com/reference/android/widget/CursorAdapter.html
 http://developer.android.com/reference/android/database/Cursor.html
-http://developer.android.com/reference/android/content/DialogInterface.html
-http://developer.android.com/reference/android/widget/Toast.html
-http://developer.android.com/reference/android/view/Gravity.html
-http://developer.android.com/reference/android/view/LayoutInflater.html
+http://developer.android.com/reference/android/widget/BaseAdapter.html
+http://developer.android.com/reference/android/app/Dialog.html
+http://developer.android.com/reference/android/app/SearchManager.OnDismissListener.html
+http://developer.android.com/reference/android/app/SearchManager.OnCancelListener.html
+http://developer.android.com/reference/android/os/Bundle.html
 http://developer.android.com/guide/topics/resources/resources-i18n.html
+http://developer.android.com/resources/samples/Snake/res/index.html
+http://developer.android.com/resources/samples/Snake/src/index.html
+http://developer.android.com/resources/samples/Snake/tests/index.html
+http://developer.android.com/resources/samples/Snake/AndroidManifest.html
+http://developer.android.com/reference/javax/microedition/khronos/opengles/GL.html
+http://developer.android.com/reference/javax/microedition/khronos/opengles/GL10.html
+http://developer.android.com/reference/javax/microedition/khronos/opengles/GL10Ext.html
+http://developer.android.com/reference/javax/microedition/khronos/opengles/GL11.html
+http://developer.android.com/reference/javax/microedition/khronos/opengles/GL11Ext.html
+http://developer.android.com/reference/javax/microedition/khronos/opengles/GL11ExtensionPack.html
+http://developer.android.com/reference/android/hardware/Camera.AutoFocusCallback.html
+http://developer.android.com/reference/android/hardware/Camera.ErrorCallback.html
+http://developer.android.com/reference/android/hardware/Camera.OnZoomChangeListener.html
+http://developer.android.com/reference/android/hardware/Camera.PictureCallback.html
+http://developer.android.com/reference/android/hardware/Camera.PreviewCallback.html
+http://developer.android.com/reference/android/hardware/Camera.ShutterCallback.html
+http://developer.android.com/reference/android/hardware/SensorEventListener.html
+http://developer.android.com/reference/android/hardware/SensorListener.html
+http://developer.android.com/reference/android/hardware/Camera.Size.html
+http://developer.android.com/reference/android/hardware/GeomagneticField.html
+http://developer.android.com/reference/android/hardware/SensorEvent.html
+http://developer.android.com/reference/android/hardware/package-descr.html
+http://developer.android.com/reference/android/service/wallpaper/WallpaperService.Engine.html
+http://developer.android.com/reference/java/util/concurrent/locks/Condition.html
+http://developer.android.com/reference/java/util/concurrent/locks/Lock.html
+http://developer.android.com/reference/java/util/concurrent/locks/ReadWriteLock.html
+http://developer.android.com/reference/java/util/concurrent/locks/AbstractOwnableSynchronizer.html
+http://developer.android.com/reference/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.html
+http://developer.android.com/reference/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.ConditionObject.html
+http://developer.android.com/reference/java/util/concurrent/locks/AbstractQueuedSynchronizer.html
+http://developer.android.com/reference/java/util/concurrent/locks/AbstractQueuedSynchronizer.ConditionObject.html
+http://developer.android.com/reference/java/util/concurrent/locks/LockSupport.html
+http://developer.android.com/reference/java/util/concurrent/locks/ReentrantLock.html
+http://developer.android.com/reference/java/util/concurrent/locks/ReentrantReadWriteLock.html
+http://developer.android.com/reference/java/util/concurrent/locks/ReentrantReadWriteLock.ReadLock.html
+http://developer.android.com/reference/java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html
+http://developer.android.com/reference/java/util/concurrent/locks/package-descr.html
+http://developer.android.com/reference/java/lang/Object.html
+http://developer.android.com/reference/android/app/admin/DeviceAdminReceiver.html
+http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html
+http://developer.android.com/reference/android/app/admin/DeviceAdminInfo.html
+http://developer.android.com/reference/android/widget/Toast.html
+http://developer.android.com/reference/android/app/backup/BackupHelper.html
+http://developer.android.com/reference/android/app/backup/BackupAgent.html
+http://developer.android.com/reference/android/app/backup/BackupDataInput.html
+http://developer.android.com/reference/android/app/backup/BackupDataInputStream.html
+http://developer.android.com/reference/android/app/backup/BackupDataOutput.html
+http://developer.android.com/reference/android/app/backup/BackupManager.html
+http://developer.android.com/reference/android/app/backup/FileBackupHelper.html
+http://developer.android.com/reference/android/app/backup/RestoreObserver.html
+http://developer.android.com/reference/android/app/backup/SharedPreferencesBackupHelper.html
+http://developer.android.com/reference/android/app/backup/package-descr.html
+http://developer.android.com/reference/java/io/InputStream.html
+http://developer.android.com/reference/android/content/SharedPreferences.html
+http://developer.android.com/reference/javax/xml/datatype/DatatypeConstants.html
+http://developer.android.com/reference/javax/xml/datatype/DatatypeConstants.Field.html
+http://developer.android.com/reference/javax/xml/datatype/DatatypeFactory.html
+http://developer.android.com/reference/javax/xml/datatype/Duration.html
+http://developer.android.com/reference/javax/xml/datatype/XMLGregorianCalendar.html
+http://developer.android.com/reference/javax/xml/datatype/DatatypeConfigurationException.html
+http://developer.android.com/reference/javax/xml/datatype/package-descr.html
+http://developer.android.com/reference/java/util/concurrent/BlockingDeque.html
+http://developer.android.com/reference/java/util/concurrent/BlockingQueue.html
+http://developer.android.com/reference/java/util/concurrent/Callable.html
+http://developer.android.com/reference/java/util/concurrent/CompletionService.html
+http://developer.android.com/reference/java/util/concurrent/ConcurrentMap.html
+http://developer.android.com/reference/java/util/concurrent/ConcurrentNavigableMap.html
+http://developer.android.com/reference/java/util/concurrent/Delayed.html
+http://developer.android.com/reference/java/util/concurrent/Executor.html
+http://developer.android.com/reference/java/util/concurrent/ExecutorService.html
+http://developer.android.com/reference/java/util/concurrent/Future.html
+http://developer.android.com/reference/java/util/concurrent/RejectedExecutionHandler.html
+http://developer.android.com/reference/java/util/concurrent/RunnableFuture.html
+http://developer.android.com/reference/java/util/concurrent/RunnableScheduledFuture.html
+http://developer.android.com/reference/java/util/concurrent/ScheduledExecutorService.html
+http://developer.android.com/reference/java/util/concurrent/ScheduledFuture.html
+http://developer.android.com/reference/java/util/concurrent/ThreadFactory.html
+http://developer.android.com/reference/java/util/concurrent/AbstractExecutorService.html
+http://developer.android.com/reference/java/util/concurrent/ArrayBlockingQueue.html
+http://developer.android.com/reference/java/util/concurrent/ConcurrentHashMap.html
+http://developer.android.com/reference/java/util/concurrent/ConcurrentLinkedQueue.html
+http://developer.android.com/reference/java/util/concurrent/ConcurrentSkipListSet.html
+http://developer.android.com/reference/java/util/concurrent/CopyOnWriteArrayList.html
+http://developer.android.com/reference/java/util/concurrent/CopyOnWriteArraySet.html
+http://developer.android.com/reference/java/util/concurrent/CountDownLatch.html
+http://developer.android.com/reference/java/util/concurrent/CyclicBarrier.html
+http://developer.android.com/reference/java/util/concurrent/DelayQueue.html
+http://developer.android.com/reference/java/util/concurrent/Exchanger.html
+http://developer.android.com/reference/java/util/concurrent/ExecutorCompletionService.html
+http://developer.android.com/reference/java/util/concurrent/Executors.html
+http://developer.android.com/reference/java/util/concurrent/FutureTask.html
+http://developer.android.com/reference/java/util/concurrent/LinkedBlockingQueue.html
+http://developer.android.com/reference/java/util/concurrent/PriorityBlockingQueue.html
+http://developer.android.com/reference/java/util/concurrent/ScheduledThreadPoolExecutor.html
+http://developer.android.com/reference/java/util/concurrent/Semaphore.html
+http://developer.android.com/reference/java/util/concurrent/SynchronousQueue.html
+http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.html
+http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.AbortPolicy.html
+http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.CallerRunsPolicy.html
+http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.DiscardOldestPolicy.html
+http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.DiscardPolicy.html
+http://developer.android.com/reference/java/util/concurrent/TimeUnit.html
+http://developer.android.com/reference/java/util/concurrent/BrokenBarrierException.html
+http://developer.android.com/reference/java/util/concurrent/CancellationException.html
+http://developer.android.com/reference/java/util/concurrent/ExecutionException.html
+http://developer.android.com/reference/java/util/concurrent/RejectedExecutionException.html
+http://developer.android.com/reference/java/util/concurrent/TimeoutException.html
+http://developer.android.com/reference/java/util/concurrent/package-descr.html
+http://developer.android.com/reference/java/util/Deque.html
+http://developer.android.com/reference/java/util/Queue.html
+http://developer.android.com/reference/java/util/Map.html
+http://developer.android.com/reference/java/lang/Runnable.html
+http://developer.android.com/reference/java/util/NavigableSet.html
+http://developer.android.com/reference/java/util/ArrayList.html
+http://developer.android.com/reference/java/util/Set.html
+http://developer.android.com/reference/java/util/PriorityQueue.html
+http://developer.android.com/reference/android/database/CrossProcessCursor.html
+http://developer.android.com/reference/android/database/AbstractCursor.html
+http://developer.android.com/reference/android/database/AbstractCursor.SelfContentObserver.html
+http://developer.android.com/reference/android/database/AbstractWindowedCursor.html
+http://developer.android.com/reference/android/database/CharArrayBuffer.html
+http://developer.android.com/reference/android/database/ContentObservable.html
+http://developer.android.com/reference/android/database/ContentObserver.html
+http://developer.android.com/reference/android/database/CursorJoiner.html
+http://developer.android.com/reference/android/database/CursorWindow.html
+http://developer.android.com/reference/android/database/CursorWrapper.html
+http://developer.android.com/reference/android/database/DatabaseUtils.html
+http://developer.android.com/reference/android/database/DatabaseUtils.InsertHelper.html
+http://developer.android.com/reference/android/database/DataSetObservable.html
+http://developer.android.com/reference/android/database/DataSetObserver.html
+http://developer.android.com/reference/android/database/MatrixCursor.html
+http://developer.android.com/reference/android/database/MatrixCursor.RowBuilder.html
+http://developer.android.com/reference/android/database/MergeCursor.html
+http://developer.android.com/reference/android/database/Observable.html
+http://developer.android.com/reference/android/database/CursorJoiner.Result.html
+http://developer.android.com/reference/android/database/CursorIndexOutOfBoundsException.html
+http://developer.android.com/reference/android/database/SQLException.html
+http://developer.android.com/reference/android/database/StaleDataException.html
+http://developer.android.com/reference/android/database/package-descr.html
+http://developer.android.com/reference/android/media/JetPlayer.html
+http://developer.android.com/resources/samples/Home/res/index.html
+http://developer.android.com/resources/samples/Home/src/index.html
+http://developer.android.com/resources/samples/Home/AndroidManifest.html
+http://developer.android.com/reference/android/view/View.OnTouchListener.html
+http://developer.android.com/reference/android/view/View.OnKeyListener.html
+http://developer.android.com/reference/javax/xml/namespace/NamespaceContext.html
+http://developer.android.com/reference/javax/xml/namespace/QName.html
+http://developer.android.com/reference/javax/xml/namespace/package-descr.html
+http://developer.android.com/reference/android/provider/SearchRecentSuggestions.html
 http://developer.android.com/reference/android/telephony/CellLocation.html
 http://developer.android.com/reference/android/telephony/NeighboringCellInfo.html
 http://developer.android.com/reference/android/telephony/PhoneNumberFormattingTextWatcher.html
@@ -661,82 +786,465 @@
 http://developer.android.com/reference/android/telephony/SmsMessage.SubmitPdu.html
 http://developer.android.com/reference/android/telephony/SmsMessage.MessageClass.html
 http://developer.android.com/reference/android/telephony/package-descr.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicInteger.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicIntegerArray.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicLong.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicLongArray.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicLongFieldUpdater.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicMarkableReference.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicReference.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicReferenceArray.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicStampedReference.html
-http://developer.android.com/reference/java/util/concurrent/atomic/package-descr.html
-http://developer.android.com/reference/javax/xml/XMLConstants.html
-http://developer.android.com/reference/javax/xml/package-descr.html
-http://developer.android.com/reference/org/apache/http/entity/ContentLengthStrategy.html
-http://developer.android.com/reference/org/apache/http/entity/ContentProducer.html
-http://developer.android.com/reference/org/apache/http/entity/AbstractHttpEntity.html
-http://developer.android.com/reference/org/apache/http/entity/BasicHttpEntity.html
-http://developer.android.com/reference/org/apache/http/entity/BufferedHttpEntity.html
-http://developer.android.com/reference/org/apache/http/entity/ByteArrayEntity.html
-http://developer.android.com/reference/org/apache/http/entity/EntityTemplate.html
-http://developer.android.com/reference/org/apache/http/entity/FileEntity.html
-http://developer.android.com/reference/org/apache/http/entity/HttpEntityWrapper.html
-http://developer.android.com/reference/org/apache/http/entity/InputStreamEntity.html
-http://developer.android.com/reference/org/apache/http/entity/SerializableEntity.html
-http://developer.android.com/reference/org/apache/http/entity/StringEntity.html
-http://developer.android.com/reference/org/apache/http/entity/package-descr.html
+http://developer.android.com/resources/samples/ContactManager/res/index.html
+http://developer.android.com/resources/samples/ContactManager/src/index.html
+http://developer.android.com/resources/samples/ContactManager/AndroidManifest.html
+http://developer.android.com/reference/android/os/Debug.html
+http://developer.android.com/resources/samples/Spinner/res/index.html
+http://developer.android.com/resources/samples/Spinner/src/index.html
+http://developer.android.com/resources/samples/Spinner/AndroidManifest.html
+http://developer.android.com/reference/android/location/LocationListener.html
+http://developer.android.com/reference/java/util/zip/Checksum.html
+http://developer.android.com/reference/java/util/zip/Adler32.html
+http://developer.android.com/reference/java/util/zip/CheckedInputStream.html
+http://developer.android.com/reference/java/util/zip/CheckedOutputStream.html
+http://developer.android.com/reference/java/util/zip/CRC32.html
+http://developer.android.com/reference/java/util/zip/Deflater.html
+http://developer.android.com/reference/java/util/zip/DeflaterInputStream.html
+http://developer.android.com/reference/java/util/zip/DeflaterOutputStream.html
+http://developer.android.com/reference/java/util/zip/GZIPInputStream.html
+http://developer.android.com/reference/java/util/zip/GZIPOutputStream.html
+http://developer.android.com/reference/java/util/zip/Inflater.html
+http://developer.android.com/reference/java/util/zip/InflaterInputStream.html
+http://developer.android.com/reference/java/util/zip/InflaterOutputStream.html
+http://developer.android.com/reference/java/util/zip/ZipEntry.html
+http://developer.android.com/reference/java/util/zip/ZipFile.html
+http://developer.android.com/reference/java/util/zip/ZipInputStream.html
+http://developer.android.com/reference/java/util/zip/ZipOutputStream.html
+http://developer.android.com/reference/java/util/zip/DataFormatException.html
+http://developer.android.com/reference/java/util/zip/ZipException.html
+http://developer.android.com/reference/java/util/zip/ZipError.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteCursorDriver.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.CursorFactory.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteTransactionListener.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteClosable.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteCursor.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteProgram.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteQuery.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteStatement.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteAbortException.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteConstraintException.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteDatabaseCorruptException.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteDiskIOException.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteDoneException.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteException.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteFullException.html
+http://developer.android.com/reference/android/database/sqlite/SQLiteMisuseException.html
+http://developer.android.com/reference/android/database/sqlite/package-descr.html
+http://developer.android.com/reference/android/os/PatternMatcher.html
+http://developer.android.com/reference/javax/xml/validation/Schema.html
+http://developer.android.com/reference/javax/xml/validation/SchemaFactory.html
+http://developer.android.com/reference/javax/xml/validation/SchemaFactoryLoader.html
+http://developer.android.com/reference/javax/xml/validation/TypeInfoProvider.html
+http://developer.android.com/reference/javax/xml/validation/Validator.html
+http://developer.android.com/reference/javax/xml/validation/ValidatorHandler.html
+http://developer.android.com/reference/javax/xml/validation/package-descr.html
+http://developer.android.com/reference/android/webkit/ConsoleMessage.html
+http://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel.html
+http://developer.android.com/reference/android/util/Log.html
+http://developer.android.com/reference/android/content/BroadcastReceiver.html
+http://developer.android.com/reference/android/os/Handler.html
+http://developer.android.com/reference/android/app/Service.html
+http://developer.android.com/reference/android/app/NotificationManager.html
+http://developer.android.com/reference/android/widget/ProgressBar.html
+http://developer.android.com/reference/android/app/ProgressDialog.html
+http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html
+http://developer.android.com/reference/android/view/animation/Interpolator.html
+http://developer.android.com/reference/android/view/animation/AccelerateDecelerateInterpolator.html
+http://developer.android.com/reference/android/view/animation/AccelerateInterpolator.html
+http://developer.android.com/reference/android/view/animation/AlphaAnimation.html
+http://developer.android.com/reference/android/view/animation/Animation.html
+http://developer.android.com/reference/android/view/animation/Animation.Description.html
+http://developer.android.com/reference/android/view/animation/AnimationSet.html
+http://developer.android.com/reference/android/view/animation/AnimationUtils.html
+http://developer.android.com/reference/android/view/animation/AnticipateInterpolator.html
+http://developer.android.com/reference/android/view/animation/AnticipateOvershootInterpolator.html
+http://developer.android.com/reference/android/view/animation/BounceInterpolator.html
+http://developer.android.com/reference/android/view/animation/CycleInterpolator.html
+http://developer.android.com/reference/android/view/animation/DecelerateInterpolator.html
+http://developer.android.com/reference/android/view/animation/GridLayoutAnimationController.html
+http://developer.android.com/reference/android/view/animation/GridLayoutAnimationController.AnimationParameters.html
+http://developer.android.com/reference/android/view/animation/LayoutAnimationController.html
+http://developer.android.com/reference/android/view/animation/LayoutAnimationController.AnimationParameters.html
+http://developer.android.com/reference/android/view/animation/LinearInterpolator.html
+http://developer.android.com/reference/android/view/animation/OvershootInterpolator.html
+http://developer.android.com/reference/android/view/animation/RotateAnimation.html
+http://developer.android.com/reference/android/view/animation/ScaleAnimation.html
+http://developer.android.com/reference/android/view/animation/Transformation.html
+http://developer.android.com/reference/android/view/animation/TranslateAnimation.html
+http://developer.android.com/reference/android/view/animation/package-descr.html
+http://developer.android.com/reference/android/content/ComponentName.html
 http://developer.android.com/reference/android/test/InstrumentationTestRunner.html
-http://developer.android.com/reference/junit/framework/TestSuite.html
-http://developer.android.com/reference/junit/framework/TestCase.html
-http://developer.android.com/reference/android/test/InstrumentationTestCase.html
-http://developer.android.com/reference/android/test/PerformanceTestCase.html
-http://developer.android.com/reference/android/os/Bundle.html
+http://developer.android.com/reference/android/os/Build.html
+http://developer.android.com/reference/android/os/SystemClock.html
+http://developer.android.com/reference/android/content/ContentProvider.html
+http://developer.android.com/reference/android/net/Uri.html
+http://developer.android.com/reference/android/content/ContentUris.html
+http://developer.android.com/reference/android/provider/Contacts.Phones.html
+http://developer.android.com/reference/android/provider/BaseColumns.html
+http://developer.android.com/reference/android/provider/Contacts.PeopleColumns.html
+http://developer.android.com/reference/android/provider/Contacts.PhonesColumns.html
+http://developer.android.com/reference/android/provider/Contacts.People.html
+http://developer.android.com/reference/android/content/ContentValues.html
+http://developer.android.com/reference/org/apache/http/impl/conn/AbstractClientConnAdapter.html
+http://developer.android.com/reference/org/apache/http/impl/conn/AbstractPooledConnAdapter.html
+http://developer.android.com/reference/org/apache/http/impl/conn/AbstractPoolEntry.html
+http://developer.android.com/reference/org/apache/http/impl/conn/DefaultClientConnection.html
+http://developer.android.com/reference/org/apache/http/impl/conn/DefaultClientConnectionOperator.html
+http://developer.android.com/reference/org/apache/http/impl/conn/DefaultHttpRoutePlanner.html
+http://developer.android.com/reference/org/apache/http/impl/conn/DefaultResponseParser.html
+http://developer.android.com/reference/org/apache/http/impl/conn/IdleConnectionHandler.html
+http://developer.android.com/reference/org/apache/http/impl/conn/LoggingSessionInputBuffer.html
+http://developer.android.com/reference/org/apache/http/impl/conn/LoggingSessionOutputBuffer.html
+http://developer.android.com/reference/org/apache/http/impl/conn/ProxySelectorRoutePlanner.html
+http://developer.android.com/reference/org/apache/http/impl/conn/SingleClientConnManager.html
+http://developer.android.com/reference/org/apache/http/impl/conn/SingleClientConnManager.ConnAdapter.html
+http://developer.android.com/reference/org/apache/http/impl/conn/SingleClientConnManager.PoolEntry.html
+http://developer.android.com/reference/org/apache/http/impl/conn/Wire.html
+http://developer.android.com/reference/org/apache/http/conn/OperatedClientConnection.html
+http://developer.android.com/reference/org/apache/http/conn/ManagedClientConnection.html
+http://developer.android.com/reference/org/apache/http/conn/ClientConnectionOperator.html
+http://developer.android.com/reference/org/apache/http/conn/routing/HttpRoutePlanner.html
 http://developer.android.com/reference/javax/security/auth/x500/X500Principal.html
 http://developer.android.com/reference/javax/security/auth/x500/package-descr.html
+http://developer.android.com/reference/android/media/AudioManager.OnAudioFocusChangeListener.html
+http://developer.android.com/reference/android/media/AudioRecord.OnRecordPositionUpdateListener.html
+http://developer.android.com/reference/android/media/AudioTrack.OnPlaybackPositionUpdateListener.html
+http://developer.android.com/reference/android/media/JetPlayer.OnJetEventListener.html
+http://developer.android.com/reference/android/media/MediaPlayer.OnBufferingUpdateListener.html
+http://developer.android.com/reference/android/media/MediaPlayer.OnCompletionListener.html
+http://developer.android.com/reference/android/media/MediaPlayer.OnErrorListener.html
+http://developer.android.com/reference/android/media/MediaPlayer.OnInfoListener.html
+http://developer.android.com/reference/android/media/MediaPlayer.OnPreparedListener.html
+http://developer.android.com/reference/android/media/MediaPlayer.OnSeekCompleteListener.html
+http://developer.android.com/reference/android/media/MediaPlayer.OnVideoSizeChangedListener.html
+http://developer.android.com/reference/android/media/MediaRecorder.OnErrorListener.html
+http://developer.android.com/reference/android/media/MediaRecorder.OnInfoListener.html
+http://developer.android.com/reference/android/media/MediaScannerConnection.MediaScannerConnectionClient.html
+http://developer.android.com/reference/android/media/SoundPool.OnLoadCompleteListener.html
+http://developer.android.com/reference/android/media/AsyncPlayer.html
+http://developer.android.com/reference/android/media/AudioFormat.html
+http://developer.android.com/reference/android/media/AudioRecord.html
+http://developer.android.com/reference/android/media/FaceDetector.html
+http://developer.android.com/reference/android/media/FaceDetector.Face.html
+http://developer.android.com/reference/android/media/MediaRecorder.AudioEncoder.html
+http://developer.android.com/reference/android/media/MediaRecorder.AudioSource.html
+http://developer.android.com/reference/android/media/MediaRecorder.OutputFormat.html
+http://developer.android.com/reference/android/media/MediaRecorder.VideoEncoder.html
+http://developer.android.com/reference/android/media/MediaRecorder.VideoSource.html
+http://developer.android.com/reference/android/media/Ringtone.html
+http://developer.android.com/reference/android/media/RingtoneManager.html
+http://developer.android.com/reference/android/media/ToneGenerator.html
+http://developer.android.com/reference/android/media/package-descr.html
+http://developer.android.com/reference/android/net/http/AndroidHttpClient.html
+http://developer.android.com/reference/android/net/http/SslCertificate.html
+http://developer.android.com/reference/android/net/http/SslCertificate.DName.html
+http://developer.android.com/reference/android/net/http/SslError.html
+http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html
+http://developer.android.com/reference/org/apache/http/HttpRequestInterceptor.html
+http://developer.android.com/reference/android/content/pm/PackageItemInfo.html
+http://developer.android.com/guide/developing/tools/adt.html
+http://developer.android.com/reference/android/graphics/NinePatch.html
+http://developer.android.com/reference/android/preference/Preference.OnPreferenceChangeListener.html
+http://developer.android.com/reference/android/preference/Preference.OnPreferenceClickListener.html
+http://developer.android.com/reference/android/preference/PreferenceManager.OnActivityDestroyListener.html
+http://developer.android.com/reference/android/preference/PreferenceManager.OnActivityResultListener.html
+http://developer.android.com/reference/android/preference/PreferenceManager.OnActivityStopListener.html
+http://developer.android.com/reference/android/preference/CheckBoxPreference.html
+http://developer.android.com/reference/android/preference/DialogPreference.html
+http://developer.android.com/reference/android/preference/EditTextPreference.html
+http://developer.android.com/reference/android/preference/ListPreference.html
+http://developer.android.com/reference/android/preference/Preference.BaseSavedState.html
+http://developer.android.com/reference/android/preference/PreferenceActivity.html
+http://developer.android.com/reference/android/preference/PreferenceCategory.html
+http://developer.android.com/reference/android/preference/PreferenceGroup.html
+http://developer.android.com/reference/android/preference/PreferenceManager.html
+http://developer.android.com/reference/android/preference/PreferenceScreen.html
+http://developer.android.com/reference/android/preference/RingtonePreference.html
+http://developer.android.com/reference/android/preference/package-descr.html
+http://developer.android.com/reference/org/apache/http/conn/util/InetAddressUtils.html
+http://developer.android.com/reference/android/app/PendingIntent.html
+http://developer.android.com/resources/samples/SipDemo/src/com/example/android/sip/SipSettings.html
+http://developer.android.com/resources/samples/SipDemo/src/com/example/android/sip/IncomingCallReceiver.html
+http://developer.android.com/resources/samples/SipDemo/src/com/example/android/sip/WalkieTalkieActivity.html
+http://developer.android.com/resources/samples/SipDemo/res/index.html
+http://developer.android.com/resources/samples/SipDemo/src/index.html
+http://developer.android.com/resources/samples/SipDemo/AndroidManifest.html
+http://developer.android.com/reference/android/text/util/Linkify.html
+http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2.html
+http://developer.android.com/reference/junit/framework/Assert.html
+http://developer.android.com/reference/junit/framework/TestCase.html
+http://developer.android.com/resources/tutorials/views/hello-spinner.html
+http://developer.android.com/reference/android/widget/AbsSpinner.html
+http://developer.android.com/reference/android/test/InstrumentationTestCase.html
+http://developer.android.com/reference/android/app/Instrumentation.html
+http://developer.android.com/reference/android/test/ActivityUnitTestCase.html
+http://developer.android.com/reference/android/test/ProviderTestCase2.html
+http://developer.android.com/reference/android/test/ServiceTestCase.html
+http://developer.android.com/reference/android/test/MoreAsserts.html
+http://developer.android.com/reference/android/test/ViewAsserts.html
+http://developer.android.com/reference/android/test/TouchUtils.html
+http://developer.android.com/reference/org/apache/http/impl/client/AbstractAuthenticationHandler.html
+http://developer.android.com/reference/org/apache/http/impl/client/AbstractHttpClient.html
+http://developer.android.com/reference/org/apache/http/impl/client/BasicCookieStore.html
+http://developer.android.com/reference/org/apache/http/impl/client/BasicCredentialsProvider.html
+http://developer.android.com/reference/org/apache/http/impl/client/BasicResponseHandler.html
+http://developer.android.com/reference/org/apache/http/impl/client/ClientParamsStack.html
+http://developer.android.com/reference/org/apache/http/impl/client/DefaultConnectionKeepAliveStrategy.html
+http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpRequestRetryHandler.html
+http://developer.android.com/reference/org/apache/http/impl/client/DefaultProxyAuthenticationHandler.html
+http://developer.android.com/reference/org/apache/http/impl/client/DefaultRedirectHandler.html
+http://developer.android.com/reference/org/apache/http/impl/client/DefaultRequestDirector.html
+http://developer.android.com/reference/org/apache/http/impl/client/DefaultTargetAuthenticationHandler.html
+http://developer.android.com/reference/org/apache/http/impl/client/DefaultUserTokenHandler.html
+http://developer.android.com/reference/org/apache/http/impl/client/EntityEnclosingRequestWrapper.html
+http://developer.android.com/reference/org/apache/http/impl/client/RedirectLocations.html
+http://developer.android.com/reference/org/apache/http/impl/client/RequestWrapper.html
+http://developer.android.com/reference/org/apache/http/impl/client/RoutedRequest.html
+http://developer.android.com/reference/org/apache/http/impl/client/TunnelRefusedException.html
+http://developer.android.com/reference/org/apache/http/client/CookieStore.html
+http://developer.android.com/reference/org/apache/http/client/CredentialsProvider.html
+http://developer.android.com/reference/org/apache/http/client/ResponseHandler.html
+http://developer.android.com/reference/org/apache/http/client/HttpRequestRetryHandler.html
+http://developer.android.com/reference/org/apache/http/client/RedirectHandler.html
+http://developer.android.com/reference/org/apache/http/client/RequestDirector.html
+http://developer.android.com/reference/org/apache/http/HttpEntityEnclosingRequest.html
+http://developer.android.com/reference/org/apache/http/HttpRequest.html
+http://developer.android.com/reference/android/content/SharedPreferences.Editor.html
+http://developer.android.com/reference/java/io/FileOutputStream.html
+http://developer.android.com/reference/java/io/FileInputStream.html
+http://developer.android.com/reference/android/content/res/Resources.html
+http://developer.android.com/resources/samples/LunarLander/res/index.html
+http://developer.android.com/resources/samples/LunarLander/src/index.html
+http://developer.android.com/resources/samples/LunarLander/tests/index.html
+http://developer.android.com/resources/samples/LunarLander/AndroidManifest.html
+http://developer.android.com/reference/javax/xml/transform/ErrorListener.html
+http://developer.android.com/reference/javax/xml/transform/Result.html
+http://developer.android.com/reference/javax/xml/transform/Source.html
+http://developer.android.com/reference/javax/xml/transform/SourceLocator.html
+http://developer.android.com/reference/javax/xml/transform/Templates.html
+http://developer.android.com/reference/javax/xml/transform/URIResolver.html
+http://developer.android.com/reference/javax/xml/transform/OutputKeys.html
+http://developer.android.com/reference/javax/xml/transform/Transformer.html
+http://developer.android.com/reference/javax/xml/transform/TransformerFactory.html
+http://developer.android.com/reference/javax/xml/transform/TransformerConfigurationException.html
+http://developer.android.com/reference/javax/xml/transform/TransformerException.html
+http://developer.android.com/reference/javax/xml/transform/TransformerFactoryConfigurationError.html
+http://developer.android.com/reference/javax/xml/transform/package-descr.html
+http://developer.android.com/reference/android/widget/AbsListView.OnScrollListener.html
+http://developer.android.com/reference/android/widget/AbsListView.RecyclerListener.html
+http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html
+http://developer.android.com/reference/android/widget/AdapterView.OnItemLongClickListener.html
+http://developer.android.com/reference/android/widget/AdapterView.OnItemSelectedListener.html
+http://developer.android.com/reference/android/widget/AutoCompleteTextView.Validator.html
+http://developer.android.com/reference/android/widget/Checkable.html
+http://developer.android.com/reference/android/widget/Chronometer.OnChronometerTickListener.html
+http://developer.android.com/reference/android/widget/CompoundButton.OnCheckedChangeListener.html
+http://developer.android.com/reference/android/widget/DatePicker.OnDateChangedListener.html
+http://developer.android.com/reference/android/widget/ExpandableListAdapter.html
+http://developer.android.com/reference/android/widget/ExpandableListView.OnChildClickListener.html
+http://developer.android.com/reference/android/widget/ExpandableListView.OnGroupClickListener.html
+http://developer.android.com/reference/android/widget/ExpandableListView.OnGroupCollapseListener.html
+http://developer.android.com/reference/android/widget/ExpandableListView.OnGroupExpandListener.html
+http://developer.android.com/reference/android/widget/Filter.FilterListener.html
+http://developer.android.com/reference/android/widget/Filterable.html
+http://developer.android.com/reference/android/widget/FilterQueryProvider.html
+http://developer.android.com/reference/android/widget/HeterogeneousExpandableList.html
+http://developer.android.com/reference/android/widget/ListAdapter.html
+http://developer.android.com/reference/android/widget/MediaController.MediaPlayerControl.html
+http://developer.android.com/reference/android/widget/MultiAutoCompleteTextView.Tokenizer.html
+http://developer.android.com/reference/android/widget/PopupWindow.OnDismissListener.html
+http://developer.android.com/reference/android/widget/RadioGroup.OnCheckedChangeListener.html
+http://developer.android.com/reference/android/widget/RatingBar.OnRatingBarChangeListener.html
+http://developer.android.com/reference/android/widget/SectionIndexer.html
+http://developer.android.com/reference/android/widget/SeekBar.OnSeekBarChangeListener.html
+http://developer.android.com/reference/android/widget/SimpleAdapter.ViewBinder.html
+http://developer.android.com/reference/android/widget/SimpleCursorAdapter.CursorToStringConverter.html
+http://developer.android.com/reference/android/widget/SimpleCursorAdapter.ViewBinder.html
+http://developer.android.com/reference/android/widget/SimpleCursorTreeAdapter.ViewBinder.html
+http://developer.android.com/reference/android/widget/SlidingDrawer.OnDrawerCloseListener.html
+http://developer.android.com/reference/android/widget/SlidingDrawer.OnDrawerOpenListener.html
+http://developer.android.com/reference/android/widget/SlidingDrawer.OnDrawerScrollListener.html
+http://developer.android.com/reference/android/widget/SpinnerAdapter.html
+http://developer.android.com/reference/android/widget/TabHost.OnTabChangeListener.html
+http://developer.android.com/reference/android/widget/TabHost.TabContentFactory.html
+http://developer.android.com/reference/android/widget/TextView.OnEditorActionListener.html
+http://developer.android.com/reference/android/widget/TimePicker.OnTimeChangedListener.html
+http://developer.android.com/reference/android/widget/ViewSwitcher.ViewFactory.html
+http://developer.android.com/reference/android/widget/WrapperListAdapter.html
+http://developer.android.com/reference/android/widget/ZoomButtonsController.OnZoomListener.html
+http://developer.android.com/reference/android/widget/AbsListView.html
+http://developer.android.com/reference/android/widget/AbsListView.LayoutParams.html
+http://developer.android.com/reference/android/widget/AbsoluteLayout.html
+http://developer.android.com/reference/android/widget/AbsoluteLayout.LayoutParams.html
+http://developer.android.com/reference/android/widget/AbsSeekBar.html
+http://developer.android.com/reference/android/widget/AdapterView.AdapterContextMenuInfo.html
+http://developer.android.com/reference/android/widget/AlphabetIndexer.html
+http://developer.android.com/reference/android/widget/AnalogClock.html
+http://developer.android.com/reference/android/widget/ArrayAdapter.html
+http://developer.android.com/reference/android/widget/AutoCompleteTextView.html
+http://developer.android.com/reference/android/widget/BaseExpandableListAdapter.html
+http://developer.android.com/reference/android/widget/Button.html
+http://developer.android.com/reference/android/widget/CheckBox.html
+http://developer.android.com/reference/android/widget/CheckedTextView.html
+http://developer.android.com/reference/android/widget/Chronometer.html
+http://developer.android.com/reference/android/widget/CompoundButton.html
+http://developer.android.com/reference/android/widget/CursorTreeAdapter.html
+http://developer.android.com/reference/android/widget/DatePicker.html
+http://developer.android.com/reference/android/widget/DialerFilter.html
+http://developer.android.com/reference/android/widget/DigitalClock.html
+http://developer.android.com/reference/android/widget/ExpandableListView.html
+http://developer.android.com/reference/android/widget/ExpandableListView.ExpandableListContextMenuInfo.html
+http://developer.android.com/reference/android/widget/Filter.html
+http://developer.android.com/reference/android/widget/Filter.FilterResults.html
+http://developer.android.com/reference/android/widget/FrameLayout.html
+http://developer.android.com/reference/android/widget/FrameLayout.LayoutParams.html
+http://developer.android.com/reference/android/widget/Gallery.html
+http://developer.android.com/reference/android/widget/Gallery.LayoutParams.html
+http://developer.android.com/reference/android/widget/GridView.html
+http://developer.android.com/reference/android/widget/HeaderViewListAdapter.html
+http://developer.android.com/reference/android/widget/ImageSwitcher.html
+http://developer.android.com/reference/android/widget/ImageView.html
+http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html
+http://developer.android.com/reference/android/widget/ListView.FixedViewInfo.html
+http://developer.android.com/reference/android/widget/MediaController.html
+http://developer.android.com/reference/android/widget/MultiAutoCompleteTextView.html
+http://developer.android.com/reference/android/widget/MultiAutoCompleteTextView.CommaTokenizer.html
+http://developer.android.com/reference/android/widget/PopupWindow.html
+http://developer.android.com/reference/android/widget/RadioButton.html
+http://developer.android.com/reference/android/widget/RadioGroup.html
+http://developer.android.com/reference/android/widget/RadioGroup.LayoutParams.html
+http://developer.android.com/reference/android/widget/RatingBar.html
+http://developer.android.com/reference/android/widget/RelativeLayout.html
+http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html
+http://developer.android.com/reference/android/widget/ResourceCursorAdapter.html
+http://developer.android.com/reference/android/widget/ResourceCursorTreeAdapter.html
+http://developer.android.com/reference/android/widget/Scroller.html
+http://developer.android.com/reference/android/widget/ScrollView.html
+http://developer.android.com/reference/android/widget/SeekBar.html
+http://developer.android.com/reference/android/widget/SimpleAdapter.html
+http://developer.android.com/reference/android/widget/SimpleCursorAdapter.html
+http://developer.android.com/reference/android/widget/SimpleCursorTreeAdapter.html
+http://developer.android.com/reference/android/widget/SimpleExpandableListAdapter.html
+http://developer.android.com/reference/android/widget/Spinner.html
+http://developer.android.com/reference/android/widget/TabHost.html
+http://developer.android.com/reference/android/widget/TabHost.TabSpec.html
+http://developer.android.com/reference/android/widget/TableLayout.html
+http://developer.android.com/reference/android/widget/TableLayout.LayoutParams.html
+http://developer.android.com/reference/android/widget/TableRow.html
+http://developer.android.com/reference/android/widget/TableRow.LayoutParams.html
+http://developer.android.com/reference/android/widget/TabWidget.html
+http://developer.android.com/reference/android/widget/TextSwitcher.html
+http://developer.android.com/reference/android/widget/TextView.SavedState.html
+http://developer.android.com/reference/android/widget/TimePicker.html
+http://developer.android.com/reference/android/widget/ToggleButton.html
+http://developer.android.com/reference/android/widget/TwoLineListItem.html
+http://developer.android.com/reference/android/widget/VideoView.html
+http://developer.android.com/reference/android/widget/ViewAnimator.html
+http://developer.android.com/reference/android/widget/ViewFlipper.html
+http://developer.android.com/reference/android/widget/ViewSwitcher.html
+http://developer.android.com/reference/android/widget/ZoomButton.html
+http://developer.android.com/reference/android/widget/ZoomButtonsController.html
+http://developer.android.com/reference/android/widget/ZoomControls.html
+http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
+http://developer.android.com/reference/android/widget/TextView.BufferType.html
+http://developer.android.com/reference/android/widget/RemoteViews.ActionException.html
+http://developer.android.com/reference/android/view/View.OnCreateContextMenuListener.html
+http://developer.android.com/reference/java/lang/RuntimeException.html
+http://developer.android.com/reference/android/util/AttributeSet.html
+http://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html
+http://developer.android.com/reference/android/util/SparseArray.html
+http://developer.android.com/reference/android/os/Parcelable.html
+http://developer.android.com/reference/android/content/res/Configuration.html
+http://developer.android.com/reference/android/graphics/Canvas.html
+http://developer.android.com/reference/android/graphics/Rect.html
+http://developer.android.com/reference/android/graphics/Region.html
+http://developer.android.com/reference/android/graphics/Point.html
+http://developer.android.com/reference/android/view/ViewParent.html
+http://developer.android.com/reference/android/graphics/drawable/Drawable.html
+http://developer.android.com/reference/android/view/ViewGroup.OnHierarchyChangeListener.html
+http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html
 http://developer.android.com/reference/android/view/ContextMenu.html
-http://developer.android.com/reference/org/apache/http/util/ByteArrayBuffer.html
-http://developer.android.com/reference/org/apache/http/util/CharArrayBuffer.html
-http://developer.android.com/reference/org/apache/http/util/EncodingUtils.html
-http://developer.android.com/reference/org/apache/http/util/EntityUtils.html
-http://developer.android.com/reference/org/apache/http/util/ExceptionUtils.html
-http://developer.android.com/reference/org/apache/http/util/LangUtils.html
-http://developer.android.com/reference/org/apache/http/util/VersionInfo.html
-http://developer.android.com/reference/org/apache/http/util/package-descr.html
-http://developer.android.com/reference/org/apache/http/HttpEntity.html
-http://developer.android.com/reference/android/content/SharedPreferences.html
-http://developer.android.com/reference/android/os/Binder.html
-http://developer.android.com/reference/android/media/JetPlayer.html
+http://developer.android.com/reference/android/os/IBinder.html
+http://developer.android.com/reference/java/lang/CharSequence.html
+http://developer.android.com/reference/android/view/ContextMenu.ContextMenuInfo.html
+http://developer.android.com/reference/android/view/KeyEvent.DispatcherState.html
+http://developer.android.com/reference/android/view/View.OnFocusChangeListener.html
+http://developer.android.com/reference/android/view/TouchDelegate.html
+http://developer.android.com/reference/android/view/ViewTreeObserver.html
+http://developer.android.com/reference/android/content/res/TypedArray.html
+http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html
+http://developer.android.com/reference/android/view/KeyEvent.Callback.html
+http://developer.android.com/reference/android/view/View.OnLongClickListener.html
+http://developer.android.com/reference/java/lang/Class.html
+http://developer.android.com/reference/android/graphics/drawable/Drawable.Callback.html
+http://developer.android.com/reference/android/view/ViewManager.html
+http://developer.android.com/reference/android/view/accessibility/AccessibilityEventSource.html
+http://developer.android.com/reference/java/lang/UnsupportedOperationException.html
+http://developer.android.com/reference/android/net/sip/SipRegistrationListener.html
+http://developer.android.com/reference/android/net/sip/SipAudioCall.html
+http://developer.android.com/reference/android/net/sip/SipAudioCall.Listener.html
+http://developer.android.com/reference/android/net/sip/SipErrorCode.html
+http://developer.android.com/reference/android/net/sip/SipProfile.html
+http://developer.android.com/reference/android/net/sip/SipProfile.Builder.html
+http://developer.android.com/reference/android/net/sip/SipSession.html
+http://developer.android.com/reference/android/net/sip/SipSession.Listener.html
+http://developer.android.com/reference/android/net/sip/SipSession.State.html
+http://developer.android.com/reference/android/net/sip/SipException.html
+http://developer.android.com/reference/android/net/sip/package-descr.html
+http://developer.android.com/reference/android/opengl/GLSurfaceView.EGLConfigChooser.html
+http://developer.android.com/reference/android/opengl/GLSurfaceView.EGLContextFactory.html
+http://developer.android.com/reference/android/opengl/GLSurfaceView.EGLWindowSurfaceFactory.html
+http://developer.android.com/reference/android/opengl/GLSurfaceView.GLWrapper.html
+http://developer.android.com/reference/android/opengl/GLSurfaceView.Renderer.html
+http://developer.android.com/reference/android/opengl/GLDebugHelper.html
+http://developer.android.com/reference/android/opengl/GLES10.html
+http://developer.android.com/reference/android/opengl/GLES10Ext.html
+http://developer.android.com/reference/android/opengl/GLES11.html
+http://developer.android.com/reference/android/opengl/GLES11Ext.html
+http://developer.android.com/reference/android/opengl/GLU.html
+http://developer.android.com/reference/android/opengl/GLUtils.html
+http://developer.android.com/reference/android/opengl/Matrix.html
+http://developer.android.com/reference/android/opengl/Visibility.html
+http://developer.android.com/reference/android/opengl/GLException.html
+http://developer.android.com/reference/java/nio/ByteBuffer.html
+http://developer.android.com/reference/android/view/SurfaceView.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube1/CubeWallpaper1.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube2/CubeWallpaper2.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube2/CubeWallpaper2Settings.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/index.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/index.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/AndroidManifest.html
+http://developer.android.com/reference/android/test/AndroidTestCase.html
+http://developer.android.com/reference/android/test/ApplicationTestCase.html
+http://developer.android.com/reference/android/app/Application.html
+http://developer.android.com/reference/android/test/mock/MockContentResolver.html
+http://developer.android.com/reference/android/test/mock/MockResources.html
+http://developer.android.com/reference/android/test/mock/MockApplication.html
+http://developer.android.com/reference/android/test/mock/MockContext.html
+http://developer.android.com/reference/android/test/mock/MockContentProvider.html
+http://developer.android.com/reference/android/test/mock/MockCursor.html
+http://developer.android.com/reference/android/test/mock/MockDialogInterface.html
+http://developer.android.com/reference/android/test/mock/MockPackageManager.html
+http://developer.android.com/reference/android/test/IsolatedContext.html
+http://developer.android.com/reference/android/test/RenamingDelegatingContext.html
+http://developer.android.com/resources/samples/AlarmServiceTest
+http://developer.android.com/reference/android/os/storage/OnObbStateChangeListener.html
 http://developer.android.com/guide/topics/media/jet/jetcreator_manual.html
-http://developer.android.com/reference/android/content/ContentValues.html
-http://developer.android.com/reference/javax/crypto/SecretKey.html
-http://developer.android.com/reference/javax/crypto/Cipher.html
-http://developer.android.com/reference/javax/crypto/CipherInputStream.html
-http://developer.android.com/reference/javax/crypto/CipherOutputStream.html
-http://developer.android.com/reference/javax/crypto/CipherSpi.html
-http://developer.android.com/reference/javax/crypto/EncryptedPrivateKeyInfo.html
-http://developer.android.com/reference/javax/crypto/ExemptionMechanism.html
-http://developer.android.com/reference/javax/crypto/ExemptionMechanismSpi.html
-http://developer.android.com/reference/javax/crypto/KeyAgreement.html
-http://developer.android.com/reference/javax/crypto/KeyAgreementSpi.html
-http://developer.android.com/reference/javax/crypto/KeyGenerator.html
-http://developer.android.com/reference/javax/crypto/KeyGeneratorSpi.html
-http://developer.android.com/reference/javax/crypto/Mac.html
-http://developer.android.com/reference/javax/crypto/MacSpi.html
-http://developer.android.com/reference/javax/crypto/NullCipher.html
-http://developer.android.com/reference/javax/crypto/SealedObject.html
-http://developer.android.com/reference/javax/crypto/SecretKeyFactory.html
-http://developer.android.com/reference/javax/crypto/SecretKeyFactorySpi.html
-http://developer.android.com/reference/javax/crypto/BadPaddingException.html
-http://developer.android.com/reference/javax/crypto/ExemptionMechanismException.html
-http://developer.android.com/reference/javax/crypto/IllegalBlockSizeException.html
-http://developer.android.com/reference/javax/crypto/NoSuchPaddingException.html
-http://developer.android.com/reference/javax/crypto/ShortBufferException.html
-http://developer.android.com/reference/javax/crypto/package-descr.html
-http://developer.android.com/reference/android/location/LocationListener.html
+http://developer.android.com/reference/java/util/List.html
+http://developer.android.com/reference/android/os/Parcelable.Creator.html
+http://developer.android.com/reference/android/os/Parcel.html
+http://developer.android.com/reference/android/content/ServiceConnection.html
+http://developer.android.com/reference/android/os/DeadObjectException.html
+http://developer.android.com/resources/samples/BackupRestore/res/index.html
+http://developer.android.com/resources/samples/BackupRestore/src/index.html
+http://developer.android.com/resources/samples/BackupRestore/AndroidManifest.html
+http://developer.android.com/reference/android/webkit/WebViewClient.html
+http://developer.android.com/resources/tutorials/views/hello-webview.html
+http://developer.android.com/reference/android/location/Geocoder.html
+http://developer.android.com/sdk/1.0_r1/upgrading.html
 http://developer.android.com/reference/java/security/cert/CertPathBuilderResult.html
 http://developer.android.com/reference/java/security/cert/CertPathParameters.html
 http://developer.android.com/reference/java/security/cert/CertPathValidatorResult.html
@@ -782,1337 +1290,163 @@
 http://developer.android.com/reference/java/security/cert/CertStoreException.html
 http://developer.android.com/reference/java/security/cert/CRLException.html
 http://developer.android.com/reference/java/security/cert/package-descr.html
-http://developer.android.com/reference/org/xml/sax/helpers/AttributeListImpl.html
-http://developer.android.com/reference/org/xml/sax/helpers/AttributesImpl.html
-http://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html
-http://developer.android.com/reference/org/xml/sax/helpers/LocatorImpl.html
-http://developer.android.com/reference/org/xml/sax/helpers/NamespaceSupport.html
-http://developer.android.com/reference/org/xml/sax/helpers/ParserAdapter.html
-http://developer.android.com/reference/org/xml/sax/helpers/ParserFactory.html
-http://developer.android.com/reference/org/xml/sax/helpers/XMLFilterImpl.html
-http://developer.android.com/reference/org/xml/sax/helpers/XMLReaderAdapter.html
-http://developer.android.com/reference/org/xml/sax/helpers/XMLReaderFactory.html
-http://developer.android.com/reference/org/xml/sax/helpers/package-descr.html
-http://developer.android.com/reference/org/xml/sax/AttributeList.html
-http://developer.android.com/reference/org/xml/sax/Attributes.html
-http://developer.android.com/reference/org/xml/sax/Parser.html
-http://developer.android.com/reference/android/content/pm/ConfigurationInfo.html
-http://developer.android.com/reference/javax/net/ssl/HandshakeCompletedListener.html
-http://developer.android.com/reference/javax/net/ssl/HostnameVerifier.html
-http://developer.android.com/reference/javax/net/ssl/KeyManager.html
-http://developer.android.com/reference/javax/net/ssl/ManagerFactoryParameters.html
-http://developer.android.com/reference/javax/net/ssl/SSLSession.html
-http://developer.android.com/reference/javax/net/ssl/SSLSessionBindingListener.html
-http://developer.android.com/reference/javax/net/ssl/SSLSessionContext.html
-http://developer.android.com/reference/javax/net/ssl/TrustManager.html
-http://developer.android.com/reference/javax/net/ssl/X509KeyManager.html
-http://developer.android.com/reference/javax/net/ssl/X509TrustManager.html
-http://developer.android.com/reference/javax/net/ssl/CertPathTrustManagerParameters.html
-http://developer.android.com/reference/javax/net/ssl/HandshakeCompletedEvent.html
-http://developer.android.com/reference/javax/net/ssl/HttpsURLConnection.html
-http://developer.android.com/reference/javax/net/ssl/KeyManagerFactory.html
-http://developer.android.com/reference/javax/net/ssl/KeyManagerFactorySpi.html
-http://developer.android.com/reference/javax/net/ssl/KeyStoreBuilderParameters.html
-http://developer.android.com/reference/javax/net/ssl/SSLContext.html
-http://developer.android.com/reference/javax/net/ssl/SSLContextSpi.html
-http://developer.android.com/reference/javax/net/ssl/SSLEngine.html
-http://developer.android.com/reference/javax/net/ssl/SSLEngineResult.html
-http://developer.android.com/reference/javax/net/ssl/SSLParameters.html
-http://developer.android.com/reference/javax/net/ssl/SSLPermission.html
-http://developer.android.com/reference/javax/net/ssl/SSLServerSocket.html
-http://developer.android.com/reference/javax/net/ssl/SSLServerSocketFactory.html
-http://developer.android.com/reference/javax/net/ssl/SSLSessionBindingEvent.html
-http://developer.android.com/reference/javax/net/ssl/SSLSocket.html
-http://developer.android.com/reference/javax/net/ssl/SSLSocketFactory.html
-http://developer.android.com/reference/javax/net/ssl/TrustManagerFactory.html
-http://developer.android.com/reference/javax/net/ssl/TrustManagerFactorySpi.html
-http://developer.android.com/reference/javax/net/ssl/X509ExtendedKeyManager.html
-http://developer.android.com/reference/javax/net/ssl/SSLEngineResult.HandshakeStatus.html
-http://developer.android.com/reference/javax/net/ssl/SSLEngineResult.Status.html
-http://developer.android.com/reference/javax/net/ssl/SSLException.html
-http://developer.android.com/reference/javax/net/ssl/SSLHandshakeException.html
-http://developer.android.com/reference/javax/net/ssl/SSLKeyException.html
-http://developer.android.com/reference/javax/net/ssl/SSLPeerUnverifiedException.html
-http://developer.android.com/reference/javax/net/ssl/SSLProtocolException.html
-http://developer.android.com/reference/javax/net/ssl/package-descr.html
-http://developer.android.com/reference/java/lang/Appendable.html
-http://developer.android.com/reference/java/lang/CharSequence.html
-http://developer.android.com/reference/java/lang/Cloneable.html
-http://developer.android.com/reference/java/lang/Comparable.html
-http://developer.android.com/reference/java/lang/Iterable.html
-http://developer.android.com/reference/java/lang/Readable.html
-http://developer.android.com/reference/java/lang/Runnable.html
-http://developer.android.com/reference/java/lang/Thread.UncaughtExceptionHandler.html
-http://developer.android.com/reference/java/lang/Boolean.html
-http://developer.android.com/reference/java/lang/Byte.html
-http://developer.android.com/reference/java/lang/Character.html
-http://developer.android.com/reference/java/lang/Character.Subset.html
-http://developer.android.com/reference/java/lang/Character.UnicodeBlock.html
-http://developer.android.com/reference/java/lang/ClassLoader.html
-http://developer.android.com/reference/java/lang/Compiler.html
-http://developer.android.com/reference/java/lang/Double.html
-http://developer.android.com/reference/java/lang/Enum.html
-http://developer.android.com/reference/java/lang/Float.html
-http://developer.android.com/reference/java/lang/InheritableThreadLocal.html
-http://developer.android.com/reference/java/lang/Integer.html
-http://developer.android.com/reference/java/lang/Long.html
-http://developer.android.com/reference/java/lang/Math.html
-http://developer.android.com/reference/java/lang/Number.html
-http://developer.android.com/reference/java/lang/Package.html
-http://developer.android.com/reference/java/lang/Process.html
-http://developer.android.com/reference/java/lang/ProcessBuilder.html
-http://developer.android.com/reference/java/lang/Runtime.html
-http://developer.android.com/reference/java/lang/RuntimePermission.html
-http://developer.android.com/reference/java/lang/SecurityManager.html
-http://developer.android.com/reference/java/lang/Short.html
-http://developer.android.com/reference/java/lang/StackTraceElement.html
-http://developer.android.com/reference/java/lang/StrictMath.html
-http://developer.android.com/reference/java/lang/StringBuffer.html
-http://developer.android.com/reference/java/lang/StringBuilder.html
-http://developer.android.com/reference/java/lang/System.html
-http://developer.android.com/reference/java/lang/Thread.html
-http://developer.android.com/reference/java/lang/ThreadGroup.html
-http://developer.android.com/reference/java/lang/ThreadLocal.html
-http://developer.android.com/reference/java/lang/Throwable.html
-http://developer.android.com/reference/java/lang/Void.html
-http://developer.android.com/reference/java/lang/Thread.State.html
-http://developer.android.com/reference/java/lang/ArithmeticException.html
-http://developer.android.com/reference/java/lang/ArrayIndexOutOfBoundsException.html
-http://developer.android.com/reference/java/lang/ArrayStoreException.html
-http://developer.android.com/reference/java/lang/ClassCastException.html
-http://developer.android.com/reference/java/lang/ClassNotFoundException.html
-http://developer.android.com/reference/java/lang/CloneNotSupportedException.html
-http://developer.android.com/reference/java/lang/EnumConstantNotPresentException.html
-http://developer.android.com/reference/java/lang/Exception.html
-http://developer.android.com/reference/java/lang/IllegalAccessException.html
-http://developer.android.com/reference/java/lang/IllegalMonitorStateException.html
-http://developer.android.com/reference/java/lang/IllegalStateException.html
-http://developer.android.com/reference/java/lang/IllegalThreadStateException.html
-http://developer.android.com/reference/java/lang/IndexOutOfBoundsException.html
-http://developer.android.com/reference/java/lang/InstantiationException.html
-http://developer.android.com/reference/java/lang/NegativeArraySizeException.html
-http://developer.android.com/reference/java/lang/NoSuchFieldException.html
-http://developer.android.com/reference/java/lang/NoSuchMethodException.html
-http://developer.android.com/reference/java/lang/NullPointerException.html
-http://developer.android.com/reference/java/lang/NumberFormatException.html
-http://developer.android.com/reference/java/lang/RuntimeException.html
-http://developer.android.com/reference/java/lang/SecurityException.html
-http://developer.android.com/reference/java/lang/StringIndexOutOfBoundsException.html
-http://developer.android.com/reference/java/lang/TypeNotPresentException.html
-http://developer.android.com/reference/java/lang/UnsupportedOperationException.html
-http://developer.android.com/reference/java/lang/AbstractMethodError.html
-http://developer.android.com/reference/java/lang/AssertionError.html
-http://developer.android.com/reference/java/lang/ClassCircularityError.html
-http://developer.android.com/reference/java/lang/ClassFormatError.html
-http://developer.android.com/reference/java/lang/Error.html
-http://developer.android.com/reference/java/lang/ExceptionInInitializerError.html
-http://developer.android.com/reference/java/lang/IllegalAccessError.html
-http://developer.android.com/reference/java/lang/IncompatibleClassChangeError.html
-http://developer.android.com/reference/java/lang/InstantiationError.html
-http://developer.android.com/reference/java/lang/InternalError.html
-http://developer.android.com/reference/java/lang/LinkageError.html
-http://developer.android.com/reference/java/lang/NoClassDefFoundError.html
-http://developer.android.com/reference/java/lang/NoSuchFieldError.html
-http://developer.android.com/reference/java/lang/NoSuchMethodError.html
-http://developer.android.com/reference/java/lang/OutOfMemoryError.html
-http://developer.android.com/reference/java/lang/StackOverflowError.html
-http://developer.android.com/reference/java/lang/ThreadDeath.html
-http://developer.android.com/reference/java/lang/UnknownError.html
-http://developer.android.com/reference/java/lang/UnsatisfiedLinkError.html
-http://developer.android.com/reference/java/lang/UnsupportedClassVersionError.html
-http://developer.android.com/reference/java/lang/VerifyError.html
-http://developer.android.com/reference/java/lang/VirtualMachineError.html
-http://developer.android.com/reference/java/nio/CharBuffer.html
-http://developer.android.com/reference/android/view/View.MeasureSpec.html
-http://developer.android.com/reference/org/apache/http/message/HeaderValueFormatter.html
-http://developer.android.com/reference/org/apache/http/message/HeaderValueParser.html
-http://developer.android.com/reference/org/apache/http/message/LineFormatter.html
-http://developer.android.com/reference/org/apache/http/message/LineParser.html
-http://developer.android.com/reference/org/apache/http/message/BasicHeader.html
-http://developer.android.com/reference/org/apache/http/message/BasicHeaderElement.html
-http://developer.android.com/reference/org/apache/http/message/BasicHeaderElementIterator.html
-http://developer.android.com/reference/org/apache/http/message/BasicHeaderIterator.html
-http://developer.android.com/reference/org/apache/http/message/BasicHeaderValueFormatter.html
-http://developer.android.com/reference/org/apache/http/message/BasicHeaderValueParser.html
-http://developer.android.com/reference/org/apache/http/message/BasicHttpEntityEnclosingRequest.html
-http://developer.android.com/reference/org/apache/http/message/BasicHttpRequest.html
-http://developer.android.com/reference/org/apache/http/message/BasicHttpResponse.html
-http://developer.android.com/reference/org/apache/http/message/BasicLineFormatter.html
-http://developer.android.com/reference/org/apache/http/message/BasicLineParser.html
-http://developer.android.com/reference/org/apache/http/message/BasicListHeaderIterator.html
-http://developer.android.com/reference/org/apache/http/message/BasicNameValuePair.html
-http://developer.android.com/reference/org/apache/http/message/BasicRequestLine.html
-http://developer.android.com/reference/org/apache/http/message/BasicStatusLine.html
-http://developer.android.com/reference/org/apache/http/message/BasicTokenIterator.html
-http://developer.android.com/reference/org/apache/http/message/BufferedHeader.html
-http://developer.android.com/reference/org/apache/http/message/HeaderGroup.html
-http://developer.android.com/reference/org/apache/http/message/ParserCursor.html
-http://developer.android.com/reference/org/apache/http/HttpMessage.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpRequestBase.html
-http://developer.android.com/reference/org/apache/http/impl/client/RequestWrapper.html
-http://developer.android.com/reference/org/apache/http/HttpRequest.html
-http://developer.android.com/reference/org/apache/http/impl/client/EntityEnclosingRequestWrapper.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpDelete.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpEntityEnclosingRequestBase.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpGet.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpHead.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpOptions.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpPost.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpPut.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpTrace.html
-http://developer.android.com/reference/org/apache/http/HttpEntityEnclosingRequest.html
-http://developer.android.com/reference/org/apache/http/params/HttpParams.html
-http://developer.android.com/reference/org/apache/http/Header.html
-http://developer.android.com/reference/org/apache/http/HeaderIterator.html
-http://developer.android.com/reference/org/apache/http/ProtocolVersion.html
-http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html
-http://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceInfo.html
-http://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html
-http://developer.android.com/reference/android/content/ContentProvider.html
-http://developer.android.com/reference/android/net/Uri.html
-http://developer.android.com/reference/android/content/ContentUris.html
-http://developer.android.com/reference/android/provider/Contacts.Phones.html
-http://developer.android.com/reference/android/provider/BaseColumns.html
-http://developer.android.com/reference/android/provider/Contacts.PeopleColumns.html
-http://developer.android.com/reference/android/provider/Contacts.PhonesColumns.html
-http://developer.android.com/reference/android/provider/Contacts.People.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteCursor.html
-http://developer.android.com/reference/android/database/MatrixCursor.html
-http://developer.android.com/reference/android/content/pm/PackageItemInfo.html
-http://developer.android.com/reference/android/content/IntentFilter.html
-http://developer.android.com/reference/android/content/ComponentName.html
-http://developer.android.com/reference/android/view/Menu.html
-http://developer.android.com/reference/java/text/AttributedCharacterIterator.html
-http://developer.android.com/reference/java/text/CharacterIterator.html
-http://developer.android.com/reference/java/text/Annotation.html
-http://developer.android.com/reference/java/text/AttributedCharacterIterator.Attribute.html
-http://developer.android.com/reference/java/text/AttributedString.html
-http://developer.android.com/reference/java/text/Bidi.html
-http://developer.android.com/reference/java/text/BreakIterator.html
-http://developer.android.com/reference/java/text/ChoiceFormat.html
-http://developer.android.com/reference/java/text/CollationElementIterator.html
-http://developer.android.com/reference/java/text/CollationKey.html
-http://developer.android.com/reference/java/text/Collator.html
-http://developer.android.com/reference/java/text/DateFormat.html
-http://developer.android.com/reference/java/text/DateFormat.Field.html
-http://developer.android.com/reference/java/text/DateFormatSymbols.html
-http://developer.android.com/reference/java/text/DecimalFormat.html
-http://developer.android.com/reference/java/text/DecimalFormatSymbols.html
-http://developer.android.com/reference/java/text/FieldPosition.html
-http://developer.android.com/reference/java/text/Format.html
-http://developer.android.com/reference/java/text/Format.Field.html
-http://developer.android.com/reference/java/text/MessageFormat.html
-http://developer.android.com/reference/java/text/MessageFormat.Field.html
-http://developer.android.com/reference/java/text/NumberFormat.html
-http://developer.android.com/reference/java/text/NumberFormat.Field.html
-http://developer.android.com/reference/java/text/ParsePosition.html
-http://developer.android.com/reference/java/text/RuleBasedCollator.html
-http://developer.android.com/reference/java/text/SimpleDateFormat.html
-http://developer.android.com/reference/java/text/StringCharacterIterator.html
-http://developer.android.com/reference/java/text/ParseException.html
-http://developer.android.com/reference/android/location/LocationProvider.html
-http://developer.android.com/reference/android/content/res/AssetManager.html
-http://developer.android.com/reference/android/content/res/Configuration.html
-http://developer.android.com/reference/org/apache/http/impl/io/AbstractMessageParser.html
-http://developer.android.com/reference/org/apache/http/impl/io/AbstractMessageWriter.html
-http://developer.android.com/reference/org/apache/http/impl/io/AbstractSessionInputBuffer.html
-http://developer.android.com/reference/org/apache/http/impl/io/AbstractSessionOutputBuffer.html
-http://developer.android.com/reference/org/apache/http/impl/io/ChunkedInputStream.html
-http://developer.android.com/reference/org/apache/http/impl/io/ChunkedOutputStream.html
-http://developer.android.com/reference/org/apache/http/impl/io/ContentLengthInputStream.html
-http://developer.android.com/reference/org/apache/http/impl/io/ContentLengthOutputStream.html
-http://developer.android.com/reference/org/apache/http/impl/io/HttpRequestParser.html
-http://developer.android.com/reference/org/apache/http/impl/io/HttpRequestWriter.html
-http://developer.android.com/reference/org/apache/http/impl/io/HttpResponseParser.html
-http://developer.android.com/reference/org/apache/http/impl/io/HttpResponseWriter.html
-http://developer.android.com/reference/org/apache/http/impl/io/HttpTransportMetricsImpl.html
-http://developer.android.com/reference/org/apache/http/impl/io/IdentityInputStream.html
-http://developer.android.com/reference/org/apache/http/impl/io/IdentityOutputStream.html
-http://developer.android.com/reference/org/apache/http/impl/io/SocketInputBuffer.html
-http://developer.android.com/reference/org/apache/http/impl/io/SocketOutputBuffer.html
-http://developer.android.com/reference/org/apache/http/impl/io/package-descr.html
-http://developer.android.com/reference/org/apache/http/io/HttpTransportMetrics.html
-http://developer.android.com/reference/org/apache/http/io/SessionInputBuffer.html
-http://developer.android.com/reference/java/sql/Array.html
-http://developer.android.com/reference/java/sql/Blob.html
-http://developer.android.com/reference/java/sql/CallableStatement.html
-http://developer.android.com/reference/java/sql/Clob.html
-http://developer.android.com/reference/java/sql/Connection.html
-http://developer.android.com/reference/java/sql/DatabaseMetaData.html
-http://developer.android.com/reference/java/sql/Driver.html
-http://developer.android.com/reference/java/sql/NClob.html
-http://developer.android.com/reference/java/sql/ParameterMetaData.html
-http://developer.android.com/reference/java/sql/PreparedStatement.html
-http://developer.android.com/reference/java/sql/Ref.html
-http://developer.android.com/reference/java/sql/ResultSet.html
-http://developer.android.com/reference/java/sql/ResultSetMetaData.html
-http://developer.android.com/reference/java/sql/RowId.html
-http://developer.android.com/reference/java/sql/Savepoint.html
-http://developer.android.com/reference/java/sql/SQLData.html
-http://developer.android.com/reference/java/sql/SQLInput.html
-http://developer.android.com/reference/java/sql/SQLOutput.html
-http://developer.android.com/reference/java/sql/SQLXML.html
-http://developer.android.com/reference/java/sql/Statement.html
-http://developer.android.com/reference/java/sql/Struct.html
-http://developer.android.com/reference/java/sql/Wrapper.html
-http://developer.android.com/reference/java/sql/Date.html
-http://developer.android.com/reference/java/sql/DriverManager.html
-http://developer.android.com/reference/java/sql/DriverPropertyInfo.html
-http://developer.android.com/reference/java/sql/SQLPermission.html
-http://developer.android.com/reference/java/sql/Time.html
-http://developer.android.com/reference/java/sql/Timestamp.html
-http://developer.android.com/reference/java/sql/Types.html
-http://developer.android.com/reference/java/sql/ClientInfoStatus.html
-http://developer.android.com/reference/java/sql/RowIdLifetime.html
-http://developer.android.com/reference/java/sql/BatchUpdateException.html
-http://developer.android.com/reference/java/sql/DataTruncation.html
-http://developer.android.com/reference/java/sql/SQLClientInfoException.html
-http://developer.android.com/reference/java/sql/SQLDataException.html
-http://developer.android.com/reference/java/sql/SQLException.html
-http://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException.html
-http://developer.android.com/reference/java/sql/SQLIntegrityConstraintViolationException.html
-http://developer.android.com/reference/java/sql/SQLInvalidAuthorizationSpecException.html
-http://developer.android.com/reference/java/sql/SQLNonTransientConnectionException.html
-http://developer.android.com/reference/java/sql/SQLNonTransientException.html
-http://developer.android.com/reference/java/sql/SQLRecoverableException.html
-http://developer.android.com/reference/java/sql/SQLSyntaxErrorException.html
-http://developer.android.com/reference/java/sql/SQLTimeoutException.html
-http://developer.android.com/reference/java/sql/SQLTransactionRollbackException.html
-http://developer.android.com/reference/java/sql/SQLTransientConnectionException.html
-http://developer.android.com/reference/java/sql/SQLTransientException.html
-http://developer.android.com/reference/java/sql/SQLWarning.html
-http://developer.android.com/reference/java/sql/package-descr.html
-http://developer.android.com/reference/org/xml/sax/ContentHandler.html
-http://developer.android.com/reference/org/xml/sax/DocumentHandler.html
-http://developer.android.com/reference/org/xml/sax/DTDHandler.html
-http://developer.android.com/reference/org/xml/sax/EntityResolver.html
-http://developer.android.com/reference/org/xml/sax/ErrorHandler.html
-http://developer.android.com/reference/org/xml/sax/Locator.html
-http://developer.android.com/reference/org/xml/sax/XMLFilter.html
-http://developer.android.com/reference/org/xml/sax/XMLReader.html
-http://developer.android.com/reference/org/xml/sax/HandlerBase.html
-http://developer.android.com/reference/org/xml/sax/InputSource.html
-http://developer.android.com/reference/org/xml/sax/SAXException.html
-http://developer.android.com/reference/org/xml/sax/SAXNotRecognizedException.html
-http://developer.android.com/reference/org/xml/sax/SAXNotSupportedException.html
-http://developer.android.com/reference/org/xml/sax/SAXParseException.html
-http://developer.android.com/reference/org/xml/sax/package-descr.html
-http://developer.android.com/reference/android/speech/tts/TextToSpeech.OnInitListener.html
-http://developer.android.com/reference/android/speech/tts/TextToSpeech.OnUtteranceCompletedListener.html
-http://developer.android.com/reference/android/speech/tts/TextToSpeech.html
-http://developer.android.com/reference/android/speech/tts/TextToSpeech.Engine.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/X509HostnameVerifier.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/AbstractVerifier.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/AllowAllHostnameVerifier.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/BrowserCompatHostnameVerifier.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/SSLSocketFactory.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/StrictHostnameVerifier.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/package-descr.html
-http://developer.android.com/resources/tutorials/views/hello-listview.html
-http://developer.android.com/reference/android/widget/Adapter.html
-http://developer.android.com/reference/android/widget/CursorAdapter.html
-http://developer.android.com/reference/android/widget/BaseAdapter.html
-http://developer.android.com/reference/java/io/Closeable.html
-http://developer.android.com/reference/java/io/DataInput.html
-http://developer.android.com/reference/java/io/DataOutput.html
-http://developer.android.com/reference/java/io/Externalizable.html
-http://developer.android.com/reference/java/io/FileFilter.html
-http://developer.android.com/reference/java/io/FilenameFilter.html
-http://developer.android.com/reference/java/io/Flushable.html
-http://developer.android.com/reference/java/io/ObjectInput.html
-http://developer.android.com/reference/java/io/ObjectInputValidation.html
-http://developer.android.com/reference/java/io/ObjectOutput.html
-http://developer.android.com/reference/java/io/ObjectStreamConstants.html
-http://developer.android.com/reference/java/io/Serializable.html
-http://developer.android.com/reference/java/io/BufferedInputStream.html
-http://developer.android.com/reference/java/io/BufferedOutputStream.html
-http://developer.android.com/reference/java/io/BufferedReader.html
-http://developer.android.com/reference/java/io/BufferedWriter.html
-http://developer.android.com/reference/java/io/ByteArrayInputStream.html
-http://developer.android.com/reference/java/io/ByteArrayOutputStream.html
-http://developer.android.com/reference/java/io/CharArrayReader.html
-http://developer.android.com/reference/java/io/CharArrayWriter.html
-http://developer.android.com/reference/java/io/Console.html
-http://developer.android.com/reference/java/io/DataInputStream.html
-http://developer.android.com/reference/java/io/DataOutputStream.html
-http://developer.android.com/reference/java/io/FileDescriptor.html
-http://developer.android.com/reference/java/io/FileInputStream.html
-http://developer.android.com/reference/java/io/FileOutputStream.html
-http://developer.android.com/reference/java/io/FilePermission.html
-http://developer.android.com/reference/java/io/FileReader.html
-http://developer.android.com/reference/java/io/FileWriter.html
-http://developer.android.com/reference/java/io/FilterInputStream.html
-http://developer.android.com/reference/java/io/FilterOutputStream.html
-http://developer.android.com/reference/java/io/FilterReader.html
-http://developer.android.com/reference/java/io/FilterWriter.html
-http://developer.android.com/reference/java/io/InputStreamReader.html
-http://developer.android.com/reference/java/io/LineNumberInputStream.html
-http://developer.android.com/reference/java/io/LineNumberReader.html
-http://developer.android.com/reference/java/io/ObjectInputStream.html
-http://developer.android.com/reference/java/io/ObjectInputStream.GetField.html
-http://developer.android.com/reference/java/io/ObjectOutputStream.html
-http://developer.android.com/reference/java/io/ObjectOutputStream.PutField.html
-http://developer.android.com/reference/java/io/ObjectStreamClass.html
-http://developer.android.com/reference/java/io/ObjectStreamField.html
-http://developer.android.com/reference/java/io/OutputStreamWriter.html
-http://developer.android.com/reference/java/io/PipedInputStream.html
-http://developer.android.com/reference/java/io/PipedOutputStream.html
-http://developer.android.com/reference/java/io/PipedReader.html
-http://developer.android.com/reference/java/io/PipedWriter.html
-http://developer.android.com/reference/java/io/PrintStream.html
-http://developer.android.com/reference/java/io/PrintWriter.html
-http://developer.android.com/reference/java/io/PushbackInputStream.html
-http://developer.android.com/reference/java/io/PushbackReader.html
-http://developer.android.com/reference/java/io/RandomAccessFile.html
-http://developer.android.com/reference/java/io/Reader.html
-http://developer.android.com/reference/java/io/SequenceInputStream.html
-http://developer.android.com/reference/java/io/SerializablePermission.html
-http://developer.android.com/reference/java/io/StreamTokenizer.html
-http://developer.android.com/reference/java/io/StringBufferInputStream.html
-http://developer.android.com/reference/java/io/StringReader.html
-http://developer.android.com/reference/java/io/StringWriter.html
-http://developer.android.com/reference/java/io/Writer.html
-http://developer.android.com/reference/java/io/CharConversionException.html
-http://developer.android.com/reference/java/io/EOFException.html
-http://developer.android.com/reference/java/io/FileNotFoundException.html
-http://developer.android.com/reference/java/io/InterruptedIOException.html
-http://developer.android.com/reference/java/io/InvalidClassException.html
-http://developer.android.com/reference/java/io/InvalidObjectException.html
-http://developer.android.com/reference/java/io/IOException.html
-http://developer.android.com/reference/java/io/NotActiveException.html
-http://developer.android.com/reference/java/io/NotSerializableException.html
-http://developer.android.com/reference/java/io/ObjectStreamException.html
-http://developer.android.com/reference/java/io/OptionalDataException.html
-http://developer.android.com/reference/java/io/StreamCorruptedException.html
-http://developer.android.com/reference/java/io/SyncFailedException.html
-http://developer.android.com/reference/java/io/UnsupportedEncodingException.html
-http://developer.android.com/reference/java/io/UTFDataFormatException.html
-http://developer.android.com/reference/java/io/WriteAbortedException.html
-http://developer.android.com/reference/java/io/IOError.html
-http://developer.android.com/reference/org/apache/http/cookie/params/CookieSpecPNames.html
-http://developer.android.com/reference/org/apache/http/cookie/params/CookieSpecParamBean.html
-http://developer.android.com/reference/org/apache/http/cookie/params/package-descr.html
-http://developer.android.com/reference/java/security/Certificate.html
-http://developer.android.com/reference/java/security/DomainCombiner.html
-http://developer.android.com/reference/java/security/Guard.html
-http://developer.android.com/reference/java/security/Key.html
-http://developer.android.com/reference/java/security/KeyStore.Entry.html
-http://developer.android.com/reference/java/security/KeyStore.LoadStoreParameter.html
-http://developer.android.com/reference/java/security/KeyStore.ProtectionParameter.html
-http://developer.android.com/reference/java/security/Policy.Parameters.html
-http://developer.android.com/reference/java/security/Principal.html
-http://developer.android.com/reference/java/security/PrivateKey.html
-http://developer.android.com/reference/java/security/PrivilegedAction.html
-http://developer.android.com/reference/java/security/PrivilegedExceptionAction.html
-http://developer.android.com/reference/java/security/PublicKey.html
-http://developer.android.com/reference/java/security/AccessControlContext.html
-http://developer.android.com/reference/java/security/AccessController.html
-http://developer.android.com/reference/java/security/AlgorithmParameterGenerator.html
-http://developer.android.com/reference/java/security/AlgorithmParameterGeneratorSpi.html
-http://developer.android.com/reference/java/security/AlgorithmParameters.html
-http://developer.android.com/reference/java/security/AlgorithmParametersSpi.html
-http://developer.android.com/reference/java/security/AllPermission.html
-http://developer.android.com/reference/java/security/AuthProvider.html
-http://developer.android.com/reference/java/security/BasicPermission.html
-http://developer.android.com/reference/java/security/CodeSigner.html
-http://developer.android.com/reference/java/security/CodeSource.html
-http://developer.android.com/reference/java/security/DigestInputStream.html
-http://developer.android.com/reference/java/security/DigestOutputStream.html
-http://developer.android.com/reference/java/security/GuardedObject.html
-http://developer.android.com/reference/java/security/Identity.html
-http://developer.android.com/reference/java/security/IdentityScope.html
-http://developer.android.com/reference/java/security/KeyFactory.html
-http://developer.android.com/reference/java/security/KeyFactorySpi.html
-http://developer.android.com/reference/java/security/KeyPair.html
-http://developer.android.com/reference/java/security/KeyPairGenerator.html
-http://developer.android.com/reference/java/security/KeyPairGeneratorSpi.html
-http://developer.android.com/reference/java/security/KeyRep.html
-http://developer.android.com/reference/java/security/KeyStore.html
-http://developer.android.com/reference/java/security/KeyStore.Builder.html
-http://developer.android.com/reference/java/security/KeyStore.CallbackHandlerProtection.html
-http://developer.android.com/reference/java/security/KeyStore.PasswordProtection.html
-http://developer.android.com/reference/java/security/KeyStore.PrivateKeyEntry.html
-http://developer.android.com/reference/java/security/KeyStore.SecretKeyEntry.html
-http://developer.android.com/reference/java/security/KeyStore.TrustedCertificateEntry.html
-http://developer.android.com/reference/java/security/KeyStoreSpi.html
-http://developer.android.com/reference/java/security/MessageDigest.html
-http://developer.android.com/reference/java/security/MessageDigestSpi.html
-http://developer.android.com/reference/java/security/Permission.html
-http://developer.android.com/reference/java/security/PermissionCollection.html
-http://developer.android.com/reference/java/security/Permissions.html
-http://developer.android.com/reference/java/security/Policy.html
-http://developer.android.com/reference/java/security/PolicySpi.html
-http://developer.android.com/reference/java/security/ProtectionDomain.html
-http://developer.android.com/reference/java/security/Provider.html
-http://developer.android.com/reference/java/security/Provider.Service.html
-http://developer.android.com/reference/java/security/SecureClassLoader.html
-http://developer.android.com/reference/java/security/SecureRandom.html
-http://developer.android.com/reference/java/security/SecureRandomSpi.html
-http://developer.android.com/reference/java/security/Security.html
-http://developer.android.com/reference/java/security/SecurityPermission.html
-http://developer.android.com/reference/java/security/Signature.html
-http://developer.android.com/reference/java/security/SignatureSpi.html
-http://developer.android.com/reference/java/security/SignedObject.html
-http://developer.android.com/reference/java/security/Signer.html
-http://developer.android.com/reference/java/security/Timestamp.html
-http://developer.android.com/reference/java/security/UnresolvedPermission.html
-http://developer.android.com/reference/java/security/KeyRep.Type.html
-http://developer.android.com/reference/java/security/AccessControlException.html
-http://developer.android.com/reference/java/security/DigestException.html
-http://developer.android.com/reference/java/security/GeneralSecurityException.html
-http://developer.android.com/reference/java/security/InvalidAlgorithmParameterException.html
-http://developer.android.com/reference/java/security/InvalidKeyException.html
-http://developer.android.com/reference/java/security/InvalidParameterException.html
-http://developer.android.com/reference/java/security/KeyException.html
-http://developer.android.com/reference/java/security/KeyManagementException.html
-http://developer.android.com/reference/java/security/KeyStoreException.html
-http://developer.android.com/reference/java/security/NoSuchAlgorithmException.html
-http://developer.android.com/reference/java/security/NoSuchProviderException.html
-http://developer.android.com/reference/java/security/PrivilegedActionException.html
-http://developer.android.com/reference/java/security/ProviderException.html
-http://developer.android.com/reference/java/security/SignatureException.html
-http://developer.android.com/reference/java/security/UnrecoverableEntryException.html
-http://developer.android.com/reference/java/security/UnrecoverableKeyException.html
-http://developer.android.com/reference/java/security/package-descr.html
-http://developer.android.com/reference/javax/security/auth/callback/CallbackHandler.html
-http://developer.android.com/reference/android/graphics/drawable/Animatable.html
-http://developer.android.com/reference/android/graphics/drawable/Drawable.Callback.html
-http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/ClipDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/ColorDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/Drawable.html
-http://developer.android.com/reference/android/graphics/drawable/Drawable.ConstantState.html
-http://developer.android.com/reference/android/graphics/drawable/DrawableContainer.html
-http://developer.android.com/reference/android/graphics/drawable/DrawableContainer.DrawableContainerState.html
-http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/InsetDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/LayerDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/LevelListDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/NinePatchDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/PaintDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/PictureDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/RotateDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/ScaleDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/ShapeDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/ShapeDrawable.ShaderFactory.html
-http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.Orientation.html
-http://developer.android.com/reference/android/graphics/drawable/package-descr.html
-http://developer.android.com/reference/android/os/Build.html
-http://developer.android.com/reference/android/os/SystemClock.html
-http://developer.android.com/reference/android/content/ComponentCallbacks.html
-http://developer.android.com/reference/android/content/DialogInterface.OnCancelListener.html
-http://developer.android.com/reference/android/content/DialogInterface.OnClickListener.html
-http://developer.android.com/reference/android/content/DialogInterface.OnDismissListener.html
-http://developer.android.com/reference/android/content/DialogInterface.OnKeyListener.html
-http://developer.android.com/reference/android/content/DialogInterface.OnMultiChoiceClickListener.html
-http://developer.android.com/reference/android/content/DialogInterface.OnShowListener.html
-http://developer.android.com/reference/android/content/EntityIterator.html
-http://developer.android.com/reference/android/content/IntentSender.OnFinished.html
-http://developer.android.com/reference/android/content/SharedPreferences.Editor.html
-http://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html
-http://developer.android.com/reference/android/content/SyncStatusObserver.html
-http://developer.android.com/reference/android/content/AbstractThreadedSyncAdapter.html
-http://developer.android.com/reference/android/content/AsyncQueryHandler.html
-http://developer.android.com/reference/android/content/AsyncQueryHandler.WorkerArgs.html
-http://developer.android.com/reference/android/content/AsyncQueryHandler.WorkerHandler.html
-http://developer.android.com/reference/android/content/ContentProviderClient.html
-http://developer.android.com/reference/android/content/ContentProviderOperation.html
-http://developer.android.com/reference/android/content/ContentProviderOperation.Builder.html
-http://developer.android.com/reference/android/content/ContentProviderResult.html
-http://developer.android.com/reference/android/content/ContentQueryMap.html
-http://developer.android.com/reference/android/content/ContextWrapper.html
-http://developer.android.com/reference/android/content/Entity.html
-http://developer.android.com/reference/android/content/Entity.NamedContentValues.html
-http://developer.android.com/reference/android/content/Intent.FilterComparison.html
-http://developer.android.com/reference/android/content/Intent.ShortcutIconResource.html
-http://developer.android.com/reference/android/content/IntentFilter.AuthorityEntry.html
-http://developer.android.com/reference/android/content/IntentSender.html
-http://developer.android.com/reference/android/content/MutableContextWrapper.html
-http://developer.android.com/reference/android/content/PeriodicSync.html
-http://developer.android.com/reference/android/content/SearchRecentSuggestionsProvider.html
-http://developer.android.com/reference/android/content/SyncAdapterType.html
-http://developer.android.com/reference/android/content/SyncContext.html
-http://developer.android.com/reference/android/content/SyncInfo.html
-http://developer.android.com/reference/android/content/SyncResult.html
-http://developer.android.com/reference/android/content/SyncStats.html
-http://developer.android.com/reference/android/content/UriMatcher.html
-http://developer.android.com/reference/android/content/ActivityNotFoundException.html
-http://developer.android.com/reference/android/content/IntentFilter.MalformedMimeTypeException.html
-http://developer.android.com/reference/android/content/IntentSender.SendIntentException.html
-http://developer.android.com/reference/android/content/OperationApplicationException.html
-http://developer.android.com/reference/android/content/ReceiverCallNotAllowedException.html
-http://developer.android.com/reference/android/content/package-descr.html
-http://developer.android.com/reference/java/util/Iterator.html
-http://developer.android.com/reference/org/apache/http/client/entity/UrlEncodedFormEntity.html
-http://developer.android.com/reference/android/sax/ElementListener.html
-http://developer.android.com/reference/android/sax/EndElementListener.html
-http://developer.android.com/reference/android/sax/EndTextElementListener.html
-http://developer.android.com/reference/android/sax/StartElementListener.html
-http://developer.android.com/reference/android/sax/TextElementListener.html
-http://developer.android.com/reference/android/sax/Element.html
-http://developer.android.com/reference/android/sax/RootElement.html
-http://developer.android.com/reference/android/sax/package-descr.html
-http://developer.android.com/reference/android/os/PatternMatcher.html
-http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2.html
-http://developer.android.com/reference/android/test/ActivityUnitTestCase.html
-http://developer.android.com/reference/junit/framework/Assert.html
-http://developer.android.com/reference/android/test/SingleLaunchActivityTestCase.html
-http://developer.android.com/reference/android/test/ViewAsserts.html
-http://developer.android.com/reference/junit/runner/TestSuiteLoader.html
-http://developer.android.com/reference/junit/runner/BaseTestRunner.html
-http://developer.android.com/reference/junit/runner/Version.html
-http://developer.android.com/reference/junit/runner/package-descr.html
-http://developer.android.com/reference/org/apache/http/params/CoreConnectionPNames.html
-http://developer.android.com/reference/org/apache/http/params/CoreProtocolPNames.html
-http://developer.android.com/reference/org/apache/http/params/AbstractHttpParams.html
-http://developer.android.com/reference/org/apache/http/params/BasicHttpParams.html
-http://developer.android.com/reference/org/apache/http/params/DefaultedHttpParams.html
-http://developer.android.com/reference/org/apache/http/params/HttpAbstractParamBean.html
-http://developer.android.com/reference/org/apache/http/params/HttpConnectionParamBean.html
-http://developer.android.com/reference/org/apache/http/params/HttpConnectionParams.html
-http://developer.android.com/reference/org/apache/http/params/HttpProtocolParamBean.html
-http://developer.android.com/reference/org/apache/http/params/HttpProtocolParams.html
-http://developer.android.com/reference/org/apache/http/params/package-descr.html
-http://developer.android.com/reference/android/content/res/XmlResourceParser.html
-http://developer.android.com/reference/android/content/res/AssetFileDescriptor.html
-http://developer.android.com/reference/android/content/res/AssetFileDescriptor.AutoCloseInputStream.html
-http://developer.android.com/reference/android/content/res/AssetFileDescriptor.AutoCloseOutputStream.html
-http://developer.android.com/reference/android/content/res/AssetManager.AssetInputStream.html
-http://developer.android.com/reference/android/content/res/ColorStateList.html
-http://developer.android.com/reference/android/content/res/ObbInfo.html
-http://developer.android.com/reference/android/content/res/ObbScanner.html
-http://developer.android.com/reference/android/content/res/Resources.Theme.html
-http://developer.android.com/reference/android/content/res/TypedArray.html
-http://developer.android.com/reference/android/content/res/Resources.NotFoundException.html
-http://developer.android.com/reference/android/content/res/package-descr.html
-http://developer.android.com/reference/android/os/ParcelFileDescriptor.html
-http://developer.android.com/reference/org/json/JSONArray.html
-http://developer.android.com/reference/org/json/JSONObject.html
-http://developer.android.com/reference/org/json/JSONStringer.html
-http://developer.android.com/reference/org/json/JSONTokener.html
-http://developer.android.com/reference/org/json/JSONException.html
-http://developer.android.com/reference/javax/xml/transform/dom/DOMLocator.html
-http://developer.android.com/reference/javax/xml/transform/dom/DOMResult.html
-http://developer.android.com/reference/javax/xml/transform/dom/DOMSource.html
-http://developer.android.com/reference/javax/xml/transform/dom/package-descr.html
-http://developer.android.com/reference/android/speech/RecognitionService.Callback.html
-http://developer.android.com/reference/android/speech/SpeechRecognizer.html
-http://developer.android.com/reference/android/widget/AdapterView.html
-http://developer.android.com/reference/android/content/pm/ApplicationInfo.html
-http://developer.android.com/reference/android/content/pm/ApplicationInfo.DisplayNameComparator.html
-http://developer.android.com/reference/android/content/pm/ComponentInfo.html
-http://developer.android.com/reference/android/content/pm/FeatureInfo.html
-http://developer.android.com/reference/android/content/pm/InstrumentationInfo.html
-http://developer.android.com/reference/android/content/pm/LabeledIntent.html
-http://developer.android.com/reference/android/content/pm/PackageItemInfo.DisplayNameComparator.html
-http://developer.android.com/reference/android/content/pm/PackageStats.html
-http://developer.android.com/reference/android/content/pm/PathPermission.html
-http://developer.android.com/reference/android/content/pm/PermissionGroupInfo.html
-http://developer.android.com/reference/android/content/pm/PermissionInfo.html
-http://developer.android.com/reference/android/content/pm/ProviderInfo.html
-http://developer.android.com/reference/android/content/pm/ResolveInfo.html
-http://developer.android.com/reference/android/content/pm/ResolveInfo.DisplayNameComparator.html
-http://developer.android.com/reference/android/content/pm/ServiceInfo.html
-http://developer.android.com/reference/android/content/pm/Signature.html
-http://developer.android.com/reference/android/content/pm/PackageManager.NameNotFoundException.html
+http://developer.android.com/resources/samples/Wiktionary/res/index.html
+http://developer.android.com/resources/samples/Wiktionary/src/index.html
+http://developer.android.com/resources/samples/Wiktionary/AndroidManifest.html
+http://developer.android.com/reference/java/lang/IllegalArgumentException.html
+http://developer.android.com/reference/android/view/accessibility/AccessibilityManager.html
+http://developer.android.com/reference/android/Manifest.html
+http://developer.android.com/reference/android/Manifest.permission_group.html
+http://developer.android.com/reference/android/R.html
+http://developer.android.com/reference/android/R.anim.html
+http://developer.android.com/reference/android/R.array.html
+http://developer.android.com/reference/android/R.bool.html
+http://developer.android.com/reference/android/R.color.html
+http://developer.android.com/reference/android/R.dimen.html
+http://developer.android.com/reference/android/R.drawable.html
+http://developer.android.com/reference/android/R.id.html
+http://developer.android.com/reference/android/R.integer.html
+http://developer.android.com/reference/android/R.layout.html
+http://developer.android.com/reference/android/R.plurals.html
+http://developer.android.com/reference/android/R.raw.html
+http://developer.android.com/reference/android/R.string.html
 http://developer.android.com/reference/android/R.styleable.html
-http://developer.android.com/reference/android/widget/AbsoluteLayout.html
-http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html
-http://developer.android.com/reference/android/graphics/BitmapFactory.html
+http://developer.android.com/reference/android/R.xml.html
+http://developer.android.com/reference/android/package-descr.html
+http://developer.android.com/resources/tutorials/views/hello-linearlayout.html
+http://developer.android.com/reference/android/view/Gravity.html
+http://developer.android.com/reference/android/view/View.MeasureSpec.html
+http://developer.android.com/reference/java/nio/Buffer.html
+http://developer.android.com/reference/org/xml/sax/helpers/XMLFilterImpl.html
+http://developer.android.com/sdk/api_diff/6/changes/jdiff_topleftframe.html
+http://developer.android.com/sdk/api_diff/6/changes/alldiffs_index_all.html
+http://developer.android.com/sdk/api_diff/6/changes/changes-summary.html
+http://developer.android.com/reference/java/lang/Enum.html
+http://developer.android.com/reference/java/lang/Thread.html
+http://developer.android.com/reference/java/lang/Comparable.html
+http://developer.android.com/reference/java/lang/InterruptedException.html
+http://developer.android.com/reference/org/apache/http/conn/scheme/HostNameResolver.html
+http://developer.android.com/reference/org/apache/http/conn/scheme/LayeredSocketFactory.html
+http://developer.android.com/reference/org/apache/http/conn/scheme/SocketFactory.html
+http://developer.android.com/reference/org/apache/http/conn/scheme/PlainSocketFactory.html
+http://developer.android.com/reference/org/apache/http/conn/scheme/Scheme.html
+http://developer.android.com/reference/org/apache/http/conn/scheme/SchemeRegistry.html
 http://developer.android.com/reference/android/nfc/FormatException.html
 http://developer.android.com/reference/android/nfc/package-descr.html
-http://developer.android.com/reference/java/net/ContentHandlerFactory.html
-http://developer.android.com/reference/java/net/CookiePolicy.html
-http://developer.android.com/reference/java/net/CookieStore.html
-http://developer.android.com/reference/java/net/DatagramSocketImplFactory.html
-http://developer.android.com/reference/java/net/FileNameMap.html
-http://developer.android.com/reference/java/net/SocketImplFactory.html
-http://developer.android.com/reference/java/net/SocketOptions.html
-http://developer.android.com/reference/java/net/URLStreamHandlerFactory.html
-http://developer.android.com/reference/java/net/Authenticator.html
-http://developer.android.com/reference/java/net/CacheRequest.html
-http://developer.android.com/reference/java/net/CacheResponse.html
-http://developer.android.com/reference/java/net/ContentHandler.html
-http://developer.android.com/reference/java/net/CookieHandler.html
-http://developer.android.com/reference/java/net/DatagramPacket.html
-http://developer.android.com/reference/java/net/DatagramSocket.html
-http://developer.android.com/reference/java/net/DatagramSocketImpl.html
-http://developer.android.com/reference/java/net/HttpCookie.html
-http://developer.android.com/reference/java/net/Inet4Address.html
-http://developer.android.com/reference/java/net/Inet6Address.html
-http://developer.android.com/reference/java/net/InetAddress.html
-http://developer.android.com/reference/java/net/InetSocketAddress.html
-http://developer.android.com/reference/java/net/JarURLConnection.html
-http://developer.android.com/reference/java/net/MulticastSocket.html
-http://developer.android.com/reference/java/net/NetPermission.html
-http://developer.android.com/reference/java/net/PasswordAuthentication.html
-http://developer.android.com/reference/java/net/Proxy.html
-http://developer.android.com/reference/java/net/ProxySelector.html
-http://developer.android.com/reference/java/net/ResponseCache.html
-http://developer.android.com/reference/java/net/SecureCacheResponse.html
-http://developer.android.com/reference/java/net/SocketAddress.html
-http://developer.android.com/reference/java/net/SocketImpl.html
-http://developer.android.com/reference/java/net/SocketPermission.html
-http://developer.android.com/reference/java/net/URI.html
-http://developer.android.com/reference/java/net/URL.html
-http://developer.android.com/reference/java/net/URLClassLoader.html
-http://developer.android.com/reference/java/net/URLConnection.html
-http://developer.android.com/reference/java/net/URLDecoder.html
-http://developer.android.com/reference/java/net/URLEncoder.html
-http://developer.android.com/reference/java/net/URLStreamHandler.html
-http://developer.android.com/reference/java/net/Authenticator.RequestorType.html
-http://developer.android.com/reference/java/net/Proxy.Type.html
-http://developer.android.com/reference/java/net/BindException.html
-http://developer.android.com/reference/java/net/ConnectException.html
-http://developer.android.com/reference/java/net/HttpRetryException.html
-http://developer.android.com/reference/java/net/MalformedURLException.html
-http://developer.android.com/reference/java/net/NoRouteToHostException.html
-http://developer.android.com/reference/java/net/PortUnreachableException.html
-http://developer.android.com/reference/java/net/ProtocolException.html
-http://developer.android.com/reference/java/net/SocketException.html
-http://developer.android.com/reference/java/net/SocketTimeoutException.html
-http://developer.android.com/reference/java/net/UnknownHostException.html
-http://developer.android.com/reference/java/net/UnknownServiceException.html
-http://developer.android.com/reference/java/net/URISyntaxException.html
-http://developer.android.com/reference/java/util/Map.html
-http://developer.android.com/reference/java/util/List.html
-http://developer.android.com/reference/android/webkit/DownloadListener.html
-http://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback.html
-http://developer.android.com/reference/android/webkit/Plugin.PreferencesClickHandler.html
-http://developer.android.com/reference/android/webkit/PluginStub.html
-http://developer.android.com/reference/android/webkit/UrlInterceptHandler.html
-http://developer.android.com/reference/android/webkit/ValueCallback.html
-http://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback.html
-http://developer.android.com/reference/android/webkit/WebIconDatabase.IconListener.html
-http://developer.android.com/reference/android/webkit/WebStorage.QuotaUpdater.html
-http://developer.android.com/reference/android/webkit/WebView.PictureListener.html
-http://developer.android.com/reference/android/webkit/CacheManager.html
-http://developer.android.com/reference/android/webkit/CacheManager.CacheResult.html
-http://developer.android.com/reference/android/webkit/CookieManager.html
-http://developer.android.com/reference/android/webkit/CookieSyncManager.html
-http://developer.android.com/reference/android/webkit/DateSorter.html
-http://developer.android.com/reference/android/webkit/HttpAuthHandler.html
-http://developer.android.com/reference/android/webkit/JsPromptResult.html
-http://developer.android.com/reference/android/webkit/JsResult.html
-http://developer.android.com/reference/android/webkit/MimeTypeMap.html
-http://developer.android.com/reference/android/webkit/Plugin.html
-http://developer.android.com/reference/android/webkit/PluginData.html
-http://developer.android.com/reference/android/webkit/PluginList.html
-http://developer.android.com/reference/android/webkit/SslErrorHandler.html
-http://developer.android.com/reference/android/webkit/UrlInterceptRegistry.html
-http://developer.android.com/reference/android/webkit/URLUtil.html
-http://developer.android.com/reference/android/webkit/WebBackForwardList.html
-http://developer.android.com/reference/android/webkit/WebHistoryItem.html
-http://developer.android.com/reference/android/webkit/WebIconDatabase.html
-http://developer.android.com/reference/android/webkit/WebView.HitTestResult.html
-http://developer.android.com/reference/android/webkit/WebView.WebViewTransport.html
-http://developer.android.com/reference/android/webkit/WebViewClient.html
-http://developer.android.com/reference/android/webkit/WebViewDatabase.html
-http://developer.android.com/reference/android/webkit/WebSettings.LayoutAlgorithm.html
-http://developer.android.com/reference/android/webkit/WebSettings.PluginState.html
-http://developer.android.com/reference/android/webkit/WebSettings.RenderPriority.html
-http://developer.android.com/reference/android/webkit/WebSettings.TextSize.html
-http://developer.android.com/reference/android/webkit/WebSettings.ZoomDensity.html
-http://developer.android.com/reference/android/view/accessibility/AccessibilityManager.html
-http://developer.android.com/reference/android/accounts/AccountManager.html
-http://developer.android.com/reference/android/text/ClipboardManager.html
-http://developer.android.com/reference/android/net/ConnectivityManager.html
-http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html
-http://developer.android.com/reference/android/os/DropBoxManager.html
-http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html
-http://developer.android.com/reference/android/os/PowerManager.html
-http://developer.android.com/reference/android/os/Vibrator.html
-http://developer.android.com/reference/android/net/wifi/WifiManager.html
-http://developer.android.com/reference/android/view/WindowManager.html
-http://developer.android.com/reference/android/os/Looper.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.CursorFactory.html
-http://developer.android.com/reference/java/util/Formatter.html
-http://developer.android.com/reference/android/util/AttributeSet.html
-http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html
-http://developer.android.com/reference/org/xmlpull/v1/XmlSerializer.html
-http://developer.android.com/reference/org/xmlpull/v1/XmlPullParserFactory.html
-http://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html
-http://developer.android.com/reference/android/graphics/AvoidXfermode.html
-http://developer.android.com/reference/android/graphics/BitmapShader.html
-http://developer.android.com/reference/android/graphics/BlurMaskFilter.html
-http://developer.android.com/reference/android/graphics/Camera.html
-http://developer.android.com/reference/android/graphics/Color.html
-http://developer.android.com/reference/android/graphics/ColorFilter.html
-http://developer.android.com/reference/android/graphics/ColorMatrix.html
-http://developer.android.com/reference/android/graphics/ColorMatrixColorFilter.html
-http://developer.android.com/reference/android/graphics/ComposePathEffect.html
-http://developer.android.com/reference/android/graphics/ComposeShader.html
-http://developer.android.com/reference/android/graphics/CornerPathEffect.html
-http://developer.android.com/reference/android/graphics/DashPathEffect.html
-http://developer.android.com/reference/android/graphics/DiscretePathEffect.html
-http://developer.android.com/reference/android/graphics/DrawFilter.html
-http://developer.android.com/reference/android/graphics/EmbossMaskFilter.html
-http://developer.android.com/reference/android/graphics/Interpolator.html
-http://developer.android.com/reference/android/graphics/LayerRasterizer.html
-http://developer.android.com/reference/android/graphics/LightingColorFilter.html
-http://developer.android.com/reference/android/graphics/LinearGradient.html
-http://developer.android.com/reference/android/graphics/MaskFilter.html
-http://developer.android.com/reference/android/graphics/Matrix.html
-http://developer.android.com/reference/android/graphics/Movie.html
-http://developer.android.com/reference/android/graphics/NinePatch.html
-http://developer.android.com/reference/android/graphics/Paint.html
-http://developer.android.com/reference/android/graphics/Paint.FontMetrics.html
-http://developer.android.com/reference/android/graphics/Paint.FontMetricsInt.html
-http://developer.android.com/reference/android/graphics/PaintFlagsDrawFilter.html
-http://developer.android.com/reference/android/graphics/Path.html
-http://developer.android.com/reference/android/graphics/PathDashPathEffect.html
-http://developer.android.com/reference/android/graphics/PathEffect.html
-http://developer.android.com/reference/android/graphics/PathMeasure.html
-http://developer.android.com/reference/android/graphics/Picture.html
-http://developer.android.com/reference/android/graphics/PixelFormat.html
-http://developer.android.com/reference/android/graphics/PixelXorXfermode.html
-http://developer.android.com/reference/android/graphics/Point.html
-http://developer.android.com/reference/android/graphics/PointF.html
-http://developer.android.com/reference/android/graphics/PorterDuff.html
-http://developer.android.com/reference/android/graphics/PorterDuffColorFilter.html
-http://developer.android.com/reference/android/graphics/PorterDuffXfermode.html
-http://developer.android.com/reference/android/graphics/RadialGradient.html
-http://developer.android.com/reference/android/graphics/Rasterizer.html
-http://developer.android.com/reference/android/graphics/RectF.html
-http://developer.android.com/reference/android/graphics/Region.html
-http://developer.android.com/reference/android/graphics/RegionIterator.html
-http://developer.android.com/reference/android/graphics/Shader.html
-http://developer.android.com/reference/android/graphics/SumPathEffect.html
-http://developer.android.com/reference/android/graphics/SweepGradient.html
-http://developer.android.com/reference/android/graphics/Typeface.html
-http://developer.android.com/reference/android/graphics/Xfermode.html
-http://developer.android.com/reference/android/graphics/AvoidXfermode.Mode.html
-http://developer.android.com/reference/android/graphics/Bitmap.CompressFormat.html
-http://developer.android.com/reference/android/graphics/Bitmap.Config.html
-http://developer.android.com/reference/android/graphics/BlurMaskFilter.Blur.html
-http://developer.android.com/reference/android/graphics/Canvas.EdgeType.html
-http://developer.android.com/reference/android/graphics/Canvas.VertexMode.html
-http://developer.android.com/reference/android/graphics/Interpolator.Result.html
-http://developer.android.com/reference/android/graphics/Matrix.ScaleToFit.html
-http://developer.android.com/reference/android/graphics/Paint.Align.html
-http://developer.android.com/reference/android/graphics/Paint.Cap.html
-http://developer.android.com/reference/android/graphics/Paint.Join.html
-http://developer.android.com/reference/android/graphics/Paint.Style.html
-http://developer.android.com/reference/android/graphics/Path.Direction.html
-http://developer.android.com/reference/android/graphics/Path.FillType.html
-http://developer.android.com/reference/android/graphics/PathDashPathEffect.Style.html
-http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
-http://developer.android.com/reference/android/graphics/Region.Op.html
-http://developer.android.com/reference/android/graphics/Shader.TileMode.html
-http://developer.android.com/reference/android/graphics/package-descr.html
-http://developer.android.com/reference/javax/security/auth/callback/Callback.html
-http://developer.android.com/reference/javax/security/auth/callback/PasswordCallback.html
-http://developer.android.com/reference/javax/security/auth/callback/UnsupportedCallbackException.html
-http://developer.android.com/reference/javax/security/auth/callback/package-descr.html
-http://developer.android.com/reference/java/util/Locale.html
-http://developer.android.com/reference/android/util/Printer.html
-http://developer.android.com/reference/android/util/Base64.html
-http://developer.android.com/reference/android/util/Base64InputStream.html
-http://developer.android.com/reference/android/util/Base64OutputStream.html
-http://developer.android.com/reference/android/util/Config.html
-http://developer.android.com/reference/android/util/DebugUtils.html
-http://developer.android.com/reference/android/util/EventLog.html
-http://developer.android.com/reference/android/util/EventLog.Event.html
-http://developer.android.com/reference/android/util/EventLogTags.html
-http://developer.android.com/reference/android/util/EventLogTags.Description.html
-http://developer.android.com/reference/android/util/FloatMath.html
-http://developer.android.com/reference/android/util/LogPrinter.html
-http://developer.android.com/reference/android/util/MonthDisplayHelper.html
-http://developer.android.com/reference/android/util/Pair.html
-http://developer.android.com/reference/android/util/Patterns.html
-http://developer.android.com/reference/android/util/PrintStreamPrinter.html
-http://developer.android.com/reference/android/util/PrintWriterPrinter.html
-http://developer.android.com/reference/android/util/SparseArray.html
-http://developer.android.com/reference/android/util/SparseBooleanArray.html
-http://developer.android.com/reference/android/util/SparseIntArray.html
-http://developer.android.com/reference/android/util/StateSet.html
-http://developer.android.com/reference/android/util/StringBuilderPrinter.html
-http://developer.android.com/reference/android/util/TimeUtils.html
-http://developer.android.com/reference/android/util/TimingLogger.html
-http://developer.android.com/reference/android/util/TypedValue.html
-http://developer.android.com/reference/android/util/Xml.html
-http://developer.android.com/reference/android/util/Xml.Encoding.html
-http://developer.android.com/reference/android/util/AndroidException.html
-http://developer.android.com/reference/android/util/AndroidRuntimeException.html
-http://developer.android.com/reference/android/util/TimeFormatException.html
-http://developer.android.com/resources/tutorials/views/hello-spinner.html
-http://developer.android.com/reference/android/widget/AbsSpinner.html
-http://developer.android.com/reference/android/test/ProviderTestCase2.html
-http://developer.android.com/reference/android/test/ServiceTestCase.html
-http://developer.android.com/reference/android/test/MoreAsserts.html
-http://developer.android.com/reference/android/test/TouchUtils.html
-http://developer.android.com/reference/android/opengl/GLSurfaceView.EGLConfigChooser.html
-http://developer.android.com/reference/android/opengl/GLSurfaceView.EGLContextFactory.html
-http://developer.android.com/reference/android/opengl/GLSurfaceView.EGLWindowSurfaceFactory.html
-http://developer.android.com/reference/android/opengl/GLSurfaceView.GLWrapper.html
-http://developer.android.com/reference/android/opengl/GLSurfaceView.Renderer.html
-http://developer.android.com/reference/android/opengl/GLDebugHelper.html
-http://developer.android.com/reference/android/opengl/GLES10.html
-http://developer.android.com/reference/android/opengl/GLES10Ext.html
-http://developer.android.com/reference/android/opengl/GLES11.html
-http://developer.android.com/reference/android/opengl/GLES11Ext.html
-http://developer.android.com/reference/android/opengl/GLU.html
-http://developer.android.com/reference/android/opengl/GLUtils.html
-http://developer.android.com/reference/android/opengl/Matrix.html
-http://developer.android.com/reference/android/opengl/Visibility.html
-http://developer.android.com/reference/android/opengl/GLException.html
-http://developer.android.com/reference/java/nio/Buffer.html
-http://developer.android.com/reference/java/nio/IntBuffer.html
-http://developer.android.com/reference/java/nio/FloatBuffer.html
-http://developer.android.com/reference/java/awt/font/NumericShaper.html
-http://developer.android.com/reference/java/awt/font/TextAttribute.html
-http://developer.android.com/reference/android/os/Handler.Callback.html
-http://developer.android.com/reference/android/os/IBinder.DeathRecipient.html
-http://developer.android.com/reference/android/os/IInterface.html
-http://developer.android.com/reference/android/os/MessageQueue.IdleHandler.html
-http://developer.android.com/reference/android/os/RecoverySystem.ProgressListener.html
-http://developer.android.com/reference/android/os/AsyncTask.html
-http://developer.android.com/reference/android/os/BatteryManager.html
-http://developer.android.com/reference/android/os/Build.VERSION.html
-http://developer.android.com/reference/android/os/Build.VERSION_CODES.html
-http://developer.android.com/reference/android/os/ConditionVariable.html
-http://developer.android.com/reference/android/os/CountDownTimer.html
-http://developer.android.com/reference/android/os/Debug.html
-http://developer.android.com/reference/android/os/Debug.InstructionCount.html
-http://developer.android.com/reference/android/os/Debug.MemoryInfo.html
-http://developer.android.com/reference/android/os/DropBoxManager.Entry.html
-http://developer.android.com/reference/android/os/FileObserver.html
-http://developer.android.com/reference/android/os/HandlerThread.html
-http://developer.android.com/reference/android/os/MemoryFile.html
-http://developer.android.com/reference/android/os/Message.html
-http://developer.android.com/reference/android/os/MessageQueue.html
-http://developer.android.com/reference/android/os/Messenger.html
-http://developer.android.com/reference/android/os/ParcelFileDescriptor.AutoCloseInputStream.html
-http://developer.android.com/reference/android/os/ParcelFileDescriptor.AutoCloseOutputStream.html
-http://developer.android.com/reference/android/os/ParcelUuid.html
-http://developer.android.com/reference/android/os/PowerManager.WakeLock.html
-http://developer.android.com/reference/android/os/RecoverySystem.html
-http://developer.android.com/reference/android/os/RemoteCallbackList.html
-http://developer.android.com/reference/android/os/ResultReceiver.html
-http://developer.android.com/reference/android/os/StatFs.html
-http://developer.android.com/reference/android/os/StrictMode.ThreadPolicy.Builder.html
-http://developer.android.com/reference/android/os/StrictMode.VmPolicy.Builder.html
-http://developer.android.com/reference/android/os/TokenWatcher.html
-http://developer.android.com/reference/android/os/AsyncTask.Status.html
-http://developer.android.com/reference/android/os/BadParcelableException.html
-http://developer.android.com/reference/android/os/ParcelFormatException.html
-http://developer.android.com/reference/android/os/RemoteException.html
-http://developer.android.com/reference/android/widget/SimpleCursorAdapter.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/AndroidManifest.html
-http://developer.android.com/reference/java/util/regex/MatchResult.html
-http://developer.android.com/reference/java/util/regex/Matcher.html
-http://developer.android.com/reference/java/util/regex/Pattern.html
-http://developer.android.com/reference/java/util/regex/PatternSyntaxException.html
-http://developer.android.com/reference/android/widget/AbsListView.OnScrollListener.html
-http://developer.android.com/reference/android/widget/AbsListView.RecyclerListener.html
-http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html
-http://developer.android.com/reference/android/widget/AdapterView.OnItemLongClickListener.html
-http://developer.android.com/reference/android/widget/AdapterView.OnItemSelectedListener.html
-http://developer.android.com/reference/android/widget/AutoCompleteTextView.Validator.html
-http://developer.android.com/reference/android/widget/Checkable.html
-http://developer.android.com/reference/android/widget/Chronometer.OnChronometerTickListener.html
-http://developer.android.com/reference/android/widget/CompoundButton.OnCheckedChangeListener.html
-http://developer.android.com/reference/android/widget/DatePicker.OnDateChangedListener.html
-http://developer.android.com/reference/android/widget/ExpandableListAdapter.html
-http://developer.android.com/reference/android/widget/ExpandableListView.OnChildClickListener.html
-http://developer.android.com/reference/android/widget/ExpandableListView.OnGroupClickListener.html
-http://developer.android.com/reference/android/widget/ExpandableListView.OnGroupCollapseListener.html
-http://developer.android.com/reference/android/widget/ExpandableListView.OnGroupExpandListener.html
-http://developer.android.com/reference/android/widget/Filter.FilterListener.html
-http://developer.android.com/reference/android/widget/Filterable.html
-http://developer.android.com/reference/android/widget/FilterQueryProvider.html
-http://developer.android.com/reference/android/widget/HeterogeneousExpandableList.html
-http://developer.android.com/reference/android/widget/ListAdapter.html
-http://developer.android.com/reference/android/widget/MediaController.MediaPlayerControl.html
-http://developer.android.com/reference/android/widget/MultiAutoCompleteTextView.Tokenizer.html
-http://developer.android.com/reference/android/widget/PopupWindow.OnDismissListener.html
-http://developer.android.com/reference/android/widget/RadioGroup.OnCheckedChangeListener.html
-http://developer.android.com/reference/android/widget/RatingBar.OnRatingBarChangeListener.html
-http://developer.android.com/reference/android/widget/SectionIndexer.html
-http://developer.android.com/reference/android/widget/SeekBar.OnSeekBarChangeListener.html
-http://developer.android.com/reference/android/widget/SimpleAdapter.ViewBinder.html
-http://developer.android.com/reference/android/widget/SimpleCursorAdapter.CursorToStringConverter.html
-http://developer.android.com/reference/android/widget/SimpleCursorAdapter.ViewBinder.html
-http://developer.android.com/reference/android/widget/SimpleCursorTreeAdapter.ViewBinder.html
-http://developer.android.com/reference/android/widget/SlidingDrawer.OnDrawerCloseListener.html
-http://developer.android.com/reference/android/widget/SlidingDrawer.OnDrawerOpenListener.html
-http://developer.android.com/reference/android/widget/SlidingDrawer.OnDrawerScrollListener.html
-http://developer.android.com/reference/android/widget/SpinnerAdapter.html
-http://developer.android.com/reference/android/widget/TabHost.OnTabChangeListener.html
-http://developer.android.com/reference/android/widget/TabHost.TabContentFactory.html
-http://developer.android.com/reference/android/widget/TextView.OnEditorActionListener.html
-http://developer.android.com/reference/android/widget/TimePicker.OnTimeChangedListener.html
-http://developer.android.com/reference/android/widget/ViewSwitcher.ViewFactory.html
-http://developer.android.com/reference/android/widget/WrapperListAdapter.html
-http://developer.android.com/reference/android/widget/ZoomButtonsController.OnZoomListener.html
-http://developer.android.com/reference/android/widget/AbsListView.html
-http://developer.android.com/reference/android/widget/AbsListView.LayoutParams.html
-http://developer.android.com/reference/android/widget/AbsoluteLayout.LayoutParams.html
-http://developer.android.com/reference/android/widget/AbsSeekBar.html
-http://developer.android.com/reference/android/widget/AdapterView.AdapterContextMenuInfo.html
-http://developer.android.com/reference/android/widget/AlphabetIndexer.html
-http://developer.android.com/reference/android/widget/AnalogClock.html
-http://developer.android.com/reference/android/widget/ArrayAdapter.html
-http://developer.android.com/reference/android/widget/BaseExpandableListAdapter.html
-http://developer.android.com/reference/android/widget/CheckedTextView.html
-http://developer.android.com/reference/android/widget/Chronometer.html
-http://developer.android.com/reference/android/widget/CompoundButton.html
-http://developer.android.com/reference/android/widget/CursorTreeAdapter.html
-http://developer.android.com/reference/android/widget/DialerFilter.html
-http://developer.android.com/reference/android/widget/DigitalClock.html
-http://developer.android.com/reference/android/widget/ExpandableListView.html
-http://developer.android.com/reference/android/widget/ExpandableListView.ExpandableListContextMenuInfo.html
-http://developer.android.com/reference/android/widget/Filter.html
-http://developer.android.com/reference/android/widget/Filter.FilterResults.html
-http://developer.android.com/reference/android/widget/FrameLayout.LayoutParams.html
-http://developer.android.com/reference/android/widget/Gallery.LayoutParams.html
-http://developer.android.com/reference/android/widget/GridView.html
-http://developer.android.com/reference/android/widget/HeaderViewListAdapter.html
-http://developer.android.com/reference/android/widget/ImageButton.html
-http://developer.android.com/reference/android/widget/ImageView.html
-http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html
-http://developer.android.com/reference/android/widget/ListView.FixedViewInfo.html
-http://developer.android.com/reference/android/widget/MediaController.html
-http://developer.android.com/reference/android/widget/MultiAutoCompleteTextView.html
-http://developer.android.com/reference/android/widget/MultiAutoCompleteTextView.CommaTokenizer.html
-http://developer.android.com/reference/android/widget/PopupWindow.html
-http://developer.android.com/reference/android/widget/RadioGroup.html
-http://developer.android.com/reference/android/widget/RadioGroup.LayoutParams.html
-http://developer.android.com/reference/android/widget/RatingBar.html
-http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html
-http://developer.android.com/reference/android/widget/ResourceCursorAdapter.html
-http://developer.android.com/reference/android/widget/ResourceCursorTreeAdapter.html
-http://developer.android.com/reference/android/widget/Scroller.html
-http://developer.android.com/reference/android/widget/ScrollView.html
-http://developer.android.com/reference/android/widget/SeekBar.html
-http://developer.android.com/reference/android/widget/SimpleAdapter.html
-http://developer.android.com/reference/android/widget/SimpleCursorTreeAdapter.html
-http://developer.android.com/reference/android/widget/SimpleExpandableListAdapter.html
-http://developer.android.com/reference/android/widget/TabHost.html
-http://developer.android.com/reference/android/widget/TabHost.TabSpec.html
-http://developer.android.com/reference/android/widget/TableLayout.html
-http://developer.android.com/reference/android/widget/TableLayout.LayoutParams.html
-http://developer.android.com/reference/android/widget/TableRow.html
-http://developer.android.com/reference/android/widget/TableRow.LayoutParams.html
-http://developer.android.com/reference/android/widget/TabWidget.html
-http://developer.android.com/reference/android/widget/TextView.SavedState.html
-http://developer.android.com/reference/android/widget/ToggleButton.html
-http://developer.android.com/reference/android/widget/TwoLineListItem.html
-http://developer.android.com/reference/android/widget/VideoView.html
-http://developer.android.com/reference/android/widget/ViewAnimator.html
-http://developer.android.com/reference/android/widget/ViewFlipper.html
-http://developer.android.com/reference/android/widget/ViewSwitcher.html
-http://developer.android.com/reference/android/widget/ZoomButton.html
-http://developer.android.com/reference/android/widget/ZoomButtonsController.html
-http://developer.android.com/reference/android/widget/ZoomControls.html
-http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
-http://developer.android.com/reference/android/widget/TextView.BufferType.html
-http://developer.android.com/reference/android/widget/RemoteViews.ActionException.html
-http://developer.android.com/reference/android/view/animation/Interpolator.html
-http://developer.android.com/reference/java/util/ArrayList.html
-http://developer.android.com/reference/android/view/animation/Animation.html
-http://developer.android.com/reference/android/view/ContextMenu.ContextMenuInfo.html
-http://developer.android.com/reference/android/view/KeyEvent.DispatcherState.html
-http://developer.android.com/reference/android/view/View.OnFocusChangeListener.html
-http://developer.android.com/reference/android/view/ViewParent.html
-http://developer.android.com/reference/android/view/TouchDelegate.html
-http://developer.android.com/reference/android/view/ViewTreeObserver.html
-http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html
-http://developer.android.com/reference/android/view/KeyEvent.Callback.html
-http://developer.android.com/reference/android/view/View.OnCreateContextMenuListener.html
-http://developer.android.com/reference/android/view/View.OnKeyListener.html
-http://developer.android.com/reference/android/view/View.OnLongClickListener.html
-http://developer.android.com/reference/android/view/View.OnTouchListener.html
-http://developer.android.com/reference/android/view/accessibility/AccessibilityEventSource.html
-http://developer.android.com/reference/android/content/pm/package-descr.html
-http://developer.android.com/reference/android/view/GestureDetector.OnDoubleTapListener.html
-http://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html
-http://developer.android.com/reference/android/view/InputQueue.Callback.html
-http://developer.android.com/reference/android/view/LayoutInflater.Factory.html
-http://developer.android.com/reference/android/view/LayoutInflater.Filter.html
-http://developer.android.com/reference/android/view/MenuItem.html
-http://developer.android.com/reference/android/view/MenuItem.OnMenuItemClickListener.html
-http://developer.android.com/reference/android/view/ScaleGestureDetector.OnScaleGestureListener.html
-http://developer.android.com/reference/android/view/SubMenu.html
-http://developer.android.com/reference/android/view/SurfaceHolder.Callback.html
-http://developer.android.com/reference/android/view/ViewGroup.OnHierarchyChangeListener.html
-http://developer.android.com/reference/android/view/ViewManager.html
-http://developer.android.com/reference/android/view/ViewStub.OnInflateListener.html
-http://developer.android.com/reference/android/view/ViewTreeObserver.OnGlobalFocusChangeListener.html
-http://developer.android.com/reference/android/view/ViewTreeObserver.OnGlobalLayoutListener.html
-http://developer.android.com/reference/android/view/ViewTreeObserver.OnPreDrawListener.html
-http://developer.android.com/reference/android/view/ViewTreeObserver.OnScrollChangedListener.html
-http://developer.android.com/reference/android/view/ViewTreeObserver.OnTouchModeChangeListener.html
-http://developer.android.com/reference/android/view/Window.Callback.html
-http://developer.android.com/reference/android/view/AbsSavedState.html
-http://developer.android.com/reference/android/view/ContextThemeWrapper.html
-http://developer.android.com/reference/android/view/Display.html
-http://developer.android.com/reference/android/view/FocusFinder.html
-http://developer.android.com/reference/android/view/GestureDetector.html
-http://developer.android.com/reference/android/view/GestureDetector.SimpleOnGestureListener.html
-http://developer.android.com/reference/android/view/HapticFeedbackConstants.html
-http://developer.android.com/reference/android/view/InputDevice.MotionRange.html
-http://developer.android.com/reference/android/view/KeyCharacterMap.html
-http://developer.android.com/reference/android/view/KeyCharacterMap.KeyData.html
-http://developer.android.com/reference/android/view/MenuInflater.html
-http://developer.android.com/reference/android/view/MotionEvent.PointerCoords.html
-http://developer.android.com/reference/android/view/OrientationEventListener.html
-http://developer.android.com/reference/android/view/OrientationListener.html
-http://developer.android.com/reference/android/view/ScaleGestureDetector.SimpleOnScaleGestureListener.html
-http://developer.android.com/reference/android/view/SoundEffectConstants.html
-http://developer.android.com/reference/android/view/Surface.html
-http://developer.android.com/reference/android/view/VelocityTracker.html
-http://developer.android.com/reference/android/view/View.BaseSavedState.html
-http://developer.android.com/reference/android/view/ViewDebug.html
-http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
-http://developer.android.com/reference/android/view/ViewStub.html
-http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html
-http://developer.android.com/reference/android/view/ViewDebug.HierarchyTraceType.html
-http://developer.android.com/reference/android/view/ViewDebug.RecyclerTraceType.html
-http://developer.android.com/reference/android/view/InflateException.html
-http://developer.android.com/reference/android/view/Surface.OutOfResourcesException.html
-http://developer.android.com/reference/android/view/SurfaceHolder.BadSurfaceTypeException.html
-http://developer.android.com/reference/android/view/WindowManager.BadTokenException.html
-http://developer.android.com/reference/android/text/method/MetaKeyKeyListener.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/AbstractCookieAttributeHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/AbstractCookieSpec.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicClientCookie.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicClientCookie2.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicCommentHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicDomainHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicExpiresHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicMaxAgeHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicPathHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicSecureHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BestMatchSpec.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BestMatchSpecFactory.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BrowserCompatSpec.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BrowserCompatSpecFactory.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/CookieSpecBase.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/DateUtils.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDomainHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDraftHeaderParser.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDraftSpec.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDraftSpecFactory.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109DomainHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109Spec.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109SpecFactory.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109VersionHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965CommentUrlAttributeHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965DiscardAttributeHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965DomainAttributeHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965PortAttributeHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965Spec.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965SpecFactory.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965VersionAttributeHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/DateParseException.html
-http://developer.android.com/reference/org/apache/http/cookie/CookieAttributeHandler.html
-http://developer.android.com/reference/android/util/package-descr.html
-http://developer.android.com/reference/java/nio/ByteBuffer.html
+http://developer.android.com/sdk/api_diff/5/changes/jdiff_topleftframe.html
+http://developer.android.com/sdk/api_diff/5/changes/alldiffs_index_all.html
+http://developer.android.com/sdk/api_diff/5/changes/changes-summary.html
+http://developer.android.com/reference/java/lang/Iterable.html
+http://developer.android.com/reference/java/util/Iterator.html
+http://developer.android.com/reference/android/telephony/gsm/SmsManager.html
+http://developer.android.com/reference/android/telephony/gsm/SmsMessage.html
+http://developer.android.com/reference/android/telephony/gsm/SmsMessage.SubmitPdu.html
+http://developer.android.com/reference/android/telephony/gsm/SmsMessage.MessageClass.html
+http://developer.android.com/reference/android/telephony/gsm/package-descr.html
+http://developer.android.com/reference/android/app/DatePickerDialog.OnDateSetListener.html
+http://developer.android.com/reference/android/app/KeyguardManager.OnKeyguardExitResult.html
+http://developer.android.com/reference/android/app/PendingIntent.OnFinished.html
+http://developer.android.com/reference/android/app/TimePickerDialog.OnTimeSetListener.html
+http://developer.android.com/reference/android/app/ActivityGroup.html
+http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html
+http://developer.android.com/reference/android/app/ActivityManager.ProcessErrorStateInfo.html
+http://developer.android.com/reference/android/app/ActivityManager.RecentTaskInfo.html
+http://developer.android.com/reference/android/app/ActivityManager.RunningServiceInfo.html
+http://developer.android.com/reference/android/app/ActivityManager.RunningTaskInfo.html
+http://developer.android.com/reference/android/app/AlarmManager.html
+http://developer.android.com/reference/android/app/AlertDialog.html
+http://developer.android.com/reference/android/app/AlertDialog.Builder.html
+http://developer.android.com/reference/android/app/AliasActivity.html
+http://developer.android.com/reference/android/app/DatePickerDialog.html
+http://developer.android.com/reference/android/app/ExpandableListActivity.html
+http://developer.android.com/reference/android/app/Instrumentation.ActivityMonitor.html
+http://developer.android.com/reference/android/app/Instrumentation.ActivityResult.html
+http://developer.android.com/reference/android/app/IntentService.html
+http://developer.android.com/reference/android/app/KeyguardManager.html
+http://developer.android.com/reference/android/app/KeyguardManager.KeyguardLock.html
+http://developer.android.com/reference/android/app/LauncherActivity.html
+http://developer.android.com/reference/android/app/LauncherActivity.IconResizer.html
+http://developer.android.com/reference/android/app/LauncherActivity.ListItem.html
+http://developer.android.com/reference/android/app/LocalActivityManager.html
+http://developer.android.com/reference/android/app/Notification.html
+http://developer.android.com/reference/android/app/SearchableInfo.html
+http://developer.android.com/reference/android/app/TabActivity.html
+http://developer.android.com/reference/android/app/TimePickerDialog.html
+http://developer.android.com/reference/android/app/PendingIntent.CanceledException.html
+http://developer.android.com/reference/java/io/IOException.html
+http://developer.android.com/reference/org/w3c/dom/Attr.html
+http://developer.android.com/reference/org/w3c/dom/CDATASection.html
+http://developer.android.com/reference/org/w3c/dom/CharacterData.html
+http://developer.android.com/reference/org/w3c/dom/Comment.html
+http://developer.android.com/reference/org/w3c/dom/Document.html
+http://developer.android.com/reference/org/w3c/dom/DocumentFragment.html
+http://developer.android.com/reference/org/w3c/dom/DocumentType.html
+http://developer.android.com/reference/org/w3c/dom/DOMConfiguration.html
+http://developer.android.com/reference/org/w3c/dom/DOMError.html
+http://developer.android.com/reference/org/w3c/dom/DOMErrorHandler.html
+http://developer.android.com/reference/org/w3c/dom/DOMImplementation.html
+http://developer.android.com/reference/org/w3c/dom/DOMImplementationList.html
+http://developer.android.com/reference/org/w3c/dom/DOMImplementationSource.html
+http://developer.android.com/reference/org/w3c/dom/DOMLocator.html
+http://developer.android.com/reference/org/w3c/dom/DOMStringList.html
+http://developer.android.com/reference/org/w3c/dom/Element.html
+http://developer.android.com/reference/org/w3c/dom/Entity.html
+http://developer.android.com/reference/org/w3c/dom/EntityReference.html
+http://developer.android.com/reference/org/w3c/dom/NamedNodeMap.html
+http://developer.android.com/reference/org/w3c/dom/NameList.html
+http://developer.android.com/reference/org/w3c/dom/Node.html
+http://developer.android.com/reference/org/w3c/dom/NodeList.html
+http://developer.android.com/reference/org/w3c/dom/Notation.html
+http://developer.android.com/reference/org/w3c/dom/ProcessingInstruction.html
+http://developer.android.com/reference/org/w3c/dom/Text.html
+http://developer.android.com/reference/org/w3c/dom/TypeInfo.html
+http://developer.android.com/reference/org/w3c/dom/UserDataHandler.html
+http://developer.android.com/reference/org/w3c/dom/DOMException.html
+http://developer.android.com/reference/org/w3c/dom/package-descr.html
+http://developer.android.com/reference/java/lang/IllegalStateException.html
 http://developer.android.com/reference/android/opengl/package-descr.html
-http://developer.android.com/resources/samples/BusinessCard/res/index.html
-http://developer.android.com/resources/samples/BusinessCard/src/index.html
-http://developer.android.com/resources/samples/BusinessCard/AndroidManifest.html
-http://developer.android.com/reference/android/text/Editable.html
-http://developer.android.com/reference/android/text/GetChars.html
-http://developer.android.com/reference/android/text/Html.ImageGetter.html
-http://developer.android.com/reference/android/text/Html.TagHandler.html
-http://developer.android.com/reference/android/text/InputFilter.html
-http://developer.android.com/reference/android/text/InputType.html
-http://developer.android.com/reference/android/text/NoCopySpan.html
-http://developer.android.com/reference/android/text/ParcelableSpan.html
-http://developer.android.com/reference/android/text/Spannable.html
-http://developer.android.com/reference/android/text/Spanned.html
-http://developer.android.com/reference/android/text/SpanWatcher.html
-http://developer.android.com/reference/android/text/TextUtils.EllipsizeCallback.html
-http://developer.android.com/reference/android/text/TextUtils.StringSplitter.html
-http://developer.android.com/reference/android/text/TextWatcher.html
-http://developer.android.com/reference/android/text/AlteredCharSequence.html
-http://developer.android.com/reference/android/text/AndroidCharacter.html
-http://developer.android.com/reference/android/text/Annotation.html
-http://developer.android.com/reference/android/text/AutoText.html
-http://developer.android.com/reference/android/text/BoringLayout.html
-http://developer.android.com/reference/android/text/BoringLayout.Metrics.html
-http://developer.android.com/reference/android/text/DynamicLayout.html
-http://developer.android.com/reference/android/text/Editable.Factory.html
-http://developer.android.com/reference/android/text/InputFilter.AllCaps.html
-http://developer.android.com/reference/android/text/InputFilter.LengthFilter.html
-http://developer.android.com/reference/android/text/Layout.html
-http://developer.android.com/reference/android/text/Layout.Directions.html
-http://developer.android.com/reference/android/text/LoginFilter.html
-http://developer.android.com/reference/android/text/LoginFilter.PasswordFilterGMail.html
-http://developer.android.com/reference/android/text/LoginFilter.UsernameFilterGeneric.html
-http://developer.android.com/reference/android/text/LoginFilter.UsernameFilterGMail.html
-http://developer.android.com/reference/android/text/NoCopySpan.Concrete.html
-http://developer.android.com/reference/android/text/Selection.html
-http://developer.android.com/reference/android/text/Spannable.Factory.html
-http://developer.android.com/reference/android/text/SpannableString.html
-http://developer.android.com/reference/android/text/SpannableStringBuilder.html
-http://developer.android.com/reference/android/text/SpannedString.html
-http://developer.android.com/reference/android/text/StaticLayout.html
-http://developer.android.com/reference/android/text/TextPaint.html
-http://developer.android.com/reference/android/text/TextUtils.SimpleStringSplitter.html
-http://developer.android.com/reference/android/text/Layout.Alignment.html
-http://developer.android.com/reference/android/text/TextUtils.TruncateAt.html
-http://developer.android.com/reference/org/apache/http/io/HttpMessageParser.html
-http://developer.android.com/reference/org/apache/http/io/HttpMessageWriter.html
-http://developer.android.com/reference/org/apache/http/io/SessionOutputBuffer.html
-http://developer.android.com/reference/org/apache/http/io/package-descr.html
-http://developer.android.com/reference/android/net/sip/SipRegistrationListener.html
-http://developer.android.com/reference/android/net/sip/SipAudioCall.html
-http://developer.android.com/reference/android/net/sip/SipAudioCall.Listener.html
-http://developer.android.com/reference/android/net/sip/SipErrorCode.html
-http://developer.android.com/reference/android/net/sip/SipProfile.html
-http://developer.android.com/reference/android/net/sip/SipProfile.Builder.html
-http://developer.android.com/reference/android/net/sip/SipSession.html
-http://developer.android.com/reference/android/net/sip/SipSession.Listener.html
-http://developer.android.com/reference/android/net/sip/SipSession.State.html
-http://developer.android.com/reference/android/net/sip/SipException.html
-http://developer.android.com/reference/android/bluetooth/BluetoothClass.Device.html
-http://developer.android.com/reference/android/bluetooth/BluetoothClass.Device.Major.html
-http://developer.android.com/reference/android/bluetooth/BluetoothClass.Service.html
-http://developer.android.com/resources/samples/SipDemo/src/com/example/android/sip/SipSettings.html
-http://developer.android.com/resources/samples/SipDemo/src/com/example/android/sip/WalkieTalkieActivity.html
-http://developer.android.com/resources/samples/SipDemo/res/index.html
-http://developer.android.com/resources/samples/SipDemo/src/index.html
-http://developer.android.com/resources/samples/SipDemo/AndroidManifest.html
-http://developer.android.com/reference/org/apache/http/conn/util/InetAddressUtils.html
-http://developer.android.com/reference/org/apache/http/auth/params/AuthPNames.html
-http://developer.android.com/reference/org/apache/http/auth/params/AuthParamBean.html
-http://developer.android.com/reference/org/apache/http/auth/params/AuthParams.html
-http://developer.android.com/reference/org/apache/http/auth/params/package-descr.html
-http://developer.android.com/reference/org/xml/sax/ext/Attributes2.html
-http://developer.android.com/reference/org/xml/sax/ext/DeclHandler.html
-http://developer.android.com/reference/org/xml/sax/ext/EntityResolver2.html
-http://developer.android.com/reference/org/xml/sax/ext/LexicalHandler.html
-http://developer.android.com/reference/org/xml/sax/ext/Locator2.html
-http://developer.android.com/reference/org/xml/sax/ext/Attributes2Impl.html
-http://developer.android.com/reference/org/xml/sax/ext/DefaultHandler2.html
-http://developer.android.com/reference/org/xml/sax/ext/Locator2Impl.html
-http://developer.android.com/reference/org/xml/sax/ext/package-descr.html
-http://developer.android.com/reference/java/nio/charset/IllegalCharsetNameException.html
-http://developer.android.com/reference/java/util/IllegalFormatException.html
-http://developer.android.com/reference/java/nio/channels/IllegalSelectorException.html
-http://developer.android.com/reference/java/nio/channels/UnresolvedAddressException.html
-http://developer.android.com/reference/java/nio/channels/UnsupportedAddressTypeException.html
-http://developer.android.com/reference/java/nio/charset/UnsupportedCharsetException.html
-http://developer.android.com/reference/java/util/DuplicateFormatFlagsException.html
-http://developer.android.com/reference/java/util/FormatFlagsConversionMismatchException.html
-http://developer.android.com/reference/java/util/IllegalFormatCodePointException.html
-http://developer.android.com/reference/java/util/IllegalFormatConversionException.html
-http://developer.android.com/reference/java/util/IllegalFormatFlagsException.html
-http://developer.android.com/reference/java/util/IllegalFormatPrecisionException.html
-http://developer.android.com/reference/java/util/IllegalFormatWidthException.html
-http://developer.android.com/reference/java/util/MissingFormatArgumentException.html
-http://developer.android.com/reference/java/util/MissingFormatWidthException.html
-http://developer.android.com/reference/java/util/UnknownFormatConversionException.html
-http://developer.android.com/reference/java/util/UnknownFormatFlagsException.html
-http://developer.android.com/reference/android/service/wallpaper/WallpaperService.Engine.html
-http://developer.android.com/reference/org/apache/http/client/methods/AbortableHttpRequest.html
-http://developer.android.com/reference/org/apache/http/client/methods/HttpUriRequest.html
-http://developer.android.com/reference/org/apache/http/RequestLine.html
-http://developer.android.com/reference/org/apache/http/conn/ClientConnectionRequest.html
-http://developer.android.com/reference/org/apache/http/conn/ConnectionReleaseTrigger.html
-http://developer.android.com/reference/org/apache/http/conn/ManagedClientConnection.html
-http://developer.android.com/reference/org/apache/http/auth/AUTH.html
-http://developer.android.com/reference/android/accounts/AbstractAccountAuthenticator.html
-http://developer.android.com/reference/org/apache/http/impl/client/AbstractAuthenticationHandler.html
-http://developer.android.com/reference/org/apache/http/impl/conn/AbstractClientConnAdapter.html
-http://developer.android.com/reference/java/util/AbstractCollection.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/AbstractConnPool.html
-http://developer.android.com/reference/android/database/AbstractCursor.html
-http://developer.android.com/reference/java/util/concurrent/AbstractExecutorService.html
-http://developer.android.com/reference/org/apache/http/impl/client/AbstractHttpClient.html
-http://developer.android.com/reference/org/apache/http/impl/AbstractHttpClientConnection.html
-http://developer.android.com/reference/org/apache/http/impl/AbstractHttpServerConnection.html
-http://developer.android.com/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodImpl.html
-http://developer.android.com/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodSessionImpl.html
-http://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel.html
-http://developer.android.com/reference/java/util/AbstractMap.html
-http://developer.android.com/reference/java/util/AbstractMap.SimpleEntry.html
-http://developer.android.com/reference/java/util/AbstractMap.SimpleImmutableEntry.html
-http://developer.android.com/reference/java/util/concurrent/locks/AbstractOwnableSynchronizer.html
-http://developer.android.com/reference/org/apache/http/impl/conn/AbstractPoolEntry.html
-http://developer.android.com/reference/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.ConditionObject.html
-http://developer.android.com/reference/java/util/concurrent/locks/AbstractQueuedSynchronizer.ConditionObject.html
-http://developer.android.com/reference/android/view/animation/AccelerateDecelerateInterpolator.html
-http://developer.android.com/reference/android/view/animation/AccelerateInterpolator.html
-http://developer.android.com/reference/java/lang/reflect/AccessibleObject.html
-http://developer.android.com/reference/android/accounts/Account.html
-http://developer.android.com/reference/android/accounts/AccountAuthenticatorResponse.html
-http://developer.android.com/reference/android/location/Address.html
-http://developer.android.com/reference/java/util/zip/Adler32.html
-http://developer.android.com/reference/android/text/style/AlignmentSpan.Standard.html
-http://developer.android.com/reference/android/net/http/AndroidHttpClient.html
-http://developer.android.com/reference/android/view/animation/Animation.Description.html
-http://developer.android.com/reference/android/view/animation/AnimationUtils.html
-http://developer.android.com/reference/android/view/animation/AnticipateInterpolator.html
-http://developer.android.com/reference/android/view/animation/AnticipateOvershootInterpolator.html
-http://developer.android.com/reference/android/appwidget/AppWidgetHost.html
-http://developer.android.com/reference/android/appwidget/AppWidgetManager.html
-http://developer.android.com/reference/android/appwidget/AppWidgetProviderInfo.html
-http://developer.android.com/reference/java/lang/reflect/Array.html
-http://developer.android.com/reference/android/text/method/ArrowKeyMovementMethod.html
-http://developer.android.com/reference/android/media/AsyncPlayer.html
-http://developer.android.com/reference/java/util/jar/Attributes.html
-http://developer.android.com/reference/java/util/jar/Attributes.Name.html
-http://developer.android.com/reference/android/media/audiofx/AudioEffect.Descriptor.html
-http://developer.android.com/reference/android/media/AudioFormat.html
-http://developer.android.com/reference/android/media/AudioRecord.html
-http://developer.android.com/reference/org/apache/http/client/params/AuthPolicy.html
-http://developer.android.com/reference/org/apache/http/impl/auth/AuthSchemeBase.html
-http://developer.android.com/reference/org/apache/http/auth/AuthSchemeRegistry.html
-http://developer.android.com/reference/org/apache/http/auth/AuthScope.html
-http://developer.android.com/reference/org/apache/http/auth/AuthState.html
-http://developer.android.com/reference/android/accounts/AuthenticatorDescription.html
-http://developer.android.com/reference/android/app/backup/BackupDataInput.html
-http://developer.android.com/reference/android/app/backup/BackupDataOutput.html
-http://developer.android.com/reference/android/app/backup/BackupManager.html
-http://developer.android.com/reference/org/apache/http/impl/client/BasicCookieStore.html
-http://developer.android.com/reference/org/apache/http/impl/client/BasicCredentialsProvider.html
-http://developer.android.com/reference/org/apache/http/conn/BasicEofSensorWatcher.html
-http://developer.android.com/reference/org/apache/http/protocol/BasicHttpContext.html
-http://developer.android.com/reference/org/apache/http/protocol/BasicHttpProcessor.html
-http://developer.android.com/reference/org/apache/http/impl/client/BasicResponseHandler.html
-http://developer.android.com/reference/org/apache/http/conn/routing/BasicRouteDirector.html
-http://developer.android.com/reference/org/apache/http/impl/auth/BasicSchemeFactory.html
-http://developer.android.com/reference/org/apache/http/auth/BasicUserPrincipal.html
-http://developer.android.com/reference/android/media/audiofx/BassBoost.Settings.html
-http://developer.android.com/reference/java/util/BitSet.html
-http://developer.android.com/reference/android/view/animation/BounceInterpolator.html
+http://developer.android.com/reference/java/lang/Throwable.html
+http://developer.android.com/reference/java/lang/Exception.html
+http://developer.android.com/reference/java/lang/StackTraceElement.html
+http://developer.android.com/reference/java/io/PrintWriter.html
+http://developer.android.com/reference/java/io/PrintStream.html
+http://developer.android.com/reference/android/provider/Contacts.ContactMethodsColumns.html
+http://developer.android.com/reference/android/provider/Contacts.ExtensionsColumns.html
+http://developer.android.com/reference/android/provider/Contacts.GroupsColumns.html
+http://developer.android.com/reference/android/provider/Contacts.OrganizationColumns.html
+http://developer.android.com/reference/android/provider/Contacts.PhotosColumns.html
+http://developer.android.com/reference/android/provider/Contacts.PresenceColumns.html
+http://developer.android.com/reference/android/provider/Contacts.SettingsColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.BaseSyncColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.BaseTypes.html
+http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.CommonColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.ContactOptionsColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.ContactsColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.ContactStatusColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.DataColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.DataColumnsWithJoins.html
+http://developer.android.com/reference/android/provider/ContactsContract.GroupsColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.PhoneLookupColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.PresenceColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.RawContactsColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.SettingsColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.StatusColumns.html
+http://developer.android.com/reference/android/provider/ContactsContract.SyncColumns.html
+http://developer.android.com/reference/android/provider/MediaStore.Audio.AlbumColumns.html
+http://developer.android.com/reference/android/provider/MediaStore.Audio.ArtistColumns.html
+http://developer.android.com/reference/android/provider/MediaStore.Audio.AudioColumns.html
+http://developer.android.com/reference/android/provider/MediaStore.Audio.GenresColumns.html
+http://developer.android.com/reference/android/provider/MediaStore.Audio.PlaylistsColumns.html
+http://developer.android.com/reference/android/provider/MediaStore.Images.ImageColumns.html
+http://developer.android.com/reference/android/provider/MediaStore.MediaColumns.html
+http://developer.android.com/reference/android/provider/MediaStore.Video.VideoColumns.html
+http://developer.android.com/reference/android/provider/OpenableColumns.html
+http://developer.android.com/reference/android/provider/SyncStateContract.Columns.html
 http://developer.android.com/reference/android/provider/Browser.html
 http://developer.android.com/reference/android/provider/Browser.BookmarkColumns.html
 http://developer.android.com/reference/android/provider/Browser.SearchColumns.html
-http://developer.android.com/reference/android/text/style/BulletSpan.html
-http://developer.android.com/reference/java/nio/ByteOrder.html
-http://developer.android.com/reference/java/util/zip/CRC32.html
-http://developer.android.com/reference/java/util/Calendar.html
 http://developer.android.com/reference/android/provider/CallLog.html
 http://developer.android.com/reference/android/provider/CallLog.Calls.html
-http://developer.android.com/reference/android/hardware/Camera.Size.html
-http://developer.android.com/reference/javax/security/cert/Certificate.html
-http://developer.android.com/reference/java/nio/channels/Channels.html
-http://developer.android.com/reference/android/text/style/CharacterStyle.html
-http://developer.android.com/reference/java/nio/charset/Charset.html
-http://developer.android.com/reference/java/nio/charset/CharsetDecoder.html
-http://developer.android.com/reference/java/nio/charset/CharsetEncoder.html
-http://developer.android.com/reference/java/nio/charset/spi/CharsetProvider.html
-http://developer.android.com/reference/org/apache/http/client/protocol/ClientContextConfigurer.html
-http://developer.android.com/reference/org/apache/http/client/utils/CloneUtils.html
-http://developer.android.com/reference/java/nio/charset/CoderResult.html
-http://developer.android.com/reference/java/nio/charset/CodingErrorAction.html
-http://developer.android.com/reference/java/util/Collections.html
-http://developer.android.com/reference/android/view/inputmethod/CompletionInfo.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnManagerParams.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnPerRouteBean.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnRouteParams.html
 http://developer.android.com/reference/android/provider/Contacts.ContactMethods.html
 http://developer.android.com/reference/android/provider/Contacts.Extensions.html
 http://developer.android.com/reference/android/provider/Contacts.GroupMembership.html
@@ -2150,6 +1484,7 @@
 http://developer.android.com/reference/android/provider/ContactsContract.Intents.html
 http://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert.html
 http://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup.html
+http://developer.android.com/reference/android/provider/ContactsContract.Presence.html
 http://developer.android.com/reference/android/provider/ContactsContract.QuickContact.html
 http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html
 http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.Data.html
@@ -2158,151 +1493,6 @@
 http://developer.android.com/reference/android/provider/ContactsContract.Settings.html
 http://developer.android.com/reference/android/provider/ContactsContract.StatusUpdates.html
 http://developer.android.com/reference/android/provider/ContactsContract.SyncState.html
-http://developer.android.com/reference/android/database/ContentObserver.html
-http://developer.android.com/reference/org/apache/http/cookie/CookieIdentityComparator.html
-http://developer.android.com/reference/org/apache/http/cookie/CookieOrigin.html
-http://developer.android.com/reference/org/apache/http/cookie/CookiePathComparator.html
-http://developer.android.com/reference/org/apache/http/client/params/CookiePolicy.html
-http://developer.android.com/reference/org/apache/http/cookie/CookieSpecRegistry.html
-http://developer.android.com/reference/java/util/concurrent/CopyOnWriteArrayList.html
-http://developer.android.com/reference/java/util/concurrent/CountDownLatch.html
-http://developer.android.com/reference/java/util/Currency.html
-http://developer.android.com/reference/android/database/CursorJoiner.html
-http://developer.android.com/reference/android/database/CursorWrapper.html
-http://developer.android.com/reference/android/view/animation/CycleInterpolator.html
-http://developer.android.com/reference/java/util/concurrent/CyclicBarrier.html
-http://developer.android.com/reference/javax/crypto/spec/DESKeySpec.html
-http://developer.android.com/reference/javax/crypto/spec/DESedeKeySpec.html
-http://developer.android.com/reference/javax/crypto/spec/DHGenParameterSpec.html
-http://developer.android.com/reference/javax/crypto/spec/DHParameterSpec.html
-http://developer.android.com/reference/javax/crypto/spec/DHPrivateKeySpec.html
-http://developer.android.com/reference/javax/crypto/spec/DHPublicKeySpec.html
-http://developer.android.com/reference/java/security/spec/DSAParameterSpec.html
-http://developer.android.com/reference/java/security/spec/DSAPrivateKeySpec.html
-http://developer.android.com/reference/java/security/spec/DSAPublicKeySpec.html
-http://developer.android.com/reference/android/database/DataSetObserver.html
-http://developer.android.com/reference/android/database/DatabaseUtils.html
-http://developer.android.com/reference/android/database/DatabaseUtils.InsertHelper.html
-http://developer.android.com/reference/javax/xml/datatype/DatatypeConstants.html
-http://developer.android.com/reference/javax/xml/datatype/DatatypeConstants.Field.html
-http://developer.android.com/reference/javax/xml/datatype/DatatypeFactory.html
-http://developer.android.com/reference/java/util/Date.html
-http://developer.android.com/reference/android/text/format/DateFormat.html
-http://developer.android.com/reference/android/view/animation/DecelerateInterpolator.html
-http://developer.android.com/reference/org/apache/http/impl/conn/DefaultClientConnectionOperator.html
-http://developer.android.com/reference/org/apache/http/impl/client/DefaultConnectionKeepAliveStrategy.html
-http://developer.android.com/reference/org/apache/http/impl/DefaultConnectionReuseStrategy.html
-http://developer.android.com/reference/org/apache/http/impl/DefaultHttpRequestFactory.html
-http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpRequestRetryHandler.html
-http://developer.android.com/reference/org/apache/http/impl/DefaultHttpResponseFactory.html
-http://developer.android.com/reference/org/apache/http/impl/conn/DefaultHttpRoutePlanner.html
-http://developer.android.com/reference/org/apache/http/impl/client/DefaultRedirectHandler.html
-http://developer.android.com/reference/org/apache/http/impl/client/DefaultRequestDirector.html
-http://developer.android.com/reference/org/apache/http/impl/client/DefaultUserTokenHandler.html
-http://developer.android.com/reference/org/apache/http/protocol/DefaultedHttpContext.html
-http://developer.android.com/reference/java/util/zip/Deflater.html
-http://developer.android.com/reference/android/app/admin/DeviceAdminInfo.html
-http://developer.android.com/reference/dalvik/system/DexFile.html
-http://developer.android.com/reference/android/net/DhcpInfo.html
-http://developer.android.com/reference/java/util/Dictionary.html
-http://developer.android.com/reference/org/apache/http/impl/auth/DigestSchemeFactory.html
-http://developer.android.com/reference/javax/xml/parsers/DocumentBuilder.html
-http://developer.android.com/reference/javax/xml/parsers/DocumentBuilderFactory.html
-http://developer.android.com/reference/android/text/style/DrawableMarginSpan.html
-http://developer.android.com/reference/org/xmlpull/v1/sax2/Driver.html
-http://developer.android.com/reference/javax/xml/datatype/Duration.html
-http://developer.android.com/reference/java/security/spec/ECFieldF2m.html
-http://developer.android.com/reference/java/security/spec/ECFieldFp.html
-http://developer.android.com/reference/java/security/spec/ECGenParameterSpec.html
-http://developer.android.com/reference/java/security/spec/ECParameterSpec.html
-http://developer.android.com/reference/java/security/spec/ECPoint.html
-http://developer.android.com/reference/java/security/spec/ECPrivateKeySpec.html
-http://developer.android.com/reference/java/security/spec/ECPublicKeySpec.html
-http://developer.android.com/reference/javax/microedition/khronos/egl/EGLConfig.html
-http://developer.android.com/reference/javax/microedition/khronos/egl/EGLContext.html
-http://developer.android.com/reference/javax/microedition/khronos/egl/EGLDisplay.html
-http://developer.android.com/reference/javax/microedition/khronos/egl/EGLSurface.html
-http://developer.android.com/reference/java/security/spec/EllipticCurve.html
-http://developer.android.com/reference/java/security/spec/EncodedKeySpec.html
-http://developer.android.com/reference/org/apache/http/impl/EnglishReasonPhraseCatalog.html
-http://developer.android.com/reference/org/apache/http/impl/entity/EntityDeserializer.html
-http://developer.android.com/reference/org/apache/http/impl/entity/EntitySerializer.html
-http://developer.android.com/reference/android/media/audiofx/EnvironmentalReverb.Settings.html
-http://developer.android.com/reference/android/media/audiofx/Equalizer.Settings.html
-http://developer.android.com/reference/java/util/logging/ErrorManager.html
-http://developer.android.com/reference/java/util/EventListenerProxy.html
-http://developer.android.com/reference/java/util/EventObject.html
-http://developer.android.com/reference/java/util/concurrent/Exchanger.html
-http://developer.android.com/reference/java/util/concurrent/ExecutorCompletionService.html
-http://developer.android.com/reference/java/util/concurrent/Executors.html
-http://developer.android.com/reference/android/view/inputmethod/ExtractedText.html
-http://developer.android.com/reference/android/view/inputmethod/ExtractedTextRequest.html
-http://developer.android.com/reference/android/media/FaceDetector.html
-http://developer.android.com/reference/android/media/FaceDetector.Face.html
-http://developer.android.com/reference/android/app/backup/FileBackupHelper.html
-http://developer.android.com/reference/java/nio/channels/FileChannel.MapMode.html
-http://developer.android.com/reference/java/nio/channels/FileLock.html
-http://developer.android.com/reference/java/util/FormattableFlags.html
-http://developer.android.com/reference/java/util/concurrent/FutureTask.html
-http://developer.android.com/reference/android/location/Geocoder.html
-http://developer.android.com/reference/android/hardware/GeomagneticField.html
-http://developer.android.com/reference/android/gesture/Gesture.html
-http://developer.android.com/reference/android/gesture/GestureLibraries.html
-http://developer.android.com/reference/android/gesture/GestureLibrary.html
-http://developer.android.com/reference/android/gesture/GesturePoint.html
-http://developer.android.com/reference/android/gesture/GestureStore.html
-http://developer.android.com/reference/android/gesture/GestureStroke.html
-http://developer.android.com/reference/android/gesture/GestureUtils.html
-http://developer.android.com/reference/android/location/GpsSatellite.html
-http://developer.android.com/reference/android/location/GpsStatus.html
-http://developer.android.com/reference/org/apache/http/protocol/HTTP.html
-http://developer.android.com/reference/java/util/logging/Handler.html
-http://developer.android.com/reference/org/apache/http/client/params/HttpClientParams.html
-http://developer.android.com/reference/org/apache/http/impl/HttpConnectionMetricsImpl.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpDateGenerator.html
-http://developer.android.com/reference/org/apache/http/HttpHost.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpRequestExecutor.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpRequestHandlerRegistry.html
-http://developer.android.com/reference/org/apache/http/conn/routing/HttpRoute.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpService.html
-http://developer.android.com/reference/android/text/style/IconMarginSpan.html
-http://developer.android.com/reference/org/apache/http/impl/conn/IdleConnectionHandler.html
-http://developer.android.com/reference/java/util/zip/Inflater.html
-http://developer.android.com/reference/android/view/inputmethod/InputBinding.html
-http://developer.android.com/reference/android/view/inputmethod/InputMethodInfo.html
-http://developer.android.com/reference/android/inputmethodservice/InputMethodService.Insets.html
-http://developer.android.com/reference/javax/crypto/spec/IvParameterSpec.html
-http://developer.android.com/reference/android/inputmethodservice/Keyboard.html
-http://developer.android.com/reference/android/inputmethodservice/Keyboard.Key.html
-http://developer.android.com/reference/android/inputmethodservice/Keyboard.Row.html
-http://developer.android.com/reference/org/apache/http/impl/entity/LaxContentLengthStrategy.html
-http://developer.android.com/reference/android/view/animation/LayoutAnimationController.html
-http://developer.android.com/reference/android/view/animation/LayoutAnimationController.AnimationParameters.html
-http://developer.android.com/reference/android/text/style/LeadingMarginSpan.Standard.html
-http://developer.android.com/reference/java/util/logging/Level.html
-http://developer.android.com/reference/android/view/animation/LinearInterpolator.html
-http://developer.android.com/reference/android/text/util/Linkify.html
-http://developer.android.com/reference/android/net/LocalServerSocket.html
-http://developer.android.com/reference/android/net/LocalSocket.html
-http://developer.android.com/reference/android/net/LocalSocketAddress.html
-http://developer.android.com/reference/android/location/Location.html
-http://developer.android.com/reference/java/util/concurrent/locks/LockSupport.html
-http://developer.android.com/reference/java/util/logging/LogManager.html
-http://developer.android.com/reference/java/util/logging/LogRecord.html
-http://developer.android.com/reference/java/util/logging/Logger.html
-http://developer.android.com/reference/org/apache/http/impl/conn/LoggingSessionInputBuffer.html
-http://developer.android.com/reference/org/apache/http/impl/conn/LoggingSessionOutputBuffer.html
-http://developer.android.com/reference/java/security/spec/MGF1ParameterSpec.html
-http://developer.android.com/reference/android/net/MailTo.html
-http://developer.android.com/reference/android/Manifest.html
-http://developer.android.com/reference/android/Manifest.permission_group.html
-http://developer.android.com/reference/java/math/MathContext.html
-http://developer.android.com/reference/android/database/MatrixCursor.RowBuilder.html
-http://developer.android.com/reference/android/media/MediaRecorder.AudioEncoder.html
-http://developer.android.com/reference/android/media/MediaRecorder.AudioSource.html
-http://developer.android.com/reference/android/media/MediaRecorder.OutputFormat.html
-http://developer.android.com/reference/android/media/MediaRecorder.VideoEncoder.html
-http://developer.android.com/reference/android/media/MediaRecorder.VideoSource.html
 http://developer.android.com/reference/android/provider/MediaStore.Audio.html
 http://developer.android.com/reference/android/provider/MediaStore.Audio.Albums.html
 http://developer.android.com/reference/android/provider/MediaStore.Audio.Artists.html
@@ -2318,685 +1508,292 @@
 http://developer.android.com/reference/android/provider/MediaStore.Video.html
 http://developer.android.com/reference/android/provider/MediaStore.Video.Media.html
 http://developer.android.com/reference/android/provider/MediaStore.Video.Thumbnails.html
-http://developer.android.com/reference/java/lang/reflect/Modifier.html
-http://developer.android.com/reference/org/apache/http/conn/MultihomePlainSocketFactory.html
-http://developer.android.com/reference/org/apache/http/auth/NTCredentials.html
-http://developer.android.com/reference/org/apache/http/auth/NTUserPrincipal.html
-http://developer.android.com/reference/android/net/NetworkInfo.html
-http://developer.android.com/reference/org/apache/http/impl/NoConnectionReuseStrategy.html
-http://developer.android.com/reference/javax/crypto/spec/OAEPParameterSpec.html
-http://developer.android.com/reference/java/util/Observable.html
-http://developer.android.com/reference/android/os/storage/OnObbStateChangeListener.html
-http://developer.android.com/reference/android/gesture/OrientedBoundingBox.html
-http://developer.android.com/reference/javax/xml/transform/OutputKeys.html
-http://developer.android.com/reference/android/view/animation/OvershootInterpolator.html
-http://developer.android.com/reference/javax/crypto/spec/PBEKeySpec.html
-http://developer.android.com/reference/javax/crypto/spec/PBEParameterSpec.html
-http://developer.android.com/reference/java/security/spec/PSSParameterSpec.html
-http://developer.android.com/reference/javax/crypto/spec/PSource.html
-http://developer.android.com/reference/java/util/jar/Pack200.html
-http://developer.android.com/reference/android/text/method/PasswordTransformationMethod.html
-http://developer.android.com/reference/java/nio/channels/Pipe.html
-http://developer.android.com/reference/org/apache/http/conn/scheme/PlainSocketFactory.html
-http://developer.android.com/reference/android/gesture/Prediction.html
-http://developer.android.com/reference/android/preference/Preference.html
-http://developer.android.com/reference/android/preference/PreferenceManager.html
-http://developer.android.com/reference/java/util/prefs/Preferences.html
-http://developer.android.com/reference/android/media/audiofx/PresetReverb.Settings.html
-http://developer.android.com/reference/java/beans/PropertyChangeSupport.html
-http://developer.android.com/reference/java/lang/reflect/Proxy.html
-http://developer.android.com/reference/org/apache/http/impl/conn/ProxySelectorRoutePlanner.html
-http://developer.android.com/reference/javax/xml/namespace/QName.html
-http://developer.android.com/reference/android/text/style/QuoteSpan.html
-http://developer.android.com/reference/javax/crypto/spec/RC2ParameterSpec.html
-http://developer.android.com/reference/javax/crypto/spec/RC5ParameterSpec.html
-http://developer.android.com/reference/java/security/spec/RSAKeyGenParameterSpec.html
-http://developer.android.com/reference/java/security/spec/RSAOtherPrimeInfo.html
-http://developer.android.com/reference/java/security/spec/RSAPrivateKeySpec.html
-http://developer.android.com/reference/java/security/spec/RSAPublicKeySpec.html
-http://developer.android.com/reference/java/util/Random.html
-http://developer.android.com/reference/org/apache/http/impl/client/RedirectLocations.html
-http://developer.android.com/reference/java/util/concurrent/locks/ReentrantLock.html
-http://developer.android.com/reference/java/util/concurrent/locks/ReentrantReadWriteLock.html
-http://developer.android.com/reference/java/util/concurrent/locks/ReentrantReadWriteLock.ReadLock.html
-http://developer.android.com/reference/java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/RefQueueWorker.html
-http://developer.android.com/reference/android/text/method/ReplacementTransformationMethod.html
-http://developer.android.com/reference/org/apache/http/client/protocol/RequestAddCookies.html
-http://developer.android.com/reference/org/apache/http/protocol/RequestConnControl.html
-http://developer.android.com/reference/org/apache/http/protocol/RequestContent.html
-http://developer.android.com/reference/org/apache/http/protocol/RequestDate.html
-http://developer.android.com/reference/org/apache/http/client/protocol/RequestDefaultHeaders.html
-http://developer.android.com/reference/org/apache/http/protocol/RequestExpectContinue.html
-http://developer.android.com/reference/org/apache/http/client/protocol/RequestProxyAuthentication.html
-http://developer.android.com/reference/org/apache/http/client/protocol/RequestTargetAuthentication.html
-http://developer.android.com/reference/org/apache/http/protocol/RequestTargetHost.html
-http://developer.android.com/reference/org/apache/http/protocol/RequestUserAgent.html
-http://developer.android.com/reference/java/util/ResourceBundle.html
-http://developer.android.com/reference/java/util/ResourceBundle.Control.html
-http://developer.android.com/reference/org/apache/http/protocol/ResponseConnControl.html
-http://developer.android.com/reference/org/apache/http/protocol/ResponseContent.html
-http://developer.android.com/reference/org/apache/http/protocol/ResponseDate.html
-http://developer.android.com/reference/org/apache/http/client/protocol/ResponseProcessCookies.html
-http://developer.android.com/reference/org/apache/http/protocol/ResponseServer.html
-http://developer.android.com/reference/android/app/backup/RestoreObserver.html
-http://developer.android.com/reference/android/text/util/Rfc822Token.html
-http://developer.android.com/reference/android/text/util/Rfc822Tokenizer.html
-http://developer.android.com/reference/android/media/Ringtone.html
-http://developer.android.com/reference/android/media/RingtoneManager.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/RouteSpecificPool.html
-http://developer.android.com/reference/org/apache/http/conn/routing/RouteTracker.html
-http://developer.android.com/reference/org/apache/http/impl/client/RoutedRequest.html
-http://developer.android.com/reference/javax/xml/parsers/SAXParser.html
-http://developer.android.com/reference/javax/xml/parsers/SAXParserFactory.html
-http://developer.android.com/reference/javax/xml/transform/sax/SAXResult.html
-http://developer.android.com/reference/javax/xml/transform/sax/SAXSource.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteClosable.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html
-http://developer.android.com/reference/android/net/SSLSessionCache.html
-http://developer.android.com/reference/android/net/wifi/ScanResult.html
-http://developer.android.com/reference/java/util/Scanner.html
-http://developer.android.com/reference/javax/xml/validation/Schema.html
-http://developer.android.com/reference/javax/xml/validation/SchemaFactory.html
-http://developer.android.com/reference/javax/xml/validation/SchemaFactoryLoader.html
-http://developer.android.com/reference/org/apache/http/conn/scheme/Scheme.html
-http://developer.android.com/reference/org/apache/http/conn/scheme/SchemeRegistry.html
-http://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html
-http://developer.android.com/reference/android/provider/SearchRecentSuggestions.html
-http://developer.android.com/reference/javax/crypto/spec/SecretKeySpec.html
-http://developer.android.com/reference/java/nio/channels/SelectionKey.html
-http://developer.android.com/reference/java/nio/channels/Selector.html
-http://developer.android.com/reference/java/nio/channels/spi/SelectorProvider.html
-http://developer.android.com/reference/java/util/concurrent/Semaphore.html
-http://developer.android.com/reference/android/hardware/SensorEvent.html
-http://developer.android.com/reference/javax/net/ServerSocketFactory.html
-http://developer.android.com/reference/java/util/ServiceLoader.html
 http://developer.android.com/reference/android/provider/Settings.NameValueTable.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/Shape.html
-http://developer.android.com/reference/android/app/backup/SharedPreferencesBackupHelper.html
-http://developer.android.com/reference/org/apache/http/impl/conn/SingleClientConnManager.html
-http://developer.android.com/reference/android/telephony/gsm/SmsManager.html
-http://developer.android.com/reference/javax/net/SocketFactory.html
-http://developer.android.com/reference/android/net/http/SslCertificate.html
-http://developer.android.com/reference/android/net/http/SslCertificate.DName.html
-http://developer.android.com/reference/android/net/http/SslError.html
-http://developer.android.com/reference/org/apache/http/impl/entity/StrictContentLengthStrategy.html
-http://developer.android.com/reference/java/util/StringTokenizer.html
+http://developer.android.com/reference/android/provider/Settings.Secure.html
+http://developer.android.com/reference/android/provider/Settings.System.html
 http://developer.android.com/reference/android/provider/SyncStateContract.html
 http://developer.android.com/reference/android/provider/SyncStateContract.Constants.html
 http://developer.android.com/reference/android/provider/SyncStateContract.Helpers.html
-http://developer.android.com/reference/android/text/style/TabStopSpan.Standard.html
-http://developer.android.com/reference/junit/framework/TestFailure.html
-http://developer.android.com/reference/android/test/suitebuilder/TestMethod.html
-http://developer.android.com/reference/junit/framework/TestResult.html
-http://developer.android.com/reference/android/test/suitebuilder/TestSuiteBuilder.html
-http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.AbortPolicy.html
-http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.CallerRunsPolicy.html
-http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.DiscardOldestPolicy.html
-http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.DiscardPolicy.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.html
-http://developer.android.com/reference/android/text/format/Time.html
-http://developer.android.com/reference/java/util/TimeZone.html
-http://developer.android.com/reference/java/util/Timer.html
-http://developer.android.com/reference/java/util/TimerTask.html
-http://developer.android.com/reference/android/media/ToneGenerator.html
-http://developer.android.com/reference/android/text/method/Touch.html
-http://developer.android.com/reference/android/net/TrafficStats.html
-http://developer.android.com/reference/android/view/animation/Transformation.html
-http://developer.android.com/reference/javax/xml/transform/Transformer.html
-http://developer.android.com/reference/javax/xml/transform/TransformerFactory.html
-http://developer.android.com/reference/javax/xml/validation/TypeInfoProvider.html
-http://developer.android.com/reference/org/apache/http/client/utils/URIUtils.html
-http://developer.android.com/reference/org/apache/http/client/utils/URLEncodedUtils.html
-http://developer.android.com/reference/android/net/Uri.Builder.html
-http://developer.android.com/reference/org/apache/http/protocol/UriPatternMatcher.html
-http://developer.android.com/reference/android/net/UrlQuerySanitizer.html
-http://developer.android.com/reference/android/net/UrlQuerySanitizer.IllegalCharacterValueSanitizer.html
-http://developer.android.com/reference/android/net/UrlQuerySanitizer.ParameterValuePair.html
 http://developer.android.com/reference/android/provider/UserDictionary.html
 http://developer.android.com/reference/android/provider/UserDictionary.Words.html
-http://developer.android.com/reference/org/apache/http/auth/UsernamePasswordCredentials.html
-http://developer.android.com/reference/javax/xml/validation/Validator.html
-http://developer.android.com/reference/javax/xml/validation/ValidatorHandler.html
-http://developer.android.com/reference/android/media/audiofx/Virtualizer.Settings.html
-http://developer.android.com/reference/android/media/audiofx/Visualizer.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/WaitingThread.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/WaitingThreadAborter.html
-http://developer.android.com/reference/android/net/wifi/WifiConfiguration.html
-http://developer.android.com/reference/android/net/wifi/WifiConfiguration.AuthAlgorithm.html
-http://developer.android.com/reference/android/net/wifi/WifiConfiguration.GroupCipher.html
-http://developer.android.com/reference/android/net/wifi/WifiConfiguration.KeyMgmt.html
-http://developer.android.com/reference/android/net/wifi/WifiConfiguration.PairwiseCipher.html
-http://developer.android.com/reference/android/net/wifi/WifiConfiguration.Protocol.html
-http://developer.android.com/reference/android/net/wifi/WifiConfiguration.Status.html
-http://developer.android.com/reference/android/net/wifi/WifiInfo.html
-http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html
-http://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html
-http://developer.android.com/reference/org/apache/http/impl/conn/Wire.html
-http://developer.android.com/reference/javax/xml/datatype/XMLGregorianCalendar.html
-http://developer.android.com/reference/javax/xml/xpath/XPathConstants.html
-http://developer.android.com/reference/javax/xml/xpath/XPathFactory.html
-http://developer.android.com/reference/java/util/zip/ZipEntry.html
-http://developer.android.com/reference/java/util/zip/ZipFile.html
-http://developer.android.com/reference/org/apache/http/conn/OperatedClientConnection.html
-http://developer.android.com/reference/java/util/concurrent/ExecutorService.html
-http://developer.android.com/reference/android/view/inputmethod/InputMethod.html
-http://developer.android.com/reference/android/view/inputmethod/InputMethodSession.html
-http://developer.android.com/reference/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.html
-http://developer.android.com/reference/java/util/concurrent/locks/Lock.html
-http://developer.android.com/reference/java/util/concurrent/locks/AbstractQueuedSynchronizer.html
-http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html
-http://developer.android.com/reference/org/apache/http/HttpRequestInterceptor.html
-http://developer.android.com/reference/org/apache/http/auth/Credentials.html
-http://developer.android.com/reference/android/app/backup/BackupAgent.html
-http://developer.android.com/reference/org/apache/http/client/CookieStore.html
-http://developer.android.com/reference/org/apache/http/client/CredentialsProvider.html
-http://developer.android.com/reference/org/apache/http/conn/EofSensorWatcher.html
-http://developer.android.com/reference/org/apache/http/HeaderElementIterator.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpContext.html
-http://developer.android.com/reference/org/apache/http/client/ResponseHandler.html
-http://developer.android.com/reference/org/apache/http/conn/routing/HttpRouteDirector.html
-http://developer.android.com/reference/org/apache/http/TokenIterator.html
-http://developer.android.com/reference/org/apache/http/conn/ClientConnectionManager.html
-http://developer.android.com/reference/org/apache/http/conn/ClientConnectionOperator.html
-http://developer.android.com/reference/org/apache/http/client/HttpRequestRetryHandler.html
-http://developer.android.com/reference/org/apache/http/conn/routing/HttpRoutePlanner.html
-http://developer.android.com/reference/org/apache/http/client/RedirectHandler.html
-http://developer.android.com/reference/org/apache/http/client/RequestDirector.html
-http://developer.android.com/reference/java/util/concurrent/CompletionService.html
-http://developer.android.com/reference/java/util/concurrent/Executor.html
-http://developer.android.com/reference/java/util/concurrent/ScheduledExecutorService.html
-http://developer.android.com/reference/java/util/concurrent/ThreadFactory.html
-http://developer.android.com/reference/java/util/concurrent/Callable.html
-http://developer.android.com/reference/android/app/backup/BackupAgentHelper.html
-http://developer.android.com/reference/java/util/Formattable.html
-http://developer.android.com/reference/java/math/BigDecimal.html
-http://developer.android.com/reference/java/util/jar/Pack200.Packer.html
-http://developer.android.com/reference/java/util/jar/Pack200.Unpacker.html
-http://developer.android.com/reference/android/preference/PreferenceActivity.html
-http://developer.android.com/reference/java/util/concurrent/locks/ReadWriteLock.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.html
-http://developer.android.com/reference/java/nio/channels/SelectableChannel.html
-http://developer.android.com/reference/java/nio/channels/DatagramChannel.html
-http://developer.android.com/reference/java/nio/channels/ServerSocketChannel.html
-http://developer.android.com/reference/java/nio/channels/SocketChannel.html
-http://developer.android.com/reference/javax/xml/transform/Templates.html
-http://developer.android.com/reference/javax/xml/xpath/XPath.html
-http://developer.android.com/reference/android/text/style/AbsoluteSizeSpan.html
-http://developer.android.com/reference/android/database/AbstractCursor.SelfContentObserver.html
-http://developer.android.com/reference/android/inputmethodservice/AbstractInputMethodService.html
-http://developer.android.com/reference/java/util/AbstractList.html
-http://developer.android.com/reference/org/apache/http/impl/conn/AbstractPooledConnAdapter.html
-http://developer.android.com/reference/java/util/prefs/AbstractPreferences.html
-http://developer.android.com/reference/java/util/AbstractQueue.html
-http://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel.html
-http://developer.android.com/reference/java/nio/channels/spi/AbstractSelectionKey.html
-http://developer.android.com/reference/java/nio/channels/spi/AbstractSelector.html
-http://developer.android.com/reference/java/util/AbstractSequentialList.html
-http://developer.android.com/reference/java/util/AbstractSet.html
-http://developer.android.com/reference/android/database/AbstractWindowedCursor.html
-http://developer.android.com/reference/android/accounts/AccountAuthenticatorActivity.html
-http://developer.android.com/reference/android/accounts/AccountsException.html
-http://developer.android.com/reference/java/security/acl/AclNotFoundException.html
-http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase.html
-http://developer.android.com/reference/android/test/ActivityTestCase.html
-http://developer.android.com/reference/android/view/animation/AlphaAnimation.html
-http://developer.android.com/reference/java/nio/channels/AlreadyConnectedException.html
-http://developer.android.com/reference/android/test/AndroidTestCase.html
-http://developer.android.com/reference/android/test/AndroidTestRunner.html
-http://developer.android.com/reference/android/view/animation/AnimationSet.html
-http://developer.android.com/reference/java/lang/annotation/AnnotationFormatError.html
-http://developer.android.com/reference/java/lang/annotation/AnnotationTypeMismatchException.html
-http://developer.android.com/reference/android/appwidget/AppWidgetHostView.html
-http://developer.android.com/reference/android/appwidget/AppWidgetProvider.html
-http://developer.android.com/reference/android/test/ApplicationTestCase.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/ArcShape.html
-http://developer.android.com/reference/java/util/concurrent/ArrayBlockingQueue.html
-http://developer.android.com/reference/junit/framework/AssertionFailedError.html
-http://developer.android.com/reference/java/nio/channels/AsynchronousCloseException.html
-http://developer.android.com/reference/org/apache/http/auth/AuthenticationException.html
-http://developer.android.com/reference/android/accounts/AuthenticatorException.html
-http://developer.android.com/reference/android/text/style/BackgroundColorSpan.html
-http://developer.android.com/reference/java/util/prefs/BackingStoreException.html
-http://developer.android.com/reference/android/app/backup/BackupDataInputStream.html
-http://developer.android.com/reference/android/text/method/BaseKeyListener.html
-http://developer.android.com/reference/org/apache/http/conn/BasicManagedEntity.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/BasicPoolEntry.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/BasicPoolEntryRef.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/BasicPooledConnAdapter.html
-http://developer.android.com/reference/org/apache/http/impl/auth/BasicScheme.html
-http://developer.android.com/reference/android/media/audiofx/BassBoost.html
-http://developer.android.com/reference/java/math/BigInteger.html
-http://developer.android.com/reference/java/util/concurrent/BrokenBarrierException.html
-http://developer.android.com/reference/java/nio/BufferOverflowException.html
-http://developer.android.com/reference/java/nio/BufferUnderflowException.html
-http://developer.android.com/reference/java/util/concurrent/CancellationException.html
-http://developer.android.com/reference/java/nio/channels/CancelledKeyException.html
-http://developer.android.com/reference/android/telephony/cdma/CdmaCellLocation.html
-http://developer.android.com/reference/javax/security/cert/CertificateEncodingException.html
-http://developer.android.com/reference/javax/security/cert/CertificateException.html
-http://developer.android.com/reference/javax/security/cert/CertificateExpiredException.html
-http://developer.android.com/reference/javax/security/cert/CertificateNotYetValidException.html
-http://developer.android.com/reference/javax/security/cert/CertificateParsingException.html
-http://developer.android.com/reference/java/nio/charset/CharacterCodingException.html
-http://developer.android.com/reference/android/text/method/CharacterPickerDialog.html
-http://developer.android.com/reference/android/preference/CheckBoxPreference.html
-http://developer.android.com/reference/java/util/zip/CheckedInputStream.html
-http://developer.android.com/reference/java/util/zip/CheckedOutputStream.html
-http://developer.android.com/reference/org/apache/http/client/CircularRedirectException.html
-http://developer.android.com/reference/android/text/style/ClickableSpan.html
-http://developer.android.com/reference/org/apache/http/client/params/ClientParamBean.html
-http://developer.android.com/reference/org/apache/http/impl/client/ClientParamsStack.html
-http://developer.android.com/reference/org/apache/http/client/ClientProtocolException.html
-http://developer.android.com/reference/java/nio/channels/ClosedByInterruptException.html
-http://developer.android.com/reference/java/nio/channels/ClosedChannelException.html
-http://developer.android.com/reference/java/nio/channels/ClosedSelectorException.html
-http://developer.android.com/reference/java/nio/charset/CoderMalfunctionError.html
-http://developer.android.com/reference/junit/framework/ComparisonFailure.html
-http://developer.android.com/reference/java/util/concurrent/ConcurrentHashMap.html
-http://developer.android.com/reference/java/util/concurrent/ConcurrentLinkedQueue.html
-http://developer.android.com/reference/java/util/ConcurrentModificationException.html
-http://developer.android.com/reference/java/util/concurrent/ConcurrentSkipListSet.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnConnectionParamBean.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnManagerParamBean.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnRouteParamBean.html
-http://developer.android.com/reference/org/apache/http/conn/ConnectTimeoutException.html
-http://developer.android.com/reference/org/apache/http/ConnectionClosedException.html
-http://developer.android.com/reference/javax/sql/ConnectionEvent.html
-http://developer.android.com/reference/java/nio/channels/ConnectionPendingException.html
-http://developer.android.com/reference/org/apache/http/conn/ConnectionPoolTimeoutException.html
-http://developer.android.com/reference/java/util/logging/ConsoleHandler.html
-http://developer.android.com/reference/java/lang/reflect/Constructor.html
-http://developer.android.com/reference/android/provider/ContactsContract.Presence.html
-http://developer.android.com/reference/android/database/ContentObservable.html
-http://developer.android.com/reference/java/util/concurrent/CopyOnWriteArraySet.html
-http://developer.android.com/reference/android/database/CursorIndexOutOfBoundsException.html
-http://developer.android.com/reference/android/database/CursorJoiner.Result.html
-http://developer.android.com/reference/android/database/CursorWindow.html
-http://developer.android.com/reference/org/w3c/dom/DOMException.html
-http://developer.android.com/reference/java/util/zip/DataFormatException.html
-http://developer.android.com/reference/android/database/DataSetObservable.html
-http://developer.android.com/reference/javax/xml/datatype/DatatypeConfigurationException.html
-http://developer.android.com/reference/android/text/method/DateKeyListener.html
-http://developer.android.com/reference/android/text/method/DateTimeKeyListener.html
-http://developer.android.com/reference/org/apache/http/impl/conn/DefaultClientConnection.html
-http://developer.android.com/reference/org/apache/http/impl/DefaultHttpClientConnection.html
-http://developer.android.com/reference/org/apache/http/impl/DefaultHttpServerConnection.html
-http://developer.android.com/reference/org/apache/http/impl/client/DefaultProxyAuthenticationHandler.html
-http://developer.android.com/reference/org/apache/http/impl/conn/DefaultResponseParser.html
-http://developer.android.com/reference/org/apache/http/impl/client/DefaultTargetAuthenticationHandler.html
-http://developer.android.com/reference/java/util/zip/DeflaterInputStream.html
-http://developer.android.com/reference/java/util/zip/DeflaterOutputStream.html
-http://developer.android.com/reference/java/util/concurrent/DelayQueue.html
-http://developer.android.com/reference/java/util/concurrent/Delayed.html
-http://developer.android.com/reference/android/app/admin/DeviceAdminReceiver.html
-http://developer.android.com/reference/dalvik/system/DexClassLoader.html
-http://developer.android.com/reference/android/text/method/DialerKeyListener.html
-http://developer.android.com/reference/android/preference/DialogPreference.html
-http://developer.android.com/reference/org/apache/http/impl/auth/DigestScheme.html
-http://developer.android.com/reference/android/text/method/DigitsKeyListener.html
-http://developer.android.com/reference/java/nio/DoubleBuffer.html
-http://developer.android.com/reference/android/text/style/DynamicDrawableSpan.html
-http://developer.android.com/reference/android/preference/EditTextPreference.html
-http://developer.android.com/reference/java/lang/annotation/ElementType.html
-http://developer.android.com/reference/java/util/EmptyStackException.html
-http://developer.android.com/reference/java/util/EnumMap.html
-http://developer.android.com/reference/java/util/EnumSet.html
-http://developer.android.com/reference/android/media/audiofx/EnvironmentalReverb.html
-http://developer.android.com/reference/org/apache/http/conn/EofSensorInputStream.html
-http://developer.android.com/reference/android/media/audiofx/Equalizer.html
-http://developer.android.com/reference/java/util/concurrent/ExecutionException.html
-http://developer.android.com/reference/android/inputmethodservice/ExtractEditText.html
-http://developer.android.com/reference/javax/xml/parsers/FactoryConfigurationError.html
-http://developer.android.com/reference/java/lang/reflect/Field.html
-http://developer.android.com/reference/java/nio/channels/FileChannel.html
-http://developer.android.com/reference/java/util/logging/FileHandler.html
-http://developer.android.com/reference/java/nio/channels/FileLockInterruptionException.html
-http://developer.android.com/reference/android/text/style/ForegroundColorSpan.html
-http://developer.android.com/reference/java/util/Formatter.BigDecimalLayoutForm.html
-http://developer.android.com/reference/java/util/FormatterClosedException.html
-http://developer.android.com/reference/java/util/zip/GZIPInputStream.html
-http://developer.android.com/reference/java/util/zip/GZIPOutputStream.html
-http://developer.android.com/reference/java/lang/reflect/GenericSignatureFormatError.html
-http://developer.android.com/reference/android/gesture/GestureOverlayView.html
-http://developer.android.com/reference/java/util/GregorianCalendar.html
-http://developer.android.com/reference/android/view/animation/GridLayoutAnimationController.html
-http://developer.android.com/reference/android/view/animation/GridLayoutAnimationController.AnimationParameters.html
-http://developer.android.com/reference/java/util/HashMap.html
-http://developer.android.com/reference/java/util/HashSet.html
-http://developer.android.com/reference/java/util/Hashtable.html
-http://developer.android.com/reference/android/text/method/HideReturnsTransformationMethod.html
-http://developer.android.com/reference/org/apache/http/HttpException.html
-http://developer.android.com/reference/org/apache/http/conn/HttpHostConnectException.html
-http://developer.android.com/reference/org/apache/http/client/HttpResponseException.html
-http://developer.android.com/reference/org/apache/http/HttpVersion.html
-http://developer.android.com/reference/java/util/IdentityHashMap.html
-http://developer.android.com/reference/java/nio/channels/IllegalBlockingModeException.html
-http://developer.android.com/reference/android/text/style/ImageSpan.html
-http://developer.android.com/reference/java/lang/annotation/IncompleteAnnotationException.html
-http://developer.android.com/reference/java/beans/IndexedPropertyChangeEvent.html
-http://developer.android.com/reference/java/util/zip/InflaterInputStream.html
-http://developer.android.com/reference/java/util/zip/InflaterOutputStream.html
-http://developer.android.com/reference/android/inputmethodservice/InputMethodService.InputMethodImpl.html
-http://developer.android.com/reference/android/inputmethodservice/InputMethodService.InputMethodSessionImpl.html
-http://developer.android.com/reference/java/util/InputMismatchException.html
-http://developer.android.com/reference/android/test/InstrumentationTestSuite.html
-http://developer.android.com/reference/org/apache/http/auth/InvalidCredentialsException.html
-http://developer.android.com/reference/java/security/spec/InvalidKeySpecException.html
-http://developer.android.com/reference/java/nio/InvalidMarkException.html
-http://developer.android.com/reference/java/security/spec/InvalidParameterSpecException.html
-http://developer.android.com/reference/java/util/prefs/InvalidPreferencesFormatException.html
-http://developer.android.com/reference/java/util/InvalidPropertiesFormatException.html
-http://developer.android.com/reference/java/lang/reflect/InvocationTargetException.html
-http://developer.android.com/reference/android/test/IsolatedContext.html
-http://developer.android.com/reference/java/util/jar/JarEntry.html
-http://developer.android.com/reference/java/util/jar/JarException.html
-http://developer.android.com/reference/java/util/jar/JarFile.html
-http://developer.android.com/reference/java/util/jar/JarInputStream.html
-http://developer.android.com/reference/java/util/jar/JarOutputStream.html
-http://developer.android.com/reference/android/inputmethodservice/KeyboardView.html
-http://developer.android.com/reference/java/security/acl/LastOwnerException.html
-http://developer.android.com/reference/android/text/method/LinkMovementMethod.html
-http://developer.android.com/reference/java/util/concurrent/LinkedBlockingQueue.html
-http://developer.android.com/reference/java/util/LinkedHashMap.html
-http://developer.android.com/reference/java/util/LinkedHashSet.html
-http://developer.android.com/reference/java/util/LinkedList.html
-http://developer.android.com/reference/android/preference/ListPreference.html
-http://developer.android.com/reference/java/util/ListResourceBundle.html
-http://developer.android.com/reference/android/net/LocalSocketAddress.Namespace.html
-http://developer.android.com/reference/java/util/logging/LoggingPermission.html
-http://developer.android.com/reference/javax/security/auth/login/LoginException.html
-http://developer.android.com/reference/java/nio/LongBuffer.html
-http://developer.android.com/reference/org/apache/http/auth/MalformedChallengeException.html
-http://developer.android.com/reference/org/apache/http/MalformedChunkCodingException.html
-http://developer.android.com/reference/org/apache/http/cookie/MalformedCookieException.html
-http://developer.android.com/reference/java/nio/charset/MalformedInputException.html
-http://developer.android.com/reference/java/lang/reflect/MalformedParameterizedTypeException.html
-http://developer.android.com/reference/java/nio/MappedByteBuffer.html
-http://developer.android.com/reference/android/text/style/MaskFilterSpan.html
-http://developer.android.com/reference/java/util/logging/MemoryHandler.html
-http://developer.android.com/reference/android/database/MergeCursor.html
-http://developer.android.com/reference/java/lang/reflect/Method.html
-http://developer.android.com/reference/org/apache/http/MethodNotSupportedException.html
-http://developer.android.com/reference/android/text/style/MetricAffectingSpan.html
-http://developer.android.com/reference/java/util/MissingResourceException.html
-http://developer.android.com/reference/android/text/method/MultiTapKeyListener.html
-http://developer.android.com/reference/org/apache/http/impl/auth/NTLMEngineException.html
-http://developer.android.com/reference/org/apache/http/impl/auth/NTLMScheme.html
-http://developer.android.com/reference/android/accounts/NetworkErrorException.html
-http://developer.android.com/reference/android/net/NetworkInfo.DetailedState.html
-http://developer.android.com/reference/android/net/NetworkInfo.State.html
-http://developer.android.com/reference/java/nio/channels/NoConnectionPendingException.html
-http://developer.android.com/reference/org/apache/http/NoHttpResponseException.html
-http://developer.android.com/reference/java/util/NoSuchElementException.html
-http://developer.android.com/reference/java/util/prefs/NodeChangeEvent.html
-http://developer.android.com/reference/java/nio/channels/NonReadableChannelException.html
-http://developer.android.com/reference/org/apache/http/client/NonRepeatableRequestException.html
-http://developer.android.com/reference/java/nio/channels/NonWritableChannelException.html
-http://developer.android.com/reference/java/security/acl/NotOwnerException.html
-http://developer.android.com/reference/java/nio/channels/NotYetBoundException.html
-http://developer.android.com/reference/java/nio/channels/NotYetConnectedException.html
-http://developer.android.com/reference/android/text/method/NumberKeyListener.html
-http://developer.android.com/reference/android/accounts/OperationCanceledException.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/OvalShape.html
-http://developer.android.com/reference/java/nio/channels/OverlappingFileLockException.html
-http://developer.android.com/reference/java/security/spec/PKCS8EncodedKeySpec.html
-http://developer.android.com/reference/javax/crypto/spec/PSource.PSpecified.html
-http://developer.android.com/reference/javax/xml/parsers/ParserConfigurationException.html
-http://developer.android.com/reference/dalvik/system/PathClassLoader.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/PathShape.html
-http://developer.android.com/reference/java/nio/channels/Pipe.SinkChannel.html
-http://developer.android.com/reference/java/nio/channels/Pipe.SourceChannel.html
-http://developer.android.com/reference/android/preference/Preference.BaseSavedState.html
-http://developer.android.com/reference/android/preference/PreferenceCategory.html
-http://developer.android.com/reference/java/util/prefs/PreferenceChangeEvent.html
-http://developer.android.com/reference/android/preference/PreferenceGroup.html
-http://developer.android.com/reference/android/preference/PreferenceScreen.html
-http://developer.android.com/reference/android/media/audiofx/PresetReverb.html
-http://developer.android.com/reference/java/util/concurrent/PriorityBlockingQueue.html
-http://developer.android.com/reference/java/util/PriorityQueue.html
-http://developer.android.com/reference/java/util/Properties.html
-http://developer.android.com/reference/java/beans/PropertyChangeEvent.html
-http://developer.android.com/reference/java/beans/PropertyChangeListenerProxy.html
-http://developer.android.com/reference/java/util/PropertyPermission.html
-http://developer.android.com/reference/java/util/PropertyResourceBundle.html
-http://developer.android.com/reference/android/test/ProviderTestCase.html
-http://developer.android.com/reference/android/text/method/QwertyKeyListener.html
-http://developer.android.com/reference/org/apache/http/impl/auth/RFC2617Scheme.html
-http://developer.android.com/reference/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.html
-http://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec.html
-http://developer.android.com/reference/android/text/style/RasterizerSpan.html
-http://developer.android.com/reference/java/nio/ReadOnlyBufferException.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/RectShape.html
-http://developer.android.com/reference/org/apache/http/client/RedirectException.html
-http://developer.android.com/reference/java/lang/reflect/ReflectPermission.html
-http://developer.android.com/reference/java/util/concurrent/RejectedExecutionException.html
-http://developer.android.com/reference/android/text/style/RelativeSizeSpan.html
-http://developer.android.com/reference/android/test/RenamingDelegatingContext.html
-http://developer.android.com/reference/android/text/style/ReplacementSpan.html
-http://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html
-http://developer.android.com/reference/android/preference/RingtonePreference.html
-http://developer.android.com/reference/android/view/animation/RotateAnimation.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/RoundRectShape.html
-http://developer.android.com/reference/java/math/RoundingMode.html
-http://developer.android.com/reference/org/apache/http/conn/routing/RouteInfo.LayerType.html
-http://developer.android.com/reference/org/apache/http/conn/routing/RouteInfo.TunnelType.html
-http://developer.android.com/reference/javax/sql/RowSetEvent.html
-http://developer.android.com/reference/javax/xml/transform/sax/SAXTransformerFactory.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteAbortException.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteConstraintException.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteDatabaseCorruptException.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteDiskIOException.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteDoneException.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteException.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteFullException.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteMisuseException.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteProgram.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteQuery.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteStatement.html
-http://developer.android.com/reference/android/net/SSLCertificateSocketFactory.html
-http://developer.android.com/reference/android/view/animation/ScaleAnimation.html
-http://developer.android.com/reference/android/text/style/ScaleXSpan.html
-http://developer.android.com/reference/java/util/concurrent/ScheduledThreadPoolExecutor.html
-http://developer.android.com/reference/java/util/ServiceConfigurationError.html
-http://developer.android.com/reference/android/provider/Settings.Secure.html
 http://developer.android.com/reference/android/provider/Settings.SettingNotFoundException.html
-http://developer.android.com/reference/android/provider/Settings.System.html
-http://developer.android.com/reference/java/nio/ShortBuffer.html
-http://developer.android.com/reference/java/util/logging/SimpleFormatter.html
-http://developer.android.com/reference/java/util/SimpleTimeZone.html
-http://developer.android.com/reference/org/apache/http/impl/conn/SingleClientConnManager.ConnAdapter.html
-http://developer.android.com/reference/org/apache/http/impl/conn/SingleClientConnManager.PoolEntry.html
-http://developer.android.com/reference/android/text/method/SingleLineTransformationMethod.html
-http://developer.android.com/reference/java/util/logging/SocketHandler.html
-http://developer.android.com/reference/org/apache/http/impl/SocketHttpClientConnection.html
-http://developer.android.com/reference/org/apache/http/impl/SocketHttpServerConnection.html
-http://developer.android.com/reference/java/util/Stack.html
-http://developer.android.com/reference/android/database/StaleDataException.html
-http://developer.android.com/reference/javax/sql/StatementEvent.html
-http://developer.android.com/reference/java/util/logging/StreamHandler.html
-http://developer.android.com/reference/android/text/style/StrikethroughSpan.html
-http://developer.android.com/reference/android/text/style/StyleSpan.html
-http://developer.android.com/reference/android/text/style/SubscriptSpan.html
-http://developer.android.com/reference/android/text/style/SuperscriptSpan.html
-http://developer.android.com/reference/android/net/wifi/SupplicantState.html
-http://developer.android.com/reference/android/test/SyncBaseInstrumentation.html
-http://developer.android.com/reference/org/apache/http/protocol/SyncBasicHttpContext.html
-http://developer.android.com/reference/java/util/concurrent/SynchronousQueue.html
-http://developer.android.com/reference/android/test/suitebuilder/TestSuiteBuilder.FailedToCreateTests.html
-http://developer.android.com/reference/android/text/style/TextAppearanceSpan.html
-http://developer.android.com/reference/android/text/method/TextKeyListener.html
-http://developer.android.com/reference/android/text/method/TextKeyListener.Capitalize.html
-http://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.html
-http://developer.android.com/reference/android/text/method/TimeKeyListener.html
-http://developer.android.com/reference/java/util/concurrent/TimeUnit.html
-http://developer.android.com/reference/java/util/concurrent/TimeoutException.html
-http://developer.android.com/reference/java/util/TooManyListenersException.html
-http://developer.android.com/reference/javax/xml/transform/TransformerConfigurationException.html
-http://developer.android.com/reference/javax/xml/transform/TransformerException.html
-http://developer.android.com/reference/javax/xml/transform/TransformerFactoryConfigurationError.html
-http://developer.android.com/reference/android/view/animation/TranslateAnimation.html
-http://developer.android.com/reference/java/util/TreeMap.html
-http://developer.android.com/reference/java/util/TreeSet.html
-http://developer.android.com/reference/org/apache/http/impl/client/TunnelRefusedException.html
-http://developer.android.com/reference/android/text/style/TypefaceSpan.html
-http://developer.android.com/reference/android/text/style/URLSpan.html
-http://developer.android.com/reference/java/lang/reflect/UndeclaredThrowableException.html
-http://developer.android.com/reference/android/text/style/UnderlineSpan.html
-http://developer.android.com/reference/java/nio/charset/UnmappableCharacterException.html
-http://developer.android.com/reference/org/apache/http/impl/auth/UnsupportedDigestAlgorithmException.html
-http://developer.android.com/reference/org/apache/http/UnsupportedHttpVersionException.html
-http://developer.android.com/reference/java/util/Vector.html
-http://developer.android.com/reference/android/media/audiofx/Virtualizer.html
-http://developer.android.com/reference/java/util/WeakHashMap.html
-http://developer.android.com/reference/javax/security/cert/X509Certificate.html
-http://developer.android.com/reference/java/security/spec/X509EncodedKeySpec.html
-http://developer.android.com/reference/java/util/logging/XMLFormatter.html
-http://developer.android.com/reference/javax/xml/xpath/XPathException.html
-http://developer.android.com/reference/javax/xml/xpath/XPathExpressionException.html
-http://developer.android.com/reference/javax/xml/xpath/XPathFactoryConfigurationException.html
-http://developer.android.com/reference/javax/xml/xpath/XPathFunctionException.html
-http://developer.android.com/reference/java/util/zip/ZipError.html
-http://developer.android.com/reference/java/util/zip/ZipException.html
-http://developer.android.com/reference/java/util/zip/ZipInputStream.html
-http://developer.android.com/reference/java/util/zip/ZipOutputStream.html
-http://developer.android.com/reference/java/util/Queue.html
-http://developer.android.com/reference/java/util/concurrent/BlockingQueue.html
-http://developer.android.com/reference/java/util/concurrent/ConcurrentNavigableMap.html
-http://developer.android.com/reference/java/util/NavigableSet.html
-http://developer.android.com/reference/javax/sql/PooledConnection.html
-http://developer.android.com/reference/java/util/Set.html
-http://developer.android.com/reference/java/util/concurrent/BlockingDeque.html
-http://developer.android.com/reference/javax/sql/RowSet.html
-http://developer.android.com/reference/org/apache/http/cookie/ClientCookie.html
-http://developer.android.com/reference/org/apache/http/cookie/Cookie.html
-http://developer.android.com/reference/org/apache/http/cookie/CookieSpec.html
-http://developer.android.com/reference/org/apache/http/cookie/CookieSpecFactory.html
-http://developer.android.com/reference/org/apache/http/cookie/SetCookie.html
-http://developer.android.com/reference/org/apache/http/cookie/SetCookie2.html
-http://developer.android.com/reference/org/apache/http/cookie/SM.html
-http://developer.android.com/reference/org/apache/http/cookie/package-descr.html
-http://developer.android.com/reference/android/database/CrossProcessCursor.html
-http://developer.android.com/reference/android/database/CharArrayBuffer.html
-http://developer.android.com/reference/android/database/Observable.html
-http://developer.android.com/reference/android/database/SQLException.html
-http://developer.android.com/reference/java/util/Map.Entry.html
-http://developer.android.com/reference/java/util/Collection.html
-http://developer.android.com/reference/java/util/Enumeration.html
-http://developer.android.com/reference/java/util/concurrent/ConcurrentMap.html
-http://developer.android.com/reference/java/util/concurrent/Future.html
-http://developer.android.com/reference/java/util/concurrent/RejectedExecutionHandler.html
-http://developer.android.com/reference/java/util/concurrent/RunnableFuture.html
-http://developer.android.com/reference/java/util/concurrent/RunnableScheduledFuture.html
-http://developer.android.com/reference/java/util/concurrent/ScheduledFuture.html
-http://developer.android.com/reference/java/util/Deque.html
-http://developer.android.com/reference/org/apache/http/NameValuePair.html
-http://developer.android.com/reference/android/inputmethodservice/KeyboardView.OnKeyboardActionListener.html
-http://developer.android.com/reference/android/inputmethodservice/package-descr.html
-http://developer.android.com/reference/java/util/Comparator.html
-http://developer.android.com/reference/java/util/EventListener.html
-http://developer.android.com/reference/java/util/ListIterator.html
-http://developer.android.com/reference/java/util/Observer.html
-http://developer.android.com/reference/java/util/RandomAccess.html
-http://developer.android.com/reference/java/util/SortedMap.html
-http://developer.android.com/reference/java/util/SortedSet.html
-http://developer.android.com/reference/org/apache/http/HeaderElement.html
-http://developer.android.com/reference/dalvik/bytecode/Opcodes.html
-http://developer.android.com/reference/dalvik/bytecode/package-descr.html
-http://developer.android.com/reference/android/media/AudioManager.OnAudioFocusChangeListener.html
-http://developer.android.com/reference/android/media/AudioRecord.OnRecordPositionUpdateListener.html
-http://developer.android.com/reference/android/media/AudioTrack.OnPlaybackPositionUpdateListener.html
-http://developer.android.com/reference/android/media/JetPlayer.OnJetEventListener.html
-http://developer.android.com/reference/android/media/MediaPlayer.OnBufferingUpdateListener.html
-http://developer.android.com/reference/android/media/MediaPlayer.OnCompletionListener.html
-http://developer.android.com/reference/android/media/MediaPlayer.OnErrorListener.html
-http://developer.android.com/reference/android/media/MediaPlayer.OnInfoListener.html
-http://developer.android.com/reference/android/media/MediaPlayer.OnPreparedListener.html
-http://developer.android.com/reference/android/media/MediaPlayer.OnSeekCompleteListener.html
-http://developer.android.com/reference/android/media/MediaPlayer.OnVideoSizeChangedListener.html
-http://developer.android.com/reference/android/media/MediaRecorder.OnErrorListener.html
-http://developer.android.com/reference/android/media/MediaRecorder.OnInfoListener.html
-http://developer.android.com/reference/android/media/MediaScannerConnection.MediaScannerConnectionClient.html
-http://developer.android.com/reference/android/media/SoundPool.OnLoadCompleteListener.html
+http://developer.android.com/reference/android/content/SearchRecentSuggestionsProvider.html
+http://developer.android.com/resources/samples/JetBoy/JETBOY_content/index.html
+http://developer.android.com/resources/samples/JetBoy/res/index.html
+http://developer.android.com/resources/samples/JetBoy/src/index.html
+http://developer.android.com/resources/samples/JetBoy/AndroidManifest.html
+http://developer.android.com/reference/android/speech/RecognitionService.Callback.html
+http://developer.android.com/reference/android/speech/SpeechRecognizer.html
+http://developer.android.com/reference/android/content/ContextWrapper.html
+http://developer.android.com/reference/android/accounts/AccountManager.html
+http://developer.android.com/reference/android/text/ClipboardManager.html
+http://developer.android.com/reference/android/net/ConnectivityManager.html
+http://developer.android.com/reference/android/os/DropBoxManager.html
+http://developer.android.com/reference/android/view/LayoutInflater.html
+http://developer.android.com/reference/android/os/PowerManager.html
+http://developer.android.com/reference/android/os/Vibrator.html
+http://developer.android.com/reference/android/net/wifi/WifiManager.html
+http://developer.android.com/reference/android/view/WindowManager.html
+http://developer.android.com/reference/java/io/FileDescriptor.html
+http://developer.android.com/reference/java/lang/SecurityException.html
+http://developer.android.com/reference/android/content/pm/ApplicationInfo.html
+http://developer.android.com/reference/android/content/res/AssetManager.html
+http://developer.android.com/reference/java/lang/ClassLoader.html
+http://developer.android.com/reference/android/os/Looper.html
+http://developer.android.com/reference/android/content/res/Resources.Theme.html
+http://developer.android.com/reference/android/content/IntentFilter.html
+http://developer.android.com/reference/android/content/IntentSender.html
+http://developer.android.com/reference/java/util/Formatter.html
+http://developer.android.com/reference/android/content/ComponentCallbacks.html
+http://developer.android.com/reference/android/os/ParcelFileDescriptor.html
+http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/ExampleAgent.html
+http://developer.android.com/resources/samples/Snake/src/com/index.html
+http://developer.android.com/reference/org/apache/http/client/protocol/ClientContext.html
+http://developer.android.com/reference/org/apache/http/client/protocol/ClientContextConfigurer.html
+http://developer.android.com/reference/org/apache/http/client/protocol/RequestAddCookies.html
+http://developer.android.com/reference/org/apache/http/client/protocol/RequestDefaultHeaders.html
+http://developer.android.com/reference/org/apache/http/client/protocol/RequestProxyAuthentication.html
+http://developer.android.com/reference/org/apache/http/client/protocol/RequestTargetAuthentication.html
+http://developer.android.com/reference/org/apache/http/client/protocol/ResponseProcessCookies.html
+http://developer.android.com/reference/org/apache/http/client/protocol/package-descr.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpContext.html
+http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/ShapeDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/PictureDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/LayerDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/shapes/OvalShape.html
+http://developer.android.com/reference/android/graphics/drawable/NinePatchDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/BasicPooledConnAdapter.html
+http://developer.android.com/reference/org/apache/http/conn/ClientConnectionManager.html
+http://developer.android.com/reference/java/net/InetAddress.html
+http://developer.android.com/reference/org/apache/http/HttpConnectionMetrics.html
+http://developer.android.com/reference/javax/net/ssl/SSLSession.html
 http://developer.android.com/reference/org/apache/http/HttpResponse.html
-http://developer.android.com/reference/org/apache/http/StatusLine.html
-http://developer.android.com/reference/org/apache/http/ReasonPhraseCatalog.html
-http://developer.android.com/reference/javax/xml/parsers/package-descr.html
-http://developer.android.com/reference/android/telephony/gsm/SmsMessage.html
-http://developer.android.com/reference/android/telephony/gsm/SmsMessage.SubmitPdu.html
-http://developer.android.com/reference/android/telephony/gsm/SmsMessage.MessageClass.html
-http://developer.android.com/reference/android/telephony/gsm/package-descr.html
-http://developer.android.com/reference/android/provider/Contacts.ContactMethodsColumns.html
-http://developer.android.com/reference/android/provider/Contacts.ExtensionsColumns.html
-http://developer.android.com/reference/android/provider/Contacts.GroupsColumns.html
-http://developer.android.com/reference/android/provider/Contacts.OrganizationColumns.html
-http://developer.android.com/reference/android/provider/Contacts.PhotosColumns.html
-http://developer.android.com/reference/android/provider/Contacts.PresenceColumns.html
-http://developer.android.com/reference/android/provider/Contacts.SettingsColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.BaseSyncColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.BaseTypes.html
-http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.CommonColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.ContactOptionsColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.ContactsColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.ContactStatusColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.DataColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.DataColumnsWithJoins.html
-http://developer.android.com/reference/android/provider/ContactsContract.GroupsColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.PhoneLookupColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.PresenceColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.RawContactsColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.SettingsColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.StatusColumns.html
-http://developer.android.com/reference/android/provider/ContactsContract.SyncColumns.html
-http://developer.android.com/reference/android/provider/MediaStore.Audio.AlbumColumns.html
-http://developer.android.com/reference/android/provider/MediaStore.Audio.ArtistColumns.html
-http://developer.android.com/reference/android/provider/MediaStore.Audio.AudioColumns.html
-http://developer.android.com/reference/android/provider/MediaStore.Audio.GenresColumns.html
-http://developer.android.com/reference/android/provider/MediaStore.Audio.PlaylistsColumns.html
-http://developer.android.com/reference/android/provider/MediaStore.Images.ImageColumns.html
-http://developer.android.com/reference/android/provider/MediaStore.MediaColumns.html
-http://developer.android.com/reference/android/provider/MediaStore.Video.VideoColumns.html
-http://developer.android.com/reference/android/provider/OpenableColumns.html
-http://developer.android.com/reference/android/provider/SyncStateContract.Columns.html
-http://developer.android.com/reference/org/apache/http/ConnectionReuseStrategy.html
-http://developer.android.com/reference/org/apache/http/FormattedHeader.html
 http://developer.android.com/reference/org/apache/http/HttpClientConnection.html
 http://developer.android.com/reference/org/apache/http/HttpConnection.html
-http://developer.android.com/reference/org/apache/http/HttpConnectionMetrics.html
 http://developer.android.com/reference/org/apache/http/HttpInetConnection.html
+http://developer.android.com/reference/org/apache/http/conn/ConnectionReleaseTrigger.html
+http://developer.android.com/reference/org/apache/http/conn/routing/HttpRoute.html
+http://developer.android.com/reference/org/apache/http/params/HttpParams.html
+http://developer.android.com/reference/org/apache/http/HttpHost.html
+http://developer.android.com/reference/javax/net/ssl/SSLSocket.html
+http://developer.android.com/reference/org/apache/http/HttpException.html
+http://developer.android.com/reference/org/apache/http/ConnectionReuseStrategy.html
+http://developer.android.com/reference/java/io/InterruptedIOException.html
+http://developer.android.com/reference/org/apache/http/FormattedHeader.html
+http://developer.android.com/reference/org/apache/http/Header.html
+http://developer.android.com/reference/org/apache/http/HeaderElement.html
+http://developer.android.com/reference/org/apache/http/HeaderElementIterator.html
+http://developer.android.com/reference/org/apache/http/HeaderIterator.html
+http://developer.android.com/reference/org/apache/http/HttpEntity.html
+http://developer.android.com/reference/org/apache/http/HttpMessage.html
 http://developer.android.com/reference/org/apache/http/HttpRequestFactory.html
 http://developer.android.com/reference/org/apache/http/HttpResponseFactory.html
 http://developer.android.com/reference/org/apache/http/HttpResponseInterceptor.html
 http://developer.android.com/reference/org/apache/http/HttpServerConnection.html
 http://developer.android.com/reference/org/apache/http/HttpStatus.html
+http://developer.android.com/reference/org/apache/http/NameValuePair.html
+http://developer.android.com/reference/org/apache/http/ReasonPhraseCatalog.html
+http://developer.android.com/reference/org/apache/http/RequestLine.html
+http://developer.android.com/reference/org/apache/http/StatusLine.html
+http://developer.android.com/reference/org/apache/http/TokenIterator.html
+http://developer.android.com/reference/org/apache/http/HttpVersion.html
+http://developer.android.com/reference/org/apache/http/ProtocolVersion.html
+http://developer.android.com/reference/org/apache/http/ConnectionClosedException.html
+http://developer.android.com/reference/org/apache/http/MalformedChunkCodingException.html
+http://developer.android.com/reference/org/apache/http/MethodNotSupportedException.html
+http://developer.android.com/reference/org/apache/http/NoHttpResponseException.html
 http://developer.android.com/reference/org/apache/http/ParseException.html
 http://developer.android.com/reference/org/apache/http/ProtocolException.html
-http://developer.android.com/reference/org/w3c/dom/Node.html
-http://developer.android.com/reference/org/w3c/dom/Element.html
-http://developer.android.com/reference/android/media/package-descr.html
-http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html
+http://developer.android.com/reference/org/apache/http/UnsupportedHttpVersionException.html
+http://developer.android.com/reference/org/apache/http/package-descr.html
+http://developer.android.com/reference/org/apache/http/conn/ClientConnectionManagerFactory.html
+http://developer.android.com/reference/org/apache/http/conn/ClientConnectionRequest.html
+http://developer.android.com/reference/org/apache/http/conn/ConnectionKeepAliveStrategy.html
+http://developer.android.com/reference/org/apache/http/conn/EofSensorWatcher.html
+http://developer.android.com/reference/org/apache/http/conn/BasicEofSensorWatcher.html
+http://developer.android.com/reference/org/apache/http/conn/BasicManagedEntity.html
+http://developer.android.com/reference/org/apache/http/conn/EofSensorInputStream.html
+http://developer.android.com/reference/org/apache/http/conn/MultihomePlainSocketFactory.html
+http://developer.android.com/reference/org/apache/http/conn/ConnectionPoolTimeoutException.html
+http://developer.android.com/reference/org/apache/http/conn/ConnectTimeoutException.html
+http://developer.android.com/reference/org/apache/http/conn/HttpHostConnectException.html
+http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html
+http://developer.android.com/reference/org/xmlpull/v1/XmlSerializer.html
+http://developer.android.com/reference/org/xmlpull/v1/XmlPullParserFactory.html
+http://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html
+http://developer.android.com/reference/java/util/regex/MatchResult.html
+http://developer.android.com/reference/java/util/regex/Matcher.html
+http://developer.android.com/reference/java/util/regex/Pattern.html
+http://developer.android.com/reference/java/util/regex/PatternSyntaxException.html
+http://developer.android.com/reference/org/apache/http/impl/io/AbstractMessageParser.html
+http://developer.android.com/reference/org/apache/http/message/LineParser.html
+http://developer.android.com/reference/org/apache/http/io/SessionInputBuffer.html
+http://developer.android.com/reference/org/apache/http/io/HttpMessageParser.html
+http://developer.android.com/reference/android/content/pm/ApplicationInfo.DisplayNameComparator.html
+http://developer.android.com/reference/android/content/pm/ComponentInfo.html
+http://developer.android.com/reference/android/content/pm/ConfigurationInfo.html
+http://developer.android.com/reference/android/content/pm/FeatureInfo.html
+http://developer.android.com/reference/android/content/pm/InstrumentationInfo.html
+http://developer.android.com/reference/android/content/pm/LabeledIntent.html
+http://developer.android.com/reference/android/content/pm/PackageItemInfo.DisplayNameComparator.html
+http://developer.android.com/reference/android/content/pm/PackageStats.html
+http://developer.android.com/reference/android/content/pm/PathPermission.html
+http://developer.android.com/reference/android/content/pm/PermissionGroupInfo.html
+http://developer.android.com/reference/android/content/pm/PermissionInfo.html
+http://developer.android.com/reference/android/content/pm/ProviderInfo.html
+http://developer.android.com/reference/android/content/pm/ResolveInfo.html
+http://developer.android.com/reference/android/content/pm/ResolveInfo.DisplayNameComparator.html
+http://developer.android.com/reference/android/content/pm/ServiceInfo.html
+http://developer.android.com/reference/android/content/pm/Signature.html
+http://developer.android.com/reference/android/content/pm/PackageManager.NameNotFoundException.html
+http://developer.android.com/reference/android/content/res/XmlResourceParser.html
+http://developer.android.com/reference/android/view/LayoutInflater.Filter.html
+http://developer.android.com/reference/android/widget/RemoteViews.RemoteView.html
+http://developer.android.com/reference/java/io/Serializable.html
+http://developer.android.com/reference/java/util/Date.html
+http://developer.android.com/reference/java/util/Collection.html
+http://developer.android.com/reference/java/lang/IllegalMonitorStateException.html
+http://developer.android.com/reference/java/util/Calendar.html
+http://developer.android.com/reference/java/text/DateFormat.html
+http://developer.android.com/reference/junit/framework/TestSuite.html
+http://developer.android.com/reference/android/test/PerformanceTestCase.html
+http://developer.android.com/reference/android/view/inputmethod/InputMethod.html
+http://developer.android.com/reference/android/view/inputmethod/InputMethod.SessionCallback.html
+http://developer.android.com/reference/android/view/inputmethod/InputMethodSession.html
+http://developer.android.com/reference/android/view/inputmethod/InputMethodSession.EventCallback.html
+http://developer.android.com/reference/android/view/inputmethod/CompletionInfo.html
+http://developer.android.com/reference/android/view/inputmethod/ExtractedText.html
+http://developer.android.com/reference/android/view/inputmethod/ExtractedTextRequest.html
+http://developer.android.com/reference/android/view/inputmethod/InputBinding.html
+http://developer.android.com/reference/android/view/inputmethod/InputMethodInfo.html
+http://developer.android.com/reference/android/text/TextUtils.html
+http://developer.android.com/reference/android/view/KeyCharacterMap.html
+http://developer.android.com/reference/android/test/PerformanceTestCase.Intermediates.html
+http://developer.android.com/reference/android/test/TestSuiteProvider.html
+http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase.html
+http://developer.android.com/reference/android/test/ActivityTestCase.html
+http://developer.android.com/reference/android/test/AndroidTestRunner.html
+http://developer.android.com/reference/android/test/InstrumentationTestSuite.html
+http://developer.android.com/reference/android/test/ProviderTestCase.html
+http://developer.android.com/reference/android/test/SingleLaunchActivityTestCase.html
+http://developer.android.com/reference/android/test/SyncBaseInstrumentation.html
+http://developer.android.com/reference/android/test/AssertionFailedError.html
+http://developer.android.com/reference/android/test/ComparisonFailure.html
+http://developer.android.com/reference/java/util/Properties.html
+http://developer.android.com/reference/java/math/BigInteger.html
+http://developer.android.com/reference/java/math/BigDecimal.html
+http://developer.android.com/reference/java/util/GregorianCalendar.html
+http://developer.android.com/reference/java/lang/NullPointerException.html
+http://developer.android.com/reference/javax/xml/XMLConstants.html
+http://developer.android.com/resources/samples/AccessibilityService/res/index.html
+http://developer.android.com/resources/samples/AccessibilityService/src/index.html
+http://developer.android.com/resources/samples/AccessibilityService/AndroidManifest.html
+http://developer.android.com/reference/android/appwidget/AppWidgetProvider.html
+http://developer.android.com/reference/android/appwidget/AppWidgetProviderInfo.html
+http://developer.android.com/reference/android/appwidget/AppWidgetManager.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetProvider.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetConfigure.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/BasicPoolEntry.html
+http://developer.android.com/reference/org/apache/http/conn/routing/RouteTracker.html
+http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
+http://developer.android.com/reference/java/net/ContentHandlerFactory.html
+http://developer.android.com/reference/java/net/CookiePolicy.html
+http://developer.android.com/reference/java/net/CookieStore.html
+http://developer.android.com/reference/java/net/DatagramSocketImplFactory.html
+http://developer.android.com/reference/java/net/FileNameMap.html
+http://developer.android.com/reference/java/net/SocketImplFactory.html
+http://developer.android.com/reference/java/net/SocketOptions.html
+http://developer.android.com/reference/java/net/URLStreamHandlerFactory.html
+http://developer.android.com/reference/java/net/Authenticator.html
+http://developer.android.com/reference/java/net/CacheRequest.html
+http://developer.android.com/reference/java/net/CacheResponse.html
+http://developer.android.com/reference/java/net/ContentHandler.html
+http://developer.android.com/reference/java/net/CookieHandler.html
+http://developer.android.com/reference/java/net/DatagramPacket.html
+http://developer.android.com/reference/java/net/DatagramSocket.html
+http://developer.android.com/reference/java/net/DatagramSocketImpl.html
+http://developer.android.com/reference/java/net/HttpCookie.html
+http://developer.android.com/reference/java/net/Inet4Address.html
+http://developer.android.com/reference/java/net/Inet6Address.html
+http://developer.android.com/reference/java/net/InetSocketAddress.html
+http://developer.android.com/reference/java/net/JarURLConnection.html
+http://developer.android.com/reference/java/net/MulticastSocket.html
+http://developer.android.com/reference/java/net/NetPermission.html
+http://developer.android.com/reference/java/net/PasswordAuthentication.html
+http://developer.android.com/reference/java/net/Proxy.html
+http://developer.android.com/reference/java/net/ProxySelector.html
+http://developer.android.com/reference/java/net/ResponseCache.html
+http://developer.android.com/reference/java/net/SecureCacheResponse.html
+http://developer.android.com/reference/java/net/ServerSocket.html
+http://developer.android.com/reference/java/net/Socket.html
+http://developer.android.com/reference/java/net/SocketAddress.html
+http://developer.android.com/reference/java/net/SocketImpl.html
+http://developer.android.com/reference/java/net/SocketPermission.html
+http://developer.android.com/reference/java/net/URI.html
+http://developer.android.com/reference/java/net/URL.html
+http://developer.android.com/reference/java/net/URLClassLoader.html
+http://developer.android.com/reference/java/net/URLConnection.html
+http://developer.android.com/reference/java/net/URLDecoder.html
+http://developer.android.com/reference/java/net/URLEncoder.html
+http://developer.android.com/reference/java/net/URLStreamHandler.html
+http://developer.android.com/reference/java/net/Authenticator.RequestorType.html
+http://developer.android.com/reference/java/net/Proxy.Type.html
+http://developer.android.com/reference/java/net/BindException.html
+http://developer.android.com/reference/java/net/ConnectException.html
+http://developer.android.com/reference/java/net/HttpRetryException.html
+http://developer.android.com/reference/java/net/MalformedURLException.html
+http://developer.android.com/reference/java/net/NoRouteToHostException.html
+http://developer.android.com/reference/java/net/PortUnreachableException.html
+http://developer.android.com/reference/java/net/ProtocolException.html
+http://developer.android.com/reference/java/net/SocketException.html
+http://developer.android.com/reference/java/net/SocketTimeoutException.html
+http://developer.android.com/reference/java/net/UnknownHostException.html
+http://developer.android.com/reference/java/net/UnknownServiceException.html
+http://developer.android.com/reference/java/net/URISyntaxException.html
+http://developer.android.com/reference/android/graphics/drawable/Animatable.html
+http://developer.android.com/reference/android/graphics/drawable/ClipDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/ColorDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/Drawable.ConstantState.html
+http://developer.android.com/reference/android/graphics/drawable/DrawableContainer.html
+http://developer.android.com/reference/android/graphics/drawable/DrawableContainer.DrawableContainerState.html
+http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/InsetDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/LevelListDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/PaintDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/RotateDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/ScaleDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/ShapeDrawable.ShaderFactory.html
+http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html
+http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.Orientation.html
+http://developer.android.com/reference/android/graphics/drawable/package-descr.html
+http://developer.android.com/reference/java/lang/IndexOutOfBoundsException.html
+http://developer.android.com/reference/java/nio/IntBuffer.html
+http://developer.android.com/reference/java/nio/FloatBuffer.html
+http://developer.android.com/reference/org/json/JSONArray.html
+http://developer.android.com/reference/org/json/JSONObject.html
+http://developer.android.com/reference/org/json/JSONStringer.html
+http://developer.android.com/reference/org/json/JSONTokener.html
+http://developer.android.com/reference/org/json/JSONException.html
+http://developer.android.com/reference/java/security/acl/Acl.html
 http://developer.android.com/reference/java/security/acl/AclEntry.html
-http://developer.android.com/reference/java/util/jar/Manifest.html
-http://developer.android.com/reference/javax/microedition/khronos/egl/EGL10.html
-http://developer.android.com/reference/android/R.html
-http://developer.android.com/reference/android/R.anim.html
-http://developer.android.com/reference/android/R.array.html
-http://developer.android.com/reference/android/R.bool.html
-http://developer.android.com/reference/android/R.color.html
-http://developer.android.com/reference/android/R.dimen.html
-http://developer.android.com/reference/android/R.drawable.html
-http://developer.android.com/reference/android/R.id.html
-http://developer.android.com/reference/android/R.integer.html
-http://developer.android.com/reference/android/R.layout.html
-http://developer.android.com/reference/android/R.plurals.html
-http://developer.android.com/reference/android/R.raw.html
-http://developer.android.com/reference/android/R.string.html
-http://developer.android.com/reference/android/R.xml.html
-http://developer.android.com/resources/tutorials/views/hello-formstuff.html
-http://developer.android.com/reference/android/text/method/MovementMethod.html
-http://developer.android.com/reference/android/text/method/KeyListener.html
-http://developer.android.com/reference/android/text/method/TransformationMethod.html
-http://developer.android.com/reference/java/security/spec/AlgorithmParameterSpec.html
+http://developer.android.com/reference/java/security/acl/Group.html
+http://developer.android.com/reference/java/security/acl/Owner.html
+http://developer.android.com/reference/java/security/acl/Permission.html
+http://developer.android.com/reference/java/security/acl/AclNotFoundException.html
+http://developer.android.com/reference/java/security/acl/LastOwnerException.html
+http://developer.android.com/reference/java/security/acl/NotOwnerException.html
+http://developer.android.com/reference/java/security/acl/package-descr.html
+http://developer.android.com/reference/java/security/PublicKey.html
+http://developer.android.com/reference/org/apache/http/impl/entity/EntityDeserializer.html
+http://developer.android.com/reference/org/apache/http/impl/entity/EntitySerializer.html
+http://developer.android.com/reference/org/apache/http/impl/entity/LaxContentLengthStrategy.html
+http://developer.android.com/reference/org/apache/http/impl/entity/StrictContentLengthStrategy.html
+http://developer.android.com/reference/org/apache/http/impl/entity/package-descr.html
+http://developer.android.com/reference/android/content/Intent.ShortcutIconResource.html
+http://developer.android.com/reference/android/widget/package-descr.html
 http://developer.android.com/reference/java/nio/channels/ByteChannel.html
 http://developer.android.com/reference/java/nio/channels/Channel.html
 http://developer.android.com/reference/java/nio/channels/GatheringByteChannel.html
@@ -3004,93 +1801,201 @@
 http://developer.android.com/reference/java/nio/channels/ReadableByteChannel.html
 http://developer.android.com/reference/java/nio/channels/ScatteringByteChannel.html
 http://developer.android.com/reference/java/nio/channels/WritableByteChannel.html
-http://developer.android.com/reference/org/apache/http/conn/scheme/LayeredSocketFactory.html
-http://developer.android.com/reference/org/apache/http/conn/scheme/HostNameResolver.html
-http://developer.android.com/reference/org/apache/http/conn/scheme/SocketFactory.html
-http://developer.android.com/reference/java/lang/annotation/Annotation.html
-http://developer.android.com/
-http://developer.android.com/reference/org/w3c/dom/Document.html
-http://developer.android.com/reference/org/w3c/dom/DocumentFragment.html
-http://developer.android.com/reference/javax/xml/transform/SourceLocator.html
-http://developer.android.com/reference/javax/crypto/interfaces/DHKey.html
-http://developer.android.com/reference/javax/crypto/interfaces/DHPrivateKey.html
-http://developer.android.com/reference/javax/crypto/interfaces/DHPublicKey.html
-http://developer.android.com/reference/javax/crypto/interfaces/PBEKey.html
-http://developer.android.com/reference/javax/crypto/interfaces/package-descr.html
-http://developer.android.com/reference/org/apache/http/impl/entity/package-descr.html
-http://developer.android.com/resources/tutorials/views/hello-tabwidget.html
-http://developer.android.com/reference/android/text/package-descr.html
-http://developer.android.com/reference/android/text/method/package-descr.html
-http://developer.android.com/reference/android/accounts/AccountManagerCallback.html
-http://developer.android.com/reference/android/accounts/AccountManagerFuture.html
-http://developer.android.com/reference/android/accounts/OnAccountsUpdateListener.html
-http://developer.android.com/reference/java/security/interfaces/DSAPrivateKey.html
-http://developer.android.com/reference/java/security/interfaces/DSAPublicKey.html
-http://developer.android.com/reference/java/security/interfaces/ECPrivateKey.html
-http://developer.android.com/reference/java/security/interfaces/ECPublicKey.html
-http://developer.android.com/reference/java/security/interfaces/RSAMultiPrimePrivateCrtKey.html
-http://developer.android.com/reference/java/security/interfaces/RSAPrivateCrtKey.html
-http://developer.android.com/reference/java/security/interfaces/RSAPrivateKey.html
-http://developer.android.com/reference/java/security/interfaces/RSAPublicKey.html
-http://developer.android.com/resources/tutorials/views/hello-gallery.html
-http://developer.android.com/reference/android/gesture/GestureOverlayView.OnGestureListener.html
-http://developer.android.com/reference/android/gesture/GestureOverlayView.OnGesturePerformedListener.html
-http://developer.android.com/reference/android/gesture/GestureOverlayView.OnGesturingListener.html
-http://developer.android.com/reference/org/apache/http/conn/ClientConnectionManagerFactory.html
-http://developer.android.com/reference/org/apache/http/conn/ConnectionKeepAliveStrategy.html
-http://developer.android.com/reference/java/lang/reflect/AnnotatedElement.html
-http://developer.android.com/reference/java/lang/reflect/GenericArrayType.html
-http://developer.android.com/reference/java/lang/reflect/GenericDeclaration.html
-http://developer.android.com/reference/java/lang/reflect/InvocationHandler.html
-http://developer.android.com/reference/java/lang/reflect/Member.html
-http://developer.android.com/reference/java/lang/reflect/ParameterizedType.html
-http://developer.android.com/reference/java/lang/reflect/Type.html
-http://developer.android.com/reference/java/lang/reflect/TypeVariable.html
-http://developer.android.com/reference/java/lang/reflect/WildcardType.html
-http://developer.android.com/reference/org/apache/http/conn/package-descr.html
-http://developer.android.com/reference/android/media/audiofx/AudioEffect.OnControlStatusChangeListener.html
-http://developer.android.com/reference/android/media/audiofx/AudioEffect.OnEnableStatusChangeListener.html
-http://developer.android.com/reference/android/media/audiofx/BassBoost.OnParameterChangeListener.html
-http://developer.android.com/reference/android/media/audiofx/EnvironmentalReverb.OnParameterChangeListener.html
-http://developer.android.com/reference/android/media/audiofx/Equalizer.OnParameterChangeListener.html
-http://developer.android.com/reference/android/media/audiofx/PresetReverb.OnParameterChangeListener.html
-http://developer.android.com/reference/android/media/audiofx/Virtualizer.OnParameterChangeListener.html
-http://developer.android.com/reference/android/media/audiofx/Visualizer.OnDataCaptureListener.html
-http://developer.android.com/reference/android/media/audiofx/package-descr.html
-http://developer.android.com/reference/org/apache/http/message/package-descr.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnConnectionPNames.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnManagerPNames.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnPerRoute.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnRoutePNames.html
-http://developer.android.com/reference/org/apache/http/auth/AuthScheme.html
-http://developer.android.com/reference/org/apache/http/auth/AuthSchemeFactory.html
-http://developer.android.com/reference/java/security/spec/ECField.html
-http://developer.android.com/reference/java/security/spec/KeySpec.html
+http://developer.android.com/reference/java/nio/channels/Channels.html
+http://developer.android.com/reference/java/nio/channels/DatagramChannel.html
+http://developer.android.com/reference/java/nio/channels/FileChannel.html
+http://developer.android.com/reference/java/nio/channels/FileChannel.MapMode.html
+http://developer.android.com/reference/java/nio/channels/FileLock.html
+http://developer.android.com/reference/java/nio/channels/Pipe.html
+http://developer.android.com/reference/java/nio/channels/Pipe.SinkChannel.html
+http://developer.android.com/reference/java/nio/channels/Pipe.SourceChannel.html
+http://developer.android.com/reference/java/nio/channels/SelectableChannel.html
+http://developer.android.com/reference/java/nio/channels/SelectionKey.html
+http://developer.android.com/reference/java/nio/channels/Selector.html
+http://developer.android.com/reference/java/nio/channels/ServerSocketChannel.html
+http://developer.android.com/reference/java/nio/channels/SocketChannel.html
+http://developer.android.com/reference/java/nio/channels/AlreadyConnectedException.html
+http://developer.android.com/reference/java/nio/channels/AsynchronousCloseException.html
+http://developer.android.com/reference/java/nio/channels/CancelledKeyException.html
+http://developer.android.com/reference/java/nio/channels/ClosedByInterruptException.html
+http://developer.android.com/reference/java/nio/channels/ClosedChannelException.html
+http://developer.android.com/reference/java/nio/channels/ClosedSelectorException.html
+http://developer.android.com/reference/java/nio/channels/ConnectionPendingException.html
+http://developer.android.com/reference/java/nio/channels/FileLockInterruptionException.html
+http://developer.android.com/reference/java/nio/channels/IllegalBlockingModeException.html
+http://developer.android.com/reference/java/nio/channels/IllegalSelectorException.html
+http://developer.android.com/reference/java/nio/channels/NoConnectionPendingException.html
+http://developer.android.com/reference/java/nio/channels/NonReadableChannelException.html
+http://developer.android.com/reference/java/nio/channels/NonWritableChannelException.html
+http://developer.android.com/reference/java/nio/channels/NotYetBoundException.html
+http://developer.android.com/reference/java/nio/channels/NotYetConnectedException.html
+http://developer.android.com/reference/java/nio/channels/OverlappingFileLockException.html
+http://developer.android.com/reference/java/nio/channels/UnresolvedAddressException.html
+http://developer.android.com/reference/java/nio/channels/UnsupportedAddressTypeException.html
+http://developer.android.com/reference/javax/microedition/khronos/egl/EGLSurface.html
+http://developer.android.com/reference/javax/microedition/khronos/egl/EGL10.html
+http://developer.android.com/reference/javax/microedition/khronos/egl/EGLDisplay.html
+http://developer.android.com/reference/javax/microedition/khronos/egl/EGLConfig.html
+http://developer.android.com/reference/javax/xml/transform/dom/DOMSource.html
+http://developer.android.com/reference/javax/xml/transform/sax/SAXSource.html
+http://developer.android.com/reference/javax/xml/transform/stream/StreamSource.html
+http://developer.android.com/reference/java/lang/Cloneable.html
+http://developer.android.com/reference/java/util/jar/JarEntry.html
+http://developer.android.com/reference/android/view/GestureDetector.OnDoubleTapListener.html
+http://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html
+http://developer.android.com/reference/android/view/InputQueue.Callback.html
+http://developer.android.com/reference/android/view/LayoutInflater.Factory.html
+http://developer.android.com/reference/android/view/MenuItem.html
+http://developer.android.com/reference/android/view/MenuItem.OnMenuItemClickListener.html
+http://developer.android.com/reference/android/view/ScaleGestureDetector.OnScaleGestureListener.html
+http://developer.android.com/reference/android/view/SubMenu.html
+http://developer.android.com/reference/android/view/SurfaceHolder.Callback.html
+http://developer.android.com/reference/android/view/ViewStub.OnInflateListener.html
+http://developer.android.com/reference/android/view/ViewTreeObserver.OnGlobalFocusChangeListener.html
+http://developer.android.com/reference/android/view/ViewTreeObserver.OnGlobalLayoutListener.html
+http://developer.android.com/reference/android/view/ViewTreeObserver.OnPreDrawListener.html
+http://developer.android.com/reference/android/view/ViewTreeObserver.OnScrollChangedListener.html
+http://developer.android.com/reference/android/view/ViewTreeObserver.OnTouchModeChangeListener.html
+http://developer.android.com/reference/android/view/Window.Callback.html
+http://developer.android.com/reference/android/view/AbsSavedState.html
+http://developer.android.com/reference/android/view/ContextThemeWrapper.html
+http://developer.android.com/reference/android/view/Display.html
+http://developer.android.com/reference/android/view/FocusFinder.html
+http://developer.android.com/reference/android/view/GestureDetector.html
+http://developer.android.com/reference/android/view/GestureDetector.SimpleOnGestureListener.html
+http://developer.android.com/reference/android/view/HapticFeedbackConstants.html
+http://developer.android.com/reference/android/view/InputDevice.MotionRange.html
+http://developer.android.com/reference/android/view/KeyCharacterMap.KeyData.html
+http://developer.android.com/reference/android/view/MotionEvent.PointerCoords.html
+http://developer.android.com/reference/android/view/OrientationEventListener.html
+http://developer.android.com/reference/android/view/OrientationListener.html
+http://developer.android.com/reference/android/view/ScaleGestureDetector.SimpleOnScaleGestureListener.html
+http://developer.android.com/reference/android/view/SoundEffectConstants.html
+http://developer.android.com/reference/android/view/Surface.html
+http://developer.android.com/reference/android/view/VelocityTracker.html
+http://developer.android.com/reference/android/view/View.BaseSavedState.html
+http://developer.android.com/reference/android/view/ViewDebug.html
+http://developer.android.com/reference/android/view/ViewStub.html
+http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html
+http://developer.android.com/reference/android/view/ViewDebug.HierarchyTraceType.html
+http://developer.android.com/reference/android/view/ViewDebug.RecyclerTraceType.html
+http://developer.android.com/reference/android/view/InflateException.html
+http://developer.android.com/reference/android/view/Surface.OutOfResourcesException.html
+http://developer.android.com/reference/android/view/SurfaceHolder.BadSurfaceTypeException.html
+http://developer.android.com/reference/android/view/WindowManager.BadTokenException.html
 http://developer.android.com/resources/tutorials/views/hello-datepicker.html
-http://developer.android.com/resources/tutorials/views/hello-timepicker.html
-http://developer.android.com/reference/android/net/UrlQuerySanitizer.ValueSanitizer.html
-http://developer.android.com/reference/android/net/Credentials.html
-http://developer.android.com/reference/android/net/Proxy.html
-http://developer.android.com/reference/android/net/ParseException.html
-http://developer.android.com/reference/org/apache/http/client/params/AllClientPNames.html
-http://developer.android.com/reference/org/apache/http/client/params/ClientPNames.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.html
-http://developer.android.com/reference/javax/xml/transform/sax/TemplatesHandler.html
-http://developer.android.com/reference/javax/xml/transform/sax/TransformerHandler.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteCursorDriver.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteTransactionListener.html
-http://developer.android.com/reference/org/apache/http/protocol/ExecutionContext.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpExpectationVerifier.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpProcessor.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpRequestHandler.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpRequestHandlerResolver.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpRequestInterceptorList.html
-http://developer.android.com/reference/org/apache/http/protocol/HttpResponseInterceptorList.html
-http://developer.android.com/reference/org/apache/http/client/protocol/ClientContext.html
-http://developer.android.com/reference/javax/xml/transform/ErrorListener.html
-http://developer.android.com/reference/javax/xml/transform/Result.html
-http://developer.android.com/reference/javax/xml/transform/Source.html
-http://developer.android.com/reference/javax/xml/transform/URIResolver.html
+http://developer.android.com/reference/java/util/TimeZone.html
+http://developer.android.com/reference/android/util/TimeFormatException.html
+http://developer.android.com/resources/samples/BackupRestore/src/com/index.html
+http://developer.android.com/reference/android/util/Printer.html
+http://developer.android.com/reference/android/util/Base64.html
+http://developer.android.com/reference/android/util/Base64InputStream.html
+http://developer.android.com/reference/android/util/Base64OutputStream.html
+http://developer.android.com/reference/android/util/Config.html
+http://developer.android.com/reference/android/util/DebugUtils.html
+http://developer.android.com/reference/android/util/EventLog.html
+http://developer.android.com/reference/android/util/EventLog.Event.html
+http://developer.android.com/reference/android/util/EventLogTags.html
+http://developer.android.com/reference/android/util/EventLogTags.Description.html
+http://developer.android.com/reference/android/util/FloatMath.html
+http://developer.android.com/reference/android/util/LogPrinter.html
+http://developer.android.com/reference/android/util/MonthDisplayHelper.html
+http://developer.android.com/reference/android/util/Pair.html
+http://developer.android.com/reference/android/util/Patterns.html
+http://developer.android.com/reference/android/util/PrintStreamPrinter.html
+http://developer.android.com/reference/android/util/PrintWriterPrinter.html
+http://developer.android.com/reference/android/util/SparseBooleanArray.html
+http://developer.android.com/reference/android/util/SparseIntArray.html
+http://developer.android.com/reference/android/util/StateSet.html
+http://developer.android.com/reference/android/util/StringBuilderPrinter.html
+http://developer.android.com/reference/android/util/TimeUtils.html
+http://developer.android.com/reference/android/util/TimingLogger.html
+http://developer.android.com/reference/android/util/TypedValue.html
+http://developer.android.com/reference/android/util/Xml.html
+http://developer.android.com/reference/android/util/Xml.Encoding.html
+http://developer.android.com/reference/android/util/AndroidException.html
+http://developer.android.com/reference/android/util/AndroidRuntimeException.html
+http://developer.android.com/resources/samples/JetBoy/src/com/index.html
+http://developer.android.com/reference/android/text/method/MetaKeyKeyListener.html
+http://developer.android.com/reference/android/text/Spannable.html
+http://developer.android.com/reference/android/text/Editable.html
+http://developer.android.com/reference/android/os/Handler.Callback.html
+http://developer.android.com/reference/android/os/IBinder.DeathRecipient.html
+http://developer.android.com/reference/android/os/IInterface.html
+http://developer.android.com/reference/android/os/MessageQueue.IdleHandler.html
+http://developer.android.com/reference/android/os/RecoverySystem.ProgressListener.html
+http://developer.android.com/reference/android/os/AsyncTask.html
+http://developer.android.com/reference/android/os/BatteryManager.html
+http://developer.android.com/reference/android/os/Binder.html
+http://developer.android.com/reference/android/os/Build.VERSION.html
+http://developer.android.com/reference/android/os/Build.VERSION_CODES.html
+http://developer.android.com/reference/android/os/ConditionVariable.html
+http://developer.android.com/reference/android/os/CountDownTimer.html
+http://developer.android.com/reference/android/os/Debug.InstructionCount.html
+http://developer.android.com/reference/android/os/Debug.MemoryInfo.html
+http://developer.android.com/reference/android/os/DropBoxManager.Entry.html
+http://developer.android.com/reference/android/os/FileObserver.html
+http://developer.android.com/reference/android/os/HandlerThread.html
+http://developer.android.com/reference/android/os/MemoryFile.html
+http://developer.android.com/reference/android/os/Message.html
+http://developer.android.com/reference/android/os/MessageQueue.html
+http://developer.android.com/reference/android/os/Messenger.html
+http://developer.android.com/reference/android/os/ParcelFileDescriptor.AutoCloseInputStream.html
+http://developer.android.com/reference/android/os/ParcelFileDescriptor.AutoCloseOutputStream.html
+http://developer.android.com/reference/android/os/ParcelUuid.html
+http://developer.android.com/reference/android/os/PowerManager.WakeLock.html
+http://developer.android.com/reference/android/os/RecoverySystem.html
+http://developer.android.com/reference/android/os/RemoteCallbackList.html
+http://developer.android.com/reference/android/os/ResultReceiver.html
+http://developer.android.com/reference/android/os/StatFs.html
+http://developer.android.com/reference/android/os/StrictMode.ThreadPolicy.Builder.html
+http://developer.android.com/reference/android/os/StrictMode.VmPolicy.Builder.html
+http://developer.android.com/reference/android/os/TokenWatcher.html
+http://developer.android.com/reference/android/os/AsyncTask.Status.html
+http://developer.android.com/reference/android/os/BadParcelableException.html
+http://developer.android.com/reference/android/os/ParcelFormatException.html
+http://developer.android.com/reference/android/os/RemoteException.html
+http://developer.android.com/reference/org/apache/http/impl/auth/NTLMEngine.html
+http://developer.android.com/reference/org/apache/http/impl/auth/AuthSchemeBase.html
+http://developer.android.com/reference/org/apache/http/impl/auth/BasicScheme.html
+http://developer.android.com/reference/org/apache/http/impl/auth/BasicSchemeFactory.html
+http://developer.android.com/reference/org/apache/http/impl/auth/DigestScheme.html
+http://developer.android.com/reference/org/apache/http/impl/auth/DigestSchemeFactory.html
+http://developer.android.com/reference/org/apache/http/impl/auth/NTLMScheme.html
+http://developer.android.com/reference/org/apache/http/impl/auth/RFC2617Scheme.html
+http://developer.android.com/reference/org/apache/http/impl/auth/NTLMEngineException.html
+http://developer.android.com/reference/org/apache/http/impl/auth/UnsupportedDigestAlgorithmException.html
+http://developer.android.com/reference/android/text/TextWatcher.html
+http://developer.android.com/reference/android/telephony/cdma/CdmaCellLocation.html
+http://developer.android.com/reference/android/telephony/cdma/package-descr.html
+http://developer.android.com/resources/samples/BackupRestore/res/layout/index.html
+http://developer.android.com/resources/samples/BackupRestore/res/values/index.html
+http://developer.android.com/reference/java/util/AbstractSet.html
+http://developer.android.com/reference/java/util/AbstractCollection.html
+http://developer.android.com/reference/java/util/Comparator.html
+http://developer.android.com/reference/java/util/ConcurrentModificationException.html
+http://developer.android.com/reference/java/util/SortedSet.html
+http://developer.android.com/reference/java/lang/ClassCastException.html
+http://developer.android.com/reference/java/util/Collections.html
+http://developer.android.com/reference/java/util/NoSuchElementException.html
+http://developer.android.com/resources/samples/Spinner/res/layout/index.html
+http://developer.android.com/resources/samples/Spinner/res/values/index.html
+http://developer.android.com/reference/java/security/Principal.html
+http://developer.android.com/reference/java/security/Key.html
+http://developer.android.com/reference/java/security/spec/ECPoint.html
+http://developer.android.com/reference/java/security/spec/ECParameterSpec.html
+http://developer.android.com/reference/android/content/res/AssetFileDescriptor.html
+http://developer.android.com/reference/android/content/res/AssetFileDescriptor.AutoCloseInputStream.html
+http://developer.android.com/reference/android/content/res/AssetFileDescriptor.AutoCloseOutputStream.html
+http://developer.android.com/reference/android/content/res/AssetManager.AssetInputStream.html
+http://developer.android.com/reference/android/content/res/ColorStateList.html
+http://developer.android.com/reference/android/content/res/ObbInfo.html
+http://developer.android.com/reference/android/content/res/ObbScanner.html
+http://developer.android.com/reference/android/content/res/Resources.NotFoundException.html
+http://developer.android.com/reference/java/io/Reader.html
+http://developer.android.com/reference/android/content/DialogInterface.html
+http://developer.android.com/reference/org/apache/http/message/BasicHeaderIterator.html
+http://developer.android.com/reference/org/apache/http/message/BasicListHeaderIterator.html
 http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/TagViewer.html
 http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/NdefMessageParser.html
 http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/record/ParsedNdefRecord.html
@@ -3102,10 +2007,885 @@
 http://developer.android.com/resources/samples/NFCDemo/res/index.html
 http://developer.android.com/resources/samples/NFCDemo/src/index.html
 http://developer.android.com/resources/samples/NFCDemo/AndroidManifest.html
-http://developer.android.com/reference/junit/framework/Protectable.html
+http://developer.android.com/reference/java/lang/InternalError.html
+http://developer.android.com/reference/java/lang/Error.html
+http://developer.android.com/reference/java/lang/VirtualMachineError.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpUriRequest.html
+http://developer.android.com/reference/org/apache/http/message/HeaderGroup.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GLSurfaceViewActivity.html
+http://developer.android.com/reference/java/io/Writer.html
+http://developer.android.com/reference/java/io/OutputStream.html
+http://developer.android.com/reference/java/lang/Boolean.html
+http://developer.android.com/resources/tutorials/views/hello-gridview.html
+http://developer.android.com/reference/android/gesture/GestureOverlayView.OnGestureListener.html
+http://developer.android.com/reference/android/gesture/GestureOverlayView.OnGesturePerformedListener.html
+http://developer.android.com/reference/android/gesture/GestureOverlayView.OnGesturingListener.html
+http://developer.android.com/reference/android/gesture/Gesture.html
+http://developer.android.com/reference/android/gesture/GestureLibraries.html
+http://developer.android.com/reference/android/gesture/GestureLibrary.html
+http://developer.android.com/reference/android/gesture/GestureOverlayView.html
+http://developer.android.com/reference/android/gesture/GesturePoint.html
+http://developer.android.com/reference/android/gesture/GestureStore.html
+http://developer.android.com/reference/android/gesture/GestureStroke.html
+http://developer.android.com/reference/android/gesture/GestureUtils.html
+http://developer.android.com/reference/android/gesture/OrientedBoundingBox.html
+http://developer.android.com/reference/android/gesture/Prediction.html
+http://developer.android.com/reference/android/gesture/package-descr.html
+http://developer.android.com/reference/android/content/DialogInterface.OnCancelListener.html
+http://developer.android.com/reference/android/content/DialogInterface.OnClickListener.html
+http://developer.android.com/reference/android/content/DialogInterface.OnDismissListener.html
+http://developer.android.com/reference/android/content/DialogInterface.OnKeyListener.html
+http://developer.android.com/reference/android/content/DialogInterface.OnMultiChoiceClickListener.html
+http://developer.android.com/reference/android/content/DialogInterface.OnShowListener.html
+http://developer.android.com/reference/android/content/EntityIterator.html
+http://developer.android.com/reference/android/content/IntentSender.OnFinished.html
+http://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html
+http://developer.android.com/reference/android/content/SyncStatusObserver.html
+http://developer.android.com/reference/android/content/AbstractThreadedSyncAdapter.html
+http://developer.android.com/reference/android/content/AsyncQueryHandler.html
+http://developer.android.com/reference/android/content/AsyncQueryHandler.WorkerArgs.html
+http://developer.android.com/reference/android/content/AsyncQueryHandler.WorkerHandler.html
+http://developer.android.com/reference/android/content/ContentProviderClient.html
+http://developer.android.com/reference/android/content/ContentProviderOperation.html
+http://developer.android.com/reference/android/content/ContentProviderOperation.Builder.html
+http://developer.android.com/reference/android/content/ContentProviderResult.html
+http://developer.android.com/reference/android/content/ContentQueryMap.html
+http://developer.android.com/reference/android/content/Entity.html
+http://developer.android.com/reference/android/content/Entity.NamedContentValues.html
+http://developer.android.com/reference/android/content/Intent.FilterComparison.html
+http://developer.android.com/reference/android/content/IntentFilter.AuthorityEntry.html
+http://developer.android.com/reference/android/content/MutableContextWrapper.html
+http://developer.android.com/reference/android/content/PeriodicSync.html
+http://developer.android.com/reference/android/content/SyncAdapterType.html
+http://developer.android.com/reference/android/content/SyncContext.html
+http://developer.android.com/reference/android/content/SyncInfo.html
+http://developer.android.com/reference/android/content/SyncResult.html
+http://developer.android.com/reference/android/content/SyncStats.html
+http://developer.android.com/reference/android/content/UriMatcher.html
+http://developer.android.com/reference/android/content/ActivityNotFoundException.html
+http://developer.android.com/reference/android/content/IntentFilter.MalformedMimeTypeException.html
+http://developer.android.com/reference/android/content/IntentSender.SendIntentException.html
+http://developer.android.com/reference/android/content/OperationApplicationException.html
+http://developer.android.com/reference/android/content/ReceiverCallNotAllowedException.html
+http://developer.android.com/reference/java/lang/Byte.html
+http://developer.android.com/reference/java/lang/Double.html
+http://developer.android.com/reference/java/lang/Float.html
+http://developer.android.com/reference/java/lang/Integer.html
+http://developer.android.com/reference/java/lang/Long.html
+http://developer.android.com/reference/java/lang/Short.html
+http://developer.android.com/reference/java/util/Map.Entry.html
+http://developer.android.com/reference/java/lang/Number.html
+http://developer.android.com/reference/org/apache/http/auth/AuthScheme.html
+http://developer.android.com/reference/org/apache/http/client/AuthenticationHandler.html
+http://developer.android.com/reference/org/apache/http/auth/MalformedChallengeException.html
+http://developer.android.com/reference/java/lang/Appendable.html
+http://developer.android.com/reference/java/lang/Readable.html
+http://developer.android.com/reference/java/lang/Thread.UncaughtExceptionHandler.html
+http://developer.android.com/reference/java/lang/Character.html
+http://developer.android.com/reference/java/lang/Character.Subset.html
+http://developer.android.com/reference/java/lang/Character.UnicodeBlock.html
+http://developer.android.com/reference/java/lang/Compiler.html
+http://developer.android.com/reference/java/lang/InheritableThreadLocal.html
+http://developer.android.com/reference/java/lang/Math.html
+http://developer.android.com/reference/java/lang/Package.html
+http://developer.android.com/reference/java/lang/Process.html
+http://developer.android.com/reference/java/lang/ProcessBuilder.html
+http://developer.android.com/reference/java/lang/Runtime.html
+http://developer.android.com/reference/java/lang/RuntimePermission.html
+http://developer.android.com/reference/java/lang/SecurityManager.html
+http://developer.android.com/reference/java/lang/StrictMath.html
+http://developer.android.com/reference/java/lang/StringBuffer.html
+http://developer.android.com/reference/java/lang/StringBuilder.html
+http://developer.android.com/reference/java/lang/System.html
+http://developer.android.com/reference/java/lang/ThreadGroup.html
+http://developer.android.com/reference/java/lang/ThreadLocal.html
+http://developer.android.com/reference/java/lang/Void.html
+http://developer.android.com/reference/java/lang/Thread.State.html
+http://developer.android.com/reference/java/lang/ArithmeticException.html
+http://developer.android.com/reference/java/lang/ArrayIndexOutOfBoundsException.html
+http://developer.android.com/reference/java/lang/ArrayStoreException.html
+http://developer.android.com/reference/java/lang/ClassNotFoundException.html
+http://developer.android.com/reference/java/lang/CloneNotSupportedException.html
+http://developer.android.com/reference/java/lang/EnumConstantNotPresentException.html
+http://developer.android.com/reference/java/lang/IllegalAccessException.html
+http://developer.android.com/reference/java/lang/IllegalThreadStateException.html
+http://developer.android.com/reference/java/lang/InstantiationException.html
+http://developer.android.com/reference/java/lang/NegativeArraySizeException.html
+http://developer.android.com/reference/java/lang/NoSuchFieldException.html
+http://developer.android.com/reference/java/lang/NoSuchMethodException.html
+http://developer.android.com/reference/java/lang/NumberFormatException.html
+http://developer.android.com/reference/java/lang/StringIndexOutOfBoundsException.html
+http://developer.android.com/reference/java/lang/TypeNotPresentException.html
+http://developer.android.com/reference/java/lang/AbstractMethodError.html
+http://developer.android.com/reference/java/lang/AssertionError.html
+http://developer.android.com/reference/java/lang/ClassCircularityError.html
+http://developer.android.com/reference/java/lang/ClassFormatError.html
+http://developer.android.com/reference/java/lang/ExceptionInInitializerError.html
+http://developer.android.com/reference/java/lang/IllegalAccessError.html
+http://developer.android.com/reference/java/lang/IncompatibleClassChangeError.html
+http://developer.android.com/reference/java/lang/InstantiationError.html
+http://developer.android.com/reference/java/lang/LinkageError.html
+http://developer.android.com/reference/java/lang/NoClassDefFoundError.html
+http://developer.android.com/reference/java/lang/NoSuchFieldError.html
+http://developer.android.com/reference/java/lang/NoSuchMethodError.html
+http://developer.android.com/reference/java/lang/OutOfMemoryError.html
+http://developer.android.com/reference/java/lang/StackOverflowError.html
+http://developer.android.com/reference/java/lang/ThreadDeath.html
+http://developer.android.com/reference/java/lang/UnknownError.html
+http://developer.android.com/reference/java/lang/UnsatisfiedLinkError.html
+http://developer.android.com/reference/java/lang/UnsupportedClassVersionError.html
+http://developer.android.com/reference/java/lang/VerifyError.html
+http://developer.android.com/reference/java/nio/charset/IllegalCharsetNameException.html
+http://developer.android.com/reference/java/util/IllegalFormatException.html
+http://developer.android.com/reference/java/security/InvalidParameterException.html
+http://developer.android.com/reference/java/nio/charset/UnsupportedCharsetException.html
+http://developer.android.com/reference/java/util/DuplicateFormatFlagsException.html
+http://developer.android.com/reference/java/util/FormatFlagsConversionMismatchException.html
+http://developer.android.com/reference/java/util/IllegalFormatCodePointException.html
+http://developer.android.com/reference/java/util/IllegalFormatConversionException.html
+http://developer.android.com/reference/java/util/IllegalFormatFlagsException.html
+http://developer.android.com/reference/java/util/IllegalFormatPrecisionException.html
+http://developer.android.com/reference/java/util/IllegalFormatWidthException.html
+http://developer.android.com/reference/java/util/MissingFormatArgumentException.html
+http://developer.android.com/reference/java/util/MissingFormatWidthException.html
+http://developer.android.com/reference/java/util/UnknownFormatConversionException.html
+http://developer.android.com/reference/java/util/UnknownFormatFlagsException.html
+http://developer.android.com/reference/java/util/Locale.html
+http://developer.android.com/reference/java/security/GeneralSecurityException.html
+http://developer.android.com/reference/java/io/FileNotFoundException.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/PoolEntryRequest.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/RefQueueHandler.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/AbstractConnPool.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/BasicPoolEntryRef.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/RefQueueWorker.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/RouteSpecificPool.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/WaitingThread.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/WaitingThreadAborter.html
+http://developer.android.com/reference/org/apache/http/cookie/params/CookieSpecPNames.html
+http://developer.android.com/reference/org/apache/http/cookie/params/CookieSpecParamBean.html
+http://developer.android.com/reference/org/apache/http/cookie/params/package-descr.html
+http://developer.android.com/reference/org/apache/http/impl/AbstractHttpClientConnection.html
+http://developer.android.com/reference/org/apache/http/impl/AbstractHttpServerConnection.html
+http://developer.android.com/reference/org/apache/http/impl/DefaultHttpClientConnection.html
+http://developer.android.com/reference/org/apache/http/impl/DefaultHttpServerConnection.html
+http://developer.android.com/reference/org/apache/http/impl/SocketHttpClientConnection.html
+http://developer.android.com/reference/org/apache/http/impl/SocketHttpServerConnection.html
+http://developer.android.com/reference/org/apache/http/io/SessionOutputBuffer.html
+http://developer.android.com/reference/java/security/spec/DSAParameterSpec.html
+http://developer.android.com/reference/java/nio/ByteOrder.html
+http://developer.android.com/reference/java/nio/CharBuffer.html
+http://developer.android.com/reference/java/nio/DoubleBuffer.html
+http://developer.android.com/reference/java/nio/LongBuffer.html
+http://developer.android.com/reference/java/nio/MappedByteBuffer.html
+http://developer.android.com/reference/java/nio/ShortBuffer.html
+http://developer.android.com/reference/java/nio/BufferOverflowException.html
+http://developer.android.com/reference/java/nio/BufferUnderflowException.html
+http://developer.android.com/reference/java/nio/InvalidMarkException.html
+http://developer.android.com/reference/java/nio/ReadOnlyBufferException.html
+http://developer.android.com/reference/android/graphics/AvoidXfermode.html
+http://developer.android.com/reference/android/graphics/BitmapFactory.html
+http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html
+http://developer.android.com/reference/android/graphics/BitmapShader.html
+http://developer.android.com/reference/android/graphics/BlurMaskFilter.html
+http://developer.android.com/reference/android/graphics/Camera.html
+http://developer.android.com/reference/android/graphics/Color.html
+http://developer.android.com/reference/android/graphics/ColorFilter.html
+http://developer.android.com/reference/android/graphics/ColorMatrix.html
+http://developer.android.com/reference/android/graphics/ColorMatrixColorFilter.html
+http://developer.android.com/reference/android/graphics/ComposePathEffect.html
+http://developer.android.com/reference/android/graphics/ComposeShader.html
+http://developer.android.com/reference/android/graphics/CornerPathEffect.html
+http://developer.android.com/reference/android/graphics/DashPathEffect.html
+http://developer.android.com/reference/android/graphics/DiscretePathEffect.html
+http://developer.android.com/reference/android/graphics/DrawFilter.html
+http://developer.android.com/reference/android/graphics/EmbossMaskFilter.html
+http://developer.android.com/reference/android/graphics/Interpolator.html
+http://developer.android.com/reference/android/graphics/LayerRasterizer.html
+http://developer.android.com/reference/android/graphics/LightingColorFilter.html
+http://developer.android.com/reference/android/graphics/LinearGradient.html
+http://developer.android.com/reference/android/graphics/MaskFilter.html
+http://developer.android.com/reference/android/graphics/Matrix.html
+http://developer.android.com/reference/android/graphics/Movie.html
+http://developer.android.com/reference/android/graphics/Paint.html
+http://developer.android.com/reference/android/graphics/Paint.FontMetrics.html
+http://developer.android.com/reference/android/graphics/Paint.FontMetricsInt.html
+http://developer.android.com/reference/android/graphics/PaintFlagsDrawFilter.html
+http://developer.android.com/reference/android/graphics/Path.html
+http://developer.android.com/reference/android/graphics/PathDashPathEffect.html
+http://developer.android.com/reference/android/graphics/PathEffect.html
+http://developer.android.com/reference/android/graphics/PathMeasure.html
+http://developer.android.com/reference/android/graphics/Picture.html
+http://developer.android.com/reference/android/graphics/PixelFormat.html
+http://developer.android.com/reference/android/graphics/PixelXorXfermode.html
+http://developer.android.com/reference/android/graphics/PointF.html
+http://developer.android.com/reference/android/graphics/PorterDuff.html
+http://developer.android.com/reference/android/graphics/PorterDuffColorFilter.html
+http://developer.android.com/reference/android/graphics/PorterDuffXfermode.html
+http://developer.android.com/reference/android/graphics/RadialGradient.html
+http://developer.android.com/reference/android/graphics/Rasterizer.html
+http://developer.android.com/reference/android/graphics/RectF.html
+http://developer.android.com/reference/android/graphics/RegionIterator.html
+http://developer.android.com/reference/android/graphics/Shader.html
+http://developer.android.com/reference/android/graphics/SumPathEffect.html
+http://developer.android.com/reference/android/graphics/SweepGradient.html
+http://developer.android.com/reference/android/graphics/Typeface.html
+http://developer.android.com/reference/android/graphics/Xfermode.html
+http://developer.android.com/reference/android/graphics/AvoidXfermode.Mode.html
+http://developer.android.com/reference/android/graphics/Bitmap.CompressFormat.html
+http://developer.android.com/reference/android/graphics/Bitmap.Config.html
+http://developer.android.com/reference/android/graphics/BlurMaskFilter.Blur.html
+http://developer.android.com/reference/android/graphics/Canvas.EdgeType.html
+http://developer.android.com/reference/android/graphics/Canvas.VertexMode.html
+http://developer.android.com/reference/android/graphics/Interpolator.Result.html
+http://developer.android.com/reference/android/graphics/Matrix.ScaleToFit.html
+http://developer.android.com/reference/android/graphics/Paint.Align.html
+http://developer.android.com/reference/android/graphics/Paint.Cap.html
+http://developer.android.com/reference/android/graphics/Paint.Join.html
+http://developer.android.com/reference/android/graphics/Paint.Style.html
+http://developer.android.com/reference/android/graphics/Path.Direction.html
+http://developer.android.com/reference/android/graphics/Path.FillType.html
+http://developer.android.com/reference/android/graphics/PathDashPathEffect.Style.html
+http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
+http://developer.android.com/reference/android/graphics/Region.Op.html
+http://developer.android.com/reference/android/graphics/Shader.TileMode.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicInteger.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicIntegerArray.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicLong.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicLongArray.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicLongFieldUpdater.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicMarkableReference.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicReference.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicReferenceArray.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.html
+http://developer.android.com/reference/java/util/concurrent/atomic/AtomicStampedReference.html
+http://developer.android.com/reference/java/util/concurrent/atomic/package-descr.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/src/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/AndroidManifest.html
+http://developer.android.com/reference/android/net/wifi/ScanResult.html
+http://developer.android.com/reference/android/net/wifi/WifiConfiguration.html
+http://developer.android.com/reference/android/net/wifi/WifiConfiguration.AuthAlgorithm.html
+http://developer.android.com/reference/android/net/wifi/WifiConfiguration.GroupCipher.html
+http://developer.android.com/reference/android/net/wifi/WifiConfiguration.KeyMgmt.html
+http://developer.android.com/reference/android/net/wifi/WifiConfiguration.PairwiseCipher.html
+http://developer.android.com/reference/android/net/wifi/WifiConfiguration.Protocol.html
+http://developer.android.com/reference/android/net/wifi/WifiConfiguration.Status.html
+http://developer.android.com/reference/android/net/wifi/WifiInfo.html
+http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html
+http://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html
+http://developer.android.com/reference/android/net/wifi/SupplicantState.html
+http://developer.android.com/reference/android/net/NetworkInfo.html
+http://developer.android.com/reference/android/net/DhcpInfo.html
+http://developer.android.com/reference/java/text/AttributedCharacterIterator.html
+http://developer.android.com/reference/java/text/CharacterIterator.html
+http://developer.android.com/reference/java/text/Annotation.html
+http://developer.android.com/reference/java/text/AttributedCharacterIterator.Attribute.html
+http://developer.android.com/reference/java/text/AttributedString.html
+http://developer.android.com/reference/java/text/Bidi.html
+http://developer.android.com/reference/java/text/BreakIterator.html
+http://developer.android.com/reference/java/text/ChoiceFormat.html
+http://developer.android.com/reference/java/text/CollationElementIterator.html
+http://developer.android.com/reference/java/text/CollationKey.html
+http://developer.android.com/reference/java/text/Collator.html
+http://developer.android.com/reference/java/text/DateFormat.Field.html
+http://developer.android.com/reference/java/text/DateFormatSymbols.html
+http://developer.android.com/reference/java/text/DecimalFormat.html
+http://developer.android.com/reference/java/text/DecimalFormatSymbols.html
+http://developer.android.com/reference/java/text/FieldPosition.html
+http://developer.android.com/reference/java/text/Format.html
+http://developer.android.com/reference/java/text/Format.Field.html
+http://developer.android.com/reference/java/text/MessageFormat.html
+http://developer.android.com/reference/java/text/MessageFormat.Field.html
+http://developer.android.com/reference/java/text/NumberFormat.html
+http://developer.android.com/reference/java/text/NumberFormat.Field.html
+http://developer.android.com/reference/java/text/ParsePosition.html
+http://developer.android.com/reference/java/text/RuleBasedCollator.html
+http://developer.android.com/reference/java/text/SimpleDateFormat.html
+http://developer.android.com/reference/java/text/StringCharacterIterator.html
+http://developer.android.com/reference/java/text/ParseException.html
+http://developer.android.com/reference/android/text/GetChars.html
+http://developer.android.com/reference/android/text/Html.ImageGetter.html
+http://developer.android.com/reference/android/text/Html.TagHandler.html
+http://developer.android.com/reference/android/text/InputFilter.html
+http://developer.android.com/reference/android/text/InputType.html
+http://developer.android.com/reference/android/text/NoCopySpan.html
+http://developer.android.com/reference/android/text/ParcelableSpan.html
+http://developer.android.com/reference/android/text/Spanned.html
+http://developer.android.com/reference/android/text/SpanWatcher.html
+http://developer.android.com/reference/android/text/TextUtils.EllipsizeCallback.html
+http://developer.android.com/reference/android/text/TextUtils.StringSplitter.html
+http://developer.android.com/reference/android/text/AlteredCharSequence.html
+http://developer.android.com/reference/android/text/AndroidCharacter.html
+http://developer.android.com/reference/android/text/Annotation.html
+http://developer.android.com/reference/android/text/AutoText.html
+http://developer.android.com/reference/android/text/BoringLayout.html
+http://developer.android.com/reference/android/text/BoringLayout.Metrics.html
+http://developer.android.com/reference/android/text/DynamicLayout.html
+http://developer.android.com/reference/android/text/Editable.Factory.html
+http://developer.android.com/reference/android/text/Html.html
+http://developer.android.com/reference/android/text/InputFilter.AllCaps.html
+http://developer.android.com/reference/android/text/InputFilter.LengthFilter.html
+http://developer.android.com/reference/android/text/Layout.html
+http://developer.android.com/reference/android/text/Layout.Directions.html
+http://developer.android.com/reference/android/text/LoginFilter.html
+http://developer.android.com/reference/android/text/LoginFilter.PasswordFilterGMail.html
+http://developer.android.com/reference/android/text/LoginFilter.UsernameFilterGeneric.html
+http://developer.android.com/reference/android/text/LoginFilter.UsernameFilterGMail.html
+http://developer.android.com/reference/android/text/NoCopySpan.Concrete.html
+http://developer.android.com/reference/android/text/Selection.html
+http://developer.android.com/reference/android/text/Spannable.Factory.html
+http://developer.android.com/reference/android/text/SpannableString.html
+http://developer.android.com/reference/android/text/SpannableStringBuilder.html
+http://developer.android.com/reference/android/text/SpannedString.html
+http://developer.android.com/reference/android/text/StaticLayout.html
+http://developer.android.com/reference/android/text/TextPaint.html
+http://developer.android.com/reference/android/text/TextUtils.SimpleStringSplitter.html
+http://developer.android.com/reference/android/text/Layout.Alignment.html
+http://developer.android.com/reference/android/text/TextUtils.TruncateAt.html
+http://developer.android.com/reference/java/io/Closeable.html
+http://developer.android.com/reference/java/io/ByteArrayOutputStream.html
+http://developer.android.com/reference/org/xml/sax/ext/DefaultHandler2.html
+http://developer.android.com/reference/javax/xml/transform/sax/TemplatesHandler.html
+http://developer.android.com/reference/javax/xml/transform/sax/TransformerHandler.html
+http://developer.android.com/reference/org/xml/sax/helpers/XMLReaderAdapter.html
+http://developer.android.com/reference/org/xml/sax/ext/LexicalHandler.html
+http://developer.android.com/reference/org/xml/sax/ext/DeclHandler.html
+http://developer.android.com/reference/org/xml/sax/ext/EntityResolver2.html
+http://developer.android.com/reference/org/xml/sax/helpers/AttributesImpl.html
+http://developer.android.com/reference/java/io/DataInput.html
+http://developer.android.com/reference/java/io/DataOutput.html
+http://developer.android.com/reference/java/io/Externalizable.html
+http://developer.android.com/reference/java/io/FileFilter.html
+http://developer.android.com/reference/java/io/FilenameFilter.html
+http://developer.android.com/reference/java/io/Flushable.html
+http://developer.android.com/reference/java/io/ObjectInput.html
+http://developer.android.com/reference/java/io/ObjectInputValidation.html
+http://developer.android.com/reference/java/io/ObjectOutput.html
+http://developer.android.com/reference/java/io/ObjectStreamConstants.html
+http://developer.android.com/reference/java/io/BufferedInputStream.html
+http://developer.android.com/reference/java/io/BufferedOutputStream.html
+http://developer.android.com/reference/java/io/BufferedReader.html
+http://developer.android.com/reference/java/io/BufferedWriter.html
+http://developer.android.com/reference/java/io/ByteArrayInputStream.html
+http://developer.android.com/reference/java/io/CharArrayReader.html
+http://developer.android.com/reference/java/io/CharArrayWriter.html
+http://developer.android.com/reference/java/io/Console.html
+http://developer.android.com/reference/java/io/DataInputStream.html
+http://developer.android.com/reference/java/io/DataOutputStream.html
+http://developer.android.com/reference/java/io/FilePermission.html
+http://developer.android.com/reference/java/io/FileReader.html
+http://developer.android.com/reference/java/io/FileWriter.html
+http://developer.android.com/reference/java/io/FilterInputStream.html
+http://developer.android.com/reference/java/io/FilterOutputStream.html
+http://developer.android.com/reference/java/io/FilterReader.html
+http://developer.android.com/reference/java/io/FilterWriter.html
+http://developer.android.com/reference/java/io/InputStreamReader.html
+http://developer.android.com/reference/java/io/LineNumberInputStream.html
+http://developer.android.com/reference/java/io/LineNumberReader.html
+http://developer.android.com/reference/java/io/ObjectInputStream.html
+http://developer.android.com/reference/java/io/ObjectInputStream.GetField.html
+http://developer.android.com/reference/java/io/ObjectOutputStream.html
+http://developer.android.com/reference/java/io/ObjectOutputStream.PutField.html
+http://developer.android.com/reference/java/io/ObjectStreamClass.html
+http://developer.android.com/reference/java/io/ObjectStreamField.html
+http://developer.android.com/reference/java/io/OutputStreamWriter.html
+http://developer.android.com/reference/java/io/PipedInputStream.html
+http://developer.android.com/reference/java/io/PipedOutputStream.html
+http://developer.android.com/reference/java/io/PipedReader.html
+http://developer.android.com/reference/java/io/PipedWriter.html
+http://developer.android.com/reference/java/io/PushbackInputStream.html
+http://developer.android.com/reference/java/io/PushbackReader.html
+http://developer.android.com/reference/java/io/RandomAccessFile.html
+http://developer.android.com/reference/java/io/SequenceInputStream.html
+http://developer.android.com/reference/java/io/SerializablePermission.html
+http://developer.android.com/reference/java/io/StreamTokenizer.html
+http://developer.android.com/reference/java/io/StringBufferInputStream.html
+http://developer.android.com/reference/java/io/StringReader.html
+http://developer.android.com/reference/java/io/StringWriter.html
+http://developer.android.com/reference/java/io/CharConversionException.html
+http://developer.android.com/reference/java/io/EOFException.html
+http://developer.android.com/reference/java/io/InvalidClassException.html
+http://developer.android.com/reference/java/io/InvalidObjectException.html
+http://developer.android.com/reference/java/io/NotActiveException.html
+http://developer.android.com/reference/java/io/NotSerializableException.html
+http://developer.android.com/reference/java/io/ObjectStreamException.html
+http://developer.android.com/reference/java/io/OptionalDataException.html
+http://developer.android.com/reference/java/io/StreamCorruptedException.html
+http://developer.android.com/reference/java/io/SyncFailedException.html
+http://developer.android.com/reference/java/io/UnsupportedEncodingException.html
+http://developer.android.com/reference/java/io/UTFDataFormatException.html
+http://developer.android.com/reference/java/io/WriteAbortedException.html
+http://developer.android.com/reference/java/io/IOError.html
+http://developer.android.com/reference/java/nio/charset/CharacterCodingException.html
+http://developer.android.com/reference/org/apache/http/client/ClientProtocolException.html
+http://developer.android.com/reference/java/util/InvalidPropertiesFormatException.html
+http://developer.android.com/reference/javax/net/ssl/SSLException.html
+http://developer.android.com/reference/org/apache/http/client/HttpResponseException.html
+http://developer.android.com/reference/java/util/jar/JarException.html
+http://developer.android.com/reference/java/nio/charset/MalformedInputException.html
+http://developer.android.com/reference/javax/net/ssl/SSLHandshakeException.html
+http://developer.android.com/reference/javax/net/ssl/SSLKeyException.html
+http://developer.android.com/reference/javax/net/ssl/SSLPeerUnverifiedException.html
+http://developer.android.com/reference/javax/net/ssl/SSLProtocolException.html
+http://developer.android.com/reference/java/nio/charset/UnmappableCharacterException.html
+http://developer.android.com/reference/javax/security/auth/login/LoginException.html
+http://developer.android.com/reference/javax/security/auth/login/package-descr.html
+http://developer.android.com/sdk/api_diff/8/changes/jdiff_topleftframe.html
+http://developer.android.com/sdk/api_diff/8/changes/alldiffs_index_all.html
+http://developer.android.com/sdk/api_diff/8/changes/changes-summary.html
+http://developer.android.com/reference/android/location/LocationProvider.html
+http://developer.android.com/reference/org/xml/sax/helpers/AttributeListImpl.html
+http://developer.android.com/reference/org/xml/sax/helpers/LocatorImpl.html
+http://developer.android.com/reference/org/xml/sax/helpers/NamespaceSupport.html
+http://developer.android.com/reference/org/xml/sax/helpers/ParserAdapter.html
+http://developer.android.com/reference/org/xml/sax/helpers/ParserFactory.html
+http://developer.android.com/reference/org/xml/sax/helpers/XMLReaderFactory.html
+http://developer.android.com/reference/org/xml/sax/helpers/package-descr.html
+http://developer.android.com/sdk/api_diff/3/changes/jdiff_topleftframe.html
+http://developer.android.com/sdk/api_diff/3/changes/alldiffs_index_all.html
+http://developer.android.com/sdk/api_diff/3/changes/changes-summary.html
+http://developer.android.com/resources/samples/AccessibilityService/src/com/index.html
+http://developer.android.com/reference/dalvik/system/DexClassLoader.html
+http://developer.android.com/reference/dalvik/system/DexFile.html
+http://developer.android.com/reference/dalvik/system/PathClassLoader.html
+http://developer.android.com/reference/dalvik/system/package-descr.html
+http://developer.android.com/reference/org/apache/http/params/CoreConnectionPNames.html
+http://developer.android.com/reference/org/apache/http/params/CoreProtocolPNames.html
+http://developer.android.com/reference/org/apache/http/params/AbstractHttpParams.html
+http://developer.android.com/reference/org/apache/http/params/BasicHttpParams.html
+http://developer.android.com/reference/org/apache/http/params/DefaultedHttpParams.html
+http://developer.android.com/reference/org/apache/http/params/HttpAbstractParamBean.html
+http://developer.android.com/reference/org/apache/http/params/HttpConnectionParamBean.html
+http://developer.android.com/reference/org/apache/http/params/HttpConnectionParams.html
+http://developer.android.com/reference/org/apache/http/params/HttpProtocolParamBean.html
+http://developer.android.com/reference/org/apache/http/params/HttpProtocolParams.html
+http://developer.android.com/reference/javax/net/ssl/HttpsURLConnection.html
+http://developer.android.com/reference/java/security/Permission.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnConnectionPNames.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnManagerPNames.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnPerRoute.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnRoutePNames.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnConnectionParamBean.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnManagerParamBean.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnManagerParams.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnPerRouteBean.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnRouteParamBean.html
+http://developer.android.com/reference/org/apache/http/conn/params/ConnRouteParams.html
+http://developer.android.com/reference/org/apache/http/conn/params/package-descr.html
+http://developer.android.com/reference/android/text/method/MovementMethod.html
+http://developer.android.com/reference/android/text/method/KeyListener.html
+http://developer.android.com/reference/android/text/method/LinkMovementMethod.html
+http://developer.android.com/reference/android/text/method/TransformationMethod.html
+http://developer.android.com/reference/android/text/style/URLSpan.html
+http://developer.android.com/reference/org/apache/http/auth/Credentials.html
+http://developer.android.com/reference/org/apache/http/util/CharArrayBuffer.html
+http://developer.android.com/reference/org/apache/http/auth/AuthenticationException.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/AbstractCookieAttributeHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/AbstractCookieSpec.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BasicClientCookie.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BasicClientCookie2.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BasicCommentHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BasicDomainHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BasicExpiresHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BasicMaxAgeHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BasicPathHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BasicSecureHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BestMatchSpec.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BestMatchSpecFactory.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BrowserCompatSpec.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/BrowserCompatSpecFactory.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/CookieSpecBase.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/DateUtils.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDomainHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDraftHeaderParser.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDraftSpec.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDraftSpecFactory.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109DomainHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109Spec.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109SpecFactory.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109VersionHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965CommentUrlAttributeHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965DiscardAttributeHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965DomainAttributeHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965PortAttributeHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965Spec.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965SpecFactory.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965VersionAttributeHandler.html
+http://developer.android.com/reference/org/apache/http/impl/cookie/DateParseException.html
+http://developer.android.com/reference/org/apache/http/cookie/CookieAttributeHandler.html
+http://developer.android.com/reference/android/webkit/DownloadListener.html
+http://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback.html
+http://developer.android.com/reference/android/webkit/Plugin.PreferencesClickHandler.html
+http://developer.android.com/reference/android/webkit/PluginStub.html
+http://developer.android.com/reference/android/webkit/UrlInterceptHandler.html
+http://developer.android.com/reference/android/webkit/ValueCallback.html
+http://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback.html
+http://developer.android.com/reference/android/webkit/WebIconDatabase.IconListener.html
+http://developer.android.com/reference/android/webkit/WebStorage.QuotaUpdater.html
+http://developer.android.com/reference/android/webkit/WebView.PictureListener.html
+http://developer.android.com/reference/android/webkit/CacheManager.html
+http://developer.android.com/reference/android/webkit/CacheManager.CacheResult.html
+http://developer.android.com/reference/android/webkit/CookieManager.html
+http://developer.android.com/reference/android/webkit/CookieSyncManager.html
+http://developer.android.com/reference/android/webkit/DateSorter.html
+http://developer.android.com/reference/android/webkit/HttpAuthHandler.html
+http://developer.android.com/reference/android/webkit/JsPromptResult.html
+http://developer.android.com/reference/android/webkit/JsResult.html
+http://developer.android.com/reference/android/webkit/MimeTypeMap.html
+http://developer.android.com/reference/android/webkit/Plugin.html
+http://developer.android.com/reference/android/webkit/PluginData.html
+http://developer.android.com/reference/android/webkit/PluginList.html
+http://developer.android.com/reference/android/webkit/SslErrorHandler.html
+http://developer.android.com/reference/android/webkit/UrlInterceptRegistry.html
+http://developer.android.com/reference/android/webkit/URLUtil.html
+http://developer.android.com/reference/android/webkit/WebBackForwardList.html
+http://developer.android.com/reference/android/webkit/WebHistoryItem.html
+http://developer.android.com/reference/android/webkit/WebIconDatabase.html
+http://developer.android.com/reference/android/webkit/WebView.HitTestResult.html
+http://developer.android.com/reference/android/webkit/WebView.WebViewTransport.html
+http://developer.android.com/reference/android/webkit/WebViewDatabase.html
+http://developer.android.com/reference/android/webkit/WebSettings.LayoutAlgorithm.html
+http://developer.android.com/reference/android/webkit/WebSettings.PluginState.html
+http://developer.android.com/reference/android/webkit/WebSettings.RenderPriority.html
+http://developer.android.com/reference/android/webkit/WebSettings.TextSize.html
+http://developer.android.com/reference/android/webkit/WebSettings.ZoomDensity.html
+http://developer.android.com/reference/org/apache/http/impl/DefaultConnectionReuseStrategy.html
+http://developer.android.com/reference/org/apache/http/impl/DefaultHttpRequestFactory.html
+http://developer.android.com/reference/org/apache/http/impl/DefaultHttpResponseFactory.html
+http://developer.android.com/reference/org/apache/http/impl/EnglishReasonPhraseCatalog.html
+http://developer.android.com/reference/org/apache/http/impl/HttpConnectionMetricsImpl.html
+http://developer.android.com/reference/org/apache/http/impl/NoConnectionReuseStrategy.html
+http://developer.android.com/reference/org/apache/http/impl/package-descr.html
+http://developer.android.com/reference/org/apache/http/message/BasicHttpEntityEnclosingRequest.html
+http://developer.android.com/reference/org/apache/http/message/BasicHttpRequest.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpDelete.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpEntityEnclosingRequestBase.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpGet.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpHead.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpOptions.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpPost.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpPut.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpRequestBase.html
+http://developer.android.com/reference/org/apache/http/client/methods/HttpTrace.html
+http://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel.html
+http://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel.html
+http://developer.android.com/reference/java/nio/channels/spi/SelectorProvider.html
+http://developer.android.com/reference/java/security/InvalidAlgorithmParameterException.html
+http://developer.android.com/reference/org/apache/http/impl/io/ChunkedOutputStream.html
+http://developer.android.com/reference/org/apache/http/impl/io/ContentLengthOutputStream.html
+http://developer.android.com/reference/org/apache/http/impl/io/IdentityOutputStream.html
+http://developer.android.com/reference/javax/crypto/CipherOutputStream.html
+http://developer.android.com/reference/java/security/DigestOutputStream.html
+http://developer.android.com/reference/java/util/jar/JarOutputStream.html
+http://developer.android.com/reference/javax/xml/package-descr.html
+http://developer.android.com/reference/org/apache/http/conn/routing/HttpRouteDirector.html
+http://developer.android.com/reference/org/apache/http/conn/routing/RouteInfo.html
+http://developer.android.com/reference/org/apache/http/conn/routing/BasicRouteDirector.html
+http://developer.android.com/reference/org/apache/http/conn/routing/RouteInfo.LayerType.html
+http://developer.android.com/reference/org/apache/http/conn/routing/RouteInfo.TunnelType.html
+http://developer.android.com/reference/android/text/style/AbsoluteSizeSpan.html
+http://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceInfo.html
+http://developer.android.com/reference/android/accounts/Account.html
+http://developer.android.com/reference/android/accounts/AccountAuthenticatorResponse.html
+http://developer.android.com/reference/android/location/Address.html
+http://developer.android.com/reference/android/text/style/AlignmentSpan.Standard.html
+http://developer.android.com/reference/android/accounts/AuthenticatorDescription.html
+http://developer.android.com/reference/android/text/style/BackgroundColorSpan.html
+http://developer.android.com/reference/android/bluetooth/BluetoothClass.html
+http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html
+http://developer.android.com/reference/android/text/style/BulletSpan.html
+http://developer.android.com/reference/android/text/style/ForegroundColorSpan.html
+http://developer.android.com/reference/android/text/style/LeadingMarginSpan.Standard.html
+http://developer.android.com/reference/android/location/Location.html
+http://developer.android.com/reference/android/text/style/QuoteSpan.html
+http://developer.android.com/reference/android/text/style/RelativeSizeSpan.html
+http://developer.android.com/reference/android/text/style/ScaleXSpan.html
+http://developer.android.com/reference/android/text/style/StrikethroughSpan.html
+http://developer.android.com/reference/android/text/style/StyleSpan.html
+http://developer.android.com/reference/android/text/style/SubscriptSpan.html
+http://developer.android.com/reference/android/text/style/SuperscriptSpan.html
+http://developer.android.com/reference/android/text/style/TextAppearanceSpan.html
+http://developer.android.com/reference/android/text/style/TypefaceSpan.html
+http://developer.android.com/reference/android/text/style/UnderlineSpan.html
+http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html
+http://developer.android.com/reference/java/util/UUID.html
+http://developer.android.com/reference/android/inputmethodservice/KeyboardView.html
+http://developer.android.com/reference/android/inputmethodservice/Keyboard.html
+http://developer.android.com/reference/android/appwidget/AppWidgetHostView.html
+http://developer.android.com/reference/android/inputmethodservice/ExtractEditText.html
+http://developer.android.com/reference/android/inputmethodservice/AbstractInputMethodService.html
+http://developer.android.com/reference/android/accounts/AccountAuthenticatorActivity.html
+http://developer.android.com/reference/android/text/method/CharacterPickerDialog.html
+http://developer.android.com/reference/java/util/logging/Filter.html
+http://developer.android.com/reference/java/util/logging/LoggingMXBean.html
+http://developer.android.com/reference/java/util/logging/ConsoleHandler.html
+http://developer.android.com/reference/java/util/logging/ErrorManager.html
+http://developer.android.com/reference/java/util/logging/FileHandler.html
+http://developer.android.com/reference/java/util/logging/Formatter.html
+http://developer.android.com/reference/java/util/logging/Handler.html
+http://developer.android.com/reference/java/util/logging/Level.html
+http://developer.android.com/reference/java/util/logging/Logger.html
+http://developer.android.com/reference/java/util/logging/LoggingPermission.html
+http://developer.android.com/reference/java/util/logging/LogManager.html
+http://developer.android.com/reference/java/util/logging/LogRecord.html
+http://developer.android.com/reference/java/util/logging/MemoryHandler.html
+http://developer.android.com/reference/java/util/logging/SimpleFormatter.html
+http://developer.android.com/reference/java/util/logging/SocketHandler.html
+http://developer.android.com/reference/java/util/logging/StreamHandler.html
+http://developer.android.com/reference/java/util/logging/XMLFormatter.html
+http://developer.android.com/reference/junit/framework/TestResult.html
 http://developer.android.com/reference/junit/framework/Test.html
-http://developer.android.com/reference/junit/framework/TestListener.html
-http://developer.android.com/reference/org/apache/http/client/protocol/package-descr.html
+http://developer.android.com/reference/java/security/PrivilegedAction.html
+http://developer.android.com/reference/java/util/Enumeration.html
+http://developer.android.com/reference/java/util/EventListener.html
+http://developer.android.com/reference/java/util/Formattable.html
+http://developer.android.com/reference/java/util/ListIterator.html
+http://developer.android.com/reference/java/util/Observer.html
+http://developer.android.com/reference/java/util/RandomAccess.html
+http://developer.android.com/reference/java/util/SortedMap.html
+http://developer.android.com/reference/java/util/AbstractList.html
+http://developer.android.com/reference/java/util/AbstractMap.html
+http://developer.android.com/reference/java/util/AbstractMap.SimpleEntry.html
+http://developer.android.com/reference/java/util/AbstractMap.SimpleImmutableEntry.html
+http://developer.android.com/reference/java/util/AbstractQueue.html
+http://developer.android.com/reference/java/util/AbstractSequentialList.html
+http://developer.android.com/reference/java/util/BitSet.html
+http://developer.android.com/reference/java/util/Currency.html
+http://developer.android.com/reference/java/util/Dictionary.html
+http://developer.android.com/reference/java/util/EnumMap.html
+http://developer.android.com/reference/java/util/EnumSet.html
+http://developer.android.com/reference/java/util/EventListenerProxy.html
+http://developer.android.com/reference/java/util/EventObject.html
+http://developer.android.com/reference/java/util/FormattableFlags.html
+http://developer.android.com/reference/java/util/HashMap.html
+http://developer.android.com/reference/java/util/HashSet.html
+http://developer.android.com/reference/java/util/Hashtable.html
+http://developer.android.com/reference/java/util/IdentityHashMap.html
+http://developer.android.com/reference/java/util/LinkedHashMap.html
+http://developer.android.com/reference/java/util/LinkedHashSet.html
+http://developer.android.com/reference/java/util/LinkedList.html
+http://developer.android.com/reference/java/util/ListResourceBundle.html
+http://developer.android.com/reference/java/util/Observable.html
+http://developer.android.com/reference/java/util/PropertyPermission.html
+http://developer.android.com/reference/java/util/PropertyResourceBundle.html
+http://developer.android.com/reference/java/util/Random.html
+http://developer.android.com/reference/java/util/ResourceBundle.html
+http://developer.android.com/reference/java/util/ResourceBundle.Control.html
+http://developer.android.com/reference/java/util/Scanner.html
+http://developer.android.com/reference/java/util/ServiceLoader.html
+http://developer.android.com/reference/java/util/SimpleTimeZone.html
+http://developer.android.com/reference/java/util/Stack.html
+http://developer.android.com/reference/java/util/StringTokenizer.html
+http://developer.android.com/reference/java/util/Timer.html
+http://developer.android.com/reference/java/util/TimerTask.html
+http://developer.android.com/reference/java/util/TreeMap.html
+http://developer.android.com/reference/java/util/TreeSet.html
+http://developer.android.com/reference/java/util/Vector.html
+http://developer.android.com/reference/java/util/WeakHashMap.html
+http://developer.android.com/reference/java/util/Formatter.BigDecimalLayoutForm.html
+http://developer.android.com/reference/java/util/EmptyStackException.html
+http://developer.android.com/reference/java/util/FormatterClosedException.html
+http://developer.android.com/reference/java/util/InputMismatchException.html
+http://developer.android.com/reference/java/util/MissingResourceException.html
+http://developer.android.com/reference/java/util/TooManyListenersException.html
+http://developer.android.com/reference/java/util/ServiceConfigurationError.html
+http://developer.android.com/reference/java/security/BasicPermission.html
+http://developer.android.com/reference/java/security/PermissionCollection.html
+http://developer.android.com/reference/java/security/Guard.html
+http://developer.android.com/reference/org/apache/http/cookie/CookieIdentityComparator.html
+http://developer.android.com/reference/org/apache/http/cookie/CookiePathComparator.html
+http://developer.android.com/reference/android/webkit/package-descr.html
+http://developer.android.com/reference/android/test/UiThreadTest.html
+http://developer.android.com/reference/org/apache/http/client/HttpClient.html
+http://developer.android.com/reference/org/apache/http/entity/AbstractHttpEntity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.html
+http://developer.android.com/reference/java/lang/reflect/AnnotatedElement.html
+http://developer.android.com/reference/java/lang/reflect/GenericDeclaration.html
+http://developer.android.com/reference/java/lang/reflect/Type.html
+http://developer.android.com/reference/java/lang/annotation/Annotation.html
+http://developer.android.com/reference/java/lang/reflect/Constructor.html
+http://developer.android.com/reference/java/lang/reflect/Field.html
+http://developer.android.com/reference/java/lang/reflect/Method.html
+http://developer.android.com/reference/java/security/ProtectionDomain.html
+http://developer.android.com/reference/java/lang/reflect/TypeVariable.html
+http://developer.android.com/reference/java/lang/reflect/Modifier.html
+http://developer.android.com/reference/java/security/Policy.html
+http://developer.android.com/reference/javax/security/auth/Destroyable.html
+http://developer.android.com/reference/javax/security/auth/AuthPermission.html
+http://developer.android.com/reference/javax/security/auth/PrivateCredentialPermission.html
+http://developer.android.com/reference/javax/security/auth/Subject.html
+http://developer.android.com/reference/javax/security/auth/SubjectDomainCombiner.html
+http://developer.android.com/reference/javax/security/auth/DestroyFailedException.html
+http://developer.android.com/reference/javax/security/auth/package-descr.html
+http://developer.android.com/reference/org/apache/http/client/methods/AbortableHttpRequest.html
+http://developer.android.com/reference/android/view/inputmethod/package-descr.html
+http://developer.android.com/reference/org/apache/http/client/methods/package-descr.html
+http://developer.android.com/reference/org/apache/http/cookie/SetCookie2.html
+http://developer.android.com/reference/org/apache/http/cookie/ClientCookie.html
+http://developer.android.com/reference/org/apache/http/cookie/Cookie.html
+http://developer.android.com/reference/org/apache/http/cookie/SetCookie.html
+http://developer.android.com/reference/java/security/Certificate.html
+http://developer.android.com/reference/java/security/DomainCombiner.html
+http://developer.android.com/reference/java/security/KeyStore.Entry.html
+http://developer.android.com/reference/java/security/KeyStore.LoadStoreParameter.html
+http://developer.android.com/reference/java/security/KeyStore.ProtectionParameter.html
+http://developer.android.com/reference/java/security/Policy.Parameters.html
+http://developer.android.com/reference/java/security/PrivateKey.html
+http://developer.android.com/reference/java/security/PrivilegedExceptionAction.html
+http://developer.android.com/reference/java/security/AccessControlContext.html
+http://developer.android.com/reference/java/security/AccessController.html
+http://developer.android.com/reference/java/security/AlgorithmParameterGenerator.html
+http://developer.android.com/reference/java/security/AlgorithmParameterGeneratorSpi.html
+http://developer.android.com/reference/java/security/AlgorithmParameters.html
+http://developer.android.com/reference/java/security/AlgorithmParametersSpi.html
+http://developer.android.com/reference/java/security/AllPermission.html
+http://developer.android.com/reference/java/security/AuthProvider.html
+http://developer.android.com/reference/java/security/CodeSigner.html
+http://developer.android.com/reference/java/security/CodeSource.html
+http://developer.android.com/reference/java/security/DigestInputStream.html
+http://developer.android.com/reference/java/security/GuardedObject.html
+http://developer.android.com/reference/java/security/Identity.html
+http://developer.android.com/reference/java/security/IdentityScope.html
+http://developer.android.com/reference/java/security/KeyFactory.html
+http://developer.android.com/reference/java/security/KeyFactorySpi.html
+http://developer.android.com/reference/java/security/KeyPair.html
+http://developer.android.com/reference/java/security/KeyPairGenerator.html
+http://developer.android.com/reference/java/security/KeyPairGeneratorSpi.html
+http://developer.android.com/reference/java/security/KeyRep.html
+http://developer.android.com/reference/java/security/KeyStore.html
+http://developer.android.com/reference/java/security/KeyStore.Builder.html
+http://developer.android.com/reference/java/security/KeyStore.CallbackHandlerProtection.html
+http://developer.android.com/reference/java/security/KeyStore.PasswordProtection.html
+http://developer.android.com/reference/java/security/KeyStore.PrivateKeyEntry.html
+http://developer.android.com/reference/java/security/KeyStore.SecretKeyEntry.html
+http://developer.android.com/reference/java/security/KeyStore.TrustedCertificateEntry.html
+http://developer.android.com/reference/java/security/KeyStoreSpi.html
+http://developer.android.com/reference/java/security/MessageDigest.html
+http://developer.android.com/reference/java/security/MessageDigestSpi.html
+http://developer.android.com/reference/java/security/Permissions.html
+http://developer.android.com/reference/java/security/PolicySpi.html
+http://developer.android.com/reference/java/security/Provider.html
+http://developer.android.com/reference/java/security/Provider.Service.html
+http://developer.android.com/reference/java/security/SecureClassLoader.html
+http://developer.android.com/reference/java/security/SecureRandom.html
+http://developer.android.com/reference/java/security/SecureRandomSpi.html
+http://developer.android.com/reference/java/security/Security.html
+http://developer.android.com/reference/java/security/SecurityPermission.html
+http://developer.android.com/reference/java/security/Signature.html
+http://developer.android.com/reference/java/security/SignatureSpi.html
+http://developer.android.com/reference/java/security/SignedObject.html
+http://developer.android.com/reference/java/security/Signer.html
+http://developer.android.com/reference/java/security/Timestamp.html
+http://developer.android.com/reference/java/security/UnresolvedPermission.html
+http://developer.android.com/reference/java/security/KeyRep.Type.html
+http://developer.android.com/reference/java/security/AccessControlException.html
+http://developer.android.com/reference/java/security/DigestException.html
+http://developer.android.com/reference/java/security/InvalidKeyException.html
+http://developer.android.com/reference/java/security/KeyException.html
+http://developer.android.com/reference/java/security/KeyManagementException.html
+http://developer.android.com/reference/java/security/KeyStoreException.html
+http://developer.android.com/reference/java/security/NoSuchAlgorithmException.html
+http://developer.android.com/reference/java/security/NoSuchProviderException.html
+http://developer.android.com/reference/java/security/PrivilegedActionException.html
+http://developer.android.com/reference/java/security/ProviderException.html
+http://developer.android.com/reference/java/security/SignatureException.html
+http://developer.android.com/reference/java/security/UnrecoverableEntryException.html
+http://developer.android.com/reference/java/security/UnrecoverableKeyException.html
+http://developer.android.com/reference/java/lang/reflect/ReflectPermission.html
+http://developer.android.com/reference/java/sql/SQLPermission.html
+http://developer.android.com/reference/javax/net/ssl/SSLPermission.html
+http://developer.android.com/reference/android/provider/package-descr.html
+http://developer.android.com/reference/org/apache/http/client/CircularRedirectException.html
+http://developer.android.com/reference/org/apache/http/auth/InvalidCredentialsException.html
+http://developer.android.com/reference/org/apache/http/cookie/MalformedCookieException.html
+http://developer.android.com/reference/org/apache/http/client/NonRepeatableRequestException.html
+http://developer.android.com/reference/org/apache/http/client/RedirectException.html
+http://developer.android.com/reference/android/graphics/drawable/shapes/Shape.html
+http://developer.android.com/resources/samples/Wiktionary/src/com/index.html
+http://developer.android.com/reference/org/apache/http/cookie/CookieOrigin.html
+http://developer.android.com/resources/tutorials/views/hello-formstuff.html
+http://developer.android.com/reference/org/apache/http/message/HeaderValueFormatter.html
+http://developer.android.com/reference/org/apache/http/message/HeaderValueParser.html
+http://developer.android.com/reference/org/apache/http/message/LineFormatter.html
+http://developer.android.com/reference/org/apache/http/message/BasicHeader.html
+http://developer.android.com/reference/org/apache/http/message/BasicHeaderElement.html
+http://developer.android.com/reference/org/apache/http/message/BasicHeaderElementIterator.html
+http://developer.android.com/reference/org/apache/http/message/BasicHeaderValueFormatter.html
+http://developer.android.com/reference/org/apache/http/message/BasicHeaderValueParser.html
+http://developer.android.com/reference/org/apache/http/message/BasicHttpResponse.html
+http://developer.android.com/reference/org/apache/http/message/BasicLineFormatter.html
+http://developer.android.com/reference/org/apache/http/message/BasicLineParser.html
+http://developer.android.com/reference/org/apache/http/message/BasicNameValuePair.html
+http://developer.android.com/reference/org/apache/http/message/BasicRequestLine.html
+http://developer.android.com/reference/org/apache/http/message/BasicStatusLine.html
+http://developer.android.com/reference/org/apache/http/message/BasicTokenIterator.html
+http://developer.android.com/reference/org/apache/http/message/BufferedHeader.html
+http://developer.android.com/reference/org/apache/http/message/ParserCursor.html
+http://developer.android.com/reference/javax/crypto/SecretKey.html
+http://developer.android.com/reference/javax/crypto/Cipher.html
+http://developer.android.com/reference/javax/crypto/CipherInputStream.html
+http://developer.android.com/reference/javax/crypto/CipherSpi.html
+http://developer.android.com/reference/javax/crypto/EncryptedPrivateKeyInfo.html
+http://developer.android.com/reference/javax/crypto/ExemptionMechanism.html
+http://developer.android.com/reference/javax/crypto/ExemptionMechanismSpi.html
+http://developer.android.com/reference/javax/crypto/KeyAgreement.html
+http://developer.android.com/reference/javax/crypto/KeyAgreementSpi.html
+http://developer.android.com/reference/javax/crypto/KeyGenerator.html
+http://developer.android.com/reference/javax/crypto/KeyGeneratorSpi.html
+http://developer.android.com/reference/javax/crypto/Mac.html
+http://developer.android.com/reference/javax/crypto/MacSpi.html
+http://developer.android.com/reference/javax/crypto/NullCipher.html
+http://developer.android.com/reference/javax/crypto/SealedObject.html
+http://developer.android.com/reference/javax/crypto/SecretKeyFactory.html
+http://developer.android.com/reference/javax/crypto/SecretKeyFactorySpi.html
+http://developer.android.com/reference/javax/crypto/BadPaddingException.html
+http://developer.android.com/reference/javax/crypto/ExemptionMechanismException.html
+http://developer.android.com/reference/javax/crypto/IllegalBlockSizeException.html
+http://developer.android.com/reference/javax/crypto/NoSuchPaddingException.html
+http://developer.android.com/reference/javax/crypto/ShortBufferException.html
+http://developer.android.com/reference/javax/crypto/package-descr.html
+http://developer.android.com/reference/org/apache/http/client/UserTokenHandler.html
+http://developer.android.com/reference/org/apache/http/io/HttpMessageWriter.html
+http://developer.android.com/reference/org/apache/http/io/HttpTransportMetrics.html
+http://developer.android.com/reference/org/apache/http/impl/io/AbstractSessionOutputBuffer.html
+http://developer.android.com/reference/org/apache/http/impl/io/SocketOutputBuffer.html
+http://developer.android.com/reference/org/apache/http/auth/AuthScope.html
+http://developer.android.com/reference/org/apache/http/protocol/BasicHttpProcessor.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpProcessor.html
+http://developer.android.com/reference/org/apache/http/protocol/RequestConnControl.html
+http://developer.android.com/reference/org/apache/http/protocol/RequestContent.html
+http://developer.android.com/reference/org/apache/http/protocol/RequestDate.html
+http://developer.android.com/reference/org/apache/http/protocol/RequestExpectContinue.html
+http://developer.android.com/reference/org/apache/http/protocol/RequestTargetHost.html
+http://developer.android.com/reference/org/apache/http/protocol/RequestUserAgent.html
+http://developer.android.com/reference/org/apache/http/cookie/CookieSpec.html
+http://developer.android.com/resources/samples/AccessibilityService/res/raw/index.html
+http://developer.android.com/resources/samples/AccessibilityService/res/values/index.html
+http://developer.android.com/reference/org/apache/http/cookie/CookieSpecFactory.html
+http://developer.android.com/reference/org/apache/http/auth/AuthSchemeFactory.html
+http://developer.android.com/reference/org/apache/http/auth/AUTH.html
+http://developer.android.com/reference/org/apache/http/auth/AuthSchemeRegistry.html
+http://developer.android.com/reference/org/apache/http/auth/AuthState.html
+http://developer.android.com/reference/org/apache/http/auth/BasicUserPrincipal.html
+http://developer.android.com/reference/org/apache/http/auth/NTCredentials.html
+http://developer.android.com/reference/org/apache/http/auth/NTUserPrincipal.html
+http://developer.android.com/reference/org/apache/http/auth/UsernamePasswordCredentials.html
+http://developer.android.com/resources/tutorials/views/hello-tablelayout.html
+http://developer.android.com/resources/tutorials/views/hello-relativelayout.html
+http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/package-descr.html
+http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html
+http://developer.android.com/resources/tutorials/notepad/notepad-ex2.html
+http://developer.android.com/resources/tutorials/notepad/notepad-ex3.html
+http://developer.android.com/resources/tutorials/notepad/notepad-extra-credit.html
+http://developer.android.com/resources/samples/BluetoothChat/res/index.html
+http://developer.android.com/resources/samples/BluetoothChat/src/index.html
+http://developer.android.com/resources/samples/BluetoothChat/AndroidManifest.html
+http://developer.android.com/reference/javax/xml/transform/stream/StreamResult.html
+http://developer.android.com/reference/org/apache/http/cookie/CookieSpecRegistry.html
 http://developer.android.com/reference/android/text/style/AlignmentSpan.html
 http://developer.android.com/reference/android/text/style/LeadingMarginSpan.html
 http://developer.android.com/reference/android/text/style/LeadingMarginSpan.LeadingMarginSpan2.html
@@ -3117,200 +2897,149 @@
 http://developer.android.com/reference/android/text/style/UpdateAppearance.html
 http://developer.android.com/reference/android/text/style/UpdateLayout.html
 http://developer.android.com/reference/android/text/style/WrapTogetherSpan.html
-http://developer.android.com/reference/java/security/interfaces/DSAKey.html
-http://developer.android.com/reference/java/security/interfaces/DSAKeyPairGenerator.html
-http://developer.android.com/reference/java/security/interfaces/DSAParams.html
-http://developer.android.com/reference/java/security/interfaces/ECKey.html
-http://developer.android.com/reference/java/security/interfaces/RSAKey.html
-http://developer.android.com/reference/java/security/acl/Acl.html
-http://developer.android.com/reference/java/security/acl/Group.html
-http://developer.android.com/reference/java/security/acl/Owner.html
-http://developer.android.com/reference/java/security/acl/Permission.html
-http://developer.android.com/resources/samples/TicTacToeMain/AndroidManifest.html
-http://developer.android.com/resources/samples/TicTacToeMain/src/com/example/android/tictactoe/MainActivity.html
-http://developer.android.com/resources/samples/TicTacToeLib/AndroidManifest.html
-http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/tictactoe/library/GameActivity.html
-http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/tictactoe/library/GameView.html
-http://developer.android.com/resources/samples/TicTacToeMain/res/index.html
-http://developer.android.com/resources/samples/TicTacToeMain/src/index.html
-http://developer.android.com/reference/javax/microedition/khronos/egl/EGL.html
-http://developer.android.com/reference/javax/microedition/khronos/egl/EGL11.html
-http://developer.android.com/resources/samples/BluetoothChat/res/index.html
-http://developer.android.com/resources/samples/BluetoothChat/src/index.html
-http://developer.android.com/resources/samples/BluetoothChat/AndroidManifest.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/PoolEntryRequest.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/RefQueueHandler.html
-http://developer.android.com/reference/android/test/PerformanceTestCase.Intermediates.html
-http://developer.android.com/reference/android/test/TestSuiteProvider.html
-http://developer.android.com/reference/android/test/AssertionFailedError.html
-http://developer.android.com/reference/android/test/ComparisonFailure.html
-http://developer.android.com/reference/android/view/inputmethod/InputMethod.SessionCallback.html
-http://developer.android.com/reference/android/view/inputmethod/InputMethodSession.EventCallback.html
-http://developer.android.com/reference/android/preference/Preference.OnPreferenceChangeListener.html
-http://developer.android.com/reference/android/preference/Preference.OnPreferenceClickListener.html
-http://developer.android.com/reference/android/preference/PreferenceManager.OnActivityDestroyListener.html
-http://developer.android.com/reference/android/preference/PreferenceManager.OnActivityResultListener.html
-http://developer.android.com/reference/android/preference/PreferenceManager.OnActivityStopListener.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube1/CubeWallpaper1.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube2/CubeWallpaper2.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube2/CubeWallpaper2Settings.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/index.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/index.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/AndroidManifest.html
-http://developer.android.com/reference/javax/sql/CommonDataSource.html
-http://developer.android.com/reference/javax/sql/ConnectionEventListener.html
-http://developer.android.com/reference/javax/sql/ConnectionPoolDataSource.html
-http://developer.android.com/reference/javax/sql/DataSource.html
-http://developer.android.com/reference/javax/sql/RowSetInternal.html
-http://developer.android.com/reference/javax/sql/RowSetListener.html
-http://developer.android.com/reference/javax/sql/RowSetMetaData.html
-http://developer.android.com/reference/javax/sql/RowSetReader.html
-http://developer.android.com/reference/javax/sql/RowSetWriter.html
-http://developer.android.com/reference/javax/sql/StatementEventListener.html
-http://developer.android.com/reference/java/util/zip/Checksum.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/samplesyncadapter_server/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/AndroidManifest.html
-http://developer.android.com/resources/tutorials/views/hello-linearlayout.html
-http://developer.android.com/reference/java/util/concurrent/locks/Condition.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/src/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/AndroidManifest.html
-http://developer.android.com/reference/android/widget/package-descr.html
-http://developer.android.com/reference/org/apache/http/client/methods/package-descr.html
-http://developer.android.com/reference/android/database/sqlite/package-descr.html
-http://developer.android.com/reference/java/lang/annotation/Target.html
-http://developer.android.com/reference/android/os/package-descr.html
-http://developer.android.com/reference/android/view/package-descr.html
-http://developer.android.com/reference/org/apache/http/conn/routing/RouteInfo.html
-http://developer.android.com/reference/java/lang/annotation/Retention.html
-http://developer.android.com/resources/tutorials/views/hello-webview.html
-http://developer.android.com/reference/javax/crypto/spec/package-descr.html
-http://developer.android.com/reference/java/security/acl/package-descr.html
-http://developer.android.com/reference/android/location/GpsStatus.Listener.html
-http://developer.android.com/reference/android/location/GpsStatus.NmeaListener.html
-http://developer.android.com/reference/android/location/package-descr.html
-http://developer.android.com/reference/java/beans/PropertyChangeListener.html
-http://developer.android.com/reference/javax/security/auth/login/package-descr.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/drawable/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/drawable-hdpi/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/drawable-mdpi/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/layout/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/menu/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/raw/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/values/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/xml/index.html
-http://developer.android.com/reference/android/test/suitebuilder/package-descr.html
-http://developer.android.com/resources/samples/SipDemo/res/drawable/index.html
-http://developer.android.com/resources/samples/SipDemo/res/layout/index.html
-http://developer.android.com/resources/samples/SipDemo/res/values/index.html
-http://developer.android.com/resources/samples/SipDemo/res/xml/index.html
-http://developer.android.com/reference/javax/security/cert/package-descr.html
-http://developer.android.com/resources/samples/BluetoothChat/res/drawable/index.html
-http://developer.android.com/resources/samples/BluetoothChat/res/drawable-hdpi/index.html
-http://developer.android.com/resources/samples/BluetoothChat/res/layout/index.html
-http://developer.android.com/resources/samples/BluetoothChat/res/menu/index.html
-http://developer.android.com/resources/samples/BluetoothChat/res/values/index.html
-http://developer.android.com/reference/org/apache/http/conn/params/package-descr.html
-http://developer.android.com/reference/java/util/logging/Filter.html
-http://developer.android.com/reference/java/util/logging/LoggingMXBean.html
-http://developer.android.com/reference/java/util/logging/Formatter.html
-http://developer.android.com/sdk/api_diff/5/changes/jdiff_topleftframe.html
-http://developer.android.com/sdk/api_diff/5/changes/alldiffs_index_all.html
-http://developer.android.com/sdk/api_diff/5/changes/changes-summary.html
-http://developer.android.com/reference/org/w3c/dom/Attr.html
-http://developer.android.com/reference/org/w3c/dom/CDATASection.html
-http://developer.android.com/reference/org/w3c/dom/CharacterData.html
-http://developer.android.com/reference/org/w3c/dom/Comment.html
-http://developer.android.com/reference/org/w3c/dom/DocumentType.html
-http://developer.android.com/reference/org/w3c/dom/DOMConfiguration.html
-http://developer.android.com/reference/org/w3c/dom/DOMError.html
-http://developer.android.com/reference/org/w3c/dom/DOMErrorHandler.html
-http://developer.android.com/reference/org/w3c/dom/DOMImplementation.html
-http://developer.android.com/reference/org/w3c/dom/DOMImplementationList.html
-http://developer.android.com/reference/org/w3c/dom/DOMImplementationSource.html
-http://developer.android.com/reference/org/w3c/dom/DOMLocator.html
-http://developer.android.com/reference/org/w3c/dom/DOMStringList.html
-http://developer.android.com/reference/org/w3c/dom/Entity.html
-http://developer.android.com/reference/org/w3c/dom/EntityReference.html
-http://developer.android.com/reference/org/w3c/dom/NamedNodeMap.html
-http://developer.android.com/reference/org/w3c/dom/NameList.html
-http://developer.android.com/reference/org/w3c/dom/NodeList.html
-http://developer.android.com/reference/org/w3c/dom/Notation.html
-http://developer.android.com/reference/org/w3c/dom/ProcessingInstruction.html
-http://developer.android.com/reference/org/w3c/dom/Text.html
-http://developer.android.com/reference/org/w3c/dom/TypeInfo.html
-http://developer.android.com/reference/org/w3c/dom/UserDataHandler.html
-http://developer.android.com/reference/javax/xml/xpath/XPathExpression.html
-http://developer.android.com/reference/javax/xml/xpath/XPathFunction.html
-http://developer.android.com/reference/javax/xml/xpath/XPathFunctionResolver.html
-http://developer.android.com/reference/javax/xml/xpath/XPathVariableResolver.html
-http://developer.android.com/sdk/api_diff/7/changes/jdiff_topleftframe.html
-http://developer.android.com/sdk/api_diff/7/changes/alldiffs_index_all.html
-http://developer.android.com/sdk/api_diff/7/changes/changes-summary.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/src/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/AndroidManifest.html
-http://developer.android.com/reference/org/apache/http/client/AuthenticationHandler.html
-http://developer.android.com/reference/android/hardware/Camera.AutoFocusCallback.html
-http://developer.android.com/reference/android/hardware/Camera.ErrorCallback.html
-http://developer.android.com/reference/android/hardware/Camera.OnZoomChangeListener.html
-http://developer.android.com/reference/android/hardware/Camera.PictureCallback.html
-http://developer.android.com/reference/android/hardware/Camera.PreviewCallback.html
-http://developer.android.com/reference/android/hardware/Camera.ShutterCallback.html
-http://developer.android.com/reference/android/hardware/SensorEventListener.html
-http://developer.android.com/reference/android/hardware/SensorListener.html
-http://developer.android.com/reference/android/telephony/cdma/package-descr.html
-http://developer.android.com/reference/android/test/package-descr.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/drawable/ic_dictionary.html
-http://developer.android.com/reference/junit/framework/package-descr.html
-http://developer.android.com/resources/samples/TicTacToeMain/res/drawable/index.html
-http://developer.android.com/resources/samples/TicTacToeMain/res/layout/index.html
-http://developer.android.com/resources/samples/TicTacToeMain/res/values/index.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/drawable/index.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/values/index.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/xml/index.html
-http://developer.android.com/reference/javax/microedition/khronos/opengles/GL10.html
-http://developer.android.com/reference/android/text/util/Linkify.MatchFilter.html
-http://developer.android.com/reference/android/text/util/Linkify.TransformFilter.html
-http://developer.android.com/reference/android/database/package-descr.html
-http://developer.android.com/resources/samples/SipDemo/src/com/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/xml/searchable.html
-http://developer.android.com/reference/java/util/prefs/NodeChangeListener.html
-http://developer.android.com/reference/java/util/prefs/PreferenceChangeListener.html
-http://developer.android.com/reference/java/util/prefs/PreferencesFactory.html
-http://developer.android.com/reference/javax/xml/transform/package-descr.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/drawable/ic_launcher_wallpaper.html
-http://developer.android.com/reference/java/security/interfaces/package-descr.html
-http://developer.android.com/reference/android/app/backup/BackupHelper.html
-http://developer.android.com/reference/javax/xml/validation/package-descr.html
-http://developer.android.com/sdk/api_diff/5/changes/packages_index_all.html
-http://developer.android.com/sdk/api_diff/5/changes/classes_index_all.html
-http://developer.android.com/sdk/api_diff/5/changes/constructors_index_all.html
-http://developer.android.com/sdk/api_diff/5/changes/methods_index_all.html
-http://developer.android.com/sdk/api_diff/5/changes/fields_index_all.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/layout/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/values/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/xml/index.html
-http://developer.android.com/reference/org/apache/http/impl/auth/NTLMEngine.html
-http://developer.android.com/sdk/api_diff/4/changes/jdiff_topleftframe.html
-http://developer.android.com/sdk/api_diff/4/changes/alldiffs_index_all.html
-http://developer.android.com/sdk/api_diff/4/changes/changes-summary.html
-http://developer.android.com/reference/android/net/wifi/package-descr.html
-http://developer.android.com/sdk/api_diff/3/changes/jdiff_topleftframe.html
-http://developer.android.com/sdk/api_diff/3/changes/alldiffs_index_all.html
-http://developer.android.com/sdk/api_diff/3/changes/changes-summary.html
-http://developer.android.com/reference/android/preference/package-descr.html
+http://developer.android.com/reference/android/text/style/CharacterStyle.html
+http://developer.android.com/reference/android/text/style/ClickableSpan.html
+http://developer.android.com/reference/android/text/style/DrawableMarginSpan.html
+http://developer.android.com/reference/android/text/style/DynamicDrawableSpan.html
+http://developer.android.com/reference/android/text/style/IconMarginSpan.html
+http://developer.android.com/reference/android/text/style/ImageSpan.html
+http://developer.android.com/reference/android/text/style/MaskFilterSpan.html
+http://developer.android.com/reference/android/text/style/MetricAffectingSpan.html
+http://developer.android.com/reference/android/text/style/RasterizerSpan.html
+http://developer.android.com/reference/android/text/style/ReplacementSpan.html
+http://developer.android.com/reference/android/text/style/TabStopSpan.Standard.html
+http://developer.android.com/reference/java/security/spec/AlgorithmParameterSpec.html
+http://developer.android.com/reference/java/security/spec/ECField.html
+http://developer.android.com/reference/java/security/spec/KeySpec.html
+http://developer.android.com/reference/java/security/spec/DSAPrivateKeySpec.html
+http://developer.android.com/reference/java/security/spec/DSAPublicKeySpec.html
+http://developer.android.com/reference/java/security/spec/ECFieldF2m.html
+http://developer.android.com/reference/java/security/spec/ECFieldFp.html
+http://developer.android.com/reference/java/security/spec/ECGenParameterSpec.html
+http://developer.android.com/reference/java/security/spec/ECPrivateKeySpec.html
+http://developer.android.com/reference/java/security/spec/ECPublicKeySpec.html
+http://developer.android.com/reference/java/security/spec/EllipticCurve.html
+http://developer.android.com/reference/java/security/spec/EncodedKeySpec.html
+http://developer.android.com/reference/java/security/spec/MGF1ParameterSpec.html
+http://developer.android.com/reference/java/security/spec/PKCS8EncodedKeySpec.html
+http://developer.android.com/reference/java/security/spec/PSSParameterSpec.html
+http://developer.android.com/reference/java/security/spec/RSAKeyGenParameterSpec.html
+http://developer.android.com/reference/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.html
+http://developer.android.com/reference/java/security/spec/RSAOtherPrimeInfo.html
+http://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec.html
+http://developer.android.com/reference/java/security/spec/RSAPrivateKeySpec.html
+http://developer.android.com/reference/java/security/spec/RSAPublicKeySpec.html
+http://developer.android.com/reference/java/security/spec/X509EncodedKeySpec.html
+http://developer.android.com/reference/java/security/spec/InvalidKeySpecException.html
+http://developer.android.com/reference/java/security/spec/InvalidParameterSpecException.html
+http://developer.android.com/reference/java/security/spec/package-descr.html
+http://developer.android.com/reference/android/net/UrlQuerySanitizer.ValueSanitizer.html
+http://developer.android.com/reference/android/net/Credentials.html
+http://developer.android.com/reference/android/net/LocalServerSocket.html
+http://developer.android.com/reference/android/net/LocalSocket.html
+http://developer.android.com/reference/android/net/LocalSocketAddress.html
+http://developer.android.com/reference/android/net/MailTo.html
+http://developer.android.com/reference/android/net/Proxy.html
+http://developer.android.com/reference/android/net/SSLCertificateSocketFactory.html
+http://developer.android.com/reference/android/net/SSLSessionCache.html
+http://developer.android.com/reference/android/net/TrafficStats.html
+http://developer.android.com/reference/android/net/Uri.Builder.html
+http://developer.android.com/reference/android/net/UrlQuerySanitizer.html
+http://developer.android.com/reference/android/net/UrlQuerySanitizer.IllegalCharacterValueSanitizer.html
+http://developer.android.com/reference/android/net/UrlQuerySanitizer.ParameterValuePair.html
+http://developer.android.com/reference/android/net/LocalSocketAddress.Namespace.html
+http://developer.android.com/reference/android/net/NetworkInfo.DetailedState.html
+http://developer.android.com/reference/android/net/NetworkInfo.State.html
+http://developer.android.com/reference/android/net/ParseException.html
+http://developer.android.com/reference/org/apache/http/util/ByteArrayBuffer.html
+http://developer.android.com/reference/org/apache/http/util/EncodingUtils.html
+http://developer.android.com/reference/org/apache/http/util/EntityUtils.html
+http://developer.android.com/reference/org/apache/http/util/ExceptionUtils.html
+http://developer.android.com/reference/org/apache/http/util/LangUtils.html
+http://developer.android.com/reference/org/apache/http/util/VersionInfo.html
+http://developer.android.com/reference/org/apache/http/util/package-descr.html
+http://developer.android.com/reference/javax/xml/transform/dom/DOMResult.html
+http://developer.android.com/reference/javax/xml/transform/sax/SAXResult.html
 http://developer.android.com/sdk/api_diff/9/changes/packages_index_all.html
 http://developer.android.com/sdk/api_diff/9/changes/classes_index_all.html
 http://developer.android.com/sdk/api_diff/9/changes/constructors_index_all.html
 http://developer.android.com/sdk/api_diff/9/changes/methods_index_all.html
 http://developer.android.com/sdk/api_diff/9/changes/fields_index_all.html
-http://developer.android.com/reference/java/util/concurrent/locks/package-descr.html
-http://developer.android.com/guide/samples/index.html
-http://developer.android.com/reference/org/apache/http/conn/routing/package-descr.html
+http://developer.android.com/reference/java/awt/font/NumericShaper.html
+http://developer.android.com/reference/java/awt/font/TextAttribute.html
+http://developer.android.com/reference/java/util/jar/Pack200.Packer.html
+http://developer.android.com/reference/java/util/jar/Pack200.Unpacker.html
+http://developer.android.com/reference/java/util/jar/Attributes.html
+http://developer.android.com/reference/java/util/jar/Attributes.Name.html
+http://developer.android.com/reference/java/util/jar/JarFile.html
+http://developer.android.com/reference/java/util/jar/JarInputStream.html
+http://developer.android.com/reference/java/util/jar/Manifest.html
+http://developer.android.com/reference/java/util/jar/Pack200.html
+http://developer.android.com/reference/org/apache/http/client/params/AllClientPNames.html
+http://developer.android.com/reference/org/apache/http/client/params/ClientPNames.html
+http://developer.android.com/reference/org/apache/http/client/params/AuthPolicy.html
+http://developer.android.com/reference/org/apache/http/client/params/ClientParamBean.html
+http://developer.android.com/reference/org/apache/http/client/params/CookiePolicy.html
+http://developer.android.com/reference/org/apache/http/client/params/HttpClientParams.html
+http://developer.android.com/reference/org/apache/http/client/params/package-descr.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/src/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/AndroidManifest.html
+http://developer.android.com/reference/org/apache/http/cookie/SM.html
+http://developer.android.com/reference/org/apache/http/cookie/package-descr.html
+http://developer.android.com/reference/org/xml/sax/ext/Attributes2.html
+http://developer.android.com/reference/org/xml/sax/ext/Locator2.html
+http://developer.android.com/reference/org/xml/sax/ext/Attributes2Impl.html
+http://developer.android.com/reference/org/xml/sax/ext/Locator2Impl.html
+http://developer.android.com/reference/org/apache/http/impl/io/HttpRequestParser.html
+http://developer.android.com/reference/org/apache/http/impl/io/HttpResponseParser.html
+http://developer.android.com/reference/android/location/GpsStatus.Listener.html
+http://developer.android.com/reference/android/location/GpsStatus.NmeaListener.html
+http://developer.android.com/reference/android/location/GpsSatellite.html
+http://developer.android.com/reference/android/location/GpsStatus.html
+http://developer.android.com/reference/java/lang/ref/PhantomReference.html
+http://developer.android.com/reference/java/lang/ref/Reference.html
+http://developer.android.com/reference/java/lang/ref/SoftReference.html
+http://developer.android.com/reference/java/lang/ref/WeakReference.html
+http://developer.android.com/reference/java/lang/ref/package-descr.html
+http://developer.android.com/sdk/api_diff/3/changes/jdiff_statistics.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.app.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.content.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.content.pm.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.content.res.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.database.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.database.sqlite.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.graphics.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.graphics.drawable.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.graphics.drawable.shapes.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.hardware.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.location.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.media.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.net.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.net.wifi.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.opengl.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.os.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.preference.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.provider.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.telephony.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.telephony.gsm.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.test.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.test.mock.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.test.suitebuilder.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.text.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.text.method.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.text.style.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.util.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.view.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.view.animation.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.webkit.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_android.widget.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_dalvik.system.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_java.lang.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_java.util.jar.html
+http://developer.android.com/sdk/api_diff/3/changes/pkg_java.util.logging.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/index.html
 http://developer.android.com/sdk/api_diff/9/changes/alldiffs_index_removals.html
 http://developer.android.com/sdk/api_diff/9/changes/alldiffs_index_additions.html
 http://developer.android.com/sdk/api_diff/9/changes/alldiffs_index_changes.html
@@ -3529,123 +3258,1352 @@
 http://developer.android.com/sdk/api_diff/9/changes/android.view.Window.html
 http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.TimeUnit.html
 http://developer.android.com/sdk/api_diff/9/changes/java.security.UnrecoverableKeyException.html
-http://developer.android.com/reference/javax/xml/xpath/package-descr.html
-http://developer.android.com/resources/tutorials/views/hello-autocomplete.html
-http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/ExampleAgent.html
-http://developer.android.com/reference/org/apache/http/client/HttpClient.html
-http://developer.android.com/reference/org/apache/http/client/UserTokenHandler.html
-http://developer.android.com/reference/javax/xml/datatype/package-descr.html
-http://developer.android.com/resources/samples/BluetoothChat/res/layout/custom_title.html
-http://developer.android.com/resources/samples/BluetoothChat/res/layout/device_list.html
-http://developer.android.com/resources/samples/BluetoothChat/res/layout/device_name.html
-http://developer.android.com/resources/samples/BluetoothChat/res/layout/main.html
-http://developer.android.com/resources/samples/BluetoothChat/res/layout/message.html
+http://developer.android.com/reference/android/inputmethodservice/KeyboardView.OnKeyboardActionListener.html
+http://developer.android.com/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodImpl.html
+http://developer.android.com/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodSessionImpl.html
+http://developer.android.com/reference/android/inputmethodservice/InputMethodService.InputMethodImpl.html
+http://developer.android.com/reference/android/inputmethodservice/InputMethodService.InputMethodSessionImpl.html
+http://developer.android.com/reference/android/inputmethodservice/InputMethodService.Insets.html
+http://developer.android.com/reference/android/inputmethodservice/Keyboard.Key.html
+http://developer.android.com/reference/android/inputmethodservice/Keyboard.Row.html
+http://developer.android.com/reference/javax/net/ssl/HandshakeCompletedListener.html
+http://developer.android.com/reference/javax/net/ssl/HostnameVerifier.html
+http://developer.android.com/reference/javax/net/ssl/KeyManager.html
+http://developer.android.com/reference/javax/net/ssl/ManagerFactoryParameters.html
+http://developer.android.com/reference/javax/net/ssl/SSLSessionBindingListener.html
+http://developer.android.com/reference/javax/net/ssl/SSLSessionContext.html
+http://developer.android.com/reference/javax/net/ssl/TrustManager.html
+http://developer.android.com/reference/javax/net/ssl/X509KeyManager.html
+http://developer.android.com/reference/javax/net/ssl/X509TrustManager.html
+http://developer.android.com/reference/javax/net/ssl/CertPathTrustManagerParameters.html
+http://developer.android.com/reference/javax/net/ssl/HandshakeCompletedEvent.html
+http://developer.android.com/reference/javax/net/ssl/KeyManagerFactory.html
+http://developer.android.com/reference/javax/net/ssl/KeyManagerFactorySpi.html
+http://developer.android.com/reference/javax/net/ssl/KeyStoreBuilderParameters.html
+http://developer.android.com/reference/javax/net/ssl/SSLContext.html
+http://developer.android.com/reference/javax/net/ssl/SSLContextSpi.html
+http://developer.android.com/reference/javax/net/ssl/SSLEngine.html
+http://developer.android.com/reference/javax/net/ssl/SSLEngineResult.html
+http://developer.android.com/reference/javax/net/ssl/SSLParameters.html
+http://developer.android.com/reference/javax/net/ssl/SSLServerSocket.html
+http://developer.android.com/reference/javax/net/ssl/SSLServerSocketFactory.html
+http://developer.android.com/reference/javax/net/ssl/SSLSessionBindingEvent.html
+http://developer.android.com/reference/javax/net/ssl/SSLSocketFactory.html
+http://developer.android.com/reference/javax/net/ssl/TrustManagerFactory.html
+http://developer.android.com/reference/javax/net/ssl/TrustManagerFactorySpi.html
+http://developer.android.com/reference/javax/net/ssl/X509ExtendedKeyManager.html
+http://developer.android.com/reference/javax/net/ssl/SSLEngineResult.HandshakeStatus.html
+http://developer.android.com/reference/javax/net/ssl/SSLEngineResult.Status.html
+http://developer.android.com/resources/samples/BackupRestore/res/values/strings.html
+http://developer.android.com/reference/javax/security/cert/Certificate.html
+http://developer.android.com/reference/javax/security/cert/X509Certificate.html
+http://developer.android.com/reference/javax/security/cert/CertificateEncodingException.html
+http://developer.android.com/reference/javax/security/cert/CertificateException.html
+http://developer.android.com/reference/javax/security/cert/CertificateExpiredException.html
+http://developer.android.com/reference/javax/security/cert/CertificateNotYetValidException.html
+http://developer.android.com/reference/javax/security/cert/CertificateParsingException.html
+http://developer.android.com/reference/javax/security/cert/package-descr.html
+http://developer.android.com/reference/org/apache/http/impl/io/AbstractMessageWriter.html
+http://developer.android.com/reference/org/apache/http/impl/io/AbstractSessionInputBuffer.html
+http://developer.android.com/reference/org/apache/http/impl/io/ChunkedInputStream.html
+http://developer.android.com/reference/org/apache/http/impl/io/ContentLengthInputStream.html
+http://developer.android.com/reference/org/apache/http/impl/io/HttpRequestWriter.html
+http://developer.android.com/reference/org/apache/http/impl/io/HttpResponseWriter.html
+http://developer.android.com/reference/org/apache/http/impl/io/HttpTransportMetricsImpl.html
+http://developer.android.com/reference/org/apache/http/impl/io/IdentityInputStream.html
+http://developer.android.com/reference/org/apache/http/impl/io/SocketInputBuffer.html
+http://developer.android.com/reference/android/text/method/PasswordTransformationMethod.html
+http://developer.android.com/reference/javax/xml/transform/sax/SAXTransformerFactory.html
+http://developer.android.com/reference/javax/xml/transform/sax/package-descr.html
+http://developer.android.com/reference/android/net/package-descr.html
+http://developer.android.com/reference/android/bluetooth/BluetoothClass.Device.html
+http://developer.android.com/reference/android/bluetooth/BluetoothClass.Device.Major.html
+http://developer.android.com/reference/android/bluetooth/BluetoothClass.Service.html
+http://developer.android.com/reference/android/bluetooth/BluetoothServerSocket.html
+http://developer.android.com/reference/android/bluetooth/BluetoothSocket.html
+http://developer.android.com/sdk/api_diff/4/changes/jdiff_topleftframe.html
+http://developer.android.com/sdk/api_diff/4/changes/alldiffs_index_all.html
+http://developer.android.com/sdk/api_diff/4/changes/changes-summary.html
+http://developer.android.com/reference/android/appwidget/AppWidgetHost.html
+http://developer.android.com/reference/android/accounts/AbstractAccountAuthenticator.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/samplesyncadapter_server/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/AndroidManifest.html
+http://developer.android.com/reference/android/text/method/MultiTapKeyListener.html
+http://developer.android.com/reference/android/text/method/TextKeyListener.html
+http://developer.android.com/sdk/api_diff/8/changes/packages_index_all.html
+http://developer.android.com/sdk/api_diff/8/changes/classes_index_all.html
+http://developer.android.com/sdk/api_diff/8/changes/constructors_index_all.html
+http://developer.android.com/sdk/api_diff/8/changes/methods_index_all.html
+http://developer.android.com/sdk/api_diff/8/changes/fields_index_all.html
+http://developer.android.com/reference/java/sql/Date.html
+http://developer.android.com/reference/java/sql/Time.html
+http://developer.android.com/reference/java/sql/Timestamp.html
+http://developer.android.com/reference/org/w3c/dom/ls/LSResourceResolver.html
+http://developer.android.com/reference/org/w3c/dom/ls/LSInput.html
+http://developer.android.com/sdk/api_diff/9/changes/jdiff_statistics.html
+http://developer.android.com/reference/java/sql/CallableStatement.html
+http://developer.android.com/reference/java/nio/charset/Charset.html
+http://developer.android.com/reference/java/sql/ClientInfoStatus.html
+http://developer.android.com/reference/java/lang/annotation/ElementType.html
+http://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html
+http://developer.android.com/reference/java/math/RoundingMode.html
+http://developer.android.com/reference/java/sql/RowIdLifetime.html
+http://developer.android.com/reference/android/text/method/TextKeyListener.Capitalize.html
+http://developer.android.com/reference/java/nio/charset/CharsetDecoder.html
+http://developer.android.com/reference/java/nio/charset/CharsetEncoder.html
+http://developer.android.com/reference/java/nio/charset/CoderResult.html
+http://developer.android.com/reference/java/nio/charset/CodingErrorAction.html
+http://developer.android.com/reference/java/nio/charset/CoderMalfunctionError.html
+http://developer.android.com/reference/java/sql/SQLOutput.html
+http://developer.android.com/reference/javax/crypto/interfaces/DHKey.html
+http://developer.android.com/reference/javax/crypto/interfaces/DHPrivateKey.html
+http://developer.android.com/reference/javax/crypto/interfaces/DHPublicKey.html
+http://developer.android.com/reference/javax/crypto/interfaces/PBEKey.html
+http://developer.android.com/reference/javax/crypto/interfaces/package-descr.html
+http://developer.android.com/reference/org/apache/http/entity/ContentLengthStrategy.html
+http://developer.android.com/reference/org/apache/http/entity/ContentProducer.html
+http://developer.android.com/reference/org/apache/http/entity/BasicHttpEntity.html
+http://developer.android.com/reference/org/apache/http/entity/BufferedHttpEntity.html
+http://developer.android.com/reference/org/apache/http/entity/ByteArrayEntity.html
+http://developer.android.com/reference/org/apache/http/entity/EntityTemplate.html
+http://developer.android.com/reference/org/apache/http/entity/FileEntity.html
+http://developer.android.com/reference/org/apache/http/entity/HttpEntityWrapper.html
+http://developer.android.com/reference/org/apache/http/entity/InputStreamEntity.html
+http://developer.android.com/reference/org/apache/http/entity/SerializableEntity.html
+http://developer.android.com/reference/org/apache/http/entity/StringEntity.html
+http://developer.android.com/reference/org/apache/http/entity/package-descr.html
+http://developer.android.com/resources/samples/ContactManager/res/drawable-hdpi/index.html
+http://developer.android.com/resources/samples/ContactManager/res/drawable-ldpi/index.html
+http://developer.android.com/resources/samples/ContactManager/res/drawable-mdpi/index.html
+http://developer.android.com/resources/samples/ContactManager/res/layout/index.html
+http://developer.android.com/resources/samples/ContactManager/res/values/index.html
+http://developer.android.com/reference/javax/security/auth/callback/CallbackHandler.html
+http://developer.android.com/reference/org/apache/http/client/utils/CloneUtils.html
+http://developer.android.com/reference/org/apache/http/client/utils/URIUtils.html
+http://developer.android.com/reference/org/apache/http/client/utils/URLEncodedUtils.html
+http://developer.android.com/reference/org/apache/http/client/utils/package-descr.html
+http://developer.android.com/reference/org/apache/http/conn/ssl/AbstractVerifier.html
+http://developer.android.com/reference/org/apache/http/conn/ssl/AllowAllHostnameVerifier.html
+http://developer.android.com/reference/org/apache/http/conn/ssl/BrowserCompatHostnameVerifier.html
+http://developer.android.com/reference/org/apache/http/conn/ssl/StrictHostnameVerifier.html
+http://developer.android.com/reference/org/apache/http/conn/ssl/X509HostnameVerifier.html
+http://developer.android.com/reference/javax/sql/DataSource.html
+http://developer.android.com/reference/junit/framework/Protectable.html
+http://developer.android.com/reference/junit/framework/TestListener.html
+http://developer.android.com/reference/junit/framework/TestFailure.html
+http://developer.android.com/reference/junit/framework/AssertionFailedError.html
+http://developer.android.com/reference/junit/framework/ComparisonFailure.html
+http://developer.android.com/sdk/api_diff/3/changes/android.app.Activity.html
+http://developer.android.com/sdk/api_diff/3/changes/android.app.ActivityManager.html
+http://developer.android.com/sdk/api_diff/3/changes/android.app.AlarmManager.html
+http://developer.android.com/sdk/api_diff/3/changes/android.app.AlertDialog.html
+http://developer.android.com/sdk/api_diff/3/changes/android.app.Instrumentation.html
+http://developer.android.com/sdk/api_diff/3/changes/android.app.LauncherActivity.html
+http://developer.android.com/sdk/api_diff/3/changes/android.app.PendingIntent.html
+http://developer.android.com/reference/javax/crypto/spec/DESedeKeySpec.html
+http://developer.android.com/reference/javax/crypto/spec/DESKeySpec.html
+http://developer.android.com/reference/javax/crypto/spec/DHGenParameterSpec.html
+http://developer.android.com/reference/javax/crypto/spec/DHParameterSpec.html
+http://developer.android.com/reference/javax/crypto/spec/DHPrivateKeySpec.html
+http://developer.android.com/reference/javax/crypto/spec/DHPublicKeySpec.html
+http://developer.android.com/reference/javax/crypto/spec/IvParameterSpec.html
+http://developer.android.com/reference/javax/crypto/spec/OAEPParameterSpec.html
+http://developer.android.com/reference/javax/crypto/spec/PBEKeySpec.html
+http://developer.android.com/reference/javax/crypto/spec/PBEParameterSpec.html
+http://developer.android.com/reference/javax/crypto/spec/PSource.html
+http://developer.android.com/reference/javax/crypto/spec/PSource.PSpecified.html
+http://developer.android.com/reference/javax/crypto/spec/RC2ParameterSpec.html
+http://developer.android.com/reference/javax/crypto/spec/RC5ParameterSpec.html
+http://developer.android.com/reference/javax/crypto/spec/SecretKeySpec.html
+http://developer.android.com/reference/javax/crypto/spec/package-descr.html
+http://developer.android.com/reference/javax/microedition/khronos/egl/EGL.html
+http://developer.android.com/reference/javax/microedition/khronos/egl/EGL11.html
+http://developer.android.com/reference/javax/microedition/khronos/egl/EGLContext.html
+http://developer.android.com/reference/org/apache/http/client/package-descr.html
+http://developer.android.com/reference/java/sql/DatabaseMetaData.html
+http://developer.android.com/reference/android/text/util/Rfc822Tokenizer.html
+http://developer.android.com/reference/java/lang/reflect/Member.html
+http://developer.android.com/reference/android/view/ViewDebug.CapturedViewProperty.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.GestureDetector.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.GestureDetector.SimpleOnGestureListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.Gravity.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.KeyCharacterMap.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.KeyEvent.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.Menu.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.MotionEvent.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.OrientationListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.View.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewConfiguration.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewDebug.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewGroup.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewParent.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewTreeObserver.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.Window.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.WindowManager.LayoutParams.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.pm.ActivityInfo.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.pm.PackageInfo.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.pm.PackageManager.html
+http://developer.android.com/resources/samples/Wiktionary/src/com/example/index.html
+http://developer.android.com/sdk/api_diff/8/changes/fields_index_removals.html
+http://developer.android.com/sdk/api_diff/8/changes/fields_index_additions.html
+http://developer.android.com/sdk/api_diff/8/changes/fields_index_changes.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.Settings.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.Intent.html
+http://developer.android.com/sdk/api_diff/8/changes/android.speech.RecognizerIntent.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.MotionEvent.html
+http://developer.android.com/sdk/api_diff/8/changes/android.media.AudioManager.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.Settings.Secure.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.Contacts.PresenceColumns.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.ContactsContract.StatusColumns.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.pm.ApplicationInfo.html
+http://developer.android.com/sdk/api_diff/8/changes/android.Manifest.permission.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.Context.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.Audio.AudioColumns.html
+http://developer.android.com/sdk/api_diff/8/changes/android.os.Build.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.WindowManager.LayoutParams.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.pm.ActivityInfo.html
+http://developer.android.com/sdk/api_diff/8/changes/android.database.sqlite.SQLiteDatabase.html
+http://developer.android.com/sdk/api_diff/8/changes/android.app.SearchManager.html
+http://developer.android.com/sdk/api_diff/8/changes/android.R.id.html
+http://developer.android.com/sdk/api_diff/8/changes/android.R.anim.html
+http://developer.android.com/sdk/api_diff/8/changes/dalvik.system.Zygote.html
+http://developer.android.com/sdk/api_diff/8/changes/dalvik.system.VMDebug.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.SyncResult.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.pm.ComponentInfo.html
+http://developer.android.com/sdk/api_diff/8/changes/android.os.Environment.html
+http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Node.html
+http://developer.android.com/sdk/api_diff/8/changes/android.text.AndroidCharacter.html
+http://developer.android.com/sdk/api_diff/8/changes/android.R.attr.html
+http://developer.android.com/sdk/api_diff/8/changes/android.speech.tts.TextToSpeech.Engine.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.Browser.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.pm.PackageManager.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.ViewGroup.LayoutParams.html
+http://developer.android.com/sdk/api_diff/8/changes/android.hardware.Camera.Parameters.html
+http://developer.android.com/sdk/api_diff/8/changes/android.os.Build.VERSION_CODES.html
+http://developer.android.com/sdk/api_diff/8/changes/android.graphics.PixelFormat.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.HapticFeedbackConstants.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.Settings.System.html
+http://developer.android.com/sdk/api_diff/8/changes/android.database.sqlite.SQLiteProgram.html
+http://developer.android.com/sdk/api_diff/8/changes/android.webkit.JsResult.html
+http://developer.android.com/sdk/api_diff/8/changes/android.telephony.TelephonyManager.html
+http://developer.android.com/sdk/api_diff/8/changes/dalvik.bytecode.Opcodes.html
+http://developer.android.com/sdk/api_diff/8/changes/android.location.LocationManager.html
+http://developer.android.com/sdk/api_diff/8/changes/android.app.ActivityManager.ProcessErrorStateInfo.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.ContentResolver.html
+http://developer.android.com/sdk/api_diff/8/changes/android.media.ExifInterface.html
+http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.DOMException.html
+http://developer.android.com/sdk/api_diff/8/changes/android.net.ConnectivityManager.html
+http://developer.android.com/sdk/api_diff/8/changes/android.hardware.Sensor.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.res.Configuration.html
+http://developer.android.com/reference/android/accounts/AccountManagerCallback.html
+http://developer.android.com/reference/android/accounts/AccountManagerFuture.html
+http://developer.android.com/reference/android/accounts/OnAccountsUpdateListener.html
+http://developer.android.com/reference/android/accounts/AccountsException.html
+http://developer.android.com/reference/android/accounts/AuthenticatorException.html
+http://developer.android.com/reference/android/accounts/NetworkErrorException.html
+http://developer.android.com/reference/android/accounts/OperationCanceledException.html
+http://developer.android.com/reference/dalvik/bytecode/Opcodes.html
+http://developer.android.com/reference/dalvik/bytecode/package-descr.html
+http://developer.android.com/sdk/api_diff/3/changes/android.database.Cursor.html
+http://developer.android.com/sdk/api_diff/3/changes/android.database.CursorWrapper.html
+http://developer.android.com/sdk/api_diff/3/changes/android.database.DatabaseUtils.html
+http://developer.android.com/reference/javax/sql/ConnectionPoolDataSource.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LabelView.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/custom_view_1.html
+http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NoteEditor.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/index.html
+http://developer.android.com/reference/org/apache/http/conn/ssl/SSLSocketFactory.html
+http://developer.android.com/reference/android/location/package-descr.html
+http://developer.android.com/resources/samples/AccessibilityService/res/values/strings.html
+http://developer.android.com/sdk/api_diff/3/changes/android.net.ConnectivityManager.html
+http://developer.android.com/sdk/api_diff/3/changes/android.net.NetworkInfo.html
+http://developer.android.com/reference/org/apache/http/protocol/ExecutionContext.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpExpectationVerifier.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpRequestHandler.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpRequestHandlerResolver.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpRequestInterceptorList.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpResponseInterceptorList.html
+http://developer.android.com/reference/org/apache/http/protocol/BasicHttpContext.html
+http://developer.android.com/reference/org/apache/http/protocol/DefaultedHttpContext.html
+http://developer.android.com/reference/org/apache/http/protocol/HTTP.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpDateGenerator.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpRequestExecutor.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpRequestHandlerRegistry.html
+http://developer.android.com/reference/org/apache/http/protocol/HttpService.html
+http://developer.android.com/reference/org/apache/http/protocol/ResponseConnControl.html
+http://developer.android.com/reference/org/apache/http/protocol/ResponseContent.html
+http://developer.android.com/reference/org/apache/http/protocol/ResponseDate.html
+http://developer.android.com/reference/org/apache/http/protocol/ResponseServer.html
+http://developer.android.com/reference/org/apache/http/protocol/SyncBasicHttpContext.html
+http://developer.android.com/reference/org/apache/http/protocol/UriPatternMatcher.html
+http://developer.android.com/resources/samples/BluetoothChat/res/drawable/index.html
+http://developer.android.com/resources/samples/BluetoothChat/res/drawable-hdpi/index.html
+http://developer.android.com/resources/samples/BluetoothChat/res/layout/index.html
+http://developer.android.com/resources/samples/BluetoothChat/res/menu/index.html
+http://developer.android.com/resources/samples/BluetoothChat/res/values/index.html
+http://developer.android.com/sdk/api_diff/6/changes/alldiffs_index_additions.html
+http://developer.android.com/sdk/api_diff/6/changes/alldiffs_index_changes.html
+http://developer.android.com/sdk/api_diff/6/changes/android.accounts.AbstractAccountAuthenticator.html
+http://developer.android.com/sdk/api_diff/6/changes/pkg_android.html
+http://developer.android.com/sdk/api_diff/6/changes/pkg_android.accounts.html
+http://developer.android.com/sdk/api_diff/6/changes/pkg_android.os.html
+http://developer.android.com/sdk/api_diff/6/changes/pkg_android.view.html
+http://developer.android.com/sdk/api_diff/6/changes/android.os.Build.VERSION_CODES.html
+http://developer.android.com/sdk/api_diff/6/changes/android.R.attr.html
+http://developer.android.com/sdk/api_diff/6/changes/android.view.WindowManager.LayoutParams.html
+http://developer.android.com/reference/javax/net/ssl/package-descr.html
+http://developer.android.com/reference/android/test/suitebuilder/TestMethod.html
+http://developer.android.com/reference/android/test/suitebuilder/TestSuiteBuilder.html
+http://developer.android.com/reference/android/test/suitebuilder/TestSuiteBuilder.FailedToCreateTests.html
+http://developer.android.com/reference/android/test/suitebuilder/package-descr.html
+http://developer.android.com/sdk/api_diff/8/changes/jdiff_statistics.html
+http://developer.android.com/reference/java/lang/annotation/AnnotationFormatError.html
+http://developer.android.com/reference/java/lang/annotation/AnnotationTypeMismatchException.html
+http://developer.android.com/reference/java/util/prefs/BackingStoreException.html
+http://developer.android.com/reference/java/sql/BatchUpdateException.html
+http://developer.android.com/reference/javax/sql/ConnectionEvent.html
+http://developer.android.com/reference/java/sql/DataTruncation.html
+http://developer.android.com/reference/java/lang/reflect/GenericSignatureFormatError.html
+http://developer.android.com/reference/java/lang/annotation/IncompleteAnnotationException.html
+http://developer.android.com/reference/java/beans/IndexedPropertyChangeEvent.html
+http://developer.android.com/reference/java/util/prefs/InvalidPreferencesFormatException.html
+http://developer.android.com/reference/java/lang/reflect/InvocationTargetException.html
+http://developer.android.com/reference/org/w3c/dom/ls/LSException.html
+http://developer.android.com/reference/java/lang/reflect/MalformedParameterizedTypeException.html
+http://developer.android.com/reference/java/math/MathContext.html
+http://developer.android.com/reference/java/util/prefs/NodeChangeEvent.html
+http://developer.android.com/reference/javax/security/auth/callback/PasswordCallback.html
+http://developer.android.com/reference/java/util/prefs/PreferenceChangeEvent.html
+http://developer.android.com/reference/java/beans/PropertyChangeEvent.html
+http://developer.android.com/reference/java/beans/PropertyChangeSupport.html
+http://developer.android.com/reference/java/lang/reflect/Proxy.html
+http://developer.android.com/reference/javax/sql/RowSetEvent.html
+http://developer.android.com/reference/java/sql/SQLClientInfoException.html
+http://developer.android.com/reference/java/sql/SQLDataException.html
+http://developer.android.com/reference/java/sql/SQLException.html
+http://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException.html
+http://developer.android.com/reference/java/sql/SQLIntegrityConstraintViolationException.html
+http://developer.android.com/reference/java/sql/SQLInvalidAuthorizationSpecException.html
+http://developer.android.com/reference/java/sql/SQLNonTransientConnectionException.html
+http://developer.android.com/reference/java/sql/SQLNonTransientException.html
+http://developer.android.com/reference/java/sql/SQLRecoverableException.html
+http://developer.android.com/reference/java/sql/SQLSyntaxErrorException.html
+http://developer.android.com/reference/java/sql/SQLTimeoutException.html
+http://developer.android.com/reference/java/sql/SQLTransactionRollbackException.html
+http://developer.android.com/reference/java/sql/SQLTransientConnectionException.html
+http://developer.android.com/reference/java/sql/SQLTransientException.html
+http://developer.android.com/reference/java/sql/SQLWarning.html
+http://developer.android.com/reference/javax/sql/StatementEvent.html
+http://developer.android.com/reference/java/lang/reflect/UndeclaredThrowableException.html
+http://developer.android.com/reference/javax/security/auth/callback/UnsupportedCallbackException.html
+http://developer.android.com/reference/javax/xml/xpath/XPathException.html
+http://developer.android.com/reference/javax/xml/xpath/XPathExpressionException.html
+http://developer.android.com/reference/javax/xml/xpath/XPathFactoryConfigurationException.html
+http://developer.android.com/reference/javax/xml/xpath/XPathFunctionException.html
+http://developer.android.com/reference/javax/sql/PooledConnection.html
+http://developer.android.com/reference/javax/sql/RowSet.html
+http://developer.android.com/reference/javax/security/auth/callback/Callback.html
+http://developer.android.com/reference/javax/net/ServerSocketFactory.html
+http://developer.android.com/reference/javax/net/SocketFactory.html
+http://developer.android.com/reference/javax/net/package-descr.html
+http://developer.android.com/sdk/api_diff/3/changes/android.test.mock.MockPackageManager.html
+http://developer.android.com/reference/android/test/package-descr.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.ArrowKeyMovementMethod.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.BaseKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.DateKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.DateTimeKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.DialerKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.DigitsKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.KeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.MetaKeyKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.MovementMethod.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.MultiTapKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.QwertyKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.ScrollingMovementMethod.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.TextKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.TimeKeyListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.method.Touch.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.animation.Animation.html
+http://developer.android.com/sdk/api_diff/3/changes/android.view.animation.Transformation.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/drawable/index.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/values/index.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/xml/index.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.res.AssetFileDescriptor.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.res.Configuration.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.res.Resources.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.res.TypedArray.html
+http://developer.android.com/reference/org/apache/http/conn/package-descr.html
+http://developer.android.com/reference/java/sql/Array.html
+http://developer.android.com/reference/java/sql/Blob.html
+http://developer.android.com/reference/java/sql/Clob.html
+http://developer.android.com/reference/java/sql/Connection.html
+http://developer.android.com/reference/java/sql/Driver.html
+http://developer.android.com/reference/java/sql/NClob.html
+http://developer.android.com/reference/java/sql/ParameterMetaData.html
+http://developer.android.com/reference/java/sql/PreparedStatement.html
+http://developer.android.com/reference/java/sql/Ref.html
+http://developer.android.com/reference/java/sql/ResultSet.html
+http://developer.android.com/reference/java/sql/ResultSetMetaData.html
+http://developer.android.com/reference/java/sql/RowId.html
+http://developer.android.com/reference/java/sql/Savepoint.html
+http://developer.android.com/reference/java/sql/SQLData.html
+http://developer.android.com/reference/java/sql/SQLInput.html
+http://developer.android.com/reference/java/sql/SQLXML.html
+http://developer.android.com/reference/java/sql/Statement.html
+http://developer.android.com/reference/java/sql/Struct.html
+http://developer.android.com/reference/java/sql/Wrapper.html
+http://developer.android.com/reference/java/sql/DriverManager.html
+http://developer.android.com/reference/java/sql/DriverPropertyInfo.html
+http://developer.android.com/reference/java/sql/Types.html
+http://developer.android.com/sdk/api_diff/8/changes/constructors_index_removals.html
+http://developer.android.com/sdk/api_diff/8/changes/constructors_index_additions.html
+http://developer.android.com/sdk/api_diff/8/changes/constructors_index_changes.html
+http://developer.android.com/sdk/api_diff/8/changes/android.test.ActivityInstrumentationTestCase2.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.GestureDetector.html
+http://developer.android.com/sdk/api_diff/8/changes/android.net.http.SslCertificate.html
+http://developer.android.com/sdk/api_diff/8/changes/android.net.SSLCertificateSocketFactory.html
+http://developer.android.com/sdk/api_diff/8/changes/javax.xml.XMLConstants.html
+http://developer.android.com/reference/java/security/package-descr.html
+http://developer.android.com/reference/java/nio/channels/spi/AbstractSelectionKey.html
+http://developer.android.com/reference/java/nio/channels/spi/AbstractSelector.html
+http://developer.android.com/resources/samples/JetBoy/JETBOY_content/JETBOY_Music.logic/index.html
+http://developer.android.com/reference/android/media/audiofx/AudioEffect.OnControlStatusChangeListener.html
+http://developer.android.com/reference/android/media/audiofx/AudioEffect.OnEnableStatusChangeListener.html
+http://developer.android.com/reference/android/media/audiofx/BassBoost.OnParameterChangeListener.html
+http://developer.android.com/reference/android/media/audiofx/EnvironmentalReverb.OnParameterChangeListener.html
+http://developer.android.com/reference/android/media/audiofx/Equalizer.OnParameterChangeListener.html
+http://developer.android.com/reference/android/media/audiofx/PresetReverb.OnParameterChangeListener.html
+http://developer.android.com/reference/android/media/audiofx/Virtualizer.OnParameterChangeListener.html
+http://developer.android.com/reference/android/media/audiofx/Visualizer.OnDataCaptureListener.html
+http://developer.android.com/reference/android/media/audiofx/AudioEffect.Descriptor.html
+http://developer.android.com/reference/android/media/audiofx/BassBoost.html
+http://developer.android.com/reference/android/media/audiofx/BassBoost.Settings.html
+http://developer.android.com/reference/android/media/audiofx/EnvironmentalReverb.html
+http://developer.android.com/reference/android/media/audiofx/EnvironmentalReverb.Settings.html
+http://developer.android.com/reference/android/media/audiofx/Equalizer.html
+http://developer.android.com/reference/android/media/audiofx/Equalizer.Settings.html
+http://developer.android.com/reference/android/media/audiofx/PresetReverb.html
+http://developer.android.com/reference/android/media/audiofx/PresetReverb.Settings.html
+http://developer.android.com/reference/android/media/audiofx/Virtualizer.html
+http://developer.android.com/reference/android/media/audiofx/Virtualizer.Settings.html
+http://developer.android.com/reference/android/media/audiofx/Visualizer.html
+http://developer.android.com/reference/android/graphics/package-descr.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.Browser.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.Contacts.Intents.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.Contacts.Intents.Insert.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.Contacts.PeopleColumns.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.AlbumColumns.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.Media.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Images.Media.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Video.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Video.VideoColumns.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.Settings.html
+http://developer.android.com/sdk/api_diff/3/changes/android.provider.Settings.System.html
+http://developer.android.com/reference/android/test/mock/package-descr.html
+http://developer.android.com/resources/tutorials/views/hello-timepicker.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/layout/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/values/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/xml/index.html
+http://developer.android.com/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html
+http://developer.android.com/resources/tutorials/views/hello-gallery.html
+http://developer.android.com/resources/samples/BackupRestore/res/layout/backup_restore.html
+http://developer.android.com/sdk/api_diff/3/changes/android.util.SparseIntArray.html
+http://developer.android.com/sdk/api_diff/3/changes/android.util.TimeUtils.html
+http://developer.android.com/sdk/api_diff/6/changes/jdiff_statistics.html
+http://developer.android.com/reference/org/xml/sax/ext/package-descr.html
+http://developer.android.com/sdk/api_diff/3/changes/dalvik.system.DexFile.html
+http://developer.android.com/sdk/api_diff/3/changes/dalvik.system.VMDebug.html
+http://developer.android.com/sdk/api_diff/3/changes/dalvik.system.Zygote.html
+http://developer.android.com/reference/junit/runner/BaseTestRunner.html
+http://developer.android.com/reference/junit/runner/TestSuiteLoader.html
+http://developer.android.com/sdk/api_diff/7/changes/jdiff_topleftframe.html
+http://developer.android.com/sdk/api_diff/7/changes/alldiffs_index_all.html
+http://developer.android.com/sdk/api_diff/7/changes/changes-summary.html
+http://developer.android.com/resources/samples/NotePad/res/index.html
+http://developer.android.com/resources/samples/NotePad/src/index.html
+http://developer.android.com/resources/samples/NotePad/tests/index.html
+http://developer.android.com/resources/samples/NotePad/AndroidManifest.html
+http://developer.android.com/sdk/api_diff/4/changes/alldiffs_index_removals.html
+http://developer.android.com/sdk/api_diff/4/changes/alldiffs_index_additions.html
+http://developer.android.com/sdk/api_diff/4/changes/alldiffs_index_changes.html
+http://developer.android.com/sdk/api_diff/4/changes/java.util.concurrent.locks.AbstractQueuedSynchronizer.html
+http://developer.android.com/sdk/api_diff/4/changes/android.provider.Settings.Secure.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.Context.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.Intent.html
+http://developer.android.com/sdk/api_diff/4/changes/android.app.Activity.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html
+http://developer.android.com/sdk/api_diff/4/changes/android.Manifest.permission.html
+http://developer.android.com/sdk/api_diff/4/changes/android.view.View.html
+http://developer.android.com/sdk/api_diff/4/changes/android.location.Address.html
+http://developer.android.com/sdk/api_diff/4/changes/android.R.attr.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.app.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.content.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.content.pm.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.content.res.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.graphics.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.hardware.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.location.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.media.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.net.wifi.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.opengl.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.os.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.provider.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.telephony.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.test.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.test.mock.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.text.style.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.util.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.view.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.view.animation.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_android.widget.html
+http://developer.android.com/sdk/api_diff/4/changes/android.test.AndroidTestCase.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html
+http://developer.android.com/sdk/api_diff/4/changes/android.R.anim.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html
+http://developer.android.com/sdk/api_diff/4/changes/android.media.AudioManager.html
+http://developer.android.com/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.Bitmap.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html
+http://developer.android.com/sdk/api_diff/4/changes/android.os.Build.html
+http://developer.android.com/sdk/api_diff/4/changes/android.os.Build.VERSION.html
+http://developer.android.com/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.Canvas.html
+http://developer.android.com/sdk/api_diff/4/changes/android.widget.CheckedTextView.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.ComponentName.html
+http://developer.android.com/sdk/api_diff/4/changes/android.view.VelocityTracker.html
+http://developer.android.com/sdk/api_diff/4/changes/android.util.Config.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.res.Configuration.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.ContentProvider.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.ContextWrapper.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.Typeface.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html
+http://developer.android.com/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html
+http://developer.android.com/sdk/api_diff/4/changes/android.telephony.TelephonyManager.html
+http://developer.android.com/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html
+http://developer.android.com/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html
+http://developer.android.com/sdk/api_diff/4/changes/android.util.TypedValue.html
+http://developer.android.com/sdk/api_diff/4/changes/android.util.DisplayMetrics.html
+http://developer.android.com/sdk/api_diff/4/changes/android.app.Dialog.html
+http://developer.android.com/sdk/api_diff/4/changes/android.view.Window.Callback.html
+http://developer.android.com/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html
+http://developer.android.com/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html
+http://developer.android.com/sdk/api_diff/4/changes/android.app.SearchManager.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.PackageManager.html
+http://developer.android.com/sdk/api_diff/4/changes/android.test.mock.MockContext.html
+http://developer.android.com/sdk/api_diff/4/changes/android.media.MediaRecorder.html
+http://developer.android.com/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html
+http://developer.android.com/sdk/api_diff/4/changes/android.widget.ListView.html
+http://developer.android.com/sdk/api_diff/4/changes/android.widget.TabWidget.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.NinePatch.html
+http://developer.android.com/sdk/api_diff/4/changes/android.app.PendingIntent.html
+http://developer.android.com/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html
+http://developer.android.com/sdk/api_diff/4/changes/android.view.ViewConfiguration.html
+http://developer.android.com/sdk/api_diff/4/changes/android.widget.PopupWindow.html
+http://developer.android.com/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html
+http://developer.android.com/sdk/api_diff/4/changes/android.text.style.ImageSpan.html
+http://developer.android.com/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html
+http://developer.android.com/sdk/api_diff/4/changes/android.app.LauncherActivity.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_java.util.concurrent.html
+http://developer.android.com/sdk/api_diff/4/changes/pkg_java.util.concurrent.locks.html
+http://developer.android.com/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html
+http://developer.android.com/sdk/api_diff/4/changes/android.hardware.SensorManager.html
+http://developer.android.com/sdk/api_diff/4/changes/android.Manifest.permission_group.html
+http://developer.android.com/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html
+http://developer.android.com/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html
+http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html
+http://developer.android.com/sdk/api_diff/4/changes/android.R.drawable.html
+http://developer.android.com/sdk/api_diff/4/changes/android.R.style.html
+http://developer.android.com/sdk/api_diff/4/changes/android.provider.Settings.System.html
+http://developer.android.com/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html
+http://developer.android.com/sdk/api_diff/4/changes/android.view.Surface.html
+http://developer.android.com/sdk/api_diff/4/changes/java.util.concurrent.TimeUnit.html
+http://developer.android.com/sdk/api_diff/4/changes/android.media.ToneGenerator.html
+http://developer.android.com/resources/samples/LunarLander/res/drawable/index.html
+http://developer.android.com/resources/samples/LunarLander/res/drawable-land/index.html
+http://developer.android.com/resources/samples/LunarLander/res/drawable-port/index.html
+http://developer.android.com/resources/samples/LunarLander/res/layout/index.html
+http://developer.android.com/resources/samples/LunarLander/res/values/index.html
+http://developer.android.com/reference/android/net/wifi/package-descr.html
+http://developer.android.com/resources/samples/TicTacToeLib/AndroidManifest.html
+http://developer.android.com/resources/samples/TicTacToeMain/AndroidManifest.html
+http://developer.android.com/reference/java/lang/reflect/GenericArrayType.html
+http://developer.android.com/reference/java/lang/reflect/InvocationHandler.html
+http://developer.android.com/reference/java/lang/reflect/ParameterizedType.html
+http://developer.android.com/reference/java/lang/reflect/WildcardType.html
+http://developer.android.com/reference/java/lang/reflect/AccessibleObject.html
+http://developer.android.com/reference/java/lang/reflect/Array.html
+http://developer.android.com/resources/samples/Home/src/com/index.html
+http://developer.android.com/reference/android/text/method/ArrowKeyMovementMethod.html
+http://developer.android.com/reference/android/text/method/BaseKeyListener.html
+http://developer.android.com/reference/android/text/method/DateKeyListener.html
+http://developer.android.com/reference/android/text/method/DateTimeKeyListener.html
+http://developer.android.com/reference/android/text/method/DialerKeyListener.html
+http://developer.android.com/reference/android/text/method/DigitsKeyListener.html
+http://developer.android.com/reference/android/text/method/HideReturnsTransformationMethod.html
+http://developer.android.com/reference/android/text/method/NumberKeyListener.html
+http://developer.android.com/reference/android/text/method/QwertyKeyListener.html
+http://developer.android.com/reference/android/text/method/ReplacementTransformationMethod.html
+http://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html
+http://developer.android.com/reference/android/text/method/SingleLineTransformationMethod.html
+http://developer.android.com/reference/android/text/method/TimeKeyListener.html
+http://developer.android.com/reference/android/text/method/Touch.html
+http://developer.android.com/resources/samples/AccessibilityService/src/com/example/index.html
+http://developer.android.com/sdk/api_diff/4/changes/jdiff_statistics.html
+http://developer.android.com/resources/samples/Wiktionary/res/anim/index.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/index.html
+http://developer.android.com/resources/samples/Wiktionary/res/layout/index.html
+http://developer.android.com/resources/samples/Wiktionary/res/menu/index.html
+http://developer.android.com/resources/samples/Wiktionary/res/values/index.html
+http://developer.android.com/resources/samples/Wiktionary/res/xml/index.html
+http://developer.android.com/reference/java/util/prefs/NodeChangeListener.html
+http://developer.android.com/reference/java/util/prefs/PreferenceChangeListener.html
+http://developer.android.com/reference/java/util/prefs/PreferencesFactory.html
+http://developer.android.com/reference/java/util/prefs/AbstractPreferences.html
+http://developer.android.com/reference/java/util/prefs/Preferences.html
+http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.Drawable.html
+http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.RotateDrawable.html
+http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.ScaleDrawable.html
+http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.TransitionDrawable.html
+http://developer.android.com/resources/samples/Spinner/src/com/index.html
+http://developer.android.com/reference/java/beans/PropertyChangeListenerProxy.html
+http://developer.android.com/reference/org/apache/http/auth/params/AuthParamBean.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.AbsoluteSizeSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.AlignmentSpan.Standard.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.BackgroundColorSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.BulletSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.ClickableSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.DynamicDrawableSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.ForegroundColorSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.ImageSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.LeadingMarginSpan.Standard.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.MaskFilterSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.QuoteSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.RasterizerSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.RelativeSizeSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.ScaleXSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.StrikethroughSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.StyleSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.SubscriptSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.SuperscriptSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.TextAppearanceSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.TypefaceSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.URLSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.UnderlineSpan.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.style.UpdateLayout.html
+http://developer.android.com/reference/java/lang/annotation/Target.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/drawable/ic_launcher_wallpaper.html
+http://developer.android.com/sdk/api_diff/3/changes/android.telephony.PhoneNumberUtils.html
+http://developer.android.com/sdk/api_diff/3/changes/android.telephony.TelephonyManager.html
+http://developer.android.com/reference/org/apache/http/client/entity/UrlEncodedFormEntity.html
+http://developer.android.com/resources/samples/NotePad/tests/src/index.html
+http://developer.android.com/resources/samples/NotePad/tests/AndroidManifest.html
+http://developer.android.com/reference/java/beans/PropertyChangeListener.html
+http://developer.android.com/resources/tutorials/views/hello-tabwidget.html
+http://developer.android.com/resources/samples/Home/src/com/example/index.html
+http://developer.android.com/reference/javax/sql/CommonDataSource.html
+http://developer.android.com/reference/javax/sql/ConnectionEventListener.html
+http://developer.android.com/reference/javax/sql/RowSetInternal.html
+http://developer.android.com/reference/javax/sql/RowSetListener.html
+http://developer.android.com/reference/javax/sql/RowSetMetaData.html
+http://developer.android.com/reference/javax/sql/RowSetReader.html
+http://developer.android.com/reference/javax/sql/RowSetWriter.html
+http://developer.android.com/reference/javax/sql/StatementEventListener.html
+http://developer.android.com/resources/samples/BluetoothChat/res/menu/option_menu.html
+http://developer.android.com/sdk/api_diff/3/changes/java.util.logging.Level.html
+http://developer.android.com/sdk/api_diff/3/changes/java.util.logging.LogManager.html
+http://developer.android.com/resources/samples/BluetoothChat/res/drawable-hdpi/app_icon.html
+http://developer.android.com/reference/android/inputmethodservice/package-descr.html
+http://developer.android.com/sdk/api_diff/9/changes/classes_index_removals.html
+http://developer.android.com/sdk/api_diff/9/changes/classes_index_additions.html
+http://developer.android.com/sdk/api_diff/9/changes/classes_index_changes.html
+http://developer.android.com/reference/android/content/pm/package-descr.html
 http://developer.android.com/resources/samples/WiktionarySimple/res/layout/widget_message.html
 http://developer.android.com/resources/samples/WiktionarySimple/res/layout/widget_word.html
-http://developer.android.com/sdk/api_diff/9/changes/jdiff_statistics.html
-http://developer.android.com/resources/samples/SipDemo/res/values/strings.html
-http://developer.android.com/reference/org/apache/http/impl/package-descr.html
-http://developer.android.com/reference/android/view/animation/package-descr.html
-http://developer.android.com/reference/android/gesture/package-descr.html
-http://developer.android.com/reference/android/text/format/DateUtils.html
-http://developer.android.com/reference/android/text/format/Formatter.html
-http://developer.android.com/sdk/api_diff/9/changes/fields_index_removals.html
-http://developer.android.com/sdk/api_diff/9/changes/fields_index_additions.html
-http://developer.android.com/sdk/api_diff/9/changes/fields_index_changes.html
-http://developer.android.com/reference/javax/microedition/khronos/opengles/GL.html
-http://developer.android.com/reference/android/appwidget/package-descr.html
-http://developer.android.com/reference/org/apache/http/client/utils/package-descr.html
-http://developer.android.com/resources/samples/BluetoothChat/res/drawable-hdpi/app_icon.html
-http://developer.android.com/resources/samples/SipDemo/res/layout/call_address_dialog.html
-http://developer.android.com/resources/samples/SipDemo/res/layout/walkietalkie.html
-http://developer.android.com/resources/tutorials/views/hello-gridview.html
-http://developer.android.com/sdk/api_diff/5/changes/packages_index_additions.html
-http://developer.android.com/sdk/api_diff/5/changes/packages_index_changes.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.app.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.content.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.content.pm.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.content.res.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.database.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.database.sqlite.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.graphics.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.graphics.drawable.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.hardware.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.inputmethodservice.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.location.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.media.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.opengl.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.os.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.provider.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.telephony.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.test.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.test.mock.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.text.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.text.format.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.text.style.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.util.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.view.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.view.animation.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.webkit.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_android.widget.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_dalvik.system.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_java.util.concurrent.html
-http://developer.android.com/sdk/api_diff/5/changes/pkg_java.util.concurrent.locks.html
-http://developer.android.com/resources/samples/AccelerometerPlay/src/com/index.html
-http://developer.android.com/sdk/api_diff/9/changes/packages_index_additions.html
-http://developer.android.com/sdk/api_diff/9/changes/packages_index_changes.html
-http://developer.android.com/sdk/api_diff/6/changes/jdiff_topleftframe.html
-http://developer.android.com/sdk/api_diff/6/changes/alldiffs_index_all.html
-http://developer.android.com/sdk/api_diff/6/changes/changes-summary.html
-http://developer.android.com/resources/tutorials/views/hello-relativelayout.html
-http://developer.android.com/reference/android/view/ViewDebug.CapturedViewProperty.html
-http://developer.android.com/reference/android/view/ViewDebug.ExportedProperty.html
-http://developer.android.com/reference/android/view/ViewDebug.FlagToString.html
-http://developer.android.com/reference/android/view/ViewDebug.IntToString.html
-http://developer.android.com/resources/samples/AccelerometerPlay/src/com/example/index.html
-http://developer.android.com/resources/samples/ApiDemos/assets/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/index.html
-http://developer.android.com/resources/samples/ApiDemos/src/index.html
-http://developer.android.com/resources/samples/ApiDemos/tests/index.html
-http://developer.android.com/resources/samples/ApiDemos/AndroidManifest.html
-http://developer.android.com/sdk/api_diff/5/changes/jdiff_statistics.html
-http://developer.android.com/sdk/api_diff/5/changes/android.text.format.DateUtils.html
-http://developer.android.com/sdk/api_diff/5/changes/android.text.format.Formatter.html
-http://developer.android.com/sdk/api_diff/8/changes/jdiff_topleftframe.html
-http://developer.android.com/sdk/api_diff/8/changes/alldiffs_index_all.html
-http://developer.android.com/sdk/api_diff/8/changes/changes-summary.html
-http://developer.android.com/resources/samples/Spinner/res/index.html
-http://developer.android.com/resources/samples/Spinner/src/index.html
-http://developer.android.com/resources/samples/Spinner/AndroidManifest.html
+http://developer.android.com/reference/org/apache/http/params/package-descr.html
+http://developer.android.com/reference/android/graphics/drawable/shapes/ArcShape.html
+http://developer.android.com/reference/android/graphics/drawable/shapes/PathShape.html
+http://developer.android.com/reference/android/graphics/drawable/shapes/RectShape.html
+http://developer.android.com/reference/android/graphics/drawable/shapes/RoundRectShape.html
+http://developer.android.com/resources/samples/ContactManager/res/drawable-mdpi/icon.html
+http://developer.android.com/resources/samples/BackupRestore/src/com/example/index.html
+http://developer.android.com/reference/org/apache/http/message/package-descr.html
+http://developer.android.com/resources/samples/NFCDemo/res/drawable/index.html
+http://developer.android.com/resources/samples/NFCDemo/res/layout/index.html
+http://developer.android.com/resources/samples/NFCDemo/res/raw/index.html
+http://developer.android.com/resources/samples/NFCDemo/res/values/index.html
+http://developer.android.com/reference/android/bluetooth/package-descr.html
+http://developer.android.com/resources/samples/SipDemo/res/drawable/index.html
+http://developer.android.com/resources/samples/SipDemo/res/layout/index.html
+http://developer.android.com/resources/samples/SipDemo/res/values/index.html
+http://developer.android.com/resources/samples/SipDemo/res/xml/index.html
+http://developer.android.com/reference/android/speech/tts/TextToSpeech.Engine.html
+http://developer.android.com/reference/javax/xml/xpath/XPath.html
+http://developer.android.com/reference/javax/xml/xpath/XPathExpression.html
+http://developer.android.com/reference/javax/xml/xpath/XPathFunction.html
+http://developer.android.com/reference/javax/xml/xpath/XPathFunctionResolver.html
+http://developer.android.com/reference/javax/xml/xpath/XPathVariableResolver.html
+http://developer.android.com/reference/javax/xml/xpath/XPathConstants.html
+http://developer.android.com/reference/javax/xml/xpath/XPathFactory.html
+http://developer.android.com/resources/samples/BusinessCard/res/index.html
+http://developer.android.com/resources/samples/BusinessCard/src/index.html
+http://developer.android.com/resources/samples/BusinessCard/AndroidManifest.html
+http://developer.android.com/sdk/api_diff/6/changes/packages_index_all.html
+http://developer.android.com/sdk/api_diff/6/changes/classes_index_all.html
+http://developer.android.com/sdk/api_diff/6/changes/constructors_index_all.html
+http://developer.android.com/sdk/api_diff/6/changes/methods_index_all.html
+http://developer.android.com/sdk/api_diff/6/changes/fields_index_all.html
+http://developer.android.com/resources/samples/SipDemo/src/com/index.html
+http://developer.android.com/sdk/api_diff/8/changes/alldiffs_index_removals.html
+http://developer.android.com/sdk/api_diff/8/changes/alldiffs_index_additions.html
+http://developer.android.com/sdk/api_diff/8/changes/alldiffs_index_changes.html
+http://developer.android.com/sdk/api_diff/8/changes/android.widget.AbsListView.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.AbstractThreadedSyncAdapter.html
+http://developer.android.com/sdk/api_diff/8/changes/android.accounts.AccountManager.html
+http://developer.android.com/sdk/api_diff/8/changes/android.app.Activity.html
+http://developer.android.com/sdk/api_diff/8/changes/android.app.ActivityManager.html
+http://developer.android.com/sdk/api_diff/8/changes/android.hardware.Camera.html
+http://developer.android.com/sdk/api_diff/8/changes/android.test.mock.MockPackageManager.html
+http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Document.html
+http://developer.android.com/sdk/api_diff/8/changes/android.app.AlarmManager.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.accounts.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.app.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.content.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.content.pm.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.content.res.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.database.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.database.sqlite.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.gesture.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.graphics.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.hardware.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.location.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.media.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.net.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.net.http.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.opengl.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.os.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.provider.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.speech.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.speech.tts.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.telephony.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.test.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.test.mock.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.text.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.text.style.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.text.util.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.util.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.view.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.view.animation.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.webkit.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_android.widget.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.animation.Animation.html
+http://developer.android.com/sdk/api_diff/8/changes/java.util.regex.Matcher.html
+http://developer.android.com/sdk/api_diff/8/changes/android.speech.tts.TextToSpeech.html
+http://developer.android.com/sdk/api_diff/8/changes/java.util.ArrayList.html
+http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Attr.html
+http://developer.android.com/sdk/api_diff/8/changes/android.media.SoundPool.html
+http://developer.android.com/sdk/api_diff/8/changes/android.widget.BaseExpandableListAdapter.html
+http://developer.android.com/sdk/api_diff/8/changes/android.os.Bundle.html
+http://developer.android.com/sdk/api_diff/8/changes/android.webkit.CacheManager.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.CallLog.Calls.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.Images.Thumbnails.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.Video.Thumbnails.html
+http://developer.android.com/sdk/api_diff/8/changes/java.nio.charset.Charset.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.ComponentName.html
+http://developer.android.com/sdk/api_diff/8/changes/android.gesture.Gesture.html
+http://developer.android.com/sdk/api_diff/8/changes/android.gesture.GesturePoint.html
+http://developer.android.com/sdk/api_diff/8/changes/android.gesture.GestureStroke.html
+http://developer.android.com/sdk/api_diff/8/changes/java.util.regex.Pattern.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.ContactsContract.Groups.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.ContactsContract.RawContacts.html
+http://developer.android.com/sdk/api_diff/8/changes/android.content.ContextWrapper.html
+http://developer.android.com/sdk/api_diff/8/changes/android.database.DatabaseUtils.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_dalvik.bytecode.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_dalvik.system.html
+http://developer.android.com/sdk/api_diff/8/changes/java.net.DatagramSocketImpl.html
+http://developer.android.com/sdk/api_diff/8/changes/android.os.Debug.html
+http://developer.android.com/sdk/api_diff/8/changes/android.app.Dialog.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.View.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.Display.html
+http://developer.android.com/sdk/api_diff/8/changes/javax.xml.parsers.DocumentBuilder.html
+http://developer.android.com/sdk/api_diff/8/changes/javax.xml.parsers.DocumentBuilderFactory.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_org.w3c.dom.html
+http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.DOMImplementation.html
+http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Element.html
+http://developer.android.com/sdk/api_diff/8/changes/android.webkit.WebView.html
+http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Entity.html
+http://developer.android.com/sdk/api_diff/8/changes/android.util.EventLogTags.html
+http://developer.android.com/sdk/api_diff/8/changes/android.webkit.WebSettings.html
+http://developer.android.com/sdk/api_diff/8/changes/android.widget.ListView.html
+http://developer.android.com/sdk/api_diff/8/changes/android.test.mock.MockContext.html
+http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.NamedNodeMap.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.ViewConfiguration.html
+http://developer.android.com/sdk/api_diff/8/changes/javax.xml.parsers.SAXParser.html
+http://developer.android.com/sdk/api_diff/8/changes/javax.xml.parsers.SAXParserFactory.html
+http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Text.html
+http://developer.android.com/sdk/api_diff/8/changes/android.view.VelocityTracker.html
+http://developer.android.com/sdk/api_diff/8/changes/android.opengl.GLSurfaceView.html
+http://developer.android.com/sdk/api_diff/8/changes/java.util.HashMap.html
+http://developer.android.com/sdk/api_diff/8/changes/android.widget.ImageView.html
+http://developer.android.com/sdk/api_diff/8/changes/android.widget.TabWidget.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_java.net.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_java.nio.charset.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_java.util.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_java.util.regex.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_javax.xml.html
+http://developer.android.com/sdk/api_diff/8/changes/pkg_javax.xml.parsers.html
+http://developer.android.com/sdk/api_diff/8/changes/android.util.Log.html
+http://developer.android.com/sdk/api_diff/8/changes/android.opengl.Matrix.html
+http://developer.android.com/sdk/api_diff/8/changes/android.media.MediaRecorder.html
+http://developer.android.com/sdk/api_diff/8/changes/android.media.MediaScannerConnection.html
+http://developer.android.com/sdk/api_diff/8/changes/android.media.MediaScannerConnection.MediaScannerConnectionClient.html
+http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.Audio.Playlists.Members.html
+http://developer.android.com/sdk/api_diff/8/changes/android.webkit.WebChromeClient.html
+http://developer.android.com/sdk/api_diff/8/changes/android.webkit.WebViewClient.html
+http://developer.android.com/sdk/api_diff/8/changes/android.os.PowerManager.html
+http://developer.android.com/sdk/api_diff/8/changes/android.widget.RemoteViews.html
+http://developer.android.com/sdk/api_diff/8/changes/android.widget.VideoView.html
+http://developer.android.com/sdk/api_diff/8/changes/android.text.util.Rfc822Tokenizer.html
+http://developer.android.com/sdk/api_diff/3/changes/android.database.sqlite.SQLiteDatabase.html
+http://developer.android.com/sdk/api_diff/3/changes/android.net.wifi.WifiManager.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.Annotation.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.AutoText.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.SpanWatcher.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.Spanned.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.TextUtils.html
+http://developer.android.com/sdk/api_diff/3/changes/android.text.TextWatcher.html
+http://developer.android.com/reference/org/apache/http/protocol/package-descr.html
+http://developer.android.com/resources/samples/BusinessCard/res/layout/index.html
+http://developer.android.com/resources/samples/BusinessCard/res/values/index.html
+http://developer.android.com/sdk/api_diff/8/changes/packages_index_additions.html
+http://developer.android.com/sdk/api_diff/8/changes/packages_index_changes.html
 http://developer.android.com/resources/samples/SipDemo/res/drawable/btn_record.html
 http://developer.android.com/resources/samples/SipDemo/res/drawable/btn_speak_normal.html
 http://developer.android.com/resources/samples/SipDemo/res/drawable/btn_speak_pressed.html
 http://developer.android.com/resources/samples/SipDemo/res/drawable/btn_speak_selected.html
 http://developer.android.com/resources/samples/SipDemo/res/drawable/icon.html
-http://developer.android.com/resources/samples/NFCDemo/src/com/index.html
-http://developer.android.com/resources/samples/JetBoy/JETBOY_content/index.html
-http://developer.android.com/resources/samples/JetBoy/res/index.html
-http://developer.android.com/resources/samples/JetBoy/src/index.html
-http://developer.android.com/resources/samples/JetBoy/AndroidManifest.html
-http://developer.android.com/sdk/api_diff/5/changes/android.test.AndroidTestRunner.html
-http://developer.android.com/sdk/api_diff/5/changes/android.test.InstrumentationTestCase.html
-http://developer.android.com/sdk/api_diff/5/changes/android.database.sqlite.SQLiteDatabase.html
+http://developer.android.com/reference/org/apache/http/conn/ssl/package-descr.html
+http://developer.android.com/reference/org/apache/http/auth/params/AuthPNames.html
+http://developer.android.com/reference/org/apache/http/auth/params/AuthParams.html
+http://developer.android.com/sdk/api_diff/7/changes/packages_index_all.html
+http://developer.android.com/sdk/api_diff/7/changes/classes_index_all.html
+http://developer.android.com/sdk/api_diff/7/changes/constructors_index_all.html
+http://developer.android.com/sdk/api_diff/7/changes/methods_index_all.html
+http://developer.android.com/sdk/api_diff/7/changes/fields_index_all.html
+http://developer.android.com/reference/android/speech/tts/TextToSpeech.OnInitListener.html
+http://developer.android.com/reference/android/speech/tts/TextToSpeech.OnUtteranceCompletedListener.html
+http://developer.android.com/reference/android/speech/tts/TextToSpeech.html
+http://developer.android.com/reference/java/lang/annotation/Retention.html
+http://developer.android.com/sdk/api_diff/9/changes/methods_index_removals.html
+http://developer.android.com/sdk/api_diff/9/changes/methods_index_additions.html
+http://developer.android.com/sdk/api_diff/9/changes/methods_index_changes.html
+http://developer.android.com/reference/android/media/audiofx/package-descr.html
+http://developer.android.com/resources/samples/NFCDemo/res/values/strings.html
+http://developer.android.com/reference/android/sax/ElementListener.html
+http://developer.android.com/reference/android/sax/EndElementListener.html
+http://developer.android.com/reference/android/sax/EndTextElementListener.html
+http://developer.android.com/reference/android/sax/StartElementListener.html
+http://developer.android.com/reference/android/sax/TextElementListener.html
+http://developer.android.com/reference/android/sax/Element.html
+http://developer.android.com/reference/android/sax/RootElement.html
+http://developer.android.com/reference/android/sax/package-descr.html
+http://developer.android.com/reference/javax/xml/transform/dom/DOMLocator.html
+http://developer.android.com/resources/samples/LunarLander/res/drawable/app_lunar_lander.html
+http://developer.android.com/resources/samples/LunarLander/res/drawable/lander_crashed.html
+http://developer.android.com/resources/samples/LunarLander/res/drawable/lander_firing.html
+http://developer.android.com/resources/samples/LunarLander/res/drawable/lander_plain.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/index.html
+http://developer.android.com/resources/samples/JetBoy/res/layout/index.html
+http://developer.android.com/resources/samples/JetBoy/res/raw/index.html
+http://developer.android.com/resources/samples/JetBoy/res/values/index.html
+http://developer.android.com/reference/org/apache/http/conn/routing/package-descr.html
+http://developer.android.com/resources/samples/LunarLander/res/drawable-land/earthrise.html
+http://developer.android.com/resources/samples/NotePad/res/drawable/index.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/index.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-ldpi/index.html
+http://developer.android.com/resources/samples/NotePad/res/layout/index.html
+http://developer.android.com/resources/samples/NotePad/res/menu/index.html
+http://developer.android.com/resources/samples/NotePad/res/values/index.html
+http://developer.android.com/resources/samples/BusinessCard/res/values/strings.html
+http://developer.android.com/reference/android/view/package-descr.html
+http://developer.android.com/resources/samples/Spinner/res/layout/main.html
+http://developer.android.com/sdk/api_diff/6/changes/packages_index_changes.html
+http://developer.android.com/reference/javax/xml/transform/dom/package-descr.html
+http://developer.android.com/resources/samples/Home/res/anim/index.html
+http://developer.android.com/resources/samples/Home/res/color/index.html
+http://developer.android.com/resources/samples/Home/res/drawable/index.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/index.html
+http://developer.android.com/resources/samples/Home/res/drawable-land/index.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/index.html
+http://developer.android.com/resources/samples/Home/res/drawable-port/index.html
+http://developer.android.com/resources/samples/Home/res/layout/index.html
+http://developer.android.com/resources/samples/Home/res/layout-land/index.html
+http://developer.android.com/resources/samples/Home/res/layout-port/index.html
+http://developer.android.com/resources/samples/Home/res/values/index.html
+http://developer.android.com/resources/samples/Home/res/values-cs/index.html
+http://developer.android.com/resources/samples/Home/res/values-de-rDE/index.html
+http://developer.android.com/resources/samples/Home/res/values-es-rUS/index.html
+http://developer.android.com/resources/samples/Home/res/values-land/index.html
+http://developer.android.com/resources/samples/Home/res/values-nl-rNL/index.html
+http://developer.android.com/reference/junit/framework/package-descr.html
+http://developer.android.com/reference/org/apache/http/auth/params/package-descr.html
+http://developer.android.com/sdk/api_diff/3/changes/alldiffs_index_removals.html
+http://developer.android.com/sdk/api_diff/3/changes/alldiffs_index_additions.html
+http://developer.android.com/sdk/api_diff/3/changes/alldiffs_index_changes.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.AbsListView.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.AbsoluteLayout.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.AbsSeekBar.html
+http://developer.android.com/sdk/api_diff/3/changes/android.media.AudioManager.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.Intent.html
+http://developer.android.com/sdk/api_diff/3/changes/android.test.ActivityInstrumentationTestCase.html
+http://developer.android.com/sdk/api_diff/3/changes/android.location.LocationManager.html
+http://developer.android.com/sdk/api_diff/3/changes/java.util.jar.Pack200.Packer.html
+http://developer.android.com/sdk/api_diff/3/changes/java.util.jar.Pack200.Unpacker.html
+http://developer.android.com/sdk/api_diff/3/changes/android.R.id.html
+http://developer.android.com/sdk/api_diff/3/changes/android.R.attr.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.ArrayAdapter.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.html
+http://developer.android.com/sdk/api_diff/3/changes/android.hardware.SensorManager.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.TextView.html
+http://developer.android.com/sdk/api_diff/3/changes/android.Manifest.permission.html
+http://developer.android.com/sdk/api_diff/3/changes/android.os.Binder.html
+http://developer.android.com/sdk/api_diff/3/changes/android.graphics.Bitmap.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.BroadcastReceiver.html
+http://developer.android.com/sdk/api_diff/3/changes/android.os.Build.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.DialogInterface.html
+http://developer.android.com/sdk/api_diff/3/changes/android.hardware.Camera.html
+http://developer.android.com/sdk/api_diff/3/changes/android.graphics.Canvas.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html
+http://developer.android.com/sdk/api_diff/3/changes/android.os.Debug.html
+http://developer.android.com/sdk/api_diff/3/changes/java.lang.Character.UnicodeBlock.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.Chronometer.html
+http://developer.android.com/sdk/api_diff/3/changes/java.lang.Class.html
+http://developer.android.com/sdk/api_diff/3/changes/android.webkit.WebView.html
+http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.ContentProvider.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.ContentResolver.html
+http://developer.android.com/sdk/api_diff/3/changes/android.content.Context.html
+http://developer.android.com/sdk/api_diff/3/changes/android.graphics.RectF.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.CursorAdapter.html
+http://developer.android.com/sdk/api_diff/3/changes/android.R.drawable.html
+http://developer.android.com/sdk/api_diff/3/changes/android.R.string.html
+http://developer.android.com/sdk/api_diff/3/changes/android.preference.DialogPreference.html
+http://developer.android.com/sdk/api_diff/3/changes/android.test.TouchUtils.html
+http://developer.android.com/sdk/api_diff/3/changes/android.location.Location.html
+http://developer.android.com/sdk/api_diff/3/changes/android.os.IBinder.html
+http://developer.android.com/sdk/api_diff/3/changes/android.os.Environment.html
+http://developer.android.com/sdk/api_diff/3/changes/android.webkit.WebSettings.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.PopupWindow.html
+http://developer.android.com/sdk/api_diff/3/changes/android.webkit.WebHistoryItem.html
+http://developer.android.com/sdk/api_diff/3/changes/android.webkit.UrlInterceptHandler.html
+http://developer.android.com/sdk/api_diff/3/changes/android.webkit.UrlInterceptRegistry.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.Scroller.html
+http://developer.android.com/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.html
+http://developer.android.com/sdk/api_diff/3/changes/android.os.Looper.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.GridView.html
+http://developer.android.com/sdk/api_diff/3/changes/android.os.Handler.html
+http://developer.android.com/sdk/api_diff/3/changes/android.media.RingtoneManager.html
+http://developer.android.com/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html
+http://developer.android.com/sdk/api_diff/3/changes/android.webkit.URLUtil.html
+http://developer.android.com/sdk/api_diff/3/changes/android.media.MediaPlayer.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.ListView.html
+http://developer.android.com/sdk/api_diff/3/changes/android.media.SoundPool.html
+http://developer.android.com/sdk/api_diff/3/changes/android.media.MediaRecorder.html
+http://developer.android.com/sdk/api_diff/3/changes/android.media.MediaRecorder.OutputFormat.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.ProgressBar.html
+http://developer.android.com/sdk/api_diff/3/changes/android.os.Parcel.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.PopupWindow.OnDismissListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.test.ProviderTestCase.html
+http://developer.android.com/sdk/api_diff/3/changes/android.R.style.html
+http://developer.android.com/sdk/api_diff/3/changes/android.graphics.Rect.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.RemoteViews.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.RemoteViews.ActionException.html
+http://developer.android.com/sdk/api_diff/3/changes/android.widget.ResourceCursorAdapter.html
+http://developer.android.com/sdk/api_diff/3/changes/android.hardware.SensorListener.html
+http://developer.android.com/sdk/api_diff/3/changes/android.test.suitebuilder.TestMethod.html
+http://developer.android.com/reference/java/lang/Deprecated.html
+http://developer.android.com/reference/java/lang/annotation/Documented.html
+http://developer.android.com/reference/android/test/FlakyTest.html
+http://developer.android.com/reference/java/lang/annotation/Inherited.html
+http://developer.android.com/reference/java/lang/Override.html
+http://developer.android.com/reference/android/test/suitebuilder/annotation/Smoke.html
+http://developer.android.com/reference/android/test/suitebuilder/annotation/Suppress.html
+http://developer.android.com/reference/java/lang/SuppressWarnings.html
+http://developer.android.com/reference/dalvik/annotation/TestTarget.html
+http://developer.android.com/reference/dalvik/annotation/TestTargetClass.html
+http://developer.android.com/reference/android/view/ViewDebug.ExportedProperty.html
+http://developer.android.com/reference/android/view/ViewDebug.FlagToString.html
+http://developer.android.com/reference/android/view/ViewDebug.IntToString.html
+http://developer.android.com/reference/android/text/util/Linkify.MatchFilter.html
+http://developer.android.com/reference/android/text/util/Linkify.TransformFilter.html
+http://developer.android.com/reference/android/text/util/Rfc822Token.html
+http://developer.android.com/resources/samples/SipDemo/res/layout/call_address_dialog.html
+http://developer.android.com/resources/samples/SipDemo/res/layout/walkietalkie.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/index.html
+http://developer.android.com/resources/samples/ContactManager/res/layout/account_entry.html
+http://developer.android.com/resources/samples/ContactManager/res/layout/contact_adder.html
+http://developer.android.com/resources/samples/ContactManager/res/layout/contact_entry.html
+http://developer.android.com/resources/samples/ContactManager/res/layout/contact_manager.html
+http://developer.android.com/resources/samples/TicTacToeMain/src/com/example/android/tictactoe/MainActivity.html
+http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/tictactoe/library/GameActivity.html
+http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/tictactoe/library/GameView.html
+http://developer.android.com/resources/samples/TicTacToeMain/res/index.html
+http://developer.android.com/resources/samples/TicTacToeMain/src/index.html
+http://developer.android.com/reference/android/util/package-descr.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/src/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/AndroidManifest.html
+http://developer.android.com/resources/samples/Home/res/drawable-land/bg_android.html
+http://developer.android.com/resources/samples/Home/res/drawable-land/bg_android_icon.html
+http://developer.android.com/resources/samples/Home/res/drawable-land/bg_sunrise.html
+http://developer.android.com/resources/samples/Home/res/drawable-land/bg_sunrise_icon.html
+http://developer.android.com/resources/samples/Home/res/drawable-land/bg_sunset.html
+http://developer.android.com/resources/samples/Home/res/drawable-land/bg_sunset_icon.html
+http://developer.android.com/reference/javax/security/auth/callback/package-descr.html
+http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/index.html
+http://developer.android.com/resources/samples/NotePad/res/menu/editor_options_menu.html
+http://developer.android.com/resources/samples/NotePad/res/menu/list_context_menu.html
+http://developer.android.com/resources/samples/NotePad/res/menu/list_options_menu.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/xml/widget_word.html
+http://developer.android.com/reference/javax/xml/transform/stream/package-descr.html
+http://developer.android.com/resources/samples/Home/res/drawable-port/bg_android.html
+http://developer.android.com/resources/samples/Home/res/drawable-port/bg_android_icon.html
+http://developer.android.com/resources/samples/Home/res/drawable-port/bg_sunrise.html
+http://developer.android.com/resources/samples/Home/res/drawable-port/bg_sunrise_icon.html
+http://developer.android.com/resources/samples/Home/res/drawable-port/bg_sunset.html
+http://developer.android.com/resources/samples/Home/res/drawable-port/bg_sunset_icon.html
+http://developer.android.com/sdk/api_diff/5/changes/packages_index_all.html
+http://developer.android.com/sdk/api_diff/5/changes/classes_index_all.html
+http://developer.android.com/sdk/api_diff/5/changes/constructors_index_all.html
+http://developer.android.com/sdk/api_diff/5/changes/methods_index_all.html
+http://developer.android.com/sdk/api_diff/5/changes/fields_index_all.html
+http://developer.android.com/reference/android/appwidget/package-descr.html
+http://developer.android.com/reference/org/apache/http/auth/package-descr.html
+http://developer.android.com/resources/tutorials/views/hello-autocomplete.html
+http://developer.android.com/resources/tutorials/views/hello-mapview.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-hdpi/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-ldpi/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-mdpi/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/layout/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/values/index.html
+http://developer.android.com/resources/samples/ContactManager/res/drawable-hdpi/icon.html
+http://developer.android.com/sdk/api_diff/9/changes/constructors_index_removals.html
+http://developer.android.com/sdk/api_diff/9/changes/constructors_index_additions.html
+http://developer.android.com/sdk/api_diff/9/changes/constructors_index_changes.html
 http://developer.android.com/resources/samples/SipDemo/src/com/example/index.html
-http://developer.android.com/resources/samples/Home/res/index.html
-http://developer.android.com/resources/samples/Home/src/index.html
-http://developer.android.com/resources/samples/Home/AndroidManifest.html
+http://developer.android.com/resources/samples/Home/res/layout-port/home.html
+http://developer.android.com/sdk/api_diff/7/changes/constructors_index_additions.html
+http://developer.android.com/sdk/api_diff/7/changes/android.telephony.NeighboringCellInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/constructors_index_additions.html
+http://developer.android.com/sdk/api_diff/5/changes/constructors_index_changes.html
+http://developer.android.com/sdk/api_diff/5/changes/android.text.style.AbsoluteSizeSpan.html
+http://developer.android.com/sdk/api_diff/5/changes/android.graphics.drawable.BitmapDrawable.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Intents.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Intents.Insert.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Intents.UI.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.KeyEvent.html
+http://developer.android.com/sdk/api_diff/5/changes/android.telephony.NeighboringCellInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.Plugin.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.PluginData.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.PluginList.html
+http://developer.android.com/resources/samples/JetBoy/res/values/strings.html
+http://developer.android.com/resources/samples/JetBoy/res/values/styles.html
+http://developer.android.com/resources/samples/BluetoothChat/src/com/index.html
+http://developer.android.com/sdk/api_diff/6/changes/fields_index_additions.html
+http://developer.android.com/sdk/api_diff/6/changes/fields_index_changes.html
+http://developer.android.com/reference/java/nio/charset/spi/CharsetProvider.html
+http://developer.android.com/sdk/api_diff/5/changes/classes_index_additions.html
+http://developer.android.com/sdk/api_diff/5/changes/classes_index_changes.html
+http://developer.android.com/sdk/api_diff/5/changes/android.inputmethodservice.AbstractInputMethodService.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_java.util.concurrent.locks.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.content.html
+http://developer.android.com/sdk/api_diff/5/changes/android.database.AbstractWindowedCursor.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.Activity.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.ActivityInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.ActivityManager.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.ActivityManager.RunningAppProcessInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.ActivityManager.RunningServiceInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.AllocationLimitError.html
+http://developer.android.com/sdk/api_diff/5/changes/android.test.AndroidTestRunner.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.animation.Animation.html
+http://developer.android.com/sdk/api_diff/5/changes/android.media.AudioFormat.html
+http://developer.android.com/sdk/api_diff/5/changes/android.media.AudioManager.html
+http://developer.android.com/sdk/api_diff/5/changes/android.widget.AutoCompleteTextView.html
 http://developer.android.com/sdk/api_diff/5/changes/android.os.BatteryManager.html
+http://developer.android.com/sdk/api_diff/5/changes/java.util.concurrent.BlockingQueue.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.BroadcastReceiver.html
 http://developer.android.com/sdk/api_diff/5/changes/android.os.Build.VERSION_CODES.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.CallbackProxy.html
+http://developer.android.com/sdk/api_diff/5/changes/android.hardware.Camera.html
+http://developer.android.com/sdk/api_diff/5/changes/android.hardware.Camera.Parameters.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.res.Configuration.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethods.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethodsColumns.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Extensions.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.ExtensionsColumns.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.GroupMembership.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Groups.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.GroupsColumns.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.OrganizationColumns.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Organizations.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.People.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.People.ContactMethods.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.People.Extensions.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.People.Phones.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.PeopleColumns.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Phones.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.PhonesColumns.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Photos.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.PhotosColumns.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.PresenceColumns.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Settings.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.SettingsColumns.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.provider.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.ContentProvider.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.ContentResolver.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.Context.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.ContextWrapper.html
+http://developer.android.com/sdk/api_diff/5/changes/android.database.CursorWindow.html
+http://developer.android.com/sdk/api_diff/5/changes/android.database.DatabaseUtils.html
+http://developer.android.com/sdk/api_diff/5/changes/android.text.format.DateUtils.html
 http://developer.android.com/sdk/api_diff/5/changes/android.os.Debug.MemoryInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.Dialog.html
+http://developer.android.com/sdk/api_diff/5/changes/android.graphics.drawable.Drawable.html
+http://developer.android.com/sdk/api_diff/5/changes/android.graphics.drawable.Drawable.ConstantState.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.media.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.content.pm.html
+http://developer.android.com/sdk/api_diff/5/changes/android.text.format.Formatter.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.webkit.html
+http://developer.android.com/sdk/api_diff/5/changes/android.opengl.GLSurfaceView.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.opengl.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.location.html
 http://developer.android.com/sdk/api_diff/5/changes/android.os.HandlerThread.html
-http://developer.android.com/resources/samples/TicTacToeMain/res/layout/main.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GLSurfaceViewActivity.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/index.html
-http://developer.android.com/sdk/api_diff/7/changes/alldiffs_index_additions.html
-http://developer.android.com/sdk/api_diff/7/changes/alldiffs_index_changes.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.HapticFeedbackConstants.html
+http://developer.android.com/sdk/api_diff/5/changes/android.inputmethodservice.InputMethodService.html
+http://developer.android.com/sdk/api_diff/5/changes/android.text.InputType.html
+http://developer.android.com/sdk/api_diff/5/changes/android.test.InstrumentationTestCase.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.Intent.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.IntentService.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.KeyEvent.Callback.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.view.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.LauncherActivity.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.text.style.html
+http://developer.android.com/sdk/api_diff/5/changes/android.location.LocationManager.html
+http://developer.android.com/sdk/api_diff/5/changes/android.Manifest.permission.html
+http://developer.android.com/sdk/api_diff/5/changes/android.widget.MediaController.MediaPlayerControl.html
+http://developer.android.com/sdk/api_diff/5/changes/android.media.MediaPlayer.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.MediaStore.Images.Thumbnails.html
+http://developer.android.com/sdk/api_diff/5/changes/android.test.mock.MockContext.html
+http://developer.android.com/sdk/api_diff/5/changes/android.test.mock.MockPackageManager.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.MotionEvent.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.Notification.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.NotificationManager.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.PackageInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.PackageManager.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.util.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.os.html
+http://developer.android.com/sdk/api_diff/5/changes/android.telephony.PhoneNumberUtils.html
+http://developer.android.com/sdk/api_diff/5/changes/android.telephony.PhoneStateListener.html
+http://developer.android.com/sdk/api_diff/5/changes/android.graphics.PixelFormat.html
+http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.PotentialDeadlockError.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.ProviderInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.widget.html
+http://developer.android.com/sdk/api_diff/5/changes/android.R.attr.html
+http://developer.android.com/sdk/api_diff/5/changes/android.R.drawable.html
+http://developer.android.com/sdk/api_diff/5/changes/android.R.style.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.ResolveInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.SearchManager.html
+http://developer.android.com/sdk/api_diff/5/changes/android.app.Service.html
+http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.ServiceInfo.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Settings.html
+http://developer.android.com/sdk/api_diff/5/changes/android.provider.Settings.System.html
+http://developer.android.com/sdk/api_diff/5/changes/android.widget.SimpleCursorTreeAdapter.html
+http://developer.android.com/sdk/api_diff/5/changes/android.database.sqlite.SQLiteDatabase.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.database.sqlite.html
+http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.StaleDexCacheError.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.Surface.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.SurfaceHolder.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.SurfaceView.html
+http://developer.android.com/sdk/api_diff/5/changes/android.telephony.TelephonyManager.html
+http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.TemporaryDirectory.html
+http://developer.android.com/sdk/api_diff/5/changes/android.text.TextPaint.html
+http://developer.android.com/sdk/api_diff/5/changes/android.media.ToneGenerator.html
+http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.TouchDex.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.UrlInterceptHandler.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.UrlInterceptRegistry.html
+http://developer.android.com/sdk/api_diff/5/changes/android.widget.VideoView.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.View.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.ViewConfiguration.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.ViewGroup.html
+http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.VMDebug.html
+http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.VMRuntime.html
+http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.VMStack.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.app.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.WebChromeClient.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.WebSettings.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.WebView.html
+http://developer.android.com/sdk/api_diff/5/changes/android.webkit.WebViewClient.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.Window.Callback.html
+http://developer.android.com/sdk/api_diff/5/changes/android.view.WindowManager.LayoutParams.html
+http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.Zygote.html
+http://developer.android.com/resources/samples/MultiResolution/res/index.html
+http://developer.android.com/resources/samples/MultiResolution/src/index.html
+http://developer.android.com/resources/samples/MultiResolution/AndroidManifest.html
+http://developer.android.com/sdk/api_diff/9/changes/fields_index_removals.html
+http://developer.android.com/sdk/api_diff/9/changes/fields_index_additions.html
+http://developer.android.com/sdk/api_diff/9/changes/fields_index_changes.html
+http://developer.android.com/sdk/api_diff/6/changes/methods_index_changes.html
+http://developer.android.com/resources/samples/NotePad/res/values/strings.html
+http://developer.android.com/sdk/api_diff/4/changes/packages_index_all.html
+http://developer.android.com/sdk/api_diff/4/changes/classes_index_all.html
+http://developer.android.com/sdk/api_diff/4/changes/constructors_index_all.html
+http://developer.android.com/sdk/api_diff/4/changes/methods_index_all.html
+http://developer.android.com/sdk/api_diff/4/changes/fields_index_all.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-mdpi/icon.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/src/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/AndroidManifest.html
+http://developer.android.com/resources/samples/TicTacToeMain/src/com/index.html
+http://developer.android.com/resources/samples/BluetoothChat/res/layout/custom_title.html
+http://developer.android.com/resources/samples/BluetoothChat/res/layout/device_list.html
+http://developer.android.com/resources/samples/BluetoothChat/res/layout/device_name.html
+http://developer.android.com/resources/samples/BluetoothChat/res/layout/main.html
+http://developer.android.com/resources/samples/BluetoothChat/res/layout/message.html
+http://developer.android.com/resources/samples/Wiktionary/res/menu/lookup.html
+http://developer.android.com/sdk/api_diff/5/changes/jdiff_statistics.html
+http://developer.android.com/sdk/api_diff/5/changes/methods_index_additions.html
+http://developer.android.com/sdk/api_diff/5/changes/methods_index_changes.html
+http://developer.android.com/reference/org/w3c/dom/ls/DOMImplementationLS.html
+http://developer.android.com/reference/org/w3c/dom/ls/LSOutput.html
+http://developer.android.com/reference/org/w3c/dom/ls/LSParser.html
+http://developer.android.com/reference/org/w3c/dom/ls/LSParserFilter.html
+http://developer.android.com/reference/org/w3c/dom/ls/LSSerializer.html
+http://developer.android.com/reference/junit/runner/Version.html
+http://developer.android.com/sdk/api_diff/5/changes/packages_index_additions.html
+http://developer.android.com/sdk/api_diff/5/changes/packages_index_changes.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.content.res.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.database.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.graphics.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.graphics.drawable.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.hardware.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.inputmethodservice.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.telephony.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.test.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.test.mock.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.text.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.text.format.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_android.view.animation.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_dalvik.system.html
+http://developer.android.com/sdk/api_diff/5/changes/pkg_java.util.concurrent.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/index.html
+http://developer.android.com/resources/samples/TicTacToeLib/src/index.html
+http://developer.android.com/resources/samples/NotePad/res/layout/note_editor.html
+http://developer.android.com/resources/samples/NotePad/res/layout/noteslist_item.html
+http://developer.android.com/resources/samples/NotePad/res/layout/title_editor.html
+http://developer.android.com/sdk/api_diff/7/changes/jdiff_statistics.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/values/strings.html
+http://developer.android.com/resources/samples/NotePad/res/drawable/app_notes.html
+http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_compose.html
+http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_delete.html
+http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_discard.html
+http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_edit.html
+http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_revert.html
+http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_save.html
+http://developer.android.com/resources/samples/NotePad/res/drawable/live_folder_notes.html
+http://developer.android.com/resources/samples/AccessibilityService/src/com/example/android/index.html
+http://developer.android.com/reference/android/app/Instrumentation
+http://developer.android.com/resources/samples/SpinnerTest/AndroidManifest.html
+http://developer.android.com/resources/samples/SpinnerTest/src/com/android/example/spinner/test/SpinnerActivityTest.html
+http://developer.android.com/resources/samples/SpinnerTest/res/index.html
+http://developer.android.com/resources/samples/SpinnerTest/src/index.html
+http://developer.android.com/resources/samples/BusinessCard/res/layout/business_card.html
+http://developer.android.com/resources/samples/NotePad/src/com/index.html
+http://developer.android.com/resources/samples/Spinner/res/values/strings.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-hdpi/ball.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-hdpi/icon.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-hdpi/wood.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/app_icon.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/ic_menu_shuffle.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/logo_overlay.9.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/lookup_bg.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/progress_spin.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/star_logo.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/widget_bg.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/widget_bg_normal.9.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/widget_bg_pressed.9.html
+http://developer.android.com/resources/samples/Wiktionary/res/drawable/widget_bg_selected.9.html
+http://developer.android.com/resources/samples/Snake/src/com/example/index.html
+http://developer.android.com/reference/android/content/package-descr.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/xml/cube1.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/xml/cube2.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/xml/cube2_settings.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/drawable/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/drawable-hdpi/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/drawable-mdpi/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/layout/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/menu/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/raw/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/values/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/xml/index.html
+http://developer.android.com/resources/samples/AccessibilityService/src/com/example/android/clockback/index.html
+http://developer.android.com/resources/samples/JetBoy/src/com/example/index.html
+http://developer.android.com/reference/android/text/package-descr.html
+http://developer.android.com/reference/android/content/res/package-descr.html
+http://developer.android.com/resources/samples/Home/res/color/bright_text_dark_focused.html
+http://developer.android.com/sdk/api_diff/3/changes/packages_index_all.html
+http://developer.android.com/sdk/api_diff/3/changes/classes_index_all.html
+http://developer.android.com/sdk/api_diff/3/changes/constructors_index_all.html
+http://developer.android.com/sdk/api_diff/3/changes/methods_index_all.html
+http://developer.android.com/sdk/api_diff/3/changes/fields_index_all.html
+http://developer.android.com/resources/samples/TicTacToeMain/res/drawable/index.html
+http://developer.android.com/resources/samples/TicTacToeMain/res/layout/index.html
+http://developer.android.com/resources/samples/TicTacToeMain/res/values/index.html
+http://developer.android.com/resources/samples/NotePad/src/com/example/index.html
+http://developer.android.com/resources/samples/Home/res/values-de-rDE/strings.html
+http://developer.android.com/sdk/api_diff/7/changes/fields_index_additions.html
+http://developer.android.com/sdk/api_diff/7/changes/fields_index_changes.html
 http://developer.android.com/sdk/api_diff/7/changes/android.app.WallpaperManager.html
 http://developer.android.com/sdk/api_diff/7/changes/android.content.Intent.html
+http://developer.android.com/sdk/api_diff/7/changes/android.R.attr.html
+http://developer.android.com/sdk/api_diff/7/changes/android.media.MediaRecorder.AudioSource.html
+http://developer.android.com/sdk/api_diff/7/changes/android.os.Build.VERSION_CODES.html
 http://developer.android.com/sdk/api_diff/7/changes/android.content.pm.PackageManager.html
+http://developer.android.com/sdk/api_diff/7/changes/android.telephony.PhoneStateListener.html
+http://developer.android.com/sdk/api_diff/7/changes/android.Manifest.permission.html
+http://developer.android.com/resources/samples/BluetoothChat/src/com/example/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/samplesyncadapter_server/model/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/samplesyncadapter_server/templates/index.html
+http://developer.android.com/resources/samples/TicTacToeLib/src/com/index.html
+http://developer.android.com/sdk/api_diff/4/changes/methods_index_removals.html
+http://developer.android.com/sdk/api_diff/4/changes/methods_index_additions.html
+http://developer.android.com/sdk/api_diff/4/changes/methods_index_changes.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/values/strings.html
+http://developer.android.com/resources/samples/LunarLander/tests/src/index.html
+http://developer.android.com/resources/samples/LunarLander/tests/AndroidManifest.html
+http://developer.android.com/resources/samples/SoftKeyboard/src/com/index.html
+http://developer.android.com/reference/android/text/method/package-descr.html
+http://developer.android.com/resources/samples/JetBoy/JETBOY_content/JETBOY_Music.logic/LgDoc/index.html
+http://developer.android.com/resources/samples/TicTacToeMain/res/layout/main.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/drawable-mdpi/ic_menu_search.html
+http://developer.android.com/resources/samples/TicTacToeMain/res/values/strings.html
+http://developer.android.com/sdk/api_diff/7/changes/alldiffs_index_additions.html
+http://developer.android.com/sdk/api_diff/7/changes/alldiffs_index_changes.html
 http://developer.android.com/sdk/api_diff/7/changes/android.widget.RemoteViews.html
 http://developer.android.com/sdk/api_diff/7/changes/android.webkit.GeolocationPermissions.html
 http://developer.android.com/sdk/api_diff/7/changes/pkg_android.html
@@ -3659,10 +4617,7 @@
 http://developer.android.com/sdk/api_diff/7/changes/pkg_android.view.html
 http://developer.android.com/sdk/api_diff/7/changes/pkg_android.webkit.html
 http://developer.android.com/sdk/api_diff/7/changes/pkg_android.widget.html
-http://developer.android.com/sdk/api_diff/7/changes/android.R.attr.html
-http://developer.android.com/sdk/api_diff/7/changes/android.os.Build.VERSION_CODES.html
 http://developer.android.com/sdk/api_diff/7/changes/android.webkit.CacheManager.CacheResult.html
-http://developer.android.com/sdk/api_diff/7/changes/android.media.MediaRecorder.AudioSource.html
 http://developer.android.com/sdk/api_diff/7/changes/android.webkit.WebStorage.html
 http://developer.android.com/sdk/api_diff/7/changes/android.graphics.Rect.html
 http://developer.android.com/sdk/api_diff/7/changes/android.webkit.WebView.html
@@ -3672,298 +4627,145 @@
 http://developer.android.com/sdk/api_diff/7/changes/android.view.ViewGroup.html
 http://developer.android.com/sdk/api_diff/7/changes/android.view.View.html
 http://developer.android.com/sdk/api_diff/7/changes/android.os.PowerManager.html
-http://developer.android.com/sdk/api_diff/7/changes/android.telephony.PhoneStateListener.html
-http://developer.android.com/sdk/api_diff/7/changes/android.Manifest.permission.html
-http://developer.android.com/sdk/api_diff/7/changes/android.telephony.NeighboringCellInfo.html
-http://developer.android.com/reference/org/w3c/dom/package-descr.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.CallbackProxy.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.Plugin.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.PluginData.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.PluginList.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.UrlInterceptHandler.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.UrlInterceptRegistry.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.WebChromeClient.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.WebSettings.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.WebView.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.WebViewClient.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.Activity.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.ActivityManager.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.ActivityManager.RunningAppProcessInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.ActivityManager.RunningServiceInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.Dialog.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.IntentService.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.LauncherActivity.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.Notification.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.NotificationManager.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.SearchManager.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.Service.html
-http://developer.android.com/resources/samples/AlarmServiceTest
-http://developer.android.com/reference/org/apache/http/protocol/package-descr.html
-http://developer.android.com/reference/javax/xml/transform/sax/package-descr.html
-http://developer.android.com/sdk/api_diff/5/changes/android.telephony.NeighboringCellInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.telephony.PhoneNumberUtils.html
-http://developer.android.com/sdk/api_diff/5/changes/android.telephony.PhoneStateListener.html
-http://developer.android.com/sdk/api_diff/5/changes/android.telephony.TelephonyManager.html
-http://developer.android.com/sdk/api_diff/6/changes/alldiffs_index_additions.html
-http://developer.android.com/sdk/api_diff/6/changes/alldiffs_index_changes.html
-http://developer.android.com/sdk/api_diff/6/changes/android.accounts.AbstractAccountAuthenticator.html
-http://developer.android.com/sdk/api_diff/6/changes/pkg_android.html
-http://developer.android.com/sdk/api_diff/6/changes/pkg_android.accounts.html
-http://developer.android.com/sdk/api_diff/6/changes/pkg_android.os.html
-http://developer.android.com/sdk/api_diff/6/changes/pkg_android.view.html
-http://developer.android.com/sdk/api_diff/6/changes/android.os.Build.VERSION_CODES.html
-http://developer.android.com/sdk/api_diff/6/changes/android.R.attr.html
-http://developer.android.com/sdk/api_diff/6/changes/android.view.WindowManager.LayoutParams.html
-http://developer.android.com/sdk/api_diff/7/changes/packages_index_all.html
-http://developer.android.com/sdk/api_diff/7/changes/classes_index_all.html
-http://developer.android.com/sdk/api_diff/7/changes/constructors_index_all.html
-http://developer.android.com/sdk/api_diff/7/changes/methods_index_all.html
-http://developer.android.com/sdk/api_diff/7/changes/fields_index_all.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/values/shapes.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/res/values/strings.html
+http://developer.android.com/resources/samples/SpinnerTest/src/com/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/layout/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/values/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/values-land/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/xml/index.html
+http://developer.android.com/reference/junit/runner/package-descr.html
+http://developer.android.com/resources/samples/NFCDemo/res/layout/tag_divider.html
+http://developer.android.com/resources/samples/NFCDemo/res/layout/tag_text.html
+http://developer.android.com/resources/samples/NFCDemo/res/layout/tag_viewer.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-ldpi/icon.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/index.html
 http://developer.android.com/reference/android/text/style/package-descr.html
-http://developer.android.com/sdk/api_diff/5/changes/android.widget.AutoCompleteTextView.html
-http://developer.android.com/sdk/api_diff/5/changes/android.widget.MediaController.MediaPlayerControl.html
-http://developer.android.com/sdk/api_diff/5/changes/android.widget.SimpleCursorTreeAdapter.html
-http://developer.android.com/sdk/api_diff/5/changes/android.widget.VideoView.html
-http://developer.android.com/sdk/api_diff/7/changes/jdiff_statistics.html
-http://developer.android.com/sdk/api_diff/4/changes/packages_index_all.html
-http://developer.android.com/sdk/api_diff/4/changes/classes_index_all.html
-http://developer.android.com/sdk/api_diff/4/changes/constructors_index_all.html
-http://developer.android.com/sdk/api_diff/4/changes/methods_index_all.html
-http://developer.android.com/sdk/api_diff/4/changes/fields_index_all.html
-http://developer.android.com/sdk/api_diff/5/changes/android.graphics.drawable.BitmapDrawable.html
-http://developer.android.com/sdk/api_diff/5/changes/android.graphics.drawable.Drawable.html
-http://developer.android.com/sdk/api_diff/5/changes/android.graphics.drawable.Drawable.ConstantState.html
-http://developer.android.com/reference/java/lang/Deprecated.html
-http://developer.android.com/reference/java/lang/annotation/Documented.html
-http://developer.android.com/reference/android/test/FlakyTest.html
-http://developer.android.com/reference/javax/microedition/khronos/opengles/GL10Ext.html
-http://developer.android.com/reference/javax/microedition/khronos/opengles/GL11.html
-http://developer.android.com/reference/javax/microedition/khronos/opengles/GL11Ext.html
-http://developer.android.com/reference/javax/microedition/khronos/opengles/GL11ExtensionPack.html
-http://developer.android.com/reference/java/lang/annotation/Inherited.html
-http://developer.android.com/reference/javax/xml/namespace/NamespaceContext.html
-http://developer.android.com/reference/java/lang/Override.html
-http://developer.android.com/reference/android/widget/RemoteViews.RemoteView.html
-http://developer.android.com/reference/android/test/suitebuilder/annotation/Smoke.html
-http://developer.android.com/reference/android/test/suitebuilder/annotation/Suppress.html
-http://developer.android.com/reference/java/lang/SuppressWarnings.html
-http://developer.android.com/reference/dalvik/annotation/TestTarget.html
-http://developer.android.com/reference/dalvik/annotation/TestTargetClass.html
-http://developer.android.com/reference/android/test/UiThreadTest.html
-http://developer.android.com/guide/tutorials/notepad/index.html
-http://developer.android.com/resources/samples/NotePad/res/index.html
-http://developer.android.com/resources/samples/NotePad/src/index.html
-http://developer.android.com/resources/samples/NotePad/tests/index.html
-http://developer.android.com/resources/samples/NotePad/AndroidManifest.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/values/strings.html
-http://developer.android.com/reference/dalvik/system/package-descr.html
-http://developer.android.com/resources/samples/AccelerometerPlay/src/com/example/android/index.html
-http://developer.android.com/sdk/api_diff/5/changes/methods_index_additions.html
-http://developer.android.com/sdk/api_diff/5/changes/methods_index_changes.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.ContentResolver.html
-http://developer.android.com/sdk/api_diff/5/changes/android.location.LocationManager.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethods.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.People.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.ContentProvider.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.View.html
-http://developer.android.com/sdk/api_diff/5/changes/android.hardware.Camera.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.MediaStore.Images.Thumbnails.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.KeyEvent.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.PackageManager.html
-http://developer.android.com/sdk/api_diff/5/changes/android.test.mock.MockPackageManager.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.Context.html
-http://developer.android.com/sdk/api_diff/5/changes/java.util.concurrent.BlockingQueue.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.ServiceInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.MotionEvent.html
-http://developer.android.com/sdk/api_diff/5/changes/android.hardware.Camera.Parameters.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.animation.Animation.html
-http://developer.android.com/sdk/api_diff/5/changes/android.text.style.AbsoluteSizeSpan.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Organizations.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Phones.html
-http://developer.android.com/sdk/api_diff/5/changes/android.inputmethodservice.AbstractInputMethodService.html
-http://developer.android.com/sdk/api_diff/5/changes/android.media.AudioManager.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.ViewConfiguration.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Settings.html
-http://developer.android.com/sdk/api_diff/5/changes/android.database.AbstractWindowedCursor.html
-http://developer.android.com/sdk/api_diff/5/changes/android.database.CursorWindow.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.BroadcastReceiver.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.Surface.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.Window.Callback.html
-http://developer.android.com/sdk/api_diff/5/changes/android.inputmethodservice.InputMethodService.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.KeyEvent.Callback.html
-http://developer.android.com/sdk/api_diff/5/changes/android.database.DatabaseUtils.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.ContextWrapper.html
-http://developer.android.com/sdk/api_diff/5/changes/android.test.mock.MockContext.html
-http://developer.android.com/sdk/api_diff/5/changes/android.opengl.GLSurfaceView.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.SurfaceView.html
-http://developer.android.com/sdk/api_diff/5/changes/android.media.ToneGenerator.html
-http://developer.android.com/reference/android/text/util/package-descr.html
-http://developer.android.com/resources/samples/JetBoy/JETBOY_content/JETBOY_Music.logic/index.html
-http://developer.android.com/sdk/api_diff/5/changes/constructors_index_additions.html
-http://developer.android.com/sdk/api_diff/5/changes/constructors_index_changes.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Intents.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Intents.Insert.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Intents.UI.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/drawable/index.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/layout/index.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/layout-land/index.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/values/index.html
+http://developer.android.com/resources/samples/LunarLander/res/drawable-port/earthrise.html
+http://developer.android.com/resources/samples/BluetoothChat/res/values/strings.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/index.html
+http://developer.android.com/resources/samples/Wiktionary/res/values/strings.html
+http://developer.android.com/resources/samples/Wiktionary/res/values/styles.html
+http://developer.android.com/resources/samples/Wiktionary/res/values/themes.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/all_applications_label_background.9.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/application_background.9.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/application_background_static.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/focused_application_background_static.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/hide_all_applications.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/ic_launcher_allhide.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/ic_launcher_allshow.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/ic_launcher_home.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/pressed_application_background_static.html
+http://developer.android.com/resources/samples/Home/res/drawable-mdpi/show_all_applications.html
+http://developer.android.com/guide/samples/index.html
+http://developer.android.com/resources/samples/Home/res/anim/fade_in.html
+http://developer.android.com/resources/samples/Home/res/anim/fade_out.html
+http://developer.android.com/resources/samples/Home/res/anim/grid_entry.html
+http://developer.android.com/resources/samples/Home/res/anim/grid_exit.html
+http://developer.android.com/resources/samples/Home/res/anim/hide_applications.html
+http://developer.android.com/resources/samples/Home/res/anim/show_applications.html
+http://developer.android.com/resources/samples/ApiDemos/assets/index.html
+http://developer.android.com/resources/samples/ApiDemos/res/index.html
+http://developer.android.com/resources/samples/ApiDemos/src/index.html
+http://developer.android.com/resources/samples/ApiDemos/tests/index.html
+http://developer.android.com/resources/samples/ApiDemos/AndroidManifest.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/drawable/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/layout/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/values/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/xml/index.html
+http://developer.android.com/sdk/api_diff/3/changes/constructors_index_removals.html
+http://developer.android.com/sdk/api_diff/3/changes/constructors_index_additions.html
+http://developer.android.com/sdk/api_diff/3/changes/constructors_index_changes.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/values/strings.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/values/styles.html
+http://developer.android.com/resources/samples/Home/res/values/attrs.html
+http://developer.android.com/resources/samples/Home/res/values/strings.html
+http://developer.android.com/resources/samples/Home/res/values/styles.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/layout-land/lib_game.html
+http://developer.android.com/resources/samples/AccessibilityService/src/com/example/android/clockback/ClockBackService.html
+http://developer.android.com/reference/org/apache/http/impl/io/package-descr.html
+http://developer.android.com/sdk/api_diff/8/changes/classes_index_additions.html
+http://developer.android.com/sdk/api_diff/8/changes/classes_index_changes.html
+http://developer.android.com/resources/samples/Wiktionary/res/xml/searchable.html
+http://developer.android.com/resources/samples/Wiktionary/res/xml/widget_word.html
+http://developer.android.com/resources/samples/Home/res/values-land/strings.html
+http://developer.android.com/sdk/api_diff/4/changes/classes_index_removals.html
+http://developer.android.com/sdk/api_diff/4/changes/classes_index_additions.html
+http://developer.android.com/sdk/api_diff/4/changes/classes_index_changes.html
+http://developer.android.com/resources/samples/Home/res/layout/all_applications_button.html
+http://developer.android.com/resources/samples/Home/res/layout/application.html
+http://developer.android.com/resources/samples/Home/res/layout/favorite.html
+http://developer.android.com/resources/samples/Home/res/layout/wallpaper.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/index.html
+http://developer.android.com/resources/samples/ApiDemos/tests/AndroidManifest.html
+http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/values/colors.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/values/dimens.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/values/strings.html
+http://developer.android.com/resources/samples/SipDemo/src/com/example/android/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/layout/login_activity.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/app_notes.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_compose.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_delete.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_discard.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_edit.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_revert.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_save.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/live_folder_notes.html
 http://developer.android.com/sdk/api_diff/7/changes/classes_index_additions.html
 http://developer.android.com/sdk/api_diff/7/changes/classes_index_changes.html
-http://developer.android.com/resources/samples/AccessibilityService/res/index.html
-http://developer.android.com/resources/samples/AccessibilityService/src/index.html
-http://developer.android.com/resources/samples/AccessibilityService/AndroidManifest.html
-http://developer.android.com/resources/samples/Spinner/src/com/index.html
+http://developer.android.com/sdk/api_diff/9/changes/packages_index_additions.html
+http://developer.android.com/sdk/api_diff/9/changes/packages_index_changes.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/values-land/dimens.html
+http://developer.android.com/sdk/api_diff/3/changes/classes_index_additions.html
+http://developer.android.com/sdk/api_diff/3/changes/classes_index_changes.html
+http://developer.android.com/resources/samples/WiktionarySimple/src/com/index.html
+http://developer.android.com/resources/samples/NFCDemo/res/drawable/icon.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/drawable-hdpi/ic_menu_search.html
+http://developer.android.com/resources/samples/SipDemo/res/values/strings.html
+http://developer.android.com/resources/samples/SpinnerTest/src/com/android/index.html
+http://developer.android.com/sdk/api_diff/3/changes/methods_index_removals.html
+http://developer.android.com/sdk/api_diff/3/changes/methods_index_additions.html
+http://developer.android.com/sdk/api_diff/3/changes/methods_index_changes.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/xml/method.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/xml/qwerty.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/xml/symbols.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/xml/symbols_shift.html
 http://developer.android.com/resources/samples/ApiDemos/assets/fonts/index.html
-http://developer.android.com/reference/android/view/inputmethod/package-descr.html
-http://developer.android.com/sdk/api_diff/9/changes/methods_index_removals.html
-http://developer.android.com/sdk/api_diff/9/changes/methods_index_additions.html
-http://developer.android.com/sdk/api_diff/9/changes/methods_index_changes.html
-http://developer.android.com/sdk/api_diff/5/changes/android.media.AudioFormat.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.SettingsColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.GroupMembership.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethodsColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Extensions.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.ExtensionsColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Groups.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.GroupsColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.OrganizationColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.People.ContactMethods.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.People.Extensions.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.People.Phones.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.PeopleColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.PhonesColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.Photos.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.PhotosColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Contacts.PresenceColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.AllocationLimitError.html
-http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.PotentialDeadlockError.html
-http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.StaleDexCacheError.html
-http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.TemporaryDirectory.html
-http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.TouchDex.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.HapticFeedbackConstants.html
-http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.VMStack.html
-http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.VMRuntime.html
-http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.Zygote.html
-http://developer.android.com/sdk/api_diff/5/changes/android.text.TextPaint.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.SurfaceHolder.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.ProviderInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Settings.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.res.Configuration.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.WindowManager.LayoutParams.html
-http://developer.android.com/sdk/api_diff/5/changes/android.R.style.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.ResolveInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.PackageInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.R.attr.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.Intent.html
-http://developer.android.com/sdk/api_diff/5/changes/android.graphics.PixelFormat.html
-http://developer.android.com/sdk/api_diff/5/changes/android.Manifest.permission.html
-http://developer.android.com/sdk/api_diff/5/changes/android.text.InputType.html
-http://developer.android.com/sdk/api_diff/5/changes/android.media.MediaPlayer.html
-http://developer.android.com/sdk/api_diff/5/changes/dalvik.system.VMDebug.html
-http://developer.android.com/sdk/api_diff/5/changes/android.content.pm.ActivityInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.R.drawable.html
-http://developer.android.com/sdk/api_diff/5/changes/android.provider.Settings.System.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.ViewGroup.html
-http://developer.android.com/reference/android/net/package-descr.html
-http://developer.android.com/sdk/api_diff/4/changes/fields_index_removals.html
-http://developer.android.com/sdk/api_diff/4/changes/fields_index_additions.html
-http://developer.android.com/sdk/api_diff/4/changes/fields_index_changes.html
-http://developer.android.com/sdk/api_diff/4/changes/android.provider.Settings.Secure.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.Context.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.Intent.html
-http://developer.android.com/sdk/api_diff/4/changes/android.Manifest.permission.html
-http://developer.android.com/sdk/api_diff/4/changes/android.R.attr.html
-http://developer.android.com/sdk/api_diff/4/changes/android.R.anim.html
-http://developer.android.com/sdk/api_diff/4/changes/android.os.Build.VERSION.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html
-http://developer.android.com/sdk/api_diff/4/changes/android.os.Build.html
-http://developer.android.com/sdk/api_diff/4/changes/android.telephony.TelephonyManager.html
-http://developer.android.com/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html
-http://developer.android.com/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html
-http://developer.android.com/sdk/api_diff/4/changes/android.util.TypedValue.html
-http://developer.android.com/sdk/api_diff/4/changes/android.util.DisplayMetrics.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.Bitmap.html
-http://developer.android.com/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html
-http://developer.android.com/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html
-http://developer.android.com/sdk/api_diff/4/changes/android.app.SearchManager.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html
-http://developer.android.com/sdk/api_diff/4/changes/android.view.View.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.PackageManager.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html
-http://developer.android.com/sdk/api_diff/4/changes/android.hardware.SensorManager.html
-http://developer.android.com/sdk/api_diff/4/changes/android.util.Config.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html
-http://developer.android.com/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html
-http://developer.android.com/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.res.Configuration.html
-http://developer.android.com/sdk/api_diff/4/changes/android.provider.Settings.System.html
-http://developer.android.com/sdk/api_diff/4/changes/android.R.drawable.html
-http://developer.android.com/sdk/api_diff/4/changes/android.Manifest.permission_group.html
-http://developer.android.com/sdk/api_diff/4/changes/android.view.Surface.html
-http://developer.android.com/sdk/api_diff/4/changes/android.media.ToneGenerator.html
-http://developer.android.com/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html
-http://developer.android.com/sdk/api_diff/4/changes/android.R.style.html
-http://developer.android.com/reference/android/webkit/package-descr.html
-http://developer.android.com/sdk/api_diff/6/changes/jdiff_statistics.html
-http://developer.android.com/sdk/1.0_r1/upgrading.html
-http://developer.android.com/reference/java/lang/ref/package-descr.html
+http://developer.android.com/resources/samples/LunarLander/tests/src/com/index.html
+http://developer.android.com/reference/java/sql/package-descr.html
+http://developer.android.com/resources/samples/Snake/res/drawable/index.html
+http://developer.android.com/resources/samples/Snake/res/layout/index.html
+http://developer.android.com/resources/samples/Snake/res/values/index.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/all_applications_label_background.9.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/application_background.9.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/application_background_static.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/focused_application_background_static.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/hide_all_applications.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/ic_launcher_allhide.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/ic_launcher_allshow.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/ic_launcher_home.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/pressed_application_background_static.html
+http://developer.android.com/resources/samples/Home/res/drawable-hdpi/show_all_applications.html
+http://developer.android.com/resources/samples/ContactManager/src/com/index.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/drawable/lib_bg.9.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/drawable/lib_circle.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/drawable/lib_cross.html
 http://developer.android.com/resources/samples/SearchableDictionary/res/layout/main.html
 http://developer.android.com/resources/samples/SearchableDictionary/res/layout/result.html
 http://developer.android.com/resources/samples/SearchableDictionary/res/layout/word.html
-http://developer.android.com/reference/org/apache/http/package-descr.html
-http://developer.android.com/resources/samples/AccelerometerPlay/src/com/example/android/accelerometerplay/index.html
-http://developer.android.com/sdk/api_diff/6/changes/packages_index_all.html
-http://developer.android.com/sdk/api_diff/6/changes/classes_index_all.html
-http://developer.android.com/sdk/api_diff/6/changes/constructors_index_all.html
-http://developer.android.com/sdk/api_diff/6/changes/methods_index_all.html
-http://developer.android.com/sdk/api_diff/6/changes/fields_index_all.html
-http://developer.android.com/guide/practices/ui_guidelines/icon_design_1.html
-http://developer.android.com/sdk/api_diff/4/changes/jdiff_statistics.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/AndroidManifest.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/index.html
-http://developer.android.com/resources/samples/JetBoy/res/layout/index.html
-http://developer.android.com/resources/samples/JetBoy/res/raw/index.html
-http://developer.android.com/resources/samples/JetBoy/res/values/index.html
-http://developer.android.com/sdk/api_diff/7/changes/constructors_index_additions.html
-http://developer.android.com/resources/samples/NFCDemo/res/drawable/index.html
-http://developer.android.com/resources/samples/NFCDemo/res/layout/index.html
-http://developer.android.com/resources/samples/NFCDemo/res/raw/index.html
-http://developer.android.com/resources/samples/NFCDemo/res/values/index.html
-http://developer.android.com/sdk/api_diff/4/changes/methods_index_removals.html
-http://developer.android.com/sdk/api_diff/4/changes/methods_index_additions.html
-http://developer.android.com/sdk/api_diff/4/changes/methods_index_changes.html
-http://developer.android.com/sdk/api_diff/4/changes/android.test.AndroidTestCase.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.ComponentName.html
-http://developer.android.com/sdk/api_diff/4/changes/android.view.VelocityTracker.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.Typeface.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html
-http://developer.android.com/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html
-http://developer.android.com/sdk/api_diff/4/changes/android.app.Activity.html
-http://developer.android.com/sdk/api_diff/4/changes/android.app.Dialog.html
-http://developer.android.com/sdk/api_diff/4/changes/android.view.Window.Callback.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.ContextWrapper.html
-http://developer.android.com/sdk/api_diff/4/changes/android.test.mock.MockContext.html
-http://developer.android.com/sdk/api_diff/4/changes/android.media.MediaRecorder.html
-http://developer.android.com/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html
-http://developer.android.com/sdk/api_diff/4/changes/android.widget.ListView.html
-http://developer.android.com/sdk/api_diff/4/changes/android.widget.TabWidget.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.Canvas.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.NinePatch.html
-http://developer.android.com/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html
-http://developer.android.com/sdk/api_diff/4/changes/android.app.PendingIntent.html
-http://developer.android.com/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html
-http://developer.android.com/sdk/api_diff/4/changes/android.view.ViewConfiguration.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.ContentProvider.html
-http://developer.android.com/sdk/api_diff/4/changes/android.location.Address.html
-http://developer.android.com/sdk/api_diff/4/changes/android.media.AudioManager.html
-http://developer.android.com/sdk/api_diff/4/changes/android.widget.PopupWindow.html
-http://developer.android.com/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html
-http://developer.android.com/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html
-http://developer.android.com/sdk/api_diff/4/changes/android.app.LauncherActivity.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html
+http://developer.android.com/resources/samples/TicTacToeMain/res/drawable/icon.html
+http://developer.android.com/sdk/api_diff/7/changes/methods_index_additions.html
+http://developer.android.com/sdk/api_diff/7/changes/methods_index_changes.html
+http://developer.android.com/resources/samples/ContactManager/res/values/strings.html
+http://developer.android.com/resources/samples/BusinessCard/src/com/index.html
 http://developer.android.com/resources/samples/ApiDemos/res/anim/index.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable/index.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/index.html
@@ -3986,77 +4788,276 @@
 http://developer.android.com/resources/samples/ApiDemos/res/values-small-long/index.html
 http://developer.android.com/resources/samples/ApiDemos/res/values-small-notlong/index.html
 http://developer.android.com/resources/samples/ApiDemos/res/xml/index.html
-http://developer.android.com/resources/samples/NotePad/res/drawable/index.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/index.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-ldpi/index.html
-http://developer.android.com/resources/samples/NotePad/res/layout/index.html
-http://developer.android.com/resources/samples/NotePad/res/menu/index.html
-http://developer.android.com/resources/samples/NotePad/res/values/index.html
-http://developer.android.com/resources/samples/JetBoy/JETBOY_content/JETBOY_Music.logic/LgDoc/index.html
-http://developer.android.com/resources/samples/Snake/res/index.html
-http://developer.android.com/resources/samples/Snake/src/index.html
-http://developer.android.com/resources/samples/Snake/tests/index.html
-http://developer.android.com/resources/samples/Snake/AndroidManifest.html
-http://developer.android.com/reference/org/apache/http/client/package-descr.html
-http://developer.android.com/sdk/api_diff/5/changes/alldiffs_index_removals.html
-http://developer.android.com/sdk/api_diff/5/changes/alldiffs_index_additions.html
-http://developer.android.com/sdk/api_diff/5/changes/alldiffs_index_changes.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/samplesyncadapter_server/model/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/samplesyncadapter_server/templates/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/drawable-mdpi/ic_menu_search.html
-http://developer.android.com/sdk/api_diff/3/changes/jdiff_statistics.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.app.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.content.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.content.pm.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.content.res.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.database.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.database.sqlite.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.graphics.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.graphics.drawable.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.graphics.drawable.shapes.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.hardware.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.location.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.media.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.net.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.net.wifi.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.opengl.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.os.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.preference.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.provider.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.telephony.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.telephony.gsm.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.test.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.test.mock.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.test.suitebuilder.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.text.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.text.method.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.text.style.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.util.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.view.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.view.animation.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.webkit.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_android.widget.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_dalvik.system.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_java.lang.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_java.util.jar.html
-http://developer.android.com/sdk/api_diff/3/changes/pkg_java.util.logging.html
-http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html
-http://developer.android.com/resources/tutorials/notepad/notepad-ex2.html
-http://developer.android.com/resources/tutorials/notepad/notepad-ex3.html
-http://developer.android.com/resources/tutorials/notepad/notepad-extra-credit.html
-http://developer.android.com/resources/samples/AccessibilityService/res/raw/index.html
-http://developer.android.com/resources/samples/AccessibilityService/res/values/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-large-long/strings.html
-http://developer.android.com/resources/samples/NotePad/src/com/index.html
-http://developer.android.com/resources/samples/NotePad/res/drawable/app_notes.html
-http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_compose.html
-http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_delete.html
-http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_discard.html
-http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_edit.html
-http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_revert.html
-http://developer.android.com/resources/samples/NotePad/res/drawable/ic_menu_save.html
-http://developer.android.com/resources/samples/NotePad/res/drawable/live_folder_notes.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-ldpi/app_notes.html
+http://developer.android.com/resources/samples/NotePad/res/drawable-ldpi/live_folder_notes.html
+http://developer.android.com/sdk/api_diff/4/changes/packages_index_additions.html
+http://developer.android.com/sdk/api_diff/4/changes/packages_index_changes.html
+http://developer.android.com/resources/samples/AccelerometerPlay/res/layout/main.html
+http://developer.android.com/sdk/api_diff/7/changes/packages_index_additions.html
+http://developer.android.com/sdk/api_diff/7/changes/packages_index_changes.html
+http://developer.android.com/sdk/api_diff/4/changes/constructors_index_additions.html
+http://developer.android.com/sdk/api_diff/4/changes/constructors_index_changes.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/com/index.html
+http://developer.android.com/resources/samples/MultiResolution/src/com/index.html
+http://developer.android.com/resources/samples/SpinnerTest/src/com/android/example/index.html
+http://developer.android.com/resources/samples/SipDemo/res/xml/preferences.html
+http://developer.android.com/resources/samples/BluetoothChat/res/drawable/app_icon.html
+http://developer.android.com/resources/samples/BluetoothChat/src/com/example/android/index.html
+http://developer.android.com/resources/samples/Spinner/src/com/android/index.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid01.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid02.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid03.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid04.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid05.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid06.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid07.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid08.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid09.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid10.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid11.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid12.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid_explode1.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid_explode2.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid_explode3.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid_explode4.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/background_a.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/background_b.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/icon.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/int_timer.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/intbeam_1.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/intbeam_2.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/intbeam_3.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/intbeam_4.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/laser.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_1.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_2.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_3.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_4.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_hit_1.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_hit_2.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_hit_3.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_hit_4.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/title_bg_hori.html
+http://developer.android.com/resources/samples/JetBoy/res/drawable/title_hori.html
+http://developer.android.com/resources/samples/AccelerometerPlay/src/com/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/xml/searchable.html
+http://developer.android.com/sdk/api_diff/6/changes/classes_index_changes.html
+http://developer.android.com/resources/samples/ApiDemos/res/xml/advanced_preferences.html
+http://developer.android.com/resources/samples/ApiDemos/res/xml/appwidget_provider.html
+http://developer.android.com/resources/samples/ApiDemos/res/xml/default_values.html
+http://developer.android.com/resources/samples/ApiDemos/res/xml/device_admin_sample.html
+http://developer.android.com/resources/samples/ApiDemos/res/xml/preference_dependencies.html
+http://developer.android.com/resources/samples/ApiDemos/res/xml/preferences.html
+http://developer.android.com/resources/samples/ApiDemos/res/xml/searchable.html
+http://developer.android.com/reference/org/apache/http/io/package-descr.html
+http://developer.android.com/reference/android/text/util/package-descr.html
+http://developer.android.com/resources/samples/TicTacToeMain/src/com/example/index.html
+http://developer.android.com/resources/samples/LunarLander/src/com/index.html
+http://developer.android.com/resources/samples/MultiResolution/src/com/example/index.html
+http://developer.android.com/sdk/api_diff/8/changes/methods_index_removals.html
+http://developer.android.com/sdk/api_diff/8/changes/methods_index_additions.html
+http://developer.android.com/sdk/api_diff/8/changes/methods_index_changes.html
+http://developer.android.com/resources/samples/ApiDemos/res/values/arrays.html
+http://developer.android.com/resources/samples/ApiDemos/res/values/attrs.html
+http://developer.android.com/resources/samples/ApiDemos/res/values/colors.html
+http://developer.android.com/resources/samples/ApiDemos/res/values/ids.html
+http://developer.android.com/resources/samples/ApiDemos/res/values/strings.html
+http://developer.android.com/resources/samples/ApiDemos/res/values/styles.html
+http://developer.android.com/resources/samples/Home/res/values-cs/strings.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi-v6/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi-v6/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi-v6/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/layout/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/layout-land/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/values/index.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/alert_dialog_icon.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/app_sample_code.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/arrow_down_float.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/arrow_up_float.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/btn_check_off.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/btn_check_on.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/btn_circle_normal.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/btn_default_normal.9.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/button.9.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/ic_contact_picture.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/ic_popup_reminder.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/icon48x48_2.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/logo240dpi.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/npatch240dpi.9.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/progress_circular_background.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/progress_particle.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/reslogo240dpi.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/scrollbar_state2.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/smlnpatch240dpi.9.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/star_big_on.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stat_happy.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stat_neutral.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stat_sad.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stat_sample.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stylogo240dpi.html
+http://developer.android.com/resources/samples/NotePad/src/com/example/android/index.html
+http://developer.android.com/resources/samples/SpinnerTest/src/com/android/example/spinner/index.html
+http://developer.android.com/sdk/api_diff/3/changes/packages_index_additions.html
+http://developer.android.com/sdk/api_diff/3/changes/packages_index_changes.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/index.html
+http://developer.android.com/resources/samples/JetBoy/res/layout/main.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/RelativeLayout1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/RelativeLayout2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout4.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout5.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout6.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout7.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout8.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout9.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollView1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollView2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout4.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout5.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout6.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout7.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout8.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout9.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout10.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout11.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout12.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline4.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline6.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline7.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/BaselineNested1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/BaselineNested2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/BaselineNested3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/RadioGroup1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollBar1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollBar2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Visibility1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List4.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List5.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List6.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List7.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List8.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/CustomView1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ImageButton1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/DateWidgets1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/DateWidgets2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Gallery1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Gallery2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Spinner1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Grid1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Grid2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ImageSwitcher1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TextSwitcher1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Animation1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Animation2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Controls1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Controls2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete4.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete5.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar4.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Focus1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Focus2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Focus3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Animation3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete6.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Buttons1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ChronometerDemo.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ImageView1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/InternalSelectionFocus.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/InternalSelectionScroll.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/InternalSelectionView.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation4.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation5.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation6.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation7.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout10.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List10.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List11.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List12.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List13.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List9.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/RatingBar1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollBar3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/SecureViewOverlay.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/SeekBar1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Tabs1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Tabs2.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Tabs3.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/WebView1.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/drawable/icon.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/values/strings.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/index.html
+http://developer.android.com/resources/samples/ContactManager/src/com/example/index.html
+http://developer.android.com/resources/samples/NotePad/tests/src/com/index.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/alert_dialog_icon.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/app_sample_code.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/arrow_down_float.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/arrow_up_float.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/btn_check_off.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/btn_check_on.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/btn_circle_normal.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/btn_default_normal.9.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/button.9.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/ic_contact_picture.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/ic_popup_reminder.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/icon48x48_2.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/progress_circular_background.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/progress_particle.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/scrollbar_state2.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/star_big_on.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/stat_happy.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/stat_neutral.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/stat_sad.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/stat_sample.html
+http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/res/drawable/ic_dictionary.html
+http://developer.android.com/reference/android/os/package-descr.html
+http://developer.android.com/reference/javax/xml/xpath/package-descr.html
+http://developer.android.com/resources/samples/SipDemo/src/com/example/android/sip/index.html
+http://developer.android.com/sdk/api_diff/4/changes/fields_index_removals.html
+http://developer.android.com/sdk/api_diff/4/changes/fields_index_additions.html
+http://developer.android.com/sdk/api_diff/4/changes/fields_index_changes.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi-v6/ic_launcher.html
+http://developer.android.com/reference/android/app/package-descr.html
+http://developer.android.com/resources/samples/TicTacToeLib/res/layout/lib_game.html
+http://developer.android.com/guide/market/billing/billing-intents
+http://developer.android.com/resources/samples/TicTacToeLib/res/values/strings.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-normal-notlong/strings.html
+http://developer.android.com/resources/samples/TicTacToeMain/src/com/example/android/index.html
+http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/wiktionary/index.html
+http://developer.android.com/resources/samples/Home/res/layout-land/home.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-large-notlong/strings.html
+http://developer.android.com/resources/samples/BusinessCard/src/com/example/index.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-normal-long/strings.html
+http://developer.android.com/resources/samples/MultiResolution/res/layout-land/main.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-small-long/strings.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable/animated_gif.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable/balloons.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable/beach.html
@@ -4112,766 +5113,22 @@
 http://developer.android.com/resources/samples/ApiDemos/res/drawable/shape_5.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable/smlnpatch160dpi.9.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable/stylogo160dpi.html
-http://developer.android.com/sdk/api_diff/4/changes/packages_index_additions.html
-http://developer.android.com/sdk/api_diff/4/changes/packages_index_changes.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.app.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.content.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.content.pm.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.content.res.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.graphics.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.hardware.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.location.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.media.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.net.wifi.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.opengl.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.os.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.provider.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.telephony.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.test.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.test.mock.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.text.style.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.util.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.view.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.view.animation.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.widget.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_java.util.concurrent.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_java.util.concurrent.locks.html
-http://developer.android.com/sdk/api_diff/3/changes/android.graphics.Bitmap.html
-http://developer.android.com/sdk/api_diff/3/changes/android.graphics.Canvas.html
-http://developer.android.com/sdk/api_diff/3/changes/android.graphics.Rect.html
-http://developer.android.com/sdk/api_diff/3/changes/android.graphics.RectF.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Binder.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Build.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Debug.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Environment.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Handler.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.IBinder.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Looper.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Parcel.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/index.html
-http://developer.android.com/resources/samples/ApiDemos/tests/AndroidManifest.html
-http://developer.android.com/reference/java/util/concurrent/package-descr.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/drawable/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/layout/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/values/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/xml/index.html
-http://developer.android.com/resources/samples/Wiktionary/res/index.html
-http://developer.android.com/resources/samples/Wiktionary/src/index.html
-http://developer.android.com/resources/samples/Wiktionary/AndroidManifest.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-small-notlong/strings.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/index.html
-http://developer.android.com/resources/samples/TicTacToeLib/src/index.html
-http://developer.android.com/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-hdpi/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-ldpi/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-mdpi/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/layout/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/values/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-normal/strings.html
-http://developer.android.com/sdk/api_diff/6/changes/packages_index_changes.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/app_notes.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_compose.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_delete.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_discard.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_edit.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_revert.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/ic_menu_save.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/live_folder_notes.html
-http://developer.android.com/resources/samples/Snake/res/drawable/index.html
-http://developer.android.com/resources/samples/Snake/res/layout/index.html
-http://developer.android.com/resources/samples/Snake/res/values/index.html
-http://developer.android.com/sdk/api_diff/3/changes/android.webkit.URLUtil.html
-http://developer.android.com/sdk/api_diff/3/changes/android.webkit.UrlInterceptHandler.html
-http://developer.android.com/sdk/api_diff/3/changes/android.webkit.UrlInterceptRegistry.html
-http://developer.android.com/sdk/api_diff/3/changes/android.webkit.WebHistoryItem.html
-http://developer.android.com/sdk/api_diff/3/changes/android.webkit.WebSettings.html
-http://developer.android.com/sdk/api_diff/3/changes/android.webkit.WebView.html
-http://developer.android.com/resources/tutorials/views/hello-tablelayout.html
-http://developer.android.com/resources/samples/NotePad/res/values/strings.html
-http://developer.android.com/resources/samples/BluetoothChat/res/menu/option_menu.html
-http://developer.android.com/sdk/api_diff/8/changes/alldiffs_index_removals.html
-http://developer.android.com/sdk/api_diff/8/changes/alldiffs_index_additions.html
-http://developer.android.com/sdk/api_diff/8/changes/alldiffs_index_changes.html
-http://developer.android.com/sdk/api_diff/8/changes/android.media.AudioManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.widget.AbsListView.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.AbstractThreadedSyncAdapter.html
-http://developer.android.com/sdk/api_diff/8/changes/android.accounts.AccountManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.Settings.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.Intent.html
-http://developer.android.com/sdk/api_diff/8/changes/android.speech.RecognizerIntent.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.MotionEvent.html
-http://developer.android.com/sdk/api_diff/8/changes/android.app.Activity.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.pm.ActivityInfo.html
-http://developer.android.com/sdk/api_diff/8/changes/android.test.ActivityInstrumentationTestCase2.html
-http://developer.android.com/sdk/api_diff/8/changes/android.app.ActivityManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.app.ActivityManager.ProcessErrorStateInfo.html
-http://developer.android.com/sdk/api_diff/8/changes/android.hardware.Camera.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.ContentResolver.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.pm.PackageManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.test.mock.MockPackageManager.html
-http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Document.html
-http://developer.android.com/sdk/api_diff/8/changes/android.app.AlarmManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.Settings.Secure.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.accounts.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.app.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.content.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.content.pm.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.content.res.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.database.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.database.sqlite.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.gesture.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.graphics.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.hardware.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.location.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.media.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.net.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.net.http.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.opengl.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.os.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.provider.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.speech.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.speech.tts.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.telephony.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.test.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.test.mock.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.text.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.text.style.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.text.util.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.util.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.view.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.view.animation.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.webkit.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_android.widget.html
-http://developer.android.com/sdk/api_diff/8/changes/android.text.AndroidCharacter.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.animation.Animation.html
-http://developer.android.com/sdk/api_diff/8/changes/java.util.regex.Matcher.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.pm.ApplicationInfo.html
-http://developer.android.com/sdk/api_diff/8/changes/android.speech.tts.TextToSpeech.html
-http://developer.android.com/sdk/api_diff/8/changes/java.util.ArrayList.html
-http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Attr.html
-http://developer.android.com/sdk/api_diff/8/changes/android.media.SoundPool.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.Contacts.PresenceColumns.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.ContactsContract.StatusColumns.html
-http://developer.android.com/sdk/api_diff/8/changes/android.widget.BaseExpandableListAdapter.html
-http://developer.android.com/sdk/api_diff/8/changes/android.Manifest.permission.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.Context.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.Audio.AudioColumns.html
-http://developer.android.com/sdk/api_diff/8/changes/android.os.Build.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.WindowManager.LayoutParams.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.Browser.html
-http://developer.android.com/sdk/api_diff/8/changes/android.os.Build.VERSION_CODES.html
-http://developer.android.com/sdk/api_diff/8/changes/android.os.Bundle.html
-http://developer.android.com/sdk/api_diff/8/changes/android.webkit.CacheManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.CallLog.Calls.html
-http://developer.android.com/sdk/api_diff/8/changes/android.hardware.Camera.Parameters.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.Images.Thumbnails.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.Video.Thumbnails.html
-http://developer.android.com/sdk/api_diff/8/changes/java.nio.charset.Charset.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.ComponentName.html
-http://developer.android.com/sdk/api_diff/8/changes/android.gesture.Gesture.html
-http://developer.android.com/sdk/api_diff/8/changes/android.gesture.GesturePoint.html
-http://developer.android.com/sdk/api_diff/8/changes/android.gesture.GestureStroke.html
-http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Node.html
-http://developer.android.com/sdk/api_diff/8/changes/android.database.sqlite.SQLiteProgram.html
-http://developer.android.com/sdk/api_diff/8/changes/java.util.regex.Pattern.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.pm.ComponentInfo.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.res.Configuration.html
-http://developer.android.com/sdk/api_diff/8/changes/android.database.sqlite.SQLiteDatabase.html
-http://developer.android.com/sdk/api_diff/8/changes/android.net.ConnectivityManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.ContactsContract.Groups.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.ContactsContract.RawContacts.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.ContextWrapper.html
-http://developer.android.com/sdk/api_diff/8/changes/android.app.SearchManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.database.DatabaseUtils.html
-http://developer.android.com/sdk/api_diff/8/changes/android.R.id.html
-http://developer.android.com/sdk/api_diff/8/changes/android.R.anim.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_dalvik.bytecode.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_dalvik.system.html
-http://developer.android.com/sdk/api_diff/8/changes/java.net.DatagramSocketImpl.html
-http://developer.android.com/sdk/api_diff/8/changes/android.os.Debug.html
-http://developer.android.com/sdk/api_diff/8/changes/dalvik.system.Zygote.html
-http://developer.android.com/sdk/api_diff/8/changes/dalvik.system.VMDebug.html
-http://developer.android.com/sdk/api_diff/8/changes/android.content.SyncResult.html
-http://developer.android.com/sdk/api_diff/8/changes/android.app.Dialog.html
-http://developer.android.com/sdk/api_diff/8/changes/android.os.Environment.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.View.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.Display.html
-http://developer.android.com/sdk/api_diff/8/changes/javax.xml.parsers.DocumentBuilder.html
-http://developer.android.com/sdk/api_diff/8/changes/javax.xml.parsers.DocumentBuilderFactory.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_org.w3c.dom.html
-http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.DOMException.html
-http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.DOMImplementation.html
-http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Element.html
-http://developer.android.com/sdk/api_diff/8/changes/android.webkit.WebView.html
-http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Entity.html
-http://developer.android.com/sdk/api_diff/8/changes/android.util.EventLogTags.html
-http://developer.android.com/sdk/api_diff/8/changes/android.media.ExifInterface.html
-http://developer.android.com/sdk/api_diff/8/changes/android.R.attr.html
-http://developer.android.com/sdk/api_diff/8/changes/android.speech.tts.TextToSpeech.Engine.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.ViewGroup.LayoutParams.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.GestureDetector.html
-http://developer.android.com/sdk/api_diff/8/changes/android.webkit.WebSettings.html
-http://developer.android.com/sdk/api_diff/8/changes/android.widget.ListView.html
-http://developer.android.com/sdk/api_diff/8/changes/android.net.SSLCertificateSocketFactory.html
-http://developer.android.com/sdk/api_diff/8/changes/android.test.mock.MockContext.html
-http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.NamedNodeMap.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.ViewConfiguration.html
-http://developer.android.com/sdk/api_diff/8/changes/javax.xml.parsers.SAXParser.html
-http://developer.android.com/sdk/api_diff/8/changes/javax.xml.parsers.SAXParserFactory.html
-http://developer.android.com/sdk/api_diff/8/changes/android.net.http.SslCertificate.html
-http://developer.android.com/sdk/api_diff/8/changes/org.w3c.dom.Text.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.VelocityTracker.html
-http://developer.android.com/sdk/api_diff/8/changes/android.opengl.GLSurfaceView.html
-http://developer.android.com/sdk/api_diff/8/changes/android.view.HapticFeedbackConstants.html
-http://developer.android.com/sdk/api_diff/8/changes/java.util.HashMap.html
-http://developer.android.com/sdk/api_diff/8/changes/android.widget.ImageView.html
-http://developer.android.com/sdk/api_diff/8/changes/android.widget.TabWidget.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_java.net.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_java.nio.charset.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_java.util.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_java.util.regex.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_javax.xml.html
-http://developer.android.com/sdk/api_diff/8/changes/pkg_javax.xml.parsers.html
-http://developer.android.com/sdk/api_diff/8/changes/android.graphics.PixelFormat.html
-http://developer.android.com/sdk/api_diff/8/changes/android.webkit.JsResult.html
-http://developer.android.com/sdk/api_diff/8/changes/android.location.LocationManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.Settings.System.html
-http://developer.android.com/sdk/api_diff/8/changes/android.util.Log.html
-http://developer.android.com/sdk/api_diff/8/changes/android.opengl.Matrix.html
-http://developer.android.com/sdk/api_diff/8/changes/android.media.MediaRecorder.html
-http://developer.android.com/sdk/api_diff/8/changes/android.media.MediaScannerConnection.html
-http://developer.android.com/sdk/api_diff/8/changes/android.media.MediaScannerConnection.MediaScannerConnectionClient.html
-http://developer.android.com/sdk/api_diff/8/changes/android.provider.MediaStore.Audio.Playlists.Members.html
-http://developer.android.com/sdk/api_diff/8/changes/android.telephony.TelephonyManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.webkit.WebChromeClient.html
-http://developer.android.com/sdk/api_diff/8/changes/android.webkit.WebViewClient.html
-http://developer.android.com/sdk/api_diff/8/changes/dalvik.bytecode.Opcodes.html
-http://developer.android.com/sdk/api_diff/8/changes/android.os.PowerManager.html
-http://developer.android.com/sdk/api_diff/8/changes/android.widget.RemoteViews.html
-http://developer.android.com/sdk/api_diff/8/changes/android.widget.VideoView.html
-http://developer.android.com/sdk/api_diff/8/changes/android.text.util.Rfc822Tokenizer.html
-http://developer.android.com/sdk/api_diff/8/changes/android.hardware.Sensor.html
-http://developer.android.com/sdk/api_diff/8/changes/javax.xml.XMLConstants.html
-http://developer.android.com/sdk/api_diff/4/changes/android.widget.CheckedTextView.html
-http://developer.android.com/resources/samples/BusinessCard/res/layout/index.html
-http://developer.android.com/resources/samples/BusinessCard/res/values/index.html
-http://developer.android.com/resources/samples/Home/src/com/index.html
-http://developer.android.com/resources/samples/BluetoothChat/src/com/index.html
-http://developer.android.com/resources/samples/Snake/res/drawable/greenstar.html
-http://developer.android.com/resources/samples/Snake/res/drawable/redstar.html
-http://developer.android.com/resources/samples/Snake/res/drawable/yellowstar.html
-http://developer.android.com/sdk/api_diff/4/changes/java.util.concurrent.TimeUnit.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/index.html
-http://developer.android.com/resources/samples/LunarLander/res/index.html
-http://developer.android.com/resources/samples/LunarLander/src/index.html
-http://developer.android.com/resources/samples/LunarLander/tests/index.html
-http://developer.android.com/resources/samples/LunarLander/AndroidManifest.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/camera_menu.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/category_order.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/checkable.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/disabled.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/groups.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/order.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/shortcuts.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/submenu.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/title_icon.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/title_only.html
-http://developer.android.com/resources/samples/ApiDemos/res/menu/visible.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/alert_dialog_icon.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/app_sample_code.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/arrow_down_float.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/arrow_up_float.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/btn_check_off.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/btn_check_on.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/btn_circle_normal.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/btn_default_normal.9.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/button.9.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/ic_contact_picture.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/ic_popup_reminder.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/icon48x48_2.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/progress_circular_background.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/progress_particle.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/scrollbar_state2.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/star_big_on.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/stat_happy.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/stat_neutral.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/stat_sad.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-mdpi/stat_sample.html
-http://developer.android.com/resources/samples/Snake/res/layout/snake_layout.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/index.html
-http://developer.android.com/sdk/api_diff/8/changes/jdiff_statistics.html
-http://developer.android.com/sdk/api_diff/3/changes/android.test.ActivityInstrumentationTestCase.html
-http://developer.android.com/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html
-http://developer.android.com/sdk/api_diff/3/changes/android.test.ProviderTestCase.html
-http://developer.android.com/sdk/api_diff/3/changes/android.test.TouchUtils.html
-http://developer.android.com/resources/samples/NFCDemo/res/values/strings.html
-http://developer.android.com/resources/samples/JetBoy/res/layout/main.html
-http://developer.android.com/sdk/api_diff/8/changes/packages_index_all.html
-http://developer.android.com/sdk/api_diff/8/changes/classes_index_all.html
-http://developer.android.com/sdk/api_diff/8/changes/constructors_index_all.html
-http://developer.android.com/sdk/api_diff/8/changes/methods_index_all.html
-http://developer.android.com/sdk/api_diff/8/changes/fields_index_all.html
-http://developer.android.com/reference/org/apache/http/client/params/package-descr.html
-http://developer.android.com/resources/samples/Spinner/src/com/android/index.html
-http://developer.android.com/sdk/api_diff/3/changes/dalvik.system.DexFile.html
-http://developer.android.com/sdk/api_diff/3/changes/dalvik.system.VMDebug.html
-http://developer.android.com/sdk/api_diff/3/changes/dalvik.system.Zygote.html
-http://developer.android.com/resources/samples/TicTacToeMain/res/values/strings.html
-http://developer.android.com/sdk/api_diff/7/changes/packages_index_additions.html
-http://developer.android.com/sdk/api_diff/7/changes/packages_index_changes.html
-http://developer.android.com/resources/samples/BluetoothChat/res/drawable/app_icon.html
+http://developer.android.com/sdk/api_diff/3/changes/fields_index_removals.html
+http://developer.android.com/sdk/api_diff/3/changes/fields_index_additions.html
+http://developer.android.com/sdk/api_diff/3/changes/fields_index_changes.html
 http://developer.android.com/resources/samples/SearchableDictionary/res/menu/options_menu.html
-http://developer.android.com/reference/java/security/spec/package-descr.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-ldpi/icon.html
-http://developer.android.com/sdk/api_diff/9/changes/classes_index_removals.html
-http://developer.android.com/sdk/api_diff/9/changes/classes_index_additions.html
-http://developer.android.com/sdk/api_diff/9/changes/classes_index_changes.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/package-descr.html
-http://developer.android.com/reference/android/app/backup/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/res/values/arrays.html
-http://developer.android.com/resources/samples/ApiDemos/res/values/attrs.html
-http://developer.android.com/resources/samples/ApiDemos/res/values/colors.html
-http://developer.android.com/resources/samples/ApiDemos/res/values/ids.html
-http://developer.android.com/resources/samples/ApiDemos/res/values/strings.html
-http://developer.android.com/resources/samples/ApiDemos/res/values/styles.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/index.html
-http://developer.android.com/sdk/api_diff/3/changes/android.Manifest.permission.html
-http://developer.android.com/sdk/api_diff/3/changes/android.R.attr.html
-http://developer.android.com/sdk/api_diff/3/changes/android.R.drawable.html
-http://developer.android.com/sdk/api_diff/3/changes/android.R.id.html
-http://developer.android.com/sdk/api_diff/3/changes/android.R.string.html
-http://developer.android.com/sdk/api_diff/3/changes/android.R.style.html
-http://developer.android.com/sdk/api_diff/7/changes/fields_index_additions.html
-http://developer.android.com/sdk/api_diff/7/changes/fields_index_changes.html
-http://developer.android.com/resources/samples/BackupRestore/res/index.html
-http://developer.android.com/resources/samples/BackupRestore/src/index.html
-http://developer.android.com/resources/samples/BackupRestore/AndroidManifest.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/values/strings.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/logo120dpi.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/npatch120dpi.9.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/reslogo120dpi.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/smlnpatch120dpi.9.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/stylogo120dpi.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/drawable/index.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/layout/index.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/layout-land/index.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/values/index.html
-http://developer.android.com/resources/samples/Snake/src/com/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-large/strings.html
-http://developer.android.com/guide/developing/tools/adt.html
-http://developer.android.com/resources/samples/BusinessCard/src/com/index.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.animation.Animation.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.animation.Transformation.html
-http://developer.android.com/sdk/api_diff/3/changes/android.util.SparseIntArray.html
-http://developer.android.com/sdk/api_diff/3/changes/android.util.TimeUtils.html
-http://developer.android.com/sdk/api_diff/3/changes/android.net.ConnectivityManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.net.NetworkInfo.html
-http://developer.android.com/resources/samples/Wiktionary/res/anim/index.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/index.html
-http://developer.android.com/resources/samples/Wiktionary/res/layout/index.html
-http://developer.android.com/resources/samples/Wiktionary/res/menu/index.html
-http://developer.android.com/resources/samples/Wiktionary/res/values/index.html
-http://developer.android.com/resources/samples/Wiktionary/res/xml/index.html
-http://developer.android.com/resources/samples/Snake/res/values/attrs.html
-http://developer.android.com/resources/samples/Snake/res/values/strings.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/layout-land/lib_game.html
-http://developer.android.com/resources/samples/Wiktionary/src/com/index.html
-http://developer.android.com/resources/samples/BluetoothChat/src/com/example/index.html
-http://developer.android.com/resources/samples/NFCDemo/res/drawable/icon.html
-http://developer.android.com/resources/samples/BusinessCard/res/layout/business_card.html
-http://developer.android.com/reference/android/package-descr.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/src/com/example/android/accelerometerplay/AccelerometerPlayActivity.html
-http://developer.android.com/resources/samples/SipDemo/res/xml/preferences.html
-http://developer.android.com/sdk/api_diff/3/changes/android.test.suitebuilder.TestMethod.html
-http://developer.android.com/sdk/api_diff/3/changes/android.database.Cursor.html
-http://developer.android.com/sdk/api_diff/3/changes/android.database.CursorWrapper.html
-http://developer.android.com/sdk/api_diff/3/changes/android.database.DatabaseUtils.html
-http://developer.android.com/sdk/api_diff/3/changes/java.lang.Character.UnicodeBlock.html
-http://developer.android.com/sdk/api_diff/3/changes/java.lang.Class.html
-http://developer.android.com/sdk/api_diff/3/changes/packages_index_all.html
-http://developer.android.com/sdk/api_diff/3/changes/classes_index_all.html
-http://developer.android.com/sdk/api_diff/3/changes/constructors_index_all.html
-http://developer.android.com/sdk/api_diff/3/changes/methods_index_all.html
-http://developer.android.com/sdk/api_diff/3/changes/fields_index_all.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/xml/authenticator.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/xml/contacts.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/xml/syncadapter.html
-http://developer.android.com/sdk/api_diff/8/changes/fields_index_removals.html
-http://developer.android.com/sdk/api_diff/8/changes/fields_index_additions.html
-http://developer.android.com/sdk/api_diff/8/changes/fields_index_changes.html
-http://developer.android.com/sdk/api_diff/6/changes/classes_index_changes.html
-http://developer.android.com/resources/samples/BluetoothChat/src/com/example/android/index.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/values/strings.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/app_icon.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/ic_menu_shuffle.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/logo_overlay.9.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/lookup_bg.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/progress_spin.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/star_logo.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/widget_bg.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/widget_bg_normal.9.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/widget_bg_pressed.9.html
-http://developer.android.com/resources/samples/Wiktionary/res/drawable/widget_bg_selected.9.html
-http://developer.android.com/resources/samples/BusinessCard/src/com/example/index.html
-http://developer.android.com/resources/samples/ContactManager/res/index.html
-http://developer.android.com/resources/samples/ContactManager/src/index.html
-http://developer.android.com/resources/samples/ContactManager/AndroidManifest.html
-http://developer.android.com/resources/samples/NotePad/tests/src/index.html
-http://developer.android.com/resources/samples/NotePad/tests/AndroidManifest.html
-http://developer.android.com/resources/samples/SipDemo/src/com/example/android/index.html
-http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.ArrowKeyMovementMethod.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.BaseKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.DateKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.DateTimeKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.DialerKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.DigitsKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.KeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.MetaKeyKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.MovementMethod.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.MultiTapKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.QwertyKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.ScrollingMovementMethod.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.TextKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.TimeKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.method.Touch.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/app_icon.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/star_logo.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/widget_bg.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/widget_bg_normal.9.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/widget_bg_pressed.9.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/widget_bg_selected.9.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/values/strings.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/values/styles.html
-http://developer.android.com/sdk/api_diff/3/changes/methods_index_removals.html
-http://developer.android.com/sdk/api_diff/3/changes/methods_index_additions.html
-http://developer.android.com/sdk/api_diff/3/changes/methods_index_changes.html
-http://developer.android.com/sdk/api_diff/3/changes/android.location.LocationManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewTreeObserver.html
-http://developer.android.com/sdk/api_diff/3/changes/java.util.jar.Pack200.Packer.html
-http://developer.android.com/sdk/api_diff/3/changes/java.util.jar.Pack200.Unpacker.html
-http://developer.android.com/sdk/api_diff/3/changes/java.util.logging.LogManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.Gravity.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.TextView.html
-http://developer.android.com/sdk/api_diff/3/changes/android.app.Instrumentation.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.KeyEvent.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.View.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.Menu.html
-http://developer.android.com/sdk/api_diff/3/changes/android.app.Activity.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.res.AssetFileDescriptor.html
-http://developer.android.com/sdk/api_diff/3/changes/android.net.wifi.WifiManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.Annotation.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.AbsoluteSizeSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.AlignmentSpan.Standard.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.BackgroundColorSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.BulletSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.ForegroundColorSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.LeadingMarginSpan.Standard.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.QuoteSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.RelativeSizeSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.ScaleXSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.StrikethroughSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.StyleSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.SubscriptSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.SuperscriptSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.TextAppearanceSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.TypefaceSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.URLSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.UnderlineSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.KeyCharacterMap.html
-http://developer.android.com/sdk/api_diff/3/changes/android.location.Location.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewDebug.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.TextUtils.html
-http://developer.android.com/sdk/api_diff/3/changes/android.telephony.PhoneNumberUtils.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewConfiguration.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.res.Resources.html
-http://developer.android.com/sdk/api_diff/3/changes/android.app.AlertDialog.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.CursorAdapter.html
-http://developer.android.com/sdk/api_diff/3/changes/android.hardware.SensorManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.app.ActivityManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.preference.DialogPreference.html
-http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.RotateDrawable.html
-http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.ScaleDrawable.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.PopupWindow.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.AbsSeekBar.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.pm.PackageManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.test.mock.MockPackageManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.res.TypedArray.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.Settings.System.html
-http://developer.android.com/sdk/api_diff/3/changes/android.telephony.TelephonyManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.Chronometer.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.AutoText.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.Scroller.html
-http://developer.android.com/sdk/api_diff/3/changes/android.app.LauncherActivity.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.AbsListView.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.DynamicDrawableSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.Window.html
-http://developer.android.com/sdk/api_diff/3/changes/android.media.RingtoneManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.media.AudioManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.media.MediaPlayer.html
-http://developer.android.com/sdk/api_diff/3/changes/android.media.SoundPool.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.WindowManager.LayoutParams.html
-http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.Drawable.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.GestureDetector.SimpleOnGestureListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.ProgressBar.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.ContentProvider.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.ContentResolver.html
-http://developer.android.com/sdk/api_diff/3/changes/java.util.logging.Level.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.BroadcastReceiver.html
-http://developer.android.com/sdk/api_diff/3/changes/android.media.MediaRecorder.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.Intent.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewParent.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.RemoteViews.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.ListView.html
-http://developer.android.com/sdk/api_diff/3/changes/android.app.AlarmManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.GestureDetector.html
-http://developer.android.com/sdk/api_diff/3/changes/android.hardware.Camera.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.ViewGroup.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.ResourceCursorAdapter.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.ArrayAdapter.html
-http://developer.android.com/sdk/api_diff/3/changes/android.database.sqlite.SQLiteDatabase.html
-http://developer.android.com/sdk/api_diff/5/changes/classes_index_additions.html
-http://developer.android.com/sdk/api_diff/5/changes/classes_index_changes.html
-http://developer.android.com/sdk/api_diff/3/changes/android.media.MediaRecorder.OutputFormat.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/values/shapes.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/values/strings.html
-http://developer.android.com/sdk/api_diff/3/changes/classes_index_additions.html
-http://developer.android.com/sdk/api_diff/3/changes/classes_index_changes.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.AbsoluteLayout.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.pm.ActivityInfo.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.Browser.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.ClickableSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.res.Configuration.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.Contacts.Intents.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.Contacts.Intents.Insert.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.Contacts.PeopleColumns.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.Context.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.DialogInterface.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.GridView.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.ImageSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.MaskFilterSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.AlbumColumns.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.Media.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Images.Media.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Video.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.MediaStore.Video.VideoColumns.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.MotionEvent.html
-http://developer.android.com/sdk/api_diff/3/changes/android.view.OrientationListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.pm.PackageInfo.html
-http://developer.android.com/sdk/api_diff/3/changes/android.app.PendingIntent.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.PopupWindow.OnDismissListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.RasterizerSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.RemoteViews.ActionException.html
-http://developer.android.com/sdk/api_diff/3/changes/android.hardware.SensorListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.provider.Settings.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.Spanned.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.SpanWatcher.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.TextWatcher.html
-http://developer.android.com/sdk/api_diff/3/changes/android.graphics.drawable.TransitionDrawable.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.UpdateLayout.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/res/xml/widget_word.html
-http://developer.android.com/resources/samples/TicTacToeLib/src/com/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-notlong/strings.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-large-notlong/strings.html
+http://developer.android.com/resources/samples/Spinner/src/com/android/example/index.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-normal/strings.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-small-notlong/strings.html
+http://developer.android.com/resources/samples/MultiResolution/src/com/example/android/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/index.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/index.html
+http://developer.android.com/resources/samples/LunarLander/res/values/strings.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/layout/input.html
+http://developer.android.com/resources/samples/MultiResolution/res/layout/main.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable-nodpi/logonodpi120.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable-nodpi/logonodpi160.html
 http://developer.android.com/resources/samples/ApiDemos/res/drawable-nodpi/logonodpi240.html
-http://developer.android.com/sdk/api_diff/8/changes/classes_index_additions.html
-http://developer.android.com/sdk/api_diff/8/changes/classes_index_changes.html
-http://developer.android.com/resources/samples/NotePad/res/menu/editor_options_menu.html
-http://developer.android.com/resources/samples/NotePad/res/menu/list_context_menu.html
-http://developer.android.com/resources/samples/NotePad/res/menu/list_options_menu.html
-http://developer.android.com/resources/samples/TicTacToeMain/src/com/index.html
-http://developer.android.com/sdk/api_diff/8/changes/constructors_index_removals.html
-http://developer.android.com/sdk/api_diff/8/changes/constructors_index_additions.html
-http://developer.android.com/sdk/api_diff/8/changes/constructors_index_changes.html
-http://developer.android.com/sdk/api_diff/3/changes/packages_index_additions.html
-http://developer.android.com/sdk/api_diff/3/changes/packages_index_changes.html
-http://developer.android.com/resources/samples/NotePad/res/layout/note_editor.html
-http://developer.android.com/resources/samples/NotePad/res/layout/noteslist_item.html
-http://developer.android.com/resources/samples/NotePad/res/layout/title_editor.html
-http://developer.android.com/resources/samples/Snake/src/com/example/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/src/com/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-mdpi/icon.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid01.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid02.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid03.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid04.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid05.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid06.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid07.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid08.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid09.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid10.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid11.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid12.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid_explode1.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid_explode2.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid_explode3.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/asteroid_explode4.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/background_a.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/background_b.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/icon.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/int_timer.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/intbeam_1.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/intbeam_2.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/intbeam_3.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/intbeam_4.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/laser.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_1.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_2.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_3.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_4.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_hit_1.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_hit_2.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_hit_3.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/ship2_hit_4.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/title_bg_hori.html
-http://developer.android.com/resources/samples/JetBoy/res/drawable/title_hori.html
-http://developer.android.com/resources/samples/Wiktionary/src/com/example/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/com/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-small-long/strings.html
-http://developer.android.com/sdk/api_diff/4/changes/constructors_index_additions.html
-http://developer.android.com/sdk/api_diff/4/changes/constructors_index_changes.html
-http://developer.android.com/sdk/api_diff/4/changes/android.text.style.ImageSpan.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetProvider.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetConfigure.html
-http://developer.android.com/resources/samples/Snake/tests/src/index.html
-http://developer.android.com/resources/samples/Snake/tests/AndroidManifest.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/layout/login_activity.html
-http://developer.android.com/resources/samples/Home/res/anim/index.html
-http://developer.android.com/resources/samples/Home/res/color/index.html
-http://developer.android.com/resources/samples/Home/res/drawable/index.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/index.html
-http://developer.android.com/resources/samples/Home/res/drawable-land/index.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/index.html
-http://developer.android.com/resources/samples/Home/res/drawable-port/index.html
-http://developer.android.com/resources/samples/Home/res/layout/index.html
-http://developer.android.com/resources/samples/Home/res/layout-land/index.html
-http://developer.android.com/resources/samples/Home/res/layout-port/index.html
-http://developer.android.com/resources/samples/Home/res/values/index.html
-http://developer.android.com/resources/samples/Home/res/values-cs/index.html
-http://developer.android.com/resources/samples/Home/res/values-de-rDE/index.html
-http://developer.android.com/resources/samples/Home/res/values-es-rUS/index.html
-http://developer.android.com/resources/samples/Home/res/values-land/index.html
-http://developer.android.com/resources/samples/Home/res/values-nl-rNL/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-small/strings.html
-http://developer.android.com/resources/samples/Spinner/src/com/android/example/index.html
-http://developer.android.com/reference/android/bluetooth/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/res/xml/advanced_preferences.html
-http://developer.android.com/resources/samples/ApiDemos/res/xml/appwidget_provider.html
-http://developer.android.com/resources/samples/ApiDemos/res/xml/default_values.html
-http://developer.android.com/resources/samples/ApiDemos/res/xml/device_admin_sample.html
-http://developer.android.com/resources/samples/ApiDemos/res/xml/preference_dependencies.html
-http://developer.android.com/resources/samples/ApiDemos/res/xml/preferences.html
-http://developer.android.com/resources/samples/ApiDemos/res/xml/searchable.html
-http://developer.android.com/sdk/api_diff/4/changes/alldiffs_index_removals.html
-http://developer.android.com/sdk/api_diff/4/changes/alldiffs_index_additions.html
-http://developer.android.com/sdk/api_diff/4/changes/alldiffs_index_changes.html
-http://developer.android.com/sdk/api_diff/4/changes/java.util.concurrent.locks.AbstractQueuedSynchronizer.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html
-http://developer.android.com/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/index.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/index.html
-http://developer.android.com/resources/samples/ContactManager/res/drawable-hdpi/index.html
-http://developer.android.com/resources/samples/ContactManager/res/drawable-ldpi/index.html
-http://developer.android.com/resources/samples/ContactManager/res/drawable-mdpi/index.html
-http://developer.android.com/resources/samples/ContactManager/res/layout/index.html
-http://developer.android.com/resources/samples/ContactManager/res/values/index.html
-http://developer.android.com/resources/samples/JetBoy/res/values/strings.html
-http://developer.android.com/resources/samples/JetBoy/res/values/styles.html
-http://developer.android.com/reference/android/net/sip/package-descr.html
-http://developer.android.com/resources/samples/Spinner/res/layout/index.html
-http://developer.android.com/resources/samples/Spinner/res/values/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-normal-notlong/strings.html
-http://developer.android.com/sdk/api_diff/4/changes/classes_index_removals.html
-http://developer.android.com/sdk/api_diff/4/changes/classes_index_additions.html
-http://developer.android.com/sdk/api_diff/4/changes/classes_index_changes.html
-http://developer.android.com/resources/samples/NFCDemo/res/layout/tag_divider.html
-http://developer.android.com/resources/samples/NFCDemo/res/layout/tag_text.html
-http://developer.android.com/resources/samples/NFCDemo/res/layout/tag_viewer.html
-http://developer.android.com/sdk/api_diff/7/changes/methods_index_additions.html
-http://developer.android.com/sdk/api_diff/7/changes/methods_index_changes.html
-http://developer.android.com/resources/samples/LunarLander/tests/src/index.html
-http://developer.android.com/resources/samples/LunarLander/tests/AndroidManifest.html
-http://developer.android.com/resources/samples/SipDemo/src/com/example/android/sip/index.html
-http://developer.android.com/resources/samples/Wiktionary/res/xml/searchable.html
-http://developer.android.com/resources/samples/Wiktionary/res/xml/widget_word.html
-http://developer.android.com/resources/samples/BackupRestore/src/com/index.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/layout/main.html
-http://developer.android.com/resources/samples/Home/res/drawable-land/bg_android.html
-http://developer.android.com/resources/samples/Home/res/drawable-land/bg_android_icon.html
-http://developer.android.com/resources/samples/Home/res/drawable-land/bg_sunrise.html
-http://developer.android.com/resources/samples/Home/res/drawable-land/bg_sunrise_icon.html
-http://developer.android.com/resources/samples/Home/res/drawable-land/bg_sunset.html
-http://developer.android.com/resources/samples/Home/res/drawable-land/bg_sunset_icon.html
-http://developer.android.com/resources/samples/Snake/tests/src/com/index.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/all_applications_label_background.9.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/application_background.9.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/application_background_static.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/focused_application_background_static.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/hide_all_applications.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/ic_launcher_allhide.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/ic_launcher_allshow.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/ic_launcher_home.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/pressed_application_background_static.html
-http://developer.android.com/resources/samples/Home/res/drawable-hdpi/show_all_applications.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/index.html
-http://developer.android.com/resources/samples/Wiktionary/res/layout/about.html
-http://developer.android.com/resources/samples/Wiktionary/res/layout/lookup.html
-http://developer.android.com/resources/samples/Wiktionary/res/layout/widget_message.html
-http://developer.android.com/resources/samples/Wiktionary/res/layout/widget_word.html
-http://developer.android.com/resources/samples/BluetoothChat/src/com/example/android/BluetoothChat/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/drawable-hdpi/ic_menu_search.html
-http://developer.android.com/resources/samples/MultiResolution/res/index.html
-http://developer.android.com/resources/samples/MultiResolution/src/index.html
-http://developer.android.com/resources/samples/MultiResolution/AndroidManifest.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-ldpi/app_notes.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-ldpi/live_folder_notes.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/layout/lib_game.html
-http://developer.android.com/resources/samples/ContactManager/src/com/index.html
-http://developer.android.com/resources/samples/Home/res/values/attrs.html
-http://developer.android.com/resources/samples/Home/res/values/strings.html
-http://developer.android.com/resources/samples/Home/res/values/styles.html
-http://developer.android.com/reference/android/app/Instrumentation
-http://developer.android.com/resources/samples/SpinnerTest/AndroidManifest.html
-http://developer.android.com/resources/samples/SpinnerTest/src/com/android/example/spinner/test/SpinnerActivityTest.html
-http://developer.android.com/resources/samples/SpinnerTest/res/index.html
-http://developer.android.com/resources/samples/SpinnerTest/src/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/index.html
-http://developer.android.com/resources/samples/Home/res/drawable-port/bg_android.html
-http://developer.android.com/resources/samples/Home/res/drawable-port/bg_android_icon.html
-http://developer.android.com/resources/samples/Home/res/drawable-port/bg_sunrise.html
-http://developer.android.com/resources/samples/Home/res/drawable-port/bg_sunrise_icon.html
-http://developer.android.com/resources/samples/Home/res/drawable-port/bg_sunset.html
-http://developer.android.com/resources/samples/Home/res/drawable-port/bg_sunset_icon.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/drawable/icon.html
-http://developer.android.com/resources/samples/Home/res/color/bright_text_dark_focused.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/layout/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/values/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/values-land/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/xml/index.html
-http://developer.android.com/resources/samples/SipDemo/src/com/example/android/sip/IncomingCallReceiver.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/res/values/strings.html
-http://developer.android.com/resources/samples/Home/res/values-nl-rNL/strings.html
-http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/index.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/activity_animation.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/alarm_controller.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/alarm_service.html
@@ -5036,48 +5293,66 @@
 http://developer.android.com/resources/samples/ApiDemos/res/layout/voice_recognition.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/wallpaper_2.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/webview_1.html
-http://developer.android.com/resources/samples/Spinner/src/com/android/example/spinner/index.html
-http://developer.android.com/resources/samples/ContactManager/res/values/strings.html
-http://developer.android.com/resources/samples/Home/res/layout-port/home.html
-http://developer.android.com/resources/samples/LunarLander/tests/src/com/index.html
-http://developer.android.com/sdk/api_diff/3/changes/constructors_index_removals.html
-http://developer.android.com/sdk/api_diff/3/changes/constructors_index_additions.html
-http://developer.android.com/sdk/api_diff/3/changes/constructors_index_changes.html
-http://developer.android.com/resources/samples/Home/res/values-es-rUS/strings.html
-http://developer.android.com/resources/samples/ContactManager/res/layout/account_entry.html
-http://developer.android.com/resources/samples/ContactManager/res/layout/contact_adder.html
-http://developer.android.com/resources/samples/ContactManager/res/layout/contact_entry.html
-http://developer.android.com/resources/samples/ContactManager/res/layout/contact_manager.html
-http://developer.android.com/resources/samples/AccessibilityService/res/values/strings.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/index.html
-http://developer.android.com/resources/samples/Home/res/layout-land/home.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_delete.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_done.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_return.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_search.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_shift.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_space.html
-http://developer.android.com/resources/samples/Wiktionary/res/values/strings.html
-http://developer.android.com/resources/samples/Wiktionary/res/values/styles.html
-http://developer.android.com/resources/samples/Wiktionary/res/values/themes.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/values/colors.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/values/dimens.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/values/strings.html
-http://developer.android.com/resources/samples/Home/res/values-land/strings.html
-http://developer.android.com/resources/samples/Wiktionary/res/anim/slide_in.html
-http://developer.android.com/resources/samples/Wiktionary/res/anim/slide_out.html
-http://developer.android.com/resources/samples/Home/res/drawable/all_applications.html
-http://developer.android.com/resources/samples/Home/res/drawable/all_applications_background.html
-http://developer.android.com/resources/samples/Home/res/drawable/all_applications_button_background.html
-http://developer.android.com/resources/samples/Home/res/drawable/favorite_background.html
-http://developer.android.com/resources/samples/Home/res/drawable/grid_selector.html
-http://developer.android.com/resources/samples/BusinessCard/res/values/strings.html
-http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/index.html
-http://developer.android.com/reference/android/provider/package-descr.html
-http://developer.android.com/resources/samples/MultiResolution/src/com/index.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/index.html
-http://developer.android.com/sdk/adt_download.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-notlong/strings.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/xml/authenticator.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/xml/contacts.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/res/xml/syncadapter.html
+http://developer.android.com/reference/android/graphics/drawable/shapes/package-descr.html
+http://developer.android.com/resources/samples/TicTacToeMain/src/com/example/android/tictactoe/index.html
+http://developer.android.com/resources/samples/LunarLander/src/com/example/index.html
+http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/android/index.html
+http://developer.android.com/resources/samples/Snake/src/com/example/android/index.html
+http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/index.html
+http://developer.android.com/resources/samples/Home/res/values-nl-rNL/strings.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi/android.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi/ic_launcher.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi/image_container.9.html
+http://developer.android.com/resources/samples/Snake/res/layout/snake_layout.html
 http://developer.android.com/resources/samples/ContactManager/res/drawable-ldpi/icon.html
+http://developer.android.com/resources/samples/Spinner/src/com/android/example/spinner/index.html
+http://developer.android.com/resources/samples/MultiResolution/src/com/example/android/multires/index.html
+http://developer.android.com/resources/samples/SpinnerTest/src/com/android/example/spinner/test/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi/android.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi/ic_launcher.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi/image_container.9.html
+http://developer.android.com/resources/samples/Snake/res/drawable/greenstar.html
+http://developer.android.com/resources/samples/Snake/res/drawable/redstar.html
+http://developer.android.com/resources/samples/Snake/res/drawable/yellowstar.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/logo120dpi.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/npatch120dpi.9.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/reslogo120dpi.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/smlnpatch120dpi.9.html
+http://developer.android.com/resources/samples/ApiDemos/res/drawable-ldpi/stylogo120dpi.html
+http://developer.android.com/sdk/api_diff/5/changes/alldiffs_index_removals.html
+http://developer.android.com/sdk/api_diff/5/changes/alldiffs_index_additions.html
+http://developer.android.com/sdk/api_diff/5/changes/alldiffs_index_changes.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/record/index.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/simulator/index.html
+http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/index.html
+http://developer.android.com/resources/samples/BluetoothChat/src/com/example/android/BluetoothChat/index.html
+http://developer.android.com/resources/samples/ContactManager/src/com/example/android/index.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-large-long/strings.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/app_icon.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/star_logo.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/widget_bg.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/widget_bg_normal.9.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/widget_bg_pressed.9.html
+http://developer.android.com/resources/samples/WiktionarySimple/res/drawable/widget_bg_selected.9.html
+http://developer.android.com/resources/samples/SearchableDictionary/src/com/index.html
+http://developer.android.com/resources/samples/Snake/tests/src/index.html
+http://developer.android.com/resources/samples/Snake/tests/AndroidManifest.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/background.9.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/icon.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_0.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_1.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_2.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_3.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_4.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_5.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_6.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_7.html
+http://developer.android.com/resources/samples/AccelerometerPlay/src/com/example/index.html
 http://developer.android.com/resources/samples/ApiDemos/res/anim/cycle_7.html
 http://developer.android.com/resources/samples/ApiDemos/res/anim/fade.html
 http://developer.android.com/resources/samples/ApiDemos/res/anim/hold.html
@@ -5102,109 +5377,45 @@
 http://developer.android.com/resources/samples/ApiDemos/res/anim/wave_scale.html
 http://developer.android.com/resources/samples/ApiDemos/res/anim/zoom_enter.html
 http://developer.android.com/resources/samples/ApiDemos/res/anim/zoom_exit.html
-http://developer.android.com/resources/samples/Home/res/values-de-rDE/strings.html
-http://developer.android.com/resources/samples/Home/res/anim/fade_in.html
-http://developer.android.com/resources/samples/Home/res/anim/fade_out.html
-http://developer.android.com/resources/samples/Home/res/anim/grid_entry.html
-http://developer.android.com/resources/samples/Home/res/anim/grid_exit.html
-http://developer.android.com/resources/samples/Home/res/anim/hide_applications.html
-http://developer.android.com/resources/samples/Home/res/anim/show_applications.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi-v6/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi-v6/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi-v6/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/layout/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/layout-land/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/values/index.html
-http://developer.android.com/resources/samples/BackupRestore/res/layout/index.html
-http://developer.android.com/resources/samples/BackupRestore/res/values/index.html
-http://developer.android.com/resources/samples/NFCDemo/src/com/example/index.html
-http://developer.android.com/reference/javax/net/package-descr.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/all_applications_label_background.9.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/application_background.9.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/application_background_static.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/focused_application_background_static.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/hide_all_applications.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/ic_launcher_allhide.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/ic_launcher_allshow.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/ic_launcher_home.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/pressed_application_background_static.html
-http://developer.android.com/resources/samples/Home/res/drawable-mdpi/show_all_applications.html
+http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi/android.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi/ic_launcher.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi/image_container.9.html
+http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi-v6/ic_launcher.html
+http://developer.android.com/resources/samples/LunarLander/res/layout/lunar_layout.html
+http://developer.android.com/resources/samples/SpinnerTest/res/values/index.html
+http://developer.android.com/resources/samples/JetBoy/src/com/example/android/index.html
+http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/index.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/src/com/example/android/index.html
+http://developer.android.com/resources/samples/ContactManager/src/com/example/android/contactmanager/index.html
 http://developer.android.com/resources/samples/BluetoothChat/src/com/example/android/BluetoothChat/BluetoothChat.html
 http://developer.android.com/resources/samples/BluetoothChat/src/com/example/android/BluetoothChat/BluetoothChatService.html
 http://developer.android.com/resources/samples/BluetoothChat/src/com/example/android/BluetoothChat/DeviceListActivity.html
-http://developer.android.com/resources/samples/SpinnerTest/res/values/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/layout/main.html
-http://developer.android.com/sdk/api_diff/5/changes/fields_index_removals.html
-http://developer.android.com/sdk/api_diff/5/changes/fields_index_additions.html
-http://developer.android.com/sdk/api_diff/5/changes/fields_index_changes.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/drawable/lib_bg.9.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/drawable/lib_circle.html
-http://developer.android.com/resources/samples/TicTacToeLib/res/drawable/lib_cross.html
-http://developer.android.com/resources/samples/BackupRestore/res/layout/backup_restore.html
-http://developer.android.com/reference/org/apache/http/auth/package-descr.html
-http://developer.android.com/resources/samples/TicTacToeMain/res/drawable/icon.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/layout-land/main.html
-http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/index.html
-http://developer.android.com/resources/samples/Home/res/values-cs/strings.html
-http://developer.android.com/resources/samples/Spinner/src/com/android/example/spinner/SpinnerActivity.html
-http://developer.android.com/resources/samples/BluetoothChat/res/values/strings.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/index.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/DictionaryDatabase.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/DictionaryProvider.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/SearchableDictionary.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/WordActivity.html
-http://developer.android.com/resources/samples/BackupRestore/res/values/strings.html
-http://developer.android.com/resources/samples/Spinner/res/values/strings.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable/index.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable-land/index.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable-port/index.html
-http://developer.android.com/resources/samples/LunarLander/res/layout/index.html
-http://developer.android.com/resources/samples/LunarLander/res/values/index.html
-http://developer.android.com/resources/samples/ContactManager/res/drawable-hdpi/icon.html
-http://developer.android.com/resources/samples/ContactManager/src/com/example/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/layout/input.html
+http://developer.android.com/resources/samples/Home/res/values-es-rUS/strings.html
+http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/index.html
+http://developer.android.com/resources/samples/NotePad/tests/src/com/example/index.html
+http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/index.html
+http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/BackupRestoreActivity.html
+http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/FileHelperExampleAgent.html
+http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/MultiRecordExampleAgent.html
+http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_delete.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_done.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_return.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_search.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_shift.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_space.html
 http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/android/index.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/xml/cube1.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/xml/cube2.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/res/xml/cube2_settings.html
-http://developer.android.com/resources/samples/Wiktionary/res/menu/lookup.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/package-descr.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/index.html
-http://developer.android.com/sdk/api_diff/8/changes/packages_index_additions.html
-http://developer.android.com/sdk/api_diff/8/changes/packages_index_changes.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/background.9.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/icon.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_0.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_1.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_2.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_3.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_4.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_5.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_6.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable/sample_7.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/index.html
-http://developer.android.com/resources/samples/TicTacToeMain/src/com/example/index.html
-http://developer.android.com/resources/samples/BackupRestore/src/com/example/index.html
-http://developer.android.com/resources/samples/SpinnerTest/src/com/index.html
-http://developer.android.com/sdk/api_diff/3/changes/alldiffs_index_removals.html
-http://developer.android.com/sdk/api_diff/3/changes/alldiffs_index_additions.html
-http://developer.android.com/sdk/api_diff/3/changes/alldiffs_index_changes.html
-http://developer.android.com/resources/samples/LunarLander/res/values/strings.html
-http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/index.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/index.html
-http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/index.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable-land/earthrise.html
-http://developer.android.com/sdk/api_diff/8/changes/methods_index_removals.html
-http://developer.android.com/sdk/api_diff/8/changes/methods_index_additions.html
-http://developer.android.com/sdk/api_diff/8/changes/methods_index_changes.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi-v6/ic_launcher.html
-http://developer.android.com/resources/samples/LunarLander/src/com/index.html
+http://developer.android.com/resources/samples/NotePad/tests/src/com/example/android/index.html
+http://developer.android.com/resources/samples/Wiktionary/res/anim/slide_in.html
+http://developer.android.com/resources/samples/Wiktionary/res/anim/slide_out.html
+http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/tictactoe/index.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/index.html
+http://developer.android.com/resources/samples/SpinnerTest/res/values/strings.html
 http://developer.android.com/resources/samples/ApiDemos/res/raw/robot.html
 http://developer.android.com/resources/samples/ApiDemos/res/raw/skycubemap0.html
 http://developer.android.com/resources/samples/ApiDemos/res/raw/skycubemap1.html
@@ -5212,275 +5423,106 @@
 http://developer.android.com/resources/samples/ApiDemos/res/raw/skycubemap3.html
 http://developer.android.com/resources/samples/ApiDemos/res/raw/skycubemap4.html
 http://developer.android.com/resources/samples/ApiDemos/res/raw/skycubemap5.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/values-land/dimens.html
-http://developer.android.com/reference/javax/xml/namespace/package-descr.html
-http://developer.android.com/resources/samples/Snake/tests/src/com/example/index.html
-http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/BusinessCardActivity.html
-http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactAccessor.html
-http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactAccessorSdk3_4.html
-http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactAccessorSdk5.html
-http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactInfo.html
-http://developer.android.com/resources/samples/LunarLander/src/com/example/index.html
-http://developer.android.com/resources/samples/JetBoy/src/com/index.html
-http://developer.android.com/resources/samples/Snake/src/com/example/android/index.html
-http://developer.android.com/resources/tutorials/views/hello-mapview.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/index.html
-http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/index.html
-http://developer.android.com/resources/samples/LunarLander/res/layout/lunar_layout.html
-http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/tictactoe/index.html
-http://developer.android.com/resources/samples/ContactManager/res/drawable-mdpi/icon.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable/app_lunar_lander.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable/lander_crashed.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable/lander_firing.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable/lander_plain.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable-port/earthrise.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi-v6/ic_launcher.html
-http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/index.html
-http://developer.android.com/resources/samples/AccessibilityService/src/com/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_delete.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_done.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_return.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_search.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_shift.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-mdpi/sym_keyboard_space.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi/android.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi/ic_launcher.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi/image_container.9.html
-http://developer.android.com/resources/samples/JetBoy/src/com/example/index.html
-http://developer.android.com/resources/samples/LunarLander/src/com/example/android/index.html
-http://developer.android.com/resources/samples/Home/src/com/example/index.html
-http://developer.android.com/sdk/api_diff/6/changes/fields_index_additions.html
-http://developer.android.com/sdk/api_diff/6/changes/fields_index_changes.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-hdpi/ball.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-hdpi/icon.html
-http://developer.android.com/resources/samples/AccelerometerPlay/res/drawable-hdpi/wood.html
-http://developer.android.com/sdk/api_diff/6/changes/methods_index_changes.html
-http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/tictactoe/library/index.html
-http://developer.android.com/resources/samples/Snake/tests/src/com/example/android/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi-v6/ic_launcher.html
-http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi/android.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi/ic_launcher.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-ldpi/image_container.9.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NotePad.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NotePadProvider.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NotesList.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NotesLiveFolder.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/TitleEditor.html
-http://developer.android.com/resources/samples/NotePad/tests/src/com/index.html
-http://developer.android.com/resources/samples/SpinnerTest/res/values/strings.html
-http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/record/index.html
-http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/simulator/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/alert_dialog_icon.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/app_sample_code.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/arrow_down_float.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/arrow_up_float.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/btn_check_off.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/btn_check_on.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/btn_circle_normal.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/btn_default_normal.9.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/button.9.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/ic_contact_picture.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/ic_popup_reminder.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/icon48x48_2.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/logo240dpi.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/npatch240dpi.9.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/progress_circular_background.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/progress_particle.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/reslogo240dpi.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/scrollbar_state2.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/smlnpatch240dpi.9.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/star_big_on.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stat_happy.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stat_neutral.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stat_sad.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stat_sample.html
-http://developer.android.com/resources/samples/ApiDemos/res/drawable-hdpi/stylogo240dpi.html
-http://developer.android.com/resources/samples/Snake/src/com/example/android/snake/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/android/simplewiktionary/index.html
-http://developer.android.com/resources/samples/MultiResolution/src/com/example/index.html
-http://developer.android.com/resources/samples/Spinner/res/layout/main.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi/android.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi/ic_launcher.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi/image_container.9.html
-http://developer.android.com/resources/samples/Home/res/layout/all_applications_button.html
-http://developer.android.com/resources/samples/Home/res/layout/application.html
-http://developer.android.com/resources/samples/Home/res/layout/favorite.html
-http://developer.android.com/resources/samples/Home/res/layout/wallpaper.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/xml/method.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/xml/qwerty.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/xml/symbols.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/xml/symbols_shift.html
-http://developer.android.com/resources/samples/Snake/tests/src/com/example/android/snake/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/values/strings.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/RelativeLayout1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/RelativeLayout2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout4.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout5.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout6.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout7.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout8.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout9.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollView1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollView2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout4.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout5.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout6.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout7.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout8.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout9.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout10.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout11.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TableLayout12.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline4.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline6.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Baseline7.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/BaselineNested1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/BaselineNested2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/BaselineNested3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/RadioGroup1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollBar1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollBar2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Visibility1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List4.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List5.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List6.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List7.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List8.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/CustomView1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ImageButton1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/DateWidgets1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/DateWidgets2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Gallery1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Gallery2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Spinner1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Grid1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Grid2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ImageSwitcher1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/TextSwitcher1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Animation1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Animation2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Controls1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Controls2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete4.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete5.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar4.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Focus1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Focus2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Focus3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Animation3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/AutoComplete6.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Buttons1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ChronometerDemo.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ImageView1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/InternalSelectionFocus.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/InternalSelectionScroll.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/InternalSelectionView.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation4.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation5.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation6.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LayoutAnimation7.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/LinearLayout10.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List10.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List11.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List12.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List13.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List9.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/RatingBar1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ScrollBar3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/SecureViewOverlay.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/SeekBar1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Tabs1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Tabs2.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Tabs3.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/WebView1.html
-http://developer.android.com/sdk/api_diff/3/changes/fields_index_removals.html
-http://developer.android.com/sdk/api_diff/3/changes/fields_index_additions.html
-http://developer.android.com/sdk/api_diff/3/changes/fields_index_changes.html
-http://developer.android.com/sdk/api_diff/9/changes/constructors_index_removals.html
-http://developer.android.com/sdk/api_diff/9/changes/constructors_index_additions.html
-http://developer.android.com/sdk/api_diff/9/changes/constructors_index_changes.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-normal-long/strings.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/index.html
-http://developer.android.com/resources/samples/AccessibilityService/src/com/example/index.html
-http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/android/index.html
-http://developer.android.com/resources/samples/NotePad/tests/src/com/example/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/index.html
-http://developer.android.com/resources/samples/SpinnerTest/src/com/android/index.html
-http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/wiktionary/index.html
-http://developer.android.com/reference/android/hardware/package-descr.html
-http://developer.android.com/resources/samples/Snake/src/com/example/android/snake/Snake.html
-http://developer.android.com/resources/samples/Snake/src/com/example/android/snake/SnakeView.html
-http://developer.android.com/resources/samples/Snake/src/com/example/android/snake/TileView.html
-http://developer.android.com/resources/samples/LunarLander/src/com/example/android/lunarlander/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-long/strings.html
-http://developer.android.com/resources/samples/Snake/tests/src/com/example/android/snake/SnakeTest.html
-http://developer.android.com/resources/samples/MultiResolution/src/com/example/android/index.html
-http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/index.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/index.html
-http://developer.android.com/resources/samples/AccessibilityService/src/com/example/android/index.html
-http://developer.android.com/resources/samples/ContactManager/src/com/example/android/index.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/CandidateView.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/LatinKeyboard.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/LatinKeyboardView.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/SoftKeyboard.html
-http://developer.android.com/resources/samples/LunarLander/src/com/example/android/lunarlander/LunarLander.html
-http://developer.android.com/resources/samples/LunarLander/src/com/example/android/lunarlander/LunarView.html
-http://developer.android.com/resources/samples/NotePad/tests/src/com/example/android/index.html
+http://developer.android.com/resources/samples/AccelerometerPlay/src/com/example/android/accelerometerplay/index.html
+http://developer.android.com/resources/samples/Home/src/com/example/android/index.html
 http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/wiktionary/ExtendedWikiHelper.html
 http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/wiktionary/LookupActivity.html
 http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/wiktionary/SimpleWikiHelper.html
 http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/wiktionary/WordWidget.html
-http://developer.android.com/resources/samples/TicTacToeMain/src/com/example/android/index.html
-http://developer.android.com/resources/samples/SpinnerTest/src/com/android/example/index.html
-http://developer.android.com/resources/samples/MultiResolution/src/com/example/android/multires/index.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/index.html
-http://developer.android.com/resources/samples/Home/src/com/example/android/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/authenticator/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/client/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/Constants.html
-http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/android/lunarlander/index.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/index.html
-http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/index.html
-http://developer.android.com/resources/samples/AccessibilityService/src/com/example/android/clockback/index.html
+http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/CandidateView.html
+http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/LatinKeyboard.html
+http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/LatinKeyboardView.html
+http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/SoftKeyboard.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/camera_menu.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/category_order.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/checkable.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/disabled.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/groups.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/order.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/shortcuts.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/submenu.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/title_icon.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/title_only.html
+http://developer.android.com/resources/samples/ApiDemos/res/menu/visible.html
+http://developer.android.com/resources/samples/Home/res/drawable/all_applications.html
+http://developer.android.com/resources/samples/Home/res/drawable/all_applications_background.html
+http://developer.android.com/resources/samples/Home/res/drawable/all_applications_button_background.html
+http://developer.android.com/resources/samples/Home/res/drawable/favorite_background.html
+http://developer.android.com/resources/samples/Home/res/drawable/grid_selector.html
 http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/app/index.html
 http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/os/index.html
 http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/view/index.html
 http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/AllTests.html
 http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/ApiDemosApplicationTests.html
 http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/ApiDemosTest.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/authenticator/AuthenticationService.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/authenticator/Authenticator.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/authenticator/AuthenticatorActivity.html
-http://developer.android.com/resources/samples/MultiResolution/src/com/example/android/multires/MultiRes.html
-http://developer.android.com/resources/samples/TicTacToeMain/src/com/example/android/tictactoe/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/android/simplewiktionary/index.html
+http://developer.android.com/resources/samples/Snake/res/values/attrs.html
+http://developer.android.com/resources/samples/Snake/res/values/strings.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/index.html
+http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/index.html
+http://developer.android.com/resources/samples/Spinner/src/com/android/example/spinner/SpinnerActivity.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_delete.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_done.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_return.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_search.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_shift.html
+http://developer.android.com/resources/samples/SoftKeyboard/res/drawable-hdpi/sym_keyboard_space.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-small/strings.html
+http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NotePad.html
+http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NotePadProvider.html
+http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NotesList.html
+http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NotesLiveFolder.html
+http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/TitleEditor.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/view/Focus2ActivityTest.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/view/Focus2AndroidTest.html
+http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/BusinessCardActivity.html
+http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactAccessor.html
+http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactAccessorSdk3_4.html
+http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactAccessorSdk5.html
+http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactInfo.html
+http://developer.android.com/resources/samples/TicTacToeLib/src/com/example/android/tictactoe/library/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/values/strings.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/index.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-long/strings.html
+http://developer.android.com/resources/samples/LunarLander/src/com/example/android/index.html
+http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/android/simplewiktionary/SimpleWikiHelper.html
+http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/android/simplewiktionary/WordWidget.html
+http://developer.android.com/resources/samples/Snake/src/com/example/android/snake/index.html
+http://developer.android.com/resources/samples/Snake/tests/src/com/index.html
+http://developer.android.com/resources/samples/NotePad/tests/src/com/example/android/notepad/index.html
+http://developer.android.com/resources/samples/ContactManager/src/com/example/android/contactmanager/ContactAdder.html
+http://developer.android.com/resources/samples/ContactManager/src/com/example/android/contactmanager/ContactManager.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/index.html
+http://developer.android.com/resources/samples/Home/src/com/example/android/home/index.html
+http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi-v6/ic_launcher.html
+http://developer.android.com/sdk/api_diff/5/changes/fields_index_removals.html
+http://developer.android.com/sdk/api_diff/5/changes/fields_index_additions.html
+http://developer.android.com/sdk/api_diff/5/changes/fields_index_changes.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube1/index.html
+http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube2/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/index.html
+http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/Asteroid.html
+http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/Explosion.html
+http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/JetBoy.html
+http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/JetBoyView.html
+http://developer.android.com/resources/samples/Snake/tests/src/com/example/index.html
+http://developer.android.com/resources/samples/Home/src/com/example/android/home/ApplicationInfo.html
+http://developer.android.com/resources/samples/Home/src/com/example/android/home/ApplicationsStackLayout.html
+http://developer.android.com/resources/samples/Home/src/com/example/android/home/Home.html
+http://developer.android.com/resources/samples/Home/src/com/example/android/home/Wallpaper.html
+http://developer.android.com/resources/samples/AccelerometerPlay/src/com/example/android/accelerometerplay/AccelerometerPlayActivity.html
+http://developer.android.com/resources/samples/Snake/src/com/example/android/snake/Snake.html
+http://developer.android.com/resources/samples/Snake/src/com/example/android/snake/SnakeView.html
+http://developer.android.com/resources/samples/Snake/src/com/example/android/snake/TileView.html
+http://developer.android.com/resources/samples/Wiktionary/res/layout/about.html
+http://developer.android.com/resources/samples/Wiktionary/res/layout/lookup.html
+http://developer.android.com/resources/samples/Wiktionary/res/layout/widget_message.html
+http://developer.android.com/resources/samples/Wiktionary/res/layout/widget_word.html
+http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/android/lunarlander/index.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/os/MorseCodeConverterTest.html
+http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/index.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/app/ForwardingTest.html
+http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/app/LocalServiceTest.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/index.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/index.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/appwidget/index.html
@@ -5491,110 +5533,24 @@
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/index.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/ApiDemos.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/ApiDemosApplication.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/client/NetworkUtilities.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/client/User.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncService.html
-http://developer.android.com/resources/samples/NotePad/tests/src/com/example/android/notepad/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/android/simplewiktionary/SimpleWikiHelper.html
-http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/android/simplewiktionary/WordWidget.html
-http://developer.android.com/resources/samples/SpinnerTest/src/com/android/example/spinner/index.html
-http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/BackupRestoreActivity.html
-http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/FileHelperExampleAgent.html
-http://developer.android.com/resources/samples/BackupRestore/src/com/example/android/backuprestore/MultiRecordExampleAgent.html
-http://developer.android.com/resources/samples/ContactManager/src/com/example/android/contactmanager/index.html
-http://developer.android.com/resources/samples/Home/src/com/example/android/home/index.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/BatchOperation.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactOperations.html
-http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/SampleSyncAdapterColumns.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/os/MorseCodeConverterTest.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/view/Focus2ActivityTest.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/view/Focus2AndroidTest.html
+http://developer.android.com/resources/samples/ApiDemos/res/values-large/strings.html
+http://developer.android.com/resources/samples/Snake/tests/src/com/example/android/index.html
+http://developer.android.com/resources/samples/NotePad/tests/src/com/example/android/notepad/NotePadTest.html
+http://developer.android.com/resources/samples/MultiResolution/src/com/example/android/multires/MultiRes.html
+http://developer.android.com/resources/samples/LunarLander/src/com/example/android/lunarlander/index.html
 http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/android/lunarlander/LunarLanderTest.html
-http://developer.android.com/resources/samples/JetBoy/src/com/example/android/index.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Audio.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/VideoViewDemo.html
-http://developer.android.com/resources/samples/AccessibilityService/src/com/example/android/clockback/ClockBackService.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ShapeDrawable1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PolyToPoly.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/DrawPoints.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PathEffects.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/SurfaceViewOverlay.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TouchPaint.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/index.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/index.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/AlphaBitmap.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/AnimateDrawable.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/AnimateDrawables.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Arcs.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapDecode.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapMesh.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapPixels.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Clipping.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ColorFilters.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ColorMatrixSample.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ColorPickerDialog.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Compass.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CompressedTextureActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CreateBitmap.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Cube.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CubeMapActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CubeRenderer.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/DensityActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/FingerPaint.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/FrameBufferObjectActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GLES20Activity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GLES20TriangleRenderer.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GradientDrawable1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GraphicsActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Layers.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/MatrixPaletteActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/MatrixPaletteRenderer.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/MeasureText.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PathFillTypes.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Patterns.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PictureLayout.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Pictures.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ProxyDrawable.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PurgeableBitmap.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PurgeableBitmapView.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Regions.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/RoundRects.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ScaleToFit.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/SensorTest.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/StaticTriangleRenderer.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Sweep.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TextAlign.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TouchRotateActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TranslucentGLSurfaceViewActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TriangleActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TriangleRenderer.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Typefaces.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/UnicodeChart.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Vertices.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/WindowSurface.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Xfermodes.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube1/index.html
-http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube2/index.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/Rotate3dAnimation.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/Transition3d.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/index.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/ExternalStorage.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/StyledText.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/ResourcesSample.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/PickContact.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/ReadAsset.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/MorseCode.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/MorseCodeConverter.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/Sensors.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/SmsMessageReceiver.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/SmsMessagingDemo.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/SmsReceivedDialog.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/Link.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/LogTextBox.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/LogTextBox1.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/Marquee.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleBroadcastReceiver.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/app/ForwardingTest.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/app/LocalServiceTest.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/HelloWorld.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/SaveRestoreState.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/PersistentState.html
@@ -5658,29 +5614,81 @@
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/StatusBarNotifications.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/TextToSpeechActivity.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/WallpaperActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/ExternalStorage.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/StyledText.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/ResourcesSample.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/PickContact.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/ReadAsset.html
-http://developer.android.com/resources/samples/NotePad/tests/src/com/example/android/notepad/NotePadTest.html
-http://developer.android.com/resources/samples/SpinnerTest/src/com/android/example/spinner/test/index.html
-http://developer.android.com/resources/samples/ContactManager/src/com/example/android/contactmanager/ContactAdder.html
-http://developer.android.com/resources/samples/ContactManager/src/com/example/android/contactmanager/ContactManager.html
-http://developer.android.com/resources/samples/Home/src/com/example/android/home/ApplicationInfo.html
-http://developer.android.com/resources/samples/Home/src/com/example/android/home/ApplicationsStackLayout.html
-http://developer.android.com/resources/samples/Home/src/com/example/android/home/Home.html
-http://developer.android.com/resources/samples/Home/src/com/example/android/home/Wallpaper.html
-http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/index.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/Grid.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/LabelMaker.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/MatrixGrabber.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/MatrixStack.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/MatrixTrackingGL.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/NumericSprite.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/Projector.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/SpriteTextActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/SpriteTextRenderer.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ShapeDrawable1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PolyToPoly.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/DrawPoints.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PathEffects.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/SurfaceViewOverlay.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TouchPaint.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/index.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/index.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/AlphaBitmap.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/AnimateDrawable.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/AnimateDrawables.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Arcs.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapDecode.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapMesh.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapPixels.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Clipping.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ColorFilters.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ColorMatrixSample.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ColorPickerDialog.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Compass.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CompressedTextureActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CreateBitmap.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Cube.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CubeMapActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CubeRenderer.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/DensityActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/FingerPaint.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/FrameBufferObjectActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GLES20Activity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GLES20TriangleRenderer.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GradientDrawable1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/GraphicsActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Layers.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/MatrixPaletteActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/MatrixPaletteRenderer.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/MeasureText.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PathFillTypes.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Patterns.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PictureLayout.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Pictures.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ProxyDrawable.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PurgeableBitmap.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PurgeableBitmapView.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Regions.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/RoundRects.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/ScaleToFit.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/SensorTest.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/StaticTriangleRenderer.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Sweep.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TextAlign.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TouchRotateActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TranslucentGLSurfaceViewActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TriangleActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TriangleRenderer.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Typefaces.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/UnicodeChart.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Vertices.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/WindowSurface.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Xfermodes.html
+http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/index.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/Link.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/LogTextBox.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/LogTextBox1.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/Marquee.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/Rotate3dAnimation.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/Transition3d.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Audio.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/VideoViewDemo.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleBroadcastReceiver.html
+http://developer.android.com/resources/samples/Snake/tests/src/com/example/android/snake/index.html
+http://developer.android.com/resources/samples/LunarLander/src/com/example/android/lunarlander/LunarLander.html
+http://developer.android.com/resources/samples/LunarLander/src/com/example/android/lunarlander/LunarView.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/index.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/Cube.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/GLColor.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/GLFace.html
@@ -5691,7 +5699,33 @@
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/KubeRenderer.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/Layer.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/M4.html
-http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/Asteroid.html
-http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/Explosion.html
-http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/JetBoy.html
-http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/JetBoyView.html
\ No newline at end of file
+http://developer.android.com/resources/samples/Snake/tests/src/com/example/android/snake/SnakeTest.html
+http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/DictionaryDatabase.html
+http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/DictionaryProvider.html
+http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/SearchableDictionary.html
+http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/WordActivity.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/authenticator/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/client/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/index.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/Constants.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/Grid.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/LabelMaker.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/MatrixGrabber.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/MatrixStack.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/MatrixTrackingGL.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/NumericSprite.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/Projector.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/SpriteTextActivity.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/spritetext/SpriteTextRenderer.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncService.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/authenticator/AuthenticationService.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/authenticator/Authenticator.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/authenticator/AuthenticatorActivity.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/client/NetworkUtilities.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/client/User.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/BatchOperation.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactOperations.html
+http://developer.android.com/resources/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/SampleSyncAdapterColumns.html
diff --git a/drm/drmserver/DrmManager.cpp b/drm/drmserver/DrmManager.cpp
index 9a6f787..b6e0c30 100644
--- a/drm/drmserver/DrmManager.cpp
+++ b/drm/drmserver/DrmManager.cpp
@@ -117,7 +117,11 @@
 status_t DrmManager::setDrmServiceListener(
             int uniqueId, const sp<IDrmServiceListener>& drmServiceListener) {
     Mutex::Autolock _l(mLock);
-    mServiceListeners.add(uniqueId, drmServiceListener);
+    if (NULL != drmServiceListener.get()) {
+        mServiceListeners.add(uniqueId, drmServiceListener);
+    } else {
+        mServiceListeners.removeItem(uniqueId);
+    }
     return DRM_NO_ERROR;
 }
 
diff --git a/drm/java/android/drm/DrmManagerClient.java b/drm/java/android/drm/DrmManagerClient.java
index 2f54b33..6caf678 100644
--- a/drm/java/android/drm/DrmManagerClient.java
+++ b/drm/java/android/drm/DrmManagerClient.java
@@ -738,26 +738,34 @@
      */
     private String convertUriToPath(Uri uri) {
         String path = null;
-        String scheme = uri.getScheme();
-        if (null == scheme || scheme.equals("") || scheme.equals(ContentResolver.SCHEME_FILE)) {
-            path = uri.getPath();
-        } else if (scheme.equals(ContentResolver.SCHEME_CONTENT)) {
-            String[] projection = new String[] {MediaStore.MediaColumns.DATA};
-            Cursor cursor = null;
-            try {
-                cursor = mContext.getContentResolver().query(uri, projection, null, null, null);
-            } catch (SQLiteException e) {
-                throw new IllegalArgumentException("Given Uri is not formatted in a way " +
-                        "so that it can be found in media store.");
+        if (null != uri) {
+            String scheme = uri.getScheme();
+            if (null == scheme || scheme.equals("") ||
+                    scheme.equals(ContentResolver.SCHEME_FILE)) {
+                path = uri.getPath();
+            } else if (scheme.equals(ContentResolver.SCHEME_CONTENT)) {
+                String[] projection = new String[] {MediaStore.MediaColumns.DATA};
+                Cursor cursor = null;
+                try {
+                    cursor = mContext.getContentResolver().query(uri, projection, null,
+                            null, null);
+                    if (null == cursor || 0 == cursor.getCount() || !cursor.moveToFirst()) {
+                        throw new IllegalArgumentException("Given Uri could not be found" +
+                                " in media store");
+                    }
+                    int pathIndex = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
+                    path = cursor.getString(pathIndex);
+                } catch (SQLiteException e) {
+                    throw new IllegalArgumentException("Given Uri is not formatted in a way " +
+                            "so that it can be found in media store.");
+                } finally {
+                    if (null != cursor) {
+                        cursor.close();
+                    }
+                }
+            } else {
+                throw new IllegalArgumentException("Given Uri scheme is not supported");
             }
-            if (null == cursor || 0 == cursor.getCount() || !cursor.moveToFirst()) {
-                throw new IllegalArgumentException("Given Uri could not be found in media store");
-            }
-            int pathIndex = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
-            path = cursor.getString(pathIndex);
-            cursor.close();
-        } else {
-            throw new IllegalArgumentException("Given Uri scheme is not supported");
         }
         return path;
     }
diff --git a/drm/libdrmframework/DrmManagerClient.cpp b/drm/libdrmframework/DrmManagerClient.cpp
index 578e135..7b51822 100644
--- a/drm/libdrmframework/DrmManagerClient.cpp
+++ b/drm/libdrmframework/DrmManagerClient.cpp
@@ -31,6 +31,7 @@
 DrmManagerClient::~DrmManagerClient() {
     DrmManagerClientImpl::remove(mUniqueId);
     mDrmManagerClientImpl->removeClient(mUniqueId);
+    mDrmManagerClientImpl->setOnInfoListener(mUniqueId, NULL);
     delete mDrmManagerClientImpl; mDrmManagerClientImpl = NULL;
 }
 
diff --git a/drm/libdrmframework/DrmManagerClientImpl.cpp b/drm/libdrmframework/DrmManagerClientImpl.cpp
index f39131d..d20de92 100644
--- a/drm/libdrmframework/DrmManagerClientImpl.cpp
+++ b/drm/libdrmframework/DrmManagerClientImpl.cpp
@@ -81,7 +81,8 @@
             int uniqueId, const sp<DrmManagerClient::OnInfoListener>& infoListener) {
     Mutex::Autolock _l(mLock);
     mOnInfoListener = infoListener;
-    return getDrmManagerService()->setDrmServiceListener(uniqueId, this);
+    return getDrmManagerService()->setDrmServiceListener(uniqueId,
+            (NULL != infoListener.get()) ? this : NULL);
 }
 
 status_t DrmManagerClientImpl::installDrmEngine(int uniqueId, const String8& drmEngineFile) {
diff --git a/drm/libdrmframework/plugins/common/Android.mk b/drm/libdrmframework/plugins/common/Android.mk
new file mode 100644
index 0000000..9ee7961
--- /dev/null
+++ b/drm/libdrmframework/plugins/common/Android.mk
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+include $(call all-subdir-makefiles)
diff --git a/drm/libdrmframework/plugins/common/util/Android.mk b/drm/libdrmframework/plugins/common/util/Android.mk
new file mode 100644
index 0000000..15dda80
--- /dev/null
+++ b/drm/libdrmframework/plugins/common/util/Android.mk
@@ -0,0 +1,52 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+    src/MimeTypeUtil.cpp
+
+LOCAL_MODULE := libdrmutility
+
+LOCAL_SHARED_LIBRARIES :=  \
+    libutils \
+    libdl \
+    libdvm \
+    libandroid_runtime \
+    libnativehelper \
+    liblog
+
+
+base := frameworks/base
+
+LOCAL_C_INCLUDES += \
+    $(JNI_H_INCLUDE) \
+    $(base)/include \
+    $(base)/include/drm \
+    $(base)/include/drm/plugins \
+    $(LOCAL_PATH)/include
+
+
+ifneq ($(TARGET_BUILD_VARIANT),user)
+LOCAL_C_INCLUDES += \
+    $(LOCAL_PATH)/tools
+
+endif
+
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/drm/libdrmframework/plugins/common/util/include/MimeTypeUtil.h b/drm/libdrmframework/plugins/common/util/include/MimeTypeUtil.h
new file mode 100644
index 0000000..4d12a61
--- /dev/null
+++ b/drm/libdrmframework/plugins/common/util/include/MimeTypeUtil.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MIMETYPEUTIL_H__
+#define __MIMETYPEUTIL_H__
+
+#include <utils/String8.h>
+
+namespace android {
+
+class MimeTypeUtil {
+
+public:
+
+    MimeTypeUtil() {}
+
+    virtual ~MimeTypeUtil() {}
+
+/**
+ * May convert the mimetype if there is a well known
+ * replacement mimetype otherwise the original mimetype
+ * is returned.
+ *
+ * @param mimeType - mimetype in lower case to convert.
+ *
+ * @return mimetype or null.
+ */
+static String8 convertMimeType(String8& mimeType);
+
+};
+};
+
+#endif /* __MIMETYPEUTIL_H__ */
diff --git a/drm/libdrmframework/plugins/common/util/include/SessionMap.h b/drm/libdrmframework/plugins/common/util/include/SessionMap.h
new file mode 100644
index 0000000..3dff58c
--- /dev/null
+++ b/drm/libdrmframework/plugins/common/util/include/SessionMap.h
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __SESSIONMAP_H__
+#define __SESSIONMAP_H__
+
+#include <utils/KeyedVector.h>
+
+namespace android {
+
+/**
+ * A wrapper template class for handling DRM Engine sessions.
+ */
+template <typename NODE>
+class SessionMap {
+
+public:
+    KeyedVector<int, NODE> map;
+
+    SessionMap() {}
+
+    virtual ~SessionMap() {
+        destroyMap();
+    }
+
+/**
+ * Adds a new value in the session map table. It expects memory to be allocated already
+ * for the session object
+ *
+ * @param key - key or Session ID
+ * @param value - session object to add
+ *
+ * @return boolean result of adding value. returns false if key is already exist.
+ */
+bool addValue(int key, NODE value) {
+    bool result = false;
+
+    if (!isCreated(key)) {
+        map.add(key, value);
+        result = true;
+    }
+
+    return result;
+}
+
+
+/**
+ * returns the session object by the key
+ *
+ * @param key - key or Session ID
+ *
+ * @return session object as per the key
+ */
+NODE getValue(int key) {
+    NODE value = NULL;
+
+    if (isCreated(key)) {
+        value = (NODE) map.valueFor(key);
+    }
+
+    return value;
+}
+
+/**
+ * returns the number of objects in the session map table
+ *
+ * @return count of number of session objects.
+ */
+int getSize() {
+    return map.size();
+}
+
+/**
+ * returns the session object by the index in the session map table
+ *
+ * @param index - index of the value required
+ *
+ * @return session object as per the index
+ */
+NODE getValueAt(unsigned int index) {
+    NODE value = NULL;
+
+    if (map.size() > index) {
+      value = map.valueAt(index);
+    }
+
+    return value;
+}
+
+/**
+ * deletes the object from session map. It also frees up memory for the session object.
+ *
+ * @param key - key of the value to be deleted
+ *
+ */
+void removeValue(int key) {
+    deleteValue(getValue(key));
+    map.removeItem(key);
+}
+
+/**
+ * decides if session is already created.
+ *
+ * @param key - key of the value for the session
+ *
+ * @return boolean result of whether session is created
+ */
+bool isCreated(int key) {
+    return (0 <= map.indexOfKey(key));
+}
+
+/**
+ * empty the entire session table. It releases all the memory for session objects.
+ */
+void destroyMap() {
+    int size = map.size();
+    int i = 0;
+
+    for (i = 0; i < size; i++) {
+        deleteValue(map.valueAt(i));
+    }
+
+    map.clear();
+}
+
+/**
+ * free up the memory for the session object.
+ * Make sure if any reference to the session object anywhere, otherwise it will be a
+ * dangle pointer after this call.
+ *
+ * @param value - session object to free
+ *
+ */
+void deleteValue(NODE value) {
+    delete value;
+}
+
+};
+
+};
+
+#endif /* __SESSIONMAP_H__ */
diff --git a/drm/libdrmframework/plugins/common/util/src/MimeTypeUtil.cpp b/drm/libdrmframework/plugins/common/util/src/MimeTypeUtil.cpp
new file mode 100644
index 0000000..4ee903e
--- /dev/null
+++ b/drm/libdrmframework/plugins/common/util/src/MimeTypeUtil.cpp
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <MimeTypeUtil.h>
+#include <utils/Log.h>
+
+namespace android {
+
+#undef LOG_TAG
+#define LOG_TAG "MimeTypeUtil"
+
+enum {
+    MIMETYPE_AUDIO       = 0,
+    MIMETYPE_APPLICATION = 1,
+    MIMETYPE_IMAGE       = 2,
+    MIMETYPE_VIDEO       = 3,
+    MIMETYPE_LAST        = -1,
+};
+
+struct MimeGroup{
+    int         type;     // Audio, video,.. use the enum values
+    const char* pGroup;   // "audio/", "video/",.. should contain the last "/"
+    int         size;     // Number of bytes. e.g. "audio/" = 6 bytes
+};
+
+struct MimeTypeList{
+    int         type;
+    const char* pMimeExt;  // Everything after the '/' e.g. audio/x-mpeg -> "x-mpeg"
+    int         size;      // Number of bytes. e.g. "x-mpeg" = 6 bytes
+    const char* pMimeType; // Mimetype that should be returned
+};
+
+
+// Known mimetypes by android
+static const char mime_type_audio_mpeg[]  = "audio/mpeg";
+static const char mime_type_audio_3gpp[]  = "audio/3gpp";
+static const char mime_type_audio_amr[]   = "audio/amr-wb";
+static const char mime_type_audio_aac[]   = "audio/mp4a-latm";
+static const char mime_type_audio_wav[]   = "audio/wav";
+
+static const char mime_type_video_mpeg4[] = "video/mpeg4";
+static const char mime_type_video_3gpp[]  = "video/3gpp";
+
+// Known mimetype groups
+static const char mime_group_audio[]       = "audio/";
+static const char mime_group_application[] = "application/";
+static const char mime_group_image[]       = "image/";
+static const char mime_group_video[]       = "video/";
+
+static struct MimeGroup mimeGroup[] = {
+    {MIMETYPE_AUDIO,       mime_group_audio,        sizeof(mime_group_audio)-1},
+    {MIMETYPE_APPLICATION, mime_group_application,  sizeof(mime_group_application)-1},
+    {MIMETYPE_IMAGE,       mime_group_image,        sizeof(mime_group_image)-1},
+    {MIMETYPE_VIDEO,       mime_group_video,        sizeof(mime_group_video)-1},
+    {MIMETYPE_LAST,        NULL,                    0} // Must be last entry
+};
+
+// List of all mimetypes that should be converted.
+static struct MimeTypeList mimeTypeList[] = {
+    // Mp3 mime types
+    {MIMETYPE_AUDIO, "mp3",          sizeof("mp3")-1,         mime_type_audio_mpeg},
+    {MIMETYPE_AUDIO, "x-mpeg",       sizeof("x-mpeg")-1,      mime_type_audio_mpeg},
+    {MIMETYPE_AUDIO, "x-mp3",        sizeof("x-mp3")-1,       mime_type_audio_mpeg},
+    {MIMETYPE_AUDIO, "mpg",          sizeof("mpg")-1,         mime_type_audio_mpeg},
+    {MIMETYPE_AUDIO, "mpg3",         sizeof("mpg")-1,         mime_type_audio_mpeg},
+    {MIMETYPE_AUDIO, "x-mpg",        sizeof("x-mpg")-1,       mime_type_audio_mpeg},
+    {MIMETYPE_AUDIO, "x-mpegaudio",  sizeof("x-mpegaudio")-1, mime_type_audio_mpeg},
+
+    // 3gpp audio mime types
+    {MIMETYPE_AUDIO, "3gp",          sizeof("3gp")-1,         mime_type_audio_3gpp},
+
+    // Amr audio mime types
+    {MIMETYPE_AUDIO, "amr",          sizeof("amr")-1,         mime_type_audio_amr},
+
+    // Aac audio mime types
+    {MIMETYPE_AUDIO, "aac",          sizeof("aac")-1,         mime_type_audio_aac},
+
+    // Wav audio mime types
+    {MIMETYPE_AUDIO, "x-wav",        sizeof("x-wav")-1,       mime_type_audio_wav},
+
+    // Mpeg4 video mime types
+    {MIMETYPE_VIDEO, "mpg4",         sizeof("mpg4")-1,        mime_type_video_mpeg4},
+    {MIMETYPE_VIDEO, "mp4v-es",      sizeof("mp4v-es")-1,     mime_type_video_mpeg4},
+
+    // 3gpp video mime types
+    {MIMETYPE_VIDEO, "3gp",          sizeof("3gp")-1,         mime_type_video_3gpp},
+
+    // Must be last entry
+    {MIMETYPE_LAST,  NULL,           0,                       NULL}
+};
+
+/**
+ * May convert the mimetype if there is a well known
+ * replacement mimetype otherwise the original mimetype
+ * is returned.
+ *
+ * @param mimeType - mimetype in lower case to convert.
+ *
+ * @return mimetype or null.
+ */
+String8 MimeTypeUtil::convertMimeType(String8& mimeType) {
+    String8 result = mimeType;
+    const char* pTmp;
+    const char* pMimeType;
+    struct MimeGroup* pGroup;
+    struct MimeTypeList* pMimeItem;
+    int len;
+
+    pMimeType = mimeType.string();
+    if (NULL != pMimeType) {
+        /* Check which group the mimetype is */
+        pGroup = mimeGroup;
+
+        while (MIMETYPE_LAST != pGroup->type) {
+            if (0 == strncmp(pMimeType, pGroup->pGroup, pGroup->size)) {
+                break;
+            }
+            pGroup++;
+        }
+
+        /* Go through the mimetype list. Only check items of the correct group */
+        if (MIMETYPE_LAST != pGroup->type) {
+            pMimeItem = mimeTypeList;
+            len = strlen (pMimeType+pGroup->size);
+
+            while (MIMETYPE_LAST != pMimeItem->type) {
+                if ((len == pMimeItem->size) &&
+                    (0 == strcmp(pMimeType+pGroup->size, pMimeItem->pMimeExt))) {
+                    result = String8(pMimeItem->pMimeType);
+                    break;
+                }
+                pMimeItem++;
+            }
+        }
+        LOGI("convertMimeType got mimetype %s, converted into mimetype %s",
+             pMimeType, result.string());
+    }
+
+    return result;
+}
+};
diff --git a/drm/libdrmframework/plugins/forward-lock/Android.mk b/drm/libdrmframework/plugins/forward-lock/Android.mk
new file mode 100644
index 0000000..9ee7961
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/Android.mk
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+include $(call all-subdir-makefiles)
diff --git a/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.mk b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.mk
new file mode 100644
index 0000000..d4a6f18
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.mk
@@ -0,0 +1,67 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+base := frameworks/base
+
+# Determine whether the DRM framework uses 64-bit data types for file offsets and do the same.
+ifneq ($(shell grep -c 'off64_t offset' $(base)/drm/libdrmframework/plugins/common/include/IDrmEngine.h), 0)
+LOCAL_CFLAGS += -DUSE_64BIT_DRM_API
+endif
+
+LOCAL_SRC_FILES:= \
+    src/FwdLockEngine.cpp
+
+LOCAL_MODULE := libfwdlockengine
+
+LOCAL_SHARED_LIBRARIES := \
+    libicui18n \
+    libicuuc \
+    libutils \
+    libdl \
+    libandroid_runtime \
+    libnativehelper \
+    libcrypto \
+    libssl \
+    libdrmframework
+
+LOCAL_STATIC_LIBRARIES := \
+    libdrmutility \
+    libdrmframeworkcommon \
+    libfwdlock-common \
+    libfwdlock-converter \
+    libfwdlock-decoder
+
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_C_INCLUDES += \
+    $(JNI_H_INCLUDE) \
+    $(base)/include/drm \
+    $(base)/drm/libdrmframework/plugins/common/include \
+    $(base)/drm/libdrmframework/plugins/common/util/include \
+    $(base)/drm/libdrmframework/plugins/forward-lock/internal-format/common \
+    $(base)/drm/libdrmframework/plugins/forward-lock/internal-format/converter \
+    $(base)/drm/libdrmframework/plugins/forward-lock/internal-format/decoder \
+    $(LOCAL_PATH)/include \
+    external/openssl/include
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/drm/plugins/native
+
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/include/FwdLockEngine.h b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/include/FwdLockEngine.h
new file mode 100644
index 0000000..34804cf
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/include/FwdLockEngine.h
@@ -0,0 +1,559 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __FWDLOCKENGINE_H__
+#define __FWDLOCKENGINE_H__
+
+#include <DrmEngineBase.h>
+#include <DrmConstraints.h>
+#include <DrmRights.h>
+#include <DrmInfo.h>
+#include <DrmInfoStatus.h>
+#include <DrmConvertedStatus.h>
+#include <DrmInfoRequest.h>
+#include <DrmSupportInfo.h>
+#include <DrmInfoEvent.h>
+
+#include "SessionMap.h"
+#include "FwdLockConv.h"
+
+namespace android {
+
+/**
+ * Forward Lock Engine class.
+ */
+class FwdLockEngine : public android::DrmEngineBase {
+
+public:
+    FwdLockEngine();
+    virtual ~FwdLockEngine();
+
+protected:
+/**
+ * Get constraint information associated with input content.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param path Path of the protected content
+ * @param action Actions defined such as,
+ *     Action::DEFAULT, Action::PLAY, etc
+ * @return DrmConstraints
+ *     key-value pairs of constraint are embedded in it
+ * @note
+ *     In case of error, return NULL
+ */
+DrmConstraints* onGetConstraints(int uniqueId, const String8* path, int action);
+
+/**
+ * Get metadata information associated with input content.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param path Path of the protected content
+ * @return DrmMetadata
+ *      For Forward Lock engine, it returns an empty object
+ * @note
+ *     In case of error, returns NULL
+ */
+DrmMetadata* onGetMetadata(int uniqueId, const String8* path);
+
+/**
+ * Initialize plug-in.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+status_t onInitialize(int uniqueId);
+
+/**
+ * Register a callback to be invoked when the caller required to
+ * receive necessary information.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param infoListener Listener
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+status_t onSetOnInfoListener(int uniqueId, const IDrmEngine::OnInfoListener* infoListener);
+
+/**
+ * Terminate the plug-in and release resources bound to it.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+status_t onTerminate(int uniqueId);
+
+/**
+ * Get whether the given content can be handled by this plugin or not.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param path Path to the protected object
+ * @return bool
+ *      Returns true if this plugin can handle , false in case of not able to handle
+ */
+bool onCanHandle(int uniqueId, const String8& path);
+
+/**
+ * Processes the given DRM information as appropriate for its type.
+ * Not used for Forward Lock Engine.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param drmInfo Information that needs to be processed
+ * @return DrmInfoStatus
+ *      instance as a result of processing given input
+ */
+DrmInfoStatus* onProcessDrmInfo(int uniqueId, const DrmInfo* drmInfo);
+
+/**
+ * Save DRM rights to specified rights path
+ * and make association with content path.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param drmRights DrmRights to be saved
+ * @param rightsPath File path where rights to be saved
+ * @param contentPath File path where content was saved
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+status_t onSaveRights(int uniqueId,
+                      const DrmRights& drmRights,
+                      const String8& rightsPath,
+                      const String8& contentPath);
+
+/**
+ * Retrieves necessary information for registration, unregistration or rights
+ * acquisition information.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param drmInfoRequest Request information to retrieve drmInfo
+ * @return DrmInfo
+ *      instance as a result of processing given input
+ */
+DrmInfo* onAcquireDrmInfo(int uniqueId,
+                          const DrmInfoRequest* drmInfoRequest);
+
+/**
+ * Retrieves the mime type embedded inside the original content.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param path Path of the protected content
+ * @return String8
+ *       Returns mime-type of the original content, such as "video/mpeg"
+ */
+String8 onGetOriginalMimeType(int uniqueId, const String8& path);
+
+/**
+ * Retrieves the type of the protected object (content, rights, etc..)
+ * using specified path or mimetype. At least one parameter should be non null
+ * to retrieve DRM object type.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param path Path of the content or null.
+ * @param mimeType Mime type of the content or null.
+ * @return type of the DRM content,
+ *     such as DrmObjectType::CONTENT, DrmObjectType::RIGHTS_OBJECT
+ */
+int onGetDrmObjectType(int uniqueId,
+                       const String8& path,
+                       const String8& mimeType);
+
+/**
+ * Check whether the given content has valid rights or not.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param path Path of the protected content
+ * @param action Action to perform (Action::DEFAULT, Action::PLAY, etc)
+ * @return the status of the rights for the protected content,
+ *     such as RightsStatus::RIGHTS_VALID, RightsStatus::RIGHTS_EXPIRED, etc.
+ */
+int onCheckRightsStatus(int uniqueId,
+                        const String8& path,
+                        int action);
+
+/**
+ * Consumes the rights for a content.
+ * If the reserve parameter is true the rights are reserved until the same
+ * application calls this api again with the reserve parameter set to false.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the decryption session
+ * @param action Action to perform. (Action::DEFAULT, Action::PLAY, etc)
+ * @param reserve True if the rights should be reserved.
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+status_t onConsumeRights(int uniqueId,
+                         DecryptHandle* decryptHandle,
+                         int action,
+                         bool reserve);
+
+/**
+ * Informs the DRM Engine about the playback actions performed on the DRM files.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the decryption session
+ * @param playbackStatus Playback action (Playback::START, Playback::STOP, Playback::PAUSE)
+ * @param position Position in the file (in milliseconds) where the start occurs.
+ *     Only valid together with Playback::START.
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+#ifdef USE_64BIT_DRM_API
+status_t onSetPlaybackStatus(int uniqueId,
+                             DecryptHandle* decryptHandle,
+                             int playbackStatus,
+                             int64_t position);
+#else
+status_t onSetPlaybackStatus(int uniqueId,
+                             DecryptHandle* decryptHandle,
+                             int playbackStatus,
+                             int position);
+#endif
+
+/**
+ *  Validates whether an action on the DRM content is allowed or not.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param path Path of the protected content
+ * @param action Action to validate (Action::PLAY, Action::TRANSFER, etc)
+ * @param description Detailed description of the action
+ * @return true if the action is allowed.
+ */
+bool onValidateAction(int uniqueId,
+                      const String8& path,
+                      int action,
+                      const ActionDescription& description);
+
+/**
+ * Removes the rights associated with the given protected content.
+ * Not used for Forward Lock Engine.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param path Path of the protected content
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+status_t onRemoveRights(int uniqueId, const String8& path);
+
+/**
+ * Removes all the rights information of each plug-in associated with
+ * DRM framework. Will be used in master reset but does nothing for
+ * Forward Lock Engine.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+status_t onRemoveAllRights(int uniqueId);
+
+/**
+ * Starts the Forward Lock file conversion session.
+ * Each time the application tries to download a new DRM file
+ * which needs to be converted, then the application has to
+ * begin with calling this API. The convertId is used as the conversion session key
+ * and must not be the same for different convert sessions.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param convertId Handle for the convert session
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+status_t onOpenConvertSession(int uniqueId, int convertId);
+
+/**
+ * Accepts and converts the input data which is part of DRM file.
+ * The resultant converted data and the status is returned in the DrmConvertedInfo
+ * object. This method will be called each time there is a new block
+ * of data received by the application.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param convertId Handle for the convert session
+ * @param inputData Input Data which need to be converted
+ * @return Return object contains the status of the data conversion,
+ *       the output converted data and offset. In this case the
+ *      application will ignore the offset information.
+ */
+DrmConvertedStatus* onConvertData(int uniqueId,
+                                  int convertId,
+                                  const DrmBuffer* inputData);
+
+/**
+ * Closes the convert session in case of data supply completed or error occurred.
+ * Upon successful conversion of the complete data, it returns signature calculated over
+ * the entire data used over a conversion session. This signature must be copied to the offset
+ * mentioned in the DrmConvertedStatus. Signature is used for data integrity protection.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param convertId Handle for the convert session
+ * @return Return object contains the status of the data conversion,
+ *      the header and body signature data. It also informs
+ *      the application about the file offset at which this
+ *      signature data should be written.
+ */
+DrmConvertedStatus* onCloseConvertSession(int uniqueId, int convertId);
+
+/**
+ * Returns the information about the Drm Engine capabilities which includes
+ * supported MimeTypes and file suffixes.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @return DrmSupportInfo
+ *      instance which holds the capabilities of a plug-in
+ */
+DrmSupportInfo* onGetSupportInfo(int uniqueId);
+
+/**
+ * Open the decrypt session to decrypt the given protected content.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the current decryption session
+ * @param fd File descriptor of the protected content to be decrypted
+ * @param offset Start position of the content
+ * @param length The length of the protected content
+ * @return
+ *     DRM_ERROR_CANNOT_HANDLE for failure and DRM_NO_ERROR for success
+ */
+#ifdef USE_64BIT_DRM_API
+status_t onOpenDecryptSession(int uniqueId,
+                              DecryptHandle* decryptHandle,
+                              int fd, off64_t offset, off64_t length);
+#else
+status_t onOpenDecryptSession(int uniqueId,
+                              DecryptHandle* decryptHandle,
+                              int fd, int offset, int length);
+#endif
+
+/**
+ * Open the decrypt session to decrypt the given protected content.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the current decryption session
+ * @param uri Path of the protected content to be decrypted
+ * @return
+ *     DRM_ERROR_CANNOT_HANDLE for failure and DRM_NO_ERROR for success
+ */
+status_t onOpenDecryptSession(int uniqueId,
+                              DecryptHandle* decryptHandle,
+                              const char* uri);
+
+/**
+ * Close the decrypt session for the given handle.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the decryption session
+ * @return status_t
+ *     Returns DRM_NO_ERROR for success, DRM_ERROR_UNKNOWN for failure
+ */
+status_t onCloseDecryptSession(int uniqueId,
+                               DecryptHandle* decryptHandle);
+
+/**
+ * Initialize decryption for the given unit of the protected content.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the decryption session
+ * @param decryptUnitId ID which specifies decryption unit, such as track ID
+ * @param headerInfo Information for initializing decryption of this decrypUnit
+ * @return
+ *     DRM_ERROR_CANNOT_HANDLE for failure and DRM_NO_ERROR for success
+ */
+status_t onInitializeDecryptUnit(int uniqueId,
+                                 DecryptHandle* decryptHandle,
+                                 int decryptUnitId,
+                                 const DrmBuffer* headerInfo);
+
+/**
+ * Decrypt the protected content buffers for the given unit.
+ * This method will be called any number of times, based on number of
+ * encrypted streams received from application.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the decryption session
+ * @param decryptUnitId ID which specifies decryption unit, such as track ID
+ * @param encBuffer Encrypted data block
+ * @param decBuffer Decrypted data block
+ * @return status_t
+ *     Returns the error code for this API
+ *     DRM_NO_ERROR for success, and one of DRM_ERROR_UNKNOWN, DRM_ERROR_LICENSE_EXPIRED
+ *     DRM_ERROR_SESSION_NOT_OPENED, DRM_ERROR_DECRYPT_UNIT_NOT_INITIALIZED,
+ *     DRM_ERROR_DECRYPT for failure.
+ */
+status_t onDecrypt(int uniqueId,
+                   DecryptHandle* decryptHandle,
+                   int decryptUnitId,
+                   const DrmBuffer* encBuffer,
+                   DrmBuffer** decBuffer);
+
+/**
+ * Decrypt the protected content buffers for the given unit.
+ * This method will be called any number of times, based on number of
+ * encrypted streams received from application.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptId Handle for the decryption session
+ * @param decryptUnitId ID Specifies decryption unit, such as track ID
+ * @param encBuffer Encrypted data block
+ * @param decBuffer Decrypted data block
+ * @param IV Optional buffer
+ * @return status_t
+ *     Returns the error code for this API
+ *     DRM_NO_ERROR for success, and one of DRM_ERROR_UNKNOWN, DRM_ERROR_LICENSE_EXPIRED
+ *     DRM_ERROR_SESSION_NOT_OPENED, DRM_ERROR_DECRYPT_UNIT_NOT_INITIALIZED,
+ *     DRM_ERROR_DECRYPT for failure.
+ */
+status_t onDecrypt(int uniqueId, DecryptHandle* decryptHandle,
+                   int decryptUnitId, const DrmBuffer* encBuffer,
+                   DrmBuffer** decBuffer, DrmBuffer* IV);
+
+/**
+ * Finalize decryption for the given unit of the protected content.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the decryption session
+ * @param decryptUnitId ID Specifies decryption unit, such as track ID
+ * @return
+ *     DRM_ERROR_CANNOT_HANDLE for failure and DRM_NO_ERROR for success
+ */
+status_t onFinalizeDecryptUnit(int uniqueId,
+                               DecryptHandle* decryptHandle,
+                               int decryptUnitId);
+
+/**
+ * Reads the specified number of bytes from an open DRM file.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the decryption session
+ * @param buffer Reference to the buffer that should receive the read data.
+ * @param numBytes Number of bytes to read.
+ *
+ * @return Number of bytes read.
+ * @retval -1 Failure.
+ */
+ssize_t onRead(int uniqueId,
+               DecryptHandle* decryptHandle,
+               void* pBuffer,
+               int numBytes);
+
+/**
+ * Updates the file position within an open DRM file.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the decryption session
+ * @param offset Offset with which to update the file position.
+ * @param whence One of SEEK_SET, SEEK_CUR, and SEEK_END.
+ *           These constants are defined in unistd.h.
+ *
+ * @return New file position.
+ * @retval ((off_t)-1) Failure.
+ */
+#ifdef USE_64BIT_DRM_API
+off64_t onLseek(int uniqueId,
+                DecryptHandle* decryptHandle,
+                off64_t offset,
+                int whence);
+#else
+off_t onLseek(int uniqueId,
+              DecryptHandle* decryptHandle,
+              off_t offset,
+              int whence);
+#endif
+
+/**
+ * Reads the specified number of bytes from an open DRM file.
+ *
+ * @param uniqueId Unique identifier for a session
+ * @param decryptHandle Handle for the decryption session
+ * @param buffer Reference to the buffer that should receive the read data.
+ * @param numBytes Number of bytes to read.
+ * @param offset Offset with which to update the file position.
+ *
+ * @return Number of bytes read. Returns -1 for Failure.
+ */
+#ifdef USE_64BIT_DRM_API
+ssize_t onPread(int uniqueId,
+                DecryptHandle* decryptHandle,
+                void* buffer,
+                ssize_t numBytes,
+                off64_t offset);
+#else
+ssize_t onPread(int uniqueId,
+                DecryptHandle* decryptHandle,
+                void* buffer,
+                ssize_t numBytes,
+                off_t offset);
+#endif
+
+private:
+
+/**
+ * Session Class for Forward Lock Conversion. An object of this class is created
+ * for every conversion.
+ */
+class ConvertSession {
+    public :
+        int uniqueId;
+        FwdLockConv_Output_t output;
+
+        ConvertSession() {
+            uniqueId = 0;
+            memset(&output, 0, sizeof(FwdLockConv_Output_t));
+        }
+
+        virtual ~ConvertSession() {}
+};
+
+/**
+ * Session Class for Forward Lock decoder. An object of this class is created
+ * for every decoding session.
+ */
+class DecodeSession {
+    public :
+        int fileDesc;
+        off_t offset;
+
+        DecodeSession() {
+            fileDesc = -1;
+            offset = 0;
+        }
+
+        DecodeSession(int fd) {
+            fileDesc = fd;
+            offset = 0;
+        }
+
+        virtual ~DecodeSession() {}
+};
+
+/**
+ * Session Map Tables for Conversion and Decoding of forward lock files.
+ */
+SessionMap<ConvertSession*> convertSessionMap;
+SessionMap<DecodeSession*> decodeSessionMap;
+
+/**
+ * Converts the error code from Forward Lock Converter to DrmConvertStatus error code.
+ *
+ * @param Forward Lock Converter error code
+ *
+ * @return Status code from DrmConvertStatus.
+ */
+static int getConvertedStatus(FwdLockConv_Status_t status);
+};
+
+};
+
+#endif /* __FWDLOCKENGINE_H__ */
diff --git a/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/include/FwdLockEngineConst.h b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/include/FwdLockEngineConst.h
new file mode 100644
index 0000000..da95d60
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/include/FwdLockEngineConst.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __FWDLOCKENGINECONST_H__
+#define __FWDLOCKENGINECONST_H__
+
+namespace android {
+
+/**
+ * Constants for forward Lock Engine used for exposing engine's capabilities.
+ */
+#define FWDLOCK_EXTENSION_FL           ("FL")
+#define FWDLOCK_DOTEXTENSION_FL        (".fl")
+#define FWDLOCK_MIMETYPE_FL            ("application/x-android-drm-fl")
+
+#define FWDLOCK_EXTENSION_DM           ("DM")
+#define FWDLOCK_DOTEXTENSION_DM        (".dm")
+#define FWDLOCK_MIMETYPE_DM            ("application/vnd.oma.drm.message")
+
+#define FWDLOCK_DESCRIPTION            ("OMA V1 Forward Lock")
+
+};
+
+#endif /* __FWDLOCKENGINECONST_H__ */
diff --git a/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/src/FwdLockEngine.cpp b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/src/FwdLockEngine.cpp
new file mode 100644
index 0000000..d430f72
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/FwdLockEngine/src/FwdLockEngine.cpp
@@ -0,0 +1,628 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "SessionMap.h"
+#include "FwdLockEngine.h"
+#include <utils/Log.h>
+#include <errno.h>
+#include <stdio.h>
+#include <unistd.h>
+#include "drm_framework_common.h"
+#include <fcntl.h>
+#include <limits.h>
+#include <DrmRights.h>
+#include <DrmConstraints.h>
+#include <DrmMetadata.h>
+#include <DrmInfo.h>
+#include <DrmInfoStatus.h>
+#include <DrmInfoRequest.h>
+#include <DrmSupportInfo.h>
+#include <DrmConvertedStatus.h>
+#include <utils/String8.h>
+#include "FwdLockConv.h"
+#include "FwdLockFile.h"
+#include "FwdLockGlue.h"
+#include "FwdLockEngineConst.h"
+#include "MimeTypeUtil.h"
+
+#undef LOG_TAG
+#define LOG_TAG "FwdLockEngine"
+
+using namespace android;
+// This extern "C" is mandatory to be managed by TPlugInManager
+extern "C" IDrmEngine* create() {
+    return new FwdLockEngine();
+}
+
+// This extern "C" is mandatory to be managed by TPlugInManager
+extern "C" void destroy(IDrmEngine* plugIn) {
+    delete plugIn;
+}
+
+FwdLockEngine::FwdLockEngine() {
+    LOGD("FwdLockEngine Construction");
+}
+
+FwdLockEngine::~FwdLockEngine() {
+    LOGD("FwdLockEngine Destruction");
+
+    convertSessionMap.destroyMap();
+    decodeSessionMap.destroyMap();
+}
+
+int FwdLockEngine::getConvertedStatus(FwdLockConv_Status_t status) {
+    int retStatus = DrmConvertedStatus::STATUS_ERROR;
+
+    switch(status) {
+        case FwdLockConv_Status_OK:
+            retStatus = DrmConvertedStatus::STATUS_OK;
+            break;
+        case FwdLockConv_Status_SyntaxError:
+        case FwdLockConv_Status_InvalidArgument:
+        case FwdLockConv_Status_UnsupportedFileFormat:
+        case FwdLockConv_Status_UnsupportedContentTransferEncoding:
+            LOGD("FwdLockEngine getConvertedStatus: file conversion Error %d. " \
+                  "Returning STATUS_INPUTDATA_ERROR", status);
+            retStatus = DrmConvertedStatus::STATUS_INPUTDATA_ERROR;
+            break;
+        default:
+            LOGD("FwdLockEngine getConvertedStatus: file conversion Error %d. " \
+                  "Returning STATUS_ERROR", status);
+            retStatus = DrmConvertedStatus::STATUS_ERROR;
+            break;
+    }
+
+    return retStatus;
+}
+
+DrmConstraints* FwdLockEngine::onGetConstraints(int uniqueId, const String8* path, int action) {
+    DrmConstraints* drmConstraints = NULL;
+
+    LOGD("FwdLockEngine::onGetConstraints");
+
+    if (NULL != path &&
+        (RightsStatus::RIGHTS_VALID == onCheckRightsStatus(uniqueId, *path, action))) {
+        // Return the empty constraints to show no error condition.
+        drmConstraints = new DrmConstraints();
+    }
+
+    return drmConstraints;
+}
+
+DrmMetadata* FwdLockEngine::onGetMetadata(int uniqueId, const String8* path) {
+    DrmMetadata* drmMetadata = NULL;
+
+    LOGD("FwdLockEngine::onGetMetadata");
+
+    if (NULL != path) {
+        // Returns empty metadata to show no error condition.
+        drmMetadata = new DrmMetadata();
+    }
+
+    return drmMetadata;
+}
+
+android::status_t FwdLockEngine::onInitialize(int uniqueId) {
+    LOGD("FwdLockEngine::onInitialize");
+
+
+    if (FwdLockGlue_InitializeKeyEncryption()) {
+        LOGD("FwdLockEngine::onInitialize -- FwdLockGlue_InitializeKeyEncryption succeeded");
+    } else {
+        LOGD("FwdLockEngine::onInitialize -- FwdLockGlue_InitializeKeyEncryption failed:"
+             "errno = %d", errno);
+    }
+
+    return DRM_NO_ERROR;
+}
+
+android::status_t
+FwdLockEngine::onSetOnInfoListener(int uniqueId, const IDrmEngine::OnInfoListener* infoListener) {
+    // Not used
+    LOGD("FwdLockEngine::onSetOnInfoListener");
+
+    return DRM_NO_ERROR;
+}
+
+android::status_t FwdLockEngine::onTerminate(int uniqueId) {
+    LOGD("FwdLockEngine::onTerminate");
+
+    return DRM_NO_ERROR;
+}
+
+DrmSupportInfo* FwdLockEngine::onGetSupportInfo(int uniqueId) {
+    DrmSupportInfo* pSupportInfo = new DrmSupportInfo();
+
+    LOGD("FwdLockEngine::onGetSupportInfo");
+
+    // fill all Forward Lock mimetypes and extensions
+    if (NULL != pSupportInfo) {
+        pSupportInfo->addMimeType(String8(FWDLOCK_MIMETYPE_FL));
+        pSupportInfo->addFileSuffix(String8(FWDLOCK_DOTEXTENSION_FL));
+        pSupportInfo->addMimeType(String8(FWDLOCK_MIMETYPE_DM));
+        pSupportInfo->addFileSuffix(String8(FWDLOCK_DOTEXTENSION_DM));
+
+        pSupportInfo->setDescription(String8(FWDLOCK_DESCRIPTION));
+    }
+
+    return pSupportInfo;
+}
+
+bool FwdLockEngine::onCanHandle(int uniqueId, const String8& path) {
+    bool result = false;
+
+    String8 extString = path.getPathExtension();
+
+    extString.toLower();
+
+    if ((extString == String8(FWDLOCK_DOTEXTENSION_FL)) ||
+        (extString == String8(FWDLOCK_DOTEXTENSION_DM))) {
+        result = true;
+    }
+    return result;
+}
+
+DrmInfoStatus* FwdLockEngine::onProcessDrmInfo(int uniqueId, const DrmInfo* drmInfo) {
+    DrmInfoStatus *drmInfoStatus = NULL;
+
+    // Nothing to process
+
+    drmInfoStatus = new DrmInfoStatus((int)DrmInfoStatus::STATUS_OK, 0, NULL, String8(""));
+
+    LOGD("FwdLockEngine::onProcessDrmInfo");
+
+    return drmInfoStatus;
+}
+
+status_t FwdLockEngine::onSaveRights(
+            int uniqueId,
+            const DrmRights& drmRights,
+            const String8& rightsPath,
+            const String8& contentPath) {
+    // No rights to save. Return
+    LOGD("FwdLockEngine::onSaveRights");
+    return DRM_ERROR_UNKNOWN;
+}
+
+DrmInfo* FwdLockEngine::onAcquireDrmInfo(int uniqueId, const DrmInfoRequest* drmInfoRequest) {
+    DrmInfo* drmInfo = NULL;
+
+    // Nothing to be done for Forward Lock file
+    LOGD("FwdLockEngine::onAcquireDrmInfo");
+
+    return drmInfo;
+}
+
+int FwdLockEngine::onCheckRightsStatus(int uniqueId,
+                                       const String8& path,
+                                       int action) {
+    int result = RightsStatus::RIGHTS_INVALID;
+
+    LOGD("FwdLockEngine::onCheckRightsStatus");
+
+    // Only Transfer action is not allowed for forward Lock files.
+    if (onCanHandle(uniqueId, path)) {
+        switch(action) {
+            case Action::DEFAULT:
+            case Action::PLAY:
+            case Action::RINGTONE:
+            case Action::OUTPUT:
+            case Action::PREVIEW:
+            case Action::EXECUTE:
+            case Action::DISPLAY:
+                result = RightsStatus::RIGHTS_VALID;
+                break;
+
+            case Action::TRANSFER:
+            default:
+                result = RightsStatus::RIGHTS_INVALID;
+                break;
+        }
+    }
+
+    return result;
+}
+
+status_t FwdLockEngine::onConsumeRights(int uniqueId,
+                                        DecryptHandle* decryptHandle,
+                                        int action,
+                                        bool reserve) {
+    // No rights consumption
+    LOGD("FwdLockEngine::onConsumeRights");
+    return DRM_NO_ERROR;
+}
+
+bool FwdLockEngine::onValidateAction(int uniqueId,
+                                     const String8& path,
+                                     int action,
+                                     const ActionDescription& description) {
+    LOGD("FwdLockEngine::onValidateAction");
+
+    // For the forwardlock engine checkRights and ValidateAction are the same.
+    return (onCheckRightsStatus(uniqueId, path, action) == RightsStatus::RIGHTS_VALID);
+}
+
+String8 FwdLockEngine::onGetOriginalMimeType(int uniqueId, const String8& path) {
+    LOGD("FwdLockEngine::onGetOriginalMimeType");
+    String8 mimeString = String8("");
+    int fileDesc = FwdLockFile_open(path.string());
+
+    if (-1 < fileDesc) {
+        const char* pMimeType = FwdLockFile_GetContentType(fileDesc);
+
+        if (NULL != pMimeType) {
+            String8 contentType = String8(pMimeType);
+            contentType.toLower();
+            mimeString = MimeTypeUtil::convertMimeType(contentType);
+        }
+
+        FwdLockFile_close(fileDesc);
+    }
+
+    return mimeString;
+}
+
+int FwdLockEngine::onGetDrmObjectType(int uniqueId,
+                                      const String8& path,
+                                      const String8& mimeType) {
+    String8 mimeStr = String8(mimeType);
+
+    LOGD("FwdLockEngine::onGetDrmObjectType");
+
+    mimeStr.toLower();
+
+    /* Checks whether
+    * 1. path and mime type both are not empty strings (meaning unavailable) else content is unknown
+    * 2. if one of them is empty string and if other is known then its a DRM Content Object.
+    * 3. if both of them are available, then both may be of known type
+    *    (regardless of the relation between them to make it compatible with other DRM Engines)
+    */
+    if (((0 == path.length()) || onCanHandle(uniqueId, path)) &&
+        ((0 == mimeType.length()) || ((mimeStr == String8(FWDLOCK_MIMETYPE_FL)) ||
+        (mimeStr == String8(FWDLOCK_MIMETYPE_DM)))) && (mimeType != path) ) {
+            return DrmObjectType::CONTENT;
+    }
+
+    return DrmObjectType::UNKNOWN;
+}
+
+status_t FwdLockEngine::onRemoveRights(int uniqueId, const String8& path) {
+    // No Rights to remove
+    LOGD("FwdLockEngine::onRemoveRights");
+    return DRM_NO_ERROR;
+}
+
+status_t FwdLockEngine::onRemoveAllRights(int uniqueId) {
+    // No rights to remove
+    LOGD("FwdLockEngine::onRemoveAllRights");
+    return DRM_NO_ERROR;
+}
+
+#ifdef USE_64BIT_DRM_API
+status_t FwdLockEngine::onSetPlaybackStatus(int uniqueId, DecryptHandle* decryptHandle,
+                                            int playbackStatus, int64_t position) {
+#else
+status_t FwdLockEngine::onSetPlaybackStatus(int uniqueId, DecryptHandle* decryptHandle,
+                                            int playbackStatus, int position) {
+#endif
+    // Not used
+    LOGD("FwdLockEngine::onSetPlaybackStatus");
+    return DRM_NO_ERROR;
+}
+
+status_t FwdLockEngine::onOpenConvertSession(int uniqueId,
+                                         int convertId) {
+    status_t result = DRM_ERROR_UNKNOWN;
+    LOGD("FwdLockEngine::onOpenConvertSession");
+    if (!convertSessionMap.isCreated(convertId)) {
+        ConvertSession *newSession = new ConvertSession();
+        if (FwdLockConv_Status_OK ==
+            FwdLockConv_OpenSession(&(newSession->uniqueId), &(newSession->output))) {
+            convertSessionMap.addValue(convertId, newSession);
+            result = DRM_NO_ERROR;
+        } else {
+            LOGD("FwdLockEngine::onOpenConvertSession -- FwdLockConv_OpenSession failed.");
+            delete newSession;
+        }
+    }
+    return result;
+}
+
+DrmConvertedStatus* FwdLockEngine::onConvertData(int uniqueId,
+                                                 int convertId,
+                                                 const DrmBuffer* inputData) {
+    FwdLockConv_Status_t retStatus = FwdLockConv_Status_InvalidArgument;
+    DrmBuffer *convResult = new DrmBuffer(NULL, 0);
+    int offset = -1;
+
+    if (NULL != inputData && convertSessionMap.isCreated(convertId)) {
+        ConvertSession *convSession = convertSessionMap.getValue(convertId);
+
+        if (NULL != convSession) {
+            retStatus = FwdLockConv_ConvertData(convSession->uniqueId,
+                                                inputData->data,
+                                                inputData->length,
+                                                &(convSession->output));
+
+            if (FwdLockConv_Status_OK == retStatus) {
+                // return bytes from conversion if available
+                if (convSession->output.fromConvertData.numBytes > 0) {
+                    convResult->data = new char[convSession->output.fromConvertData.numBytes];
+
+                    if (NULL != convResult->data) {
+                        convResult->length = convSession->output.fromConvertData.numBytes;
+                        memcpy(convResult->data,
+                               (char *)convSession->output.fromConvertData.pBuffer,
+                               convResult->length);
+                    }
+                }
+            } else {
+                offset = convSession->output.fromConvertData.errorPos;
+            }
+        }
+    }
+    return new DrmConvertedStatus(getConvertedStatus(retStatus), convResult, offset);
+}
+
+DrmConvertedStatus* FwdLockEngine::onCloseConvertSession(int uniqueId,
+                                                         int convertId) {
+    FwdLockConv_Status_t retStatus = FwdLockConv_Status_InvalidArgument;
+    DrmBuffer *convResult = new DrmBuffer(NULL, 0);
+    int offset = -1;
+
+    LOGD("FwdLockEngine::onCloseConvertSession");
+
+    if (convertSessionMap.isCreated(convertId)) {
+        ConvertSession *convSession = convertSessionMap.getValue(convertId);
+
+        if (NULL != convSession) {
+            retStatus = FwdLockConv_CloseSession(convSession->uniqueId, &(convSession->output));
+
+            if (FwdLockConv_Status_OK == retStatus) {
+                offset = convSession->output.fromCloseSession.fileOffset;
+                convResult->data = new char[FWD_LOCK_SIGNATURES_SIZE];
+
+                if (NULL != convResult->data) {
+                      convResult->length = FWD_LOCK_SIGNATURES_SIZE;
+                      memcpy(convResult->data,
+                             (char *)convSession->output.fromCloseSession.signatures,
+                             convResult->length);
+                }
+            }
+        }
+        convertSessionMap.removeValue(convertId);
+    }
+    return new DrmConvertedStatus(getConvertedStatus(retStatus), convResult, offset);
+}
+
+#ifdef USE_64BIT_DRM_API
+status_t FwdLockEngine::onOpenDecryptSession(int uniqueId,
+                                             DecryptHandle* decryptHandle,
+                                             int fd,
+                                             off64_t offset,
+                                             off64_t length) {
+#else
+status_t FwdLockEngine::onOpenDecryptSession(int uniqueId,
+                                             DecryptHandle* decryptHandle,
+                                             int fd,
+                                             int offset,
+                                             int length) {
+#endif
+    status_t result = DRM_ERROR_CANNOT_HANDLE;
+    int fileDesc = -1;
+
+    LOGD("FwdLockEngine::onOpenDecryptSession");
+
+    if ((-1 < fd) &&
+        (NULL != decryptHandle) &&
+        (!decodeSessionMap.isCreated(decryptHandle->decryptId))) {
+        fileDesc = dup(fd);
+    } else {
+        LOGD("FwdLockEngine::onOpenDecryptSession parameter error");
+        return result;
+    }
+
+    if (-1 < fileDesc &&
+        -1 < ::lseek(fileDesc, offset, SEEK_SET) &&
+        -1 < FwdLockFile_attach(fileDesc)) {
+        // check for file integrity. This must be done to protect the content mangling.
+        int retVal = FwdLockFile_CheckHeaderIntegrity(fileDesc);
+        DecodeSession* decodeSession = new DecodeSession(fileDesc);
+
+        if (retVal && NULL != decodeSession) {
+            decodeSessionMap.addValue(decryptHandle->decryptId, decodeSession);
+            const char *pmime= FwdLockFile_GetContentType(fileDesc);
+            String8 contentType = String8(pmime == NULL ? "" : pmime);
+            contentType.toLower();
+            decryptHandle->mimeType = MimeTypeUtil::convertMimeType(contentType);
+            decryptHandle->decryptApiType = DecryptApiType::CONTAINER_BASED;
+            decryptHandle->status = RightsStatus::RIGHTS_VALID;
+            decryptHandle->decryptInfo = NULL;
+            result = DRM_NO_ERROR;
+        } else {
+            LOGD("FwdLockEngine::onOpenDecryptSession Integrity Check failed for the fd");
+            FwdLockFile_detach(fileDesc);
+            ::close(fileDesc);
+            delete decodeSession;
+        }
+    }
+
+    LOGD("FwdLockEngine::onOpenDecryptSession Exit. result = %d", result);
+
+    return result;
+}
+
+status_t FwdLockEngine::onOpenDecryptSession(int uniqueId,
+                                             DecryptHandle* decryptHandle,
+                                             const char* uri) {
+    status_t result = DRM_ERROR_CANNOT_HANDLE;
+    const char fileTag [] = "file://";
+
+    if (NULL != decryptHandle && NULL != uri && strlen(uri) > sizeof(fileTag)) {
+        String8 uriTag = String8(uri);
+        uriTag.toLower();
+
+        if (0 == strncmp(uriTag.string(), fileTag, sizeof(fileTag) - 1)) {
+            const char *filePath = strchr(uri + sizeof(fileTag) - 1, '/');
+            if (NULL != filePath && onCanHandle(uniqueId, String8(filePath))) {
+                int fd = open(filePath, O_RDONLY);
+
+                if (-1 < fd) {
+                    // offset is always 0 and length is not used. so any positive size.
+                    result = onOpenDecryptSession(uniqueId, decryptHandle, fd, 0, 1);
+
+                    // fd is duplicated already if success. closing the file
+                    close(fd);
+                }
+            }
+        }
+    }
+
+    return result;
+}
+
+status_t FwdLockEngine::onCloseDecryptSession(int uniqueId,
+                                              DecryptHandle* decryptHandle) {
+    status_t result = DRM_ERROR_UNKNOWN;
+    LOGD("FwdLockEngine::onCloseDecryptSession");
+
+    if (NULL != decryptHandle && decodeSessionMap.isCreated(decryptHandle->decryptId)) {
+        DecodeSession* session = decodeSessionMap.getValue(decryptHandle->decryptId);
+        if (NULL != session && session->fileDesc > -1) {
+            FwdLockFile_detach(session->fileDesc);
+            ::close(session->fileDesc);
+            decodeSessionMap.removeValue(decryptHandle->decryptId);
+            result = DRM_NO_ERROR;
+        }
+    }
+
+    LOGD("FwdLockEngine::onCloseDecryptSession Exit");
+    return result;
+}
+
+status_t FwdLockEngine::onInitializeDecryptUnit(int uniqueId,
+                                                DecryptHandle* decryptHandle,
+                                                int decryptUnitId,
+                                                const DrmBuffer* headerInfo) {
+    LOGD("FwdLockEngine::onInitializeDecryptUnit");
+    return DRM_ERROR_UNKNOWN;
+}
+
+status_t FwdLockEngine::onDecrypt(int uniqueId, DecryptHandle* decryptHandle, int decryptUnitId,
+            const DrmBuffer* encBuffer, DrmBuffer** decBuffer, DrmBuffer* IV) {
+    LOGD("FwdLockEngine::onDecrypt");
+    return DRM_ERROR_UNKNOWN;
+}
+
+status_t FwdLockEngine::onDecrypt(int uniqueId,
+                                  DecryptHandle* decryptHandle,
+                                  int decryptUnitId,
+                                  const DrmBuffer* encBuffer,
+                                  DrmBuffer** decBuffer) {
+    LOGD("FwdLockEngine::onDecrypt");
+    return DRM_ERROR_UNKNOWN;
+}
+
+status_t FwdLockEngine::onFinalizeDecryptUnit(int uniqueId,
+                                              DecryptHandle* decryptHandle,
+                                              int decryptUnitId) {
+    LOGD("FwdLockEngine::onFinalizeDecryptUnit");
+    return DRM_ERROR_UNKNOWN;
+}
+
+ssize_t FwdLockEngine::onRead(int uniqueId,
+                              DecryptHandle* decryptHandle,
+                              void* buffer,
+                              int numBytes) {
+    ssize_t size = -1;
+
+    if (NULL != decryptHandle &&
+       decodeSessionMap.isCreated(decryptHandle->decryptId) &&
+        NULL != buffer &&
+        numBytes > -1) {
+        DecodeSession* session = decodeSessionMap.getValue(decryptHandle->decryptId);
+        if (NULL != session && session->fileDesc > -1) {
+            size = FwdLockFile_read(session->fileDesc, buffer, numBytes);
+
+            if (0 > size) {
+                session->offset = ((off_t)-1);
+            } else {
+                session->offset += size;
+            }
+        }
+    }
+
+    return size;
+}
+
+#ifdef USE_64BIT_DRM_API
+off64_t FwdLockEngine::onLseek(int uniqueId, DecryptHandle* decryptHandle,
+                               off64_t offset, int whence) {
+#else
+off_t FwdLockEngine::onLseek(int uniqueId, DecryptHandle* decryptHandle,
+                             off_t offset, int whence) {
+#endif
+    off_t offval = -1;
+
+    if (NULL != decryptHandle && decodeSessionMap.isCreated(decryptHandle->decryptId)) {
+        DecodeSession* session = decodeSessionMap.getValue(decryptHandle->decryptId);
+        if (NULL != session && session->fileDesc > -1) {
+            offval = FwdLockFile_lseek(session->fileDesc, offset, whence);
+            session->offset = offval;
+        }
+    }
+
+    return offval;
+}
+
+#ifdef USE_64BIT_DRM_API
+ssize_t FwdLockEngine::onPread(int uniqueId,
+                               DecryptHandle* decryptHandle,
+                               void* buffer,
+                               ssize_t numBytes,
+                               off64_t offset) {
+#else
+ssize_t FwdLockEngine::onPread(int uniqueId,
+                               DecryptHandle* decryptHandle,
+                               void* buffer,
+                               ssize_t numBytes,
+                               off_t offset) {
+#endif
+    ssize_t bytesRead = -1;
+
+    DecodeSession* decoderSession = NULL;
+
+    if ((NULL != decryptHandle) &&
+        (NULL != (decoderSession = decodeSessionMap.getValue(decryptHandle->decryptId))) &&
+        (NULL != buffer) &&
+        (numBytes > -1) &&
+        (offset > -1)) {
+        if (offset != decoderSession->offset) {
+            decoderSession->offset = onLseek(uniqueId, decryptHandle, offset, SEEK_SET);
+        }
+
+        if (((off_t)-1) != decoderSession->offset) {
+            bytesRead = onRead(uniqueId, decryptHandle, buffer, numBytes);
+            if (bytesRead < 0) {
+                LOGD("FwdLockEngine::onPread error reading");
+            }
+        }
+    } else {
+        LOGD("FwdLockEngine::onPread decryptId not found");
+    }
+
+    return bytesRead;
+}
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/Android.mk b/drm/libdrmframework/plugins/forward-lock/internal-format/Android.mk
new file mode 100644
index 0000000..9ee7961
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/Android.mk
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+include $(call all-subdir-makefiles)
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/common/Android.mk b/drm/libdrmframework/plugins/forward-lock/internal-format/common/Android.mk
new file mode 100644
index 0000000..6c5d3cf
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/common/Android.mk
@@ -0,0 +1,32 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+    FwdLockGlue.c
+
+LOCAL_C_INCLUDES := \
+    external/openssl/include
+
+LOCAL_SHARED_LIBRARIES := libcrypto
+
+LOCAL_MODULE := libfwdlock-common
+
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/common/FwdLockGlue.c b/drm/libdrmframework/plugins/forward-lock/internal-format/common/FwdLockGlue.c
new file mode 100644
index 0000000..92bda8ff
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/common/FwdLockGlue.c
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <openssl/aes.h>
+
+#include "FwdLockGlue.h"
+
+#define TRUE 1
+#define FALSE 0
+
+#define KEY_SIZE 16
+#define KEY_SIZE_IN_BITS (KEY_SIZE * 8)
+
+static int isInitialized = FALSE;
+
+static const char strKeyFilename[] = "/data/drm/fwdlock/kek.dat";
+
+static AES_KEY encryptionRoundKeys;
+static AES_KEY decryptionRoundKeys;
+
+/**
+ * Creates all directories along the fully qualified path of the given file.
+ *
+ * @param[in] path A reference to the fully qualified path of a file.
+ * @param[in] mode The access mode to use for the directories being created.
+ *
+ * @return A Boolean value indicating whether the operation was successful.
+ */
+static int FwdLockGlue_CreateDirectories(const char *path, mode_t mode) {
+    int result = TRUE;
+    size_t partialPathLength = strlen(path);
+    char *partialPath = malloc(partialPathLength + 1);
+    if (partialPath == NULL) {
+        result = FALSE;
+    } else {
+        size_t i;
+        for (i = 0; i < partialPathLength; ++i) {
+            if (path[i] == '/' && i > 0) {
+                partialPath[i] = '\0';
+                if (mkdir(partialPath, mode) != 0 && errno != EEXIST) {
+                    result = FALSE;
+                    break;
+                }
+            }
+            partialPath[i] = path[i];
+        }
+        free(partialPath);
+    }
+    return result;
+}
+
+/**
+ * Initializes the round keys used for encryption and decryption of session keys. First creates a
+ * device-unique key-encryption key if none exists yet.
+ */
+static void FwdLockGlue_InitializeRoundKeys() {
+    unsigned char keyEncryptionKey[KEY_SIZE];
+    int fileDesc = open(strKeyFilename, O_RDONLY);
+    if (fileDesc >= 0) {
+        if (read(fileDesc, keyEncryptionKey, KEY_SIZE) == KEY_SIZE) {
+            isInitialized = TRUE;
+        }
+        (void)close(fileDesc);
+    } else if (errno == ENOENT &&
+               FwdLockGlue_GetRandomNumber(keyEncryptionKey, KEY_SIZE) &&
+               FwdLockGlue_CreateDirectories(strKeyFilename, S_IRWXU)) {
+        fileDesc = open(strKeyFilename, O_CREAT | O_TRUNC | O_WRONLY, S_IRUSR);
+        if (fileDesc >= 0) {
+            if (write(fileDesc, keyEncryptionKey, KEY_SIZE) == KEY_SIZE) {
+                isInitialized = TRUE;
+            }
+            (void)close(fileDesc);
+        }
+    }
+    if (isInitialized) {
+        if (AES_set_encrypt_key(keyEncryptionKey, KEY_SIZE_IN_BITS, &encryptionRoundKeys) != 0 ||
+            AES_set_decrypt_key(keyEncryptionKey, KEY_SIZE_IN_BITS, &decryptionRoundKeys) != 0) {
+            isInitialized = FALSE;
+        }
+    }
+    memset(keyEncryptionKey, 0, KEY_SIZE); // Zero out key data.
+}
+
+/**
+ * Validates the padding of a decrypted key.
+ *
+ * @param[in] pData A reference to the buffer containing the decrypted key and padding.
+ * @param[in] decryptedKeyLength The length in bytes of the decrypted key.
+ *
+ * @return A Boolean value indicating whether the padding was valid.
+ */
+static int FwdLockGlue_ValidatePadding(const unsigned char *pData, size_t decryptedKeyLength) {
+    size_t i;
+    size_t padding = AES_BLOCK_SIZE - (decryptedKeyLength % AES_BLOCK_SIZE);
+    pData += decryptedKeyLength;
+    for (i = 0; i < padding; ++i) {
+        if ((size_t)*pData != padding) {
+            return FALSE;
+        }
+        ++pData;
+    }
+    return TRUE;
+}
+
+int FwdLockGlue_GetRandomNumber(void *pBuffer, size_t numBytes) {
+    // Generate 'cryptographically secure' random bytes by reading them from "/dev/urandom" (the
+    // non-blocking version of "/dev/random").
+    ssize_t numBytesRead = 0;
+    int fileDesc = open("/dev/urandom", O_RDONLY);
+    if (fileDesc >= 0) {
+        numBytesRead = read(fileDesc, pBuffer, numBytes);
+        (void)close(fileDesc);
+    }
+    return numBytesRead >= 0 && (size_t)numBytesRead == numBytes;
+}
+
+int FwdLockGlue_InitializeKeyEncryption() {
+    static pthread_once_t once = PTHREAD_ONCE_INIT;
+    pthread_once(&once, FwdLockGlue_InitializeRoundKeys);
+    return isInitialized;
+}
+
+size_t FwdLockGlue_GetEncryptedKeyLength(size_t plaintextKeyLength) {
+    return ((plaintextKeyLength / AES_BLOCK_SIZE) + 2) * AES_BLOCK_SIZE;
+}
+
+int FwdLockGlue_EncryptKey(const void *pPlaintextKey,
+                           size_t plaintextKeyLength,
+                           void *pEncryptedKey,
+                           size_t encryptedKeyLength) {
+    int result = FALSE;
+    assert(encryptedKeyLength == FwdLockGlue_GetEncryptedKeyLength(plaintextKeyLength));
+    if (FwdLockGlue_InitializeKeyEncryption()) {
+        unsigned char initVector[AES_BLOCK_SIZE];
+        if (FwdLockGlue_GetRandomNumber(initVector, AES_BLOCK_SIZE)) {
+            size_t padding = AES_BLOCK_SIZE - (plaintextKeyLength % AES_BLOCK_SIZE);
+            size_t dataLength = encryptedKeyLength - AES_BLOCK_SIZE;
+            memcpy(pEncryptedKey, pPlaintextKey, plaintextKeyLength);
+            memset((unsigned char *)pEncryptedKey + plaintextKeyLength, (int)padding, padding);
+            memcpy((unsigned char *)pEncryptedKey + dataLength, initVector, AES_BLOCK_SIZE);
+            AES_cbc_encrypt(pEncryptedKey, pEncryptedKey, dataLength, &encryptionRoundKeys,
+                            initVector, AES_ENCRYPT);
+            result = TRUE;
+        }
+    }
+    return result;
+}
+
+int FwdLockGlue_DecryptKey(const void *pEncryptedKey,
+                           size_t encryptedKeyLength,
+                           void *pDecryptedKey,
+                           size_t decryptedKeyLength) {
+    int result = FALSE;
+    assert(encryptedKeyLength == FwdLockGlue_GetEncryptedKeyLength(decryptedKeyLength));
+    if (FwdLockGlue_InitializeKeyEncryption()) {
+        size_t dataLength = encryptedKeyLength - AES_BLOCK_SIZE;
+        unsigned char *pData = malloc(dataLength);
+        if (pData != NULL) {
+            unsigned char initVector[AES_BLOCK_SIZE];
+            memcpy(pData, pEncryptedKey, dataLength);
+            memcpy(initVector, (const unsigned char *)pEncryptedKey + dataLength, AES_BLOCK_SIZE);
+            AES_cbc_encrypt(pData, pData, dataLength, &decryptionRoundKeys, initVector,
+                            AES_DECRYPT);
+            memcpy(pDecryptedKey, pData, decryptedKeyLength);
+            result = FwdLockGlue_ValidatePadding(pData, decryptedKeyLength);
+            free(pData);
+        }
+    }
+    return result;
+}
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/common/FwdLockGlue.h b/drm/libdrmframework/plugins/forward-lock/internal-format/common/FwdLockGlue.h
new file mode 100644
index 0000000..f36f6ea
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/common/FwdLockGlue.h
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __FWDLOCKGLUE_H__
+#define __FWDLOCKGLUE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Generates the specified number of cryptographically secure random bytes.
+ *
+ * @param[out] pBuffer A reference to the buffer that should receive the random data.
+ * @param[in] numBytes The number of random bytes to generate.
+ *
+ * @return A Boolean value indicating whether the operation was successful.
+ */
+int FwdLockGlue_GetRandomNumber(void *pBuffer, size_t numBytes);
+
+/**
+ * Performs initialization of the key-encryption key. Should be called once during startup to
+ * facilitate encryption and decryption of session keys.
+ *
+ * @return A Boolean value indicating whether the operation was successful.
+ */
+int FwdLockGlue_InitializeKeyEncryption();
+
+/**
+ * Returns the length of the encrypted key, given the length of the plaintext key.
+ *
+ * @param[in] plaintextKeyLength The length in bytes of the plaintext key.
+ *
+ * @return The length in bytes of the encrypted key.
+ */
+size_t FwdLockGlue_GetEncryptedKeyLength(size_t plaintextKeyLength);
+
+/**
+ * Encrypts the given session key using a key-encryption key unique to this device.
+ *
+ * @param[in] pPlaintextKey A reference to the buffer containing the plaintext key.
+ * @param[in] plaintextKeyLength The length in bytes of the plaintext key.
+ * @param[out] pEncryptedKey A reference to the buffer containing the encrypted key.
+ * @param[in] encryptedKeyLength The length in bytes of the encrypted key.
+ *
+ * @return A Boolean value indicating whether the operation was successful.
+ */
+int FwdLockGlue_EncryptKey(const void *pPlaintextKey,
+                           size_t plaintextKeyLength,
+                           void *pEncryptedKey,
+                           size_t encryptedKeyLength);
+
+/**
+ * Decrypts the given session key using a key-encryption key unique to this device.
+ *
+ * @param[in] pEncryptedKey A reference to the buffer containing the encrypted key.
+ * @param[in] encryptedKeyLength The length in bytes of the encrypted key.
+ * @param[out] pDecryptedKey A reference to the buffer containing the decrypted key.
+ * @param[in] decryptedKeyLength The length in bytes of the decrypted key.
+ *
+ * @return A Boolean value indicating whether the operation was successful.
+ */
+int FwdLockGlue_DecryptKey(const void *pEncryptedKey,
+                           size_t encryptedKeyLength,
+                           void *pDecryptedKey,
+                           size_t decryptedKeyLength);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __FWDLOCKGLUE_H__
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/converter/Android.mk b/drm/libdrmframework/plugins/forward-lock/internal-format/converter/Android.mk
new file mode 100644
index 0000000..00bb788
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/converter/Android.mk
@@ -0,0 +1,37 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+    FwdLockConv.c
+
+LOCAL_C_INCLUDES := \
+    frameworks/base/drm/libdrmframework/plugins/forward-lock/internal-format/common \
+    external/openssl/include
+
+LOCAL_SHARED_LIBRARIES := libcrypto
+
+LOCAL_WHOLE_STATIC_LIBRARIES := libfwdlock-common
+
+LOCAL_STATIC_LIBRARIES := libfwdlock-common
+
+LOCAL_MODULE := libfwdlock-converter
+
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.c b/drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.c
new file mode 100644
index 0000000..14ea9e9
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.c
@@ -0,0 +1,1339 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <assert.h>
+#include <ctype.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <pthread.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <openssl/aes.h>
+#include <openssl/hmac.h>
+
+#include "FwdLockConv.h"
+#include "FwdLockGlue.h"
+
+#define TRUE 1
+#define FALSE 0
+
+#define INVALID_OFFSET ((off64_t)-1)
+
+#define MAX_NUM_SESSIONS 32
+
+#define OUTPUT_BUFFER_SIZE_INCREMENT 1024
+#define READ_BUFFER_SIZE 1024
+
+#define MAX_BOUNDARY_LENGTH 70
+#define MAX_DELIMITER_LENGTH (MAX_BOUNDARY_LENGTH + 4)
+
+#define STRING_LENGTH_INCREMENT 25
+
+#define KEY_SIZE AES_BLOCK_SIZE
+#define KEY_SIZE_IN_BITS (KEY_SIZE * 8)
+
+#define SHA1_HASH_SIZE 20
+
+#define FWD_LOCK_VERSION 0
+#define FWD_LOCK_SUBFORMAT 0
+#define USAGE_RESTRICTION_FLAGS 0
+#define CONTENT_TYPE_LENGTH_POS 7
+#define TOP_HEADER_SIZE 8
+
+/**
+ * Data type for the parser states of the converter.
+ */
+typedef enum FwdLockConv_ParserState {
+    FwdLockConv_ParserState_WantsOpenDelimiter,
+    FwdLockConv_ParserState_WantsMimeHeaders,
+    FwdLockConv_ParserState_WantsBinaryEncodedData,
+    FwdLockConv_ParserState_WantsBase64EncodedData,
+    FwdLockConv_ParserState_Done
+} FwdLockConv_ParserState_t;
+
+/**
+ * Data type for the scanner states of the converter.
+ */
+typedef enum FwdLockConv_ScannerState {
+    FwdLockConv_ScannerState_WantsFirstDash,
+    FwdLockConv_ScannerState_WantsSecondDash,
+    FwdLockConv_ScannerState_WantsCR,
+    FwdLockConv_ScannerState_WantsLF,
+    FwdLockConv_ScannerState_WantsBoundary,
+    FwdLockConv_ScannerState_WantsBoundaryEnd,
+    FwdLockConv_ScannerState_WantsMimeHeaderNameStart,
+    FwdLockConv_ScannerState_WantsMimeHeaderName,
+    FwdLockConv_ScannerState_WantsMimeHeaderNameEnd,
+    FwdLockConv_ScannerState_WantsContentTypeStart,
+    FwdLockConv_ScannerState_WantsContentType,
+    FwdLockConv_ScannerState_WantsContentTransferEncodingStart,
+    FwdLockConv_ScannerState_Wants_A_OR_I,
+    FwdLockConv_ScannerState_Wants_N,
+    FwdLockConv_ScannerState_Wants_A,
+    FwdLockConv_ScannerState_Wants_R,
+    FwdLockConv_ScannerState_Wants_Y,
+    FwdLockConv_ScannerState_Wants_S,
+    FwdLockConv_ScannerState_Wants_E,
+    FwdLockConv_ScannerState_Wants_6,
+    FwdLockConv_ScannerState_Wants_4,
+    FwdLockConv_ScannerState_Wants_B,
+    FwdLockConv_ScannerState_Wants_I,
+    FwdLockConv_ScannerState_Wants_T,
+    FwdLockConv_ScannerState_WantsContentTransferEncodingEnd,
+    FwdLockConv_ScannerState_WantsMimeHeaderValueEnd,
+    FwdLockConv_ScannerState_WantsMimeHeadersEnd,
+    FwdLockConv_ScannerState_WantsByte1,
+    FwdLockConv_ScannerState_WantsByte1_AfterCRLF,
+    FwdLockConv_ScannerState_WantsByte2,
+    FwdLockConv_ScannerState_WantsByte3,
+    FwdLockConv_ScannerState_WantsByte4,
+    FwdLockConv_ScannerState_WantsPadding,
+    FwdLockConv_ScannerState_WantsWhitespace,
+    FwdLockConv_ScannerState_WantsWhitespace_AfterCRLF,
+    FwdLockConv_ScannerState_WantsDelimiter
+} FwdLockConv_ScannerState_t;
+
+/**
+ * Data type for the content transfer encoding.
+ */
+typedef enum FwdLockConv_ContentTransferEncoding {
+    FwdLockConv_ContentTransferEncoding_Undefined,
+    FwdLockConv_ContentTransferEncoding_Binary,
+    FwdLockConv_ContentTransferEncoding_Base64
+} FwdLockConv_ContentTransferEncoding_t;
+
+/**
+ * Data type for a dynamically growing string.
+ */
+typedef struct FwdLockConv_String {
+    char *ptr;
+    size_t length;
+    size_t maxLength;
+    size_t lengthIncrement;
+} FwdLockConv_String_t;
+
+/**
+ * Data type for the per-file state information needed by the converter.
+ */
+typedef struct FwdLockConv_Session {
+    FwdLockConv_ParserState_t parserState;
+    FwdLockConv_ScannerState_t scannerState;
+    FwdLockConv_ScannerState_t savedScannerState;
+    off64_t numCharsConsumed;
+    char delimiter[MAX_DELIMITER_LENGTH];
+    size_t delimiterLength;
+    size_t delimiterMatchPos;
+    FwdLockConv_String_t mimeHeaderName;
+    FwdLockConv_String_t contentType;
+    FwdLockConv_ContentTransferEncoding_t contentTransferEncoding;
+    unsigned char sessionKey[KEY_SIZE];
+    void *pEncryptedSessionKey;
+    size_t encryptedSessionKeyLength;
+    AES_KEY encryptionRoundKeys;
+    HMAC_CTX signingContext;
+    unsigned char topHeader[TOP_HEADER_SIZE];
+    unsigned char counter[AES_BLOCK_SIZE];
+    unsigned char keyStream[AES_BLOCK_SIZE];
+    int keyStreamIndex;
+    unsigned char ch;
+    size_t outputBufferSize;
+    size_t dataOffset;
+    size_t numDataBytes;
+} FwdLockConv_Session_t;
+
+static FwdLockConv_Session_t *sessionPtrs[MAX_NUM_SESSIONS] = { NULL };
+
+static pthread_mutex_t sessionAcquisitionMutex = PTHREAD_MUTEX_INITIALIZER;
+
+static const FwdLockConv_String_t nullString = { NULL, 0, 0, STRING_LENGTH_INCREMENT };
+
+static const unsigned char topHeaderTemplate[] =
+    { 'F', 'W', 'L', 'K', FWD_LOCK_VERSION, FWD_LOCK_SUBFORMAT, USAGE_RESTRICTION_FLAGS };
+
+static const char strContent[] = "content-";
+static const char strType[] = "type";
+static const char strTransferEncoding[] = "transfer-encoding";
+static const char strTextPlain[] = "text/plain";
+static const char strApplicationVndOmaDrmRightsXml[] = "application/vnd.oma.drm.rights+xml";
+static const char strApplicationVndOmaDrmContent[] = "application/vnd.oma.drm.content";
+
+static const size_t strlenContent = sizeof strContent - 1;
+static const size_t strlenTextPlain = sizeof strTextPlain - 1;
+
+static const signed char base64Values[] = {
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
+    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -2, -1, -1,
+    -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
+    15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
+    -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51
+};
+
+/**
+ * Acquires an unused converter session.
+ *
+ * @return A session ID.
+ */
+static int FwdLockConv_AcquireSession() {
+    int sessionId = -1;
+    int i;
+    pthread_mutex_lock(&sessionAcquisitionMutex);
+    for (i = 0; i < MAX_NUM_SESSIONS; ++i) {
+        if (sessionPtrs[i] == NULL) {
+            sessionPtrs[i] = malloc(sizeof *sessionPtrs[i]);
+            if (sessionPtrs[i] != NULL) {
+                sessionId = i;
+            }
+            break;
+        }
+    }
+    pthread_mutex_unlock(&sessionAcquisitionMutex);
+    return sessionId;
+}
+
+/**
+ * Checks whether a session ID is in range and currently in use.
+ *
+ * @param[in] sessionID A session ID.
+ *
+ * @return A Boolean value indicating whether the session ID is in range and currently in use.
+ */
+static int FwdLockConv_IsValidSession(int sessionId) {
+    return 0 <= sessionId && sessionId < MAX_NUM_SESSIONS && sessionPtrs[sessionId] != NULL;
+}
+
+/**
+ * Releases a converter session.
+ *
+ * @param[in] sessionID A session ID.
+ */
+static void FwdLockConv_ReleaseSession(int sessionId) {
+    pthread_mutex_lock(&sessionAcquisitionMutex);
+    assert(FwdLockConv_IsValidSession(sessionId));
+    memset(sessionPtrs[sessionId], 0, sizeof *sessionPtrs[sessionId]); // Zero out key data.
+    free(sessionPtrs[sessionId]);
+    sessionPtrs[sessionId] = NULL;
+    pthread_mutex_unlock(&sessionAcquisitionMutex);
+}
+
+/**
+ * Derives cryptographically independent keys for encryption and signing from the session key.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ *
+ * @return A status code.
+ */
+static int FwdLockConv_DeriveKeys(FwdLockConv_Session_t *pSession) {
+    FwdLockConv_Status_t status;
+    struct FwdLockConv_DeriveKeys_Data {
+        AES_KEY sessionRoundKeys;
+        unsigned char value[KEY_SIZE];
+        unsigned char key[KEY_SIZE];
+    } *pData = malloc(sizeof *pData);
+    if (pData == NULL) {
+        status = FwdLockConv_Status_OutOfMemory;
+    } else {
+        if (AES_set_encrypt_key(pSession->sessionKey, KEY_SIZE_IN_BITS,
+                                &pData->sessionRoundKeys) != 0) {
+            status = FwdLockConv_Status_ProgramError;
+        } else {
+            // Encrypt the 16-byte value {0, 0, ..., 0} to produce the encryption key.
+            memset(pData->value, 0, KEY_SIZE);
+            AES_encrypt(pData->value, pData->key, &pData->sessionRoundKeys);
+            if (AES_set_encrypt_key(pData->key, KEY_SIZE_IN_BITS,
+                                    &pSession->encryptionRoundKeys) != 0) {
+                status = FwdLockConv_Status_ProgramError;
+            } else {
+                // Encrypt the 16-byte value {1, 0, ..., 0} to produce the signing key.
+                ++pData->value[0];
+                AES_encrypt(pData->value, pData->key, &pData->sessionRoundKeys);
+                HMAC_CTX_init(&pSession->signingContext);
+                HMAC_Init_ex(&pSession->signingContext, pData->key, KEY_SIZE, EVP_sha1(), NULL);
+                status = FwdLockConv_Status_OK;
+            }
+        }
+        memset(pData, 0, sizeof pData); // Zero out key data.
+        free(pData);
+    }
+    return status;
+}
+
+/**
+ * Checks whether a given character is valid in a boundary. Note that the boundary may contain
+ * leading and internal spaces.
+ *
+ * @param[in] ch The character to check.
+ *
+ * @return A Boolean value indicating whether the given character is valid in a boundary.
+ */
+static int FwdLockConv_IsBoundaryChar(int ch) {
+    return isalnum(ch) || ch == '\'' ||
+            ch == '(' || ch == ')' || ch == '+' || ch == '_' || ch == ',' || ch == '-' ||
+            ch == '.' || ch == '/' || ch == ':' || ch == '=' || ch == '?' || ch == ' ';
+}
+
+/**
+ * Checks whether a given character should be considered whitespace, using a narrower definition
+ * than the standard-library isspace() function.
+ *
+ * @param[in] ch The character to check.
+ *
+ * @return A Boolean value indicating whether the given character should be considered whitespace.
+ */
+static int FwdLockConv_IsWhitespace(int ch) {
+    return ch == ' ' || ch == '\t';
+}
+
+/**
+ * Removes trailing spaces from the delimiter.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_RightTrimDelimiter(FwdLockConv_Session_t *pSession) {
+    while (pSession->delimiterLength > 4 &&
+           pSession->delimiter[pSession->delimiterLength - 1] == ' ') {
+        --pSession->delimiterLength;
+    }
+    if (pSession->delimiterLength > 4) {
+        return FwdLockConv_Status_OK;
+    }
+    return FwdLockConv_Status_SyntaxError;
+}
+
+/**
+ * Matches the open delimiter.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ * @param[in] ch A character.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_MatchOpenDelimiter(FwdLockConv_Session_t *pSession,
+                                                           int ch) {
+    FwdLockConv_Status_t status = FwdLockConv_Status_OK;
+    switch (pSession->scannerState) {
+    case FwdLockConv_ScannerState_WantsFirstDash:
+        if (ch == '-') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsSecondDash;
+        } else if (ch == '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsCR;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsSecondDash:
+        if (ch == '-') {
+            // The delimiter starts with "\r\n--" (the open delimiter may omit the initial "\r\n").
+            // The rest is the user-defined boundary that should come next.
+            pSession->delimiter[0] = '\r';
+            pSession->delimiter[1] = '\n';
+            pSession->delimiter[2] = '-';
+            pSession->delimiter[3] = '-';
+            pSession->delimiterLength = 4;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsBoundary;
+        } else if (ch == '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsCR;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsCR:
+        if (ch == '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsLF:
+        if (ch == '\n') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsFirstDash;
+        } else if (ch != '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsCR;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsBoundary:
+        if (FwdLockConv_IsBoundaryChar(ch)) {
+            // The boundary may contain leading and internal spaces, so trailing spaces will also be
+            // matched here. These will be removed later.
+            if (pSession->delimiterLength < MAX_DELIMITER_LENGTH) {
+                pSession->delimiter[pSession->delimiterLength++] = ch;
+            } else if (ch != ' ') {
+                status = FwdLockConv_Status_SyntaxError;
+            }
+        } else if (ch == '\r') {
+            status = FwdLockConv_RightTrimDelimiter(pSession);
+            if (status == FwdLockConv_Status_OK) {
+                pSession->scannerState = FwdLockConv_ScannerState_WantsBoundaryEnd;
+            }
+        } else if (ch == '\t') {
+            status = FwdLockConv_RightTrimDelimiter(pSession);
+            if (status == FwdLockConv_Status_OK) {
+                pSession->scannerState = FwdLockConv_ScannerState_WantsWhitespace;
+            }
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsWhitespace:
+        if (ch == '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsBoundaryEnd;
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsBoundaryEnd:
+        if (ch == '\n') {
+            pSession->parserState = FwdLockConv_ParserState_WantsMimeHeaders;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsMimeHeaderNameStart;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    default:
+        status = FwdLockConv_Status_ProgramError;
+        break;
+    }
+    return status;
+}
+
+/**
+ * Checks whether a given character is valid in a MIME header name.
+ *
+ * @param[in] ch The character to check.
+ *
+ * @return A Boolean value indicating whether the given character is valid in a MIME header name.
+ */
+static int FwdLockConv_IsMimeHeaderNameChar(int ch) {
+    return isgraph(ch) && ch != ':';
+}
+
+/**
+ * Checks whether a given character is valid in a MIME header value.
+ *
+ * @param[in] ch The character to check.
+ *
+ * @return A Boolean value indicating whether the given character is valid in a MIME header value.
+ */
+static int FwdLockConv_IsMimeHeaderValueChar(int ch) {
+    return isgraph(ch) && ch != ';';
+}
+
+/**
+ * Appends a character to the specified dynamically growing string.
+ *
+ * @param[in,out] pString A reference to a dynamically growing string.
+ * @param[in] ch The character to append.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_StringAppend(FwdLockConv_String_t *pString, int ch) {
+    if (pString->length == pString->maxLength) {
+        size_t newMaxLength = pString->maxLength + pString->lengthIncrement;
+        char *newPtr = realloc(pString->ptr, newMaxLength + 1);
+        if (newPtr == NULL) {
+            return FwdLockConv_Status_OutOfMemory;
+        }
+        pString->ptr = newPtr;
+        pString->maxLength = newMaxLength;
+    }
+    pString->ptr[pString->length++] = ch;
+    pString->ptr[pString->length] = '\0';
+    return FwdLockConv_Status_OK;
+}
+
+/**
+ * Attempts to recognize the MIME header name and changes the scanner state accordingly.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_RecognizeMimeHeaderName(FwdLockConv_Session_t *pSession) {
+    FwdLockConv_Status_t status = FwdLockConv_Status_OK;
+    if (strncmp(pSession->mimeHeaderName.ptr, strContent, strlenContent) == 0) {
+        if (strcmp(pSession->mimeHeaderName.ptr + strlenContent, strType) == 0) {
+            if (pSession->contentType.ptr == NULL) {
+                pSession->scannerState = FwdLockConv_ScannerState_WantsContentTypeStart;
+            } else {
+                status = FwdLockConv_Status_SyntaxError;
+            }
+        } else if (strcmp(pSession->mimeHeaderName.ptr + strlenContent, strTransferEncoding) == 0) {
+            if (pSession->contentTransferEncoding ==
+                    FwdLockConv_ContentTransferEncoding_Undefined) {
+                pSession->scannerState = FwdLockConv_ScannerState_WantsContentTransferEncodingStart;
+            } else {
+                status = FwdLockConv_Status_SyntaxError;
+            }
+        } else {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsCR;
+        }
+    } else {
+        pSession->scannerState = FwdLockConv_ScannerState_WantsCR;
+    }
+    return status;
+}
+
+/**
+ * Applies defaults to missing MIME header values.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_ApplyDefaults(FwdLockConv_Session_t *pSession) {
+    if (pSession->contentType.ptr == NULL) {
+        // Content type is missing: default to "text/plain".
+        pSession->contentType.ptr = malloc(sizeof strTextPlain);
+        if (pSession->contentType.ptr == NULL) {
+            return FwdLockConv_Status_OutOfMemory;
+        }
+        memcpy(pSession->contentType.ptr, strTextPlain, sizeof strTextPlain);
+        pSession->contentType.length = strlenTextPlain;
+        pSession->contentType.maxLength = strlenTextPlain;
+    }
+    if (pSession->contentTransferEncoding == FwdLockConv_ContentTransferEncoding_Undefined) {
+        // Content transfer encoding is missing: default to binary.
+        pSession->contentTransferEncoding = FwdLockConv_ContentTransferEncoding_Binary;
+    }
+    return FwdLockConv_Status_OK;
+}
+
+/**
+ * Verifies that the content type is supported.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_VerifyContentType(FwdLockConv_Session_t *pSession) {
+    FwdLockConv_Status_t status;
+    if (pSession->contentType.ptr == NULL) {
+        status = FwdLockConv_Status_ProgramError;
+    } else if (strcmp(pSession->contentType.ptr, strApplicationVndOmaDrmRightsXml) == 0 ||
+               strcmp(pSession->contentType.ptr, strApplicationVndOmaDrmContent) == 0) {
+        status = FwdLockConv_Status_UnsupportedFileFormat;
+    } else {
+        status = FwdLockConv_Status_OK;
+    }
+    return status;
+}
+
+/**
+ * Writes the header of the output file.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ * @param[out] pOutput The output from the conversion process.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_WriteHeader(FwdLockConv_Session_t *pSession,
+                                                    FwdLockConv_Output_t *pOutput) {
+    FwdLockConv_Status_t status;
+    if (pSession->contentType.length > UCHAR_MAX) {
+        status = FwdLockConv_Status_SyntaxError;
+    } else {
+        pSession->outputBufferSize = OUTPUT_BUFFER_SIZE_INCREMENT;
+        pOutput->fromConvertData.pBuffer = malloc(pSession->outputBufferSize);
+        if (pOutput->fromConvertData.pBuffer == NULL) {
+            status = FwdLockConv_Status_OutOfMemory;
+        } else {
+            size_t encryptedSessionKeyPos = TOP_HEADER_SIZE + pSession->contentType.length;
+            size_t dataSignaturePos = encryptedSessionKeyPos + pSession->encryptedSessionKeyLength;
+            size_t headerSignaturePos = dataSignaturePos + SHA1_HASH_SIZE;
+            pSession->dataOffset = headerSignaturePos + SHA1_HASH_SIZE;
+            memcpy(pSession->topHeader, topHeaderTemplate, sizeof topHeaderTemplate);
+            pSession->topHeader[CONTENT_TYPE_LENGTH_POS] =
+                    (unsigned char)pSession->contentType.length;
+            memcpy(pOutput->fromConvertData.pBuffer, pSession->topHeader, TOP_HEADER_SIZE);
+            memcpy((char *)pOutput->fromConvertData.pBuffer + TOP_HEADER_SIZE,
+                   pSession->contentType.ptr, pSession->contentType.length);
+            memcpy((char *)pOutput->fromConvertData.pBuffer + encryptedSessionKeyPos,
+                   pSession->pEncryptedSessionKey, pSession->encryptedSessionKeyLength);
+
+            // Set the signatures to all zeros for now; they will have to be updated later.
+            memset((char *)pOutput->fromConvertData.pBuffer + dataSignaturePos, 0,
+                   SHA1_HASH_SIZE);
+            memset((char *)pOutput->fromConvertData.pBuffer + headerSignaturePos, 0,
+                   SHA1_HASH_SIZE);
+
+            pOutput->fromConvertData.numBytes = pSession->dataOffset;
+            status = FwdLockConv_Status_OK;
+        }
+    }
+    return status;
+}
+
+/**
+ * Matches the MIME headers.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ * @param[in] ch A character.
+ * @param[out] pOutput The output from the conversion process.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_MatchMimeHeaders(FwdLockConv_Session_t *pSession,
+                                                         int ch,
+                                                         FwdLockConv_Output_t *pOutput) {
+    FwdLockConv_Status_t status = FwdLockConv_Status_OK;
+    switch (pSession->scannerState) {
+    case FwdLockConv_ScannerState_WantsMimeHeaderNameStart:
+        if (FwdLockConv_IsMimeHeaderNameChar(ch)) {
+            pSession->mimeHeaderName.length = 0;
+            status = FwdLockConv_StringAppend(&pSession->mimeHeaderName, tolower(ch));
+            if (status == FwdLockConv_Status_OK) {
+                pSession->scannerState = FwdLockConv_ScannerState_WantsMimeHeaderName;
+            }
+        } else if (ch == '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsMimeHeadersEnd;
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsMimeHeaderName:
+        if (FwdLockConv_IsMimeHeaderNameChar(ch)) {
+            status = FwdLockConv_StringAppend(&pSession->mimeHeaderName, tolower(ch));
+        } else if (ch == ':') {
+            status = FwdLockConv_RecognizeMimeHeaderName(pSession);
+        } else if (FwdLockConv_IsWhitespace(ch)) {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsMimeHeaderNameEnd;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsMimeHeaderNameEnd:
+        if (ch == ':') {
+            status = FwdLockConv_RecognizeMimeHeaderName(pSession);
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsContentTypeStart:
+        if (FwdLockConv_IsMimeHeaderValueChar(ch)) {
+            status = FwdLockConv_StringAppend(&pSession->contentType, tolower(ch));
+            if (status == FwdLockConv_Status_OK) {
+                pSession->scannerState = FwdLockConv_ScannerState_WantsContentType;
+            }
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsContentType:
+        if (FwdLockConv_IsMimeHeaderValueChar(ch)) {
+            status = FwdLockConv_StringAppend(&pSession->contentType, tolower(ch));
+        } else if (ch == ';') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsCR;
+        } else if (ch == '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else if (FwdLockConv_IsWhitespace(ch)) {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsMimeHeaderValueEnd;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsContentTransferEncodingStart:
+        if (ch == 'b' || ch == 'B') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_A_OR_I;
+        } else if (ch == '7' || ch == '8') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_B;
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_A_OR_I:
+        if (ch == 'i' || ch == 'I') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_N;
+        } else if (ch == 'a' || ch == 'A') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_S;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_N:
+        if (ch == 'n' || ch == 'N') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_A;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_A:
+        if (ch == 'a' || ch == 'A') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_R;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_R:
+        if (ch == 'r' || ch == 'R') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_Y;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_Y:
+        if (ch == 'y' || ch == 'Y') {
+            pSession->contentTransferEncoding = FwdLockConv_ContentTransferEncoding_Binary;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsContentTransferEncodingEnd;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_S:
+        if (ch == 's' || ch == 'S') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_E;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_E:
+        if (ch == 'e' || ch == 'E') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_6;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_6:
+        if (ch == '6') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_4;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_4:
+        if (ch == '4') {
+            pSession->contentTransferEncoding = FwdLockConv_ContentTransferEncoding_Base64;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsContentTransferEncodingEnd;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_B:
+        if (ch == 'b' || ch == 'B') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_I;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_I:
+        if (ch == 'i' || ch == 'I') {
+            pSession->scannerState = FwdLockConv_ScannerState_Wants_T;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_Wants_T:
+        if (ch == 't' || ch == 'T') {
+            pSession->contentTransferEncoding = FwdLockConv_ContentTransferEncoding_Binary;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsContentTransferEncodingEnd;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsContentTransferEncodingEnd:
+        if (ch == ';') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsCR;
+        } else if (ch == '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else if (FwdLockConv_IsWhitespace(ch)) {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsMimeHeaderValueEnd;
+        } else {
+            status = FwdLockConv_Status_UnsupportedContentTransferEncoding;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsMimeHeaderValueEnd:
+        if (ch == ';') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsCR;
+        } else if (ch == '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsCR:
+        if (ch == '\r') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsLF:
+        if (ch == '\n') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsMimeHeaderNameStart;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsMimeHeadersEnd:
+        if (ch == '\n') {
+            status = FwdLockConv_ApplyDefaults(pSession);
+            if (status == FwdLockConv_Status_OK) {
+                status = FwdLockConv_VerifyContentType(pSession);
+            }
+            if (status == FwdLockConv_Status_OK) {
+                status = FwdLockConv_WriteHeader(pSession, pOutput);
+            }
+            if (status == FwdLockConv_Status_OK) {
+                if (pSession->contentTransferEncoding ==
+                        FwdLockConv_ContentTransferEncoding_Binary) {
+                    pSession->parserState = FwdLockConv_ParserState_WantsBinaryEncodedData;
+                } else {
+                    pSession->parserState = FwdLockConv_ParserState_WantsBase64EncodedData;
+                }
+                pSession->scannerState = FwdLockConv_ScannerState_WantsByte1;
+            }
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    default:
+        status = FwdLockConv_Status_ProgramError;
+        break;
+    }
+    return status;
+}
+
+/**
+ * Increments the counter, treated as a 16-byte little-endian number, by one.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ */
+static void FwdLockConv_IncrementCounter(FwdLockConv_Session_t *pSession) {
+    size_t i = 0;
+    while ((++pSession->counter[i] == 0) && (++i < AES_BLOCK_SIZE))
+        ;
+}
+
+/**
+ * Encrypts the given character and writes it to the output buffer.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ * @param[in] ch The character to encrypt and write.
+ * @param[in,out] pOutput The output from the conversion process.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_WriteEncryptedChar(FwdLockConv_Session_t *pSession,
+                                                           unsigned char ch,
+                                                           FwdLockConv_Output_t *pOutput) {
+    if (pOutput->fromConvertData.numBytes == pSession->outputBufferSize) {
+        void *pBuffer;
+        pSession->outputBufferSize += OUTPUT_BUFFER_SIZE_INCREMENT;
+        pBuffer = realloc(pOutput->fromConvertData.pBuffer, pSession->outputBufferSize);
+        if (pBuffer == NULL) {
+            return FwdLockConv_Status_OutOfMemory;
+        }
+        pOutput->fromConvertData.pBuffer = pBuffer;
+    }
+    if (++pSession->keyStreamIndex == AES_BLOCK_SIZE) {
+        FwdLockConv_IncrementCounter(pSession);
+        pSession->keyStreamIndex = 0;
+    }
+    if (pSession->keyStreamIndex == 0) {
+        AES_encrypt(pSession->counter, pSession->keyStream, &pSession->encryptionRoundKeys);
+    }
+    ch ^= pSession->keyStream[pSession->keyStreamIndex];
+    ((unsigned char *)pOutput->fromConvertData.pBuffer)[pOutput->fromConvertData.numBytes++] = ch;
+    ++pSession->numDataBytes;
+    return FwdLockConv_Status_OK;
+}
+
+/**
+ * Matches binary-encoded content data and encrypts it, while looking out for the close delimiter.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ * @param[in] ch A character.
+ * @param[in,out] pOutput The output from the conversion process.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_MatchBinaryEncodedData(FwdLockConv_Session_t *pSession,
+                                                               int ch,
+                                                               FwdLockConv_Output_t *pOutput) {
+    FwdLockConv_Status_t status = FwdLockConv_Status_OK;
+    switch (pSession->scannerState) {
+    case FwdLockConv_ScannerState_WantsByte1:
+        if (ch != pSession->delimiter[pSession->delimiterMatchPos]) {
+            // The partial match of the delimiter turned out to be spurious. Flush the matched bytes
+            // to the output buffer and start over.
+            size_t i;
+            for (i = 0; i < pSession->delimiterMatchPos; ++i) {
+                status = FwdLockConv_WriteEncryptedChar(pSession, pSession->delimiter[i], pOutput);
+                if (status != FwdLockConv_Status_OK) {
+                    return status;
+                }
+            }
+            pSession->delimiterMatchPos = 0;
+        }
+        if (ch != pSession->delimiter[pSession->delimiterMatchPos]) {
+            // The current character isn't part of the delimiter. Write it to the output buffer.
+            status = FwdLockConv_WriteEncryptedChar(pSession, ch, pOutput);
+        } else if (++pSession->delimiterMatchPos == pSession->delimiterLength) {
+            // The entire delimiter has been matched. The only valid characters now are the "--"
+            // that complete the close delimiter (no more message parts are expected).
+            pSession->scannerState = FwdLockConv_ScannerState_WantsFirstDash;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsFirstDash:
+        if (ch == '-') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsSecondDash;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsSecondDash:
+        if (ch == '-') {
+            pSession->parserState = FwdLockConv_ParserState_Done;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    default:
+        status = FwdLockConv_Status_ProgramError;
+        break;
+    }
+    return status;
+}
+
+/**
+ * Checks whether a given character is valid in base64-encoded data.
+ *
+ * @param[in] ch The character to check.
+ *
+ * @return A Boolean value indicating whether the given character is valid in base64-encoded data.
+ */
+static int FwdLockConv_IsBase64Char(int ch) {
+    return 0 <= ch && ch <= 'z' && base64Values[ch] >= 0;
+}
+
+/**
+ * Matches base64-encoded content data and encrypts it, while looking out for the close delimiter.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ * @param[in] ch A character.
+ * @param[in,out] pOutput The output from the conversion process.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_MatchBase64EncodedData(FwdLockConv_Session_t *pSession,
+                                                               int ch,
+                                                               FwdLockConv_Output_t *pOutput) {
+    FwdLockConv_Status_t status = FwdLockConv_Status_OK;
+    switch (pSession->scannerState) {
+    case FwdLockConv_ScannerState_WantsByte1:
+    case FwdLockConv_ScannerState_WantsByte1_AfterCRLF:
+        if (FwdLockConv_IsBase64Char(ch)) {
+            pSession->ch = base64Values[ch] << 2;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsByte2;
+        } else if (ch == '\r') {
+            pSession->savedScannerState = FwdLockConv_ScannerState_WantsByte1_AfterCRLF;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else if (ch == '-') {
+            if (pSession->scannerState == FwdLockConv_ScannerState_WantsByte1_AfterCRLF) {
+                pSession->delimiterMatchPos = 3;
+                pSession->scannerState = FwdLockConv_ScannerState_WantsDelimiter;
+            } else {
+                status = FwdLockConv_Status_SyntaxError;
+            }
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsByte2:
+        if (FwdLockConv_IsBase64Char(ch)) {
+            pSession->ch |= base64Values[ch] >> 4;
+            status = FwdLockConv_WriteEncryptedChar(pSession, pSession->ch, pOutput);
+            if (status == FwdLockConv_Status_OK) {
+                pSession->ch = base64Values[ch] << 4;
+                pSession->scannerState = FwdLockConv_ScannerState_WantsByte3;
+            }
+        } else if (ch == '\r') {
+            pSession->savedScannerState = pSession->scannerState;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsByte3:
+        if (FwdLockConv_IsBase64Char(ch)) {
+            pSession->ch |= base64Values[ch] >> 2;
+            status = FwdLockConv_WriteEncryptedChar(pSession, pSession->ch, pOutput);
+            if (status == FwdLockConv_Status_OK) {
+                pSession->ch = base64Values[ch] << 6;
+                pSession->scannerState = FwdLockConv_ScannerState_WantsByte4;
+            }
+        } else if (ch == '\r') {
+            pSession->savedScannerState = pSession->scannerState;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else if (ch == '=') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsPadding;
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsByte4:
+        if (FwdLockConv_IsBase64Char(ch)) {
+            pSession->ch |= base64Values[ch];
+            status = FwdLockConv_WriteEncryptedChar(pSession, pSession->ch, pOutput);
+            if (status == FwdLockConv_Status_OK) {
+                pSession->scannerState = FwdLockConv_ScannerState_WantsByte1;
+            }
+        } else if (ch == '\r') {
+            pSession->savedScannerState = pSession->scannerState;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else if (ch == '=') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsWhitespace;
+        } else if (!FwdLockConv_IsWhitespace(ch)) {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsLF:
+        if (ch == '\n') {
+            pSession->scannerState = pSession->savedScannerState;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsPadding:
+        if (ch == '=') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsWhitespace;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsWhitespace:
+    case FwdLockConv_ScannerState_WantsWhitespace_AfterCRLF:
+        if (ch == '\r') {
+            pSession->savedScannerState = FwdLockConv_ScannerState_WantsWhitespace_AfterCRLF;
+            pSession->scannerState = FwdLockConv_ScannerState_WantsLF;
+        } else if (ch == '-') {
+            if (pSession->scannerState == FwdLockConv_ScannerState_WantsWhitespace_AfterCRLF) {
+                pSession->delimiterMatchPos = 3;
+                pSession->scannerState = FwdLockConv_ScannerState_WantsDelimiter;
+            } else {
+                status = FwdLockConv_Status_SyntaxError;
+            }
+        } else if (FwdLockConv_IsWhitespace(ch)) {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsWhitespace;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsDelimiter:
+        if (ch != pSession->delimiter[pSession->delimiterMatchPos]) {
+            status = FwdLockConv_Status_SyntaxError;
+        } else if (++pSession->delimiterMatchPos == pSession->delimiterLength) {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsFirstDash;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsFirstDash:
+        if (ch == '-') {
+            pSession->scannerState = FwdLockConv_ScannerState_WantsSecondDash;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    case FwdLockConv_ScannerState_WantsSecondDash:
+        if (ch == '-') {
+            pSession->parserState = FwdLockConv_ParserState_Done;
+        } else {
+            status = FwdLockConv_Status_SyntaxError;
+        }
+        break;
+    default:
+        status = FwdLockConv_Status_ProgramError;
+        break;
+    }
+    return status;
+}
+
+/**
+ * Pushes a single character into the converter's state machine.
+ *
+ * @param[in,out] pSession A reference to a converter session.
+ * @param[in] ch A character.
+ * @param[in,out] pOutput The output from the conversion process.
+ *
+ * @return A status code.
+ */
+static FwdLockConv_Status_t FwdLockConv_PushChar(FwdLockConv_Session_t *pSession,
+                                                 int ch,
+                                                 FwdLockConv_Output_t *pOutput) {
+    FwdLockConv_Status_t status;
+    ++pSession->numCharsConsumed;
+    switch (pSession->parserState) {
+    case FwdLockConv_ParserState_WantsOpenDelimiter:
+        status = FwdLockConv_MatchOpenDelimiter(pSession, ch);
+        break;
+    case FwdLockConv_ParserState_WantsMimeHeaders:
+        status = FwdLockConv_MatchMimeHeaders(pSession, ch, pOutput);
+        break;
+    case FwdLockConv_ParserState_WantsBinaryEncodedData:
+        status = FwdLockConv_MatchBinaryEncodedData(pSession, ch, pOutput);
+        break;
+    case FwdLockConv_ParserState_WantsBase64EncodedData:
+        status = FwdLockConv_MatchBase64EncodedData(pSession, ch, pOutput);
+        break;
+    case FwdLockConv_ParserState_Done:
+        status = FwdLockConv_Status_OK;
+        break;
+    default:
+        status = FwdLockConv_Status_ProgramError;
+        break;
+    }
+    return status;
+}
+
+FwdLockConv_Status_t FwdLockConv_OpenSession(int *pSessionId, FwdLockConv_Output_t *pOutput) {
+    FwdLockConv_Status_t status;
+    if (pSessionId == NULL || pOutput == NULL) {
+        status = FwdLockConv_Status_InvalidArgument;
+    } else {
+        *pSessionId = FwdLockConv_AcquireSession();
+        if (*pSessionId < 0) {
+            status = FwdLockConv_Status_TooManySessions;
+        } else {
+            FwdLockConv_Session_t *pSession = sessionPtrs[*pSessionId];
+            pSession->encryptedSessionKeyLength = FwdLockGlue_GetEncryptedKeyLength(KEY_SIZE);
+            if (pSession->encryptedSessionKeyLength < AES_BLOCK_SIZE) {
+                // The encrypted session key is used as the CTR-mode nonce, so it must be at least
+                // the size of a single AES block.
+                status = FwdLockConv_Status_ProgramError;
+            } else {
+                pSession->pEncryptedSessionKey = malloc(pSession->encryptedSessionKeyLength);
+                if (pSession->pEncryptedSessionKey == NULL) {
+                    status = FwdLockConv_Status_OutOfMemory;
+                } else {
+                    if (!FwdLockGlue_GetRandomNumber(pSession->sessionKey, KEY_SIZE)) {
+                        status = FwdLockConv_Status_RandomNumberGenerationFailed;
+                    } else if (!FwdLockGlue_EncryptKey(pSession->sessionKey, KEY_SIZE,
+                                                       pSession->pEncryptedSessionKey,
+                                                       pSession->encryptedSessionKeyLength)) {
+                        status = FwdLockConv_Status_KeyEncryptionFailed;
+                    } else {
+                        status = FwdLockConv_DeriveKeys(pSession);
+                    }
+                    if (status == FwdLockConv_Status_OK) {
+                        memset(pSession->sessionKey, 0, KEY_SIZE); // Zero out key data.
+                        memcpy(pSession->counter, pSession->pEncryptedSessionKey, AES_BLOCK_SIZE);
+                        pSession->parserState = FwdLockConv_ParserState_WantsOpenDelimiter;
+                        pSession->scannerState = FwdLockConv_ScannerState_WantsFirstDash;
+                        pSession->numCharsConsumed = 0;
+                        pSession->delimiterMatchPos = 0;
+                        pSession->mimeHeaderName = nullString;
+                        pSession->contentType = nullString;
+                        pSession->contentTransferEncoding =
+                                FwdLockConv_ContentTransferEncoding_Undefined;
+                        pSession->keyStreamIndex = -1;
+                        pOutput->fromConvertData.pBuffer = NULL;
+                        pOutput->fromConvertData.errorPos = INVALID_OFFSET;
+                    } else {
+                        free(pSession->pEncryptedSessionKey);
+                    }
+                }
+            }
+            if (status != FwdLockConv_Status_OK) {
+                FwdLockConv_ReleaseSession(*pSessionId);
+                *pSessionId = -1;
+            }
+        }
+    }
+    return status;
+}
+
+FwdLockConv_Status_t FwdLockConv_ConvertData(int sessionId,
+                                             const void *pBuffer,
+                                             size_t numBytes,
+                                             FwdLockConv_Output_t *pOutput) {
+    FwdLockConv_Status_t status;
+    if (!FwdLockConv_IsValidSession(sessionId) || pBuffer == NULL || pOutput == NULL) {
+        status = FwdLockConv_Status_InvalidArgument;
+    } else {
+        size_t i;
+        FwdLockConv_Session_t *pSession = sessionPtrs[sessionId];
+        pSession->dataOffset = 0;
+        pSession->numDataBytes = 0;
+        pOutput->fromConvertData.numBytes = 0;
+        status = FwdLockConv_Status_OK;
+
+        for (i = 0; i < numBytes; ++i) {
+            status = FwdLockConv_PushChar(pSession, ((char *)pBuffer)[i], pOutput);
+            if (status != FwdLockConv_Status_OK) {
+                break;
+            }
+        }
+        if (status == FwdLockConv_Status_OK) {
+            // Update the data signature.
+            HMAC_Update(&pSession->signingContext,
+                        &((unsigned char *)pOutput->fromConvertData.pBuffer)[pSession->dataOffset],
+                        pSession->numDataBytes);
+        } else if (status == FwdLockConv_Status_SyntaxError) {
+            pOutput->fromConvertData.errorPos = pSession->numCharsConsumed;
+        }
+    }
+    return status;
+}
+
+FwdLockConv_Status_t FwdLockConv_CloseSession(int sessionId, FwdLockConv_Output_t *pOutput) {
+    FwdLockConv_Status_t status;
+    if (!FwdLockConv_IsValidSession(sessionId) || pOutput == NULL) {
+        status = FwdLockConv_Status_InvalidArgument;
+    } else {
+        FwdLockConv_Session_t *pSession = sessionPtrs[sessionId];
+        free(pOutput->fromConvertData.pBuffer);
+        if (pSession->parserState != FwdLockConv_ParserState_Done) {
+            pOutput->fromCloseSession.errorPos = pSession->numCharsConsumed;
+            status = FwdLockConv_Status_SyntaxError;
+        } else {
+            // Finalize the data signature.
+            size_t signatureSize;
+            HMAC_Final(&pSession->signingContext, pOutput->fromCloseSession.signatures,
+                       &signatureSize);
+            if (signatureSize != SHA1_HASH_SIZE) {
+                status = FwdLockConv_Status_ProgramError;
+            } else {
+                // Calculate the header signature, which is a signature of the rest of the header
+                // including the data signature.
+                HMAC_Init_ex(&pSession->signingContext, NULL, KEY_SIZE, NULL, NULL);
+                HMAC_Update(&pSession->signingContext, pSession->topHeader, TOP_HEADER_SIZE);
+                HMAC_Update(&pSession->signingContext, (unsigned char *)pSession->contentType.ptr,
+                            pSession->contentType.length);
+                HMAC_Update(&pSession->signingContext, pSession->pEncryptedSessionKey,
+                            pSession->encryptedSessionKeyLength);
+                HMAC_Update(&pSession->signingContext, pOutput->fromCloseSession.signatures,
+                            signatureSize);
+                HMAC_Final(&pSession->signingContext, &pOutput->fromCloseSession.
+                           signatures[signatureSize], &signatureSize);
+                if (signatureSize != SHA1_HASH_SIZE) {
+                    status = FwdLockConv_Status_ProgramError;
+                } else {
+                    pOutput->fromCloseSession.fileOffset = TOP_HEADER_SIZE +
+                            pSession->contentType.length + pSession->encryptedSessionKeyLength;
+                    status = FwdLockConv_Status_OK;
+                }
+            }
+            pOutput->fromCloseSession.errorPos = INVALID_OFFSET;
+        }
+        free(pSession->mimeHeaderName.ptr);
+        free(pSession->contentType.ptr);
+        free(pSession->pEncryptedSessionKey);
+        HMAC_CTX_cleanup(&pSession->signingContext);
+        FwdLockConv_ReleaseSession(sessionId);
+    }
+    return status;
+}
+
+FwdLockConv_Status_t FwdLockConv_ConvertOpenFile(int inputFileDesc,
+                                                 FwdLockConv_ReadFunc_t *fpReadFunc,
+                                                 int outputFileDesc,
+                                                 FwdLockConv_WriteFunc_t *fpWriteFunc,
+                                                 FwdLockConv_LSeekFunc_t *fpLSeekFunc,
+                                                 off64_t *pErrorPos) {
+    FwdLockConv_Status_t status;
+    if (pErrorPos != NULL) {
+        *pErrorPos = INVALID_OFFSET;
+    }
+    if (fpReadFunc == NULL || fpWriteFunc == NULL || fpLSeekFunc == NULL || inputFileDesc < 0 ||
+        outputFileDesc < 0) {
+        status = FwdLockConv_Status_InvalidArgument;
+    } else {
+        char *pReadBuffer = malloc(READ_BUFFER_SIZE);
+        if (pReadBuffer == NULL) {
+            status = FwdLockConv_Status_OutOfMemory;
+        } else {
+            int sessionId;
+            FwdLockConv_Output_t output;
+            status = FwdLockConv_OpenSession(&sessionId, &output);
+            if (status == FwdLockConv_Status_OK) {
+                ssize_t numBytesRead;
+                FwdLockConv_Status_t closeStatus;
+                while ((numBytesRead =
+                        fpReadFunc(inputFileDesc, pReadBuffer, READ_BUFFER_SIZE)) > 0) {
+                    status = FwdLockConv_ConvertData(sessionId, pReadBuffer, (size_t)numBytesRead,
+                                                     &output);
+                    if (status == FwdLockConv_Status_OK) {
+                        if (output.fromConvertData.pBuffer != NULL &&
+                            output.fromConvertData.numBytes > 0) {
+                            ssize_t numBytesWritten = fpWriteFunc(outputFileDesc,
+                                                                  output.fromConvertData.pBuffer,
+                                                                  output.fromConvertData.numBytes);
+                            if (numBytesWritten != (ssize_t)output.fromConvertData.numBytes) {
+                                status = FwdLockConv_Status_FileWriteError;
+                                break;
+                            }
+                        }
+                    } else {
+                        if (status == FwdLockConv_Status_SyntaxError && pErrorPos != NULL) {
+                            *pErrorPos = output.fromConvertData.errorPos;
+                        }
+                        break;
+                    }
+                } // end while
+                if (numBytesRead < 0) {
+                    status = FwdLockConv_Status_FileReadError;
+                }
+                closeStatus = FwdLockConv_CloseSession(sessionId, &output);
+                if (status == FwdLockConv_Status_OK) {
+                    if (closeStatus != FwdLockConv_Status_OK) {
+                        if (closeStatus == FwdLockConv_Status_SyntaxError && pErrorPos != NULL) {
+                            *pErrorPos = output.fromCloseSession.errorPos;
+                        }
+                        status = closeStatus;
+                    } else if (fpLSeekFunc(outputFileDesc, output.fromCloseSession.fileOffset,
+                                           SEEK_SET) < 0) {
+                        status = FwdLockConv_Status_FileSeekError;
+                    } else if (fpWriteFunc(outputFileDesc, output.fromCloseSession.signatures,
+                                           FWD_LOCK_SIGNATURES_SIZE) != FWD_LOCK_SIGNATURES_SIZE) {
+                        status = FwdLockConv_Status_FileWriteError;
+                    }
+                }
+            }
+            free(pReadBuffer);
+        }
+    }
+    return status;
+}
+
+FwdLockConv_Status_t FwdLockConv_ConvertFile(const char *pInputFilename,
+                                             const char *pOutputFilename,
+                                             off64_t *pErrorPos) {
+    FwdLockConv_Status_t status;
+    if (pErrorPos != NULL) {
+        *pErrorPos = INVALID_OFFSET;
+    }
+    if (pInputFilename == NULL || pOutputFilename == NULL) {
+        status = FwdLockConv_Status_InvalidArgument;
+    } else {
+        int inputFileDesc = open(pInputFilename, O_RDONLY);
+        if (inputFileDesc < 0) {
+            status = FwdLockConv_Status_FileNotFound;
+        } else {
+            int outputFileDesc = open(pOutputFilename, O_CREAT | O_TRUNC | O_WRONLY,
+                                      S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+            if (outputFileDesc < 0) {
+                status = FwdLockConv_Status_FileCreationFailed;
+            } else {
+                status = FwdLockConv_ConvertOpenFile(inputFileDesc, read, outputFileDesc, write,
+                                                     lseek64, pErrorPos);
+                if (close(outputFileDesc) == 0 && status != FwdLockConv_Status_OK) {
+                    remove(pOutputFilename);
+                }
+            }
+            (void)close(inputFileDesc);
+        }
+    }
+    return status;
+}
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.h b/drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.h
new file mode 100644
index 0000000..e20c0c3
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.h
@@ -0,0 +1,282 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __FWDLOCKCONV_H__
+#define __FWDLOCKCONV_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/types.h>
+
+/**
+ * The size of the data and header signatures combined. The signatures are adjacent to each other in
+ * the produced output file.
+ */
+#define FWD_LOCK_SIGNATURES_SIZE (2 * 20)
+
+/**
+ * Data type for the output from FwdLockConv_ConvertData.
+ */
+typedef struct FwdLockConv_ConvertData_Output {
+    /// The converted data.
+    void *pBuffer;
+
+    /// The size of the converted data.
+    size_t numBytes;
+
+    /// The file position where the error occurred, in the case of a syntax error.
+    off64_t errorPos;
+} FwdLockConv_ConvertData_Output_t;
+
+/**
+ * Data type for the output from FwdLockConv_CloseSession.
+ */
+typedef struct FwdLockConv_CloseSession_Output {
+    /// The final set of signatures.
+    unsigned char signatures[FWD_LOCK_SIGNATURES_SIZE];
+
+    /// The offset in the produced output file where the signatures are located.
+    off64_t fileOffset;
+
+    /// The file position where the error occurred, in the case of a syntax error.
+    off64_t errorPos;
+} FwdLockConv_CloseSession_Output_t;
+
+/**
+ * Data type for the output from the conversion process.
+ */
+typedef union FwdLockConv_Output {
+    FwdLockConv_ConvertData_Output_t fromConvertData;
+    FwdLockConv_CloseSession_Output_t fromCloseSession;
+} FwdLockConv_Output_t;
+
+/**
+ * Data type for the Posix-style read function used by the converter in pull mode.
+ *
+ * @param[in] fileDesc The file descriptor of a file opened for reading.
+ * @param[out] pBuffer A reference to the buffer that should receive the read data.
+ * @param[in] numBytes The number of bytes to read.
+ *
+ * @return The number of bytes read.
+ * @retval -1 Failure.
+ */
+typedef ssize_t FwdLockConv_ReadFunc_t(int fileDesc, void *pBuffer, size_t numBytes);
+
+/**
+ * Data type for the Posix-style write function used by the converter in pull mode.
+ *
+ * @param[in] fileDesc The file descriptor of a file opened for writing.
+ * @param[in] pBuffer A reference to the buffer containing the data to be written.
+ * @param[in] numBytes The number of bytes to write.
+ *
+ * @return The number of bytes written.
+ * @retval -1 Failure.
+ */
+typedef ssize_t FwdLockConv_WriteFunc_t(int fileDesc, const void *pBuffer, size_t numBytes);
+
+/**
+ * Data type for the Posix-style lseek function used by the converter in pull mode.
+ *
+ * @param[in] fileDesc The file descriptor of a file opened for writing.
+ * @param[in] offset The offset with which to update the file position.
+ * @param[in] whence One of SEEK_SET, SEEK_CUR, and SEEK_END.
+ *
+ * @return The new file position.
+ * @retval ((off64_t)-1) Failure.
+ */
+typedef off64_t FwdLockConv_LSeekFunc_t(int fileDesc, off64_t offset, int whence);
+
+/**
+ * The status codes returned by the converter functions.
+ */
+typedef enum FwdLockConv_Status {
+    /// The operation was successful.
+    FwdLockConv_Status_OK = 0,
+
+    /// An actual argument to the function is invalid (a program error on the caller's part).
+    FwdLockConv_Status_InvalidArgument = 1,
+
+    /// There is not enough free dynamic memory to complete the operation.
+    FwdLockConv_Status_OutOfMemory = 2,
+
+    /// An error occurred while opening the input file.
+    FwdLockConv_Status_FileNotFound = 3,
+
+    /// An error occurred while creating the output file.
+    FwdLockConv_Status_FileCreationFailed = 4,
+
+    /// An error occurred while reading from the input file.
+    FwdLockConv_Status_FileReadError = 5,
+
+    /// An error occurred while writing to the output file.
+    FwdLockConv_Status_FileWriteError = 6,
+
+    /// An error occurred while seeking to a new file position within the output file.
+    FwdLockConv_Status_FileSeekError = 7,
+
+    /// The input file is not a syntactically correct OMA DRM v1 Forward Lock file.
+    FwdLockConv_Status_SyntaxError = 8,
+
+    /// Support for this DRM file format has been disabled in the current product configuration.
+    FwdLockConv_Status_UnsupportedFileFormat = 9,
+
+    /// The content transfer encoding is not one of "binary", "base64", "7bit", or "8bit"
+    /// (case-insensitive).
+    FwdLockConv_Status_UnsupportedContentTransferEncoding = 10,
+
+    /// The generation of a random number failed.
+    FwdLockConv_Status_RandomNumberGenerationFailed = 11,
+
+    /// Key encryption failed.
+    FwdLockConv_Status_KeyEncryptionFailed = 12,
+
+    /// The calculation of a keyed hash for integrity protection failed.
+    FwdLockConv_Status_IntegrityProtectionFailed = 13,
+
+    /// There are too many ongoing sessions for another one to be opened.
+    FwdLockConv_Status_TooManySessions = 14,
+
+    /// An unexpected error occurred.
+    FwdLockConv_Status_ProgramError = 15
+} FwdLockConv_Status_t;
+
+/**
+ * Opens a session for converting an OMA DRM v1 Forward Lock file to the internal Forward Lock file
+ * format.
+ *
+ * @param[out] pSessionId The session ID.
+ * @param[out] pOutput The output from the conversion process (initialized).
+ *
+ * @return A status code.
+ * @retval FwdLockConv_Status_OK
+ * @retval FwdLockConv_Status_InvalidArgument
+ * @retval FwdLockConv_Status_TooManySessions
+ */
+FwdLockConv_Status_t FwdLockConv_OpenSession(int *pSessionId, FwdLockConv_Output_t *pOutput);
+
+/**
+ * Supplies the converter with data to convert. The caller is expected to write the converted data
+ * to file. Can be called an arbitrary number of times.
+ *
+ * @param[in] sessionId The session ID.
+ * @param[in] pBuffer A reference to a buffer containing the data to convert.
+ * @param[in] numBytes The number of bytes to convert.
+ * @param[in,out] pOutput The output from the conversion process (allocated/reallocated).
+ *
+ * @return A status code.
+ * @retval FwdLockConv_Status_OK
+ * @retval FwdLockConv_Status_InvalidArgument
+ * @retval FwdLockConv_Status_OutOfMemory
+ * @retval FwdLockConv_Status_SyntaxError
+ * @retval FwdLockConv_Status_UnsupportedFileFormat
+ * @retval FwdLockConv_Status_UnsupportedContentTransferEncoding
+ * @retval FwdLockConv_Status_RandomNumberGenerationFailed
+ * @retval FwdLockConv_Status_KeyEncryptionFailed
+ * @retval FwdLockConv_Status_DataEncryptionFailed
+ */
+FwdLockConv_Status_t FwdLockConv_ConvertData(int sessionId,
+                                             const void *pBuffer,
+                                             size_t numBytes,
+                                             FwdLockConv_Output_t *pOutput);
+
+/**
+ * Closes a session for converting an OMA DRM v1 Forward Lock file to the internal Forward Lock
+ * file format. The caller must update the produced output file at the indicated file offset with
+ * the final set of signatures.
+ *
+ * @param[in] sessionId The session ID.
+ * @param[in,out] pOutput The output from the conversion process (deallocated and overwritten).
+ *
+ * @return A status code.
+ * @retval FwdLockConv_Status_OK
+ * @retval FwdLockConv_Status_InvalidArgument
+ * @retval FwdLockConv_Status_OutOfMemory
+ * @retval FwdLockConv_Status_IntegrityProtectionFailed
+ */
+FwdLockConv_Status_t FwdLockConv_CloseSession(int sessionId, FwdLockConv_Output_t *pOutput);
+
+/**
+ * Converts an open OMA DRM v1 Forward Lock file to the internal Forward Lock file format in pull
+ * mode.
+ *
+ * @param[in] inputFileDesc The file descriptor of the open input file.
+ * @param[in] fpReadFunc A reference to a read function that can operate on the open input file.
+ * @param[in] outputFileDesc The file descriptor of the open output file.
+ * @param[in] fpWriteFunc A reference to a write function that can operate on the open output file.
+ * @param[in] fpLSeekFunc A reference to an lseek function that can operate on the open output file.
+ * @param[out] pErrorPos
+ *   The file position where the error occurred, in the case of a syntax error. May be NULL.
+ *
+ * @return A status code.
+ * @retval FwdLockConv_Status_OK
+ * @retval FwdLockConv_Status_InvalidArgument
+ * @retval FwdLockConv_Status_OutOfMemory
+ * @retval FwdLockConv_Status_FileReadError
+ * @retval FwdLockConv_Status_FileWriteError
+ * @retval FwdLockConv_Status_FileSeekError
+ * @retval FwdLockConv_Status_SyntaxError
+ * @retval FwdLockConv_Status_UnsupportedFileFormat
+ * @retval FwdLockConv_Status_UnsupportedContentTransferEncoding
+ * @retval FwdLockConv_Status_RandomNumberGenerationFailed
+ * @retval FwdLockConv_Status_KeyEncryptionFailed
+ * @retval FwdLockConv_Status_DataEncryptionFailed
+ * @retval FwdLockConv_Status_IntegrityProtectionFailed
+ * @retval FwdLockConv_Status_TooManySessions
+ */
+FwdLockConv_Status_t FwdLockConv_ConvertOpenFile(int inputFileDesc,
+                                                 FwdLockConv_ReadFunc_t *fpReadFunc,
+                                                 int outputFileDesc,
+                                                 FwdLockConv_WriteFunc_t *fpWriteFunc,
+                                                 FwdLockConv_LSeekFunc_t *fpLSeekFunc,
+                                                 off64_t *pErrorPos);
+
+/**
+ * Converts an OMA DRM v1 Forward Lock file to the internal Forward Lock file format in pull mode.
+ *
+ * @param[in] pInputFilename A reference to the input filename.
+ * @param[in] pOutputFilename A reference to the output filename.
+ * @param[out] pErrorPos
+ *   The file position where the error occurred, in the case of a syntax error. May be NULL.
+ *
+ * @return A status code.
+ * @retval FwdLockConv_Status_OK
+ * @retval FwdLockConv_Status_InvalidArgument
+ * @retval FwdLockConv_Status_OutOfMemory
+ * @retval FwdLockConv_Status_FileNotFound
+ * @retval FwdLockConv_Status_FileCreationFailed
+ * @retval FwdLockConv_Status_FileReadError
+ * @retval FwdLockConv_Status_FileWriteError
+ * @retval FwdLockConv_Status_FileSeekError
+ * @retval FwdLockConv_Status_SyntaxError
+ * @retval FwdLockConv_Status_UnsupportedFileFormat
+ * @retval FwdLockConv_Status_UnsupportedContentTransferEncoding
+ * @retval FwdLockConv_Status_RandomNumberGenerationFailed
+ * @retval FwdLockConv_Status_KeyEncryptionFailed
+ * @retval FwdLockConv_Status_DataEncryptionFailed
+ * @retval FwdLockConv_Status_IntegrityProtectionFailed
+ * @retval FwdLockConv_Status_TooManySessions
+ */
+FwdLockConv_Status_t FwdLockConv_ConvertFile(const char *pInputFilename,
+                                             const char *pOutputFilename,
+                                             off64_t *pErrorPos);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __FWDLOCKCONV_H__
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/Android.mk b/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/Android.mk
new file mode 100644
index 0000000..b625edf
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/Android.mk
@@ -0,0 +1,37 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+    FwdLockFile.c
+
+LOCAL_C_INCLUDES := \
+    frameworks/base/drm/libdrmframework/plugins/forward-lock/internal-format/common \
+    external/openssl/include
+
+LOCAL_SHARED_LIBRARIES := libcrypto
+
+LOCAL_WHOLE_STATIC_LIBRARIES := libfwdlock-common
+
+LOCAL_STATIC_LIBRARIES := libfwdlock-common
+
+LOCAL_MODULE := libfwdlock-decoder
+
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/FwdLockFile.c b/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/FwdLockFile.c
new file mode 100644
index 0000000..98284e72
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/FwdLockFile.c
@@ -0,0 +1,447 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <openssl/aes.h>
+#include <openssl/hmac.h>
+
+#include "FwdLockFile.h"
+#include "FwdLockGlue.h"
+
+#define TRUE 1
+#define FALSE 0
+
+#define INVALID_OFFSET ((off64_t)-1)
+
+#define INVALID_BLOCK_INDEX ((uint64_t)-1)
+
+#define MAX_NUM_SESSIONS 128
+
+#define KEY_SIZE AES_BLOCK_SIZE
+#define KEY_SIZE_IN_BITS (KEY_SIZE * 8)
+
+#define SHA1_HASH_SIZE 20
+#define SHA1_BLOCK_SIZE 64
+
+#define FWD_LOCK_VERSION 0
+#define FWD_LOCK_SUBFORMAT 0
+#define USAGE_RESTRICTION_FLAGS 0
+#define CONTENT_TYPE_LENGTH_POS 7
+#define TOP_HEADER_SIZE 8
+
+#define SIG_CALC_BUFFER_SIZE (16 * SHA1_BLOCK_SIZE)
+
+/**
+ * Data type for the per-file state information needed by the decoder.
+ */
+typedef struct FwdLockFile_Session {
+    int fileDesc;
+    unsigned char topHeader[TOP_HEADER_SIZE];
+    char *pContentType;
+    size_t contentTypeLength;
+    void *pEncryptedSessionKey;
+    size_t encryptedSessionKeyLength;
+    unsigned char dataSignature[SHA1_HASH_SIZE];
+    unsigned char headerSignature[SHA1_HASH_SIZE];
+    off64_t dataOffset;
+    off64_t filePos;
+    AES_KEY encryptionRoundKeys;
+    HMAC_CTX signingContext;
+    unsigned char keyStream[AES_BLOCK_SIZE];
+    uint64_t blockIndex;
+} FwdLockFile_Session_t;
+
+static FwdLockFile_Session_t *sessionPtrs[MAX_NUM_SESSIONS] = { NULL };
+
+static pthread_mutex_t sessionAcquisitionMutex = PTHREAD_MUTEX_INITIALIZER;
+
+static const unsigned char topHeaderTemplate[] =
+    { 'F', 'W', 'L', 'K', FWD_LOCK_VERSION, FWD_LOCK_SUBFORMAT, USAGE_RESTRICTION_FLAGS };
+
+/**
+ * Acquires an unused file session for the given file descriptor.
+ *
+ * @param[in] fileDesc A file descriptor.
+ *
+ * @return A session ID.
+ */
+static int FwdLockFile_AcquireSession(int fileDesc) {
+    int sessionId = -1;
+    if (fileDesc < 0) {
+        errno = EBADF;
+    } else {
+        int i;
+        pthread_mutex_lock(&sessionAcquisitionMutex);
+        for (i = 0; i < MAX_NUM_SESSIONS; ++i) {
+            int candidateSessionId = (fileDesc + i) % MAX_NUM_SESSIONS;
+            if (sessionPtrs[candidateSessionId] == NULL) {
+                sessionPtrs[candidateSessionId] = malloc(sizeof **sessionPtrs);
+                if (sessionPtrs[candidateSessionId] != NULL) {
+                    sessionPtrs[candidateSessionId]->fileDesc = fileDesc;
+                    sessionPtrs[candidateSessionId]->pContentType = NULL;
+                    sessionPtrs[candidateSessionId]->pEncryptedSessionKey = NULL;
+                    sessionId = candidateSessionId;
+                }
+                break;
+            }
+        }
+        pthread_mutex_unlock(&sessionAcquisitionMutex);
+        if (i == MAX_NUM_SESSIONS) {
+            errno = ENFILE;
+        }
+    }
+    return sessionId;
+}
+
+/**
+ * Finds the file session associated to the given file descriptor.
+ *
+ * @param[in] fileDesc A file descriptor.
+ *
+ * @return A session ID.
+ */
+static int FwdLockFile_FindSession(int fileDesc) {
+    int sessionId = -1;
+    if (fileDesc < 0) {
+        errno = EBADF;
+    } else {
+        int i;
+        pthread_mutex_lock(&sessionAcquisitionMutex);
+        for (i = 0; i < MAX_NUM_SESSIONS; ++i) {
+            int candidateSessionId = (fileDesc + i) % MAX_NUM_SESSIONS;
+            if (sessionPtrs[candidateSessionId] != NULL &&
+                sessionPtrs[candidateSessionId]->fileDesc == fileDesc) {
+                sessionId = candidateSessionId;
+                break;
+            }
+        }
+        pthread_mutex_unlock(&sessionAcquisitionMutex);
+        if (i == MAX_NUM_SESSIONS) {
+            errno = EBADF;
+        }
+    }
+    return sessionId;
+}
+
+/**
+ * Releases a file session.
+ *
+ * @param[in] sessionID A session ID.
+ */
+static void FwdLockFile_ReleaseSession(int sessionId) {
+    pthread_mutex_lock(&sessionAcquisitionMutex);
+    assert(0 <= sessionId && sessionId < MAX_NUM_SESSIONS && sessionPtrs[sessionId] != NULL);
+    free(sessionPtrs[sessionId]->pContentType);
+    free(sessionPtrs[sessionId]->pEncryptedSessionKey);
+    memset(sessionPtrs[sessionId], 0, sizeof *sessionPtrs[sessionId]); // Zero out key data.
+    free(sessionPtrs[sessionId]);
+    sessionPtrs[sessionId] = NULL;
+    pthread_mutex_unlock(&sessionAcquisitionMutex);
+}
+
+/**
+ * Derives keys for encryption and signing from the encrypted session key.
+ *
+ * @param[in,out] pSession A reference to a file session.
+ *
+ * @return A Boolean value indicating whether key derivation was successful.
+ */
+static int FwdLockFile_DeriveKeys(FwdLockFile_Session_t * pSession) {
+    int result;
+    struct FwdLockFile_DeriveKeys_Data {
+        AES_KEY sessionRoundKeys;
+        unsigned char value[KEY_SIZE];
+        unsigned char key[KEY_SIZE];
+    } *pData = malloc(sizeof *pData);
+    if (pData == NULL) {
+        result = FALSE;
+    } else {
+        result = FwdLockGlue_DecryptKey(pSession->pEncryptedSessionKey,
+                                        pSession->encryptedSessionKeyLength, pData->key, KEY_SIZE);
+        if (result) {
+            if (AES_set_encrypt_key(pData->key, KEY_SIZE_IN_BITS, &pData->sessionRoundKeys) != 0) {
+                result = FALSE;
+            } else {
+                // Encrypt the 16-byte value {0, 0, ..., 0} to produce the encryption key.
+                memset(pData->value, 0, KEY_SIZE);
+                AES_encrypt(pData->value, pData->key, &pData->sessionRoundKeys);
+                if (AES_set_encrypt_key(pData->key, KEY_SIZE_IN_BITS,
+                                        &pSession->encryptionRoundKeys) != 0) {
+                    result = FALSE;
+                } else {
+                    // Encrypt the 16-byte value {1, 0, ..., 0} to produce the signing key.
+                    ++pData->value[0];
+                    AES_encrypt(pData->value, pData->key, &pData->sessionRoundKeys);
+                    HMAC_CTX_init(&pSession->signingContext);
+                    HMAC_Init_ex(&pSession->signingContext, pData->key, KEY_SIZE, EVP_sha1(), NULL);
+                }
+            }
+        }
+        if (!result) {
+            errno = ENOSYS;
+        }
+        memset(pData, 0, sizeof pData); // Zero out key data.
+        free(pData);
+    }
+    return result;
+}
+
+/**
+ * Calculates the counter, treated as a 16-byte little-endian number, used to generate the keystream
+ * for the given block.
+ *
+ * @param[in] pNonce A reference to the nonce.
+ * @param[in] blockIndex The index number of the block.
+ * @param[out] pCounter A reference to the counter.
+ */
+static void FwdLockFile_CalculateCounter(const unsigned char *pNonce,
+                                         uint64_t blockIndex,
+                                         unsigned char *pCounter) {
+    unsigned char carry = 0;
+    size_t i = 0;
+    for (; i < sizeof blockIndex; ++i) {
+        unsigned char part = pNonce[i] + (unsigned char)(blockIndex >> (i * CHAR_BIT));
+        pCounter[i] = part + carry;
+        carry = (part < pNonce[i] || pCounter[i] < part) ? 1 : 0;
+    }
+    for (; i < AES_BLOCK_SIZE; ++i) {
+        pCounter[i] = pNonce[i] + carry;
+        carry = (pCounter[i] < pNonce[i]) ? 1 : 0;
+    }
+}
+
+/**
+ * Decrypts the byte at the current file position using AES-128-CTR. In CTR (or "counter") mode,
+ * encryption and decryption are performed using the same algorithm.
+ *
+ * @param[in,out] pSession A reference to a file session.
+ * @param[in] pByte The byte to decrypt.
+ */
+void FwdLockFile_DecryptByte(FwdLockFile_Session_t * pSession, unsigned char *pByte) {
+    uint64_t blockIndex = pSession->filePos / AES_BLOCK_SIZE;
+    uint64_t blockOffset = pSession->filePos % AES_BLOCK_SIZE;
+    if (blockIndex != pSession->blockIndex) {
+        // The first 16 bytes of the encrypted session key is used as the nonce.
+        unsigned char counter[AES_BLOCK_SIZE];
+        FwdLockFile_CalculateCounter(pSession->pEncryptedSessionKey, blockIndex, counter);
+        AES_encrypt(counter, pSession->keyStream, &pSession->encryptionRoundKeys);
+        pSession->blockIndex = blockIndex;
+    }
+    *pByte ^= pSession->keyStream[blockOffset];
+}
+
+int FwdLockFile_attach(int fileDesc) {
+    int sessionId = FwdLockFile_AcquireSession(fileDesc);
+    if (sessionId >= 0) {
+        FwdLockFile_Session_t *pSession = sessionPtrs[sessionId];
+        int isSuccess = FALSE;
+        if (read(fileDesc, pSession->topHeader, TOP_HEADER_SIZE) == TOP_HEADER_SIZE &&
+                memcmp(pSession->topHeader, topHeaderTemplate, sizeof topHeaderTemplate) == 0) {
+            pSession->contentTypeLength = pSession->topHeader[CONTENT_TYPE_LENGTH_POS];
+            assert(pSession->contentTypeLength <= UCHAR_MAX); // Untaint scalar for code checkers.
+            pSession->pContentType = malloc(pSession->contentTypeLength + 1);
+            if (pSession->pContentType != NULL &&
+                    read(fileDesc, pSession->pContentType, pSession->contentTypeLength) ==
+                            (ssize_t)pSession->contentTypeLength) {
+                pSession->pContentType[pSession->contentTypeLength] = '\0';
+                pSession->encryptedSessionKeyLength = FwdLockGlue_GetEncryptedKeyLength(KEY_SIZE);
+                pSession->pEncryptedSessionKey = malloc(pSession->encryptedSessionKeyLength);
+                if (pSession->pEncryptedSessionKey != NULL &&
+                        read(fileDesc, pSession->pEncryptedSessionKey,
+                             pSession->encryptedSessionKeyLength) ==
+                                (ssize_t)pSession->encryptedSessionKeyLength &&
+                        read(fileDesc, pSession->dataSignature, SHA1_HASH_SIZE) ==
+                                SHA1_HASH_SIZE &&
+                        read(fileDesc, pSession->headerSignature, SHA1_HASH_SIZE) ==
+                                SHA1_HASH_SIZE) {
+                    isSuccess = FwdLockFile_DeriveKeys(pSession);
+                }
+            }
+        }
+        if (isSuccess) {
+            pSession->dataOffset = pSession->contentTypeLength +
+                    pSession->encryptedSessionKeyLength + TOP_HEADER_SIZE + 2 * SHA1_HASH_SIZE;
+            pSession->filePos = 0;
+            pSession->blockIndex = INVALID_BLOCK_INDEX;
+        } else {
+            FwdLockFile_ReleaseSession(sessionId);
+            sessionId = -1;
+        }
+    }
+    return (sessionId >= 0) ? 0 : -1;
+}
+
+int FwdLockFile_open(const char *pFilename) {
+    int fileDesc = open(pFilename, O_RDONLY);
+    if (fileDesc >= 0 && FwdLockFile_attach(fileDesc) < 0) {
+        (void)close(fileDesc);
+        fileDesc = -1;
+    }
+    return fileDesc;
+}
+
+ssize_t FwdLockFile_read(int fileDesc, void *pBuffer, size_t numBytes) {
+    ssize_t numBytesRead;
+    int sessionId = FwdLockFile_FindSession(fileDesc);
+    if (sessionId < 0) {
+        numBytesRead = -1;
+    } else {
+        FwdLockFile_Session_t *pSession = sessionPtrs[sessionId];
+        ssize_t i;
+        numBytesRead = read(pSession->fileDesc, pBuffer, numBytes);
+        for (i = 0; i < numBytesRead; ++i) {
+            FwdLockFile_DecryptByte(pSession, &((unsigned char *)pBuffer)[i]);
+            ++pSession->filePos;
+        }
+    }
+    return numBytesRead;
+}
+
+off64_t FwdLockFile_lseek(int fileDesc, off64_t offset, int whence) {
+    off64_t newFilePos;
+    int sessionId = FwdLockFile_FindSession(fileDesc);
+    if (sessionId < 0) {
+        newFilePos = INVALID_OFFSET;
+    } else {
+        FwdLockFile_Session_t *pSession = sessionPtrs[sessionId];
+        switch (whence) {
+        case SEEK_SET:
+            newFilePos = lseek64(pSession->fileDesc, pSession->dataOffset + offset, whence);
+            break;
+        case SEEK_CUR:
+        case SEEK_END:
+            newFilePos = lseek64(pSession->fileDesc, offset, whence);
+            break;
+        default:
+            errno = EINVAL;
+            newFilePos = INVALID_OFFSET;
+            break;
+        }
+        if (newFilePos != INVALID_OFFSET) {
+            if (newFilePos < pSession->dataOffset) {
+                // The new file position is illegal for an internal Forward Lock file. Restore the
+                // original file position.
+                (void)lseek64(pSession->fileDesc, pSession->dataOffset + pSession->filePos,
+                              SEEK_SET);
+                errno = EINVAL;
+                newFilePos = INVALID_OFFSET;
+            } else {
+                // The return value should be the file position that lseek64() would have returned
+                // for the embedded content file.
+                pSession->filePos = newFilePos - pSession->dataOffset;
+                newFilePos = pSession->filePos;
+            }
+        }
+    }
+    return newFilePos;
+}
+
+int FwdLockFile_detach(int fileDesc) {
+    int sessionId = FwdLockFile_FindSession(fileDesc);
+    if (sessionId < 0) {
+        return -1;
+    }
+    HMAC_CTX_cleanup(&sessionPtrs[sessionId]->signingContext);
+    FwdLockFile_ReleaseSession(sessionId);
+    return 0;
+}
+
+int FwdLockFile_close(int fileDesc) {
+    return (FwdLockFile_detach(fileDesc) == 0) ? close(fileDesc) : -1;
+}
+
+int FwdLockFile_CheckDataIntegrity(int fileDesc) {
+    int result;
+    int sessionId = FwdLockFile_FindSession(fileDesc);
+    if (sessionId < 0) {
+        result = FALSE;
+    } else {
+        struct FwdLockFile_CheckDataIntegrity_Data {
+            unsigned char signature[SHA1_HASH_SIZE];
+            unsigned char buffer[SIG_CALC_BUFFER_SIZE];
+        } *pData = malloc(sizeof *pData);
+        if (pData == NULL) {
+            result = FALSE;
+        } else {
+            FwdLockFile_Session_t *pSession = sessionPtrs[sessionId];
+            if (lseek64(pSession->fileDesc, pSession->dataOffset, SEEK_SET) !=
+                    pSession->dataOffset) {
+                result = FALSE;
+            } else {
+                ssize_t numBytesRead;
+                size_t signatureSize = SHA1_HASH_SIZE;
+                while ((numBytesRead =
+                        read(pSession->fileDesc, pData->buffer, SIG_CALC_BUFFER_SIZE)) > 0) {
+                    HMAC_Update(&pSession->signingContext, pData->buffer, (size_t)numBytesRead);
+                }
+                if (numBytesRead < 0) {
+                    result = FALSE;
+                } else {
+                    HMAC_Final(&pSession->signingContext, pData->signature, &signatureSize);
+                    assert(signatureSize == SHA1_HASH_SIZE);
+                    result = memcmp(pData->signature, pSession->dataSignature, signatureSize) == 0;
+                }
+                HMAC_Init_ex(&pSession->signingContext, NULL, KEY_SIZE, NULL, NULL);
+                (void)lseek64(pSession->fileDesc, pSession->dataOffset + pSession->filePos,
+                              SEEK_SET);
+            }
+            free(pData);
+        }
+    }
+    return result;
+}
+
+int FwdLockFile_CheckHeaderIntegrity(int fileDesc) {
+    int result;
+    int sessionId = FwdLockFile_FindSession(fileDesc);
+    if (sessionId < 0) {
+        result = FALSE;
+    } else {
+        FwdLockFile_Session_t *pSession = sessionPtrs[sessionId];
+        unsigned char signature[SHA1_HASH_SIZE];
+        size_t signatureSize = SHA1_HASH_SIZE;
+        HMAC_Update(&pSession->signingContext, pSession->topHeader, TOP_HEADER_SIZE);
+        HMAC_Update(&pSession->signingContext, (unsigned char *)pSession->pContentType,
+                    pSession->contentTypeLength);
+        HMAC_Update(&pSession->signingContext, pSession->pEncryptedSessionKey,
+                    pSession->encryptedSessionKeyLength);
+        HMAC_Update(&pSession->signingContext, pSession->dataSignature, signatureSize);
+        HMAC_Final(&pSession->signingContext, signature, &signatureSize);
+        assert(signatureSize == SHA1_HASH_SIZE);
+        result = memcmp(signature, pSession->headerSignature, signatureSize) == 0;
+        HMAC_Init_ex(&pSession->signingContext, NULL, KEY_SIZE, NULL, NULL);
+    }
+    return result;
+}
+
+int FwdLockFile_CheckIntegrity(int fileDesc) {
+    return FwdLockFile_CheckHeaderIntegrity(fileDesc) && FwdLockFile_CheckDataIntegrity(fileDesc);
+}
+
+const char *FwdLockFile_GetContentType(int fileDesc) {
+    int sessionId = FwdLockFile_FindSession(fileDesc);
+    if (sessionId < 0) {
+        return NULL;
+    }
+    return sessionPtrs[sessionId]->pContentType;
+}
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/FwdLockFile.h b/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/FwdLockFile.h
new file mode 100644
index 0000000..fc64050
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/FwdLockFile.h
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __FWDLOCKFILE_H__
+#define __FWDLOCKFILE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/types.h>
+
+/**
+ * Attaches to an open Forward Lock file. The file position is assumed to be at the beginning of the
+ * file.
+ *
+ * @param[in] fileDesc The file descriptor of an open Forward Lock file.
+ *
+ * @return A status code.
+ * @retval 0 Success.
+ * @retval -1 Failure.
+ */
+int FwdLockFile_attach(int fileDesc);
+
+/**
+ * Opens a Forward Lock file for reading.
+ *
+ * @param[in] pFilename A reference to a filename.
+ *
+ * @return A file descriptor.
+ * @retval -1 Failure.
+ */
+int FwdLockFile_open(const char *pFilename);
+
+/**
+ * Reads the specified number of bytes from an open Forward Lock file.
+ *
+ * @param[in] fileDesc The file descriptor of an open Forward Lock file.
+ * @param[out] pBuffer A reference to the buffer that should receive the read data.
+ * @param[in] numBytes The number of bytes to read.
+ *
+ * @return The number of bytes read.
+ * @retval -1 Failure.
+ */
+ssize_t FwdLockFile_read(int fileDesc, void *pBuffer, size_t numBytes);
+
+/**
+ * Updates the file position within an open Forward Lock file.
+ *
+ * @param[in] fileDesc The file descriptor of an open Forward Lock file.
+ * @param[in] offset The offset with which to update the file position.
+ * @param[in] whence One of SEEK_SET, SEEK_CUR, and SEEK_END.
+ *
+ * @return The new file position.
+ * @retval ((off64_t)-1) Failure.
+ */
+off64_t FwdLockFile_lseek(int fileDesc, off64_t offset, int whence);
+
+/**
+ * Detaches from an open Forward Lock file.
+ *
+ * @param[in] fileDesc The file descriptor of an open Forward Lock file.
+ *
+ * @return A status code.
+ * @retval 0 Success.
+ * @retval -1 Failure.
+ */
+int FwdLockFile_detach(int fileDesc);
+
+/**
+ * Closes an open Forward Lock file.
+ *
+ * @param[in] fileDesc The file descriptor of an open Forward Lock file.
+ *
+ * @return A status code.
+ * @retval 0 Success.
+ * @retval -1 Failure.
+ */
+int FwdLockFile_close(int fileDesc);
+
+/**
+ * Checks the data integrity of an open Forward Lock file.
+ *
+ * @param[in] fileDesc The file descriptor of an open Forward Lock file.
+ *
+ * @return A Boolean value indicating whether the integrity check was successful.
+ */
+int FwdLockFile_CheckDataIntegrity(int fileDesc);
+
+/**
+ * Checks the header integrity of an open Forward Lock file.
+ *
+ * @param[in] fileDesc The file descriptor of an open Forward Lock file.
+ *
+ * @return A Boolean value indicating whether the integrity check was successful.
+ */
+int FwdLockFile_CheckHeaderIntegrity(int fileDesc);
+
+/**
+ * Checks both the data and header integrity of an open Forward Lock file.
+ *
+ * @param[in] fileDesc The file descriptor of an open Forward Lock file.
+ *
+ * @return A Boolean value indicating whether the integrity check was successful.
+ */
+int FwdLockFile_CheckIntegrity(int fileDesc);
+
+/**
+ * Returns the content type of an open Forward Lock file.
+ *
+ * @param[in] fileDesc The file descriptor of an open Forward Lock file.
+ *
+ * @return
+ *   A reference to the content type. The reference remains valid as long as the file is kept open.
+ */
+const char *FwdLockFile_GetContentType(int fileDesc);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __FWDLOCKFILE_H__
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/doc/FwdLock.html b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/FwdLock.html
new file mode 100755
index 0000000..8f95cd2
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/FwdLock.html
@@ -0,0 +1,1039 @@
+<html>
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=Generator content="Microsoft Word 12 (filtered)">
+<title>Forward Lock Converter and Decoder</title>
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+	{font-family:SimSun;
+	panose-1:2 1 6 0 3 1 1 1 1 1;}
+@font-face
+	{font-family:"Cambria Math";
+	panose-1:2 4 5 3 5 4 6 3 2 4;}
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;}
+@font-face
+	{font-family:"Lucida Console","DejaVu Sans Mono";
+	panose-1:2 11 6 9 4 5 4 2 2 4;}
+@font-face
+	{font-family:"\@SimSun";
+	panose-1:2 1 6 0 3 1 1 1 1 1;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman","serif";}
+h1
+	{margin-right:0cm;
+	margin-left:21.6pt;
+	text-indent:-21.6pt;
+	page-break-after:avoid;
+	font-size:16.0pt;
+	font-family:"Arial","sans-serif";}
+h2
+	{margin-top:12.0pt;
+	margin-right:0cm;
+	margin-bottom:3.0pt;
+	margin-left:28.8pt;
+	text-indent:-28.8pt;
+	page-break-after:avoid;
+	font-size:14.0pt;
+	font-family:"Arial","sans-serif";
+	font-style:italic;}
+h3
+	{margin-top:12.0pt;
+	margin-right:0cm;
+	margin-bottom:3.0pt;
+	margin-left:36.0pt;
+	text-indent:-36.0pt;
+	page-break-after:avoid;
+	font-size:13.0pt;
+	font-family:"Arial","sans-serif";}
+h4
+	{margin-top:12.0pt;
+	margin-right:0cm;
+	margin-bottom:3.0pt;
+	margin-left:43.2pt;
+	text-indent:-43.2pt;
+	page-break-after:avoid;
+	font-size:14.0pt;
+	font-family:"Times New Roman","serif";}
+h5
+	{margin-top:12.0pt;
+	margin-right:0cm;
+	margin-bottom:3.0pt;
+	margin-left:50.4pt;
+	text-indent:-50.4pt;
+	font-size:13.0pt;
+	font-family:"Times New Roman","serif";
+	font-style:italic;}
+h6
+	{margin-top:12.0pt;
+	margin-right:0cm;
+	margin-bottom:3.0pt;
+	margin-left:57.6pt;
+	text-indent:-57.6pt;
+	font-size:11.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
+	{margin-top:12.0pt;
+	margin-right:0cm;
+	margin-bottom:3.0pt;
+	margin-left:64.8pt;
+	text-indent:-64.8pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
+	{margin-top:12.0pt;
+	margin-right:0cm;
+	margin-bottom:3.0pt;
+	margin-left:72.0pt;
+	text-indent:-72.0pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman","serif";
+	font-style:italic;}
+p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
+	{margin-top:12.0pt;
+	margin-right:0cm;
+	margin-bottom:3.0pt;
+	margin-left:79.2pt;
+	text-indent:-79.2pt;
+	font-size:11.0pt;
+	font-family:"Arial","sans-serif";}
+p.MsoToc1, li.MsoToc1, div.MsoToc1
+	{margin-top:6.0pt;
+	margin-right:0cm;
+	margin-bottom:6.0pt;
+	margin-left:0cm;
+	line-height:150%;
+	font-size:10.5pt;
+	font-family:"Times New Roman","serif";
+	text-transform:uppercase;
+	font-weight:bold;}
+p.MsoToc2, li.MsoToc2, div.MsoToc2
+	{margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:12.0pt;
+	margin-bottom:.0001pt;
+	line-height:150%;
+	font-size:10.5pt;
+	font-family:"Times New Roman","serif";
+	font-variant:small-caps;}
+p.MsoToc3, li.MsoToc3, div.MsoToc3
+	{margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:24.0pt;
+	margin-bottom:.0001pt;
+	line-height:150%;
+	font-size:10.5pt;
+	font-family:"Times New Roman","serif";
+	font-style:italic;}
+p.MsoToc4, li.MsoToc4, div.MsoToc4
+	{margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:36.0pt;
+	margin-bottom:.0001pt;
+	font-size:9.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoToc5, li.MsoToc5, div.MsoToc5
+	{margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:48.0pt;
+	margin-bottom:.0001pt;
+	font-size:9.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoToc6, li.MsoToc6, div.MsoToc6
+	{margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:60.0pt;
+	margin-bottom:.0001pt;
+	font-size:9.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoToc7, li.MsoToc7, div.MsoToc7
+	{margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:72.0pt;
+	margin-bottom:.0001pt;
+	font-size:9.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoToc8, li.MsoToc8, div.MsoToc8
+	{margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:84.0pt;
+	margin-bottom:.0001pt;
+	font-size:9.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoToc9, li.MsoToc9, div.MsoToc9
+	{margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:0cm;
+	margin-left:96.0pt;
+	margin-bottom:.0001pt;
+	font-size:9.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	font-size:10.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoHeader, li.MsoHeader, div.MsoHeader
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoFooter, li.MsoFooter, div.MsoFooter
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman","serif";}
+p.MsoCaption, li.MsoCaption, div.MsoCaption
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	font-size:11.0pt;
+	font-family:"Times New Roman","serif";
+	font-weight:bold;}
+span.MsoFootnoteReference
+	{vertical-align:super;}
+p.MsoTitle, li.MsoTitle, div.MsoTitle
+	{margin-top:12.0pt;
+	margin-right:0cm;
+	margin-bottom:120.0pt;
+	margin-left:0cm;
+	text-align:center;
+	font-size:16.0pt;
+	font-family:"Arial","sans-serif";
+	font-weight:bold;}
+p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
+	{mso-style-link:"Body Text Char";
+	margin-top:0cm;
+	margin-right:0cm;
+	margin-bottom:6.0pt;
+	margin-left:0cm;
+	font-size:12.0pt;
+	font-family:"Times New Roman","serif";}
+a:link, span.MsoHyperlink
+	{color:blue;
+	text-decoration:underline;}
+a:visited, span.MsoHyperlinkFollowed
+	{color:purple;
+	text-decoration:underline;}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	font-size:8.0pt;
+	font-family:"Tahoma","sans-serif";}
+span.BodyTextChar
+	{mso-style-name:"Body Text Char";
+	mso-style-link:"Body Text";}
+ /* Page Definitions */
+ @page WordSection1
+	{size:595.45pt 841.7pt;
+	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
+div.WordSection1
+	{page:WordSection1;}
+@page WordSection2
+	{size:595.45pt 841.7pt;
+	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
+div.WordSection2
+	{page:WordSection2;}
+ /* List Definitions */
+ ol
+	{margin-bottom:0cm;}
+ul
+	{margin-bottom:0cm;}
+-->
+</style>
+
+</head>
+
+<body lang=EN-US link=blue vlink=purple>
+
+<div class=WordSection1>
+
+<p class=MsoTitle>Forward Lock Converter And Decoder</p>
+
+<p class=MsoToc1><span
+class=MsoHyperlink><a href="#_Toc276471422">1<span style='font-size:12.0pt;
+line-height:150%;color:windowtext;text-transform:none;font-weight:normal;
+text-decoration:none'>      </span>Introduction<span style='color:windowtext;
+display:none;text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>3</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc276471423">2<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;text-transform:none;
+font-weight:normal;text-decoration:none'>      </span>Overview<span
+style='color:windowtext;display:none;text-decoration:none'>... </span><span
+style='color:windowtext;display:none;text-decoration:none'>3</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc276471424">3<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;text-transform:none;
+font-weight:normal;text-decoration:none'>      </span>Use Cases<span
+style='color:windowtext;display:none;text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>4</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><span style='font-variant:normal !important;
+text-transform:uppercase'><a href="#_Toc276471425">3.1<span style='font-size:
+12.0pt;line-height:150%;color:windowtext;text-transform:none;text-decoration:
+none'>        </span>Converter<span style='color:windowtext;display:none;
+text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>4</span></a></span></span></p>
+
+<p class=MsoToc3><span class=MsoHyperlink><a href="#_Toc276471426">3.1.1<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;font-style:normal;
+text-decoration:none'>     </span>Convert Data (Push-Mode Conversion)<span
+style='color:windowtext;display:none;text-decoration:none'> </span><span
+style='color:windowtext;display:none;text-decoration:none'>4</span></a></span></p>
+
+<p class=MsoToc3><span class=MsoHyperlink><a href="#_Toc276471427">3.1.2<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;font-style:normal;
+text-decoration:none'>     </span>Convert File (Pull-Mode Conversion)<span
+style='color:windowtext;display:none;text-decoration:none'> </span><span
+style='color:windowtext;display:none;text-decoration:none'>6</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><span style='font-variant:normal !important;
+text-transform:uppercase'><a href="#_Toc276471428">3.2<span style='font-size:
+12.0pt;line-height:150%;color:windowtext;text-transform:none;text-decoration:
+none'>        </span>Decoder<span style='color:windowtext;display:none;
+text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>7</span></a></span></span></p>
+
+<p class=MsoToc3><span class=MsoHyperlink><a href="#_Toc276471429">3.2.1<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;font-style:normal;
+text-decoration:none'>     </span>Check Integrity<span style='color:windowtext;
+display:none;text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>8</span></a></span></p>
+
+<p class=MsoToc3><span class=MsoHyperlink><a href="#_Toc276471430">3.2.2<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;font-style:normal;
+text-decoration:none'>     </span>Get Content Type<span style='color:windowtext;
+display:none;text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>9</span></a></span></p>
+
+<p class=MsoToc3><span class=MsoHyperlink><a href="#_Toc276471431">3.2.3<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;font-style:normal;
+text-decoration:none'>     </span>Decode File<span style='color:windowtext;
+display:none;text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>10</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc276471432">4<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;text-transform:none;
+font-weight:normal;text-decoration:none'>      </span>Definition of the
+Internal Forward Lock File Format<span style='color:windowtext;display:none;
+text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>11</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><span style='font-variant:normal !important;
+text-transform:uppercase'><a href="#_Toc276471433">4.1<span style='font-size:
+12.0pt;line-height:150%;color:windowtext;text-transform:none;text-decoration:
+none'>        </span>Key Derivation<span style='color:windowtext;display:none;
+text-decoration:none'>.. </span><span
+style='color:windowtext;display:none;text-decoration:none'>11</span></a></span></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><span style='font-variant:normal !important;
+text-transform:uppercase'><a href="#_Toc276471434">4.2<span style='font-size:
+12.0pt;line-height:150%;color:windowtext;text-transform:none;text-decoration:
+none'>        </span>Calculation of the Counters<span style='color:windowtext;
+display:none;text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>12</span></a></span></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc276471435">5<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;text-transform:none;
+font-weight:normal;text-decoration:none'>      </span>Unit Test Cases<span
+style='color:windowtext;display:none;text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>12</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc276471436">6<span
+style='font-size:12.0pt;line-height:150%;color:windowtext;text-transform:none;
+font-weight:normal;text-decoration:none'>      </span>References<span
+style='color:windowtext;display:none;text-decoration:none'>. </span><span
+style='color:windowtext;display:none;text-decoration:none'>12</span></a></span></p>
+
+<p class=MsoBodyText></p>
+
+</div>
+
+<span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><br
+clear=all style='page-break-before:right'>
+</span>
+
+<div class=WordSection2>
+
+<h1><a name="_Toc276471422"></a><a name="_Ref263085474">1<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Introduction</a></h1>
+
+<p class=MsoBodyText>The internal Forward Lock file format is used for encrypting
+inherently unencrypted OMA DRM version 1 Forward Lock and Combined Delivery
+files so they can be securely stored on externally accessible file system partitions
+such as memory stick.</p>
+
+<p class=MsoBodyText>Our general strategy is to convert such <i>OMA DRM Message</i>
+(‘.dm’) files to internal Forward Lock (‘.fl’) files as soon as they are
+downloaded or otherwise transferred to the phone, and not actually provide any
+decoders for ‘.dm’ files.</p>
+
+<h1><a name="_Toc276471423">2<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Overview</a></h1>
+
+<p class=MsoBodyText>The <i>Forward Lock Converter</i> converts OMA DRM Message
+files to the internal file format. The <i>Forward Lock Decoder</i> provides a
+POSIX-level API for transparent reading and seeking through such a converted
+file as if it were unencrypted. The API also includes functions for checking a
+fileÂ’s integrity and getting the MIME type of its embedded content.</p>
+
+<p class=MsoBodyText style='margin-bottom:24.0pt'>The converter and decoder are
+built into two separate libraries, which share common code for random number
+generation and key encryption in a third library. For test purposes there is
+also a unit test application. See Figure 1.</p>
+
+<p class=MsoBodyText style='page-break-after:avoid'><img width=288 height=364
+src="images/image001.gif"></p>
+
+<p class=MsoCaption style='margin-top:12.0pt;margin-right:0cm;margin-bottom:
+12.0pt;margin-left:0cm'><a name="_Ref262730885">Figure </a>1. Block diagram illustrating the dependencies between the executable modules.</p>
+
+<b><span style='font-size:16.0pt;font-family:"Arial","sans-serif"'><br
+clear=all style='page-break-before:always'>
+</span></b>
+
+<h1><a name="_Toc276471424">3<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Use Cases</a></h1>
+
+<p class=MsoBodyText>This section describes all the use cases for the converter
+and decoder. It shows the sequence of API calls that should be used to solve
+these use cases.</p>
+
+<h2><a name="_Toc276471425">3.1<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
+</span>Converter</a></h2>
+
+<p class=MsoBodyText>Through the converter API, conversion can be performed in one
+of two ways:</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>1.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><i>Push-mode
+conversion</i> is when the client progressively feeds data to the converter as
+it arrives. This is appropriate when data arrives gradually in chunks, with
+idle time in between. Consequently, push mode is used for converting files
+being downloaded through HTTP. See section 3.1.1.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>2.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><i>Pull-mode
+conversion</i> is when the converter drives the process and consumes data from
+the client as it needs it. This is appropriate when the entire file to be
+converted is readily available. Hence, pull mode is used by the unit test application.
+See section 3.1.2.</p>
+
+<p class=MsoBodyText>Internally, pull-mode conversion is implemented in terms
+of the API for push-mode conversion.</p>
+
+<h3><a name="_Toc276471426"></a><a name="_Ref263085478">3.1.1<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span>Convert Data
+(Push-Mode Conversion)</a></h3>
+
+<p class=MsoBodyText>Push-mode conversion is performed as follows (see also Figure 2):</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>1.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockConv_OpenSession</span>
+initializes the output parameter and returns a <i>session ID</i> to be used in
+subsequent calls to the API. The output parameter is a union of return values
+whose correct use at any given moment is determined by the API function last
+called.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>2.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockConv_ConvertData</span>
+is called repeatedly until no more input data remains. Each call converts the
+maximum amount of data possible and writes it to the output buffer. The client then
+writes this data to file.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>3.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockConv_CloseSession</span>
+cleans up the session and deallocates the output buffer. If all has gone well, a
+two-part cryptographic signature of the output file is calculated. The client
+must go back and rewrite part of the file header with this updated signature
+information.</p>
+
+<p class=MsoBodyText>Every time a file is being converted, the converter calls <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockGlue_GetRandomNumber</span>
+to generate a new, unique session key. No two converted files look alike, even
+if the original files are the same.</p>
+
+<p class=MsoBodyText><b>Note:</b> The random bytes cannot come from any bare-minimum
+implementation of the C-library <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>rand</span>
+function—they must be cryptographically secure. Otherwise, security will be
+compromised.</p>
+
+<p class=MsoBodyText>The session key is encrypted and stored within the
+converted file. Key encryption is performed using <span style='font-size:10.0pt;
+font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockGlue_GetEncryptedKeyLength</span> and <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockGlue_EncryptKey</span>.
+These two functions, together with the corresponding decryption function (<span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockGlue_DecryptKey</span>),
+are the integration points where an OEM manufacturer may implement their own
+key-encryption scheme.</p>
+
+<p class=MsoBodyText><b>Note:</b> The key-encryption key must be unique to each
+device; this is what makes the files forward lock–protected. Ideally, it should
+be derived from secret hardware parameters, but at the very least it should be
+persistent from one master reset to the next.</p>
+
+<div style='margin-bottom:24.0pt;border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;
+background:#F2F2F2'>
+
+<p class=MsoBodyText style='background:#F2F2F2;border:
+none;padding:0cm'><b>Note:</b> In the open-source implementation of the <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>libfwdlock-common</span>
+library, a random key-encryption key is generated and stored in plaintext in
+the file system, without being obfuscated in any way (doing so would be futile
+since the source code is openly available). This key must be kept secret from
+the user, and shouldnÂ’t be possible to extract through backup-and-restore
+functionality or the like. OEM manufacturers will probably want to implement a
+truly hardware-based device-unique key.</p>
+
+</div>
+
+<p class=MsoBodyText style='page-break-after:avoid'><img width=531 height=563
+src="images/image002.gif"></p>
+
+<p class=MsoCaption style='margin-top:6.0pt;margin-right:0cm;margin-bottom:
+12.0pt;margin-left:0cm'><a name="_Ref263085187">Figure </a>2. Converter UC: Convert Data.</p>
+
+<b><span style='font-size:13.0pt;font-family:"Arial","sans-serif"'><br
+clear=all style='page-break-before:always'>
+</span></b>
+
+<h3><a name="_Toc276471427"></a><a name="_Ref263163082">3.1.2<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span>Convert File
+(Pull-Mode Conversion)</a></h3>
+
+<p class=MsoBodyText>Pull-mode conversion is performed by calling <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_ConvertFile</span>
+with the filename, unless there is need for a specialized <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>read</span> function, in
+which case <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_ConvertOpenFile</span>
+should be used directly instead. See Figure 3.</p>
+
+<p class=MsoBodyText style='margin-bottom:24.0pt'>Internally, <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_ConvertFile</span>
+calls <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_ConvertOpenFile</span>.
+The latter then proceeds with the conversion using the push-mode API, acting as
+the client in the previous use case; see section 3.1.1.</p>
+
+<p class=MsoBodyText style='page-break-after:avoid'><img width=531 height=731
+src="images/image003.gif"></p>
+
+<p class=MsoCaption style='margin-top:6.0pt;margin-right:0cm;margin-bottom:
+12.0pt;margin-left:0cm'><a name="_Ref263085208">Figure </a>3. Converter UC: Convert File.</p>
+
+<b><i><span style='font-size:14.0pt;font-family:"Arial","sans-serif"'><br
+clear=all style='page-break-before:always'>
+</span></i></b>
+
+<h2><a name="_Toc276471428">3.2<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
+</span>Decoder</a></h2>
+
+<p class=MsoBodyText>The decoder API allows the client to do the following:</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>1.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Check
+the integrity of an internal Forward Lock file, i.e., detect whether it has
+been manipulated in any way; see section 3.2.1.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>2.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Get
+the MIME type of the embedded content (the “original” MIME type before DRM protection
+was applied); see section 3.2.2.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>3.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Decode
+the file by random access, i.e., read and seek through it in an arbitrary
+manner; see section 3.2.3.</p>
+
+<p class=MsoBodyText>All subsequent operations on a file first require it to be
+opened. Opening a file returns a <i>file descriptor</i>—a handle to be used in
+these subsequent operations.</p>
+
+<p class=MsoBodyText>If the filename is known, an internal Forward Lock file
+can be opened using <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_open</span>.
+If only the file descriptor of an already open file is available, a decoding
+session can instead be initialized using <span style='font-size:10.0pt;
+font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_attach</span>.</p>
+
+<p class=MsoBodyText>Internally, <span style='font-size:10.0pt;font-family:
+"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_open</span> calls <span style='font-size:10.0pt;
+font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_attach</span>. For efficiency
+reasons, <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_attach</span>
+therefore assumes that the file position is at the beginning of the file when
+the function gets called. A client who calls it directly must make sure that
+this assumption holds.</p>
+
+<p class=MsoBodyText>When a file is being attached, the session key stored in
+the file during conversion is decrypted using <span style='font-size:10.0pt;
+font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockGlue_GetEncryptedKeyLength</span> and <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockGlue_DecryptKey</span>,
+in order to set up for decoding and integrity checking.</p>
+
+<p class=MsoBodyText>For just getting the content type, however, retrieving the
+session key would strictly speaking not be necessary, so there is an
+opportunity here to optimize for that if it proves necessary later.</p>
+
+<p class=MsoBodyText>Symmetrical to <span style='font-size:10.0pt;font-family:
+"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_open</span> and <span style='font-size:10.0pt;
+font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_attach</span>, there are also functions
+for closing a file or detaching from it:</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>1.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>If
+it was opened with <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_open</span>
+it should be closed with <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_close</span>.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>2.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>If
+it was attached with <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_attach</span>
+it should be detached with <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_detach</span>.</p>
+
+<b><span style='font-size:13.0pt;font-family:"Arial","sans-serif"'><br
+clear=all style='page-break-before:always'>
+</span></b>
+
+<h3><a name="_Ref263163099"></a><a name="_Toc276471429">3.2.1<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span>Check Integrity</a></h3>
+
+<p class=MsoBodyText>There are three methods for checking the integrity of an
+internal Forward Lock file, in whole or in part (see also Figure 4):</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>1.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_CheckDataIntegrity</span>,
+which checks the integrity of the encrypted content data.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>2.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_CheckHeaderIntegrity</span>,
+which checks the integrity of the file header, including the content type and
+other fields not currently supported but reserved for future use.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>3.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_CheckIntegrity</span>,
+which internally calls first <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_CheckHeaderIntegrity</span>
+and then <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_CheckDataIntegrity</span>.</p>
+
+<p class=MsoBodyText style='margin-bottom:24.0pt'><span style='font-size:10.0pt;
+font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_CheckHeaderIntegrity</span> is
+generally much faster than <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_CheckDataIntegrity</span>,
+whose running time is directly proportional to the size of the file.</p>
+
+<p class=MsoBodyText style='page-break-after:avoid'><img width=543 height=575
+src="images/image004.gif"></p>
+
+<p class=MsoCaption style='margin-top:6.0pt;margin-right:0cm;margin-bottom:
+12.0pt;margin-left:0cm'><a name="_Ref263163308">Figure </a>4. Decoder UC: Check Integrity.</p>
+
+<b><span style='font-size:13.0pt;font-family:"Arial","sans-serif"'><br
+clear=all style='page-break-before:always'>
+</span></b>
+
+<h3><a name="_Toc276471430"></a><a name="_Ref263163117">3.2.2<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span>Get Content Type</a></h3>
+
+<p class=MsoBodyText style='margin-bottom:24.0pt'><span style='font-size:10.0pt;
+font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_GetContentType</span> returns a
+read-only reference to an ASCII string containing the MIME type of the
+embedded content. This reference is valid as long as the file is kept open.
+Clients who need access to the content type after closing the file should make
+a copy of the string. See Figure 5 below.</p>
+
+<p class=MsoBodyText style='page-break-after:avoid'><img width=543 height=488
+src="images/image005.gif"></p>
+
+<p class=MsoCaption style='margin-top:6.0pt;margin-right:0cm;margin-bottom:
+12.0pt;margin-left:0cm'><a name="_Ref263163392">Figure </a>5. Decoder UC: Get Content Type.</p>
+
+<b><span style='font-size:13.0pt;font-family:"Arial","sans-serif"'><br
+clear=all style='page-break-before:always'>
+</span></b>
+
+<h3><a name="_Toc276471431"></a><a name="_Ref263163137">3.2.3<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span>Decode File</a></h3>
+
+<p class=MsoBodyText>After opening an internal Forward Lock file (or attaching
+to an already open one), it can be transparently read from as if it were
+unencrypted. Any number of calls to read data from the current file position or
+set it to a new one (which is what <span style='font-size:10.0pt;font-family:
+"Lucida Console","DejaVu Sans Mono"'>lseek</span> does) can be made in any order; this is what we
+call <i>random access</i>. See Figure 6.</p>
+
+<p class=MsoBodyText>The Forward Lock Decoder versions of the <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>read</span>, <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>lseek</span>, and <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>close</span> functions
+have the exact same signatures as their POSIX counterparts. So, for example,
+the call <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_lseek(fd,
+0, SEEK_END)</span> returns the size of the embedded content data, i.e., the
+size of the original file before DRM protection.</p>
+
+<p class=MsoBodyText style='margin-bottom:24.0pt'>Moreover, <span
+style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>FwdLockFile_open</span>
+is like regular POSIX <span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>open</span>
+except it takes only the filename as a parameter—access is always read-only.</p>
+
+<p class=MsoBodyText style='page-break-after:avoid'><img width=543 height=522
+src="images/image006.gif"></p>
+
+<p class=MsoCaption style='margin-top:6.0pt;margin-right:0cm;margin-bottom:
+12.0pt;margin-left:0cm'><a name="_Ref263166303">Figure </a>6. Decoder UC: Decode File.</p>
+
+<b><span style='font-size:16.0pt;font-family:"Arial","sans-serif"'><br
+clear=all style='page-break-before:always'>
+</span></b>
+
+<h1><a name="_Toc276471432">4<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Definition of the Internal Forward Lock File Format</a></h1>
+
+<p class=MsoBodyText style='margin-bottom:12.0pt'>The inner structure of an internal
+Forward Lock file is defined in Table 1 below.</p>
+
+<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
+ style='border-collapse:collapse;border:none'>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'><b>Offset [bytes]</b></p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border:solid windowtext 1.0pt;
+  border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'><b>Size [bytes]</b></p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border:solid windowtext 1.0pt;
+  border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'><b>Description</b></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>0</p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>4</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>The file signature (so-called
+  <i>magic number</i>): a four-character code consisting of the letters
+  F-W-L-K.</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>4</p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>1</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>Version number (0 for the
+  first version).</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>5</p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>1</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>Indicates the subformat:</p>
+  <p class=MsoNormal style='page-break-after:avoid'><i>0x00 Forward Lock</i></p>
+  <p class=MsoNormal style='page-break-after:avoid'><i>0x01 Combined Delivery</i></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>6</p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>1</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>Usage restriction flags (prohibitions
+  against usage as ringtone or as wallpaper and screen saver). Also indicates
+  if the file is bound to a specific SIM card.</p>
+  <p class=MsoNormal style='page-break-after:avoid'><i>0x00 No usage
+  restrictions</i></p>
+  <p class=MsoNormal style='page-break-after:avoid'><i>0x01 Ringtone usage
+  prohibited</i></p>
+  <p class=MsoNormal style='page-break-after:avoid'><i>0x02 Screen usage
+  prohibited</i></p>
+  <p class=MsoNormal style='page-break-after:avoid'><i>0x80 Bound to SIM</i></p>
+  <p class=MsoNormal style='page-break-after:avoid'>(Any number of these may be
+  OR-ed together.)</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>7</p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>1</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>Length of the MIME content
+  type (<i>k</i>).</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>8</p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'><i>k</i></p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>The MIME content type
+  (ASCII-encoded without null-character termination).</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>8+<i>k</i></p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'><i>l </i>= 0 or 16</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>If the subformat is
+  Combined Delivery, this field contains the auto-generated content ID (16&nbsp;bytes).
+  If not, this field is zero-size.</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>8+<i>k</i>+<i>l</i></p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'><i>m </i>= 0 or 9</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>If the file is bound to a
+  specific SIM card, this field contains the 9-byte packed IMSI number. If not,
+  this field is zero-size.</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>8+<i>k</i>+<i>l</i>+<i>m</i></p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'><i>n</i> &#8805; 16</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>The encrypted session key, the
+  first sixteen bytes of which are also used as the CTR-mode <i>nonce</i> (similar
+  to the CBC-mode <i>initialization vector</i>).</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>8+<i>k</i>+<i>l</i>+<i>m</i>+<i>n</i></p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>20</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>Data signature—the SHA-1
+  HMAC of the encrypted content data.</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>28+<i>k</i>+<i>l</i>+<i>m</i>+<i>n</i></p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>20</p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>Header signature—the SHA-1
+  HMAC of all the fields above, including the encrypted session key and data
+  signature.</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=111 valign=top style='width:83.4pt;border:solid windowtext 1.0pt;
+  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>48+<i>k</i>+<i>l</i>+<i>m</i>+<i>n</i></p>
+  </td>
+  <td width=96 valign=top style='width:72.0pt;border-top:none;border-left:none;
+  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'><i>&lt;to the end of the
+  file&gt;</i></p>
+  </td>
+  <td width=361 valign=top style='width:270.85pt;border-top:none;border-left:
+  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
+  padding:0cm 5.4pt 0cm 5.4pt'>
+  <p class=MsoNormal style='page-break-after:avoid'>The content data encrypted
+  using 128-bit AES in CTR mode.</p>
+  </td>
+ </tr>
+</table>
+
+<p class=MsoCaption style='margin-top:6.0pt;margin-right:0cm;margin-bottom:
+12.0pt;margin-left:0cm;page-break-after:avoid'><a name="_Ref151269206">Table </a>1. Definition of the fields of an internal Forward Lock file.</p>
+
+<p class=MsoBodyText>As of now, neither Combined Delivery nor usage
+restrictions (including SIM binding) are supported. These fields are reserved
+for future use.</p>
+
+<h2><a name="_Toc276471433">4.1<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
+</span>Key Derivation</a></h2>
+
+<p class=MsoBodyText>The session key consists of sixteen bytes fetched from a
+cryptographically secure random number generator. From the session key, two
+separate keys are derived: one used for encryption, the other for signing.</p>
+
+<p class=MsoBodyText>The encryption key is the output from encrypting the
+16-byte all-zero input block {0, 0, Â…, 0} using 128-bit AES with the random session
+key as the key. The signing key is the output from encrypting the 16-byte input
+block {1, 0, Â…, 0} the same way. The keys so derived will be cryptographically
+independent from each other.</p>
+
+<p class=MsoBodyText>The session key is encrypted using a hardware-dependent
+key-encryption key unique to each device. The encrypted session key is stored
+inside the file, and its first sixteen bytes are also used as the <i>nonce</i>
+for the CTR-mode encryption of the content data.</p>
+
+<h2><a name="_Toc276471434">4.2<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
+</span>Calculation of the Counters</a></h2>
+
+<p class=MsoBodyText>Using CTR (“counter”) mode, a block cipher such as AES can
+be turned into a stream cipher. The process of encryption and decryption is
+well defined in [1], except for the specifics of the calculation of the
+counters. For the internal Forward Lock file format, the counters are
+calculated as follows:</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>1.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The
+nonce is interpreted as a 128-bit unsigned integer in little-endian format.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>2.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The
+zero-based block sequence number (also a little-endian unsigned integer) is
+added modulo 2<sup>128</sup> to the nonce to produce the counter for a given
+block.</p>
+
+<h1><a name="_Toc276471435">5<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Unit Test Cases</a></h1>
+
+<p class=MsoBodyText>Unit test cases for the converter and decoder come in two
+varieties:</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>1.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><i>Black-box</i>
+test cases aim to verify that you get sensible results from malformed or
+“tricky” input data.</p>
+
+<p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>2.<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><i>White-box</i>
+test cases aim to maximize code coverage using knowledge of code internals.</p>
+
+<p class=MsoBodyText>The black-box test cases are dependent on a specifically
+designed set of input files found in the <span style='font-size:10.0pt;
+font-family:"Lucida Console","DejaVu Sans Mono"'>forward-lock/internal-format/test/res</span>
+directory in the repository. For ‘tests’ variants of the software, these input
+files will be automatically installed in the file system image during build.</p>
+
+<p class=MsoBodyText>Run the test cases from the ADB shell command line as
+follows:</p>
+
+<p class=MsoNormal style='margin-top:0cm;margin-right:0cm;margin-bottom:6.0pt;
+margin-left:21.55pt'><span style='font-size:10.0pt;font-family:"Lucida Console","DejaVu Sans Mono"'>#
+gtest_fwdlock</span></p>
+
+<p class=MsoBodyText>If all black-box but no white-box test cases fail, the
+input files probably canÂ’t be found in the working directory.</p>
+
+<h1><a name="_Toc276471436">6<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>References</a></h1>
+
+<p class=MsoBodyText style='margin-left:28.9pt;text-indent:-28.9pt'>[1]<span
+style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><a
+href="http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf">Dworkin,
+Morris: “Recommendation for Block Cipher Modes of Operation—Methods and
+Techniques,” NIST Special Publication 800-38A, December 2001.</a><a
+name="_Ref151269073"></a></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image001.gif b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image001.gif
new file mode 100644
index 0000000..ee94513
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image001.gif
Binary files differ
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image002.gif b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image002.gif
new file mode 100644
index 0000000..8c12f46
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image002.gif
Binary files differ
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image003.gif b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image003.gif
new file mode 100644
index 0000000..9e019ca
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image003.gif
Binary files differ
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image004.gif b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image004.gif
new file mode 100644
index 0000000..cae1d01
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image004.gif
Binary files differ
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image005.gif b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image005.gif
new file mode 100644
index 0000000..0d87be9
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image005.gif
Binary files differ
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image006.gif b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image006.gif
new file mode 100644
index 0000000..9445b6b
--- /dev/null
+++ b/drm/libdrmframework/plugins/forward-lock/internal-format/doc/images/image006.gif
Binary files differ
diff --git a/include/drm/DrmManagerClient.h b/include/drm/DrmManagerClient.h
index e6ba3c4..085ebf1 100644
--- a/include/drm/DrmManagerClient.h
+++ b/include/drm/DrmManagerClient.h
@@ -49,6 +49,9 @@
     class OnInfoListener: virtual public RefBase {
 
     public:
+        virtual ~OnInfoListener() {}
+
+    public:
         virtual void onInfo(const DrmInfoEvent& event) = 0;
     };
 
diff --git a/include/utils/ResourceTypes.h b/include/utils/ResourceTypes.h
index ed7f53d1..6227f3e 100644
--- a/include/utils/ResourceTypes.h
+++ b/include/utils/ResourceTypes.h
@@ -1985,6 +1985,7 @@
 
 #ifndef HAVE_ANDROID_OS
     void print(bool inclValues) const;
+    static String8 normalizeForOutput(const char* input);
 #endif
 
 private:
diff --git a/libs/utils/ResourceTypes.cpp b/libs/utils/ResourceTypes.cpp
index 73ff230..7197ad7 100644
--- a/libs/utils/ResourceTypes.cpp
+++ b/libs/utils/ResourceTypes.cpp
@@ -4141,6 +4141,38 @@
     }
 }
 
+// Normalize a string for output
+String8 ResTable::normalizeForOutput( const char *input )
+{
+    String8 ret;
+    char buff[2];
+    buff[1] = '\0';
+
+    while (*input != '\0') {
+        switch (*input) {
+            // All interesting characters are in the ASCII zone, so we are making our own lives
+            // easier by scanning the string one byte at a time.
+        case '\\':
+            ret += "\\\\";
+            break;
+        case '\n':
+            ret += "\\n";
+            break;
+        case '"':
+            ret += "\\\"";
+            break;
+        default:
+            buff[0] = *input;
+            ret += buff;
+            break;
+        }
+
+        input++;
+    }
+
+    return ret;
+}
+
 void ResTable::print_value(const Package* pkg, const Res_value& value) const
 {
     if (value.dataType == Res_value::TYPE_NULL) {
@@ -4154,13 +4186,13 @@
         const char* str8 = pkg->header->values.string8At(
                 value.data, &len);
         if (str8 != NULL) {
-            printf("(string8) \"%s\"\n", str8);
+            printf("(string8) \"%s\"\n", normalizeForOutput(str8).string());
         } else {
             const char16_t* str16 = pkg->header->values.stringAt(
                     value.data, &len);
             if (str16 != NULL) {
                 printf("(string16) \"%s\"\n",
-                    String8(str16, len).string());
+                    normalizeForOutput(String8(str16, len).string()).string());
             } else {
                 printf("(string) null\n");
             }
diff --git a/libs/utils/Threads.cpp b/libs/utils/Threads.cpp
index ad9a94f..b1bd828 100644
--- a/libs/utils/Threads.cpp
+++ b/libs/utils/Threads.cpp
@@ -778,6 +778,7 @@
             // called by a new thread using the same thread ID as this one.
             self->mThread = thread_id_t(-1);
             self->mThreadExitedCondition.broadcast();
+            self->mThread = thread_id_t(-1); // thread id could be reused
             self->mLock.unlock();
             break;
         }
diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
index 11900d4..edefb22 100644
--- a/media/java/android/media/MediaRecorder.java
+++ b/media/java/android/media/MediaRecorder.java
@@ -343,7 +343,7 @@
             degrees != 270) {
             throw new IllegalArgumentException("Unsupported angle: " + degrees);
         }
-        setParameter(String.format("video-param-rotation-angle-degrees=%d", degrees));
+        setParameter("video-param-rotation-angle-degrees=" + degrees);
     }
 
     /**
@@ -463,7 +463,7 @@
         if (samplingRate <= 0) {
             throw new IllegalArgumentException("Audio sampling rate is not positive");
         }
-        setParameter(String.format("audio-param-sampling-rate=%d", samplingRate));
+        setParameter("audio-param-sampling-rate=" + samplingRate);
     }
 
     /**
@@ -478,7 +478,7 @@
         if (numChannels <= 0) {
             throw new IllegalArgumentException("Number of channels is not positive");
         }
-        setParameter(String.format("audio-param-number-of-channels=%d", numChannels));
+        setParameter("audio-param-number-of-channels=" + numChannels);
     }
 
     /**
@@ -494,7 +494,7 @@
         if (bitRate <= 0) {
             throw new IllegalArgumentException("Audio encoding bit rate is not positive");
         }
-        setParameter(String.format("audio-param-encoding-bitrate=%d", bitRate));
+        setParameter("audio-param-encoding-bitrate=" + bitRate);
     }
 
     /**
@@ -510,7 +510,7 @@
         if (bitRate <= 0) {
             throw new IllegalArgumentException("Video encoding bit rate is not positive");
         }
-        setParameter(String.format("video-param-encoding-bitrate=%d", bitRate));
+        setParameter("video-param-encoding-bitrate=" + bitRate);
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/usb/UsbStorageActivity.java b/packages/SystemUI/src/com/android/systemui/usb/UsbStorageActivity.java
index a834266..1368baa 100644
--- a/packages/SystemUI/src/com/android/systemui/usb/UsbStorageActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/usb/UsbStorageActivity.java
@@ -71,6 +71,7 @@
     private static final int DLG_CONFIRM_KILL_STORAGE_USERS = 1;
     private static final int DLG_ERROR_SHARING = 2;
     static final boolean localLOGV = false;
+    private boolean mDestroyed;
 
     // UI thread
     private Handler mUIHandler;
@@ -136,6 +137,12 @@
         mProgressBar = (ProgressBar) findViewById(com.android.internal.R.id.progress);
     }
 
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        mDestroyed = true;
+    }
+
     private void switchDisplay(final boolean usbStorageInUse) {
         mUIHandler.post(new Runnable() {
             @Override
@@ -232,9 +239,16 @@
         return null;
     }
 
-    private void showDialogInner(int id) {
-        removeDialog(id);
-        showDialog(id);
+    private void scheduleShowDialog(final int id) {
+        mUIHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                if (!mDestroyed) {
+                    removeDialog(id);
+                    showDialog(id);
+                }
+            }
+        });
     }
 
     private void switchUsbMassStorage(final boolean on) {
@@ -276,7 +290,7 @@
         IMountService ims = getMountService();
         if (ims == null) {
             // Display error dialog
-            showDialogInner(DLG_ERROR_SHARING);
+            scheduleShowDialog(DLG_ERROR_SHARING);
         }
         String extStoragePath = Environment.getExternalStorageDirectory().toString();
         boolean showDialog = false;
@@ -294,11 +308,11 @@
             }
         } catch (RemoteException e) {
             // Display error dialog
-            showDialogInner(DLG_ERROR_SHARING);
+            scheduleShowDialog(DLG_ERROR_SHARING);
         }
         if (showDialog) {
             // Display dialog to user
-            showDialogInner(DLG_CONFIRM_KILL_STORAGE_USERS);
+            scheduleShowDialog(DLG_CONFIRM_KILL_STORAGE_USERS);
         } else {
             if (localLOGV) Log.i(TAG, "Enabling UMS");
             switchUsbMassStorage(true);
diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp
index 8aaa325..433f1f7 100644
--- a/services/audioflinger/AudioMixer.cpp
+++ b/services/audioflinger/AudioMixer.cpp
@@ -975,7 +975,6 @@
 {
     int32_t* const outTemp = state->outputTemp;
     const size_t size = sizeof(int32_t) * MAX_NUM_CHANNELS * state->frameCount;
-    memset(outTemp, 0, size);
 
     size_t numFrames = state->frameCount;
 
@@ -997,6 +996,7 @@
         }
         e0 &= ~(e1);
         int32_t *out = t1.mainBuffer;
+        memset(outTemp, 0, size);
         while (e1) {
             const int i = 31 - __builtin_clz(e1);
             e1 &= ~(1<<i);
diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java
index cf87a9d..88d94c2 100644
--- a/services/java/com/android/server/NativeDaemonConnector.java
+++ b/services/java/com/android/server/NativeDaemonConnector.java
@@ -97,11 +97,12 @@
                     LocalSocketAddress.Namespace.RESERVED);
 
             socket.connect(address);
-            mCallbacks.onDaemonConnected();
 
             InputStream inputStream = socket.getInputStream();
             mOutputStream = socket.getOutputStream();
 
+            mCallbacks.onDaemonConnected();
+
             byte[] buffer = new byte[BUFFER_SIZE];
             int start = 0;
 
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index f3b5f4b..9ee71e8 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -8023,14 +8023,6 @@
             sharedUser = orig.sharedUser;
         }
 
-        public void copyFrom(PackageSetting base) {
-            super.copyFrom((PackageSettingBase) base);
-
-            userId = base.userId;
-            sharedUser = base.sharedUser;
-            pkg = base.pkg;
-        }
-
         @Override
         public String toString() {
             return "PackageSetting{"
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index 2efb444..3978b99 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -928,9 +928,8 @@
                 } catch (InterruptedException e) {
                 }
             }
+            return thr.mService;
         }
-
-        return thr.mService;
     }
 
     static class WMThread extends Thread {
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index 254a19b..c24fe8e 100755
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -4504,12 +4504,15 @@
         perm.modeFlags |= modeFlags;
         if (owner == null) {
             perm.globalModeFlags |= modeFlags;
-        } else if ((modeFlags&Intent.FLAG_GRANT_READ_URI_PERMISSION) != 0) {
-            perm.readOwners.add(owner);
-            owner.addReadPermission(perm);
-        } else if ((modeFlags&Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0) {
-            perm.writeOwners.add(owner);
-            owner.addWritePermission(perm);
+        } else {
+            if ((modeFlags&Intent.FLAG_GRANT_READ_URI_PERMISSION) != 0) {
+                 perm.readOwners.add(owner);
+                 owner.addReadPermission(perm);
+            }
+            if ((modeFlags&Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0) {
+                 perm.writeOwners.add(owner);
+                 owner.addWritePermission(perm);
+            }
         }
     }
 
diff --git a/telephony/java/com/android/internal/telephony/CommandsInterface.java b/telephony/java/com/android/internal/telephony/CommandsInterface.java
index 5e4c136..259acdb 100644
--- a/telephony/java/com/android/internal/telephony/CommandsInterface.java
+++ b/telephony/java/com/android/internal/telephony/CommandsInterface.java
@@ -1289,18 +1289,25 @@
     void setCdmaSubscription(int cdmaSubscriptionType, Message response);
 
     /**
-     *  Set the TTY mode for the CDMA phone
+     *  Set the TTY mode
      *
-     * @param enable is true to enable, false to disable
+     * @param ttyMode one of the following:
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
      * @param response is callback message
      */
     void setTTYMode(int ttyMode, Message response);
 
     /**
-     *  Query the TTY mode for the CDMA phone
+     *  Query the TTY mode
      * (AsyncResult)response.obj).result is an int[] with element [0] set to
-     * 0 for disabled, 1 for enabled.
-     *
+     * tty mode:
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
      * @param response is callback message
      */
     void queryTTYMode(Message response);
diff --git a/telephony/java/com/android/internal/telephony/Phone.java b/telephony/java/com/android/internal/telephony/Phone.java
index d0b5540..ef9e783 100644
--- a/telephony/java/com/android/internal/telephony/Phone.java
+++ b/telephony/java/com/android/internal/telephony/Phone.java
@@ -1430,9 +1430,11 @@
     /**
      * setTTYMode
      * sets a TTY mode option.
-     *
-     * @param ttyMode is a boolean representing the state that you are
-     *        requesting, true for enabled, false for disabled.
+     * @param ttyMode is a one of the following:
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
      * @param onComplete a callback message when the action is completed
      */
     void setTTYMode(int ttyMode, Message onComplete);
diff --git a/telephony/java/com/android/internal/telephony/PhoneBase.java b/telephony/java/com/android/internal/telephony/PhoneBase.java
index 5887130..cbff130 100644
--- a/telephony/java/com/android/internal/telephony/PhoneBase.java
+++ b/telephony/java/com/android/internal/telephony/PhoneBase.java
@@ -702,13 +702,11 @@
     }
 
     public void setTTYMode(int ttyMode, Message onComplete) {
-        // This function should be overridden by the class CDMAPhone. Not implemented in GSMPhone.
-        logUnexpectedCdmaMethodCall("setTTYMode");
+        mCM.setTTYMode(ttyMode, onComplete);
     }
 
     public void queryTTYMode(Message onComplete) {
-        // This function should be overridden by the class CDMAPhone. Not implemented in GSMPhone.
-        logUnexpectedCdmaMethodCall("queryTTYMode");
+        mCM.queryTTYMode(onComplete);
     }
 
     public void enableEnhancedVoicePrivacy(boolean enable, Message onComplete) {
diff --git a/telephony/java/com/android/internal/telephony/SMSDispatcher.java b/telephony/java/com/android/internal/telephony/SMSDispatcher.java
old mode 100644
new mode 100755
index 99123af..02af79f
--- a/telephony/java/com/android/internal/telephony/SMSDispatcher.java
+++ b/telephony/java/com/android/internal/telephony/SMSDispatcher.java
@@ -66,6 +66,7 @@
 
 public abstract class SMSDispatcher extends Handler {
     private static final String TAG = "SMS";
+    private static final String SEND_NEXT_MSG_EXTRA = "SendNextMsg";
 
     /** Default checking period for SMS sent without user permit */
     private static final int DEFAULT_SMS_CHECK_PERIOD = 3600000;
@@ -162,6 +163,8 @@
     protected boolean mSmsReceiveDisabled;
     protected boolean mSmsSendDisabled;
 
+    protected static int mRemainingMessages = -1;
+
     protected static int getNextConcatenatedRef() {
         sConcatenatedRef += 1;
         return sConcatenatedRef;
@@ -486,7 +489,17 @@
 
             if (sentIntent != null) {
                 try {
-                    sentIntent.send(Activity.RESULT_OK);
+                    if (mRemainingMessages > -1) {
+                        mRemainingMessages--;
+                    }
+
+                    if (mRemainingMessages == 0) {
+                        Intent sendNext = new Intent();
+                        sendNext.putExtra(SEND_NEXT_MSG_EXTRA, true);
+                        sentIntent.send(mContext, Activity.RESULT_OK, sendNext);
+                    } else {
+                        sentIntent.send(Activity.RESULT_OK);
+                    }
                 } catch (CanceledException ex) {}
             }
         } else {
@@ -525,8 +538,15 @@
                     if (ar.result != null) {
                         fillIn.putExtra("errorCode", ((SmsResponse)ar.result).errorCode);
                     }
-                    tracker.mSentIntent.send(mContext, error, fillIn);
+                    if (mRemainingMessages > -1) {
+                        mRemainingMessages--;
+                    }
 
+                    if (mRemainingMessages == 0) {
+                        fillIn.putExtra(SEND_NEXT_MSG_EXTRA, true);
+                    }
+
+                    tracker.mSentIntent.send(mContext, error, fillIn);
                 } catch (CanceledException ex) {}
             }
         }
diff --git a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
index a1d5121..bd00a0b 100755
--- a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
@@ -1103,20 +1103,6 @@
     }
 
     /**
-     * Set the TTY mode of the CDMAPhone
-     */
-    public void setTTYMode(int ttyMode, Message onComplete) {
-        this.mCM.setTTYMode(ttyMode, onComplete);
-    }
-
-    /**
-     * Queries the TTY mode of the CDMAPhone
-     */
-    public void queryTTYMode(Message onComplete) {
-        this.mCM.queryTTYMode(onComplete);
-    }
-
-    /**
      * Activate or deactivate cell broadcast SMS.
      *
      * @param activate 0 = activate, 1 = deactivate
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmMmiCode.java b/telephony/java/com/android/internal/telephony/gsm/GsmMmiCode.java
index fe7a5cb..2962e0f 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmMmiCode.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmMmiCode.java
@@ -155,7 +155,7 @@
     static final int MATCH_GROUP_SIC = 9;
     static final int MATCH_GROUP_PWD_CONFIRM = 11;
     static final int MATCH_GROUP_DIALING_NUMBER = 12;
-
+    static private String[] sTwoDigitNumberPattern;
 
     //***** Public Class methods
 
@@ -198,6 +198,9 @@
 
             ret = new GsmMmiCode(phone);
             ret.poundString = dialString;
+        } else if (isTwoDigitShortCode(phone.getContext(), dialString)) {
+            //Is a country-specific exception to short codes as defined in TS 22.030, 6.5.3.2
+            ret = null;
         } else if (isShortCode(dialString, phone)) {
             // this may be a short code, as defined in TS 22.030, 6.5.3.2
             ret = new GsmMmiCode(phone);
@@ -452,6 +455,28 @@
 
     }
 
+    static private boolean
+    isTwoDigitShortCode(Context context, String dialString) {
+        Log.d(LOG_TAG, "isTwoDigitShortCode");
+
+        if (dialString == null || dialString.length() != 2) return false;
+
+        if (sTwoDigitNumberPattern == null) {
+            sTwoDigitNumberPattern = context.getResources().getStringArray(
+                    com.android.internal.R.array.config_twoDigitNumberPattern);
+        }
+
+        for (String dialnumber : sTwoDigitNumberPattern) {
+            Log.d(LOG_TAG, "Two Digit Number Pattern " + dialnumber);
+            if (dialString.equals(dialnumber)) {
+                Log.d(LOG_TAG, "Two Digit Number Pattern -true");
+                return true;
+            }
+        }
+        Log.d(LOG_TAG, "Two Digit Number Pattern -false");
+        return false;
+    }
+
     /**
      * Helper function for newFromDialString. Returns true if dialString appears
      * to be a short code AND conditions are correct for it to be treated as
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java b/telephony/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
old mode 100644
new mode 100755
index bbe579d..f576b4e
--- a/telephony/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
@@ -23,6 +23,7 @@
 import android.os.AsyncResult;
 import android.os.Message;
 import android.os.SystemProperties;
+import android.provider.Telephony.Sms;
 import android.provider.Telephony.Sms.Intents;
 import android.telephony.ServiceState;
 import android.telephony.SmsCbMessage;
@@ -69,13 +70,17 @@
         String pduString = (String) ar.result;
         SmsMessage sms = SmsMessage.newFromCDS(pduString);
 
+        int tpStatus = sms.getStatus();
+
         if (sms != null) {
             int messageRef = sms.messageRef;
             for (int i = 0, count = deliveryPendingList.size(); i < count; i++) {
                 SmsTracker tracker = deliveryPendingList.get(i);
                 if (tracker.mMessageRef == messageRef) {
                     // Found it.  Remove from list and broadcast.
-                    deliveryPendingList.remove(i);
+                    if(tpStatus >= Sms.STATUS_FAILED || tpStatus < Sms.STATUS_PENDING ) {
+                       deliveryPendingList.remove(i);
+                    }
                     PendingIntent intent = tracker.mDeliveryIntent;
                     Intent fillIn = new Intent();
                     fillIn.putExtra("pdu", IccUtils.hexStringToBytes(pduString));
@@ -195,6 +200,8 @@
         int msgCount = parts.size();
         int encoding = android.telephony.SmsMessage.ENCODING_UNKNOWN;
 
+        mRemainingMessages = msgCount;
+
         for (int i = 0; i < msgCount; i++) {
             TextEncodingDetails details = SmsMessage.calculateLength(parts.get(i), false);
             if (encoding != details.codeUnitSize
@@ -284,6 +291,8 @@
         int msgCount = parts.size();
         int encoding = android.telephony.SmsMessage.ENCODING_UNKNOWN;
 
+        mRemainingMessages = msgCount;
+
         for (int i = 0; i < msgCount; i++) {
             TextEncodingDetails details = SmsMessage.calculateLength(parts.get(i), false);
             if (encoding != details.codeUnitSize
diff --git a/telephony/java/com/android/internal/telephony/gsm/SIMRecords.java b/telephony/java/com/android/internal/telephony/gsm/SIMRecords.java
old mode 100644
new mode 100755
index 438996f..3b133da
--- a/telephony/java/com/android/internal/telephony/gsm/SIMRecords.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SIMRecords.java
@@ -144,6 +144,25 @@
     private static final int EVENT_GET_CFIS_DONE = 32;
     private static final int EVENT_GET_CSP_CPHS_DONE = 33;
 
+    // Lookup table for carriers known to produce SIMs which incorrectly indicate MNC length.
+
+    private static final String[] MCCMNC_CODES_HAVING_3DIGITS_MNC = {
+        "405025", "405026", "405027", "405028", "405029", "405030", "405031", "405032",
+        "405033", "405034", "405035", "405036", "405037", "405038", "405039", "405040",
+        "405041", "405042", "405043", "405044", "405045", "405046", "405047", "405750",
+        "405751", "405752", "405753", "405754", "405755", "405756", "405799", "405800",
+        "405801", "405802", "405803", "405804", "405805", "405806", "405807", "405808",
+        "405809", "405810", "405811", "405812", "405813", "405814", "405815", "405816",
+        "405817", "405818", "405819", "405820", "405821", "405822", "405823", "405824",
+        "405825", "405826", "405827", "405828", "405829", "405830", "405831", "405832",
+        "405833", "405834", "405835", "405836", "405837", "405838", "405839", "405840",
+        "405841", "405842", "405843", "405844", "405845", "405846", "405847", "405848",
+        "405849", "405850", "405851", "405852", "405853", "405875", "405876", "405877",
+        "405878", "405879", "405880", "405881", "405882", "405883", "405884", "405885",
+        "405886", "405908", "405909", "405910", "405911", "405925", "405926", "405927",
+        "405928", "405929", "405932"
+    };
+
     // ***** Constructor
 
     SIMRecords(GSMPhone p) {
@@ -501,6 +520,17 @@
 
                 Log.d(LOG_TAG, "IMSI: " + imsi.substring(0, 6) + "xxxxxxx");
 
+                if (((mncLength == UNKNOWN) || (mncLength == 2)) &&
+                        ((imsi != null) && (imsi.length() >= 6))) {
+                    String mccmncCode = imsi.substring(0, 6);
+                    for (String mccmnc : MCCMNC_CODES_HAVING_3DIGITS_MNC) {
+                        if (mccmnc.equals(mccmncCode)) {
+                            mncLength = 3;
+                            break;
+                        }
+                    }
+                }
+
                 if (mncLength == UNKNOWN) {
                     // the SIM has told us all it knows, but it didn't know the mnc length.
                     // guess using the mcc
@@ -752,6 +782,17 @@
                         mncLength = UNKNOWN;
                     }
                 } finally {
+                    if (((mncLength == UNINITIALIZED) || (mncLength == UNKNOWN) ||
+                            (mncLength == 2)) && ((imsi != null) && (imsi.length() >= 6))) {
+                        String mccmncCode = imsi.substring(0, 6);
+                        for (String mccmnc : MCCMNC_CODES_HAVING_3DIGITS_MNC) {
+                            if (mccmnc.equals(mccmncCode)) {
+                                mncLength = 3;
+                                break;
+                            }
+                        }
+                    }
+
                     if (mncLength == UNKNOWN || mncLength == UNINITIALIZED) {
                         if (imsi != null) {
                             try {
diff --git a/telephony/java/com/android/internal/telephony/test/SimulatedCommands.java b/telephony/java/com/android/internal/telephony/test/SimulatedCommands.java
index 37867b2..8b3a3ad 100644
--- a/telephony/java/com/android/internal/telephony/test/SimulatedCommands.java
+++ b/telephony/java/com/android/internal/telephony/test/SimulatedCommands.java
@@ -1392,23 +1392,28 @@
     }
 
     /**
-     *  Set the TTY mode for the CDMA phone
+     *  Set the TTY mode
      *
-     * @param enable is true to enable, false to disable
-     * @param serviceClass is a sum of SERVICE_CLASS_*
+     * @param ttyMode is one of the following:
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
      * @param response is callback message
      */
     public void setTTYMode(int ttyMode, Message response) {
-        Log.w(LOG_TAG, "CDMA not implemented in SimulatedCommands");
+        Log.w(LOG_TAG, "Not implemented in SimulatedCommands");
         unimplemented(response);
     }
 
     /**
-     *  Query the TTY mode for the CDMA phone
+     *  Query the TTY mode
      * (AsyncResult)response.obj).result is an int[] with element [0] set to
-     * 0 for disabled, 1 for enabled.
-     *
-     * @param serviceClass is a sum of SERVICE_CLASS_*
+     * tty mode:
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
+     * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
      * @param response is callback message
      */
     public void queryTTYMode(Message response) {
diff --git a/tools/aapt/AaptAssets.cpp b/tools/aapt/AaptAssets.cpp
index e4f447e..2b2ec7b 100644
--- a/tools/aapt/AaptAssets.cpp
+++ b/tools/aapt/AaptAssets.cpp
@@ -685,13 +685,11 @@
     if (*c != 0) return false;
     if (c-val == 0 || c-val > 3) return false;
 
-    int d = atoi(val);
-    if (d != 0) {
-        if (out) out->mnc = d;
-        return true;
+    if (out) {
+        out->mnc = atoi(val);
     }
 
-    return false;
+    return true;
 }
 
 /*
diff --git a/tools/aapt/XMLNode.cpp b/tools/aapt/XMLNode.cpp
index 8551b0f..c0d7427 100644
--- a/tools/aapt/XMLNode.cpp
+++ b/tools/aapt/XMLNode.cpp
@@ -451,13 +451,15 @@
                     printf("=?0x%x", (int)value.data);
                 } else if (value.dataType == Res_value::TYPE_STRING) {
                     printf("=\"%s\"",
-                           String8(block->getAttributeStringValue(i, &len)).string());
+                            ResTable::normalizeForOutput(String8(block->getAttributeStringValue(i,
+                                        &len)).string()).string());
                 } else {
                     printf("=(type 0x%x)0x%x", (int)value.dataType, (int)value.data);
                 }
                 const char16_t* val = block->getAttributeStringValue(i, &len);
                 if (val != NULL) {
-                    printf(" (Raw: \"%s\")", String8(val).string());
+                    printf(" (Raw: \"%s\")", ResTable::normalizeForOutput(String8(val).string()).
+                            string());
                 }
                 printf("\n");
             }