Merge "Emit better (correct) timestamps that respect AAC upsampling."
diff --git a/api/11.xml b/api/11.xml
index 0edb67c..5fd9c8c 100644
--- a/api/11.xml
+++ b/api/11.xml
@@ -17275,19 +17275,6 @@
 <parameter name="newIntent" type="android.content.Intent">
 </parameter>
 </method>
-<method name="setPersistent"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="deprecated"
- visibility="public"
->
-<parameter name="isPersistent" type="boolean">
-</parameter>
-</method>
 <method name="setProgress"
  return="void"
  abstract="false"
@@ -26050,19 +26037,6 @@
 <parameter name="intent" type="android.content.Intent">
 </parameter>
 </method>
-<method name="setForeground"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="deprecated"
- visibility="public"
->
-<parameter name="isForeground" type="boolean">
-</parameter>
-</method>
 <method name="startForeground"
  return="void"
  abstract="false"
diff --git a/api/current.xml b/api/current.xml
index c9371d0..ac3d690 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -1949,7 +1949,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843553"
+ value="16843552"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -1960,7 +1960,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843552"
+ value="16843551"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -1971,7 +1971,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843554"
+ value="16843553"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -2147,7 +2147,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843585"
+ value="16843584"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -2180,7 +2180,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843566"
+ value="16843565"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -2312,7 +2312,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843561"
+ value="16843560"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -2389,7 +2389,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843550"
+ value="16843549"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -2499,7 +2499,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843563"
+ value="16843562"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -2543,7 +2543,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843578"
+ value="16843577"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -2675,7 +2675,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843582"
+ value="16843581"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -2686,7 +2686,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843581"
+ value="16843580"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -3588,7 +3588,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843579"
+ value="16843578"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -3599,7 +3599,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843577"
+ value="16843576"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -3610,7 +3610,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843545"
+ value="16843544"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -3940,7 +3940,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843547"
+ value="16843546"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -3995,7 +3995,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843548"
+ value="16843547"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -4193,7 +4193,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843588"
+ value="16843587"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -4215,7 +4215,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843593"
+ value="16843592"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -4226,7 +4226,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843590"
+ value="16843589"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -4237,7 +4237,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843591"
+ value="16843590"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -4248,7 +4248,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843589"
+ value="16843588"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -4259,7 +4259,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843592"
+ value="16843591"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -4952,7 +4952,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843546"
+ value="16843545"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -4963,7 +4963,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843564"
+ value="16843563"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -5293,7 +5293,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843559"
+ value="16843558"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -5469,7 +5469,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843586"
+ value="16843585"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -5568,7 +5568,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843580"
+ value="16843579"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -6844,7 +6844,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843565"
+ value="16843564"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -7394,7 +7394,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843560"
+ value="16843559"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -7867,7 +7867,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843573"
+ value="16843572"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -7878,7 +7878,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843574"
+ value="16843573"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -7889,7 +7889,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843575"
+ value="16843574"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -7988,7 +7988,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843571"
+ value="16843570"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -7999,7 +7999,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843572"
+ value="16843571"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -8351,7 +8351,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843583"
+ value="16843582"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -8384,7 +8384,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843549"
+ value="16843548"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -8538,7 +8538,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843576"
+ value="16843575"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -8791,7 +8791,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843562"
+ value="16843561"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -8978,7 +8978,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843584"
+ value="16843583"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -9737,7 +9737,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843556"
+ value="16843555"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -9748,7 +9748,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843555"
+ value="16843554"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -9770,18 +9770,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843557"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="textLineHeight"
- type="int"
- transient="false"
- volatile="false"
- value="16843544"
+ value="16843556"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -10188,7 +10177,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843567"
+ value="16843566"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -10199,7 +10188,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843568"
+ value="16843567"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -10210,7 +10199,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843569"
+ value="16843568"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -10221,7 +10210,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843570"
+ value="16843569"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -10298,7 +10287,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843551"
+ value="16843550"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -10441,7 +10430,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843587"
+ value="16843586"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -10771,7 +10760,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843558"
+ value="16843557"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -23647,19 +23636,6 @@
 <parameter name="newIntent" type="android.content.Intent">
 </parameter>
 </method>
-<method name="setPersistent"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="deprecated"
- visibility="public"
->
-<parameter name="isPersistent" type="boolean">
-</parameter>
-</method>
 <method name="setProgress"
  return="void"
  abstract="false"
@@ -29871,6 +29847,36 @@
 <parameter name="a" type="android.app.Activity">
 </parameter>
 </method>
+<method name="setMaxVisible"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="visibleCrumbs" type="int">
+</parameter>
+</method>
+<method name="setParentTitle"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="title" type="java.lang.CharSequence">
+</parameter>
+<parameter name="shortTitle" type="java.lang.CharSequence">
+</parameter>
+<parameter name="listener" type="android.view.View.OnClickListener">
+</parameter>
+</method>
 <method name="setTitle"
  return="void"
  abstract="false"
@@ -35328,19 +35334,6 @@
 <parameter name="intent" type="android.content.Intent">
 </parameter>
 </method>
-<method name="setForeground"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="deprecated"
- visibility="public"
->
-<parameter name="isForeground" type="boolean">
-</parameter>
-</method>
 <method name="startForeground"
  return="void"
  abstract="false"
@@ -48137,6 +48130,17 @@
  visibility="public"
 >
 </field>
+<field name="MODE_MULTI_PROCESS"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="4"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="MODE_PRIVATE"
  type="int"
  transient="false"
@@ -86508,6 +86512,17 @@
  visibility="public"
 >
 </method>
+<method name="getCallback"
+ return="android.graphics.drawable.Drawable.Callback"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getChangingConfigurations"
  return="int"
  abstract="false"
@@ -148256,6 +148271,23 @@
 <parameter name="view" type="android.view.View">
 </parameter>
 </method>
+<method name="setParentTitle"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="title" type="java.lang.CharSequence">
+</parameter>
+<parameter name="shortTitle" type="java.lang.CharSequence">
+</parameter>
+<parameter name="listener" type="android.view.View.OnClickListener">
+</parameter>
+</method>
 <method name="setPreferenceScreen"
  return="void"
  abstract="false"
@@ -241251,6 +241283,17 @@
  visibility="public"
 >
 </method>
+<method name="isSplitTouchEnabled"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="isTouchable"
  return="boolean"
  abstract="false"
@@ -241403,6 +241446,19 @@
 <parameter name="mode" type="int">
 </parameter>
 </method>
+<method name="setSplitTouchEnabled"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="enabled" type="boolean">
+</parameter>
+</method>
 <method name="setTouchInterceptor"
  return="void"
  abstract="false"
@@ -248864,19 +248920,6 @@
 <parameter name="input" type="android.text.method.KeyListener">
 </parameter>
 </method>
-<method name="setLineHeight"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="lineHeight" type="int">
-</parameter>
-</method>
 <method name="setLineSpacing"
  return="void"
  abstract="false"
@@ -347485,7 +347528,7 @@
  native="false"
  synchronized="false"
  static="true"
- final="true"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -347496,7 +347539,7 @@
  native="false"
  synchronized="false"
  static="true"
- final="true"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -347522,7 +347565,7 @@
  native="false"
  synchronized="false"
  static="true"
- final="true"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -347537,7 +347580,7 @@
  native="false"
  synchronized="false"
  static="true"
- final="true"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -347571,7 +347614,7 @@
  native="false"
  synchronized="false"
  static="true"
- final="true"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -347586,7 +347629,7 @@
  native="false"
  synchronized="false"
  static="true"
- final="true"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -347773,7 +347816,7 @@
  native="false"
  synchronized="false"
  static="true"
- final="true"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
@@ -347814,7 +347857,7 @@
  native="false"
  synchronized="false"
  static="true"
- final="true"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 5f460a2..77cbe0a 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -1730,6 +1730,7 @@
     /**
      * @deprecated As of {@link android.os.Build.VERSION_CODES#GINGERBREAD}
      * this is a no-op.
+     * @hide
      */
     @Deprecated
     public void setPersistent(boolean isPersistent) {
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 43f9d52..cc94aa0 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -2592,6 +2592,12 @@
 
     private final void handleWindowVisibility(IBinder token, boolean show) {
         ActivityClientRecord r = mActivities.get(token);
+        
+        if (r == null) {
+            Log.w(TAG, "handleWindowVisibility: no activity for token " + token);
+            return;
+        }
+        
         if (!show && !r.stopped) {
             performStopActivityInner(r, null, show, false);
         } else if (show && r.stopped) {
diff --git a/core/java/android/app/AlertDialog.java b/core/java/android/app/AlertDialog.java
index ac3ca55..5dc29a9 100644
--- a/core/java/android/app/AlertDialog.java
+++ b/core/java/android/app/AlertDialog.java
@@ -91,7 +91,8 @@
             final float x = ev.getX();
             final float y = ev.getY();
 
-            if (mCancelable && (x < 0 || x > width || y < 0 || y > height)) {
+            if (mCancelable && (x < 0 || x > width || y < 0 || y > height)
+                    &&  mDecor != null && isShowing()) {
                 cancel();
                 return true;
             }
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 7589e99..4018703 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -101,24 +101,23 @@
         Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
         intentToResolve.addCategory(Intent.CATEGORY_INFO);
         intentToResolve.setPackage(packageName);
-        ResolveInfo resolveInfo = resolveActivity(intentToResolve, 0);
+        List<ResolveInfo> ris = queryIntentActivities(intentToResolve, 0);
 
         // Otherwise, try to find a main launcher activity.
-        if (resolveInfo == null) {
+        if (ris == null || ris.size() <= 0) {
             // reuse the intent instance
             intentToResolve.removeCategory(Intent.CATEGORY_INFO);
             intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER);
             intentToResolve.setPackage(packageName);
-            resolveInfo = resolveActivity(intentToResolve, 0);
+            ris = queryIntentActivities(intentToResolve, 0);
         }
-        if (resolveInfo == null) {
+        if (ris == null || ris.size() <= 0) {
             return null;
         }
         Intent intent = new Intent(intentToResolve);
-        // Note: we do NOT fill in the component name; we'll leave the
-        // Intent unspecified, so if there are multiple matches within the
-        // package something reasonable will happen.
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        intent.setClassName(ris.get(0).activityInfo.packageName,
+                ris.get(0).activityInfo.name);
         return intent;
     }
 
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 083612e..72f7286 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -554,10 +554,13 @@
                 return sp;
             }
         }
-        // If somebody else (some other process) changed the prefs
-        // file behind our back, we reload it.  This has been the
-        // historical (if undocumented) behavior.
-        sp.startReloadIfChangedUnexpectedly();
+        if ((mode & Context.MODE_MULTI_PROCESS) != 0 ||
+            getApplicationInfo().targetSdkVersion < android.os.Build.VERSION_CODES.HONEYCOMB) {
+            // If somebody else (some other process) changed the prefs
+            // file behind our back, we reload it.  This has been the
+            // historical (if undocumented) behavior.
+            sp.startReloadIfChangedUnexpectedly();
+        }
         return sp;
     }
 
diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java
index f90fc59..c398e98 100644
--- a/core/java/android/app/Dialog.java
+++ b/core/java/android/app/Dialog.java
@@ -582,7 +582,7 @@
      */
     public boolean onTouchEvent(MotionEvent event) {
         if (mCancelable && mCanceledOnTouchOutside && event.getAction() == MotionEvent.ACTION_DOWN
-                && isOutOfBounds(event)) {
+                && isOutOfBounds(event) && mDecor != null && mShowing) {
             cancel();
             return true;
         }
@@ -998,7 +998,6 @@
      */
     public void cancel() {
         if (mCancelMessage != null) {
-            
             // Obtain a new message so this dialog can be re-used
             Message.obtain(mCancelMessage).sendToTarget();
         }
diff --git a/core/java/android/app/DownloadManager.java b/core/java/android/app/DownloadManager.java
index ed4aed2..a24375e 100644
--- a/core/java/android/app/DownloadManager.java
+++ b/core/java/android/app/DownloadManager.java
@@ -24,6 +24,7 @@
 import android.database.CursorWrapper;
 import android.net.ConnectivityManager;
 import android.net.Uri;
+import android.os.Binder;
 import android.os.Environment;
 import android.os.ParcelFileDescriptor;
 import android.provider.Downloads;
@@ -335,6 +336,7 @@
         private int mAllowedNetworkTypes = ~0; // default to all network types allowed
         private boolean mIsVisibleInDownloadsUi = true;
         private boolean mScannable = false;
+        private boolean mUseSystemCache = false;
         /** if a file is designated as a MediaScanner scannable file, the following value is
          * stored in the database column {@link Downloads.Impl#COLUMN_MEDIA_SCANNED}.
          */
@@ -402,6 +404,24 @@
         }
 
         /**
+         * Set the local destination for the downloaded file to the system cache dir (/cache).
+         * This is only available to System apps with the permission
+         * {@link android.Manifest.permission#ACCESS_CACHE_FILESYSTEM}.
+         * <p>
+         * The downloaded file is not scanned by MediaScanner.
+         * But it can be made scannable by calling {@link #allowScanningByMediaScanner()}.
+         * <p>
+         * Files downloaded to /cache may be deleted by the system at any time to reclaim space.
+         *
+         * @return this object
+         * @hide
+         */
+        public Request setDestinationToSystemCache() {
+            mUseSystemCache = true;
+            return this;
+        }
+
+        /**
          * Set the local destination for the downloaded file to a path within the application's
          * external files directory (as returned by {@link Context#getExternalFilesDir(String)}.
          * <p>
@@ -596,7 +616,9 @@
                 values.put(Downloads.Impl.COLUMN_FILE_NAME_HINT, mDestinationUri.toString());
             } else {
                 values.put(Downloads.Impl.COLUMN_DESTINATION,
-                           Downloads.Impl.DESTINATION_CACHE_PARTITION_PURGEABLE);
+                           (this.mUseSystemCache) ?
+                                   Downloads.Impl.DESTINATION_SYSTEMCACHE_PARTITION :
+                                   Downloads.Impl.DESTINATION_CACHE_PARTITION_PURGEABLE);
             }
             // is the file supposed to be media-scannable?
             values.put(Downloads.Impl.COLUMN_MEDIA_SCANNED, (mScannable) ? SCANNABLE_VALUE_YES :
@@ -918,6 +940,7 @@
                     // non-external storage for a downloaded file, then the following code
                     // should also check for that destination.
                     if (destination == Downloads.Impl.DESTINATION_CACHE_PARTITION ||
+                            destination == Downloads.Impl.DESTINATION_SYSTEMCACHE_PARTITION ||
                             destination == Downloads.Impl.DESTINATION_CACHE_PARTITION_NOROAMING ||
                             destination == Downloads.Impl.DESTINATION_CACHE_PARTITION_PURGEABLE) {
                         // return private uri
diff --git a/core/java/android/app/FragmentBreadCrumbs.java b/core/java/android/app/FragmentBreadCrumbs.java
index 8d76ffe..fb89099 100644
--- a/core/java/android/app/FragmentBreadCrumbs.java
+++ b/core/java/android/app/FragmentBreadCrumbs.java
@@ -45,6 +45,10 @@
 
     // Hahah
     BackStackRecord mTopEntry;
+    BackStackRecord mParentEntry;
+
+    /** Listener to inform when a parent entry is clicked */
+    private OnClickListener mParentClickListener;
 
     public FragmentBreadCrumbs(Context context) {
         this(context, null);
@@ -75,27 +79,51 @@
     }
 
     /**
-     * The maximum number of crumbs to show.
-     * @hide
+     * The maximum number of breadcrumbs to show. Older fragment headers will be hidden from view.
+     * @param visibleCrumbs the number of visible breadcrumbs. This should be greater than zero.
      */
     public void setMaxVisible(int visibleCrumbs) {
+        if (visibleCrumbs < 1) {
+            throw new IllegalArgumentException("visibleCrumbs must be greater than zero");
+        }
         mMaxVisible = visibleCrumbs;
     }
 
     /**
+     * Inserts an optional parent entry at the first position in the breadcrumbs. Selecting this
+     * entry will result in a call to the specified listener's 
+     * {@link android.view.View.OnClickListener#onClick(View)}
+     * method.
+     *
+     * @param title the title for the parent entry
+     * @param shortTitle the short title for the parent entry
+     * @param listener the {@link android.view.View.OnClickListener} to be called when clicked.
+     * A null will result in no action being taken when the parent entry is clicked.
+     */
+    public void setParentTitle(CharSequence title, CharSequence shortTitle,
+            OnClickListener listener) {
+        mParentEntry = createBackStackEntry(title, shortTitle);
+        mParentClickListener = listener;
+        updateCrumbs();
+    }
+
+    private BackStackRecord createBackStackEntry(CharSequence title, CharSequence shortTitle) {
+        if (title == null) return null;
+
+        final BackStackRecord entry = new BackStackRecord(
+                (FragmentManagerImpl) mActivity.getFragmentManager());
+        entry.setBreadCrumbTitle(title);
+        entry.setBreadCrumbShortTitle(shortTitle);
+        return entry;
+    }
+
+    /**
      * Set a custom title for the bread crumbs.  This will be the first entry
      * shown at the left, representing the root of the bread crumbs.  If the
      * title is null, it will not be shown.
      */
     public void setTitle(CharSequence title, CharSequence shortTitle) {
-        if (title == null) {
-            mTopEntry = null;
-        } else {
-            mTopEntry = new BackStackRecord((FragmentManagerImpl)
-                    mActivity.getFragmentManager());
-            mTopEntry.setBreadCrumbTitle(title);
-            mTopEntry.setBreadCrumbShortTitle(shortTitle);
-        }
+        mTopEntry = createBackStackEntry(title, shortTitle);
         updateCrumbs();
     }
 
@@ -151,41 +179,66 @@
         updateCrumbs();
     }
 
+    /**
+     * Returns the number of entries before the backstack, including the title of the current
+     * fragment and any custom parent title that was set.
+     */
+    private int getPreEntryCount() {
+        return (mTopEntry != null ? 1 : 0) + (mParentEntry != null ? 1 : 0);
+    }
+
+    /**
+     * Returns the pre-entry corresponding to the index. If there is a parent and a top entry
+     * set, parent has an index of zero and top entry has an index of 1. Returns null if the
+     * specified index doesn't exist or is null.
+     * @param index should not be more than {@link #getPreEntryCount()} - 1
+     */
+    private BackStackEntry getPreEntry(int index) {
+        // If there's a parent entry, then return that for zero'th item, else top entry.
+        if (mParentEntry != null) {
+            return index == 0 ? mParentEntry : mTopEntry;
+        } else {
+            return mTopEntry;
+        }
+    }
+
     void updateCrumbs() {
         FragmentManager fm = mActivity.getFragmentManager();
         int numEntries = fm.countBackStackEntries();
+        int numPreEntries = getPreEntryCount();
         int numViews = mContainer.getChildCount();
-        for (int i = mTopEntry != null ? -1 : 0; i < numEntries; i++) {
-            BackStackEntry bse = i == -1 ? mTopEntry : fm.getBackStackEntry(i);
-            int viewI = mTopEntry != null ? i + 1 : i;
-            if (viewI < numViews) {
-                View v = mContainer.getChildAt(viewI);
+        for (int i = 0; i < numEntries + numPreEntries; i++) {
+            BackStackEntry bse = i < numPreEntries
+                    ? getPreEntry(i)
+                    : fm.getBackStackEntry(i - numPreEntries);
+            if (i < numViews) {
+                View v = mContainer.getChildAt(i);
                 Object tag = v.getTag();
                 if (tag != bse) {
-                    for (int j = viewI; j < numViews; j++) {
-                        mContainer.removeViewAt(viewI);
+                    for (int j = i; j < numViews; j++) {
+                        mContainer.removeViewAt(i);
                     }
-                    numViews = viewI;
+                    numViews = i;
                 }
             }
-            if (viewI >= numViews) {
+            if (i >= numViews) {
                 final View item = mInflater.inflate(
                         com.android.internal.R.layout.fragment_bread_crumb_item,
                         this, false);
                 final TextView text = (TextView) item.findViewById(com.android.internal.R.id.title);
                 text.setText(bse.getBreadCrumbTitle());
                 text.setTag(bse);
-                if (viewI == 0) {
+                if (i == 0) {
                     item.findViewById(com.android.internal.R.id.left_icon).setVisibility(View.GONE);
                 }
                 mContainer.addView(item);
                 text.setOnClickListener(mOnClickListener);
             }
         }
-        int viewI = mTopEntry != null ? numEntries + 1 : numEntries;
+        int viewI = numEntries + numPreEntries;
         numViews = mContainer.getChildCount();
         while (numViews > viewI) {
-            mContainer.removeViewAt(numViews-1);
+            mContainer.removeViewAt(numViews - 1);
             numViews--;
         }
         // Adjust the visibility and availability of the bread crumbs and divider
@@ -208,8 +261,14 @@
         public void onClick(View v) {
             if (v.getTag() instanceof BackStackEntry) {
                 BackStackEntry bse = (BackStackEntry) v.getTag();
-                mActivity.getFragmentManager().popBackStack(bse.getId(),
-                        bse == mTopEntry? FragmentManager.POP_BACK_STACK_INCLUSIVE : 0);
+                if (bse == mParentEntry) {
+                    if (mParentClickListener != null) {
+                        mParentClickListener.onClick(v);
+                    }
+                } else {
+                    mActivity.getFragmentManager().popBackStack(bse.getId(),
+                            bse == mTopEntry? FragmentManager.POP_BACK_STACK_INCLUSIVE : 0);
+                }
             }
         }
     };
diff --git a/core/java/android/app/Service.java b/core/java/android/app/Service.java
index 00063af..024c5f3 100644
--- a/core/java/android/app/Service.java
+++ b/core/java/android/app/Service.java
@@ -568,6 +568,8 @@
      * be killed when they would like to avoid it), vs allowing the performance
      * of the entire system to be decreased, this method was deemed less
      * important.
+     * 
+     * @hide
      */
     @Deprecated
     public final void setForeground(boolean isForeground) {
@@ -585,7 +587,7 @@
      * would notice if their music stopped playing.
      * 
      * <p>If you need your application to run on platform versions prior to API
-     * level 5, you can use the following model to call the the older {@link #setForeground}
+     * level 5, you can use the following model to call the the older setForeground()
      * or this modern method as appropriate:
      * 
      * {@sample development/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService.java
diff --git a/core/java/android/app/backup/FileBackupHelperBase.java b/core/java/android/app/backup/FileBackupHelperBase.java
index 1e3158f..887a2e6 100644
--- a/core/java/android/app/backup/FileBackupHelperBase.java
+++ b/core/java/android/app/backup/FileBackupHelperBase.java
@@ -81,7 +81,7 @@
         }
     }
 
-    void writeFile(File f, BackupDataInputStream in) {
+    boolean writeFile(File f, BackupDataInputStream in) {
         int result = -1;
 
         // Create the enclosing directory.
@@ -98,6 +98,7 @@
                 mExceptionLogged = true;
             }
         }
+        return (result == 0);
     }
 
     public void writeNewStateDescription(ParcelFileDescriptor fd) {
diff --git a/core/java/android/app/backup/WallpaperBackupHelper.java b/core/java/android/app/backup/WallpaperBackupHelper.java
new file mode 100644
index 0000000..9808200
--- /dev/null
+++ b/core/java/android/app/backup/WallpaperBackupHelper.java
@@ -0,0 +1,124 @@
+/*
+ * 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.app.backup;
+
+import android.app.WallpaperManager;
+import android.content.Context;
+import android.graphics.BitmapFactory;
+import android.os.ParcelFileDescriptor;
+import android.util.Slog;
+
+import java.io.File;
+
+/**
+ * Helper for backing up / restoring wallpapers.  Basically an AbsoluteFileBackupHelper,
+ * but with logic for deciding what to do with restored wallpaper images.
+ *
+ * @hide
+ */
+public class WallpaperBackupHelper extends FileBackupHelperBase implements BackupHelper {
+    private static final String TAG = "WallpaperBackupHelper";
+    private static final boolean DEBUG = false;
+
+    // This path must match what the WallpaperManagerService uses
+    private static final String WALLPAPER_IMAGE = "/data/data/com.android.settings/files/wallpaper";
+
+    // Stage file - should be adjacent to the WALLPAPER_IMAGE location.  The wallpapers
+    // will be saved to this file from the restore stream, then renamed to the proper
+    // location if it's deemed suitable.
+    private static final String STAGE_FILE = "/data/data/com.android.settings/files/wallpaper-tmp";
+
+    Context mContext;
+    String[] mFiles;
+    double mDesiredMinWidth;
+    double mDesiredMinHeight;
+
+    /**
+     * Construct a helper for backing up / restoring the files at the given absolute locations
+     * within the file system.
+     *
+     * @param context
+     * @param files
+     */
+    public WallpaperBackupHelper(Context context, String... files) {
+        super(context);
+
+        mContext = context;
+        mFiles = files;
+
+        WallpaperManager wpm;
+        wpm = (WallpaperManager) context.getSystemService(Context.WALLPAPER_SERVICE);
+        mDesiredMinWidth = (double) wpm.getDesiredMinimumWidth();
+        mDesiredMinHeight = (double) wpm.getDesiredMinimumHeight();
+    }
+
+    /**
+     * Based on oldState, determine which of the files from the application's data directory
+     * need to be backed up, write them to the data stream, and fill in newState with the
+     * state as it exists now.
+     */
+    public void performBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
+            ParcelFileDescriptor newState) {
+        performBackup_checked(oldState, data, newState, mFiles, mFiles);
+    }
+
+    /**
+     * Restore one absolute file entity from the restore stream.  If we're restoring the
+     * magic wallpaper file, take specific action to determine whether it is suitable for
+     * the current device.
+     */
+    public void restoreEntity(BackupDataInputStream data) {
+        final String key = data.getKey();
+        if (isKeyInList(key, mFiles)) {
+            if (key.equals(WALLPAPER_IMAGE)) {
+                // restore the file to the stage for inspection
+                File f = new File(STAGE_FILE);
+                if (writeFile(f, data)) {
+
+                    // Preflight the restored image's dimensions without loading it
+                    BitmapFactory.Options options = new BitmapFactory.Options();
+                    options.inJustDecodeBounds = true;
+                    BitmapFactory.decodeFile(STAGE_FILE, options);
+
+                    if (DEBUG) Slog.v(TAG, "Restoring wallpaper image w=" + options.outWidth
+                            + " h=" + options.outHeight);
+
+                    // how much does the image differ from our preference?
+                    double widthRatio = mDesiredMinWidth / options.outWidth;
+                    double heightRatio = mDesiredMinHeight / options.outHeight;
+                    if (widthRatio > 0.8 && widthRatio < 1.25
+                            && heightRatio > 0.8 && heightRatio < 1.25) {
+                        // sufficiently close to our resolution; go ahead and use it
+                        if (DEBUG) Slog.v(TAG, "wallpaper dimension match; using");
+                        f.renameTo(new File(WALLPAPER_IMAGE));
+                        // TODO: spin a service to copy the restored image to sd/usb storage,
+                        // since it does not exist anywhere other than the private wallpaper
+                        // file.
+                    } else {
+                        if (DEBUG) Slog.v(TAG, "dimensions too far off: wr=" + widthRatio
+                                + " hr=" + heightRatio);
+                        f.delete();
+                    }
+                }
+            } else {
+                // Some other normal file; just decode it to its destination
+                File f = new File(key);
+                writeFile(f, data);
+            }
+        }
+    }
+}
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 277dc2f..b128d31 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -80,6 +80,25 @@
     public static final int MODE_APPEND = 0x8000;
 
     /**
+     * SharedPreference loading flag: when set, the file on disk will
+     * be checked for modification even if the shared preferences
+     * instance is already loaded in this process.  This behavior is
+     * sometimes desired in cases where the application has multiple
+     * processes, all writing to the same SharedPreferences file.
+     * Generally there are better forms of communication between
+     * processes, though.
+     *
+     * <p>This was the legacy (but undocumented) behavior in and
+     * before Gingerbread (Android 2.3) and this flag is implied when
+     * targetting such releases.  For applications targetting SDK
+     * versions <em>greater than</em> Android 2.3, this flag must be
+     * explicitly set if desired.
+     *
+     * @see #getSharedPreferences
+     */
+    public static final int MODE_MULTI_PROCESS = 0x0004;
+
+    /**
      * Flag for {@link #bindService}: automatically create the service as long
      * as the binding exists.  Note that while this will create the service,
      * its {@link android.app.Service#onStartCommand}
@@ -318,7 +337,11 @@
      * editor (SharedPreferences.edit()) and then commit changes (Editor.commit()).
      * @param mode Operating mode.  Use 0 or {@link #MODE_PRIVATE} for the
      * default operation, {@link #MODE_WORLD_READABLE}
-     * and {@link #MODE_WORLD_WRITEABLE} to control permissions.
+     * and {@link #MODE_WORLD_WRITEABLE} to control permissions.  The bit
+     * {@link #MODE_MULTI_PROCESS} can also be used if multiple processes
+     * are mutating the same SharedPreferences file.  {@link #MODE_MULTI_PROCESS}
+     * is always on in apps targetting Gingerbread (Android 2.3) and below, and
+     * off by default in later versions.
      *
      * @return Returns the single SharedPreferences instance that can be used
      *         to retrieve and modify the preference values.
@@ -326,6 +349,7 @@
      * @see #MODE_PRIVATE
      * @see #MODE_WORLD_READABLE
      * @see #MODE_WORLD_WRITEABLE
+     * @see #MODE_MULTI_PROCESS
      */
     public abstract SharedPreferences getSharedPreferences(String name,
             int mode);
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java
index dde198e..e07dbb8 100644
--- a/core/java/android/content/SyncManager.java
+++ b/core/java/android/content/SyncManager.java
@@ -735,14 +735,24 @@
 
         final Pair<Long, Long> previousSettings =
                 mSyncStorageEngine.getBackoff(op.account, op.authority);
-        long newDelayInMs;
-        if (previousSettings == null || previousSettings.second <= 0) {
+        long newDelayInMs = -1;
+        if (previousSettings != null) {
+            // don't increase backoff before current backoff is expired. This will happen for op's
+            // with ignoreBackoff set.
+            if (now < previousSettings.first) {
+                if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                    Log.v(TAG, "Still in backoff, do not increase it. "
+                        + "Remaining: " + ((previousSettings.first - now) / 1000) + " seconds.");
+                }
+                return;
+            }
+            // Subsequent delays are the double of the previous delay
+            newDelayInMs = previousSettings.second * 2;
+        }
+        if (newDelayInMs <= 0) {
             // The initial delay is the jitterized INITIAL_SYNC_RETRY_TIME_IN_MS
             newDelayInMs = jitterize(INITIAL_SYNC_RETRY_TIME_IN_MS,
                     (long)(INITIAL_SYNC_RETRY_TIME_IN_MS * 1.1));
-        } else {
-            // Subsequent delays are the double of the previous delay
-            newDelayInMs = previousSettings.second * 2;
         }
 
         // Cap the delay
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 2c2e7d7..ac7a95a 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -926,7 +926,7 @@
      *
      * @param packageName The name of the package to inspect.
      * 
-     * @return Returns either an Intent that can be used to
+     * @return Returns either a fully-qualified Intent that can be used to
      * launch the main activity in the package, or null if the package does
      * not contain such an activity.
      */
diff --git a/core/java/android/hardware/UsbManager.java b/core/java/android/hardware/UsbManager.java
index 9709c2d..1003bf9 100644
--- a/core/java/android/hardware/UsbManager.java
+++ b/core/java/android/hardware/UsbManager.java
@@ -27,32 +27,12 @@
  */
 public class UsbManager {
    /**
-     * Broadcast Action:  A broadcast for USB connected events.
-     *
-     * The extras bundle will name/value pairs with the name of the function
-     * and a value of either {@link #USB_FUNCTION_ENABLED} or {@link #USB_FUNCTION_DISABLED}.
-     * Possible USB function names include {@link #USB_FUNCTION_MASS_STORAGE},
-     * {@link #USB_FUNCTION_ADB}, {@link #USB_FUNCTION_RNDIS} and {@link #USB_FUNCTION_MTP}.
-     */
-    public static final String ACTION_USB_CONNECTED =
-            "android.hardware.action.USB_CONNECTED";
-
-   /**
-     * Broadcast Action:  A broadcast for USB disconnected events.
-     */
-    public static final String ACTION_USB_DISCONNECTED =
-            "android.hardware.action.USB_DISCONNECTED";
-
-   /**
      * Broadcast Action:  A sticky broadcast for USB state change events.
      *
-     * This is a sticky broadcast for clients that are interested in both USB connect and
-     * disconnect events.  If you are only concerned with one or the other, you can use
-     * {@link #ACTION_USB_CONNECTED} or {@link #ACTION_USB_DISCONNECTED} to avoid receiving
-     * unnecessary broadcasts.  The boolean {@link #USB_CONNECTED} extra indicates whether
-     * USB is connected or disconnected.
-     * The extras bundle will also contain name/value pairs with the name of the function
-     * and a value of either {@link #USB_FUNCTION_ENABLED} or {@link #USB_FUNCTION_DISABLED}.
+     * This is a sticky broadcast for clients that includes USB connected/disconnected state,
+     * the USB configuration that is currently set and a bundle containing name/value pairs
+     * with the names of the functions and a value of either {@link #USB_FUNCTION_ENABLED}
+     * or {@link #USB_FUNCTION_DISABLED}.
      * Possible USB function names include {@link #USB_FUNCTION_MASS_STORAGE},
      * {@link #USB_FUNCTION_ADB}, {@link #USB_FUNCTION_RNDIS} and {@link #USB_FUNCTION_MTP}.
      */
@@ -84,38 +64,44 @@
     public static final String USB_CONNECTED = "connected";
 
     /**
+     * Integer extra containing currently set USB configuration.
+     * Used in extras for the {@link #ACTION_USB_STATE} broadcast.
+     */
+    public static final String USB_CONFIGURATION = "configuration";
+
+    /**
      * Name of the USB mass storage USB function.
-     * Used in extras for the {@link #ACTION_USB_CONNECTED} broadcast
+     * Used in extras for the {@link #ACTION_USB_STATE} broadcast
      */
     public static final String USB_FUNCTION_MASS_STORAGE = "mass_storage";
 
     /**
      * Name of the adb USB function.
-     * Used in extras for the {@link #ACTION_USB_CONNECTED} broadcast
+     * Used in extras for the {@link #ACTION_USB_STATE} broadcast
      */
     public static final String USB_FUNCTION_ADB = "adb";
 
     /**
      * Name of the RNDIS ethernet USB function.
-     * Used in extras for the {@link #ACTION_USB_CONNECTED} broadcast
+     * Used in extras for the {@link #ACTION_USB_STATE} broadcast
      */
     public static final String USB_FUNCTION_RNDIS = "rndis";
 
     /**
      * Name of the MTP USB function.
-     * Used in extras for the {@link #ACTION_USB_CONNECTED} broadcast
+     * Used in extras for the {@link #ACTION_USB_STATE} broadcast
      */
     public static final String USB_FUNCTION_MTP = "mtp";
 
     /**
      * Value indicating that a USB function is enabled.
-     * Used in extras for the {@link #ACTION_USB_CONNECTED} broadcast
+     * Used in extras for the {@link #ACTION_USB_STATE} broadcast
      */
     public static final String USB_FUNCTION_ENABLED = "enabled";
 
     /**
      * Value indicating that a USB function is disabled.
-     * Used in extras for the {@link #ACTION_USB_CONNECTED} broadcast
+     * Used in extras for the {@link #ACTION_USB_STATE} broadcast
      */
     public static final String USB_FUNCTION_DISABLED = "disabled";
 
diff --git a/core/java/android/net/InterfaceConfiguration.java b/core/java/android/net/InterfaceConfiguration.java
index 915c5d7..980048c 100644
--- a/core/java/android/net/InterfaceConfiguration.java
+++ b/core/java/android/net/InterfaceConfiguration.java
@@ -19,14 +19,17 @@
 import android.os.Parcelable;
 import android.os.Parcel;
 
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
 /**
  * A simple object for retrieving / setting an interfaces configuration
  * @hide
  */
 public class InterfaceConfiguration implements Parcelable {
     public String hwAddr;
-    public int ipAddr;
-    public int netmask;
+    public InetAddress addr;
+    public InetAddress mask;
     public String interfaceFlags;
 
     public InterfaceConfiguration() {
@@ -36,21 +39,14 @@
     public String toString() {
         StringBuffer str = new StringBuffer();
 
-        str.append("ipddress "); putAddress(str, ipAddr);
-        str.append(" netmask "); putAddress(str, netmask);
+        str.append("ipddress "); str.append(addr.toString());
+        str.append(" netmask "); str.append(mask.toString());
         str.append(" flags ").append(interfaceFlags);
         str.append(" hwaddr ").append(hwAddr);
 
         return str.toString();
     }
 
-    private static void putAddress(StringBuffer buf, int addr) {
-        buf.append((addr >> 24) & 0xff).append('.').
-            append((addr >> 16) & 0xff).append('.').
-            append((addr >> 8) & 0xff).append('.').
-            append(addr & 0xff);
-    }
-
     /** Implement the Parcelable interface {@hide} */
     public int describeContents() {
         return 0;
@@ -59,8 +55,18 @@
     /** Implement the Parcelable interface {@hide} */
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeString(hwAddr);
-        dest.writeInt(ipAddr);
-        dest.writeInt(netmask);
+        if (addr != null) {
+            dest.writeByte((byte)1);
+            dest.writeByteArray(addr.getAddress());
+        } else {
+            dest.writeByte((byte)0);
+        }
+        if (mask != null) {
+            dest.writeByte((byte)1);
+            dest.writeByteArray(mask.getAddress());
+        } else {
+            dest.writeByte((byte)0);
+        }
         dest.writeString(interfaceFlags);
     }
 
@@ -70,8 +76,16 @@
             public InterfaceConfiguration createFromParcel(Parcel in) {
                 InterfaceConfiguration info = new InterfaceConfiguration();
                 info.hwAddr = in.readString();
-                info.ipAddr = in.readInt();
-                info.netmask = in.readInt();
+                if (in.readByte() == 1) {
+                    try {
+                        info.addr = InetAddress.getByAddress(in.createByteArray());
+                    } catch (UnknownHostException e) {}
+                }
+                if (in.readByte() == 1) {
+                    try {
+                        info.mask = InetAddress.getByAddress(in.createByteArray());
+                    } catch (UnknownHostException e) {}
+                }
                 info.interfaceFlags = in.readString();
                 return info;
             }
diff --git a/core/java/android/net/dhcp/DhcpAckPacket.java b/core/java/android/net/dhcp/DhcpAckPacket.java
new file mode 100644
index 0000000..900a0e6
--- /dev/null
+++ b/core/java/android/net/dhcp/DhcpAckPacket.java
@@ -0,0 +1,110 @@
+/*
+ * 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.net.dhcp;
+
+import java.net.InetAddress;
+import java.net.Inet4Address;
+import java.nio.ByteBuffer;
+import java.util.List;
+
+/**
+ * This class implements the DHCP-ACK packet.
+ */
+class DhcpAckPacket extends DhcpPacket {
+
+    /**
+     * The address of the server which sent this packet.
+     */
+    private final InetAddress mSrcIp;
+
+    DhcpAckPacket(int transId, boolean broadcast, InetAddress serverAddress,
+                  InetAddress clientIp, byte[] clientMac) {
+        super(transId, Inet4Address.ANY, clientIp, Inet4Address.ANY,
+            Inet4Address.ANY, clientMac, broadcast);
+        mBroadcast = broadcast;
+        mSrcIp = serverAddress;
+    }
+
+    public String toString() {
+        String s = super.toString();
+        String dnsServers = " DNS servers: ";
+
+        for (InetAddress dnsServer: mDnsServers) {
+            dnsServers += dnsServer.toString() + " ";
+        }
+
+        return s + " ACK: your new IP " + mYourIp +
+                ", netmask " + mSubnetMask +
+                ", gateway " + mGateway + dnsServers +
+                ", lease time " + mLeaseTime;
+    }
+
+    /**
+     * Fills in a packet with the requested ACK parameters.
+     */
+    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
+        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
+        InetAddress destIp = mBroadcast ? Inet4Address.ALL : mYourIp;
+        InetAddress srcIp = mBroadcast ? Inet4Address.ANY : mSrcIp;
+
+        fillInPacket(encap, destIp, srcIp, destUdp, srcUdp, result,
+            DHCP_BOOTREPLY, mBroadcast);
+        result.flip();
+        return result;
+    }
+
+    /**
+     * Adds the optional parameters to the client-generated ACK packet.
+     */
+    void finishPacket(ByteBuffer buffer) {
+        addTlv(buffer, DHCP_MESSAGE_TYPE, DHCP_MESSAGE_TYPE_ACK);
+        addTlv(buffer, DHCP_SERVER_IDENTIFIER, mServerIdentifier);
+        addTlv(buffer, DHCP_LEASE_TIME, mLeaseTime);
+
+        // the client should renew at 1/2 the lease-expiry interval
+        if (mLeaseTime != null) {
+            addTlv(buffer, DHCP_RENEWAL_TIME,
+                Integer.valueOf(mLeaseTime.intValue() / 2));
+        }
+
+        addTlv(buffer, DHCP_SUBNET_MASK, mSubnetMask);
+        addTlv(buffer, DHCP_ROUTER, mGateway);
+        addTlv(buffer, DHCP_DOMAIN_NAME, mDomainName);
+        addTlv(buffer, DHCP_BROADCAST_ADDRESS, mBroadcastAddress);
+        addTlv(buffer, DHCP_DNS_SERVER, mDnsServers);
+        addTlvEnd(buffer);
+    }
+
+    /**
+     * Un-boxes an Integer, returning 0 if a null reference is supplied.
+     */
+    private static final int getInt(Integer v) {
+        if (v == null) {
+            return 0;
+        } else {
+            return v.intValue();
+        }
+    }
+
+    /**
+     * Notifies the specified state machine of the ACK packet parameters.
+     */
+    public void doNextOp(DhcpStateMachine machine) {
+        machine.onAckReceived(mYourIp, mSubnetMask, mGateway, mDnsServers,
+            mServerIdentifier, getInt(mLeaseTime));
+    }
+}
diff --git a/core/java/android/net/dhcp/DhcpDeclinePacket.java b/core/java/android/net/dhcp/DhcpDeclinePacket.java
new file mode 100644
index 0000000..7646eb4
--- /dev/null
+++ b/core/java/android/net/dhcp/DhcpDeclinePacket.java
@@ -0,0 +1,65 @@
+/*
+ * 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.net.dhcp;
+
+import java.net.InetAddress;
+import java.nio.ByteBuffer;
+
+/**
+ * This class implements the DHCP-DECLINE packet.
+ */
+class DhcpDeclinePacket extends DhcpPacket {
+    /**
+     * Generates a DECLINE packet with the specified parameters.
+     */
+    DhcpDeclinePacket(int transId, InetAddress clientIp, InetAddress yourIp,
+                      InetAddress nextIp, InetAddress relayIp,
+                      byte[] clientMac) {
+        super(transId, clientIp, yourIp, nextIp, relayIp, clientMac, false);
+    }
+
+    public String toString() {
+        String s = super.toString();
+        return s + " DECLINE";
+    }
+
+    /**
+     * Fills in a packet with the requested DECLINE attributes.
+     */
+    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
+        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
+
+        fillInPacket(encap, mClientIp, mYourIp, destUdp, srcUdp, result,
+            DHCP_BOOTREQUEST, false);
+        result.flip();
+        return result;
+    }
+
+    /**
+     * Adds optional parameters to the DECLINE packet.
+     */
+    void finishPacket(ByteBuffer buffer) {
+        // None needed
+    }
+
+    /**
+     * Informs the state machine of the arrival of a DECLINE packet.
+     */
+    public void doNextOp(DhcpStateMachine machine) {
+        machine.onDeclineReceived(mClientMac, mRequestedIp);
+    }
+}
diff --git a/core/java/android/net/dhcp/DhcpDiscoverPacket.java b/core/java/android/net/dhcp/DhcpDiscoverPacket.java
new file mode 100644
index 0000000..0e2d39b
--- /dev/null
+++ b/core/java/android/net/dhcp/DhcpDiscoverPacket.java
@@ -0,0 +1,71 @@
+/*
+ * 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.net.dhcp;
+
+import java.net.InetAddress;
+import java.net.Inet4Address;
+import java.nio.ByteBuffer;
+
+/**
+ * This class implements the DHCP-DISCOVER packet.
+ */
+class DhcpDiscoverPacket extends DhcpPacket {
+    /**
+     * Generates a DISCOVER packet with the specified parameters.
+     */
+    DhcpDiscoverPacket(int transId, byte[] clientMac, boolean broadcast) {
+        super(transId, Inet4Address.ANY, Inet4Address.ANY, Inet4Address.ANY,
+            Inet4Address.ANY, clientMac, broadcast);
+    }
+
+    public String toString() {
+        String s = super.toString();
+        return s + " DISCOVER " +
+                (mBroadcast ? "broadcast " : "unicast ");
+    }
+
+    /**
+     * Fills in a packet with the requested DISCOVER parameters.
+     */
+    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
+        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
+        InetAddress destIp = Inet4Address.ALL;
+
+        fillInPacket(encap, Inet4Address.ALL, Inet4Address.ANY, destUdp, srcUdp,
+            result, DHCP_BOOTREQUEST, true);
+        result.flip();
+        return result;
+    }
+
+    /**
+     * Adds optional parameters to a DISCOVER packet.
+     */
+    void finishPacket(ByteBuffer buffer) {
+        addTlv(buffer, DHCP_MESSAGE_TYPE, DHCP_MESSAGE_TYPE_DISCOVER);
+        addTlv(buffer, DHCP_PARAMETER_LIST, mRequestedParams);
+        addTlvEnd(buffer);
+    }
+
+    /**
+     * Informs the state machine of the arrival of a DISCOVER packet.
+     */
+    public void doNextOp(DhcpStateMachine machine) {
+        // currently omitted: host name
+        machine.onDiscoverReceived(mBroadcast, mTransId, mClientMac,
+            mRequestedParams);
+    }
+}
diff --git a/core/java/android/net/dhcp/DhcpInformPacket.java b/core/java/android/net/dhcp/DhcpInformPacket.java
new file mode 100644
index 0000000..da73216
--- /dev/null
+++ b/core/java/android/net/dhcp/DhcpInformPacket.java
@@ -0,0 +1,76 @@
+/*
+ * 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.net.dhcp;
+
+import java.net.InetAddress;
+import java.nio.ByteBuffer;
+
+/**
+ * This class implements the (unused) DHCP-INFORM packet.
+ */
+class DhcpInformPacket extends DhcpPacket {
+    /**
+     * Generates an INFORM packet with the specified parameters.
+     */
+    DhcpInformPacket(int transId, InetAddress clientIp, InetAddress yourIp,
+                     InetAddress nextIp, InetAddress relayIp,
+                     byte[] clientMac) {
+        super(transId, clientIp, yourIp, nextIp, relayIp, clientMac, false);
+    }
+
+    public String toString() {
+        String s = super.toString();
+        return s + " INFORM";
+    }
+
+    /**
+     * Builds an INFORM packet.
+     */
+    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
+        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
+
+        fillInPacket(encap, mClientIp, mYourIp, destUdp, srcUdp, result,
+            DHCP_BOOTREQUEST, false);
+        result.flip();
+        return result;
+    }
+
+    /**
+     * Adds additional parameters to the INFORM packet.
+     */
+    void finishPacket(ByteBuffer buffer) {
+        byte[] clientId = new byte[7];
+
+        clientId[0] = CLIENT_ID_ETHER;
+        System.arraycopy(mClientMac, 0, clientId, 1, 6);
+
+        addTlv(buffer, DHCP_MESSAGE_TYPE, DHCP_MESSAGE_TYPE_REQUEST);
+        addTlv(buffer, DHCP_PARAMETER_LIST, mRequestedParams);
+        addTlvEnd(buffer);
+    }
+
+    /**
+     * Informs the state machine of the arrival of an INFORM packet.  Not
+     * used currently.
+     */
+    public void doNextOp(DhcpStateMachine machine) {
+        InetAddress clientRequest =
+            mRequestedIp == null ? mClientIp : mRequestedIp;
+        machine.onInformReceived(mTransId, mClientMac, clientRequest,
+            mRequestedParams);
+    }
+}
diff --git a/core/java/android/net/dhcp/DhcpNakPacket.java b/core/java/android/net/dhcp/DhcpNakPacket.java
new file mode 100644
index 0000000..1f340ad
--- /dev/null
+++ b/core/java/android/net/dhcp/DhcpNakPacket.java
@@ -0,0 +1,72 @@
+/*
+ * 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.net.dhcp;
+
+import java.net.InetAddress;
+import java.net.Inet4Address;
+import java.nio.ByteBuffer;
+
+/**
+ * This class implements the DHCP-NAK packet.
+ */
+class DhcpNakPacket extends DhcpPacket {
+    /**
+     * Generates a NAK packet with the specified parameters.
+     */
+    DhcpNakPacket(int transId, InetAddress clientIp, InetAddress yourIp,
+                  InetAddress nextIp, InetAddress relayIp,
+                  byte[] clientMac) {
+        super(transId, Inet4Address.ANY, Inet4Address.ANY, nextIp, relayIp,
+            clientMac, false);
+    }
+
+    public String toString() {
+        String s = super.toString();
+        return s + " NAK, reason " + (mMessage == null ? "(none)" : mMessage);
+    }
+
+    /**
+     * Fills in a packet with the requested NAK attributes.
+     */
+    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
+        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
+        InetAddress destIp = mClientIp;
+        InetAddress srcIp = mYourIp;
+
+        fillInPacket(encap, destIp, srcIp, destUdp, srcUdp, result,
+            DHCP_BOOTREPLY, mBroadcast);
+        result.flip();
+        return result;
+    }
+
+    /**
+     * Adds the optional parameters to the client-generated NAK packet.
+     */
+    void finishPacket(ByteBuffer buffer) {
+        addTlv(buffer, DHCP_MESSAGE_TYPE, DHCP_MESSAGE_TYPE_NAK);
+        addTlv(buffer, DHCP_SERVER_IDENTIFIER, mServerIdentifier);
+        addTlv(buffer, DHCP_MESSAGE, mMessage);
+        addTlvEnd(buffer);
+    }
+
+    /**
+     * Notifies the specified state machine of the newly-arrived NAK packet.
+     */
+    public void doNextOp(DhcpStateMachine machine) {
+        machine.onNakReceived();
+    }
+}
diff --git a/core/java/android/net/dhcp/DhcpOfferPacket.java b/core/java/android/net/dhcp/DhcpOfferPacket.java
new file mode 100644
index 0000000..3d79f4d
--- /dev/null
+++ b/core/java/android/net/dhcp/DhcpOfferPacket.java
@@ -0,0 +1,101 @@
+/*
+ * 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.net.dhcp;
+
+import java.net.InetAddress;
+import java.net.Inet4Address;
+import java.nio.ByteBuffer;
+import java.util.List;
+
+/**
+ * This class implements the DHCP-OFFER packet.
+ */
+class DhcpOfferPacket extends DhcpPacket {
+    /**
+     * The IP address of the server which sent this packet.
+     */
+    private final InetAddress mSrcIp;
+
+    /**
+     * Generates a OFFER packet with the specified parameters.
+     */
+    DhcpOfferPacket(int transId, boolean broadcast, InetAddress serverAddress,
+                    InetAddress clientIp, byte[] clientMac) {
+        super(transId, Inet4Address.ANY, clientIp, Inet4Address.ANY,
+            Inet4Address.ANY, clientMac, broadcast);
+        mSrcIp = serverAddress;
+    }
+
+    public String toString() {
+        String s = super.toString();
+        String dnsServers = ", DNS servers: ";
+
+        if (mDnsServers != null) {
+            for (InetAddress dnsServer: mDnsServers) {
+                dnsServers += dnsServer + " ";
+            }
+        }
+
+        return s + " OFFER, ip " + mYourIp + ", mask " + mSubnetMask +
+                dnsServers + ", gateway " + mGateway +
+                " lease time " + mLeaseTime + ", domain " + mDomainName;
+    }
+
+    /**
+     * Fills in a packet with the specified OFFER attributes.
+     */
+    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
+        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
+        InetAddress destIp = mBroadcast ? Inet4Address.ALL : mYourIp;
+        InetAddress srcIp = mBroadcast ? Inet4Address.ANY : mSrcIp;
+
+        fillInPacket(encap, destIp, srcIp, destUdp, srcUdp, result,
+            DHCP_BOOTREPLY, mBroadcast);
+        result.flip();
+        return result;
+    }
+
+    /**
+     * Adds the optional parameters to the server-generated OFFER packet.
+     */
+    void finishPacket(ByteBuffer buffer) {
+        addTlv(buffer, DHCP_MESSAGE_TYPE, DHCP_MESSAGE_TYPE_OFFER);
+        addTlv(buffer, DHCP_SERVER_IDENTIFIER, mServerIdentifier);
+        addTlv(buffer, DHCP_LEASE_TIME, mLeaseTime);
+
+        // the client should renew at 1/2 the lease-expiry interval
+        if (mLeaseTime != null) {
+            addTlv(buffer, DHCP_RENEWAL_TIME,
+                Integer.valueOf(mLeaseTime.intValue() / 2));
+        }
+
+        addTlv(buffer, DHCP_SUBNET_MASK, mSubnetMask);
+        addTlv(buffer, DHCP_ROUTER, mGateway);
+        addTlv(buffer, DHCP_DOMAIN_NAME, mDomainName);
+        addTlv(buffer, DHCP_BROADCAST_ADDRESS, mBroadcastAddress);
+        addTlv(buffer, DHCP_DNS_SERVER, mDnsServers);
+        addTlvEnd(buffer);
+    }
+
+    /**
+     * Notifies the state machine of the OFFER packet parameters.
+     */
+    public void doNextOp(DhcpStateMachine machine) {
+        machine.onOfferReceived(mBroadcast, mTransId, mClientMac, mYourIp,
+            mServerIdentifier);
+    }
+}
diff --git a/core/java/android/net/dhcp/DhcpPacket.java b/core/java/android/net/dhcp/DhcpPacket.java
new file mode 100644
index 0000000..e009f70
--- /dev/null
+++ b/core/java/android/net/dhcp/DhcpPacket.java
@@ -0,0 +1,899 @@
+package android.net.dhcp;
+
+import android.util.Log;
+
+import java.io.UnsupportedEncodingException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.charset.Charsets;
+import java.nio.ShortBuffer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Defines basic data and operations needed to build and use packets for the
+ * DHCP protocol.  Subclasses create the specific packets used at each
+ * stage of the negotiation.
+ */
+abstract class DhcpPacket {
+    protected static final String TAG = "DhcpPacket";
+
+    /**
+     * Packet encapsulations.
+     */
+    public static final int ENCAP_L2 = 0;    // EthernetII header included
+    public static final int ENCAP_L3 = 1;    // IP/UDP header included
+    public static final int ENCAP_BOOTP = 2; // BOOTP contents only
+
+    /**
+     * IP layer definitions.
+     */
+    private static final byte IP_TYPE_UDP = (byte) 0x11;
+
+    /**
+     * IP: Version 4, Header Length 20 bytes
+     */
+    private static final byte IP_VERSION_HEADER_LEN = (byte) 0x45;
+
+    /**
+     * IP: Flags 0, Fragment Offset 0, Don't Fragment
+     */
+    private static final short IP_FLAGS_OFFSET = (short) 0x4000;
+
+    /**
+     * IP: TOS
+     */
+    private static final byte IP_TOS_LOWDELAY = (byte) 0x10;
+
+    /**
+     * IP: TTL -- use default 64 from RFC1340
+     */
+    private static final byte IP_TTL = (byte) 0x40;
+
+    /**
+     * The client DHCP port.
+     */
+    static final short DHCP_CLIENT = (short) 68;
+
+    /**
+     * The server DHCP port.
+     */
+    static final short DHCP_SERVER = (short) 67;
+
+    /**
+     * The message op code indicating a request from a client.
+     */
+    protected static final byte DHCP_BOOTREQUEST = (byte) 1;
+
+    /**
+     * The message op code indicating a response from the server.
+     */
+    protected static final byte DHCP_BOOTREPLY = (byte) 2;
+
+    /**
+     * The code type used to identify an Ethernet MAC address in the
+     * Client-ID field.
+     */
+    protected static final byte CLIENT_ID_ETHER = (byte) 1;
+
+    /**
+     * The maximum length of a packet that can be constructed.
+     */
+    protected static final int MAX_LENGTH = 1500;
+
+    /**
+     * DHCP Optional Type: DHCP Subnet Mask
+     */
+    protected static final byte DHCP_SUBNET_MASK = 1;
+    protected InetAddress mSubnetMask;
+
+    /**
+     * DHCP Optional Type: DHCP Router
+     */
+    protected static final byte DHCP_ROUTER = 3;
+    protected InetAddress mGateway;
+
+    /**
+     * DHCP Optional Type: DHCP DNS Server
+     */
+    protected static final byte DHCP_DNS_SERVER = 6;
+    protected List<InetAddress> mDnsServers;
+
+    /**
+     * DHCP Optional Type: DHCP Host Name
+     */
+    protected static final byte DHCP_HOST_NAME = 12;
+    protected String mHostName;
+
+    /**
+     * DHCP Optional Type: DHCP DOMAIN NAME
+     */
+    protected static final byte DHCP_DOMAIN_NAME = 15;
+    protected String mDomainName;
+
+    /**
+     * DHCP Optional Type: DHCP BROADCAST ADDRESS
+     */
+    protected static final byte DHCP_BROADCAST_ADDRESS = 28;
+    protected InetAddress mBroadcastAddress;
+
+    /**
+     * DHCP Optional Type: DHCP Requested IP Address
+     */
+    protected static final byte DHCP_REQUESTED_IP = 50;
+    protected InetAddress mRequestedIp;
+
+    /**
+     * DHCP Optional Type: DHCP Lease Time
+     */
+    protected static final byte DHCP_LEASE_TIME = 51;
+    protected Integer mLeaseTime;
+
+    /**
+     * DHCP Optional Type: DHCP Message Type
+     */
+    protected static final byte DHCP_MESSAGE_TYPE = 53;
+    // the actual type values
+    protected static final byte DHCP_MESSAGE_TYPE_DISCOVER = 1;
+    protected static final byte DHCP_MESSAGE_TYPE_OFFER = 2;
+    protected static final byte DHCP_MESSAGE_TYPE_REQUEST = 3;
+    protected static final byte DHCP_MESSAGE_TYPE_DECLINE = 4;
+    protected static final byte DHCP_MESSAGE_TYPE_ACK = 5;
+    protected static final byte DHCP_MESSAGE_TYPE_NAK = 6;
+    protected static final byte DHCP_MESSAGE_TYPE_INFORM = 8;
+
+    /**
+     * DHCP Optional Type: DHCP Server Identifier
+     */
+    protected static final byte DHCP_SERVER_IDENTIFIER = 54;
+    protected InetAddress mServerIdentifier;
+
+    /**
+     * DHCP Optional Type: DHCP Parameter List
+     */
+    protected static final byte DHCP_PARAMETER_LIST = 55;
+    protected byte[] mRequestedParams;
+
+    /**
+     * DHCP Optional Type: DHCP MESSAGE
+     */
+    protected static final byte DHCP_MESSAGE = 56;
+    protected String mMessage;
+
+    /**
+     * DHCP Optional Type: DHCP Renewal Time Value
+     */
+    protected static final byte DHCP_RENEWAL_TIME = 58;
+
+    /**
+     * DHCP Optional Type: Vendor Class Identifier
+     */
+    protected static final byte DHCP_VENDOR_CLASS_ID = 60;
+
+    /**
+     * DHCP Optional Type: DHCP Client Identifier
+     */
+    protected static final byte DHCP_CLIENT_IDENTIFIER = 61;
+
+    /**
+     * The transaction identifier used in this particular DHCP negotiation
+     */
+    protected final int mTransId;
+
+    /**
+     * The IP address of the client host.  This address is typically
+     * proposed by the client (from an earlier DHCP negotiation) or
+     * supplied by the server.
+     */
+    protected final InetAddress mClientIp;
+    protected final InetAddress mYourIp;
+    private final InetAddress mNextIp;
+    private final InetAddress mRelayIp;
+
+    /**
+     * Does the client request a broadcast response?
+     */
+    protected boolean mBroadcast;
+
+    /**
+     * The six-octet MAC of the client.
+     */
+    protected final byte[] mClientMac;
+
+    /**
+     * Asks the packet object to signal the next operation in the DHCP
+     * protocol.  The available actions are methods defined in the
+     * DhcpStateMachine interface.
+     */
+    public abstract void doNextOp(DhcpStateMachine stateMachine);
+
+    /**
+     * Asks the packet object to create a ByteBuffer serialization of
+     * the packet for transmission.
+     */
+    public abstract ByteBuffer buildPacket(int encap, short destUdp,
+        short srcUdp);
+
+    /**
+     * Allows the concrete class to fill in packet-type-specific details,
+     * typically optional parameters at the end of the packet.
+     */
+    abstract void finishPacket(ByteBuffer buffer);
+
+    protected DhcpPacket(int transId, InetAddress clientIp, InetAddress yourIp,
+                         InetAddress nextIp, InetAddress relayIp,
+                         byte[] clientMac, boolean broadcast) {
+        mTransId = transId;
+        mClientIp = clientIp;
+        mYourIp = yourIp;
+        mNextIp = nextIp;
+        mRelayIp = relayIp;
+        mClientMac = clientMac;
+        mBroadcast = broadcast;
+    }
+
+    /**
+     * Returns the transaction ID.
+     */
+    public int getTransactionId() {
+        return mTransId;
+    }
+
+    /**
+     * Creates a new L3 packet (including IP header) containing the
+     * DHCP udp packet.  This method relies upon the delegated method
+     * finishPacket() to insert the per-packet contents.
+     */
+    protected void fillInPacket(int encap, InetAddress destIp,
+        InetAddress srcIp, short destUdp, short srcUdp, ByteBuffer buf,
+        byte requestCode, boolean broadcast) {
+        byte[] destIpArray = destIp.getAddress();
+        byte[] srcIpArray = srcIp.getAddress();
+        int ipLengthOffset = 0;
+        int ipChecksumOffset = 0;
+        int endIpHeader = 0;
+        int udpHeaderOffset = 0;
+        int udpLengthOffset = 0;
+        int udpChecksumOffset = 0;
+
+        buf.clear();
+        buf.order(ByteOrder.BIG_ENDIAN);
+
+        // if a full IP packet needs to be generated, put the IP & UDP
+        // headers in place, and pre-populate with artificial values
+        // needed to seed the IP checksum.
+        if (encap == ENCAP_L3) {
+            // fake IP header, used in the IP-header checksum
+            buf.put(IP_VERSION_HEADER_LEN);
+            buf.put(IP_TOS_LOWDELAY);    // tos: IPTOS_LOWDELAY
+            ipLengthOffset = buf.position();
+            buf.putShort((short)0);  // length
+            buf.putShort((short)0);  // id
+            buf.putShort(IP_FLAGS_OFFSET); // ip offset: don't fragment
+            buf.put(IP_TTL);    // TTL: use default 64 from RFC1340
+            buf.put(IP_TYPE_UDP);
+            ipChecksumOffset = buf.position();
+            buf.putShort((short) 0); // checksum
+
+            buf.put(srcIpArray);
+            buf.put(destIpArray);
+            endIpHeader = buf.position();
+
+            // UDP header
+            udpHeaderOffset = buf.position();
+            buf.putShort(srcUdp);
+            buf.putShort(destUdp);
+            udpLengthOffset = buf.position();
+            buf.putShort((short) 0); // length
+            udpChecksumOffset = buf.position();
+            buf.putShort((short) 0); // UDP checksum -- initially zero
+        }
+
+        // DHCP payload
+        buf.put(requestCode);
+        buf.put((byte) 1); // Hardware Type: Ethernet
+        buf.put((byte) mClientMac.length); // Hardware Address Length
+        buf.put((byte) 0); // Hop Count
+        buf.putInt(mTransId);  // Transaction ID
+        buf.putShort((short) 0); // Elapsed Seconds
+
+        if (broadcast) {
+            buf.putShort((short) 0x8000); // Flags
+        } else {
+            buf.putShort((short) 0x0000); // Flags
+        }
+
+        buf.put(mClientIp.getAddress());
+        buf.put(mYourIp.getAddress());
+        buf.put(mNextIp.getAddress());
+        buf.put(mRelayIp.getAddress());
+        buf.put(mClientMac);
+        buf.position(buf.position() +
+                     (16 - mClientMac.length) // pad addr to 16 bytes
+                     + 64     // empty server host name (64 bytes)
+                     + 128);  // empty boot file name (128 bytes)
+        buf.putInt(0x63825363); // magic number
+        finishPacket(buf);
+
+        // round up to an even number of octets
+        if ((buf.position() & 1) == 1) {
+            buf.put((byte) 0);
+        }
+
+        // If an IP packet is being built, the IP & UDP checksums must be
+        // computed.
+        if (encap == ENCAP_L3) {
+            // fix UDP header: insert length
+            short udpLen = (short)(buf.position() - udpHeaderOffset);
+            buf.putShort(udpLengthOffset, udpLen);
+            // fix UDP header: checksum
+            // checksum for UDP at udpChecksumOffset
+            int udpSeed = 0;
+
+            // apply IPv4 pseudo-header.  Read IP address src and destination
+            // values from the IP header and accumulate checksum.
+            udpSeed += intAbs(buf.getShort(ipChecksumOffset + 2));
+            udpSeed += intAbs(buf.getShort(ipChecksumOffset + 4));
+            udpSeed += intAbs(buf.getShort(ipChecksumOffset + 6));
+            udpSeed += intAbs(buf.getShort(ipChecksumOffset + 8));
+
+            // accumulate extra data for the pseudo-header
+            udpSeed += IP_TYPE_UDP;
+            udpSeed += udpLen;
+            // and compute UDP checksum
+            buf.putShort(udpChecksumOffset, (short) checksum(buf, udpSeed,
+                                                             udpHeaderOffset,
+                                                             buf.position()));
+            // fix IP header: insert length
+            buf.putShort(ipLengthOffset, (short)buf.position());
+            // fixup IP-header checksum
+            buf.putShort(ipChecksumOffset,
+                         (short) checksum(buf, 0, 0, endIpHeader));
+        }
+    }
+
+    /**
+     * Converts a signed short value to an unsigned int value.  Needed
+     * because Java does not have unsigned types.
+     */
+    private int intAbs(short v) {
+        if (v < 0) {
+            int r = v + 65536;
+            return r;
+        } else {
+            return(v);
+        }
+    }
+
+    /**
+     * Performs an IP checksum (used in IP header and across UDP
+     * payload) on the specified portion of a ByteBuffer.  The seed
+     * allows the checksum to commence with a specified value.
+     */
+    private int checksum(ByteBuffer buf, int seed, int start, int end) {
+        int sum = seed;
+        int bufPosition = buf.position();
+
+        // set position of original ByteBuffer, so that the ShortBuffer
+        // will be correctly initialized
+        buf.position(start);
+        ShortBuffer shortBuf = buf.asShortBuffer();
+
+        // re-set ByteBuffer position
+        buf.position(bufPosition);
+
+        short[] shortArray = new short[(end - start) / 2];
+        shortBuf.get(shortArray);
+
+        for (short s : shortArray) {
+            sum += intAbs(s);
+        }
+
+        start += shortArray.length * 2;
+
+        // see if a singleton byte remains
+        if (end != start) {
+            short b = buf.get(start);
+
+            // make it unsigned
+            if (b < 0) {
+                b += 256;
+            }
+
+            sum += b * 256;
+        }
+
+        sum = ((sum >> 16) & 0xFFFF) + (sum & 0xFFFF);
+        sum = ((sum + ((sum >> 16) & 0xFFFF)) & 0xFFFF);
+        int negated = ~sum;
+        return intAbs((short) negated);
+    }
+
+    /**
+     * Adds an optional parameter containing a single byte value.
+     */
+    protected void addTlv(ByteBuffer buf, byte type, byte value) {
+        buf.put(type);
+        buf.put((byte) 1);
+        buf.put(value);
+    }
+
+    /**
+     * Adds an optional parameter containing an array of bytes.
+     */
+    protected void addTlv(ByteBuffer buf, byte type, byte[] payload) {
+        if (payload != null) {
+            buf.put(type);
+            buf.put((byte) payload.length);
+            buf.put(payload);
+        }
+    }
+
+    /**
+     * Adds an optional parameter containing an IP address.
+     */
+    protected void addTlv(ByteBuffer buf, byte type, InetAddress addr) {
+        if (addr != null) {
+            addTlv(buf, type, addr.getAddress());
+        }
+    }
+
+    /**
+     * Adds an optional parameter containing a list of IP addresses.
+     */
+    protected void addTlv(ByteBuffer buf, byte type, List<InetAddress> addrs) {
+        if (addrs != null && addrs.size() > 0) {
+            buf.put(type);
+            buf.put((byte)(4 * addrs.size()));
+
+            for (InetAddress addr : addrs) {
+                buf.put(addr.getAddress());
+            }
+        }
+    }
+
+    /**
+     * Adds an optional parameter containing a simple integer
+     */
+    protected void addTlv(ByteBuffer buf, byte type, Integer value) {
+        if (value != null) {
+            buf.put(type);
+            buf.put((byte) 4);
+            buf.putInt(value.intValue());
+        }
+    }
+
+    /**
+     * Adds an optional parameter containing and ASCII string.
+     */
+    protected void addTlv(ByteBuffer buf, byte type, String str) {
+        if (str != null) {
+            buf.put(type);
+            buf.put((byte) str.length());
+
+            for (int i = 0; i < str.length(); i++) {
+                buf.put((byte) str.charAt(i));
+            }
+        }
+    }
+
+    /**
+     * Adds the special end-of-optional-parameters indicator.
+     */
+    protected void addTlvEnd(ByteBuffer buf) {
+        buf.put((byte) 0xFF);
+    }
+
+    /**
+     * Converts a MAC from an array of octets to an ASCII string.
+     */
+    public static String macToString(byte[] mac) {
+        String macAddr = "";
+
+        for (int i = 0; i < mac.length; i++) {
+            String hexString = "0" + Integer.toHexString(mac[i]);
+
+            // substring operation grabs the last 2 digits: this
+            // allows signed bytes to be converted correctly.
+            macAddr += hexString.substring(hexString.length() - 2);
+
+            if (i != (mac.length - 1)) {
+                macAddr += ":";
+            }
+        }
+
+        return macAddr;
+    }
+
+    public String toString() {
+        String macAddr = macToString(mClientMac);
+
+        return macAddr;
+    }
+
+    /**
+     * Reads a four-octet value from a ByteBuffer and construct
+     * an IPv4 address from that value.
+     */
+    private static InetAddress readIpAddress(ByteBuffer packet) {
+        InetAddress result = null;
+        byte[] ipAddr = new byte[4];
+        packet.get(ipAddr);
+
+        try {
+            result = InetAddress.getByAddress(ipAddr);
+        } catch (UnknownHostException ex) {
+            // ipAddr is numeric, so this should not be
+            // triggered.  However, if it is, just nullify
+            result = null;
+        }
+
+        return result;
+    }
+
+    /**
+     * Reads a string of specified length from the buffer.
+     */
+    private static String readAsciiString(ByteBuffer buf, int byteCount) {
+        byte[] bytes = new byte[byteCount];
+        buf.get(bytes);
+        return new String(bytes, 0, bytes.length, Charsets.US_ASCII);
+    }
+
+    /**
+     * Creates a concrete DhcpPacket from the supplied ByteBuffer.  The
+     * buffer may have an L2 encapsulation (which is the full EthernetII
+     * format starting with the source-address MAC) or an L3 encapsulation
+     * (which starts with the IP header).
+     * <br>
+     * A subset of the optional parameters are parsed and are stored
+     * in object fields.
+     */
+    public static DhcpPacket decodeFullPacket(ByteBuffer packet, int pktType)
+    {
+        // bootp parameters
+        int transactionId;
+        InetAddress clientIp;
+        InetAddress yourIp;
+        InetAddress nextIp;
+        InetAddress relayIp;
+        byte[] clientMac;
+        List<InetAddress> dnsServers = null;
+        InetAddress gateway = null; // aka router
+        Integer leaseTime = null;
+        InetAddress serverIdentifier = null;
+        InetAddress netMask = null;
+        String message = null;
+        String vendorId = null;
+        byte[] expectedParams = null;
+        String hostName = null;
+        String domainName = null;
+        InetAddress ipSrc = null;
+        InetAddress ipDst = null;
+        InetAddress bcAddr = null;
+        InetAddress requestedIp = null;
+
+        // dhcp options
+        byte dhcpType = (byte) 0xFF;
+
+        packet.order(ByteOrder.BIG_ENDIAN);
+
+        // check to see if we need to parse L2, IP, and UDP encaps
+        if (pktType == ENCAP_L2) {
+            // System.out.println("buffer len " + packet.limit());
+            byte[] l2dst = new byte[6];
+            byte[] l2src = new byte[6];
+
+            packet.get(l2dst);
+            packet.get(l2src);
+
+            short l2type = packet.getShort();
+
+            if (l2type != 0x0800)
+                return null;
+        }
+
+        if ((pktType == ENCAP_L2) || (pktType == ENCAP_L3)) {
+            // assume l2type is 0x0800, i.e. IP
+            byte ipType = packet.get();
+            // System.out.println("ipType is " + ipType);
+            byte ipDiffServicesField = packet.get();
+            short ipTotalLength = packet.getShort();
+            short ipIdentification = packet.getShort();
+            byte ipFlags = packet.get();
+            byte ipFragOffset = packet.get();
+            byte ipTTL = packet.get();
+            byte ipProto = packet.get();
+            short ipChksm = packet.getShort();
+
+            ipSrc = readIpAddress(packet);
+            ipDst = readIpAddress(packet);
+
+            if (ipProto != IP_TYPE_UDP) // UDP
+                return null;
+
+            // assume UDP
+            short udpSrcPort = packet.getShort();
+            short udpDstPort = packet.getShort();
+            short udpLen = packet.getShort();
+            short udpChkSum = packet.getShort();
+
+            if ((udpSrcPort != DHCP_SERVER) && (udpSrcPort != DHCP_CLIENT))
+                return null;
+        }
+
+        // assume bootp
+        byte type = packet.get();
+        byte hwType = packet.get();
+        byte addrLen = packet.get();
+        byte hops = packet.get();
+        transactionId = packet.getInt();
+        short elapsed = packet.getShort();
+        short bootpFlags = packet.getShort();
+        boolean broadcast = (bootpFlags & 0x8000) != 0;
+        byte[] ipv4addr = new byte[4];
+
+        try {
+            packet.get(ipv4addr);
+            clientIp = InetAddress.getByAddress(ipv4addr);
+            packet.get(ipv4addr);
+            yourIp = InetAddress.getByAddress(ipv4addr);
+            packet.get(ipv4addr);
+            nextIp = InetAddress.getByAddress(ipv4addr);
+            packet.get(ipv4addr);
+            relayIp = InetAddress.getByAddress(ipv4addr);
+        } catch (UnknownHostException ex) {
+            return null;
+        }
+
+        clientMac = new byte[addrLen];
+        packet.get(clientMac);
+
+        // skip over address padding (16 octets allocated)
+        packet.position(packet.position() + (16 - addrLen)
+                        + 64    // skip server host name (64 chars)
+                        + 128); // skip boot file name (128 chars)
+
+        int dhcpMagicCookie = packet.getInt();
+
+        if (dhcpMagicCookie !=  0x63825363)
+            return null;
+
+        // parse options
+        boolean notFinishedOptions = true;
+
+        while ((packet.position() < packet.limit()) && notFinishedOptions) {
+            byte optionType = packet.get();
+
+            if (optionType == (byte) 0xFF) {
+                notFinishedOptions = false;
+            } else {
+                byte optionLen = packet.get();
+                int expectedLen = 0;
+
+                switch(optionType) {
+                    case DHCP_SUBNET_MASK:
+                        netMask = readIpAddress(packet);
+                        expectedLen = 4;
+                        break;
+                    case DHCP_ROUTER:
+                        gateway = readIpAddress(packet);
+                        expectedLen = 4;
+                        break;
+                    case DHCP_DNS_SERVER:
+                        dnsServers = new ArrayList<InetAddress>();
+                        expectedLen = 0;
+
+                        for (expectedLen = 0; expectedLen < optionLen;
+                             expectedLen += 4) {
+                            dnsServers.add(readIpAddress(packet));
+                        }
+                        break;
+                    case DHCP_HOST_NAME:
+                        expectedLen = optionLen;
+                        hostName = readAsciiString(packet, optionLen);
+                        break;
+                    case DHCP_DOMAIN_NAME:
+                        expectedLen = optionLen;
+                        domainName = readAsciiString(packet, optionLen);
+                        break;
+                    case DHCP_BROADCAST_ADDRESS:
+                        bcAddr = readIpAddress(packet);
+                        expectedLen = 4;
+                        break;
+                    case DHCP_REQUESTED_IP:
+                        requestedIp = readIpAddress(packet);
+                        expectedLen = 4;
+                        break;
+                    case DHCP_LEASE_TIME:
+                        leaseTime = Integer.valueOf(packet.getInt());
+                        expectedLen = 4;
+                        break;
+                    case DHCP_MESSAGE_TYPE:
+                        dhcpType = packet.get();
+                        expectedLen = 1;
+                        break;
+                    case DHCP_SERVER_IDENTIFIER:
+                        serverIdentifier = readIpAddress(packet);
+                        expectedLen = 4;
+                        break;
+                    case DHCP_PARAMETER_LIST:
+                        expectedParams = new byte[optionLen];
+                        packet.get(expectedParams);
+                        expectedLen = optionLen;
+                        break;
+                    case DHCP_MESSAGE:
+                        expectedLen = optionLen;
+                        message = readAsciiString(packet, optionLen);
+                        break;
+                    case DHCP_VENDOR_CLASS_ID:
+                        expectedLen = optionLen;
+                        vendorId = readAsciiString(packet, optionLen);
+                        break;
+                    case DHCP_CLIENT_IDENTIFIER: { // Client identifier
+                        byte[] id = new byte[optionLen];
+                        packet.get(id);
+                        expectedLen = optionLen;
+                    } break;
+                    default:
+                        // ignore any other parameters
+                        for (int i = 0; i < optionLen; i++) {
+                            expectedLen++;
+                            byte throwaway = packet.get();
+                        }
+                }
+
+                if (expectedLen != optionLen) {
+                    return null;
+                }
+            }
+        }
+
+        DhcpPacket newPacket;
+
+        switch(dhcpType) {
+            case -1: return null;
+            case DHCP_MESSAGE_TYPE_DISCOVER:
+                newPacket = new DhcpDiscoverPacket(
+                    transactionId, clientMac, broadcast);
+                break;
+            case DHCP_MESSAGE_TYPE_OFFER:
+                newPacket = new DhcpOfferPacket(
+                    transactionId, broadcast, ipSrc, yourIp, clientMac);
+                break;
+            case DHCP_MESSAGE_TYPE_REQUEST:
+                newPacket = new DhcpRequestPacket(
+                    transactionId, clientIp, clientMac, broadcast);
+                break;
+            case DHCP_MESSAGE_TYPE_DECLINE:
+                newPacket = new DhcpDeclinePacket(
+                    transactionId, clientIp, yourIp, nextIp, relayIp,
+                    clientMac);
+                break;
+            case DHCP_MESSAGE_TYPE_ACK:
+                newPacket = new DhcpAckPacket(
+                    transactionId, broadcast, ipSrc, yourIp, clientMac);
+                break;
+            case DHCP_MESSAGE_TYPE_NAK:
+                newPacket = new DhcpNakPacket(
+                    transactionId, clientIp, yourIp, nextIp, relayIp,
+                    clientMac);
+                break;
+            case DHCP_MESSAGE_TYPE_INFORM:
+                newPacket = new DhcpInformPacket(
+                    transactionId, clientIp, yourIp, nextIp, relayIp,
+                    clientMac);
+                break;
+            default:
+                System.out.println("Unimplemented type: " + dhcpType);
+                return null;
+        }
+
+        newPacket.mBroadcastAddress = bcAddr;
+        newPacket.mDnsServers = dnsServers;
+        newPacket.mDomainName = domainName;
+        newPacket.mGateway = gateway;
+        newPacket.mHostName = hostName;
+        newPacket.mLeaseTime = leaseTime;
+        newPacket.mMessage = message;
+        newPacket.mRequestedIp = requestedIp;
+        newPacket.mRequestedParams = expectedParams;
+        newPacket.mServerIdentifier = serverIdentifier;
+        newPacket.mSubnetMask = netMask;
+        return newPacket;
+    }
+
+    /**
+     * Parse a packet from an array of bytes.
+     */
+    public static DhcpPacket decodeFullPacket(byte[] packet, int pktType)
+    {
+        ByteBuffer buffer = ByteBuffer.wrap(packet).order(ByteOrder.BIG_ENDIAN);
+        return decodeFullPacket(buffer, pktType);
+    }
+
+    /**
+     * Builds a DHCP-DISCOVER packet from the required specified
+     * parameters.
+     */
+    public static ByteBuffer buildDiscoverPacket(int encap, int transactionId,
+        byte[] clientMac, boolean broadcast, byte[] expectedParams) {
+        DhcpPacket pkt = new DhcpDiscoverPacket(
+            transactionId, clientMac, broadcast);
+        pkt.mRequestedParams = expectedParams;
+        return pkt.buildPacket(encap, DHCP_SERVER, DHCP_CLIENT);
+    }
+
+    /**
+     * Builds a DHCP-OFFER packet from the required specified
+     * parameters.
+     */
+    public static ByteBuffer buildOfferPacket(int encap, int transactionId,
+        boolean broadcast, InetAddress serverIpAddr, InetAddress clientIpAddr,
+        byte[] mac, Integer timeout, InetAddress netMask, InetAddress bcAddr,
+        InetAddress gateway, List<InetAddress> dnsServers,
+        InetAddress dhcpServerIdentifier, String domainName) {
+        DhcpPacket pkt = new DhcpOfferPacket(
+            transactionId, broadcast, serverIpAddr, clientIpAddr, mac);
+        pkt.mGateway = gateway;
+        pkt.mDnsServers = dnsServers;
+        pkt.mLeaseTime = timeout;
+        pkt.mDomainName = domainName;
+        pkt.mServerIdentifier = dhcpServerIdentifier;
+        pkt.mSubnetMask = netMask;
+        pkt.mBroadcastAddress = bcAddr;
+        return pkt.buildPacket(encap, DHCP_CLIENT, DHCP_SERVER);
+    }
+
+    /**
+     * Builds a DHCP-ACK packet from the required specified parameters.
+     */
+    public static ByteBuffer buildAckPacket(int encap, int transactionId,
+        boolean broadcast, InetAddress serverIpAddr, InetAddress clientIpAddr,
+        byte[] mac, Integer timeout, InetAddress netMask, InetAddress bcAddr,
+        InetAddress gateway, List<InetAddress> dnsServers,
+        InetAddress dhcpServerIdentifier, String domainName) {
+        DhcpPacket pkt = new DhcpAckPacket(
+            transactionId, broadcast, serverIpAddr, clientIpAddr, mac);
+        pkt.mGateway = gateway;
+        pkt.mDnsServers = dnsServers;
+        pkt.mLeaseTime = timeout;
+        pkt.mDomainName = domainName;
+        pkt.mSubnetMask = netMask;
+        pkt.mServerIdentifier = dhcpServerIdentifier;
+        pkt.mBroadcastAddress = bcAddr;
+        return pkt.buildPacket(encap, DHCP_CLIENT, DHCP_SERVER);
+    }
+
+    /**
+     * Builds a DHCP-NAK packet from the required specified parameters.
+     */
+    public static ByteBuffer buildNakPacket(int encap, int transactionId,
+        InetAddress serverIpAddr, InetAddress clientIpAddr, byte[] mac) {
+        DhcpPacket pkt = new DhcpNakPacket(transactionId, clientIpAddr,
+            serverIpAddr, serverIpAddr, serverIpAddr, mac);
+        pkt.mMessage = "requested address not available";
+        pkt.mRequestedIp = clientIpAddr;
+        return pkt.buildPacket(encap, DHCP_CLIENT, DHCP_SERVER);
+    }
+
+    /**
+     * Builds a DHCP-REQUEST packet from the required specified parameters.
+     */
+    public static ByteBuffer buildRequestPacket(int encap,
+        int transactionId, InetAddress clientIp, boolean broadcast,
+        byte[] clientMac, InetAddress requestedIpAddress,
+        InetAddress serverIdentifier, byte[] requestedParams, String hostName) {
+        DhcpPacket pkt = new DhcpRequestPacket(transactionId, clientIp,
+            clientMac, broadcast);
+        pkt.mRequestedIp = requestedIpAddress;
+        pkt.mServerIdentifier = serverIdentifier;
+        pkt.mHostName = hostName;
+        pkt.mRequestedParams = requestedParams;
+        ByteBuffer result = pkt.buildPacket(encap, DHCP_SERVER, DHCP_CLIENT);
+        return result;
+    }
+}
diff --git a/core/java/android/net/dhcp/DhcpRequestPacket.java b/core/java/android/net/dhcp/DhcpRequestPacket.java
new file mode 100644
index 0000000..cf32957
--- /dev/null
+++ b/core/java/android/net/dhcp/DhcpRequestPacket.java
@@ -0,0 +1,86 @@
+/*
+ * 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.net.dhcp;
+
+import android.util.Log;
+
+import java.net.InetAddress;
+import java.net.Inet4Address;
+import java.nio.ByteBuffer;
+
+/**
+ * This class implements the DHCP-REQUEST packet.
+ */
+class DhcpRequestPacket extends DhcpPacket {
+    /**
+     * Generates a REQUEST packet with the specified parameters.
+     */
+    DhcpRequestPacket(int transId, InetAddress clientIp, byte[] clientMac,
+                      boolean broadcast) {
+        super(transId, clientIp, Inet4Address.ANY, Inet4Address.ANY,
+          Inet4Address.ANY, clientMac, broadcast);
+    }
+
+    public String toString() {
+        String s = super.toString();
+        return s + " REQUEST, desired IP " + mRequestedIp + " from host '"
+            + mHostName + "', param list length "
+            + (mRequestedParams == null ? 0 : mRequestedParams.length);
+    }
+
+    /**
+     * Fills in a packet with the requested REQUEST attributes.
+     */
+    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
+        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
+
+        fillInPacket(encap, Inet4Address.ALL, Inet4Address.ANY, destUdp, srcUdp,
+            result, DHCP_BOOTREQUEST, mBroadcast);
+        result.flip();
+        return result;
+    }
+
+    /**
+     * Adds the optional parameters to the client-generated REQUEST packet.
+     */
+    void finishPacket(ByteBuffer buffer) {
+        byte[] clientId = new byte[7];
+
+        // assemble client identifier
+        clientId[0] = CLIENT_ID_ETHER;
+        System.arraycopy(mClientMac, 0, clientId, 1, 6);
+
+        addTlv(buffer, DHCP_MESSAGE_TYPE, DHCP_MESSAGE_TYPE_REQUEST);
+        addTlv(buffer, DHCP_PARAMETER_LIST, mRequestedParams);
+        addTlv(buffer, DHCP_REQUESTED_IP, mRequestedIp);
+        addTlv(buffer, DHCP_SERVER_IDENTIFIER, mServerIdentifier);
+        addTlv(buffer, DHCP_CLIENT_IDENTIFIER, clientId);
+        addTlvEnd(buffer);
+    }
+
+    /**
+     * Notifies the specified state machine of the REQUEST packet parameters.
+     */
+    public void doNextOp(DhcpStateMachine machine) {
+        InetAddress clientRequest =
+            mRequestedIp == null ? mClientIp : mRequestedIp;
+        Log.v(TAG, "requested IP is " + mRequestedIp + " and client IP is " +
+            mClientIp);
+        machine.onRequestReceived(mBroadcast, mTransId, mClientMac,
+            clientRequest, mRequestedParams, mHostName);
+    }
+}
diff --git a/core/java/android/net/dhcp/DhcpStateMachine.java b/core/java/android/net/dhcp/DhcpStateMachine.java
new file mode 100644
index 0000000..b6c384d
--- /dev/null
+++ b/core/java/android/net/dhcp/DhcpStateMachine.java
@@ -0,0 +1,75 @@
+/*
+ * 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.net.dhcp;
+
+import java.net.InetAddress;
+import java.nio.ByteBuffer;
+import java.util.List;
+
+/**
+ * This class defines the "next steps" which occur after a given DHCP
+ * packet has been received.
+ */
+interface DhcpStateMachine {
+    /**
+     * Signals that an offer packet has been received with the specified
+     * parameters.
+     */
+    public void onOfferReceived(boolean broadcast, int transactionId,
+        byte[] myMac, InetAddress offeredIpAddress,
+        InetAddress serverIpAddress);
+
+    /**
+     * Signals that a NAK packet has been received.
+     */
+    public void onNakReceived();
+
+    /**
+     * Signals that the final ACK has been received from the server.
+     */
+    public void onAckReceived(InetAddress myIpAddress, InetAddress myNetMask,
+        InetAddress myGateway, List<InetAddress> myDnsServers,
+        InetAddress myDhcpServer, int leaseTime);
+
+    /**
+     * Signals that a client's DISCOVER packet has been received with the
+     * specified parameters.
+     */
+    public void onDiscoverReceived(boolean broadcast, int transactionId,
+        byte[] clientMac, byte[] requestedParameterList);
+
+    /**
+     * Signals that a client's REQUEST packet has been received with the
+     * specified parameters.
+     */
+    public void onRequestReceived(boolean broadcast, int transactionId,
+        byte[] clientMac, InetAddress requestedIp, byte[] requestedParams,
+        String clientHostName);
+
+    /**
+     * Signals that a client's INFORM packet has been received with the
+     * specified parameters.
+     */
+    public void onInformReceived(int transactionId, byte[] clientMac,
+        InetAddress preassignedIp, byte[] requestedParams);
+
+    /**
+     * Signals that a client's DECLINE packet has been received with the
+     * specified parameters.
+     */
+    public void onDeclineReceived(byte[] clientMac, InetAddress declinedIp);
+}
diff --git a/core/java/android/os/FileUtils.java b/core/java/android/os/FileUtils.java
index 9d50fd9..f56f6a9 100644
--- a/core/java/android/os/FileUtils.java
+++ b/core/java/android/os/FileUtils.java
@@ -76,7 +76,12 @@
      * @return true if the file exists and false if it does not exist. If you do not have 
      * permission to stat the file, then this method will return false.
      */
-    public static native boolean getFileStatus(String path, FileStatus status);
+    public static boolean getFileStatus(String path, FileStatus status) {
+        StrictMode.noteDiskRead();
+        return getFileStatusNative(path, status);
+    }
+
+    private static native boolean getFileStatusNative(String path, FileStatus status);
 
     /** Regular expression for safe filenames: no spaces or metacharacters */
     private static final Pattern SAFE_FILENAME_PATTERN = Pattern.compile("[\\w%+,./=_-]+");
diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java
index b00b9c9..e314fce 100644
--- a/core/java/android/os/StrictMode.java
+++ b/core/java/android/os/StrictMode.java
@@ -669,25 +669,46 @@
         CloseGuard.setEnabled(enabled);
     }
 
-    private static class StrictModeNetworkViolation extends BlockGuard.BlockGuardPolicyException {
+    /**
+     * @hide
+     */
+    public static class StrictModeViolation extends BlockGuard.BlockGuardPolicyException {
+        public StrictModeViolation(int policyState, int policyViolated, String message) {
+            super(policyState, policyViolated, message);
+        }
+    }
+
+    /**
+     * @hide
+     */
+    public static class StrictModeNetworkViolation extends StrictModeViolation {
         public StrictModeNetworkViolation(int policyMask) {
-            super(policyMask, DETECT_NETWORK);
+            super(policyMask, DETECT_NETWORK, null);
         }
     }
 
-    private static class StrictModeDiskReadViolation extends BlockGuard.BlockGuardPolicyException {
+    /**
+     * @hide
+     */
+    private static class StrictModeDiskReadViolation extends StrictModeViolation {
         public StrictModeDiskReadViolation(int policyMask) {
-            super(policyMask, DETECT_DISK_READ);
+            super(policyMask, DETECT_DISK_READ, null);
         }
     }
 
-    private static class StrictModeDiskWriteViolation extends BlockGuard.BlockGuardPolicyException {
+     /**
+     * @hide
+     */
+   private static class StrictModeDiskWriteViolation extends StrictModeViolation {
         public StrictModeDiskWriteViolation(int policyMask) {
-            super(policyMask, DETECT_DISK_WRITE);
+            super(policyMask, DETECT_DISK_WRITE, null);
         }
     }
 
-    private static class StrictModeCustomViolation extends BlockGuard.BlockGuardPolicyException {
+    /**
+     * @hide
+     */
+    private static class StrictModeCustomViolation extends StrictModeViolation {
         public StrictModeCustomViolation(int policyMask, String name) {
             super(policyMask, DETECT_CUSTOM, name);
         }
@@ -1007,9 +1028,16 @@
             // thread, in "gather" mode.  In this case, the duration
             // of the violation is computed by the ultimate caller and
             // its Looper, if any.
+            //
+            // Also, as a special short-cut case when the only penalty
+            // bit is death, we die immediately, rather than timing
+            // the violation's duration.  This makes it convenient to
+            // use in unit tests too, rather than waiting on a Looper.
+            //
             // TODO: if in gather mode, ignore Looper.myLooper() and always
             //       go into this immediate mode?
-            if (looper == null) {
+            if (looper == null ||
+                (info.policy & PENALTY_MASK) == PENALTY_DEATH) {
                 info.durationMillis = -1;  // unknown (redundant, already set)
                 handleViolation(info);
                 return;
@@ -1179,13 +1207,16 @@
             }
 
             if ((info.policy & PENALTY_DEATH) != 0) {
-                System.err.println("StrictMode policy violation with POLICY_DEATH; shutting down.");
-                Process.killProcess(Process.myPid());
-                System.exit(10);
+                executeDeathPenalty(info);
             }
         }
     }
 
+    private static void executeDeathPenalty(ViolationInfo info) {
+        int violationBit = parseViolationFromMessage(info.crashInfo.exceptionMessage);
+        throw new StrictModeViolation(info.policy, violationBit, null);
+    }
+
     /**
      * In the common case, as set by conditionallyEnableDebugLogging,
      * we're just dropboxing any violations but not showing a dialog,
@@ -1597,6 +1628,31 @@
     }
 
     /**
+     * @hide
+     */
+    public static void noteDiskRead() {
+        BlockGuard.Policy policy = BlockGuard.getThreadPolicy();
+        Log.d(TAG, "noteDiskRead; policy=" + policy);
+        if (!(policy instanceof AndroidBlockGuardPolicy)) {
+            // StrictMode not enabled.
+            return;
+        }
+        ((AndroidBlockGuardPolicy) policy).onReadFromDisk();
+    }
+
+    /**
+     * @hide
+     */
+    public static void noteDiskWrite() {
+        BlockGuard.Policy policy = BlockGuard.getThreadPolicy();
+        if (!(policy instanceof AndroidBlockGuardPolicy)) {
+            // StrictMode not enabled.
+            return;
+        }
+        ((AndroidBlockGuardPolicy) policy).onWriteToDisk();
+    }
+
+    /**
      * Parcelable that gets sent in Binder call headers back to callers
      * to report violations that happened during a cross-process call.
      *
diff --git a/core/java/android/os/Vibrator.java b/core/java/android/os/Vibrator.java
index e9428f7..3769cfe 100644
--- a/core/java/android/os/Vibrator.java
+++ b/core/java/android/os/Vibrator.java
@@ -22,6 +22,7 @@
  * Class that operates the vibrator on the device.
  * <p>
  * If your process exits, any vibration you started with will stop.
+ * </p>
  */
 public class Vibrator
 {
@@ -56,7 +57,7 @@
     /**
      * Turn the vibrator on.
      *
-     * @param milliseconds How long to vibrate for.
+     * @param milliseconds The number of milliseconds to vibrate.
      */
     public void vibrate(long milliseconds)
     {
@@ -75,12 +76,17 @@
      * Vibrate with a given pattern.
      *
      * <p>
-     * Pass in an array of ints that are the times at which to turn on or off
-     * the vibrator.  The first one is how long to wait before turning it on,
-     * and then after that it alternates.  If you want to repeat, pass the
-     * index into the pattern at which to start the repeat.
+     * Pass in an array of ints that are the durations for which to turn on or off
+     * the vibrator in milliseconds.  The first value indicates the number of milliseconds
+     * to wait before turning the vibrator on.  The next value indicates the number of milliseconds
+     * for which to keep the vibrator on before turning it off.  Subsequent values alternate
+     * between durations in milliseconds to turn the vibrator off or to turn the vibrator on.
+     * </p><p>
+     * To cause the pattern to repeat, pass the index into the pattern array at which
+     * to start the repeat, or -1 to disable repeating.
+     * </p>
      *
-     * @param pattern an array of longs of times to turn the vibrator on or off.
+     * @param pattern an array of longs of times for which to turn the vibrator on or off.
      * @param repeat the index into pattern at which to repeat, or -1 if
      *        you don't want to repeat.
      */
diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java
index d9039ab..7a186f3 100644
--- a/core/java/android/preference/PreferenceActivity.java
+++ b/core/java/android/preference/PreferenceActivity.java
@@ -1005,6 +1005,21 @@
             mFragmentBreadCrumbs.setActivity(this);
         }
         mFragmentBreadCrumbs.setTitle(title, shortTitle);
+        mFragmentBreadCrumbs.setParentTitle(null, null, null);
+    }
+
+    /**
+     * Should be called after onCreate to ensure that the breadcrumbs, if any, were created.
+     * This prepends a title to the fragment breadcrumbs and attaches a listener to any clicks
+     * on the parent entry.
+     * @param title the title for the breadcrumb
+     * @param shortTitle the short title for the breadcrumb
+     */
+    public void setParentTitle(CharSequence title, CharSequence shortTitle,
+            OnClickListener listener) {
+        if (mFragmentBreadCrumbs != null) {
+            mFragmentBreadCrumbs.setParentTitle(title, shortTitle, listener);
+        }
     }
 
     void setSelectedHeader(Header header) {
diff --git a/core/java/android/provider/Downloads.java b/core/java/android/provider/Downloads.java
index b2b8c5a..013edd3 100644
--- a/core/java/android/provider/Downloads.java
+++ b/core/java/android/provider/Downloads.java
@@ -459,6 +459,13 @@
         public static final int DESTINATION_FILE_URI = 4;
 
         /**
+         * This download will be saved to the system cache ("/cache")
+         * partition. This option is only used by system apps and so it requires
+         * android.permission.ACCESS_CACHE_FILESYSTEM permission.
+         */
+        public static final int DESTINATION_SYSTEMCACHE_PARTITION = 5;
+
+        /**
          * This download is allowed to run.
          */
         public static final int CONTROL_RUN = 0;
diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java
index 1f19f9e..9e5abdc 100644
--- a/core/java/android/server/BluetoothService.java
+++ b/core/java/android/server/BluetoothService.java
@@ -75,6 +75,7 @@
 import java.io.InputStreamReader;
 import java.io.PrintWriter;
 import java.io.UnsupportedEncodingException;
+import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -1660,20 +1661,10 @@
         try {
             ifcg = service.getInterfaceConfig(iface);
             if (ifcg != null) {
-                String[] addr = BLUETOOTH_NETMASK.split("\\.");
-                ifcg.netmask = (Integer.parseInt(addr[0]) << 24) +
-                        (Integer.parseInt(addr[1]) << 16) +
-                        (Integer.parseInt(addr[2]) << 8) +
-                        (Integer.parseInt(addr[3]));
-                if (ifcg.ipAddr == 0) {
-                    addr = address.split("\\.");
-
-                    ifcg.ipAddr = (Integer.parseInt(addr[0]) << 24) +
-                            (Integer.parseInt(addr[1]) << 16) +
-                            (Integer.parseInt(addr[2]) << 8) +
-                            (Integer.parseInt(addr[3]));
-                    ifcg.interfaceFlags =
-                        ifcg.interfaceFlags.replace("down", "up");
+                ifcg.mask = InetAddress.getByName(BLUETOOTH_NETMASK);
+                if (ifcg.addr == null) {
+                    ifcg.addr = InetAddress.getByName(address);
+                    ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up");
                 }
                 ifcg.interfaceFlags = ifcg.interfaceFlags.replace("running", "");
                 ifcg.interfaceFlags = ifcg.interfaceFlags.replace("  "," ");
diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java
index 5d9bd1e..773d734 100644
--- a/core/java/android/view/GLES20Canvas.java
+++ b/core/java/android/view/GLES20Canvas.java
@@ -459,35 +459,37 @@
         // Shaders are ignored when drawing patches
         boolean hasColorFilter = paint != null && setupColorFilter(paint);
         final int nativePaint = paint == null ? 0 : paint.mNativePaint;
-        nDrawPatch(mRenderer, bitmap.mNativeBitmap, chunks, dst.left, dst.top,
-                dst.right, dst.bottom, nativePaint);
+        nDrawPatch(mRenderer, bitmap.mNativeBitmap, bitmap.mBuffer, chunks,
+                dst.left, dst.top, dst.right, dst.bottom, nativePaint);
         if (hasColorFilter) nResetModifiers(mRenderer);
     }
 
-    private native void nDrawPatch(int renderer, int bitmap, byte[] chunks, float left, float top,
-            float right, float bottom, int paint);
+    private native void nDrawPatch(int renderer, int bitmap, byte[] buffer, byte[] chunks,
+            float left, float top, float right, float bottom, int paint);
 
     @Override
     public void drawBitmap(Bitmap bitmap, float left, float top, Paint paint) {
         // Shaders are ignored when drawing bitmaps
         boolean hasColorFilter = paint != null && setupColorFilter(paint);
         final int nativePaint = paint == null ? 0 : paint.mNativePaint;
-        nDrawBitmap(mRenderer, bitmap.mNativeBitmap, left, top, nativePaint);
+        nDrawBitmap(mRenderer, bitmap.mNativeBitmap, bitmap.mBuffer, left, top, nativePaint);
         if (hasColorFilter) nResetModifiers(mRenderer);
     }
 
-    private native void nDrawBitmap(int renderer, int bitmap, float left, float top, int paint);
+    private native void nDrawBitmap(
+            int renderer, int bitmap, byte[] buffer, float left, float top, int paint);
 
     @Override
     public void drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) {
         // Shaders are ignored when drawing bitmaps
         boolean hasColorFilter = paint != null && setupColorFilter(paint);
         final int nativePaint = paint == null ? 0 : paint.mNativePaint;
-        nDrawBitmap(mRenderer, bitmap.mNativeBitmap, matrix.native_instance, nativePaint);
+        nDrawBitmap(mRenderer, bitmap.mNativeBitmap, bitmap.mBuffer,
+                matrix.native_instance, nativePaint);
         if (hasColorFilter) nResetModifiers(mRenderer);
     }
 
-    private native void nDrawBitmap(int renderer, int bitmap, int matrix, int paint);
+    private native void nDrawBitmap(int renderer, int bitmap, byte[] buff, int matrix, int paint);
 
     @Override
     public void drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) {
@@ -507,7 +509,7 @@
             bottom = src.bottom;
         }
 
-        nDrawBitmap(mRenderer, bitmap.mNativeBitmap, left, top, right, bottom,
+        nDrawBitmap(mRenderer, bitmap.mNativeBitmap, bitmap.mBuffer, left, top, right, bottom,
                 dst.left, dst.top, dst.right, dst.bottom, nativePaint);
         if (hasColorFilter) nResetModifiers(mRenderer);
     }
@@ -517,12 +519,12 @@
         // Shaders are ignored when drawing bitmaps
         boolean hasColorFilter = paint != null && setupColorFilter(paint);
         final int nativePaint = paint == null ? 0 : paint.mNativePaint;
-        nDrawBitmap(mRenderer, bitmap.mNativeBitmap, src.left, src.top, src.right, src.bottom,
-                dst.left, dst.top, dst.right, dst.bottom, nativePaint);
+        nDrawBitmap(mRenderer, bitmap.mNativeBitmap, bitmap.mBuffer, src.left, src.top, src.right,
+                src.bottom, dst.left, dst.top, dst.right, dst.bottom, nativePaint);
         if (hasColorFilter) nResetModifiers(mRenderer);
     }
 
-    private native void nDrawBitmap(int renderer, int bitmap,
+    private native void nDrawBitmap(int renderer, int bitmap, byte[] buffer,
             float srcLeft, float srcTop, float srcRight, float srcBottom,
             float left, float top, float right, float bottom, int paint);
 
@@ -534,7 +536,7 @@
         final Bitmap.Config config = hasAlpha ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565;
         final Bitmap b = Bitmap.createBitmap(colors, offset, stride, width, height, config);
         final int nativePaint = paint == null ? 0 : paint.mNativePaint;
-        nDrawBitmap(mRenderer, b.mNativeBitmap, x, y, nativePaint);
+        nDrawBitmap(mRenderer, b.mNativeBitmap, b.mBuffer, x, y, nativePaint);
         b.recycle();
         if (hasColorFilter) nResetModifiers(mRenderer);
     }
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index 4017242..6b41ce5 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -166,7 +166,7 @@
     /**
      * Max distance to overfling for edge effects
      */
-    private static final int OVERFLING_DISTANCE = 20;
+    private static final int OVERFLING_DISTANCE = 12;
 
     private final int mEdgeSlop;
     private final int mFadingEdgeLength;
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index 9bda637..95949b9 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -865,6 +865,9 @@
                 childWidthMeasureSpec = getRootMeasureSpec(desiredWindowWidth, lp.width);
                 childHeightMeasureSpec = getRootMeasureSpec(desiredWindowHeight, lp.height);
                 host.measure(childWidthMeasureSpec, childHeightMeasureSpec);
+                if (mWidth != host.getMeasuredWidth() || mHeight != host.getMeasuredHeight()) {
+                    windowSizeMayChange = true;
+                }
             }
 
             if (DBG) {
diff --git a/core/java/android/webkit/MimeTypeMap.java b/core/java/android/webkit/MimeTypeMap.java
index ecce2ce..35483c9 100644
--- a/core/java/android/webkit/MimeTypeMap.java
+++ b/core/java/android/webkit/MimeTypeMap.java
@@ -43,10 +43,16 @@
      */
     public static String getFileExtensionFromUrl(String url) {
         if (!TextUtils.isEmpty(url)) {
+            int fragment = url.lastIndexOf('#');
+            if (fragment > 0) {
+                url = url.substring(0, fragment);
+            }
+
             int query = url.lastIndexOf('?');
             if (query > 0) {
                 url = url.substring(0, query);
             }
+
             int filenamePos = url.lastIndexOf('/');
             String filename =
                 0 <= filenamePos ? url.substring(filenamePos + 1) : url;
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index d83fc42..bb18270 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -353,6 +353,18 @@
         return false;
     }
 
+    void ensureLayout() {
+        if (getLayout() == null) {
+            // Ensure we have a Layout
+            measure(mWidthSpec, mHeightSpec);
+            LayoutParams params = (LayoutParams) getLayoutParams();
+            if (params != null) {
+                layout(params.x, params.y, params.x + params.width,
+                        params.y + params.height);
+            }
+        }
+    }
+
     /**
      *  Determine whether this WebTextView currently represents the node
      *  represented by ptr.
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 0959bfa..5b43953 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -3750,6 +3750,18 @@
             clearTextEntry();
         }
         if (inEditingMode()) {
+            // Since we just called rebuildWebTextView, the layout is not set
+            // properly.  Update it so it can correctly find the word to select.
+            mWebTextView.ensureLayout();
+            // Provide a touch down event to WebTextView, which will allow it
+            // to store the location to use in performLongClick.
+            AbsoluteLayout.LayoutParams params
+                    = (AbsoluteLayout.LayoutParams) mWebTextView.getLayoutParams();
+            MotionEvent fake = MotionEvent.obtain(mLastTouchTime,
+                    mLastTouchTime, MotionEvent.ACTION_DOWN,
+                    mLastTouchX - params.x + mScrollX,
+                    mLastTouchY - params.y + mScrollY, 0);
+            mWebTextView.dispatchTouchEvent(fake);
             return mWebTextView.performLongClick();
         }
         if (mSelectingText) return false; // long click does nothing on selection
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 0b4e6c3..cbd98b9 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -4126,9 +4126,19 @@
 
         final Rect listPadding = mListPadding;
 
+        // "effective padding" In this case is the amount of padding that affects
+        // how much space should not be filled by items. If we don't clip to padding
+        // there is no effective padding.
+        int effectivePaddingTop = 0;
+        int effectivePaddingBottom = 0;
+        if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
+            effectivePaddingTop = listPadding.top;
+            effectivePaddingBottom = listPadding.bottom;
+        }
+
          // FIXME account for grid vertical spacing too?
-        final int spaceAbove = listPadding.top - firstTop;
-        final int end = getHeight() - listPadding.bottom;
+        final int spaceAbove = effectivePaddingTop - firstTop;
+        final int end = getHeight() - effectivePaddingBottom;
         final int spaceBelow = lastBottom - end;
 
         final int height = getHeight() - mPaddingBottom - mPaddingTop;
@@ -4148,12 +4158,12 @@
 
         // Update our guesses for where the first and last views are
         if (firstPosition == 0) {
-            mFirstPositionDistanceGuess = firstTop - mListPadding.top;
+            mFirstPositionDistanceGuess = firstTop - listPadding.top;
         } else {
             mFirstPositionDistanceGuess += incrementalDeltaY;
         }
         if (firstPosition + childCount == mItemCount) {
-            mLastPositionDistanceGuess = lastBottom + mListPadding.bottom;
+            mLastPositionDistanceGuess = lastBottom + listPadding.bottom;
         } else {
             mLastPositionDistanceGuess += incrementalDeltaY;
         }
diff --git a/core/java/android/widget/Adapter.java b/core/java/android/widget/Adapter.java
index 9b6c5a4..88b54bf 100644
--- a/core/java/android/widget/Adapter.java
+++ b/core/java/android/widget/Adapter.java
@@ -17,7 +17,6 @@
 package android.widget;
 
 import android.database.DataSetObserver;
-import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewGroup;
 
@@ -91,6 +90,9 @@
      * @param convertView The old view to reuse, if possible. Note: You should check that this view
      *        is non-null and of an appropriate type before using. If it is not possible to convert
      *        this view to display the correct data, this method can create a new view.
+     *        Heterogeneous lists can specify their number of view types, so that this View is
+     *        always of the right type (see {@link #getViewTypeCount()} and
+     *        {@link #getItemViewType(int)}).
      * @param parent The parent that this view will eventually be attached to
      * @return A View corresponding to the data at the specified position.
      */
diff --git a/core/java/android/widget/OverScroller.java b/core/java/android/widget/OverScroller.java
index 407d7a7..0ba7889 100644
--- a/core/java/android/widget/OverScroller.java
+++ b/core/java/android/widget/OverScroller.java
@@ -948,6 +948,7 @@
             }
 
             mCurrentPosition = mStart + (int) Math.round(distance);
+
             return true;
         }
     }
diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java
index 0f61cd4..591a2d4 100644
--- a/core/java/android/widget/PopupWindow.java
+++ b/core/java/android/widget/PopupWindow.java
@@ -600,7 +600,6 @@
      * @return true if the touch splitting is enabled, false otherwise
      * 
      * @see #setSplitTouchEnabled(boolean)
-     * @hide
      */
     public boolean isSplitTouchEnabled() {
         if (mSplitTouchEnabled < 0 && mContext != null) {
@@ -621,7 +620,6 @@
      *
      * @param enabled true if the split touches should be enabled, false otherwise
      * @see #isSplitTouchEnabled()
-     * @hide
      */
     public void setSplitTouchEnabled(boolean enabled) {
         mSplitTouchEnabled = enabled ? 1 : 0;
diff --git a/core/java/android/widget/Switch.java b/core/java/android/widget/Switch.java
index 4223040..8fb6fa3 100644
--- a/core/java/android/widget/Switch.java
+++ b/core/java/android/widget/Switch.java
@@ -192,12 +192,6 @@
 
         setSwitchTypefaceByIndex(typefaceIndex, styleIndex);
 
-        int lineHeight = appearance.getDimensionPixelSize(
-                com.android.internal.R.styleable.TextAppearance_textLineHeight, 0);
-        if (lineHeight != 0) {
-            setLineHeight(lineHeight);
-        }
-
         appearance.recycle();
     }
 
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 160af21..c7ee57b 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -766,13 +766,6 @@
                 mEditTextMultilineBackground = a.getDrawable(attr);
                 break;
 
-            case com.android.internal.R.styleable.TextView_textLineHeight:
-                int lineHeight = a.getDimensionPixelSize(attr, 0);
-                if (lineHeight != 0) {
-                    setLineHeight(lineHeight);
-                }
-                break;
-
             case com.android.internal.R.styleable.TextView_textIsSelectable:
                 mTextIsSelectable = a.getBoolean(attr, false);
                 break;
@@ -918,9 +911,10 @@
             drawableLeft, drawableTop, drawableRight, drawableBottom);
         setCompoundDrawablePadding(drawablePadding);
 
-        // Same as setSingleLine, but make sure the transformation method is unchanged.
+        // Same as setSingleLine(), but make sure the transformation method and the maximum number
+        // of lines of height (for multi-line only) are unchanged.
         setInputTypeSingleLine(singleLine);
-        applySingleLine(singleLine, false);
+        applySingleLine(singleLine, false, false);
 
         if (singleLine && mInput == null && ellipsize < 0) {
                 ellipsize = 3; // END
@@ -1132,15 +1126,9 @@
      * within the text can cause individual lines to be taller or shorter
      * than this height, and the layout may contain additional first-
      * or last-line padding.
-     *
-     * @attr ref android.R.styleable#TextView_textLineHeight
      */
     public int getLineHeight() {
-        if (mLineHeight != 0) {
-            return mLineHeight;
-        }
-        return FastMath.round(mTextPaint.getFontMetricsInt(null) * mSpacingMult
-                          + mSpacingAdd);
+        return FastMath.round(mTextPaint.getFontMetricsInt(null) * mSpacingMult + mSpacingAdd);
     }
 
     /**
@@ -1727,26 +1715,10 @@
 
         setTypefaceByIndex(typefaceIndex, styleIndex);
         
-        int lineHeight = appearance.getDimensionPixelSize(
-                com.android.internal.R.styleable.TextAppearance_textLineHeight, 0);
-        if (lineHeight != 0) {
-            setLineHeight(lineHeight);
-        }
-
         appearance.recycle();
     }
 
     /**
-     * Set the height of a line of text in pixels. This value will override line height
-     * values stored in the font modified by lineSpacingExtra and lineSpacingMultiplier.
-     *
-     * @param lineHeight Desired height of a single line of text in pixels
-     */
-    public void setLineHeight(int lineHeight) {
-        mLineHeight = lineHeight;
-    }
-
-    /**
      * @return the size (in pixels) of the default text size in this TextView.
      */
     public float getTextSize() {
@@ -2156,7 +2128,10 @@
     }
 
     /**
-     * Makes the TextView at least this many lines tall
+     * Makes the TextView at least this many lines tall.
+     *
+     * Setting this value overrides any other (minimum) height setting. A single line TextView will
+     * set this value to 1.
      *
      * @attr ref android.R.styleable#TextView_minLines
      */
@@ -2170,7 +2145,9 @@
     }
 
     /**
-     * Makes the TextView at least this many pixels tall
+     * Makes the TextView at least this many pixels tall.
+     *
+     * Setting this value overrides any other (minimum) number of lines setting.
      *
      * @attr ref android.R.styleable#TextView_minHeight
      */
@@ -2184,7 +2161,9 @@
     }
 
     /**
-     * Makes the TextView at most this many lines tall
+     * Makes the TextView at most this many lines tall.
+     *
+     * Setting this value overrides any other (maximum) height setting.
      *
      * @attr ref android.R.styleable#TextView_maxLines
      */
@@ -2198,7 +2177,10 @@
     }
 
     /**
-     * Makes the TextView at most this many pixels tall
+     * Makes the TextView at most this many pixels tall.  This option is mutually exclusive with the
+     * {@link #setMaxLines(int)} method.
+     *
+     * Setting this value overrides any other (maximum) number of lines setting.
      *
      * @attr ref android.R.styleable#TextView_maxHeight
      */
@@ -2212,7 +2194,10 @@
     }
 
     /**
-     * Makes the TextView exactly this many lines tall
+     * Makes the TextView exactly this many lines tall.
+     *
+     * Note that setting this value overrides any other (minimum / maximum) number of lines or
+     * height setting. A single line TextView will set this value to 1.
      *
      * @attr ref android.R.styleable#TextView_lines
      */
@@ -2230,6 +2215,9 @@
      * You could do the same thing by specifying this number in the
      * LayoutParams.
      *
+     * Note that setting this value overrides any other (minimum / maximum) number of lines or
+     * height setting.
+     *
      * @attr ref android.R.styleable#TextView_height
      */
     @android.view.RemotableViewMethod
@@ -3027,12 +3015,14 @@
     }
 
     /**
-     * Set the type of the content with a constant as defined for
-     * {@link EditorInfo#inputType}.  This will take care of changing
-     * the key listener, by calling {@link #setKeyListener(KeyListener)}, to
-     * match the given content type.  If the given content type is
-     * {@link EditorInfo#TYPE_NULL} then a soft keyboard will
-     * not be displayed for this text view.
+     * Set the type of the content with a constant as defined for {@link EditorInfo#inputType}. This
+     * will take care of changing the key listener, by calling {@link #setKeyListener(KeyListener)},
+     * to match the given content type.  If the given content type is {@link EditorInfo#TYPE_NULL}
+     * then a soft keyboard will not be displayed for this text view.
+     *
+     * Note that the maximum number of displayed lines (see {@link #setMaxLines(int)}) will be
+     * modified if you change the {@link EditorInfo#TYPE_TEXT_FLAG_MULTI_LINE} flag of the input
+     * type.
      *
      * @see #getInputType()
      * @see #setRawInputType(int)
@@ -3069,7 +3059,7 @@
         if (mSingleLine != singleLine || forceUpdate) {
             // Change single line mode, but only change the transformation if
             // we are not in password mode.
-            applySingleLine(singleLine, !isPassword);
+            applySingleLine(singleLine, !isPassword, true);
         }
         
         InputMethodManager imm = InputMethodManager.peekInstance();
@@ -6308,19 +6298,21 @@
     }
 
     /**
-     * If true, sets the properties of this field (lines, horizontally
-     * scrolling, transformation method) to be for a single-line input;
-     * if false, restores these to the default conditions.
-     * Note that calling this with false restores default conditions,
-     * not necessarily those that were in effect prior to calling
-     * it with true.
+     * If true, sets the properties of this field (number of lines, horizontally scrolling,
+     * transformation method) to be for a single-line input; if false, restores these to the default
+     * conditions.
+     *
+     * Note that the default conditions are not necessarily those that were in effect prior this
+     * method, and you may want to reset these properties to your custom values.
      *
      * @attr ref android.R.styleable#TextView_singleLine
      */
     @android.view.RemotableViewMethod
     public void setSingleLine(boolean singleLine) {
+        // Could be used, but may break backward compatibility.
+        // if (mSingleLine == singleLine) return;
         setInputTypeSingleLine(singleLine);
-        applySingleLine(singleLine, true);
+        applySingleLine(singleLine, true, true);
     }
 
     /**
@@ -6337,7 +6329,8 @@
         }
     }
 
-    private void applySingleLine(boolean singleLine, boolean applyTransformation) {
+    private void applySingleLine(boolean singleLine, boolean applyTransformation,
+            boolean changeMaxLines) {
         mSingleLine = singleLine;
         if (singleLine) {
             setLines(1);
@@ -6347,7 +6340,9 @@
             }
             setBackgroundDrawable(mEditTextSingleLineBackground);
         } else {
-            setMaxLines(Integer.MAX_VALUE);
+            if (changeMaxLines) {
+                setMaxLines(Integer.MAX_VALUE);
+            }
             setHorizontallyScrolling(false);
             if (applyTransformation) {
                 setTransformationMethod(null);
@@ -7622,7 +7617,7 @@
             if (start == end) {
                 // Cases where the text ends with a '.' and we select from the end of the line
                 // (right after the dot), or when we select from the space character in "aaa, bbb".
-                final char c = mTransformed.charAt(start);
+                final char c = mTransformed.charAt(start - 1);
                 final int type = Character.getType(c);
                 if (type == Character.OTHER_PUNCTUATION) continue;
             }
@@ -8441,13 +8436,6 @@
         public static final int CENTER = 1;
         public static final int RIGHT = 2;
 
-        class LongPressCallback implements Runnable {
-            public void run() {
-                mController.hide();
-                startSelectionActionMode();
-            }
-        }
-
         public HandleView(CursorController controller, int pos) {
             super(TextView.this.mContext);
             mController = controller;
@@ -9376,7 +9364,6 @@
 
     private float                   mSpacingMult = 1;
     private float                   mSpacingAdd = 0;
-    private int                     mLineHeight = 0;
     private boolean                 mTextIsSelectable = false;
 
     private static final int        LINES = 1;
diff --git a/core/java/com/android/internal/view/menu/MenuPopupHelper.java b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
index 2cb78a5..a5fd38e 100644
--- a/core/java/com/android/internal/view/menu/MenuPopupHelper.java
+++ b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
@@ -96,6 +96,7 @@
         }
 
         mPopup.setContentWidth(Math.min(measureContentWidth(adapter), mPopupMaxWidth));
+        mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NOT_NEEDED);
         mPopup.show();
         mPopup.getListView().setOnKeyListener(this);
     }
@@ -163,6 +164,9 @@
             final View anchor = mAnchorView != null ? mAnchorView.get() : null;
             if (anchor != null && !anchor.isShown()) {
                 dismiss();
+            } else {
+                // Recompute window size and position
+                mPopup.show();
             }
         }
     }
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 29c6ba2..1d961ec 100644
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -1,4 +1,5 @@
 #include "SkBitmap.h"

+#include "SkPixelRef.h"

 #include "SkImageEncoder.h"

 #include "SkColorPriv.h"

 #include "GraphicsJNI.h"

@@ -210,11 +211,6 @@
 static jobject Bitmap_creator(JNIEnv* env, jobject, jintArray jColors,

                               int offset, int stride, int width, int height,

                               SkBitmap::Config config, jboolean isMutable) {

-    if (width <= 0 || height <= 0) {

-        doThrowIAE(env, "width and height must be > 0");

-        return NULL;

-    }

-

     if (NULL != jColors) {

         size_t n = env->GetArrayLength(jColors);

         if (n < SkAbs32(stride) * (size_t)height) {

@@ -226,7 +222,9 @@
     SkBitmap bitmap;

 

     bitmap.setConfig(config, width, height);

-    if (!GraphicsJNI::setJavaPixelRef(env, &bitmap, NULL, true)) {

+

+    jbyteArray buff = GraphicsJNI::allocateJavaPixelRef(env, &bitmap, NULL);

+    if (NULL == buff) {

         return NULL;

     }

 

@@ -235,21 +233,19 @@
                                0, 0, width, height, bitmap);

     }

 

-    return GraphicsJNI::createBitmap(env, new SkBitmap(bitmap), isMutable,

-                                     NULL);

+    return GraphicsJNI::createBitmap(env, new SkBitmap(bitmap), buff, isMutable, NULL);

 }

 

 static jobject Bitmap_copy(JNIEnv* env, jobject, const SkBitmap* src,

                            SkBitmap::Config dstConfig, jboolean isMutable) {

     SkBitmap            result;

-    JavaPixelAllocator  allocator(env, true);

+    JavaPixelAllocator  allocator(env);

 

     if (!src->copyTo(&result, dstConfig, &allocator)) {

         return NULL;

     }

 

-    return GraphicsJNI::createBitmap(env, new SkBitmap(result), isMutable,

-                                     NULL);

+    return GraphicsJNI::createBitmap(env, new SkBitmap(result), allocator.getStorageObj(), isMutable, NULL);

 }

 

 static void Bitmap_destructor(JNIEnv* env, jobject, SkBitmap* bitmap) {

@@ -380,7 +376,8 @@
         }

     }

 

-    if (!GraphicsJNI::setJavaPixelRef(env, bitmap, ctable, true)) {

+    jbyteArray buffer = GraphicsJNI::allocateJavaPixelRef(env, bitmap, ctable);

+    if (NULL == buffer) {

         ctable->safeUnref();

         delete bitmap;

         return NULL;

@@ -393,7 +390,7 @@
     memcpy(bitmap->getPixels(), p->readInplace(size), size);

     bitmap->unlockPixels();

 

-    return GraphicsJNI::createBitmap(env, bitmap, isMutable, NULL, density);

+    return GraphicsJNI::createBitmap(env, bitmap, buffer, isMutable, NULL, density);

 }

 

 static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject,

@@ -447,8 +444,9 @@
                                    jintArray offsetXY) {

     SkIPoint  offset;

     SkBitmap* dst = new SkBitmap;

+    JavaPixelAllocator allocator(env);

 

-    src->extractAlpha(dst, paint, &offset);

+    src->extractAlpha(dst, paint, &allocator, &offset);

     if (offsetXY != 0 && env->GetArrayLength(offsetXY) >= 2) {

         int* array = env->GetIntArrayElements(offsetXY, NULL);

         array[0] = offset.fX;

@@ -456,7 +454,7 @@
         env->ReleaseIntArrayElements(offsetXY, array, 0);

     }

 

-    return GraphicsJNI::createBitmap(env, dst, true, NULL);

+    return GraphicsJNI::createBitmap(env, dst, allocator.getStorageObj(), true, NULL);

 }

 

 ///////////////////////////////////////////////////////////////////////////////

diff --git a/core/jni/android/graphics/BitmapFactory.cpp b/core/jni/android/graphics/BitmapFactory.cpp
index 164b357..73c9a50 100644
--- a/core/jni/android/graphics/BitmapFactory.cpp
+++ b/core/jni/android/graphics/BitmapFactory.cpp
@@ -291,7 +291,7 @@
         env->ReleasePrimitiveArrayCritical(ninePatchChunk, array, 0);
     }
 
-    // detach bitmap from its autotdeleter, since we want to own it now
+    // detach bitmap from its autodeleter, since we want to own it now
     adb.detach();
 
     if (padding) {
@@ -322,7 +322,7 @@
         return javaBitmap;
     }
     // now create the java bitmap
-    return GraphicsJNI::createBitmap(env, bitmap, false, ninePatchChunk);
+    return GraphicsJNI::createBitmap(env, bitmap, javaAllocator.getStorageObj(), false, ninePatchChunk);
 }
 
 static jobject nativeDecodeStream(JNIEnv* env, jobject clazz,
diff --git a/core/jni/android/graphics/BitmapRegionDecoder.cpp b/core/jni/android/graphics/BitmapRegionDecoder.cpp
index 91a8202..1e00b71 100644
--- a/core/jni/android/graphics/BitmapRegionDecoder.cpp
+++ b/core/jni/android/graphics/BitmapRegionDecoder.cpp
@@ -79,7 +79,7 @@
         return nullObjectReturn("SkImageDecoder::Factory returned null");
     }
 
-    JavaPixelAllocator *javaAllocator = new JavaPixelAllocator(env, true);
+    JavaPixelAllocator *javaAllocator = new JavaPixelAllocator(env);
     decoder->setAllocator(javaAllocator);
     JavaMemoryUsageReporter *javaMemoryReporter = new JavaMemoryUsageReporter(env);
     decoder->setReporter(javaMemoryReporter);
@@ -241,15 +241,16 @@
                             getMimeTypeString(env, decoder->getFormat()));
     }
 
-    // detach bitmap from its autotdeleter, since we want to own it now
+    // detach bitmap from its autodeleter, since we want to own it now
     adb.detach();
 
-    SkPixelRef* pr;
-    pr = bitmap->pixelRef();
+    SkPixelRef* pr = bitmap->pixelRef();
     // promise we will never change our pixels (great for sharing and pictures)
     pr->setImmutable();
+
     // now create the java bitmap
-    return GraphicsJNI::createBitmap(env, bitmap, false, NULL);
+    jbyteArray buff = ((AndroidPixelRef*) pr)->getStorageObj();
+    return GraphicsJNI::createBitmap(env, bitmap, buff, false, NULL, -1);
 }
 
 static int nativeGetHeight(JNIEnv* env, jobject, SkBitmapRegionDecoder *brd) {
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp
index 9467be8..fc358a1 100644
--- a/core/jni/android/graphics/Graphics.cpp
+++ b/core/jni/android/graphics/Graphics.cpp
@@ -2,6 +2,9 @@
 
 #include "jni.h"
 #include "GraphicsJNI.h"
+
+#include "SkCanvas.h"
+#include "SkDevice.h"
 #include "SkPicture.h"
 #include "SkRegion.h"
 #include <android_runtime/AndroidRuntime.h>
@@ -163,7 +166,6 @@
 static jclass   gBitmap_class;
 static jfieldID gBitmap_nativeInstanceID;
 static jmethodID gBitmap_constructorMethodID;
-static jmethodID gBitmap_allocBufferMethodID;
 
 static jclass   gBitmapConfig_class;
 static jfieldID gBitmapConfig_nativeInstanceID;
@@ -360,16 +362,16 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////
 
-jobject GraphicsJNI::createBitmap(JNIEnv* env, SkBitmap* bitmap, bool isMutable,
-                                  jbyteArray ninepatch, int density)
+jobject GraphicsJNI::createBitmap(JNIEnv* env, SkBitmap* bitmap, jbyteArray buffer,
+                                  bool isMutable, jbyteArray ninepatch, int density)
 {
-    SkASSERT(bitmap != NULL);
-    SkASSERT(NULL != bitmap->pixelRef());
+    SkASSERT(bitmap);
+    SkASSERT(bitmap->pixelRef());
     
     jobject obj = env->AllocObject(gBitmap_class);
     if (obj) {
         env->CallVoidMethod(obj, gBitmap_constructorMethodID,
-                            (jint)bitmap, isMutable, ninepatch, density);
+                            (jint)bitmap, buffer, isMutable, ninepatch, density);
         if (hasException(env)) {
             obj = NULL;
         }
@@ -377,6 +379,13 @@
     return obj;
 }
 
+jobject GraphicsJNI::createBitmap(JNIEnv* env, SkBitmap* bitmap, bool isMutable,
+                            jbyteArray ninepatch, int density)
+{
+    return createBitmap(env, bitmap, NULL, isMutable, ninepatch, density);
+}
+
+
 jobject GraphicsJNI::createBitmapRegionDecoder(JNIEnv* env, SkBitmapRegionDecoder* bitmap)
 {
     SkASSERT(bitmap != NULL);
@@ -408,8 +417,6 @@
     return obj;
 }
 
-#include "SkPixelRef.h"
-
 static JNIEnv* vm2env(JavaVM* vm)
 {
     JNIEnv* env = NULL;
@@ -427,87 +434,125 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkMallocPixelRef.h"
+AndroidPixelRef::AndroidPixelRef(JNIEnv* env, void* storage, size_t size, jbyteArray storageObj,
+        SkColorTable* ctable) : SkMallocPixelRef(storage, size, ctable) {
+    SkASSERT(storage);
+    SkASSERT(env);
 
-/*  Extend SkMallocPixelRef to inform the VM when we free up the storage
-*/
-class AndroidPixelRef : public SkMallocPixelRef {
-public:
-    /** Allocate the specified buffer for pixels. The memory is freed when the
-        last owner of this pixelref is gone. Our caller has already informed
-        the VM of our allocation.
-    */
-    AndroidPixelRef(JNIEnv* env, void* storage, size_t size,
-            SkColorTable* ctable) : SkMallocPixelRef(storage, size, ctable) {
-        SkASSERT(storage);
-        SkASSERT(env);
-
-        if (env->GetJavaVM(&fVM) != JNI_OK) {
-            SkDebugf("------ [%p] env->GetJavaVM failed\n", env);
-            sk_throw();
-        }        
+    if (env->GetJavaVM(&fVM) != JNI_OK) {
+        SkDebugf("------ [%p] env->GetJavaVM failed\n", env);
+        sk_throw();
     }
+    fStorageObj = storageObj;
+    fHasGlobalRef = false;
+    fGlobalRefCnt = 0;
 
-    virtual ~AndroidPixelRef() {
+    // If storageObj is NULL, the memory was NOT allocated on the Java heap
+    fOnJavaHeap = (storageObj != NULL);
+    
+}
+
+AndroidPixelRef::~AndroidPixelRef() {
+    if (fOnJavaHeap) {
         JNIEnv* env = vm2env(fVM);
-//        SkDebugf("-------------- inform VM we're releasing %d bytes\n", this->getSize());
-        jlong jsize = this->getSize();  // the VM wants longs for the size
-        env->CallVoidMethod(gVMRuntime_singleton,
-                            gVMRuntime_trackExternalFreeMethodID,
-                            jsize);
-        if (GraphicsJNI::hasException(env)) {
-            env->ExceptionClear();
+
+        if (fStorageObj && fHasGlobalRef) {
+            env->DeleteGlobalRef(fStorageObj);
+        }
+        fStorageObj = NULL;
+
+        // Set this to NULL to prevent the SkMallocPixelRef destructor
+        // from freeing the memory.
+        fStorage = NULL;
+    }
+}
+
+void AndroidPixelRef::setLocalJNIRef(jbyteArray arr) {
+    if (!fHasGlobalRef) {
+        fStorageObj = arr;
+    }
+}
+
+void AndroidPixelRef::globalRef() {
+    if (fOnJavaHeap && sk_atomic_inc(&fGlobalRefCnt) == 0) {
+        JNIEnv *env = vm2env(fVM);
+        if (fStorageObj == NULL) {
+            SkDebugf("Cannot create a global ref, fStorage obj is NULL");
+            sk_throw();
+        }
+        if (fHasGlobalRef) {
+            // This should never happen
+            SkDebugf("Already holding a global ref");
+            sk_throw();
+        }
+
+        fStorageObj = (jbyteArray) env->NewGlobalRef(fStorageObj);
+        // TODO: Check for failure here
+        fHasGlobalRef = true;
+    }
+    ref();
+}
+
+void AndroidPixelRef::globalUnref() {
+    if (fOnJavaHeap && sk_atomic_dec(&fGlobalRefCnt) == 1) {
+        JNIEnv *env = vm2env(fVM);
+        if (!fHasGlobalRef) {
+            SkDebugf("We don't have a global ref!");
+            sk_throw();
+        }
+        env->DeleteGlobalRef(fStorageObj);
+        fStorageObj = NULL;
+        fHasGlobalRef = false;
+    }
+    unref();
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+jbyteArray GraphicsJNI::allocateJavaPixelRef(JNIEnv* env, SkBitmap* bitmap,
+                                             SkColorTable* ctable) {
+    Sk64 size64 = bitmap->getSize64();
+    if (size64.isNeg() || !size64.is32()) {
+        doThrow(env, "java/lang/IllegalArgumentException",
+                     "bitmap size exceeds 32bits");
+        return NULL;
+    }
+    
+    size_t size = size64.get32();
+    jbyteArray arrayObj = env->NewByteArray(size);
+    if (arrayObj) {
+        jbyte *addr = env->GetByteArrayElements(arrayObj, NULL);
+        env->ReleaseByteArrayElements(arrayObj, addr, 0);
+        if (addr) {
+            SkPixelRef* pr = new AndroidPixelRef(env, (void*) addr, size, arrayObj, ctable);
+            bitmap->setPixelRef(pr)->unref();
+            // since we're already allocated, we lockPixels right away
+            // HeapAllocator behaves this way too
+            bitmap->lockPixels();
         }
     }
 
-private:
-    JavaVM* fVM;
-};
+    return arrayObj;
+}
 
-bool GraphicsJNI::setJavaPixelRef(JNIEnv* env, SkBitmap* bitmap,
-                                  SkColorTable* ctable, bool reportSizeToVM) {
+bool GraphicsJNI::mallocPixelRef(JNIEnv* env, SkBitmap* bitmap, SkColorTable* ctable) {
     Sk64 size64 = bitmap->getSize64();
     if (size64.isNeg() || !size64.is32()) {
         doThrow(env, "java/lang/IllegalArgumentException",
                      "bitmap size exceeds 32bits");
         return false;
     }
-    
+
     size_t size = size64.get32();
-    jlong jsize = size;  // the VM wants longs for the size
-    if (reportSizeToVM) {
-        //    SkDebugf("-------------- inform VM we've allocated %d bytes\n", size);
-        bool r = env->CallBooleanMethod(gVMRuntime_singleton,
-                                    gVMRuntime_trackExternalAllocationMethodID,
-                                    jsize);
-        if (GraphicsJNI::hasException(env)) {
-            return false;
-        }
-        if (!r) {
-            LOGE("VM won't let us allocate %zd bytes\n", size);
-            doThrowOOME(env, "bitmap size exceeds VM budget");
-            return false;
-        }
-    }
+
     // call the version of malloc that returns null on failure
     void* addr = sk_malloc_flags(size, 0);
+
     if (NULL == addr) {
-        if (reportSizeToVM) {
-            //        SkDebugf("-------------- inform VM we're releasing %d bytes which we couldn't allocate\n", size);
-            // we didn't actually allocate it, so inform the VM
-            env->CallVoidMethod(gVMRuntime_singleton,
-                                 gVMRuntime_trackExternalFreeMethodID,
-                                 jsize);
-            if (!GraphicsJNI::hasException(env)) {
-                doThrowOOME(env, "bitmap size too large for malloc");
-            }
-        }
         return false;
     }
-    
-    SkPixelRef* pr = reportSizeToVM ?
-                        new AndroidPixelRef(env, addr, size, ctable) :
-                        new SkMallocPixelRef(addr, size, ctable);
+
+    SkPixelRef* pr = new AndroidPixelRef(env, addr, size, NULL, ctable);
     bitmap->setPixelRef(pr)->unref();
     // since we're already allocated, we lockPixels right away
     // HeapAllocator behaves this way too
@@ -517,8 +562,9 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-JavaPixelAllocator::JavaPixelAllocator(JNIEnv* env, bool reportSizeToVM)
-    : fReportSizeToVM(reportSizeToVM) {
+JavaPixelAllocator::JavaPixelAllocator(JNIEnv* env, bool allocateInJavaHeap)
+    : fAllocateInJavaHeap(allocateInJavaHeap),
+      fStorageObj(NULL) {
     if (env->GetJavaVM(&fVM) != JNI_OK) {
         SkDebugf("------ [%p] env->GetJavaVM failed\n", env);
         sk_throw();
@@ -527,7 +573,19 @@
     
 bool JavaPixelAllocator::allocPixelRef(SkBitmap* bitmap, SkColorTable* ctable) {
     JNIEnv* env = vm2env(fVM);
-    return GraphicsJNI::setJavaPixelRef(env, bitmap, ctable, fReportSizeToVM);
+
+    // If allocating in the Java heap, only allow a single object to be
+    // allocated for the lifetime of this object.
+    if (fStorageObj != NULL) {
+        SkDebugf("ERROR: One-shot allocator has already allocated\n");
+        sk_throw();
+    }
+
+    if (fAllocateInJavaHeap) {
+        fStorageObj = GraphicsJNI::allocateJavaPixelRef(env, bitmap, ctable);
+        return fStorageObj != NULL;
+    }
+    return GraphicsJNI::mallocPixelRef(env, bitmap, ctable);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -568,6 +626,25 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 
+JavaHeapBitmapRef::JavaHeapBitmapRef(JNIEnv* env, SkBitmap* nativeBitmap, jbyteArray buffer) {
+    fEnv = env;
+    fNativeBitmap = nativeBitmap;
+    fBuffer = buffer;
+
+    // If the buffer is NULL, the backing memory wasn't allocated on the Java heap
+    if (fBuffer) {
+        ((AndroidPixelRef*) fNativeBitmap->pixelRef())->setLocalJNIRef(fBuffer);
+    }
+}
+
+JavaHeapBitmapRef::~JavaHeapBitmapRef() {
+    if (fBuffer) {
+        ((AndroidPixelRef*) fNativeBitmap->pixelRef())->setLocalJNIRef(NULL);
+    }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
 static jclass make_globalref(JNIEnv* env, const char classname[])
 {
     jclass c = env->FindClass(classname);
@@ -609,10 +686,9 @@
     gPointF_yFieldID = getFieldIDCheck(env, gPointF_class, "y", "F");
 
     gBitmap_class = make_globalref(env, "android/graphics/Bitmap");
-    gBitmap_nativeInstanceID = getFieldIDCheck(env, gBitmap_class, "mNativeBitmap", "I");    
+    gBitmap_nativeInstanceID = getFieldIDCheck(env, gBitmap_class, "mNativeBitmap", "I");
     gBitmap_constructorMethodID = env->GetMethodID(gBitmap_class, "<init>",
-                                            "(IZ[BI)V");
-
+                                            "(I[BZ[BI)V");
     gBitmapRegionDecoder_class = make_globalref(env, "android/graphics/BitmapRegionDecoder");
     gBitmapRegionDecoder_constructorMethodID = env->GetMethodID(gBitmapRegionDecoder_class, "<init>", "(I)V");
 
diff --git a/core/jni/android/graphics/GraphicsJNI.h b/core/jni/android/graphics/GraphicsJNI.h
index d0f9125..505d24e 100644
--- a/core/jni/android/graphics/GraphicsJNI.h
+++ b/core/jni/android/graphics/GraphicsJNI.h
@@ -1,9 +1,12 @@
 #ifndef GraphicsJNI_DEFINED
 #define GraphicsJNI_DEFINED
 
+#include "SkBitmap.h"
+#include "SkDevice.h"
+#include "SkPixelRef.h"
+#include "SkMallocPixelRef.h"
 #include "SkPoint.h"
 #include "SkRect.h"
-#include "SkBitmap.h"
 #include "../images/SkBitmapRegionDecoder.h"
 #include "../images/SkImageDecoder.h"
 #include <jni.h>
@@ -47,23 +50,26 @@
     static SkBitmap::Config getNativeBitmapConfig(JNIEnv*, jobject jconfig);
     
     /** Create a java Bitmap object given the native bitmap (required) and optional
-        storage array (may be null). If storage is specified, then it must already be
-        locked, and its native address set as the bitmap's pixels. If storage is null,
-        then the bitmap must be an owner of its natively allocated pixels (via allocPixels).
-        */
+        storage array (may be null).
+    */
+    static jobject createBitmap(JNIEnv* env, SkBitmap* bitmap, jbyteArray buffer,
+                                bool isMutable, jbyteArray ninepatch, int density = -1);
+
     static jobject createBitmap(JNIEnv* env, SkBitmap* bitmap, bool isMutable,
-                                jbyteArray ninePatch, int density = -1);
+                                jbyteArray ninepatch, int density = -1);
     
     static jobject createRegion(JNIEnv* env, SkRegion* region);
 
     static jobject createBitmapRegionDecoder(JNIEnv* env, SkBitmapRegionDecoder* bitmap);
 
+    static jbyteArray allocateJavaPixelRef(JNIEnv* env, SkBitmap* bitmap,
+                                     SkColorTable* ctable);
+
     /** Set a pixelref for the bitmap (needs setConfig to already be called)
         Returns true on success. If it returns false, then it failed, and the
         appropriate exception will have been raised.
     */
-    static bool setJavaPixelRef(JNIEnv*, SkBitmap*, SkColorTable* ctable,
-                                bool reportSizeToVM);
+    static bool mallocPixelRef(JNIEnv*, SkBitmap*, SkColorTable* ctable);
 
     /** Copy the colors in colors[] to the bitmap, convert to the correct
         format along the way.
@@ -71,17 +77,71 @@
     static bool SetPixels(JNIEnv* env, jintArray colors, int srcOffset,
                           int srcStride, int x, int y, int width, int height,
                           const SkBitmap& dstBitmap);
+
+    static jbyteArray getBitmapStorageObj(SkPixelRef *pixref);
 };
 
+class AndroidPixelRef : public SkMallocPixelRef {
+public:
+    AndroidPixelRef(JNIEnv* env, void* storage, size_t size, jbyteArray storageObj,
+                    SkColorTable* ctable);
+
+    virtual ~AndroidPixelRef();
+
+    jbyteArray getStorageObj() { return fStorageObj; }
+
+    void setLocalJNIRef(jbyteArray arr);
+
+    virtual void globalRef();
+    virtual void globalUnref();
+
+private:
+    JavaVM* fVM;
+    bool fOnJavaHeap; // If true, the memory was allocated on the Java heap
+
+    jbyteArray fStorageObj; // The Java byte[] object used as the bitmap backing store
+    bool fHasGlobalRef; // If true, fStorageObj holds a JNI global ref
+
+    mutable int32_t fGlobalRefCnt;
+};
+
+/** A helper class for accessing Java-heap-allocated bitmaps.
+ *  This should be used when calling into a JNI method that retains a
+ *  reference to the bitmap longer than the lifetime of the Java Bitmap.
+ *
+ *  After creating an instance of this class, a call to
+ *  AndroidPixelRef::globalRef() will allocate a JNI global reference
+ *  to the backing buffer object.
+ */
+class JavaHeapBitmapRef {
+public:
+
+    JavaHeapBitmapRef(JNIEnv *env, SkBitmap* nativeBitmap, jbyteArray buffer);
+    ~JavaHeapBitmapRef();
+
+private:
+    JNIEnv* fEnv;
+    SkBitmap* fNativeBitmap;
+    jbyteArray fBuffer;
+};
+
+/** Allocator which allocates the backing buffer in the Java heap.
+ *  Instances can only be used to perform a single allocation, which helps
+ *  ensure that the allocated buffer is properly accounted for with a
+ *  reference in the heap (or a JNI global reference).
+ */
 class JavaPixelAllocator : public SkBitmap::Allocator {
 public:
-    JavaPixelAllocator(JNIEnv* env, bool reportSizeToVM);
+    JavaPixelAllocator(JNIEnv* env, bool allocateInJavaHeap=true);
     // overrides
     virtual bool allocPixelRef(SkBitmap* bitmap, SkColorTable* ctable);
     
+    jbyteArray getStorageObj() { return fStorageObj; };
+
 private:
     JavaVM* fVM;
-    bool fReportSizeToVM;
+    bool fAllocateInJavaHeap;
+    jbyteArray fStorageObj;
 };
 
 class JavaMemoryUsageReporter : public SkVMMemoryReporter {
diff --git a/core/jni/android_emoji_EmojiFactory.cpp b/core/jni/android_emoji_EmojiFactory.cpp
index f653b36..1ebb36c 100644
--- a/core/jni/android_emoji_EmojiFactory.cpp
+++ b/core/jni/android_emoji_EmojiFactory.cpp
@@ -185,7 +185,7 @@
   jobject obj = env->AllocObject(gBitmap_class);
   if (obj) {
     env->CallVoidMethod(obj, gBitmap_constructorMethodID,
-                        reinterpret_cast<jint>(bitmap), false, NULL, -1);
+                        reinterpret_cast<jint>(bitmap), NULL, false, NULL, -1);
     if (env->ExceptionCheck() != 0) {
       LOGE("*** Uncaught exception returned from Java call!\n");
       env->ExceptionDescribe();
@@ -298,7 +298,7 @@
 int register_android_emoji_EmojiFactory(JNIEnv* env) {
   gBitmap_class = make_globalref(env, "android/graphics/Bitmap");
   gBitmap_constructorMethodID = env->GetMethodID(gBitmap_class, "<init>",
-                                                 "(IZ[BI)V");
+                                                 "(I[BZ[BI)V");
   gEmojiFactory_class = make_globalref(env, "android/emoji/EmojiFactory");
   gEmojiFactory_constructorMethodID = env->GetMethodID(
       gEmojiFactory_class, "<init>", "(ILjava/lang/String;)V");
diff --git a/core/jni/android_os_FileUtils.cpp b/core/jni/android_os_FileUtils.cpp
index d3faa2f..d8a3db3 100644
--- a/core/jni/android_os_FileUtils.cpp
+++ b/core/jni/android_os_FileUtils.cpp
@@ -177,7 +177,7 @@
     {"getPermissions",  "(Ljava/lang/String;[I)I", (void*)android_os_FileUtils_getPermissions},
     {"setUMask",        "(I)I",                    (void*)android_os_FileUtils_setUMask},
     {"getFatVolumeId",  "(Ljava/lang/String;)I", (void*)android_os_FileUtils_getFatVolumeId},
-    {"getFileStatus",  "(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z", (void*)android_os_FileUtils_getFileStatus},
+    {"getFileStatusNative", "(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z", (void*)android_os_FileUtils_getFileStatus},
 };
 
 static const char* const kFileUtilsPathName = "android/os/FileUtils";
@@ -211,4 +211,3 @@
 }
 
 }
-
diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp
index cb261d4..c3d3572 100644
--- a/core/jni/android_view_GLES20Canvas.cpp
+++ b/core/jni/android_view_GLES20Canvas.cpp
@@ -17,6 +17,7 @@
 #define LOG_TAG "OpenGLRenderer"
 
 #include "jni.h"
+#include "GraphicsJNI.h"
 #include <nativehelper/JNIHelp.h>
 #include <android_runtime/AndroidRuntime.h>
 #include <utils/ResourceTypes.h>
@@ -66,8 +67,6 @@
 #endif
 
 // ----------------------------------------------------------------------------
-// Java APIs
-// ----------------------------------------------------------------------------
 
 static struct {
     jclass clazz;
@@ -238,32 +237,46 @@
 // ----------------------------------------------------------------------------
 
 static void android_view_GLES20Canvas_drawBitmap(JNIEnv* env, jobject canvas,
-        OpenGLRenderer* renderer, SkBitmap* bitmap, float left, float top, SkPaint* paint) {
+        OpenGLRenderer* renderer, SkBitmap* bitmap, jbyteArray buffer, float left,
+        float top, SkPaint* paint) {
+    // This object allows the renderer to allocate a global JNI ref to the buffer object.
+    JavaHeapBitmapRef bitmapRef(env, bitmap, buffer);
+
     renderer->drawBitmap(bitmap, left, top, paint);
 }
 
 static void android_view_GLES20Canvas_drawBitmapRect(JNIEnv* env, jobject canvas,
-        OpenGLRenderer* renderer, SkBitmap* bitmap,
+        OpenGLRenderer* renderer, SkBitmap* bitmap, jbyteArray buffer,
         float srcLeft, float srcTop, float srcRight, float srcBottom,
         float dstLeft, float dstTop, float dstRight, float dstBottom, SkPaint* paint) {
+    // This object allows the renderer to allocate a global JNI ref to the buffer object.
+    JavaHeapBitmapRef bitmapRef(env, bitmap, buffer);
+
     renderer->drawBitmap(bitmap, srcLeft, srcTop, srcRight, srcBottom,
             dstLeft, dstTop, dstRight, dstBottom, paint);
 }
 
 static void android_view_GLES20Canvas_drawBitmapMatrix(JNIEnv* env, jobject canvas,
-        OpenGLRenderer* renderer, SkBitmap* bitmap, SkMatrix* matrix, SkPaint* paint) {
+        OpenGLRenderer* renderer, SkBitmap* bitmap, jbyteArray buffer, SkMatrix* matrix,
+        SkPaint* paint) {
+    // This object allows the renderer to allocate a global JNI ref to the buffer object.
+    JavaHeapBitmapRef bitmapRef(env, bitmap, buffer);
+
     renderer->drawBitmap(bitmap, matrix, paint);
 }
 
 static void android_view_GLES20Canvas_drawPatch(JNIEnv* env, jobject canvas,
-        OpenGLRenderer* renderer, SkBitmap* bitmap, jbyteArray chunks,
+        OpenGLRenderer* renderer, SkBitmap* bitmap, jbyteArray buffer, jbyteArray chunks,
         float left, float top, float right, float bottom, SkPaint* paint) {
+    // This object allows the renderer to allocate a global JNI ref to the buffer object.
+    JavaHeapBitmapRef bitmapRef(env, bitmap, buffer);
+
     jbyte* storage = env->GetByteArrayElements(chunks, NULL);
     Res_png_9patch* patch = reinterpret_cast<Res_png_9patch*>(storage);
     Res_png_9patch::deserialize(patch);
 
-    renderer->drawPatch(bitmap, &patch->xDivs[0], &patch->yDivs[0], &patch->colors[0],
-            patch->numXDivs, patch->numYDivs, patch->numColors,
+    renderer->drawPatch(bitmap, &patch->xDivs[0], &patch->yDivs[0],
+            &patch->colors[0], patch->numXDivs, patch->numYDivs, patch->numColors,
             left, top, right, bottom, paint);
 
     env->ReleaseByteArrayElements(chunks, storage, 0);
@@ -477,10 +490,11 @@
     { "nGetMatrix",         "(II)V",           (void*) android_view_GLES20Canvas_getMatrix },
     { "nConcatMatrix",      "(II)V",           (void*) android_view_GLES20Canvas_concatMatrix },
 
-    { "nDrawBitmap",        "(IIFFI)V",        (void*) android_view_GLES20Canvas_drawBitmap },
-    { "nDrawBitmap",        "(IIFFFFFFFFI)V",  (void*) android_view_GLES20Canvas_drawBitmapRect },
-    { "nDrawBitmap",        "(IIII)V",         (void*) android_view_GLES20Canvas_drawBitmapMatrix },
-    { "nDrawPatch",         "(II[BFFFFI)V",    (void*) android_view_GLES20Canvas_drawPatch },
+    { "nDrawBitmap",        "(II[BFFI)V", (void*) android_view_GLES20Canvas_drawBitmap },
+    { "nDrawBitmap",        "(II[BFFFFFFFFI)V", (void*) android_view_GLES20Canvas_drawBitmapRect },
+    { "nDrawBitmap",        "(II[BII)V", (void*) android_view_GLES20Canvas_drawBitmapMatrix },
+    { "nDrawPatch",         "(II[B[BFFFFI)V", (void*) android_view_GLES20Canvas_drawPatch },
+
     { "nDrawColor",         "(III)V",          (void*) android_view_GLES20Canvas_drawColor },
     { "nDrawRect",          "(IFFFFI)V",       (void*) android_view_GLES20Canvas_drawRect },
     { "nDrawRects",         "(III)V",          (void*) android_view_GLES20Canvas_drawRects },
diff --git a/core/res/res/drawable-hdpi/spinner_active_holo_dark.9.png b/core/res/res/drawable-hdpi/spinner_active_holo_dark.9.png
index bbf2861..752b416 100644
--- a/core/res/res/drawable-hdpi/spinner_active_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/spinner_active_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_active_holo_light.9.png b/core/res/res/drawable-hdpi/spinner_active_holo_light.9.png
index a10098d..afc0c57 100644
--- a/core/res/res/drawable-hdpi/spinner_active_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/spinner_active_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_cab_active_holo_dark.9.png b/core/res/res/drawable-hdpi/spinner_cab_active_holo_dark.9.png
index ffae7e7..7cad0c9 100644
--- a/core/res/res/drawable-hdpi/spinner_cab_active_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/spinner_cab_active_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_cab_active_holo_light.9.png b/core/res/res/drawable-hdpi/spinner_cab_active_holo_light.9.png
index eaa38e2..7cad0c9 100644
--- a/core/res/res/drawable-hdpi/spinner_cab_active_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/spinner_cab_active_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_cab_default_holo_dark.9.png b/core/res/res/drawable-hdpi/spinner_cab_default_holo_dark.9.png
index 8693710..b3f3cf7 100644
--- a/core/res/res/drawable-hdpi/spinner_cab_default_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/spinner_cab_default_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_cab_default_holo_light.9.png b/core/res/res/drawable-hdpi/spinner_cab_default_holo_light.9.png
index 941739e..af46631 100644
--- a/core/res/res/drawable-hdpi/spinner_cab_default_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/spinner_cab_default_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_cab_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/spinner_cab_pressed_holo_dark.9.png
index dc236ec..8b6f9dd 100644
--- a/core/res/res/drawable-hdpi/spinner_cab_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/spinner_cab_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_cab_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/spinner_cab_pressed_holo_light.9.png
index 17e3a27..4f0c476 100644
--- a/core/res/res/drawable-hdpi/spinner_cab_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/spinner_cab_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_default_holo_dark.9.png b/core/res/res/drawable-hdpi/spinner_default_holo_dark.9.png
index 7189c6d..ac36c06 100644
--- a/core/res/res/drawable-hdpi/spinner_default_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/spinner_default_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_default_holo_light.9.png b/core/res/res/drawable-hdpi/spinner_default_holo_light.9.png
index 996ef15..6821599 100644
--- a/core/res/res/drawable-hdpi/spinner_default_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/spinner_default_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/spinner_pressed_holo_dark.9.png
index 5428b0a..3b26017 100644
--- a/core/res/res/drawable-hdpi/spinner_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/spinner_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_active_holo_dark.9.png b/core/res/res/drawable-mdpi/spinner_active_holo_dark.9.png
index c235501..1f0521a 100644
--- a/core/res/res/drawable-mdpi/spinner_active_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/spinner_active_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_active_holo_light.9.png b/core/res/res/drawable-mdpi/spinner_active_holo_light.9.png
index 06e2bde..9604e1f 100644
--- a/core/res/res/drawable-mdpi/spinner_active_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/spinner_active_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_cab_active_holo_dark.9.png b/core/res/res/drawable-mdpi/spinner_cab_active_holo_dark.9.png
index bb57d8d..617c379 100644
--- a/core/res/res/drawable-mdpi/spinner_cab_active_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/spinner_cab_active_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_cab_active_holo_light.9.png b/core/res/res/drawable-mdpi/spinner_cab_active_holo_light.9.png
index 4e3edff..617c379 100644
--- a/core/res/res/drawable-mdpi/spinner_cab_active_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/spinner_cab_active_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_cab_default_holo_dark.9.png b/core/res/res/drawable-mdpi/spinner_cab_default_holo_dark.9.png
index 62d2f6e..d76b123 100644
--- a/core/res/res/drawable-mdpi/spinner_cab_default_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/spinner_cab_default_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_cab_default_holo_light.9.png b/core/res/res/drawable-mdpi/spinner_cab_default_holo_light.9.png
index df80aa6..ee91044 100644
--- a/core/res/res/drawable-mdpi/spinner_cab_default_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/spinner_cab_default_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_cab_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/spinner_cab_pressed_holo_dark.9.png
index 9b8a54b..df0a935 100644
--- a/core/res/res/drawable-mdpi/spinner_cab_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/spinner_cab_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_cab_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/spinner_cab_pressed_holo_light.9.png
index 6d4fa54..b43177b 100644
--- a/core/res/res/drawable-mdpi/spinner_cab_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/spinner_cab_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_default_holo_dark.9.png b/core/res/res/drawable-mdpi/spinner_default_holo_dark.9.png
index 3dba2352..99b1605 100644
--- a/core/res/res/drawable-mdpi/spinner_default_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/spinner_default_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_default_holo_light.9.png b/core/res/res/drawable-mdpi/spinner_default_holo_light.9.png
index 4614cfa..c820e40 100644
--- a/core/res/res/drawable-mdpi/spinner_default_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/spinner_default_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/spinner_pressed_holo_dark.9.png
index 25aaed2..083194a 100644
--- a/core/res/res/drawable-mdpi/spinner_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/spinner_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable/background_cache_hint_selector_holo_dark.xml b/core/res/res/drawable/background_cache_hint_selector_holo_dark.xml
new file mode 100644
index 0000000..b18c5b7
--- /dev/null
+++ b/core/res/res/drawable/background_cache_hint_selector_holo_dark.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_accelerated="false"
+            android:color="@android:color/background_holo_dark" />
+    <item android:color="@android:color/transparent" />
+</selector>
diff --git a/core/res/res/drawable/background_cache_hint_selector_holo_light.xml b/core/res/res/drawable/background_cache_hint_selector_holo_light.xml
new file mode 100644
index 0000000..9d80944
--- /dev/null
+++ b/core/res/res/drawable/background_cache_hint_selector_holo_light.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_accelerated="false"
+            android:color="@android:color/background_holo_light" />
+    <item android:color="@android:color/transparent" />
+</selector>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 7c71f43..73b1286 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -126,10 +126,10 @@
     <string name="contentServiceSync" msgid="8353523060269335667">"مزامنة"</string>
     <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"مزامنة"</string>
     <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"عمليات حذف <xliff:g id="CONTENT_TYPE">%s</xliff:g> كثيرة للغاية."</string>
-    <string name="low_memory" product="tablet" msgid="2292820184396262278">"سعة تخزين الكمبيوتر اللوحي ممتلئة! احذف بعض الملفات لتحرير مساحة."</string>
+    <string name="low_memory" product="tablet" msgid="2292820184396262278">"سعة تخزين الجهاز اللوحي ممتلئة! احذف بعض الملفات لتحرير مساحة."</string>
     <string name="low_memory" product="default" msgid="6632412458436461203">"سعة تخزين الهاتف ممتلئة! احذف بعض الملفات لتحرير مساحة."</string>
     <string name="me" msgid="6545696007631404292">"أنا"</string>
-    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"خيارات الكمبيوتر اللوحي"</string>
+    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"خيارات الجهاز اللوحي"</string>
     <string name="power_dialog" product="default" msgid="1319919075463988638">"خيارات الهاتف"</string>
     <string name="silent_mode" msgid="7167703389802618663">"وضع صامت"</string>
     <string name="turn_on_radio" msgid="3912793092339962371">"تشغيل اللاسلكي"</string>
@@ -137,13 +137,13 @@
     <string name="screen_lock" msgid="799094655496098153">"تأمين الشاشة"</string>
     <string name="power_off" msgid="4266614107412865048">"إيقاف التشغيل"</string>
     <string name="shutdown_progress" msgid="2281079257329981203">"جارٍ إيقاف التشغيل..."</string>
-    <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"سيتم إيقاف تشغيل الكمبيوتر اللوحي."</string>
+    <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"سيتم إيقاف تشغيل الجهاز اللوحي."</string>
     <string name="shutdown_confirm" product="default" msgid="649792175242821353">"سيتم إيقاف تشغيل هاتفك."</string>
     <!-- no translation found for shutdown_confirm_question (6656441286856415014) -->
     <skip />
     <string name="recent_tasks_title" msgid="3691764623638127888">"حديثة"</string>
     <string name="no_recent_tasks" msgid="279702952298056674">"ليس هناك أية تطبيقات حديثة."</string>
-    <string name="global_actions" product="tablet" msgid="408477140088053665">"خيارات الكمبيوتر اللوحي"</string>
+    <string name="global_actions" product="tablet" msgid="408477140088053665">"خيارات الجهاز اللوحي"</string>
     <string name="global_actions" product="default" msgid="2406416831541615258">"خيارات الهاتف"</string>
     <string name="global_action_lock" msgid="2844945191792119712">"تأمين الشاشة"</string>
     <string name="global_action_power_off" msgid="4471879440839879722">"إيقاف التشغيل"</string>
@@ -160,7 +160,7 @@
     <string name="permgrouplab_messages" msgid="7521249148445456662">"رسائلك"</string>
     <string name="permgroupdesc_messages" msgid="7045736972019211994">"قراءة وكتابة الرسائل القصيرة SMS والرسائل الإلكترونية والرسائل الأخرى."</string>
     <string name="permgrouplab_personalInfo" msgid="3519163141070533474">"معلوماتك الشخصية"</string>
-    <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"للدخول المباشر إلى التقويم وجهات الاتصال المخزّنة في الكمبيوتر اللوحي."</string>
+    <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"للدخول المباشر إلى التقويم وجهات الاتصال المخزّنة في الجهاز اللوحي."</string>
     <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"الدخول المباشر إلى التقويم وجهات الاتصال المخزّنة على الهاتف."</string>
     <string name="permgrouplab_location" msgid="635149742436692049">"موقعك"</string>
     <string name="permgroupdesc_location" msgid="2430258821648348660">"مراقبة موقعك الفعلي"</string>
@@ -196,10 +196,10 @@
     <string name="permlab_sendSms" msgid="5600830612147671529">"إرسال رسائل قصيرة SMS"</string>
     <string name="permdesc_sendSms" msgid="1946540351763502120">"للسماح للتطبيق بإرسال رسائل قصيرة SMS. قد تكلفك التطبيقات الضارة المال من خلال إرسال رسائل بدون تأكيدك."</string>
     <string name="permlab_readSms" msgid="4085333708122372256">"قراءة الرسائل القصيرة SMS أو رسائل الوسائط المتعددة"</string>
-    <string name="permdesc_readSms" product="tablet" msgid="5836710350295631545">"للسماح للتطبيق بقراءة الرسائل القصيرة SMS المخزنة على الكمبيوتر اللوحي أو بطاقة SIM. قد تقرأ التطبيقات الضارة رسائلك السرية."</string>
+    <string name="permdesc_readSms" product="tablet" msgid="5836710350295631545">"للسماح للتطبيق بقراءة الرسائل القصيرة SMS المخزنة على الجهاز اللوحي أو بطاقة SIM. قد تقرأ التطبيقات الضارة رسائلك السرية."</string>
     <string name="permdesc_readSms" product="default" msgid="3002170087197294591">"للسماح للتطبيق بقراءة الرسائل القصيرة SMS المخزنة على الهاتف أو بطاقة SIM. قد تقرأ التطبيقات الضارة رسائلك السرية."</string>
     <string name="permlab_writeSms" msgid="6881122575154940744">"تعديل الرسائل القصيرة SMS أو رسائل الوسائط المتعددة"</string>
-    <string name="permdesc_writeSms" product="tablet" msgid="5332124772918835437">"للسماح للتطبيق بالكتابة إلى الرسائل القصيرة SMS المخزّنة في الكمبيوتر اللوحي أو بطاقة SIM. قد تحذف التطبيقات الضارة رسائلك."</string>
+    <string name="permdesc_writeSms" product="tablet" msgid="5332124772918835437">"للسماح للتطبيق بالكتابة إلى الرسائل القصيرة SMS المخزّنة في الجهاز اللوحي أو بطاقة SIM. قد تحذف التطبيقات الضارة رسائلك."</string>
     <string name="permdesc_writeSms" product="default" msgid="6299398896177548095">"للسماح للتطبيق بالكتابة إلى الرسائل القصيرة SMS المخزنة على الهاتف أو بطاقة SIM. قد تحذف التطبيقات الضارة رسائلك."</string>
     <string name="permlab_receiveWapPush" msgid="8258226427716551388">"تلقي WAP"</string>
     <string name="permdesc_receiveWapPush" msgid="5979623826128082171">"للسماح للتطبيق بتلقي رسائل WAP ومعالجتها. قد تراقب بعض التطبيقات الضارة رسائلك أو تحذفها بدون عرضها لك."</string>
@@ -250,7 +250,7 @@
     <string name="permlab_manageAppTokens" msgid="17124341698093865">"إدارة رموز التطبيق"</string>
     <string name="permdesc_manageAppTokens" msgid="977127907524195988">"للسماح للتطبيقات بإنشاء وإدارة رموزها الخاصة، وتجاوز ترتيب Z العادي. لا يجب استخدامه على الإطلاق للتطبيقات العادية."</string>
     <string name="permlab_injectEvents" msgid="1378746584023586600">"مفاتيح الضغط وأزرار التحكم"</string>
-    <string name="permdesc_injectEvents" product="tablet" msgid="7200014808195664505">"للسماح لأحد التطبيقات بتسليم أحداث الإرسال الخاصة به (ضغطات المفاتيح وغير ذلك) إلى تطبيقات أخرى. يمكن أن تستخدم التطبيقات الضارة ذلك للاستحواذ على الكمبيوتر اللوحي."</string>
+    <string name="permdesc_injectEvents" product="tablet" msgid="7200014808195664505">"للسماح لأحد التطبيقات بتسليم أحداث الإرسال الخاصة به (ضغطات المفاتيح وغير ذلك) إلى تطبيقات أخرى. يمكن أن تستخدم التطبيقات الضارة ذلك للاستحواذ على الجهاز اللوحي."</string>
     <string name="permdesc_injectEvents" product="default" msgid="3946098050410874715">"للسماح لتطبيق ما بتسليم أحداث الإرسال الخاصة به (ضغطات المفاتيح وغير ذلك) إلى تطبيقات أخرى. يمكن أن تستخدم التطبيقات الضارة ذلك للاستحواذ على الهاتف."</string>
     <string name="permlab_readInputState" msgid="469428900041249234">"تسجيل ما تكتبه والإجراءات التي تتخذها"</string>
     <string name="permdesc_readInputState" msgid="5132879321450325445">"للسماح للتطبيقات بمراقبة الأحرف التي تضغط عليها حتى عند التفاعل مع تطبيق آخر (مثل إدخال كلمة مرور). لا يجب استخدامه على الإطلاق للتطبيقات العادية."</string>
@@ -277,18 +277,18 @@
     <string name="permlab_installPackages" msgid="335800214119051089">"تثبيت التطبيقات مباشرة"</string>
     <string name="permdesc_installPackages" msgid="526669220850066132">"للسماح لتطبيق ما بتثبيت حزم Android الجديدة أو المحدّثة. يمكن أن تستخدم التطبيقات الضارة ذلك لإضافة تطبيقات جديدة ذات أذونات قوية على نحو عشوائي."</string>
     <string name="permlab_clearAppCache" msgid="4747698311163766540">"حذف جميع بيانات ذاكرة التخزين المؤقت للتطبيق"</string>
-    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"للسماح لأحد التطبيقات بتفريغ سعة تخزين الكمبيوتر اللوحي من خلال حذف بعض الملفات من دليل ذاكرة التخزين المؤقت للتطبيق. ويكون الدخول في العادة مقيّدًا بشدة لمعالجة النظام."</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"للسماح لأحد التطبيقات بتفريغ سعة تخزين الجهاز اللوحي من خلال حذف بعض الملفات من دليل ذاكرة التخزين المؤقت للتطبيق. ويكون الدخول في العادة مقيّدًا بشدة لمعالجة النظام."</string>
     <string name="permdesc_clearAppCache" product="default" msgid="7740465694193671402">"للسماح لتطبيق ما بتفريغ سعة تخزين الهاتف من خلال حذف بعض الملفات من دليل ذاكرة التخزين المؤقت للتطبيق. ويكون الدخول في العادة مقيّدًا بشدة لمعالجة النظام."</string>
     <string name="permlab_movePackage" msgid="728454979946503926">"نقل موارد التطبيق"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"للسماح لتطبيق ما بنقل موارد التطبيق من الوسائط الداخلية إلى الوسائط الخارجية والعكس."</string>
     <!-- outdated translation 4811921703882532070 -->     <string name="permlab_readLogs" msgid="6615778543198967614">"قراءة ملفات سجل النظام"</string>
-    <string name="permdesc_readLogs" product="tablet" msgid="4077356893924755294">"للسماح لأحد التطبيقات بالقراءة من ملفات السجل المختلفة بالنظام. يسمح هذا باكتشاف معلومات عامة حول ما تجريه في الكمبيوتر اللوحي، ومن المحتمل أن تحتوي على معلومات شخصية أو خاصة."</string>
-    <!-- outdated translation 4077356893924755294 -->     <string name="permdesc_readLogs" product="default" msgid="8896449437464867766">"للسماح لأحد التطبيقات بالقراءة من ملفات السجل المختلفة بالنظام. يسمح هذا باكتشاف معلومات عامة حول ما تجريه في الكمبيوتر اللوحي، ومن المحتمل أن تحتوي على معلومات شخصية أو خاصة."</string>
+    <string name="permdesc_readLogs" product="tablet" msgid="4077356893924755294">"للسماح لأحد التطبيقات بالقراءة من ملفات السجل المختلفة بالنظام. يسمح هذا باكتشاف معلومات عامة حول ما تجريه في الجهاز اللوحي، ومن المحتمل أن تحتوي على معلومات شخصية أو خاصة."</string>
+    <!-- outdated translation 4077356893924755294 -->     <string name="permdesc_readLogs" product="default" msgid="8896449437464867766">"للسماح لأحد التطبيقات بالقراءة من ملفات السجل المختلفة بالنظام. يسمح هذا باكتشاف معلومات عامة حول ما تجريه في الجهاز اللوحي، ومن المحتمل أن تحتوي على معلومات شخصية أو خاصة."</string>
     <string name="permlab_diagnostic" msgid="8076743953908000342">"قراءة/كتابة إلى الموارد المملوكة بواسطة التشخيص"</string>
     <string name="permdesc_diagnostic" msgid="3121238373951637049">"للسماح لتطبيق ما بالقراءة والكتابة إلى أي مورد مملوك بواسطة مجموعة التشخيصات؛ على سبيل المثال، الملفات في /dev. من المحتمل أن يؤثر ذلك في استقرار النظام وأمانه. يجب ألا يستخدم ذلك سوى للتشخيصات الخاصة بالنظام من قِبل المصنِّع أو المشغِّل."</string>
     <string name="permlab_changeComponentState" msgid="79425198834329406">"تمكين مكونات التطبيق أو تعطيلها"</string>
-    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"للسماح لأحد التطبيقات بتغير ما إذ كان مكون تطبيق آخر ممكّنًا أم لا. يمكن أن تستخدم التطبيقات الضارة ذلك لتعطيل قدرات الكمبيوتر اللوحي المهمة. يجب توخي الحذر عند استخدام هذا الإذن، إذ يحتمل أن يحول مكونات التطبيق إلى حالة غير قابلة للاستخدام أو غير متسقة أو غير مستقرة."</string>
-    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"للسماح لأحد التطبيقات بتغير ما إذ كان مكون تطبيق آخر ممكّنًا أم لا. يمكن أن تستخدم التطبيقات الضارة ذلك لتعطيل قدرات الكمبيوتر اللوحي المهمة. يجب توخي الحذر عند استخدام هذا الإذن، إذ يحتمل أن يحول مكونات التطبيق إلى حالة غير قابلة للاستخدام أو غير متسقة أو غير مستقرة."</string>
+    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"للسماح لأحد التطبيقات بتغير ما إذ كان مكون تطبيق آخر ممكّنًا أم لا. يمكن أن تستخدم التطبيقات الضارة ذلك لتعطيل قدرات الجهاز اللوحي المهمة. يجب توخي الحذر عند استخدام هذا الإذن، إذ يحتمل أن يحول مكونات التطبيق إلى حالة غير قابلة للاستخدام أو غير متسقة أو غير مستقرة."</string>
+    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"للسماح لأحد التطبيقات بتغير ما إذ كان مكون تطبيق آخر ممكّنًا أم لا. يمكن أن تستخدم التطبيقات الضارة ذلك لتعطيل قدرات الجهاز اللوحي المهمة. يجب توخي الحذر عند استخدام هذا الإذن، إذ يحتمل أن يحول مكونات التطبيق إلى حالة غير قابلة للاستخدام أو غير متسقة أو غير مستقرة."</string>
     <string name="permlab_setPreferredApplications" msgid="3393305202145172005">"تعيين التطبيقات المفضلة"</string>
     <string name="permdesc_setPreferredApplications" msgid="760008293501937546">"للسماح لتطبيق ما بتعديل التطبيقات المفضلة. يمكن أن يسمح ذلك للتطبيقات الضارة بتغيير التطبيقات قيد التشغيل بشكل غير ملحوظ، وانتحال صفة تطبيقاتك الحالية لجمع بيانات خاصة منك."</string>
     <string name="permlab_writeSettings" msgid="1365523497395143704">"تعديل إعدادات النظام العمومية"</string>
@@ -298,19 +298,19 @@
     <string name="permlab_writeGservices" msgid="2149426664226152185">"تعديل خريطة خدمات Google"</string>
     <string name="permdesc_writeGservices" msgid="6602362746516676175">"للسماح لتطبيق ما بتعديل خريطة خدمات Google. ليس للاستخدام بواسطة التطبيقات العادية."</string>
     <string name="permlab_receiveBootCompleted" msgid="7776779842866993377">"البدء تلقائيًا عند التشغيل"</string>
-    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"للسماح لأحد التطبيقات ببدء تشغيل نفسه عقب انتهاء النظام من التشغيل. قد يؤدي ذلك إلى استغراق مزيد من الوقت عند بدء الكمبيوتر اللوحي والسماح للتطبيق بإبطاء الأداء الإجمالي للكمبيوتر اللوحي من خلال تشغيله دومًا."</string>
+    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"للسماح لأحد التطبيقات ببدء تشغيل نفسه عقب انتهاء النظام من التشغيل. قد يؤدي ذلك إلى استغراق مزيد من الوقت عند بدء الجهاز اللوحي والسماح للتطبيق بإبطاء الأداء الإجمالي للجهاز اللوحي من خلال تشغيله دومًا."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="698336728415008796">"للسماح لتطبيق ما ببدء تشغيل نفسه عقب انتهاء النظام من التشغيل. قد يؤدي ذلك إلى استغراق مزيد من الوقت عن بدء الهاتف والسماح للتطبيق بإبطاء الأداء الإجمالي للهاتف حيث يتم تشغيله دومًا."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"إرسال بث طويل الزيارة"</string>
-    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"للسماح لأحد التطبيقات بإرسال بث طويل الزيارة، والذي يظل بعد انتهاء البث. قد تجعل التطبيقات الضارة الكمبيوتر اللوحي بطيئًا أو غير مستقر من خلال التسبب في استخدامه لمساحة كبيرة للغاية من الذاكرة."</string>
+    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"للسماح لأحد التطبيقات بإرسال بث طويل الزيارة، والذي يظل بعد انتهاء البث. قد تجعل التطبيقات الضارة الجهاز اللوحي بطيئًا أو غير مستقر من خلال التسبب في استخدامه لمساحة كبيرة للغاية من الذاكرة."</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="1920045289234052219">"للسماح لتطبيق ما بإرسال بث طويل الزيارة، والذي يظل بعد انتهاء البث. قد تجعل التطبيقات الضارة الهاتف بطيئًا أو غير مستقر من خلال التسبب في استخدام مساحة كبيرة للغاية من الذاكرة."</string>
     <string name="permlab_readContacts" msgid="6219652189510218240">"قراءة بيانات جهة الاتصال"</string>
-    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"للسماح لأحد التطبيقات بقراءة جميع بيانات (عنوان) جهات الاتصال المخزّنة في الكمبيوتر اللوحي. يمكن أن تستخدم التطبيقات الضارة هذا لإرسال بياناتك إلى أشخاص آخرين."</string>
+    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"للسماح لأحد التطبيقات بقراءة جميع بيانات (عنوان) جهات الاتصال المخزّنة في الجهاز اللوحي. يمكن أن تستخدم التطبيقات الضارة هذا لإرسال بياناتك إلى أشخاص آخرين."</string>
     <string name="permdesc_readContacts" product="default" msgid="3371591512896545975">"للسماح لتطبيق ما بقراءة جميع بيانات (عنوان) جهات الاتصال المخزّنة في هاتفك. يمكن أن تستخدم التطبيقات الضارة هذا لإرسال بياناتك إلى أشخاص آخرين."</string>
     <string name="permlab_writeContacts" msgid="644616215860933284">"كتابة بيانات جهة الاتصال"</string>
-    <string name="permdesc_writeContacts" product="tablet" msgid="7782689510038568495">"للسماح لأحد التطبيقات بتعديل بيانات (عنوان) جهة الاتصال المخزّنة في الكمبيوتر اللوحي. يمكن أن تستخدم التطبيقات الضارة ذلك لمسح بيانات جهة الاتصال أو تعديلها."</string>
+    <string name="permdesc_writeContacts" product="tablet" msgid="7782689510038568495">"للسماح لأحد التطبيقات بتعديل بيانات (عنوان) جهة الاتصال المخزّنة في الجهاز اللوحي. يمكن أن تستخدم التطبيقات الضارة ذلك لمسح بيانات جهة الاتصال أو تعديلها."</string>
     <string name="permdesc_writeContacts" product="default" msgid="3924383579108183601">"للسماح لتطبيق ما بتعديل بيانات (عنوان) جهة الاتصال المخزّنة في هاتفك. يمكن أن تستخدم التطبيقات الضارة ذلك لمسح بيانات جهة الاتصال أو تعديلها."</string>
     <string name="permlab_readCalendar" msgid="6898987798303840534">"قراءة أحداث التقويم"</string>
-    <string name="permdesc_readCalendar" product="tablet" msgid="5905870265734599678">"للسماح لأحد التطبيقات بقراءة جميع أحداث التقويم المخزّنة في الكمبيوتر اللوحي. يمكن أن تستخدم التطبيقات الضارة هذا لإرسال أحداث تقويمك إلى أشخاص آخرين."</string>
+    <string name="permdesc_readCalendar" product="tablet" msgid="5905870265734599678">"للسماح لأحد التطبيقات بقراءة جميع أحداث التقويم المخزّنة في الجهاز اللوحي. يمكن أن تستخدم التطبيقات الضارة هذا لإرسال أحداث تقويمك إلى أشخاص آخرين."</string>
     <string name="permdesc_readCalendar" product="default" msgid="5533029139652095734">"للسماح لتطبيق ما بقراءة جميع أحداث التقويم المخزّنة في هاتفك. يمكن أن تستخدم التطبيقات الضارة هذا لإرسال أحداث تقويمك إلى أشخاص آخرين."</string>
     <string name="permlab_writeCalendar" msgid="3894879352594904361">"إضافة أحداث تقويم أو تعديلها وإرسال رسالة إلكترونية إلى الضيوف"</string>
     <string name="permdesc_writeCalendar" msgid="2988871373544154221">"للسماح لتطبيق ما بإضافة أحداث أو تغييرها في تقويمك، مما قد يؤدي إلى إرسال رسائل إلكترونية إلى الضيوف. يمكن أن تستخدم التطبيقات الضارة ذلك لمسح أحداث تقويمك أو تعديلها أو لإرسال رسائل إلكترونية إلى الضيوف."</string>
@@ -321,10 +321,10 @@
     <string name="permlab_installLocationProvider" msgid="6578101199825193873">"إذن لتثبيت موفر خدمة موقع"</string>
     <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"إنشاء مصادر مواقع وهمية للاختبار. قد تستخدم التطبيقات الضارة هذا لتجاوز الموقع و/أو الحالة المُرجَعة بواسطة مصادر مواقع حقيقية مثل موفري خدمة الشبكة أو GPS أو مراقبة وإعداد تقارير حول موقعك إلى مصدر خارجي."</string>
     <string name="permlab_accessFineLocation" msgid="8116127007541369477">"موقع (GPS) جيد"</string>
-    <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"للدخول إلى مصادر المواقع الجيدة، مثل نظام تحديد المواقع العالمي على الكمبيوتر اللوحي، حيث يتوفر ذلك. يمكن أن تستخدم التطبيقات الضارة ذلك لتحديد مكانك، وقد تستهلك المزيد من طاقة البطارية."</string>
+    <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"للدخول إلى مصادر المواقع الجيدة، مثل نظام تحديد المواقع العالمي على الجهاز اللوحي، حيث يتوفر ذلك. يمكن أن تستخدم التطبيقات الضارة ذلك لتحديد مكانك، وقد تستهلك المزيد من طاقة البطارية."</string>
     <string name="permdesc_accessFineLocation" product="default" msgid="7411213317434337331">"الدخول إلى مصادر المواقع الجيدة مثل نظام تحديد المواقع العالمي على الهاتف، حيث يتوفر ذلك. يمكن أن تستخدم التطبيقات الضارة ذلك لتحديد مكانك، وقد تستهلك المزيد من طاقة البطارية."</string>
     <string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"موقع تقريبي (مستند إلى الشبكة)"</string>
-    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"للدخول إلى مصادر المواقع التقريبية، مثل قاعدة بيانات شبكة الهاتف الخلوي لتحديد موقع تقريبي للكمبيوتر اللوحي، حيث يتوفر ذلك. يمكن أن تستخدم التطبيقات الضارة ذلك لتحديد مكانك بالتقريب."</string>
+    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"للدخول إلى مصادر المواقع التقريبية، مثل قاعدة بيانات شبكة الهاتف الخلوي لتحديد موقع تقريبي للجهاز اللوحي، حيث يتوفر ذلك. يمكن أن تستخدم التطبيقات الضارة ذلك لتحديد مكانك بالتقريب."</string>
     <string name="permdesc_accessCoarseLocation" product="default" msgid="8235655958070862293">"الدخول إلى مصادر المواقع التقريبية مثل قاعدة بيانات شبكة الهاتف الخلوي لتحديد موقع تقريبي للهاتف، حيث يتوفر ذلك. يمكن أن تستخدم التطبيقات الضارة ذلك لتحديد مكانك بالتقريب."</string>
     <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"الدخول إلى SurfaceFlinger"</string>
     <string name="permdesc_accessSurfaceFlinger" msgid="6805241830020733025">"للسماح للتطبيق باستخدام ميزات SurfaceFlinger ذات المستوى المنخفض."</string>
@@ -336,13 +336,13 @@
     <string name="permdesc_recordAudio" msgid="6493228261176552356">"للسماح للتطبيق بالدخول إلى مسار تسجيل الصوت."</string>
     <!-- outdated translation 8059288807274039014 -->     <string name="permlab_camera" msgid="3616391919559751192">"التقاط صور"</string>
     <!-- outdated translation 9013476258810982546 -->     <string name="permdesc_camera" msgid="6004878235852154239">"للسماح للتطبيق بالتقاط صور بالكاميرا. يتيح ذلك للتطبيق جمع الصور التي تعرضها الكاميرا في أي وقت."</string>
-    <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"تعطيل الكمبيوتر اللوحي بشكل دائم"</string>
+    <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"تعطيل الجهاز اللوحي بشكل دائم"</string>
     <string name="permlab_brick" product="default" msgid="8337817093326370537">"تعطيل الهاتف على الدوام"</string>
-    <string name="permdesc_brick" product="tablet" msgid="7379164636920817963">"للسماح للتطبيق بتعطيل الكمبيوتر اللوحي بالكامل بشكل دائم. هذا خطير للغاية."</string>
+    <string name="permdesc_brick" product="tablet" msgid="7379164636920817963">"للسماح للتطبيق بتعطيل الجهاز اللوحي بالكامل بشكل دائم. هذا خطير للغاية."</string>
     <string name="permdesc_brick" product="default" msgid="5569526552607599221">"للسماح للتطبيق بتعطيل الهاتف بالكامل على الدوام. هذا خطير للغاية."</string>
-    <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"فرض إعادة تشغيل الكمبيوتر اللوحي"</string>
+    <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"فرض إعادة تشغيل الجهاز اللوحي"</string>
     <string name="permlab_reboot" product="default" msgid="2898560872462638242">"فرض إعادة تشغيل الهاتف"</string>
-    <string name="permdesc_reboot" product="tablet" msgid="4555793623560701557">"للسماح للتطبيق بفرض إعادة تشغيل الكمبيوتر اللوحي."</string>
+    <string name="permdesc_reboot" product="tablet" msgid="4555793623560701557">"للسماح للتطبيق بفرض إعادة تشغيل الجهاز اللوحي."</string>
     <string name="permdesc_reboot" product="default" msgid="7914933292815491782">"للسماح للتطبيق بفرض إعادة تشغيل الهاتف."</string>
     <string name="permlab_mount_unmount_filesystems" msgid="1761023272170956541">"تحميل أنظمة الملفات وإلغاء تحميلها"</string>
     <string name="permdesc_mount_unmount_filesystems" msgid="6253263792535859767">"للسماح للتطبيق بتحميل أنظمة الملفات وإلغاء تحميلها لسعة التخزين القابلة للإزالة."</string>
@@ -372,7 +372,7 @@
     <string name="permdesc_callPhone" msgid="3369867353692722456">"للسماح للتطبيق بالاتصال بأرقام الهواتف بدون تدخل منك. قد تسبب التطبيقات في وجود اتصالات غير متوقعة في فاتورة الهاتف. لاحظ أن هذا لا يسمح للتطبيق بالاتصال بأرقام الطوارئ."</string>
     <string name="permlab_callPrivileged" msgid="4198349211108497879">"اتصال مباشر بأي رقم من أرقام الهواتف"</string>
     <string name="permdesc_callPrivileged" msgid="244405067160028452">"للسماح للتطبيق بالاتصال بأي رقم هاتف، بما في ذلك أرقام الطوارئ، بدون تدخل منك. قد تجري التطبيقات الضارة اتصالات غير ضرورية وغير قانونية بخدمات الطوارئ."</string>
-    <string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"بدء إعداد كمبيوتر CDMA لوحي مباشرة"</string>
+    <string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"بدء إعداد جهاز CDMA لوحي مباشرة"</string>
     <string name="permlab_performCdmaProvisioning" product="default" msgid="5604848095315421425">"بدء إعداد هاتف CDMA مباشرة"</string>
     <string name="permdesc_performCdmaProvisioning" msgid="6457447676108355905">"للسماح للتطبيق ببدء توفير CDMA. قد تبدأ التطبيقات الضارة توفير CDMA بدون الحاجة إلى ذلك."</string>
     <string name="permlab_locationUpdates" msgid="7785408253364335740">"التحكم في تنبيهات تحديث الموقع"</string>
@@ -385,16 +385,16 @@
     <string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"للسماح للتطبيق بالتحكم في ميزات الهاتف بالجهاز. يمكن لتطبيق ما باستخدام هذا الإذن تبديل الشبكات وتشغيل لاسلكي الهاتف أو إيقاف تشغيله وما إلى ذلك بدون إعلامك على الإطلاق."</string>
     <string name="permlab_readPhoneState" msgid="2326172951448691631">"قراءة حالة الهاتف وهويته"</string>
     <string name="permdesc_readPhoneState" msgid="188877305147626781">"للسماح للتطبيق بالدخول إلى ميزات الهاتف للجهاز. يمكن أن يحدد تطبيق، بهذا الإذن، رقم الهاتف والرقم التسلسلي لهذا الهاتف وما إذا كانت هناك مكالمة نشطة والرقم الذي يجري الاتصال به وما إلى ذلك."</string>
-    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"منع الكمبيوتر اللوحي من الدخول في وضع السكون"</string>
+    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"منع الجهاز اللوحي من الدخول في وضع السكون"</string>
     <string name="permlab_wakeLock" product="default" msgid="573480187941496130">"منع الهاتف من الدخول في وضع السكون"</string>
-    <string name="permdesc_wakeLock" product="tablet" msgid="4032181488045338551">"للسماح لأحد التطبيقات بمنع الكمبيوتر اللوحي من الانتقال إلى وضع السكون."</string>
+    <string name="permdesc_wakeLock" product="tablet" msgid="4032181488045338551">"للسماح لأحد التطبيقات بمنع الجهاز اللوحي من الانتقال إلى وضع السكون."</string>
     <string name="permdesc_wakeLock" product="default" msgid="7584036471227467099">"للسماح لتطبيق ما بمنع الهاتف من الانتقال إلى وضع السكون."</string>
-    <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"تشغيل الكمبيوتر اللوحي أو إيقاف تشغيله"</string>
+    <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"تشغيل الجهاز اللوحي أو إيقاف تشغيله"</string>
     <string name="permlab_devicePower" product="default" msgid="4928622470980943206">"تشغيل الهاتف أو إيقاف تشغيله"</string>
-    <string name="permdesc_devicePower" product="tablet" msgid="3853773100100451905">"للسماح للتطبيق بتشغيل الكمبيوتر اللوحي أو إيقاف تشغيله."</string>
+    <string name="permdesc_devicePower" product="tablet" msgid="3853773100100451905">"للسماح للتطبيق بتشغيل الجهاز اللوحي أو إيقاف تشغيله."</string>
     <string name="permdesc_devicePower" product="default" msgid="4577331933252444818">"للسماح للتطبيق بتشغيل الهاتف أو إيقاف تشغيله."</string>
     <string name="permlab_factoryTest" msgid="3715225492696416187">"تشغيل في وضع اختبار المصنع"</string>
-    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"للتشغيل كاختبار مصنِّع بمستوى أدنى، مما يسمح بالدخول الكامل إلى جهاز الكمبيوتر اللوحي. لا يتوفر سوى عند تشغيل الكمبيوتر اللوحي في وضع اختبار المصنِّع."</string>
+    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"للتشغيل كاختبار مصنِّع بمستوى أدنى، مما يسمح بالدخول الكامل إلى جهاز الجهاز اللوحي. لا يتوفر سوى عند تشغيل الجهاز اللوحي في وضع اختبار المصنِّع."</string>
     <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"للتشغيل كاختبار مصنِّع بمستوى أدنى، مما يسمح بالدخول الكامل إلى جهاز الهاتف. لا يتوفر سوى عند تشغيل الهاتف في وضع اختبار المصنِّع."</string>
     <string name="permlab_setWallpaper" msgid="6627192333373465143">"تعيين الخلفية"</string>
     <string name="permdesc_setWallpaper" msgid="6417041752170585837">"للسماح للتطبيق بتعيين خلفية النظام."</string>
@@ -403,15 +403,15 @@
     <string name="permlab_masterClear" msgid="2315750423139697397">"إعادة تعيين النظام إلى الإعدادات الافتراضية للمصنع"</string>
     <string name="permdesc_masterClear" msgid="5033465107545174514">"للسماح لتطبيق ما بإعادة تعيين النظام بالكامل على إعدادات المصنع، ومسح جميع البيانات والتهيئة والتطبيقات المثبتة."</string>
     <string name="permlab_setTime" msgid="2021614829591775646">"تعيين الوقت"</string>
-    <string name="permdesc_setTime" product="tablet" msgid="209693136361006073">"للسماح لأحد التطبيقات بتغيير وقت ساعة الكمبيوتر اللوحي."</string>
+    <string name="permdesc_setTime" product="tablet" msgid="209693136361006073">"للسماح لأحد التطبيقات بتغيير وقت ساعة الجهاز اللوحي."</string>
     <string name="permdesc_setTime" product="default" msgid="667294309287080045">"للسماح لتطبيق ما بتغيير وقت ساعة الهاتف."</string>
     <string name="permlab_setTimeZone" msgid="2945079801013077340">"تعيين المنطقة الزمنية"</string>
-    <string name="permdesc_setTimeZone" product="tablet" msgid="2522877107613885139">"للسماح لأحد التطبيقات بتغيير المنطقة الزمنية للكمبيوتر اللوحي."</string>
+    <string name="permdesc_setTimeZone" product="tablet" msgid="2522877107613885139">"للسماح لأحد التطبيقات بتغيير المنطقة الزمنية للجهاز اللوحي."</string>
     <string name="permdesc_setTimeZone" product="default" msgid="1902540227418179364">"للسماح لتطبيق ما بتغيير المنطقة الزمنية للهاتف."</string>
     <string name="permlab_accountManagerService" msgid="4829262349691386986">"العمل كخدمة مدير حساب"</string>
     <string name="permdesc_accountManagerService" msgid="6056903274106394752">"للسماح لتطبيق ما بإجراء مكالمات إلى مصدِّقي الحساب"</string>
     <string name="permlab_getAccounts" msgid="4549918644233460103">"اكتشاف الحسابات المعروفة"</string>
-    <string name="permdesc_getAccounts" product="tablet" msgid="857622793935544694">"للسماح لأحد التطبيقات بالحصول على قائمة بالحسابات المعروفة بواسطة الكمبيوتر اللوحي."</string>
+    <string name="permdesc_getAccounts" product="tablet" msgid="857622793935544694">"للسماح لأحد التطبيقات بالحصول على قائمة بالحسابات المعروفة بواسطة الجهاز اللوحي."</string>
     <string name="permdesc_getAccounts" product="default" msgid="6839262446413155394">"للسماح لتطبيق ما بالحصول على قائمة الحسابات المعروفة بواسطة الهاتف."</string>
     <string name="permlab_authenticateAccounts" msgid="3940505577982882450">"العمل كمصدِّق للحساب"</string>
     <string name="permdesc_authenticateAccounts" msgid="4006839406474208874">"للسماح لتطبيق ما باستخدام إمكانيات مصدِّق الحساب لـ AccountManager، بما في ذلك إنشاء حسابات والحصول على كلمات مرورها وتعينها."</string>
@@ -438,10 +438,10 @@
     <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"السماح باستقبال بث Wi-Fi متعدد"</string>
     <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"للسماح لتطبيق ما باستلام حزم غير موجهة مباشرة إلى جهازك. يمكن أن يكون ذلك مفيدًا عند اكتشاف خدمات معروضة بالقرب منك. يستخدم ذلك الطاقة أكثر من وضع البث غير المتعدد."</string>
     <string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"إدارة البلوتوث"</string>
-    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"للسماح لأحد التطبيقات بتهيئة كمبيوتر البلوتوث اللوحي المحلي، واكتشاف الأجهزة البعيدة والاقتران بها."</string>
+    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"للسماح لأحد التطبيقات بتهيئة جهاز البلوتوث اللوحي المحلي، واكتشاف الأجهزة البعيدة والاقتران بها."</string>
     <string name="permdesc_bluetoothAdmin" product="default" msgid="7256289774667054555">"للسماح لتطبيق ما بتهيئة هاتف البلوتوث المحلي، واكتشاف أجهزة التحكم عن بعد والاقتران معها."</string>
     <string name="permlab_bluetooth" msgid="8361038707857018732">"إنشاء اتصالات بلوتوث"</string>
-    <string name="permdesc_bluetooth" product="tablet" msgid="4191941825910543803">"للسماح لأحد التطبيقات بعرض تهيئة كمبيوتر البلوتوث اللوحي المحلي، وإجراء اتصالات مع أجهزة مقترنة وقبولها."</string>
+    <string name="permdesc_bluetooth" product="tablet" msgid="4191941825910543803">"للسماح لأحد التطبيقات بعرض تهيئة جهاز البلوتوث اللوحي المحلي، وإجراء اتصالات مع أجهزة مقترنة وقبولها."</string>
     <string name="permdesc_bluetooth" product="default" msgid="762515380679392945">"للسماح لتطبيق ما بعرض تهيئة هاتف البلوتوث المحلي، وإجراء اتصالات وقبولها باستخدام الأجهزة المقترنة."</string>
     <!-- no translation found for permlab_nfc (4423351274757876953) -->
     <skip />
@@ -480,15 +480,15 @@
     <!-- outdated translation 4307861496302850201 -->     <string name="policylab_limitPassword" msgid="4497420728857585791">"تحديد كلمة المرور"</string>
     <!-- outdated translation 1719877245692318299 -->     <string name="policydesc_limitPassword" msgid="9083400080861728056">"لتقييد أنواع كلمات المرور المسموح لك باستخدامها."</string>
     <!-- outdated translation 7374780712664285321 -->     <string name="policylab_watchLogin" msgid="914130646942199503">"ملاحظة محاولات تسجيل الدخول"</string>
-    <string name="policydesc_watchLogin" product="tablet" msgid="933601759466308092">"لمراقبة عدد مرات إدخال كلمات المرور غير الصحيحة عند إلغاء تأمين الشاشة وتأمين الكمبيوتر اللوحي أو مسح جميع بياناته في حالة إدخال الكثير من كلمات المرور غير الصحيحة"</string>
-    <!-- outdated translation 933601759466308092 -->     <string name="policydesc_watchLogin" product="default" msgid="7227578260165172673">"لمراقبة عدد مرات إدخال كلمات المرور غير الصحيحة عند إلغاء تأمين الشاشة وتأمين الكمبيوتر اللوحي أو مسح جميع بياناته في حالة إدخال الكثير من كلمات المرور غير الصحيحة"</string>
+    <string name="policydesc_watchLogin" product="tablet" msgid="933601759466308092">"لمراقبة عدد مرات إدخال كلمات المرور غير الصحيحة عند إلغاء تأمين الشاشة وتأمين الجهاز اللوحي أو مسح جميع بياناته في حالة إدخال الكثير من كلمات المرور غير الصحيحة"</string>
+    <!-- outdated translation 933601759466308092 -->     <string name="policydesc_watchLogin" product="default" msgid="7227578260165172673">"لمراقبة عدد مرات إدخال كلمات المرور غير الصحيحة عند إلغاء تأمين الشاشة وتأمين الجهاز اللوحي أو مسح جميع بياناته في حالة إدخال الكثير من كلمات المرور غير الصحيحة"</string>
     <!-- outdated translation 9084772090797485420 -->     <string name="policylab_resetPassword" msgid="2620077191242688955">"إعادة تعيين كلمة المرور"</string>
     <!-- outdated translation 3332167600331799991 -->     <string name="policydesc_resetPassword" msgid="5391240616981297361">"فرض كلمة مرورك إلى قيمة جديدة، مما يتطلب منحك المشرف إياها قبل أن تتمكن من تسجيل الدخول."</string>
     <!-- outdated translation 5760466025247634488 -->     <string name="policylab_forceLock" msgid="2274085384704248431">"فرض التأمين"</string>
     <!-- outdated translation 2819868664946089740 -->     <string name="policydesc_forceLock" msgid="5696964126226028442">"التحكم أثناء تأمين الجهاز، يتطلب إعادة إدخال كلمة المرور."</string>
     <string name="policylab_wipeData" msgid="3910545446758639713">"مسح جميع البيانات"</string>
-    <string name="policydesc_wipeData" product="tablet" msgid="314455232799486222">"لمسح بيانات الكمبيوتر اللوحي بدون تحذير، من خلال إجراء إعادة الضبط بحسب بيانات المصنع"</string>
-    <!-- outdated translation 314455232799486222 -->     <string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"لمسح بيانات الكمبيوتر اللوحي بدون تحذير، من خلال إجراء إعادة الضبط بحسب بيانات المصنع"</string>
+    <string name="policydesc_wipeData" product="tablet" msgid="314455232799486222">"لمسح بيانات الجهاز اللوحي بدون تحذير، من خلال إجراء إعادة الضبط بحسب بيانات المصنع"</string>
+    <!-- outdated translation 314455232799486222 -->     <string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"لمسح بيانات الجهاز اللوحي بدون تحذير، من خلال إجراء إعادة الضبط بحسب بيانات المصنع"</string>
     <!-- no translation found for policylab_setGlobalProxy (2784828293747791446) -->
     <skip />
     <!-- no translation found for policydesc_setGlobalProxy (6387497466660154931) -->
@@ -653,7 +653,7 @@
     <string name="lockscreen_battery_short" msgid="3617549178603354656">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="lockscreen_low_battery" msgid="1482873981919249740">"توصيل جهاز الشحن."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"ليس هناك بطاقة SIM."</string>
-    <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ليست هناك بطاقة SIM في الكمبيوتر اللوحي."</string>
+    <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ليست هناك بطاقة SIM في الجهاز اللوحي."</string>
     <string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"ليس هناك بطاقة SIM في الهاتف."</string>
     <string name="lockscreen_missing_sim_instructions" msgid="8874620818937719067">"الرجاء إدخال بطاقة SIM."</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"مكالمات الطوارئ فقط"</string>
@@ -667,7 +667,7 @@
     <skip />
     <!-- no translation found for lockscreen_too_many_failed_pin_attempts_dialog_message (6827749231465145590) -->
     <skip />
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"لقد رسمت نقش إلغاء التأمين بشكل غير صحيح <xliff:g id="NUMBER_0">%d</xliff:g> مرة. بعد <xliff:g id="NUMBER_1">%d</xliff:g> من المحاولات غير الناجحة الأخرى، ستُطالب بإلغاء تأمين الكمبيوتر اللوحي باستخدام معلومات تسجيل الدخول إلى Google.‏"\n\n" الرجاء المحاولة مرة أخرى في غضون <xliff:g id="NUMBER_2">%d</xliff:g> ثانية."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"لقد رسمت نقش إلغاء التأمين بشكل غير صحيح <xliff:g id="NUMBER_0">%d</xliff:g> مرة. بعد <xliff:g id="NUMBER_1">%d</xliff:g> من المحاولات غير الناجحة الأخرى، ستُطالب بإلغاء تأمين الجهاز اللوحي باستخدام معلومات تسجيل الدخول إلى Google.‏"\n\n" الرجاء المحاولة مرة أخرى في غضون <xliff:g id="NUMBER_2">%d</xliff:g> ثانية."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="3351013842320127827">"لقد رسمت نقش إلغاء التأمين بشكل غير صحيح <xliff:g id="NUMBER_0">%d</xliff:g> مرة. بعد <xliff:g id="NUMBER_1">%d</xliff:g> من المحاولات غير الناجحة الأخرى، ستُطالب بإلغاء تأمين الهاتف باستخدام معلومات تسجيل الدخول إلى Google."\n\n" الرجاء المحاولة مرة أخرى خلال <xliff:g id="NUMBER_2">%d</xliff:g> ثانية."</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"حاول مرة أخرى خلال <xliff:g id="NUMBER">%d</xliff:g> ثانية."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"هل نسيت النمط؟"</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"هل تريد الانتقال بعيدًا عن هذه الصفحة؟"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"حدد \"موافق\" للمتابعة، أو \"إلغاء\" للبقاء في الصفحة الحالية."</string>
     <string name="save_password_label" msgid="6860261758665825069">"تأكيد"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"نصيحة: اضغط مرتين للتكبير والتصغير."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"الملء التلقائي"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"إعداد ملء تلقائي"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -710,7 +709,7 @@
     <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"قراءة سجل المتصفح والإشارات"</string>
     <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"للسماح للتطبيق بقراءة جميع عناوين URL التي انتقل إليها المتصفح. وجميع إشارات المتصفح."</string>
     <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"كتابة سجل المتصفح والإشارات"</string>
-    <string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="7193514090469945307">"للسماح لأحد التطبيقات بتعديل سجل المتصفح أو الإشارات المرجعية المخزّنة في الكمبيوتر اللوحي. يمكن أن تستخدم التطبيقات الضارة ذلك لمسح بيانات المتصفح أو تعديلها."</string>
+    <string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="7193514090469945307">"للسماح لأحد التطبيقات بتعديل سجل المتصفح أو الإشارات المرجعية المخزّنة في الجهاز اللوحي. يمكن أن تستخدم التطبيقات الضارة ذلك لمسح بيانات المتصفح أو تعديلها."</string>
     <string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"للسماح لتطبيق ما بتعديل سجل المتصفح أو الإشارات في هاتفك. يمكن أن تستخدم التطبيقات الضارة ذلك لمسح بيانات المتصفح أو تعديلها."</string>
     <!-- no translation found for permlab_setAlarm (5924401328803615165) -->
     <skip />
@@ -841,7 +840,7 @@
     <string name="inputMethod" msgid="1653630062304567879">"طريقة الإرسال"</string>
     <!-- outdated translation 1672989176958581452 -->     <string name="editTextMenuTitle" msgid="4909135564941815494">"تعديل النص"</string>
     <string name="low_internal_storage_view_title" msgid="1399732408701697546">"المساحة منخفضة"</string>
-    <string name="low_internal_storage_view_text" product="tablet" msgid="4231085657068852042">"مساحة تخزين الكمبيوتر اللوحي منخفضة."</string>
+    <string name="low_internal_storage_view_text" product="tablet" msgid="4231085657068852042">"مساحة تخزين الجهاز اللوحي منخفضة."</string>
     <string name="low_internal_storage_view_text" product="default" msgid="635106544616378836">"مساحة تخزين الهاتف منخفضة."</string>
     <string name="ok" msgid="5970060430562524910">"موافق"</string>
     <string name="cancel" msgid="6442560571259935130">"إلغاء"</string>
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"موافق"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"إلغاء"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"تعيين الوقت"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"تعيين التاريخ"</string>
     <string name="date_time_set" msgid="5777075614321087758">"تعيين"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"افتراضي"</string>
     <string name="no_permissions" msgid="7283357728219338112">"لا أذونات مطلوبة"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 1aeb9dc..d6684c5 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -287,8 +287,8 @@
     <string name="permlab_diagnostic" msgid="8076743953908000342">"четене/запис в ресурси, притежавани от diag"</string>
     <string name="permdesc_diagnostic" msgid="3121238373951637049">"Разрешава на приложението да чете и записва във всеки ресурс, притежаван от групата diag, например файловете в /dev. Това потенциално може да засегне стабилността и защитеността на системата. То трябва да се използва САМО за специфично за хардуера диагностициране от страна на производителя или оператора."</string>
     <string name="permlab_changeComponentState" msgid="79425198834329406">"активиране или деактивиране на компоненти на приложенията"</string>
-    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"Разрешава на приложението да активира или деактивира компонент на друго приложение. Злонамерените приложения могат да използват това, за да деактивират важни възможности на таблета. С това разрешение трябва да се внимава, тъй като компонентите на приложенията може да бъдат приведени в неизползваемо, несъгласувано или нестабилно състояние."</string>
-    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"Разрешава на приложението да активира или деактивира компонент на друго приложение. Злонамерените приложения могат да използват това, за да деактивират важни възможности на таблета. С това разрешение трябва да се внимава, тъй като компонентите на приложенията може да бъдат приведени в неизползваемо, несъгласувано или нестабилно състояние."</string>
+    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"Разрешава на приложението да активира или деактивира компонент на друго приложение. Злонамерените приложения могат да използват това, за да деактивират важни функционалности на таблета. С това разрешение трябва да се внимава, тъй като компонентите на приложенията може да бъдат приведени в неизползваемо, несъгласувано или нестабилно състояние."</string>
+    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"Разрешава на приложението да активира или деактивира компонент на друго приложение. Злонамерените приложения могат да използват това, за да деактивират важни функционалности на таблета. С това разрешение трябва да се внимава, тъй като компонентите на приложенията може да бъдат приведени в неизползваемо, несъгласувано или нестабилно състояние."</string>
     <string name="permlab_setPreferredApplications" msgid="3393305202145172005">"задаване на предпочитани приложения"</string>
     <string name="permdesc_setPreferredApplications" msgid="760008293501937546">"Разрешава на приложението да променя предпочитаните ви приложения. Това може да позволи на злонамерени приложения скрито да променят приложенията, които се изпълняват, като ги фалшифицират, за да се сдобият с ваши лични данни."</string>
     <string name="permlab_writeSettings" msgid="1365523497395143704">"промяна на глобалните системни настройки"</string>
@@ -298,7 +298,7 @@
     <string name="permlab_writeGservices" msgid="2149426664226152185">"промяна на картата на услугите на Google"</string>
     <string name="permdesc_writeGservices" msgid="6602362746516676175">"Разрешава на приложението да променя картата на услугите на Google. Не е предназначено за нормални приложения."</string>
     <string name="permlab_receiveBootCompleted" msgid="7776779842866993377">"автоматично стартиране при зареждане"</string>
-    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Разрешава на приложението да се стартира веднага щом системата завърши зареждането си. Това може да доведе до по-бавно стартиране на таблета и да позволи на приложението да забави таблета като цяло, тъй като се изпълнява постоянно."</string>
+    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Разрешава на приложението да се стартира веднага, щом системата завърши зареждането си. Това може да доведе до по-бавно стартиране на таблета и да позволи на приложението да забави таблета като цяло, тъй като се изпълнява постоянно."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="698336728415008796">"Разрешава на приложението да се стартира веднага щом системата завърши зареждането си. Това може да доведе до по-бавно стартиране на телефона и да позволи на приложението да забави телефона като цяло, тъй като се изпълнява постоянно."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"изпращане на оставащи излъчвания"</string>
     <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Разрешава на приложението да изпраща оставащи излъчвания, които се запазват след края на излъчването. Злонамерените приложения могат да причинят бавна или нестабилна работа на таблета, като го накарат да използва твърде много памет."</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Искате ли да напуснете тази страница?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Изберете „OK“, за да продължите, или „Отказ“, за да останете на нея."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Потвърждение"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Съвет: докоснете двукратно, за да увеличите или намалите мащаба."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Автопоп."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Настройка"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Отказ"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Задаване на часа"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Задаване на дата"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Задаване"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"По подразбиране"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Не се изискват разрешения"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index ff5b5d4..76b2725 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Voleu sortir d\'aquesta pàgina?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Seleccioneu D\'acord per continuar o Cancel·la per quedar-vos a la pàgina actual."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Confirma"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Consell: Piqueu dos cops per ampliar i reduir."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Emp. aut"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Conf. Empl. aut."</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"D\'acord"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Cancel·la"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Estableix l\'hora"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Establiment de data"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Defineix"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Predeterminat"</string>
     <string name="no_permissions" msgid="7283357728219338112">"No cal cap permís"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 6f6016c..50cd0c3 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -125,7 +125,7 @@
     <string name="contentServiceSync" msgid="8353523060269335667">"Synchronizace"</string>
     <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"Synchronizace"</string>
     <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"Příliš mnoho smazaných položek služby <xliff:g id="CONTENT_TYPE">%s</xliff:g>."</string>
-    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Paměť tabletu je plná. Uvolněte místo smazání některých souborů."</string>
+    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Paměť tabletu je plná. Uvolněte místo smazáním některých souborů."</string>
     <string name="low_memory" product="default" msgid="6632412458436461203">"Paměť telefonu je plná. Smažte některé soubory a uvolněte místo."</string>
     <string name="me" msgid="6545696007631404292">"Já"</string>
     <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Možnosti tabletu"</string>
@@ -389,7 +389,7 @@
     <string name="permdesc_devicePower" product="tablet" msgid="3853773100100451905">"Umožňuje aplikaci zapnout či vypnout tablet."</string>
     <string name="permdesc_devicePower" product="default" msgid="4577331933252444818">"Umožňuje aplikaci zapnout či vypnout telefon."</string>
     <string name="permlab_factoryTest" msgid="3715225492696416187">"spuštění v režimu továrního testu"</string>
-    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Umožňuje aplikaci spuštění v režimu nízkoúrovňového testu výrobce a povolí přístup k hardwaru tabletu. K dispozici pouze je-li tablet spuštěn v režimu testování výrobce."</string>
+    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Umožňuje aplikaci spuštění v režimu nízkoúrovňového testu výrobce a povolí přístup k hardwaru tabletu. K dispozici, pouze je-li tablet spuštěn v režimu testování výrobce."</string>
     <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Umožňuje aplikaci spuštění v režimu nízkoúrovňového testu výrobce a povolí přístup k hardwaru telefonu. K dispozici pouze, je-li telefon spuštěn v režimu testování výrobce."</string>
     <string name="permlab_setWallpaper" msgid="6627192333373465143">"nastavení tapety"</string>
     <string name="permdesc_setWallpaper" msgid="6417041752170585837">"Umožňuje aplikaci nastavit tapetu systému."</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Chcete opustit tuto stránku?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Vyberte OK, chcete-li pokračovat, nebo Zrušit, chcete-li na stránce zůstat."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Potvrdit"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Tip: Dvojitým klepnutím můžete zobrazení přiblížit nebo oddálit."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Automaticky vyplnit tento formulář"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Aut.vyp."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Nast. aut. vypl."</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Zrušit"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Nastavení času"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Nastavení data"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Nastavit"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Výchozí"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Nejsou vyžadována žádná oprávnění"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Neznámý stav externího média."</string>
     <string name="share" msgid="1778686618230011964">"Sdílet"</string>
     <string name="find" msgid="4808270900322985960">"Najít"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 6fa5886..6c46995 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -398,7 +398,7 @@
     <string name="permlab_masterClear" msgid="2315750423139697397">"nulstil system til fabriksstandarder"</string>
     <string name="permdesc_masterClear" msgid="5033465107545174514">"Tillader, at et program nulstiller systemet fuldstændig til fabriksindstillingerne, sletter alle data, konfigurationer og installerede programmer."</string>
     <string name="permlab_setTime" msgid="2021614829591775646">"angive tid"</string>
-    <string name="permdesc_setTime" product="tablet" msgid="209693136361006073">"Tillader, at et program ændrer tabletcomputeren klokkeslæt."</string>
+    <string name="permdesc_setTime" product="tablet" msgid="209693136361006073">"Tillader, at et program ændrer tabletcomputerens klokkeslæt."</string>
     <string name="permdesc_setTime" product="default" msgid="667294309287080045">"Tillader, at et program ændrer telefonens klokkeslæt."</string>
     <string name="permlab_setTimeZone" msgid="2945079801013077340">"angiv tidszone"</string>
     <string name="permdesc_setTimeZone" product="tablet" msgid="2522877107613885139">"Tillader, at et program ændrer tabletcomputerens tidszone."</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Naviger væk fra denne side?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n" Vælg OK for at fortsætte eller Annuller for at blive på den aktuelle side."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Bekræft"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Tip: Dobbeltklik for at zoome ind eller ud."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Autofuldfør denne formular"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"AutoFyld"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Opsætning af AutoFyld"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Annuller"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Angiv tidspunkt"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Angiv dato"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Angiv"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Standard"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Der kræves ingen tilladelser"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Eksternt medie i ukendt tilstand."</string>
     <string name="share" msgid="1778686618230011964">"Del"</string>
     <string name="find" msgid="4808270900322985960">"Find"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 0bcd798..8e23d5b 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -125,10 +125,10 @@
     <string name="contentServiceSync" msgid="8353523060269335667">"Synchronisierung"</string>
     <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"Synchronisierung"</string>
     <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"Zu viele <xliff:g id="CONTENT_TYPE">%s</xliff:g> gelöscht."</string>
-    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Tabletspeicher ist voll. Löschen Sie Dateien, um Speicherplatz freizugeben."</string>
+    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Tablet-Speicher ist voll. Löschen Sie Dateien, um Speicherplatz freizugeben."</string>
     <string name="low_memory" product="default" msgid="6632412458436461203">"Telefonspeicher ist voll! Löschen Sie Dateien, um Speicherplatz freizugeben."</string>
     <string name="me" msgid="6545696007631404292">"Eigene"</string>
-    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Tabletoptionen"</string>
+    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Tablet-Optionen"</string>
     <string name="power_dialog" product="default" msgid="1319919075463988638">"Telefonoptionen"</string>
     <string name="silent_mode" msgid="7167703389802618663">"Lautlos-Modus"</string>
     <string name="turn_on_radio" msgid="3912793092339962371">"Funk einschalten"</string>
@@ -142,7 +142,7 @@
     <skip />
     <string name="recent_tasks_title" msgid="3691764623638127888">"Zuletzt verwendet"</string>
     <string name="no_recent_tasks" msgid="279702952298056674">"Keine zuletzt verwendeten Anwendungen"</string>
-    <string name="global_actions" product="tablet" msgid="408477140088053665">"Tabletoptionen"</string>
+    <string name="global_actions" product="tablet" msgid="408477140088053665">"Tablet-Optionen"</string>
     <string name="global_actions" product="default" msgid="2406416831541615258">"Telefonoptionen"</string>
     <string name="global_action_lock" msgid="2844945191792119712">"Display-Sperre"</string>
     <string name="global_action_power_off" msgid="4471879440839879722">"Ausschalten"</string>
@@ -274,7 +274,7 @@
     <string name="permlab_installPackages" msgid="335800214119051089">"Anwendungen direkt installieren"</string>
     <string name="permdesc_installPackages" msgid="526669220850066132">"Ermöglicht einer Anwendung, neue oder aktualisierte Android-Pakete zu installieren. Schädliche Anwendungen können so neue Anwendungen mit beliebig umfangreichen Berechtigungen hinzufügen."</string>
     <string name="permlab_clearAppCache" msgid="4747698311163766540">"Alle Cache-Daten der Anwendung löschen"</string>
-    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Ermöglicht einer Anwendung, Tabletspeicher durch das Löschen von Dateien im Cache-Verzeichnis der Anwendung freizugeben. Der Zugriff beschränkt sich in der Regel auf Systemprozesse."</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Ermöglicht einer Anwendung, Tablet-Speicher durch das Löschen von Dateien im Cache-Verzeichnis der Anwendung freizugeben. Der Zugriff beschränkt sich in der Regel auf Systemprozesse."</string>
     <string name="permdesc_clearAppCache" product="default" msgid="7740465694193671402">"Ermöglicht einer Anwendung, Telefonspeicher durch das Löschen von Dateien im Cache-Verzeichnis der Anwendung freizugeben. Der Zugriff beschränkt sich in der Regel auf Systemprozesse."</string>
     <string name="permlab_movePackage" msgid="728454979946503926">"Anwendungsressourcen verschieben"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"Ermöglicht einer Anwendung, Anwendungsressourcen von interne auf externe Medien zu verschieben und umgekehrt."</string>
@@ -298,7 +298,7 @@
     <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Ermöglicht einer Anwendung, sich selbst zu starten, sobald das System gebootet wurde. Dadurch kann es länger dauern, bis das Tablet gestartet wird, und durch die ständige Aktivität der Anwendung wird die gesamte Leistung des Tablets beeinträchtigt."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="698336728415008796">"Ermöglicht einer Anwendung, sich selbst zu starten, sobald das System gebootet wurde. Dadurch kann es länger dauern, bis das Telefon gestartet wird, und durch die ständige Aktivität der Anwendung wird die gesamte Leistung des Telefons beeinträchtigt."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"dauerhaften Broadcast senden"</string>
-    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Ermöglicht einer Anwendung, dauerhafte Broadcasts zu senden, die auch nach dem Ende des Broadcasts bestehen bleiben. Schädliche Anwendungen können das Tablet langsam oder unstabil machen, da zu viel Speicherplatz belegt ist."</string>
+    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Ermöglicht einer Anwendung, dauerhafte Broadcasts zu senden, die auch nach dem Ende des Broadcasts bestehen bleiben. Schädliche Anwendungen können das Tablet langsam oder instabil machen, da zu viel Speicherplatz belegt ist."</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="1920045289234052219">"Ermöglicht einer Anwendung, dauerhafte Broadcasts zu senden, die auch nach dem Ende des Broadcasts bestehen bleiben. Schädliche Anwendungen können das Telefon langsam oder unstabil machen, da zuviel Speicherplatz belegt ist."</string>
     <string name="permlab_readContacts" msgid="6219652189510218240">"Kontaktdaten lesen"</string>
     <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Ermöglicht einer Anwendung, alle auf Ihrem Tablet gespeicherten Kontaktdaten (Adressen) zu lesen. Schädliche Anwendungen können so Ihre Daten an andere Personen senden."</string>
@@ -337,7 +337,7 @@
     <string name="permlab_brick" product="default" msgid="8337817093326370537">"Telefon dauerhaft deaktivieren."</string>
     <string name="permdesc_brick" product="tablet" msgid="7379164636920817963">"Ermöglicht der Anwendung, das gesamte Tablet dauerhaft zu deaktivieren. Dies birgt hohe Risiken."</string>
     <string name="permdesc_brick" product="default" msgid="5569526552607599221">"Ermöglicht der Anwendung, das gesamte Telefon dauerhaft zu deaktivieren. Dies birgt hohe Risiken."</string>
-    <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"Tabletneustart erzwingen"</string>
+    <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"Tablet-Neustart erzwingen"</string>
     <string name="permlab_reboot" product="default" msgid="2898560872462638242">"Neustart des Telefons erzwingen"</string>
     <string name="permdesc_reboot" product="tablet" msgid="4555793623560701557">"Ermöglicht der Anwendung, einen Neustart des Tablets zu erzwingen."</string>
     <string name="permdesc_reboot" product="default" msgid="7914933292815491782">"Ermöglicht der Anwendung, einen Neustart des Telefons zu erzwingen."</string>
@@ -367,7 +367,7 @@
     <string name="permdesc_callPhone" msgid="3369867353692722456">"Ermöglicht dem Anwendungen, Rufnummern ohne Ihr Eingreifen zu wählen. Schädliche Anwendungen können für unerwartete Anrufe auf Ihrer Telefonrechnung verantwortlich sein. Das Wählen von Notrufnummern ist allerdings nicht möglich."</string>
     <string name="permlab_callPrivileged" msgid="4198349211108497879">"Alle Telefonnummern direkt anrufen"</string>
     <string name="permdesc_callPrivileged" msgid="244405067160028452">"Ermöglicht der Anwendung, ohne Ihr Eingreifen eine beliebige Telefonnummer zu wählen, einschließlich Notfallnummern. Schädliche Anwendungen können so unnötige und illegale Anrufe an Notdienste tätigen."</string>
-    <string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"CDMA-Tableteinrichtung direkt starten"</string>
+    <string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"CDMA-Tablet-Einrichtung direkt starten"</string>
     <string name="permlab_performCdmaProvisioning" product="default" msgid="5604848095315421425">"CDMA-Telefoneinrichtung direkt starten"</string>
     <string name="permdesc_performCdmaProvisioning" msgid="6457447676108355905">"Der Anwendung wird der Start der CDMA-Bereitstellung ermöglicht. Schädliche Anwendungen können die CDMA-Bereitstellung unnötigerweise starten."</string>
     <string name="permlab_locationUpdates" msgid="7785408253364335740">"Benachrichtigungen für Standortaktualisierung steuern"</string>
@@ -389,7 +389,7 @@
     <string name="permdesc_devicePower" product="tablet" msgid="3853773100100451905">"Ermöglicht der Anwendung, das Tablet ein- oder auszuschalten."</string>
     <string name="permdesc_devicePower" product="default" msgid="4577331933252444818">"Ermöglicht der Anwendung, das Telefon ein- oder auszuschalten."</string>
     <string name="permlab_factoryTest" msgid="3715225492696416187">"In Werkstestmodus ausführen"</string>
-    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Führt einen systemnahen Herstellertest durch, in dessen Rahmen auf die gesamte Tablethardware zugegriffen werden kann. Nur verfügbar, wenn ein Tablet im Werkstestmodus ausgeführt wird."</string>
+    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Führt einen systemnahen Herstellertest durch, in dessen Rahmen auf die gesamte Tablet-Hardware zugegriffen werden kann. Nur verfügbar, wenn ein Tablet im Werkstestmodus ausgeführt wird."</string>
     <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Führt einen systemnahen Herstellertest durch, in dessen Rahmen auf die gesamte Telefonhardware zugegriffen werden kann. Nur verfügbar, wenn ein Telefon im Werkstestmodus ausgeführt wird."</string>
     <string name="permlab_setWallpaper" msgid="6627192333373465143">"Hintergrund festlegen"</string>
     <string name="permdesc_setWallpaper" msgid="6417041752170585837">"Ermöglicht der Anwendung, den System-Hintergrund festzulegen."</string>
@@ -630,7 +630,7 @@
     <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="3514742106066877476">"Sie haben Ihr Entsperrungsmuster <xliff:g id="NUMBER_0">%d</xliff:g>-mal falsch gezeichnet. "\n\n"Versuchen Sie es in <xliff:g id="NUMBER_1">%d</xliff:g> Sekunden erneut."</string>
     <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="4906034376425175381">"Sie haben Ihr Passwort <xliff:g id="NUMBER_0">%d</xliff:g> Mal falsch eingegeben. "\n\n"Versuchen Sie es in <xliff:g id="NUMBER_1">%d</xliff:g> Sekunden erneut."</string>
     <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6827749231465145590">"Sie haben Ihre PIN <xliff:g id="NUMBER_0">%d</xliff:g> Mal falsch eingegeben. "\n\n"Versuchen Sie es in <xliff:g id="NUMBER_1">%d</xliff:g> Sekunden erneut."</string>
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Sie haben Ihr Entsperrungsmuster <xliff:g id="NUMBER_0">%d</xliff:g> Mal falsch gezeichnet. Nach <xliff:g id="NUMBER_1">%d</xliff:g> weiteren erfolglosen Versuchen werden Sie aufgefordert, Ihr Tablet mithilfe Ihren Google-Anmeldeinformationen zu entsperren. "\n\n"Versuchen Sie es in <xliff:g id="NUMBER_2">%d</xliff:g> Sekunden erneut."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Sie haben Ihr Entsperrungsmuster <xliff:g id="NUMBER_0">%d</xliff:g> Mal falsch gezeichnet. Nach <xliff:g id="NUMBER_1">%d</xliff:g> weiteren erfolglosen Versuchen werden Sie aufgefordert, Ihr Tablet mithilfe Ihrer Google-Anmeldeinformationen zu entsperren. "\n\n"Versuchen Sie es in <xliff:g id="NUMBER_2">%d</xliff:g> Sekunden erneut."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="3351013842320127827">"Sie haben Ihr Entsperrungsmuster <xliff:g id="NUMBER_0">%d</xliff:g>-mal falsch gezeichnet. Nach <xliff:g id="NUMBER_1">%d</xliff:g> weiteren erfolglosen Versuchen werden Sie aufgefordert, Ihr Telefon mithilfe Ihrer Google-Anmeldeinformationen zu entsperren. "\n\n"Versuchen Sie es in <xliff:g id="NUMBER_2">%d</xliff:g> Sekunden erneut."</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Versuchen Sie es in <xliff:g id="NUMBER">%d</xliff:g> Sekunden erneut."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Muster vergessen?"</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Von dieser Seite navigieren?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Wählen Sie \"OK\", um fortzufahren, oder wählen Sie \"Abbrechen\", um auf der aktuellen Seite zu bleiben."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Bestätigen"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Tipp: Zum Heranzoomen und Vergrößern zweimal tippen"</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Dieses Formular automatisch ausfüllen"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"AutoFill"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"AutoFill-Setup"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -796,7 +796,7 @@
     <string name="inputMethod" msgid="1653630062304567879">"Eingabemethode"</string>
     <string name="editTextMenuTitle" msgid="4909135564941815494">"Textaktionen"</string>
     <string name="low_internal_storage_view_title" msgid="1399732408701697546">"Geringer Speicher"</string>
-    <string name="low_internal_storage_view_text" product="tablet" msgid="4231085657068852042">"Kaum noch Tabletspeicher frei"</string>
+    <string name="low_internal_storage_view_text" product="tablet" msgid="4231085657068852042">"Kaum noch Tablet-Speicher frei"</string>
     <string name="low_internal_storage_view_text" product="default" msgid="635106544616378836">"Kaum noch Telefonspeicher frei."</string>
     <string name="ok" msgid="5970060430562524910">"OK"</string>
     <string name="cancel" msgid="6442560571259935130">"Abbrechen"</string>
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Abbrechen"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Uhrzeit festlegen"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Datum festlegen"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Einstellen"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Standard"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Keine Berechtigungen erforderlich"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Unbekannter Status des externen Speichermediums"</string>
     <string name="share" msgid="1778686618230011964">"Freigeben"</string>
     <string name="find" msgid="4808270900322985960">"Suchen"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index b49fed5..5dd1372 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Απομάκρυνση από αυτή τη σελίδα;"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Επιλέξτε OK για συνέχεια, ή Ακύρωση για παραμονή στην τρέχουσα σελίδα."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Επιβεβαίωση"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Συμβουλή: διπλό άγγιγμα για μεγέθυνση και σμίκρυνση."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Να γίνει αυτόματη συμπλήρωση αυτής της φόρμας"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Αυτ.συμπ"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Ρύθμ. Αυτ. συμπ."</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Ακύρωση"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Ρύθμιση ώρας"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Ορισμός ημερομηνίας"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Ορισμός"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Προεπιλεγμένο"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Δεν απαιτούνται άδειες"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Το εξωτερικό μέσο είναι σε άγνωστη κατάσταση."</string>
     <string name="share" msgid="1778686618230011964">"Κοινή χρ."</string>
     <string name="find" msgid="4808270900322985960">"Εύρεση"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 12aceb3..f1d19b8 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -687,8 +687,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Navigate away from this page?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Select OK to continue or Cancel to stay on the current page."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Confirm"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Tip: double-tap to zoom in and out."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Auto-Fill"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Set up Auto-Fill"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -904,8 +903,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Cancel"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Set time"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Set date"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Set"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Default"</string>
     <string name="no_permissions" msgid="7283357728219338112">"No permission required"</string>
@@ -1054,6 +1052,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index f6cb55f..1818af1 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -658,7 +658,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"¿Deseas salir de esta página?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Selecciona Aceptar para continuar o Cancelar para permanecer en la página actual."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Sugerencia: presiona dos veces para acercar y alejar"</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Autocompletar este formulario"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Autocompl."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Conf func Autocompl"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -864,8 +864,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"Aceptar"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Cancelar"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Configurar hora"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Configurar fecha"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Establecer"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Predeterminado"</string>
     <string name="no_permissions" msgid="7283357728219338112">"No se requieren permisos"</string>
@@ -996,6 +995,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Medios externos en estado desconocido."</string>
     <string name="share" msgid="1778686618230011964">"Compartir"</string>
     <string name="find" msgid="4808270900322985960">"Buscar"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index d859c6a..da06dab 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -321,7 +321,7 @@
     <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"Permite acceder a fuentes de ubicación precisas como, por ejemplo, el sistema de posicionamiento global, en la tableta, si hay alguna disponible. Las aplicaciones malintencionadas pueden utilizar este permiso para determinar la ubicación del usuario y pueden consumir batería adicional."</string>
     <string name="permdesc_accessFineLocation" product="default" msgid="7411213317434337331">"Permite precisar las fuentes de ubicación como, por ejemplo, el sistema de posicionamiento global, en el teléfono, en los casos en que estén disponibles. Las aplicaciones malintencionadas pueden utilizar este permiso para determinar dónde se encuentra el usuario y pueden consumir batería adicional."</string>
     <string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"ubicación común (basada en red)"</string>
-    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Permite acceder a fuentes de ubicación comunes como, por ejemplo, la base de datos de la red de un teléfono móvil, para determinar la ubicación aproximada de una tableta, si hay alguna disponible. Las aplicaciones malintencionadas pueden utilizar este permiso para determinar tu ubicación aproximada."</string>
+    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Permite acceder a fuentes de ubicación comunes como, por ejemplo, la base de datos de la red de telefonía móvil, para determinar la ubicación aproximada de una tableta, si hay alguna disponible. Las aplicaciones malintencionadas pueden utilizar este permiso para determinar tu ubicación aproximada."</string>
     <string name="permdesc_accessCoarseLocation" product="default" msgid="8235655958070862293">"Acceder a fuentes de ubicación comunes como, por ejemplo, la base de datos de red de un teléfono móvil, para determinar una ubicación telefónica aproximada, en los casos en que esté disponible. Las aplicaciones malintencionadas pueden utilizar este permiso para determinar dónde te encuentras aproximadamente."</string>
     <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"acceder a SurfaceFlinger"</string>
     <string name="permdesc_accessSurfaceFlinger" msgid="6805241830020733025">"Permite que la aplicación utilice funciones de SurfaceFlinger de nivel inferior."</string>
@@ -389,7 +389,7 @@
     <string name="permdesc_devicePower" product="tablet" msgid="3853773100100451905">"Permite que la aplicación active o desactive la tableta."</string>
     <string name="permdesc_devicePower" product="default" msgid="4577331933252444818">"Permite que la aplicación active o desactive el teléfono."</string>
     <string name="permlab_factoryTest" msgid="3715225492696416187">"ejecutar en modo de prueba de fábrica"</string>
-    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Permite la ejecución como prueba de fabricante de nivel inferior, lo que posibilita un total acceso al hardware de la tableta. Sólo está disponible cuando una tableta se está ejecutando en modo de prueba."</string>
+    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Permite la ejecución como prueba de fabricante de nivel inferior, lo que posibilita un acceso completo al hardware de la tableta. Sólo está disponible cuando una tableta se está ejecutando en modo de prueba."</string>
     <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Ejecutar como prueba de fabricante de nivel inferior, permitiendo un acceso íntegro al hardware del teléfono. Sólo está disponible cuando un teléfono se está ejecutando en modo de prueba."</string>
     <string name="permlab_setWallpaper" msgid="6627192333373465143">"establecer fondo de pantalla"</string>
     <string name="permdesc_setWallpaper" msgid="6417041752170585837">"Permite que la aplicación establezca el fondo de pantalla del sistema."</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"¿Quieres salir de esta página?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Selecciona \"Aceptar\" para continuar o \"Cancelar\" para permanecer en la página actual."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Sugerencia: toca dos veces para ampliar o reducir."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Autocompletar este formulario"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Autocompletar"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Config autocomp"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"Aceptar"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Cancelar"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Establecer hora"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Establecer fecha"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Establecer"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Predeterminado"</string>
     <string name="no_permissions" msgid="7283357728219338112">"No es necesario ningún permiso"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Estado de medio externo desconocido"</string>
     <string name="share" msgid="1778686618230011964">"Compartir"</string>
     <string name="find" msgid="4808270900322985960">"Buscar"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 069ba44..7e00ebd 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"از این صفحه خارج می شوید؟"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"برای ادامه روی تأیید و برای ماندن در همین صفحه روی لغو کلیک کنید."</string>
     <string name="save_password_label" msgid="6860261758665825069">"تأیید"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"نکته: برای انجام بزرگنمایی مثبت و منفی، دو بار ضربه بزنید."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"تکمیل خودکار"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"تنظیم تکمیل خودکار"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"تأیید"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"لغو"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"تنظیم زمان"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"تاریخ تنظیم"</string>
     <string name="date_time_set" msgid="5777075614321087758">"تنظیم"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"پیش فرض"</string>
     <string name="no_permissions" msgid="7283357728219338112">"مجوزی لازم نیست"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 6208330..ff8c464 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Siirrytäänkö pois tältä sivulta?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Valitse OK, jos haluat jatkaa, tai Peruuta, jos et halua siirtyä pois sivulta."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Vahvista"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Vinkki: lähennä ja loitonna kaksoisnapauttamalla"</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Aut. täyt."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Autom. täyttö"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Peruuta"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Aseta aika"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Aseta päivämäärä"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Aseta"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Oletus"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Lupia ei tarvita"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index e0ea5a46..9ec5675 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -128,7 +128,7 @@
     <string name="low_memory" product="tablet" msgid="2292820184396262278">"La mémoire de la tablette est pleine. Supprimez des fichiers pour libérer de l\'espace."</string>
     <string name="low_memory" product="default" msgid="6632412458436461203">"La mémoire du téléphone est pleine ! Supprimez des fichiers pour libérer de l\'espace."</string>
     <string name="me" msgid="6545696007631404292">"Moi"</string>
-    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Options relatives à la tablette"</string>
+    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Options de la tablette"</string>
     <string name="power_dialog" product="default" msgid="1319919075463988638">"Options du téléphone"</string>
     <string name="silent_mode" msgid="7167703389802618663">"Mode silencieux"</string>
     <string name="turn_on_radio" msgid="3912793092339962371">"Activer le mode sans fil"</string>
@@ -142,7 +142,7 @@
     <skip />
     <string name="recent_tasks_title" msgid="3691764623638127888">"Récentes"</string>
     <string name="no_recent_tasks" msgid="279702952298056674">"Aucune application récente"</string>
-    <string name="global_actions" product="tablet" msgid="408477140088053665">"Options relatives à la tablette"</string>
+    <string name="global_actions" product="tablet" msgid="408477140088053665">"Options de la tablette"</string>
     <string name="global_actions" product="default" msgid="2406416831541615258">"Options du téléphone"</string>
     <string name="global_action_lock" msgid="2844945191792119712">"Verrouillage de l\'écran"</string>
     <string name="global_action_power_off" msgid="4471879440839879722">"Éteindre"</string>
@@ -159,7 +159,7 @@
     <string name="permgrouplab_messages" msgid="7521249148445456662">"Vos messages"</string>
     <string name="permgroupdesc_messages" msgid="7045736972019211994">"Permet de lire et rédiger vos SMS, e-mails et autres messages."</string>
     <string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Vos informations personnelles"</string>
-    <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Accédez directement aux contacts et à l\'agenda stockés sur la tablette."</string>
+    <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"Accéder directement aux contacts et à l\'agenda stockés sur la tablette"</string>
     <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"Accédez directement aux contacts et à l\'agenda enregistrés sur votre téléphone."</string>
     <string name="permgrouplab_location" msgid="635149742436692049">"Votre position"</string>
     <string name="permgroupdesc_location" msgid="2430258821648348660">"Suivre votre position géographique"</string>
@@ -223,7 +223,7 @@
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"empêcher les changements d\'applications"</string>
     <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Empêche l\'utilisateur de changer d\'application."</string>
     <string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"Contrôle du lancement des applications"</string>
-    <string name="permdesc_runSetActivityWatcher" msgid="2149363027173451218">"Permet à une application de suivre et de contrôler la façon dont le système lance des activités. Des applications malveillantes peuvent entièrement déstabiliser le système. Cette autorisation est uniquement requise à des fins de développement, et non pour un usage standard."</string>
+    <string name="permdesc_runSetActivityWatcher" msgid="2149363027173451218">"Permet le suivi et le contrôle du processus de démarrage des activités par les applications. Des applications malveillantes peuvent entièrement déstabiliser le système. Cette autorisation est uniquement destinée aux développeurs. Elle ne doit jamais être activée dans le cadre d\'une utilisation standard."</string>
     <string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"Envoyer une diffusion sans paquet"</string>
     <string name="permdesc_broadcastPackageRemoved" msgid="3453286591439891260">"Permet à une application de diffuser une notification lorsqu\'un paquet d\'application a été supprimé. Des applications malveillantes peuvent utiliser cette fonctionnalité pour interrompre d\'autres applications en cours d\'exécution."</string>
     <string name="permlab_broadcastSmsReceived" msgid="5689095009030336593">"Envoyer une diffusion reçue par SMS"</string>
@@ -247,7 +247,7 @@
     <string name="permlab_manageAppTokens" msgid="17124341698093865">"Gestion des repères des applications"</string>
     <string name="permdesc_manageAppTokens" msgid="977127907524195988">"Permet à des applications de créer et gérer leurs propres jetons en ignorant leur ordre de plan normal. Les applications normales ne devraient jamais avoir recours à cette fonctionnalité."</string>
     <string name="permlab_injectEvents" msgid="1378746584023586600">"Utilisation des touches ou contrôle des commandes"</string>
-    <string name="permdesc_injectEvents" product="tablet" msgid="7200014808195664505">"Permet à une application de déclencher ses propres événements (touches enfoncées, etc.) à d\'autres applications. Des applications malveillantes peuvent utiliser cette fonctionnalité pour prendre le contrôle de votre tablette."</string>
+    <string name="permdesc_injectEvents" product="tablet" msgid="7200014808195664505">"Permet à une application d\'appliquer ses propres événements (tels que l\'appui de certaines touches) à d\'autres applications. Des applications malveillantes peuvent exploiter cette fonctionnalité pour prendre le contrôle de votre tablette."</string>
     <string name="permdesc_injectEvents" product="default" msgid="3946098050410874715">"Permet à une application de fournir ses propres commandes (touches enfoncées, etc.) à d\'autres applications. Des applications malveillantes peuvent utiliser cette fonctionnalité pour prendre le contrôle de votre téléphone."</string>
     <string name="permlab_readInputState" msgid="469428900041249234">"Enregistrer le texte saisi et les actions effectuées"</string>
     <string name="permdesc_readInputState" msgid="5132879321450325445">"Permet à des applications d\'identifier les touches sur lesquelles vous appuyez même lorsque vous utilisez une autre application (lors de la saisie d\'un mot de passe, par exemple). Les applications normales ne devraient jamais avoir recours à cette fonctionnalité."</string>
@@ -274,7 +274,7 @@
     <string name="permlab_installPackages" msgid="335800214119051089">"Installation directe d\'applications"</string>
     <string name="permdesc_installPackages" msgid="526669220850066132">"Permet à une application d\'installer des nouveaux paquets de données ou des mises à jour Android. Des applications malveillantes peuvent utiliser cette fonctionnalité pour ajouter de nouvelles applications disposant d\'autorisations anormalement élevées."</string>
     <string name="permlab_clearAppCache" msgid="4747698311163766540">"Suppression des données du cache de toutes les applications"</string>
-    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Permet à une application de libérer de l\'espace dans la mémoire de la tablette en supprimant des fichiers du répertoire du cache des applications. Cet accès est en général limité aux processus système."</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Permet à une application de libérer de l\'espace dans la mémoire de la tablette en supprimant des fichiers du répertoire affecté à la mémoire cache des applications. Cet accès est en général limité aux processus système."</string>
     <string name="permdesc_clearAppCache" product="default" msgid="7740465694193671402">"Permet à une application de libérer de l\'espace dans la mémoire du téléphone en supprimant des fichiers du répertoire du cache des applications. Cet accès est en général limité aux processus système."</string>
     <string name="permlab_movePackage" msgid="728454979946503926">"Déplacer des ressources d\'application"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"Autorise l\'application à déplacer des ressources d\'application d\'un support interne à un support externe et inversement."</string>
@@ -284,8 +284,8 @@
     <string name="permlab_diagnostic" msgid="8076743953908000342">"Lecture/écriture dans les ressources appartenant aux diagnostics"</string>
     <string name="permdesc_diagnostic" msgid="3121238373951637049">"Permet à une application de lire et d\'éditer toute ressource appartenant au groupe de diagnostics (par exemple, les fichiers in/dev). Ceci peut affecter la stabilité et la sécurité du système. Cette fonctionnalité est UNIQUEMENT réservée aux diagnostics matériels effectués par le fabricant ou l\'opérateur."</string>
     <string name="permlab_changeComponentState" msgid="79425198834329406">"Activer ou désactiver des éléments de l\'application"</string>
-    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"Permet à une application d\'activer ou de désactiver un composant dépendant d\'une autre application. Des applications malveillantes peuvent utiliser cette fonctionnalité pour désactiver des options importantes sur votre tablette. Cette autorisation doit être utilisée avec prudence, car il est possible de rendre les composants d\'une application inutilisables, incohérents ou instables."</string>
-    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"Permet à une application d\'activer ou de désactiver un composant dépendant d\'une autre application. Des applications malveillantes peuvent utiliser cette fonctionnalité pour désactiver des options importantes sur votre tablette. Cette autorisation doit être utilisée avec prudence, car il est possible de rendre les composants d\'une application inutilisables, incohérents ou instables."</string>
+    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"Permet à une application d\'activer ou de désactiver un composant dépendant d\'une autre application. Des applications malveillantes peuvent exploiter cette fonctionnalité pour désactiver des options importantes de votre tablette. Cette autorisation doit être utilisée avec prudence : elle est susceptible de rendre les composants d\'une application inutilisables, incohérents ou instables."</string>
+    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"Permet à une application d\'activer ou de désactiver un composant dépendant d\'une autre application. Des applications malveillantes peuvent exploiter cette fonctionnalité pour désactiver des options importantes de votre tablette. Cette autorisation doit être utilisée avec prudence : elle est susceptible de rendre les composants d\'une application inutilisables, incohérents ou instables."</string>
     <string name="permlab_setPreferredApplications" msgid="3393305202145172005">"Définition des applications préférées"</string>
     <string name="permdesc_setPreferredApplications" msgid="760008293501937546">"Permet à une application de modifier vos applications préférées. Des applications malveillantes peuvent utiliser cette fonctionnalité pour modifier discrètement les applications en cours d\'exécution, en imitant vos applications existantes afin de récupérer des données personnelles vous concernant."</string>
     <string name="permlab_writeSettings" msgid="1365523497395143704">"Modification des paramètres généraux du système"</string>
@@ -295,19 +295,19 @@
     <string name="permlab_writeGservices" msgid="2149426664226152185">"Modification de la carte des services Google"</string>
     <string name="permdesc_writeGservices" msgid="6602362746516676175">"Permet à une application de modifier la carte des services Google. Les applications normales n\'utilisent pas cette fonctionnalité."</string>
     <string name="permlab_receiveBootCompleted" msgid="7776779842866993377">"Lancement automatique au démarrage"</string>
-    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Permet à une application de se lancer une fois le système démarré. Cela peut rallonger le démarrage de la tablette. L\'application étant alors constamment en cours d\'exécution, le fonctionnement général de la tablette risque d\'être ralenti."</string>
+    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Permet le lancement automatique d\'une application au démarrage du système. L\'application étant constamment exécutée, cette option peut à la fois ralentir le démarrage de la tablette et son fonctionnement général."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="698336728415008796">"Permet à une application de se lancer dès la fin du démarrage du système. Cela peut rallonger le temps de démarrage requis par le téléphone. L\'application étant alors constamment en cours d\'exécution, le fonctionnement général du téléphone risque d\'être ralenti."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"Envoi d\'une diffusion persistante"</string>
     <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Permet à une application d\'envoyer des diffusions \"persistantes\", qui perdurent après la fin de la diffusion. Des applications malveillantes peuvent ainsi ralentir la tablette ou la rendre instable en l\'obligeant à utiliser trop de mémoire."</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="1920045289234052219">"Permet à une application d\'envoyer des diffusions \"persistantes\", qui perdurent après la fin de la diffusion. Des applications malveillantes peuvent ainsi ralentir le téléphone ou le rendre instable en l\'obligeant à utiliser trop de mémoire."</string>
     <string name="permlab_readContacts" msgid="6219652189510218240">"Accès aux données des contacts"</string>
-    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Permet à une application de lire toutes les données de contact (adresses) stockées sur votre tablette. Des applications malveillantes peuvent utiliser cette fonctionnalité pour envoyer vos données à d\'autres personnes."</string>
+    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Permet à une application de lire toutes les données (adresses) associées à vos contacts et stockées sur votre tablette. Des applications malveillantes peuvent exploiter cette fonctionnalité pour envoyer vos données à d\'autres personnes."</string>
     <string name="permdesc_readContacts" product="default" msgid="3371591512896545975">"Permet à une application de lire toutes les données des contacts (adresses) enregistrées sur votre téléphone. Des applications malveillantes peuvent utiliser cette fonctionnalité pour envoyer vos données à d\'autres personnes."</string>
     <string name="permlab_writeContacts" msgid="644616215860933284">"Édition des données d\'un contact"</string>
-    <string name="permdesc_writeContacts" product="tablet" msgid="7782689510038568495">"Permet à une application de modifier les données de contact (adresses) stockées sur votre tablette. Des applications malveillantes peuvent utiliser cette fonctionnalité pour effacer ou modifier vos données de contact."</string>
+    <string name="permdesc_writeContacts" product="tablet" msgid="7782689510038568495">"Permet à une application de modifier les données (adresses) associées à vos contacts et stockées sur votre tablette. Des applications malveillantes peuvent utiliser cette fonctionnalité pour effacer ou modifier les données de vos contacts."</string>
     <string name="permdesc_writeContacts" product="default" msgid="3924383579108183601">"Permet à une application de modifier toutes les données de contact (adresses) enregistrées sur le téléphone. Des applications malveillantes peuvent utiliser cette fonctionnalité pour effacer ou modifier vos données de contact."</string>
     <string name="permlab_readCalendar" msgid="6898987798303840534">"lire des événements de l\'agenda"</string>
-    <string name="permdesc_readCalendar" product="tablet" msgid="5905870265734599678">"Permet à une application de lire tous les événements de l\'agenda stockés sur votre tablette. Des applications malveillantes peuvent utiliser cette fonctionnalité pour envoyer les événements de votre agenda à d\'autres personnes."</string>
+    <string name="permdesc_readCalendar" product="tablet" msgid="5905870265734599678">"Permet à une application de lire tous les événements d\'agenda stockés sur votre tablette. Des applications malveillantes peuvent exploiter cette fonctionnalité pour envoyer les événements de votre agenda à d\'autres personnes."</string>
     <string name="permdesc_readCalendar" product="default" msgid="5533029139652095734">"Permet à une application de lire tous les événements de l\'agenda enregistrés sur votre téléphone. Des applications malveillantes peuvent utiliser cette fonctionnalité pour envoyer les événements de votre agenda à d\'autres personnes."</string>
     <string name="permlab_writeCalendar" msgid="3894879352594904361">"ajouter ou modifier des événements d\'agenda et envoyer des e-mails aux invités"</string>
     <string name="permdesc_writeCalendar" msgid="2988871373544154221">"Autorise les applications à ajouter ou à modifier des événements dans votre agenda, qui pourra envoyer des e-mails aux invités. Des logiciels malveillants peuvent utiliser cette fonctionnalité pour supprimer ou modifier des événements de l\'agenda ou envoyer des e-mails aux invités."</string>
@@ -318,10 +318,10 @@
     <string name="permlab_installLocationProvider" msgid="6578101199825193873">"autoriser l\'installation d\'un fournisseur de services de localisation"</string>
     <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Créer des sources de données de localisation factices à des fins de test. Les applications malveillantes peuvent exploiter cette fonction pour remplacer la position géographique et/ou l\'état renvoyé par les sources de données de localisation réelles, telles que le GPS ou les fournisseurs réseau, ou pour surveiller et transmettre votre position géographique à une source externe."</string>
     <string name="permlab_accessFineLocation" msgid="8116127007541369477">"Localisation OK (GPS)"</string>
-    <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"Permet d\'accéder à des sources de localisation précises comme le Global Positioning System (GPS) sur la tablette, lorsque ces services sont disponibles. Des applications malveillantes peuvent utiliser cette fonctionnalité pour déterminer l\'endroit où vous vous trouvez, augmentant ainsi la consommation de la batterie de votre tablette."</string>
+    <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"Permet d\'accéder à des sources de localisation précises telles que le système GPS de la tablette, lorsque ces services sont disponibles. Des applications malveillantes peuvent exploiter cette fonctionnalité pour déterminer votre position, ce qui peut entraîner une utilisation accrue de la batterie."</string>
     <string name="permdesc_accessFineLocation" product="default" msgid="7411213317434337331">"Permet d\'accéder à des sources de localisation précises comme le Global Positioning System (GPS) sur le téléphone, lorsque ces services sont disponibles. Des applications malveillantes peuvent utiliser cette fonctionnalité pour déterminer l\'endroit où vous vous trouvez et augmenter la consommation de la batterie de votre téléphone."</string>
     <string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"Position géo. approximative (selon le réseau)"</string>
-    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Permet d\'accéder à des sources de localisation approximatives (par exemple, des bases de données de réseaux mobiles) pour déterminer la position géographique de la tablette, lorsque cette option est disponible. Des applications malveillantes peuvent utiliser cette fonctionnalité pour déterminer approximativement l\'endroit où vous vous trouvez."</string>
+    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Permet d\'accéder à des sources de localisation approximatives telles que des bases de données de réseaux mobiles pour déterminer la position géographique de la tablette lorsque celle-ci est disponible. Des applications malveillantes peuvent exploiter cette fonctionnalité pour déterminer votre position approximative."</string>
     <string name="permdesc_accessCoarseLocation" product="default" msgid="8235655958070862293">"Accès à des sources de localisation approximative (par ex. des bases de données de réseaux mobiles) pour déterminer la position géographique du téléphone, lorsque cette option est disponible. Des applications malveillantes peuvent utiliser cette fonctionnalité pour déterminer approximativement l\'endroit où vous vous trouvez."</string>
     <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"Accès à SurfaceFlinger"</string>
     <string name="permdesc_accessSurfaceFlinger" msgid="6805241830020733025">"Permet à certaines applications d\'utiliser les fonctionnalités SurfaceFlinger de bas niveau."</string>
@@ -433,10 +433,10 @@
     <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"autoriser la réception de données en Wi-Fi multidiffusion"</string>
     <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Autorise une application à recevoir des paquets qui ne sont pas directement adressés à votre mobile. Cela peut être utile pour la recherche de services disponibles à proximité. Consomme plus que le mode non multidiffusion."</string>
     <string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"Gestion Bluetooth"</string>
-    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"Permet à une application de configurer la tablette Bluetooth locale, d\'identifier des périphériques distants et de les associer à la tablette."</string>
+    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"Permet à une application de configurer la tablette Bluetooth locale, de trouver des périphériques distants et de les associer à la tablette."</string>
     <string name="permdesc_bluetoothAdmin" product="default" msgid="7256289774667054555">"Permet à une application de configurer le téléphone Bluetooth local, d\'identifier des périphériques distants et de les associer au téléphone."</string>
     <string name="permlab_bluetooth" msgid="8361038707857018732">"Création de connexions Bluetooth"</string>
-    <string name="permdesc_bluetooth" product="tablet" msgid="4191941825910543803">"Permet à une application d\'obtenir la configuration de la tablette Bluetooth locale, et de créer et accepter des connexions à des appareils associés."</string>
+    <string name="permdesc_bluetooth" product="tablet" msgid="4191941825910543803">"Permet à une application d\'obtenir la configuration de la tablette Bluetooth locale, de se connecter à des appareils associés et d\'accepter leur connexion."</string>
     <string name="permdesc_bluetooth" product="default" msgid="762515380679392945">"Permet à une application d\'obtenir la configuration du téléphone Bluetooth local et de créer et accepter des connexions à des appareils associés."</string>
     <string name="permlab_nfc" msgid="4423351274757876953">"contrôler la communication en champ proche"</string>
     <string name="permdesc_nfc" msgid="9171401851954407226">"Autorise une application à communiquer avec des tags, cartes et lecteurs prenant en charge la communication en champ proche (NFC)."</string>
@@ -471,7 +471,7 @@
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Définir les règles du mot de passe"</string>
     <string name="policydesc_limitPassword" msgid="9083400080861728056">"Gérer le nombre et le type de caractères autorisés dans les mots de passe de déverrouillage de l\'écran"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Gérer les tentatives de déverrouillage de l\'écran"</string>
-    <string name="policydesc_watchLogin" product="tablet" msgid="933601759466308092">"Surveillez le nombre de mots de passe incorrects saisis lors du déverrouillage de l\'écran, et verrouillez la tablette ou effacez toutes ses données après un certain nombre de tentatives."</string>
+    <string name="policydesc_watchLogin" product="tablet" msgid="933601759466308092">"Surveiller le nombre de mots de passe incorrects saisis lors du déverrouillage de l\'écran et verrouiller la tablette ou effacer toutes ses données après un certain nombre de tentatives."</string>
     <string name="policydesc_watchLogin" product="default" msgid="7227578260165172673">"Gérer le nombre de mots de passe incorrects saisis lors du déverrouillage de l\'écran et verrouiller le téléphone ou effacer toutes ses données après un certain nombre de tentatives"</string>
     <string name="policylab_resetPassword" msgid="2620077191242688955">"Modifier le mot de passe de déverrouillage de l\'écran"</string>
     <string name="policydesc_resetPassword" msgid="5391240616981297361">"Modifier le mot de passe de déverrouillage de l\'écran"</string>
@@ -659,8 +659,8 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Vous souhaitez quitter cette page ?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Sélectionnez OK pour continuer ou Annuler pour rester sur la page actuelle."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Confirmer"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Conseil : Appuyez deux fois pour effectuer un zoom avant ou arrière."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Permettre le remplissage automatique du formulaire"</string>
-    <string name="setup_autofill" msgid="8154593408885654044">"Config. saisie auto."</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Saisie auto"</string>
+    <string name="setup_autofill" msgid="8154593408885654044">"Config. saisie auto"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
     <skip />
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Annuler"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Définir l\'heure"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Définir la date"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Définir"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Par défaut"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Aucune autorisation requise"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"État du support externe inconnu"</string>
     <string name="share" msgid="1778686618230011964">"Partager"</string>
     <string name="find" msgid="4808270900322985960">"Rechercher"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index c987a94..2c07d41 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -277,7 +277,7 @@
     <string name="permlab_installPackages" msgid="335800214119051089">"izravno instaliranje aplikacija"</string>
     <string name="permdesc_installPackages" msgid="526669220850066132">"Aplikaciji omogućuje instaliranje novih ili ažuriranih paketa sustava Android. Zlonamjerne aplikacije mogu to upotrijebiti za dodavanje aplikacija uz moćna, samovoljna dopuštenja."</string>
     <string name="permlab_clearAppCache" msgid="4747698311163766540">"brisanje svih podataka iz predmemorije aplikacije"</string>
-    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Aplikaciji omogućuje oslobađanje mjesta za pohranu na tablet računalu brisanjem datoteka u direktoriju predmemorije aplikacije. Pristup je veoma ograničen obično sistemskim postupku."</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Aplikaciji omogućuje oslobađanje mjesta za pohranu na tablet računalu brisanjem datoteka u direktoriju predmemorije aplikacije. Pristup je veoma ograničen obično na sistemski postupak."</string>
     <string name="permdesc_clearAppCache" product="default" msgid="7740465694193671402">"Aplikaciji omogućuje oslobađanje mjesta za pohranu na telefonu brisanjem datoteka u direktoriju predmemorije aplikacije. Pristup je veoma ograničen obično sistemskim postupkom."</string>
     <string name="permlab_movePackage" msgid="728454979946503926">"Premjesti izvore aplikacije"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"Aplikaciji omogućuje premještanje resursa aplikacije iz internih na vanjske medije i obratno."</string>
@@ -438,7 +438,7 @@
     <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"omogući višenamjenski Wi-Fi prijem"</string>
     <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Aplikaciji omogućuje primanje paketa koji nisu izravno upućeni na vaš uređaj. To može biti korisno za otkrivanje obližnjih usluge. Koristi više energije od višenamjenskog načina rada."</string>
     <string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"bluetooth administracija"</string>
-    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"Aplikaciji omogućuje konfiguraciju lokalnog Bluetooth tablet računala i otkrivanje i sparivanje s udaljenim uređajima."</string>
+    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"Aplikaciji omogućuje konfiguraciju lokalnog Bluetooth tablet računala te otkrivanje i sparivanje s udaljenim uređajima."</string>
     <string name="permdesc_bluetoothAdmin" product="default" msgid="7256289774667054555">"Aplikaciji omogućuje konfiguraciju lokalnog Bluetooth telefona i otkrivanje i sparivanje s udaljenim uređajima."</string>
     <string name="permlab_bluetooth" msgid="8361038707857018732">"stvaranje Bluetooth veza"</string>
     <string name="permdesc_bluetooth" product="tablet" msgid="4191941825910543803">"Aplikaciji omogućuje pregled konfiguracije lokalnog Bluetooth tablet računala i uspostavljanje i prihvaćanje veza sa sparenim uređajima."</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Želite otići s ove lokacije?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Za nastavak odaberite U redu ili da biste ostali na trenutačnoj stranici odaberite Odustani."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Potvrdi"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Savjet: Dvaput dotaknite za povećanje i smanjivanje."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"AutoFill"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Postavi autopop."</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"U redu"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Odustani"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Postavljanje vremena"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Postavi datum"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Postavi"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Zadano"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Nije potrebno dopuštenje"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 720c979..017e837 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Elhagyja ezt az oldalt?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"A folytatáshoz válassza az OK, a jelenlegi oldalon maradáshoz a Mégse lehetőséget."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Megerősítés"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Tipp: érintse meg kétszer a nagyításhoz és kicsinyítéshez."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Aut.kitölt"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Autom. kitöltés"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Mégse"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Idő beállítása"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Dátum beállítása"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Beállítás"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Alapértelmezett"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Nincs szükség engedélyre"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 5d49894..a674ff1 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -126,7 +126,7 @@
     <string name="contentServiceSync" msgid="8353523060269335667">"Sinkron"</string>
     <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"Sinkron"</string>
     <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"Terlalu banyak <xliff:g id="CONTENT_TYPE">%s</xliff:g> penghapusan."</string>
-    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Penyimpanan pada tablet penuh! Hapus beberapa berkas untuk mendapatkan ruang."</string>
+    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Penyimpanan pada tablet penuh! Hapus beberapa berkas agar ada tempat kosong."</string>
     <string name="low_memory" product="default" msgid="6632412458436461203">"Penyimpanan di ponsel penuh! Hapus sebagian berkas untuk mendapatkan ruang."</string>
     <string name="me" msgid="6545696007631404292">"Saya"</string>
     <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Opsi tablet"</string>
@@ -277,7 +277,7 @@
     <string name="permlab_installPackages" msgid="335800214119051089">"pasang aplikasi secara langsung"</string>
     <string name="permdesc_installPackages" msgid="526669220850066132">"Mengizinkan aplikasi memasang paket Android baru atau yang diperbarui. Aplikasi hasad dapat menggunakan ini untuk menambahkan aplikasi dengan izin yang kuat secara sembarangan."</string>
     <string name="permlab_clearAppCache" msgid="4747698311163766540">"hapus semua data tembolok aplikasi"</string>
-    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Mengizinkan aplikasi mengosongkan penyimpanan tablet dengan menghapus berkas dalam direktori tembolok aplikasi. Akses sangat terbatas, biasanya pada proses sistem."</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Mengizinkan aplikasi mengosongkan penyimpanan tablet dengan menghapus berkas dalam direktori tembolok aplikasi. Akses sangat terbatas, biasanya hanya untuk proses sistem."</string>
     <string name="permdesc_clearAppCache" product="default" msgid="7740465694193671402">"Mengizinkan aplikasi mengosongkan penyimpanan ponsel dengan menghapus berkas dalam direktori tembolok aplikasi. Akses sangat terbatas, biasanya pada proses sistem."</string>
     <string name="permlab_movePackage" msgid="728454979946503926">"Pindahkan sumber daya aplikasi"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"Mengizinkan aplikasi memindah sumber daya aplikasi dari media internal ke eksternal dan sebaliknya."</string>
@@ -298,13 +298,13 @@
     <string name="permlab_writeGservices" msgid="2149426664226152185">"ubah peta layanan Google"</string>
     <string name="permdesc_writeGservices" msgid="6602362746516676175">"Mengizinkan aplikasi mengubah peta layanan Google. Tidak untuk digunakan oleh aplikasi normal."</string>
     <string name="permlab_receiveBootCompleted" msgid="7776779842866993377">"mulai secara otomatis pada saat boot"</string>
-    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Memungkinkan aplikasi memulai secara otomatis segera setelah sistem selesai booting. Ini dapat memperlambat proses memulai tablet dan menyebabkan aplikasi memperlambat tablet secara keseluruhan ketika terus berjalan."</string>
+    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Memungkinkan aplikasi memulai secara otomatis segera setelah sistem selesai booting. Ini dapat memperlambat proses memulai tablet dan menyebabkan aplikasi memperlambat tablet secara keseluruhan karena terus-terusan aktif."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="698336728415008796">"Mengizinkan aplikasi memulai sendiri segera setelah sistem selesai booting. Ini dapat memperlambat proses memulai ponsel dan menyebabkan aplikasi memperlambat ponsel secara keseluruhan ketika terus berjalan."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"kirim siaran memikat"</string>
-    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Memungkinkan aplikasi mengirimkan siaran memikat, yang tetap ada setelah siaran berakhir. Aplikasi hasad dapat memperlambat tablet atau membuatnya tidak stabil dengan menyebabkannya menggunakan terlalu banyak memori."</string>
+    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Memungkinkan aplikasi mengirimkan siaran lengket, yang tetap ada setelah siaran berakhir. Aplikasi hasad dapat memperlambat tablet atau membuatnya tidak stabil dengan menyebabkannya menggunakan terlalu banyak memori."</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="1920045289234052219">"Mengizinkan aplikasi mengirimkan siaran memikat, yang tetap ada setelah siaran berakhir. Aplikasi hasad dapat memperlambat ponsel atau membuatnya tidak stabil dengan menyebabkannya menggunakan terlalu banyak memori."</string>
     <string name="permlab_readContacts" msgid="6219652189510218240">"baca data kenalan"</string>
-    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Memungkinkan aplikasi membaca semua data kenalan (alamat) yang tersimpan pada tablet. Aplikasi hasad dapat menggunakan ini untuk mengirimkan data Anda kepada orang lain."</string>
+    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Memungkinkan aplikasi membaca semua data (alamat) kenalan yang tersimpan pada tablet. Aplikasi hasad dapat menggunakan ini untuk mengirimkan data Anda kepada orang lain."</string>
     <string name="permdesc_readContacts" product="default" msgid="3371591512896545975">"Mengizinkan aplikasi membaca semua data kenalan (alamat) yang tersimpan pada ponsel. Aplikasi hasad dapat menggunakan ini untuk mengirimkan data Anda ke orang lain."</string>
     <string name="permlab_writeContacts" msgid="644616215860933284">"tuliskan data kenalan"</string>
     <string name="permdesc_writeContacts" product="tablet" msgid="7782689510038568495">"Memungkinkan aplikasi mengubah data kenalan (alamat) yang tersimpan pada tablet. Aplikasi hasad dapat menggunakan ini untuk menghapus atau mengubah data kenalan Anda."</string>
@@ -324,7 +324,7 @@
     <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"Akses sumber lokasi detail seperti GPS pada tablet, jika tersedia. Aplikasi hasad dapat menggunakan ini untuk menentukan lokasi Anda, dapat menguras daya baterai."</string>
     <string name="permdesc_accessFineLocation" product="default" msgid="7411213317434337331">"Akses sumber lokasi detail seperti GPS pada ponsel, jika tersedia. Aplikasi hasad dapat menggunakan ini untuk menentukan lokasi Anda, dapat menguras daya baterai."</string>
     <string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"lokasi sementara (berdasarkan jaringan)"</string>
-    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Akses sumber lokasi sementara seperti database jaringan seluler untuk menentukan perkiraan lokasi tablet terdekat, jika ada. Aplikasi berbahaya dapat menggunakan ini untuk memperkirakan lokasi Anda."</string>
+    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Akses sumber lokasi kasar seperti database jaringan seluler untuk menentukan perkiraan lokasi tablet terdekat, jika ada. Aplikasi hasad dapat menggunakan ini untuk memperkirakan lokasi Anda."</string>
     <string name="permdesc_accessCoarseLocation" product="default" msgid="8235655958070862293">"Akses sumber lokasi sementara seperti database jaringan seluler untuk menentukan lokasi ponsel terdekat, jika ada. Aplikasi hasad dapat menggunakan ini untuk memperkirakan lokasi Anda."</string>
     <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"akses SurfaceFlinger"</string>
     <string name="permdesc_accessSurfaceFlinger" msgid="6805241830020733025">"Izinkan aplikasi menggunakan fitur tingkat rendah SurfaceFlinger."</string>
@@ -385,7 +385,7 @@
     <string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Mengizinkan aplikasi mengendalikan fitur ponsel pada perangkat. Suatu aplikasi dengan izin ini dapat beralih jaringan, menghidupkan dan mematikan radio ponsel dan semacamnya tanpa memberitahukan kepada Anda."</string>
     <string name="permlab_readPhoneState" msgid="2326172951448691631">"baca kondisi dan identitas ponsel"</string>
     <string name="permdesc_readPhoneState" msgid="188877305147626781">"Mengizinkan aplikasi mengakses fitur ponsel yang ada pada perangkat. Suatu aplikasi dengan izin ini dapat menentukan nomor telepon dan nomor seri telepon, apakah panggilan telah aktif, nomor yang dipanggil, dan semacamnya."</string>
-    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"mencegah tablet menjadi tidak aktif"</string>
+    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"mencegah tablet masuk mode tidur"</string>
     <string name="permlab_wakeLock" product="default" msgid="573480187941496130">"mencegah ponsel menjadi tidak aktif"</string>
     <string name="permdesc_wakeLock" product="tablet" msgid="4032181488045338551">"Memungkinkan aplikasi mencegah tablet masuk ke mode tidur."</string>
     <string name="permdesc_wakeLock" product="default" msgid="7584036471227467099">"Mengizinkan aplikasi mencegah ponsel masuk ke mode tidur"</string>
@@ -438,7 +438,7 @@
     <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"Izinkan penerimaan Wi-Fi Multicast"</string>
     <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Mengizinkan aplikasi menerima paket yang tidak langsung dialamatkan ke perangkat Anda. Ini dapat bermanfaat ketika mencari perangkat yang ditawarkan di dekat Anda. Aplikasi ini menggunakan lebih banyak daya ketimbang mode selain multicast."</string>
     <string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"Administrasi bluetooth"</string>
-    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"Memungkinkan aplikasi mengonfigurasi tablet Bluetooth lokal, serta menemukan dan menyandingkan dengan perangkat jarak jauh."</string>
+    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"Memungkinkan aplikasi mengonfigurasi tablet Bluetooth lokal, serta menemukan dan menyandingkannya dengan perangkat jarak jauh."</string>
     <string name="permdesc_bluetoothAdmin" product="default" msgid="7256289774667054555">"Mengizinkan aplikasi mengonfigurasi ponsel Bluetooth lokal, dan menemukan dan menyandingkan perangkat jarak jauh."</string>
     <string name="permlab_bluetooth" msgid="8361038707857018732">"buat sambungan Bluetooth"</string>
     <string name="permdesc_bluetooth" product="tablet" msgid="4191941825910543803">"Mengizinkan aplikasi melihat konfigurasi tablet Bluetooth lokal, serta melakukan dan menerima panggilan dengan perangkat yang disandingkan."</string>
@@ -480,8 +480,8 @@
     <!-- outdated translation 4307861496302850201 -->     <string name="policylab_limitPassword" msgid="4497420728857585791">"Batasi sandi"</string>
     <!-- outdated translation 1719877245692318299 -->     <string name="policydesc_limitPassword" msgid="9083400080861728056">"Batasi jenis sandi yang Anda perbolehkan gunakan."</string>
     <!-- outdated translation 7374780712664285321 -->     <string name="policylab_watchLogin" msgid="914130646942199503">"Awasi upaya masuk"</string>
-    <string name="policydesc_watchLogin" product="tablet" msgid="933601759466308092">"Memonitor jumlah sandi tidak benar yang dimasukkan saat membuka kunci layar, dan mengunci tablet atau menghapus semua data tablet jika ada terlalu banyak sandi salah yang dimasukkan"</string>
-    <!-- outdated translation 933601759466308092 -->     <string name="policydesc_watchLogin" product="default" msgid="7227578260165172673">"Memonitor jumlah sandi tidak benar yang dimasukkan saat membuka kunci layar, dan mengunci tablet atau menghapus semua data tablet jika ada terlalu banyak sandi salah yang dimasukkan"</string>
+    <string name="policydesc_watchLogin" product="tablet" msgid="933601759466308092">"Memonitor jumlah sandi tidak benar yang dimasukkan saat membuka kunci layar, dan mengunci tablet atau menghapus semua data tablet jika sandi yang salah dimasukkan berkali-kali"</string>
+    <!-- outdated translation 933601759466308092 -->     <string name="policydesc_watchLogin" product="default" msgid="7227578260165172673">"Memonitor jumlah sandi tidak benar yang dimasukkan saat membuka kunci layar, dan mengunci tablet atau menghapus semua data tablet jika sandi yang salah dimasukkan berkali-kali"</string>
     <!-- outdated translation 9084772090797485420 -->     <string name="policylab_resetPassword" msgid="2620077191242688955">"Setel ulang sandi"</string>
     <!-- outdated translation 3332167600331799991 -->     <string name="policydesc_resetPassword" msgid="5391240616981297361">"Paksakan sandi ke nilai baru, administrator harus memberikannya kepada Anda sebelum dapat masuk."</string>
     <!-- outdated translation 5760466025247634488 -->     <string name="policylab_forceLock" msgid="2274085384704248431">"Paksakan kunci"</string>
@@ -667,7 +667,7 @@
     <skip />
     <!-- no translation found for lockscreen_too_many_failed_pin_attempts_dialog_message (6827749231465145590) -->
     <skip />
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Anda telah salah menggambar pola pembuka kunci sebanyak <xliff:g id="NUMBER_0">%d</xliff:g> kali. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> upaya gagal lagi, Anda akan diminta membuka kunci tablet menggunakan info masuk Google."\n\n" Harap coba lagi dalam <xliff:g id="NUMBER_2">%d</xliff:g> detik."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Anda telah salah menggambar pola pembuka kunci sebanyak <xliff:g id="NUMBER_0">%d</xliff:g> kali. Bila gagal lagi <xliff:g id="NUMBER_1">%d</xliff:g> kali, Anda akan diminta membuka kunci tablet menggunakan info masuk Google."\n\n" Harap coba lagi dalam <xliff:g id="NUMBER_2">%d</xliff:g> detik."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="3351013842320127827">"Anda telah salah menggambar pola pembuka kunci sebanyak <xliff:g id="NUMBER_0">%d</xliff:g> kali. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> upaya gagal lagi, Anda akan diminta membuka kunci ponsel menggunakan info masuk Google."\n\n" Harap coba lagi dalam <xliff:g id="NUMBER_2">%d</xliff:g> detik."</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Coba lagi dalam <xliff:g id="NUMBER">%d</xliff:g> detik."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Lupa pola?"</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Beranjak dari laman ini?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Pilih OK untuk melanjutkan, atau Batalkan untuk tetap pada laman ini."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Konfirmasi"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Kiat: ketuk dua kali untuk memperbesar dan memperkecil."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"IsiOtomatis"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Penyiapan IsiOtomatis"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Batal"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Setel waktu"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Setel tanggal"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Setel"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Bawaan"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Tidak perlu izin"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index eb5346d..f472755 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Uscire da questa pagina?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Seleziona OK per continuare o Annulla per rimanere nella pagina corrente."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Conferma"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Suggerimento. Tocca due volte per aumentare/ridurre lo zoom."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Compila automaticamente il modulo"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Compl. auto"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Compil. automatica"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Annulla"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Imposta ora"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Imposta data"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Imposta"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Predefinito"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Nessuna autorizzazione richiesta"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Stato dei supporti esterni sconosciuto."</string>
     <string name="share" msgid="1778686618230011964">"Condividi"</string>
     <string name="find" msgid="4808270900322985960">"Trova"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 5dc8b8c..67a6403 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -480,8 +480,8 @@
     <!-- outdated translation 4307861496302850201 -->     <string name="policylab_limitPassword" msgid="4497420728857585791">"הגבל סיסמה"</string>
     <!-- outdated translation 1719877245692318299 -->     <string name="policydesc_limitPassword" msgid="9083400080861728056">"הגבל את סוגי הסיסמאות שבהן מותר לך להשתמש."</string>
     <!-- outdated translation 7374780712664285321 -->     <string name="policylab_watchLogin" msgid="914130646942199503">"צפה בניסיונות התחברות"</string>
-    <string name="policydesc_watchLogin" product="tablet" msgid="933601759466308092">"עקוב אחר מספר הסיסמאות השגויות שהוזנו בעת ביטול נעילת המסך, ונעל את הטבלט, או מחק את כל הנתונים בטבלט אם סיסמאות שגויות רבות מדי הוזנו"</string>
-    <!-- outdated translation 933601759466308092 -->     <string name="policydesc_watchLogin" product="default" msgid="7227578260165172673">"עקוב אחר מספר הסיסמאות השגויות שהוזנו בעת ביטול נעילת המסך, ונעל את הטבלט, או מחק את כל הנתונים בטבלט אם סיסמאות שגויות רבות מדי הוזנו"</string>
+    <string name="policydesc_watchLogin" product="tablet" msgid="933601759466308092">"עקוב אחר מספר הסיסמאות השגויות שהוזנו בעת ביטול נעילת המסך, ונעל את הטבלט, או מחק את כל הנתונים בטבלט אם הוזנו סיסמאות שגויות רבות מדי"</string>
+    <!-- outdated translation 933601759466308092 -->     <string name="policydesc_watchLogin" product="default" msgid="7227578260165172673">"עקוב אחר מספר הסיסמאות השגויות שהוזנו בעת ביטול נעילת המסך, ונעל את הטבלט, או מחק את כל הנתונים בטבלט אם הוזנו סיסמאות שגויות רבות מדי"</string>
     <!-- outdated translation 9084772090797485420 -->     <string name="policylab_resetPassword" msgid="2620077191242688955">"אפס סיסמה"</string>
     <!-- outdated translation 3332167600331799991 -->     <string name="policydesc_resetPassword" msgid="5391240616981297361">"אלץ את הסיסמה שלך לערך חדש, דורש שמנהל המערכת ייתן לך את הסיסמה לפני שתוכל להיכנס."</string>
     <!-- outdated translation 5760466025247634488 -->     <string name="policylab_forceLock" msgid="2274085384704248431">"אלץ נעילה"</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"לנווט מחוץ לדף זה?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"בחר \'אישור\' כדי להמשיך או \'ביטול\' כדי להישאר בדף הנוכחי."</string>
     <string name="save_password_label" msgid="6860261758665825069">"אשר"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"טיפש: הקש פעמיים כדי להתקרב ולהתרחק."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"מילוי אוטומטי"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"התקן \'מילוי אוטומטי\'"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"אישור"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"ביטול"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"הגדרת שעה"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"הגדר תאריך"</string>
     <string name="date_time_set" msgid="5777075614321087758">"הגדר"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"ברירת מחדל"</string>
     <string name="no_permissions" msgid="7283357728219338112">"לא דרושים אישורים"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 0ec1cce..b94af31 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"このページから移動しますか?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"移動する場合は[OK]、今のページに残る場合は[キャンセル]を選択してください。"</string>
     <string name="save_password_label" msgid="6860261758665825069">"確認"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"ヒント: ダブルタップで拡大/縮小できます。"</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"このフォームを自動入力"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"自動入力"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"自動入力設定"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"キャンセル"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"時刻設定"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"日付設定"</string>
     <string name="date_time_set" msgid="5777075614321087758">"設定"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"端末既定"</string>
     <string name="no_permissions" msgid="7283357728219338112">"権限の許可は必要ありません"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"外部メディアの状態は不明です。"</string>
     <string name="share" msgid="1778686618230011964">"共有"</string>
     <string name="find" msgid="4808270900322985960">"検索"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 5d73309..9c30604 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"다른 페이지를 탐색하시겠습니까?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"계속하려면 \'확인\'을 선택하고 현재 페이지에 그대로 있으려면 \'취소\'를 선택하세요."</string>
     <string name="save_password_label" msgid="6860261758665825069">"확인"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"도움말: 축소/확대하려면 두 번 누릅니다."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"양식 자동완성"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"자동완성"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"자동완성 설정"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"확인"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"취소"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"시간 설정"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"날짜 설정"</string>
     <string name="date_time_set" msgid="5777075614321087758">"설정"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"기본값"</string>
     <string name="no_permissions" msgid="7283357728219338112">"권한 필요 없음"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"외부 미디어가 알 수 없는 상태입니다."</string>
     <string name="share" msgid="1778686618230011964">"공유"</string>
     <string name="find" msgid="4808270900322985960">"찾기"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 9e2d1c2..2414675 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -301,7 +301,7 @@
     <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Leidžiama programai pasileisti pačiai pasibaigus įkrovai. Dėl to gali ilgiau trukti planšetinio kompiuterio paleidimas ir programai bus leista sulėtinti visą planšetinio kompiuterio veikimą, nes ji visada vykdoma."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="698336728415008796">"Leidžia programai pasileisti pačiai pasibaigus įkrovai. Dėl to gali ilgiau trukti telefono įjungimas ir programai bus leista sulėtinti visą telefono veikimą, nes ji visada paleista."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"siųsti pritraukiantį perdavimą"</string>
-    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Leidžiama programai siųsti pritraukiančius perdavimus, kurie išlieka perdavimui pasibaigus. Kenkėjiškos programos gali sulėtinti planšetinio kompiuterio veikimą ar padaryti jį nestabilų, priversdamos jį naudoti per daug atminties."</string>
+    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Leidžiama programai siųsti pritraukiančius transliavimus, kurie išlieka transliavimui pasibaigus. Kenkėjiškos programos gali sulėtinti planšetinio kompiuterio veikimą ar padaryti jį nestabilų, priversdamos jį naudoti per daug atminties."</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="1920045289234052219">"Leidžia programai siųsti pritraukiančius perdavimus, kurie išlieka perdavimui pasibaigus. Kenkėjiškos programos gali sulėtinti telefoną ar padaryti jį nestabilų, priversdamos jį naudoti per daug atminties."</string>
     <string name="permlab_readContacts" msgid="6219652189510218240">"skaityti adresato duomenis"</string>
     <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Leidžiama programai skaityti visus kontaktų (adreso) duomenis, išsaugotus jūsų planšetiniame kompiuteryje. Kenkėjiškos programos gali tai naudoti, kad siųstų jūsų duomenis kitiems žmonėms."</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Išeiti iš šio puslapio?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Pasirinkite „Gerai“, jei norite tęsti, arba pasirinkite Atšaukti“, jei norite likti dabartiniame puslapyje."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Patvirtinti"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Patarimas: bakstelėkite du kartus, kad padidintumėte ar sumažintumėte mastelį."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Automatinis užpildymas"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Aut. pild. sąr."</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"Gerai"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Atšaukti"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Nustatyti laiką"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Nustatyti datą"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Nustatyti"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Numatytasis"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Nereikia leidimų"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 0ed8186..dbe7180 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -126,7 +126,7 @@
     <string name="contentServiceSync" msgid="8353523060269335667">"Sinhronizācija"</string>
     <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"Sinhronizācija"</string>
     <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"Pārāk daudz <xliff:g id="CONTENT_TYPE">%s</xliff:g> dzēsto vienumu."</string>
-    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Planšetdatora krātuve ir pilna. Dzēsiet dažus failus, lai atbrīvotu vietu."</string>
+    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Planšetdatora atmiņa ir pilna. Dzēsiet dažus failus, lai atbrīvotu vietu."</string>
     <string name="low_memory" product="default" msgid="6632412458436461203">"tālruņa krātuve ir pilna! Dzēsiet dažus failus, lai atbrīvotu vietu."</string>
     <string name="me" msgid="6545696007631404292">"Man"</string>
     <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Planšetdatora opcijas"</string>
@@ -277,7 +277,7 @@
     <string name="permlab_installPackages" msgid="335800214119051089">"tieši instalēt lietojumprogrammas"</string>
     <string name="permdesc_installPackages" msgid="526669220850066132">"Ļauj lietojumprogrammai instalēt jaunas vai atjauninātas Android pakotnes. Ļaunprātīgas lietojumprogrammas var to izmantot, lai pievienotu jaunas lietojumprogrammas ar nejauši jaudīgām atļaujām."</string>
     <string name="permlab_clearAppCache" msgid="4747698311163766540">"dzēst visus lietojumprogrammas kešatmiņas datus"</string>
-    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Ļauj lietojumprogrammai atbrīvot vietu planšetdatora krātuvē, dzēšot failus lietojumprogrammas kešatmiņas katalogā. Piekļuve parasti ir pieejama tikai sistēmas procesā."</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Ļauj lietojumprogrammai atbrīvot vietu planšetdatora atmiņā, dzēšot failus lietojumprogrammas kešatmiņas katalogā. Piekļuve parasti ir pieejama tikai sistēmas procesā."</string>
     <string name="permdesc_clearAppCache" product="default" msgid="7740465694193671402">"Ļauj lietojumprogrammai atbrīvot vietu tālruņa krātuvē, dzēšot failus lietojumprogrammas kešatmiņas katalogā. Piekļuve parasti ir pieejama tikai sistēmas procesam."</string>
     <string name="permlab_movePackage" msgid="728454979946503926">"Pārvietot lietojumprogrammas resursus"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"Ļauj lietojumprogrammai pārvietot lietojumprogrammas resursus no iekšējā datu nesēja uz ārējo un otrādi."</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Vai doties prom no šīs lapas?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Atlasiet Labi, lai turpinātu, vai Atcelt, lai paliktu pašreizējā lapā."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Apstiprināt"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Padoms: divreiz pieskarieties, lai tuvinātu un tālinātu."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Aut. aizp."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Iest. aut. aizp."</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -841,7 +840,7 @@
     <string name="inputMethod" msgid="1653630062304567879">"Ievades metode"</string>
     <!-- outdated translation 1672989176958581452 -->     <string name="editTextMenuTitle" msgid="4909135564941815494">"Rediģēt tekstu"</string>
     <string name="low_internal_storage_view_title" msgid="1399732408701697546">"Maz brīvas vietas"</string>
-    <string name="low_internal_storage_view_text" product="tablet" msgid="4231085657068852042">"Planšetdatora krātuve ir gandrīz pilna."</string>
+    <string name="low_internal_storage_view_text" product="tablet" msgid="4231085657068852042">"Planšetdatora atmiņa ir gandrīz pilna."</string>
     <string name="low_internal_storage_view_text" product="default" msgid="635106544616378836">"Tālruņa krātuvē kļūst maz vietas."</string>
     <string name="ok" msgid="5970060430562524910">"Labi"</string>
     <string name="cancel" msgid="6442560571259935130">"Atcelt"</string>
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"Labi"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Atcelt"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Laika iestatīšana"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Datuma iestatīšana"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Iestatīt"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Noklusējums"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Atļaujas nav nepieciešamas."</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 47676b7..21a977d 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Naviger bort fra denne siden?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Velg OK for å fortsette, eller Avbryt for å forbli på denne siden."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Bekreft"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Dobbelttrykk for å zoome inn og ut."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Fyll ut dette skjemaet automatisk"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Autofyll"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Konfig. autofyll"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Avbryt"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Stille klokken"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Angi dato"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Lagre"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Standard"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Trenger ingen rettigheter"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Eksternt medium har ukjent tilstand."</string>
     <string name="share" msgid="1778686618230011964">"Del"</string>
     <string name="find" msgid="4808270900322985960">"Finn"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 12f23b6..be59831 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Wilt u deze pagina verlaten?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Kies OK om door te gaan of Annuleren om op de huidige pagina te blijven."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Bevestigen"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Tip: tik tweemaal om in of uit te zoomen."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Dit formulier automatisch aanvullen"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"AutoFill"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Aut. aanv. inst."</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Annuleren"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Tijd instellen"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Datum instellen"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Instellen"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Standaard"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Geen machtigingen vereist"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Extern medium heeft onbekende status."</string>
     <string name="share" msgid="1778686618230011964">"Delen"</string>
     <string name="find" msgid="4808270900322985960">"Vinden"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 4ceff35..567ef08 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -284,8 +284,8 @@
     <string name="permlab_diagnostic" msgid="8076743953908000342">"czytanie/zapisywanie w zasobach należących do diagnostyki"</string>
     <string name="permdesc_diagnostic" msgid="3121238373951637049">"Pozwala aplikacji na czytanie i zapisywanie we wszystkich zasobach posiadanych przez diagnozowaną grupę, jak na przykład pliki w katalogu /dev. Może to potencjalnie wpłynąć na stabilność i bezpieczeństwo systemu. Powinno być wykorzystywane TYLKO w celach diagnozowania sprzętu przez producenta lub operatora."</string>
     <string name="permlab_changeComponentState" msgid="79425198834329406">"włączanie lub wyłączanie składników aplikacji"</string>
-    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"Zezwala aplikacji na zmianę ustawienia określającego, czy składnik innej aplikacji ma być włączony. Złośliwe aplikacje mogą wykorzystać tę możliwość w celu wyłączenia ważnych funkcji tabletu. W przypadku tego uprawnienia należy zachować ostrożność, ponieważ składniki aplikacji mogą znaleźć się w bezużytecznym, niezgodnym lub niestabilnym stanie."</string>
-    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"Zezwala aplikacji na zmianę ustawienia określającego, czy składnik innej aplikacji ma być włączony. Złośliwe aplikacje mogą wykorzystać tę możliwość w celu wyłączenia ważnych funkcji tabletu. W przypadku tego uprawnienia należy zachować ostrożność, ponieważ składniki aplikacji mogą znaleźć się w bezużytecznym, niezgodnym lub niestabilnym stanie."</string>
+    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"Zezwala aplikacji na zmianę ustawienia określającego, czy składnik innej aplikacji ma być włączony. Złośliwe aplikacje mogą wykorzystać tę możliwość w celu wyłączenia ważnych funkcji tabletu. W przypadku tego uprawnienia należy zachować ostrożność, ponieważ składniki aplikacji mogą znaleźć się w stanie, w którym będą one bezużyteczne, niezgodne lub niestabilne."</string>
+    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"Zezwala aplikacji na zmianę ustawienia określającego, czy składnik innej aplikacji ma być włączony. Złośliwe aplikacje mogą wykorzystać tę możliwość w celu wyłączenia ważnych funkcji tabletu. W przypadku tego uprawnienia należy zachować ostrożność, ponieważ składniki aplikacji mogą znaleźć się w stanie, w którym będą one bezużyteczne, niezgodne lub niestabilne."</string>
     <string name="permlab_setPreferredApplications" msgid="3393305202145172005">"ustawianie preferowanych aplikacji"</string>
     <string name="permdesc_setPreferredApplications" msgid="760008293501937546">"Umożliwia aplikacji zmianę preferowanych programów użytkownika. Może to pozwolić szkodliwym aplikacjom na niezauważalną podmianę uruchamianych programów, aby zbierać prywatne dane użytkownika."</string>
     <string name="permlab_writeSettings" msgid="1365523497395143704">"modyfikowanie ogólnych ustawień systemu"</string>
@@ -380,9 +380,9 @@
     <string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Pozwala aplikacji na kontrolowanie funkcji telefonu w urządzeniu. Aplikacja z tymi uprawnieniami może zmieniać, włączać i wyłączać sieci bezprzewodowe itp. bez informowania użytkownika."</string>
     <string name="permlab_readPhoneState" msgid="2326172951448691631">"odczytywanie stanu i informacji o telefonie"</string>
     <string name="permdesc_readPhoneState" msgid="188877305147626781">"Umożliwia aplikacji dostęp do funkcji telefonu w tym urządzeniu. Aplikacja z takim pozwoleniem może określić numer telefonu i numer seryjny tego telefonu, czy aktywne jest połączenie, numer, z którym nawiązane jest połączenie itp."</string>
-    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"zapobieganie przejściu tabletu do trybu uśpienia"</string>
+    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"zapobieganie przechodzeniu tabletu do trybu uśpienia"</string>
     <string name="permlab_wakeLock" product="default" msgid="573480187941496130">"zapobieganie przejściu telefonu w stan uśpienia"</string>
-    <string name="permdesc_wakeLock" product="tablet" msgid="4032181488045338551">"Zezwala aplikacji na zapobieganie przejściu tabletu do trybu uśpienia."</string>
+    <string name="permdesc_wakeLock" product="tablet" msgid="4032181488045338551">"Zezwala aplikacji na zapobieganie przechodzeniu tabletu do trybu uśpienia."</string>
     <string name="permdesc_wakeLock" product="default" msgid="7584036471227467099">"Pozwala aplikacji na zapobieganie przejściu telefonu w stan uśpienia."</string>
     <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"włączenie lub wyłączenie tabletu"</string>
     <string name="permlab_devicePower" product="default" msgid="4928622470980943206">"włączanie lub wyłączanie telefonu"</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Czy opuścić tę stronę?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Wybierz opcję OK, aby kontynuować, lub opcję Anuluj, aby pozostać na tej stronie."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Potwierdź"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Wskazówka: dotknij dwukrotnie, aby powiększyć lub pomniejszyć."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Wypełnij ten formularz automatycznie"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Autouzupełnianie"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Konfiguruj autouzupełnianie"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Anuluj"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Ustaw godzinę"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Ustaw datę"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Ustaw"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Domyślne"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Nie są wymagane żadne uprawnienia"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Nośnik zewnętrzny jest w nieznanym stanie."</string>
     <string name="share" msgid="1778686618230011964">"Udostępnij"</string>
     <string name="find" msgid="4808270900322985960">"Znajdź"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 620cf53..5756e96 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Navegar para outra página?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Seleccione OK para continuar ou Cancelar para permanecer na página actual."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Sugestão: toque duas vezes para aumentar ou diminuir o zoom."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Preenchimento automático deste formulário"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Pr. aut."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Conf preench aut"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Cancelar"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Definir hora"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Definir data"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Definir"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Predefinido"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Não são necessárias permissões"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Suporte de dados externo em estado desconhecido."</string>
     <string name="share" msgid="1778686618230011964">"Partilhar"</string>
     <string name="find" msgid="4808270900322985960">"Localizar"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 94a028d..fa4d6aa 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -295,7 +295,7 @@
     <string name="permlab_writeGservices" msgid="2149426664226152185">"modificar o mapa de serviços do Google"</string>
     <string name="permdesc_writeGservices" msgid="6602362746516676175">"Permite que um aplicativo modifique o mapa de serviços do Google. Não deve ser usado por aplicativos normais."</string>
     <string name="permlab_receiveBootCompleted" msgid="7776779842866993377">"iniciar automaticamente na inicialização"</string>
-    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Permite que um aplicativo inicie assim que o sistema conclui a inicialização. Isso pode retardar a inicialização do tablet e permitir que o aplicativo deixe o tablet mais lento por estar sempre em execução."</string>
+    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Permite que um aplicativo inicie assim que o sistema concluir a inicialização. Isso pode retardar a inicialização do tablet e permitir que o aplicativo deixe o tablet mais lento por estar sempre em execução."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="698336728415008796">"Permite que um aplicativo inicie assim que o sistema conclui a inicialização. Isso pode retardar a inicialização do telefone e permitir que o aplicativo deixe o telefone mais lento por estar sempre em execução."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"enviar transmissão persistente"</string>
     <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Permite que um aplicativo envie uma transmissão persistente, que permanece após o término da transmissão. Aplicativos maliciosos podem tornar o tablet lento ou instável fazendo com que ele use muita memória."</string>
@@ -630,7 +630,7 @@
     <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="3514742106066877476">"Você desenhou incorretamente o seu padrão de desbloqueio <xliff:g id="NUMBER_0">%d</xliff:g> vezes. "\n\n"Tente novamente em <xliff:g id="NUMBER_1">%d</xliff:g> segundos."</string>
     <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="4906034376425175381">"Você inseriu incorretamente a sua senha <xliff:g id="NUMBER_0">%d</xliff:g> vezes. "\n\n"Tente novamente em <xliff:g id="NUMBER_1">%d</xliff:g> segundos."</string>
     <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6827749231465145590">"Você digitou incorretamente o seu PIN <xliff:g id="NUMBER_0">%d</xliff:g> vezes. "\n\n"Tente novamente em <xliff:g id="NUMBER_1">%d</xliff:g> segundos."</string>
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Você desenhou seu padrão de desbloqueio incorretamente <xliff:g id="NUMBER_0">%d</xliff:g> vezes. Mais <xliff:g id="NUMBER_1">%d</xliff:g> tentativas incorretas e você receberá uma solicitação para desbloquear seu tablet usando seu login do Google."\n\n" Tente novamente em <xliff:g id="NUMBER_2">%d</xliff:g> segundos."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Você desenhou <xliff:g id="NUMBER_0">%d</xliff:g> vezes seu padrão de desbloqueio de maneira incorreta. Mais <xliff:g id="NUMBER_1">%d</xliff:g> tentativas incorretas e você receberá uma solicitação para desbloquear seu tablet usando seu login do Google."\n\n" Tente novamente em <xliff:g id="NUMBER_2">%d</xliff:g> segundos."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="3351013842320127827">"Você desenhou o seu padrão de desbloqueio incorretamente <xliff:g id="NUMBER_0">%d</xliff:g> vezes. Mais <xliff:g id="NUMBER_1">%d</xliff:g> tentativas incorretas e você receberá uma solicitação para desbloquear o seu telefone usando o seu login do Google."\n\n" Tente novamente em <xliff:g id="NUMBER_2">%d</xliff:g> segundos."</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Tente novamente em <xliff:g id="NUMBER">%d</xliff:g> segundos."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Esqueceu o padrão?"</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Deseja sair desta página?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Selecione OK para continuar ou Cancelar para permanecer na página atual."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Dica: toque duas vezes para aumentar e diminuir o zoom."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Preencher automaticamente este formulário"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Preenchimento automático"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Conf preen autom"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Cancelar"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Definir hora"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Definir data"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Definir"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Padrão"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Nenhuma permissão necessária"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Mídia externa em estado desconhecido."</string>
     <string name="share" msgid="1778686618230011964">"Compartilhar"</string>
     <string name="find" msgid="4808270900322985960">"Localizar"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml
index f49f20a..679e2ee 100644
--- a/core/res/res/values-rm/strings.xml
+++ b/core/res/res/values-rm/strings.xml
@@ -1055,6 +1055,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 38d804d..19e300f 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -277,7 +277,7 @@
     <string name="permlab_installPackages" msgid="335800214119051089">"instalare directă a aplicaţiilor"</string>
     <string name="permdesc_installPackages" msgid="526669220850066132">"Permite unei aplicaţii să instaleze pachete Android noi sau actualizate. Aplicaţiile rău-intenţionate ar putea să utilizeze această permisiune pentru a adăuga aplicaţii noi cu permisiuni puternice alese la întâmplare."</string>
     <string name="permlab_clearAppCache" msgid="4747698311163766540">"ştergere integrală date din cache ale aplicaţiei"</string>
-    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Permite unei aplicaţii să elibereze stocare de pe tabletă, prin ştergerea fişierelor din directorul cache al aplicaţiei. De regulă, accesul este strict restricţionat la procesul de sistem."</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"Permite unei aplicaţii să elibereze spaţiu de stocare pe tabletă, prin ştergerea fişierelor din directorul cache al aplicaţiei. De regulă, accesul este strict restricţionat la procesul de sistem."</string>
     <string name="permdesc_clearAppCache" product="default" msgid="7740465694193671402">"Permite unei aplicaţii să stocheze gratuit pe telefon, prin ştergerea fişierelor din directorul cache al aplicaţiei. De regulă, accesul este strict restricţionat la procesul de sistem."</string>
     <string name="permlab_movePackage" msgid="728454979946503926">"mutare resurse aplicaţie"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"Permite unei aplicaţii să mute resursele aplicaţiei de pe suporturile fizice interne pe cele externe şi invers."</string>
@@ -304,10 +304,10 @@
     <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Permite unei aplicaţii să trimită mesaje difuzate persistente, care rămân după terminarea mesajului difuzat. Aplicaţiile rău-intenţionate ar putea să încetinească sau să destabilizeze tableta, determinând-o să utilizeze prea multă memorie."</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="1920045289234052219">"Permite unei aplicaţii să trimită mesaje difuzate persistente, care rămân după terminarea mesajului difuzat. Aplicaţiile rău-intenţionate ar putea să încetinească sau să destabilizeze telefonul, determinându-l să utilizeze prea multă memorie."</string>
     <string name="permlab_readContacts" msgid="6219652189510218240">"citire date de contact"</string>
-    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Permite unei aplicaţii să citească toate datele de contact (adrese) stocate pe tabletă. Aplicaţiile rău-intenţionate ar putea să utilizeze această permisiune pentru a trimite datele dvs. către alte persoane."</string>
+    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Permite unei aplicaţii să citească toate datele din agendă (adrese) stocate pe tabletă. Aplicaţiile rău-intenţionate ar putea să utilizeze această permisiune pentru a trimite datele din agenda dvs. către alte persoane."</string>
     <string name="permdesc_readContacts" product="default" msgid="3371591512896545975">"Permite unei aplicaţii să citească toate datele de contact (adrese) stocate pe telefon. Aplicaţiile rău-intenţionate ar putea să utilizeze această permisiune pentru a trimite datele dvs. către alte persoane."</string>
     <string name="permlab_writeContacts" msgid="644616215860933284">"scriere date de contact"</string>
-    <string name="permdesc_writeContacts" product="tablet" msgid="7782689510038568495">"Permite unei aplicaţii să modifice datele de contact (adresele) stocate pe tabletă. Aplicaţiile rău-intenţionate ar putea să utilizeze această permisiune pentru a şterge sau a modifica datele dvs. de contact."</string>
+    <string name="permdesc_writeContacts" product="tablet" msgid="7782689510038568495">"Permite unei aplicaţii să modifice datele din agendă (adresele) stocate pe tabletă. Aplicaţiile rău-intenţionate ar putea să utilizeze această permisiune pentru a şterge sau a modifica datele din agenda dvs."</string>
     <string name="permdesc_writeContacts" product="default" msgid="3924383579108183601">"Permite unei aplicaţii să modifice datele de contact (adresele) stocate pe telefon. Aplicaţiile rău-intenţionate ar putea să utilizeze această permisiune pentru a şterge sau a modifica datele dvs. de contact."</string>
     <string name="permlab_readCalendar" msgid="6898987798303840534">"citire evenimente din calendar"</string>
     <string name="permdesc_readCalendar" product="tablet" msgid="5905870265734599678">"Permite unei aplicaţii să citească toate evenimentele din calendar stocate pe tabletă. Aplicaţiile rău-intenţionate ar putea să utilizeze această permisiune pentru a trimite evenimentele din calendar către alte persoane."</string>
@@ -336,7 +336,7 @@
     <string name="permdesc_recordAudio" msgid="6493228261176552356">"Permite aplicaţiei să acceseze calea către înregistrarea audio."</string>
     <!-- outdated translation 8059288807274039014 -->     <string name="permlab_camera" msgid="3616391919559751192">"fotografiere"</string>
     <!-- outdated translation 9013476258810982546 -->     <string name="permdesc_camera" msgid="6004878235852154239">"Permite unei aplicaţii să facă fotografii cu ajutorul camerei foto. Astfel i se permite aplicaţiei să colecteze oricând imaginile văzute de camera foto."</string>
-    <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"dezactivare permanentă tabletă"</string>
+    <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"dezactivare definitivă tabletă"</string>
     <string name="permlab_brick" product="default" msgid="8337817093326370537">"dezactivare permanentă a telefonului"</string>
     <string name="permdesc_brick" product="tablet" msgid="7379164636920817963">"Permite aplicaţiei să dezactiveze definitiv întreaga tabletă. Acest lucru este foarte periculos."</string>
     <string name="permdesc_brick" product="default" msgid="5569526552607599221">"Permite aplicaţiei să dezactiveze definitiv întregul telefon. Acest lucru este foarte periculos."</string>
@@ -394,7 +394,7 @@
     <string name="permdesc_devicePower" product="tablet" msgid="3853773100100451905">"Permite aplicaţiei să activeze sau să dezactiveze tableta."</string>
     <string name="permdesc_devicePower" product="default" msgid="4577331933252444818">"Permite aplicaţiei să activeze sau să dezactiveze telefonul."</string>
     <string name="permlab_factoryTest" msgid="3715225492696416187">"rulare în mod test de fabrică"</string>
-    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Rulează ca testare de nivel redus al producătorului, permiţând accesul complet la hardware-ul tabletei. Permisiune disponibilă doar când tableta rulează în modul de testare a producătorului."</string>
+    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Rulează ca testare de producător la nivel redus, permiţând accesul complet la hardware-ul tabletei. Permisiune disponibilă doar când tableta rulează în modul de testare de producător."</string>
     <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Rulează ca testare de nivel redus al producătorului, permiţând accesul complet la hardware-ul telefonului. Permisiune disponibilă doar când telefonul rulează în modul de testare a producător."</string>
     <string name="permlab_setWallpaper" msgid="6627192333373465143">"setare imagine de fundal"</string>
     <string name="permdesc_setWallpaper" msgid="6417041752170585837">"Permite aplicaţiei să seteze imaginea de fundal a sistemului."</string>
@@ -667,7 +667,7 @@
     <skip />
     <!-- no translation found for lockscreen_too_many_failed_pin_attempts_dialog_message (6827749231465145590) -->
     <skip />
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Aţi desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%d</xliff:g> (de) ori. După alte <xliff:g id="NUMBER_1">%d</xliff:g> încercări nereuşite, vi se va solicita să deblocaţi tableta cu ajutorul datelor de conectare la Google."\n\n"Încercaţi din nou peste <xliff:g id="NUMBER_2">%d</xliff:g> (de) secunde."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Aţi desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%d</xliff:g> ori. După alte <xliff:g id="NUMBER_1">%d</xliff:g> încercări nereuşite, vi se va solicita să deblocaţi tableta cu ajutorul datelor de conectare la Google."\n\n"Încercaţi din nou peste <xliff:g id="NUMBER_2">%d</xliff:g> (de) secunde."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="3351013842320127827">"Aţi desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%d</xliff:g> de ori. După <xliff:g id="NUMBER_1">%d</xliff:g> încercări nereuşite, vi se va solicita să deblocaţi telefonul cu ajutorul datelor de conectare la Google."\n\n" Încercaţi din nou în <xliff:g id="NUMBER_2">%d</xliff:g> (de) secunde."</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Încercaţi din nou peste <xliff:g id="NUMBER">%d</xliff:g> (de) secunde."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Aţi uitat modelul?"</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Doriţi să părăsiţi această pagini?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Selectaţi OK pentru a continua sau Anulaţi pentru a rămâne pe pagina curentă."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Confirmaţi"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Sfat: apăsaţi de două ori pentru a mări şi a micşora."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Com.aut."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Complet. autom."</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Anulaţi"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Setaţi ora"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Setaţi data"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Setaţi"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Prestabilit"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Nu se solicită nicio permisiune"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index abdfb6f..dcf2e7a 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -193,10 +193,10 @@
     <string name="permlab_sendSms" msgid="5600830612147671529">"отправлять SMS-сообщения"</string>
     <string name="permdesc_sendSms" msgid="1946540351763502120">"Позволяет приложению отправлять SMS-сообщения. Вредоносные приложения могут отправлять сообщения без уведомления, что приведет к непредвиденным расходам."</string>
     <string name="permlab_readSms" msgid="4085333708122372256">"считывать SMS или MMS"</string>
-    <string name="permdesc_readSms" product="tablet" msgid="5836710350295631545">"Позволяет приложению считывать SMS-сообщения, сохраненные на планшетном ПК или SIM-карте. Вредоносные приложения могут считывать конфиденциальные сообщения."</string>
+    <string name="permdesc_readSms" product="tablet" msgid="5836710350295631545">"Позволяет приложению считывать SMS-сообщения, сохраненные на планшетном ПК или на SIM-карте. Вредоносные приложения могут считывать конфиденциальные сообщения."</string>
     <string name="permdesc_readSms" product="default" msgid="3002170087197294591">"Позволяет приложению считывать SMS-сообщения, сохраненные на телефоне или SIM-карте. Вредоносные приложения могут считывать конфиденциальные сообщения."</string>
     <string name="permlab_writeSms" msgid="6881122575154940744">"изменять SMS или MMS"</string>
-    <string name="permdesc_writeSms" product="tablet" msgid="5332124772918835437">"Позволяет приложению перезаписывать SMS-сообщения, сохраненные на планшетном ПК или SIM-карте. Вредоносные приложения могут удалить сообщения."</string>
+    <string name="permdesc_writeSms" product="tablet" msgid="5332124772918835437">"Позволяет приложению перезаписывать SMS-сообщения, сохраненные на планшетном ПК или на SIM-карте. Вредоносные приложения могут удалить сообщения."</string>
     <string name="permdesc_writeSms" product="default" msgid="6299398896177548095">"Позволяет приложению перезаписывать SMS-сообщения, сохраненные на телефоне или SIM-карте. Вредоносные приложения могут удалить сообщения."</string>
     <string name="permlab_receiveWapPush" msgid="8258226427716551388">"получать WAP"</string>
     <string name="permdesc_receiveWapPush" msgid="5979623826128082171">"Позволяет приложению получать и обрабатывать WAP-сообщения. Вредоносные приложения могут отслеживать ваши сообщения или удалять их, не показывая вам."</string>
@@ -223,7 +223,7 @@
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"запретить переключение приложений"</string>
     <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Запрещает пользователям переключаться между приложениями."</string>
     <string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"отслеживать и управлять запуском всех приложений"</string>
-    <string name="permdesc_runSetActivityWatcher" msgid="2149363027173451218">"Позволяет приложению отслеживать и управлять способом запуска процессов. Вредоносные приложения могут поставить под угрозу безопасность системы. Это разрешение необходимо только при разработке, но не при обычной работе."</string>
+    <string name="permdesc_runSetActivityWatcher" msgid="2149363027173451218">"Позволяет приложению отслеживать и управлять способом запуска процессов. Вредоносные приложения могут поставить под угрозу безопасность системы. Такое разрешение необходимо только при разработке, но не при обычной работе."</string>
     <string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"отправлять рассылку об удалении пакета"</string>
     <string name="permdesc_broadcastPackageRemoved" msgid="3453286591439891260">"Позволяет приложению выполнять рассылку уведомлений об удалении пакета приложения. Вредоносные приложения могут использовать эту возможность для остановки всех остальных выполняющихся приложений."</string>
     <string name="permlab_broadcastSmsReceived" msgid="5689095009030336593">"отправлять рассылку уведомлений о получении SMS"</string>
@@ -241,7 +241,7 @@
     <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"показывать неавторизованные окна"</string>
     <string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"Разрешает создание окон, предназначенных для использования внутренним пользовательским интерфейсом системы. Не предназначено для использования обычными приложениями."</string>
     <string name="permlab_systemAlertWindow" msgid="3372321942941168324">"показывать оповещения системного уровня"</string>
-    <string name="permdesc_systemAlertWindow" msgid="2884149573672821318">"Позволяет приложению отображать окна предупреждений системы. Вредоносные приложения смогут получить контроль над всем экраном планшетного ПК."</string>
+    <string name="permdesc_systemAlertWindow" msgid="2884149573672821318">"Позволяет приложению отображать окна системных предупреждений. Вредоносные приложения смогут получить контроль над всем экраном планшетного ПК."</string>
     <string name="permlab_setAnimationScale" msgid="2805103241153907174">"изменять глобальную скорость анимации"</string>
     <string name="permdesc_setAnimationScale" msgid="7181522138912391988">"Позволяет приложению в любое время изменять общую скорость анимации (ускоренная или замедленная анимация)."</string>
     <string name="permlab_manageAppTokens" msgid="17124341698093865">"управлять маркерами приложений"</string>
@@ -279,7 +279,7 @@
     <string name="permlab_movePackage" msgid="728454979946503926">"Перемещать ресурсы приложения"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"Позволяет приложению перемещать ресурсы приложения с внутренних на внешние носители и наоборот."</string>
     <string name="permlab_readLogs" msgid="6615778543198967614">"считывать конфиденциальные данные журнала"</string>
-    <string name="permdesc_readLogs" product="tablet" msgid="4077356893924755294">"Позволяет приложению считывать информацию из различных журналов системы. Приложение может получать сведения о работе пользователя с планшетным ПК, которые могут содержать личную или конфиденциальную информацию."</string>
+    <string name="permdesc_readLogs" product="tablet" msgid="4077356893924755294">"Позволяет приложению считывать информацию из различных файлов журналов системы. Приложение может получать сведения о работе пользователя на планшетном ПК, которые могут содержать личную или конфиденциальную информацию."</string>
     <string name="permdesc_readLogs" product="default" msgid="8896449437464867766">"Позволяет приложению считывать информацию из различных журналов системы. Приложение может получать сведения о работе пользователя с телефоном, которые могут содержать личную или конфиденциальную информацию."</string>
     <string name="permlab_diagnostic" msgid="8076743953908000342">"считывать/записывать данные в ресурсы, принадлежащие группе диагностики"</string>
     <string name="permdesc_diagnostic" msgid="3121238373951637049">"Позволяет приложению считывать и записывать данные в любые ресурсы, принадлежащие группе диагностики (например, файлы в каталоге /dev). Это может повлиять на стабильность и безопасность системы. Эта возможность может быть использована ТОЛЬКО производителем или оператором для диагностики аппаратного обеспечения."</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Перейти с этой страницы?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Нажмите \"ОК\", чтобы продолжить, или \"Отмена\", чтобы остаться на текущей странице."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Подтвердите"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Совет: нажмите дважды, чтобы увеличить и уменьшить масштаб."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Заполнить форму автоматически"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Автозап."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Нужна настройка"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"ОК"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Отмена"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Настройка времени"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Настройка даты"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Установить"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"По умолчанию"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Не требуется разрешений"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Неизвестно состояние внешнего носителя."</string>
     <string name="share" msgid="1778686618230011964">"Отправить"</string>
     <string name="find" msgid="4808270900322985960">"Найти"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index b6b9be0..1d5a276 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Chcete opustiť túto stránku?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Ak chcete pokračovať, vyberte OK. Ak chcete zostať na stránke, vyberte Zrušiť."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Potvrdiť"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Tip: Dvojitým klepnutím môžete zobrazenie priblížiť alebo oddialiť."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Aut. dop."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Nast. Auto. dopĺň."</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Zrušiť"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Nastaviť čas"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Nastaviť dátum"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Nastaviť"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Predvolené"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Nevyžadujú sa žiadne oprávnenia."</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 6821dc4..43993d4 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Ali se želite premakniti s te strani?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Če želite nadaljevati, izberite V redu, če želite ostati na trenutni strani, izberite Prekliči."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Potrdi"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Namig: tapnite dvakrat, če želite povečati ali pomanjšati."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Samodejno izpolnjevanje"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Nam. sam. izpoln."</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"V redu"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Prekliči"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Nastavi uro"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Nastavi datum"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Nastavi"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Privzeto"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Ni zahtevanih dovoljenj"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 8b875d9..6eaf100 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -338,7 +338,7 @@
     <!-- outdated translation 9013476258810982546 -->     <string name="permdesc_camera" msgid="6004878235852154239">"Омогућава да апликација снима фотографије помоћу камере. То омогућава да апликација у сваком тренутку прикупља слике које су у кадру."</string>
     <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"трајно онемогућавање таблета"</string>
     <string name="permlab_brick" product="default" msgid="8337817093326370537">"трајно онемогућавање телефона"</string>
-    <string name="permdesc_brick" product="tablet" msgid="7379164636920817963">"Омогућава да апликација трајно онемогући цео таблет. То је веома опасно."</string>
+    <string name="permdesc_brick" product="tablet" msgid="7379164636920817963">"Омогућава да апликација трајно онемогући цео таблет. Ово је веома опасно."</string>
     <string name="permdesc_brick" product="default" msgid="5569526552607599221">"Омогућава да апликација трајно онемогући цео телефон. То је веома опасно."</string>
     <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"принудно поновно покретање таблета"</string>
     <string name="permlab_reboot" product="default" msgid="2898560872462638242">"принудно поновно покретање телефона"</string>
@@ -667,7 +667,7 @@
     <skip />
     <!-- no translation found for lockscreen_too_many_failed_pin_attempts_dialog_message (6827749231465145590) -->
     <skip />
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"<xliff:g id="NUMBER_0">%d</xliff:g> пута сте нетачно унели шаблон за откључавање. Након још "\n" неуспешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу података за пријављивање на Google.<xliff:g id="NUMBER_2">%d</xliff:g><xliff:g id="NUMBER_1">%d</xliff:g>Покушајте поново за "\n" секунде(и)."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"<xliff:g id="NUMBER_0">%d</xliff:g> пута сте нетачно унели шаблон за откључавање. Након још "\n" неуспешна покушаја, од вас ће бити затражено да откључате таблет помоћу података за пријављивање на Google.<xliff:g id="NUMBER_2">%d</xliff:g><xliff:g id="NUMBER_1">%d</xliff:g>Покушајте поново за "\n" секунде(и)."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="3351013842320127827">"<xliff:g id="NUMBER_0">%d</xliff:g> пута сте нетачно унели шаблон за откључавање. Након још <xliff:g id="NUMBER_1">%d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу података за пријављивање на Google."\n\n" Покушајте поново за <xliff:g id="NUMBER_2">%d</xliff:g> секунде(и)."</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Покушајте поново за <xliff:g id="NUMBER">%d</xliff:g> секунде(и)."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Заборавили сте шаблон?"</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Желите ли да напустите ову страницу?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Изаберите „Потврди“ ако желите да наставите или „Откажи“ да бисте остали на страници на којој сте тренутно."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Потврда"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Савет: Додирните двапут да бисте увећали и умањили приказ."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Аут. поп."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Подеси аут. поп."</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"Потврди"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Откажи"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Подешавање времена"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Подеси датум"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Подеси"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Подразумевано"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Није потребна ниједна дозвола"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index ec94494..fb00acf 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -321,7 +321,7 @@
     <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"Få åtkomst till detaljerade platser som GPS på pekdatorn, om det är tillgängligt. Skadliga program kan använda detta för att avgöra var du befinner dig, vilket drar mycket batteri."</string>
     <string name="permdesc_accessFineLocation" product="default" msgid="7411213317434337331">"Få åtkomst till detaljerade platskällor som Global Positioning System på telefonen, om det är tillgängligt. Skadliga program kan använda detta för att identifiera var du befinner dig, vilket drar mycket batteri."</string>
     <string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"grov (nätverksbaserad) plats"</string>
-    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Få åtkomst till grova platser, till exempel mobilnätverkets databas, för att bestämma ungefärlig plats för en pekdator. Skadliga program kan använda detta för att avgöra ungefär var du befinner dig."</string>
+    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Få åtkomst till grova platsdata, till exempel mobilnätverkets databas, för att bestämma ungefärlig plats för en pekdator. Skadliga program kan använda detta för att avgöra ungefär var du befinner dig."</string>
     <string name="permdesc_accessCoarseLocation" product="default" msgid="8235655958070862293">"Få åtkomst till grova platser, till exempel mobilnätverkets databas, för att bestämma ungefärlig plats för en telefon. Skadliga program kan använda detta för att avgöra ungefär var du befinner dig."</string>
     <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"få åtkomst till SurfaceFlinger"</string>
     <string name="permdesc_accessSurfaceFlinger" msgid="6805241830020733025">"Tillåter att program använder lågnivåfunktioner i SurfaceFlinger."</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Vill du lämna den här den här sidan?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Tryck på OK om du vill fortsätta eller på Avbryt om du vill vara kvar på den aktuella sidan."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Bekräfta"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Tips! Dubbelklicka om du vill zooma in eller ut."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Autofyll formuläret"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"Autofyll"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Konfig. Autofyll"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Avbryt"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Ange tid"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Ange datum"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Ställ in"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Standardinställning"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Inga behörigheter krävs"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Externa media i okänt tillstånd."</string>
     <string name="share" msgid="1778686618230011964">"Dela"</string>
     <string name="find" msgid="4808270900322985960">"Sök efter"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 3a86c2a..4a7a632 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -667,7 +667,7 @@
     <skip />
     <!-- no translation found for lockscreen_too_many_failed_pin_attempts_dialog_message (6827749231465145590) -->
     <skip />
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"คุณวาดรูปแบบการปลดล็อกไม่ถูกต้อง <xliff:g id="NUMBER_0">%d</xliff:g> ครั้ง หากทำไม่สำเร็จอีก <xliff:g id="NUMBER_1">%d</xliff:g> ครั้ง ระบบจะขอให้คุณปลดล็อกแท็บเล็ตโดยใช้การลงชื่อเข้าใช้ "\n\n" โปรดลองอีกครั้งในอีก <xliff:g id="NUMBER_2">%d</xliff:g> วินาที"</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"คุณวาดรูปแบบการปลดล็อกไม่ถูกต้อง <xliff:g id="NUMBER_0">%d</xliff:g> ครั้ง หากทำไม่สำเร็จอีก <xliff:g id="NUMBER_1">%d</xliff:g> ครั้ง ระบบจะขอให้คุณปลดล็อกแท็บเล็ตโดยใช้การลงชื่อเข้าใช้ Google "\n\n" โปรดลองอีกครั้งในอีก <xliff:g id="NUMBER_2">%d</xliff:g> วินาที"</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="3351013842320127827">"คุณวาดรูปแบบการปลดล็อกไม่ถูกต้อง <xliff:g id="NUMBER_0">%d</xliff:g> ครั้งหากทำไม่สำเร็จอีก <xliff:g id="NUMBER_1">%d</xliff:g> ครั้ง ระบบจะขอให้คุณปลดล็อกโทรศัพท์โดยใช้การลงชื่อเข้าใช้ Google"\n\n"โปรดลองอีกครั้งในอีก <xliff:g id="NUMBER_2">%d</xliff:g> วินาที"</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"ลองใหม่อีกครั้งใน <xliff:g id="NUMBER">%d</xliff:g> วินาที"</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"ลืมรูปแบบหรือ"</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"ไปจากหน้าเว็บนี้หรือไม่"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"เลือก ตกลง เพื่อทำต่อ หรือ ยกเลิก เพื่ออยู่ที่หน้าปัจจุบัน"</string>
     <string name="save_password_label" msgid="6860261758665825069">"ยืนยัน"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"เคล็ดลับ: แตะสองครั้งเพื่อขยายและย่อ"</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"ป้อนอัตโนมัติ"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"ตั้งค่าการป้อนอัตโนมัติ"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"ตกลง"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"ยกเลิก"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"ตั้งเวลา"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"ตั้งวันที่"</string>
     <string name="date_time_set" msgid="5777075614321087758">"ตั้งค่า"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"เริ่มต้น"</string>
     <string name="no_permissions" msgid="7283357728219338112">"ไม่ต้องการการอนุญาต"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 8cf04fa..6dee767 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Mag-navigate palayo mula sa pahinang ito?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Piliin ang OK upang magpatuloy, o Kanselahin upang manatili sa kasalukuyang pahina."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Kumpirmahin"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Tip: mag-double-tap upang mag-zoom in at out."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"AutoFill"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Setup AutoFill"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Kanselahin"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Magtakda ng oras"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Itakda ang petsa"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Itakda"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Default"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Walang mga kinakailangang pahintulot"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 366271a..625f174 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -279,7 +279,7 @@
     <string name="permlab_movePackage" msgid="728454979946503926">"Uygulama kaynaklarını taşı"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"Bir uygulamanın, uygulama kaynaklarını dahili ve harici ortamlar arasında taşımasına olanak tanır."</string>
     <string name="permlab_readLogs" msgid="6615778543198967614">"hassas günlük verilerini okuma"</string>
-    <string name="permdesc_readLogs" product="tablet" msgid="4077356893924755294">"Uygulamaya, sistemin çeşitli günlük dosyalarındaki bilgileri okuma izni verir. Bu izin, uygulamanın, tablette yaptıklarınızla ilgili genel bilgileri bulmasına olanak sağlar. Bu bilgiler arasında kişisel ve gizli bilgilerinizi de olabilir."</string>
+    <string name="permdesc_readLogs" product="tablet" msgid="4077356893924755294">"Uygulamaya, sistemin çeşitli günlük dosyalarındaki bilgileri okuma izni verir. Bu izin, uygulamanın, tablette yaptıklarınızla ilgili genel bilgileri bulmasına olanak sağlar. Bu bilgiler arasında kişisel ve gizli bilgileriniz de olabilir."</string>
     <string name="permdesc_readLogs" product="default" msgid="8896449437464867766">"Bir uygulamanın, sistemin çeşitli günlük dosyalarındaki bilgileri okumasına izin verir. Bu izin, uygulamanın, telefonda yaptıklarınızla ilgili genel bilgileri bulmasına olanak sağlar ve bunlar kişisel ve gizli bilgilerinizi de içerebilir."</string>
     <string name="permlab_diagnostic" msgid="8076743953908000342">"sahibi tanılama olan kaynakları oku/bunlara yaz"</string>
     <string name="permdesc_diagnostic" msgid="3121238373951637049">"Uygulamanın tanılama grubundaki bir kaynağa ait herhangi bir kaynağı; örneğin /dev içindeki dosyaları okumasına ve bunlara yazmasına izin verir. Bu işlevin sistem kararlılığını ve güvenliğini olumsuz etkileme olasılığı vardır. Üretici veya operatör tarafından YALNIZCA donanıma özgü tanılama için kullanılmalıdır."</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Bu sayfadan ayrılıyor musunuz?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Devam etmek için Tamam\'ı, sayfada kalmak için İptal\'i tıklatın."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Onayla"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"İpucu: Yakınlaştırmak ve uzaklaştırmak için iki kez hafifçe vurun."</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"Bu formu otomatik doldur"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"OtoDoldr"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Oto Doldr Ayarla"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -796,7 +796,7 @@
     <string name="inputMethod" msgid="1653630062304567879">"Giriş yöntemi"</string>
     <string name="editTextMenuTitle" msgid="4909135564941815494">"Metin eylemleri"</string>
     <string name="low_internal_storage_view_title" msgid="1399732408701697546">"Yer az"</string>
-    <string name="low_internal_storage_view_text" product="tablet" msgid="4231085657068852042">"Tabletin depolama alanı azalıyor."</string>
+    <string name="low_internal_storage_view_text" product="tablet" msgid="4231085657068852042">"Tabletin depolama alanındaki boş yer azalıyor."</string>
     <string name="low_internal_storage_view_text" product="default" msgid="635106544616378836">"Telefonun depolama alanı azalıyor."</string>
     <string name="ok" msgid="5970060430562524910">"Tamam"</string>
     <string name="cancel" msgid="6442560571259935130">"İptal"</string>
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"Tamam"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"İptal"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Saati ayarla"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Tarihi ayarla"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Ayarla"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Varsayılan"</string>
     <string name="no_permissions" msgid="7283357728219338112">"İzin gerektirmez"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"Harici medyanın durumu bilinmiyor."</string>
     <string name="share" msgid="1778686618230011964">"Paylaş"</string>
     <string name="find" msgid="4808270900322985960">"Bul"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 7fe82c2..4f21650 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -126,10 +126,10 @@
     <string name="contentServiceSync" msgid="8353523060269335667">"Синхр."</string>
     <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"Синхр."</string>
     <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"Забагато видалень <xliff:g id="CONTENT_TYPE">%s</xliff:g>."</string>
-    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Пам\'ять пристр. заповнено! Видал. файли, щоб звільн. місце."</string>
+    <string name="low_memory" product="tablet" msgid="2292820184396262278">"Пам\'ять пристрою заповнено! Видаліть файли, щоб звільнити місце."</string>
     <string name="low_memory" product="default" msgid="6632412458436461203">"Пам\'ять тел. заповн.! Видаліть файли, щоб звільн. місце."</string>
     <string name="me" msgid="6545696007631404292">"Я"</string>
-    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Парам. пристрою"</string>
+    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Параметри пристрою"</string>
     <string name="power_dialog" product="default" msgid="1319919075463988638">"Параметри тел."</string>
     <string name="silent_mode" msgid="7167703389802618663">"Беззвуч. режим"</string>
     <string name="turn_on_radio" msgid="3912793092339962371">"Увімкнути радіо"</string>
@@ -196,7 +196,7 @@
     <string name="permlab_sendSms" msgid="5600830612147671529">"надсил. SMS повідом."</string>
     <string name="permdesc_sendSms" msgid="1946540351763502120">"Дозволяє програмі надсил. SMS повідомл. Шкідливі програми можуть спричин. збитки, надсилаючи повідомлення без вашого підтвердження."</string>
     <string name="permlab_readSms" msgid="4085333708122372256">"читати SMS або MMS"</string>
-    <string name="permdesc_readSms" product="tablet" msgid="5836710350295631545">"Дозволяє програмі читати SMS повідомлення, збережені в пристрої чи SIM-карті. Шкідливі програми можуть читати ваші конфіденц. повідомл."</string>
+    <string name="permdesc_readSms" product="tablet" msgid="5836710350295631545">"Дозволяє програмі читати SMS повідомлення, збережені в пристрої чи SIM-карті. Шкідливі програми можуть читати ваші конфіденційні повідомлення."</string>
     <string name="permdesc_readSms" product="default" msgid="3002170087197294591">"Дозволяє програмі зчитувати SMS повідомлення, збереж. у вашому тел. чи SIM-карті. Шкідливі прогр. можуть зчит. ваші конфіденційні повід."</string>
     <string name="permlab_writeSms" msgid="6881122575154940744">"редаг. SMS або MMS"</string>
     <string name="permdesc_writeSms" product="tablet" msgid="5332124772918835437">"Дозволяє програмі змінювати SMS повідомлення, збережені в пристрої чи SIM-карті. Шкідливі програми можуть видаляти ваші повідомл."</string>
@@ -250,7 +250,7 @@
     <string name="permlab_manageAppTokens" msgid="17124341698093865">"керувати маркерами програми"</string>
     <string name="permdesc_manageAppTokens" msgid="977127907524195988">"Дозволяє програмам створ. і керувати власними маркерами, не застосовуючи звич. накладання по осі Z. Ніколи не потрібний для звичайних програм."</string>
     <string name="permlab_injectEvents" msgid="1378746584023586600">"натиск. клавіші чи кнопки керув."</string>
-    <string name="permdesc_injectEvents" product="tablet" msgid="7200014808195664505">"Дозволяє програмі надавати власні події введення (натискання клавіш тощо) іншим програмам. Шкідливі програми можуть використов. це для контролю над пристроєм."</string>
+    <string name="permdesc_injectEvents" product="tablet" msgid="7200014808195664505">"Дозволяє програмі надавати власні події введення (натискання клавіш тощо) іншим програмам. Шкідливі програми можуть використовувати це для контролю над пристроєм."</string>
     <string name="permdesc_injectEvents" product="default" msgid="3946098050410874715">"Дозволяє програмі надавати власні події введення (натискання клавіш і т. д.) іншим програмам. Шкідливі програми можуть використ. це для контролю над телеф."</string>
     <string name="permlab_readInputState" msgid="469428900041249234">"записувати, що ви вводите та які дії викон."</string>
     <string name="permdesc_readInputState" msgid="5132879321450325445">"Дозволяє програмі переглядати клавіші, які ви натискаєте, навіть під час роботи з іншою програмою (наприклад, під час вводу пароля). Ніколи не потрібний для звичайних програм."</string>
@@ -301,16 +301,16 @@
     <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"Дозволяє програмі запускатися відразу після завантаження системи. Це може затримати запуск пристрою та дозволяє програмі сповільнити загальну роботу пристрою своїм постійним функціонуванням."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="698336728415008796">"Дозволяє програмі запускатися відразу після завантаження системи. Це може затримати запуск телефону та дозволяє програмі сповільнити загальну роботу телефону своїм постійним функціонуванням."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"надсилати закріпл. запис"</string>
-    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Дозволяє програмі надсил. закріпл. записи, які залиш. після відтвор. запису. Шкідливі прогр. можуть сповільн. роботу пристрою, робити його нестаб., спричин. викор. завеликої к-сті пам\'яті."</string>
+    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"Дозволяє програмі надсилати закріплені записи, які залишаються після відтворення запису. Шкідливі програми можуть сповільнювати роботу пристрою, робити його нестабільним, спричиняти використання завеликої кількості пам\'яті."</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="1920045289234052219">"Дозволяє програмі надсил. закріпл. записи, які залиш. після відтвор. запису. Шкідливі програми можуть сповільн. роботу тел., робити його нестаб., спричин. викор. завеликої к-сті пам\'яті."</string>
     <string name="permlab_readContacts" msgid="6219652189510218240">"читати контакт. дані"</string>
-    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Дозволяє програмі зчитувати всі контактні дані (адреси), збережені у вашому пристрої. Шкідливі програми можуть використ. це для надсил. ваших даних іншим людям."</string>
+    <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"Дозволяє програмі зчитувати всі контактні дані (адреси), збережені у вашому пристрої. Шкідливі програми можуть використовувати це для надсилання ваших даних іншим людям."</string>
     <string name="permdesc_readContacts" product="default" msgid="3371591512896545975">"Дозволяє програмі зчитувати всі дані контактів (адреси), збережені у вашому тел. Шкідливі програми можуть використ. це для надсилання ваших даних іншим людям."</string>
     <string name="permlab_writeContacts" msgid="644616215860933284">"запис. контактні дані"</string>
-    <string name="permdesc_writeContacts" product="tablet" msgid="7782689510038568495">"Дозволяє програмі змінювати контактні дані (адреси), збереж. в пристрої. Шкідливі програми можуть використ. це для видалення чи зміни ваших контактних даних."</string>
+    <string name="permdesc_writeContacts" product="tablet" msgid="7782689510038568495">"Дозволяє програмі змінювати контактні дані (адреси), збережені в пристрої. Шкідливі програми можуть використовувати це для видалення чи зміни ваших контактних даних."</string>
     <string name="permdesc_writeContacts" product="default" msgid="3924383579108183601">"Дозволяє програмі змінювати контактні дані (адресу), збереж. в телефоні. Шкідливі програми можуть використ. це для видалення чи зміни ваших контактних даних."</string>
     <string name="permlab_readCalendar" msgid="6898987798303840534">"читати події календаря"</string>
-    <string name="permdesc_readCalendar" product="tablet" msgid="5905870265734599678">"Дозволяє програмі зчитувати всі події календаря, збережені в пристрої. Шкідливі програми можуть використов. це для надсилання ваших подій календаря іншим людям."</string>
+    <string name="permdesc_readCalendar" product="tablet" msgid="5905870265734599678">"Дозволяє програмі зчитувати всі події календаря, збережені в пристрої. Шкідливі програми можуть використовувати це для надсилання ваших подій календаря іншим людям."</string>
     <string name="permdesc_readCalendar" product="default" msgid="5533029139652095734">"Дозволяє програмі зчитувати всі події календаря, збережені у вашому телефоні. Шкідливі програми можуть використ-ти це для надсилання подій календаря іншим людям."</string>
     <string name="permlab_writeCalendar" msgid="3894879352594904361">"дод. чи змін. події календаря та надсил. ел. листи гостям"</string>
     <string name="permdesc_writeCalendar" msgid="2988871373544154221">"Дозволяє програмі дод. чи змін. події у вашому календарі, який може надсилати ел. листи гостям. Шкідливі прогр. можуть викор. це, щоб видаляти чи змін. події вашого календаря або надсилати ел. листи гостям."</string>
@@ -321,10 +321,10 @@
     <string name="permlab_installLocationProvider" msgid="6578101199825193873">"дозвіл на встановлення провайдера місцезнах."</string>
     <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Створ. фіктивні джерела місцезн. для тестув. Шкідливі прогр. можуть викор. це для заміни місцезн. і/чи статусу, отрим. від дійсних джерел місцезн., таких як GPS або моб. операторів, а також для відстеж. і передачі вашого місцезн. зовн. джерелу."</string>
     <string name="permlab_accessFineLocation" msgid="8116127007541369477">"точне (GPS) місцезнах."</string>
-    <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"Отрим. доступ до точного місцезн., напр. системи глоб. позиціонування в пристрої, де це доступно. Шкідливі прогр. можуть викор. це для визначення вашого місцезн. і споживати додаткову енергію батареї."</string>
+    <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"Отримує доступ до джерел точного місцезнаходження, наприклад системи глобального позиціонування в пристрої, де це доступно. Шкідливі програми можуть використовувати це для визначення вашого місцезнаходження та споживати додаткову енергію батареї."</string>
     <string name="permdesc_accessFineLocation" product="default" msgid="7411213317434337331">"Отрим. доступ до точних джерел місцезн., таких як сист. глоб. позиціонування в тел., де це доступно. Шкідливі прогр. можуть викор. це для визнач. вашого місцезн. і споживати додаткову енергію батареї."</string>
     <string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"приблизне (мережеве) місцезнах."</string>
-    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Отрим. доступ до джерел прибл. місцезнах., напр. баз даних моб. мережі, для визначення прибл. місцезнах. пристрою, де це доступно. Шкідливі програми можуть використов. це, щоб приблизно визначати ваше місцезнах."</string>
+    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"Отримує доступ до джерел приблизного місцезнаходження, наприклад баз даних мобільної мережі, для визначення приблизного місцезнаходження пристрою, де це доступно. Шкідливі програми можуть використовувати це, щоб приблизно визначати ваше місцезнаходження."</string>
     <string name="permdesc_accessCoarseLocation" product="default" msgid="8235655958070862293">"Отрим. доступ до джерел прибл. місцезн., напр. баз даних моб. мережі, для визначення прибл. місцезн. телефону, де це доступно. Шкідливі програми можуть використов. це, щоб приблизно визначати ваше місцезн."</string>
     <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"дост. до SurfaceFlinger"</string>
     <string name="permdesc_accessSurfaceFlinger" msgid="6805241830020733025">"Дозволяє програмі викор. низькорівневі функції SurfaceFlinger."</string>
@@ -340,7 +340,7 @@
     <string name="permlab_brick" product="default" msgid="8337817093326370537">"остаточно вимкнути телефон"</string>
     <string name="permdesc_brick" product="tablet" msgid="7379164636920817963">"Дозволяє програмі остаточно вимкнути весь пристрій. Це дуже небезпечно."</string>
     <string name="permdesc_brick" product="default" msgid="5569526552607599221">"Дозволяє програмі остаточно вимкнути весь телефон. Це дуже небезпечно."</string>
-    <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"примус.перезав.пристр."</string>
+    <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"примусово перезавантажити пристрій"</string>
     <string name="permlab_reboot" product="default" msgid="2898560872462638242">"примус. перезав. тел."</string>
     <string name="permdesc_reboot" product="tablet" msgid="4555793623560701557">"Дозволяє програмі примусово перезавантажувати пристрій."</string>
     <string name="permdesc_reboot" product="default" msgid="7914933292815491782">"Дозволяє програмі примусово перезавантажувати телефон."</string>
@@ -372,7 +372,7 @@
     <string name="permdesc_callPhone" msgid="3369867353692722456">"Дозволяє програмі набирати номери телефону без вашого залучення. Шкідливі програми можуть негативно впливати на стан вашого телефонного рахунку. Зауважте, що програмі не дозволено набирати номери аварійних служб."</string>
     <string name="permlab_callPrivileged" msgid="4198349211108497879">"прямо набирати будь-які ном. тел."</string>
     <string name="permdesc_callPrivileged" msgid="244405067160028452">"Дозволяє програмі набирати будь-який номер телефону, зокрема аварійні номери, без вашого залучення. Шкідливі програми можуть здійснювати непотрібні та незаконні дзвінки до аварійних служб."</string>
-    <string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"безпосер. поч. налашт. пристр. CDMA"</string>
+    <string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"безпосередньо почати налаштування пристрою CDMA"</string>
     <string name="permlab_performCdmaProvisioning" product="default" msgid="5604848095315421425">"безпосер. поч. налашт-ня CDMA тел."</string>
     <string name="permdesc_performCdmaProvisioning" msgid="6457447676108355905">"Дозволяє програмі запускати ініціалізацію CDMA. Шкідливі програми можуть без потреби запускати ініціалізацію CDMA"</string>
     <string name="permlab_locationUpdates" msgid="7785408253364335740">"контрол. сповіщ. про оновлення місцезн."</string>
@@ -385,16 +385,16 @@
     <string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Дозволяє програмі контролювати телефонні функції пристрою. Програма з цим дозволом може змінювати мережі, вмикати та вимикати радіо телефону тощо, не повідомляючи вас."</string>
     <string name="permlab_readPhoneState" msgid="2326172951448691631">"читати стан телефону та ідентиф."</string>
     <string name="permdesc_readPhoneState" msgid="188877305147626781">"Дозволяє програмі отримувати доступ до телефонних функцій пристрою. Програма з цим дозволом може визначити номер телефону та серійний номер даного телефону, активність виклику, номер, на який робиться виклик та інше."</string>
-    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"недоп.перехід пристр. в реж.сну"</string>
+    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"не допускати перехід пристрою в режим сну"</string>
     <string name="permlab_wakeLock" product="default" msgid="573480187941496130">"недоп. перехід тел. в реж. сну"</string>
     <string name="permdesc_wakeLock" product="tablet" msgid="4032181488045338551">"Дозволяє програмі не допускати перехід пристрою в режим сну."</string>
     <string name="permdesc_wakeLock" product="default" msgid="7584036471227467099">"Дозволяє програмі не допускати перехід телефону в режим сну."</string>
-    <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"вмик. чи вимик. пристрій"</string>
+    <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"увімкнути чи вимкнути пристрій"</string>
     <string name="permlab_devicePower" product="default" msgid="4928622470980943206">"вмик. чи вимик. телефон"</string>
     <string name="permdesc_devicePower" product="tablet" msgid="3853773100100451905">"Дозволяє програмі вимикати чи вимикати пристрій."</string>
     <string name="permdesc_devicePower" product="default" msgid="4577331933252444818">"Дозволяє програмі вимикати чи вимикати телефон."</string>
     <string name="permlab_factoryTest" msgid="3715225492696416187">"запуск у завод. реж. тест."</string>
-    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Запускає тест виробника на низьк. рівні, дозволяючи повний доступ до апарат. забезп. пристр. Доступно лише коли пристр. запущ. в режимі тестув. виробником."</string>
+    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Запускає тест виробника на низькому рівні, дозволяючи повний доступ до апаратного забезпечення пристрою. Доступно лише коли пристрій запущено в режимі тестування виробником."</string>
     <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Запускає тест виробника на низькому рівні, дозволяючи повний доступ до апарат. забезп. тел. Доступно лише коли тел. запущено в режимі тестув. виробником."</string>
     <string name="permlab_setWallpaper" msgid="6627192333373465143">"устан. фон. мал."</string>
     <string name="permdesc_setWallpaper" msgid="6417041752170585837">"Дозволяє програмі встановлювати фонов. мал. системи."</string>
@@ -438,7 +438,7 @@
     <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"дозвол. отримання багатоадр. Wi-Fi"</string>
     <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Дозволяє програмі отрим. пакети, які не адрес. безпосер. вашому пристрою. Це може бути корисно під час виявл. пропонованих служб неподалік. Викор. більше потужності, ніж не багатоадресний реж."</string>
     <string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"адміністрування bluetooth"</string>
-    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"Дозволяє програмі налашт. локальний пристрій із Bluetooth, знаходити віддалені пристрої та створ. з ними пару."</string>
+    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="3511795757324345837">"Дозволяє програмі налаштовувати локальний пристрій із Bluetooth, знаходити віддалені пристрої та створювати з ними пару."</string>
     <string name="permdesc_bluetoothAdmin" product="default" msgid="7256289774667054555">"Дозволяє програмі налашт. локальний телефон із Bluetooth і знаходити та створ. пару з віддаленими пристроями."</string>
     <string name="permlab_bluetooth" msgid="8361038707857018732">"створюв. підключення Bluetooth"</string>
     <string name="permdesc_bluetooth" product="tablet" msgid="4191941825910543803">"Дозволяє програмі переглядати конфігурацію локального пристрою з Bluetooth, створювати та приймати з\'єднання зі спареними пристроями."</string>
@@ -653,7 +653,7 @@
     <string name="lockscreen_battery_short" msgid="3617549178603354656">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="lockscreen_low_battery" msgid="1482873981919249740">"Підкл. заряд. пристрій."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"Нема SIM-карти."</string>
-    <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"У пристр. нема SIM-карти."</string>
+    <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"У пристрої немає SIM-карти."</string>
     <string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"У тел. немає SIM-карти."</string>
     <string name="lockscreen_missing_sim_instructions" msgid="8874620818937719067">"Вставте SIM-карту."</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Лише аварійні виклики"</string>
@@ -667,7 +667,7 @@
     <skip />
     <!-- no translation found for lockscreen_too_many_failed_pin_attempts_dialog_message (6827749231465145590) -->
     <skip />
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Неправильно намал. ключ розблокування стільки разів: <xliff:g id="NUMBER_0">%d</xliff:g>. Ваш пристрій потрібно буде розблок-ти за допомогою входу в Google після стількох додатк. неуспішних спроб: <xliff:g id="NUMBER_1">%d</xliff:g>."\n\n" Спробуйте ще через <xliff:g id="NUMBER_2">%d</xliff:g> сек."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"Неправильно намальовано ключ розблокування стільки разів: <xliff:g id="NUMBER_0">%d</xliff:g>. Ваш пристрій потрібно буде розблоковувати за допомогою входу в Google після стількох додаткових неуспішних спроб: <xliff:g id="NUMBER_1">%d</xliff:g>."\n\n" Спробуйте ще через <xliff:g id="NUMBER_2">%d</xliff:g> сек."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="3351013842320127827">"Неправильно намал. ключ розблокування стільки разів: <xliff:g id="NUMBER_0">%d</xliff:g>. Ваш телефон потрібно буде розблок-ти за допомогою входу в Google після стількох додатк. неуспішних спроб: <xliff:g id="NUMBER_1">%d</xliff:g>."\n\n" Спробуйте ще через <xliff:g id="NUMBER_2">%d</xliff:g> сек."</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Спробуйте ще через <xliff:g id="NUMBER">%d</xliff:g> сек."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Забули ключ?"</string>
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Перейти з цієї стор.?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Виберіть OK, щоб продовж., або \"Скасувати\", щоб залиш. на поточній стор."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Підтверд."</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Порада: двічі нат. для збіл. або змен."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Автозап."</string>
     <string name="setup_autofill" msgid="8154593408885654044">"Налашт. автозап."</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -710,7 +709,7 @@
     <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"читати історію та закладки переглядача"</string>
     <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Дозволяє програмі зчитувати всі URL-адреси, на які заходив переглядач, і всі закладки переглядача."</string>
     <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"запис. історію та закладки переглядача"</string>
-    <string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="7193514090469945307">"Дозволяє програмі змінювати історію чи закладки веб-переглядача, збережені в пристрої. Шкідливі прогр. можуть використ. це для видалення чи зміни даних веб-переглядача."</string>
+    <string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="7193514090469945307">"Дозволяє програмі змінювати історію чи закладки веб-переглядача, збережені в пристрої. Шкідливі програми можуть використовувати це для видалення чи зміни даних веб-переглядача."</string>
     <string name="permdesc_writeHistoryBookmarks" product="default" msgid="945571990357114950">"Дозволяє програмі змінювати історію чи закладки переглядача, збережені у вашому тел. Шкідливі програми можуть викор. це, щоб видаляти чи змінювати дані переглядача."</string>
     <!-- no translation found for permlab_setAlarm (5924401328803615165) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Скасувати"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Установити час"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Установити дату"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Устан."</string>
     <string name="default_permission_group" msgid="2690160991405646128">"За умовч."</string>
     <string name="no_permissions" msgid="7283357728219338112">"Дозвіл не потрібний"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 3799901..fcdbf1c 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -696,8 +696,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"Điều hướng khỏi trang này?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Chọn OK để tiếp tục hoặc Huỷ để ở lại trang hiện tại."</string>
     <string name="save_password_label" msgid="6860261758665825069">"Xác nhận"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"Mẹo: nhấn đúp để phóng to và thu nhỏ."</string>
-    <!-- no translation found for autofill_this_form (1272247532604569872) -->
-    <skip />
+    <string name="autofill_this_form" msgid="1272247532604569872">"Tự động điền"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"C.đặt TĐ điền"</string>
     <!-- no translation found for autofill_address_name_separator (2504700673286691795) -->
     <skip />
@@ -924,8 +923,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"Huỷ"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Đặt giờ"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Đặt ngày"</string>
     <string name="date_time_set" msgid="5777075614321087758">"Đặt"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"Mặc định"</string>
     <string name="no_permissions" msgid="7283357728219338112">"Không yêu cầu quyền"</string>
@@ -1077,6 +1075,8 @@
     <skip />
     <!-- no translation found for find (4808270900322985960) -->
     <skip />
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 7508c80..b416c06 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"是否从该页面导航至它处?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"选择“确定”继续,或选择“取消”留在当前页面。"</string>
     <string name="save_password_label" msgid="6860261758665825069">"确认"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"提示:点按两次可放大和缩小。"</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"自动填充此表单"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"自动填充"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"设置自动填充"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"确定"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"取消"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"设置时间"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"设置日期"</string>
     <string name="date_time_set" msgid="5777075614321087758">"设置"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"默认"</string>
     <string name="no_permissions" msgid="7283357728219338112">"不需要任何权限"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"外部媒体处于未知状态。"</string>
     <string name="share" msgid="1778686618230011964">"分享"</string>
     <string name="find" msgid="4808270900322985960">"查找"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 93e88c3..1bb6028 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -223,7 +223,7 @@
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"防止切換應用程式"</string>
     <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"防止使用者切換到其他應用程式。"</string>
     <string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"監視控制所有應用程式啟動狀態。"</string>
-    <string name="permdesc_runSetActivityWatcher" msgid="2149363027173451218">"允許應用程式監視和控制系統啟動活動的方式。惡意應用程式可藉此破壞整個系統。這個權限只有在開發時才需要,一般使用上不需使用這個權限。"</string>
+    <string name="permdesc_runSetActivityWatcher" msgid="2149363027173451218">"允許應用程式監視和控制系統啟動活動的方式。惡意應用程式可藉此破壞整個系統。這個權限只有開發人員才需要,一般使用上不需使用這個權限。"</string>
     <string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"傳送程式已移除廣播"</string>
     <string name="permdesc_broadcastPackageRemoved" msgid="3453286591439891260">"允許應用程式在其他應用程式被移除時發送通知。請注意:惡意程式可能利用此功能,關閉其他執行中的程式。"</string>
     <string name="permlab_broadcastSmsReceived" msgid="5689095009030336593">"傳送已接收 SMS 廣播"</string>
@@ -247,7 +247,7 @@
     <string name="permlab_manageAppTokens" msgid="17124341698093865">"管理應用程式 token"</string>
     <string name="permdesc_manageAppTokens" msgid="977127907524195988">"允許應用程式略過一般 Z-ordering,建立與管理自己的 token。一般應用程式不需要此功能。"</string>
     <string name="permlab_injectEvents" msgid="1378746584023586600">"按鍵及控制按鈕"</string>
-    <string name="permdesc_injectEvents" product="tablet" msgid="7200014808195664505">"允許應用程式將本身的輸入事件 (按鍵等) 發送給其他應用程式。惡意應用程式可藉此接管平板電腦。"</string>
+    <string name="permdesc_injectEvents" product="tablet" msgid="7200014808195664505">"允許應用程式將本身的輸入操作 (按鍵等) 發送給其他應用程式。惡意應用程式可藉此接管平板電腦。"</string>
     <string name="permdesc_injectEvents" product="default" msgid="3946098050410874715">"允許應用程式發送輸入事件 (按鍵等) 給其他應用程式。請注意:惡意程式可能使用此功能接管手機。"</string>
     <string name="permlab_readInputState" msgid="469428900041249234">"記錄您的輸入內容與操作"</string>
     <string name="permdesc_readInputState" msgid="5132879321450325445">"允許應用程式在使用者操作其他程式時 (例如:輸入密碼),仍可監看輸入的按鍵。一般應用程式應不需要此功能。"</string>
@@ -274,7 +274,7 @@
     <string name="permlab_installPackages" msgid="335800214119051089">"直接安裝應用程式"</string>
     <string name="permdesc_installPackages" msgid="526669220850066132">"允許應用程式安裝新的 Android 程式或更新。請注意:惡意程式可能利用此功能新增具有極高權限的程式。"</string>
     <string name="permlab_clearAppCache" msgid="4747698311163766540">"刪除所有應用程式快取資料。"</string>
-    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"允許應用程式刪除應用程式快取目錄中的檔案,以釋放平板電腦的儲存空間。對系統處理程序的存取動作,通常受到許多限制。"</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="3097119797652477973">"允許應用程式刪除應用程式快取目錄中的檔案,以釋放平板電腦的儲存空間。一般而言,只有系統程序才能執行這類檔案存取動作。"</string>
     <string name="permdesc_clearAppCache" product="default" msgid="7740465694193671402">"允許應用程式刪除快取目錄裡的檔案,釋放儲存空間。此操作通常受到系統程序嚴格限制。"</string>
     <string name="permlab_movePackage" msgid="728454979946503926">"移動應用程式資源"</string>
     <string name="permdesc_movePackage" msgid="6323049291923925277">"允許應用程式將應用程式資源從內部媒體移到外部媒體,反之亦可。"</string>
@@ -284,8 +284,8 @@
     <string name="permlab_diagnostic" msgid="8076743953908000342">"讀寫 diag 擁有的資源"</string>
     <string name="permdesc_diagnostic" msgid="3121238373951637049">"允許應用程式讀寫 diag 群組的資源;例如:/dev 裡的檔案。這可能會影響系統穩定性與安全性。此功能僅供製造商或技術人員用於硬體規格偵測。"</string>
     <string name="permlab_changeComponentState" msgid="79425198834329406">"啟用或停用應用程式元件"</string>
-    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"允許應用程式啟用或停用其他應用程式的元件。惡意應用程式可藉此停用重要的平板電腦功能。由於這個權限可能會導致應用程式元件無法使用、不一致或不穩定,因此請謹慎斟酌授權。"</string>
-    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"允許應用程式啟用或停用其他應用程式的元件。惡意應用程式可藉此停用重要的平板電腦功能。由於這個權限可能會導致應用程式元件無法使用、不一致或不穩定,因此請謹慎斟酌授權。"</string>
+    <string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"允許應用程式啟用或停用其他應用程式的元件。惡意應用程式可藉此停用重要的平板電腦功能。由於這個權限可能會導致應用程式元件無法使用、造成不一致或不穩定的問題,因此請謹慎斟酌授權。"</string>
+    <!-- outdated translation 4647419365510068321 -->     <string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"允許應用程式啟用或停用其他應用程式的元件。惡意應用程式可藉此停用重要的平板電腦功能。由於這個權限可能會導致應用程式元件無法使用、造成不一致或不穩定的問題,因此請謹慎斟酌授權。"</string>
     <string name="permlab_setPreferredApplications" msgid="3393305202145172005">"設定喜好的應用程式"</string>
     <string name="permdesc_setPreferredApplications" msgid="760008293501937546">"允許應用程式修改您偏好的應用程式。請注意:惡意程式可能藉以秘密竄改執行的程式,或偽造已存在的程式以收集私人資料。"</string>
     <string name="permlab_writeSettings" msgid="1365523497395143704">"編輯全域系統設定"</string>
@@ -295,10 +295,10 @@
     <string name="permlab_writeGservices" msgid="2149426664226152185">"修改 Google 服務地圖"</string>
     <string name="permdesc_writeGservices" msgid="6602362746516676175">"允許應用程式修改 Google 服務地圖。一般應用程式不會使用此功能。"</string>
     <string name="permlab_receiveBootCompleted" msgid="7776779842866993377">"開機時自動啟用"</string>
-    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"允許應用程式在系統完成開機程序時立即自行啟動。這會增加平板電腦的開機時間,而且會因為一直執行該應用程式而拖慢平板電腦的整體運作速度。"</string>
+    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7530977064379338199">"允許應用程式在系統完成開機程序時立即自行啟動。這會增加平板電腦的開機時間,而且會因為系統一直執行該應用程式而拖慢平板電腦的整體運作速度。"</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="698336728415008796">"允許應用程式在開機後盡快啟動。此項設定會讓開機時間拉長,並允許應用程式持續執行,因此拖慢手機速度。"</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"傳送附屬廣播"</string>
-    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"允許應用程式傳送一種在廣播動作結束後仍繼續存在的持久廣播。惡意應用程式可藉此讓平板電腦使用過多的記憶體,使其執行速度變慢或不穩定。"</string>
+    <string name="permdesc_broadcastSticky" product="tablet" msgid="6322249605930062595">"允許應用程式傳送一種在廣播動作結束後仍繼續存在的記憶廣播。惡意應用程式可藉此讓平板電腦使用過多的記憶體,使其執行速度變慢或不穩定。"</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="1920045289234052219">"允許應用程式傳送持久的廣播。請注意:惡意程式可能利用此功能來佔據過多記憶體,讓手機速度變慢或不穩定。"</string>
     <string name="permlab_readContacts" msgid="6219652189510218240">"讀取聯絡人資料"</string>
     <string name="permdesc_readContacts" product="tablet" msgid="7596158687301157686">"允許應用程式讀取平板電腦上儲存的所有聯絡人 (地址) 資料。惡意應用程式可藉此將您的資料傳送給其他人。"</string>
@@ -318,10 +318,10 @@
     <string name="permlab_installLocationProvider" msgid="6578101199825193873">"准許安裝位置提供者"</string>
     <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"建立虛構的位置來源以供測試。請注意:惡意應用程式可能利用此選項覆寫由真實位置來源 (例如 GPS 或網路供應商) 所傳回的位置及/或狀態,或者監控您的位置並將之提供給外部來源。"</string>
     <string name="permlab_accessFineLocation" msgid="8116127007541369477">"精確定位 (GPS)"</string>
-    <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"當環境配合時,存取精確的位置來源 (例如:平板電腦的 GPS)。惡意應用程式可藉此得知您的位置,並可能消耗更多的電池電量。"</string>
+    <string name="permdesc_accessFineLocation" product="tablet" msgid="243973693233359681">"在可能的情況下,存取精確的位置來源資訊 (例如:平板電腦的 GPS)。惡意應用程式可藉此得知您的位置,並可能消耗更多的電池電量。"</string>
     <string name="permdesc_accessFineLocation" product="default" msgid="7411213317434337331">"接收精確的位置來源 (例如:手機 GPS)。請注意:惡意程式可能使用此功能得知您的位置,並可能消耗額外電源。"</string>
     <string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"約略位置 (以網路為基準)"</string>
-    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"當環境配合時,存取約略的位置來源 (例如:行動網路資料庫),以計算出平板電腦的大概位置。惡意應用程式可藉此得知您的大概位置。"</string>
+    <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3704633168985466045">"在可能的情況下,存取約略的位置來源資訊 (例如:行動網路資料庫),以計算出平板電腦的大概位置。惡意應用程式可藉此得知您的約略位置。"</string>
     <string name="permdesc_accessCoarseLocation" product="default" msgid="8235655958070862293">"接收約略的位置來源 (例如:行動網路資料庫),計算出目前大概位置。請注意:惡意程式可能使用此功能得知您的所在地。"</string>
     <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"存取 SurfaceFlinger"</string>
     <string name="permdesc_accessSurfaceFlinger" msgid="6805241830020733025">"允許應用程式使用 SurfaceFlinger 低階功能。"</string>
@@ -335,7 +335,7 @@
     <string name="permdesc_camera" msgid="6004878235852154239">"允許應用程式使用相機拍照和錄影,此功能可讓應用程式隨時透過相機收集圖片。"</string>
     <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"永久停用平板電腦"</string>
     <string name="permlab_brick" product="default" msgid="8337817093326370537">"永久停用電話"</string>
-    <string name="permdesc_brick" product="tablet" msgid="7379164636920817963">"允許應用程式永久停用平板電腦所有功能。這麼做非常危險。"</string>
+    <string name="permdesc_brick" product="tablet" msgid="7379164636920817963">"允許應用程式永久停用平板電腦所有功能 (這類權限具有高度風險)。"</string>
     <string name="permdesc_brick" product="default" msgid="5569526552607599221">"允許應用程式永久停用手機。此項操作非常危險。"</string>
     <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"強制重新啟動平板電腦"</string>
     <string name="permlab_reboot" product="default" msgid="2898560872462638242">"強制重開機"</string>
@@ -478,7 +478,7 @@
     <string name="policylab_forceLock" msgid="2274085384704248431">"鎖定螢幕"</string>
     <string name="policydesc_forceLock" msgid="5696964126226028442">"控制鎖定螢幕的方式和時間"</string>
     <string name="policylab_wipeData" msgid="3910545446758639713">"清除所有資料"</string>
-    <string name="policydesc_wipeData" product="tablet" msgid="314455232799486222">"執行重設為原廠設定時,系統會在不提出警告的情況下直接清除平板電腦的資料"</string>
+    <string name="policydesc_wipeData" product="tablet" msgid="314455232799486222">"恢復原廠設定時,系統會在不提出警告的情況下直接清除平板電腦的資料"</string>
     <string name="policydesc_wipeData" product="default" msgid="7669895333814222586">"執行重設為原廠設定時,系統會直接清除手機資料而不提出警告"</string>
     <string name="policylab_setGlobalProxy" msgid="2784828293747791446">"設定裝置全域 Proxy"</string>
     <string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"設定政策啟用時所要使用的裝置全域 Proxy,只有第一個裝置管理員所設定的全域 Proxy 具有效力。"</string>
@@ -630,7 +630,7 @@
     <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="3514742106066877476">"畫出解鎖圖形已錯誤 <xliff:g id="NUMBER_0">%d</xliff:g> 次。"\n\n" 請在 <xliff:g id="NUMBER_1">%d</xliff:g> 秒後再嘗試。"</string>
     <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="4906034376425175381">"您已 <xliff:g id="NUMBER_0">%d</xliff:g> 次輸入不正確的密碼。"\n\n"請於 <xliff:g id="NUMBER_1">%d</xliff:g> 秒後再試一次。"</string>
     <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6827749231465145590">"您已 <xliff:g id="NUMBER_0">%d</xliff:g> 次輸入不正確的 PIN。"\n\n"請於 <xliff:g id="NUMBER_1">%d</xliff:g> 秒後再試一次。"</string>
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"您已 <xliff:g id="NUMBER_0">%d</xliff:g> 次繪出不正確的解鎖圖案,如果再嘗試 <xliff:g id="NUMBER_1">%d</xliff:g> 次仍未成功,系統就會要求您使用您的 Google 登入程序解除平板電腦的鎖定狀態。"\n\n"請在 <xliff:g id="NUMBER_2">%d</xliff:g> 秒之內再試一次。"</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="8687762517114904651">"您的解鎖圖形已畫錯 <xliff:g id="NUMBER_0">%d</xliff:g> 次,如果再嘗試 <xliff:g id="NUMBER_1">%d</xliff:g> 次仍未成功,系統就會要求您使用您的 Google 登入程序解除平板電腦的鎖定狀態。"\n\n"請在 <xliff:g id="NUMBER_2">%d</xliff:g> 秒之內再試一次。"</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="3351013842320127827">"畫出解鎖圖形已錯誤 <xliff:g id="NUMBER_0">%d</xliff:g> 次。再錯誤 <xliff:g id="NUMBER_1">%d</xliff:g> 次後,系統會要求使用 Google 登入來解鎖。"\n\n" 請在 <xliff:g id="NUMBER_2">%d</xliff:g> 秒後再試一次。"</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"<xliff:g id="NUMBER">%d</xliff:g> 秒後再試一次。"</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"忘記解鎖圖形?"</string>
@@ -659,7 +659,7 @@
     <string name="js_dialog_before_unload" msgid="1901675448179653089">"離開此頁?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n" 選取 [確定] 離開此頁;或 [取消] 留在此頁。"</string>
     <string name="save_password_label" msgid="6860261758665825069">"確認"</string>
     <string name="double_tap_toast" msgid="1068216937244567247">"提示:輕按兩下可放大縮小。"</string>
-    <!-- outdated translation 8940110866775097494 -->     <string name="autofill_this_form" msgid="1272247532604569872">"自動填寫此表單"</string>
+    <string name="autofill_this_form" msgid="1272247532604569872">"自動填入功能"</string>
     <string name="setup_autofill" msgid="8154593408885654044">"設定自動填入功能"</string>
     <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string>
     <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) -->
@@ -865,8 +865,7 @@
     <string name="sms_control_yes" msgid="2532062172402615953">"確定"</string>
     <string name="sms_control_no" msgid="1715320703137199869">"取消"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"設定時間"</string>
-    <!-- no translation found for date_picker_dialog_title (5879450659453782278) -->
-    <skip />
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"日期設定"</string>
     <string name="date_time_set" msgid="5777075614321087758">"設定"</string>
     <string name="default_permission_group" msgid="2690160991405646128">"預設值"</string>
     <string name="no_permissions" msgid="7283357728219338112">"無須許可"</string>
@@ -998,6 +997,8 @@
     <string name="media_unknown_state" msgid="729192782197290385">"外部媒體狀態不明。"</string>
     <string name="share" msgid="1778686618230011964">"分享"</string>
     <string name="find" msgid="4808270900322985960">"尋找"</string>
+    <!-- no translation found for websearch (4337157977400211589) -->
+    <skip />
     <!-- no translation found for gpsNotifTicker (5622683912616496172) -->
     <skip />
     <!-- no translation found for gpsNotifTitle (5446858717157416839) -->
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 181bbcc..f10e90f 100755
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -722,9 +722,6 @@
     <!-- Color of link text (URLs). -->
     <attr name="textColorLink" format="reference|color" />
 
-    <!-- Height of a line of text. -->
-    <attr name="textLineHeight" format="dimension" />
-
     <!-- Indicates that the content of a non-editable TextView can be selected.
      Default value is false. EditText content is always selectable. -->
     <attr name="textIsSelectable" format="boolean" />
@@ -2429,8 +2426,6 @@
         <attr name="textColorHint" />
         <!-- Color of the links. -->
         <attr name="textColorLink" />
-        <!-- Height of a single line of text. -->
-        <attr name="textLineHeight" />
     </declare-styleable>
     <declare-styleable name="TextSwitcher">
     </declare-styleable>
@@ -2672,10 +2667,7 @@
         <attr name="textEditPasteWindowLayout" />
         <!-- Variation of textEditPasteWindowLayout displayed when the clipboard is empty. -->
         <attr name="textEditNoPasteWindowLayout" />
-
-        <!-- Height of a line of text. -->
-        <attr name="textLineHeight" />
-        <!-- Indicates that a non-editable text can be selected. -->
+        <!-- Indicates that the content of a non-editable text can be selected. -->
         <attr name="textIsSelectable" />
         <!--  A specific background drawable used by multi-line EditText only. -->
         <attr name="multilineBackground" format="reference"/>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index dcc88f0..3a5b238 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1358,7 +1358,6 @@
   <public type="attr" name="loopViews" />
   <public type="attr" name="dialogTheme" />
   <public type="attr" name="alertDialogTheme" />
-  <public type="attr" name="textLineHeight" />
   <public type="attr" name="dividerVertical" />
   <public type="attr" name="homeAsUpIndicator" />
   <public type="attr" name="enterFadeDuration" />
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index d780335..e48321c 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1343,9 +1343,9 @@
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_sdcardWrite" product="default">Allows an application to write to the SD card.</string>
 
-    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
     <string name="permlab_mediaStorageWrite" product="default">modify/delete internal media storage contents</string>
-    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
     <string name="permdesc_mediaStorageWrite" product="default">Allows an application to modify the contents of the internal media storage.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index d34c6c1..f0f101e 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -690,7 +690,7 @@
         <item name="colorForeground">@android:color/bright_foreground_holo_dark</item>
         <item name="colorForegroundInverse">@android:color/bright_foreground_inverse_holo_dark</item>
         <item name="colorBackground">@android:color/background_holo_dark</item>
-        <item name="colorBackgroundCacheHint">?android:attr/colorBackground</item>
+        <item name="colorBackgroundCacheHint">@android:drawable/background_cache_hint_selector_holo_dark</item>
         <item name="disabledAlpha">0.5</item>
         <item name="backgroundDimAmount">0.6</item>
 
@@ -952,7 +952,7 @@
         <item name="colorForeground">@android:color/bright_foreground_holo_light</item>
         <item name="colorForegroundInverse">@android:color/bright_foreground_inverse_holo_light</item>
         <item name="colorBackground">@android:color/background_holo_light</item>
-        <item name="colorBackgroundCacheHint">?android:attr/colorBackground</item>
+        <item name="colorBackgroundCacheHint">@android:drawable/background_cache_hint_selector_holo_light</item>
         <item name="disabledAlpha">0.5</item>
         <item name="backgroundDimAmount">0.6</item>
 
diff --git a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java
index 5959cf3..4e5fc0e 100644
--- a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java
+++ b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java
@@ -25,6 +25,7 @@
 import android.app.Instrumentation;
 import android.os.Handler;
 import android.os.Message;
+import android.provider.Settings;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.net.NetworkInfo.State;
@@ -78,6 +79,11 @@
         Log.v(LOG_TAG, "tear down ConnectivityManagerTestActivity");
         wl.release();
         cmActivity.removeConfiguredNetworksAndDisableWifi();
+        // if airplane mode is set, disable it.
+        if (Settings.System.getInt(getInstrumentation().getContext().getContentResolver(),
+                Settings.System.AIRPLANE_MODE_ON) == 1) {
+            cmActivity.setAirplaneMode(getInstrumentation().getContext(), false);
+        }
         super.tearDown();
     }
 
@@ -297,8 +303,6 @@
                                               State.DISCONNECTED);
         networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
         assertEquals(State.DISCONNECTED, networkInfo.getState());
-        cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_WIFI, networkInfo.getState(),
-                NetworkState.DO_NOTHING, State.DISCONNECTED);
 
         // Enable airplane mode
         cmActivity.setAirplaneMode(getInstrumentation().getContext(), true);
@@ -308,13 +312,9 @@
             Log.v(LOG_TAG, "exception: " + e.toString());
         }
 
-        // Validate the state transition
-        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
-            Log.v(LOG_TAG, "Wifi state transition validation failed.");
-            Log.v(LOG_TAG, "reason: " +
-                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
-            assertTrue(false);
-        }
+        networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
+        assertEquals(State.DISCONNECTED, networkInfo.getState());
+
         if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) {
             Log.v(LOG_TAG, "Mobile state transition validation failed.");
             Log.v(LOG_TAG, "reason: " +
diff --git a/docs/html/googleb38c1d60b7ba5d19.html b/docs/html/googleb38c1d60b7ba5d19.html
deleted file mode 100644
index e69de29..0000000
--- a/docs/html/googleb38c1d60b7ba5d19.html
+++ /dev/null
diff --git a/docs/html/googlef295f8c7d59b0d29.html b/docs/html/googlef295f8c7d59b0d29.html
new file mode 100644
index 0000000..89c9f8d
--- /dev/null
+++ b/docs/html/googlef295f8c7d59b0d29.html
@@ -0,0 +1 @@
+google-site-verification: googlef295f8c7d59b0d29.html
\ No newline at end of file
diff --git a/docs/html/guide/appendix/api-levels.jd b/docs/html/guide/appendix/api-levels.jd
index 50e5149..5898fe5 100644
--- a/docs/html/guide/appendix/api-levels.jd
+++ b/docs/html/guide/appendix/api-levels.jd
@@ -160,7 +160,6 @@
 element might look like this: </p>
 
 <pre>&lt;manifest&gt;
-  ...
   &lt;uses-sdk android:minSdkVersion="5" /&gt;
   ...
 &lt;/manifest&gt;</pre>
diff --git a/docs/html/guide/developing/eclipse-adt.jd b/docs/html/guide/developing/eclipse-adt.jd
index 1594159..f8d32e7 100644
--- a/docs/html/guide/developing/eclipse-adt.jd
+++ b/docs/html/guide/developing/eclipse-adt.jd
@@ -13,7 +13,7 @@
         <li><a href="#RunningOnDevice">Running on a device</a></li>
       </ol>
     </li>
-    <li><a href="#RunConfig">Creating a Custom Run Configuration</a></li>
+    <li><a href="#RunConfig">Creating a Run Configuration</a></li>
     <li><a href="#Signing">Setting Up Application Signing</a></li>
     <li><a href="#libraryProject">Working with Library Projects</a>
       <ol>
@@ -222,7 +222,7 @@
 
 <p>To set or change the launch configuration used for your project, use the launch configuration
 manager.
-See <a href="#launchconfig">Creating a Launch Configuration</a> for information.</p>
+See <a href="#RunConfig">Creating a Run Configuration</a> for information.</p>
 
 <p>Be certain to create multiple AVDs upon which to test your application. You should have one AVD
 for each platform and screen type with which your application is compatible. For
@@ -296,7 +296,7 @@
   <li>Adjust your desired launch configuration settings.
     <p>In the Target tab, consider whether you'd like to use Manual or Automatic mode
     when selecting an AVD to run your application.
-    See the following section on <a href=#AutoAndManualModes">Automatic and manual target 
+    See the following section on <a href="#AutoAndManualTargetModes">Automatic and manual target 
     modes</a>).</p>
     <p>You can specify any emulator options to the Additional Emulator Command
     Line Options field. For example, you could add <code>-scale 96dpi</code> to
@@ -541,7 +541,6 @@
     &lt;activity android:name="GameActivity" /&gt;
     ...
   &lt;/application&gt;
-  ...
 &lt;/manifest&gt;</pre>
 
 
@@ -611,7 +610,6 @@
     &lt;activity android:name="com.example.android.tictactoe.library.GameActivity" /&gt;
     ...
   &lt;/application&gt;
-  ...
 &lt;/manifest&gt;</pre>
 
 <p>For more information about the manifest file, see the documentation for <a
diff --git a/docs/html/guide/developing/other-ide.jd b/docs/html/guide/developing/other-ide.jd
index 8c61771a..234b18f 100644
--- a/docs/html/guide/developing/other-ide.jd
+++ b/docs/html/guide/developing/other-ide.jd
@@ -700,7 +700,6 @@
     &lt;activity android:name="GameActivity" /&gt;
     ...
   &lt;/application&gt;
-  ...
 &lt;/manifest&gt;</pre>
 
 <h4>Updating a library project</h4>
@@ -796,7 +795,6 @@
     &lt;activity android:name="com.example.android.tictactoe.library.GameActivity" /&gt;
     ...
   &lt;/application&gt;
-  ...
 &lt;/manifest&gt;</pre>
 
 <p>For more information about the manifest file, see the documentation for <a
@@ -806,7 +804,7 @@
 
 <p>To build an application project that depends on one or more library projects,
 you can use the standard Ant build commands and compile modes, as described in
-<a href=#Building">Building Your Application</a>, earlier in this document. The
+<a href="#Building">Building Your Application</a>, earlier in this document. The
 tools compile and merge all libraries referenced by the application as part
 of compiling the dependent application project. No additional commands or steps
 are necessary. </p>
diff --git a/docs/html/guide/developing/testing/testing_eclipse.jd b/docs/html/guide/developing/testing/testing_eclipse.jd
index ba7eaba..370c142 100644
--- a/docs/html/guide/developing/testing/testing_eclipse.jd
+++ b/docs/html/guide/developing/testing/testing_eclipse.jd
@@ -505,15 +505,14 @@
     pane and moves the focus to the first line of the test method.
 </p>
 <p>
-    The results of a successful test are shown in
-    <a href="#TestResults">Figure 1. Messages for a successful test</a>:
+    The results of a successful test are shown in figure 1.
 </p>
 <a href="{@docRoot}images/testing/eclipse_test_results.png">
     <img src="{@docRoot}images/testing/eclipse_test_results.png"
          alt="Messages for a successful test" height="327px" id="TestResults"/>
 </a>
 <p class="img-caption">
-    <strong>Figure 1.</strong> Messages for a successful test
+    <strong>Figure 1.</strong> Messages for a successful test.
 </p>
 <p>
     The lower pane is for stack traces. If you highlight a failed test in the upper pane, the
@@ -521,14 +520,11 @@
     test code, you can double-click it to display the code in an editor view pane, with the
     line highlighted. For a successful test, the lower pane is empty.
 </p>
-<p>
-    The results of a failed test are shown in
-    <a href="#FailedTestResults">Figure 2. Messages for a test failure</a>
-</p>
+<p>The results of a failed test are shown in figure 2.</p>
 <a href="{@docRoot}images/testing/eclipse_test_run_failure.png">
     <img src="{@docRoot}images/testing/eclipse_test_run_failure.png"
-         alt="Messages for a test failure" height="372px" id="TestRun"/>
+         alt="" height="372px" id="TestRun"/>
 </a>
 <p class="img-caption">
-    <strong>Figure 2.</strong> Messages for a test failure
+    <strong>Figure 2.</strong> Messages for a test failure.
 </p>
diff --git a/docs/html/guide/developing/testing/testing_otheride.jd b/docs/html/guide/developing/testing/testing_otheride.jd
index 523a8e5..adb0efa 100644
--- a/docs/html/guide/developing/testing/testing_otheride.jd
+++ b/docs/html/guide/developing/testing/testing_otheride.jd
@@ -296,7 +296,7 @@
 <h2 id="RunTestsCommand">Running Tests</h2>
 <p>
     You run tests from the command line, either with Ant or with an
-    <a href="{@docRoot}http://developer.android.com/guide/developing/tools/adb.html">
+    <a href="{@docRoot}guide/developing/tools/adb.html">
     Android Debug Bridge (adb)</a> shell.
 </p>
 <h3 id="RunTestsAnt">Quick build and run with Ant</h3>
@@ -318,7 +318,7 @@
 <h3 id="RunTestsDevice">Running tests on a device or emulator</h3>
 <p>
     When you run tests from the command line with
-    <a href="{@docRoot}http://developer.android.com/guide/developing/tools/adb.html">
+    <a href="{@docRoot}guide/developing/tools/adb.html">
     Android Debug Bridge (adb)</a>, you get more options for choosing the tests
     to run than with any other method. You can select individual test methods, filter tests
     according to their annotation, or specify testing options. Since the test run is controlled
diff --git a/docs/html/guide/developing/tools/adt.html b/docs/html/guide/developing/tools/adt.html
new file mode 100644
index 0000000..5ba2ef5
--- /dev/null
+++ b/docs/html/guide/developing/tools/adt.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+<meta http-equiv="refresh" content="0;url=http://developer.android.com/sdk/eclipse-adt.html">
+<title>Redirecting...</title>
+</head>
+<body>
+<p>You should be redirected. Please <a
+href="http://developer.android.com/sdk/eclipse-adt.html">click here</a>.</p>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/html/guide/developing/tools/adt.jd b/docs/html/guide/developing/tools/adt.jd
deleted file mode 100644
index eb7ad4f..0000000
--- a/docs/html/guide/developing/tools/adt.jd
+++ /dev/null
@@ -1,154 +0,0 @@
-page.title=ADT Plugin
-@jd:body
-
-<p>The Android Development Tools (ADT) plugin adds powerful extensions to the Eclipse integrated development environment. It allows you to create and debug your Android applications easier and faster. If you use Eclipse, the ADT plugin gives you an incredible boost in developing Android applications:</p>
-
-<ul>
-  <li>It gives you access to other Android development tools from inside the Eclipse IDE. For example, ADT lets you access the many capabilities of the DDMS tool: take screenshots, manage port-forwarding, set breakpoints, and view thread and process information directly from Eclipse.</li>
-  <li>It provides a New Project Wizard, which helps you quickly create and set up all of the basic files you'll need for a new Android application.</li>
-  <li>It automates and simplifies the process of building your Android application.</li>
-  <li>It provides an Android code editor that helps you write valid XML for your Android manifest and resource files.</li>
-</ul>
-
-<h2 id="installingplugin">Installing the Eclipse Plugin (ADT)</h2>
-
-<p>If you <em>will not</em> be using the Eclipse IDE, you do not need to download or install the ADT plugin.</p>
-
-<p>To download and install the ADT plugin, follow the steps below for your respective Eclipse version. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="50%">
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; <strong>Find
-            and Install...</strong>. </li>
-
-    <li>In the dialog that appears, select <strong>Search for new features to install</strong> and click <strong>Next</strong>. </li>
-    <li>Click <strong>New Remote Site</strong>. </li>
-    <li>In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL:
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Click <strong>OK</strong>.</p> </li>
-    <li>You should now see the new site added to the search list (and checked).
-        Click <strong>Finish</strong>. </li>
-    <li>In the subsequent Search Results dialog box, select the checkbox for
-    <strong>Android Plugin</strong> &gt; <strong>Developer Tools</strong>.
-    This will check both features:  "Android Developer Tools", and "Android
-    Editors". The Android Editors feature is optional, but recommended.  If
-    you choose to install it, you need the WST plugin mentioned earlier in this
-    page. Click <strong>Next</strong>. </li>
-    <li>Read the license agreement and then select <strong>Accept terms of the license agreement</strong>. 
-     Click <strong>Next</strong>. </li>
-    <li>Click <strong>Finish</strong>. </li>
-
-    <li>The ADT plugin is not signed; you can accept the installation anyway
-        by clicking <strong>Install All</strong>. </li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.
-    </li>
-    <li>In the dialog that appears, click the <strong>Available Software</strong> tab.
-    </li>
-    <li>Click <strong>Add Site...</strong>
-    </li>
-    <li>Enter this as the Location:
-      <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-      <p>Click <strong>OK</strong>.</p></li>
-    <li>Back in the Available Software view, you should see the plugin. Select the checkbox next to 
-      <em>Developer Tools</em>  and click <strong>Install...</strong>
-    </li>
-    <li>On the subsequent Install window, "Android Developer Tools", and "Android Editors" should both be checked. 
-    The Android Editors feature is optional, but recommended.  If
-    you choose to install it, you need the WST plugin mentioned earlier in this
-    page. Click <strong>Next</strong>.
-     </li>
-    <li>Accept the license agreement and click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-</tr>
-</table>
-
-<h3 id="troubleshooting">Troubleshooting ADT Installation</h3>
-<p> 
-If you are having trouble downloading the ADT plugin after following the steps above, here are some suggestions: </p>
-
-<ul>
-	<li>In Step 4, try changing the remote update site URL to use <code>http</code>, rather than <code>https</code>. </li>
-	<li>If you are behind a firewall (such as a corporate firewall), make
-        sure that you have properly configured your proxy settings in Eclipse.
-        In Eclipse 3.3/3.4, you can configure proxy information from the main
-        Eclipse menu in <strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt; <strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network Connections</strong>.</li>
-</ul>
-<p> 
-If you are still unable to use Eclipse to download the ADT plugin, follow these steps to download and install the plugin from your computer:
-</p>
-<ol>
-<li><a href="{@docRoot}sdk/adt_download.html">Download the ADT zip file</a> (do not unpack it).
-<li>Follow steps 1 and 2 in the default install instructions (above).
-<li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
-    In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong>
-<li>Browse and select the downloaded the zip file.
-<li>Follow the remaining procedures, above, starting from steps 5.
-</ol>
-<p> 
-Note that to update your plugin, you will have to follow these steps again instead of the default update instructions.</p>
-
-<p>Note that the "Android Editors" feature of ADT requires several optional 
-Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installation might not include those components. 
-For information about how to quickly add the necessary components to your 
-Eclipse installation, see the troubleshooting topic 
-<a href="{@docRoot}resources/faq/troubleshooting.html#installeclipsecomponents">ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-<a name="Updating_the_ADT_plugin" id="Updating_the_ADT_plugin"></a>
-
-<h2>Updating the ADT Plugin </h2>
-
-<p>In some cases, a new ADT plugin may become available for your existing version of the SDK. You can use the steps below to update 
-the ADT plugin from inside Eclipse. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="50%">
-<ol>
-    <li> Select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; <strong>Find and Install...</strong>. </li>
-    <li> Select <strong>Search for updates of the currently installed features</strong> and click <strong>Finish</strong>. </li>
-    <li> If an update for ADT is available, select and install. </li>
-</ol>
-
-<p> Alternatively, </p>
-<ol>
-    <li> Select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; <strong>Manage Configuration</strong>. </li>
-    <li> Navigate down the tree and select <strong>Android Development Tools &lt;version&gt;</strong> </li>
-    <li> Select <strong>Scan for Updates</strong> under <strong>Available Tasks</strong>.</li>
-</ol>
-</td>
-<td>
-<ol>
-    <li>Select <strong>Help</strong> &gt; <strong>Software Updates...</strong></li>
-    <li>Select the <strong>Installed Software</strong> tab.</li>
-    <li>Click <strong>Update...</strong></li>
-    <li>If an update for ADT is available, select it and click <strong>Finish</strong>.</li>
-</ol>
-</td>
-</tr>
-</table>
diff --git a/docs/html/guide/developing/tools/emulator.jd b/docs/html/guide/developing/tools/emulator.jd
index f07cdd5..2250979 100644
--- a/docs/html/guide/developing/tools/emulator.jd
+++ b/docs/html/guide/developing/tools/emulator.jd
@@ -496,8 +496,8 @@
   <td>Enable the root shell (as in <code>-shell</code> and specify the QEMU character 
   device to use for communication with the shell.</td>
   <td>&lt;device&gt; must be a QEMU device type. See the documentation for '-serial <em>dev</em>' at 
-  <a href="http://www.nongnu.org/qemu/qemu-doc.html#SEC10">http://www.bellard.org/qemu/qemu-doc.html#SEC10</a> 
-  for a list of device types.</p>
+  <a href="http://wiki.qemu.org/download/qemu-doc.html">wiki.qemu.org</a> 
+  for more information.</p>
 
 <p>Here are some examples: </p>
 <ul>
diff --git a/docs/html/guide/practices/screens_support.jd b/docs/html/guide/practices/screens_support.jd
index 7811d90..f503749 100644
--- a/docs/html/guide/practices/screens_support.jd
+++ b/docs/html/guide/practices/screens_support.jd
@@ -214,7 +214,7 @@
 <p class="table-caption" id="screens-table"><strong>Table 1.</strong> Screen
 sizes and densities of emulator skins included in the Android SDK.</p>
 
-  <table id="screens-table">
+  <table>
     <tbody>
     <tr>
       <td style="border:none"></td>
@@ -693,13 +693,13 @@
 
 <pre>
 &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;
-    ...
     &lt;supports-screens
         android:smallScreens="true"
         android:normalScreens="true"
         android:largeScreens="true"
         android:xlargeScreens="true"
         android:anyDensity="true" /&gt;
+    ...
 &lt;/manifest&gt;
 </pre>
 <!--  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:resizeable="true" -->
diff --git a/docs/html/guide/publishing/app-signing.jd b/docs/html/guide/publishing/app-signing.jd
index 6758054..c7e1c79 100644
--- a/docs/html/guide/publishing/app-signing.jd
+++ b/docs/html/guide/publishing/app-signing.jd
@@ -563,7 +563,7 @@
 it will also perfom package alignment with {@code zipalign}.
 Because the Export Wizard uses both Keytool and Jarsigner, you should
 ensure that they are accessible on your computer, as described above
-in the <a href=#setup">Basic Setup for Signing</a>.</p>
+in the <a href="#setup">Basic Setup for Signing</a>.</p>
 
 <p>To create a signed and aligned .apk in Eclipse:</p>
 
diff --git a/docs/html/guide/publishing/licensing.jd b/docs/html/guide/publishing/licensing.jd
index fc83ec0..40439f0 100644
--- a/docs/html/guide/publishing/licensing.jd
+++ b/docs/html/guide/publishing/licensing.jd
@@ -784,7 +784,6 @@
 <pre>&lt;?xml version="1.0" encoding="utf-8"?&gt;
 
 &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android" ..."&gt;
-    ...
     &lt;!-- Devices &gt;= 3 have version of Android Market that supports licensing. --&gt;
     &lt;uses-sdk android:minSdkVersion="3" /&gt;
     &lt;!-- Required permission to check licensing. --&gt;
diff --git a/docs/html/guide/publishing/preparing.jd b/docs/html/guide/publishing/preparing.jd
index 45a5b77..f471961 100644
--- a/docs/html/guide/publishing/preparing.jd
+++ b/docs/html/guide/publishing/preparing.jd
@@ -89,7 +89,7 @@
 <p>To protect your person, organization, and intellectual property, you may want
 to provide an End User License Agreement (EULA) with your application. 
 
-<h3 id="eula">3. Consider adding support for Android Market Licensing</h3>
+<h3>3. Consider adding support for Android Market Licensing</h3>
 
 <p>If you are publishing a paid application through Android Market, consider
 adding support for Android Market Licensing. Licensing lets you control access
diff --git a/docs/html/guide/publishing/versioning.jd b/docs/html/guide/publishing/versioning.jd
index b646247..01bfba8 100644
--- a/docs/html/guide/publishing/versioning.jd
+++ b/docs/html/guide/publishing/versioning.jd
@@ -16,7 +16,7 @@
 <h2>In this document</h2>
 
 <ol>
-<li><a href="#appversion">Setting Application Version</a></li>
+<li><a href="#appversioning">Setting Application Version</a></li>
 <li><a href="#minsdkversion">Specifying Your Application's System API Requirements</a>
 </ol>
 
diff --git a/docs/html/guide/topics/admin/device-admin.jd b/docs/html/guide/topics/admin/device-admin.jd
index fda716a..b86a5f0 100644
--- a/docs/html/guide/topics/admin/device-admin.jd
+++ b/docs/html/guide/topics/admin/device-admin.jd
@@ -156,14 +156,14 @@
 <h2 id="sample">Sample Application</h2>
 
 <p>The examples used in this document are based on the <a
-href="{@docRoot}resources/samples/ApiDemos/src/com/example/
-android/apis/app/DeviceAdminSample.html">Device Administration API
+href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html">
+Device Administration API
 sample</a>, which is included in the SDK samples. For information on downloading and
 installing the SDK samples, see <a
 href="{@docRoot}resources/samples/get.html">
 Getting the Samples</a>. Here is the  <a
-href="{@docRoot}resources/samples/ApiDemos/src/com/example/
-android/apis/app/DeviceAdminSample.html">complete code</a> for
+href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html">
+complete code</a> for
 the sample. </p>
 <p>The
 sample application offers a demo of device admin features. It presents users
diff --git a/docs/html/guide/topics/data/backup.jd b/docs/html/guide/topics/data/backup.jd
index 623ee22..dec2146 100644
--- a/docs/html/guide/topics/data/backup.jd
+++ b/docs/html/guide/topics/data/backup.jd
@@ -124,7 +124,7 @@
 in order to store your data on their servers.</li>
   <li>Define a backup agent by either:</p>
     <ol type="a">
-      <li><a href="#backupAgent">Extending BackupAgent</a>
+      <li><a href="#BackupAgent">Extending BackupAgent</a>
         <p>The {@link android.app.backup.BackupAgent} class provides the central interface with
 which your application communicates with the Backup Manager. If you extend this class
 directly, you must override {@link
@@ -133,7 +133,7 @@
 android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor)
 onRestore()} to handle the backup and restore operations for your data.</p>
         <p><em>Or</em></p>
-      <li><a href="#backupAgentHelper">Extending BackupAgentHelper</a>
+      <li><a href="#BackupAgentHelper">Extending BackupAgentHelper</a>
         <p>The {@link android.app.backup.BackupAgentHelper} class provides a convenient
 wrapper around the {@link android.app.backup.BackupAgent} class, which minimizes the amount of code
 you need to write. In your {@link android.app.backup.BackupAgentHelper}, you must use one or more
@@ -166,6 +166,7 @@
 
 <pre>
 &lt;manifest ... &gt;
+    ...
     &lt;application android:label="MyApplication"
                  <b>android:backupAgent="MyBackupAgent"</b>&gt;
         &lt;activity ... &gt;
@@ -277,7 +278,7 @@
   <dt>{@link
 android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor)
 onBackup()}</dt>
-    <dd>The Backup Manager calls this method after you <a href="#RequestBackup">request a
+    <dd>The Backup Manager calls this method after you <a href="#RequestingBackup">request a
 backup</a>. In this method, you read your application data from the device and pass the data you
 want to back up to the Backup Manager, as described below in <a href="#PerformingBackup">Performing
 backup</a>.</dd>
@@ -286,8 +287,8 @@
 android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor)
 onRestore()}</dt>
     <dd>The Backup Manager calls this method during a restore operation (you can <a
-href="#RequestRestore">request a restore</a>, but the system automatically performs restore when the
-user re-installs your application). When it calls this method, the Backup Manager delivers your
+href="#RequestingRestore">request a restore</a>, but the system automatically performs restore when
+the user re-installs your application). When it calls this method, the Backup Manager delivers your
 backup data, which you then restore to the device, as described below in <a
 href="#PerformingRestore">Performing restore</a>.</dd>
 </dl>
diff --git a/docs/html/guide/topics/graphics/index.jd b/docs/html/guide/topics/graphics/index.jd
index 92771a8..be1b0fc 100644
--- a/docs/html/guide/topics/graphics/index.jd
+++ b/docs/html/guide/topics/graphics/index.jd
@@ -31,8 +31,8 @@
 and which tasks they're best suited for.</p>
 
 <p>If you're specifically looking for information on drawing 3D graphics, this page won't
-help a lot. However, the information below, on <a href="#drawing-with-canvas">Drawing with a Canvas</a>
-(and the section on SurfaceView), 
+help a lot. However, the information below about how to <a href="#draw-with-canvas">Draw with a
+Canvas</a> (and the section on SurfaceView), 
 will give you a quick idea of how you should draw to the View hierarchy. For more information
 on Android's 3D graphic utilities (provided by the OpenGL ES API), 
 read <a href="opengl.html">3D with OpenGL</a> and refer to other OpenGL documentation.</p>
diff --git a/docs/html/guide/topics/manifest/manifest-intro.jd b/docs/html/guide/topics/manifest/manifest-intro.jd
index efbfa5a..d7a3e3e 100644
--- a/docs/html/guide/topics/manifest/manifest-intro.jd
+++ b/docs/html/guide/topics/manifest/manifest-intro.jd
@@ -441,6 +441,7 @@
 <pre>
 &lt;manifest . . . &gt;
     &lt;permission android:name="com.example.project.DEBIT_ACCT" . . . /&gt;
+    &lt;uses-permission android:name="com.example.project.DEBIT_ACCT" /&gt;
     . . .
     &lt;application . . .&gt;
         &lt;activity android:name="com.example.project.FreneticActivity"
@@ -449,9 +450,6 @@
             . . .
         &lt;/activity&gt;
     &lt;/application&gt;
-    . . .
-    &lt;uses-permission android:name="com.example.project.DEBIT_ACCT" /&gt;
-    . . .
 &lt;/manifest&gt;
 </pre>
 
diff --git a/docs/html/guide/topics/manifest/permission-tree-element.jd b/docs/html/guide/topics/manifest/permission-tree-element.jd
index aecc930..6d6cd0a 100644
--- a/docs/html/guide/topics/manifest/permission-tree-element.jd
+++ b/docs/html/guide/topics/manifest/permission-tree-element.jd
@@ -42,7 +42,7 @@
 reference to a string resource, so that it can be localized like other 
 strings in the user interface.</dd>
 
-<dt><a name="nm"</a>{@code android:name}</dt>
+<dt><a name="nm"></a>{@code android:name}</dt>
 <dd>The name that's at the base of the permission tree.  It serves as 
 a prefix to all permission names in the tree.  Java-style scoping should 
 be used to ensure that the name is unique.  The name must have more than 
diff --git a/docs/html/guide/topics/manifest/uses-feature-element.jd b/docs/html/guide/topics/manifest/uses-feature-element.jd
index 6652aff..5242126 100644
--- a/docs/html/guide/topics/manifest/uses-feature-element.jd
+++ b/docs/html/guide/topics/manifest/uses-feature-element.jd
@@ -339,7 +339,7 @@
 <p class="caution">It's important to understand that the permissions that you
 request in <code>&lt;uses-permission&gt;</code> elements can directly affect how
 Android Market filters your application. The reference section <a
-href="permissions-features">Permissions that Imply Feature Requirements</a>,
+href="#permissions">Permissions that Imply Feature Requirements</a>,
 below, lists the full set of permissions that imply feature requirements and
 therefore trigger filtering.</p>
 
@@ -403,10 +403,9 @@
 </dl>
 
 <pre>&lt;manifest ...>
-...
     &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
     &lt;uses-sdk android:minSdkVersion="3" />
-...
+    ...
 &lt;/manifest></pre>
 
 <dl>
@@ -418,10 +417,9 @@
 </dl>
 
 <pre>&lt;manifest ...>
-...
     &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
     &lt;uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
-...
+    ...
 &lt;/manifest></pre>
 
 <dl>
@@ -430,11 +428,10 @@
 </dl>
 
 <pre>&lt;manifest ...>
-...
     &lt;uses-feature android:name="android.hardware.bluetooth" />
     &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
     &lt;uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
-...
+    ...
 &lt;/manifest></pre>
 
 <dl>
@@ -445,11 +442,10 @@
 </dl>
 
 <pre>&lt;manifest ...>
-...
     &lt;uses-feature android:name="android.hardware.bluetooth" android:required="false" />
     &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
     &lt;uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
-...
+    ...
 &lt;/manifest></pre>
 
 
diff --git a/docs/html/guide/topics/media/index.jd b/docs/html/guide/topics/media/index.jd
index 558d453..8e18754 100644
--- a/docs/html/guide/topics/media/index.jd
+++ b/docs/html/guide/topics/media/index.jd
@@ -14,7 +14,7 @@
 
 <h2>In this document</h2>
 <ol>
-<li><a href="#playback.html">Audio and Video Playback</a>
+<li><a href="#playback">Audio and Video Playback</a>
     <ol>
       <li><a href="#playraw">Playing from a Raw Resource</li>
       <li><a href="#playfile">Playing from a File or Stream</li>
@@ -63,7 +63,7 @@
 see the <a href="{@docRoot}guide/appendix/media-formats.html">Android Media
 Formats</a> appendix. </p>
 
-<h2 id="play">Audio and Video Playback</h2>
+<h2 id="playback">Audio and Video Playback</h2>
 <p>Media can be played from anywhere: from a raw resource, from a file from the system, 
 or from an available network (URL).</p>
   
diff --git a/docs/html/guide/topics/resources/drawable-resource.jd b/docs/html/guide/topics/resources/drawable-resource.jd
index 9ebed56..79ce669 100644
--- a/docs/html/guide/topics/resources/drawable-resource.jd
+++ b/docs/html/guide/topics/resources/drawable-resource.jd
@@ -381,7 +381,7 @@
 <dd>
 <pre class="stx">
 &lt;?xml version="1.0" encoding="utf-8"?&gt;
-&lt;<a href="#bitmap-element">nine-patch</a>
+&lt;<a href="#ninepatch-element">nine-patch</a>
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:src="@[package:]drawable/<em>drawable_resource</em>"
     android:dither=["true" | "false"] /&gt;
@@ -394,8 +394,8 @@
 <dd>
 <dl class="tag-list">
 
-  <dt id="layerlist-element"><code>&lt;bitmap&gt;</code></dt>
-    <dd>Defines the bitmap source and its properties.
+  <dt id="ninepatch-element"><code>&lt;nine-patch&gt;</code></dt>
+    <dd>Defines the Nine-Patch source and its properties.
       <p class="caps">attributes:</p>
       <dl class="atn-list">
         <dt><code>xmlns:android</code></dt>
@@ -1613,7 +1613,7 @@
 href="more-resources.html#Dimension">dimension resource</a>.</dd>
       </dl>
     </dd>
-  <dt id="solid-element"><code>&lt;size&gt;</code></dt>
+  <dt id="size-element"><code>&lt;size&gt;</code></dt>
     <dd>The size of the shape.
       <p class="caps">attributes:</p>
       <dl class="atn-list">
diff --git a/docs/html/guide/topics/resources/layout-resource.jd b/docs/html/guide/topics/resources/layout-resource.jd
index 36369d3..b069521 100644
--- a/docs/html/guide/topics/resources/layout-resource.jd
+++ b/docs/html/guide/topics/resources/layout-resource.jd
@@ -181,7 +181,7 @@
 in another layout file using <a href="#include-element"><code>&lt;include&gt;</code></a> and
 this layout doesn't require a different {@link android.view.ViewGroup} container. For more
 information about merging layouts, read <a
-href="{@docRoot}resources/articles/layout-tricks-merging.html">Layout
+href="{@docRoot}resources/articles/layout-tricks-merge.html">Layout
 Tricks: Merging</a>.</dd>
 
   </dl>
diff --git a/docs/html/guide/topics/resources/more-resources.jd b/docs/html/guide/topics/resources/more-resources.jd
index 6cae1eb..5f4d5c2 100644
--- a/docs/html/guide/topics/resources/more-resources.jd
+++ b/docs/html/guide/topics/resources/more-resources.jd
@@ -369,11 +369,11 @@
 <dd>
 <dl class="tag-list">
 
-  <dt id="integer-resources-element"><code>&lt;resources&gt;</code></dt>
+  <dt id="id-resources-element"><code>&lt;resources&gt;</code></dt>
     <dd><strong>Required.</strong> This must be the root node.
       <p>No attributes.</p>
     </dd>
-  <dt id="integer-element"><code>&lt;integer&gt;</code></dt>
+  <dt id="id-item-element"><code>&lt;item&gt;</code></dt>
     <dd>Defines a unique ID. Takes no value, only attributes.
       <p class="caps">attributes:</p>
       <dl class="atn-list">
diff --git a/docs/html/guide/topics/resources/providing-resources.jd b/docs/html/guide/topics/resources/providing-resources.jd
index 4f3b0da..5d00db1 100644
--- a/docs/html/guide/topics/resources/providing-resources.jd
+++ b/docs/html/guide/topics/resources/providing-resources.jd
@@ -749,7 +749,7 @@
 
 <p>For example, if your application supports several languages, always include a {@code
 values/} directory (in which your strings are saved) <em>without</em> a <a
-href="#LocalQualifier">language and region qualifier</a>. If you instead put all your string files
+href="#LocaleQualifier">language and region qualifier</a>. If you instead put all your string files
 in directories that have a language and region qualifier, then your application will crash when run
 on a device set to a language that your strings do not support. But, as long as you provide default
 {@code values/} resources, then your application will run properly (even if the user doesn't
diff --git a/docs/html/guide/topics/resources/runtime-changes.jd b/docs/html/guide/topics/resources/runtime-changes.jd
index d75ff4d..e685c9b 100644
--- a/docs/html/guide/topics/resources/runtime-changes.jd
+++ b/docs/html/guide/topics/resources/runtime-changes.jd
@@ -51,7 +51,7 @@
 situation, you have two options:</p>
 
 <ol type="a">
-  <li><a href="#RetainAnObject">Retain an object during a configuration change</a>
+  <li><a href="#RetainingAnObject">Retain an object during a configuration change</a>
   <p>Allow your Activity to restart when a configuration changes, but carry a stateful
 {@link java.lang.Object} to the new instance of your Activity.</p>
 
diff --git a/docs/html/guide/topics/search/search-dialog.jd b/docs/html/guide/topics/search/search-dialog.jd
index 49938b4..ea8dc1c 100644
--- a/docs/html/guide/topics/search/search-dialog.jd
+++ b/docs/html/guide/topics/search/search-dialog.jd
@@ -461,7 +461,7 @@
 }
 </pre>
 
-<p>Compared to the example code in the section about <a href="#PerfomingSearch">Performing a
+<p>Compared to the example code in the section about <a href="#PerformingSearch">Performing a
 Search</a>, all the code to handle the
 search Intent is now in the {@code handleIntent()} method, so that both {@link
 android.app.Activity#onCreate(Bundle)
diff --git a/docs/html/guide/topics/security/security.jd b/docs/html/guide/topics/security/security.jd
index de0c6e5..2e31940 100644
--- a/docs/html/guide/topics/security/security.jd
+++ b/docs/html/guide/topics/security/security.jd
@@ -120,9 +120,8 @@
 
 <pre>&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
     package=&quot;com.android.app.myapp&quot; &gt;
-
     &lt;uses-permission android:name=&quot;android.permission.RECEIVE_SMS&quot; /&gt;
-
+    ...
 &lt;/manifest&gt;</pre>
 
 <p>At application install time, permissions requested by the application are
@@ -175,13 +174,12 @@
 
 <pre>&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
     package=&quot;com.me.app.myapp&quot; &gt;
-
     &lt;permission android:name=&quot;com.me.app.myapp.permission.DEADLY_ACTIVITY&quot;
         android:label=&quot;&#64;string/permlab_deadlyActivity&quot;
         android:description=&quot;&#64;string/permdesc_deadlyActivity&quot;
         android:permissionGroup=&quot;android.permission-group.COST_MONEY&quot;
         android:protectionLevel=&quot;dangerous&quot; /&gt;
-
+    ...
 &lt;/manifest&gt;</pre>
 
 <p>The {@link android.R.styleable#AndroidManifestPermission_protectionLevel
diff --git a/docs/html/guide/topics/testing/contentprovider_testing.jd b/docs/html/guide/topics/testing/contentprovider_testing.jd
index 279e347..e42e631 100644
--- a/docs/html/guide/topics/testing/contentprovider_testing.jd
+++ b/docs/html/guide/topics/testing/contentprovider_testing.jd
@@ -37,7 +37,7 @@
       <ol>
         <li>
           <a
-          href="{@docRoot}guide/topics/testing/topics/testing_android.html">
+          href="{@docRoot}guide/topics/testing/testing_android.html">
           Testing Fundamentals</a>
         </li>
         <li>
@@ -123,7 +123,8 @@
     The constructor then creates a {@link android.test.mock.MockContentResolver} to use as the
     resolver for the test. The {@link android.test.mock.MockContentResolver} class is described in
     detail in the section
-    <a href="{@docRoot}guide/topics/testing/test_android#MockObjectClasses">Mock object classes</a>.
+    <a href="{@docRoot}guide/topics/testing/testing_android.html#MockObjectClasses">Mock object
+classes</a>.
 </p>
 <p>
     Lastly, the constructor creates an instance of the provider under test. This is a normal
@@ -137,7 +138,7 @@
     {@link android.test.ProviderTestCase2} uses {@link android.test.IsolatedContext} and
     {@link android.test.mock.MockContentResolver}, which are standard mock object classes. To
     learn more about them, please read
-    <a href="{@docRoot}guide/topics/testing/test_android#MockObjectClasses">
+    <a href="{@docRoot}guide/topics/testing/testing_android.html#MockObjectClasses">
     Testing Fundamentals</a>.
 </p>
 <h2 id="WhatToTest">What To Test</h2>
diff --git a/docs/html/guide/topics/testing/index.jd b/docs/html/guide/topics/testing/index.jd
index 762a897..cf87187 100644
--- a/docs/html/guide/topics/testing/index.jd
+++ b/docs/html/guide/topics/testing/index.jd
@@ -73,6 +73,7 @@
         to test applications and devices.
     </li>
 </ul>
+<!--
 <h4>Samples</h4>
 <ul>
     <li>
@@ -82,3 +83,4 @@
         testing a {@link android.app.Service}.
     </li>
 </ul>
+-->
diff --git a/docs/html/guide/topics/testing/what_to_test.jd b/docs/html/guide/topics/testing/what_to_test.jd
index e13538a..e8a27da 100644
--- a/docs/html/guide/topics/testing/what_to_test.jd
+++ b/docs/html/guide/topics/testing/what_to_test.jd
@@ -79,6 +79,6 @@
     <a href="{@docRoot}guide/developing/tools/emulator.html#netspeed">Network Speed Emulation</a>.
     To test GPS, you can use the emulator console and {@link android.location.LocationManager}. To
     learn more about the emulator console, please see
-    <a href="{@docRoot}/guide/developing/tools/emulator.html#console">
+    <a href="{@docRoot}guide/developing/tools/emulator.html#console">
     Using the Emulator Console</a>.
 </p>
diff --git a/docs/html/guide/topics/ui/declaring-layout.jd b/docs/html/guide/topics/ui/declaring-layout.jd
index d561bdd..843414a 100644
--- a/docs/html/guide/topics/ui/declaring-layout.jd
+++ b/docs/html/guide/topics/ui/declaring-layout.jd
@@ -16,8 +16,7 @@
       </ol>
     </li>
     <li><a href="#Position">Position</a></li>
-    <li><a href="#SizePaddingMargin">Size, Padding and Margins</a></li>
-    <li><a href="#example">Example Layout</a></li>
+    <li><a href="#SizePaddingMargins">Size, Padding and Margins</a></li>
   </ol>
 
   <h2>Key classes</h2>
diff --git a/docs/html/guide/topics/ui/menus.jd b/docs/html/guide/topics/ui/menus.jd
index ce25b9f..d1c0ff8 100644
--- a/docs/html/guide/topics/ui/menus.jd
+++ b/docs/html/guide/topics/ui/menus.jd
@@ -533,7 +533,7 @@
 Checkable menu items are intended to be used only on a per-session basis and not saved after the
 application is destroyed. If you have application settings that you would like to save for the user,
 you should store the data using <a
-href="#{@docRoot}guide/topics/data/data-storage.html#pref">Shared Preferences</a>.</p>
+href="{@docRoot}guide/topics/data/data-storage.html#pref">Shared Preferences</a>.</p>
 
 
 <h3 id="shortcuts">Shortcut keys</h3>
diff --git a/docs/html/guide/topics/wireless/bluetooth.jd b/docs/html/guide/topics/wireless/bluetooth.jd
index 98b6e7d..b3c76871 100644
--- a/docs/html/guide/topics/wireless/bluetooth.jd
+++ b/docs/html/guide/topics/wireless/bluetooth.jd
@@ -432,7 +432,7 @@
 {@link android.bluetooth.BluetoothSocket} on the same RFCOMM channel. At this
 point, each device can obtain input and output streams and data transfer can
 begin, which is discussed in the section about <a
-href="#ManagingConnection">Managing a Connection</a>. This section describes how
+href="#ManagingAConnection">Managing a Connection</a>. This section describes how
 to initiate the connection between two devices.</p>
 
 <p>The server device and the client device each obtain the required {@link
@@ -603,7 +603,7 @@
 <p><code>manageConnectedSocket()</code> is a fictional method in the application
 that will
 initiate the thread for transferring data, which is discussed in the section
-about <a href="#ManagingConnection">Managing a Connection</a>.</p>
+about <a href="#ManagingAConnection">Managing a Connection</a>.</p>
 
 <p>You should usually close your {@link android.bluetooth.BluetoothServerSocket}
 as soon as you are done listening for incoming connections. In this example, {@link
@@ -724,7 +724,7 @@
 
 <p><code>manageConnectedSocket()</code> is a fictional method in the application
 that will initiate the thread for transferring data, which is discussed in the section
-about <a href="#ManagingConnection">Managing a Connection</a>.</p>
+about <a href="#ManagingAConnection">Managing a Connection</a>.</p>
 
 <p>When you're done with your {@link android.bluetooth.BluetoothSocket}, always
 call {@link android.bluetooth.BluetoothSocket#close()} to clean up.
diff --git a/docs/html/guide/webapps/index.jd b/docs/html/guide/webapps/index.jd
index 280380f..069290a 100644
--- a/docs/html/guide/webapps/index.jd
+++ b/docs/html/guide/webapps/index.jd
@@ -63,8 +63,8 @@
 bind JavaScript to Android APIs.</dd>
   <dt><a href="{@docRoot}guide/webapps/debugging.html"><strong>Debugging Web Apps</strong></a></dt>
   <dd>How to debug web apps using JavaScript Console APIs.</dd>
-  <dt><a href="{@docRoot}guide/webapps/best-practices.html"><strong>Best Practices for Web</strong>
-Apps</a></dt>
+  <dt><a href="{@docRoot}guide/webapps/best-practices.html"><strong>Best Practices for Web
+Apps</strong></a></dt>
   <dd>A list of practices you should follow, in order to provide an effective web application on
 Android-powered devices.</dd>
 </dl>
diff --git a/docs/html/images/developing/avd-dialog.png b/docs/html/images/developing/avd-dialog.png
old mode 100755
new mode 100644
index 693aa42..d0e2eec
--- a/docs/html/images/developing/avd-dialog.png
+++ b/docs/html/images/developing/avd-dialog.png
Binary files differ
diff --git a/docs/html/images/sdk_manager_packages.png b/docs/html/images/sdk_manager_packages.png
old mode 100755
new mode 100644
index 027cce7..fd59ac6
--- a/docs/html/images/sdk_manager_packages.png
+++ b/docs/html/images/sdk_manager_packages.png
Binary files differ
diff --git a/docs/html/resources/articles/layout-tricks-merge.jd b/docs/html/resources/articles/layout-tricks-merge.jd
index 3e165d2..00e0479 100644
--- a/docs/html/resources/articles/layout-tricks-merge.jd
+++ b/docs/html/resources/articles/layout-tricks-merge.jd
@@ -1,7 +1,9 @@
 page.title=Layout Tricks: Merging Layouts
 @jd:body
 
-<p>The <a href=""></a> articles showed you how to use the <code>&lt;include /&gt;</code> tag in XML layouts, to reuse and share your layout code. This article explains the <code>&lt;merge /&gt;</code> tag and how it complements the  <code>&lt;include /&gt;</code> tag.</p>
+<p>The articles showed you how to use the <code>&lt;include /&gt;</code> tag in XML layouts, to
+reuse and share your layout code. This article explains the <code>&lt;merge /&gt;</code> tag and how
+it complements the  <code>&lt;include /&gt;</code> tag.</p>
 
 <p>The <code>&lt;merge /&gt;</code> tag was created for the purpose of
 optimizing Android layouts by reducing the number of levels in view trees. It's
diff --git a/docs/html/resources/articles/layout-tricks-stubs.jd b/docs/html/resources/articles/layout-tricks-stubs.jd
index 88e4b25..88bcb78 100644
--- a/docs/html/resources/articles/layout-tricks-stubs.jd
+++ b/docs/html/resources/articles/layout-tricks-stubs.jd
@@ -17,7 +17,7 @@
 inflated and added to the user interface only when you decide so.</p>
 
 <p>The following screenshot comes from the <a
-href="http://code.google/p/shelves">Shelves</a> application. The main purpose of
+href="http://code.google.com/p/shelves">Shelves</a> application. The main purpose of
 the activity shown in the screenshot is to present the user with a browsable
 list of books:</p>
 
diff --git a/docs/html/resources/tutorials/hello-world.jd b/docs/html/resources/tutorials/hello-world.jd
index 77ffc6f..67c2521 100644
--- a/docs/html/resources/tutorials/hello-world.jd
+++ b/docs/html/resources/tutorials/hello-world.jd
@@ -115,7 +115,7 @@
         </ul>
         <p>Click <strong>Finish</strong>.</p>
 
-        <a href="images/hello_world_1.png"><img src="images/hello_world_1.png" style="height:230px" alt="" /></a>
+        <a href="images/hello_world_1.png"><img src="images/hello_world_1.png" style="height:400px" alt="" /></a>
 
         <p>Here is a description of each field:</p>
       
diff --git a/docs/html/resources/tutorials/images/hello_world_0.png b/docs/html/resources/tutorials/images/hello_world_0.png
index 330a07c..2674045 100644
--- a/docs/html/resources/tutorials/images/hello_world_0.png
+++ b/docs/html/resources/tutorials/images/hello_world_0.png
Binary files differ
diff --git a/docs/html/resources/tutorials/images/hello_world_1.png b/docs/html/resources/tutorials/images/hello_world_1.png
index 1ff8e2b..dc4b4ad 100644
--- a/docs/html/resources/tutorials/images/hello_world_1.png
+++ b/docs/html/resources/tutorials/images/hello_world_1.png
Binary files differ
diff --git a/docs/html/resources/tutorials/testing/activity_test.jd b/docs/html/resources/tutorials/testing/activity_test.jd
index 87dd183..ec878d2 100644
--- a/docs/html/resources/tutorials/testing/activity_test.jd
+++ b/docs/html/resources/tutorials/testing/activity_test.jd
@@ -368,14 +368,14 @@
       package="com.android.example.spinner.test"
       android:versionCode="1"
       android:versionName="1.0"&gt;
-    &lt;application android:icon="@drawable/icon" android:label="@string/app_name"&gt;
-
-    &lt;uses-library android:name="android.test.runner" /&gt;
-    &lt;/application&gt;
     &lt;uses-sdk android:minSdkVersion="3" /&gt;
     &lt;instrumentation
         android:targetPackage="com.android.example.spinner"
         android:name="android.test.InstrumentationTestRunner" /&gt;
+    &lt;application android:icon="@drawable/icon" android:label="@string/app_name"&gt;
+        &lt;uses-library android:name="android.test.runner" /&gt;
+        ...
+    &lt;/application&gt;
 &lt;/manifest&gt;
 </pre>
 <p>
diff --git a/docs/html/sdk/adding-components.jd b/docs/html/sdk/adding-components.jd
index d2e55d8..ca27bba 100644
--- a/docs/html/sdk/adding-components.jd
+++ b/docs/html/sdk/adding-components.jd
@@ -132,7 +132,7 @@
 
 <p>When you see that a new revision is available, you can use the Android SDK
 and AVD Manager to quickly download it to your environment. Follow the same
-procedure as given in <a href="">Installing SDK Components</a>, above. The new
+procedure as given in <a href="#InstallingComponents">Installing SDK Components</a>, above. The new
 component is installed in place of the old, but without impacting your
 applications. </p>
 
diff --git a/docs/html/sdk/android-2.3-highlights.jd b/docs/html/sdk/android-2.3-highlights.jd
index f60bf51..1a603af 100644
--- a/docs/html/sdk/android-2.3-highlights.jd
+++ b/docs/html/sdk/android-2.3-highlights.jd
@@ -258,7 +258,7 @@
 href="http://www.khronos.org/opensles/">Khronos OpenSL ES</a>, a standard API
 that gives applications access to powerful audio controls and effects from
 native code. Applications can use the API to manage audio devices and control
-low-latency audio input, output and processing directly from native code</p>
+audio input, output, and processing directly from native code.</p>
 
 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Native graphics
 management</strong></p>
diff --git a/docs/html/sdk/android-2.3.jd b/docs/html/sdk/android-2.3.jd
index 5438adc..a0b7c99 100644
--- a/docs/html/sdk/android-2.3.jd
+++ b/docs/html/sdk/android-2.3.jd
@@ -124,7 +124,7 @@
 API since the previous version.</p>
 
 
-<h3 id="sip">SIP-based VOIP</h3>
+<h3 id="sip">SIP-based VoIP</h3>
 
 <p>The platform now includes a SIP protocol stack and framework API that lets
 developers build internet telephony applications. Using the API, applications can offer
@@ -469,7 +469,7 @@
 indicates that a specific process is running something that is considered to be
 actively perceptible to the user. An example would be an application performing
 background music playback.</li>
-<li>The {@link android.app.Activity#setPersistent(boolean)} method to mark an
+<li>The Activity.setPersistent(boolean) method to mark an
 Activity as persistent is now deprecated and the implementation is a no-op.</li>
 </ul>
 </li>
@@ -679,7 +679,8 @@
 
 <ul>
 <li>New <code>xlargeScreens</code> attribute for <a
-href="{@docRoot}guide/topics/manifest/supports-screens.html"><code>&lt;supports-screens&gt;</code></a>
+href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code
+&lt;supports-screens&gt;}</a>
 element, to indicate whether the application supports
 extra large screen form-factors. For details, see <a
 href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
@@ -718,7 +719,7 @@
 <li><code>android.permission.USE_SIP</code> &mdash; Allows an application to use
 the {@link android.net.sip SIP API} to make or receive internet calls.
 <li><code>android.permission.NFC</code> &mdash; Allows an application to use the
-{@link android.nfc NFC API} to make or receive internet calls.</li>
+{@link android.nfc NFC API} to read NFC tags.</li>
 </ul>
 
 <h3 id="feature_constants">New Feature Constants</h3>
@@ -747,13 +748,13 @@
 <li>{@link android.content.pm.PackageManager#FEATURE_SIP android.software.sip}
 &mdash; The application uses the SIP API on the device.</li>
 <li>{@link android.content.pm.PackageManager#FEATURE_SIP_VOIP
-android.software.sip.voip} &mdash; The application uses a SIP-based VOIP
+android.software.sip.voip} &mdash; The application uses a SIP-based VoIP
 service on the device.</li>
 <li>{@link
 android.content.pm.PackageManager#FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND
 android.hardware.touchscreen.multitouch.jazzhand} &mdash; The application uses
 advanced multipoint multitouch capabilities on the device screen, for tracking
-up to five points fully independently.</li>
+five or more points fully independently.</li>
 </ul>
 
 <p>For full information about how to declare features and use them for
diff --git a/docs/html/sdk/eclipse-adt.jd b/docs/html/sdk/eclipse-adt.jd
index 8f6f518..cc0260a 100644
--- a/docs/html/sdk/eclipse-adt.jd
+++ b/docs/html/sdk/eclipse-adt.jd
@@ -496,7 +496,7 @@
 </tr>
 </table>
 
-<h3 id="preparing">Configuring the ADT Plugin</h3>
+<h3 id="configuring">Configuring the ADT Plugin</h3>
 
 <p>Once you've successfully downloaded ADT as described above, the next step
 is to modify your ADT preferences in Eclipse to point to the Android SDK directory:</p>
@@ -656,10 +656,7 @@
 </table>
 
 
-<p>If you encounter problems during the update of ADT, you
-can try removing the existing ADT plugin and then performing a fresh
-installation. To remove the plugin, follow the instructions in <a
-href="#uninstalling">Uninstalling the ADT Plugin</a>, below. To reinstall
-the plugin, follow the instructions in <a
-href="#installing">Installing the ADT Plugin</a>, above.</p>
+<p>If you encounter problems during the update, remove the existing ADT plugin from Eclipse, then
+perform a fresh installation, using the instructions for <a href="#installing">Installing the ADT
+Plugin</a>.</p>
 
diff --git a/docs/html/sdk/installing.jd b/docs/html/sdk/installing.jd
index 4cb1bb2..488382e 100644
--- a/docs/html/sdk/installing.jd
+++ b/docs/html/sdk/installing.jd
@@ -54,7 +54,7 @@
     <li><a href="#Preparing">1. Preparing Your Development Computer</a></li>
     <li><a href="#Installing">2. Downloading the SDK Starter Package</a></li>
     <li><a href="#InstallingADT">3. Installing the ADT Plugin for Eclipse</a></li>
-    <li><a href="#components">4. Adding Platforms and Other Components</a>
+    <li><a href="#AddingComponents">4. Adding Platforms and Other Components</a>
       <ol>
         <li><a href="#components">Available Components</a></li>
         <li><a href="#which">Recommended Components</a></li>
@@ -153,7 +153,7 @@
 
 
 
-<h2 id="components">Step 4. Adding Android Platforms and Other Components</h2>
+<h2 id="AddingComponents">Step 4. Adding Platforms and Other Components</h2>
 
 <p>The last step in setting up your SDK is using the <em>Android SDK and AVD Manager</em> (a
 tool included in the SDK starter package) to download
diff --git a/docs/html/sdk/ndk/index.jd b/docs/html/sdk/ndk/index.jd
index 2c8e4c2..19f4d02 100644
--- a/docs/html/sdk/ndk/index.jd
+++ b/docs/html/sdk/ndk/index.jd
@@ -299,7 +299,8 @@
   <p>Before you get started make sure that you have downloaded the latest <a href=
   "{@docRoot}sdk/index.html">Android SDK</a> and upgraded your applications and environment as
   needed. The NDK is compatible with older platform versions but not older versions of the SDK tools.
-  Also, take a moment to review the <a href="{@docRoot}sdk/ndk/reqs.html">System and Software Requirements</a>
+  Also, take a moment to review the <a href="{@docRoot}sdk/ndk/overview.html#reqs">System and
+Software Requirements</a>
   for the NDK, if you haven't already.</p>
 
   <p>To install the NDK, follow these steps:</p>
diff --git a/docs/html/sdk/ndk/overview.jd b/docs/html/sdk/ndk/overview.jd
index f6d148a..56b9201 100644
--- a/docs/html/sdk/ndk/overview.jd
+++ b/docs/html/sdk/ndk/overview.jd
@@ -489,7 +489,6 @@
       <code>android:minSdkVersion</code> attribute value of "3" or higher. For example:
       <pre style="margin:1em;">
 &lt;manifest&gt;
-  ...
   &lt;uses-sdk android:minSdkVersion="3" /&gt;
   ...
 &lt;/manifest&gt;
@@ -540,7 +539,6 @@
     to users whose devices are capable of supporting your application. For example:
       <pre style="margin:1em;">
 &lt;manifest&gt;
-  ... 
 <!-- Declare that the application uses the OpenGL ES 2.0 API and is designed
      to run only on devices that support OpenGL ES 2.0 or higher. -->
   &lt;uses-feature android:glEsVersion="0x00020000" /&gt;
diff --git a/docs/html/sdk/requirements.jd b/docs/html/sdk/requirements.jd
index 3679d44..a359dad 100644
--- a/docs/html/sdk/requirements.jd
+++ b/docs/html/sdk/requirements.jd
@@ -8,12 +8,14 @@
 <ul>
   <li>Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)</li>
   <li>Mac OS X 10.5.8 or later (x86 only)</li>
-  <li>Linux (tested on Linux Ubuntu Hardy Heron and Lucid Lynx)
+  <li>Linux (tested on Ubuntu Linux, Lucid Lynx)
     <ul>
+      <li>GNU C Library (glibc) 2.11 or later is required.</li>
+      <li>On Ubuntu Linux, Lucid Lynx or later release is required.</li>
       <li>64-bit distributions must be capable of running 32-bit applications. 
       For information about how to add support for 32-bit applications, see
       the <a href="installing.html#troubleshooting">Ubuntu Linux
-installation notes</a>.</li>
+      installation notes</a>.</li>
     </ul>
   </li>
 </ul>
diff --git a/docs/html/sdk/win-usb.jd b/docs/html/sdk/win-usb.jd
index 37d2cbb..bb0dde6 100644
--- a/docs/html/sdk/win-usb.jd
+++ b/docs/html/sdk/win-usb.jd
@@ -160,7 +160,7 @@
 <a href="adding-components.html">Adding SDK Components</a> to launch the Android
 SDK and AVD Manager. From the <strong>Available Packages</strong> panel, select
 "Usb Driver Package" and download it to your computer. The driver files are
-downloaded into the <code>&lt;sdk&gt;\usb_driver</code> directory.</p>
+downloaded into the <code>&lt;sdk&gt;\google-usb_driver\</code> directory.</p>
 
 <p>After the download, follow the instructions below to install or upgrade the
 driver, based on your needs and Windows operating system version. If you are
@@ -179,7 +179,7 @@
   <li><strong>Windows Vista:</strong>
     <ol class="nolist">
       <li><a href="#VistaFreshInstall">Perform a fresh installation</a></li>
-      <li><a href="#VistaUprade">Upgrade an existing driver</a></li>
+      <li><a href="#VistaUpgrade">Upgrade an existing driver</a></li>
     </ol>
   </li>
   <li><strong>Windows XP:</strong>
diff --git a/docs/html/sitemap.txt b/docs/html/sitemap.txt
index 7a0b8ac..f11dbc8 100644
--- a/docs/html/sitemap.txt
+++ b/docs/html/sitemap.txt
@@ -1,4 +1,3 @@
-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,79 +6,25 @@
 http://developer.android.com/videos/index.html
 http://developer.android.com/resources/dashboard/platform-versions.html
 http://developer.android.com/license.html
-http://developer.android.com/resources/community-groups.html
-http://developer.android.com/resources/community-more.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/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/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/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/notepad/index.html
-http://developer.android.com/resources/samples/index.html
-http://developer.android.com/resources/samples/ApiDemos/index.html
-http://developer.android.com/resources/samples/BluetoothChat/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/LunarLander/index.html
-http://developer.android.com/resources/samples/MultiResolution/index.html
-http://developer.android.com/resources/samples/NotePad/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/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/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/installing.html
 http://developer.android.com/sdk/adding-components.html
-http://developer.android.com/sdk/android-2.0.1.html
+http://developer.android.com/sdk/android-2.3.html
+http://developer.android.com/sdk/android-2.3-highlights.html
+http://developer.android.com/sdk/api_diff/9/changes.html
+http://developer.android.com/sdk/android-2.2.html
+http://developer.android.com/sdk/android-2.1.html
 http://developer.android.com/sdk/android-1.6.html
 http://developer.android.com/sdk/android-1.5.html
+http://developer.android.com/sdk/android-2.0.1.html
 http://developer.android.com/sdk/android-2.0.html
 http://developer.android.com/sdk/android-1.1.html
 http://developer.android.com/sdk/tools-notes.html
 http://developer.android.com/sdk/win-usb.html
 http://developer.android.com/sdk/eclipse-adt.html
-http://developer.android.com/sdk/ndk/1.6_r1/index.html
+http://developer.android.com/sdk/ndk/index.html
+http://developer.android.com/sdk/ndk/overview.html
 http://developer.android.com/sdk/requirements.html
-http://developer.android.com/sdk/RELEASENOTES.html
 http://developer.android.com/sdk/older_releases.html
-http://developer.android.com/sdk/download.html?v=android-sdk_r04-windows.zip
-http://developer.android.com/sdk/download.html?v=android-sdk_r04-mac_86.zip
-http://developer.android.com/sdk/download.html?v=android-sdk_r04-linux_86.tgz
 http://developer.android.com/guide/basics/what-is-android.html
 http://developer.android.com/guide/topics/fundamentals.html
 http://developer.android.com/guide/topics/ui/index.html
@@ -88,17 +33,30 @@
 http://developer.android.com/guide/topics/ui/dialogs.html
 http://developer.android.com/guide/topics/ui/ui-events.html
 http://developer.android.com/guide/topics/ui/notifiers/index.html
+http://developer.android.com/guide/topics/ui/notifiers/toasts.html
+http://developer.android.com/guide/topics/ui/notifiers/notifications.html
 http://developer.android.com/guide/topics/ui/themes.html
 http://developer.android.com/guide/topics/ui/custom-components.html
 http://developer.android.com/guide/topics/ui/binding.html
 http://developer.android.com/guide/topics/ui/layout-objects.html
 http://developer.android.com/guide/topics/ui/how-android-draws.html
 http://developer.android.com/guide/topics/resources/index.html
-http://developer.android.com/guide/topics/resources/resources-i18n.html
-http://developer.android.com/guide/topics/resources/available-resources.html
+http://developer.android.com/guide/topics/resources/providing-resources.html
+http://developer.android.com/guide/topics/resources/accessing-resources.html
+http://developer.android.com/guide/topics/resources/runtime-changes.html
 http://developer.android.com/guide/topics/resources/localization.html
+http://developer.android.com/guide/topics/resources/available-resources.html
+http://developer.android.com/guide/topics/resources/animation-resource.html
+http://developer.android.com/guide/topics/resources/color-list-resource.html
+http://developer.android.com/guide/topics/resources/drawable-resource.html
+http://developer.android.com/guide/topics/resources/layout-resource.html
+http://developer.android.com/guide/topics/resources/menu-resource.html
+http://developer.android.com/guide/topics/resources/string-resource.html
+http://developer.android.com/guide/topics/resources/style-resource.html
+http://developer.android.com/guide/topics/resources/more-resources.html
 http://developer.android.com/guide/topics/intents/intents-filters.html
 http://developer.android.com/guide/topics/data/data-storage.html
+http://developer.android.com/guide/topics/data/backup.html
 http://developer.android.com/guide/topics/providers/content-providers.html
 http://developer.android.com/guide/topics/security/security.html
 http://developer.android.com/guide/topics/manifest/manifest-intro.html
@@ -131,30 +89,54 @@
 http://developer.android.com/guide/topics/graphics/opengl.html
 http://developer.android.com/guide/topics/media/index.html
 http://developer.android.com/guide/topics/location/index.html
+http://developer.android.com/guide/topics/location/obtaining-user-location.html
 http://developer.android.com/guide/topics/appwidgets/index.html
 http://developer.android.com/guide/topics/wireless/bluetooth.html
+http://developer.android.com/guide/topics/search/index.html
+http://developer.android.com/guide/topics/search/search-dialog.html
+http://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html
+http://developer.android.com/guide/topics/search/adding-custom-suggestions.html
+http://developer.android.com/guide/topics/search/searchable-config.html
+http://developer.android.com/guide/topics/admin/device-admin.html
+http://developer.android.com/guide/topics/testing/index.html
+http://developer.android.com/guide/topics/testing/testing_android.html
+http://developer.android.com/guide/topics/testing/activity_testing.html
+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/developing/eclipse-adt.html
 http://developer.android.com/guide/developing/other-ide.html
 http://developer.android.com/guide/developing/device.html
 http://developer.android.com/guide/developing/debug-tasks.html
+http://developer.android.com/guide/developing/testing/index.html
+http://developer.android.com/guide/developing/testing/testing_eclipse.html
+http://developer.android.com/guide/developing/testing/testing_otheride.html
 http://developer.android.com/guide/developing/tools/index.html
 http://developer.android.com/guide/developing/tools/aapt.html
 http://developer.android.com/guide/developing/tools/adb.html
 http://developer.android.com/guide/developing/tools/othertools.html
 http://developer.android.com/guide/developing/tools/aidl.html
 http://developer.android.com/guide/developing/tools/avd.html
+http://developer.android.com/guide/developing/tools/bmgr.html
 http://developer.android.com/guide/developing/tools/ddms.html
 http://developer.android.com/guide/developing/tools/draw9patch.html
 http://developer.android.com/guide/developing/tools/emulator.html
 http://developer.android.com/guide/developing/tools/hierarchy-viewer.html
 http://developer.android.com/guide/developing/tools/layoutopt.html
 http://developer.android.com/guide/developing/tools/monkey.html
+http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html
+http://developer.android.com/guide/developing/tools/MonkeyDevice.html
+http://developer.android.com/guide/developing/tools/MonkeyImage.html
+http://developer.android.com/guide/developing/tools/MonkeyRunner.html
+http://developer.android.com/guide/developing/tools/proguard.html
 http://developer.android.com/guide/developing/tools/traceview.html
 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
@@ -164,20 +146,26 @@
 http://developer.android.com/guide/practices/design/performance.html
 http://developer.android.com/guide/practices/design/responsiveness.html
 http://developer.android.com/guide/practices/design/seamlessness.html
-http://developer.android.com/guide/webapps/targetting.html
+http://developer.android.com/guide/webapps/index.html
+http://developer.android.com/guide/webapps/targeting.html
 http://developer.android.com/guide/webapps/webview.html
 http://developer.android.com/guide/webapps/debugging.html
 http://developer.android.com/guide/webapps/best-practices.html
-http://developer.android.com/guide/topics/admin/device-admin.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/reference/classes.html
 http://developer.android.com/reference/android/package-summary.html
 http://developer.android.com/reference/android/accessibilityservice/package-summary.html
 http://developer.android.com/reference/android/accounts/package-summary.html
 http://developer.android.com/reference/android/app/package-summary.html
+http://developer.android.com/reference/android/app/admin/package-summary.html
+http://developer.android.com/reference/android/app/backup/package-summary.html
 http://developer.android.com/reference/android/appwidget/package-summary.html
 http://developer.android.com/reference/android/bluetooth/package-summary.html
 http://developer.android.com/reference/android/content/package-summary.html
@@ -193,14 +181,19 @@
 http://developer.android.com/reference/android/inputmethodservice/package-summary.html
 http://developer.android.com/reference/android/location/package-summary.html
 http://developer.android.com/reference/android/media/package-summary.html
+http://developer.android.com/reference/android/media/audiofx/package-summary.html
 http://developer.android.com/reference/android/net/package-summary.html
 http://developer.android.com/reference/android/net/http/package-summary.html
+http://developer.android.com/reference/android/net/sip/package-summary.html
 http://developer.android.com/reference/android/net/wifi/package-summary.html
+http://developer.android.com/reference/android/nfc/package-summary.html
 http://developer.android.com/reference/android/opengl/package-summary.html
 http://developer.android.com/reference/android/os/package-summary.html
+http://developer.android.com/reference/android/os/storage/package-summary.html
 http://developer.android.com/reference/android/preference/package-summary.html
 http://developer.android.com/reference/android/provider/package-summary.html
 http://developer.android.com/reference/android/sax/package-summary.html
+http://developer.android.com/reference/android/service/wallpaper/package-summary.html
 http://developer.android.com/reference/android/speech/package-summary.html
 http://developer.android.com/reference/android/speech/tts/package-summary.html
 http://developer.android.com/reference/android/telephony/package-summary.html
@@ -221,7 +214,6 @@
 http://developer.android.com/reference/android/view/inputmethod/package-summary.html
 http://developer.android.com/reference/android/webkit/package-summary.html
 http://developer.android.com/reference/android/widget/package-summary.html
-http://developer.android.com/reference/com/android/internal/os/package-summary.html
 http://developer.android.com/reference/dalvik/bytecode/package-summary.html
 http://developer.android.com/reference/dalvik/system/package-summary.html
 http://developer.android.com/reference/java/awt/font/package-summary.html
@@ -268,7 +260,15 @@
 http://developer.android.com/reference/javax/security/cert/package-summary.html
 http://developer.android.com/reference/javax/sql/package-summary.html
 http://developer.android.com/reference/javax/xml/package-summary.html
+http://developer.android.com/reference/javax/xml/datatype/package-summary.html
+http://developer.android.com/reference/javax/xml/namespace/package-summary.html
 http://developer.android.com/reference/javax/xml/parsers/package-summary.html
+http://developer.android.com/reference/javax/xml/transform/package-summary.html
+http://developer.android.com/reference/javax/xml/transform/dom/package-summary.html
+http://developer.android.com/reference/javax/xml/transform/sax/package-summary.html
+http://developer.android.com/reference/javax/xml/transform/stream/package-summary.html
+http://developer.android.com/reference/javax/xml/validation/package-summary.html
+http://developer.android.com/reference/javax/xml/xpath/package-summary.html
 http://developer.android.com/reference/junit/framework/package-summary.html
 http://developer.android.com/reference/junit/runner/package-summary.html
 http://developer.android.com/reference/org/apache/http/package-summary.html
@@ -304,105 +304,229 @@
 http://developer.android.com/reference/org/apache/http/util/package-summary.html
 http://developer.android.com/reference/org/json/package-summary.html
 http://developer.android.com/reference/org/w3c/dom/package-summary.html
+http://developer.android.com/reference/org/w3c/dom/ls/package-summary.html
 http://developer.android.com/reference/org/xml/sax/package-summary.html
 http://developer.android.com/reference/org/xml/sax/ext/package-summary.html
 http://developer.android.com/reference/org/xml/sax/helpers/package-summary.html
 http://developer.android.com/reference/org/xmlpull/v1/package-summary.html
 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/reference/android/app/Activity.html
-http://developer.android.com/reference/android/view/View.html
-http://developer.android.com/reference/android/widget/TextView.html
-http://developer.android.com/reference/android/content/Context.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/android/app/Application.html
-http://developer.android.com/reference/android/graphics/drawable/Drawable.html
-http://developer.android.com/reference/java/lang/ref/WeakReference.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/reference/android/provider/LiveFolders.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/reference/android/widget/FrameLayout.html
-http://developer.android.com/reference/android/widget/ImageView.html
-http://developer.android.com/reference/android/view/LayoutInflater.html
-http://developer.android.com/reference/android/view/View.OnClickListener.html
-http://developer.android.com/reference/android/os/Handler.html
-http://developer.android.com/reference/android/os/AsyncTask.html
-http://developer.android.com/reference/android/app/SearchManager.html
-http://developer.android.com/reference/android/content/ContentProvider.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/android/view/ContextThemeWrapper.html
-http://developer.android.com/reference/android/R.style.html
-http://developer.android.com/reference/android/app/AliasActivity.html
-http://developer.android.com/reference/android/util/Log.html
-http://developer.android.com/reference/android/os/Debug.html
-http://developer.android.com/reference/android/R.attr.html
-http://developer.android.com/reference/android/R.styleable.html
-http://developer.android.com/reference/java/lang/SecurityException.html
-http://developer.android.com/reference/android/Manifest.permission.html
-http://developer.android.com/reference/android/Manifest.permission_group.html
-http://developer.android.com/reference/android/app/Service.html
-http://developer.android.com/reference/android/content/BroadcastReceiver.html
-http://developer.android.com/reference/android/content/ContentResolver.html
-http://developer.android.com/reference/android/content/pm/PackageManager.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/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
 http://developer.android.com/reference/android/content/Intent.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/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/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/package-descr.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/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/android/content/Context.html
+http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html
+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/net/sip/SipManager.html
+http://developer.android.com/reference/android/nfc/NfcAdapter.html
+http://developer.android.com/reference/android/nfc/NdefMessage.html
+http://developer.android.com/reference/android/nfc/NdefRecord.html
+http://developer.android.com/reference/android/hardware/Sensor.html
+http://developer.android.com/reference/android/hardware/Camera.html
+http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html
+http://developer.android.com/reference/android/media/CamcorderProfile.html
+http://developer.android.com/reference/android/media/CameraProfile.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html
+http://developer.android.com/reference/android/hardware/Camera.Parameters.html
+http://developer.android.com/reference/android/media/audiofx/AudioEffect.html
+http://developer.android.com/reference/android/media/AudioTrack.html
+http://developer.android.com/reference/android/media/MediaPlayer.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/AudioFxDemo.html
+http://developer.android.com/reference/android/media/ExifInterface.html
+http://developer.android.com/reference/android/media/MediaRecorder.html
+http://developer.android.com/reference/android/app/DownloadManager.html
+http://developer.android.com/reference/android/app/DownloadManager.Request.html
+http://developer.android.com/reference/android/app/DownloadManager.Query.html
+http://developer.android.com/reference/android/os/StrictMode.html
+http://developer.android.com/reference/android/os/StrictMode.ThreadPolicy.html
+http://developer.android.com/reference/android/os/StrictMode.VmPolicy.html
+http://developer.android.com/reference/android/view/View.html
+http://developer.android.com/reference/android/widget/OverScroller.html
+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
+http://developer.android.com/reference/android/view/inputmethod/InputConnection.html
+http://developer.android.com/reference/android/view/inputmethod/InputConnectionWrapper.html
+http://developer.android.com/reference/android/content/pm/ActivityInfo.html
+http://developer.android.com/reference/android/app/ActivityManager.RunningAppProcessInfo.html
+http://developer.android.com/reference/android/R.style.html
+http://developer.android.com/reference/android/webkit/WebSettings.html
+http://developer.android.com/reference/android/webkit/WebView.html
+http://developer.android.com/reference/android/opengl/GLES20.html
+http://developer.android.com/reference/android/graphics/ImageFormat.html
+http://developer.android.com/reference/android/provider/AlarmClock.html
+http://developer.android.com/reference/android/provider/MediaStore.html
+http://developer.android.com/reference/android/provider/Settings.html
+http://developer.android.com/reference/android/provider/ContactsContract.html
+http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.SipAddress.html
+http://developer.android.com/reference/android/location/LocationManager.html
+http://developer.android.com/reference/android/os/WorkSource.html
+http://developer.android.com/reference/android/location/Criteria.html
+http://developer.android.com/reference/android/os/storage/StorageManager.html
+http://developer.android.com/reference/android/os/Environment.html
+http://developer.android.com/reference/android/content/pm/PackageInfo.html
+http://developer.android.com/reference/android/content/pm/PackageManager.html
+http://developer.android.com/reference/android/telephony/TelephonyManager.html
+http://developer.android.com/reference/android/telephony/gsm/GsmCellLocation.html
+http://developer.android.com/reference/android/view/InputQueue.html
+http://developer.android.com/reference/android/view/SurfaceHolder.Callback2.html
+http://developer.android.com/reference/android/view/SurfaceHolder.html
+http://developer.android.com/reference/android/view/Window.html
+http://developer.android.com/reference/java/util/ArrayDeque.html
+http://developer.android.com/reference/java/util/NavigableMap.html
+http://developer.android.com/reference/java/util/concurrent/ConcurrentSkipListMap.html
+http://developer.android.com/reference/java/util/concurrent/LinkedBlockingDeque.html
+http://developer.android.com/reference/java/util/Arrays.html
+http://developer.android.com/reference/java/net/CookieManager.html
+http://developer.android.com/reference/java/net/HttpURLConnection.html
+http://developer.android.com/reference/java/net/InterfaceAddress.html
+http://developer.android.com/reference/java/net/NetworkInterface.html
+http://developer.android.com/reference/java/net/IDN.html
+http://developer.android.com/reference/java/io/File.html
+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/widget/Button.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
+http://developer.android.com/reference/android/opengl/ETC1Util.html
+http://developer.android.com/reference/android/opengl/ETC1Util.ETC1Texture.html
+http://developer.android.com/reference/android/graphics/YuvImage.html
+http://developer.android.com/reference/android/media/AudioManager.html
+http://developer.android.com/reference/android/media/SoundPool.html
+http://developer.android.com/reference/android/media/MediaScannerConnection.html
+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
+http://developer.android.com/reference/android/view/ScaleGestureDetector.html
+http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
+http://developer.android.com/reference/android/R.attr.html
+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/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/reference/android/widget/ListView.html
 http://developer.android.com/reference/android/widget/CheckBox.html
 http://developer.android.com/reference/android/widget/RadioButton.html
@@ -412,6 +536,7 @@
 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
@@ -419,214 +544,199 @@
 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/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/java/util/regex/package-descr.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/ClipboardManager.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.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/android/text/package-descr.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/view/ContextMenu.html
-http://developer.android.com/reference/android/view/ContextMenu.ContextMenuInfo.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/KeyEvent.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/Menu.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/SubMenu.html
-http://developer.android.com/reference/android/view/SurfaceHolder.html
-http://developer.android.com/reference/android/view/SurfaceHolder.Callback.html
-http://developer.android.com/reference/android/view/View.OnCreateContextMenuListener.html
-http://developer.android.com/reference/android/view/View.OnFocusChangeListener.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/ViewGroup.OnHierarchyChangeListener.html
-http://developer.android.com/reference/android/view/ViewManager.html
-http://developer.android.com/reference/android/view/ViewParent.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/WindowManager.html
-http://developer.android.com/reference/android/view/AbsSavedState.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/Gravity.html
-http://developer.android.com/reference/android/view/HapticFeedbackConstants.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/KeyEvent.html
-http://developer.android.com/reference/android/view/KeyEvent.DispatcherState.html
-http://developer.android.com/reference/android/view/MenuInflater.html
-http://developer.android.com/reference/android/view/MotionEvent.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/SoundEffectConstants.html
-http://developer.android.com/reference/android/view/Surface.html
-http://developer.android.com/reference/android/view/TouchDelegate.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/View.MeasureSpec.html
-http://developer.android.com/reference/android/view/ViewConfiguration.html
-http://developer.android.com/reference/android/view/ViewDebug.html
-http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.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/ViewTreeObserver.html
-http://developer.android.com/reference/android/view/Window.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/java/lang/Object.html
-http://developer.android.com/reference/android/graphics/drawable/Drawable.Callback.html
-http://developer.android.com/reference/android/view/accessibility/AccessibilityEventSource.html
-http://developer.android.com/reference/android/widget/AnalogClock.html
-http://developer.android.com/reference/android/inputmethodservice/KeyboardView.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/inputmethodservice/Keyboard.html
-http://developer.android.com/reference/android/widget/AbsListView.html
-http://developer.android.com/reference/android/widget/AbsSeekBar.html
-http://developer.android.com/reference/android/widget/AbsSpinner.html
-http://developer.android.com/reference/android/widget/AbsoluteLayout.html
-http://developer.android.com/reference/android/widget/AdapterView.html
-http://developer.android.com/reference/android/widget/Adapter.html
-http://developer.android.com/reference/android/appwidget/AppWidgetHostView.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/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/inputmethodservice/ExtractEditText.html
-http://developer.android.com/reference/android/opengl/GLSurfaceView.html
-http://developer.android.com/reference/android/gesture/GestureOverlayView.html
-http://developer.android.com/reference/android/widget/GridView.html
-http://developer.android.com/reference/android/widget/HorizontalScrollView.html
-http://developer.android.com/reference/android/widget/ImageButton.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/QuickContactBadge.html
-http://developer.android.com/reference/android/widget/RadioGroup.html
-http://developer.android.com/reference/android/widget/RatingBar.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/SlidingDrawer.html
-http://developer.android.com/reference/android/widget/TabHost.html
-http://developer.android.com/reference/android/widget/TabWidget.html
-http://developer.android.com/reference/android/widget/TableLayout.html
-http://developer.android.com/reference/android/widget/TableRow.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/webkit/WebView.html
-http://developer.android.com/reference/android/widget/ZoomButton.html
-http://developer.android.com/reference/android/widget/ZoomControls.html
-http://developer.android.com/reference/android/widget/Checkable.html
-http://developer.android.com/reference/android/view/animation/Animation.html
-http://developer.android.com/reference/java/lang/RuntimeException.html
-http://developer.android.com/reference/java/lang/String.html
-http://developer.android.com/reference/android/util/AttributeSet.html
-http://developer.android.com/reference/java/util/ArrayList.html
-http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html
-http://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html
-http://developer.android.com/reference/java/lang/CharSequence.html
-http://developer.android.com/reference/android/graphics/Bitmap.html
-http://developer.android.com/reference/android/graphics/Point.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/view/inputmethod/InputConnection.html
-http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html
-http://developer.android.com/reference/java/lang/Runnable.html
-http://developer.android.com/reference/android/util/SparseArray.html
-http://developer.android.com/reference/android/content/res/TypedArray.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/android/widget/Scroller.html
-http://developer.android.com/reference/android/os/SystemClock.html
-http://developer.android.com/reference/android/view/accessibility/AccessibilityManager.html
+http://developer.android.com/reference/java/lang/InterruptedException.html
 http://developer.android.com/reference/java/lang/IllegalArgumentException.html
-http://developer.android.com/reference/java/lang/ref/ReferenceQueue.html
-http://developer.android.com/reference/java/lang/Throwable.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/impl/AbstractHttpClientConnection.html
-http://developer.android.com/reference/org/apache/http/impl/AbstractHttpServerConnection.html
-http://developer.android.com/reference/org/apache/http/impl/DefaultConnectionReuseStrategy.html
-http://developer.android.com/reference/org/apache/http/impl/DefaultHttpClientConnection.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/DefaultHttpServerConnection.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/SocketHttpClientConnection.html
-http://developer.android.com/reference/org/apache/http/impl/SocketHttpServerConnection.html
-http://developer.android.com/reference/org/apache/http/impl/package-descr.html
-http://developer.android.com/reference/org/apache/http/io/SessionInputBuffer.html
-http://developer.android.com/reference/org/apache/http/io/SessionOutputBuffer.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/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/guide/topics/resources/resources-i18n.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
+http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html
+http://developer.android.com/reference/android/telephony/ServiceState.html
+http://developer.android.com/reference/android/telephony/SmsMessage.html
+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/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/javax/security/auth/x500/X500Principal.html
+http://developer.android.com/reference/javax/security/auth/x500/package-descr.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/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/security/cert/CertPathBuilderResult.html
 http://developer.android.com/reference/java/security/cert/CertPathParameters.html
 http://developer.android.com/reference/java/security/cert/CertPathValidatorResult.html
@@ -672,117 +782,762 @@
 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/android/location/LocationManager.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/BatteryManager.html
-http://developer.android.com/reference/android/os/Binder.html
-http://developer.android.com/reference/android/os/Build.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/Bundle.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/Environment.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/Looper.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.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/PatternMatcher.html
-http://developer.android.com/reference/android/os/PowerManager.html
-http://developer.android.com/reference/android/os/PowerManager.WakeLock.html
-http://developer.android.com/reference/android/os/Process.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/TokenWatcher.html
-http://developer.android.com/reference/android/os/Vibrator.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/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/util/concurrent/TimeUnit.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/util/concurrent/CancellationException.html
-http://developer.android.com/reference/java/util/concurrent/ExecutionException.html
-http://developer.android.com/reference/java/lang/InterruptedException.html
-http://developer.android.com/reference/java/util/concurrent/TimeoutException.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/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/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/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/app/Instrumentation.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/ArcShape.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/OvalShape.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/reference/android/graphics/drawable/shapes/Shape.html
-http://developer.android.com/reference/android/graphics/drawable/shapes/package-descr.html
-http://developer.android.com/reference/android/graphics/Path.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/org/apache/http/client/CookieStore.html
-http://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel.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/nio/channels/spi/SelectorProvider.html
-http://developer.android.com/reference/java/nio/channels/spi/package-descr.html
-http://developer.android.com/reference/java/nio/channels/DatagramChannel.html
-http://developer.android.com/reference/java/nio/channels/Pipe.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/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/location/Geocoder.html
-http://developer.android.com/reference/android/media/SoundPool.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/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/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/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
@@ -809,12 +1564,14 @@
 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
@@ -848,19 +1605,118 @@
 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/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/Linkify.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/text/util/package-descr.html
-http://developer.android.com/reference/android/text/method/MetaKeyKeyListener.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
@@ -872,6 +1728,7 @@
 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
@@ -895,518 +1752,367 @@
 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/BaseAdapter.html
 http://developer.android.com/reference/android/widget/BaseExpandableListAdapter.html
-http://developer.android.com/reference/android/widget/CursorAdapter.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/RemoteViews.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/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/Toast.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/inputmethod/BaseInputConnection.html
-http://developer.android.com/reference/android/view/inputmethod/ExtractedTextRequest.html
-http://developer.android.com/reference/android/view/inputmethod/ExtractedText.html
-http://developer.android.com/reference/android/content/res/ColorStateList.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/MovementMethod.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/android/view/inputmethod/CompletionInfo.html
-http://developer.android.com/reference/android/R.id.html
-http://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html
-http://developer.android.com/reference/java/io/IOException.html
-http://developer.android.com/reference/android/util/TypedValue.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/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/HttpTransportMetrics.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/org/apache/http/impl/conn/tsccm/BasicPooledConnAdapter.html
-http://developer.android.com/reference/org/apache/http/conn/ClientConnectionManager.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/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/HttpEntityEnclosingRequest.html
-http://developer.android.com/reference/org/apache/http/HttpRequest.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/HttpInetConnection.html
-http://developer.android.com/reference/org/apache/http/conn/ConnectionReleaseTrigger.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.html
-http://developer.android.com/reference/android/content/res/AssetManager.AssetInputStream.html
-http://developer.android.com/reference/android/content/res/Configuration.html
-http://developer.android.com/reference/android/content/res/Resources.Theme.html
-http://developer.android.com/reference/android/content/res/Resources.NotFoundException.html
-http://developer.android.com/reference/android/test/mock/MockResources.html
-http://developer.android.com/reference/android/util/DisplayMetrics.html
-http://developer.android.com/reference/java/util/Formatter.html
-http://developer.android.com/reference/java/io/InputStream.html
-http://developer.android.com/reference/android/accounts/AccountAuthenticatorActivity.html
-http://developer.android.com/reference/android/app/ActivityGroup.html
-http://developer.android.com/reference/android/app/AlertDialog.html
-http://developer.android.com/reference/android/text/method/CharacterPickerDialog.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/LauncherActivity.html
-http://developer.android.com/reference/android/preference/PreferenceActivity.html
-http://developer.android.com/reference/android/app/ProgressDialog.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/preference/Preference.html
-http://developer.android.com/reference/android/view/animation/Interpolator.html
-http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi/index.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi-v6/index.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-ldpi-v6/index.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-mdpi/index.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-mdpi-v6/index.html
-http://developer.android.com/resources/samples/NotePad/res/layout/index.html
-http://developer.android.com/resources/samples/NotePad/res/values/index.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/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/org/apache/http/client/methods/package-descr.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/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/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/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/BrokenBarrierException.html
-http://developer.android.com/reference/java/util/concurrent/RejectedExecutionException.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/java/lang/Enum.html
-http://developer.android.com/reference/java/lang/Comparable.html
-http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.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.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/widget/package-descr.html
-http://developer.android.com/reference/android/database/Cursor.html
-http://developer.android.com/reference/java/security/PublicKey.html
-http://developer.android.com/reference/java/lang/NullPointerException.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/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/java/util/logging/package-descr.html
-http://developer.android.com/reference/java/io/OutputStream.html
-http://developer.android.com/reference/android/Manifest.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.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/reference/android/media/MediaPlayer.html
-http://developer.android.com/reference/android/media/MediaRecorder.html
-http://developer.android.com/reference/android/media/JetPlayer.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/java/lang/Appendable.html
-http://developer.android.com/reference/java/lang/Cloneable.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/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/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/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/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/IllegalAccessException.html
-http://developer.android.com/reference/java/lang/IllegalMonitorStateException.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/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/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/channels/AlreadyConnectedException.html
-http://developer.android.com/reference/java/nio/channels/CancelledKeyException.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/util/FormatterClosedException.html
-http://developer.android.com/reference/java/nio/channels/IllegalBlockingModeException.html
-http://developer.android.com/reference/java/nio/InvalidMarkException.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/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/protocol/BasicHttpContext.html
-http://developer.android.com/reference/org/apache/http/protocol/BasicHttpProcessor.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/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/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/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/org/apache/http/impl/cookie/AbstractCookieAttributeHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/AbstractCookieSpec.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/entity/AbstractHttpEntity.html
-http://developer.android.com/reference/org/apache/http/params/AbstractHttpParams.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/org/apache/http/impl/io/AbstractMessageParser.html
-http://developer.android.com/reference/org/apache/http/impl/io/AbstractMessageWriter.html
-http://developer.android.com/reference/java/util/concurrent/locks/AbstractQueuedSynchronizer.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/org/apache/http/impl/io/AbstractSessionInputBuffer.html
-http://developer.android.com/reference/org/apache/http/impl/io/AbstractSessionOutputBuffer.html
-http://developer.android.com/reference/android/content/AbstractThreadedSyncAdapter.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/AbstractVerifier.html
-http://developer.android.com/reference/java/security/AccessControlContext.html
-http://developer.android.com/reference/java/security/AccessController.html
-http://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceInfo.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/accounts/AccountManager.html
-http://developer.android.com/reference/android/app/ActivityManager.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.RunningAppProcessInfo.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/location/Address.html
-http://developer.android.com/reference/android/app/AlarmManager.html
-http://developer.android.com/reference/android/app/AlertDialog.Builder.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/util/zip/Adler32.html
 http://developer.android.com/reference/android/text/style/AlignmentSpan.Standard.html
-http://developer.android.com/reference/java/text/Annotation.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/android/content/pm/ApplicationInfo.DisplayNameComparator.html
 http://developer.android.com/reference/java/lang/reflect/Array.html
-http://developer.android.com/reference/java/util/Arrays.html
 http://developer.android.com/reference/android/text/method/ArrowKeyMovementMethod.html
-http://developer.android.com/reference/junit/framework/Assert.html
 http://developer.android.com/reference/android/media/AsyncPlayer.html
-http://developer.android.com/reference/android/content/AsyncQueryHandler.WorkerArgs.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean.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/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/org/xml/sax/helpers/AttributeListImpl.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/util/jar/Attributes.html
 http://developer.android.com/reference/java/util/jar/Attributes.Name.html
-http://developer.android.com/reference/org/xml/sax/helpers/AttributesImpl.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/AudioManager.html
 http://developer.android.com/reference/android/media/AudioRecord.html
-http://developer.android.com/reference/android/media/AudioTrack.html
-http://developer.android.com/reference/org/apache/http/auth/params/AuthParams.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/java/net/Authenticator.html
 http://developer.android.com/reference/android/accounts/AuthenticatorDescription.html
-http://developer.android.com/reference/junit/runner/BaseTestRunner.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicClientCookie.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/impl/cookie/BasicDomainHandler.html
 http://developer.android.com/reference/org/apache/http/conn/BasicEofSensorWatcher.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/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/impl/cookie/BasicPathHandler.html
-http://developer.android.com/reference/org/apache/http/message/BasicRequestLine.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/message/BasicStatusLine.html
-http://developer.android.com/reference/org/apache/http/message/BasicTokenIterator.html
 http://developer.android.com/reference/org/apache/http/auth/BasicUserPrincipal.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/java/text/Bidi.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/bluetooth/BluetoothClass.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/BluetoothDevice.html
-http://developer.android.com/reference/android/bluetooth/BluetoothServerSocket.html
-http://developer.android.com/reference/android/bluetooth/BluetoothSocket.html
-http://developer.android.com/reference/java/text/BreakIterator.html
+http://developer.android.com/reference/android/view/animation/BounceInterpolator.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/org/apache/http/impl/cookie/BrowserCompatSpecFactory.html
-http://developer.android.com/reference/java/nio/Buffer.html
-http://developer.android.com/reference/org/apache/http/message/BufferedHeader.html
 http://developer.android.com/reference/android/text/style/BulletSpan.html
-http://developer.android.com/reference/org/apache/http/util/ByteArrayBuffer.html
 http://developer.android.com/reference/java/nio/ByteOrder.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/java/net/CacheRequest.html
-http://developer.android.com/reference/java/net/CacheResponse.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.Parameters.html
 http://developer.android.com/reference/android/hardware/Camera.Size.html
-http://developer.android.com/reference/android/telephony/CellLocation.html
-http://developer.android.com/reference/javax/net/ssl/CertPathTrustManagerParameters.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/org/apache/http/util/CharArrayBuffer.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/javax/crypto/Cipher.html
-http://developer.android.com/reference/javax/crypto/CipherSpi.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/security/CodeSigner.html
-http://developer.android.com/reference/java/security/CodeSource.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/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/util/Collections.html
-http://developer.android.com/reference/android/content/ComponentName.html
-http://developer.android.com/reference/android/util/Config.html
-http://developer.android.com/reference/android/content/pm/ConfigurationInfo.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/net/ConnectivityManager.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
@@ -1415,14 +2121,11 @@
 http://developer.android.com/reference/android/provider/Contacts.Intents.Insert.html
 http://developer.android.com/reference/android/provider/Contacts.Intents.UI.html
 http://developer.android.com/reference/android/provider/Contacts.Organizations.html
-http://developer.android.com/reference/android/provider/Contacts.People.html
 http://developer.android.com/reference/android/provider/Contacts.People.ContactMethods.html
 http://developer.android.com/reference/android/provider/Contacts.People.Extensions.html
 http://developer.android.com/reference/android/provider/Contacts.People.Phones.html
-http://developer.android.com/reference/android/provider/Contacts.Phones.html
 http://developer.android.com/reference/android/provider/Contacts.Photos.html
 http://developer.android.com/reference/android/provider/Contacts.Settings.html
-http://developer.android.com/reference/android/provider/ContactsContract.html
 http://developer.android.com/reference/android/provider/ContactsContract.AggregationExceptions.html
 http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.html
 http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Email.html
@@ -1455,97 +2158,93 @@
 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/java/net/ContentHandler.html
 http://developer.android.com/reference/android/database/ContentObserver.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/ContentUris.html
-http://developer.android.com/reference/java/net/CookieHandler.html
 http://developer.android.com/reference/org/apache/http/cookie/CookieIdentityComparator.html
-http://developer.android.com/reference/android/webkit/CookieManager.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/android/webkit/CookieSyncManager.html
-http://developer.android.com/reference/android/location/Criteria.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/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/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/java/text/DateFormatSymbols.html
-http://developer.android.com/reference/android/webkit/DateSorter.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/DateUtils.html
-http://developer.android.com/reference/android/util/DebugUtils.html
-http://developer.android.com/reference/java/text/DecimalFormatSymbols.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/xml/sax/helpers/DefaultHandler.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/graphics/drawable/Drawable.ConstantState.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/java/sql/DriverManager.html
-http://developer.android.com/reference/java/sql/DriverPropertyInfo.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/android/sax/Element.html
-http://developer.android.com/reference/org/apache/http/util/EncodingUtils.html
-http://developer.android.com/reference/javax/crypto/EncryptedPrivateKeyInfo.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/org/apache/http/util/EntityUtils.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/android/util/EventLogTags.html
-http://developer.android.com/reference/android/util/EventLogTags.Description.html
 http://developer.android.com/reference/java/util/EventObject.html
-http://developer.android.com/reference/org/apache/http/util/ExceptionUtils.html
-http://developer.android.com/reference/javax/crypto/ExemptionMechanism.html
-http://developer.android.com/reference/javax/crypto/ExemptionMechanismSpi.html
-http://developer.android.com/reference/android/media/ExifInterface.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/content/pm/FeatureInfo.html
-http://developer.android.com/reference/java/text/FieldPosition.html
-http://developer.android.com/reference/java/io/File.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/io/FileDescriptor.html
 http://developer.android.com/reference/java/nio/channels/FileLock.html
-http://developer.android.com/reference/android/util/FloatMath.html
-http://developer.android.com/reference/java/text/Format.html
 http://developer.android.com/reference/java/util/FormattableFlags.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/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/webkit/GeolocationPermissions.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
@@ -1553,90 +2252,57 @@
 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/java/security/GuardedObject.html
-http://developer.android.com/reference/org/xml/sax/HandlerBase.html
-http://developer.android.com/reference/org/apache/http/message/HeaderGroup.html
-http://developer.android.com/reference/org/apache/http/params/HttpAbstractParamBean.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/params/HttpConnectionParams.html
-http://developer.android.com/reference/org/apache/http/entity/HttpEntityWrapper.html
-http://developer.android.com/reference/org/apache/http/params/HttpProtocolParams.html
-http://developer.android.com/reference/org/apache/http/impl/io/HttpTransportMetricsImpl.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/java/security/Identity.html
-http://developer.android.com/reference/org/apache/http/conn/util/InetAddressUtils.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/InputConnectionWrapper.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/org/xml/sax/InputSource.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/content/Intent.FilterComparison.html
-http://developer.android.com/reference/android/content/Intent.ShortcutIconResource.html
-http://developer.android.com/reference/android/content/IntentFilter.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/javax/crypto/spec/IvParameterSpec.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/android/webkit/JsResult.html
-http://developer.android.com/reference/javax/crypto/KeyAgreement.html
-http://developer.android.com/reference/javax/crypto/KeyAgreementSpi.html
-http://developer.android.com/reference/java/security/KeyFactory.html
-http://developer.android.com/reference/java/security/KeyFactorySpi.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/net/ssl/KeyManagerFactory.html
-http://developer.android.com/reference/javax/net/ssl/KeyManagerFactorySpi.html
-http://developer.android.com/reference/java/security/KeyPair.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/javax/net/ssl/KeyStoreBuilderParameters.html
-http://developer.android.com/reference/java/security/KeyStoreSpi.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/android/app/KeyguardManager.html
-http://developer.android.com/reference/android/app/KeyguardManager.KeyguardLock.html
-http://developer.android.com/reference/org/apache/http/util/LangUtils.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/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/android/app/LocalActivityManager.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/java/util/Locale.html
 http://developer.android.com/reference/android/location/Location.html
-http://developer.android.com/reference/android/location/LocationProvider.html
-http://developer.android.com/reference/org/xml/sax/helpers/LocatorImpl.html
 http://developer.android.com/reference/java/util/concurrent/locks/LockSupport.html
-http://developer.android.com/reference/android/util/LogPrinter.html
-http://developer.android.com/reference/javax/crypto/Mac.html
-http://developer.android.com/reference/javax/crypto/MacSpi.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/opengl/Matrix.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/media/MediaScannerConnection.html
-http://developer.android.com/reference/android/provider/MediaStore.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
@@ -1652,95 +2318,70 @@
 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/security/MessageDigestSpi.html
-http://developer.android.com/reference/android/webkit/MimeTypeMap.html
-http://developer.android.com/reference/android/test/mock/MockDialogInterface.html
 http://developer.android.com/reference/java/lang/reflect/Modifier.html
-http://developer.android.com/reference/android/util/MonthDisplayHelper.html
-http://developer.android.com/reference/android/test/MoreAsserts.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/org/xml/sax/helpers/NamespaceSupport.html
-http://developer.android.com/reference/android/telephony/NeighboringCellInfo.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDraftHeaderParser.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDraftSpecFactory.html
 http://developer.android.com/reference/android/net/NetworkInfo.html
-http://developer.android.com/reference/java/net/NetworkInterface.html
-http://developer.android.com/reference/android/app/Notification.html
-http://developer.android.com/reference/android/app/NotificationManager.html
-http://developer.android.com/reference/java/awt/font/NumericShaper.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/io/ObjectInputStream.GetField.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/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/content/pm/PackageInfo.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/util/Pair.html
-http://developer.android.com/reference/java/text/ParsePosition.html
-http://developer.android.com/reference/org/xml/sax/helpers/ParserAdapter.html
-http://developer.android.com/reference/org/apache/http/message/ParserCursor.html
-http://developer.android.com/reference/org/xml/sax/helpers/ParserFactory.html
-http://developer.android.com/reference/java/net/PasswordAuthentication.html
-http://developer.android.com/reference/javax/security/auth/callback/PasswordCallback.html
 http://developer.android.com/reference/android/text/method/PasswordTransformationMethod.html
-http://developer.android.com/reference/android/app/PendingIntent.html
-http://developer.android.com/reference/java/security/Permission.html
-http://developer.android.com/reference/java/security/PermissionCollection.html
-http://developer.android.com/reference/android/telephony/PhoneNumberFormattingTextWatcher.html
-http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html
-http://developer.android.com/reference/android/telephony/PhoneStateListener.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/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/java/security/Policy.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/util/PrintStreamPrinter.html
-http://developer.android.com/reference/android/util/PrintWriterPrinter.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/security/ProtectionDomain.html
-http://developer.android.com/reference/org/apache/http/ProtocolVersion.html
-http://developer.android.com/reference/java/security/Provider.Service.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/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/org/apache/http/impl/cookie/RFC2109DomainHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109SpecFactory.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/RFC2965SpecFactory.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965VersionAttributeHandler.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/java/io/RandomAccessFile.html
-http://developer.android.com/reference/java/io/Reader.html
-http://developer.android.com/reference/android/speech/RecognizerIntent.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/java/lang/ref/Reference.html
 http://developer.android.com/reference/android/text/method/ReplacementTransformationMethod.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/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/net/ResponseCache.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
@@ -1748,125 +2389,79 @@
 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/SQLiteOpenHelper.html
 http://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.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/org/apache/http/conn/ssl/SSLSocketFactory.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/javax/crypto/SealedObject.html
 http://developer.android.com/reference/android/provider/SearchRecentSuggestions.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/spec/SecretKeySpec.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/nio/channels/SelectionKey.html
-http://developer.android.com/reference/android/hardware/Sensor.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/android/hardware/SensorManager.html
-http://developer.android.com/reference/java/net/ServerSocket.html
 http://developer.android.com/reference/javax/net/ServerSocketFactory.html
-http://developer.android.com/reference/android/telephony/ServiceState.html
-http://developer.android.com/reference/android/provider/Settings.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/ShapeDrawable.ShaderFactory.html
-http://developer.android.com/reference/android/content/pm/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/android/telephony/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/java/net/Socket.html
-http://developer.android.com/reference/java/net/SocketAddress.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/java/net/SocketImpl.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/net/http/SslCertificate.html
 http://developer.android.com/reference/android/net/http/SslCertificate.DName.html
-http://developer.android.com/reference/android/util/StateSet.html
-http://developer.android.com/reference/java/io/StreamTokenizer.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/android/util/StringBuilderPrinter.html
-http://developer.android.com/reference/java/text/StringCharacterIterator.html
 http://developer.android.com/reference/java/util/StringTokenizer.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/SyncResult.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/android/telephony/TelephonyManager.html
-http://developer.android.com/reference/dalvik/system/TemporaryDirectory.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/junit/framework/TestSuite.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/android/util/TimeUtils.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/java/security/Timestamp.html
-http://developer.android.com/reference/android/util/TimingLogger.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/dalvik/system/TouchDex.html
-http://developer.android.com/reference/android/test/TouchUtils.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/java/sql/Types.html
-http://developer.android.com/reference/java/net/URI.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/java/net/URL.html
-http://developer.android.com/reference/java/net/URLConnection.html
-http://developer.android.com/reference/java/net/URLDecoder.html
 http://developer.android.com/reference/org/apache/http/client/utils/URLEncodedUtils.html
-http://developer.android.com/reference/java/net/URLEncoder.html
-http://developer.android.com/reference/java/net/URLStreamHandler.html
-http://developer.android.com/reference/android/webkit/URLUtil.html
-http://developer.android.com/reference/java/util/UUID.html
-http://developer.android.com/reference/android/net/Uri.html
 http://developer.android.com/reference/android/net/Uri.Builder.html
-http://developer.android.com/reference/android/content/UriMatcher.html
-http://developer.android.com/reference/android/webkit/UrlInterceptRegistry.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/dalvik/system/VMDebug.html
-http://developer.android.com/reference/dalvik/system/VMRuntime.html
-http://developer.android.com/reference/dalvik/system/VMStack.html
-http://developer.android.com/reference/junit/runner/Version.html
-http://developer.android.com/reference/org/apache/http/util/VersionInfo.html
-http://developer.android.com/reference/android/test/ViewAsserts.html
-http://developer.android.com/reference/android/opengl/Visibility.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/app/WallpaperManager.html
-http://developer.android.com/reference/android/webkit/WebBackForwardList.html
-http://developer.android.com/reference/android/webkit/WebChromeClient.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/WebSettings.html
-http://developer.android.com/reference/android/webkit/WebStorage.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/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
@@ -1875,348 +2470,241 @@
 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.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/java/io/Writer.html
-http://developer.android.com/reference/javax/security/auth/x500/X500Principal.html
-http://developer.android.com/reference/javax/net/ssl/X509ExtendedKeyManager.html
-http://developer.android.com/reference/javax/xml/XMLConstants.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/android/util/Xml.html
-http://developer.android.com/reference/org/xmlpull/v1/XmlPullParserFactory.html
-http://developer.android.com/reference/dalvik/system/Zygote.html
-http://developer.android.com/reference/org/apache/http/cookie/CookieAttributeHandler.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/org/apache/http/conn/ssl/X509HostnameVerifier.html
-http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.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/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/HeaderIterator.html
-http://developer.android.com/reference/java/util/List.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/javax/net/ssl/TrustManager.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/org/apache/http/HttpEntity.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/org/xml/sax/DocumentHandler.html
-http://developer.android.com/reference/java/security/Principal.html
-http://developer.android.com/reference/java/security/KeyPairGenerator.html
-http://developer.android.com/reference/java/security/Key.html
-http://developer.android.com/reference/javax/security/auth/callback/CallbackHandler.html
-http://developer.android.com/reference/android/util/Printer.html
 http://developer.android.com/reference/java/math/BigDecimal.html
-http://developer.android.com/reference/java/security/MessageDigest.html
-http://developer.android.com/reference/android/content/DialogInterface.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/org/xml/sax/Parser.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/org/xml/sax/XMLReader.html
-http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
-http://developer.android.com/reference/android/content/SearchRecentSuggestionsProvider.html
-http://developer.android.com/reference/java/security/SecureRandom.html
 http://developer.android.com/reference/java/nio/channels/SelectableChannel.html
-http://developer.android.com/reference/java/security/Signature.html
-http://developer.android.com/reference/java/text/CharacterIterator.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/java/security/AccessControlException.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/content/pm/ActivityInfo.html
 http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase.html
-http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2.html
-http://developer.android.com/reference/android/content/ActivityNotFoundException.html
 http://developer.android.com/reference/android/test/ActivityTestCase.html
-http://developer.android.com/reference/android/test/ActivityUnitTestCase.html
-http://developer.android.com/reference/java/security/AllPermission.html
-http://developer.android.com/reference/dalvik/system/AllocationLimitError.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/AllowAllHostnameVerifier.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/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/graphics/drawable/AnimationDrawable.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/content/pm/ApplicationInfo.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/android/content/AsyncQueryHandler.html
-http://developer.android.com/reference/android/content/AsyncQueryHandler.WorkerHandler.html
 http://developer.android.com/reference/java/nio/channels/AsynchronousCloseException.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicInteger.html
-http://developer.android.com/reference/java/util/concurrent/atomic/AtomicLong.html
-http://developer.android.com/reference/org/xml/sax/ext/Attributes2Impl.html
-http://developer.android.com/reference/org/apache/http/auth/params/AuthParamBean.html
-http://developer.android.com/reference/java/security/AuthProvider.html
 http://developer.android.com/reference/org/apache/http/auth/AuthenticationException.html
-http://developer.android.com/reference/java/net/Authenticator.RequestorType.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/javax/crypto/BadPaddingException.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/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/BasicExpiresHandler.html
-http://developer.android.com/reference/org/apache/http/entity/BasicHttpEntity.html
-http://developer.android.com/reference/org/apache/http/message/BasicHttpEntityEnclosingRequest.html
-http://developer.android.com/reference/org/apache/http/params/BasicHttpParams.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/conn/BasicManagedEntity.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BasicMaxAgeHandler.html
-http://developer.android.com/reference/java/security/BasicPermission.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/org/apache/http/impl/cookie/BasicSecureHandler.html
-http://developer.android.com/reference/java/sql/BatchUpdateException.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/net/BindException.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/BrowserCompatHostnameVerifier.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/BrowserCompatSpec.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/org/apache/http/entity/BufferedHttpEntity.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/org/apache/http/entity/ByteArrayEntity.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/nio/ByteBuffer.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/io/CharArrayReader.html
-http://developer.android.com/reference/java/io/CharArrayWriter.html
-http://developer.android.com/reference/java/nio/CharBuffer.html
-http://developer.android.com/reference/java/io/CharConversionException.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/text/ChoiceFormat.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/javax/crypto/CipherInputStream.html
-http://developer.android.com/reference/javax/crypto/CipherOutputStream.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/android/graphics/drawable/ClipDrawable.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/android/graphics/drawable/ColorDrawable.html
 http://developer.android.com/reference/junit/framework/ComparisonFailure.html
-http://developer.android.com/reference/android/content/pm/ComponentInfo.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/java/net/ConnectException.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/org/apache/http/impl/io/ContentLengthInputStream.html
-http://developer.android.com/reference/org/apache/http/impl/io/ContentLengthOutputStream.html
 http://developer.android.com/reference/android/database/ContentObservable.html
-http://developer.android.com/reference/android/content/ContentQueryMap.html
-http://developer.android.com/reference/android/content/ContextWrapper.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/CookieSpecBase.html
-http://developer.android.com/reference/org/apache/http/cookie/params/CookieSpecParamBean.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/io/DataInputStream.html
-http://developer.android.com/reference/java/io/DataOutputStream.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/java/sql/DataTruncation.html
-http://developer.android.com/reference/java/sql/Date.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/javax/xml/datatype/DatatypeConfigurationException.html
 http://developer.android.com/reference/android/text/method/DateKeyListener.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/DateParseException.html
 http://developer.android.com/reference/android/text/method/DateTimeKeyListener.html
-http://developer.android.com/reference/java/text/DecimalFormat.html
-http://developer.android.com/reference/org/xml/sax/ext/DefaultHandler2.html
-http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.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/org/apache/http/params/DefaultedHttpParams.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/java/security/DigestException.html
-http://developer.android.com/reference/java/security/DigestInputStream.html
-http://developer.android.com/reference/java/security/DigestOutputStream.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/graphics/drawable/DrawableContainer.html
-http://developer.android.com/reference/android/graphics/drawable/DrawableContainer.DrawableContainerState.html
-http://developer.android.com/reference/java/util/DuplicateFormatFlagsException.html
 http://developer.android.com/reference/android/text/style/DynamicDrawableSpan.html
-http://developer.android.com/reference/java/io/EOFException.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/org/apache/http/impl/client/EntityEnclosingRequestWrapper.html
-http://developer.android.com/reference/org/apache/http/entity/EntityTemplate.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/javax/crypto/ExemptionMechanismException.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/org/apache/http/entity/FileEntity.html
-http://developer.android.com/reference/java/io/FileInputStream.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/java/io/FileNotFoundException.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/nio/FloatBuffer.html
 http://developer.android.com/reference/android/text/style/ForegroundColorSpan.html
-http://developer.android.com/reference/java/text/Format.Field.html
-http://developer.android.com/reference/java/util/FormatFlagsConversionMismatchException.html
 http://developer.android.com/reference/java/util/Formatter.BigDecimalLayoutForm.html
-http://developer.android.com/reference/android/opengl/GLES11.html
-http://developer.android.com/reference/android/opengl/GLException.html
-http://developer.android.com/reference/java/security/GeneralSecurityException.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/graphics/drawable/GradientDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.Orientation.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/telephony/gsm/GsmCellLocation.html
-http://developer.android.com/reference/javax/net/ssl/HandshakeCompletedEvent.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/android/webkit/HttpAuthHandler.html
-http://developer.android.com/reference/org/apache/http/params/HttpConnectionParamBean.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/params/HttpProtocolParamBean.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/client/HttpResponseException.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/java/net/HttpRetryException.html
-http://developer.android.com/reference/java/net/HttpURLConnection.html
 http://developer.android.com/reference/org/apache/http/HttpVersion.html
-http://developer.android.com/reference/javax/net/ssl/HttpsURLConnection.html
 http://developer.android.com/reference/java/util/IdentityHashMap.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/java/security/IdentityScope.html
-http://developer.android.com/reference/javax/crypto/IllegalBlockSizeException.html
-http://developer.android.com/reference/java/nio/charset/IllegalCharsetNameException.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/IllegalFormatException.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/nio/channels/IllegalSelectorException.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/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/android/inputmethodservice/InputMethodService.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/org/apache/http/entity/InputStreamEntity.html
-http://developer.android.com/reference/java/io/InputStreamReader.html
-http://developer.android.com/reference/android/graphics/drawable/InsetDrawable.html
-http://developer.android.com/reference/android/content/pm/InstrumentationInfo.html
-http://developer.android.com/reference/android/test/InstrumentationTestCase.html
-http://developer.android.com/reference/android/test/InstrumentationTestRunner.html
 http://developer.android.com/reference/android/test/InstrumentationTestSuite.html
-http://developer.android.com/reference/java/nio/IntBuffer.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/app/IntentService.html
-http://developer.android.com/reference/java/io/InterruptedIOException.html
-http://developer.android.com/reference/java/security/InvalidAlgorithmParameterException.html
-http://developer.android.com/reference/java/io/InvalidClassException.html
 http://developer.android.com/reference/org/apache/http/auth/InvalidCredentialsException.html
-http://developer.android.com/reference/java/security/InvalidKeyException.html
-http://developer.android.com/reference/java/io/InvalidObjectException.html
-http://developer.android.com/reference/java/security/InvalidParameterException.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/org/json/JSONException.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/java/net/JarURLConnection.html
-http://developer.android.com/reference/android/webkit/JsPromptResult.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/KeyRep.Type.html
-http://developer.android.com/reference/java/security/KeyStoreException.html
-http://developer.android.com/reference/android/content/pm/LabeledIntent.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/graphics/drawable/LayerDrawable.html
-http://developer.android.com/reference/android/graphics/drawable/LevelListDrawable.html
-http://developer.android.com/reference/java/io/LineNumberInputStream.html
-http://developer.android.com/reference/java/io/LineNumberReader.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/org/xml/sax/ext/Locator2Impl.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
@@ -2224,132 +2712,79 @@
 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/net/MalformedURLException.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/android/database/MatrixCursor.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/text/MessageFormat.html
-http://developer.android.com/reference/java/text/MessageFormat.Field.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/MissingFormatArgumentException.html
-http://developer.android.com/reference/java/util/MissingFormatWidthException.html
 http://developer.android.com/reference/java/util/MissingResourceException.html
-http://developer.android.com/reference/android/test/mock/MockApplication.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/MockPackageManager.html
 http://developer.android.com/reference/android/text/method/MultiTapKeyListener.html
-http://developer.android.com/reference/java/net/MulticastSocket.html
-http://developer.android.com/reference/android/content/MutableContextWrapper.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/java/net/NetPermission.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDomainHandler.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/NetscapeDraftSpec.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/android/graphics/drawable/NinePatchDrawable.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/net/NoRouteToHostException.html
-http://developer.android.com/reference/java/security/NoSuchAlgorithmException.html
 http://developer.android.com/reference/java/util/NoSuchElementException.html
-http://developer.android.com/reference/javax/crypto/NoSuchPaddingException.html
-http://developer.android.com/reference/java/security/NoSuchProviderException.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/io/NotActiveException.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/io/NotSerializableException.html
-http://developer.android.com/reference/javax/crypto/NullCipher.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/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/java/io/ObjectInputStream.html
-http://developer.android.com/reference/java/io/ObjectOutputStream.html
-http://developer.android.com/reference/java/io/ObjectStreamException.html
-http://developer.android.com/reference/android/content/OperationApplicationException.html
 http://developer.android.com/reference/android/accounts/OperationCanceledException.html
-http://developer.android.com/reference/java/io/OptionalDataException.html
-http://developer.android.com/reference/java/io/OutputStreamWriter.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/android/content/pm/PackageManager.NameNotFoundException.html
-http://developer.android.com/reference/android/graphics/drawable/PaintDrawable.html
-http://developer.android.com/reference/java/text/ParseException.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/content/pm/PathPermission.html
-http://developer.android.com/reference/android/app/PendingIntent.CanceledException.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/java/security/Permissions.html
-http://developer.android.com/reference/java/lang/ref/PhantomReference.html
-http://developer.android.com/reference/android/graphics/drawable/PictureDrawable.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/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/net/PortUnreachableException.html
-http://developer.android.com/reference/dalvik/system/PotentialDeadlockError.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/security/PrivilegedActionException.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/java/net/ProtocolException.html
-http://developer.android.com/reference/java/security/Provider.html
-http://developer.android.com/reference/java/security/ProviderException.html
-http://developer.android.com/reference/android/content/pm/ProviderInfo.html
 http://developer.android.com/reference/android/test/ProviderTestCase.html
-http://developer.android.com/reference/android/test/ProviderTestCase2.html
-http://developer.android.com/reference/java/net/Proxy.Type.html
-http://developer.android.com/reference/java/io/PushbackInputStream.html
-http://developer.android.com/reference/java/io/PushbackReader.html
 http://developer.android.com/reference/android/text/method/QwertyKeyListener.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109Spec.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2109VersionHandler.html
 http://developer.android.com/reference/org/apache/http/impl/auth/RFC2617Scheme.html
-http://developer.android.com/reference/org/apache/http/impl/cookie/RFC2965Spec.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/content/ReceiverCallNotAllowedException.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/org/apache/http/impl/client/RequestWrapper.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/sax/RootElement.html
-http://developer.android.com/reference/android/graphics/drawable/RotateDrawable.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/java/text/RuleBasedCollator.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/java/sql/SQLException.html
-http://developer.android.com/reference/java/sql/SQLPermission.html
-http://developer.android.com/reference/java/sql/SQLWarning.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/SQLiteCursor.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
@@ -2360,183 +2795,141 @@
 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/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/SSLPermission.html
-http://developer.android.com/reference/javax/net/ssl/SSLProtocolException.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/android/graphics/drawable/ScaleDrawable.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/net/SecureCacheResponse.html
-http://developer.android.com/reference/java/security/SecureClassLoader.html
-http://developer.android.com/reference/java/security/SecurityPermission.html
-http://developer.android.com/reference/java/io/SequenceInputStream.html
-http://developer.android.com/reference/org/apache/http/entity/SerializableEntity.html
-http://developer.android.com/reference/java/io/SerializablePermission.html
-http://developer.android.com/reference/android/content/pm/ServiceInfo.html
-http://developer.android.com/reference/android/test/ServiceTestCase.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/javax/crypto/ShortBufferException.html
-http://developer.android.com/reference/java/security/SignatureException.html
-http://developer.android.com/reference/java/security/Signer.html
-http://developer.android.com/reference/java/text/SimpleDateFormat.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/android/test/SingleLaunchActivityTestCase.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/android/telephony/gsm/SmsMessage.MessageClass.html
-http://developer.android.com/reference/java/net/SocketException.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/java/net/SocketPermission.html
-http://developer.android.com/reference/java/net/SocketTimeoutException.html
-http://developer.android.com/reference/java/lang/ref/SoftReference.html
-http://developer.android.com/reference/android/webkit/SslErrorHandler.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/dalvik/system/StaleDexCacheError.html
-http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html
-http://developer.android.com/reference/java/io/StreamCorruptedException.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/StrictHostnameVerifier.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/java/io/StringBufferInputStream.html
-http://developer.android.com/reference/org/apache/http/entity/StringEntity.html
-http://developer.android.com/reference/java/io/StringReader.html
-http://developer.android.com/reference/java/io/StringWriter.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/java/io/SyncFailedException.html
-http://developer.android.com/reference/junit/framework/TestCase.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/java/awt/font/TextAttribute.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/sql/Time.html
-http://developer.android.com/reference/android/util/TimeFormatException.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/sql/Timestamp.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/android/graphics/drawable/TransitionDrawable.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/java/net/URISyntaxException.html
-http://developer.android.com/reference/java/net/URLClassLoader.html
-http://developer.android.com/reference/java/io/UTFDataFormatException.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/util/UnknownFormatConversionException.html
-http://developer.android.com/reference/java/util/UnknownFormatFlagsException.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/nio/charset/UnmappableCharacterException.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/nio/channels/UnresolvedAddressException.html
-http://developer.android.com/reference/java/security/UnresolvedPermission.html
-http://developer.android.com/reference/java/nio/channels/UnsupportedAddressTypeException.html
-http://developer.android.com/reference/javax/security/auth/callback/UnsupportedCallbackException.html
-http://developer.android.com/reference/java/nio/charset/UnsupportedCharsetException.html
 http://developer.android.com/reference/org/apache/http/impl/auth/UnsupportedDigestAlgorithmException.html
-http://developer.android.com/reference/java/io/UnsupportedEncodingException.html
 http://developer.android.com/reference/org/apache/http/UnsupportedHttpVersionException.html
-http://developer.android.com/reference/org/apache/http/client/entity/UrlEncodedFormEntity.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/android/webkit/WebSettings.LayoutAlgorithm.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/java/io/WriteAbortedException.html
 http://developer.android.com/reference/javax/security/cert/X509Certificate.html
-http://developer.android.com/reference/android/util/Xml.Encoding.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/org/xml/sax/ext/Attributes2.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/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/ext/Locator2.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/javax/security/auth/callback/Callback.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/Header.html
-http://developer.android.com/reference/org/apache/http/HeaderElement.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/HttpRequestInterceptor.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/ParseException.html
-http://developer.android.com/reference/org/apache/http/ProtocolException.html
-http://developer.android.com/reference/android/net/wifi/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/auth/AuthScheme.html
-http://developer.android.com/reference/org/apache/http/auth/AuthSchemeFactory.html
-http://developer.android.com/reference/org/apache/http/auth/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/android/graphics/drawable/Animatable.html
-http://developer.android.com/reference/android/graphics/drawable/package-descr.html
-http://developer.android.com/reference/android/test/PerformanceTestCase.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/test/package-descr.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-mdpi-v6/app_notes.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-mdpi-v6/live_folder_notes.html
-http://developer.android.com/reference/java/util/Collection.html
-http://developer.android.com/reference/java/security/PrivilegedAction.html
-http://developer.android.com/reference/java/io/Serializable.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/TypeVariable.html
-http://developer.android.com/reference/java/util/Comparator.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/Iterator.html
-http://developer.android.com/reference/java/util/ListIterator.html
-http://developer.android.com/reference/java/util/Map.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/android/provider/BaseColumns.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/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.PeopleColumns.html
-http://developer.android.com/reference/android/provider/Contacts.PhonesColumns.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
@@ -2565,20 +2958,45 @@
 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/java/io/Closeable.html
-http://developer.android.com/reference/java/io/Flushable.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/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/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/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/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/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/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/nio/channels/ByteChannel.html
 http://developer.android.com/reference/java/nio/channels/Channel.html
 http://developer.android.com/reference/java/nio/channels/GatheringByteChannel.html
@@ -2586,38 +3004,111 @@
 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/client/AuthenticationHandler.html
-http://developer.android.com/reference/org/apache/http/client/UserTokenHandler.html
-http://developer.android.com/reference/org/apache/http/client/HttpClient.html
-http://developer.android.com/reference/android/util/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/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/guide/topics/ui/notifiers/notifications.html
-http://developer.android.com/reference/java/text/AttributedCharacterIterator.html
-http://developer.android.com/reference/org/xml/sax/helpers/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/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/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/PrivateKey.html
-http://developer.android.com/reference/java/security/PrivilegedExceptionAction.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/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/org/xmlpull/v1/XmlPullParser.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/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/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
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/record/SmartPoster.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/record/TextRecord.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/record/UriRecord.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/simulator/FakeTagsActivity.html
+http://developer.android.com/resources/samples/NFCDemo/src/com/example/android/nfc/simulator/MockNdefMessages.html
+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/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/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
 http://developer.android.com/reference/android/text/style/LineBackgroundSpan.html
 http://developer.android.com/reference/android/text/style/LineHeightSpan.html
 http://developer.android.com/reference/android/text/style/LineHeightSpan.WithDensity.html
@@ -2626,304 +3117,853 @@
 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/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/IntentSender.OnFinished.html
-http://developer.android.com/reference/android/content/SharedPreferences.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/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/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/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/webkit/package-descr.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/Member.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/Proxy.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnRoutePNames.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/org/xml/sax/ContentHandler.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/android/database/sqlite/SQLiteDatabase.CursorFactory.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/org/apache/http/client/params/AllClientPNames.html
-http://developer.android.com/reference/java/sql/Array.html
-http://developer.android.com/reference/org/w3c/dom/Attr.html
-http://developer.android.com/reference/org/apache/http/auth/params/AuthPNames.html
-http://developer.android.com/reference/java/sql/Blob.html
-http://developer.android.com/reference/java/sql/CallableStatement.html
-http://developer.android.com/reference/android/hardware/Camera.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.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/org/w3c/dom/CDATASection.html
-http://developer.android.com/reference/org/w3c/dom/CharacterData.html
-http://developer.android.com/reference/org/apache/http/cookie/ClientCookie.html
-http://developer.android.com/reference/org/apache/http/client/params/ClientPNames.html
-http://developer.android.com/reference/java/sql/Clob.html
-http://developer.android.com/reference/org/w3c/dom/Comment.html
-http://developer.android.com/reference/java/util/concurrent/locks/Condition.html
-http://developer.android.com/reference/org/apache/http/conn/params/ConnConnectionPNames.html
-http://developer.android.com/reference/java/sql/Connection.html
-http://developer.android.com/reference/javax/sql/ConnectionEventListener.html
-http://developer.android.com/reference/javax/sql/ConnectionPoolDataSource.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/java/net/ContentHandlerFactory.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/cookie/CookieSpec.html
-http://developer.android.com/reference/org/apache/http/cookie/CookieSpecFactory.html
-http://developer.android.com/reference/org/apache/http/cookie/params/CookieSpecPNames.html
-http://developer.android.com/reference/android/net/Credentials.html
-http://developer.android.com/reference/java/sql/DatabaseMetaData.html
-http://developer.android.com/reference/java/net/DatagramSocketImplFactory.html
-http://developer.android.com/reference/javax/sql/DataSource.html
-http://developer.android.com/reference/android/text/format/DateUtils.html
-http://developer.android.com/reference/java/lang/Deprecated.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/org/w3c/dom/Document.html
-http://developer.android.com/reference/java/lang/annotation/Documented.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/DOMImplementation.html
-http://developer.android.com/reference/java/sql/Driver.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/javax/microedition/khronos/egl/EGL.html
-http://developer.android.com/reference/javax/microedition/khronos/egl/EGL10.html
-http://developer.android.com/reference/javax/microedition/khronos/egl/EGL11.html
-http://developer.android.com/reference/org/w3c/dom/Element.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/org/w3c/dom/Entity.html
-http://developer.android.com/reference/org/w3c/dom/EntityReference.html
-http://developer.android.com/reference/java/net/FileNameMap.html
-http://developer.android.com/reference/android/test/FlakyTest.html
-http://developer.android.com/reference/android/text/format/Formatter.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/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/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/location/GpsStatus.Listener.html
-http://developer.android.com/reference/android/location/GpsStatus.NmeaListener.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/javax/net/ssl/HandshakeCompletedListener.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/conn/scheme/HostNameResolver.html
-http://developer.android.com/reference/javax/net/ssl/HostnameVerifier.html
-http://developer.android.com/reference/java/lang/annotation/Inherited.html
-http://developer.android.com/reference/android/inputmethodservice/KeyboardView.OnKeyboardActionListener.html
-http://developer.android.com/reference/javax/net/ssl/KeyManager.html
-http://developer.android.com/reference/android/test/suitebuilder/annotation/LargeTest.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/message/LineFormatter.html
-http://developer.android.com/reference/org/apache/http/message/LineParser.html
-http://developer.android.com/reference/android/location/LocationListener.html
-http://developer.android.com/reference/javax/net/ssl/ManagerFactoryParameters.html
-http://developer.android.com/reference/java/util/jar/Manifest.html
-http://developer.android.com/reference/android/test/suitebuilder/annotation/MediumTest.html
-http://developer.android.com/reference/org/w3c/dom/NamedNodeMap.html
-http://developer.android.com/reference/org/w3c/dom/Node.html
-http://developer.android.com/reference/java/util/prefs/NodeChangeListener.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/apache/http/impl/auth/NTLMEngine.html
-http://developer.android.com/reference/dalvik/bytecode/Opcodes.html
-http://developer.android.com/reference/java/lang/Override.html
 http://developer.android.com/reference/java/security/acl/Owner.html
-http://developer.android.com/reference/java/sql/ParameterMetaData.html
-http://developer.android.com/reference/android/net/ParseException.html
-http://developer.android.com/reference/javax/crypto/interfaces/PBEKey.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/java/util/prefs/PreferenceChangeListener.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/java/util/prefs/PreferencesFactory.html
-http://developer.android.com/reference/java/sql/PreparedStatement.html
-http://developer.android.com/reference/org/w3c/dom/ProcessingInstruction.html
-http://developer.android.com/reference/java/beans/PropertyChangeListener.html
-http://developer.android.com/reference/junit/framework/Protectable.html
-http://developer.android.com/reference/android/net/Proxy.html
-http://developer.android.com/reference/java/sql/Ref.html
-http://developer.android.com/reference/org/apache/http/impl/conn/tsccm/RefQueueHandler.html
-http://developer.android.com/reference/android/widget/RemoteViews.RemoteView.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/lang/annotation/Retention.html
-http://developer.android.com/reference/org/apache/http/conn/routing/RouteInfo.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/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/sql/Savepoint.html
-http://developer.android.com/reference/javax/crypto/SecretKey.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/org/apache/http/cookie/SetCookie2.html
-http://developer.android.com/reference/org/apache/http/cookie/SM.html
-http://developer.android.com/reference/android/test/suitebuilder/annotation/SmallTest.html
-http://developer.android.com/reference/android/test/suitebuilder/annotation/Smoke.html
-http://developer.android.com/reference/android/telephony/gsm/SmsManager.html
-http://developer.android.com/reference/android/telephony/SmsMessage.html
-http://developer.android.com/reference/android/telephony/SmsMessage.MessageClass.html
-http://developer.android.com/reference/android/telephony/SmsMessage.SubmitPdu.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/sql/SQLData.html
-http://developer.android.com/reference/java/sql/SQLInput.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/java/sql/SQLOutput.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/android/sax/StartElementListener.html
-http://developer.android.com/reference/java/sql/Statement.html
-http://developer.android.com/reference/java/sql/Struct.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/java/lang/annotation/Target.html
-http://developer.android.com/reference/junit/framework/Test.html
-http://developer.android.com/reference/junit/framework/TestListener.html
-http://developer.android.com/reference/junit/runner/TestSuiteLoader.html
-http://developer.android.com/reference/dalvik/annotation/TestTarget.html
-http://developer.android.com/reference/dalvik/annotation/TestTargetClass.html
-http://developer.android.com/reference/org/w3c/dom/Text.html
-http://developer.android.com/reference/android/sax/TextElementListener.html
-http://developer.android.com/reference/android/test/UiThreadTest.html
-http://developer.android.com/reference/android/net/UrlQuerySanitizer.ValueSanitizer.html
-http://developer.android.com/reference/java/net/URLStreamHandlerFactory.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/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/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
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.AbstractExecutorService.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.util.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.locks.AbstractOwnableSynchronizer.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.util.concurrent.locks.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.AbstractThreadedSyncAdapter.html
+http://developer.android.com/sdk/api_diff/9/changes/java.security.AccessController.html
+http://developer.android.com/sdk/api_diff/9/changes/android.location.Criteria.html
+http://developer.android.com/sdk/api_diff/9/changes/android.provider.Settings.html
+http://developer.android.com/sdk/api_diff/9/changes/android.app.Activity.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.pm.ActivityInfo.html
+http://developer.android.com/sdk/api_diff/9/changes/android.app.ActivityManager.RunningAppProcessInfo.html
+http://developer.android.com/sdk/api_diff/9/changes/android.view.MotionEvent.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.sql.PooledConnection.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.provider.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.Calendar.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_dalvik.system.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.ThreadPoolExecutor.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.app.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.app.admin.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.content.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.content.pm.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.content.res.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.graphics.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.hardware.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.location.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.media.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.net.wifi.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.opengl.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.os.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.service.wallpaper.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.telephony.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.telephony.gsm.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.test.mock.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.text.format.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.util.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.view.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.view.inputmethod.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.webkit.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_android.widget.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.pm.ApplicationInfo.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.SharedPreferences.Editor.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.reflect.Array.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.Array.html
+http://developer.android.com/sdk/api_diff/9/changes/java.nio.Buffer.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.Arrays.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.Collections.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicBoolean.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicInteger.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicIntegerArray.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicIntegerFieldUpdater.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicLong.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicLongArray.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicLongFieldUpdater.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicReference.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicReferenceArray.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.atomic.AtomicReferenceFieldUpdater.html
+http://developer.android.com/sdk/api_diff/9/changes/android.media.AudioTrack.html
+http://developer.android.com/sdk/api_diff/9/changes/android.media.MediaPlayer.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.DatabaseMetaData.html
+http://developer.android.com/sdk/api_diff/9/changes/android.view.inputmethod.BaseInputConnection.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.BatchUpdateException.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.Blob.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.util.concurrent.html
+http://developer.android.com/sdk/api_diff/9/changes/java.text.BreakIterator.html
+http://developer.android.com/sdk/api_diff/9/changes/android.os.Build.html
+http://developer.android.com/sdk/api_diff/9/changes/android.os.Build.VERSION_CODES.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.Executors.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.CallableStatement.html
+http://developer.android.com/sdk/api_diff/9/changes/android.media.CamcorderProfile.html
+http://developer.android.com/sdk/api_diff/9/changes/android.hardware.Camera.html
+http://developer.android.com/sdk/api_diff/9/changes/android.hardware.Camera.Parameters.html
+http://developer.android.com/sdk/api_diff/9/changes/android.media.CameraProfile.html
+http://developer.android.com/sdk/api_diff/9/changes/java.io.File.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.TreeSet.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.TreeMap.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.Class.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.ResourceBundle.html
+http://developer.android.com/sdk/api_diff/9/changes/java.io.PrintStream.html
+http://developer.android.com/sdk/api_diff/9/changes/java.io.PrintWriter.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.sql.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.Clob.html
+http://developer.android.com/sdk/api_diff/9/changes/android.app.Notification.html
+http://developer.android.com/sdk/api_diff/9/changes/android.widget.RemoteViews.html
+http://developer.android.com/sdk/api_diff/9/changes/java.text.CollationKey.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_javax.sql.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.ConcurrentHashMap.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.res.Configuration.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.Connection.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.sql.ConnectionPoolDataSource.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.io.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.System.html
+http://developer.android.com/sdk/api_diff/9/changes/android.provider.ContactsContract.CommonDataKinds.Nickname.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.Context.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.net.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.Math.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.StrictMath.html
+http://developer.android.com/sdk/api_diff/9/changes/android.os.ParcelFileDescriptor.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_dalvik.bytecode.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.sql.DataSource.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.DataTruncation.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.xml.datatype.DatatypeFactory.html
+http://developer.android.com/sdk/api_diff/9/changes/java.text.DateFormatSymbols.html
+http://developer.android.com/sdk/api_diff/9/changes/android.text.format.DateUtils.html
+http://developer.android.com/sdk/api_diff/9/changes/java.text.DecimalFormatSymbols.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.ScheduledThreadPoolExecutor.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.util.zip.html
+http://developer.android.com/sdk/api_diff/9/changes/android.util.DisplayMetrics.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.LinkedList.html
+http://developer.android.com/sdk/api_diff/9/changes/android.view.KeyEvent.html
+http://developer.android.com/sdk/api_diff/9/changes/android.app.admin.DevicePolicyManager.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.security.auth.Subject.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.xml.parsers.DocumentBuilderFactory.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.Double.html
+http://developer.android.com/sdk/api_diff/9/changes/android.os.DropBoxManager.Entry.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.net.ssl.SSLContextSpi.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.Enum.html
+http://developer.android.com/sdk/api_diff/9/changes/android.os.Environment.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.ExecutorService.html
+http://developer.android.com/sdk/api_diff/9/changes/android.media.ExifInterface.html
+http://developer.android.com/sdk/api_diff/9/changes/org.apache.http.protocol.HTTP.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.pm.PackageManager.html
+http://developer.android.com/sdk/api_diff/9/changes/android.R.attr.html
+http://developer.android.com/sdk/api_diff/9/changes/dalvik.system.PathClassLoader.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.pm.PackageInfo.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.Float.html
+http://developer.android.com/sdk/api_diff/9/changes/java.text.Format.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.FutureTask.html
+http://developer.android.com/sdk/api_diff/9/changes/android.location.Geocoder.html
+http://developer.android.com/sdk/api_diff/9/changes/android.test.mock.MockPackageManager.html
+http://developer.android.com/sdk/api_diff/9/changes/android.hardware.SensorManager.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.Package.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.locks.LockSupport.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.String.html
+http://developer.android.com/sdk/api_diff/9/changes/java.lang.reflect.Member.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.net.ssl.SSLContext.html
+http://developer.android.com/sdk/api_diff/9/changes/android.view.View.html
+http://developer.android.com/sdk/api_diff/9/changes/java.net.NetworkInterface.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.ResultSet.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.net.ssl.SSLSessionContext.html
+http://developer.android.com/sdk/api_diff/9/changes/java.security.Policy.html
+http://developer.android.com/sdk/api_diff/9/changes/android.hardware.Sensor.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.security.auth.x500.X500Principal.html
+http://developer.android.com/sdk/api_diff/9/changes/java.net.SocketImpl.html
+http://developer.android.com/sdk/api_diff/9/changes/android.widget.ListView.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.net.ssl.KeyStoreBuilderParameters.html
+http://developer.android.com/sdk/api_diff/9/changes/android.webkit.WebSettings.html
+http://developer.android.com/sdk/api_diff/9/changes/android.telephony.gsm.GsmCellLocation.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.concurrent.locks.ReentrantReadWriteLock.html
+http://developer.android.com/sdk/api_diff/9/changes/java.text.NumberFormat.html
+http://developer.android.com/sdk/api_diff/9/changes/android.view.ViewConfiguration.html
+http://developer.android.com/sdk/api_diff/9/changes/android.view.inputmethod.InputConnection.html
+http://developer.android.com/sdk/api_diff/9/changes/android.view.inputmethod.InputConnectionWrapper.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.net.ssl.SSLEngine.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.net.ssl.SSLSocket.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.IntentSender.html
+http://developer.android.com/sdk/api_diff/9/changes/android.opengl.GLES20.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.logging.Logger.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.net.ssl.HandshakeCompletedEvent.html
+http://developer.android.com/sdk/api_diff/9/changes/android.graphics.ImageFormat.html
+http://developer.android.com/sdk/api_diff/9/changes/android.provider.MediaStore.html
+http://developer.android.com/sdk/api_diff/9/changes/java.io.IOException.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.Statement.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.SQLException.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.awt.font.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.lang.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.lang.reflect.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.nio.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.security.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.text.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.util.concurrent.atomic.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_java.util.logging.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_javax.net.ssl.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_javax.security.auth.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_javax.security.auth.x500.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_javax.xml.datatype.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_javax.xml.parsers.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_javax.xml.transform.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_javax.xml.validation.html
+http://developer.android.com/sdk/api_diff/9/changes/java.awt.font.TextAttribute.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.Properties.html
+http://developer.android.com/sdk/api_diff/9/changes/android.content.pm.PackageItemInfo.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.Locale.html
+http://developer.android.com/sdk/api_diff/9/changes/android.location.LocationManager.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.Types.html
+http://developer.android.com/sdk/api_diff/9/changes/java.io.ObjectStreamClass.html
+http://developer.android.com/sdk/api_diff/9/changes/android.Manifest.permission.html
+http://developer.android.com/sdk/api_diff/9/changes/android.media.MediaRecorder.html
+http://developer.android.com/sdk/api_diff/9/changes/android.telephony.TelephonyManager.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.xml.parsers.SAXParserFactory.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.xml.transform.TransformerFactory.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.xml.validation.SchemaFactory.html
+http://developer.android.com/sdk/api_diff/9/changes/android.service.wallpaper.WallpaperService.Engine.html
+http://developer.android.com/sdk/api_diff/9/changes/dalvik.bytecode.Opcodes.html
+http://developer.android.com/sdk/api_diff/9/changes/pkg_org.apache.http.protocol.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.ParameterMetaData.html
+http://developer.android.com/sdk/api_diff/9/changes/java.io.PipedInputStream.html
+http://developer.android.com/sdk/api_diff/9/changes/java.io.PipedReader.html
+http://developer.android.com/sdk/api_diff/9/changes/android.os.PowerManager.WakeLock.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.PreparedStatement.html
+http://developer.android.com/sdk/api_diff/9/changes/android.R.drawable.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.PropertyResourceBundle.html
+http://developer.android.com/sdk/api_diff/9/changes/android.R.style.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.SQLInput.html
+http://developer.android.com/sdk/api_diff/9/changes/java.util.Scanner.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.ResultSetMetaData.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.sql.RowSet.html
+http://developer.android.com/sdk/api_diff/9/changes/android.net.wifi.WifiManager.WifiLock.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.SQLOutput.html
+http://developer.android.com/sdk/api_diff/9/changes/java.sql.SQLWarning.html
+http://developer.android.com/sdk/api_diff/9/changes/javax.net.ssl.SSLSessionBindingEvent.html
+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/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/reference/javax/net/ssl/X509KeyManager.html
-http://developer.android.com/reference/javax/net/ssl/X509TrustManager.html
-http://developer.android.com/reference/org/xmlpull/v1/XmlSerializer.html
-http://developer.android.com/reference/org/apache/http/cookie/params/package-descr.html
-http://developer.android.com/reference/java/util/concurrent/locks/package-descr.html
-http://developer.android.com/reference/org/apache/http/conn/routing/package-descr.html
-http://developer.android.com/guide/appendix/faq/commontasks.html
-http://developer.android.com/reference/javax/security/cert/package-descr.html
-http://developer.android.com/reference/org/xml/sax/ext/package-descr.html
-http://developer.android.com/reference/java/security/package-descr.html
-http://developer.android.com/guide/topics/ui/notifiers/toasts.html
-http://developer.android.com/guide/appendix/faq/index.html
-http://developer.android.com/reference/org/apache/http/message/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/guide/developing/tools/adt.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/package-descr.html
-http://developer.android.com/reference/android/content/pm/package-descr.html
-http://developer.android.com/reference/org/apache/http/auth/params/package-descr.html
-http://developer.android.com/reference/org/apache/http/cookie/package-descr.html
-http://developer.android.com/reference/java/net/package-descr.html
-http://developer.android.com/reference/java/util/prefs/package-descr.html
-http://developer.android.com/reference/android/sax/package-descr.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/java/io/package-descr.html
-http://developer.android.com/reference/javax/xml/parsers/package-descr.html
-http://developer.android.com/reference/java/nio/channels/package-descr.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/java/util/concurrent/package-descr.html
-http://developer.android.com/reference/org/apache/http/client/utils/package-descr.html
-http://developer.android.com/reference/android/database/sqlite/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/RemoteService.html
-http://developer.android.com/resources/samples/WiktionarySimple/src/com/index.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/LunarLander/src/com/index.html
-http://developer.android.com/reference/junit/framework/package-descr.html
-http://developer.android.com/reference/java/util/concurrent/atomic/package-descr.html
-http://developer.android.com/reference/org/xml/sax/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/index.html
-http://developer.android.com/reference/java/lang/package-descr.html
-http://developer.android.com/reference/android/bluetooth/package-descr.html
-http://developer.android.com/guide/appendix/faq/framework.html
-http://developer.android.com/guide/appendix/faq/troubleshooting.html
-http://developer.android.com/guide/appendix/faq/licensingandoss.html
-http://developer.android.com/guide/appendix/faq/security.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/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/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/sdk/api_diff/5/changes/android.os.BatteryManager.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.os.Debug.MemoryInfo.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/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.content.pm.PackageManager.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
+http://developer.android.com/sdk/api_diff/7/changes/pkg_android.app.html
+http://developer.android.com/sdk/api_diff/7/changes/pkg_android.content.html
+http://developer.android.com/sdk/api_diff/7/changes/pkg_android.content.pm.html
+http://developer.android.com/sdk/api_diff/7/changes/pkg_android.graphics.html
+http://developer.android.com/sdk/api_diff/7/changes/pkg_android.media.html
+http://developer.android.com/sdk/api_diff/7/changes/pkg_android.os.html
+http://developer.android.com/sdk/api_diff/7/changes/pkg_android.telephony.html
+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
+http://developer.android.com/sdk/api_diff/7/changes/android.webkit.WebChromeClient.html
+http://developer.android.com/sdk/api_diff/7/changes/android.webkit.WebSettings.html
+http://developer.android.com/sdk/api_diff/7/changes/android.widget.ViewFlipper.html
+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/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/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/resources/samples/ApiDemos/assets/fonts/index.html
-http://developer.android.com/reference/android/telephony/package-descr.html
-http://developer.android.com/reference/android/hardware/package-descr.html
-http://developer.android.com/reference/android/package-descr.html
-http://developer.android.com/reference/java/sql/package-descr.html
-http://developer.android.com/reference/org/apache/http/impl/io/package-descr.html
-http://developer.android.com/resources/tutorials/views/hello-spinner.html
-http://developer.android.com/resources/tutorials/views/hello-listview.html
-http://developer.android.com/resources/tutorials/views/hello-gridview.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/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/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
@@ -2946,127 +3986,77 @@
 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/reference/android/view/inputmethod/package-descr.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/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/robot.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/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/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/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/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/3/changes.html
-http://developer.android.com/sdk/android-1.5-highlights.html
-http://developer.android.com/sdk/api_diff/6/changes/jdiff_statistics.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/4/changes.html
-http://developer.android.com/sdk/android-1.6-highlights.html
-http://developer.android.com/reference/android/content/res/package-descr.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi-v6/app_notes.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-hdpi-v6/live_folder_notes.html
-http://developer.android.com/reference/android/test/mock/package-descr.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/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/resources/samples/NotePad/tests/src/index.html
-http://developer.android.com/resources/samples/NotePad/tests/AndroidManifest.html
-http://developer.android.com/reference/java/nio/charset/package-descr.html
-http://developer.android.com/reference/javax/crypto/interfaces/package-descr.html
-http://developer.android.com/reference/org/apache/http/conn/params/package-descr.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/ApiDemos/tests/src/com/example/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-small-long/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/reference/android/view/package-descr.html
-http://developer.android.com/sdk/api_diff/6/changes/android.os.Build.VERSION_CODES.html
-http://developer.android.com/reference/android/database/package-descr.html
-http://developer.android.com/sdk/adt_download.html
-http://developer.android.com/reference/javax/security/auth/x500/package-descr.html
-http://developer.android.com/sdk/api_diff/6/changes/android.view.WindowManager.LayoutParams.html
-http://developer.android.com/reference/android/net/package-descr.html
 http://developer.android.com/reference/org/apache/http/client/package-descr.html
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-windows-1.6_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-mac_x86-1.6_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-linux_x86-1.6_r1.tgz
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-windows-1.5_r3.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-mac_x86-1.5_r3.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-linux_x86-1.5_r3.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-windows-1.1_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-mac_x86-1.1_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-linux_x86-1.1_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-windows-1.0_r2.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-mac_x86-1.0_r2.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-linux_x86-1.0_r2.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-windows-1.5_r2.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-mac_x86-1.5_r2.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-linux_x86-1.5_r2.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-windows-1.5_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-mac_x86-1.5_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-linux_x86-1.5_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-windows-1.0_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-mac_x86-1.0_r1.zip
-http://developer.android.com/sdk/download.html?v=archives/android-sdk-linux_x86-1.0_r1.zip
-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/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/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
@@ -3122,196 +4112,268 @@
 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/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/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.view.View.html
-http://developer.android.com/sdk/api_diff/4/changes/android.test.AndroidTestCase.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.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.telephony.gsm.SmsManager.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.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.Bitmap.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.content.pm.ConfigurationInfo.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.PendingIntent.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.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.app.SearchManager.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/sdk/api_diff/6/changes/android.accounts.AbstractAccountAuthenticator.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/sdk/api_diff/4/changes/jdiff_statistics.html
-http://developer.android.com/reference/java/security/acl/package-descr.html
-http://developer.android.com/reference/javax/crypto/spec/package-descr.html
-http://developer.android.com/resources/samples/Wiktionary/src/com/index.html
-http://developer.android.com/reference/android/telephony/cdma/package-descr.html
-http://developer.android.com/reference/android/content/package-descr.html
-http://developer.android.com/reference/android/app/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-notlong/strings.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-long/strings.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/java/util/package-descr.html
-http://developer.android.com/reference/java/text/package-descr.html
-http://developer.android.com/resources/samples/BluetoothChat/src/com/index.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/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/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/sdk/api_diff/4/changes/java.util.concurrent.locks.AbstractQueuedSynchronizer.html
-http://developer.android.com/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html
-http://developer.android.com/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.view.animation.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.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/pkg_android.os.html
-http://developer.android.com/sdk/api_diff/4/changes/android.widget.CheckedTextView.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.util.DisplayMetrics.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.opengl.html
-http://developer.android.com/sdk/api_diff/4/changes/android.text.style.ImageSpan.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/android.app.LauncherActivity.ListItem.html
-http://developer.android.com/sdk/api_diff/4/changes/android.Manifest.permission.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.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.content.pm.ProviderInfo.html
-http://developer.android.com/sdk/api_diff/4/changes/android.R.anim.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.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.hardware.SensorManager.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.provider.Settings.System.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.telephony.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.telephony.gsm.SmsMessage.SubmitPdu.html
-http://developer.android.com/sdk/api_diff/4/changes/android.view.Surface.html
-http://developer.android.com/sdk/api_diff/4/changes/android.telephony.TelephonyManager.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/sdk/api_diff/4/changes/android.util.TypedValue.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.net.wifi.html
-http://developer.android.com/sdk/api_diff/4/changes/pkg_android.widget.html
-http://developer.android.com/reference/org/apache/http/protocol/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-large-long/strings.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/values-land/dimens.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-large/strings.html
-http://developer.android.com/reference/java/security/interfaces/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/reference/android/text/style/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/resources/tutorials/views/hello-linearlayout.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/dalvik/system/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/reference/javax/net/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/index.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/index.html
-http://developer.android.com/sdk/api_diff/6/changes/android.R.attr.html
-http://developer.android.com/reference/android/provider/package-descr.html
-http://developer.android.com/sdk/terms_body.html
-http://developer.android.com/reference/java/util/jar/package-descr.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/BluetoothChat/res/menu/option_menu.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/tutorials/views/hello-formstuff.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/NotePad/res/drawable-hdpi/app_notes.html
-http://developer.android.com/reference/dalvik/bytecode/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/resources/samples/NotePad/res/drawable-ldpi-v6/app_notes.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-ldpi-v6/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/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
@@ -3322,6 +4384,494 @@
 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/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/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
@@ -3359,7 +4909,10 @@
 http://developer.android.com/resources/samples/ApiDemos/res/layout/date_widgets_example_2.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/density_image_views.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/density_styled_image_views.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/device_admin_sample.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/dialog_activity.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/external_storage.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/external_storage_item.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/focus_1.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/focus_2.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/focus_3.html
@@ -3413,9 +4966,11 @@
 http://developer.android.com/resources/samples/ApiDemos/res/layout/marquee.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/mediaplayer_1.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/mediaplayer_2.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/messenger_service_binding.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/morse_code.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/notify_with_text.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/notifying_controller.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/pick_contact.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/preference_widget_mypreference.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/progressbar_1.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/progressbar_2.html
@@ -3439,6 +4994,7 @@
 http://developer.android.com/resources/samples/ApiDemos/res/layout/reorder_two.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/resources.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/save_restore_state.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/screen_orientation.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/scroll_view_1.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/scroll_view_2.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/scrollbar1.html
@@ -3446,11 +5002,14 @@
 http://developer.android.com/resources/samples/ApiDemos/res/layout/scrollbar3.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/search_invoke.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/search_query_results.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/secure_view.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/secure_view_overlay.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/seekbar_1.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/select_dialog.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/send_result.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/service_start_arguments_controller.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/shape_drawable_1.html
+http://developer.android.com/resources/samples/ApiDemos/res/layout/sms_demo.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/spinner_1.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/status_bar_balloon.html
 http://developer.android.com/resources/samples/ApiDemos/res/layout/status_bar_notifications.html
@@ -3477,136 +5036,48 @@
 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/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/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/android/os/package-descr.html
-http://developer.android.com/reference/javax/xml/package-descr.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/reference/org/apache/http/client/params/package-descr.html
-http://developer.android.com/resources/samples/BluetoothChat/src/com/example/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/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/NotePad/src/com/index.html
-http://developer.android.com/resources/samples/LunarLander/src/com/example/index.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-small/strings.html
-http://developer.android.com/reference/java/math/package-descr.html
-http://developer.android.com/resources/samples/SoftKeyboard/res/layout/input.html
-http://developer.android.com/resources/samples/BluetoothChat/res/drawable-hdpi/app_icon.html
-http://developer.android.com/reference/javax/crypto/package-descr.html
-http://developer.android.com/reference/android/gesture/package-descr.html
-http://developer.android.com/sdk/api_diff/6/changes/classes_index_changes.html
-http://developer.android.com/reference/org/apache/http/params/package-descr.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/reference/android/telephony/gsm/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-normal/strings.html
-http://developer.android.com/reference/javax/security/auth/login/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/tests/src/com/example/android/apis/index.html
-http://developer.android.com/reference/org/apache/http/conn/ssl/package-descr.html
-http://developer.android.com/resources/samples/ContactManager/res/drawable-hdpi/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/resources/samples/SoftKeyboard/src/com/index.html
-http://developer.android.com/resources/samples/BluetoothChat/res/drawable/app_icon.html
-http://developer.android.com/reference/org/apache/http/impl/entity/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/index.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/reference/android/location/package-descr.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/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/WiktionarySimple/res/xml/widget_word.html
-http://developer.android.com/resources/tutorials/views/hello-autocomplete.html
-http://developer.android.com/resources/tutorials/views/hello-gallery.html
-http://developer.android.com/resources/tutorials/views/hello-tabwidget.html
-http://developer.android.com/resources/tutorials/views/hello-mapview.html
-http://developer.android.com/resources/tutorials/views/hello-webview.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/index.html
-http://developer.android.com/resources/samples/JetBoy/src/com/index.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/6/changes/alldiffs_index_additions.html
-http://developer.android.com/sdk/api_diff/6/changes/alldiffs_index_changes.html
-http://developer.android.com/resources/samples/LunarLander/src/com/example/android/index.html
-http://developer.android.com/resources/samples/LunarLander/tests/src/com/index.html
-http://developer.android.com/sdk/api_diff/6/changes/packages_index_changes.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/robot.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/ApiDemos/src/com/example/android/apis/graphics/GLSurfaceViewActivity.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/ContactManager/res/drawable-mdpi/icon.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/ApiDemos/src/com/example/android/index.html
-http://developer.android.com/sdk/api_diff/6/changes/methods_index_changes.html
-http://developer.android.com/reference/android/text/method/package-descr.html
-http://developer.android.com/resources/samples/ContactManager/src/com/index.html
-http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/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/ApiDemos/res/values-small-notlong/strings.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/resources/samples/BluetoothChat/res/values/strings.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/ContactManager/res/drawable-ldpi/icon.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
@@ -3631,314 +5102,217 @@
 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/Wiktionary/src/com/example/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/sdk/api_diff/5/changes/jdiff_statistics.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/ContactManager/src/com/example/index.html
-http://developer.android.com/reference/javax/net/ssl/package-descr.html
-http://developer.android.com/reference/android/media/package-descr.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-mdpi/app_notes.html
-http://developer.android.com/resources/samples/NotePad/res/drawable-mdpi/live_folder_notes.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/reference/org/apache/http/conn/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/resources/samples/ApiDemos/res/values-normal-notlong/strings.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.HapticFeedbackConstants.html
-http://developer.android.com/sdk/api_diff/5/changes/android.view.KeyEvent.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.view.MotionEvent.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.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/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/android.content.BroadcastReceiver.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.content.Intent.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.location.LocationManager.html
-http://developer.android.com/sdk/api_diff/5/changes/android.webkit.PluginList.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.database.sqlite.SQLiteDatabase.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.NotificationManager.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.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.telephony.PhoneNumberUtils.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.graphics.drawable.Drawable.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.webkit.Plugin.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.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/5/changes/android.hardware.Camera.Parameters.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.WebSettings.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.telephony.NeighboringCellInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.ActivityManager.html
-http://developer.android.com/sdk/api_diff/5/changes/android.media.AudioManager.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.WebView.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.telephony.TelephonyManager.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.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.graphics.drawable.Drawable.ConstantState.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.Dialog.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.WebChromeClient.html
-http://developer.android.com/sdk/api_diff/5/changes/android.inputmethodservice.InputMethodService.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.LauncherActivity.html
-http://developer.android.com/sdk/api_diff/5/changes/android.telephony.PhoneStateListener.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.Service.html
-http://developer.android.com/sdk/api_diff/5/changes/android.os.HandlerThread.html
-http://developer.android.com/sdk/api_diff/5/changes/android.database.DatabaseUtils.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.test.AndroidTestRunner.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.IntentService.html
-http://developer.android.com/sdk/api_diff/5/changes/android.media.ToneGenerator.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.SearchManager.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/sdk/api_diff/5/changes/android.provider.Contacts.SettingsColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.Manifest.permission.html
-http://developer.android.com/sdk/api_diff/5/changes/android.R.attr.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.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.R.style.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.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.media.AudioFormat.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.provider.Contacts.OrganizationColumns.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.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.Photos.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.Groups.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.PhotosColumns.html
-http://developer.android.com/sdk/api_diff/5/changes/android.text.TextPaint.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.WebViewClient.html
-http://developer.android.com/sdk/api_diff/5/changes/android.os.BatteryManager.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.content.pm.ActivityInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.app.Notification.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.app.ActivityManager.RunningAppProcessInfo.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.content.pm.ProviderInfo.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.Contacts.ExtensionsColumns.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.content.res.Configuration.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.ResolveInfo.html
-http://developer.android.com/sdk/api_diff/5/changes/android.R.drawable.html
-http://developer.android.com/sdk/api_diff/5/changes/android.text.InputType.html
-http://developer.android.com/sdk/api_diff/5/changes/android.graphics.PixelFormat.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/ApiDemos/res/values-large-notlong/strings.html
-http://developer.android.com/reference/javax/sql/package-descr.html
-http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/index.html
-http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/index.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/Snake/src/com/index.html
-http://developer.android.com/reference/android/appwidget/package-descr.html
-http://developer.android.com/resources/samples/BluetoothChat/src/com/example/android/index.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/reference/org/w3c/dom/package-descr.html
-http://developer.android.com/reference/org/apache/http/package-descr.html
-http://developer.android.com/resources/samples/MultiResolution/src/com/example/index.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/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/reference/android/inputmethodservice/package-descr.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/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/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.graphics.drawable.BitmapDrawable.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/dalvik.system.VMDebug.html
-http://developer.android.com/resources/samples/Home/res/values-de-rDE/strings.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/index.html
-http://developer.android.com/reference/android/opengl/package-descr.html
-http://developer.android.com/sdk/api_diff/3/changes/jdiff_statistics.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/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/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/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/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/reference/java/nio/charset/spi/package-descr.html
-http://developer.android.com/resources/samples/JetBoy/src/com/example/index.html
-http://developer.android.com/reference/junit/runner/package-descr.html
-http://developer.android.com/reference/android/test/suitebuilder/package-descr.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/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/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.net.wifi.WifiManager.html
-http://developer.android.com/resources/samples/Home/res/layout-land/home.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/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
+http://developer.android.com/resources/samples/ApiDemos/res/raw/skycubemap2.html
+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
@@ -4039,268 +5413,74 @@
 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/java.lang.Character.UnicodeBlock.html
-http://developer.android.com/sdk/api_diff/3/changes/java.lang.Class.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/index.html
-http://developer.android.com/resources/samples/NotePad/src/com/google/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/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.Annotation.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.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.os.Handler.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.net.NetworkInfo.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.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.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.graphics.drawable.TransitionDrawable.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.UnderlineSpan.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.URLSpan.html
-http://developer.android.com/reference/java/nio/package-descr.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/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.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.app.Activity.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.test.ActivityInstrumentationTestCase.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.view.animation.Animation.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.ArrayAdapter.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.content.res.AssetFileDescriptor.html
-http://developer.android.com/sdk/api_diff/3/changes/android.media.AudioManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.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.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.provider.Browser.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Build.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.Chronometer.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.net.ConnectivityManager.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.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.database.Cursor.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.CursorAdapter.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/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.os.Debug.html
-http://developer.android.com/sdk/api_diff/3/changes/dalvik.system.DexFile.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.content.DialogInterface.html
-http://developer.android.com/sdk/api_diff/3/changes/android.preference.DialogPreference.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.graphics.drawable.Drawable.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Environment.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.IBinder.html
-http://developer.android.com/sdk/api_diff/3/changes/android.app.Instrumentation.html
-http://developer.android.com/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html
-http://developer.android.com/sdk/api_diff/3/changes/android.content.Intent.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.app.LauncherActivity.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.widget.ListView.html
-http://developer.android.com/sdk/api_diff/3/changes/android.location.Location.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.logging.LogManager.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.Looper.html
-http://developer.android.com/sdk/api_diff/3/changes/android.Manifest.permission.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.media.MediaPlayer.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.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.text.method.MetaKeyKeyListener.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.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/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.content.pm.PackageInfo.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.os.Parcel.html
-http://developer.android.com/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.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.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.widget.ProgressBar.html
-http://developer.android.com/sdk/api_diff/3/changes/android.test.ProviderTestCase.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.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/3/changes/android.text.style.RasterizerSpan.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.widget.RemoteViews.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.media.RingtoneManager.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.Scroller.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.hardware.SensorListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.hardware.SensorManager.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/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html
-http://developer.android.com/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html
-http://developer.android.com/sdk/api_diff/3/changes/android.media.SoundPool.html
-http://developer.android.com/sdk/api_diff/3/changes/android.util.SparseIntArray.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.text.method.TextKeyListener.html
-http://developer.android.com/sdk/api_diff/3/changes/android.widget.TextView.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.util.TimeUtils.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.test.TouchUtils.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.content.res.TypedArray.html
-http://developer.android.com/sdk/api_diff/3/changes/android.text.style.UpdateLayout.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.URLUtil.html
-http://developer.android.com/sdk/api_diff/3/changes/dalvik.system.VMDebug.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/sdk/api_diff/3/changes/dalvik.system.Zygote.html
-http://developer.android.com/resources/samples/Snake/res/layout/snake_layout.html
-http://developer.android.com/resources/samples/MultiResolution/src/com/example/android/index.html
-http://developer.android.com/reference/javax/security/auth/callback/package-descr.html
-http://developer.android.com/resources/samples/Snake/src/com/example/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/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/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/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/reference/org/apache/http/util/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/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/MultiResolution/src/com/example/android/multires/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/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/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/BluetoothChat/src/com/example/android/BluetoothChat/index.html
-http://developer.android.com/resources/samples/LunarLander/res/values/strings.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/LunarLander/res/drawable-port/earthrise.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/src/com/example/android/apis/index.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/resources/samples/ContactManager/res/drawable-ldpi/icon.html
-http://developer.android.com/resources/samples/LunarLander/res/layout/lunar_layout.html
-http://developer.android.com/resources/samples/Home/res/values-es-rUS/strings.html
-http://developer.android.com/resources/samples/Wiktionary/src/com/example/android/wiktionary/index.html
-http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/android/index.html
-http://developer.android.com/resources/samples/Wiktionary/res/menu/lookup.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/reference/android/preference/package-descr.html
-http://developer.android.com/resources/samples/Snake/src/com/example/android/index.html
-http://developer.android.com/resources/samples/LunarLander/res/drawable-land/earthrise.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/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/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/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/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/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/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
@@ -4311,24 +5491,35 @@
 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/Home/res/layout-port/home.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/SearchableDictionary/src/com/example/index.html
-http://developer.android.com/resources/samples/Home/src/com/index.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/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/reference/java/lang/annotation/package-descr.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/ReadAsset.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/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/CameraPreview.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
@@ -4348,14 +5539,21 @@
 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
@@ -4378,209 +5576,25 @@
 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/Wiktionary/res/anim/slide_in.html
-http://developer.android.com/resources/samples/Wiktionary/res/anim/slide_out.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/Home/res/color/bright_text_dark_focused.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/drawable/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/layout/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/LunarLander/src/com/example/android/lunarlander/index.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/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/ContactManager/res/values/strings.html
-http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/index.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/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/org/apache/http/entity/package-descr.html
-http://developer.android.com/resources/samples/ApiDemos/res/values-normal-long/strings.html
-http://developer.android.com/resources/samples/MultiResolution/src/com/example/android/multires/MultiRes.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/Home/src/com/example/index.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/JetBoy/JETBOY_content/JETBOY_Music.logic/index.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/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/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/SearchableDictionary/res/values/strings.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/index.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/tests/src/com/index.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-mdpi-v6/ic_launcher.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/layout/main.html
-http://developer.android.com/resources/samples/SearchableDictionary/res/layout/word.html
-http://developer.android.com/resources/samples/MultiResolution/res/drawable-hdpi-v6/ic_launcher.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/JetBoy/res/values/strings.html
-http://developer.android.com/resources/samples/JetBoy/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/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/Home/res/values-land/strings.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/Snake/src/com/example/android/snake/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/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/tests/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/JetBoy/src/com/example/android/index.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/SearchableDictionary/res/drawable/ic_dictionary.html
-http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/index.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/NotePad/src/com/google/provider/index.html
-http://developer.android.com/resources/samples/JetBoy/JETBOY_content/JETBOY_Music.logic/LgDoc/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/SearchableDictionary/res/xml/searchable.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/MultiResolution/res/drawable-ldpi-v6/ic_launcher.html
-http://developer.android.com/resources/samples/LunarLander/tests/src/com/example/android/lunarlander/LunarLanderTest.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/index.html
-http://developer.android.com/resources/samples/WiktionarySimple/src/com/example/android/index.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/MultiResolution/res/layout/main.html
-http://developer.android.com/resources/samples/NotePad/res/values/strings.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
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/GLShape.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/GLVertex.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/GLWorld.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/Kube.html
-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/Home/res/values-nl-rNL/strings.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/NotePad/tests/src/com/example/index.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/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/appwidget/ExampleBroadcastReceiver.html
-http://developer.android.com/resources/samples/MultiResolution/res/layout-land/main.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/Home/src/com/example/android/index.html
-http://developer.android.com/resources/samples/Snake/tests/src/com/example/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/WiktionarySimple/src/com/example/android/simplewiktionary/index.html
-http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/index.html
-http://developer.android.com/resources/samples/Home/src/com/example/android/home/index.html
-http://developer.android.com/resources/samples/NotePad/tests/src/com/example/android/index.html
-http://developer.android.com/resources/samples/NotePad/src/com/google/provider/NotePad.html
-http://developer.android.com/resources/samples/SearchableDictionary/src/com/example/android/searchabledict/Dictionary.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/JetBoy/res/layout/main.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/ContactManager/src/com/example/android/index.html
-http://developer.android.com/resources/samples/Snake/tests/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/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
@@ -4589,14 +5603,9 @@
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/RedirectEnter.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/TranslucentActivity.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/TranslucentBlurActivity.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalServiceController.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalService.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalServiceBinding.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/RemoteServiceController.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/RemoteServiceBinding.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ServiceStartArgumentsController.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/RemoteService.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ServiceStartArguments.html
-http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ForegroundServiceController.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/AlarmController.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/OneShotAlarm.html
@@ -4625,7 +5634,10 @@
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LaunchingPreferences.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalSample.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalSampleInstrumentation.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalServiceActivities.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/MenuInflateFromXml.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/MessengerService.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/MessengerServiceActivities.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/MyPreference.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/NotificationDisplay.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/NotifyingController.html
@@ -4640,25 +5652,46 @@
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ReorderOnLaunch.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ReorderThree.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ReorderTwo.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/ScreenOrientation.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/SendResult.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/SetWallpaperActivity.html
 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/VoiceRecognition.html
 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/WallpaperActivity.html
-http://developer.android.com/resources/samples/ContactManager/src/com/example/android/contactmanager/index.html
-http://developer.android.com/resources/samples/Snake/tests/src/com/example/android/snake/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/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/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
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/GLShape.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/GLVertex.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/GLWorld.html
+http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/kube/Kube.html
+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
-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/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/NotePad/tests/src/com/example/android/notepad/index.html
-http://developer.android.com/resources/samples/Snake/tests/src/com/example/android/snake/SnakeTest.html
-http://developer.android.com/resources/samples/NotePad/tests/src/com/example/android/notepad/NotePadTest.html
\ No newline at end of file
+http://developer.android.com/resources/samples/JetBoy/src/com/example/android/jetboy/JetBoyView.html
\ No newline at end of file
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index d283dea3..a8efd00 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -19,18 +19,15 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.util.DisplayMetrics;
-import android.util.Finalizers;
 
 import java.io.OutputStream;
 import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.nio.IntBuffer;
 import java.nio.ShortBuffer;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
 
 public final class Bitmap implements Parcelable {
+
     /**
      * Indicates that the bitmap was created for an unknown pixel density.
      *
@@ -47,6 +44,17 @@
      */
     public final int mNativeBitmap;
 
+    /**
+     * Backing buffer for the Bitmap.
+     * Made public for quick access from drawing methods -- do NOT modify
+     * from outside this class.
+     *
+     * @hide
+     */
+    public byte[] mBuffer;
+
+    private final BitmapFinalizer mFinalizer;
+
     private final boolean mIsMutable;
     private byte[] mNinePatchChunk;   // may be null
     private int mWidth = -1;
@@ -85,25 +93,22 @@
 
         This can be called from JNI code.
     */
-    private Bitmap(int nativeBitmap, boolean isMutable, byte[] ninePatchChunk, int density) {
+    private Bitmap(int nativeBitmap, byte[] buffer, boolean isMutable, byte[] ninePatchChunk,
+            int density) {
         if (nativeBitmap == 0) {
             throw new RuntimeException("internal error: native bitmap is 0");
         }
 
+        mBuffer = buffer;
         // we delete this in our finalizer
         mNativeBitmap = nativeBitmap;
+        mFinalizer = new BitmapFinalizer(nativeBitmap);
+
         mIsMutable = isMutable;
         mNinePatchChunk = ninePatchChunk;
         if (density >= 0) {
             mDensity = density;
         }
-
-        // If the finalizers queue is null, we are running in zygote and the
-        // bitmap will never be reclaimed, so we don't need to run our native
-        // destructor
-        if (Finalizers.getQueue() != null) {
-            new BitmapFinalizer(this);
-        }
     }
 
     /**
@@ -169,6 +174,7 @@
      */
     public void recycle() {
         if (!mRecycled) {
+            mBuffer = null;
             nativeRecycle(mNativeBitmap);
             mNinePatchChunk = null;
             mRecycled = true;
@@ -520,6 +526,9 @@
      * @throws IllegalArgumentException if the width or height are <= 0
      */
     private static Bitmap createBitmap(int width, int height, Config config, boolean hasAlpha) {
+        if (width <= 0 || height <= 0) {
+            throw new IllegalArgumentException("width and height must be > 0");
+        }
         Bitmap bm = nativeCreate(null, 0, width, width, height, config.nativeInt, true);
         if (config == Config.ARGB_8888 && !hasAlpha) {
             bm.eraseColor(0xff000000);
@@ -561,6 +570,9 @@
                 (lastScanline + width > length)) {
             throw new ArrayIndexOutOfBoundsException();
         }
+        if (width <= 0 || height <= 0) {
+            throw new IllegalArgumentException("width and height must be > 0");
+        }
         return nativeCreate(colors, offset, stride, width, height,
                             config.nativeInt, false);
     }
@@ -1059,22 +1071,16 @@
         nativePrepareToDraw(mNativeBitmap);
     }
 
-    private static class BitmapFinalizer extends Finalizers.ReclaimableReference<Bitmap> {
-        private static final Set<BitmapFinalizer> sFinalizers = Collections.synchronizedSet(
-                new HashSet<BitmapFinalizer>());
+    private static class BitmapFinalizer {
+        private final int mNativeBitmap;
 
-        private int mNativeBitmap;
-
-        BitmapFinalizer(Bitmap b) {
-            super(b, Finalizers.getQueue());
-            mNativeBitmap = b.mNativeBitmap;
-            sFinalizers.add(this);
+        BitmapFinalizer(int nativeBitmap) {
+            mNativeBitmap = nativeBitmap;
         }
 
         @Override
-        public void reclaim() {
+        public void finalize() {
             nativeDestructor(mNativeBitmap);
-            sFinalizers.remove(this);
         }
     }
 
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java
index 07fe66c..66c6d81 100644
--- a/graphics/java/android/graphics/Canvas.java
+++ b/graphics/java/android/graphics/Canvas.java
@@ -74,6 +74,23 @@
      */
     public static final int DIRECTION_RTL = 1;
     
+    private final CanvasFinalizer mFinalizer;
+
+    private static class CanvasFinalizer {
+        private final int mNativeCanvas;
+
+        public CanvasFinalizer(int nativeCanvas) {
+            mNativeCanvas = nativeCanvas;
+        }
+
+        @Override
+        protected void finalize() throws Throwable {
+            if (mNativeCanvas != 0) {
+                finalizer(mNativeCanvas);
+            }
+        }
+    }
+
     /**
      * Construct an empty raster canvas. Use setBitmap() to specify a bitmap to
      * draw into.  The initial target density is {@link Bitmap#DENSITY_NONE};
@@ -83,6 +100,7 @@
     public Canvas() {
         // 0 means no native bitmap
         mNativeCanvas = initRaster(0);
+        mFinalizer = new CanvasFinalizer(0);
     }
 
     /**
@@ -101,6 +119,7 @@
         }
         throwIfRecycled(bitmap);
         mNativeCanvas = initRaster(bitmap.ni());
+        mFinalizer = new CanvasFinalizer(mNativeCanvas);
         mBitmap = bitmap;
         mDensity = bitmap.mDensity;
     }
@@ -110,6 +129,7 @@
             throw new IllegalStateException();
         }
         mNativeCanvas = nativeCanvas;
+        mFinalizer = new CanvasFinalizer(nativeCanvas);
         mDensity = Bitmap.getDefaultDensity();
     }
 
@@ -1607,19 +1627,6 @@
     public void releaseContext() {
     }
 
-    @Override
-    protected void finalize() throws Throwable {
-        try {
-            super.finalize();
-        } finally {
-            // If the constructor threw an exception before setting mNativeCanvas,
-            // the native finalizer must not be invoked.
-            if (mNativeCanvas != 0) {
-                finalizer(mNativeCanvas);
-            }
-        }
-    }
-
     /**
      * Free up as much memory as possible from private caches (e.g. fonts, images)
      *
diff --git a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
index 58206d4..39a7dd2 100644
--- a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
@@ -159,20 +159,23 @@
     }
 
     public void invalidateDrawable(Drawable who) {
-        if (mCallback != null) {
-            mCallback.invalidateDrawable(this);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.invalidateDrawable(this);
         }
     }
 
     public void scheduleDrawable(Drawable who, Runnable what, long when) {
-        if (mCallback != null) {
-            mCallback.scheduleDrawable(this, what, when);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.scheduleDrawable(this, what, when);
         }
     }
 
     public void unscheduleDrawable(Drawable who, Runnable what) {
-        if (mCallback != null) {
-            mCallback.unscheduleDrawable(this, what);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.unscheduleDrawable(this, what);
         }
     }
 
diff --git a/graphics/java/android/graphics/drawable/ClipDrawable.java b/graphics/java/android/graphics/drawable/ClipDrawable.java
index a772871..0d44591 100644
--- a/graphics/java/android/graphics/drawable/ClipDrawable.java
+++ b/graphics/java/android/graphics/drawable/ClipDrawable.java
@@ -111,20 +111,23 @@
     // overrides from Drawable.Callback
 
     public void invalidateDrawable(Drawable who) {
-        if (mCallback != null) {
-            mCallback.invalidateDrawable(this);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.invalidateDrawable(this);
         }
     }
 
     public void scheduleDrawable(Drawable who, Runnable what, long when) {
-        if (mCallback != null) {
-            mCallback.scheduleDrawable(this, what, when);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.scheduleDrawable(this, what, when);
         }
     }
 
     public void unscheduleDrawable(Drawable who, Runnable what) {
-        if (mCallback != null) {
-            mCallback.unscheduleDrawable(this, what);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.unscheduleDrawable(this, what);
         }
     }
 
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index 6cdafdb8..c423550 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -39,6 +39,7 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.ref.WeakReference;
 import java.util.Arrays;
 
 /**
@@ -112,7 +113,7 @@
     private int mLevel = 0;
     private int mChangingConfigurations = 0;
     private Rect mBounds = ZERO_BOUNDS_RECT;  // lazily becomes a new Rect()
-    /*package*/ Callback mCallback = null;
+    private WeakReference<Callback> mCallback = null;
     private boolean mVisible = true;
 
     /**
@@ -291,22 +292,41 @@
      * that want to support animated drawables.
      *
      * @param cb The client's Callback implementation.
+     * 
+     * @see #getCallback() 
      */
     public final void setCallback(Callback cb) {
-        mCallback = cb;
+        mCallback = new WeakReference<Callback>(cb);
     }
 
     /**
+     * Return the current {@link Callback} implementation attached to this
+     * Drawable.
+     * 
+     * @return A {@link Callback} instance or null if no callback was set.
+     * 
+     * @see #setCallback(android.graphics.drawable.Drawable.Callback) 
+     */
+    public Callback getCallback() {
+        if (mCallback != null) {
+            return mCallback.get();
+        }
+        return null;
+    }
+    
+    /**
      * Use the current {@link Callback} implementation to have this Drawable
      * redrawn.  Does nothing if there is no Callback attached to the
      * Drawable.
      *
      * @see Callback#invalidateDrawable
+     * @see #getCallback() 
+     * @see #setCallback(android.graphics.drawable.Drawable.Callback) 
      */
-    public void invalidateSelf()
-    {
-        if (mCallback != null) {
-            mCallback.invalidateDrawable(this);
+    public void invalidateSelf() {
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.invalidateDrawable(this);
         }
     }
 
@@ -320,10 +340,10 @@
      *
      * @see Callback#scheduleDrawable
      */
-    public void scheduleSelf(Runnable what, long when)
-    {
-        if (mCallback != null) {
-            mCallback.scheduleDrawable(this, what, when);
+    public void scheduleSelf(Runnable what, long when) {
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.scheduleDrawable(this, what, when);
         }
     }
 
@@ -336,10 +356,10 @@
      *
      * @see Callback#unscheduleDrawable
      */
-    public void unscheduleSelf(Runnable what)
-    {
-        if (mCallback != null) {
-            mCallback.unscheduleDrawable(this, what);
+    public void unscheduleSelf(Runnable what) {
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.unscheduleDrawable(this, what);
         }
     }
 
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java
index e55a746..0a580eb 100644
--- a/graphics/java/android/graphics/drawable/DrawableContainer.java
+++ b/graphics/java/android/graphics/drawable/DrawableContainer.java
@@ -236,20 +236,20 @@
     }
 
     public void invalidateDrawable(Drawable who) {
-        if (who == mCurrDrawable && mCallback != null) {
-            mCallback.invalidateDrawable(this);
+        if (who == mCurrDrawable && getCallback() != null) {
+            getCallback().invalidateDrawable(this);
         }
     }
 
     public void scheduleDrawable(Drawable who, Runnable what, long when) {
-        if (who == mCurrDrawable && mCallback != null) {
-            mCallback.scheduleDrawable(this, what, when);
+        if (who == mCurrDrawable && getCallback() != null) {
+            getCallback().scheduleDrawable(this, what, when);
         }
     }
 
     public void unscheduleDrawable(Drawable who, Runnable what) {
-        if (who == mCurrDrawable && mCallback != null) {
-            mCallback.unscheduleDrawable(this, what);
+        if (who == mCurrDrawable && getCallback() != null) {
+            getCallback().unscheduleDrawable(this, what);
         }
     }
 
diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index a9c983e..3a74dfd 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -131,20 +131,23 @@
     // overrides from Drawable.Callback
 
     public void invalidateDrawable(Drawable who) {
-        if (mCallback != null) {
-            mCallback.invalidateDrawable(this);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.invalidateDrawable(this);
         }
     }
 
     public void scheduleDrawable(Drawable who, Runnable what, long when) {
-        if (mCallback != null) {
-            mCallback.scheduleDrawable(this, what, when);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.scheduleDrawable(this, what, when);
         }
     }
 
     public void unscheduleDrawable(Drawable who, Runnable what) {
-        if (mCallback != null) {
-            mCallback.unscheduleDrawable(this, what);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.unscheduleDrawable(this, what);
         }
     }
 
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java
index 09c041f..84da170 100644
--- a/graphics/java/android/graphics/drawable/LayerDrawable.java
+++ b/graphics/java/android/graphics/drawable/LayerDrawable.java
@@ -26,7 +26,6 @@
 import android.graphics.PixelFormat;
 import android.graphics.Rect;
 import android.util.AttributeSet;
-import android.util.Slog;
 import android.view.View;
 
 import java.io.IOException;
@@ -307,20 +306,23 @@
     // overrides from Drawable.Callback
 
     public void invalidateDrawable(Drawable who) {
-        if (mCallback != null) {
-            mCallback.invalidateDrawable(this);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.invalidateDrawable(this);
         }
     }
 
     public void scheduleDrawable(Drawable who, Runnable what, long when) {
-        if (mCallback != null) {
-            mCallback.scheduleDrawable(this, what, when);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.scheduleDrawable(this, what, when);
         }
     }
 
     public void unscheduleDrawable(Drawable who, Runnable what) {
-        if (mCallback != null) {
-            mCallback.unscheduleDrawable(this, what);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.unscheduleDrawable(this, what);
         }
     }
 
diff --git a/graphics/java/android/graphics/drawable/RotateDrawable.java b/graphics/java/android/graphics/drawable/RotateDrawable.java
index f3f3653..212ddfa 100644
--- a/graphics/java/android/graphics/drawable/RotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/RotateDrawable.java
@@ -117,20 +117,23 @@
     }
 
     public void invalidateDrawable(Drawable who) {
-        if (mCallback != null) {
-            mCallback.invalidateDrawable(this);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.invalidateDrawable(this);
         }
     }
 
     public void scheduleDrawable(Drawable who, Runnable what, long when) {
-        if (mCallback != null) {
-            mCallback.scheduleDrawable(this, what, when);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.scheduleDrawable(this, what, when);
         }
     }
 
     public void unscheduleDrawable(Drawable who, Runnable what) {
-        if (mCallback != null) {
-            mCallback.unscheduleDrawable(this, what);
+        final Callback callback = getCallback();
+        if (callback != null) {
+            callback.unscheduleDrawable(this, what);
         }
     }
 
diff --git a/graphics/java/android/graphics/drawable/ScaleDrawable.java b/graphics/java/android/graphics/drawable/ScaleDrawable.java
index dcaf20b..055576d 100644
--- a/graphics/java/android/graphics/drawable/ScaleDrawable.java
+++ b/graphics/java/android/graphics/drawable/ScaleDrawable.java
@@ -127,20 +127,20 @@
     // overrides from Drawable.Callback
 
     public void invalidateDrawable(Drawable who) {
-        if (mCallback != null) {
-            mCallback.invalidateDrawable(this);
+        if (getCallback() != null) {
+            getCallback().invalidateDrawable(this);
         }
     }
 
     public void scheduleDrawable(Drawable who, Runnable what, long when) {
-        if (mCallback != null) {
-            mCallback.scheduleDrawable(this, what, when);
+        if (getCallback() != null) {
+            getCallback().scheduleDrawable(this, what, when);
         }
     }
 
     public void unscheduleDrawable(Drawable who, Runnable what) {
-        if (mCallback != null) {
-            mCallback.unscheduleDrawable(this, what);
+        if (getCallback() != null) {
+            getCallback().unscheduleDrawable(this, what);
         }
     }
 
diff --git a/graphics/java/android/renderscript/Allocation.java b/graphics/java/android/renderscript/Allocation.java
index 30475bd..1bddbae 100644
--- a/graphics/java/android/renderscript/Allocation.java
+++ b/graphics/java/android/renderscript/Allocation.java
@@ -452,13 +452,9 @@
         return new Allocation(id, rs, t, usage);
     }
 
-    static public Allocation createFromBitmap(RenderScript rs, Bitmap b,
-                                              Element dstFmt, boolean genMips) {
-        MipmapControl mc = MipmapControl.MIPMAP_NONE;
-        if (genMips) {
-            mc = MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE;
-        }
-        return createFromBitmap(rs, b, mc, USAGE_GRAPHICS_TEXTURE);
+    static public Allocation createFromBitmap(RenderScript rs, Bitmap b) {
+        return createFromBitmap(rs, b, MipmapControl.MIPMAP_NONE,
+                                USAGE_GRAPHICS_TEXTURE);
     }
 
     static public Allocation createCubemapFromBitmap(RenderScript rs, Bitmap b,
@@ -500,14 +496,9 @@
     }
 
     static public Allocation createCubemapFromBitmap(RenderScript rs, Bitmap b,
-                                                     Element dstFmt,
-                                                     boolean genMips,
                                                      CubemapLayout layout) {
-        MipmapControl mc = MipmapControl.MIPMAP_NONE;
-        if (genMips) {
-            mc = MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE;
-        }
-        return createCubemapFromBitmap(rs, b, mc, layout, USAGE_GRAPHICS_TEXTURE);
+        return createCubemapFromBitmap(rs, b, MipmapControl.MIPMAP_NONE,
+                                       layout, USAGE_GRAPHICS_TEXTURE);
     }
 
     static public Allocation createFromBitmapResource(RenderScript rs,
@@ -525,6 +516,15 @@
 
     static public Allocation createFromBitmapResource(RenderScript rs,
                                                       Resources res,
+                                                      int id) {
+        return createFromBitmapResource(rs, res, id,
+                                        MipmapControl.MIPMAP_NONE,
+                                        USAGE_GRAPHICS_TEXTURE);
+    }
+
+/*
+    static public Allocation createFromBitmapResource(RenderScript rs,
+                                                      Resources res,
                                                       int id,
                                                       Element dstFmt,
                                                       boolean genMips) {
@@ -534,7 +534,7 @@
         }
         return createFromBitmapResource(rs, res, id, mc, USAGE_GRAPHICS_TEXTURE);
     }
-
+*/
     static public Allocation createFromString(RenderScript rs,
                                               String str,
                                               int usage) {
diff --git a/graphics/java/android/renderscript/RSSurfaceView.java b/graphics/java/android/renderscript/RSSurfaceView.java
index 0211a4a..507f41f 100644
--- a/graphics/java/android/renderscript/RSSurfaceView.java
+++ b/graphics/java/android/renderscript/RSSurfaceView.java
@@ -119,7 +119,7 @@
     }
 
     public RenderScriptGL createRenderScriptGL(RenderScriptGL.SurfaceConfig sc) {
-        RenderScriptGL rs = new RenderScriptGL(sc);
+      RenderScriptGL rs = new RenderScriptGL(this.getContext(), sc);
         setRenderScriptGL(rs);
         return rs;
     }
@@ -137,4 +137,3 @@
         return mRS;
     }
 }
-
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index c6dcff5..5f93f5b 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -18,6 +18,7 @@
 
 import java.lang.reflect.Field;
 
+import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.util.Config;
@@ -42,9 +43,9 @@
     @SuppressWarnings({"UnusedDeclaration", "deprecation"})
     static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV;
 
+    private Context mApplicationContext;
 
-
-     /*
+    /*
      * We use a class initializer to allow the native code to cache some
      * field offsets.
      */
@@ -416,9 +417,9 @@
     synchronized void nScriptCSetScript(byte[] script, int offset, int length) {
         rsnScriptCSetScript(mContext, script, offset, length);
     }
-    native int  rsnScriptCCreate(int con, String val);
-    synchronized int nScriptCCreate(String val) {
-        return rsnScriptCCreate(mContext, val);
+    native int  rsnScriptCCreate(int con, String val, String cacheDir);
+    synchronized int nScriptCCreate(String resName, String cacheDir) {
+      return rsnScriptCCreate(mContext, resName, cacheDir);
     }
 
     native void rsnSamplerBegin(int con);
@@ -776,17 +777,27 @@
         }
     }
 
-    RenderScript() {
+    RenderScript(Context ctx) {
+        mApplicationContext = ctx.getApplicationContext();
+    }
+
+    /**
+     * Gets the application context associated with the RenderScript context.
+     *
+     * @return The application context.
+     */
+    public final Context getApplicationContext() {
+        return mApplicationContext;
     }
 
     /**
      * Create a basic RenderScript context.
      *
-     *
+     * @param ctx The context.
      * @return RenderScript
      */
-    public static RenderScript create() {
-        RenderScript rs = new RenderScript();
+    public static RenderScript create(Context ctx) {
+        RenderScript rs = new RenderScript(ctx);
 
         rs.mDev = rs.nDeviceCreate();
         rs.mContext = rs.nContextCreate(rs.mDev, 0);
diff --git a/graphics/java/android/renderscript/RenderScriptGL.java b/graphics/java/android/renderscript/RenderScriptGL.java
index 0886db4..5adb682 100644
--- a/graphics/java/android/renderscript/RenderScriptGL.java
+++ b/graphics/java/android/renderscript/RenderScriptGL.java
@@ -18,6 +18,7 @@
 
 import java.lang.reflect.Field;
 
+import android.content.Context;
 import android.graphics.PixelFormat;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -168,10 +169,11 @@
     /**
      * Construct a new RenderScriptGL context.
      *
-     *
+     * @param ctx The context.
      * @param sc The desired format of the primart rendering surface.
      */
-    public RenderScriptGL(SurfaceConfig sc) {
+    public RenderScriptGL(Context ctx, SurfaceConfig sc) {
+        super(ctx);
         mSurfaceConfig = new SurfaceConfig(sc);
 
         mSurface = null;
@@ -304,5 +306,3 @@
     }
 
 }
-
-
diff --git a/graphics/java/android/renderscript/ScriptC.java b/graphics/java/android/renderscript/ScriptC.java
index 64ed75b..b10247c 100644
--- a/graphics/java/android/renderscript/ScriptC.java
+++ b/graphics/java/android/renderscript/ScriptC.java
@@ -16,9 +16,11 @@
 
 package android.renderscript;
 
+import android.content.Context;
 import android.content.res.Resources;
 import android.util.Log;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Map.Entry;
@@ -76,6 +78,7 @@
         rs.nScriptCBegin();
         rs.nScriptCSetScript(pgm, 0, pgmLength);
         Log.v(TAG, "Create script for resource = " + resources.getResourceName(resourceID));
-        return rs.nScriptCCreate(resources.getResourceName(resourceID));
+        String cacheDir = rs.getApplicationContext().getCacheDir().toString();
+        return rs.nScriptCCreate(resources.getResourceName(resourceID), cacheDir);
     }
 }
diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp
index 04a7b41..a8343b3 100644
--- a/graphics/jni/android_renderscript_RenderScript.cpp
+++ b/graphics/jni/android_renderscript_RenderScript.cpp
@@ -902,11 +902,15 @@
 }
 
 static jint
-nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring resName)
+nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring resName, jstring cacheDir)
 {
     LOG_API("nScriptCCreate, con(%p)", con);
     const char* resNameUTF = _env->GetStringUTFChars(resName, NULL);
-    return (jint)rsScriptCCreate(con, resNameUTF);
+    const char* cacheDirUTF = _env->GetStringUTFChars(cacheDir, NULL);
+    jint i = (jint)rsScriptCCreate(con, resNameUTF, cacheDirUTF);
+    _env->ReleaseStringUTFChars(resName, resNameUTF);
+    _env->ReleaseStringUTFChars(cacheDir, cacheDirUTF);
+    return i;
 }
 
 // ---------------------------------------------------------------------------
@@ -1297,7 +1301,7 @@
 
 {"rsnScriptCBegin",                  "(I)V",                                  (void*)nScriptCBegin },
 {"rsnScriptCSetScript",              "(I[BII)V",                              (void*)nScriptCSetScript },
-{"rsnScriptCCreate",                 "(ILjava/lang/String;)I",                (void*)nScriptCCreate },
+{"rsnScriptCCreate",                 "(ILjava/lang/String;Ljava/lang/String;)I",  (void*)nScriptCCreate },
 
 {"rsnProgramStoreBegin",             "(III)V",                                (void*)nProgramStoreBegin },
 {"rsnProgramStoreDepthFunc",         "(II)V",                                 (void*)nProgramStoreDepthFunc },
@@ -1372,4 +1376,3 @@
 bail:
     return result;
 }
-
diff --git a/include/surfaceflinger/Surface.h b/include/surfaceflinger/Surface.h
index cef439c..2df8ca3 100644
--- a/include/surfaceflinger/Surface.h
+++ b/include/surfaceflinger/Surface.h
@@ -249,7 +249,7 @@
             uint32_t *pWidth, uint32_t *pHeight,
             uint32_t *pFormat, uint32_t *pUsage) const;
 
-    static void cleanCachedSurfaces();
+    static void cleanCachedSurfacesLocked();
 
     class BufferInfo {
         uint32_t mWidth;
diff --git a/include/utils/CallStack.h b/include/utils/CallStack.h
index c2c8ce5..8817120 100644
--- a/include/utils/CallStack.h
+++ b/include/utils/CallStack.h
@@ -50,7 +50,7 @@
     
     void clear();
 
-    void update(int32_t ignoreDepth=0, int32_t maxDepth=MAX_DEPTH);
+    void update(int32_t ignoreDepth=1, int32_t maxDepth=MAX_DEPTH);
 
     // Dump a stack trace to the log
     void dump(const char* prefix = 0) const;
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index a8fe646..4cca0c8 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -839,6 +839,7 @@
     mColorA = mColorR = mColorG = mColorB = 0.0f;
     mTextureUnit = 0;
     mTrackDirtyRegions = true;
+    mTexCoordsSlot = -1;
 }
 
 void OpenGLRenderer::setupDrawWithTexture(bool isAlpha8) {
@@ -847,15 +848,29 @@
 }
 
 void OpenGLRenderer::setupDrawColor(int color) {
-    mColorA = ((color >> 24) & 0xFF) / 255.0f;
+    setupDrawColor(color, (color >> 24) & 0xFF);
+}
+
+void OpenGLRenderer::setupDrawColor(int color, int alpha) {
+    mColorA = alpha / 255.0f;
     const float a = mColorA / 255.0f;
-    mColorR = mColorA * ((color >> 16) & 0xFF);
-    mColorG = mColorA * ((color >>  8) & 0xFF);
-    mColorB = mColorA * ((color      ) & 0xFF);
+    mColorR = a * ((color >> 16) & 0xFF);
+    mColorG = a * ((color >>  8) & 0xFF);
+    mColorB = a * ((color      ) & 0xFF);
     mColorSet = true;
     mSetShaderColor = mDescription.setColor(mColorR, mColorG, mColorB, mColorA);
 }
 
+void OpenGLRenderer::setupDrawAlpha8Color(int color, int alpha) {
+    mColorA = alpha / 255.0f;
+    const float a = mColorA / 255.0f;
+    mColorR = a * ((color >> 16) & 0xFF);
+    mColorG = a * ((color >>  8) & 0xFF);
+    mColorB = a * ((color      ) & 0xFF);
+    mColorSet = true;
+    mSetShaderColor = mDescription.setAlpha8Color(mColorR, mColorG, mColorB, mColorA);
+}
+
 void OpenGLRenderer::setupDrawColor(float r, float g, float b, float a) {
     mColorA = a;
     mColorR = r;
@@ -865,6 +880,15 @@
     mSetShaderColor = mDescription.setColor(r, g, b, a);
 }
 
+void OpenGLRenderer::setupDrawAlpha8Color(float r, float g, float b, float a) {
+    mColorA = a;
+    mColorR = r;
+    mColorG = g;
+    mColorB = b;
+    mColorSet = true;
+    mSetShaderColor = mDescription.setAlpha8Color(r, g, b, a);
+}
+
 void OpenGLRenderer::setupDrawShader() {
     if (mShader) {
         mShader->describe(mDescription, mCaches.extensions);
@@ -907,25 +931,38 @@
     }
 }
 
+void OpenGLRenderer::setupDrawModelViewIdentity() {
+    mCaches.currentProgram->set(mOrthoMatrix, mIdentity, *mSnapshot->transform);
+}
+
 void OpenGLRenderer::setupDrawModelView(float left, float top, float right, float bottom,
         bool ignoreTransform, bool ignoreModelView) {
     if (!ignoreModelView) {
         mModelView.loadTranslate(left, top, 0.0f);
         mModelView.scale(right - left, bottom - top, 1.0f);
-        if (!ignoreTransform) {
-            mCaches.currentProgram->set(mOrthoMatrix, mModelView, *mSnapshot->transform);
-            if (mTrackDirtyRegions) dirtyLayer(left, top, right, bottom, *mSnapshot->transform);
-        } else {
-            mCaches.currentProgram->set(mOrthoMatrix, mModelView, mIdentity);
-            if (mTrackDirtyRegions) dirtyLayer(left, top, right, bottom);
-        }
     } else {
         mModelView.loadIdentity();
     }
+    bool dirty = right - left > 0.0f && bottom - top > 0.0f;
+    if (!ignoreTransform) {
+        mCaches.currentProgram->set(mOrthoMatrix, mModelView, *mSnapshot->transform);
+        if (mTrackDirtyRegions && dirty) {
+            dirtyLayer(left, top, right, bottom, *mSnapshot->transform);
+        }
+    } else {
+        mCaches.currentProgram->set(mOrthoMatrix, mModelView, mIdentity);
+        if (mTrackDirtyRegions && dirty) dirtyLayer(left, top, right, bottom);
+    }
 }
 
 void OpenGLRenderer::setupDrawColorUniforms() {
-    if (mColorSet && mSetShaderColor) {
+    if (mColorSet || (mShader && mSetShaderColor)) {
+        mCaches.currentProgram->setColor(mColorR, mColorG, mColorB, mColorA);
+    }
+}
+
+void OpenGLRenderer::setupDrawPureColorUniforms() {
+    if (mSetShaderColor) {
         mCaches.currentProgram->setColor(mColorR, mColorG, mColorB, mColorA);
     }
 }
@@ -939,6 +976,12 @@
     }
 }
 
+void OpenGLRenderer::setupDrawShaderIdentityUniforms() {
+    if (mShader) {
+        mShader->setupProgram(mCaches.currentProgram, mIdentity, *mSnapshot, &mTextureUnit);
+    }
+}
+
 void OpenGLRenderer::setupDrawColorFilterUniforms() {
     if (mColorFilter) {
         mColorFilter->setupProgram(mCaches.currentProgram);
@@ -967,7 +1010,9 @@
     }
     glVertexAttribPointer(mCaches.currentProgram->position, 2, GL_FLOAT, GL_FALSE,
             gMeshStride, vertices);
-    glVertexAttribPointer(mTexCoordsSlot, 2, GL_FLOAT, GL_FALSE, gMeshStride, texCoords);
+    if (mTexCoordsSlot > 0) {
+        glVertexAttribPointer(mTexCoordsSlot, 2, GL_FLOAT, GL_FALSE, gMeshStride, texCoords);
+    }
 }
 
 void OpenGLRenderer::finishDrawTexture() {
@@ -994,7 +1039,7 @@
         return;
     }
 
-    glActiveTexture(GL_TEXTURE0);
+    glActiveTexture(gTextureUnits[0]);
     Texture* texture = mCaches.textureCache.get(bitmap);
     if (!texture) return;
     const AutoTexture autoCleanup(texture);
@@ -1011,7 +1056,7 @@
         return;
     }
 
-    glActiveTexture(GL_TEXTURE0);
+    glActiveTexture(gTextureUnits[0]);
     Texture* texture = mCaches.textureCache.get(bitmap);
     if (!texture) return;
     const AutoTexture autoCleanup(texture);
@@ -1139,38 +1184,10 @@
     // it draws an unscaled 1px wide line
     const bool isHairLine = paint->getStrokeWidth() == 0.0f;
 
-    setupDraw();
-
     int alpha;
     SkXfermode::Mode mode;
     getAlphaAndMode(paint, &alpha, &mode);
 
-    uint32_t color = paint->getColor();
-    const GLfloat a = alpha / 255.0f;
-    const GLfloat r = a * ((color >> 16) & 0xFF) / 255.0f;
-    const GLfloat g = a * ((color >>  8) & 0xFF) / 255.0f;
-    const GLfloat b = a * ((color      ) & 0xFF) / 255.0f;
-
-    // Used only with AA lines
-    GLuint textureUnit = 0;
-
-    // Describe the required shaders
-    ProgramDescription description;
-    const bool setColor = description.setColor(r, g, b, a);
-
-    if (mShader) {
-        mShader->describe(description, mCaches.extensions);
-    }
-    if (mColorFilter) {
-        mColorFilter->describe(description, mCaches.extensions);
-    }
-
-    // Setup the blending mode
-    chooseBlending(a < 1.0f || (mShader && mShader->blend()), mode, description);
-
-    // We're not drawing with VBOs here
-    mCaches.unbindMeshBuffer();
-
     int verticesCount = count >> 2;
     if (!isHairLine) {
         // TODO: AA needs more vertices
@@ -1183,23 +1200,17 @@
     TextureVertex lines[verticesCount];
     TextureVertex* vertex = &lines[0];
 
-    glVertexAttribPointer(mCaches.currentProgram->position, 2, GL_FLOAT, GL_FALSE,
-            gMeshStride, vertex);
-
-    // Build and use the appropriate shader
-    useProgram(mCaches.programCache.get(description));
-    mCaches.currentProgram->set(mOrthoMatrix, mIdentity, *mSnapshot->transform);
-
-    if (!mShader || (mShader && setColor)) {
-        mCaches.currentProgram->setColor(r, g, b, a);
-    }
-
-    if (mShader) {
-        mShader->setupProgram(mCaches.currentProgram, mIdentity, *mSnapshot, &textureUnit);
-    }
-    if (mColorFilter) {
-        mColorFilter->setupProgram(mCaches.currentProgram);
-    }
+    setupDraw();
+    setupDrawColor(paint->getColor(), alpha);
+    setupDrawColorFilter();
+    setupDrawShader();
+    setupDrawBlending(mode);
+    setupDrawProgram();
+    setupDrawModelViewIdentity();
+    setupDrawColorUniforms();
+    setupDrawColorFilterUniforms();
+    setupDrawShaderIdentityUniforms();
+    setupDrawMesh(vertex);
 
     if (!isHairLine) {
         // TODO: Handle the AA case
@@ -1246,6 +1257,7 @@
             TextureVertex::set(vertex++, points[i], points[i + 1], 0.0f, 0.0f);
             TextureVertex::set(vertex++, points[i + 2], points[i + 3], 0.0f, 0.0f);
         }
+
         glLineWidth(1.0f);
         glDrawArrays(GL_LINES, 0, verticesCount);
     }
@@ -1319,48 +1331,60 @@
         y = (int) floorf(y + mSnapshot->transform->getTranslateY() + 0.5f);
     }
 
-    int alpha;
-    SkXfermode::Mode mode;
-    getAlphaAndMode(paint, &alpha, &mode);
-
-    uint32_t color = paint->getColor();
-    const GLfloat a = alpha / 255.0f;
-    const GLfloat r = a * ((color >> 16) & 0xFF) / 255.0f;
-    const GLfloat g = a * ((color >>  8) & 0xFF) / 255.0f;
-    const GLfloat b = a * ((color      ) & 0xFF) / 255.0f;
-
     FontRenderer& fontRenderer = mCaches.fontRenderer.getFontRenderer(paint);
     fontRenderer.setFont(paint, SkTypeface::UniqueID(paint->getTypeface()),
             paint->getTextSize());
 
-    setupDraw();
+    int alpha;
+    SkXfermode::Mode mode;
+    getAlphaAndMode(paint, &alpha, &mode);
 
     if (mHasShadow) {
-        glActiveTexture(gTextureUnits[0]);
         mCaches.dropShadowCache.setFontRenderer(fontRenderer);
         const ShadowTexture* shadow = mCaches.dropShadowCache.get(paint, text, bytesCount,
                 count, mShadowRadius);
         const AutoTexture autoCleanup(shadow);
 
-        setupShadow(shadow, x, y, mode, a, pureTranslate);
+        const float sx = x - shadow->left + mShadowDx;
+        const float sy = y - shadow->top + mShadowDy;
 
-        // Draw the mesh
+        const int shadowAlpha = ((mShadowColor >> 24) & 0xFF);
+
+        glActiveTexture(gTextureUnits[0]);
+        setupDraw();
+        setupDrawWithTexture(true);
+        setupDrawAlpha8Color(mShadowColor, shadowAlpha < 255 ? shadowAlpha : alpha);
+        setupDrawBlending(true, mode);
+        setupDrawProgram();
+        setupDrawModelView(sx, sy, sx + shadow->width, sy + shadow->height, pureTranslate);
+        setupDrawTexture(shadow->id);
+        setupDrawPureColorUniforms();
+        setupDrawMesh(NULL, (GLvoid*) gMeshTextureOffset);
+
         glDrawArrays(GL_TRIANGLE_STRIP, 0, gMeshCount);
-        glDisableVertexAttribArray(mCaches.currentProgram->getAttrib("texCoords"));
+        finishDrawTexture();
     }
 
-    GLuint textureUnit = 0;
-    glActiveTexture(gTextureUnits[textureUnit]);
-
     // Pick the appropriate texture filtering
     bool linearFilter = mSnapshot->transform->changesBounds();
     if (pureTranslate && !linearFilter) {
         linearFilter = fabs(y - (int) y) > 0.0f || fabs(x - (int) x) > 0.0f;
     }
 
-    // Dimensions are set to (0,0), the layer (if any) won't be dirtied
-    setupTextureAlpha8(fontRenderer.getTexture(linearFilter), 0, 0, textureUnit,
-            x, y, r, g, b, a, mode, false, true, NULL, NULL, 0, pureTranslate);
+    glActiveTexture(gTextureUnits[0]);
+    setupDraw();
+    setupDrawDirtyRegionsDisabled();
+    setupDrawWithTexture(true);
+    setupDrawAlpha8Color(paint->getColor(), alpha);
+    setupDrawColorFilter();
+    setupDrawShader();
+    setupDrawBlending(true, mode);
+    setupDrawProgram();
+    setupDrawModelView(x, y, x, y, pureTranslate, true);
+    setupDrawTexture(fontRenderer.getTexture(linearFilter));
+    setupDrawPureColorUniforms();
+    setupDrawColorFilterUniforms();
+    setupDrawShaderUniforms(pureTranslate);
 
     const Rect* clip = pureTranslate ? mSnapshot->clipRect : &mSnapshot->getLocalClip();
     Rect bounds(FLT_MAX / 2.0f, FLT_MAX / 2.0f, FLT_MIN / 2.0f, FLT_MIN / 2.0f);
@@ -1415,19 +1439,23 @@
     SkXfermode::Mode mode;
     getAlphaAndMode(paint, &alpha, &mode);
 
-    uint32_t color = paint->getColor();
-    const GLfloat a = alpha / 255.0f;
-    const GLfloat r = a * ((color >> 16) & 0xFF) / 255.0f;
-    const GLfloat g = a * ((color >>  8) & 0xFF) / 255.0f;
-    const GLfloat b = a * ((color      ) & 0xFF) / 255.0f;
-
-    setupTextureAlpha8(texture, textureUnit, x, y, r, g, b, a, mode, true, true);
-
     setupDraw();
+    setupDrawWithTexture(true);
+    setupDrawAlpha8Color(paint->getColor(), alpha);
+    setupDrawColorFilter();
+    setupDrawShader();
+    setupDrawBlending(true, mode);
+    setupDrawProgram();
+    setupDrawModelView(x, y, x + texture->width, y + texture->height);
+    setupDrawTexture(texture->id);
+    setupDrawPureColorUniforms();
+    setupDrawColorFilterUniforms();
+    setupDrawShaderUniforms();
+    setupDrawMesh(NULL, (GLvoid*) gMeshTextureOffset);
 
-    // Draw the mesh
     glDrawArrays(GL_TRIANGLE_STRIP, 0, gMeshCount);
-    glDisableVertexAttribArray(mCaches.currentProgram->getAttrib("texCoords"));
+
+    finishDrawTexture();
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -1477,118 +1505,6 @@
 // Drawing implementation
 ///////////////////////////////////////////////////////////////////////////////
 
-void OpenGLRenderer::setupShadow(const ShadowTexture* texture, float x, float y,
-        SkXfermode::Mode mode, float alpha, bool ignoreTransforms) {
-    const float sx = x - texture->left + mShadowDx;
-    const float sy = y - texture->top + mShadowDy;
-
-    const int shadowAlpha = ((mShadowColor >> 24) & 0xFF);
-    const GLfloat a = shadowAlpha < 255 ? shadowAlpha / 255.0f : alpha;
-    const GLfloat r = a * ((mShadowColor >> 16) & 0xFF) / 255.0f;
-    const GLfloat g = a * ((mShadowColor >>  8) & 0xFF) / 255.0f;
-    const GLfloat b = a * ((mShadowColor      ) & 0xFF) / 255.0f;
-
-    GLuint textureUnit = 0;
-    setupTextureAlpha8(texture->id, texture->width, texture->height, textureUnit,
-            sx, sy, r, g, b, a, mode, true, false,
-            (GLvoid*) 0, (GLvoid*) gMeshTextureOffset, 0, ignoreTransforms);
-}
-
-void OpenGLRenderer::setupTextureAlpha8(const Texture* texture, GLuint& textureUnit,
-        float x, float y, float r, float g, float b, float a, SkXfermode::Mode mode,
-        bool transforms, bool applyFilters) {
-    setupTextureAlpha8(texture->id, texture->width, texture->height, textureUnit,
-            x, y, r, g, b, a, mode, transforms, applyFilters,
-            (GLvoid*) 0, (GLvoid*) gMeshTextureOffset);
-}
-
-void OpenGLRenderer::setupTextureAlpha8(GLuint texture, uint32_t width, uint32_t height,
-        GLuint& textureUnit, float x, float y, float r, float g, float b, float a,
-        SkXfermode::Mode mode, bool transforms, bool applyFilters) {
-    setupTextureAlpha8(texture, width, height, textureUnit, x, y, r, g, b, a, mode,
-            transforms, applyFilters, (GLvoid*) 0, (GLvoid*) gMeshTextureOffset);
-}
-
-void OpenGLRenderer::setupTextureAlpha8(GLuint texture, uint32_t width, uint32_t height,
-        GLuint& textureUnit, float x, float y, float r, float g, float b, float a,
-        SkXfermode::Mode mode, bool transforms, bool applyFilters,
-        GLvoid* vertices, GLvoid* texCoords, GLuint vbo, bool ignoreTransform) {
-     // Describe the required shaders
-     ProgramDescription description;
-     description.hasTexture = true;
-     description.hasAlpha8Texture = true;
-     const bool setColor = description.setAlpha8Color(r, g, b, a);
-
-     if (applyFilters) {
-         if (mShader) {
-             mShader->describe(description, mCaches.extensions);
-         }
-         if (mColorFilter) {
-             mColorFilter->describe(description, mCaches.extensions);
-         }
-     }
-
-     // Setup the blending mode
-     chooseBlending(true, mode, description);
-
-     // Build and use the appropriate shader
-     useProgram(mCaches.programCache.get(description));
-
-     bindTexture(texture);
-     glUniform1i(mCaches.currentProgram->getUniform("sampler"), textureUnit);
-
-     int texCoordsSlot = mCaches.currentProgram->getAttrib("texCoords");
-     glEnableVertexAttribArray(texCoordsSlot);
-
-     if (texCoords) {
-         // Setup attributes
-         if (!vertices) {
-             mCaches.bindMeshBuffer(vbo == 0 ? mCaches.meshBuffer : vbo);
-         } else {
-             mCaches.unbindMeshBuffer();
-         }
-         glVertexAttribPointer(mCaches.currentProgram->position, 2, GL_FLOAT, GL_FALSE,
-                 gMeshStride, vertices);
-         glVertexAttribPointer(texCoordsSlot, 2, GL_FLOAT, GL_FALSE, gMeshStride, texCoords);
-     }
-
-     // Setup uniforms
-     if (transforms) {
-         mModelView.loadTranslate(x, y, 0.0f);
-         mModelView.scale(width, height, 1.0f);
-     } else {
-         mModelView.loadIdentity();
-     }
-
-     mat4 t;
-     if (!ignoreTransform) {
-         t.load(*mSnapshot->transform);
-     }
-
-     mCaches.currentProgram->set(mOrthoMatrix, mModelView, t);
-     if (width > 0 && height > 0) {
-         dirtyLayer(x, y, x + width, y + height, t);
-     }
-
-     if (setColor) {
-         mCaches.currentProgram->setColor(r, g, b, a);
-     }
-
-     textureUnit++;
-     if (applyFilters) {
-         // Setup attributes and uniforms required by the shaders
-         if (mShader) {
-             if (ignoreTransform) {
-                 mModelView.loadInverse(*mSnapshot->transform);
-             }
-             mShader->setupProgram(mCaches.currentProgram, mModelView, *mSnapshot, &textureUnit);
-         }
-         if (mColorFilter) {
-             mColorFilter->setupProgram(mCaches.currentProgram);
-         }
-     }
-}
-
 // Same values used by Skia
 #define kStdStrikeThru_Offset   (-6.0f / 21.0f)
 #define kStdUnderline_Offset    (1.0f / 9.0f)
@@ -1721,7 +1637,7 @@
     } else {
         setupDrawModelViewTranslate(left, top, right, bottom, ignoreTransform);
     }
-    setupDrawColorUniforms();
+    setupDrawPureColorUniforms();
     setupDrawColorFilterUniforms();
     setupDrawTexture(texture);
     setupDrawMesh(vertices, texCoords, vbo);
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index 82b27b0..8f93f5b 100644
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -279,73 +279,6 @@
             bool ignoreScale = false, bool dirty = true);
 
     /**
-     * Prepares the renderer to draw the specified shadow. The active texture
-     * unit must be 0 and the other units must be unbound.
-     *
-     * @param texture The shadow texture
-     * @param x The x coordinate of the shadow
-     * @param y The y coordinate of the shadow
-     * @param mode The blending mode
-     * @param alpha The alpha value
-     * @param ignoreTransforms True if the coordinates are already in screen space
-     */
-    void setupShadow(const ShadowTexture* texture, float x, float y, SkXfermode::Mode mode,
-            float alpha, bool ignoreTransforms = false);
-
-    /**
-     * Prepares the renderer to draw the specified Alpha8 texture as a rectangle.
-     *
-     * @param texture The texture to render with
-     * @param textureUnit The texture unit to use, may be modified
-     * @param x The x coordinate of the rectangle to draw
-     * @param y The y coordinate of the rectangle to draw
-     * @param r The red component of the color
-     * @param g The green component of the color
-     * @param b The blue component of the color
-     * @param a The alpha component of the color
-     * @param mode The blending mode
-     * @param transforms True if the matrix passed to the shader should be multiplied
-     *        by the model-view matrix
-     * @param applyFilters Whether or not to take color filters and
-     *        shaders into account
-     */
-    void setupTextureAlpha8(const Texture* texture, GLuint& textureUnit, float x, float y,
-            float r, float g, float b, float a, SkXfermode::Mode mode, bool transforms,
-            bool applyFilters);
-
-    /**
-     * Prepares the renderer to draw the specified Alpha8 texture as a rectangle.
-     *
-     * @param texture The texture to render with
-     * @param width The width of the texture
-     * @param height The height of the texture
-     * @param textureUnit The texture unit to use, may be modified
-     * @param x The x coordinate of the rectangle to draw
-     * @param y The y coordinate of the rectangle to draw
-     * @param r The red component of the color
-     * @param g The green component of the color
-     * @param b The blue component of the color
-     * @param a The alpha component of the color
-     * @param mode The blending mode
-     * @param transforms True if the matrix passed to the shader should be multiplied
-     *        by the model-view matrix
-     * @param applyFilters Whether or not to take color filters and
-     *        shaders into account
-     */
-    void setupTextureAlpha8(GLuint texture, uint32_t width, uint32_t height,
-            GLuint& textureUnit, float x, float y, float r, float g, float b, float a,
-            SkXfermode::Mode mode, bool transforms, bool applyFilters);
-
-    /**
-     * Same as above setupTextureAlpha8() but specifies the mesh's vertices
-     * and texCoords pointers. The pointers become offsets when a VBO is bound.
-     */
-    void setupTextureAlpha8(GLuint texture, uint32_t width, uint32_t height,
-            GLuint& textureUnit, float x, float y, float r, float g, float b, float a,
-            SkXfermode::Mode mode, bool transforms, bool applyFilters,
-            GLvoid* vertices, GLvoid* texCoords, GLuint vbo = 0, bool ignoreTransform = false);
-
-    /**
      * Draws text underline and strike-through if needed.
      *
      * @param text The text to decor
@@ -429,7 +362,10 @@
      */
     void setupDrawWithTexture(bool isAlpha8 = false);
     void setupDrawColor(int color);
+    void setupDrawColor(int color, int alpha);
     void setupDrawColor(float r, float g, float b, float a);
+    void setupDrawAlpha8Color(int color, int alpha);
+    void setupDrawAlpha8Color(float r, float g, float b, float a);
     void setupDrawShader();
     void setupDrawColorFilter();
     void setupDrawBlending(SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode,
@@ -438,16 +374,19 @@
             bool swapSrcDst = false);
     void setupDrawProgram();
     void setupDrawDirtyRegionsDisabled();
+    void setupDrawModelViewIdentity();
     void setupDrawModelView(float left, float top, float right, float bottom,
             bool ignoreTransform = false, bool ignoreModelView = false);
     void setupDrawModelViewTranslate(float left, float top, float right, float bottom,
             bool ignoreTransform = false);
     void setupDrawColorUniforms();
+    void setupDrawPureColorUniforms();
+    void setupDrawShaderIdentityUniforms();
     void setupDrawShaderUniforms(bool ignoreTransform = false);
     void setupDrawColorFilterUniforms();
     void setupDrawSimpleMesh();
     void setupDrawTexture(GLuint texture);
-    void setupDrawMesh(GLvoid* vertices, GLvoid* texCoords, GLuint vbo = 0);
+    void setupDrawMesh(GLvoid* vertices, GLvoid* texCoords = NULL, GLuint vbo = 0);
     void finishDrawTexture();
 
     /**
diff --git a/libs/hwui/ResourceCache.cpp b/libs/hwui/ResourceCache.cpp
index 00de39b..1c93ea6 100644
--- a/libs/hwui/ResourceCache.cpp
+++ b/libs/hwui/ResourceCache.cpp
@@ -60,7 +60,9 @@
 }
 
 void ResourceCache::incrementRefcount(SkBitmap* bitmapResource) {
-    bitmapResource->pixelRef()->safeRef();
+    SkPixelRef* pixref = bitmapResource->pixelRef();
+    if (pixref) pixref->globalRef();
+
     bitmapResource->getColorTable()->safeRef();
     incrementRefcount((void*)bitmapResource, kBitmap);
 }
@@ -89,7 +91,9 @@
 }
 
 void ResourceCache::decrementRefcount(SkBitmap* bitmapResource) {
-    bitmapResource->pixelRef()->safeUnref();
+    SkPixelRef* pixref = bitmapResource->pixelRef();
+    if (pixref) pixref->globalUnref();
+
     bitmapResource->getColorTable()->safeUnref();
     decrementRefcount((void*)bitmapResource);
 }
diff --git a/libs/rs/java/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java b/libs/rs/java/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java
index 09654ab..5de09f7 100644
--- a/libs/rs/java/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java
+++ b/libs/rs/java/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java
@@ -362,7 +362,7 @@
     }
 
     private void createScript() {
-        mRS = RenderScript.create();
+        mRS = RenderScript.create(this);
         mRS.setMessageHandler(new FilterCallback());
 
         mInPixelsAllocation = Allocation.createFromBitmap(mRS, mBitmapIn,
diff --git a/libs/rs/java/ModelViewer/src/com/android/modelviewer/SceneGraphRS.java b/libs/rs/java/ModelViewer/src/com/android/modelviewer/SceneGraphRS.java
index f61cf25..6cb50b8 100644
--- a/libs/rs/java/ModelViewer/src/com/android/modelviewer/SceneGraphRS.java
+++ b/libs/rs/java/ModelViewer/src/com/android/modelviewer/SceneGraphRS.java
@@ -128,9 +128,9 @@
     }
 
     private void loadImage() {
-        mGridImage = Allocation.createFromBitmapResource(mRS, mRes, R.drawable.robot, Element.RGB_565(mRS), true);
-        mGridImage.uploadToTexture(0);
-
+        mGridImage = Allocation.createFromBitmapResource(mRS, mRes, R.drawable.robot,
+                                                         Allocation.MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE,
+                                                         Allocation.USAGE_GRAPHICS_TEXTURE);
         mScript.set_gTGrid(mGridImage);
     }
 
diff --git a/libs/rs/java/ModelViewer/src/com/android/modelviewer/SimpleModelRS.java b/libs/rs/java/ModelViewer/src/com/android/modelviewer/SimpleModelRS.java
index 22b3fff..747463a 100644
--- a/libs/rs/java/ModelViewer/src/com/android/modelviewer/SimpleModelRS.java
+++ b/libs/rs/java/ModelViewer/src/com/android/modelviewer/SimpleModelRS.java
@@ -124,9 +124,9 @@
     }
 
     private void loadImage() {
-        mGridImage = Allocation.createFromBitmapResource(mRS, mRes, R.drawable.robot, Element.RGB_565(mRS), true);
-        mGridImage.uploadToTexture(0);
-
+        mGridImage = Allocation.createFromBitmapResource(mRS, mRes, R.drawable.robot,
+                                                         Allocation.MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE,
+                                                         Allocation.USAGE_GRAPHICS_TEXTURE);
         mScript.set_gTGrid(mGridImage);
     }
 
diff --git a/libs/rs/java/Samples/src/com/android/samples/RsBenchRS.java b/libs/rs/java/Samples/src/com/android/samples/RsBenchRS.java
index 212e7a8..a47c308 100644
--- a/libs/rs/java/Samples/src/com/android/samples/RsBenchRS.java
+++ b/libs/rs/java/Samples/src/com/android/samples/RsBenchRS.java
@@ -23,6 +23,7 @@
 import android.graphics.BitmapFactory;
 import android.renderscript.*;
 import android.renderscript.Allocation.CubemapLayout;
+import android.renderscript.Allocation.MipmapControl;
 import android.renderscript.Program.TextureType;
 import android.renderscript.ProgramStore.DepthFunc;
 import android.renderscript.Sampler.Value;
@@ -284,17 +285,16 @@
     }
 
     private Allocation loadTextureRGB(int id) {
-        final Allocation allocation = Allocation.createFromBitmapResource(mRS, mRes,
-                id, Element.RGB_565(mRS), true);
-        allocation.uploadToTexture(0);
-        return allocation;
+        return Allocation.createFromBitmapResource(mRS, mRes, id,
+                Allocation.MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE,
+                Allocation.USAGE_GRAPHICS_TEXTURE);
     }
 
     private Allocation loadTextureARGB(int id) {
         Bitmap b = BitmapFactory.decodeResource(mRes, id, mOptionsARGB);
-        final Allocation allocation = Allocation.createFromBitmap(mRS, b, Element.RGBA_8888(mRS), true);
-        allocation.uploadToTexture(0);
-        return allocation;
+        return Allocation.createFromBitmap(mRS, b,
+                Allocation.MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE,
+                Allocation.USAGE_GRAPHICS_TEXTURE);
     }
 
     private void loadImages() {
@@ -303,9 +303,8 @@
         mTexTransparent = loadTextureARGB(R.drawable.leaf);
         mTexChecker = loadTextureRGB(R.drawable.checker);
         Bitmap b = BitmapFactory.decodeResource(mRes, R.drawable.cubemap_test);
-        mTexCube = Allocation.createCubemapFromBitmap(mRS, b, Element.RGB_565(mRS), false,
+        mTexCube = Allocation.createCubemapFromBitmap(mRS, b,
                                                       Allocation.CubemapLayout.VERTICAL_FACE_LIST);
-        mTexCube.uploadToTexture(0);
 
         mScript.set_gTexTorus(mTexTorus);
         mScript.set_gTexOpaque(mTexOpaque);
diff --git a/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java b/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java
index 6258c9b..75e8d99 100644
--- a/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java
+++ b/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java
@@ -274,17 +274,16 @@
     }
 
     private Allocation loadTextureRGB(int id) {
-        final Allocation allocation = Allocation.createFromBitmapResource(mRS, mRes,
-                id, Element.RGB_565(mRS), true);
-        allocation.uploadToTexture(0);
-        return allocation;
+        return Allocation.createFromBitmapResource(mRS, mRes, id,
+                                                   Allocation.MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE,
+                                                   Allocation.USAGE_GRAPHICS_TEXTURE);
     }
 
     private Allocation loadTextureARGB(int id) {
         Bitmap b = BitmapFactory.decodeResource(mRes, id, mOptionsARGB);
-        final Allocation allocation = Allocation.createFromBitmap(mRS, b, Element.RGBA_8888(mRS), true);
-        allocation.uploadToTexture(0);
-        return allocation;
+        return Allocation.createFromBitmap(mRS, b,
+                                           Allocation.MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE,
+                                           Allocation.USAGE_GRAPHICS_TEXTURE);
     }
 
     private void loadImages() {
@@ -293,9 +292,8 @@
         mTexTransparent = loadTextureARGB(R.drawable.leaf);
         mTexChecker = loadTextureRGB(R.drawable.checker);
         Bitmap b = BitmapFactory.decodeResource(mRes, R.drawable.cubemap_test);
-        mTexCube = Allocation.createCubemapFromBitmap(mRS, b, Element.RGB_565(mRS), false,
+        mTexCube = Allocation.createCubemapFromBitmap(mRS, b,
                                                       Allocation.CubemapLayout.VERTICAL_FACE_LIST);
-        mTexCube.uploadToTexture(0);
 
         mScript.set_gTexTorus(mTexTorus);
         mScript.set_gTexOpaque(mTexOpaque);
diff --git a/libs/rs/java/tests/src/com/android/rs/test/RSTestCore.java b/libs/rs/java/tests/src/com/android/rs/test/RSTestCore.java
index c1f652f..265e1d6 100644
--- a/libs/rs/java/tests/src/com/android/rs/test/RSTestCore.java
+++ b/libs/rs/java/tests/src/com/android/rs/test/RSTestCore.java
@@ -16,6 +16,7 @@
 
 package com.android.rs.test;
 
+import android.content.Context;
 import android.content.res.Resources;
 import android.renderscript.*;
 import android.util.Log;
@@ -28,8 +29,10 @@
 public class RSTestCore {
     int mWidth;
     int mHeight;
+    Context mCtx;
 
-    public RSTestCore() {
+    public RSTestCore(Context ctx) {
+        mCtx = ctx;
     }
 
     private Resources mRes;
@@ -61,10 +64,10 @@
 
         unitTests = new ArrayList<UnitTest>();
 
-        unitTests.add(new UT_primitives(this, mRes));
-        unitTests.add(new UT_rsdebug(this, mRes));
-        unitTests.add(new UT_rstypes(this, mRes));
-        unitTests.add(new UT_fp_mad(this, mRes));
+        unitTests.add(new UT_primitives(this, mRes, mCtx));
+        unitTests.add(new UT_rsdebug(this, mRes, mCtx));
+        unitTests.add(new UT_rstypes(this, mRes, mCtx));
+        unitTests.add(new UT_fp_mad(this, mRes, mCtx));
         /*
         unitTests.add(new UnitTest(null, "<Pass>", 1));
         unitTests.add(new UnitTest());
diff --git a/libs/rs/java/tests/src/com/android/rs/test/RSTestView.java b/libs/rs/java/tests/src/com/android/rs/test/RSTestView.java
index 2f7542d..368f286 100644
--- a/libs/rs/java/tests/src/com/android/rs/test/RSTestView.java
+++ b/libs/rs/java/tests/src/com/android/rs/test/RSTestView.java
@@ -41,8 +41,11 @@
 
 public class RSTestView extends RSSurfaceView {
 
+    private Context mCtx;
+
     public RSTestView(Context context) {
         super(context);
+        mCtx = context;
         //setFocusable(true);
     }
 
@@ -55,7 +58,7 @@
             RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
             mRS = createRenderScriptGL(sc);
             mRS.setSurface(holder, w, h);
-            mRender = new RSTestCore();
+            mRender = new RSTestCore(mCtx);
             mRender.init(mRS, getResources(), w, h);
         }
     }
@@ -92,5 +95,3 @@
         return ret;
     }
 }
-
-
diff --git a/libs/rs/java/tests/src/com/android/rs/test/UT_fp_mad.java b/libs/rs/java/tests/src/com/android/rs/test/UT_fp_mad.java
index 409192b..f2c91af 100644
--- a/libs/rs/java/tests/src/com/android/rs/test/UT_fp_mad.java
+++ b/libs/rs/java/tests/src/com/android/rs/test/UT_fp_mad.java
@@ -16,19 +16,20 @@
 
 package com.android.rs.test;
 
+import android.content.Context;
 import android.content.res.Resources;
 import android.renderscript.*;
 
 public class UT_fp_mad extends UnitTest {
     private Resources mRes;
 
-    protected UT_fp_mad(RSTestCore rstc, Resources res) {
-        super(rstc, "Fp_Mad");
+    protected UT_fp_mad(RSTestCore rstc, Resources res, Context ctx) {
+        super(rstc, "Fp_Mad", ctx);
         mRes = res;
     }
 
     public void run() {
-        RenderScript pRS = RenderScript.create();
+        RenderScript pRS = RenderScript.create(mCtx);
         ScriptC_fp_mad s = new ScriptC_fp_mad(pRS, mRes, R.raw.fp_mad);
         pRS.setMessageHandler(mRsMessage);
         s.invoke_fp_mad_test(0, 0);
@@ -37,4 +38,3 @@
         pRS.destroy();
     }
 }
-
diff --git a/libs/rs/java/tests/src/com/android/rs/test/UT_primitives.java b/libs/rs/java/tests/src/com/android/rs/test/UT_primitives.java
index 6e0859a..b7a65a5 100644
--- a/libs/rs/java/tests/src/com/android/rs/test/UT_primitives.java
+++ b/libs/rs/java/tests/src/com/android/rs/test/UT_primitives.java
@@ -16,14 +16,15 @@
 
 package com.android.rs.test;
 
+import android.content.Context;
 import android.content.res.Resources;
 import android.renderscript.*;
 
 public class UT_primitives extends UnitTest {
     private Resources mRes;
 
-    protected UT_primitives(RSTestCore rstc, Resources res) {
-        super(rstc, "Primitives");
+    protected UT_primitives(RSTestCore rstc, Resources res, Context ctx) {
+        super(rstc, "Primitives", ctx);
         mRes = res;
     }
 
@@ -87,7 +88,7 @@
     }
 
     public void run() {
-        RenderScript pRS = RenderScript.create();
+        RenderScript pRS = RenderScript.create(mCtx);
         ScriptC_primitives s = new ScriptC_primitives(pRS, mRes, R.raw.primitives);
         pRS.setMessageHandler(mRsMessage);
         if (!initializeGlobals(s)) {
@@ -101,4 +102,3 @@
         pRS.destroy();
     }
 }
-
diff --git a/libs/rs/java/tests/src/com/android/rs/test/UT_rsdebug.java b/libs/rs/java/tests/src/com/android/rs/test/UT_rsdebug.java
index df31f98..0614b1a 100644
--- a/libs/rs/java/tests/src/com/android/rs/test/UT_rsdebug.java
+++ b/libs/rs/java/tests/src/com/android/rs/test/UT_rsdebug.java
@@ -16,19 +16,20 @@
 
 package com.android.rs.test;
 
+import android.content.Context;
 import android.content.res.Resources;
 import android.renderscript.*;
 
 public class UT_rsdebug extends UnitTest {
     private Resources mRes;
 
-    protected UT_rsdebug(RSTestCore rstc, Resources res) {
-        super(rstc, "rsDebug");
+    protected UT_rsdebug(RSTestCore rstc, Resources res, Context ctx) {
+        super(rstc, "rsDebug", ctx);
         mRes = res;
     }
 
     public void run() {
-        RenderScript pRS = RenderScript.create();
+        RenderScript pRS = RenderScript.create(mCtx);
         ScriptC_rsdebug s = new ScriptC_rsdebug(pRS, mRes, R.raw.rsdebug);
         pRS.setMessageHandler(mRsMessage);
         s.invoke_test_rsdebug(0, 0);
@@ -37,4 +38,3 @@
         pRS.destroy();
     }
 }
-
diff --git a/libs/rs/java/tests/src/com/android/rs/test/UT_rstypes.java b/libs/rs/java/tests/src/com/android/rs/test/UT_rstypes.java
index d1232ce..74211c8 100644
--- a/libs/rs/java/tests/src/com/android/rs/test/UT_rstypes.java
+++ b/libs/rs/java/tests/src/com/android/rs/test/UT_rstypes.java
@@ -16,19 +16,20 @@
 
 package com.android.rs.test;
 
+import android.content.Context;
 import android.content.res.Resources;
 import android.renderscript.*;
 
 public class UT_rstypes extends UnitTest {
     private Resources mRes;
 
-    protected UT_rstypes(RSTestCore rstc, Resources res) {
-        super(rstc, "rsTypes");
+    protected UT_rstypes(RSTestCore rstc, Resources res, Context ctx) {
+        super(rstc, "rsTypes", ctx);
         mRes = res;
     }
 
     public void run() {
-        RenderScript pRS = RenderScript.create();
+        RenderScript pRS = RenderScript.create(mCtx);
         ScriptC_rstypes s = new ScriptC_rstypes(pRS, mRes, R.raw.rstypes);
         pRS.setMessageHandler(mRsMessage);
         s.invoke_test_rstypes(0, 0);
@@ -37,4 +38,3 @@
         pRS.destroy();
     }
 }
-
diff --git a/libs/rs/java/tests/src/com/android/rs/test/UnitTest.java b/libs/rs/java/tests/src/com/android/rs/test/UnitTest.java
index 8923a19..a7722c7 100644
--- a/libs/rs/java/tests/src/com/android/rs/test/UnitTest.java
+++ b/libs/rs/java/tests/src/com/android/rs/test/UnitTest.java
@@ -15,6 +15,7 @@
  */
 
 package com.android.rs.test;
+import android.content.Context;
 import android.renderscript.RenderScript.RSMessageHandler;
 import android.util.Log;
 
@@ -24,6 +25,7 @@
     private ScriptField_ListAllocs_s.Item mItem;
     private RSTestCore mRSTC;
     private boolean msgHandled;
+    protected Context mCtx;
 
     /* These constants must match those in shared.rsh */
     public static final int RS_MSG_TEST_PASSED = 100;
@@ -32,25 +34,26 @@
     private static int numTests = 0;
     public int testID;
 
-    protected UnitTest(RSTestCore rstc, String n, int initResult) {
+    protected UnitTest(RSTestCore rstc, String n, int initResult, Context ctx) {
         super();
         mRSTC = rstc;
         name = n;
         msgHandled = false;
+        mCtx = ctx;
         result = initResult;
         testID = numTests++;
     }
 
-    protected UnitTest(RSTestCore rstc, String n) {
-        this(rstc, n, 0);
+    protected UnitTest(RSTestCore rstc, String n, Context ctx) {
+        this(rstc, n, 0, ctx);
     }
 
-    protected UnitTest(RSTestCore rstc) {
-        this (rstc, "<Unknown>");
+    protected UnitTest(RSTestCore rstc, Context ctx) {
+        this (rstc, "<Unknown>", ctx);
     }
 
-    protected UnitTest() {
-        this (null);
+    protected UnitTest(Context ctx) {
+        this (null, ctx);
     }
 
     protected RSMessageHandler mRsMessage = new RSMessageHandler() {
@@ -101,4 +104,3 @@
         }
     }
 }
-
diff --git a/libs/rs/rs.spec b/libs/rs/rs.spec
index 9f817b6..5daba08 100644
--- a/libs/rs/rs.spec
+++ b/libs/rs/rs.spec
@@ -322,6 +322,7 @@
 
 ScriptCCreate {
         param const char * resName
+        param const char * cacheDir
 	ret RsScript
 	}
 
diff --git a/libs/rs/rsAllocation.cpp b/libs/rs/rsAllocation.cpp
index aab789a..cb00223 100644
--- a/libs/rs/rsAllocation.cpp
+++ b/libs/rs/rsAllocation.cpp
@@ -36,7 +36,7 @@
 
     mUsageFlags = usages;
 
-    mPtr = malloc(mType->getSizeBytes());
+    allocScriptMemory();
     if (mType->getElement()->getHasReferences()) {
         memset(mPtr, 0, mType->getSizeBytes());
     }
@@ -75,10 +75,9 @@
 Allocation::~Allocation() {
     if (mUserBitmapCallback != NULL) {
         mUserBitmapCallback(mUserBitmapCallbackData);
-    } else {
-        free(mPtr);
+        mPtr = NULL;
     }
-    mPtr = NULL;
+    freeScriptMemory();
 
     if (mBufferID) {
         // Causes a SW crash....
@@ -108,12 +107,9 @@
     return false;
 }
 
-void Allocation::deferedUploadToTexture(const Context *rsc, bool genMipmap, uint32_t lodOffset) {
-    rsAssert(lodOffset < mType->getLODCount());
+void Allocation::deferedUploadToTexture(const Context *rsc) {
     mUsageFlags |= RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE;
-    mTextureLOD = lodOffset;
     mUploadDefered = true;
-    mTextureGenMipmap = !mType->getDimLOD() && genMipmap;
 }
 
 uint32_t Allocation::getGLTarget() const {
@@ -130,6 +126,20 @@
     return 0;
 }
 
+void Allocation::allocScriptMemory() {
+    rsAssert(!mPtr);
+    mPtr = malloc(mType->getSizeBytes());
+}
+
+void Allocation::freeScriptMemory() {
+    rsAssert(!(mUsageFlags & RS_ALLOCATION_USAGE_SCRIPT));
+    if (mPtr) {
+        free(mPtr);
+        mPtr = NULL;
+    }
+}
+
+
 void Allocation::syncAll(Context *rsc, RsAllocationUsageType src) {
     rsAssert(src == RS_ALLOCATION_USAGE_SCRIPT);
 
@@ -153,6 +163,10 @@
         return;
     }
 
+    if (!mPtr) {
+        return;
+    }
+
     bool isFirstUpload = false;
 
     if (!mTextureID) {
@@ -171,49 +185,57 @@
     }
 
     GLenum target = (GLenum)getGLTarget();
-    glBindTexture(target, mTextureID);
-    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
     if (target == GL_TEXTURE_2D) {
-        upload2DTexture(isFirstUpload);
+        upload2DTexture(isFirstUpload, mPtr);
     } else if (target == GL_TEXTURE_CUBE_MAP) {
         uploadCubeTexture(isFirstUpload);
     }
 
-    if (mTextureGenMipmap) {
-#ifndef ANDROID_RS_BUILD_FOR_HOST
-        glGenerateMipmap(target);
-#endif //ANDROID_RS_BUILD_FOR_HOST
+    if (!(mUsageFlags & RS_ALLOCATION_USAGE_SCRIPT)) {
+        freeScriptMemory();
     }
 
     rsc->checkError("Allocation::uploadToTexture");
 }
 
-void Allocation::upload2DTexture(bool isFirstUpload) {
+void Allocation::upload2DTexture(bool isFirstUpload, const void *ptr) {
     GLenum type = mType->getElement()->getComponent().getGLType();
     GLenum format = mType->getElement()->getComponent().getGLFormat();
 
-    Adapter2D adapt(getContext(), this);
-    for (uint32_t lod = 0; (lod + mTextureLOD) < mType->getLODCount(); lod++) {
-        adapt.setLOD(lod+mTextureLOD);
+    GLenum target = (GLenum)getGLTarget();
+    glBindTexture(target, mTextureID);
+    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
 
-        uint16_t * ptr = static_cast<uint16_t *>(adapt.getElement(0,0));
+    for (uint32_t lod = 0; lod < mType->getLODCount(); lod++) {
+        const uint8_t *p = (const uint8_t *)ptr;
+        p += mType->getLODOffset(lod);
+
         if (isFirstUpload) {
             glTexImage2D(GL_TEXTURE_2D, lod, format,
-                         adapt.getDimX(), adapt.getDimY(),
-                         0, format, type, ptr);
+                         mType->getLODDimX(lod), mType->getLODDimY(lod),
+                         0, format, type, p);
         } else {
             glTexSubImage2D(GL_TEXTURE_2D, lod, 0, 0,
-                            adapt.getDimX(), adapt.getDimY(),
-                            format, type, ptr);
+                            mType->getLODDimX(lod), mType->getLODDimY(lod),
+                            format, type, p);
         }
     }
+
+    if (mMipmapControl == RS_ALLOCATION_MIPMAP_ON_SYNC_TO_TEXTURE) {
+#ifndef ANDROID_RS_BUILD_FOR_HOST
+        glGenerateMipmap(target);
+#endif //ANDROID_RS_BUILD_FOR_HOST
+    }
 }
 
 void Allocation::uploadCubeTexture(bool isFirstUpload) {
     GLenum type = mType->getElement()->getComponent().getGLType();
     GLenum format = mType->getElement()->getComponent().getGLFormat();
 
+    GLenum target = (GLenum)getGLTarget();
+    glBindTexture(target, mTextureID);
+    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
     GLenum faceOrder[] = {
         GL_TEXTURE_CUBE_MAP_POSITIVE_X,
         GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
@@ -227,8 +249,8 @@
     for (uint32_t face = 0; face < 6; face ++) {
         adapt.setFace(face);
 
-        for (uint32_t lod = 0; (lod + mTextureLOD) < mType->getLODCount(); lod++) {
-            adapt.setLOD(lod+mTextureLOD);
+        for (uint32_t lod = 0; lod < mType->getLODCount(); lod++) {
+            adapt.setLOD(lod);
 
             uint16_t * ptr = static_cast<uint16_t *>(adapt.getElement(0,0));
 
@@ -243,6 +265,12 @@
             }
         }
     }
+
+    if (mMipmapControl == RS_ALLOCATION_MIPMAP_ON_SYNC_TO_TEXTURE) {
+#ifndef ANDROID_RS_BUILD_FOR_HOST
+        glGenerateMipmap(target);
+#endif //ANDROID_RS_BUILD_FOR_HOST
+    }
 }
 
 void Allocation::deferedUploadToBufferObject(const Context *rsc) {
@@ -585,7 +613,7 @@
 
 void rsi_AllocationUploadToTexture(Context *rsc, RsAllocation va, bool genmip, uint32_t baseMipLevel) {
     Allocation *alloc = static_cast<Allocation *>(va);
-    alloc->deferedUploadToTexture(rsc, genmip, baseMipLevel);
+    alloc->deferedUploadToTexture(rsc);
 }
 
 void rsi_AllocationUploadToBufferObject(Context *rsc, RsAllocation va) {
@@ -681,16 +709,21 @@
         return;
     }
 
-    memcpy(texAlloc->getPtr(), data, s);
-    if (genMips) {
-        Adapter2D adapt(rsc, texAlloc);
-        Adapter2D adapt2(rsc, texAlloc);
-        for (uint32_t lod=0; lod < (texAlloc->getType()->getLODCount() -1); lod++) {
-            adapt.setLOD(lod);
-            adapt2.setLOD(lod + 1);
-            mip(adapt2, adapt);
+    if (texAlloc->getIsScript()) {
+        memcpy(texAlloc->getPtr(), data, s);
+        if (genMips) {
+            Adapter2D adapt(rsc, texAlloc);
+            Adapter2D adapt2(rsc, texAlloc);
+            for (uint32_t lod=0; lod < (texAlloc->getType()->getLODCount() -1); lod++) {
+                adapt.setLOD(lod);
+                adapt2.setLOD(lod + 1);
+                mip(adapt2, adapt);
+            }
         }
+    } else {
+        texAlloc->upload2DTexture(false, data);
     }
+
 }
 
 void rsi_AllocationCopyToBitmap(Context *rsc, RsAllocation va, void *data, size_t dataLen) {
@@ -792,7 +825,7 @@
         }
     }
 
-    texAlloc->deferedUploadToTexture(rsc, false, 0);
+    texAlloc->deferedUploadToTexture(rsc);
     return texAlloc;
 }
 
@@ -836,6 +869,6 @@
         }
     }
 
-    texAlloc->deferedUploadToTexture(rsc, false, 0);
+    texAlloc->deferedUploadToTexture(rsc);
     return texAlloc;
 }
diff --git a/libs/rs/rsAllocation.h b/libs/rs/rsAllocation.h
index d1dcb73..4a5f3da 100644
--- a/libs/rs/rsAllocation.h
+++ b/libs/rs/rsAllocation.h
@@ -45,7 +45,7 @@
 
     void syncAll(Context *rsc, RsAllocationUsageType src);
 
-    void deferedUploadToTexture(const Context *rsc, bool genMipmap, uint32_t lodOffset);
+    void deferedUploadToTexture(const Context *rsc);
     void uploadToTexture(const Context *rsc);
     uint32_t getTextureID() const {return mTextureID;}
 
@@ -87,6 +87,9 @@
 
     virtual void uploadCheck(Context *rsc);
 
+    bool getIsScript() const {
+        return (mUsageFlags & RS_ALLOCATION_USAGE_SCRIPT) != 0;
+    }
     bool getIsTexture() const {
         return (mUsageFlags & RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE) != 0;
     }
@@ -98,7 +101,11 @@
     void decRefs(const void *ptr, size_t ct, size_t startOff = 0) const;
 
     void sendDirty() const;
-    bool getHasGraphicsMipmaps() const {return mTextureGenMipmap;}
+    bool getHasGraphicsMipmaps() const {
+        return mMipmapControl != RS_ALLOCATION_MIPMAP_NONE;
+    }
+
+    void upload2DTexture(bool isFirstUpload, const void *ptr);
 
 protected:
     ObjectBaseRef<const Type> mType;
@@ -129,8 +136,6 @@
 
     // Is this a legal structure to be used as a texture source.
     // Initially this will require 1D or 2D and color data
-    bool mTextureGenMipmap;
-    uint32_t mTextureLOD;
     uint32_t mTextureID;
 
     // Is this a legal structure to be used as a vertex source.
@@ -142,8 +147,11 @@
 
 private:
     void init(Context *rsc, const Type *);
-    void upload2DTexture(bool isFirstUpload);
     void uploadCubeTexture(bool isFirstUpload);
+
+    void allocScriptMemory();
+    void freeScriptMemory();
+
 };
 
 }
diff --git a/libs/rs/rsFont.cpp b/libs/rs/rsFont.cpp
index 3d17be2..2fa1f0a 100644
--- a/libs/rs/rsFont.cpp
+++ b/libs/rs/rsFont.cpp
@@ -463,7 +463,7 @@
 
     // This will dirty the texture and the shader so next time
     // we draw it will upload the data
-    mTextTexture->deferedUploadToTexture(mRSC, false, 0);
+    mTextTexture->syncAll(mRSC, RS_ALLOCATION_USAGE_SCRIPT);
     mFontShaderF->bindTexture(mRSC, 0, mTextTexture.get());
 
     // Some debug code
@@ -529,7 +529,7 @@
 
     Allocation *cacheAlloc = new Allocation(mRSC, texType, RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE);
     mTextTexture.set(cacheAlloc);
-    mTextTexture->deferedUploadToTexture(mRSC, false, 0);
+    mTextTexture->syncAll(mRSC, RS_ALLOCATION_USAGE_SCRIPT);
 
     // Split up our cache texture into lines of certain widths
     int32_t nextLine = 0;
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index b3dbf11..507430d 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -402,7 +402,7 @@
 extern const char rs_runtime_lib_bc[];
 extern unsigned rs_runtime_lib_bc_size;
 
-void ScriptCState::runCompiler(Context *rsc, ScriptC *s, const char *resName) {
+void ScriptCState::runCompiler(Context *rsc, ScriptC *s, const char *resName, const char *cacheDir) {
     {
         s->mBccScript = bccCreateScript();
         s->mEnviroment.mIsThreadable = true;
@@ -413,7 +413,8 @@
         if (bccReadBC(s->mBccScript,
                       s->mEnviroment.mScriptText,
                       s->mEnviroment.mScriptTextLength,
-                      resName) >= 0) {
+                      resName,
+                      cacheDir) >= 0) {
           //bccLinkBC(s->mBccScript, rs_runtime_lib_bc, rs_runtime_lib_bc_size);
           bccCompileBC(s->mBccScript);
         } else {
@@ -534,7 +535,7 @@
     ss->mScript->mEnviroment.mScriptTextLength = len;
 }
 
-RsScript rsi_ScriptCCreate(Context * rsc, const char *resName)
+RsScript rsi_ScriptCCreate(Context * rsc, const char *resName, const char *cacheDir)
 {
     ScriptCState *ss = &rsc->mScriptC;
 
@@ -542,7 +543,7 @@
     ss->mScript.clear();
     s->incUserRef();
 
-    ss->runCompiler(rsc, s.get(), resName);
+    ss->runCompiler(rsc, s.get(), resName, cacheDir);
     ss->clear(rsc);
     return s.get();
 }
diff --git a/libs/rs/rsScriptC.h b/libs/rs/rsScriptC.h
index ab2db5c8..a714132 100644
--- a/libs/rs/rsScriptC.h
+++ b/libs/rs/rsScriptC.h
@@ -83,7 +83,7 @@
     void init(Context *rsc);
 
     void clear(Context *rsc);
-    void runCompiler(Context *rsc, ScriptC *s, const char *resName);
+    void runCompiler(Context *rsc, ScriptC *s, const char *resName, const char *cacheDir);
 
     struct SymbolTable_t {
         const char * mName;
diff --git a/libs/rs/rsScriptC_LibGL.cpp b/libs/rs/rsScriptC_LibGL.cpp
index 0f84e4b..fb5980a 100644
--- a/libs/rs/rsScriptC_LibGL.cpp
+++ b/libs/rs/rsScriptC_LibGL.cpp
@@ -275,6 +275,18 @@
     pf->setConstantColor(rsc, r, g, b, a);
 }
 
+static void SC_allocationSyncAll(RsAllocation va) {
+    CHECK_OBJ(va);
+    GET_TLS();
+    static_cast<Allocation *>(va)->syncAll(rsc, RS_ALLOCATION_USAGE_SCRIPT);
+}
+
+static void SC_allocationSyncAll2(RsAllocation va, RsAllocationUsageType source) {
+    CHECK_OBJ(va);
+    GET_TLS();
+    static_cast<Allocation *>(va)->syncAll(rsc, source);
+}
+
 static void SC_uploadToTexture2(RsAllocation va, uint32_t baseMipLevel) {
     CHECK_OBJ(va);
     GET_TLS();
@@ -425,6 +437,8 @@
     { "_Z11rsgGetWidthv", (void *)&SC_getWidth, false },
     { "_Z12rsgGetHeightv", (void *)&SC_getHeight, false },
 
+    { "_Z20rsgAllocationSyncAll13rs_allocation", (void *)&SC_allocationSyncAll, false },
+
     { "_Z18rsgUploadToTexture13rs_allocationj", (void *)&SC_uploadToTexture2, false },
     { "_Z18rsgUploadToTexture13rs_allocation", (void *)&SC_uploadToTexture, false },
     { "_Z23rsgUploadToBufferObject13rs_allocation", (void *)&SC_uploadToBufferObject, false },
diff --git a/libs/rs/scriptc/rs_graphics.rsh b/libs/rs/scriptc/rs_graphics.rsh
index 54e6328..3e708aa 100644
--- a/libs/rs/scriptc/rs_graphics.rsh
+++ b/libs/rs/scriptc/rs_graphics.rsh
@@ -35,6 +35,9 @@
     rsgGetHeight(void);
 
 extern void __attribute__((overloadable))
+    rsgAllocationSyncAll(rs_allocation);
+
+extern void __attribute__((overloadable))
     rsgUploadToTexture(rs_allocation);
 extern void __attribute__((overloadable))
     rsgUploadToTexture(rs_allocation, uint mipLevel);
diff --git a/libs/surfaceflinger_client/Surface.cpp b/libs/surfaceflinger_client/Surface.cpp
index 9467a4c..aa0c2e8 100644
--- a/libs/surfaceflinger_client/Surface.cpp
+++ b/libs/surfaceflinger_client/Surface.cpp
@@ -384,7 +384,7 @@
 
 
 Mutex Surface::sCachedSurfacesLock;
-DefaultKeyedVector<wp<IBinder>, wp<Surface> > Surface::sCachedSurfaces(wp<Surface>(0));
+DefaultKeyedVector<wp<IBinder>, wp<Surface> > Surface::sCachedSurfaces;
 
 sp<Surface> Surface::readFromParcel(const Parcel& data) {
     Mutex::Autolock _l(sCachedSurfacesLock);
@@ -397,13 +397,13 @@
     if (surface->mSurface == 0) {
       surface = 0;
     }
-    cleanCachedSurfaces();
+    cleanCachedSurfacesLocked();
     return surface;
 }
 
 // Remove the stale entries from the surface cache.  This should only be called
 // with sCachedSurfacesLock held.
-void Surface::cleanCachedSurfaces() {
+void Surface::cleanCachedSurfacesLocked() {
     for (int i = sCachedSurfaces.size()-1; i >= 0; --i) {
         wp<Surface> s(sCachedSurfaces.valueAt(i));
         if (s == 0 || s.promote() == 0) {
@@ -489,6 +489,9 @@
         LOGE("[Surface] using an invalid surface, "
                 "identity=%u should be %d",
                 mIdentity, identity);
+        CallStack stack;
+        stack.update();
+        stack.dump("Surface");
         return NO_INIT;
     }
 
@@ -497,6 +500,9 @@
     if (err != NO_ERROR) {
         LOGE("surface (identity=%u) is invalid, err=%d (%s)",
                 mIdentity, err, strerror(-err));
+        CallStack stack;
+        stack.update();
+        stack.dump("Surface");
         return err;
     }
 
diff --git a/media/java/android/media/MtpDatabase.java b/media/java/android/media/MtpDatabase.java
index 688c7b3..db08b27 100644
--- a/media/java/android/media/MtpDatabase.java
+++ b/media/java/android/media/MtpDatabase.java
@@ -725,26 +725,38 @@
         }
     }
 
-    private int deleteRecursive(int handle) throws RemoteException {
-        int[] children = getObjectList(0 /* storageID */, 0 /* format */, handle);
-        Uri uri = Files.getMtpObjectsUri(mVolumeName, handle);
-        // delete parent first, to avoid potential infinite recursion
-        int count = mMediaProvider.delete(uri, null, null);
-        if (count == 1) {
-            if (children != null) {
-                for (int i = 0; i < children.length; i++) {
-                    count += deleteRecursive(children[i]);
-                }
-            }
-        }
-        return count;
-    }
-
     private int deleteFile(int handle) {
         Log.d(TAG, "deleteFile: " + handle);
         mDatabaseModified = true;
+        String path = null;
+        int format = 0;
+
+        Cursor c = null;
         try {
-            if (deleteRecursive(handle) > 0) {
+            c = mMediaProvider.query(mObjectsUri, PATH_SIZE_FORMAT_PROJECTION,
+                            ID_WHERE, new String[] {  Integer.toString(handle) }, null);
+            if (c != null && c.moveToNext()) {
+                // don't convert to media path here, since we will be matching
+                // against paths in the database matching /data/media
+                path = c.getString(1);
+                format = c.getInt(3);
+            } else {
+                return MtpConstants.RESPONSE_INVALID_OBJECT_HANDLE;
+            }
+
+            if (path == null || format == 0) {
+                return MtpConstants.RESPONSE_GENERAL_ERROR;
+            }
+
+            if (format == MtpConstants.FORMAT_ASSOCIATION) {
+                // recursive case - delete all children first
+                Uri uri = Files.getMtpObjectsUri(mVolumeName);
+                int count = mMediaProvider.delete(uri, "_data LIKE ?",
+                        new String[] { path + "/%"});
+            }
+
+            Uri uri = Files.getMtpObjectsUri(mVolumeName, handle);
+            if (mMediaProvider.delete(uri, null, null) > 0) {
                 return MtpConstants.RESPONSE_OK;
             } else {
                 return MtpConstants.RESPONSE_INVALID_OBJECT_HANDLE;
@@ -752,6 +764,10 @@
         } catch (RemoteException e) {
             Log.e(TAG, "RemoteException in deleteFile", e);
             return MtpConstants.RESPONSE_GENERAL_ERROR;
+        } finally {
+            if (c != null) {
+                c.close();
+            }
         }
     }
 
diff --git a/media/jni/android_media_MediaMetadataRetriever.cpp b/media/jni/android_media_MediaMetadataRetriever.cpp
index 5904bfe..9662817 100644
--- a/media/jni/android_media_MediaMetadataRetriever.cpp
+++ b/media/jni/android_media_MediaMetadataRetriever.cpp
@@ -215,7 +215,7 @@
     // its pixels, it is important that the pixels (along with SkBitmap) be
     // available after creating the Bitmap is returned to Java app.
     jobject jSrcBitmap = env->NewObject(fields.bitmapClazz,
-            fields.bitmapConstructor, (int) bitmap, true, NULL, -1);
+            fields.bitmapConstructor, (int) bitmap, NULL, true, NULL, -1);
 
     LOGV("Return a new bitmap constructed with the rotation matrix");
     return env->CallStaticObjectMethod(
@@ -321,7 +321,7 @@
         return;
     }
 
-    fields.bitmapConstructor = env->GetMethodID(fields.bitmapClazz, "<init>", "(IZ[BI)V");
+    fields.bitmapConstructor = env->GetMethodID(fields.bitmapClazz, "<init>", "(I[BZ[BI)V");
     if (fields.bitmapConstructor == NULL) {
         jniThrowException(env, "java/lang/RuntimeException", "Can't find Bitmap constructor");
         return;
diff --git a/media/libstagefright/WAVExtractor.cpp b/media/libstagefright/WAVExtractor.cpp
index 446021c..9332120 100644
--- a/media/libstagefright/WAVExtractor.cpp
+++ b/media/libstagefright/WAVExtractor.cpp
@@ -318,7 +318,7 @@
     int64_t seekTimeUs;
     ReadOptions::SeekMode mode;
     if (options != NULL && options->getSeekTo(&seekTimeUs, &mode)) {
-        int64_t pos = (seekTimeUs * mSampleRate) / 1000000 * mNumChannels * 2;
+        int64_t pos = (seekTimeUs * mSampleRate) / 1000000 * mNumChannels * (mBitsPerSample >> 3);
         if (pos > mSize) {
             pos = mSize;
         }
diff --git a/media/tests/CameraBrowser/res/values/strings.xml b/media/tests/CameraBrowser/res/values/strings.xml
index 7955773..932aaec 100644
--- a/media/tests/CameraBrowser/res/values/strings.xml
+++ b/media/tests/CameraBrowser/res/values/strings.xml
@@ -41,5 +41,6 @@
     <string name="save_failed_message">Could not save object</string>
     <string name="object_deleted_message">Object deleted</string>
     <string name="delete_failed_message">Could not delete object</string>
+    <string name="start_activity_failed_message">Import succeeded, but could not display object</string>
 
 </resources>
diff --git a/media/tests/CameraBrowser/src/com/android/camerabrowser/ObjectViewer.java b/media/tests/CameraBrowser/src/com/android/camerabrowser/ObjectViewer.java
index 3a6c6a4..d53dbff 100644
--- a/media/tests/CameraBrowser/src/com/android/camerabrowser/ObjectViewer.java
+++ b/media/tests/CameraBrowser/src/com/android/camerabrowser/ObjectViewer.java
@@ -16,6 +16,7 @@
 package com.android.camerabrowser;
 
 import android.app.Activity;
+import android.content.ActivityNotFoundException;
 import android.content.ContentValues;
 import android.content.Intent;
 import android.database.Cursor;
@@ -155,7 +156,11 @@
         if (resultUri != null) {
             Toast.makeText(this, R.string.object_saved_message, Toast.LENGTH_SHORT).show();
             Intent intent = new Intent(Intent.ACTION_VIEW, resultUri);
-            startActivity(intent);
+            try {
+                startActivity(intent);
+            } catch (ActivityNotFoundException e) {
+                Toast.makeText(this, R.string.start_activity_failed_message, Toast.LENGTH_SHORT).show();
+            }
         } else {
             Toast.makeText(this, R.string.save_failed_message, Toast.LENGTH_SHORT).show();
         }
diff --git a/opengl/tests/hwc/hwc_stress.cpp b/opengl/tests/hwc/hwc_stress.cpp
index 35e53ab..580eb83 100644
--- a/opengl/tests/hwc/hwc_stress.cpp
+++ b/opengl/tests/hwc/hwc_stress.cpp
@@ -202,18 +202,19 @@
 };
 
 // File scope constants
-static const struct {
+static const struct graphicFormat {
     unsigned int format;
     const char *desc;
+    unsigned int wMod, hMod; // Width/height mod this value must equal zero
 } graphicFormat[] = {
-    {HAL_PIXEL_FORMAT_RGBA_8888, "RGBA8888"},
-    {HAL_PIXEL_FORMAT_RGBX_8888, "RGBX8888"},
-    {HAL_PIXEL_FORMAT_RGB_888, "RGB888"},
-    {HAL_PIXEL_FORMAT_RGB_565, "RGB565"},
-    {HAL_PIXEL_FORMAT_BGRA_8888, "BGRA8888"},
-    {HAL_PIXEL_FORMAT_RGBA_5551, "RGBA5551"},
-    {HAL_PIXEL_FORMAT_RGBA_4444, "RGBA4444"},
-    {HAL_PIXEL_FORMAT_YV12, "YV12"},
+    {HAL_PIXEL_FORMAT_RGBA_8888, "RGBA8888", 1, 1},
+    {HAL_PIXEL_FORMAT_RGBX_8888, "RGBX8888", 1, 1},
+    {HAL_PIXEL_FORMAT_RGB_888, "RGB888", 1, 1},
+    {HAL_PIXEL_FORMAT_RGB_565, "RGB565", 1, 1},
+    {HAL_PIXEL_FORMAT_BGRA_8888, "BGRA8888", 1, 1},
+    {HAL_PIXEL_FORMAT_RGBA_5551, "RGBA5551", 1, 1},
+    {HAL_PIXEL_FORMAT_RGBA_4444, "RGBA4444", 1, 1},
+    {HAL_PIXEL_FORMAT_YV12, "YV12", 2, 2},
 };
 const unsigned int blendingOps[] = {
     HWC_BLENDING_NONE,
@@ -478,7 +479,7 @@
             exit(20);
         }
 
-	// Prandomly select a subset of frames to be used by this pass.
+        // Prandomly select a subset of frames to be used by this pass.
         vector <vector <sp<GraphicBuffer> > > selectedFrames;
         selectedFrames = vectorRandSelect(frames, list->numHwLayers);
 
@@ -749,7 +750,6 @@
 {
     unsigned char* buf = NULL;
     status_t err;
-    unsigned int numPixels = gBuf->getWidth() * gBuf->getHeight();
     uint32_t pixel;
 
     // RGB 2 YUV conversion ratios
@@ -835,9 +835,16 @@
         exit(51);
     }
 
-    for (unsigned int n1 = 0; n1 < numPixels; n1++) {
-        memmove(buf, &pixel, attrib->bytes);
-        buf += attrib->bytes;
+    for (unsigned int row = 0; row < gBuf->getHeight(); row++) {
+        for (unsigned int col = 0; col < gBuf->getWidth(); col++) {
+          memmove(buf, &pixel, attrib->bytes);
+          buf += attrib->bytes;
+        }
+        for (unsigned int pad = 0;
+             pad < (gBuf->getStride() - gBuf->getWidth()) * attrib->bytes;
+             pad++) {
+            *buf++ = testRandMod(256);
+        }
     }
 
     err = gBuf->unlock();
@@ -856,14 +863,13 @@
 
     const struct yuvAttrib {
         int format;
-        size_t padWidth;
         bool   planar;
         unsigned int uSubSampX;
         unsigned int uSubSampY;
         unsigned int vSubSampX;
         unsigned int vSubSampY;
     } yuvAttributes[] = {
-        { HAL_PIXEL_FORMAT_YV12, 16, true, 2, 2, 2, 2},
+        { HAL_PIXEL_FORMAT_YV12, true, 2, 2, 2, 2},
     };
 
     const struct yuvAttrib *attrib;
@@ -879,12 +885,6 @@
 
     assert(attrib->planar == true); // So far, only know how to handle planar
 
-    // If needed round width up to pad size
-    if (width % attrib->padWidth) {
-        width += attrib->padWidth - (width % attrib->padWidth);
-    }
-    assert((width % attrib->padWidth) == 0);
-
     err = gBuf->lock(GRALLOC_USAGE_SW_WRITE_OFTEN, (void**)(&buf));
     if (err != 0) {
         testPrintE("fillColor lock failed: %d", err);
@@ -892,23 +892,35 @@
     }
 
     // Fill in Y component
-    for (unsigned int x = 0; x < width; x++) {
-        for (unsigned int y = 0; y < height; y++) {
-            *buf++ = (x < gBuf->getWidth()) ? (255 * color.y()) : 0;
+    for (unsigned int row = 0; row < height; row++) {
+        for (unsigned int col = 0; col < width; col++) {
+            *buf++ = 255 * color.y();
+        }
+        for (unsigned int pad = 0; pad < gBuf->getStride() - gBuf->getWidth();
+             pad++) {
+             *buf++ = testRandMod(256);
         }
     }
 
     // Fill in U component
-    for (unsigned int x = 0; x < width; x += attrib->uSubSampX) {
-        for (unsigned int y = 0; y < height; y += attrib->uSubSampY) {
-            *buf++ = (x < gBuf->getWidth()) ? (255 * color.u()) : 0;
+    for (unsigned int row = 0; row < height; row += attrib->uSubSampY) {
+        for (unsigned int col = 0; col < width; col += attrib->uSubSampX) {
+            *buf++ = 255 * color.u();
+        }
+        for (unsigned int pad = 0; pad < gBuf->getStride() - gBuf->getWidth();
+             pad += attrib->uSubSampX) {
+            *buf++ = testRandMod(256);
         }
     }
 
     // Fill in V component
-    for (unsigned int x = 0; x < width; x += attrib->vSubSampX) {
-        for (unsigned int y = 0; y < height; y += attrib->vSubSampY) {
-            *buf++ = (x < gBuf->getWidth()) ? (255 * color.v()) : 0;
+    for (unsigned int row = 0; row < height; row += attrib->vSubSampY) {
+        for (unsigned int col = 0; col < width; col += attrib->vSubSampX) {
+            *buf++ = 255 * color.v();
+        }
+        for (unsigned int pad = 0; pad < gBuf->getStride() - gBuf->getWidth();
+             pad += attrib->vSubSampX) {
+            *buf++ = testRandMod(256);
         }
     }
 
@@ -989,7 +1001,7 @@
     eglQuerySurface(dpy, surface, EGL_HEIGHT, &height);
     checkEglError("eglQuerySurface");
 
-    fprintf(stderr, "Window dimensions: %d x %d", width, height);
+    testPrintI("Window dimensions: %d x %d", width, height);
 
     printGLString("Version", GL_VERSION);
     printGLString("Vendor", GL_VENDOR);
@@ -1017,7 +1029,7 @@
  *
  * Creates an array of graphic buffers, within the global variable
  * named frames.  The graphic buffers are contained within a vector of
- * verctors.  All the graphic buffers in a particular row are of the same
+ * vectors.  All the graphic buffers in a particular row are of the same
  * format and dimension.  Each graphic buffer is uniformly filled with a
  * prandomly selected color.  It is likely that each buffer, even
  * in the same row, will be filled with a unique color.
@@ -1039,11 +1051,22 @@
     for (unsigned int row = 0; row < rows; row++) {
         // All frames within a row have to have the same format and
         // dimensions.  Width and height need to be >= 1.
-        int format = graphicFormat[testRandMod(NUMA(graphicFormat))].format;
+        unsigned int formatIdx = testRandMod(NUMA(graphicFormat));
+        const struct graphicFormat *formatPtr = &graphicFormat[formatIdx];
+        int format = formatPtr->format;
+
+        // Pick width and height, which must be >= 1 and the size
+        // mod the wMod/hMod value must be equal to 0.
         size_t w = (width * maxSizeRatio) * testRandFract();
         size_t h = (height * maxSizeRatio) * testRandFract();
         w = max(1u, w);
         h = max(1u, h);
+        if ((w % formatPtr->wMod) != 0) {
+            w += formatPtr->wMod - (w % formatPtr->wMod);
+        }
+        if ((h % formatPtr->hMod) != 0) {
+            h += formatPtr->hMod - (h % formatPtr->hMod);
+        }
         if (verbose) {
             testPrintI("  frame %u width: %u height: %u format: %u %s",
                        row, w, h, format, graphicFormat2str(format));
diff --git a/packages/SettingsProvider/res/xml/bookmarks.xml b/packages/SettingsProvider/res/xml/bookmarks.xml
index dfaeeaf..83229f4 100644
--- a/packages/SettingsProvider/res/xml/bookmarks.xml
+++ b/packages/SettingsProvider/res/xml/bookmarks.xml
@@ -4,9 +4,9 @@
      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.
@@ -14,6 +14,22 @@
      limitations under the License.
 -->
 
+<!--
+     Default system bookmarks for AOSP.
+     Bookmarks for vendor apps should be added to a bookmarks resource overlay; not here.
+
+     Typical shortcuts (not necessarily defined here):
+       'b': Browser
+       'c': Contacts
+       'e': Email
+       'g': GMail
+       'l': Calendar
+       'm': Maps
+       'p': Music
+       's': SMS
+       't': Talk
+       'y': YouTube
+-->
 <bookmarks>
     <bookmark
         package="com.android.browser"
@@ -21,30 +37,16 @@
         shortcut="b" />
     <bookmark
         package="com.android.contacts"
-        class="com.android.contacts.DialtactsContactsEntryActivity"
+        class="com.android.contacts.activities.ContactsFrontDoor"
         shortcut="c" />
     <bookmark
-        package="com.android.email"
+        package="com.google.android.email"
         class="com.android.email.activity.Welcome"
         shortcut="e" />
     <bookmark
-        package="com.google.android.gm"
-        class="com.google.android.gm.ConversationListActivityGmail"
-        shortcut="g" />
-    <bookmark
-        package="com.android.im"
-        class="com.android.im.app.LandingPage"
-        shortcut="i" />
-    <bookmark
-        package="com.android.calendar"
+        package="com.google.android.calendar"
         class="com.android.calendar.LaunchActivity"
         shortcut="l" />
-<!--
-    <bookmark
-        package="com.google.android.apps.maps"
-        class="com.google.android.maps.MapsActivity"
-        shortcut="m" />
--->
     <bookmark
         package="com.android.music"
         class="com.android.music.MusicBrowserActivity"
diff --git a/packages/SystemUI/res/values-ar-xlarge/strings.xml b/packages/SystemUI/res/values-ar-xlarge/strings.xml
index a846290..44e911a 100644
--- a/packages/SystemUI/res/values-ar-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-ar-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"لا اتصال بالإنترنت"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: متصل"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"لا اتصال بالإنترنت"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi متصل"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 0a969e1..4ee82d3 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"وضع الطائرة"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"تأمين اتجاه الشاشة"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"كتم"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"تلقائي"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"التنبيهات"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"حديثة"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-bg-xlarge/strings.xml b/packages/SystemUI/res/values-bg-xlarge/strings.xml
index 1ca0d16..db572ec 100644
--- a/packages/SystemUI/res/values-bg-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-bg-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"няма връзка с интернет"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: има връзка"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Няма връзка с интернет"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: има връзка"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 34f7bd3..9d7b807 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -40,11 +40,9 @@
     <!-- no translation found for status_bar_settings_wifi_button (1733928151698311923) -->
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Самолетен режим"</string>
-    <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Закл. на екранната ориентация"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Заключване на ориентацията"</string>
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"БЕЗ"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АВТ."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Известия"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Скорошни"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-ca-xlarge/strings.xml b/packages/SystemUI/res/values-ca-xlarge/strings.xml
index e7cafec..2e3baf5 100644
--- a/packages/SystemUI/res/values-ca-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-ca-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"sense conn Inter."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: connectat"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"No connexió Internet"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: connectat"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 7d6c703..be0407d 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode d\'avió"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Bloquejar orientació pantalla"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"Silen."</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificacions"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Recents"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-cs-xlarge/strings.xml b/packages/SystemUI/res/values-cs-xlarge/strings.xml
index af10e62..b257792 100644
--- a/packages/SystemUI/res/values-cs-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-cs-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"žádné datové připoj."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: připojeno"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Žádné připojení"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: připojeno"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index daada83..f7d4864 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Režim V letadle"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Uzamknout orientaci obrazovky"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ZTLUM."</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Oznámení"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Nejnovější"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Žádné nedávno použité aplikace."</string>
diff --git a/packages/SystemUI/res/values-da-xlarge/strings.xml b/packages/SystemUI/res/values-da-xlarge/strings.xml
index 15c8cc9..78107ab 100644
--- a/packages/SystemUI/res/values-da-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-da-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"ingen forbindelse"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi forbundet"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Ingen internetforb."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi er forbundet"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 0504337..dad6736 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flytilstand"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Lås skærmretning"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"LYDLØS"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Meddelelser"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Seneste"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Der er ingen nye programmer."</string>
diff --git a/packages/SystemUI/res/values-de-xlarge/strings.xml b/packages/SystemUI/res/values-de-xlarge/strings.xml
index 38fe143..a617d7d 100644
--- a/packages/SystemUI/res/values-de-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-de-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Keine Verbindung"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"WLAN: verbunden"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Keine Internetverbindung"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"WLAN verbunden"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 01391e1..a76fe3d 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flugmodus"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Bildschirmausrichtung sperren"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"STUMM"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Benachrichtigungen"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Zuletzt verwendet"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Keine neuen Anwendungen"</string>
diff --git a/packages/SystemUI/res/values-el-xlarge/strings.xml b/packages/SystemUI/res/values-el-xlarge/strings.xml
index 3356fe8..41f61e2 100644
--- a/packages/SystemUI/res/values-el-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-el-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"χωρίς σύνδ. σε Διαδ."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: συνδέθηκε"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Χωρίς σύνδ. σε Διαδ."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: συνδέθηκε"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 179290e..4fd5e30 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -35,11 +35,9 @@
     <!-- no translation found for status_bar_settings_wifi_button (1733928151698311923) -->
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Λειτουργία πτήσης"</string>
-    <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Προσανατολ. οθόνης κλειδώματος"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Κλείδωμα προσανατολ. οθόνης"</string>
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ΣΙΓΑΣΗ"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"ΑΥΤΟΜ."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Ειδοποιήσεις"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Πρόσφατα"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Δεν υπάρχουν πρόσφατες εφαρμογές."</string>
diff --git a/packages/SystemUI/res/values-en-rGB-xlarge/strings.xml b/packages/SystemUI/res/values-en-rGB-xlarge/strings.xml
index d3483a2..b6a9844 100644
--- a/packages/SystemUI/res/values-en-rGB-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"No Internet conn."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: Connected"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"No Internet connection"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi connected"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 332f95e..25bceb8 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Airplane mode"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Lock screen orientation"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notifications"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Recent"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml b/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml
index 3c6b04f..bf627f4 100644
--- a/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"no hay conexión a Internet"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: conectado"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Sin conexión a Int."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"WiFi conectado"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 1acc8ce..20c9484 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Bloq orient de pant"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"SILENC"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificaciones"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Reciente"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"No hay aplicaciones recientes."</string>
diff --git a/packages/SystemUI/res/values-es-xlarge/strings.xml b/packages/SystemUI/res/values-es-xlarge/strings.xml
index 788971d..935fdbc 100644
--- a/packages/SystemUI/res/values-es-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-es-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"sin conexión"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"WiFi: conectado"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Sin conexión a Internet"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Con conexión WiFi"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index b4ee8a9..9e5ede4 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Bloquear orientación pantalla"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"SILENC"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificaciones"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Reciente"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"No hay aplicaciones recientes."</string>
diff --git a/packages/SystemUI/res/values-fa-xlarge/strings.xml b/packages/SystemUI/res/values-fa-xlarge/strings.xml
index 96ee495..5583f8e 100644
--- a/packages/SystemUI/res/values-fa-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-fa-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"اتصال اینترنت موجود نیست"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: وصل شد"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"اتصال اینترنت موجود نیست"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi متصل شد"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index b3dca8e..936236f 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"حالت هواپیما"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"قفل جهت صفحه"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"بیصدا"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"خودکار"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"اعلان ها"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"اخیر"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-fi-xlarge/strings.xml b/packages/SystemUI/res/values-fi-xlarge/strings.xml
index f149e02..b33d37e 100644
--- a/packages/SystemUI/res/values-fi-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-fi-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"ei internetyhteyttä"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wifi: yhdistetty"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Ei internetyhteyttä"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wifi yhdistetty"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index df2fe32..9b3632c 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lentokonetila"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Lukitse ruudun suunta"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ÄÄNET."</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Ilmoitukset"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Viimeisimmät"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-fr-xlarge/strings.xml b/packages/SystemUI/res/values-fr-xlarge/strings.xml
index cb6c350..76e7221 100644
--- a/packages/SystemUI/res/values-fr-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-fr-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Internet indisponible"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Connecté au Wi-Fi"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Aucune connexion Internet"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Connecté au Wi-Fi"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 74ce614..db28b04 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode Avion"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Verrouiller orientation écran"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUET"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notifications"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Récentes"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Aucune application récente"</string>
diff --git a/packages/SystemUI/res/values-hr-xlarge/strings.xml b/packages/SystemUI/res/values-hr-xlarge/strings.xml
index 6d94cf8..59c8e3a 100644
--- a/packages/SystemUI/res/values-hr-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-hr-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"nema internet veze"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: povezano"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Nema int. veze"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: povezano"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 646f5f4..e7f4869 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Način rada u zrakoplovu"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Zaključaj orijentaciju zaslona"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"Bez zv."</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Obavijesti"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Nedavni"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-hu-xlarge/strings.xml b/packages/SystemUI/res/values-hu-xlarge/strings.xml
index f57a8dc..510ba75 100644
--- a/packages/SystemUI/res/values-hu-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-hu-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"nincs internetkapcs."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: csatlakozva"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Nincs internetkapcs."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi csatlakozva"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 54d509c..e8a6521 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Repülőgép üzemmód"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Telefon tájolásának zárolása"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"NÉMÍT"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Értesítések"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Legutóbbiak"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-in-xlarge/strings.xml b/packages/SystemUI/res/values-in-xlarge/strings.xml
index 5dafb78..3be43db 100644
--- a/packages/SystemUI/res/values-in-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-in-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"tidak ada sambungan internet"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: tersambung"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Tidak ada sambungan internet"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi tersambung"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index ab77eb6..94f93fe 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode pesawat"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Kunci orientasi layar"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"BISUKAN"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"OTOMATIS"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Pemberitahuan"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Terbaru"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-it-xlarge/strings.xml b/packages/SystemUI/res/values-it-xlarge/strings.xml
index d3e0292..3b1e302 100644
--- a/packages/SystemUI/res/values-it-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-it-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"no conness. Internet"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: connesso"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"No connessione Internet"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: connesso"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 2e4c00d..91c6d31 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modalità aereo"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Blocca orientamento schermo"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notifiche"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Recenti"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Nessuna applicazione recente."</string>
diff --git a/packages/SystemUI/res/values-iw-xlarge/strings.xml b/packages/SystemUI/res/values-iw-xlarge/strings.xml
index e50760b..5356165 100644
--- a/packages/SystemUI/res/values-iw-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-iw-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"אין חיבור לאינטרנט"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: מחובר"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"אין חיבור לאינטרנט"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi מחובר"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 85bfa1d..9896ab0 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"מצב טיסה"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"נעל כיוון מסך"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"השתק"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"אוטומטי"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"התראות"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"אחרונות"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-ja-xlarge/strings.xml b/packages/SystemUI/res/values-ja-xlarge/strings.xml
index 08614b3..a6af041 100644
--- a/packages/SystemUI/res/values-ja-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-ja-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"インターネット接続なし"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: 接続済み"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"インターネット未接続"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi接続済み"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 4237f08..ad36f2b 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"機内モード"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"画面の向きをロック"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ミュート"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"オート"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"通知"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"新着"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"新着のアプリケーションはありません。"</string>
diff --git a/packages/SystemUI/res/values-ko-xlarge/strings.xml b/packages/SystemUI/res/values-ko-xlarge/strings.xml
index d27b9d1..4962b5e 100644
--- a/packages/SystemUI/res/values-ko-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-ko-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"인터넷에 연결되지 않음"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: 연결됨"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"인터넷에 연결되지 않음"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi 연결됨"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 7a45732..f0fec0e 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"비행기 모드"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"화면 방향 잠금"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"밝기 무시"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"자동"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"알림"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"최근 사용한 앱"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"최근에 사용한 애플리케이션이 없습니다."</string>
diff --git a/packages/SystemUI/res/values-lt-xlarge/strings.xml b/packages/SystemUI/res/values-lt-xlarge/strings.xml
index a634f83..398dbf2 100644
--- a/packages/SystemUI/res/values-lt-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-lt-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"nėra interneto ryšio"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"„Wi-Fi“: prisijungta"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Nėra interneto ryšio"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Prisijungta prie „Wi-Fi“"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 9116d55..f571515 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lėktuvo režimas"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Užfiksuoti ekrano orientaciją"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"NUTILD."</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Pranešimai"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Naujos"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-lv-xlarge/strings.xml b/packages/SystemUI/res/values-lv-xlarge/strings.xml
index 0cd6c7c..e647046 100644
--- a/packages/SystemUI/res/values-lv-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-lv-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"nav interneta sav."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: savienots"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Nav interneta sav."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Izv. sav. ar Wi-Fi"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 97bc69c..b0b2567 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -39,12 +39,10 @@
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Iestatījumi"</string>
     <!-- no translation found for status_bar_settings_wifi_button (1733928151698311923) -->
     <skip />
-    <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lidojuma režīms"</string>
+    <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lidmašīnas režīms"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Bloķēt ekrāna orientāciju"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"IZ. SK."</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Paziņojumi"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Nesens"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-nb-xlarge/strings.xml b/packages/SystemUI/res/values-nb-xlarge/strings.xml
index d39766a..726b061 100644
--- a/packages/SystemUI/res/values-nb-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-nb-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"ingen nettilkobl."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: tilkoblet"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Ingen Int.-tilkobl."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: tilkoblet"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index caafd2d..1e2e184 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flymodus"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Lås skjermretning"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEMPET"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Varslinger"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Nylig"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Ingen nylig brukte programmer."</string>
diff --git a/packages/SystemUI/res/values-nl-xlarge/strings.xml b/packages/SystemUI/res/values-nl-xlarge/strings.xml
index fceccc9..b2946ae 100644
--- a/packages/SystemUI/res/values-nl-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-nl-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"geen internetverb."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: verbonden"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Geen internetverb."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Verbonden via Wi-Fi"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index f7dc6b3d..db5abfc 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Vliegmodus"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Schermstand vergrendelen"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEMPEN"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Meldingen"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Recent"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Geen recente toepassingen."</string>
diff --git a/packages/SystemUI/res/values-pl-xlarge/strings.xml b/packages/SystemUI/res/values-pl-xlarge/strings.xml
index 57df2b0..8642ea4 100644
--- a/packages/SystemUI/res/values-pl-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-pl-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"brak połączenia internetowego"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: połączono"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Brak połączenia internetowego"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: połączono"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 72381dd..ef17a47 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Tryb samolotowy"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Zablokuj orientację ekranu"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"WYGAŚ"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Powiadomienia"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Najnowsze"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Brak ostatnio używanych aplikacji."</string>
diff --git a/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml b/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml
index ffab060..8ddb2b1 100644
--- a/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Sem ligação à internet"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: ligado"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Sem ligação internet"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi ligado"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 57b35d2..0c6220b 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo de avião"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Bloquear orientação do ecrã"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"D. SOM"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificações"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Recente"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Nenhuma aplicação recente."</string>
diff --git a/packages/SystemUI/res/values-pt-xlarge/strings.xml b/packages/SystemUI/res/values-pt-xlarge/strings.xml
index 6b7a359..103b2ad 100644
--- a/packages/SystemUI/res/values-pt-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-pt-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Sem conex. à intern."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: conectado"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Sem conex. à inter."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi conectado"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index a6cd18b..de098b7 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo para avião"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Bloquear orientação de tela"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUDO"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificações"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Recente"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Nenhum aplicativo recente."</string>
diff --git a/packages/SystemUI/res/values-ro-xlarge/strings.xml b/packages/SystemUI/res/values-ro-xlarge/strings.xml
index e9706ec..3a6edbd 100644
--- a/packages/SystemUI/res/values-ro-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-ro-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"fără conex. internet"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: conectată"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Fără conex. internet"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Res. Wi-Fi conectată"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 71baa13..ee8734e 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mod Avion"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Blocaţi orientarea ecranului"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEZAC."</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificări"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Recente"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-ru-xlarge/strings.xml b/packages/SystemUI/res/values-ru-xlarge/strings.xml
index 3387823..001f95c8 100644
--- a/packages/SystemUI/res/values-ru-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-ru-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"связь отсутствует"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: подключено"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Нет подключения"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: подключено"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index b4ebaa1..d5e2719 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим полета"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Закрепить ориентацию экрана"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ВЫКЛ."</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АВТО"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Уведомления"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Недавние"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Новых приложений нет"</string>
diff --git a/packages/SystemUI/res/values-sk-xlarge/strings.xml b/packages/SystemUI/res/values-sk-xlarge/strings.xml
index b467e00..2c74cc6 100644
--- a/packages/SystemUI/res/values-sk-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-sk-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"žiad. pripoj. k Internetu"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: pripojené"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"bez. pripoj. k Int."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: pripojené"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 6dd0597..12443b1 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Režim V lietadle"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Uzamknúť orientáciu obrazovky"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"STLMIŤ"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Upozornenia"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Najnovšie"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-sl-xlarge/strings.xml b/packages/SystemUI/res/values-sl-xlarge/strings.xml
index 025b5f2..59ce54f 100644
--- a/packages/SystemUI/res/values-sl-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-sl-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"brez inter. povez."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: pov. vzpost."</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Brez inter. povez."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi – povezano"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index 6ce6a4a..aa6cb12 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Način za letalo"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Zakleni usmerjenost zaslona"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"TIHO"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"SAMOD."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Obvestila"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Nedavno"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-sr-xlarge/strings.xml b/packages/SystemUI/res/values-sr-xlarge/strings.xml
index e437cc0..fe14153 100644
--- a/packages/SystemUI/res/values-sr-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-sr-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"нема интернет везе"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: повезан"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Нема интернет везе"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi је повезан"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 789832c..dfefae2 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим рада у авиону"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Закључавање положаја екрана"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"УГАСИ"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АУТОM."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Обавештења"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Недавно"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-sv-xlarge/strings.xml b/packages/SystemUI/res/values-sv-xlarge/strings.xml
index f7674b0..9379451 100644
--- a/packages/SystemUI/res/values-sv-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-sv-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"ingen Internetansl."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: ansluten"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Ingen Internetansl."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi-ansluten"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 27cf44a..6198aac 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flygplansläge"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Lås bildskärmens riktning"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"TYST"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Aviseringar"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Senaste"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Inga nya program."</string>
diff --git a/packages/SystemUI/res/values-th-xlarge/strings.xml b/packages/SystemUI/res/values-th-xlarge/strings.xml
index 9a26a77..7a66312 100644
--- a/packages/SystemUI/res/values-th-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-th-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"ไม่มีการเชื่อมต่ออินเทอร์เน็ต"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: เชื่อมต่อแล้ว"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"ไม่มีการเชื่อมต่ออินเทอร์เน็ต"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"เชื่อมต่อ Wi-Fi แล้ว"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index f53f4f1..8f226fb 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"โหมดใช้งานบนเครื่องบิน"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"ล็อกแนวหน้าจอ"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ปิดเสียง"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"อัตโนมัติ"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"การแจ้งเตือน"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"เมื่อเร็วๆ นี้"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-tl-xlarge/strings.xml b/packages/SystemUI/res/values-tl-xlarge/strings.xml
index 7d4dc65..225b545 100644
--- a/packages/SystemUI/res/values-tl-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-tl-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"walang internet"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: konektado"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Wala net connection"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Konektado ang WiFi"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 289b231..d0811c5 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Airplane mode"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Naka-lock na screen orientation"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Mga Notification"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Kamakailan"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-tr-xlarge/strings.xml b/packages/SystemUI/res/values-tr-xlarge/strings.xml
index 4727a71..f7d20b5e 100644
--- a/packages/SystemUI/res/values-tr-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-tr-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"internet bağl yok"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Kablosuz: bağlı"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"İnternet bağlnts yok"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Kablosuz bağlandı"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 8593a44..69e9f3e 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Uçak modu"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Ekran yönünü kilitle"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"KAPAT"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"OTOMTK"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Bildirimler"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"En Son Görevler"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"Hiçbir yeni uygulama yok."</string>
diff --git a/packages/SystemUI/res/values-uk-xlarge/strings.xml b/packages/SystemUI/res/values-uk-xlarge/strings.xml
index b5ffa7d..7645f5e 100644
--- a/packages/SystemUI/res/values-uk-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-uk-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"не підкл. до Інтерн."</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: з\'єднано"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Інтернет не під\'єдн."</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi під\'єднано"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 204c0e3..078d81a 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим польоту"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Заблокувати орієнтацію екрана"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ІГНОР."</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АВТОМ."</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Сповіщення"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Останні"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-vi-xlarge/strings.xml b/packages/SystemUI/res/values-vi-xlarge/strings.xml
index 072f56a..eba1b72 100644
--- a/packages/SystemUI/res/values-vi-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-vi-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"không có KN internet"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: đã kết nối"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Không có kết nối Internet"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Đã kết nối Wi-Fi"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 995c726..e47e519 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -41,10 +41,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Chế độ trên máy bay"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"Khóa hướng màn hình"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"TẮT TIẾNG"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"TỰ ĐỘNG"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Thông báo"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"Gần đây"</string>
     <!-- no translation found for recent_tasks_empty (1905484479067697884) -->
diff --git a/packages/SystemUI/res/values-zh-rCN-xlarge/strings.xml b/packages/SystemUI/res/values-zh-rCN-xlarge/strings.xml
index 272a009..59c094e 100644
--- a/packages/SystemUI/res/values-zh-rCN-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"无互联网连接"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi:已连接"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"未连接至互联网"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi 已连接"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 86621d9..03cd73d 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飞行模式"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"锁定屏幕浏览模式"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"静音"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"自动"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"通知"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"近期任务"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"没有最近使用的应用程序。"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml b/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml
index 44cae5c..6e52cdf 100644
--- a/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml
@@ -21,6 +21,6 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- no translation found for status_bar_clear_all_button (4722520806446512408) -->
     <skip />
-    <!-- outdated translation 2598368990139689031 -->     <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"沒有網際網路連線"</string>
-    <!-- outdated translation 8083149878235207364 -->     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-F:已連線"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"沒有網際網路連線"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi 已連線"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 2e92999..90d8e41 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -36,10 +36,8 @@
     <skip />
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飛行模式"</string>
     <string name="status_bar_settings_rotation_lock" msgid="8361452930058000609">"鎖定螢幕瀏覽模式"</string>
-    <!-- no translation found for status_bar_settings_mute_label (554682549917429396) -->
-    <skip />
-    <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) -->
-    <skip />
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"關閉"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"自動"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"通知"</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"最新的"</string>
     <string name="recent_tasks_empty" msgid="1905484479067697884">"沒有最近用過的應用程式。"</string>
diff --git a/packages/SystemUI/res/xml/bookmarks.xml b/packages/SystemUI/res/xml/bookmarks.xml
deleted file mode 100644
index dfaeeaf..0000000
--- a/packages/SystemUI/res/xml/bookmarks.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 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.
--->
-
-<bookmarks>
-    <bookmark
-        package="com.android.browser"
-        class="com.android.browser.BrowserActivity"
-        shortcut="b" />
-    <bookmark
-        package="com.android.contacts"
-        class="com.android.contacts.DialtactsContactsEntryActivity"
-        shortcut="c" />
-    <bookmark
-        package="com.android.email"
-        class="com.android.email.activity.Welcome"
-        shortcut="e" />
-    <bookmark
-        package="com.google.android.gm"
-        class="com.google.android.gm.ConversationListActivityGmail"
-        shortcut="g" />
-    <bookmark
-        package="com.android.im"
-        class="com.android.im.app.LandingPage"
-        shortcut="i" />
-    <bookmark
-        package="com.android.calendar"
-        class="com.android.calendar.LaunchActivity"
-        shortcut="l" />
-<!--
-    <bookmark
-        package="com.google.android.apps.maps"
-        class="com.google.android.maps.MapsActivity"
-        shortcut="m" />
--->
-    <bookmark
-        package="com.android.music"
-        class="com.android.music.MusicBrowserActivity"
-        shortcut="p" />
-    <bookmark
-        package="com.android.mms"
-        class="com.android.mms.ui.ConversationList"
-        shortcut="s" />
-</bookmarks>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/InputMethodButton.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/InputMethodButton.java
index aa431bc..ddce6bf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/InputMethodButton.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/InputMethodButton.java
@@ -162,7 +162,7 @@
     // * There are no explicitly enabled (by the user) subtypes of the IME, or the IME doesn't have
     // its subtypes at all
     private boolean needsToShowIMEButton() {
-        List<InputMethodInfo> imis = mImm.getInputMethodList();
+        List<InputMethodInfo> imis = mImm.getEnabledInputMethodList();
         final int size = imis.size();
         return size > 1
                 || (size == 1 && mImm.getEnabledInputMethodSubtypeList(imis.get(0)).size() > 1);
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 79bf9d0..c6984a4 100755
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -1330,38 +1330,40 @@
                 }
             } else if (keyCode == mShortcutKeyPressed) {
                 mShortcutKeyPressed = -1;
-                
                 if (mConsumeShortcutKeyUp) {
-                    // Consume the up-event
                     mConsumeShortcutKeyUp = false;
                     return true;
                 }
             }
+            return false;
         } else if (keyCode == KeyEvent.KEYCODE_APP_SWITCH) {
             if (!down) {
                 showRecentAppsDialog();
             }
             return true;
         }
-        
+
         // Shortcuts are invoked through Search+key, so intercept those here
-        if (mShortcutKeyPressed != -1 && !mConsumeShortcutKeyUp) {
-            if (down && repeatCount == 0 && !keyguardOn) {
-                final KeyCharacterMap kcm = event.getKeyCharacterMap();
-                Intent shortcutIntent = mShortcutManager.getIntent(kcm, keyCode, metaState);
-                if (shortcutIntent != null) {
-                    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                    mContext.startActivity(shortcutIntent);
-                    
-                    /*
-                     * We launched an app, so the up-event of the search key
-                     * should be consumed
-                     */
-                    if (mShortcutKeyPressed != -1) {
-                        mConsumeShortcutKeyUp = true;
+        // Any printing key that is chorded with Search should be consumed
+        // even if no shortcut was invoked.  This prevents text from being
+        // inadvertently inserted when using a keyboard that has built-in macro
+        // shortcut keys (that emit Search+x) and some of them are not registered.
+        if (mShortcutKeyPressed != -1) {
+            final KeyCharacterMap kcm = event.getKeyCharacterMap();
+            if (kcm.isPrintingKey(keyCode)) {
+                mConsumeShortcutKeyUp = true;
+                if (down && repeatCount == 0 && !keyguardOn) {
+                    Intent shortcutIntent = mShortcutManager.getIntent(kcm, keyCode, metaState);
+                    if (shortcutIntent != null) {
+                        shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        mContext.startActivity(shortcutIntent);
+                    } else {
+                        Slog.i(TAG, "Dropping unregistered shortcut key combination: "
+                                + KeyEvent.keyCodeToString(mShortcutKeyPressed)
+                                + "+" + KeyEvent.keyCodeToString(keyCode));
                     }
-                    return true;
                 }
+                return true;
             }
         }
 
diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java
index 1617a4e..5b4fb1f 100644
--- a/services/java/com/android/server/BackupManagerService.java
+++ b/services/java/com/android/server/BackupManagerService.java
@@ -107,6 +107,7 @@
     private static final int MSG_RUN_INITIALIZE = 5;
     private static final int MSG_RUN_GET_RESTORE_SETS = 6;
     private static final int MSG_TIMEOUT = 7;
+    private static final int MSG_RESTORE_TIMEOUT = 8;
 
     // Timeout interval for deciding that a bind or clear-data has taken too long
     static final long TIMEOUT_INTERVAL = 10 * 1000;
@@ -148,9 +149,9 @@
             return "BackupRequest{app=" + appInfo + " full=" + fullBackup + "}";
         }
     }
-    // Backups that we haven't started yet.
-    HashMap<ApplicationInfo,BackupRequest> mPendingBackups
-            = new HashMap<ApplicationInfo,BackupRequest>();
+    // Backups that we haven't started yet.  Keys are package names.
+    HashMap<String,BackupRequest> mPendingBackups
+            = new HashMap<String,BackupRequest>();
 
     // Pseudoname that we use for the Package Manager metadata "package"
     static final String PACKAGE_MANAGER_SENTINEL = "@pm@";
@@ -396,6 +397,21 @@
                 }
                 break;
             }
+
+            case MSG_RESTORE_TIMEOUT:
+            {
+                synchronized (BackupManagerService.this) {
+                    if (mActiveRestoreSession != null) {
+                        // Client app left the restore session dangling.  We know that it
+                        // can't be in the middle of an actual restore operation because
+                        // those are executed serially on this same handler thread.  Clean
+                        // up now.
+                        Slog.w(TAG, "Restore session timed out; aborting");
+                        post(mActiveRestoreSession.new EndRestoreRunnable(
+                                BackupManagerService.this, mActiveRestoreSession));
+                    }
+                }
+            }
             }
         }
     }
@@ -913,42 +929,48 @@
     // 'packageName' is null, *all* participating apps will be removed.
     void removePackageParticipantsLocked(String packageName) {
         if (DEBUG) Slog.v(TAG, "removePackageParticipantsLocked: " + packageName);
-        List<PackageInfo> allApps = null;
+        List<String> allApps = new ArrayList<String>();
         if (packageName != null) {
-            allApps = new ArrayList<PackageInfo>();
-            try {
-                int flags = PackageManager.GET_SIGNATURES;
-                allApps.add(mPackageManager.getPackageInfo(packageName, flags));
-            } catch (Exception e) {
-                // just skip it (???)
-            }
+            allApps.add(packageName);
         } else {
             // all apps with agents
-            allApps = allAgentPackages();
+            List<PackageInfo> knownPackages = allAgentPackages();
+            for (PackageInfo pkg : knownPackages) {
+                allApps.add(pkg.packageName);
+            }
         }
         removePackageParticipantsLockedInner(packageName, allApps);
     }
 
     private void removePackageParticipantsLockedInner(String packageName,
-            List<PackageInfo> agents) {
+            List<String> allPackageNames) {
         if (DEBUG) {
             Slog.v(TAG, "removePackageParticipantsLockedInner (" + packageName
-                    + ") removing " + agents.size() + " entries");
-            for (PackageInfo p : agents) {
+                    + ") removing " + allPackageNames.size() + " entries");
+            for (String p : allPackageNames) {
                 Slog.v(TAG, "    - " + p);
             }
         }
-        for (PackageInfo pkg : agents) {
-            if (packageName == null || pkg.packageName.equals(packageName)) {
-                int uid = pkg.applicationInfo.uid;
+        for (String pkg : allPackageNames) {
+            if (packageName == null || pkg.equals(packageName)) {
+                int uid = -1;
+                try {
+                    PackageInfo info = mPackageManager.getPackageInfo(packageName, 0);
+                    uid = info.applicationInfo.uid;
+                } catch (NameNotFoundException e) {
+                    // we don't know this package name, so just skip it for now
+                    continue;
+                }
+
                 HashSet<ApplicationInfo> set = mBackupParticipants.get(uid);
                 if (set != null) {
                     // Find the existing entry with the same package name, and remove it.
                     // We can't just remove(app) because the instances are different.
                     for (ApplicationInfo entry: set) {
-                        if (entry.packageName.equals(pkg.packageName)) {
+                        if (entry.packageName.equals(pkg)) {
+                            if (DEBUG) Slog.v(TAG, "  removing participant " + pkg);
                             set.remove(entry);
-                            removeEverBackedUp(pkg.packageName);
+                            removeEverBackedUp(pkg);
                             break;
                         }
                     }
@@ -998,7 +1020,11 @@
 
         // brute force but small code size
         List<PackageInfo> allApps = allAgentPackages();
-        removePackageParticipantsLockedInner(packageName, allApps);
+        List<String> allAppNames = new ArrayList<String>();
+        for (PackageInfo pkg : allApps) {
+            allAppNames.add(pkg.packageName);
+        }
+        removePackageParticipantsLockedInner(packageName, allAppNames);
         addPackageParticipantsLockedInner(packageName, allApps);
     }
 
@@ -1365,6 +1391,17 @@
             for (BackupRequest request : mQueue) {
                 Slog.d(TAG, "starting agent for backup of " + request);
 
+                // Verify that the requested app exists; it might be something that
+                // requested a backup but was then uninstalled.  The request was
+                // journalled and rather than tamper with the journal it's safer
+                // to sanity-check here.
+                try {
+                    mPackageManager.getPackageInfo(request.appInfo.packageName, 0);
+                } catch (NameNotFoundException e) {
+                    Slog.d(TAG, "Package does not exist; skipping");
+                    continue;
+                }
+
                 IBackupAgent agent = null;
                 int mode = (request.fullBackup)
                         ? IApplicationThread.BACKUP_MODE_FULL
@@ -1826,6 +1863,11 @@
                     } catch (RemoteException e) { /* can't happen */ }
                 }
 
+                // Furthermore we need to reset the session timeout clock
+                mBackupHandler.removeMessages(MSG_RESTORE_TIMEOUT);
+                mBackupHandler.sendEmptyMessageDelayed(MSG_RESTORE_TIMEOUT,
+                        TIMEOUT_RESTORE_INTERVAL);
+
                 // done; we can finally release the wakelock
                 mWakelock.release();
             }
@@ -2047,7 +2089,7 @@
                     // Add the caller to the set of pending backups.  If there is
                     // one already there, then overwrite it, but no harm done.
                     BackupRequest req = new BackupRequest(app, false);
-                    if (mPendingBackups.put(app, req) == null) {
+                    if (mPendingBackups.put(app.packageName, req) == null) {
                         // Journal this request in case of crash.  The put()
                         // operation returned null when this package was not already
                         // in the set; we want to avoid touching the disk redundantly.
@@ -2506,10 +2548,23 @@
                 return null;
             }
             mActiveRestoreSession = new ActiveRestoreSession(packageName, transport);
+            mBackupHandler.sendEmptyMessageDelayed(MSG_RESTORE_TIMEOUT, TIMEOUT_RESTORE_INTERVAL);
         }
         return mActiveRestoreSession;
     }
 
+    void clearRestoreSession(ActiveRestoreSession currentSession) {
+        synchronized(this) {
+            if (currentSession != mActiveRestoreSession) {
+                Slog.e(TAG, "ending non-current restore session");
+            } else {
+                if (DEBUG) Slog.v(TAG, "Clearing restore session and halting timeout");
+                mActiveRestoreSession = null;
+                mBackupHandler.removeMessages(MSG_RESTORE_TIMEOUT);
+            }
+        }
+    }
+
     // Note that a currently-active backup agent has notified us that it has
     // completed the given outstanding asynchronous backup/restore operation.
     public void opComplete(int token) {
@@ -2528,6 +2583,7 @@
         private String mPackageName;
         private IBackupTransport mRestoreTransport = null;
         RestoreSet[] mRestoreSets = null;
+        boolean mEnded = false;
 
         ActiveRestoreSession(String packageName, String transport) {
             mPackageName = packageName;
@@ -2542,6 +2598,10 @@
                 throw new IllegalArgumentException("Observer must not be null");
             }
 
+            if (mEnded) {
+                throw new IllegalStateException("Restore session already ended");
+            }
+
             long oldId = Binder.clearCallingIdentity();
             try {
                 if (mRestoreTransport == null) {
@@ -2569,6 +2629,10 @@
             if (DEBUG) Slog.d(TAG, "restoreAll token=" + Long.toHexString(token)
                     + " observer=" + observer);
 
+            if (mEnded) {
+                throw new IllegalStateException("Restore session already ended");
+            }
+
             if (mRestoreTransport == null || mRestoreSets == null) {
                 Slog.e(TAG, "Ignoring restoreAll() with no restore set");
                 return -1;
@@ -2600,6 +2664,10 @@
         public synchronized int restorePackage(String packageName, IRestoreObserver observer) {
             if (DEBUG) Slog.v(TAG, "restorePackage pkg=" + packageName + " obs=" + observer);
 
+            if (mEnded) {
+                throw new IllegalStateException("Restore session already ended");
+            }
+
             if (mPackageName != null) {
                 if (! mPackageName.equals(packageName)) {
                     Slog.e(TAG, "Ignoring attempt to restore pkg=" + packageName
@@ -2656,32 +2724,48 @@
             return 0;
         }
 
+        // Posted to the handler to tear down a restore session in a cleanly synchronized way
+        class EndRestoreRunnable implements Runnable {
+            BackupManagerService mBackupManager;
+            ActiveRestoreSession mSession;
+
+            EndRestoreRunnable(BackupManagerService manager, ActiveRestoreSession session) {
+                mBackupManager = manager;
+                mSession = session;
+            }
+
+            public void run() {
+                // clean up the session's bookkeeping
+                synchronized (mSession) {
+                    try {
+                        if (mSession.mRestoreTransport != null) {
+                            mSession.mRestoreTransport.finishRestore();
+                        }
+                    } catch (Exception e) {
+                        Slog.e(TAG, "Error in finishRestore", e);
+                    } finally {
+                        mSession.mRestoreTransport = null;
+                        mSession.mEnded = true;
+                    }
+                }
+
+                // clean up the BackupManagerService side of the bookkeeping
+                // and cancel any pending timeout message
+                mBackupManager.clearRestoreSession(mSession);
+            }
+        }
+
         public synchronized void endRestoreSession() {
             if (DEBUG) Slog.d(TAG, "endRestoreSession");
 
-            synchronized (this) {
-                long oldId = Binder.clearCallingIdentity();
-                try {
-                    if (mRestoreTransport != null) mRestoreTransport.finishRestore();
-                } catch (Exception e) {
-                    Slog.e(TAG, "Error in finishRestore", e);
-                } finally {
-                    mRestoreTransport = null;
-                    Binder.restoreCallingIdentity(oldId);
-                }
+            if (mEnded) {
+                throw new IllegalStateException("Restore session already ended");
             }
 
-            synchronized (BackupManagerService.this) {
-                if (BackupManagerService.this.mActiveRestoreSession == this) {
-                    BackupManagerService.this.mActiveRestoreSession = null;
-                } else {
-                    Slog.e(TAG, "ending non-current restore session");
-                }
-            }
+            mBackupHandler.post(new EndRestoreRunnable(BackupManagerService.this, this));
         }
     }
 
-
     @Override
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         synchronized (mQueueLock) {
diff --git a/services/java/com/android/server/NetworkManagementService.java b/services/java/com/android/server/NetworkManagementService.java
index 8dbd3e7..4290ce7 100644
--- a/services/java/com/android/server/NetworkManagementService.java
+++ b/services/java/com/android/server/NetworkManagementService.java
@@ -219,28 +219,6 @@
         }
     }
 
-    private static int stringToIpAddr(String addrString) throws UnknownHostException {
-        try {
-            String[] parts = addrString.split("\\.");
-            if (parts.length != 4) {
-                throw new UnknownHostException(addrString);
-            }
-
-            int a = Integer.parseInt(parts[0]) << 24;
-            int b = Integer.parseInt(parts[1]) << 16;
-            int c = Integer.parseInt(parts[2]) <<  8;
-            int d = Integer.parseInt(parts[3])      ;
-
-            return a | b | c | d;
-        } catch (NumberFormatException ex) {
-            throw new UnknownHostException(addrString);
-        }
-    }
-
-    public static String intToIpString(int i) {
-        return ((i >> 24 ) & 0xFF) + "." + ((i >> 16 ) & 0xFF) + "." + ((i >>  8 ) & 0xFF) + "." +
-               (i & 0xFF);
-    }
 
     //
     // INetworkManagementService members
@@ -288,18 +266,17 @@
             cfg = new InterfaceConfiguration();
             cfg.hwAddr = st.nextToken(" ");
             try {
-                cfg.ipAddr = stringToIpAddr(st.nextToken(" "));
+                cfg.addr = InetAddress.getByName(st.nextToken(" "));
             } catch (UnknownHostException uhe) {
                 Slog.e(TAG, "Failed to parse ipaddr", uhe);
-                cfg.ipAddr = 0;
             }
 
             try {
-                cfg.netmask = stringToIpAddr(st.nextToken(" "));
+                cfg.mask = InetAddress.getByName(st.nextToken(" "));
             } catch (UnknownHostException uhe) {
                 Slog.e(TAG, "Failed to parse netmask", uhe);
-                cfg.netmask = 0;
             }
+
             cfg.interfaceFlags = st.nextToken("]").trim() +"]";
         } catch (NoSuchElementException nsee) {
             throw new IllegalStateException(
@@ -312,7 +289,8 @@
     public void setInterfaceConfig(
             String iface, InterfaceConfiguration cfg) throws IllegalStateException {
         String cmd = String.format("interface setcfg %s %s %s %s", iface,
-                intToIpString(cfg.ipAddr), intToIpString(cfg.netmask), cfg.interfaceFlags);
+                cfg.addr.getHostAddress(), cfg.mask.getHostAddress(),
+                cfg.interfaceFlags);
         try {
             mConnector.doCommand(cmd);
         } catch (NativeDaemonConnectorException e) {
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java
index 4fbdb2d..0490190 100755
--- a/services/java/com/android/server/NotificationManagerService.java
+++ b/services/java/com/android/server/NotificationManagerService.java
@@ -332,8 +332,6 @@
                 boolean adbEnabled = (UsbManager.USB_FUNCTION_ENABLED.equals(
                                     extras.getString(UsbManager.USB_FUNCTION_ADB)));
                 updateAdbNotification(usbConnected && adbEnabled);
-            } else if (action.equals(UsbManager.ACTION_USB_DISCONNECTED)) {
-                updateAdbNotification(false);
             } else if (action.equals(Intent.ACTION_PACKAGE_REMOVED)
                     || action.equals(Intent.ACTION_PACKAGE_RESTARTED)
                     || (queryRestart=action.equals(Intent.ACTION_QUERY_PACKAGE_RESTART))
diff --git a/services/java/com/android/server/SystemBackupAgent.java b/services/java/com/android/server/SystemBackupAgent.java
index fff1874..a1f43b4 100644
--- a/services/java/com/android/server/SystemBackupAgent.java
+++ b/services/java/com/android/server/SystemBackupAgent.java
@@ -16,18 +16,16 @@
 
 package com.android.server;
 
-import android.app.backup.AbsoluteFileBackupHelper;
 import android.app.backup.BackupDataInput;
-import android.app.backup.BackupDataInputStream;
 import android.app.backup.BackupDataOutput;
-import android.app.backup.BackupHelper;
 import android.app.backup.BackupAgentHelper;
+import android.app.backup.WallpaperBackupHelper;
 import android.content.Context;
 import android.os.ParcelFileDescriptor;
 import android.os.ServiceManager;
-import android.os.SystemService;
 import android.util.Slog;
 
+
 import java.io.File;
 import java.io.IOException;
 
@@ -54,7 +52,7 @@
             // TODO: Send a delete for any stored wallpaper image in this case?
             files = new String[] { WALLPAPER_INFO };
         }
-        addHelper("wallpaper", new AbsoluteFileBackupHelper(SystemBackupAgent.this, files));
+        addHelper("wallpaper", new WallpaperBackupHelper(SystemBackupAgent.this, files));
         super.onBackup(oldState, data, newState);
     }
 
@@ -62,12 +60,11 @@
     public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)
             throws IOException {
         // On restore, we also support a previous data schema "system_files"
-        addHelper("wallpaper", new AbsoluteFileBackupHelper(SystemBackupAgent.this,
+        addHelper("wallpaper", new WallpaperBackupHelper(SystemBackupAgent.this,
                 new String[] { WALLPAPER_IMAGE, WALLPAPER_INFO }));
-        addHelper("system_files", new AbsoluteFileBackupHelper(SystemBackupAgent.this,
+        addHelper("system_files", new WallpaperBackupHelper(SystemBackupAgent.this,
                 new String[] { WALLPAPER_IMAGE }));
 
-        boolean success = false;
         try {
             super.onRestore(data, appVersionCode, newState);
 
@@ -75,7 +72,7 @@
                     Context.WALLPAPER_SERVICE);
             wallpaper.settingsRestored();
         } catch (IOException ex) {
-            // If there was a failure, delete everything for the wallpaper, this is too aggresive,
+            // If there was a failure, delete everything for the wallpaper, this is too aggressive,
             // but this is hopefully a rare failure.
             Slog.d(TAG, "restore failed", ex);
             (new File(WALLPAPER_IMAGE)).delete();
diff --git a/services/java/com/android/server/UsbService.java b/services/java/com/android/server/UsbService.java
index b90731f..a2bf75d 100644
--- a/services/java/com/android/server/UsbService.java
+++ b/services/java/com/android/server/UsbService.java
@@ -41,15 +41,33 @@
     private static final String TAG = UsbService.class.getSimpleName();
     private static final boolean LOG = false;
 
-    private static final String USB_CONFIGURATION_MATCH = "DEVPATH=/devices/virtual/switch/usb_configuration";
-    private static final String USB_FUNCTIONS_MATCH = "DEVPATH=/devices/virtual/usb_composite/";
-    private static final String USB_CONFIGURATION_PATH = "/sys/class/switch/usb_configuration/state";
-    private static final String USB_COMPOSITE_CLASS_PATH = "/sys/class/usb_composite";
+    private static final String USB_CONNECTED_MATCH =
+            "DEVPATH=/devices/virtual/switch/usb_connected";
+    private static final String USB_CONFIGURATION_MATCH =
+            "DEVPATH=/devices/virtual/switch/usb_configuration";
+    private static final String USB_FUNCTIONS_MATCH =
+            "DEVPATH=/devices/virtual/usb_composite/";
+    private static final String USB_CONNECTED_PATH =
+            "/sys/class/switch/usb_connected/state";
+    private static final String USB_CONFIGURATION_PATH =
+            "/sys/class/switch/usb_configuration/state";
+    private static final String USB_COMPOSITE_CLASS_PATH =
+            "/sys/class/usb_composite";
 
     private static final int MSG_UPDATE = 0;
 
-    private int mUsbConfig = 0;
-    private int mPreviousUsbConfig = 0;
+    // Delay for debouncing USB disconnects.
+    // We often get rapid connect/disconnect events when enabling USB functions,
+    // which need debouncing.
+    private static final int UPDATE_DELAY = 1000;
+
+    // current connected and configuration state
+    private int mConnected;
+    private int mConfiguration;
+
+    // last broadcasted connected and configuration state
+    private int mLastConnected = -1;
+    private int mLastConfiguration = -1;
 
     // lists of enabled and disabled USB functions
     private final ArrayList<String> mEnabledFunctions = new ArrayList<String>();
@@ -59,8 +77,6 @@
 
     private final Context mContext;
 
-    private PowerManagerService mPowerManager;
-
     private final UEventObserver mUEventObserver = new UEventObserver() {
         @Override
         public void onUEvent(UEventObserver.UEvent event) {
@@ -69,16 +85,23 @@
             }
 
             synchronized (this) {
-                String switchState = event.get("SWITCH_STATE");
-                if (switchState != null) {
+                String name = event.get("SWITCH_NAME");
+                String state = event.get("SWITCH_STATE");
+                if (name != null && state != null) {
                     try {
-                        int newConfig = Integer.parseInt(switchState);
-                        if (newConfig != mUsbConfig) {
-                            mPreviousUsbConfig = mUsbConfig;
-                            mUsbConfig = newConfig;
+                        int intState = Integer.parseInt(state);
+                        if ("usb_connected".equals(name)) {
+                            mConnected = intState;
                             // trigger an Intent broadcast
                             if (mSystemReady) {
-                                update();
+                                // debounce disconnects
+                                update(mConnected == 0);
+                            }
+                        } else if ("usb_configuration".equals(name)) {
+                            mConfiguration = intState;
+                            // trigger an Intent broadcast
+                            if (mSystemReady) {
+                                update(mConnected == 0);
                             }
                         }
                     } catch (NumberFormatException e) {
@@ -112,6 +135,7 @@
         mContext = context;
         init();  // set initial status
 
+        mUEventObserver.startObserving(USB_CONNECTED_MATCH);
         mUEventObserver.startObserving(USB_CONFIGURATION_MATCH);
         mUEventObserver.startObserving(USB_FUNCTIONS_MATCH);
     }
@@ -120,10 +144,15 @@
         char[] buffer = new char[1024];
 
         try {
-            FileReader file = new FileReader(USB_CONFIGURATION_PATH);
+            FileReader file = new FileReader(USB_CONNECTED_PATH);
             int len = file.read(buffer, 0, 1024);
             file.close();
-            mPreviousUsbConfig = mUsbConfig = Integer.valueOf((new String(buffer, 0, len)).trim());
+            mConnected = Integer.valueOf((new String(buffer, 0, len)).trim());
+
+            file = new FileReader(USB_CONFIGURATION_PATH);
+            len = file.read(buffer, 0, 1024);
+            file.close();
+            mConfiguration = Integer.valueOf((new String(buffer, 0, len)).trim());
 
         } catch (FileNotFoundException e) {
             Slog.w(TAG, "This kernel does not have USB configuration switch support");
@@ -190,13 +219,14 @@
                 initHostSupport();
             }
 
-            update();
+            update(false);
             mSystemReady = true;
         }
     }
 
-    private final void update() {
-        mHandler.sendEmptyMessage(MSG_UPDATE);
+    private final void update(boolean delayed) {
+        mHandler.removeMessages(MSG_UPDATE);
+        mHandler.sendEmptyMessageDelayed(MSG_UPDATE, delayed ? UPDATE_DELAY : 0);
     }
 
     private final Handler mHandler = new Handler() {
@@ -215,31 +245,26 @@
             switch (msg.what) {
                 case MSG_UPDATE:
                     synchronized (this) {
-                        final ContentResolver cr = mContext.getContentResolver();
+                        if (mConnected != mLastConnected || mConfiguration != mLastConfiguration) {
 
-                        if (Settings.Secure.getInt(cr,
-                                Settings.Secure.DEVICE_PROVISIONED, 0) == 0) {
-                            Slog.i(TAG, "Device not provisioned, skipping USB broadcast");
-                            return;
-                        }
-                        // Send an Intent containing connected/disconnected state
-                        // and the enabled/disabled state of all USB functions
-                        Intent intent;
-                        boolean usbConnected = (mUsbConfig != 0);
-                        if (usbConnected) {
-                            intent = new Intent(UsbManager.ACTION_USB_CONNECTED);
+                            final ContentResolver cr = mContext.getContentResolver();
+                            if (Settings.Secure.getInt(cr,
+                                    Settings.Secure.DEVICE_PROVISIONED, 0) == 0) {
+                                Slog.i(TAG, "Device not provisioned, skipping USB broadcast");
+                                return;
+                            }
+
+                            mLastConnected = mConnected;
+                            mLastConfiguration = mConfiguration;
+
+                            // send a sticky broadcast containing current USB state
+                            Intent intent = new Intent(UsbManager.ACTION_USB_STATE);
+                            intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
+                            intent.putExtra(UsbManager.USB_CONNECTED, mConnected != 0);
+                            intent.putExtra(UsbManager.USB_CONFIGURATION, mConfiguration);
                             addEnabledFunctions(intent);
-                        } else {
-                            intent = new Intent(UsbManager.ACTION_USB_DISCONNECTED);
+                            mContext.sendStickyBroadcast(intent);
                         }
-                        mContext.sendBroadcast(intent);
-
-                        // send a sticky broadcast for clients interested in both connect and disconnect
-                        intent = new Intent(UsbManager.ACTION_USB_STATE);
-                        intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
-                        intent.putExtra(UsbManager.USB_CONNECTED, usbConnected);
-                        addEnabledFunctions(intent);
-                        mContext.sendStickyBroadcast(intent);
                     }
                     break;
             }
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java
index 07813b0..ff703fd 100644
--- a/services/java/com/android/server/WifiService.java
+++ b/services/java/com/android/server/WifiService.java
@@ -58,6 +58,7 @@
 import android.text.TextUtils;
 import android.util.Slog;
 
+import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
@@ -347,8 +348,8 @@
                         ifcg = service.getInterfaceConfig(intf);
                         if (ifcg != null) {
                             /* IP/netmask: 192.168.43.1/255.255.255.0 */
-                            ifcg.ipAddr = (192 << 24) + (168 << 16) + (43 << 8) + 1;
-                            ifcg.netmask = (255 << 24) + (255 << 16) + (255 << 8) + 0;
+                            ifcg.addr = InetAddress.getByName("192.168.43.1");
+                            ifcg.mask = InetAddress.getByName("255.255.255.0");
                             ifcg.interfaceFlags = "[up]";
 
                             service.setInterfaceConfig(intf, ifcg);
diff --git a/services/java/com/android/server/connectivity/Tethering.java b/services/java/com/android/server/connectivity/Tethering.java
index 75a0e82..a93d596 100644
--- a/services/java/com/android/server/connectivity/Tethering.java
+++ b/services/java/com/android/server/connectivity/Tethering.java
@@ -51,6 +51,7 @@
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -127,14 +128,6 @@
     private boolean mUsbMassStorageOff;  // track the status of USB Mass Storage
     private boolean mUsbConnected;       // track the status of USB connection
 
-    // mUsbHandler message
-    static final int USB_STATE_CHANGE = 1;
-    static final int USB_DISCONNECTED = 0;
-    static final int USB_CONNECTED = 1;
-
-    // Time to delay before processing USB disconnect events
-    static final long USB_DISCONNECT_DELAY = 1000;
-
     public Tethering(Context context, Looper looper) {
         mContext = context;
         mLooper = looper;
@@ -481,25 +474,12 @@
         }
     }
 
-    private Handler mUsbHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            mUsbConnected = (msg.arg1 == USB_CONNECTED);
-            updateUsbStatus();
-        }
-    };
-
     private class StateReceiver extends BroadcastReceiver {
         public void onReceive(Context content, Intent intent) {
             String action = intent.getAction();
             if (action.equals(UsbManager.ACTION_USB_STATE)) {
-                // process connect events immediately, but delay handling disconnects
-                // to debounce USB configuration changes
-                boolean connected = intent.getExtras().getBoolean(UsbManager.USB_CONNECTED);
-                Message msg = Message.obtain(mUsbHandler, USB_STATE_CHANGE,
-                        (connected ? USB_CONNECTED : USB_DISCONNECTED), 0);
-                mUsbHandler.removeMessages(USB_STATE_CHANGE);
-                mUsbHandler.sendMessageDelayed(msg, connected ? 0 : USB_DISCONNECT_DELAY);
+                mUsbConnected = intent.getExtras().getBoolean(UsbManager.USB_CONNECTED);
+                updateUsbStatus();
             } else if (action.equals(Intent.ACTION_MEDIA_SHARED)) {
                 mUsbMassStorageOff = false;
                 updateUsbStatus();
@@ -585,16 +565,8 @@
                 try {
                     ifcg = service.getInterfaceConfig(iface);
                     if (ifcg != null) {
-                        String[] addr = USB_NEAR_IFACE_ADDR.split("\\.");
-                        ifcg.ipAddr = (Integer.parseInt(addr[0]) << 24) +
-                                (Integer.parseInt(addr[1]) << 16) +
-                                (Integer.parseInt(addr[2]) << 8) +
-                                (Integer.parseInt(addr[3]));
-                        addr = USB_NETMASK.split("\\.");
-                        ifcg.netmask = (Integer.parseInt(addr[0]) << 24) +
-                                (Integer.parseInt(addr[1]) << 16) +
-                                (Integer.parseInt(addr[2]) << 8) +
-                                (Integer.parseInt(addr[3]));
+                        ifcg.addr = InetAddress.getByName(USB_NEAR_IFACE_ADDR);
+                        ifcg.mask = InetAddress.getByName(USB_NETMASK);
                         if (enabled) {
                             ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up");
                         } else {
diff --git a/services/surfaceflinger/Android.mk b/services/surfaceflinger/Android.mk
index 74d1ac9..8a00a2e 100644
--- a/services/surfaceflinger/Android.mk
+++ b/services/surfaceflinger/Android.mk
@@ -35,7 +35,6 @@
 
 LOCAL_SHARED_LIBRARIES := \
 	libcutils \
-	libpixelflinger \
 	libhardware \
 	libutils \
 	libEGL \
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 80aef5f..5a0f115 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -83,8 +83,28 @@
             sharedClient, token, mBufferManager.getDefaultBufferCount(),
             getIdentity());
 
-    status_t err = mUserClientRef.setToken(userClient, lcblk, token);
 
+    sp<UserClient> ourClient(mUserClientRef.getClient());
+
+    /*
+     *  Here it is guaranteed that userClient != ourClient
+     *  (see UserClient::getTokenForSurface()).
+     *
+     *  We release the token used by this surface in ourClient below.
+     *  This should be safe to do so now, since this layer won't be attached
+     *  to this client, it should be okay to reuse that id.
+     *
+     *  If this causes problems, an other solution would be to keep a list
+     *  of all the {UserClient, token} ever used and release them when the
+     *  Layer is destroyed.
+     *
+     */
+
+    if (ourClient != 0) {
+        ourClient->detachLayer(this);
+    }
+
+    status_t err = mUserClientRef.setToken(userClient, lcblk, token);
     LOGE_IF(err != NO_ERROR,
             "ClientRef::setToken(%p, %p, %u) failed",
             userClient.get(), lcblk.get(), token);
@@ -226,9 +246,10 @@
 void Layer::setPerFrameData(hwc_layer_t* hwcl) {
     sp<GraphicBuffer> buffer(mBufferManager.getActiveBuffer());
     if (buffer == NULL) {
-        // this situation can happen if we ran out of memory for instance.
-        // not much we can do. continue to use whatever texture was bound
-        // to this context.
+        // this can happen if the client never drew into this layer yet,
+        // or if we ran out of memory. In that case, don't let
+        // HWC handle it.
+        hwcl->flags |= HWC_SKIP_LAYER;
         hwcl->handle = NULL;
         return;
     }
@@ -561,12 +582,20 @@
     }
 
     // we retired a buffer, which becomes the new front buffer
+
+    const bool noActiveBuffer = !mBufferManager.hasActiveBuffer();
     if (mBufferManager.setActiveBufferIndex(buf) < NO_ERROR) {
         LOGE("retireAndLock() buffer index (%d) out of range", int(buf));
         mPostedDirtyRegion.clear();
         return;
     }
 
+    if (noActiveBuffer) {
+        // we didn't have an active buffer, we need to recompute
+        // our visible region
+        recomputeVisibleRegions = true;
+    }
+
     sp<GraphicBuffer> newFrontBuffer(getBuffer(buf));
     if (newFrontBuffer != NULL) {
         // get the dirty region
@@ -868,6 +897,10 @@
     return result;
 }
 
+bool Layer::BufferManager::hasActiveBuffer() const {
+    return mActiveBuffer >= 0;
+}
+
 sp<GraphicBuffer> Layer::BufferManager::detachBuffer(size_t index)
 {
     BufferData* const buffers = mBufferData;
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h
index 30021d3..c367a8d 100644
--- a/services/surfaceflinger/Layer.h
+++ b/services/surfaceflinger/Layer.h
@@ -188,6 +188,8 @@
         size_t getActiveBufferIndex() const;
         // return the active buffer
         sp<GraphicBuffer> getActiveBuffer() const;
+        // return wether we have an active buffer
+        bool hasActiveBuffer() const;
         // return the active texture (or fail-over)
         Texture getActiveTexture() const;
         // frees resources associated with all buffers
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 61d08aa..a6b1422 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1023,6 +1023,8 @@
             glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
         }
         glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+        glLoadIdentity();
+        glMatrixMode(GL_MODELVIEW);
     }
 }
 
diff --git a/test-runner/src/android/test/ActivityUnitTestCase.java b/test-runner/src/android/test/ActivityUnitTestCase.java
index 6bd19a6..8aa8824 100644
--- a/test-runner/src/android/test/ActivityUnitTestCase.java
+++ b/test-runner/src/android/test/ActivityUnitTestCase.java
@@ -50,7 +50,6 @@
  * <li>{@link android.app.Activity#getTaskId()}</li>
  * <li>{@link android.app.Activity#isTaskRoot()}</li>
  * <li>{@link android.app.Activity#moveTaskToBack(boolean)}</li>
- * <li>{@link android.app.Activity#setPersistent(boolean)}</li>
  * </ul>
  * 
  * <p>The following methods may be called but will not do anything.  For test purposes, you can use 
diff --git a/tests/CoreTests/android/core/ArrayListTest.java b/tests/CoreTests/android/core/ArrayListTest.java
deleted file mode 100644
index 763bf99..0000000
--- a/tests/CoreTests/android/core/ArrayListTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.util.ArrayList;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * This test case tests several often used functionality of ArrayLists.
- */
-public class ArrayListTest extends TestCase {
-
-    @SuppressWarnings("unchecked")
-    @SmallTest
-    public void testArrayList() throws Exception {
-        ArrayList array = new ArrayList();
-        assertEquals(0, array.size());
-        assertTrue(array.isEmpty());
-
-        array.add(new Integer(0));
-        array.add(0, new Integer(1));
-        array.add(1, new Integer(2));
-        array.add(new Integer(3));
-        array.add(new Integer(1));
-
-        assertEquals(5, array.size());
-        assertFalse(array.isEmpty());
-
-        assertEquals(1, ((Integer) array.get(0)).intValue());
-        assertEquals(2, ((Integer) array.get(1)).intValue());
-        assertEquals(0, ((Integer) array.get(2)).intValue());
-        assertEquals(3, ((Integer) array.get(3)).intValue());
-        assertEquals(1, ((Integer) array.get(4)).intValue());
-
-        assertFalse(array.contains(null));
-        assertTrue(array.contains(new Integer(2)));
-        assertEquals(0, array.indexOf(new Integer(1)));
-        assertEquals(4, array.lastIndexOf(new Integer(1)));
-        assertTrue(array.indexOf(new Integer(5)) < 0);
-        assertTrue(array.lastIndexOf(new Integer(5)) < 0);
-
-
-        array.remove(1);
-        array.remove(1);
-
-        assertEquals(3, array.size());
-        assertFalse(array.isEmpty());
-        assertEquals(1, ((Integer) array.get(0)).intValue());
-        assertEquals(3, ((Integer) array.get(1)).intValue());
-        assertEquals(1, ((Integer) array.get(2)).intValue());
-
-        assertFalse(array.contains(null));
-        assertFalse(array.contains(new Integer(2)));
-        assertEquals(0, array.indexOf(new Integer(1)));
-        assertEquals(2, array.lastIndexOf(new Integer(1)));
-        assertTrue(array.indexOf(new Integer(5)) < 0);
-        assertTrue(array.lastIndexOf(new Integer(5)) < 0);
-
-        array.clear();
-
-        assertEquals(0, array.size());
-        assertTrue(array.isEmpty());
-        assertTrue(array.indexOf(new Integer(5)) < 0);
-        assertTrue(array.lastIndexOf(new Integer(5)) < 0);
-
-        ArrayList al = new ArrayList();
-
-        assertFalse(al.remove(null));
-        assertFalse(al.remove("string"));
-
-        al.add("string");
-        al.add(null);
-
-        assertTrue(al.remove(null));
-        assertTrue(al.remove("string"));
-    }
-}
-
diff --git a/tests/CoreTests/android/core/BooleanTest.java b/tests/CoreTests/android/core/BooleanTest.java
deleted file mode 100644
index 211947e..0000000
--- a/tests/CoreTests/android/core/BooleanTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests some basic functionality of Booleans.
- */
-public class BooleanTest extends TestCase {
-
-    @SmallTest
-    public void testBoolean() throws Exception {
-        Boolean a = new Boolean(true);
-        Boolean b = new Boolean("True");
-        Boolean c = new Boolean(false);
-        Boolean d = new Boolean("Yes");
-
-        assertEquals(a, b);
-        assertEquals(c, d);
-        assertTrue(a.booleanValue());
-        assertFalse(c.booleanValue());
-        assertEquals("true", a.toString());
-        assertEquals("false", c.toString());
-        assertEquals(Boolean.TRUE, a);
-        assertEquals(Boolean.FALSE, c);
-        assertSame(Boolean.valueOf(true), Boolean.TRUE);
-        assertSame(Boolean.valueOf(false), Boolean.FALSE);
-    }
-}
-
diff --git a/tests/CoreTests/android/core/BufferedInputStreamTest.java b/tests/CoreTests/android/core/BufferedInputStreamTest.java
deleted file mode 100644
index 1ad95a1..0000000
--- a/tests/CoreTests/android/core/BufferedInputStreamTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests to verify that simple functionality works for BufferedInputStreams.
- */
-public class BufferedInputStreamTest extends TestCase {
-
-    @SmallTest
-    public void testBufferedInputStream() throws Exception {
-        String str = "AbCdEfGhIjKlM\nOpQrStUvWxYz";
-        ByteArrayInputStream aa = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream ba = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream ca = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream da = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream ea = new ByteArrayInputStream(str.getBytes());
-
-        BufferedInputStream a = new BufferedInputStream(aa, 6);
-        try {
-            assertEquals(str, IOUtil.read(a));
-        } finally {
-            a.close();
-        }
-
-        BufferedInputStream b = new BufferedInputStream(ba, 7);
-        try {
-            assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
-        } finally {
-            b.close();
-        }
-
-        BufferedInputStream c = new BufferedInputStream(ca, 9);
-        try {
-            assertEquals("bdfhjl\nprtvxz", IOUtil.skipRead(c));
-        } finally {
-            c.close();
-        }
-
-        BufferedInputStream d = new BufferedInputStream(da, 9);
-        try {
-            assertEquals('A', d.read());
-            d.mark(15);
-            assertEquals('b', d.read());
-            assertEquals('C', d.read());
-            d.reset();
-            assertEquals('b', d.read());
-        } finally {
-            d.close();
-        }
-
-        BufferedInputStream e = new BufferedInputStream(ea, 11);
-        try {
-            // test that we can ask for more than is present, and that we'll get
-            // back only what is there.
-            assertEquals(str, IOUtil.read(e, 10000));
-        } finally {
-            e.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/BufferedOutputStreamTest.java b/tests/CoreTests/android/core/BufferedOutputStreamTest.java
deleted file mode 100644
index cd8ec08..0000000
--- a/tests/CoreTests/android/core/BufferedOutputStreamTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayOutputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests to verify that simple functionality works for BufferedOutputStreams.
- */
-public class BufferedOutputStreamTest extends TestCase {
-
-    @SmallTest
-    public void testBufferedOutputStream() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        ByteArrayOutputStream aa = new ByteArrayOutputStream();
-        BufferedOutputStream a = new BufferedOutputStream(aa, 15);
-        try {
-            a.write(str.getBytes(), 0, 26);
-            a.write('A');
-
-            assertEquals(26, aa.size());
-            assertEquals(aa.toString(), str);
-
-            a.flush();
-
-            assertEquals(27, aa.size());
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzA", aa.toString());
-        } finally {
-            a.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/BufferedReaderTest.java b/tests/CoreTests/android/core/BufferedReaderTest.java
deleted file mode 100644
index a94ca02..0000000
--- a/tests/CoreTests/android/core/BufferedReaderTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.BufferedReader;
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Tests to verify that simple functionality works for BufferedReaders.
- */
-public class BufferedReaderTest extends TestCase {
-
-    @MediumTest
-    public void testBufferedReader() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        StringReader aa = new StringReader(str);
-        StringReader ba = new StringReader(str);
-        StringReader ca = new StringReader(str);
-        StringReader da = new StringReader(str);
-
-        BufferedReader a = new BufferedReader(aa, 5);
-        try {
-            assertEquals(str, IOUtil.read(a));
-        } finally {
-            a.close();
-        }
-
-        BufferedReader b = new BufferedReader(ba, 15);
-        try {
-            assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
-        } finally {
-            b.close();
-        }
-
-        BufferedReader c = new BufferedReader(ca);
-        try {
-            assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
-        } finally {
-            c.close();
-        }
-
-        BufferedReader d = new BufferedReader(da);
-        try {
-            assertEquals("AbCdEfGdEfGhIjKlMnOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
-        } finally {
-            d.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/BufferedWriterTest.java b/tests/CoreTests/android/core/BufferedWriterTest.java
deleted file mode 100644
index 12dfcef2..0000000
--- a/tests/CoreTests/android/core/BufferedWriterTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.BufferedWriter;
-import java.io.StringWriter;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Some basic tests for BufferedWriter.
- */
-public class BufferedWriterTest extends TestCase {
-
-    @SmallTest
-    public void testBufferedWriter() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        StringWriter aa = new StringWriter();
-
-        BufferedWriter a = new BufferedWriter(aa, 20);
-        try {
-            a.write(str.toCharArray(), 0, 26);
-            a.write('X');
-            a.flush();
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", aa.toString());
-
-            a.write("alphabravodelta", 5, 5);
-            a.flush();
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravo", aa.toString());
-            a.newLine();
-            a.write("I'm on a new line.");
-            a.flush();
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravo\nI\'m on a new line.", aa.toString());
-        } finally {
-            a.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/ByteArrayInputStreamTest.java b/tests/CoreTests/android/core/ByteArrayInputStreamTest.java
deleted file mode 100644
index d964102..0000000
--- a/tests/CoreTests/android/core/ByteArrayInputStreamTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests to verify that simple functionality works for ByteArrayInputStreams.
- */
-public class ByteArrayInputStreamTest extends TestCase {
-
-    @SmallTest
-    public void testByteArrayInputStream() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-
-        ByteArrayInputStream a = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream b = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream c = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream d = new ByteArrayInputStream(str.getBytes());
-
-        assertEquals(str, IOUtil.read(a));
-        assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
-        assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
-        assertEquals("AbCdEfGdEfGhIjKlMnOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
-    }
-}
diff --git a/tests/CoreTests/android/core/ByteArrayOutputStreamTest.java b/tests/CoreTests/android/core/ByteArrayOutputStreamTest.java
deleted file mode 100644
index e605214..0000000
--- a/tests/CoreTests/android/core/ByteArrayOutputStreamTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayOutputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * A basic test for ByteArrayOutputStraem.
- */
-public class ByteArrayOutputStreamTest extends TestCase {
-
-    @SmallTest
-    public void testByteArrayOutputStream() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        ByteArrayOutputStream a = new ByteArrayOutputStream();
-        ByteArrayOutputStream b = new ByteArrayOutputStream(10);
-
-        a.write(str.getBytes(), 0, 26);
-        a.write('X');
-        a.writeTo(b);
-
-        assertEquals(27, a.size());
-        assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", a.toString());
-        assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", b.toString());
-    }
-}
diff --git a/tests/CoreTests/android/core/CharArrayReaderTest.java b/tests/CoreTests/android/core/CharArrayReaderTest.java
deleted file mode 100644
index 50a217a..0000000
--- a/tests/CoreTests/android/core/CharArrayReaderTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.CharArrayReader;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Basic tests for CharArrayReader.
- */
-public class CharArrayReaderTest extends TestCase {
-
-    @SmallTest
-    public void testCharArrayReader() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        CharArrayReader a = new CharArrayReader(str.toCharArray());
-        CharArrayReader b = new CharArrayReader(str.toCharArray());
-        CharArrayReader c = new CharArrayReader(str.toCharArray());
-        CharArrayReader d = new CharArrayReader(str.toCharArray());
-
-        assertEquals(str, IOUtil.read(a));
-        assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
-        assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
-        assertEquals("AbCdEfGdEfGhIjKlMnOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
-    }
-}
diff --git a/tests/CoreTests/android/core/ChecksumTest.java b/tests/CoreTests/android/core/ChecksumTest.java
deleted file mode 100644
index 24fb739..0000000
--- a/tests/CoreTests/android/core/ChecksumTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.util.zip.Adler32;
-import java.util.zip.CRC32;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * tests for CRC32 and Adler32 checksum algorithms.
- */
-public class ChecksumTest extends TestCase {
-
-    @SmallTest
-    public void testChecksum() throws Exception {
-        /*
-         * Values computed experimentally, using C interfaces.
-         */
-        adler32Test(mTestString, 0x9de210dbL);
-        cRC32Test(mTestString, 0x939f04afL);
-
-        // Test for issue 1016037
-        wrongChecksumWithAdler32Test();
-    }
-
-    private void adler32Test(byte[] values, long expected) {
-        Adler32 adler = new Adler32();
-
-        // try it all at once
-        adler.update(values);
-        assertEquals(adler.getValue(), expected);
-
-        // try resetting and computing one byte at a time
-        adler.reset();
-        for (int i = 0; i < values.length; i++) {
-            adler.update(values[i]);
-        }
-        assertEquals(adler.getValue(), expected);
-    }
-
-    private void cRC32Test(byte[] values, long expected) {
-        CRC32 crc = new CRC32();
-
-        // try it all at once
-        crc.update(values);
-        assertEquals(crc.getValue(), expected);
-
-        // try resetting and computing one byte at a time
-        crc.reset();
-        for (int i = 0; i < values.length; i++) {
-            crc.update(values[i]);
-        }
-        assertEquals(crc.getValue(), expected);
-    }
-
-    // "The quick brown fox jumped over the lazy dogs\n"
-    private static byte[] mTestString = {
-            0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63,
-            0x6b, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x20,
-            0x66, 0x6f, 0x78, 0x20, 0x6a, 0x75, 0x6d, 0x70,
-            0x65, 0x64, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20,
-            0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x7a, 0x79,
-            0x20, 0x64, 0x6f, 0x67, 0x73, 0x2e, 0x0a
-    };
-
-
-    // Test for issue 1016037
-    private void wrongChecksumWithAdler32Test() {
-        byte[] bytes = {1, 0, 5, 0, 15, 0, 1, 11, 0, 1};
-        Adler32 adler = new Adler32();
-        adler.update(bytes);
-        long arrayChecksum = adler.getValue();
-        adler.reset();
-        for (int i = 0; i < bytes.length; i++) {
-            adler.update(bytes[i]);
-        }
-        assertEquals("Checksums not equal: expected: " + arrayChecksum +
-                " actual: " + adler.getValue(), arrayChecksum, adler.getValue());
-    }
-}
-
diff --git a/tests/CoreTests/android/core/DataInputStreamTest.java b/tests/CoreTests/android/core/DataInputStreamTest.java
deleted file mode 100644
index ca801d6..0000000
--- a/tests/CoreTests/android/core/DataInputStreamTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class DataInputStreamTest extends TestCase {
-
-    @SmallTest
-    public void testDataInputStream() throws Exception {
-        String str = "AbCdEfGhIjKlM\nOpQ\rStUvWxYz";
-        ByteArrayInputStream aa = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream ba = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream ca = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream da = new ByteArrayInputStream(str.getBytes());
-
-        DataInputStream a = new DataInputStream(aa);
-        try {
-            assertEquals(str, IOUtil.read(a));
-        } finally {
-            a.close();
-        }
-
-        DataInputStream b = new DataInputStream(ba);
-        try {
-            assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
-        } finally {
-            b.close();
-        }
-
-        DataInputStream c = new DataInputStream(ca);
-        try {
-            assertEquals("bdfhjl\np\rtvxz", IOUtil.skipRead(c));
-        } finally {
-            c.close();
-        }
-
-        DataInputStream d = new DataInputStream(da);
-        try {
-            assertEquals("AbCdEfGhIjKlM", d.readLine());
-            assertEquals("OpQ", d.readLine());
-            assertEquals("StUvWxYz", d.readLine());
-        } finally {
-            d.close();
-        }
-
-        ByteArrayOutputStream e = new ByteArrayOutputStream();
-        DataOutputStream f = new DataOutputStream(e);
-        try {
-            f.writeBoolean(true);
-            f.writeByte('a');
-            f.writeBytes("BCD");
-            f.writeChar('e');
-            f.writeChars("FGH");
-            f.writeUTF("ijklm");
-            f.writeDouble(1);
-            f.writeFloat(2);
-            f.writeInt(3);
-            f.writeLong(4);
-            f.writeShort(5);
-        } finally {
-            f.close();
-        }
-        
-        ByteArrayInputStream ga = new ByteArrayInputStream(e.toByteArray());
-        DataInputStream g = new DataInputStream(ga);
-
-        try {
-            assertTrue(g.readBoolean());
-            assertEquals('a', g.readByte());
-            assertEquals(2, g.skipBytes(2));
-            assertEquals('D', g.readByte());
-            assertEquals('e', g.readChar());
-            assertEquals('F', g.readChar());
-            assertEquals('G', g.readChar());
-            assertEquals('H', g.readChar());
-            assertEquals("ijklm", g.readUTF());
-            assertEquals(1, g.readDouble(), 0);
-            assertEquals(2f, g.readFloat(), 0f);
-            assertEquals(3, g.readInt());
-            assertEquals(4, g.readLong());
-            assertEquals(5, g.readShort());
-        } finally {
-            g.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/DataOutputStreamTest.java b/tests/CoreTests/android/core/DataOutputStreamTest.java
deleted file mode 100644
index 95502b3..0000000
--- a/tests/CoreTests/android/core/DataOutputStreamTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Basic tests for DataOutputStreams.
- */
-public class DataOutputStreamTest extends TestCase {
-
-    @SmallTest
-    public void testDataOutputStream() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        ByteArrayOutputStream aa = new ByteArrayOutputStream();
-        DataOutputStream a = new DataOutputStream(aa);
-
-        try {
-            a.write(str.getBytes(), 0, 26);
-            a.write('A');
-
-            assertEquals(27, aa.size());
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzA", aa.toString());
-
-            a.writeByte('B');
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzAB", aa.toString());
-            a.writeBytes("BYTES");
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzABBYTES", aa.toString());
-        } finally {
-            a.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/DatagramTest.java b/tests/CoreTests/android/core/DatagramTest.java
deleted file mode 100644
index 355a267..0000000
--- a/tests/CoreTests/android/core/DatagramTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.IOException;
-import java.net.DatagramPacket;
-import java.net.DatagramSocket;
-import java.net.InetAddress;
-import java.net.SocketTimeoutException;
-import android.test.suitebuilder.annotation.LargeTest;
-
-/**
- * Implements some simple tests for datagrams. Not as excessive as the core
- * tests, but good enough for the harness.
- */
-public class DatagramTest extends TestCase {
-
-    /**
-     * Helper class that listens to incoming datagrams and reflects them to the
-     * sender. Incoming datagram is interpreted as a String. It is uppercased
-     * before being sent back.
-     */
-
-    class Reflector extends Thread {
-        // Helper class for reflecting incoming datagrams. 
-        DatagramSocket socket;
-
-        boolean alive = true;
-
-        byte[] buffer = new byte[256];
-
-        DatagramPacket packet;
-
-        /**
-         * Main loop. Receives datagrams and reflects them.
-         */
-        @Override
-        public void run() {
-            try {
-                while (alive) {
-                    try {
-                        packet.setLength(buffer.length);
-                        socket.receive(packet);
-                        String s = stringFromPacket(packet);
-                        // System.out.println(s + " (from " + packet.getAddress() + ":" + packet.getPort() + ")");
-
-                        try {
-                            Thread.sleep(100);
-                        } catch (InterruptedException ex) {
-                            // Ignore.
-                        }
-
-                        stringToPacket(s.toUpperCase(), packet);
-
-                        packet.setAddress(InetAddress.getLocalHost());
-                        packet.setPort(2345);
-
-                        socket.send(packet);
-                    } catch (java.io.InterruptedIOException e) {
-                    }
-                }
-            } catch (java.io.IOException ex) {
-                ex.printStackTrace();
-            } finally {
-                socket.close();
-            }
-        }
-
-        /**
-         * Creates a new Relfector object for the given local address and port.
-         */
-        public Reflector(int port, InetAddress address) {
-            try {
-                packet = new DatagramPacket(buffer, buffer.length);
-                socket = new DatagramSocket(port, address);
-            } catch (IOException ex) {
-                throw new RuntimeException(
-                        "Creating datagram reflector failed", ex);
-            }
-        }
-    }
-
-    /**
-     * Converts a given datagram packet's contents to a String.
-     */
-    static String stringFromPacket(DatagramPacket packet) {
-        return new String(packet.getData(), 0, packet.getLength());
-    }
-
-    /**
-     * Converts a given String into a datagram packet.
-     */
-    static void stringToPacket(String s, DatagramPacket packet) {
-        byte[] bytes = s.getBytes();
-        System.arraycopy(bytes, 0, packet.getData(), 0, bytes.length);
-        packet.setLength(bytes.length);
-    }
-
-    /**
-     * Implements the main part of the Datagram test.
-     */
-    @LargeTest
-    public void testDatagram() throws Exception {
-
-        Reflector reflector = null;
-        DatagramSocket socket = null;
-
-        try {
-            // Setup the reflector, so we have a partner to send to
-            reflector = new Reflector(1234, InetAddress.getLocalHost());
-            reflector.start();
-
-            byte[] buffer = new byte[256];
-
-            DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
-            socket = new DatagramSocket(2345, InetAddress.getLocalHost());
-
-            // Send ten simple packets and check for the expected responses.
-            for (int i = 1; i <= 10; i++) {
-                String s = "Hello, Android world #" + i + "!";
-                stringToPacket(s, packet);
-
-                packet.setAddress(InetAddress.getLocalHost());
-                packet.setPort(1234);
-
-                socket.send(packet);
-
-                try {
-                    Thread.sleep(100);
-                } catch (InterruptedException ex) {
-                    // Ignore.
-                }
-
-                packet.setLength(buffer.length);
-                socket.receive(packet);
-                String t = stringFromPacket(packet);
-                // System.out.println(t + " (from " + packet.getAddress() + ":" + packet.getPort() + ")");
-
-                assertEquals(s.toUpperCase(), t);
-            }
-        } finally {
-            if (reflector != null) {
-                reflector.alive = false;
-            }
-
-            if (socket != null) {
-                socket.close();
-            }
-        }
-    }
-
-    // Regression test for issue 1018003: DatagramSocket ignored a set timeout.
-    @LargeTest
-    public void testDatagramSocketSetSOTimeout() throws Exception {
-        DatagramSocket sock = null;
-        int timeout = 5000;
-        long start = System.currentTimeMillis();
-        try {
-            sock = new DatagramSocket();
-            DatagramPacket pack = new DatagramPacket(new byte[100], 100);
-            sock.setSoTimeout(timeout);
-            sock.receive(pack);
-        } catch (SocketTimeoutException e) {
-            // expected
-            long delay = System.currentTimeMillis() - start;
-            if (Math.abs(delay - timeout) > 1000) {
-                fail("timeout was not accurate. expected: " + timeout
-                        + " actual: " + delay + " miliseconds.");
-            }
-        } finally {
-            if (sock != null) {
-                sock.close();
-            }
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/DeflateTest.java b/tests/CoreTests/android/core/DeflateTest.java
deleted file mode 100644
index d68d697..0000000
--- a/tests/CoreTests/android/core/DeflateTest.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.UnsupportedEncodingException;
-import java.util.zip.DataFormatException;
-import java.util.zip.Deflater;
-import java.util.zip.Inflater;
-import android.test.suitebuilder.annotation.LargeTest;
-
-public class DeflateTest extends TestCase {
-
-    @LargeTest
-    public void testDeflate() throws Exception {
-        simpleTest();
-
-        bigTest(0, 1738149618);
-        bigTest(1, 934350518);
-        bigTest(2, -532869390);
-    }
-
-    /*
-     * Simple inflate/deflate test, taken from the reference docs for the
-     * Inflater/Deflater classes.
-     */
-    private void simpleTest()
-            throws UnsupportedEncodingException, DataFormatException {
-        // Encode a String into bytes
-        String inputString = "blahblahblah??";
-        byte[] input = inputString.getBytes("UTF-8");
-
-        // Compress the bytes
-        byte[] output = new byte[100];
-        Deflater compresser = new Deflater();
-        compresser.setInput(input);
-        compresser.finish();
-        int compressedDataLength = compresser.deflate(output);
-
-        // Decompress the bytes
-        Inflater decompresser = new Inflater();
-        decompresser.setInput(output, 0, compressedDataLength);
-        byte[] result = new byte[100];
-        int resultLength = decompresser.inflate(result);
-
-        // Decode the bytes into a String
-        String outputString = new String(result, 0, resultLength, "UTF-8");
-
-        assertEquals(inputString, outputString);
-        assertEquals(compresser.getAdler(), decompresser.getAdler());
-
-        decompresser.end();
-    }
-
-    /*
-     * "step" determines how compressible the data is.
-     *
-     * Note we must set "nowrap" to false, or the Adler-32 doesn't get
-     * computed.
-     */
-    private void bigTest(int step, int expectedAdler)
-            throws UnsupportedEncodingException, DataFormatException {
-        byte[] input = new byte[128 * 1024];
-        byte[] comp = new byte[128 * 1024 + 512];
-        byte[] output = new byte[128 * 1024 + 512];
-        Inflater inflater = new Inflater(false);
-        Deflater deflater = new Deflater(Deflater.BEST_COMPRESSION, false);
-
-        createSample(input, step);
-
-        compress(deflater, input, comp);
-        expand(inflater, comp, (int) deflater.getBytesWritten(), output);
-
-        assertEquals(inflater.getBytesWritten(), input.length);
-        assertEquals(deflater.getAdler(), inflater.getAdler());
-        assertEquals(deflater.getAdler(), expectedAdler);
-    }
-
-    /*
-     * Create a large data sample.
-     * stepStep = 0 --> >99% compression
-     * stepStep = 1 --> ~30% compression
-     * stepStep = 2 --> no compression
-     */
-    private void createSample(byte[] sample, int stepStep) {
-        byte val, step;
-        int i, j, offset;
-
-        assertTrue(sample.length >= 128 * 1024);
-
-        val = 0;
-        step = 1;
-        offset = 0;
-        for (i = 0; i < (128 * 1024) / 256; i++) {
-            for (j = 0; j < 256; j++) {
-                sample[offset++] = val;
-                val += step;
-            }
-
-            step += stepStep;
-        }
-    }
-
-    private static final int LOCAL_BUF_SIZE = 256;
-
-    /*
-     * Compress all data in "in" to "out".  We use a small window on input
-     * and output to exercise that part of the code.
-     *
-     * It's the caller's responsibility to ensure that "out" has enough
-     * space.
-     */
-    private void compress(Deflater deflater, byte[] inBuf, byte[] outBuf) {
-        int inCount = inBuf.length;        // use all
-        int inPosn;
-        int outPosn;
-
-        inPosn = outPosn = 0;
-
-        //System.out.println("### starting compress");
-
-        while (!deflater.finished()) {
-            int want = -1, got;
-
-            // only read if the input buffer is empty
-            if (deflater.needsInput() && inCount != 0) {
-                want = (inCount < LOCAL_BUF_SIZE) ? inCount : LOCAL_BUF_SIZE;
-
-                deflater.setInput(inBuf, inPosn, want);
-
-                inCount -= want;
-                inPosn += want;
-                if (inCount == 0) {
-                    deflater.finish();
-                }
-            }
-
-            // deflate to current position in output buffer
-            int compCount;
-
-            compCount = deflater.deflate(outBuf, outPosn, LOCAL_BUF_SIZE);
-            outPosn += compCount;
-
-            //System.out.println("Compressed " + want + ", output " + compCount);
-        }
-    }
-
-    /*
-     * Expand data from "inBuf" to "outBuf".  Uses a small window to better
-     * exercise the code.
-     */
-    private void expand(Inflater inflater, byte[] inBuf, int inCount,
-            byte[] outBuf) throws DataFormatException {
-        int inPosn;
-        int outPosn;
-
-        inPosn = outPosn = 0;
-
-        //System.out.println("### starting expand, inCount is " + inCount);
-
-        while (!inflater.finished()) {
-            int want = -1, got;
-
-            // only read if the input buffer is empty
-            if (inflater.needsInput() && inCount != 0) {
-                want = (inCount < LOCAL_BUF_SIZE) ? inCount : LOCAL_BUF_SIZE;
-
-                inflater.setInput(inBuf, inPosn, want);
-
-                inCount -= want;
-                inPosn += want;
-            }
-
-            // inflate to current position in output buffer
-            int compCount;
-
-            compCount = inflater.inflate(outBuf, outPosn, LOCAL_BUF_SIZE);
-            outPosn += compCount;
-
-            //System.out.println("Expanded " + want + ", output " + compCount);
-        }
-    }
-}
-
diff --git a/tests/CoreTests/android/core/EnumTest.java b/tests/CoreTests/android/core/EnumTest.java
deleted file mode 100644
index d479491..0000000
--- a/tests/CoreTests/android/core/EnumTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests basic behavior of enums.
- */
-public class EnumTest extends TestCase {
-    enum MyEnum {
-        ZERO, ONE, TWO, THREE, FOUR {boolean isFour() {
-        return true;
-    }};
-
-        boolean isFour() {
-            return false;
-        }
-    }
-
-    enum MyEnumTwo {
-        FIVE, SIX
-    }
-
-    @SmallTest
-    public void testEnum() throws Exception {
-        assertTrue(MyEnum.ZERO.compareTo(MyEnum.ONE) < 0);
-        assertEquals(MyEnum.ZERO, MyEnum.ZERO);
-        assertTrue(MyEnum.TWO.compareTo(MyEnum.ONE) > 0);
-        assertTrue(MyEnum.FOUR.compareTo(MyEnum.ONE) > 0);
-
-        assertEquals("ONE", MyEnum.ONE.name());
-        assertSame(MyEnum.ONE.getDeclaringClass(), MyEnum.class);
-        assertSame(MyEnum.FOUR.getDeclaringClass(), MyEnum.class);
-
-        assertTrue(MyEnum.FOUR.isFour());
-
-        MyEnum e;
-
-        e = MyEnum.ZERO;
-
-        switch (e) {
-            case ZERO:
-                break;
-            default:
-                fail("wrong switch");
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/FileTest.java b/tests/CoreTests/android/core/FileTest.java
deleted file mode 100644
index 980452e..0000000
--- a/tests/CoreTests/android/core/FileTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Checks creation and deletion of a file.
- */
-public class FileTest extends TestCase {
-
-    @SmallTest
-    public void testFile() throws Exception {
-
-        File file = File.createTempFile(String.valueOf(System.currentTimeMillis()), null, null);
-
-        assertTrue(file.exists());
-        assertTrue(file.delete());
-        assertFalse(file.exists());
-    }
-}
diff --git a/tests/CoreTests/android/core/FloatDoubleTest.java b/tests/CoreTests/android/core/FloatDoubleTest.java
deleted file mode 100644
index 8c8455b..0000000
--- a/tests/CoreTests/android/core/FloatDoubleTest.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests for basic functionality of floats and doubles.
- */
-public class FloatDoubleTest extends TestCase {
-
-    @SmallTest
-    public void testFloatDouble() throws Exception {
-        Double d = Double.valueOf(1.0);
-        Float f = Float.valueOf(1.0f);
-        Object o = new Object();
-
-        assertFalse(f.equals(d));
-        assertFalse(d.equals(f));
-        assertFalse(f.equals(o));
-        assertFalse(d.equals(o));
-        assertFalse(f.equals(null));
-        assertFalse(d.equals(null));
-    }
-
-    @SmallTest
-    public void testFloat() throws Exception {
-        float pz = 0.0f;
-        float nz = -0.0f;
-
-        float pzero = 1.0f / Float.POSITIVE_INFINITY;
-        float nzero = 1.0f / Float.NEGATIVE_INFINITY;
-
-        // Everything compares as '=='
-        assertTrue(pz == pz);
-        assertTrue(pz == nz);
-        assertTrue(pz == pzero);
-        assertTrue(pz == nzero);
-
-        assertTrue(nz == pz);
-        assertTrue(nz == nz);
-        assertTrue(nz == pzero);
-        assertTrue(nz == nzero);
-
-        assertTrue(pzero == pz);
-        assertTrue(pzero == nz);
-        assertTrue(pzero == pzero);
-        assertTrue(pzero == nzero);
-
-        assertTrue(nzero == pz);
-        assertTrue(nzero == nz);
-        assertTrue(nzero == pzero);
-        assertTrue(nzero == nzero);
-
-        // +-0 are distinct as Floats
-        assertEquals(Float.valueOf(pz), Float.valueOf(pz));
-        assertTrue(!Float.valueOf(pz).equals(Float.valueOf(nz)));
-        assertEquals(Float.valueOf(pz), Float.valueOf(pzero));
-        assertTrue(!Float.valueOf(pz).equals(Float.valueOf(nzero)));
-
-        assertTrue(!Float.valueOf(nz).equals(Float.valueOf(pz)));
-        assertEquals(Float.valueOf(nz), Float.valueOf(nz));
-        assertTrue(!Float.valueOf(nz).equals(Float.valueOf(pzero)));
-        assertEquals(Float.valueOf(nz), Float.valueOf(nzero));
-
-        assertEquals(Float.valueOf(pzero), Float.valueOf(pz));
-        assertTrue(!Float.valueOf(pzero).equals(Float.valueOf(nz)));
-        assertEquals(Float.valueOf(pzero), Float.valueOf(pzero));
-        assertTrue(!Float.valueOf(pzero).equals(Float.valueOf(nzero)));
-
-        assertTrue(!Float.valueOf(nzero).equals(Float.valueOf(pz)));
-        assertEquals(Float.valueOf(nzero), Float.valueOf(nz));
-        assertTrue(!Float.valueOf(nzero).equals(Float.valueOf(pzero)));
-        assertEquals(Float.valueOf(nzero), Float.valueOf(nzero));
-
-        // Nan's compare as equal
-        Float sqrtm2 = Float.valueOf((float) Math.sqrt(-2.0f));
-        Float sqrtm3 = Float.valueOf((float) Math.sqrt(-3.0f));
-        assertEquals(sqrtm2, sqrtm3);
-    }
-
-    @SmallTest
-    public void testDouble() throws Exception {
-        double pz = 0.0;
-        double nz = -0.0;
-
-        double pzero = 1.0 / Double.POSITIVE_INFINITY;
-        double nzero = 1.0 / Double.NEGATIVE_INFINITY;
-
-        // Everything compares as '=='
-        assertTrue(pz == pz);
-        assertTrue(pz == nz);
-        assertTrue(pz == pzero);
-        assertTrue(pz == nzero);
-
-        assertTrue(nz == pz);
-        assertTrue(nz == nz);
-        assertTrue(nz == pzero);
-        assertTrue(nz == nzero);
-
-        assertTrue(pzero == pz);
-        assertTrue(pzero == nz);
-        assertTrue(pzero == pzero);
-        assertTrue(pzero == nzero);
-
-        assertTrue(nzero == pz);
-        assertTrue(nzero == nz);
-        assertTrue(nzero == pzero);
-        assertTrue(nzero == nzero);
-
-        // +-0 are distinct as Doubles
-        assertEquals(Double.valueOf(pz), Double.valueOf(pz));
-        assertTrue(!Double.valueOf(pz).equals(Double.valueOf(nz)));
-        assertEquals(Double.valueOf(pz), Double.valueOf(pzero));
-        assertTrue(!Double.valueOf(pz).equals(Double.valueOf(nzero)));
-
-        assertTrue(!Double.valueOf(nz).equals(Double.valueOf(pz)));
-        assertEquals(Double.valueOf(nz), Double.valueOf(nz));
-        assertTrue(!Double.valueOf(nz).equals(Double.valueOf(pzero)));
-        assertEquals(Double.valueOf(nz), Double.valueOf(nzero));
-
-        assertEquals(Double.valueOf(pzero), Double.valueOf(pz));
-        assertTrue(!Double.valueOf(pzero).equals(Double.valueOf(nz)));
-        assertEquals(Double.valueOf(pzero), Double.valueOf(pzero));
-        assertTrue(!Double.valueOf(pzero).equals(Double.valueOf(nzero)));
-
-        assertTrue(!Double.valueOf(nzero).equals(Double.valueOf(pz)));
-        assertEquals(Double.valueOf(nzero), Double.valueOf(nz));
-        assertTrue(!Double.valueOf(nzero).equals(Double.valueOf(pzero)));
-        assertEquals(Double.valueOf(nzero), Double.valueOf(nzero));
-
-        // Nan's compare as equal
-        Double sqrtm2 = Double.valueOf(Math.sqrt(-2.0));
-        Double sqrtm3 = Double.valueOf(Math.sqrt(-3.0));
-        assertEquals(sqrtm2, sqrtm3);
-    }
-}
diff --git a/tests/CoreTests/android/core/GZIPStreamTest.java b/tests/CoreTests/android/core/GZIPStreamTest.java
deleted file mode 100644
index dd56fb7..0000000
--- a/tests/CoreTests/android/core/GZIPStreamTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.GZIPOutputStream;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Deflates and inflates some test data with GZipStreams
- */
-public class GZIPStreamTest extends TestCase {
-
-    @MediumTest
-    public void testGZIPStream() throws Exception {
-        ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
-        createGZIP(bytesOut);
-
-        byte[] zipData;
-        zipData = bytesOut.toByteArray();
-
-        /*
-        FileOutputStream outFile = new FileOutputStream("/tmp/foo.gz");
-        outFile.write(zipData, 0, zipData.length);
-        outFile.close();
-        */
-
-        /*
-        FileInputStream inFile = new FileInputStream("/tmp/foo.gz");
-        int inputLength = inFile.available();
-        zipData = new byte[inputLength];
-        if (inFile.read(zipData) != inputLength)
-            throw new RuntimeException();
-        inFile.close();
-        */
-
-        ByteArrayInputStream bytesIn = new ByteArrayInputStream(zipData);
-        scanGZIP(bytesIn);
-    }
-
-    /*
-     * stepStep == 0 --> >99% compression
-     * stepStep == 1 --> ~30% compression
-     * stepStep == 2 --> no compression
-     */
-    static byte[] makeSampleFile(int stepStep) throws IOException {
-        byte[] sample = new byte[128 * 1024];
-        byte val, step;
-        int i, j, offset;
-
-        val = 0;
-        step = 1;
-        offset = 0;
-        for (i = 0; i < (128 * 1024) / 256; i++) {
-            for (j = 0; j < 256; j++) {
-                sample[offset++] = val;
-                val += step;
-            }
-
-            step += stepStep;
-        }
-
-        return sample;
-    }
-
-    static void createGZIP(ByteArrayOutputStream bytesOut) throws IOException {
-        GZIPOutputStream out = new GZIPOutputStream(bytesOut);
-        try {
-            byte[] input = makeSampleFile(1);
-            out.write(input, 0, input.length);
-            //out.finish();
-        } finally {
-            out.close();
-        }
-    }
-
-    static void scanGZIP(ByteArrayInputStream bytesIn) throws IOException {
-        GZIPInputStream in = new GZIPInputStream(bytesIn);
-        try {
-            ByteArrayOutputStream contents = new ByteArrayOutputStream();
-            byte[] buf = new byte[4096];
-            int len, totalLen = 0;
-
-            while ((len = in.read(buf)) > 0) {
-                contents.write(buf, 0, len);
-                totalLen += len;
-            }
-
-            assertEquals(totalLen, 128 * 1024);
-        } finally {
-            in.close();
-        }
-    }
-}
-
diff --git a/tests/CoreTests/android/core/HashMapTest.java b/tests/CoreTests/android/core/HashMapTest.java
deleted file mode 100644
index 99b2a47..0000000
--- a/tests/CoreTests/android/core/HashMapTest.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Test cases for Hashmap.
- */
-public class HashMapTest extends TestCase {
-    private static final Integer ONE = new Integer(1);
-    private static final Integer TWO = new Integer(2);
-    private static final Integer THREE = new Integer(3);
-    private static final Integer FOUR = new Integer(4);
-
-    private void addItems(HashMap map) {
-        map.put("one", ONE);
-        map.put("two", TWO);
-        map.put("three", THREE);
-        map.put("four", FOUR);
-
-        assertEquals(4, map.size());
-
-        assertEquals(ONE, map.get("one"));
-        assertEquals(TWO, map.get("two"));
-        assertEquals(THREE, map.get("three"));
-        assertEquals(FOUR, map.get("four"));
-    }
-
-    /**
-     * checks if simple adding elements works.
-     */
-    @SmallTest
-    public void testAdd() throws Exception {
-        HashMap map = new HashMap();
-        addItems(map);
-    }
-
-    /**
-     * checks if clearing the map works.
-     */
-    @SmallTest
-    public void testClear() throws Exception {
-        HashMap map = new HashMap();
-
-        addItems(map);
-        map.clear();
-        assertEquals(0, map.size());
-    }
-
-    /**
-     * checks if removing an elemt works.
-     */
-    @SmallTest
-    public void testRemove() throws Exception {
-        HashMap map = new HashMap();
-
-        addItems(map);
-        map.remove("three");
-        assertNull(map.get("three"));
-    }
-
-    /**
-     * does some manipulation with a filled HashMap and checks
-     * if they work as intended
-     */
-    @SmallTest
-    public void testManipulate() throws Exception {
-        HashMap map = new HashMap();
-
-        assertTrue(map.isEmpty());
-        assertEquals(0, map.size());
-        assertNull(map.get(null));
-        assertNull(map.get("one"));
-        assertFalse(map.containsKey("one"));
-        assertFalse(map.containsValue(new Integer(1)));
-        assertNull(map.remove(null));
-        assertNull(map.remove("one"));
-
-        assertNull(map.put(null, new Integer(-1)));
-        assertNull(map.put("one", new Integer(1)));
-        assertNull(map.put("two", new Integer(2)));
-        assertNull(map.put("three", new Integer(3)));
-        assertEquals(-1, ((Integer) map.put(null, new Integer(0))).intValue());
-
-        assertEquals(0, ((Integer) map.get(null)).intValue());
-        assertEquals(1, ((Integer) map.get("one")).intValue());
-        assertEquals(2, ((Integer) map.get("two")).intValue());
-        assertEquals(3, ((Integer) map.get("three")).intValue());
-
-        assertTrue(map.containsKey(null));
-        assertTrue(map.containsKey("one"));
-        assertTrue(map.containsKey("two"));
-        assertTrue(map.containsKey("three"));
-
-        assertTrue(map.containsValue(new Integer(0)));
-        assertTrue(map.containsValue(new Integer(1)));
-        assertTrue(map.containsValue(new Integer(2)));
-        assertTrue(map.containsValue(new Integer(3)));
-
-        assertEquals(0, ((Integer) map.remove(null)).intValue());
-        assertEquals(1, ((Integer) map.remove("one")).intValue());
-        assertEquals(2, ((Integer) map.remove("two")).intValue());
-        assertEquals(3, ((Integer) map.remove("three")).intValue());
-
-        assertTrue(map.isEmpty());
-        assertEquals(0, map.size());
-        assertNull(map.get(null));
-        assertNull(map.get("one"));
-        assertFalse(map.containsKey("one"));
-        assertFalse(map.containsValue(new Integer(1)));
-        assertNull(map.remove(null));
-        assertNull(map.remove("one"));
-    }
-
-    /**
-     * checks if the key iterator of HashMaps work.
-     */
-    @SmallTest
-    public void testKeyIterator() throws Exception {
-        HashMap map = new HashMap();
-
-        boolean[] slots = new boolean[4];
-
-        addItems(map);
-
-        Iterator iter = map.keySet().iterator();
-
-        while (iter.hasNext()) {
-            int slot = 0;
-            Object key = iter.next();
-
-            if (key.equals("one"))
-                slot = 0;
-            else if (key.equals("two"))
-                slot = 1;
-            else if (key.equals("three"))
-                slot = 2;
-            else if (key.equals("four"))
-                slot = 3;
-            else
-                fail("Unkown key in hashmap");
-
-            if (slots[slot])
-                fail("key returned more than once");
-            else
-                slots[slot] = true;
-        }
-
-        assertTrue(slots[0]);
-        assertTrue(slots[1]);
-        assertTrue(slots[2]);
-        assertTrue(slots[3]);
-    }
-
-    /**
-     * checks if the value iterator works.
-     */
-    @SmallTest
-    public void testValueIterator() throws Exception {
-        HashMap map = new HashMap();
-
-        boolean[] slots = new boolean[4];
-
-        addItems(map);
-
-        Iterator iter = map.values().iterator();
-
-        while (iter.hasNext()) {
-            int slot = 0;
-            Object value = iter.next();
-
-            if (value.equals(ONE))
-                slot = 0;
-            else if (value.equals(TWO))
-                slot = 1;
-            else if (value.equals(THREE))
-                slot = 2;
-            else if (value.equals(FOUR))
-                slot = 3;
-            else
-                fail("Unkown value in hashmap");
-
-            if (slots[slot])
-                fail("value returned more than once");
-            else
-                slots[slot] = true;
-        }
-
-        assertTrue(slots[0]);
-        assertTrue(slots[1]);
-        assertTrue(slots[2]);
-        assertTrue(slots[3]);
-    }
-
-    /**
-     * checks if the entry iterator works for HashMaps.
-     */
-    @SmallTest
-    public void testEntryIterator() throws Exception {
-        HashMap map = new HashMap();
-
-        boolean[] slots = new boolean[4];
-
-        addItems(map);
-
-        Iterator iter = map.entrySet().iterator();
-
-        while (iter.hasNext()) {
-            int slot = 0;
-            Object entry = iter.next();
-
-            if (entry.toString().equals("one=1"))
-                slot = 0;
-            else if (entry.toString().equals("two=2"))
-                slot = 1;
-            else if (entry.toString().equals("three=3"))
-                slot = 2;
-            else if (entry.toString().equals("four=4"))
-                slot = 3;
-            else
-                fail("Unkown entry in hashmap");
-
-            if (slots[slot])
-                fail("entry returned more than once");
-            else
-                slots[slot] = true;
-        }
-
-        assertTrue(slots[0]);
-        assertTrue(slots[1]);
-        assertTrue(slots[2]);
-        assertTrue(slots[3]);
-    }
-
-    /**
-     * checks if the HashMap equals method works.
-     */
-    @SmallTest
-    public void testEquals() throws Exception {
-        HashMap map1 = new HashMap();
-        HashMap map2 = new HashMap();
-        HashMap map3 = new HashMap();
-
-        map1.put("one", "1");
-        map1.put("two", "2");
-        map1.put("three", "3");
-
-        map2.put("one", new String("1"));
-        map2.put(new String("two"), "2");
-        map2.put(new String("three"), new String("3"));
-
-        assertTrue(map1.equals(map2));
-
-        map3.put("one", "1");
-        map3.put("two", "1");
-        map3.put("three", "1");
-
-        assertFalse(map1.equals(map3));
-        assertFalse(map2.equals(map3));
-    }
-}
-
diff --git a/tests/CoreTests/android/core/IOUtil.java b/tests/CoreTests/android/core/IOUtil.java
deleted file mode 100644
index 6f69418..0000000
--- a/tests/CoreTests/android/core/IOUtil.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2007 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.core;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.Reader;
-import java.io.InputStreamReader;
-
-public final class IOUtil {
-
-    private IOUtil() {
-    }
-
-    /**
-     * returns the content of an InputStream as a String.
-     *
-     * @param a the input stream.
-     * @return the string
-     * @throws java.io.IOException
-     */
-    public static String read(InputStream a) throws IOException {
-        int r;
-        StringBuilder builder = new StringBuilder();
-        do {
-            r = a.read();
-            if (r != -1)
-                builder.append((char) r);
-        } while (r != -1);
-        return builder.toString();
-    }
-
-    /**
-     * reads characters from a reader and returns them as a string.
-     *
-     * @param a the reader.
-     * @return the string.
-     * @throws IOException
-     */
-    public static String read(Reader a) throws IOException {
-        int r;
-        StringBuilder builder = new StringBuilder();
-        do {
-            r = a.read();
-            if (r != -1)
-                builder.append((char) r);
-        } while (r != -1);
-        return builder.toString();
-    }
-
-    /**
-     * returns the content of an InputStream as a String. It reads x characters.
-     *
-     * @param a the input stream.
-     * @param x number of characters to read.
-     * @return the string
-     * @throws IOException
-     */
-    public static String read(InputStream a, int x) throws IOException {
-        byte[] b = new byte[x];
-        int len = a.read(b, 0, x);
-        if (len < 0) {
-            return "";
-        }
-        return new String(b, 0, len);
-    }
-
-    /**
-     * reads a number of characters from a reader and returns them as a string.
-     *
-     * @param a the reader.
-     * @param x the number of characters to read.
-     * @return the string.
-     * @throws IOException
-     */
-    public static String read(Reader a, int x) throws IOException {
-        char[] b = new char[x];
-        int len = a.read(b, 0, x);
-        if (len < 0) {
-            return "";
-        }
-        return new String(b, 0, len);
-    }
-
-    /**
-     * returns the content of the input stream as a String. It only appends
-     * every second character.
-     *
-     * @param a the input stream.
-     * @return the string created from every second character of the input stream.
-     * @throws IOException
-     */
-    public static String skipRead(InputStream a) throws IOException {
-        int r;
-        StringBuilder builder = new StringBuilder();
-        do {
-            a.skip(1);
-            r = a.read();
-            if (r != -1)
-                builder.append((char) r);
-        } while (r != -1);
-        return builder.toString();
-    }
-
-    /**
-     * reads every second characters from a reader and returns them as a string.
-     *
-     * @param a the reader.
-     * @return the string.
-     * @throws IOException
-     */
-    public static String skipRead(Reader a) throws IOException {
-        int r;
-        StringBuilder builder = new StringBuilder();
-        do {
-            a.skip(1);
-            r = a.read();
-            if (r != -1)
-                builder.append((char) r);
-        } while (r != -1);
-        return builder.toString();
-    }
-
-    /**
-     * reads characters from a InputStream, skips back y characters and continues
-     * reading from that new position up to the end.
-     *
-     * @param a the InputStream.
-     * @param x the position of the mark. the marks position is x+y
-     * @param y the number of characters to jump back after the position x+y was reached.
-     * @return the string.
-     * @throws IOException
-     */
-    public static String markRead(InputStream a, int x, int y) throws IOException {
-        int m = 0;
-        int r;
-        StringBuilder builder = new StringBuilder();
-        do {
-            m++;
-            r = a.read();
-            if (m == x)
-                a.mark((x + y));
-            if (m == (x + y))
-                a.reset();
-
-            if (r != -1)
-                builder.append((char) r);
-        } while (r != -1);
-        return builder.toString();
-    }
-
-    /**
-     * reads characters from a reader, skips back y characters and continues
-     * reading from that new position up to the end.
-     *
-     * @param a the reader.
-     * @param x the position of the mark. the marks position is x+y
-     * @param y the number of characters to jump back after the position x+y was reached.
-     * @return the string.
-     * @throws IOException
-     */
-    public static String markRead(Reader a, int x, int y) throws IOException {
-        int m = 0;
-        int r;
-        StringBuilder builder = new StringBuilder();
-        do {
-            m++;
-            r = a.read();
-            if (m == x)
-                a.mark((x + y));
-            if (m == (x + y))
-                a.reset();
-
-            if (r != -1)
-                builder.append((char) r);
-        } while (r != -1);
-        return builder.toString();
-    }
-}
diff --git a/tests/CoreTests/android/core/InputStreamReaderTest.java b/tests/CoreTests/android/core/InputStreamReaderTest.java
deleted file mode 100644
index 1e8d87c..0000000
--- a/tests/CoreTests/android/core/InputStreamReaderTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStreamReader;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Checks basic InputStreamReader functionality.
- */
-public class InputStreamReaderTest extends TestCase {
-
-    /**
-     * Checks if ASCII encoding works with InputStreamReader
-     */
-    @SmallTest
-    public void testAscii() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYzX";
-        ByteArrayInputStream aa = new ByteArrayInputStream(str.getBytes("ISO8859_1"));
-        InputStreamReader a = new InputStreamReader(aa, "ISO8859_1");
-
-        try {
-            int x = a.read();
-            assertEquals('A', x);
-            char[] c = new char[26];
-            x = a.read(c, 0, 26);
-            assertTrue(a.getEncoding().equalsIgnoreCase("ISO8859_1"));
-            assertEquals(26, x);
-            assertEquals("bCdEfGhIjKlMnOpQrStUvWxYzX", String.valueOf(c));
-        } finally {
-            a.close();
-        }
-    }
-
-    /**
-     * Checks if Utf8 encoding works with InputStreamReader
-     */
-    @SmallTest
-    public void testUtf8() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYzX" +
-                "\u00a3\u00c5\u00c9";       // total of 30 characters
-        ByteArrayInputStream aa =
-                new ByteArrayInputStream(str.getBytes());
-
-        InputStreamReader a = new InputStreamReader(aa);
-
-        try {
-            assertEquals("UTF8", a.getEncoding());
-
-            int x = a.read();
-            assertEquals('A', x);
-
-            char[] c = new char[29];
-            x = a.read(c, 0, 3);
-            assertEquals(3, x);
-            assertEquals("bCd", new String(c, 0, 3));
-
-            x = a.read(c, 3, 26);
-            assertEquals(26, x);
-            assertEquals("EfGhIjKlMnOpQrStUvWxYzX\u00a3\u00c5\u00c9", new String(c, 3, 26));
-        } finally {
-            a.close();
-        }
-    }
-
-    /**
-     * Checks if several encodings works with InputStreamReader
-     */
-    @SmallTest
-    public void testStringy() throws Exception {
-        String src = "The quick brown fox\u00A0\u00FF" +
-                "\uFFFC\uD7C5\uDC03bloof";
-
-        String[] enc = new String[]{
-                "utf-8", "us-ascii", "iso-8859-1", "utf-16be", "utf-16le",
-                "utf-16",
-        };
-
-        for (int i = 0; i < enc.length; i++) {
-            byte[] ba = src.getBytes(enc[i]);
-
-            String s1 = new String(ba, enc[i]);
-
-            ByteArrayInputStream bais = new ByteArrayInputStream(ba);
-            InputStreamReader r = new InputStreamReader(bais, enc[i]);
-            try {
-                char[] ca = new char[600];
-                int n = r.read(ca, 0, 600);
-
-                String s2 = new String(ca, 0, n);
-                assertEquals(s1, s2);
-            } finally {
-                r.close();
-            }
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/InstanceofTest.java b/tests/CoreTests/android/core/InstanceofTest.java
deleted file mode 100644
index b35ef6b..0000000
--- a/tests/CoreTests/android/core/InstanceofTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2006 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.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-
-public class InstanceofTest extends TestCase {
-
-    protected A mA;
-    protected ChildOfAOne mOne;
-    protected ChildOfAOne mTwo;
-    protected ChildOfAOne mThree;
-    protected ChildOfAOne mFour;
-    protected ChildOfAFive mFive;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        mA = new A();
-        mOne = new ChildOfAOne();
-        mTwo = new ChildOfATwo();
-        mThree = new ChildOfAThree();
-        mFour = new ChildOfAFour();
-        mFive = new ChildOfAFive();
-    }
-
-
-    @MediumTest
-    public void testNoInterface() throws Exception {
-        A a = mA;
-        for (int i = 0; i < 100000; i++) {
-            assertFalse("m_a should not be a ChildOfAFive", a instanceof ChildOfAFive);
-        }
-    }
-
-    @MediumTest
-    public void testDerivedOne() throws Exception {
-        InterfaceOne one = mOne;
-        for (int i = 0; i < 100000; i++) {
-            assertFalse("m_one should not be a ChildOfAFive", one instanceof ChildOfAFive);
-        }
-    }
-
-    @MediumTest
-    public void testDerivedTwo() throws Exception {
-        InterfaceTwo two = mTwo;
-        for (int i = 0; i < 100000; i++) {
-            assertFalse("m_two should not be a ChildOfAFive", two instanceof ChildOfAFive);
-        }
-    }
-
-    @MediumTest
-    public void testDerivedThree() throws Exception {
-        InterfaceThree three = mThree;
-        for (int i = 0; i < 100000; i++) {
-            assertFalse("m_three should not be a ChildOfAFive", three instanceof ChildOfAFive);
-        }
-    }
-
-    @MediumTest
-    public void testDerivedFour() throws Exception {
-        InterfaceFour four = mFour;
-        for (int i = 0; i < 100000; i++) {
-            assertFalse("m_four should not be a ChildOfAFive", four instanceof ChildOfAFive);
-        }
-    }
-
-    @MediumTest
-    public void testSuccessClass() throws Exception {
-        ChildOfAOne five = mFive;
-        for (int i = 0; i < 100000; i++) {
-            assertTrue("m_five is suppose to be a ChildOfAFive", five instanceof ChildOfAFive);
-        }
-    }
-
-    @MediumTest
-    public void testSuccessInterface() throws Exception {
-        ChildOfAFive five = mFive;
-        for (int i = 0; i < 100000; i++) {
-            assertTrue("m_five is suppose to be a InterfaceFour", five instanceof InterfaceFour);
-        }
-    }
-
-    @MediumTest
-    public void testFailInterface() throws Exception {
-        InterfaceOne one = mFive;
-        for (int i = 0; i < 100000; i++) {
-            assertFalse("m_five does not implement InterfaceFive", one instanceof InterfaceFive);
-        }
-    }
-
-    private interface InterfaceOne {
-    }
-
-    private interface InterfaceTwo {
-    }
-
-    private interface InterfaceThree {
-    }
-
-    private interface InterfaceFour {
-    }
-
-    private interface InterfaceFive {
-    }
-
-    private static class A {
-    }
-
-    private static class ChildOfAOne extends A implements InterfaceOne, InterfaceTwo, InterfaceThree, InterfaceFour {
-    }
-
-    private static class ChildOfATwo extends ChildOfAOne {
-    }
-
-    private static class ChildOfAThree extends ChildOfATwo {
-    }
-
-    private static class ChildOfAFour extends ChildOfAThree {
-    }
-
-    private static class ChildOfAFive extends ChildOfAFour {
-    }
-}
diff --git a/tests/CoreTests/android/core/LineNumberReaderTest.java b/tests/CoreTests/android/core/LineNumberReaderTest.java
deleted file mode 100644
index 6380ebe..0000000
--- a/tests/CoreTests/android/core/LineNumberReaderTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.LineNumberReader;
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Checks basic functionality for LineNumberReader.
- */
-public class LineNumberReaderTest extends TestCase {
-
-    @MediumTest
-    public void testLineNumberReader() throws Exception {
-        String str = "AbCdEfGhIjKlM\nOpQrStUvWxYz";
-
-        StringReader aa = new StringReader(str);
-        StringReader ba = new StringReader(str);
-        StringReader ca = new StringReader(str);
-        StringReader da = new StringReader(str);
-        StringReader ea = new StringReader(str);
-
-        LineNumberReader a = new LineNumberReader(aa);
-        try {
-            assertEquals(0, a.getLineNumber());
-            assertEquals(str, IOUtil.read(a));
-            assertEquals(1, a.getLineNumber());
-            a.setLineNumber(5);
-            assertEquals(5, a.getLineNumber());
-        } finally {
-            a.close();
-        }
-
-        LineNumberReader b = new LineNumberReader(ba);
-        try {
-            assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
-        } finally {
-            b.close();
-        }
-
-        LineNumberReader c = new LineNumberReader(ca);
-        try {
-            assertEquals("bdfhjl\nprtvxz", IOUtil.skipRead(c));
-        } finally {
-            c.close();
-        }
-
-        LineNumberReader d = new LineNumberReader(da);
-        try {
-            assertEquals("AbCdEfGdEfGhIjKlM\nOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
-        } finally {
-            d.close();
-        }
-
-        LineNumberReader e = new LineNumberReader(ea);
-        try {
-            assertEquals("AbCdEfGhIjKlM", e.readLine());
-        } finally {
-            e.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/LocaleTest.java b/tests/CoreTests/android/core/LocaleTest.java
deleted file mode 100644
index 72489c6..0000000
--- a/tests/CoreTests/android/core/LocaleTest.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.nio.charset.Charset;
-import java.text.DateFormatSymbols;
-import java.util.Calendar;
-import java.util.Currency;
-import java.util.Locale;
-import java.util.Set;
-import java.util.TimeZone;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.Suppress;
-
-/**
- * Test some locale-dependent stuff for Android. This test mainly ensures that
- * our ICU configuration is correct and contains all the needed locales and
- * resource bundles. 
- */
-public class LocaleTest extends TestCase {
-
-    // Test basic Locale infrastructure.
-    @SmallTest
-    public void testLocale() throws Exception {
-        Locale locale = new Locale("en");
-        assertEquals("en", locale.toString());
-
-        locale = new Locale("en", "US");
-        assertEquals("en_US", locale.toString());
-
-        locale = new Locale("en", "", "POSIX");
-        assertEquals("en__POSIX", locale.toString());
-
-        locale = new Locale("en", "US", "POSIX");
-        assertEquals("en_US_POSIX", locale.toString());
-    }
-
-    /*
-     * Tests some must-have locales. TODO: Add back "de". See discussion
-     * immediately below this method.
-     */
-    @LargeTest
-    public void testResourceBundles() throws Exception {
-        Locale eng = new Locale("en", "US");
-        DateFormatSymbols engSymbols = new DateFormatSymbols(eng);
-        
-        //Locale deu = new Locale("de", "DE");
-        //DateFormatSymbols deuSymbols = new DateFormatSymbols(deu);
-        
-        TimeZone berlin = TimeZone.getTimeZone("Europe/Berlin");
-        
-        assertEquals("January", engSymbols.getMonths()[0]);
-        //assertEquals("Januar", deuSymbols.getMonths()[0]);
-
-        assertEquals("Sunday", engSymbols.getWeekdays()[Calendar.SUNDAY]);
-        //assertEquals("Sonntag", deuSymbols.getWeekdays()[Calendar.SUNDAY]);
-        
-        assertEquals("Central European Time",
-                berlin.getDisplayName(false, TimeZone.LONG, eng));
-        assertEquals("Central European Summer Time",
-                berlin.getDisplayName(true, TimeZone.LONG, eng));
-
-        //assertEquals("Mitteleurop\u00E4ische Zeit",
-        //        berlin.getDisplayName(false, TimeZone.LONG, deu));
-        //assertEquals("Mitteleurop\u00E4ische Sommerzeit",
-        //        berlin.getDisplayName(true, TimeZone.LONG, deu));
-        
-        assertTrue(engSymbols.getZoneStrings().length > 100);
-    }
-
-    /*
-     * Disabled version of the above test. The version above omits
-     * checks for stuff in the "de" locale, because we stripped that
-     * out as part of the flash reduction effort (so that we could
-     * still ship on Dream). We expect to have a baseline target that
-     * includes a large enough system partition to include "de"
-     * immediately after the last official release for Dream (whenever
-     * that may be).
-     * 
-    // Test some must-have locales.
-    @LargeTest
-    public void testResourceBundles() throws Exception {
-        Locale eng = new Locale("en", "US");
-        DateFormatSymbols engSymbols = new DateFormatSymbols(eng);
-        
-        Locale deu = new Locale("de", "DE");
-        DateFormatSymbols deuSymbols = new DateFormatSymbols(deu);
-        
-        TimeZone berlin = TimeZone.getTimeZone("Europe/Berlin");
-        
-        assertEquals("January", engSymbols.getMonths()[0]);
-        assertEquals("Januar", deuSymbols.getMonths()[0]);
-
-        assertEquals("Sunday", engSymbols.getWeekdays()[Calendar.SUNDAY]);
-        assertEquals("Sonntag", deuSymbols.getWeekdays()[Calendar.SUNDAY]);
-        
-        assertEquals("Central European Time",
-                berlin.getDisplayName(false, TimeZone.LONG, eng));
-        assertEquals("Central European Summer Time",
-                berlin.getDisplayName(true, TimeZone.LONG, eng));
-
-        assertEquals("Mitteleurop\u00E4ische Zeit",
-                berlin.getDisplayName(false, TimeZone.LONG, deu));
-        assertEquals("Mitteleurop\u00E4ische Sommerzeit",
-                berlin.getDisplayName(true, TimeZone.LONG, deu));
-        
-        assertTrue(engSymbols.getZoneStrings().length > 100);
-    }
-    */
-
-    // This one makes sure we have all necessary locales installed.
-    // Suppress this flaky test for now.
-    @Suppress
-    public void testICULocales() {
-        String[] locales = new String[] {
-                // List of locales currently required for Android.
-                "en_US", "es_US", "en_GB", "fr_FR", "de_DE", "de_AT", "cs_CZ", "nl_NL" };
-        
-        String[] mondays = new String[] {
-                "Monday", "lunes", "Monday", "lundi", "Montag", "Montag", "pond\u011bl\u00ed", "maandag" };
-        
-        String[] currencies = new String[] {
-                "USD", "USD", "GBP", "EUR", "EUR", "EUR", "CZK", "EUR"};
-
-        for (int i = 0; i < locales.length; i++) {
-            Locale l = new Locale(locales[i].substring(0, 2), locales[i].substring(3));
-            
-            // Check language part of locale.
-            DateFormatSymbols d = new DateFormatSymbols(l);
-            assertEquals("Monday name for " + locales[i] + " must match",
-                    mondays[i], d.getWeekdays()[2]);
-            
-            // Check country part of locale.
-            Currency c = Currency.getInstance(l);
-            assertEquals("Currency code for " + locales[i] + " must match",
-                    currencies[i], c.getCurrencyCode());
-        }
-    }
-
-    // Regression test for 1118570: Create test cases for tracking ICU config
-    // changes. This one makes sure we have the necessary converters installed
-    // and don't lose the changes to the converter alias table.
-    @MediumTest
-    public void testICUConverters() {
-        // List of encodings currently required for Android.
-        String[] encodings = new String[] {
-                // Encoding required by the language specification.
-                "US-ASCII",
-                "UTF-8",
-                "UTF-16",
-                "UTF-16BE",
-                "UTF-16LE",
-                "ISO-8859-1",
-                
-                // Additional encodings included in standard ICU
-                "ISO-8859-2",
-                "ISO-8859-3",
-                "ISO-8859-4",
-                "ISO-8859-5",
-                "ISO-8859-6",
-                "ISO-8859-7",
-                "ISO-8859-8",
-                "ISO-8859-8-I",
-                "ISO-8859-9",
-                "ISO-8859-10", 
-                "ISO-8859-11", 
-                "ISO-8859-13",
-                "ISO-8859-14", 
-                "ISO-8859-15",
-                "ISO-8859-16", 
-                "ISO-2022-JP",
-                "Windows-950",
-                "Windows-1250",
-                "Windows-1251",
-                "Windows-1252",
-                "Windows-1253",
-                "Windows-1254",
-                "Windows-1255",
-                "Windows-1256",
-                "Windows-1257",
-                "Windows-1258",              
-                "Big5",
-                "CP864",
-                "CP874",
-                "EUC-CN",
-                "EUC-JP",
-                "KOI8-R",
-                "Macintosh",
-                "GBK",
-                "GB2312",
-                "EUC-KR",
-                
-                // Additional encoding not included in standard ICU.
-                "GSM0338" };
-        
-        for (int i = 0; i < encodings.length; i++) {
-            assertTrue("Charset " + encodings[i] + " must be supported",
-                    Charset.isSupported(encodings[i]));
-            
-            Charset cs = Charset.forName(encodings[i]);
-            android.util.Log.d("LocaleTest", cs.name());
-            
-            Set<String> aliases = cs.aliases();
-            for (String s: aliases) {
-                android.util.Log.d("LocaleTest", " - " + s);
-            }
-        }
-        
-        // Test for valid encoding that is not included in Android. IBM-37 is
-        // a perfect candidate for this, as it is being used for mainframes and
-        // thus somewhat out of the scope of Android.
-        assertFalse("Charset IBM-37 must not be supported",
-                Charset.isSupported("IBM-37"));
-
-        // Test for a bogus encoding.
-        assertFalse("Charset KLINGON must not be supported",
-                Charset.isSupported("KLINGON"));
-        
-        // Make sure our local change to the real translation table used for
-        // EUC-JP doesn't get lost.
-        Charset cs = Charset.forName("EUC-JP");
-        assertTrue("EUC-JP must use 'ibm-954_P101-2007'", cs.aliases().contains("ibm-954_P101-2007"));
-    }
-    
-}
diff --git a/tests/CoreTests/android/core/MathTest.java b/tests/CoreTests/android/core/MathTest.java
deleted file mode 100644
index 50009db..0000000
--- a/tests/CoreTests/android/core/MathTest.java
+++ /dev/null
@@ -1,831 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You 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.core;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class MathTest extends TestCase {
-
-    private final double HYP = Math.sqrt(2.0);
-
-    private final double OPP = 1.0;
-
-    private final double ADJ = 1.0;
-
-    /* Required to make previous preprocessor flags work - do not remove */
-    int unused = 0;
-
-    public static void assertEquals(String message, double expected, double actual, double delta) {
-        if (delta == 0D) {
-            Assert.assertEquals(message, expected, actual, Math.ulp(expected));
-        } else {
-            Assert.assertEquals(message, expected, actual, delta);
-        }
-    }
-
-    public static void assertEquals(String message, float expected, float actual, float delta) {
-        if (delta == 0F) {
-            Assert.assertEquals(message, expected, actual, Math.ulp(expected));
-        } else {
-            Assert.assertEquals(message, expected, actual, delta);
-        }
-    }
-    
-    /**
-     * @tests java.lang.Math#abs(double)
-     */
-    @SmallTest
-    public void testAbsD() {
-        // Test for method double java.lang.Math.abs(double)
-
-        assertTrue("Incorrect double abs value",
-                (Math.abs(-1908.8976) == 1908.8976));
-        assertTrue("Incorrect double abs value",
-                (Math.abs(1908.8976) == 1908.8976));
-    }
-
-    /**
-     * @tests java.lang.Math#abs(float)
-     */
-    @SmallTest
-    public void testAbsF() {
-        // Test for method float java.lang.Math.abs(float)
-        assertTrue("Incorrect float abs value",
-                (Math.abs(-1908.8976f) == 1908.8976f));
-        assertTrue("Incorrect float abs value",
-                (Math.abs(1908.8976f) == 1908.8976f));
-    }
-
-    /**
-     * @tests java.lang.Math#abs(int)
-     */
-    @SmallTest
-    public void testAbsI() {
-        // Test for method int java.lang.Math.abs(int)
-        assertTrue("Incorrect int abs value", (Math.abs(-1908897) == 1908897));
-        assertTrue("Incorrect int abs value", (Math.abs(1908897) == 1908897));
-    }
-
-    /**
-     * @tests java.lang.Math#abs(long)
-     */
-    @SmallTest
-    public void testAbsJ() {
-        // Test for method long java.lang.Math.abs(long)
-        assertTrue("Incorrect long abs value",
-                (Math.abs(-19088976000089L) == 19088976000089L));
-        assertTrue("Incorrect long abs value",
-                (Math.abs(19088976000089L) == 19088976000089L));
-    }
-
-    /**
-     * @tests java.lang.Math#acos(double)
-     */
-    @SmallTest
-    public void testAcosD() {
-        // Test for method double java.lang.Math.acos(double)
-        double r = Math.cos(Math.acos(ADJ / HYP));
-        long lr = Double.doubleToLongBits(r);
-        long t = Double.doubleToLongBits(ADJ / HYP);
-        assertTrue("Returned incorrect arc cosine", lr == t || (lr + 1) == t
-                || (lr - 1) == t);
-    }
-
-    /**
-     * @tests java.lang.Math#asin(double)
-     */
-    @SmallTest
-    public void testAsinD() {
-        // Test for method double java.lang.Math.asin(double)
-        double r = Math.sin(Math.asin(OPP / HYP));
-        long lr = Double.doubleToLongBits(r);
-        long t = Double.doubleToLongBits(OPP / HYP);
-        assertTrue("Returned incorrect arc sine", lr == t || (lr + 1) == t
-                || (lr - 1) == t);
-    }
-
-    /**
-     * @tests java.lang.Math#atan(double)
-     */
-    @SmallTest
-    public void testAtanD() {
-        // Test for method double java.lang.Math.atan(double)
-        double answer = Math.tan(Math.atan(1.0));
-        assertTrue("Returned incorrect arc tangent: " + answer, answer <= 1.0
-                && answer >= 9.9999999999999983E-1);
-    }
-
-    /**
-     * @tests java.lang.Math#atan2(double, double)
-     */
-    @SmallTest
-    public void testAtan2DD() {
-        // Test for method double java.lang.Math.atan2(double, double)
-        double answer = Math.atan(Math.tan(1.0));
-        assertTrue("Returned incorrect arc tangent: " + answer, answer <= 1.0
-                && answer >= 9.9999999999999983E-1);
-    }
-    
-     /**
-     * @tests java.lang.Math#cbrt(double)
-     */
-    @SmallTest
-    public void testCbrtD() {
-        //Test for special situations
-        assertTrue("Should return Double.NaN", Double.isNaN(Math
-                .cbrt(Double.NaN)));
-        assertEquals("Should return Double.POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math
-                        .cbrt(Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Should return Double.NEGATIVE_INFINITY",
-                Double.NEGATIVE_INFINITY, Math
-                        .cbrt(Double.NEGATIVE_INFINITY), 0D);
-        assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
-                .cbrt(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double.doubleToLongBits(Math
-                .cbrt(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double.doubleToLongBits(Math
-                .cbrt(-0.0)));
-
-        assertEquals("Should return 3.0", 3.0, Math.cbrt(27.0), 0D);
-        assertEquals("Should return 23.111993172558684", 23.111993172558684,
-                Math.cbrt(12345.6), 0D);
-        assertEquals("Should return 5.643803094122362E102",
-                5.643803094122362E102, Math.cbrt(Double.MAX_VALUE), 0D);
-        assertEquals("Should return 0.01", 0.01, Math.cbrt(0.000001), 0D);
-
-        assertEquals("Should return -3.0", -3.0, Math.cbrt(-27.0), 0D);
-        assertEquals("Should return -23.111993172558684", -23.111993172558684,
-                Math.cbrt(-12345.6), 0D);
-        assertEquals("Should return 1.7031839360032603E-108",
-                1.7031839360032603E-108, Math.cbrt(Double.MIN_VALUE), 0D);
-        assertEquals("Should return -0.01", -0.01, Math.cbrt(-0.000001), 0D);
-    }
-
-    /**
-     * @tests java.lang.Math#ceil(double)
-     */
-    @SmallTest
-    public void testCeilD() {
-        // Test for method double java.lang.Math.ceil(double)
-                assertEquals("Incorrect ceiling for double",
-                             79, Math.ceil(78.89), 0);
-        assertEquals("Incorrect ceiling for double",
-                             -78, Math.ceil(-78.89), 0);
-    }
-
-    /**
-     * @tests java.lang.Math#cos(double)
-     */
-    @SmallTest
-    public void testCosD() {
-        // Test for method double java.lang.Math.cos(double)
-        assertEquals("Incorrect answer", 1.0, Math.cos(0), 0D);
-        assertEquals("Incorrect answer", 0.5403023058681398, Math.cos(1), 0D);
-    }
-
-    /**
-     * @tests java.lang.Math#cosh(double)
-     */
-    @SmallTest
-    public void testCoshD() {
-        // Test for special situations
-        assertTrue(Double.isNaN(Math.cosh(Double.NaN)));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.cosh(Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.cosh(Double.NEGATIVE_INFINITY), 0D);
-        assertEquals("Should return 1.0", 1.0, Math.cosh(+0.0), 0D);
-        assertEquals("Should return 1.0", 1.0, Math.cosh(-0.0), 0D);
-
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.cosh(1234.56), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.cosh(-1234.56), 0D);
-        assertEquals("Should return 1.0000000000005", 1.0000000000005, Math
-                .cosh(0.000001), 0D);
-        assertEquals("Should return 1.0000000000005", 1.0000000000005, Math
-                .cosh(-0.000001), 0D);
-        assertEquals("Should return 5.212214351945598", 5.212214351945598, Math
-                .cosh(2.33482), 0D);
-
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.cosh(Double.MAX_VALUE), 0D);
-        assertEquals("Should return 1.0", 1.0, Math.cosh(Double.MIN_VALUE), 0D);
-    }
-    
-    /**
-     * @tests java.lang.Math#exp(double)
-     */
-    @SmallTest
-    public void testExpD() {
-        // Test for method double java.lang.Math.exp(double)
-        assertTrue("Incorrect answer returned for simple power", Math.abs(Math
-                .exp(4D)
-                - Math.E * Math.E * Math.E * Math.E) < 0.1D);
-        assertTrue("Incorrect answer returned for larger power", Math.log(Math
-                .abs(Math.exp(5.5D)) - 5.5D) < 10.0D);
-    }
-    
-    /**
-     * @tests java.lang.Math#expm1(double)
-     */
-    @SmallTest
-    public void testExpm1D() {
-        // Test for special cases
-        assertTrue("Should return NaN", Double.isNaN(Math.expm1(Double.NaN)));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.expm1(Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Should return -1.0", -1.0, Math
-                .expm1(Double.NEGATIVE_INFINITY), 0D);
-        assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
-                .expm1(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(Math.expm1(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(Math.expm1(-0.0)));
-
-        assertEquals("Should return -9.999950000166666E-6",
-                -9.999950000166666E-6, Math.expm1(-0.00001), 0D);
-        assertEquals("Should return 1.0145103074469635E60",
-                1.0145103074469635E60, Math.expm1(138.16951162), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math
-                        .expm1(123456789123456789123456789.4521584223), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.expm1(Double.MAX_VALUE), 0D);
-        assertEquals("Should return MIN_VALUE", Double.MIN_VALUE, Math
-                .expm1(Double.MIN_VALUE), 0D);
-    }
-
-    /**
-     * @tests java.lang.Math#floor(double)
-     */
-    @SmallTest
-    public void testFloorD() {
-        // Test for method double java.lang.Math.floor(double)
-                assertEquals("Incorrect floor for double",
-                             78, Math.floor(78.89), 0);
-        assertEquals("Incorrect floor for double",
-                             -79, Math.floor(-78.89), 0);
-    }
-    
-    /**
-     * @tests java.lang.Math#hypot(double, double)
-     */
-    @SmallTest
-    public void testHypotDD() {
-        // Test for special cases
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.hypot(Double.POSITIVE_INFINITY,
-                        1.0), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.hypot(Double.NEGATIVE_INFINITY,
-                        123.324), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.hypot(-758.2587,
-                        Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.hypot(5687.21,
-                        Double.NEGATIVE_INFINITY), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.hypot(Double.POSITIVE_INFINITY,
-                        Double.NEGATIVE_INFINITY), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.hypot(Double.NEGATIVE_INFINITY,
-                        Double.POSITIVE_INFINITY), 0D);        
-        assertTrue("Should be NaN", Double.isNaN(Math.hypot(Double.NaN,
-                2342301.89843)));
-        assertTrue("Should be NaN", Double.isNaN(Math.hypot(-345.2680,
-                Double.NaN)));        
-
-        assertEquals("Should return 2396424.905416697", 2396424.905416697, Math
-                .hypot(12322.12, -2396393.2258), 0D);
-        assertEquals("Should return 138.16958070558556", 138.16958070558556,
-                Math.hypot(-138.16951162, 0.13817035864), 0D);
-        assertEquals("Should return 1.7976931348623157E308",
-                1.7976931348623157E308, Math.hypot(Double.MAX_VALUE, 211370.35), 0D);
-        assertEquals("Should return 5413.7185", 5413.7185, Math.hypot(
-                -5413.7185, Double.MIN_VALUE), 0D);
-    }
-
-    /**
-     * @tests java.lang.Math#IEEEremainder(double, double)
-     */
-    @SmallTest
-    public void testIEEEremainderDD() {
-        // Test for method double java.lang.Math.IEEEremainder(double, double)
-        assertEquals("Incorrect remainder returned",
-                0.0, Math.IEEEremainder(1.0, 1.0), 0D);
-        assertTrue("Incorrect remainder returned", Math.IEEEremainder(1.32,
-                89.765) >= 1.4705063220631647E-2
-                || Math.IEEEremainder(1.32, 89.765) >= 1.4705063220631649E-2);
-    }
-
-    /**
-     * @tests java.lang.Math#log(double)
-     */
-    @SmallTest
-    public void testLogD() {
-        // Test for method double java.lang.Math.log(double)
-        for (double d = 10; d >= -10; d -= 0.5) {
-            double answer = Math.log(Math.exp(d));
-            assertTrue("Answer does not equal expected answer for d = " + d
-                    + " answer = " + answer, Math.abs(answer - d) <= Math
-                    .abs(d * 0.00000001));
-        }
-    }
-    
-    /**
-     * @tests java.lang.Math#log10(double)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testLog10D() {
-        // Test for special cases
-        assertTrue(Double.isNaN(Math.log10(Double.NaN)));
-        assertTrue(Double.isNaN(Math.log10(-2541.05745687234187532)));
-        assertTrue(Double.isNaN(Math.log10(-0.1)));
-        assertEquals(Double.POSITIVE_INFINITY, Math.log10(Double.POSITIVE_INFINITY));
-        assertEquals(Double.NEGATIVE_INFINITY, Math.log10(0.0));
-        assertEquals(Double.NEGATIVE_INFINITY, Math.log10(+0.0));
-        assertEquals(Double.NEGATIVE_INFINITY, Math.log10(-0.0));
-        
-        assertEquals(3.0, Math.log10(1000.0));
-        assertEquals(14.0, Math.log10(Math.pow(10, 14)));
-        assertEquals(3.7389561269540406, Math.log10(5482.2158));
-        assertEquals(14.661551142893833, Math.log10(458723662312872.125782332587));
-        assertEquals(-0.9083828622192334, Math.log10(0.12348583358871));
-        assertEquals(308.25471555991675, Math.log10(Double.MAX_VALUE));
-        assertEquals(-323.3062153431158, Math.log10(Double.MIN_VALUE));
-    }
-    
-    /**
-     * @tests java.lang.Math#log1p(double)
-     */
-    @SmallTest
-    public void testLog1pD() {
-        // Test for special cases
-        assertTrue("Should return NaN", Double.isNaN(Math.log1p(Double.NaN)));
-        assertTrue("Should return NaN", Double.isNaN(Math.log1p(-32.0482175)));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.log1p(Double.POSITIVE_INFINITY), 0D);
-        assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
-                .log1p(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(Math.log1p(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(Math.log1p(-0.0)));
-
-        assertEquals("Should return -0.2941782295312541", -0.2941782295312541,
-                Math.log1p(-0.254856327), 0D);
-        assertEquals("Should return 7.368050685564151", 7.368050685564151, Math
-                .log1p(1583.542), 0D);
-        assertEquals("Should return 0.4633708685409921", 0.4633708685409921,
-                Math.log1p(0.5894227), 0D);
-        assertEquals("Should return 709.782712893384", 709.782712893384, Math
-                .log1p(Double.MAX_VALUE), 0D);
-        assertEquals("Should return Double.MIN_VALUE", Double.MIN_VALUE, Math
-                .log1p(Double.MIN_VALUE), 0D);
-    }
-
-    /**
-     * @tests java.lang.Math#max(double, double)
-     */
-    @SmallTest
-    public void testMaxDD() {
-        // Test for method double java.lang.Math.max(double, double)
-        assertEquals("Incorrect double max value", 1908897.6000089, Math.max(-1908897.6000089,
-                1908897.6000089), 0D);
-        assertEquals("Incorrect double max value",
-                1908897.6000089, Math.max(2.0, 1908897.6000089), 0D);
-        assertEquals("Incorrect double max value", -2.0, Math.max(-2.0,
-                -1908897.6000089), 0D);
-
-    }
-
-    /**
-     * @tests java.lang.Math#max(float, float)
-     */
-    @SmallTest
-    public void testMaxFF() {
-        // Test for method float java.lang.Math.max(float, float)
-        assertTrue("Incorrect float max value", Math.max(-1908897.600f,
-                1908897.600f) == 1908897.600f);
-        assertTrue("Incorrect float max value",
-                Math.max(2.0f, 1908897.600f) == 1908897.600f);
-        assertTrue("Incorrect float max value",
-                Math.max(-2.0f, -1908897.600f) == -2.0f);
-    }
-
-    /**
-     * @tests java.lang.Math#max(int, int)
-     */
-    @SmallTest
-    public void testMaxII() {
-        // Test for method int java.lang.Math.max(int, int)
-        assertEquals("Incorrect int max value",
-                19088976, Math.max(-19088976, 19088976));
-        assertEquals("Incorrect int max value",
-                19088976, Math.max(20, 19088976));
-        assertEquals("Incorrect int max value", -20, Math.max(-20, -19088976));
-    }
-
-    /**
-     * @tests java.lang.Math#max(long, long)
-     */
-    @SmallTest
-    public void testMaxJJ() {
-        // Test for method long java.lang.Math.max(long, long)
-        assertEquals("Incorrect long max value", 19088976000089L, Math.max(-19088976000089L,
-                19088976000089L));
-        assertEquals("Incorrect long max value",
-                19088976000089L, Math.max(20, 19088976000089L));
-        assertEquals("Incorrect long max value",
-                -20, Math.max(-20, -19088976000089L));
-    }
-
-    /**
-     * @tests java.lang.Math#min(double, double)
-     */
-    @SmallTest
-    public void testMinDD() {
-        // Test for method double java.lang.Math.min(double, double)
-        assertEquals("Incorrect double min value", -1908897.6000089, Math.min(-1908897.6000089,
-                1908897.6000089), 0D);
-        assertEquals("Incorrect double min value",
-                2.0, Math.min(2.0, 1908897.6000089), 0D);
-        assertEquals("Incorrect double min value", -1908897.6000089, Math.min(-2.0,
-                -1908897.6000089), 0D);
-    }
-
-    /**
-     * @tests java.lang.Math#min(float, float)
-     */
-    @SmallTest
-    public void testMinFF() {
-        // Test for method float java.lang.Math.min(float, float)
-        assertTrue("Incorrect float min value", Math.min(-1908897.600f,
-                1908897.600f) == -1908897.600f);
-        assertTrue("Incorrect float min value",
-                Math.min(2.0f, 1908897.600f) == 2.0f);
-        assertTrue("Incorrect float min value",
-                Math.min(-2.0f, -1908897.600f) == -1908897.600f);
-    }
-
-    /**
-     * @tests java.lang.Math#min(int, int)
-     */
-    @SmallTest
-    public void testMinII() {
-        // Test for method int java.lang.Math.min(int, int)
-        assertEquals("Incorrect int min value",
-                -19088976, Math.min(-19088976, 19088976));
-        assertEquals("Incorrect int min value", 20, Math.min(20, 19088976));
-        assertEquals("Incorrect int min value",
-                -19088976, Math.min(-20, -19088976));
-
-    }
-
-    /**
-     * @tests java.lang.Math#min(long, long)
-     */
-    @SmallTest
-    public void testMinJJ() {
-        // Test for method long java.lang.Math.min(long, long)
-        assertEquals("Incorrect long min value", -19088976000089L, Math.min(-19088976000089L,
-                19088976000089L));
-        assertEquals("Incorrect long min value",
-                20, Math.min(20, 19088976000089L));
-        assertEquals("Incorrect long min value",
-                -19088976000089L, Math.min(-20, -19088976000089L));
-    }
-
-    /**
-     * @tests java.lang.Math#pow(double, double)
-     */
-    @SmallTest
-    public void testPowDD() {
-        // Test for method double java.lang.Math.pow(double, double)
-        assertTrue("pow returned incorrect value",
-                (long) Math.pow(2, 8) == 256l);
-        assertTrue("pow returned incorrect value",
-                Math.pow(2, -8) == 0.00390625d);
-        assertEquals("Incorrect root returned1",
-                             2, Math.sqrt(Math.pow(Math.sqrt(2), 4)), 0);
-    }
-
-    /**
-     * @tests java.lang.Math#rint(double)
-     */
-    @SmallTest
-    public void testRintD() {
-        // Test for method double java.lang.Math.rint(double)
-        assertEquals("Failed to round properly - up to odd",
-                3.0, Math.rint(2.9), 0D);
-        assertTrue("Failed to round properly - NaN", Double.isNaN(Math
-                .rint(Double.NaN)));
-        assertEquals("Failed to round properly down  to even",
-                2.0, Math.rint(2.1), 0D);
-        assertTrue("Failed to round properly " + 2.5 + " to even", Math
-                .rint(2.5) == 2.0);
-    }
-
-    /**
-     * @tests java.lang.Math#round(double)
-     */
-    @SmallTest
-    public void testRoundD() {
-        // Test for method long java.lang.Math.round(double)
-        assertEquals("Incorrect rounding of a float", -91, Math.round(-90.89d));
-    }
-
-    /**
-     * @tests java.lang.Math#round(float)
-     */
-    @SmallTest
-    public void testRoundF() {
-        // Test for method int java.lang.Math.round(float)
-        assertEquals("Incorrect rounding of a float", -91, Math.round(-90.89f));
-    }
-    
-    /**
-     * @tests java.lang.Math#signum(double)
-     */
-    @SmallTest
-    public void testSignumD() {
-        assertTrue(Double.isNaN(Math.signum(Double.NaN)));
-        assertTrue(Double.isNaN(Math.signum(Double.NaN)));
-        assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
-                .signum(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(Math.signum(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(Math.signum(-0.0)));
-
-        assertEquals(1.0, Math.signum(253681.2187962), 0D);
-        assertEquals(-1.0, Math.signum(-125874693.56), 0D);
-        assertEquals(1.0, Math.signum(1.2587E-308), 0D);
-        assertEquals(-1.0, Math.signum(-1.2587E-308), 0D);
-
-        assertEquals(1.0, Math.signum(Double.MAX_VALUE), 0D);
-        assertEquals(1.0, Math.signum(Double.MIN_VALUE), 0D);
-        assertEquals(-1.0, Math.signum(-Double.MAX_VALUE), 0D);
-        assertEquals(-1.0, Math.signum(-Double.MIN_VALUE), 0D);
-        assertEquals(1.0, Math.signum(Double.POSITIVE_INFINITY), 0D);
-        assertEquals(-1.0, Math.signum(Double.NEGATIVE_INFINITY), 0D);
-    }
-
-    /**
-     * @tests java.lang.Math#signum(float)
-     */
-    @SmallTest
-    public void testSignumF() {
-        assertTrue(Float.isNaN(Math.signum(Float.NaN)));
-        assertEquals(Float.floatToIntBits(0.0f), Float
-                .floatToIntBits(Math.signum(0.0f)));
-        assertEquals(Float.floatToIntBits(+0.0f), Float
-                .floatToIntBits(Math.signum(+0.0f)));
-        assertEquals(Float.floatToIntBits(-0.0f), Float
-                .floatToIntBits(Math.signum(-0.0f)));
-
-        assertEquals(1.0f, Math.signum(253681.2187962f), 0f);
-        assertEquals(-1.0f, Math.signum(-125874693.56f), 0f);
-        assertEquals(1.0f, Math.signum(1.2587E-11f), 0f);
-        assertEquals(-1.0f, Math.signum(-1.2587E-11f), 0f);
-
-        assertEquals(1.0f, Math.signum(Float.MAX_VALUE), 0f);
-        assertEquals(1.0f, Math.signum(Float.MIN_VALUE), 0f);
-        assertEquals(-1.0f, Math.signum(-Float.MAX_VALUE), 0f);
-        assertEquals(-1.0f, Math.signum(-Float.MIN_VALUE), 0f);
-        assertEquals(1.0f, Math.signum(Float.POSITIVE_INFINITY), 0f);
-        assertEquals(-1.0f, Math.signum(Float.NEGATIVE_INFINITY), 0f);
-    }
-
-    /**
-     * @tests java.lang.Math#sin(double)
-     */
-    @SmallTest
-    public void testSinD() {
-        // Test for method double java.lang.Math.sin(double)
-        assertEquals("Incorrect answer", 0.0, Math.sin(0), 0D);
-        assertEquals("Incorrect answer", 0.8414709848078965, Math.sin(1), 0D);
-    }
-    
-    /**
-     * @tests java.lang.Math#sinh(double)
-     */
-    @SmallTest
-    public void testSinhD() {
-        // Test for special situations
-        assertTrue("Should return NaN", Double.isNaN(Math.sinh(Double.NaN)));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.sinh(Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Should return NEGATIVE_INFINITY",
-                Double.NEGATIVE_INFINITY, Math.sinh(Double.NEGATIVE_INFINITY), 0D);
-        assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
-                .sinh(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(Math.sinh(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(Math.sinh(-0.0)));
-
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.sinh(1234.56), 0D);
-        assertEquals("Should return NEGATIVE_INFINITY",
-                Double.NEGATIVE_INFINITY, Math.sinh(-1234.56), 0D);
-        assertEquals("Should return 1.0000000000001666E-6",
-                1.0000000000001666E-6, Math.sinh(0.000001), 0D);
-        assertEquals("Should return -1.0000000000001666E-6",
-                -1.0000000000001666E-6, Math.sinh(-0.000001), 0D);
-        assertEquals("Should return 5.115386441963859", 5.115386441963859, Math
-                .sinh(2.33482), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, Math.sinh(Double.MAX_VALUE), 0D);
-        assertEquals("Should return 4.9E-324", 4.9E-324, Math
-                .sinh(Double.MIN_VALUE), 0D);
-    }
-    
-    /**
-     * @tests java.lang.Math#sqrt(double)
-     */
-    @SmallTest
-    public void testSqrtD() {
-        // Test for method double java.lang.Math.sqrt(double)
-                assertEquals("Incorrect root returned2", 7, Math.sqrt(49), 0);
-    }
-
-    /**
-     * @tests java.lang.Math#tan(double)
-     */
-    @SmallTest
-    public void testTanD() {
-        // Test for method double java.lang.Math.tan(double)
-        assertEquals("Incorrect answer", 0.0, Math.tan(0), 0D);
-        assertEquals("Incorrect answer", 1.5574077246549023, Math.tan(1), 0D);
-
-    }
-
-    /**
-     * @tests java.lang.Math#tanh(double)
-     */
-    @SmallTest
-    public void testTanhD() {
-        // Test for special situations
-        assertTrue("Should return NaN", Double.isNaN(Math.tanh(Double.NaN)));
-        assertEquals("Should return +1.0", +1.0, Math
-                .tanh(Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Should return -1.0", -1.0, Math
-                .tanh(Double.NEGATIVE_INFINITY), 0D);
-        assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
-                .tanh(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(Math.tanh(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(Math.tanh(-0.0)));
-
-        assertEquals("Should return 1.0", 1.0, Math.tanh(1234.56), 0D);
-        assertEquals("Should return -1.0", -1.0, Math.tanh(-1234.56), 0D);
-        assertEquals("Should return 9.999999999996666E-7",
-                9.999999999996666E-7, Math.tanh(0.000001), 0D);
-        assertEquals("Should return 0.981422884124941", 0.981422884124941, Math
-                .tanh(2.33482), 0D);
-        assertEquals("Should return 1.0", 1.0, Math.tanh(Double.MAX_VALUE), 0D);
-        assertEquals("Should return 4.9E-324", 4.9E-324, Math
-                .tanh(Double.MIN_VALUE), 0D);
-    }
-    
-    /**
-     * @tests java.lang.Math#random()
-     */
-    @MediumTest
-    public void testRandom() {
-        // There isn't a place for these tests so just stick them here
-        assertEquals("Wrong value E",
-                4613303445314885481L, Double.doubleToLongBits(Math.E));
-        assertEquals("Wrong value PI",
-                4614256656552045848L, Double.doubleToLongBits(Math.PI));
-
-        for (int i = 500; i >= 0; i--) {
-            double d = Math.random();
-            assertTrue("Generated number is out of range: " + d, d >= 0.0
-                    && d < 1.0);
-        }
-    }
-
-    /**
-     * @tests java.lang.Math#toRadians(double)
-     */
-    @MediumTest
-    public void testToRadiansD() {
-        for (double d = 500; d >= 0; d -= 1.0) {
-            double converted = Math.toDegrees(Math.toRadians(d));
-            assertTrue("Converted number not equal to original. d = " + d,
-                    converted >= d * 0.99999999 && converted <= d * 1.00000001);
-        }
-    }
-
-    /**
-     * @tests java.lang.Math#toDegrees(double)
-     */
-    @MediumTest
-    public void testToDegreesD() {
-        for (double d = 500; d >= 0; d -= 1.0) {
-            double converted = Math.toRadians(Math.toDegrees(d));
-            assertTrue("Converted number not equal to original. d = " + d,
-                    converted >= d * 0.99999999 && converted <= d * 1.00000001);
-        }
-    }
-    
-    /**
-     * @tests java.lang.Math#ulp(double)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testUlpD() {
-        // Test for special cases
-        assertTrue("Should return NaN", Double.isNaN(Math.ulp(Double.NaN)));
-        assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY, Math
-                .ulp(Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY, Math
-                .ulp(Double.NEGATIVE_INFINITY), 0D);
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
-                .ulp(0.0), 0D);
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
-                .ulp(+0.0), 0D);
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
-                .ulp(-0.0), 0D);
-        assertEquals("Returned incorrect value", Math.pow(2, 971), Math
-                .ulp(Double.MAX_VALUE), 0D);
-        assertEquals("Returned incorrect value", Math.pow(2, 971), Math
-                .ulp(-Double.MAX_VALUE), 0D);
-
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
-                .ulp(Double.MIN_VALUE), 0D);
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
-                .ulp(-Double.MIN_VALUE), 0D);
-
-        assertEquals("Returned incorrect value", 2.220446049250313E-16, Math
-                .ulp(1.0), 0D);
-        assertEquals("Returned incorrect value", 2.220446049250313E-16, Math
-                .ulp(-1.0), 0D);
-        assertEquals("Returned incorrect value", 2.2737367544323206E-13, Math
-                .ulp(1153.0), 0D);
-    }
-
-    /**
-     * @tests java.lang.Math#ulp(float)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testUlpf() {
-        // Test for special cases
-        assertTrue("Should return NaN", Float.isNaN(Math.ulp(Float.NaN)));
-        assertEquals("Returned incorrect value", Float.POSITIVE_INFINITY, Math
-                .ulp(Float.POSITIVE_INFINITY), 0f);
-        assertEquals("Returned incorrect value", Float.POSITIVE_INFINITY, Math
-                .ulp(Float.NEGATIVE_INFINITY), 0f);
-        assertEquals("Returned incorrect value", Float.MIN_VALUE, Math
-                .ulp(0.0f), 0f);
-        assertEquals("Returned incorrect value", Float.MIN_VALUE, Math
-                .ulp(+0.0f), 0f);
-        assertEquals("Returned incorrect value", Float.MIN_VALUE, Math
-                .ulp(-0.0f), 0f);
-        assertEquals("Returned incorrect value", 2.028241E31f, Math
-                .ulp(Float.MAX_VALUE), 0f);
-        assertEquals("Returned incorrect value", 2.028241E31f, Math
-                .ulp(-Float.MAX_VALUE), 0f);
-
-        assertEquals("Returned incorrect value", 1.4E-45f, Math
-                .ulp(Float.MIN_VALUE), 0f);
-        assertEquals("Returned incorrect value", 1.4E-45f, Math
-                .ulp(-Float.MIN_VALUE), 0f);
-
-        assertEquals("Returned incorrect value", 1.1920929E-7f, Math.ulp(1.0f),
-                0f);
-        assertEquals("Returned incorrect value", 1.1920929E-7f,
-                Math.ulp(-1.0f), 0f);
-        assertEquals("Returned incorrect value", 1.2207031E-4f, Math
-                .ulp(1153.0f), 0f);
-        assertEquals("Returned incorrect value", 5.6E-45f, Math
-                .ulp(9.403954E-38f), 0f);
-    }
-}
diff --git a/tests/CoreTests/android/core/MonitorTest.java b/tests/CoreTests/android/core/MonitorTest.java
deleted file mode 100644
index 73c33db..0000000
--- a/tests/CoreTests/android/core/MonitorTest.java
+++ /dev/null
@@ -1,469 +0,0 @@
-/*
- * Copyright (C) 2007 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.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class MonitorTest extends TestCase {
-
-    @MediumTest
-    public void testWaitArgumentsTest() throws Exception {
-            /* Try some valid arguments.  These should all
-             * return very quickly.
-             */
-            try {
-                synchronized (this) {
-                    /* millisecond version */
-                    wait(1);
-                    wait(10);
-
-                    /* millisecond + nanosecond version */
-                    wait(0, 1);
-                    wait(0, 999999);
-                    wait(1, 1);
-                    wait(1, 999999);
-                }
-            } catch (InterruptedException ex) {
-                throw new RuntimeException("good Object.wait() interrupted",
-                        ex);
-            } catch (Exception ex) {
-                throw new RuntimeException("Unexpected exception when calling" +
-                        "Object.wait() with good arguments", ex);
-            }
-
-            /* Try some invalid arguments.
-             */
-            boolean sawException = false;
-            try {
-                synchronized (this) {
-                    wait(-1);
-                }
-            } catch (InterruptedException ex) {
-                throw new RuntimeException("bad Object.wait() interrupted", ex);
-            } catch (IllegalArgumentException ex) {
-                sawException = true;
-            } catch (Exception ex) {
-                throw new RuntimeException("Unexpected exception when calling" +
-                        "Object.wait() with bad arguments", ex);
-            }
-            if (!sawException) {
-                throw new RuntimeException("bad call to Object.wait() should " +
-                        "have thrown IllegalArgumentException");
-            }
-
-            sawException = false;
-            try {
-                synchronized (this) {
-                    wait(0, -1);
-                }
-            } catch (InterruptedException ex) {
-                throw new RuntimeException("bad Object.wait() interrupted", ex);
-            } catch (IllegalArgumentException ex) {
-                sawException = true;
-            } catch (Exception ex) {
-                throw new RuntimeException("Unexpected exception when calling" +
-                        "Object.wait() with bad arguments", ex);
-            }
-            if (!sawException) {
-                throw new RuntimeException("bad call to Object.wait() should " +
-                        "have thrown IllegalArgumentException");
-            }
-
-            sawException = false;
-            try {
-                synchronized (this) {
-                    /* The legal range of nanos is 0-999999. */
-                    wait(0, 1000000);
-                }
-            } catch (InterruptedException ex) {
-                throw new RuntimeException("bad Object.wait() interrupted", ex);
-            } catch (IllegalArgumentException ex) {
-                sawException = true;
-            } catch (Exception ex) {
-                throw new RuntimeException("Unexpected exception when calling" +
-                        "Object.wait() with bad arguments", ex);
-            }
-            if (!sawException) {
-                throw new RuntimeException("bad call to Object.wait() should " +
-                        "have thrown IllegalArgumentException");
-            }
-    }
-
-    private class Interrupter extends Thread {
-            Waiter waiter;
-
-            Interrupter(String name, Waiter waiter) {
-                super(name);
-                this.waiter = waiter;
-            }
-
-            public void run() {
-                try {
-                    run_inner();
-                } catch (Throwable t) {
-                    MonitorTest.errorException = t;
-                    MonitorTest.testThread.interrupt();
-                }
-            }
-
-            void run_inner() {
-                waiter.spin = true;
-                // System.out.println("InterruptTest: starting waiter");
-                waiter.start();
-
-                try {
-                    Thread.currentThread().sleep(500);
-                } catch (InterruptedException ex) {
-                    throw new RuntimeException("Test sleep interrupted.", ex);
-                }
-
-                /* Waiter is spinning, and its monitor should still be thin.
-                 */
-                // System.out.println("Test interrupting waiter");
-                waiter.interrupt();
-                waiter.spin = false;
-
-                for (int i = 0; i < 3; i++) {
-                    /* Wait for the waiter to start waiting.
-                     */
-                    synchronized (waiter.interrupterLock) {
-                        try {
-                            waiter.interrupterLock.wait();
-                        } catch (InterruptedException ex) {
-                            throw new RuntimeException("Test wait interrupted.", ex);
-                        }
-                    }
-
-                    /* Before interrupting, grab the waiter lock, which
-                     * guarantees that the waiter is already sitting in wait().
-                     */
-                    synchronized (waiter) {
-                        //System.out.println("Test interrupting waiter (" + i + ")");
-                        waiter.interrupt();
-                    }
-                }
-
-                // System.out.println("Test waiting for waiter to die.");
-                try {
-                    waiter.join();
-                } catch (InterruptedException ex) {
-                    throw new RuntimeException("Test join interrupted.", ex);
-                }
-                // System.out.println("InterruptTest done.");
-            }
-        }
-
-    private class Waiter extends Thread {
-            Object interrupterLock = new Object();
-            Boolean spin = false;
-
-            Waiter(String name) {
-                super(name);
-            }
-
-            public void run() {
-                try {
-                    run_inner();
-                } catch (Throwable t) {
-                    MonitorTest.errorException = t;
-                    MonitorTest.testThread.interrupt();
-                }
-            }
-
-            void run_inner() {
-                // System.out.println("Waiter spinning");
-                while (spin) {
-                    // We're going to get interrupted while we spin.
-                }
-                if (interrupted()) {
-                    // System.out.println("Waiter done spinning; interrupted.");
-                } else {
-                    throw new RuntimeException("Thread not interrupted " +
-                                               "during spin");
-                }
-
-                synchronized (this) {
-                    Boolean sawEx = false;
-
-                    try {
-                        synchronized (interrupterLock) {
-                            interrupterLock.notify();
-                        }
-                        // System.out.println("Waiter calling wait()");
-                        this.wait();
-                    } catch (InterruptedException ex) {
-                        sawEx = true;
-                        // System.out.println("wait(): Waiter caught " + ex);
-                    }
-                    // System.out.println("wait() finished");
-
-                    if (!sawEx) {
-                        throw new RuntimeException("Thread not interrupted " +
-                                                   "during wait()");
-                    }
-                }
-                synchronized (this) {
-                    Boolean sawEx = false;
-
-                    try {
-                        synchronized (interrupterLock) {
-                            interrupterLock.notify();
-                        }
-                        // System.out.println("Waiter calling wait(1000)");
-                        this.wait(1000);
-                    } catch (InterruptedException ex) {
-                        sawEx = true;
-                        // System.out.println("wait(1000): Waiter caught " + ex);
-                    }
-                    // System.out.println("wait(1000) finished");
-
-                    if (!sawEx) {
-                        throw new RuntimeException("Thread not interrupted " +
-                                                   "during wait(1000)");
-                    }
-                }
-                synchronized (this) {
-                    Boolean sawEx = false;
-
-                    try {
-                        synchronized (interrupterLock) {
-                            interrupterLock.notify();
-                        }
-                        // System.out.println("Waiter calling wait(1000, 5000)");
-                        this.wait(1000, 5000);
-                    } catch (InterruptedException ex) {
-                        sawEx = true;
-                        // System.out.println("wait(1000, 5000): Waiter caught " + ex);
-                    }
-                    // System.out.println("wait(1000, 5000) finished");
-
-                    if (!sawEx) {
-                        throw new RuntimeException("Thread not interrupted " +
-                                                   "during wait(1000, 5000)");
-                    }
-                }
-
-               //  System.out.println("Waiter returning");
-            }
-        }
-
-    private static Throwable errorException;
-    private static Thread testThread;
-
-    // TODO: Flaky test. Add back MediumTest annotation once fixed
-    public void testInterruptTest() throws Exception {
-
-
-            testThread = Thread.currentThread();
-            errorException = null;
-
-            Waiter waiter = new Waiter("InterruptTest Waiter");
-            Interrupter interrupter =
-                    new Interrupter("InterruptTest Interrupter", waiter);
-            interrupter.start();
-
-            try {
-                interrupter.join();
-                waiter.join();
-            } catch (InterruptedException ex) {
-                throw new RuntimeException("Test join interrupted.", ex);
-            }
-
-            if (errorException != null) {
-                throw new RuntimeException("InterruptTest failed",
-                                           errorException);
-            }
-
-
-
-
-    }
-
-     private static void deepWait(int depth, Object lock) {
-            synchronized (lock) {
-                if (depth > 0) {
-                    deepWait(depth - 1, lock);
-                } else {
-                    String threadName = Thread.currentThread().getName();
-                    try {
-                        // System.out.println(threadName + " waiting");
-                        lock.wait();
-                        // System.out.println(threadName + " done waiting");
-                    } catch (InterruptedException ex) {
-                        // System.out.println(threadName + " interrupted.");
-                    }
-                }
-            }
-        }
-
-        private class Worker extends Thread {
-            Object lock;
-            int id;
-
-            Worker(int id, Object lock) {
-                super("Worker(" + id + ")");
-                this.id = id;
-                this.lock = lock;
-            }
-
-            public void run() {
-                int iterations = 0;
-
-                while (MonitorTest.running) {
-                    MonitorTest.deepWait(id, lock);
-                    iterations++;
-                }
-                // System.out.println(getName() + " done after " + iterations + " iterations.");
-            }
-        }
-
-    private static Object commonLock = new Object();
-        private static Boolean running = false;
-
-
-    @LargeTest
-    public void testNestedMonitors() throws Exception {
-        final int NUM_WORKERS = 5;
-
-            Worker w[] = new Worker[NUM_WORKERS];
-            int i;
-
-            for (i = 0; i < NUM_WORKERS; i++) {
-                w[i] = new Worker(i * 2 - 1, new Object());
-            }
-
-            running = true;
-
-            // System.out.println("NestedMonitors: starting workers");
-            for (i = 0; i < NUM_WORKERS; i++) {
-                w[i].start();
-            }
-
-            try {
-                Thread.currentThread().sleep(1000);
-            } catch (InterruptedException ex) {
-               // System.out.println("Test sleep interrupted.");
-            }
-
-            for (i = 0; i < 100; i++) {
-                for (int j = 0; j < NUM_WORKERS; j++) {
-                    synchronized (w[j].lock) {
-                        w[j].lock.notify();
-                    }
-                }
-            }
-
-            // System.out.println("NesterMonitors: stopping workers");
-            running = false;
-            for (i = 0; i < NUM_WORKERS; i++) {
-                synchronized (w[i].lock) {
-                    w[i].lock.notifyAll();
-                }
-            }
-    }
-
-    private static class CompareAndExchange extends Thread {
-        static Object toggleLock = null;
-        static int toggle = -1;
-        static Boolean running = false;
-
-        public void run() {
-            toggleLock = new Object();
-            toggle = -1;
-
-            Worker w1 = new Worker(0, 1);
-            Worker w2 = new Worker(2, 3);
-            Worker w3 = new Worker(4, 5);
-            Worker w4 = new Worker(6, 7);
-
-            running = true;
-
-            // System.out.println("CompareAndExchange: starting workers");
-
-            w1.start();
-            w2.start();
-            w3.start();
-            w4.start();
-
-            try {
-                this.sleep(10000);
-            } catch (InterruptedException ex) {
-                // System.out.println(getName() + " interrupted.");
-            }
-
-            // System.out.println("MonitorTest: stopping workers");
-            running = false;
-
-            toggleLock = null;
-        }
-
-        class Worker extends Thread {
-            int i1;
-            int i2;
-
-            Worker(int i1, int i2) {
-                super("Worker(" + i1 + ", " + i2 + ")");
-                this.i1 = i1;
-                this.i2 = i2;
-            }
-
-            public void run() {
-                int iterations = 0;
-
-                /* Latch this because run() may set the static field to
-                 * null at some point.
-                 */
-                Object toggleLock = CompareAndExchange.toggleLock;
-
-                // System.out.println(getName() + " running");
-                try {
-                    while (CompareAndExchange.running) {
-                        synchronized (toggleLock) {
-                            int test;
-                            int check;
-
-                            if (CompareAndExchange.toggle == i1) {
-                                this.sleep(5 + i2);
-                                CompareAndExchange.toggle = test = i2;
-                            } else {
-                                this.sleep(5 + i1);
-                                CompareAndExchange.toggle = test = i1;
-                            }
-                            if ((check = CompareAndExchange.toggle) != test) {
-//                                System.out.println("Worker(" + i1 + ", " +
-//                                                   i2 + ") " + "test " + test +
-//                                                   " != toggle " + check);
-                                throw new RuntimeException(
-                                        "locked value changed");
-                            }
-                        }
-
-                        iterations++;
-                    }
-                } catch (InterruptedException ex) {
-                   // System.out.println(getName() + " interrupted.");
-                }
-
-//                System.out.println(getName() + " done after " +
-//                                   iterations + " iterations.");
-            }
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/NIOTest.java b/tests/CoreTests/android/core/NIOTest.java
deleted file mode 100644
index 9476d07..0000000
--- a/tests/CoreTests/android/core/NIOTest.java
+++ /dev/null
@@ -1,707 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.nio.Buffer;
-import java.nio.BufferOverflowException;
-import java.nio.BufferUnderflowException;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.nio.ShortBuffer;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests for some buffers from the java.nio package.
- */
-public class NIOTest extends TestCase {
-
-    void checkBuffer(Buffer b) {
-        assertTrue(0 <= b.position());
-        assertTrue(b.position() <= b.limit());
-        assertTrue(b.limit() <= b.capacity());
-    }
-
-    @SmallTest
-    public void testNIO_byte_array() throws Exception {
-        // Test byte array-based buffer
-        byteBufferTest(ByteBuffer.allocate(12));
-    }
-
-    public void testNIO_direct() throws Exception {
-        // Test native heap-allocated buffer
-        byteBufferTest(ByteBuffer.allocateDirect(12));
-    }
-
-    public void testNIO_short_array() throws Exception {
-        // Test short array-based buffer
-        short[] shortArray = new short[8];
-        ShortBuffer sb = ShortBuffer.wrap(shortArray);
-        shortBufferTest(sb);
-    }
-
-    public void testNIO_int_array() throws Exception {
-        // Test int array-based buffer
-        int[] intArray = new int[8];
-        IntBuffer ib = IntBuffer.wrap(intArray);
-        intBufferTest(ib);
-    }
-
-    public void testNIO_float_array() throws Exception {
-        // Test float array-based buffer
-        float[] floatArray = new float[8];
-        FloatBuffer fb = FloatBuffer.wrap(floatArray);
-        floatBufferTest(fb);
-    }
-
-    private void byteBufferTest(ByteBuffer b) {
-        checkBuffer(b);
-
-        // Duplicate buffers revert to big-endian.
-        b.order(ByteOrder.LITTLE_ENDIAN);
-        ByteBuffer dupe = b.duplicate();
-        assertEquals(ByteOrder.BIG_ENDIAN, dupe.order());
-        b.order(ByteOrder.BIG_ENDIAN);
-
-        // Bounds checks
-        try {
-            b.put(-1, (byte) 0);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        try {
-            b.put(b.limit(), (byte) 0);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // IndexOutOfBoundsException: offset < 0
-        try {
-            byte[] data = new byte[8];
-            b.position(0);
-            b.put(data, -1, 2);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // IndexOutOfBoundsException: length > array.length - offset
-        try {
-            byte[] data = new byte[8];
-            b.position(0);
-            b.put(data, 1, 8);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // BufferOverflowException: length > remaining()
-        try {
-            byte[] data = new byte[8];
-            b.position(b.limit() - 2);
-            b.put(data, 0, 3);
-            fail("expected exception not thrown");
-        } catch (BufferOverflowException e) {
-            // expected
-        }
-
-        // Fill buffer with bytes A0 A1 A2 A3 ...
-        b.position(0);
-        for (int i = 0; i < b.capacity(); i++) {
-            b.put((byte) (0xA0 + i));
-        }
-        try {
-            b.put((byte) 0xFF);
-            fail("expected exception not thrown");
-        } catch (BufferOverflowException e) {
-            // expected
-        }
-
-        b.position(0);
-        assertEquals((byte) 0xA7, b.get(7));
-        try {
-            b.get(12);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-        try {
-            b.get(-10);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        b.position(0);
-        b.order(ByteOrder.LITTLE_ENDIAN);
-        assertEquals((byte) 0xA0, b.get());
-        assertEquals((byte) 0xA1, b.get());
-        assertEquals((byte) 0xA2, b.get());
-        assertEquals((byte) 0xA3, b.get());
-        assertEquals((byte) 0xA4, b.get());
-        assertEquals((byte) 0xA5, b.get());
-        assertEquals((byte) 0xA6, b.get());
-        assertEquals((byte) 0xA7, b.get());
-        assertEquals((byte) 0xA8, b.get());
-        assertEquals((byte) 0xA9, b.get());
-        assertEquals((byte) 0xAA, b.get());
-        assertEquals((byte) 0xAB, b.get());
-        try {
-            b.get();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        b.position(0);
-        b.order(ByteOrder.BIG_ENDIAN);
-        assertEquals((byte) 0xA0, b.get());
-        assertEquals((byte) 0xA1, b.get());
-        assertEquals((byte) 0xA2, b.get());
-        assertEquals((byte) 0xA3, b.get());
-        assertEquals((byte) 0xA4, b.get());
-        assertEquals((byte) 0xA5, b.get());
-        assertEquals((byte) 0xA6, b.get());
-        assertEquals((byte) 0xA7, b.get());
-        assertEquals((byte) 0xA8, b.get());
-        assertEquals((byte) 0xA9, b.get());
-        assertEquals((byte) 0xAA, b.get());
-        assertEquals((byte) 0xAB, b.get());
-        try {
-            b.get();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        b.position(6);
-        b.limit(10);
-        assertEquals((byte) 0xA6, b.get());
-
-        // Check sliced buffer
-        b.position(6);
-
-        ByteBuffer bb = b.slice();
-        checkBuffer(bb);
-
-        assertEquals(0, bb.position());
-        assertEquals(4, bb.limit());
-        assertEquals(4, bb.capacity());
-
-        assertEquals((byte) 0xA6, bb.get());
-        assertEquals((byte) 0xA7, bb.get());
-        assertEquals((byte) 0xA8, bb.get());
-        assertEquals((byte) 0xA9, bb.get());
-        try {
-            bb.get();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        // Reset position and limit
-        b.position(0);
-        b.limit(b.capacity());
-
-        // Check 'getShort'
-        b.order(ByteOrder.LITTLE_ENDIAN);
-        b.position(0);
-        assertEquals((short) 0xA1A0, b.getShort());
-        assertEquals((short) 0xA3A2, b.getShort());
-        assertEquals((short) 0xA5A4, b.getShort());
-        assertEquals((short) 0xA7A6, b.getShort());
-        assertEquals((short) 0xA9A8, b.getShort());
-        assertEquals((short) 0xABAA, b.getShort());
-        try {
-            bb.getShort();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        b.order(ByteOrder.BIG_ENDIAN);
-        b.position(0);
-        assertEquals((short) 0xA0A1, b.getShort());
-        assertEquals((short) 0xA2A3, b.getShort());
-        assertEquals((short) 0xA4A5, b.getShort());
-        assertEquals((short) 0xA6A7, b.getShort());
-        assertEquals((short) 0xA8A9, b.getShort());
-        assertEquals((short) 0xAAAB, b.getShort());
-        try {
-            bb.getShort();
-           fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        // Check 'getInt'
-        b.order(ByteOrder.LITTLE_ENDIAN);
-        b.position(0);
-        assertEquals(0xA3A2A1A0, b.getInt());
-        assertEquals(0xA7A6A5A4, b.getInt());
-        assertEquals(0xABAAA9A8, b.getInt());
-        try {
-            bb.getInt();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        b.order(ByteOrder.BIG_ENDIAN);
-        b.position(0);
-        assertEquals(0xA0A1A2A3, b.getInt());
-        assertEquals(0xA4A5A6A7, b.getInt());
-        assertEquals(0xA8A9AAAB, b.getInt());
-        try {
-            bb.getInt();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        // Check 'getFloat'
-        b.order(ByteOrder.LITTLE_ENDIAN);
-        b.position(0);
-        assertEquals(0xA3A2A1A0, Float.floatToRawIntBits(b.getFloat()));
-        assertEquals(0xA7A6A5A4, Float.floatToRawIntBits(b.getFloat()));
-        assertEquals(0xABAAA9A8, Float.floatToRawIntBits(b.getFloat()));
-        try {
-            b.getFloat();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        b.order(ByteOrder.BIG_ENDIAN);
-        b.position(0);
-        assertEquals(0xA0A1A2A3, Float.floatToRawIntBits(b.getFloat()));
-        assertEquals(0xA4A5A6A7, Float.floatToRawIntBits(b.getFloat()));
-        assertEquals(0xA8A9AAAB, Float.floatToRawIntBits(b.getFloat()));
-        try {
-            b.getFloat();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        // Check 'getDouble(int position)'
-        b.order(ByteOrder.LITTLE_ENDIAN);
-        assertEquals(0xA7A6A5A4A3A2A1A0L, Double.doubleToRawLongBits(b.getDouble(0)));
-        assertEquals(0xA8A7A6A5A4A3A2A1L, Double.doubleToRawLongBits(b.getDouble(1)));
-        try {
-            b.getDouble(-1);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-        try {
-            b.getDouble(5);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        b.order(ByteOrder.BIG_ENDIAN);
-        assertEquals(0xA0A1A2A3A4A5A6A7L, Double.doubleToRawLongBits(b.getDouble(0)));
-        assertEquals(0xA1A2A3A4A5A6A7A8L, Double.doubleToRawLongBits(b.getDouble(1)));
-        try {
-            b.getDouble(-1);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-        try {
-            b.getDouble(5);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // Slice and check 'getInt'
-        b.position(1);
-        b.limit(5);
-        b.order(ByteOrder.LITTLE_ENDIAN);
-        bb = b.slice();
-        assertEquals(4, bb.capacity());
-        assertEquals(ByteOrder.BIG_ENDIAN, bb.order());
-        assertEquals(0xA1A2A3A4, bb.getInt(0));
-        bb.order(ByteOrder.LITTLE_ENDIAN);
-        assertEquals(0xA4A3A2A1, bb.getInt(0));
-
-        bb.order(ByteOrder.LITTLE_ENDIAN);
-        ShortBuffer sb = bb.asShortBuffer();
-
-        checkBuffer(sb);
-        assertEquals(2, sb.capacity());
-        assertEquals((short) 0xA2A1, sb.get());
-        assertEquals((short) 0xA4A3, sb.get());
-
-        bb.order(ByteOrder.BIG_ENDIAN);
-        sb = bb.asShortBuffer();
-
-        checkBuffer(sb);
-        assertEquals(2, sb.capacity());
-        assertEquals((short) 0xA1A2, sb.get());
-        assertEquals((short) 0xA3A4, sb.get());
-
-        bb.order(ByteOrder.LITTLE_ENDIAN);
-        IntBuffer ib = bb.asIntBuffer();
-
-        checkBuffer(ib);
-        assertEquals(1, ib.capacity());
-        assertEquals(0xA4A3A2A1, ib.get());
-
-        bb.order(ByteOrder.BIG_ENDIAN);
-        ib = bb.asIntBuffer();
-
-        checkBuffer(ib);
-        assertEquals(1, ib.capacity());
-        assertEquals(0xA1A2A3A4, ib.get());
-
-        bb.order(ByteOrder.LITTLE_ENDIAN);
-        FloatBuffer fb = bb.asFloatBuffer();
-
-        checkBuffer(fb);
-        assertEquals(1, fb.capacity());
-        assertEquals(0xA4A3A2A1, Float.floatToRawIntBits(fb.get()));
-
-        bb.order(ByteOrder.BIG_ENDIAN);
-        fb = bb.asFloatBuffer();
-
-        checkBuffer(fb);
-        assertEquals(1, fb.capacity());
-        assertEquals(0xA1A2A3A4, Float.floatToRawIntBits(fb.get()));
-    }
-
-    private void shortBufferTest(ShortBuffer sb) {
-        checkBuffer(sb);
-
-        try {
-            sb.put(-1, (short) 0);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        try {
-            sb.put(sb.limit(), (short) 0);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // IndexOutOfBoundsException: offset < 0
-        try {
-            short[] data = new short[8];
-            sb.position(0);
-            sb.put(data, -1, 2);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // IndexOutOfBoundsException: length > array.length - offset
-        try {
-            short[] data = new short[8];
-            sb.position(0);
-            sb.put(data, 1, 8);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // BufferOverflowException: length > remaining()
-        try {
-            short[] data = new short[8];
-            sb.position(sb.limit() - 2);
-            sb.put(data, 0, 3);
-            fail("expected exception not thrown");
-        } catch (BufferOverflowException e) {
-            // expected
-        }
-
-        short[] data = {0, 10, 20, 30, 40, 50, 60, 70};
-        sb.position(0);
-        sb.put(data);
-
-        try {
-            sb.get();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        sb.position(0);
-        assertEquals((short) 0, sb.get());
-        assertEquals((short) 10, sb.get());
-        assertEquals((short) 20, sb.get());
-        assertEquals((short) 30, sb.get());
-        assertEquals((short) 40, sb.get());
-        assertEquals((short) 50, sb.get());
-        assertEquals((short) 60, sb.get());
-        assertEquals((short) 70, sb.get());
-        try {
-            sb.get();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-        sb.position(1);
-        sb.put((short) 11);
-        assertEquals((short) 11, sb.get(1));
-
-        short[] ss1 = {33, 44, 55, 66};
-        sb.position(3);
-        sb.put(ss1);
-        sb.position(0);
-        assertEquals((short) 0, sb.get());
-        assertEquals((short) 11, sb.get());
-        assertEquals((short) 20, sb.get());
-        assertEquals((short) 33, sb.get());
-        assertEquals((short) 44, sb.get());
-        assertEquals((short) 55, sb.get());
-        assertEquals((short) 66, sb.get());
-        assertEquals((short) 70, sb.get());
-
-        short[] ss2 = {10, 22, 30};
-        sb.position(2);
-        sb.put(ss2, 1, 1);
-        sb.position(0);
-        assertEquals((short) 0, sb.get());
-        assertEquals((short) 11, sb.get());
-        assertEquals((short) 22, sb.get());
-        assertEquals((short) 33, sb.get());
-        assertEquals((short) 44, sb.get());
-        assertEquals((short) 55, sb.get());
-        assertEquals((short) 66, sb.get());
-        assertEquals((short) 70, sb.get());
-    }
-
-    private void intBufferTest(IntBuffer ib) {
-        checkBuffer(ib);
-
-        try {
-            ib.put(-1, (int) 0);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        try {
-            ib.put(ib.limit(), (int) 0);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // IndexOutOfBoundsException: offset < 0
-        try {
-            int[] data = new int[8];
-            ib.position(0);
-            ib.put(data, -1, 2);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // IndexOutOfBoundsException: length > array.length - offset
-        try {
-            int[] data = new int[8];
-            ib.position(0);
-            ib.put(data, 1, 8);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // BufferOverflowException: length > remaining()
-        try {
-            int[] data = new int[8];
-            ib.position(ib.limit() - 2);
-            ib.put(data, 0, 3);
-            fail("expected exception not thrown");
-        } catch (BufferOverflowException e) {
-            // expected
-        }
-
-        int[] data = {0, 10, 20, 30, 40, 50, 60, 70};
-        ib.position(0);
-        ib.put(data);
-
-        try {
-            ib.get();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        ib.position(0);
-        assertEquals((int) 0, ib.get());
-        assertEquals((int) 10, ib.get());
-        assertEquals((int) 20, ib.get());
-        assertEquals((int) 30, ib.get());
-        assertEquals((int) 40, ib.get());
-        assertEquals((int) 50, ib.get());
-        assertEquals((int) 60, ib.get());
-        assertEquals((int) 70, ib.get());
-        try {
-            ib.get();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-        ib.position(1);
-        ib.put((int) 11);
-        assertEquals((int) 11, ib.get(1));
-
-        int[] ss1 = {33, 44, 55, 66};
-        ib.position(3);
-        ib.put(ss1);
-        ib.position(0);
-        assertEquals((int) 0, ib.get());
-        assertEquals((int) 11, ib.get());
-        assertEquals((int) 20, ib.get());
-        assertEquals((int) 33, ib.get());
-        assertEquals((int) 44, ib.get());
-        assertEquals((int) 55, ib.get());
-        assertEquals((int) 66, ib.get());
-        assertEquals((int) 70, ib.get());
-
-        int[] ss2 = {10, 22, 30};
-        ib.position(2);
-        ib.put(ss2, 1, 1);
-        ib.position(0);
-        assertEquals((int) 0, ib.get());
-        assertEquals((int) 11, ib.get());
-        assertEquals((int) 22, ib.get());
-        assertEquals((int) 33, ib.get());
-        assertEquals((int) 44, ib.get());
-        assertEquals((int) 55, ib.get());
-        assertEquals((int) 66, ib.get());
-        assertEquals((int) 70, ib.get());
-    }
-
-    void floatBufferTest(FloatBuffer fb) {
-        checkBuffer(fb);
-
-        try {
-            fb.put(-1, (float) 0);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        try {
-            fb.put(fb.limit(), (float) 0);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // IndexOutOfBoundsException: offset < 0
-        try {
-            float[] data = new float[8];
-            fb.position(0);
-            fb.put(data, -1, 2);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // IndexOutOfBoundsException: length > array.length - offset
-        try {
-            float[] data = new float[8];
-            fb.position(0);
-            fb.put(data, 1, 8);
-            fail("expected exception not thrown");
-        } catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-
-        // BufferOverflowException: length > remaining()
-        try {
-            float[] data = new float[8];
-            fb.position(fb.limit() - 2);
-            fb.put(data, 0, 3);
-            fail("expected exception not thrown");
-        } catch (BufferOverflowException e) {
-            // expected
-        }
-
-        float[] data = {0, 10, 20, 30, 40, 50, 60, 70};
-        fb.position(0);
-        fb.put(data);
-
-        try {
-            fb.get();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-
-        fb.position(0);
-        assertEquals((float) 0, fb.get());
-        assertEquals((float) 10, fb.get());
-        assertEquals((float) 20, fb.get());
-        assertEquals((float) 30, fb.get());
-        assertEquals((float) 40, fb.get());
-        assertEquals((float) 50, fb.get());
-        assertEquals((float) 60, fb.get());
-        assertEquals((float) 70, fb.get());
-        try {
-            fb.get();
-            fail("expected exception not thrown");
-        } catch (BufferUnderflowException e) {
-            // expected
-        }
-        fb.position(1);
-        fb.put((float) 11);
-        assertEquals((float) 11, fb.get(1));
-
-        float[] ss1 = {33, 44, 55, 66};
-        fb.position(3);
-        fb.put(ss1);
-        fb.position(0);
-        assertEquals((float) 0, fb.get());
-        assertEquals((float) 11, fb.get());
-        assertEquals((float) 20, fb.get());
-        assertEquals((float) 33, fb.get());
-        assertEquals((float) 44, fb.get());
-        assertEquals((float) 55, fb.get());
-        assertEquals((float) 66, fb.get());
-        assertEquals((float) 70, fb.get());
-
-        float[] ss2 = {10, 22, 30};
-        fb.position(2);
-        fb.put(ss2, 1, 1);
-        fb.position(0);
-        assertEquals((float) 0, fb.get());
-        assertEquals((float) 11, fb.get());
-        assertEquals((float) 22, fb.get());
-        assertEquals((float) 33, fb.get());
-        assertEquals((float) 44, fb.get());
-        assertEquals((float) 55, fb.get());
-        assertEquals((float) 66, fb.get());
-        assertEquals((float) 70, fb.get());
-    }
-}
diff --git a/tests/CoreTests/android/core/OutputStreamWriterTest.java b/tests/CoreTests/android/core/OutputStreamWriterTest.java
deleted file mode 100644
index 1c0901e..0000000
--- a/tests/CoreTests/android/core/OutputStreamWriterTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayOutputStream;
-import java.io.OutputStreamWriter;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests basic functionality of an OutputStreamWriter.
- */
-public class OutputStreamWriterTest extends TestCase {
-    
-    @SmallTest
-    public void testOutputStreamWriter() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        ByteArrayOutputStream aa = new ByteArrayOutputStream();
-        OutputStreamWriter a = new OutputStreamWriter(aa, "ISO8859_1");
-        try {
-            a.write(str, 0, 4);
-            a.write('A');
-            // We have to flush the OutputStreamWriter to guarantee
-            // that the results will appear in the underlying OutputStream
-            a.flush();
-            assertEquals("ISO8859_1", a.getEncoding());
-            assertEquals(5, aa.size());
-            assertEquals("AbCdA", aa.toString());
-        } finally {
-            a.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/ParseIntTest.java b/tests/CoreTests/android/core/ParseIntTest.java
deleted file mode 100644
index 0e3b0c6..0000000
--- a/tests/CoreTests/android/core/ParseIntTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests for functionality of class Integer to parse integers.
- */
-public class ParseIntTest extends TestCase {
-    
-    @SmallTest
-    public void testParseInt() throws Exception {
-        assertEquals(0, Integer.parseInt("0", 10));
-        assertEquals(473, Integer.parseInt("473", 10));
-        assertEquals(0, Integer.parseInt("-0", 10));
-        assertEquals(-255, Integer.parseInt("-FF", 16));
-        assertEquals(102, Integer.parseInt("1100110", 2));
-        assertEquals(2147483647, Integer.parseInt("2147483647", 10));
-        assertEquals(-2147483648, Integer.parseInt("-2147483648", 10));
-
-        try {
-            Integer.parseInt("2147483648", 10);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        try {
-            Integer.parseInt("-2147483649", 10);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        // One digit too many
-        try {
-            Integer.parseInt("21474836470", 10);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        try {
-            Integer.parseInt("-21474836480", 10);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        try {
-            Integer.parseInt("21474836471", 10);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        try {
-            Integer.parseInt("-21474836481", 10);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        try {
-            Integer.parseInt("214748364710", 10);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        try {
-            Integer.parseInt("-214748364811", 10);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        try {
-            Integer.parseInt("99", 8);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        try {
-            Integer.parseInt("Kona", 10);
-            fail();
-        } catch (NumberFormatException e) {
-            // ok
-        }
-
-        assertEquals(411787, Integer.parseInt("Kona", 27));
-    }
-}
diff --git a/tests/CoreTests/android/core/PipedStreamTest.java b/tests/CoreTests/android/core/PipedStreamTest.java
deleted file mode 100644
index d98bc10..0000000
--- a/tests/CoreTests/android/core/PipedStreamTest.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * Copyright (C) 2007 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-class Fibonacci {
-    int n1 = -1;
-    int n2;
-
-    public int next() {
-        if (n1 < 0) {
-            n1 = 0;
-            return 0;
-        } else if (n1 == 0) {
-            n2 = 0;
-            n1 = 1;
-            return 1;
-        } else {
-            int ret = n1 + n2;
-            n2 = n1;
-            n1 = ret;
-            return ret;
-        }
-    }
-}
-
-
-public class PipedStreamTest extends TestCase {
-
-    private abstract static class TestThread extends Thread {
-        public abstract void runTest() throws Exception;
-
-        public final void run() {
-            try {
-                runTest();
-            } catch (Throwable e) {
-                android.util.Log.e("PST", "Got exception " + e, e);
-                android.util.Log.e("PST", android.util.Log.getStackTraceString(e));
-                exception = e;
-            }
-        }
-
-        Throwable exception;
-        int countRead = 0;
-    }
-
-    @MediumTest
-    public void testA() throws Exception {
-
-        final PipedInputStream in = new PipedInputStream();
-        final PipedOutputStream out = new PipedOutputStream(in);
-
-        assertEquals(0, in.available());
-
-        TestThread reader, writer;
-
-        reader = new TestThread() {
-            Fibonacci fib = new Fibonacci();
-
-            @Override
-            public void runTest() throws Exception {
-                int readInt;
-                byte readByte;
-
-                for (; ;) {
-                    readInt = in.read();
-
-                    if (readInt == -1) {
-                        return;
-                    }
-
-                    readByte = (byte) readInt;
-                    assertEquals(readByte, (byte) fib.next());
-                    countRead++;
-                }
-            }
-        };
-
-        reader.start();
-
-        writer = new TestThread() {
-            Fibonacci fib = new Fibonacci();
-
-            @Override
-            public void runTest() throws Exception {
-                for (int i = 0; i < 2000; i++) {
-                    int toWrite = fib.next();
-                    out.write(toWrite);
-                }
-                out.close();
-            }
-        };
-
-        writer.start();
-
-
-        for (; ;) {
-            try {
-                reader.join(60 * 1000);
-                writer.join(1000);
-                break;
-            } catch (InterruptedException ex) {
-            }
-        }
-
-        assertEquals(2000, reader.countRead);
-
-        if (writer.exception != null) {
-            throw new Exception(writer.exception);
-        }
-        if (reader.exception != null) {
-            throw new Exception(reader.exception);
-        }
-    }
-
-    @MediumTest
-    public void testB() throws Exception {
-        final PipedInputStream in = new PipedInputStream();
-        final PipedOutputStream out = new PipedOutputStream(in);
-
-        assertEquals(0, in.available());
-
-        TestThread reader, writer;
-
-        reader = new TestThread() {
-            Fibonacci fib = new Fibonacci();
-
-            @Override
-            public void runTest() throws Exception {
-                byte readBytes[] = new byte[5];
-                int ret;
-
-                for (; ;) {
-                    int nread = 0;
-                    while (nread < 5) {
-                        ret = in.read(readBytes, nread, readBytes.length - nread);
-
-                        if (ret == -1) {
-                            return;
-                        }
-                        nread += ret;
-                    }
-
-                    assertEquals(5, nread);
-
-                    int readInt = (((int) readBytes[0] & 0xff) << 24)
-                            | (((int) readBytes[1] & 0xff) << 16)
-                            | (((int) readBytes[2] & 0xff) << 8)
-                            | (((int) readBytes[3] & 0xff));
-
-
-                    assertEquals("Error at " + countRead, fib.next(), readInt);
-                    assertEquals("Error at " + countRead, 0, readBytes[4]);
-                    countRead++;
-                }
-            }
-        };
-
-        reader.start();
-
-        writer = new TestThread() {
-            Fibonacci fib = new Fibonacci();
-
-            @Override
-            public void runTest() throws Exception {
-                byte writeBytes[] = new byte[5];
-                for (int i = 0; i < 2000; i++) {
-                    int toWrite = fib.next();
-                    writeBytes[0] = (byte) (toWrite >> 24);
-                    writeBytes[1] = (byte) (toWrite >> 16);
-                    writeBytes[2] = (byte) (toWrite >> 8);
-                    writeBytes[3] = (byte) (toWrite);
-                    writeBytes[4] = 0;
-                    out.write(writeBytes, 0, writeBytes.length);
-                }
-                out.close();
-            }
-        };
-
-        writer.start();
-
-
-        for (; ;) {
-            try {
-                reader.join(60 * 1000);
-                writer.join(1000);
-                break;
-            } catch (InterruptedException ex) {
-            }
-        }
-
-        if (reader.exception != null) {
-            throw new Exception(reader.exception);
-        }
-        if (writer.exception != null) {
-            throw new Exception(writer.exception);
-        }
-
-        assertEquals(2000, reader.countRead);
-    }
-
-    @SmallTest
-    public void testC() throws Exception {
-        final PipedInputStream in = new PipedInputStream();
-        final PipedOutputStream out = new PipedOutputStream(in);
-        final byte readBytes[] = new byte[1024 * 2];
-
-        assertEquals(0, in.available());
-
-        TestThread reader, writer;
-
-        reader = new TestThread() {
-            @Override
-            public void runTest() throws Exception {
-                int ret;
-
-                for (; ;) {
-                    int nread = 0;
-                    while (nread < readBytes.length) {
-                        ret = in.read(readBytes, nread, readBytes.length - nread);
-
-                        if (ret == -1) {
-                            return;
-                        }
-                        nread += ret;
-                    }
-                }
-            }
-        };
-
-        reader.start();
-
-        writer = new TestThread() {
-            Fibonacci fib = new Fibonacci();
-
-            @Override
-            public void runTest() throws Exception {
-                byte writeBytes[] = new byte[1024 * 2];
-                for (int i = 0; i < (writeBytes.length - 4); i += 4) {
-                    int toWrite = fib.next();
-                    writeBytes[i    ] = (byte) (toWrite >> 24);
-                    writeBytes[i + 1] = (byte) (toWrite >> 16);
-                    writeBytes[i + 2] = (byte) (toWrite >> 8);
-                    writeBytes[i + 3] = (byte) (toWrite);
-                }
-                out.write(writeBytes, 0, writeBytes.length);
-                out.close();
-            }
-        };
-
-        writer.start();
-
-
-        for (; ;) {
-            try {
-                reader.join(60 * 1000);
-                writer.join(1000);
-                break;
-            } catch (InterruptedException ex) {
-            }
-        }
-
-        if (reader.exception != null) {
-            throw new Exception(reader.exception);
-        }
-        if (writer.exception != null) {
-            throw new Exception(writer.exception);
-        }
-
-        Fibonacci fib = new Fibonacci();
-        for (int i = 0; i < (readBytes.length - 4); i += 4) {
-            int readInt = (((int) readBytes[i] & 0xff) << 24)
-                    | (((int) readBytes[i + 1] & 0xff) << 16)
-                    | (((int) readBytes[i + 2] & 0xff) << 8)
-                    | (((int) readBytes[i + 3] & 0xff));
-
-            assertEquals("Error at " + i, readInt, fib.next());
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/PrintWriterTest.java b/tests/CoreTests/android/core/PrintWriterTest.java
deleted file mode 100644
index 09ee389..0000000
--- a/tests/CoreTests/android/core/PrintWriterTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class PrintWriterTest extends TestCase {
-
-    @SmallTest
-    public void testPrintWriter() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        StringWriter aa = new StringWriter();
-        PrintWriter a = new PrintWriter(aa);
-
-        try {
-            a.write(str, 0, 26);
-            a.write('X');
-
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", aa.toString());
-
-            a.write("alphabravodelta", 5, 5);
-            a.append('X');
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoX", aa.toString());
-            a.append("omega");
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoXomega", aa.toString());
-            a.print("ZZZ");
-            assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoXomegaZZZ", aa.toString());
-        } finally {
-            a.close();
-        }
-
-        StringWriter ba = new StringWriter();
-        PrintWriter b = new PrintWriter(ba);
-        try {
-            b.print(true);
-            b.print((char) 'A');
-            b.print("BCD".toCharArray());
-            b.print((double) 1.2);
-            b.print((float) 3);
-            b.print((int) 4);
-            b.print((long) 5);
-            assertEquals("trueABCD1.23.045", ba.toString());
-            b.println();
-            b.println(true);
-            b.println((char) 'A');
-            b.println("BCD".toCharArray());
-            b.println((double) 1.2);
-            b.println((float) 3);
-            b.println((int) 4);
-            b.println((long) 5);
-            b.print("THE END");
-            assertEquals("trueABCD1.23.045\ntrue\nA\nBCD\n1.2\n3.0\n4\n5\nTHE END", ba.toString());
-        } finally {
-            b.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/PushbackInputStreamTest.java b/tests/CoreTests/android/core/PushbackInputStreamTest.java
deleted file mode 100644
index 44cfd8a..0000000
--- a/tests/CoreTests/android/core/PushbackInputStreamTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.PushbackInputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class PushbackInputStreamTest extends TestCase {
-
-    @SmallTest
-    public void testPushbackInputStream() throws Exception {
-        String str = "AbCdEfGhIjKlM\nOpQrStUvWxYz";
-        ByteArrayInputStream aa = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream ba = new ByteArrayInputStream(str.getBytes());
-        ByteArrayInputStream ca = new ByteArrayInputStream(str.getBytes());
-
-        PushbackInputStream a = new PushbackInputStream(aa, 7);
-        try {
-            a.unread("push".getBytes());
-            assertEquals("pushAbCdEfGhIjKlM\nOpQrStUvWxYz", IOUtil.read(a));
-        } finally {
-            a.close();
-        }
-
-        PushbackInputStream b = new PushbackInputStream(ba, 9);
-        try {
-            b.unread('X');
-            assertEquals("XAbCdEfGhI", IOUtil.read(b, 10));
-        } finally {
-            b.close();
-        }
-
-        PushbackInputStream c = new PushbackInputStream(ca);
-        try {
-            assertEquals("bdfhjl\nprtvxz", IOUtil.skipRead(c));
-        } finally {
-            c.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/PushbackReaderTest.java b/tests/CoreTests/android/core/PushbackReaderTest.java
deleted file mode 100644
index ef62c28..0000000
--- a/tests/CoreTests/android/core/PushbackReaderTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.PushbackReader;
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class PushbackReaderTest extends TestCase {
-
-    @SmallTest
-    public void testPushbackReader() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        StringReader aa = new StringReader(str);
-        StringReader ba = new StringReader(str);
-        StringReader ca = new StringReader(str);
-
-        PushbackReader a = new PushbackReader(aa, 5);
-        try {
-            a.unread("PUSH".toCharArray());
-            assertEquals("PUSHAbCdEfGhIjKlMnOpQrStUvWxYz", IOUtil.read(a));
-        } finally {
-            a.close();
-        }
-
-        PushbackReader b = new PushbackReader(ba, 15);
-        try {
-            b.unread('X');
-            assertEquals("XAbCdEfGhI", IOUtil.read(b, 10));
-        } finally {
-            b.close();
-        }
-
-        PushbackReader c = new PushbackReader(ca);
-        try {
-            assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
-        } finally {
-            c.close();
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/ReflectArrayTest.java b/tests/CoreTests/android/core/ReflectArrayTest.java
deleted file mode 100644
index 20ee8a4..0000000
--- a/tests/CoreTests/android/core/ReflectArrayTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.lang.reflect.Array;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Test java.lang.reflect.Array methods.
- */
-public class ReflectArrayTest extends TestCase {
-
-    @SmallTest
-    public void testSingleInt() throws Exception {
-        Object intArray = Array.newInstance(Integer.TYPE, 2);
-
-        int[] array = (int[]) intArray;
-        array[0] = 5;
-        Array.setInt(intArray, 1, 6);
-
-        assertEquals(5, Array.getInt(intArray, 0));
-        assertEquals(6, array[1]);
-
-        try {
-            array[2] = 27;
-            fail("store should have failed");
-        } catch (ArrayIndexOutOfBoundsException abe) {
-            // expected
-        }
-
-        assertEquals(2, array.length);
-        assertEquals(Array.getLength(intArray), array.length);
-
-        try {
-            int[][] wrongArray = (int[][]) intArray;
-            fail("cast should have failed");
-        } catch (ClassCastException cce) {
-            // expected
-        }
-
-        intArray = Array.newInstance(Integer.TYPE, 0);
-        assertEquals(0, Array.getLength(intArray));
-    }
-
-    @SmallTest
-    public void testSingle() throws Exception {
-        Object strArray = Array.newInstance(String.class, 2);
-
-        String[] array = (String[]) strArray;
-        array[0] = "entry zero";
-        Array.set(strArray, 1, "entry one");
-
-        //System.out.println("array: " + array);
-
-        assertEquals("entry zero", Array.get(strArray, 0));
-        assertEquals("entry one", array[1]);
-
-        assertEquals(2, array.length);
-        assertEquals(Array.getLength(strArray), array.length);
-    }
-
-    @SmallTest
-    public void testMultiInt() throws Exception {
-        int[] dimensions = {3, 2, 1};
-        Object intIntIntArray = Array.newInstance(Integer.TYPE, dimensions);
-        int[][][] array3 = (int[][][]) intIntIntArray;
-
-        array3[0][0][0] = 123;
-        array3[2][1][0] = 456;
-
-        try {
-            array3[2][1][1] = 768;
-            fail("store should have failed");
-        } catch (ArrayIndexOutOfBoundsException abe) {
-            // expected
-        }
-
-        //System.out.println("array3: " + array3);
-    }
-
-    @SmallTest
-    public void testMulti() throws Exception {
-        int[] dimensions = {1, 2, 3};
-        Object strStrStrArray = Array.newInstance(String.class, dimensions);
-        String[][][] array3 = (String[][][]) strStrStrArray;
-
-        array3[0][0][0] = "zero zero zero";
-        array3[0][1][2] = "zero one two";
-
-        try {
-            array3[1][0][0] = "bad store";
-            fail("store should have failed");
-        } catch (ArrayIndexOutOfBoundsException abe) {
-            // expected
-        }
-
-        try {
-            String[][] array2 = (String[][]) strStrStrArray;
-            fail("expecting bad cast");
-        } catch (ClassCastException cce) {
-            // expected
-        }
-        //System.out.println("array3: " + array3);
-
-
-        int[] dimensions2 = {1, 2};
-        strStrStrArray = Array.newInstance(String[].class, dimensions2);
-        array3 = (String[][][]) strStrStrArray;
-        array3[0][1] = new String[3];
-        array3[0][1][2] = "zero one two";
-        try {
-            array3[1][0][0] = "bad store";
-            fail("store should have failed");
-        } catch (ArrayIndexOutOfBoundsException abe) {
-            // expected
-        }
-        //System.out.println("array3: " + array3);
-    }
-}
-
diff --git a/tests/CoreTests/android/core/SerializationTest.java b/tests/CoreTests/android/core/SerializationTest.java
deleted file mode 100644
index 9644d03..0000000
--- a/tests/CoreTests/android/core/SerializationTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests serialization of user-level classes.
- */
-public class SerializationTest extends TestCase {
-
-    static class MySerializable implements Serializable {}
-
-    @SmallTest
-    public void testSerialization() throws IOException, ClassNotFoundException {
-        ByteArrayOutputStream bout = new ByteArrayOutputStream();
-        ObjectOutputStream oout = new ObjectOutputStream(bout);
-        oout.writeObject(new MySerializable());
-        oout.close();
-
-        ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
-        Object o = new ObjectInputStream(bin).readObject();
-        assertTrue(o instanceof MySerializable);
-    }
-}
diff --git a/tests/CoreTests/android/core/StreamTokenizerTest.java b/tests/CoreTests/android/core/StreamTokenizerTest.java
deleted file mode 100644
index 5013860..0000000
--- a/tests/CoreTests/android/core/StreamTokenizerTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.StreamTokenizer;
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Tests for the StreamTokenizer
- */
-public class StreamTokenizerTest extends TestCase {
-    
-    @MediumTest
-    public void testStreamTokenizer() throws Exception {
-        String str = "Testing 12345 \n alpha \r\n omega";
-        String strb = "-3.8 'BLIND mice' \r sEe /* how */ they run";
-        StringReader aa = new StringReader(str);
-        StringReader ba = new StringReader(strb);
-        StreamTokenizer a = new StreamTokenizer(aa);
-        StreamTokenizer b = new StreamTokenizer(ba);
-
-        assertEquals(1, a.lineno());
-        assertEquals(StreamTokenizer.TT_WORD, a.nextToken());
-        assertEquals("Token[Testing], line 1", a.toString());
-        assertEquals(StreamTokenizer.TT_NUMBER, a.nextToken());
-        assertEquals("Token[n=12345.0], line 1", a.toString());
-        assertEquals(StreamTokenizer.TT_WORD, a.nextToken());
-        assertEquals("Token[alpha], line 2", a.toString());
-        assertEquals(StreamTokenizer.TT_WORD, a.nextToken());
-        assertEquals("Token[omega], line 3", a.toString());
-        assertEquals(StreamTokenizer.TT_EOF, a.nextToken());
-        assertEquals("Token[EOF], line 3", a.toString());
-
-        b.commentChar('u');
-        b.eolIsSignificant(true);
-        b.lowerCaseMode(true);
-        b.ordinaryChar('y');
-        b.slashStarComments(true);
-
-        assertEquals(StreamTokenizer.TT_NUMBER, b.nextToken());
-        assertEquals(-3.8, b.nval);
-        assertEquals("Token[n=-3.8], line 1", b.toString());
-        assertEquals(39, b.nextToken()); // '
-        assertEquals("Token[BLIND mice], line 1", b.toString());
-        assertEquals(10, b.nextToken()); // \n
-        assertEquals("Token[EOL], line 2", b.toString());
-        assertEquals(StreamTokenizer.TT_WORD, b.nextToken());
-        assertEquals("Token[see], line 2", b.toString());
-        assertEquals(StreamTokenizer.TT_WORD, b.nextToken());
-        assertEquals("Token[the], line 2", b.toString());
-        assertEquals(121, b.nextToken()); // y
-        assertEquals("Token['y'], line 2", b.toString());
-        assertEquals(StreamTokenizer.TT_WORD, b.nextToken());
-        assertEquals("Token[r], line 2", b.toString());
-        assertEquals(StreamTokenizer.TT_EOF, b.nextToken());
-        assertEquals("Token[EOF], line 2", b.toString());
-
-        // A harmony regression test
-        byte[] data = new byte[]{(byte) '-'};
-        StreamTokenizer tokenizer = new StreamTokenizer(new ByteArrayInputStream(data));
-        tokenizer.nextToken();
-        String result = tokenizer.toString();
-        assertEquals("Token['-'], line 1", result);
-
-        // another harmony regression test
-        byte[] data2 = new byte[]{(byte) '"',
-                (byte) 'H',
-                (byte) 'e',
-                (byte) 'l',
-                (byte) 'l',
-                (byte) 'o',
-                (byte) '"'};
-        StreamTokenizer tokenizer2 = new StreamTokenizer(new ByteArrayInputStream(data2));
-        tokenizer2.nextToken();
-        result = tokenizer2.toString();
-        assertEquals("Token[Hello], line 1", result);
-    }
-}
diff --git a/tests/CoreTests/android/core/StrictMathTest.java b/tests/CoreTests/android/core/StrictMathTest.java
deleted file mode 100644
index 92e6cb6..0000000
--- a/tests/CoreTests/android/core/StrictMathTest.java
+++ /dev/null
@@ -1,855 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You 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.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class StrictMathTest extends TestCase {
-
-    private final double HYP = StrictMath.sqrt(2.0);
-
-    private final double OPP = 1.0;
-
-    private final double ADJ = 1.0;
-
-    /* Required to make previous preprocessor flags work - do not remove */
-    int unused = 0;
-
-    /**
-     * @tests java.lang.StrictMath#abs(double)
-     */
-    @SmallTest
-    public void testAbsD() {
-        // Test for method double java.lang.StrictMath.abs(double)
-
-        assertTrue("Incorrect double abs value",
-                (StrictMath.abs(-1908.8976) == 1908.8976));
-        assertTrue("Incorrect double abs value",
-                (StrictMath.abs(1908.8976) == 1908.8976));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#abs(float)
-     */
-    @SmallTest
-    public void testAbsF() {
-        // Test for method float java.lang.StrictMath.abs(float)
-        assertTrue("Incorrect float abs value",
-                (StrictMath.abs(-1908.8976f) == 1908.8976f));
-        assertTrue("Incorrect float abs value",
-                (StrictMath.abs(1908.8976f) == 1908.8976f));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#abs(int)
-     */
-    @SmallTest
-    public void testAbsI() {
-        // Test for method int java.lang.StrictMath.abs(int)
-        assertTrue("Incorrect int abs value",
-                (StrictMath.abs(-1908897) == 1908897));
-        assertTrue("Incorrect int abs value",
-                (StrictMath.abs(1908897) == 1908897));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#abs(long)
-     */
-    @SmallTest
-    public void testAbsJ() {
-        // Test for method long java.lang.StrictMath.abs(long)
-        assertTrue("Incorrect long abs value", (StrictMath
-                .abs(-19088976000089L) == 19088976000089L));
-        assertTrue("Incorrect long abs value",
-                (StrictMath.abs(19088976000089L) == 19088976000089L));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#acos(double)
-     */
-    @SmallTest
-    public void testAcosD() {
-        // Test for method double java.lang.StrictMath.acos(double)
-        assertTrue("Returned incorrect arc cosine", StrictMath.cos(StrictMath
-                .acos(ADJ / HYP)) == ADJ / HYP);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#asin(double)
-     */
-    @SmallTest
-    public void testAsinD() {
-        // Test for method double java.lang.StrictMath.asin(double)
-        assertTrue("Returned incorrect arc sine", StrictMath.sin(StrictMath
-                .asin(OPP / HYP)) == OPP / HYP);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#atan(double)
-     */
-    @SmallTest
-    public void testAtanD() {
-        // Test for method double java.lang.StrictMath.atan(double)
-        double answer = StrictMath.tan(StrictMath.atan(1.0));
-        assertTrue("Returned incorrect arc tangent: " + answer, answer <= 1.0
-                && answer >= 9.9999999999999983E-1);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#atan2(double,double)
-     */
-    @SmallTest
-    public void testAtan2DD() {
-        // Test for method double java.lang.StrictMath.atan2(double, double)
-        double answer = StrictMath.atan(StrictMath.tan(1.0));
-        assertTrue("Returned incorrect arc tangent: " + answer, answer <= 1.0
-                && answer >= 9.9999999999999983E-1);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#cbrt(double)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testCbrtD() {
-        // Test for special situations
-        assertTrue("Should return Double.NaN", Double.isNaN(StrictMath
-                .cbrt(Double.NaN)));
-        assertEquals("Should return Double.POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath
-                .cbrt(Double.POSITIVE_INFINITY));
-        assertEquals("Should return Double.NEGATIVE_INFINITY",
-                Double.NEGATIVE_INFINITY, StrictMath
-                .cbrt(Double.NEGATIVE_INFINITY));
-        assertEquals(Double.doubleToLongBits(0.0), Double
-                .doubleToLongBits(StrictMath.cbrt(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(StrictMath.cbrt(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(StrictMath.cbrt(-0.0)));
-
-        assertEquals("Should return 3.0", 3.0, StrictMath.cbrt(27.0));
-        assertEquals("Should return 23.111993172558684", 23.111993172558684,
-                StrictMath.cbrt(12345.6));
-        assertEquals("Should return 5.643803094122362E102",
-                5.643803094122362E102, StrictMath.cbrt(Double.MAX_VALUE));
-        assertEquals("Should return 0.01", 0.01, StrictMath.cbrt(0.000001));
-
-        assertEquals("Should return -3.0", -3.0, StrictMath.cbrt(-27.0));
-        assertEquals("Should return -23.111993172558684", -23.111993172558684,
-                StrictMath.cbrt(-12345.6));
-        assertEquals("Should return 1.7031839360032603E-108",
-                1.7031839360032603E-108, StrictMath.cbrt(Double.MIN_VALUE));
-        assertEquals("Should return -0.01", -0.01, StrictMath.cbrt(-0.000001));
-
-        try {
-            StrictMath.cbrt((Double) null);
-            fail("Should throw NullPointerException");
-        } catch (NullPointerException e) {
-            //expected
-        }
-    }
-
-    /**
-     * @tests java.lang.StrictMath#ceil(double)
-     */
-    @SmallTest
-    public void testCeilD() {
-        // Test for method double java.lang.StrictMath.ceil(double)
-        assertEquals("Incorrect ceiling for double",
-                79, StrictMath.ceil(78.89), 0.0);
-        assertEquals("Incorrect ceiling for double",
-                -78, StrictMath.ceil(-78.89), 0.0);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#cos(double)
-     */
-    @SmallTest
-    public void testCosD() {
-        // Test for method double java.lang.StrictMath.cos(double)
-
-        assertTrue("Returned incorrect cosine", StrictMath.cos(StrictMath
-                .acos(ADJ / HYP)) == ADJ / HYP);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#cosh(double)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testCosh_D() {
-        // Test for special situations        
-        assertTrue("Should return NaN", Double.isNaN(StrictMath
-                .cosh(Double.NaN)));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath
-                .cosh(Double.POSITIVE_INFINITY));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath
-                .cosh(Double.NEGATIVE_INFINITY));
-        assertEquals("Should return 1.0", 1.0, StrictMath.cosh(+0.0));
-        assertEquals("Should return 1.0", 1.0, StrictMath.cosh(-0.0));
-
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.cosh(1234.56));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.cosh(-1234.56));
-        assertEquals("Should return 1.0000000000005", 1.0000000000005,
-                StrictMath.cosh(0.000001));
-        assertEquals("Should return 1.0000000000005", 1.0000000000005,
-                StrictMath.cosh(-0.000001));
-        assertEquals("Should return 5.212214351945598", 5.212214351945598,
-                StrictMath.cosh(2.33482));
-
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.cosh(Double.MAX_VALUE));
-        assertEquals("Should return 1.0", 1.0, StrictMath
-                .cosh(Double.MIN_VALUE));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#exp(double)
-     */
-    @SmallTest
-    public void testExpD() {
-        // Test for method double java.lang.StrictMath.exp(double)
-        assertTrue("Incorrect answer returned for simple power", StrictMath
-                .abs(StrictMath.exp(4D) - StrictMath.E * StrictMath.E
-                        * StrictMath.E * StrictMath.E) < 0.1D);
-        assertTrue("Incorrect answer returned for larger power", StrictMath
-                .log(StrictMath.abs(StrictMath.exp(5.5D)) - 5.5D) < 10.0D);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#expm1(double)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testExpm1D() {
-        //Test for special cases        
-        assertTrue("Should return NaN", Double.isNaN(StrictMath.expm1(Double.NaN)));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.expm1(Double.POSITIVE_INFINITY));
-        assertEquals("Should return -1.0", -1.0, StrictMath
-                .expm1(Double.NEGATIVE_INFINITY));
-        assertEquals(Double.doubleToLongBits(0.0), Double
-                .doubleToLongBits(StrictMath.expm1(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(StrictMath.expm1(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(StrictMath.expm1(-0.0)));
-
-        assertEquals("Should return -9.999950000166666E-6",
-                -9.999950000166666E-6, StrictMath.expm1(-0.00001));
-        assertEquals("Should return 1.0145103074469635E60",
-                1.0145103074469635E60, StrictMath.expm1(138.16951162));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath
-                .expm1(123456789123456789123456789.4521584223));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.expm1(Double.MAX_VALUE));
-        assertEquals("Should return MIN_VALUE", Double.MIN_VALUE, StrictMath
-                .expm1(Double.MIN_VALUE));
-
-    }
-
-    /**
-     * @tests java.lang.StrictMath#floor(double)
-     */
-    @SmallTest
-    public void testFloorD() {
-        // Test for method double java.lang.StrictMath.floor(double)
-        assertEquals("Incorrect floor for double",
-                78, StrictMath.floor(78.89), 0.0);
-        assertEquals("Incorrect floor for double",
-                -79, StrictMath.floor(-78.89), 0.0);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#hypot(double,double)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testHypotDD() {
-        // Test for special cases
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.hypot(Double.POSITIVE_INFINITY,
-                1.0));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.hypot(Double.NEGATIVE_INFINITY,
-                123.324));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.hypot(-758.2587,
-                Double.POSITIVE_INFINITY));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.hypot(5687.21,
-                Double.NEGATIVE_INFINITY));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.hypot(Double.POSITIVE_INFINITY,
-                Double.NEGATIVE_INFINITY));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.hypot(Double.NEGATIVE_INFINITY,
-                Double.POSITIVE_INFINITY));
-        assertTrue("Should return NaN", Double.isNaN(StrictMath.hypot(Double.NaN,
-                2342301.89843)));
-        assertTrue("Should return NaN", Double.isNaN(StrictMath.hypot(-345.2680,
-                Double.NaN)));
-
-        assertEquals("Should return 2396424.905416697", 2396424.905416697, StrictMath
-                .hypot(12322.12, -2396393.2258));
-        assertEquals("Should return 138.16958070558556", 138.16958070558556,
-                StrictMath.hypot(-138.16951162, 0.13817035864));
-        assertEquals("Should return 1.7976931348623157E308",
-                1.7976931348623157E308, StrictMath.hypot(Double.MAX_VALUE, 211370.35));
-        assertEquals("Should return 5413.7185", 5413.7185, StrictMath.hypot(
-                -5413.7185, Double.MIN_VALUE));
-
-    }
-
-    /**
-     * @tests java.lang.StrictMath#IEEEremainder(double,double)
-     */
-    @SmallTest
-    public void testIEEEremainderDD() {
-        // Test for method double java.lang.StrictMath.IEEEremainder(double,
-        // double)
-        assertEquals("Incorrect remainder returned", 0.0, StrictMath.IEEEremainder(
-                1.0, 1.0), 0.0);
-        assertTrue(
-                "Incorrect remainder returned",
-                StrictMath.IEEEremainder(1.32, 89.765) >= 1.4705063220631647E-2
-                        || StrictMath.IEEEremainder(1.32, 89.765) >= 1.4705063220631649E-2);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#log(double)
-     */
-    @SmallTest
-    public void testLogD() {
-        // Test for method double java.lang.StrictMath.log(double)
-        for (double d = 10; d >= -10; d -= 0.5) {
-            double answer = StrictMath.log(StrictMath.exp(d));
-            assertTrue("Answer does not equal expected answer for d = " + d
-                    + " answer = " + answer,
-                    StrictMath.abs(answer - d) <= StrictMath
-                            .abs(d * 0.00000001));
-        }
-    }
-
-    /**
-     * @tests java.lang.StrictMath#log10(double)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testLog10D() {
-        // Test for special cases        
-        assertTrue("Should return NaN", Double.isNaN(StrictMath
-                .log10(Double.NaN)));
-        assertTrue("Should return NaN", Double.isNaN(StrictMath
-                .log10(-2541.05745687234187532)));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath
-                .log10(Double.POSITIVE_INFINITY));
-        assertEquals("Should return NEGATIVE_INFINITY",
-                Double.NEGATIVE_INFINITY, StrictMath.log10(0.0));
-        assertEquals("Should return NEGATIVE_INFINITY",
-                Double.NEGATIVE_INFINITY, StrictMath.log10(+0.0));
-        assertEquals("Should return NEGATIVE_INFINITY",
-                Double.NEGATIVE_INFINITY, StrictMath.log10(-0.0));
-        assertEquals("Should return 14.0", 14.0, StrictMath.log10(StrictMath
-                .pow(10, 14)));
-
-        assertEquals("Should return 3.7389561269540406", 3.7389561269540406,
-                StrictMath.log10(5482.2158));
-        assertEquals("Should return 14.661551142893833", 14.661551142893833,
-                StrictMath.log10(458723662312872.125782332587));
-        assertEquals("Should return -0.9083828622192334", -0.9083828622192334,
-                StrictMath.log10(0.12348583358871));
-        assertEquals("Should return 308.25471555991675", 308.25471555991675,
-                StrictMath.log10(Double.MAX_VALUE));
-        assertEquals("Should return -323.3062153431158", -323.3062153431158,
-                StrictMath.log10(Double.MIN_VALUE));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#log1p(double)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testLog1pD() {
-        // Test for special cases
-        assertTrue("Should return NaN", Double.isNaN(StrictMath
-                .log1p(Double.NaN)));
-        assertTrue("Should return NaN", Double.isNaN(StrictMath
-                .log1p(-32.0482175)));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath
-                .log1p(Double.POSITIVE_INFINITY));
-        assertEquals(Double.doubleToLongBits(0.0), Double
-                .doubleToLongBits(StrictMath.log1p(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(StrictMath.log1p(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(StrictMath.log1p(-0.0)));
-
-        assertEquals("Should return -0.2941782295312541", -0.2941782295312541,
-                StrictMath.log1p(-0.254856327));
-        assertEquals("Should return 7.368050685564151", 7.368050685564151,
-                StrictMath.log1p(1583.542));
-        assertEquals("Should return 0.4633708685409921", 0.4633708685409921,
-                StrictMath.log1p(0.5894227));
-        assertEquals("Should return 709.782712893384", 709.782712893384,
-                StrictMath.log1p(Double.MAX_VALUE));
-        assertEquals("Should return Double.MIN_VALUE", Double.MIN_VALUE,
-                StrictMath.log1p(Double.MIN_VALUE));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#max(double,double)
-     */
-    @SmallTest
-    public void testMaxDD() {
-        // Test for method double java.lang.StrictMath.max(double, double)
-        assertEquals("Incorrect double max value", 1908897.6000089, StrictMath.max(
-                -1908897.6000089, 1908897.6000089), 0D);
-        assertEquals("Incorrect double max value", 1908897.6000089, StrictMath.max(2.0,
-                1908897.6000089), 0D);
-        assertEquals("Incorrect double max value", -2.0, StrictMath.max(-2.0,
-                -1908897.6000089), 0D);
-
-    }
-
-    /**
-     * @tests java.lang.StrictMath#max(float,float)
-     */
-    @SmallTest
-    public void testMaxFF() {
-        // Test for method float java.lang.StrictMath.max(float, float)
-        assertTrue("Incorrect float max value", StrictMath.max(-1908897.600f,
-                1908897.600f) == 1908897.600f);
-        assertTrue("Incorrect float max value", StrictMath.max(2.0f,
-                1908897.600f) == 1908897.600f);
-        assertTrue("Incorrect float max value", StrictMath.max(-2.0f,
-                -1908897.600f) == -2.0f);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#max(int,int)
-     */
-    @SmallTest
-    public void testMaxII() {
-        // Test for method int java.lang.StrictMath.max(int, int)
-        assertEquals("Incorrect int max value", 19088976, StrictMath.max(-19088976,
-                19088976));
-        assertEquals("Incorrect int max value",
-                19088976, StrictMath.max(20, 19088976));
-        assertEquals("Incorrect int max value",
-                -20, StrictMath.max(-20, -19088976));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#max(long,long)
-     */
-    @SmallTest
-    public void testMaxJJ() {
-        // Test for method long java.lang.StrictMath.max(long, long)
-        assertEquals("Incorrect long max value", 19088976000089L, StrictMath.max(-19088976000089L,
-                19088976000089L));
-        assertEquals("Incorrect long max value", 19088976000089L, StrictMath.max(20,
-                19088976000089L));
-        assertEquals("Incorrect long max value", -20, StrictMath.max(-20,
-                -19088976000089L));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#min(double,double)
-     */
-    @SmallTest
-    public void testMinDD() {
-        // Test for method double java.lang.StrictMath.min(double, double)
-        assertEquals("Incorrect double min value", -1908897.6000089, StrictMath.min(
-                -1908897.6000089, 1908897.6000089), 0D);
-        assertEquals("Incorrect double min value", 2.0, StrictMath.min(2.0,
-                1908897.6000089), 0D);
-        assertEquals("Incorrect double min value", -1908897.6000089, StrictMath.min(-2.0,
-                -1908897.6000089), 0D);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#min(float,float)
-     */
-    @SmallTest
-    public void testMinFF() {
-        // Test for method float java.lang.StrictMath.min(float, float)
-        assertTrue("Incorrect float min value", StrictMath.min(-1908897.600f,
-                1908897.600f) == -1908897.600f);
-        assertTrue("Incorrect float min value", StrictMath.min(2.0f,
-                1908897.600f) == 2.0f);
-        assertTrue("Incorrect float min value", StrictMath.min(-2.0f,
-                -1908897.600f) == -1908897.600f);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#min(int,int)
-     */
-    @SmallTest
-    public void testMinII() {
-        // Test for method int java.lang.StrictMath.min(int, int)
-        assertEquals("Incorrect int min value", -19088976, StrictMath.min(-19088976,
-                19088976));
-        assertEquals("Incorrect int min value",
-                20, StrictMath.min(20, 19088976));
-        assertEquals("Incorrect int min value",
-                -19088976, StrictMath.min(-20, -19088976));
-
-    }
-
-    /**
-     * @tests java.lang.StrictMath#min(long,long)
-     */
-    @SmallTest
-    public void testMinJJ() {
-        // Test for method long java.lang.StrictMath.min(long, long)
-        assertEquals("Incorrect long min value", -19088976000089L, StrictMath.min(-19088976000089L,
-                19088976000089L));
-        assertEquals("Incorrect long min value", 20, StrictMath.min(20,
-                19088976000089L));
-        assertEquals("Incorrect long min value", -19088976000089L, StrictMath.min(-20,
-                -19088976000089L));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#pow(double,double)
-     */
-    @SmallTest
-    public void testPowDD() {
-        // Test for method double java.lang.StrictMath.pow(double, double)
-        assertTrue("pow returned incorrect value",
-                (long) StrictMath.pow(2, 8) == 256l);
-        assertTrue("pow returned incorrect value",
-                StrictMath.pow(2, -8) == 0.00390625d);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#rint(double)
-     */
-    @SmallTest
-    public void testRintD() {
-        // Test for method double java.lang.StrictMath.rint(double)
-        assertEquals("Failed to round properly - up to odd",
-                3.0, StrictMath.rint(2.9), 0D);
-        assertTrue("Failed to round properly - NaN", Double.isNaN(StrictMath
-                .rint(Double.NaN)));
-        assertEquals("Failed to round properly down  to even", 2.0, StrictMath
-                .rint(2.1), 0D);
-        assertTrue("Failed to round properly " + 2.5 + " to even", StrictMath
-                .rint(2.5) == 2.0);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#round(double)
-     */
-    @SmallTest
-    public void testRoundD() {
-        // Test for method long java.lang.StrictMath.round(double)
-        assertEquals("Incorrect rounding of a float",
-                -91, StrictMath.round(-90.89d));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#round(float)
-     */
-    @SmallTest
-    public void testRoundF() {
-        // Test for method int java.lang.StrictMath.round(float)
-        assertEquals("Incorrect rounding of a float",
-                -91, StrictMath.round(-90.89f));
-    }
-
-    /**
-     * @tests java.lang.StrictMath#signum(double)
-     */
-    @SmallTest
-    public void testSignumD() {
-        assertTrue(Double.isNaN(StrictMath.signum(Double.NaN)));
-        assertEquals(Double.doubleToLongBits(0.0), Double
-                .doubleToLongBits(StrictMath.signum(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(StrictMath.signum(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(StrictMath.signum(-0.0)));
-
-        assertEquals(1.0, StrictMath.signum(253681.2187962), 0D);
-        assertEquals(-1.0, StrictMath.signum(-125874693.56), 0D);
-        assertEquals(1.0, StrictMath.signum(1.2587E-308), 0D);
-        assertEquals(-1.0, StrictMath.signum(-1.2587E-308), 0D);
-
-        assertEquals(1.0, StrictMath.signum(Double.MAX_VALUE), 0D);
-        assertEquals(1.0, StrictMath.signum(Double.MIN_VALUE), 0D);
-        assertEquals(-1.0, StrictMath.signum(-Double.MAX_VALUE), 0D);
-        assertEquals(-1.0, StrictMath.signum(-Double.MIN_VALUE), 0D);
-        assertEquals(1.0, StrictMath.signum(Double.POSITIVE_INFINITY), 0D);
-        assertEquals(-1.0, StrictMath.signum(Double.NEGATIVE_INFINITY), 0D);
-
-    }
-
-    /**
-     * @tests java.lang.StrictMath#signum(float)
-     */
-    @SmallTest
-    public void testSignumF() {
-        assertTrue(Float.isNaN(StrictMath.signum(Float.NaN)));
-        assertEquals(Float.floatToIntBits(0.0f), Float
-                .floatToIntBits(StrictMath.signum(0.0f)));
-        assertEquals(Float.floatToIntBits(+0.0f), Float
-                .floatToIntBits(StrictMath.signum(+0.0f)));
-        assertEquals(Float.floatToIntBits(-0.0f), Float
-                .floatToIntBits(StrictMath.signum(-0.0f)));
-
-        assertEquals(1.0f, StrictMath.signum(253681.2187962f), 0f);
-        assertEquals(-1.0f, StrictMath.signum(-125874693.56f), 0f);
-        assertEquals(1.0f, StrictMath.signum(1.2587E-11f), 0f);
-        assertEquals(-1.0f, StrictMath.signum(-1.2587E-11f), 0f);
-
-        assertEquals(1.0f, StrictMath.signum(Float.MAX_VALUE), 0f);
-        assertEquals(1.0f, StrictMath.signum(Float.MIN_VALUE), 0f);
-        assertEquals(-1.0f, StrictMath.signum(-Float.MAX_VALUE), 0f);
-        assertEquals(-1.0f, StrictMath.signum(-Float.MIN_VALUE), 0f);
-        assertEquals(1.0f, StrictMath.signum(Float.POSITIVE_INFINITY), 0f);
-        assertEquals(-1.0f, StrictMath.signum(Float.NEGATIVE_INFINITY), 0f);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#sin(double)
-     */
-    @SmallTest
-    public void testSinD() {
-        // Test for method double java.lang.StrictMath.sin(double)
-        assertTrue("Returned incorrect sine", StrictMath.sin(StrictMath
-                .asin(OPP / HYP)) == OPP / HYP);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#sinh(double)
-     */
-    @SmallTest
-    public void testSinhD() {
-        // Test for special situations
-        assertTrue(Double.isNaN(StrictMath.sinh(Double.NaN)));
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath
-                .sinh(Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Should return NEGATIVE_INFINITY",
-                Double.NEGATIVE_INFINITY, StrictMath
-                .sinh(Double.NEGATIVE_INFINITY), 0D);
-        assertEquals(Double.doubleToLongBits(0.0), Double
-                .doubleToLongBits(StrictMath.sinh(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(StrictMath.sinh(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(StrictMath.sinh(-0.0)));
-
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.sinh(1234.56), 0D);
-        assertEquals("Should return NEGATIVE_INFINITY",
-                Double.NEGATIVE_INFINITY, StrictMath.sinh(-1234.56), 0D);
-        assertEquals("Should return 1.0000000000001666E-6",
-                1.0000000000001666E-6, StrictMath.sinh(0.000001), 0D);
-        assertEquals("Should return -1.0000000000001666E-6",
-                -1.0000000000001666E-6, StrictMath.sinh(-0.000001), 0D);
-        assertEquals("Should return 5.115386441963859", 5.115386441963859,
-                StrictMath.sinh(2.33482), 0D);
-        assertEquals("Should return POSITIVE_INFINITY",
-                Double.POSITIVE_INFINITY, StrictMath.sinh(Double.MAX_VALUE), 0D);
-        assertEquals("Should return 4.9E-324", 4.9E-324, StrictMath
-                .sinh(Double.MIN_VALUE), 0D);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#sqrt(double)
-     */
-    @SmallTest
-    public void testSqrtD() {
-        // Test for method double java.lang.StrictMath.sqrt(double)
-        assertEquals("Incorrect root returned1",
-                2, StrictMath.sqrt(StrictMath.pow(StrictMath.sqrt(2), 4)), 0.0);
-        assertEquals("Incorrect root returned2", 7, StrictMath.sqrt(49), 0.0);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#tan(double)
-     */
-    @SmallTest
-    public void testTanD() {
-        // Test for method double java.lang.StrictMath.tan(double)
-        assertTrue(
-                "Returned incorrect tangent: ",
-                StrictMath.tan(StrictMath.atan(1.0)) <= 1.0
-                        || StrictMath.tan(StrictMath.atan(1.0)) >= 9.9999999999999983E-1);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#tanh(double)
-     */
-    @SmallTest
-    public void testTanhD() {
-        // Test for special situations
-        assertTrue(Double.isNaN(StrictMath.tanh(Double.NaN)));
-        assertEquals("Should return +1.0", +1.0, StrictMath
-                .tanh(Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Should return -1.0", -1.0, StrictMath
-                .tanh(Double.NEGATIVE_INFINITY), 0D);
-        assertEquals(Double.doubleToLongBits(0.0), Double
-                .doubleToLongBits(StrictMath.tanh(0.0)));
-        assertEquals(Double.doubleToLongBits(+0.0), Double
-                .doubleToLongBits(StrictMath.tanh(+0.0)));
-        assertEquals(Double.doubleToLongBits(-0.0), Double
-                .doubleToLongBits(StrictMath.tanh(-0.0)));
-
-        assertEquals("Should return 1.0", 1.0, StrictMath.tanh(1234.56), 0D);
-        assertEquals("Should return -1.0", -1.0, StrictMath.tanh(-1234.56), 0D);
-        assertEquals("Should return 9.999999999996666E-7",
-                9.999999999996666E-7, StrictMath.tanh(0.000001), 0D);
-        assertEquals("Should return 0.981422884124941", 0.981422884124941,
-                StrictMath.tanh(2.33482), 0D);
-        assertEquals("Should return 1.0", 1.0, StrictMath
-                .tanh(Double.MAX_VALUE), 0D);
-        assertEquals("Should return 4.9E-324", 4.9E-324, StrictMath
-                .tanh(Double.MIN_VALUE), 0D);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#random()
-     */
-    @MediumTest
-    public void testRandom() {
-        // There isn't a place for these tests so just stick them here
-        assertEquals("Wrong value E",
-                4613303445314885481L, Double.doubleToLongBits(StrictMath.E));
-        assertEquals("Wrong value PI",
-                4614256656552045848L, Double.doubleToLongBits(StrictMath.PI));
-
-        for (int i = 500; i >= 0; i--) {
-            double d = StrictMath.random();
-            assertTrue("Generated number is out of range: " + d, d >= 0.0
-                    && d < 1.0);
-        }
-    }
-
-    /**
-     * @tests java.lang.StrictMath#toRadians(double)
-     */
-    @MediumTest
-    public void testToRadiansD() {
-        for (double d = 500; d >= 0; d -= 1.0) {
-            double converted = StrictMath.toDegrees(StrictMath.toRadians(d));
-            assertTrue("Converted number not equal to original. d = " + d,
-                    converted >= d * 0.99999999 && converted <= d * 1.00000001);
-        }
-    }
-
-    /**
-     * @tests java.lang.StrictMath#toDegrees(double)
-     */
-    @MediumTest
-    public void testToDegreesD() {
-        for (double d = 500; d >= 0; d -= 1.0) {
-            double converted = StrictMath.toRadians(StrictMath.toDegrees(d));
-            assertTrue("Converted number not equal to original. d = " + d,
-                    converted >= d * 0.99999999 && converted <= d * 1.00000001);
-        }
-    }
-
-    /**
-     * @tests java.lang.StrictMath#ulp(double)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testUlp_D() {
-        // Test for special cases
-        assertTrue("Should return NaN", Double
-                .isNaN(StrictMath.ulp(Double.NaN)));
-        assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY,
-                StrictMath.ulp(Double.POSITIVE_INFINITY), 0D);
-        assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY,
-                StrictMath.ulp(Double.NEGATIVE_INFINITY), 0D);
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
-                .ulp(0.0), 0D);
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
-                .ulp(+0.0), 0D);
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
-                .ulp(-0.0), 0D);
-        assertEquals("Returned incorrect value", StrictMath.pow(2, 971),
-                StrictMath.ulp(Double.MAX_VALUE), 0D);
-        assertEquals("Returned incorrect value", StrictMath.pow(2, 971),
-                StrictMath.ulp(-Double.MAX_VALUE), 0D);
-
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
-                .ulp(Double.MIN_VALUE), 0D);
-        assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
-                .ulp(-Double.MIN_VALUE), 0D);
-
-        assertEquals("Returned incorrect value", 2.220446049250313E-16,
-                StrictMath.ulp(1.0), 0D);
-        assertEquals("Returned incorrect value", 2.220446049250313E-16,
-                StrictMath.ulp(-1.0), 0D);
-        assertEquals("Returned incorrect value", 2.2737367544323206E-13,
-                StrictMath.ulp(1153.0), 0D);
-    }
-
-    /**
-     * @tests java.lang.StrictMath#ulp(float)
-     */
-    @SuppressWarnings("boxing")
-    @SmallTest
-    public void testUlpF() {
-        // Test for special cases
-        assertTrue("Should return NaN", Float.isNaN(StrictMath.ulp(Float.NaN)));
-        assertEquals("Returned incorrect value", Float.POSITIVE_INFINITY,
-                StrictMath.ulp(Float.POSITIVE_INFINITY), 0f);
-        assertEquals("Returned incorrect value", Float.POSITIVE_INFINITY,
-                StrictMath.ulp(Float.NEGATIVE_INFINITY), 0f);
-        assertEquals("Returned incorrect value", Float.MIN_VALUE, StrictMath
-                .ulp(0.0f), 0f);
-        assertEquals("Returned incorrect value", Float.MIN_VALUE, StrictMath
-                .ulp(+0.0f), 0f);
-        assertEquals("Returned incorrect value", Float.MIN_VALUE, StrictMath
-                .ulp(-0.0f), 0f);
-        assertEquals("Returned incorrect value", 2.028241E31f, StrictMath
-                .ulp(Float.MAX_VALUE), 0f);
-        assertEquals("Returned incorrect value", 2.028241E31f, StrictMath
-                .ulp(-Float.MAX_VALUE), 0f);
-
-        assertEquals("Returned incorrect value", 1.4E-45f, StrictMath
-                .ulp(Float.MIN_VALUE), 0f);
-        assertEquals("Returned incorrect value", 1.4E-45f, StrictMath
-                .ulp(-Float.MIN_VALUE), 0f);
-
-        assertEquals("Returned incorrect value", 1.1920929E-7f, StrictMath
-                .ulp(1.0f), 0f);
-        assertEquals("Returned incorrect value", 1.1920929E-7f, StrictMath
-                .ulp(-1.0f), 0f);
-        assertEquals("Returned incorrect value", 1.2207031E-4f, StrictMath
-                .ulp(1153.0f), 0f);
-        assertEquals("Returned incorrect value", 5.6E-45f, Math
-                .ulp(9.403954E-38f), 0f);
-    }
-}
diff --git a/tests/CoreTests/android/core/StringReaderTest.java b/tests/CoreTests/android/core/StringReaderTest.java
deleted file mode 100644
index 66b3e81..0000000
--- a/tests/CoreTests/android/core/StringReaderTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class StringReaderTest extends TestCase {
-
-    @SmallTest
-    public void testStringReader() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-
-        StringReader a = new StringReader(str);
-        StringReader b = new StringReader(str);
-        StringReader c = new StringReader(str);
-        StringReader d = new StringReader(str);
-
-        assertEquals(str, IOUtil.read(a));
-        assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
-        assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
-        assertEquals("AbCdEfGdEfGhIjKlMnOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
-    }
-}
diff --git a/tests/CoreTests/android/core/StringWriterTest.java b/tests/CoreTests/android/core/StringWriterTest.java
deleted file mode 100644
index fed2221..0000000
--- a/tests/CoreTests/android/core/StringWriterTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.StringWriter;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class StringWriterTest extends TestCase {
-
-    @SmallTest
-    public void testStringWriter() throws Exception {
-        String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-        StringWriter a = new StringWriter(10);
-
-        a.write(str, 0, 26);
-        a.write('X');
-
-        assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", a.toString());
-
-        a.write("alphabravodelta", 5, 5);
-        a.append('X');
-        assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoX", a.toString());
-        a.append("omega");
-        assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoXomega", a.toString());
-    }
-}
diff --git a/tests/CoreTests/android/core/TreeMapTest.java b/tests/CoreTests/android/core/TreeMapTest.java
deleted file mode 100644
index 229d86d..0000000
--- a/tests/CoreTests/android/core/TreeMapTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.util.HashMap;
-import java.util.Random;
-import java.util.TreeMap;
-import android.test.suitebuilder.annotation.LargeTest;
-
-/**
- * Tests for basic functinality of TreeMaps
- */
-public class TreeMapTest extends TestCase {
-
-    private Random mRandom = new Random(1);
-
-    private static final boolean SPEW = false;
-
-    @LargeTest
-    public void testTreeMap() {
-        for (int i = 0; i < 10; i++) {
-            if (SPEW) System.out.println("Running doTest cycle #" + (i + 1));
-            doTest();
-        }
-    }
-
-    private void doTest() {
-        TreeMap<Integer, String> tm = new TreeMap<Integer, String>();
-        HashMap<Integer, String> hm = new HashMap<Integer, String>();
-
-        int minVal = Integer.MAX_VALUE;
-        int maxVal = Integer.MIN_VALUE;
-
-        for (int i = 0; i < 100; i++) {
-            int val = mRandom.nextInt(1000);
-            if (SPEW) System.out.println("Adding val = " + val);
-            if (val < minVal) {
-                minVal = val;
-            }
-            if (val > maxVal) {
-                maxVal = val;
-            }
-            tm.put(new Integer(val), "V:" + val);
-            hm.put(new Integer(val), "V:" + val);
-
-            if (SPEW) System.out.println("tm = " + tm);
-
-            if (SPEW) System.out.println("tm.size() = " + tm.size());
-            if (SPEW) System.out.println("hm.size() = " + hm.size());
-            assertEquals(tm.size(), hm.size());
-
-            if (SPEW) System.out.println("tm.firstKey() = " + tm.firstKey());
-            if (SPEW) System.out.println("minVal = " + minVal);
-            if (SPEW) System.out.println("tm.lastKey() = " + tm.lastKey());
-            if (SPEW) System.out.println("maxVal = " + maxVal);
-            assertEquals(minVal, tm.firstKey().intValue());
-            assertEquals(maxVal, tm.lastKey().intValue());
-        }
-
-        // Check for equality
-        for (int val = 0; val < 1000; val++) {
-            Integer vv = new Integer(val);
-            String tms = tm.get(vv);
-            String hms = hm.get(vv);
-            assertEquals(tms, hms);
-        }
-
-        for (int i = 0; i < 1000; i++) {
-            int val = mRandom.nextInt(1000);
-            if (SPEW) System.out.println("Removing val = " + val);
-
-            String tms = tm.remove(new Integer(val));
-            String hms = hm.remove(new Integer(val));
-
-            if (SPEW) System.out.println("tm = " + tm);
-
-            assertEquals(tm.size(), hm.size());
-            assertEquals(tms, hms);
-        }
-
-        // Check for equality
-        for (int val = 0; val < 1000; val++) {
-            Integer vv = new Integer(val);
-            String tms = tm.get(vv);
-            String hms = hm.get(vv);
-            assertEquals(tms, hms);
-        }
-    }
-}
diff --git a/tests/CoreTests/android/core/URITest.java b/tests/CoreTests/android/core/URITest.java
deleted file mode 100644
index 3b821d8..0000000
--- a/tests/CoreTests/android/core/URITest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class URITest extends TestCase {
-
-    @SmallTest
-    public void testConstruct() throws Exception {
-        construct("http://www.google.com/this/is-the/path?query#fragment",
-                "www.google.com", "/this/is-the/path", true);
-    }
-
-    private static void construct(String str, String host, String path, boolean absolute)
-            throws URISyntaxException {
-        URI uri = new URI(str);
-        assertEquals(host, uri.getHost());
-        assertEquals(path, uri.getPath());
-        assertEquals(absolute, uri.isAbsolute());
-    }
-
-    @SmallTest
-    public void testResolve() throws Exception {
-        resolve("http://www.google.com/your",
-                "mom",
-                "http://www.google.com/mom");
-    }
-
-    private static void resolve(String base, String uri, String expected) {
-        URI b = URI.create(base);
-        URI resolved = b.resolve(uri);
-//        System.out.println("base=" + base + " uri=" + uri
-//                + " resolved=" + resolved);
-        assertEquals(expected, resolved.toString());
-    }
-}
diff --git a/tests/CoreTests/android/core/ZipFileTest.java b/tests/CoreTests/android/core/ZipFileTest.java
deleted file mode 100644
index 04b476b..0000000
--- a/tests/CoreTests/android/core/ZipFileTest.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipOutputStream;
-import android.test.suitebuilder.annotation.MediumTest;
-
-
-/**
- * Basic tests for ZipFile.
- */
-public class ZipFileTest extends TestCase {
-    private static final int SAMPLE_SIZE = 128 * 1024;
-
-    @MediumTest
-    public void testZipFile() throws Exception {
-
-        File file = File.createTempFile("ZipFileTest", ".zip");
-        try {
-            // create a test file; assume it's not going to collide w/anything
-            FileOutputStream outStream = new FileOutputStream(file);
-            createCompressedZip(outStream);
-//            System.out.println("CREATED " + file);
-
-            scanZip(file.getPath());
-            read2(file.getPath());
-        } finally {
-            file.delete();
-        }
-    }
-
-    /*
-     * stepStep == 0 --> >99% compression
-     * stepStep == 1 --> ~30% compression
-     * stepStep == 2 --> no compression
-     */
-    static byte[] makeSampleFile(int stepStep) throws IOException {
-        byte[] sample = new byte[SAMPLE_SIZE];
-        byte val, step;
-        int i, j, offset;
-
-        val = 0;
-        step = 1;
-        offset = 0;
-        for (i = 0; i < SAMPLE_SIZE / 256; i++) {
-            for (j = 0; j < 256; j++) {
-                sample[offset++] = val;
-                val += step;
-            }
-
-            step += stepStep;
-        }
-
-        return sample;
-    }
-
-    static void createCompressedZip(OutputStream bytesOut) throws IOException {
-        ZipOutputStream out = new ZipOutputStream(bytesOut);
-        try {
-            int i;
-
-            for (i = 0; i < 3; i++) {
-                byte[] input = makeSampleFile(i);
-                ZipEntry newEntry = new ZipEntry("file-" + i);
-
-                if (i != 1) {
-                    newEntry.setComment("this is file " + i);
-                }
-                out.putNextEntry(newEntry);
-                out.write(input, 0, input.length);
-                out.closeEntry();
-            }
-
-            out.setComment("This is a lovely compressed archive!");
-        } finally {
-            out.close();
-        }
-    }
-
-    static void scanZip(String fileName) throws IOException {
-        ZipFile zipFile = new ZipFile(fileName);
-        Enumeration fileList;
-        int idx = 0;
-
-//        System.out.println("Contents of " + zipFile + ":");
-        for (fileList = zipFile.entries(); fileList.hasMoreElements();) {
-            ZipEntry entry = (ZipEntry) fileList.nextElement();
-//            System.out.println("  " + entry.getName());
-            assertEquals(entry.getName(), "file-" + idx);
-            idx++;
-        }
-
-        zipFile.close();
-    }
-
-    /*
-     * Read compressed data from two different entries at the same time,
-     * to verify that the streams aren't getting confused.  If we do
-     * something wrong, the inflater will choke and throw a ZipException.
-     *
-     * This doesn't test synchronization in multi-threaded use.
-     */
-    static void read2(String fileName) throws IOException {
-        ZipFile zipFile;
-        ZipEntry entry1, entry2;
-        byte buf[] = new byte[16384];
-        InputStream stream1, stream2;
-        int len, totalLen1, totalLen2;
-
-        /* use file-1 and file-2 because the compressed data is large */
-        zipFile = new ZipFile(fileName);
-        entry1 = zipFile.getEntry("file-1");
-        entry2 = zipFile.getEntry("file-2");
-
-        /* make sure we got the right thing */
-        assertEquals("file-1", entry1.getName());
-        assertEquals("file-2", entry2.getName());
-
-        /* create streams */
-        stream1 = zipFile.getInputStream(entry1);
-        stream2 = zipFile.getInputStream(entry2);
-
-        /*
-         * Read a piece of file #1.
-         */
-        totalLen1 = stream1.read(buf);
-        assertTrue("initial read failed on #1", totalLen1 >= 0);
-
-        /*
-         * Read a piece of file #2.
-         */
-        totalLen2 = stream2.read(buf);
-        assertTrue("initial read failed on #2", totalLen2 >= 0);
-
-        /*
-         * Read the rest of file #1, and close the stream.
-         *
-         * If our streams are crossed up, we'll fail here.
-         */
-        while ((len = stream1.read(buf)) > 0) {
-            totalLen1 += len;
-        }
-        assertEquals(SAMPLE_SIZE, totalLen1);
-        stream1.close();
-
-        /*
-         * Read the rest of file #2, and close the stream.
-         */
-        while ((len = stream2.read(buf)) > 0) {
-            totalLen2 += len;
-        }
-        assertEquals(SAMPLE_SIZE, totalLen2);
-        stream2.close();
-
-        /*
-         * Open a new one.
-         */
-        stream1 = zipFile.getInputStream(zipFile.getEntry("file-0"));
-
-        /*
-         * Close the ZipFile. According to the RI, none if its InputStreams can
-         * be read after this point.
-         */
-        zipFile.close();
-        
-        Exception error = null;
-        try {
-            stream1.read(buf);
-        } catch (Exception ex) {
-            error = ex;
-        }
-        
-        assertNotNull("ZipFile shouldn't allow reading of closed files.", error);
-    }
-}
-
diff --git a/tests/CoreTests/android/core/ZipStreamTest.java b/tests/CoreTests/android/core/ZipStreamTest.java
deleted file mode 100644
index 74cfe82..0000000
--- a/tests/CoreTests/android/core/ZipStreamTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2008 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.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
-import android.test.suitebuilder.annotation.LargeTest;
-
-/**
- * Basic tests for ZipStream
- */
-public class ZipStreamTest extends TestCase {
-
-    @LargeTest
-    public void testZipStream() throws Exception {
-        ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
-        createCompressedZip(bytesOut);
-
-        byte[] zipData = bytesOut.toByteArray();
-
-        /*
-        FileOutputStream outFile = new FileOutputStream("/tmp/foo.zip");
-        outFile.write(zipData, 0, zipData.length);
-        outFile.close();
-        */
-
-        /*
-        FileInputStream inFile = new FileInputStream("/tmp/foo.zip");
-        int inputLength = inFile.available();
-        zipData = new byte[inputLength];
-        if (inFile.read(zipData) != inputLength)
-            throw new RuntimeException();
-        inFile.close();
-        */
-
-        ByteArrayInputStream bytesIn = new ByteArrayInputStream(zipData);
-        scanZip(bytesIn);
-
-        bytesOut = new ByteArrayOutputStream();
-        createUncompressedZip(bytesOut);
-
-        zipData = bytesOut.toByteArray();
-
-        bytesIn = new ByteArrayInputStream(zipData);
-        scanZip(bytesIn);
-    }
-
-    /*
-     * stepStep == 0 --> >99% compression
-     * stepStep == 1 --> ~30% compression
-     * stepStep == 2 --> no compression
-     */
-    private static byte[] makeSampleFile(int stepStep) throws IOException {
-        byte[] sample = new byte[128 * 1024];
-        byte val, step;
-        int i, j, offset;
-
-        val = 0;
-        step = 1;
-        offset = 0;
-        for (i = 0; i < (128 * 1024) / 256; i++) {
-            for (j = 0; j < 256; j++) {
-                sample[offset++] = val;
-                val += step;
-            }
-
-            step += stepStep;
-        }
-
-        return sample;
-    }
-
-    private static void createCompressedZip(ByteArrayOutputStream bytesOut) throws IOException {
-        ZipOutputStream out = new ZipOutputStream(bytesOut);
-        try {
-            int i;
-
-            for (i = 0; i < 3; i++) {
-                byte[] input = makeSampleFile(i);
-                ZipEntry newEntry = new ZipEntry("file-" + i);
-
-                if (i != 1)
-                    newEntry.setComment("this is file " + i);
-                out.putNextEntry(newEntry);
-                out.write(input, 0, input.length);
-                out.closeEntry();
-            }
-
-            out.setComment("This is a lovely compressed archive!");
-        } finally {
-            out.close();
-        }
-    }
-
-    private static void createUncompressedZip(ByteArrayOutputStream bytesOut) throws IOException {
-        ZipOutputStream out = new ZipOutputStream(bytesOut);
-        try {
-            long[] crcs = {0x205fbff3, 0x906fae57L, 0x2c235131};
-            int i;
-
-            for (i = 0; i < 3; i++) {
-                byte[] input = makeSampleFile(i);
-                ZipEntry newEntry = new ZipEntry("file-" + i);
-
-                if (i != 1)
-                    newEntry.setComment("this is file " + i);
-                newEntry.setMethod(ZipEntry.STORED);
-                newEntry.setSize(128 * 1024);
-                newEntry.setCrc(crcs[i]);
-                out.putNextEntry(newEntry);
-                out.write(input, 0, input.length);
-                out.closeEntry();
-            }
-
-            out.setComment("This is a lovely, but uncompressed, archive!");
-        } finally {
-            out.close();
-        }
-    }
-
-    private static void scanZip(ByteArrayInputStream bytesIn) throws IOException {
-        ZipInputStream in = new ZipInputStream(bytesIn);
-        try {
-            int i;
-
-            for (i = 0; i < 3; i++) {
-                ZipEntry entry = in.getNextEntry();
-                ByteArrayOutputStream contents = new ByteArrayOutputStream();
-                byte[] buf = new byte[4096];
-                int len, totalLen = 0;
-
-                while ((len = in.read(buf)) > 0) {
-                    contents.write(buf, 0, len);
-                    totalLen += len;
-                }
-
-                assertEquals(128 * 1024, totalLen);
-
-//                System.out.println("ZipStreamTest: name='" + entry.getName()
-//                        + "', zero=" + contents.toByteArray()[0]
-//                        + ", tfs=" + contents.toByteArray()[257]
-//                        + ", crc=" + Long.toHexString(entry.getCrc()));
-            }
-
-            assertNull("should only be three entries", in.getNextEntry());
-        } finally {
-            in.close();
-        }
-    }
-}
-
diff --git a/tests/HwAccelerationTest/.classpath b/tests/HwAccelerationTest/.classpath
new file mode 100644
index 0000000..609aa00
--- /dev/null
+++ b/tests/HwAccelerationTest/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="gen"/>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/HwAccelerationTest/.gitignore b/tests/HwAccelerationTest/.gitignore
new file mode 100644
index 0000000..f178f17
--- /dev/null
+++ b/tests/HwAccelerationTest/.gitignore
@@ -0,0 +1,3 @@
+bin
+gen
+local.properties
\ No newline at end of file
diff --git a/tests/HwAccelerationTest/.project b/tests/HwAccelerationTest/.project
new file mode 100644
index 0000000..7c04d3c
--- /dev/null
+++ b/tests/HwAccelerationTest/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>HwAccelerationTest</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/HwAccelerationTest/AndroidManifest.xml b/tests/HwAccelerationTest/AndroidManifest.xml
index 7fa71a9..c60613c 100644
--- a/tests/HwAccelerationTest/AndroidManifest.xml
+++ b/tests/HwAccelerationTest/AndroidManifest.xml
@@ -17,7 +17,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.test.hwui">
 
-    <uses-permission android:name="android.permission.INTERNET" />    
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-sdk android:minSdkVersion="Froyo" />
     
     <application
         android:label="HwUi"
diff --git a/tests/HwAccelerationTest/default.properties b/tests/HwAccelerationTest/default.properties
new file mode 100644
index 0000000..5a8ea50
--- /dev/null
+++ b/tests/HwAccelerationTest/default.properties
@@ -0,0 +1,11 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-Froyo
diff --git a/tests/HwAccelerationTest/res/layout/advanced_blend.xml b/tests/HwAccelerationTest/res/layout/advanced_blend.xml
new file mode 100644
index 0000000..6efdd73
--- /dev/null
+++ b/tests/HwAccelerationTest/res/layout/advanced_blend.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.android.test.hwui.AdvancedBlendActivity.ShadersView
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:layout_width="fill_parent"
+  android:layout_height="fill_parent">
+</com.android.test.hwui.AdvancedBlendActivity.ShadersView>
diff --git a/tests/HwAccelerationTest/res/layout/advanced_gradient.xml b/tests/HwAccelerationTest/res/layout/advanced_gradient.xml
new file mode 100644
index 0000000..dd937f9
--- /dev/null
+++ b/tests/HwAccelerationTest/res/layout/advanced_gradient.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.android.test.hwui.AdvancedGradientsActivity.GradientsView
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:layout_width="fill_parent"
+  android:layout_height="fill_parent">
+</com.android.test.hwui.AdvancedGradientsActivity.GradientsView>
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedBlendActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedBlendActivity.java
index 5baa20c..a83005b 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedBlendActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedBlendActivity.java
@@ -41,7 +41,7 @@
         setContentView(new ShadersView(this));
     }
 
-    static class ShadersView extends View {
+    public static class ShadersView extends View {
         private BitmapShader mScaledShader;
         private int mTexWidth;
         private int mTexHeight;
@@ -57,7 +57,7 @@
         private ComposeShader mCompose6Shader;
         private BitmapShader mScaled2Shader;
 
-        ShadersView(Context c) {
+        public ShadersView(Context c) {
             super(c);
 
             Bitmap texture = BitmapFactory.decodeResource(c.getResources(), R.drawable.sunset1);
@@ -71,7 +71,7 @@
             Matrix m2 = new Matrix();
             m2.setScale(0.5f, 0.5f);
             mScaledShader.setLocalMatrix(m2);
-            
+
             mScaled2Shader = new BitmapShader(texture, Shader.TileMode.MIRROR,
                     Shader.TileMode.MIRROR);
             Matrix m3 = new Matrix();
@@ -80,7 +80,7 @@
 
             mHorGradient = new LinearGradient(0.0f, 0.0f, mDrawWidth, 0.0f,
                     Color.BLACK, Color.WHITE, Shader.TileMode.CLAMP);
-            
+
             mComposeShader = new ComposeShader(mScaledShader, mHorGradient,
                     PorterDuff.Mode.DARKEN);
             mCompose2Shader = new ComposeShader(mScaledShader, mHorGradient,
@@ -107,7 +107,7 @@
 
             mPaint.setShader(mComposeShader);
             canvas.drawRect(0.0f, 0.0f, mDrawWidth, mDrawHeight, mPaint);
-            
+
             canvas.translate(0.0f, 40.0f + mDrawHeight);
             mPaint.setShader(mCompose2Shader);
             canvas.drawRect(0.0f, 0.0f, mDrawWidth, mDrawHeight, mPaint);
@@ -117,10 +117,10 @@
             canvas.drawRect(0.0f, 0.0f, mDrawWidth, mDrawHeight, mPaint);
 
             canvas.restore();
-            
+
             canvas.save();
             canvas.translate(40.0f + mDrawWidth + 40.0f, 40.0f);
-            
+
             mPaint.setShader(mCompose4Shader);
             canvas.drawRect(0.0f, 0.0f, mDrawWidth, mDrawHeight, mPaint);
 
@@ -131,7 +131,7 @@
             canvas.translate(0.0f, 40.0f + mDrawHeight);
             mPaint.setShader(mCompose6Shader);
             canvas.drawRect(0.0f, 0.0f, mDrawWidth, mDrawHeight, mPaint);
-            
+
             canvas.restore();
         }
     }
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedGradientsActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedGradientsActivity.java
index 27974e7..b0b54eb 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedGradientsActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/AdvancedGradientsActivity.java
@@ -36,7 +36,7 @@
         setContentView(new GradientsView(this));
     }
 
-    static class GradientsView extends View {
+    public static class GradientsView extends View {
         private final Paint mPaint;
         private final SweepGradient mSweepGradient;
         private final RadialGradient mRadialGradient;
@@ -44,7 +44,7 @@
         private final Matrix mMatrix2;
         private final Matrix mMatrix3;
 
-        GradientsView(Context c) {
+        public GradientsView(Context c) {
             super(c);
 
             mSweepGradient = new SweepGradient(0.0f, 0.0f, 0xff000000, 0xffffffff);
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java
index 8fa626b..f8422f4 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java
@@ -51,15 +51,12 @@
         final SeekBar rotateView = new SeekBar(this);
         rotateView.setMax(360);
         rotateView.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
-            @Override
             public void onStopTrackingTouch(SeekBar seekBar) {
             }
 
-            @Override
             public void onStartTrackingTouch(SeekBar seekBar) {
             }
 
-            @Override
             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                 gradientView.setRotationY((float) progress);
                 radialGradientView.setRotationX((float) progress);
@@ -67,7 +64,7 @@
                 bitmapView.setRotationX((float) progress);
             }
         });
-        
+
         layout.addView(shadersView);
         layout.addView(gradientView, new FrameLayout.LayoutParams(
                 200, 200, Gravity.CENTER));
@@ -90,7 +87,7 @@
 
         setContentView(layout);
     }
-    
+
     static class BitmapView extends View {
         private final Paint mPaint;
 
@@ -116,7 +113,7 @@
             canvas.drawRect(0.0f, 0.0f, getWidth(), getHeight(), mPaint);
         }
     }
-    
+
     static class GradientView extends View {
         private final Paint mPaint;
 
@@ -166,14 +163,14 @@
             canvas.drawRect(0.0f, 0.0f, getWidth(), getHeight(), mPaint);
         }
     }
-    
+
     static class SweepGradientView extends View {
         private final Paint mPaint;
 
         SweepGradientView(Context c) {
             super(c);
 
-            SweepGradient gradient = new SweepGradient(100.0f, 100.0f, 0xff000000, 0xffffffff);                
+            SweepGradient gradient = new SweepGradient(100.0f, 100.0f, 0xff000000, 0xffffffff);
             mPaint = new Paint();
             mPaint.setShader(gradient);
         }
@@ -190,7 +187,7 @@
             canvas.drawRect(0.0f, 0.0f, getWidth(), getHeight(), mPaint);
         }
     }
-        
+
     static class ShadersView extends View {
         private final Paint mPaint;
         private final float mDrawWidth;
@@ -232,12 +229,12 @@
 
             top += 40.0f + mDrawHeight;
             bottom += 40.0f + mDrawHeight;
-            
+
             mMatrix.setScale(1, mDrawHeight);
             mMatrix.postTranslate(left, top);
             mGradient.setLocalMatrix(mMatrix);
             canvas.drawRect(left, top, right, top + mDrawHeight, mPaint);
-            
+
             left += 40.0f + mDrawWidth;
             right += 40.0f + mDrawWidth;
             top -= 40.0f + mDrawHeight;
@@ -251,13 +248,13 @@
 
             top += 40.0f + mDrawHeight;
             bottom += 40.0f + mDrawHeight;
-            
+
             mMatrix.setScale(1, mDrawWidth);
             mMatrix.postRotate(-90);
             mMatrix.postTranslate(left, top);
             mGradient.setLocalMatrix(mMatrix);
             canvas.drawRect(left, top, left + mDrawWidth, bottom, mPaint);
-           
+
             canvas.restore();
         }
     }
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TextGammaActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/TextGammaActivity.java
index 773d390..f40b89d 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/TextGammaActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/TextGammaActivity.java
@@ -43,9 +43,8 @@
         ));
 
         setContentView(layout);
-        
+
         layout.post(new Runnable() {
-            @Override
             public void run() {
                 Bitmap b = Bitmap.createBitmap(gamma.getWidth(), gamma.getHeight(),
                         Bitmap.Config.ARGB_8888);
@@ -88,7 +87,7 @@
 
             final LinearLayout layout = new LinearLayout(this);
             layout.setOrientation(LinearLayout.VERTICAL);
-        
+
             final GammaTextView gamma = new GammaTextView(this);
             final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                     LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT
diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp
index 16fa95a..8ac7590 100644
--- a/tools/aapt/Command.cpp
+++ b/tools/aapt/Command.cpp
@@ -907,10 +907,10 @@
                                     error.string());
                                 goto bail;
                         }
-                    } else if (tag == "uses-gl-texture") {
+                    } else if (tag == "supports-gl-texture") {
                         String8 name = getAttribute(tree, NAME_ATTR, &error);
                         if (name != "" && error == "") {
-                            printf("uses-gl-texture:'%s'\n", name.string());
+                            printf("supports-gl-texture:'%s'\n", name.string());
                         } else {
                             fprintf(stderr, "ERROR getting 'android:name' attribute: %s\n",
                                     error.string());
diff --git a/tools/layoutlib/bridge/.classpath b/tools/layoutlib/bridge/.classpath
index 7204ace..2102eb1 100644
--- a/tools/layoutlib/bridge/.classpath
+++ b/tools/layoutlib/bridge/.classpath
@@ -6,7 +6,7 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
 	<classpathentry kind="var" path="ANDROID_PLAT_SRC/prebuilt/common/layoutlib_api/layoutlib_api-prebuilt.jar"/>
 	<classpathentry kind="var" path="ANDROID_PLAT_SRC/prebuilt/common/kxml2/kxml2-2.3.0.jar" sourcepath="/ANDROID_PLAT_SRC/dalvik/libcore/xml/src/main/java"/>
-	<classpathentry kind="var" path="ANDROID_PLAT_OUT_FRAMEWORK/ninepatch.jar" sourcepath="/ANDROID_PLAT_SRC/development/tools/ninepatch/src"/>
 	<classpathentry kind="var" path="ANDROID_PLAT_SRC/out/host/common/obj/JAVA_LIBRARIES/temp_layoutlib_intermediates/javalib.jar" sourcepath="/ANDROID_PLAT_SRC/frameworks/base"/>
+	<classpathentry kind="var" path="ANDROID_PLAT_SRC/prebuilt/common/ninepatch/ninepatch-prebuilt.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tools/layoutlib/bridge/Android.mk b/tools/layoutlib/bridge/Android.mk
index b7a602a..9b7bc5f 100644
--- a/tools/layoutlib/bridge/Android.mk
+++ b/tools/layoutlib/bridge/Android.mk
@@ -21,7 +21,7 @@
 LOCAL_JAVA_LIBRARIES := \
 	kxml2-2.3.0 \
 	layoutlib_api-prebuilt \
-	ninepatch
+	ninepatch-prebuilt
 
 LOCAL_STATIC_JAVA_LIBRARIES := temp_layoutlib
 
diff --git a/tools/layoutlib/bridge/src/android/graphics/BitmapFactory.java b/tools/layoutlib/bridge/src/android/graphics/BitmapFactory.java
index cd62baf..626f878 100644
--- a/tools/layoutlib/bridge/src/android/graphics/BitmapFactory.java
+++ b/tools/layoutlib/bridge/src/android/graphics/BitmapFactory.java
@@ -351,6 +351,7 @@
                 If the exception happened on open, bm will be null.
                 If it happened on close, bm is still valid.
             */
+            Bridge.getLog().error(null, e);
         } finally {
             try {
                 if (is != null) is.close();
diff --git a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java
index 1823702..fe201c1 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java
@@ -364,6 +364,6 @@
         int nativeInt = sManager.addDelegate(delegate);
 
         // and create/return a new Bitmap with it
-        return new Bitmap(nativeInt, isMutable, null /*ninePatchChunk*/, density);
+        return new Bitmap(nativeInt, null /* buffer */, isMutable, null /*ninePatchChunk*/, density);
     }
 }
diff --git a/tools/layoutlib/bridge/src/android/graphics/Gradient_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Gradient_Delegate.java
index 042d557..bc4ccd2 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Gradient_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Gradient_Delegate.java
@@ -119,20 +119,23 @@
                             pos = 0.f;
                             break;
                         case REPEAT:
-                            // remove the integer part to stay in the [0,1] range
-                            // careful: this is a negative value, so use ceil instead of floor
-                            pos = pos - (float)Math.ceil(pos);
+                            // remove the integer part to stay in the [0,1] range.
+                            // we also need to invert the value from [-1,0] to [0, 1]
+                            pos = pos - (float)Math.floor(pos);
                             break;
                         case MIRROR:
+                            // this is the same as the positive side, just make the value positive
+                            // first.
+                            pos = Math.abs(pos);
+
                             // get the integer and the decimal part
-                            // careful: this is a negative value, so use ceil instead of floor
-                            int intPart = (int)Math.ceil(pos);
+                            int intPart = (int)Math.floor(pos);
                             pos = pos - intPart;
-                            // 0  -> -1 : mirrored order
-                            // -1 -> -2: normal order
+                            // 0 -> 1 : normal order
+                            // 1 -> 2: mirrored
                             // etc..
-                            // this means if the intpart is even we invert
-                            if ((intPart % 2) == 0) {
+                            // this means if the intpart is odd we invert
+                            if ((intPart % 2) == 1) {
                                 pos = 1.f - pos;
                             }
                             break;
diff --git a/tools/layoutlib/bridge/src/android/graphics/LinearGradient_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/LinearGradient_Delegate.java
index 7573dc1..862b4544 100644
--- a/tools/layoutlib/bridge/src/android/graphics/LinearGradient_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/LinearGradient_Delegate.java
@@ -16,11 +16,14 @@
 
 package android.graphics;
 
+import com.android.layoutlib.bridge.Bridge;
 import com.android.layoutlib.bridge.impl.DelegateManager;
 
 import android.graphics.Shader.TileMode;
 
 import java.awt.Paint;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.NoninvertibleTransformException;
 
 /**
  * Delegate implementing the native methods of android.graphics.LinearGradient
@@ -115,7 +118,7 @@
      * {@link java.awt.GradientPaint} only supports 2 points and does not support Android's tile
      * modes.
      */
-    private static class LinearGradientPaint extends GradientPaint {
+    private class LinearGradientPaint extends GradientPaint {
 
         private final float mX0;
         private final float mY0;
@@ -126,11 +129,11 @@
         public LinearGradientPaint(float x0, float y0, float x1, float y1, int colors[],
                 float positions[], TileMode tile) {
             super(colors, positions, tile);
-                mX0 = x0;
-                mY0 = y0;
-                mDx = x1 - x0;
-                mDy = y1 - y0;
-                mDSize2 = mDx * mDx + mDy * mDy;
+            mX0 = x0;
+            mY0 = y0;
+            mDx = x1 - x0;
+            mDy = y1 - y0;
+            mDSize2 = mDx * mDx + mDy * mDy;
         }
 
         public java.awt.PaintContext createContext(
@@ -140,16 +143,37 @@
                 java.awt.geom.AffineTransform  xform,
                 java.awt.RenderingHints        hints) {
             precomputeGradientColors();
-            return new LinearGradientPaintContext(colorModel);
+
+            AffineTransform canvasMatrix;
+            try {
+                canvasMatrix = xform.createInverse();
+            } catch (NoninvertibleTransformException e) {
+                Bridge.getLog().error(null, "Unable to inverse matrix in LinearGradient", e);
+                canvasMatrix = new AffineTransform();
+            }
+
+            AffineTransform localMatrix = getLocalMatrix();
+            try {
+                localMatrix = localMatrix.createInverse();
+            } catch (NoninvertibleTransformException e) {
+                Bridge.getLog().error(null, "Unable to inverse matrix in LinearGradient", e);
+                localMatrix = new AffineTransform();
+            }
+
+            return new LinearGradientPaintContext(canvasMatrix, localMatrix, colorModel);
         }
 
         private class LinearGradientPaintContext implements java.awt.PaintContext {
 
+            private final AffineTransform mCanvasMatrix;
+            private final AffineTransform mLocalMatrix;
             private final java.awt.image.ColorModel mColorModel;
 
-            public LinearGradientPaintContext(java.awt.image.ColorModel colorModel) {
+            public LinearGradientPaintContext(AffineTransform canvasMatrix,
+                    AffineTransform localMatrix, java.awt.image.ColorModel colorModel) {
+                mCanvasMatrix = canvasMatrix;
+                mLocalMatrix = localMatrix;
                 mColorModel = colorModel;
-                // FIXME: so far all this is always the same rect gotten in getRaster with an identity matrix?
             }
 
             public void dispose() {
@@ -165,31 +189,22 @@
 
                 int[] data = new int[w*h];
 
-                if (mDx == 0) { // vertical gradient
-                    // compute first column and copy to all other columns
-                    int index = 0;
-                    for (int iy = 0 ; iy < h ; iy++) {
-                        int color = getColor(iy + y, mY0, mDy);
-                        for (int ix = 0 ; ix < w ; ix++) {
-                            data[index++] = color;
-                        }
-                    }
-                } else if (mDy == 0) { // horizontal
-                    // compute first line in a tmp array and copy to all lines
-                    int[] line = new int[w];
+                int index = 0;
+                float[] pt1 = new float[2];
+                float[] pt2 = new float[2];
+                for (int iy = 0 ; iy < h ; iy++) {
                     for (int ix = 0 ; ix < w ; ix++) {
-                        line[ix] = getColor(ix + x, mX0, mDx);
-                    }
+                        // handle the canvas transform
+                        pt1[0] = x + ix;
+                        pt1[1] = y + iy;
+                        mCanvasMatrix.transform(pt1, 0, pt2, 0, 1);
 
-                    for (int iy = 0 ; iy < h ; iy++) {
-                        System.arraycopy(line, 0, data, iy*w, line.length);
-                    }
-                } else {
-                    int index = 0;
-                    for (int iy = 0 ; iy < h ; iy++) {
-                        for (int ix = 0 ; ix < w ; ix++) {
-                            data[index++] = getColor(ix + x, iy + y);
-                        }
+                        // handle the local matrix.
+                        pt1[0] = pt2[0];
+                        pt1[1] = pt2[1];
+                        mLocalMatrix.transform(pt1, 0, pt2, 0, 1);
+
+                        data[index++] = getColor(pt2[0], pt2[1]);
                     }
                 }
 
@@ -199,13 +214,6 @@
             }
         }
 
-        /** Returns a color for the easy vertical/horizontal mode */
-        private int getColor(float absPos, float refPos, float refSize) {
-            float pos = (absPos - refPos) / refSize;
-
-            return getGradientColor(pos);
-        }
-
         /**
          * Returns a color for an arbitrary point.
          */
diff --git a/tools/layoutlib/bridge/src/android/graphics/Matrix_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Matrix_Delegate.java
index b2333f6..6b43544 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Matrix_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Matrix_Delegate.java
@@ -471,7 +471,7 @@
             return false;
         }
 
-        d.preTransform(getRotate(degrees, px, py));
+        d.postTransform(getRotate(degrees, px, py));
         return true;
     }
 
@@ -869,7 +869,7 @@
              tmpDest = new float[dstIndex + pointCount * 2];
          }
 
-         for (int i = 0 ; i < pointCount ; i++) {
+         for (int i = 0 ; i < pointCount * 2 ; i += 2) {
              // just in case we are doing in place, we better put this in temp vars
              float x = mValues[0] * src[i + srcIndex] +
                        mValues[1] * src[i + srcIndex + 1] +
diff --git a/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java
index a6c6dfd..95663ec 100644
--- a/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java
@@ -167,7 +167,7 @@
 
        try {
            chunkObject.draw(bitmap_delegate.getImage(), graphics,
-                   left, top, right - left, bottom - top);
+                   left, top, right - left, bottom - top, destDensity, srcDensity);
        } finally {
            if (paint_delegate != null) {
                graphics.dispose();
diff --git a/tools/layoutlib/bridge/src/android/graphics/RadialGradient_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/RadialGradient_Delegate.java
index c36ce53..eebf378 100644
--- a/tools/layoutlib/bridge/src/android/graphics/RadialGradient_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/RadialGradient_Delegate.java
@@ -16,11 +16,14 @@
 
 package android.graphics;
 
+import com.android.layoutlib.bridge.Bridge;
 import com.android.layoutlib.bridge.impl.DelegateManager;
 
 import android.graphics.Shader.TileMode;
 
 import java.awt.Paint;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.NoninvertibleTransformException;
 
 /**
  * Delegate implementing the native methods of android.graphics.RadialGradient
@@ -105,18 +108,17 @@
     private RadialGradient_Delegate(float x, float y, float radius, int colors[], float positions[],
             TileMode tile) {
         super(colors, positions);
-
         mJavaPaint = new RadialGradientPaint(x, y, radius, mColors, mPositions, tile);
     }
 
-    private static class RadialGradientPaint extends GradientPaint {
+    private class RadialGradientPaint extends GradientPaint {
 
         private final float mX;
         private final float mY;
         private final float mRadius;
 
-        public RadialGradientPaint(float x, float y, float radius, int[] colors, float[] positions,
-                TileMode mode) {
+        public RadialGradientPaint(float x, float y, float radius,
+                int[] colors, float[] positions, TileMode mode) {
             super(colors, positions, mode);
             mX = x;
             mY = y;
@@ -130,14 +132,36 @@
                 java.awt.geom.AffineTransform xform,
                 java.awt.RenderingHints       hints) {
             precomputeGradientColors();
-            return new RadialGradientPaintContext(colorModel);
+
+            AffineTransform canvasMatrix;
+            try {
+                canvasMatrix = xform.createInverse();
+            } catch (NoninvertibleTransformException e) {
+                Bridge.getLog().error(null, "Unable to inverse matrix in RadialGradient", e);
+                canvasMatrix = new AffineTransform();
+            }
+
+            AffineTransform localMatrix = getLocalMatrix();
+            try {
+                localMatrix = localMatrix.createInverse();
+            } catch (NoninvertibleTransformException e) {
+                Bridge.getLog().error(null, "Unable to inverse matrix in RadialGradient", e);
+                localMatrix = new AffineTransform();
+            }
+
+            return new RadialGradientPaintContext(canvasMatrix, localMatrix, colorModel);
         }
 
         private class RadialGradientPaintContext implements java.awt.PaintContext {
 
+            private final AffineTransform mCanvasMatrix;
+            private final AffineTransform mLocalMatrix;
             private final java.awt.image.ColorModel mColorModel;
 
-            public RadialGradientPaintContext(java.awt.image.ColorModel colorModel) {
+            public RadialGradientPaintContext(AffineTransform canvasMatrix,
+                    AffineTransform localMatrix, java.awt.image.ColorModel colorModel) {
+                mCanvasMatrix = canvasMatrix;
+                mLocalMatrix = localMatrix;
                 mColorModel = colorModel;
             }
 
@@ -157,10 +181,22 @@
                 // compute distance from each point to the center, and figure out the distance from
                 // it.
                 int index = 0;
+                float[] pt1 = new float[2];
+                float[] pt2 = new float[2];
                 for (int iy = 0 ; iy < h ; iy++) {
                     for (int ix = 0 ; ix < w ; ix++) {
-                        float _x = x + ix - mX;
-                        float _y = y + iy - mY;
+                        // handle the canvas transform
+                        pt1[0] = x + ix;
+                        pt1[1] = y + iy;
+                        mCanvasMatrix.transform(pt1, 0, pt2, 0, 1);
+
+                        // handle the local matrix
+                        pt1[0] = pt2[0] - mX;
+                        pt1[1] = pt2[1] - mY;
+                        mLocalMatrix.transform(pt1, 0, pt2, 0, 1);
+
+                        float _x = pt2[0];
+                        float _y = pt2[1];
                         float distance = (float) Math.sqrt(_x * _x + _y * _y);
 
                         data[index++] = getGradientColor(distance / mRadius);
diff --git a/tools/layoutlib/bridge/src/android/graphics/Shader_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Shader_Delegate.java
index 646ac80..7bf1443 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Shader_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Shader_Delegate.java
@@ -18,6 +18,8 @@
 
 import com.android.layoutlib.bridge.impl.DelegateManager;
 
+import java.awt.geom.AffineTransform;
+
 /**
  * Delegate implementing the native methods of android.graphics.Shader
  *
@@ -109,4 +111,19 @@
 
     // ---- Private delegate/helper methods ----
 
+    protected AffineTransform getLocalMatrix() {
+        Matrix_Delegate localMatrixDelegate = null;
+        if (mLocalMatrix > 0) {
+            localMatrixDelegate = Matrix_Delegate.getDelegate(mLocalMatrix);
+            if (localMatrixDelegate == null) {
+                assert false;
+                return new AffineTransform();
+            }
+
+            return localMatrixDelegate.getAffineTransform();
+        }
+
+        return new AffineTransform();
+    }
+
 }
diff --git a/tools/layoutlib/bridge/src/android/graphics/SweepGradient_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/SweepGradient_Delegate.java
index 358c3c7..97c3cfd 100644
--- a/tools/layoutlib/bridge/src/android/graphics/SweepGradient_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/SweepGradient_Delegate.java
@@ -16,9 +16,12 @@
 
 package android.graphics;
 
+import com.android.layoutlib.bridge.Bridge;
 import com.android.layoutlib.bridge.impl.DelegateManager;
 
 import java.awt.Paint;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.NoninvertibleTransformException;
 
 /**
  * Delegate implementing the native methods of android.graphics.SweepGradient
@@ -90,16 +93,16 @@
     private SweepGradient_Delegate(float cx, float cy,
                          int colors[], float positions[]) {
         super(colors, positions);
-
         mJavaPaint = new SweepGradientPaint(cx, cy, mColors, mPositions);
     }
 
-    private static class SweepGradientPaint extends GradientPaint {
+    private class SweepGradientPaint extends GradientPaint {
 
         private final float mCx;
         private final float mCy;
 
-        public SweepGradientPaint(float cx, float cy, int[] colors, float[] positions) {
+        public SweepGradientPaint(float cx, float cy, int[] colors,
+                float[] positions) {
             super(colors, positions, null /*tileMode*/);
             mCx = cx;
             mCy = cy;
@@ -112,14 +115,36 @@
                 java.awt.geom.AffineTransform xform,
                 java.awt.RenderingHints       hints) {
             precomputeGradientColors();
-            return new SweepGradientPaintContext(colorModel);
+
+            AffineTransform canvasMatrix;
+            try {
+                canvasMatrix = xform.createInverse();
+            } catch (NoninvertibleTransformException e) {
+                Bridge.getLog().error(null, "Unable to inverse matrix in SweepGradient", e);
+                canvasMatrix = new AffineTransform();
+            }
+
+            AffineTransform localMatrix = getLocalMatrix();
+            try {
+                localMatrix = localMatrix.createInverse();
+            } catch (NoninvertibleTransformException e) {
+                Bridge.getLog().error(null, "Unable to inverse matrix in SweepGradient", e);
+                localMatrix = new AffineTransform();
+            }
+
+            return new SweepGradientPaintContext(canvasMatrix, localMatrix, colorModel);
         }
 
         private class SweepGradientPaintContext implements java.awt.PaintContext {
 
+            private final AffineTransform mCanvasMatrix;
+            private final AffineTransform mLocalMatrix;
             private final java.awt.image.ColorModel mColorModel;
 
-            public SweepGradientPaintContext(java.awt.image.ColorModel colorModel) {
+            public SweepGradientPaintContext(AffineTransform canvasMatrix,
+                    AffineTransform localMatrix, java.awt.image.ColorModel colorModel) {
+                mCanvasMatrix = canvasMatrix;
+                mLocalMatrix = localMatrix;
                 mColorModel = colorModel;
             }
 
@@ -139,10 +164,23 @@
                 // compute angle from each point to the center, and figure out the distance from
                 // it.
                 int index = 0;
+                float[] pt1 = new float[2];
+                float[] pt2 = new float[2];
                 for (int iy = 0 ; iy < h ; iy++) {
                     for (int ix = 0 ; ix < w ; ix++) {
-                        float dx = x + ix - mCx;
-                        float dy = y + iy - mCy;
+                        // handle the canvas transform
+                        pt1[0] = x + ix;
+                        pt1[1] = y + iy;
+                        mCanvasMatrix.transform(pt1, 0, pt2, 0, 1);
+
+                        // handle the local matrix
+                        pt1[0] = pt2[0] - mCx;
+                        pt1[1] = pt2[1] - mCy;
+                        mLocalMatrix.transform(pt1, 0, pt2, 0, 1);
+
+                        float dx = pt2[0];
+                        float dy = pt2[1];
+
                         float angle;
                         if (dx == 0) {
                             angle = (float) (dy < 0 ? 3 * Math.PI / 2 : Math.PI / 2);
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java
index 6146cd4..24cf380 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java
@@ -152,6 +152,8 @@
             return result;
         }
 
+        Bridge.setLog(mParams.getLog());
+
         // setup the display Metrics.
         DisplayMetrics metrics = new DisplayMetrics();
         metrics.densityDpi = mParams.getDensity();
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
index 13f0f4a7..f03931f 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
@@ -48,7 +48,7 @@
 import java.util.regex.Pattern;
 
 /**
- * Helper class to provide various convertion method used in handling android resources.
+ * Helper class to provide various conversion method used in handling android resources.
  */
 public final class ResourceHelper {
 
@@ -133,7 +133,8 @@
                 // if either chunk or bitmap is null, then we reload the 9-patch file.
                 if (chunk == null || bitmap == null) {
                     try {
-                        NinePatch ninePatch = NinePatch.load(file.toURL(), false /* convert */);
+                        NinePatch ninePatch = NinePatch.load(file.toURI().toURL(),
+                                false /* convert */);
                         if (ninePatch != null) {
                             if (chunk == null) {
                                 chunk = ninePatch.getChunk();
@@ -161,6 +162,7 @@
                         // URL is wrong, we'll return null below
                     } catch (IOException e) {
                         // failed to read the file, we'll return null below.
+                        Bridge.getLog().error(null, e);
                     }
                 }
 
@@ -176,7 +178,7 @@
 
             return null;
         } else if (lowerCaseValue.endsWith(".xml")) {
-            // create a blockparser for the file
+            // create a block parser for the file
             File f = new File(stringValue);
             if (f.isFile()) {
                 try {
@@ -220,7 +222,7 @@
                     return new BitmapDrawable(context.getResources(), bitmap);
                 } catch (IOException e) {
                     // we'll return null below
-                    // TODO: log the error.
+                    Bridge.getLog().error(null, e);
                 }
             } else {
                 // attempt to get a color from the value
@@ -229,7 +231,8 @@
                     return new ColorDrawable(color);
                 } catch (NumberFormatException e) {
                     // we'll return null below.
-                    // TODO: log the error
+                    Bridge.getLog().error(null,
+                            "failed to convert " + stringValue + " into a drawable");
                 }
             }
         }