)]}'
{
  "log": [
    {
      "commit": "7303c6bf1a8b00a0e7d8165d774a1f259b4ccda9",
      "tree": "329ae25bcf03c06ddca3828a038bd499c63dbee0",
      "parents": [
        "6b5513538aedc19c624ff7a260c832dcfae630f2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:11:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:50:51 2009 -0700"
      },
      "message": "get rid of references to MemoryDealer in SurfaceFlinger\n"
    },
    {
      "commit": "759fdb2ef735422d6b8c65e168fa9d1c24562a86",
      "tree": "043f7f5a9288a37b0e888ebb2d537930c154a149",
      "parents": [
        "84d1f7a09827fe195dd08b647b8c5092d03516f7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 17:33:40 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:45:29 2009 -0700"
      },
      "message": "free gralloc buffers as soon as possible (when a surface is not visible any longer), client who have the buffers still mapped won\u0027t crash, btu may see garbage data\n"
    },
    {
      "commit": "29d06ac9a45e564b4f935b91067fc92c2d4c193d",
      "tree": "cd222364df15c9fc100614fad8bb41b9b1df106e",
      "parents": [
        "9f96145725ff3f265712d607d19078fb91a5c8ec"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 18:49:56 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 18:49:56 2009 -0700"
      },
      "message": "fix a bug that caused artifacts when SWAP_RECTANGLE was enabled\n"
    },
    {
      "commit": "a8d44f75e1934072713371a2dcd143c63ffcbe0e",
      "tree": "abb09cfa5769da6fa403ed515ada22b8e3dbb35d",
      "parents": [
        "b8a5560e1303cb10f5cd482af466fc04d2bdfcab"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Jun 28 02:54:16 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 14:44:11 2009 -0700"
      },
      "message": "fix [1947273] the DimLayer causes the whole screen to update during transactions\n"
    },
    {
      "commit": "b8a5560e1303cb10f5cd482af466fc04d2bdfcab",
      "tree": "3d8e2c45d87cb1dcb85e36978ea1658d6cd7db91",
      "parents": [
        "17b2ad027b4b72b96dfb663c0ea001972da7ef58"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 26 19:06:36 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 26 19:06:36 2009 -0700"
      },
      "message": "fix an update bug with SHOW_UPDATE debug feature. Fix a problem with the debug binder codes too\n"
    },
    {
      "commit": "f9d932774e06d5122c48b47d8cabd791783f56d2",
      "tree": "e78c8148d0e3fcc166ebb3f4bd60c931ec956344",
      "parents": [
        "cd8c5e29c245e55a5f648b7a10f8586baf64e622"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 17:00:27 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 17:00:27 2009 -0700"
      },
      "message": "fix a memory corruption where a SF Client could be used after it\u0027s been destroyed\n"
    },
    {
      "commit": "cd8c5e29c245e55a5f648b7a10f8586baf64e622",
      "tree": "d5e8bfb9c3148dc1fbdb4b77c5ac3f8a12cf5817",
      "parents": [
        "7272add7a5be7a8e1a0a3ba6066039037033f8cd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 16:24:02 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 16:24:02 2009 -0700"
      },
      "message": "release the last reference to surfaces explicitely instead of letting it go implicitely when the message is destroyed\n"
    },
    {
      "commit": "375f56363a8737119ce2222dcfaacbe1cf733fc0",
      "tree": "5cdf2be415ef2668b6d4179b00b61e5a57f5c077",
      "parents": [
        "5e78e0965169790111f01354e78b0f8d34c94840"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 15 18:24:59 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 15 21:56:51 2009 -0700"
      },
      "message": "new Permission class used to improve permission checks speed (by caching results)\n"
    },
    {
      "commit": "3d57964a81cd631d80aa9575647e1ce35b5e82d5",
      "tree": "0958ca702a23944cd1b69d4718ee19ac545d9150",
      "parents": [
        "9648c1a2b9b527bcef64bb9d96e8385a14949840"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 18:46:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 18:46:21 2009 -0700"
      },
      "message": "fix a bunch of problems with destroying surfaces.\n\nnow, all destruction path, go through the purgatory which is emptied when ~ISurface is called, but we also make sure to remove the surface from the current list from there (in case a client forgot to request the destruction explicitely).\n"
    },
    {
      "commit": "310f8da0c3122ed5419db8f12a6e98d3188325b2",
      "tree": "0f3435d35e7fe8fca8dc2b347ff46276a8c351c8",
      "parents": [
        "20f68782a4ea71c6a977d7f87d8288d3daa265ec",
        "bdbf6b094d61f694f162a5a5279caededcb1f0a5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 01:27:01 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 02:16:08 2009 -0700"
      },
      "message": "merge master to master_gl\n"
    },
    {
      "commit": "bdbf6b094d61f694f162a5a5279caededcb1f0a5",
      "tree": "b7a3cd2bd1a437237e71598d05b88be3f681c610",
      "parents": [
        "3cf34f1345eca75c5282b65dc4bda5f1e4f23d0d",
        "1131392281cebcf958bbf5981203b1a34eef6ba2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 21 19:36:53 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 21 19:36:53 2009 -0700"
      },
      "message": "am 69a6c3eb: Merge change 2292 into donut\n\nMerge commit \u002769a6c3ebd46a8de0e896747757f364322c12608d\u0027\n\n* commit \u002769a6c3ebd46a8de0e896747757f364322c12608d\u0027:\n  split boot animation out of SurfaceFlinger\n"
    },
    {
      "commit": "a1ecca920e15ce04fe56ebf4f1b52ba711f9eb2d",
      "tree": "d5eca56524292b41940347ddbe5387fbf136c141",
      "parents": [
        "1bdc51faa8ecddf4ab34769bfc50becb454c5e79"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 19:21:59 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 19:21:59 2009 -0700"
      },
      "message": "split boot animation out of SurfaceFlinger\n\nConflicts:\n\n\tdata/etc/platform.xml\n"
    },
    {
      "commit": "c5b2c0bf8007562536b822eb060fc54a01f8e08b",
      "tree": "da6084f542177972cf72a985b5d2c10330f87de3",
      "parents": [
        "208059f67ed2dd9fa025e07fcb6954d3cb61c79e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 19 19:08:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:03 2009 -0700"
      },
      "message": "move libbinder\u0027s header files under includes/binder\n"
    },
    {
      "commit": "20f68782a4ea71c6a977d7f87d8288d3daa265ec",
      "tree": "5f286e70c9d2b870d3594354e321795496ef9b4e",
      "parents": [
        "d8fb7b586f3cfac42694208547b58438d7f3b3ed"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 11 00:03:41 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 17 23:34:16 2009 -0700"
      },
      "message": "Region now has its own implementation instead of relying on SkRegion, which allows us to break libui\u0027s dependency on libcorecg.\n"
    },
    {
      "commit": "df3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc",
      "tree": "2456c7861be6b9ee4b8f87fe086acb9a2b132b3a",
      "parents": [
        "aa8c0ff7a36b4840dcf3e72c9696b86d192c4314"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 19:29:25 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 15:07:33 2009 -0700"
      },
      "message": "created an new EGL extension called ANDROID_swap_rectangle\n\nANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing.\n\nHowever, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.\n"
    },
    {
      "commit": "0926f50664c739eaee60341f8e8c694dc9a4f3eb",
      "tree": "642597de2cc52f7636ae74f1a88f3706e3e54a4a",
      "parents": [
        "7be3e5d2d8101a8f5e12bbdf650431a734f88eba"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "message": "update surfaceflinger, libui and libagl to the new gralloc api\n\n- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.\n- factor all the lock/unlock code in SurfaceBuffer.\n- fixed \"showupdate\" so it works even when we don\u0027t have preserving eglSwapBuffers().\n- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.\n- make use of LightRefBase() where needed, instead of duplicating its implementation\n- add LightRefBase::getStrongCount()\n- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp\n\n- disabled copybits test, since it clashes with the new gralloc api\n\n- Camera/Video will be fixed later when we rework the overlay apis\n"
    },
    {
      "commit": "3f54b2ae7ee5248aa87749f151130af5480e043c",
      "tree": "cfb2b2459fca772ec78ef18954d63b096cb50a14",
      "parents": [
        "20ab0ad25e00f6fea2094ec10a9609e2105cd7db",
        "75088b0a7a01bcffcd5f37361b7a29f33da6280c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 13:35:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:35:37 2009 -0700"
      },
      "message": "am 0124a15: Merge change 626 into donut\n\nMerge commit \u00270124a150157d69a9f0ea109be2390afb5399b8a7\u0027\n\n* commit \u00270124a150157d69a9f0ea109be2390afb5399b8a7\u0027:\n  fix 1803886 android15 Translucent GLSurfaceView demo does not display properly\n"
    },
    {
      "commit": "b6683b58a8cd97e6d527a355bee7ffe9cf8fd6e7",
      "tree": "c938b6f85c536818f1cbcedb18982556b171a726",
      "parents": [
        "cbb0d628438809163e52ec28b40c32eb82c5a233"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 28 03:17:50 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 28 03:17:50 2009 -0700"
      },
      "message": "make use of the perfectly fine List.h instead of our own reimplementation of a linked list.\n"
    },
    {
      "commit": "2b42fa7fddafdfe27732813d79ca47a409a3b9c1",
      "tree": "fd60fb886045a715ba88f0b3dcf3f367fb8ceb6e",
      "parents": [
        "4c9ff468c94ff90f768ad933c50ffd9d9586f01c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 27 18:50:06 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 27 18:50:06 2009 -0700"
      },
      "message": "fix 1803886 android15 Translucent GLSurfaceView demo does not display properly\n"
    },
    {
      "commit": "550b79f4491909b0f223d8fb25155974f53b3f79",
      "tree": "9cd9235bdff13ba7d36a46ad83b3d1b4ca29a1be",
      "parents": [
        "cbc93ca8005d0a885d54b9a13c18ea07220feedf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 22 15:49:28 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 16:31:11 2009 -0700"
      },
      "message": "get rid of an old hack to work around a bug around glDeleteTextures() in the adreno drivers\n"
    },
    {
      "commit": "cbc93ca8005d0a885d54b9a13c18ea07220feedf",
      "tree": "2cb3f50e2aa184a79ad47c573206b596dcb0e6cb",
      "parents": [
        "0aa758d64ac530833ce9a311b164c9175a7a054c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 21 18:28:33 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 16:31:11 2009 -0700"
      },
      "message": "get rid of the \"show fps\" debug option\n"
    },
    {
      "commit": "0aa758d64ac530833ce9a311b164c9175a7a054c",
      "tree": "dffe53978839a5d7cf270d88a94f4c3b084a37fa",
      "parents": [
        "f1d8e87b09abf963cd5b6a026194c1940fadb7b4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 22 15:23:34 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 16:30:38 2009 -0700"
      },
      "message": "Surfaces are now destroyed properly in SurfaceFlinger.\n\nFirst, the window manager tells us when a surface is no longer needed. At this point, several things happen:\n- the surface is removed from the active/visible list\n- it is added to a purgatory list, where it waits for all clients to release their reference\n- it destroys all data/state that can be spared\n\nLater, when all clients are done, the remains of the Surface are disposed off: it is removed from the purgatory and destroyed.\nIn particular its gralloc buffers are destroyed at that point (when we\u0027re sure nobody is using them anymore).\n"
    },
    {
      "commit": "f1d8e87b09abf963cd5b6a026194c1940fadb7b4",
      "tree": "f26b490726ff7548b08cd705f1411fe13528e6a4",
      "parents": [
        "9a11206fe793363c0e8897b478cbe6ef8c52b543"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 20 19:39:12 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 16:22:36 2009 -0700"
      },
      "message": "a brand new MessageQueue for SurfaceFlinger.\n"
    },
    {
      "commit": "9a11206fe793363c0e8897b478cbe6ef8c52b543",
      "tree": "0b7fc29027a6803e1ab992f47f0dd66c2a3e3843",
      "parents": [
        "9f88afb013a7560bf1362d7999a4609e38d0ea77"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 17 19:36:26 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 15:00:41 2009 -0700"
      },
      "message": "more Surface lifetime management\n\nSurfaces are now destroyed once all references from the clients are gone, but they go through a partial destruction as soon as the window manager requests it.\nThis last part is still buggy. see comments in SurfaceFlinger::destroySurface()\n"
    },
    {
      "commit": "01b766839e06c32540cef100e3a7710d12cf1eef",
      "tree": "38528a4f4e1c99b5941f372ec617751ec48dac8c",
      "parents": [
        "62185b7335e85211dc4d0e2003354eb3ea2e66ef"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 20:04:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 20:04:08 2009 -0700"
      },
      "message": "more splitting of Surface/SurfaceControl. Surface.java is now implemented in terms of Surface and SurfaceControl.\n\nThe WindowManager side of Surface.java holds a SurfaceControl, while the client-side holds a Surface. When the client is in the system process, Surface.java holds both (which is a problem we\u0027ll try to fix later).\n"
    },
    {
      "commit": "62b74444be6742ab6b877918c85caeb9f2f1a2c9",
      "tree": "5c792adabd44ba015123b7b449cb25529b62661c",
      "parents": [
        "40b7f6e0433b89c27b2fe5a1c0c47f67b42eceb2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 14 23:02:51 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 12:29:34 2009 -0700"
      },
      "message": "fix a few typos in comments. this is really intended as a git pull/push test.\n"
    },
    {
      "commit": "0308739d0beef940588bf8bb693b91d0c2936d67",
      "tree": "ab3eb196187023c005731402f52ec82082455f73",
      "parents": [
        "076b1cc3a9b90aa5b381a1ed268ca0b548444c9b",
        "34a85cc7c09d43a18a573079c12ee3ea5e385445"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:36:33 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:36:33 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into master_gl\n\nConflicts:\n\tlibs/utils/Parcel.cpp\n"
    },
    {
      "commit": "076b1cc3a9b90aa5b381a1ed268ca0b548444c9b",
      "tree": "b87f7863623b37fa9a6cc4ef48934aab46f79986",
      "parents": [
        "4ec21527096d0dcaa99634e6058aca3a415461af"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "message": "Integrate from //sandbox/mathias/donut/...@145728\n\nSurfaceFlinger rework for new EGL driver model support.\n"
    },
    {
      "commit": "c08731e756868653d09d3e49b723706df3687070",
      "tree": "9e814e309f97b869d3c558f719a05d63d4707edd",
      "parents": [
        "0d1318b974feba2e6ff13e36a1781343c2fce045"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 18:11:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 18:11:38 2009 -0700"
      },
      "message": "AI 143320: am: CL 143171 am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n  Merged from: //branches/donutburger/...\n\nAutomated import of CL 143320\n"
    },
    {
      "commit": "0d1318b974feba2e6ff13e36a1781343c2fce045",
      "tree": "14ce5fb62dc2a66d81da6ee7fc3444c804676b73",
      "parents": [
        "c3aa00b29fd9ab9b06a2bd675dac404970acb477"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 17:58:20 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 17:58:20 2009 -0700"
      },
      "message": "AI 143309: am: CL 143160 am: CL 142856 new-new-new-new rotation animation. it may still change one more time.\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n  Merged from: //branches/donutburger/...\n\nAutomated import of CL 143309\n"
    },
    {
      "commit": "24fd77d44088011c88c55a5de459e75792bb2ecb",
      "tree": "9e814e309f97b869d3c558f719a05d63d4707edd",
      "parents": [
        "ecbeaa0cf1cd0bf1bcb00bb25502137db5a9847f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 16:10:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 16:10:37 2009 -0700"
      },
      "message": "AI 143171: am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143171\n"
    },
    {
      "commit": "06ee417bc5f07eb783f93233e27ffe2b90225f67",
      "tree": "e5c31a7161ba1ce7e72eab72ea1f42921c1bf0ac",
      "parents": [
        "f804114702ee61b1bcd5034617b59990e453f7b2",
        "b1596ee235b568d4c25313e2d335a1203953663b"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 15:38:40 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 15:38:40 2009 -0700"
      },
      "message": "Merge commit \u0027korg/cupcake\u0027\n\nConflicts:\n\tcore/java/android/webkit/WebView.java\n\tcore/java/android/widget/TwoLineListItem.java\n\tpreloaded-classes\n"
    },
    {
      "commit": "ecbeaa0cf1cd0bf1bcb00bb25502137db5a9847f",
      "tree": "14ce5fb62dc2a66d81da6ee7fc3444c804676b73",
      "parents": [
        "c1992a6f7551e22f14bb3fb92f1bd0b074cdac32"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 15:36:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 15:36:09 2009 -0700"
      },
      "message": "AI 143160: am: CL 142856 new-new-new-new rotation animation. it may still change one more time.\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143160\n"
    },
    {
      "commit": "ceff6e1874d760f4d5029b49b4da344b428555e5",
      "tree": "d4605e0b0c143acd8dffc1e0a995c3b2578e2545",
      "parents": [
        "262453cecb32ba418c9001bc9cc33dcc4f306b64"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Wed Mar 25 23:18:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 25 23:18:56 2009 -0700"
      },
      "message": "Automated import from //branches/cupcake/...@142873,142873\n"
    },
    {
      "commit": "262453cecb32ba418c9001bc9cc33dcc4f306b64",
      "tree": "3e3ca52de6e2c820bbcd054952dcce9939bca901",
      "parents": [
        "11d93f968ca515cd448ef51e4d8b79e3de561475"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Wed Mar 25 21:42:35 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 25 21:42:35 2009 -0700"
      },
      "message": "Automated import from //branches/cupcake/...@142856,142856\n"
    },
    {
      "commit": "7c143aab44b562eb917ca57ed7c1eb584591b7e2",
      "tree": "e1d504f26085a7e832ca0d628ab90b06874d1e4a",
      "parents": [
        "b535e58351bf204e7a96c9cf5f4aebe5bf56f9f2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 22:50:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 22:50:50 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@142447,142447\n"
    },
    {
      "commit": "74c770be33d41f129334de97ce4d0db141312d02",
      "tree": "e1d504f26085a7e832ca0d628ab90b06874d1e4a",
      "parents": [
        "6219dd7d3a685725e1f8e0fad94e6aa64492ca82"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 22:43:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 22:43:22 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@142446,142446\n"
    },
    {
      "commit": "e74be0afd9b450b8fae7eae92e9c768add565a26",
      "tree": "e65580f0caa45af93f0ffd8e00884a1aa6031b3a",
      "parents": [
        "3cff302213b17e74dcf5cdeb9c4139234e79cb4e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 20:25:55 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 20:25:55 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@141504,141504\n"
    },
    {
      "commit": "3df5e433a2bbdec20af735fe7fd928bef8ed6ad8",
      "tree": "e65580f0caa45af93f0ffd8e00884a1aa6031b3a",
      "parents": [
        "78b877e7e673bc248a878e4513f978b2eb82e1c0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 20:25:29 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 20:25:29 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@141502,141502\n"
    },
    {
      "commit": "0348218e930441c68e90a4e55893ae3b9e1ea0ef",
      "tree": "93fbbd7ddb03e76602273b5513e157ce47541358",
      "parents": [
        "2ed5f739ebd88f25e16f1f5edfd0041bdf637394"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 19:43:24 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 19:43:24 2009 -0700"
      },
      "message": "Automated import from //branches/cupcake/...@142445,142445\n"
    },
    {
      "commit": "0c2bcbc6cc2c41c567596e1579adae64570e9aad",
      "tree": "e65580f0caa45af93f0ffd8e00884a1aa6031b3a",
      "parents": [
        "4f68be1a5b53f690f1a7d8ba62cddb5ef0022a96"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 19 23:08:54 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 19 23:08:54 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@141571\n"
    },
    {
      "commit": "732ca39b704428b77ef305826d4e6c07190fd7ed",
      "tree": "0b575888c39771713beb00a816479b1cdf53242e",
      "parents": [
        "15c399644d0bd343ef9ed23ccb117e49a0eb7f82",
        "ebad147e654682b6f05438ca8f3685809df5d2e2"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Mar 18 11:33:14 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Mar 18 11:33:14 2009 -0700"
      },
      "message": "Merge commit \u0027remotes/korg/cupcake\u0027 into merge\n\nConflicts:\n\tcore/java/android/view/animation/TranslateAnimation.java\n\tcore/jni/Android.mk\n\tcore/res/res/values-en-rGB/strings.xml\n\tlibs/audioflinger/AudioFlinger.cpp\n\tlibs/surfaceflinger/LayerScreenshot.cpp\n\tpackages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java\n"
    },
    {
      "commit": "bcef13b666c7459241235bc6209837ae81884d2f",
      "tree": "a1313bb849f73fd1b62d221f60196fe8fd44edf5",
      "parents": [
        "22f8defddca562244d43611d99ce76c3ae65a73e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 11 12:11:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 11 12:11:56 2009 -0700"
      },
      "message": "auto import from //branches/cupcake/...@137873\n"
    },
    {
      "commit": "edbf3b6af777b721cd2a1ef461947e51e88241e1",
      "tree": "f09427b843b192cccf8c3b5328cb81dddf6489fa",
      "parents": [
        "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "43aa2b1cbf7a03e248e10f4d0fec0463257cd52d"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "ac65e0b172b33f7e068c14e3d95678fa20205577",
      "tree": "4c290a9665c829ec3774425563260a94564fcb71",
      "parents": [
        "a6938bab1f6fa76ae98ebbe44f4e534e05fa0993"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@131421\n"
    },
    {
      "commit": "a6938bab1f6fa76ae98ebbe44f4e534e05fa0993",
      "tree": "bc5a1f806bd06db8abb197e80be9ead3644c0bcc",
      "parents": [
        "e41dd756db5184519f4dacbf4d95b333822605c7"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "a837ba778f2d7a5170b37aa33624d9b9711c354d",
      "tree": "95e57dc8a8fb658ba175f8592132f9cb1212beab",
      "parents": [
        "5da3af6c5de848e447982c3633fc3a58c27e286b"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jan 26 11:51:12 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jan 26 12:11:20 2009 -0800"
      },
      "message": "Add missing \u003climits.h\u003e include\n\nThis should fix the build for gcc 4.3.2\n"
    },
    {
      "commit": "276293246ea9cbc0a578a7697cc48930376ec0e9",
      "tree": "03804488c60dda65699333d2311c8d1842ec4b65",
      "parents": [
        "e09fd9e819c23dc90bca68375645e15544861330"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "e09fd9e819c23dc90bca68375645e15544861330",
      "tree": "9a9fdadd1301625f875a3c126c986c79e3363ac4",
      "parents": [
        "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407",
      "tree": "df5a6539447324de36e95b057d6b9f0361b7a250",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
