)]}'
{
  "log": [
    {
      "commit": "2c9e94aa3e9614f0d202ee008c08a9011fa7f75f",
      "tree": "ccc7e6d62479007774b6d58effcff4994298d987",
      "parents": [
        "0ed316b7f147401d158bd07f188ed2e598b337ba"
      ],
      "author": {
        "name": "Ed Coyne",
        "email": "edcoyne@google.com",
        "time": "Wed May 31 10:08:28 2017 -0700"
      },
      "committer": {
        "name": "Ed Coyne",
        "email": "edcoyne@google.com",
        "time": "Wed May 31 10:24:52 2017 -0700"
      },
      "message": "Refactor bootanimation into a shared lib.\n\nWe would like to reuse the animation parts of it in Android things.\nThis refactors the audio part into the _main and gets callbacks from\nthe BootAnimation class at interesting times. This will be the same\napproach we take to integrate with it.\n\nBUG: 37992717\nTest: Built locally and pushed to a bullhead, works with sound.\nChange-Id: I5eaca07c25eeb5edeab07d7ae7a29945e0e2cd37\n"
    },
    {
      "commit": "b593842063770f9e75c623a4bc7bb41b4c1830c6",
      "tree": "25c843fbdf41d802f73265c700e6574b60508b85",
      "parents": [
        "3f2bbcbe92cd2500746153ed2378278c1b2a53e2"
      ],
      "author": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Thu Mar 23 13:46:24 2017 -0700"
      },
      "committer": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Mon Apr 03 14:43:14 2017 -0700"
      },
      "message": "support shutdown animation from bootanim\n\n- init will set sys.powerctl property and run bootanim.\n- Use /oem/media/shutdownanimation.zip or\n  /system/media/shutdownanimation.zip for animation file.\n  If none of them exist, android animation will be used.\n- Disable audio playing for shutdown animation.\n- Disable TimeCheckThread for shutdown animation. It\n  accesses /data partition and can block umount.\n\nbug: 36526187\nTest: many reboots\n\nChange-Id: If02c73cda2015317d88d056cd45201208da49946\n"
    },
    {
      "commit": "a917353da0ed6079d45487a8c96b892c5d754637",
      "tree": "fc1514cfdd649543301b3b1ead2690a03d5b7a39",
      "parents": [
        "45250aca6d55988a58fdcb4ba0e8a58d36b1f34b"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Tue Jul 19 14:56:39 2016 -0400"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Jan 31 15:49:06 2017 -0800"
      },
      "message": "Initialize bootanimation sound on separate thread\n\nBlocks when it\u0027s time to play the first sound.\nBug: 30189706\nTest: on marlin\nChange-Id: Ib3666fbfb5f109c633ed59edad4a283b8ada8ae2\n"
    },
    {
      "commit": "9071db1d370573bad80f127898e34066f56c4e64",
      "tree": "896bf13aa091dc6142ede8d76dfe507497dcda72",
      "parents": [
        "6affbde5560921b0d4a83c30d98fdca208fea7ef"
      ],
      "author": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Fri Oct 28 17:38:22 2016 -0700"
      },
      "committer": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Fri Oct 28 18:04:48 2016 -0700"
      },
      "message": "Allow boot clock to be toggled between 12 and 24 hour format\n\nBug: 32461548\nChange-Id: I414192e6d9f3ae44267f4a360e35647f18c420b4\n"
    },
    {
      "commit": "0e3d2ab6d2988a1ae70d13d6d77a0f8109eb66e1",
      "tree": "48dad4babbef6b742c0932b958ea4274aa63e446",
      "parents": [
        "9925ae6e3875f2d88c82f6de4c2aeebfe983d152"
      ],
      "author": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Mon Aug 29 04:11:19 2016 -0700"
      },
      "committer": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Mon Sep 05 04:51:45 2016 -0700"
      },
      "message": "Allow custom fonts in the boot animaiton zip file\n\nChange the font format to be a 16x6 grid of characters\n\nBug: 29580875\nChange-Id: Ia468307cb9770436e8ae865c91acda23a71bde05\n"
    },
    {
      "commit": "290c4350edc66de5663e27c54e694c8ee8cf0e0e",
      "tree": "97961acbf248ba0f5bdfd7e1336fea4101cb8b17",
      "parents": [
        "3025e6be7fae8d7fa3eebf583c7d866a38a56432"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Tue Aug 09 14:35:10 2016 -0400"
      },
      "committer": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Wed Aug 10 10:52:48 2016 -0400"
      },
      "message": "Suppress Boot sound for non-standard scenarios.\n\nBlacklisted bootreasons will not play a sound (e.g. \"kernel_panic\")\nIf boot has already completed, assume this is a runtime restart and\nskip the sound.\n\nBug: 30654343\nChange-Id: I41b1829a93c0d9a63c69aea2d1614eaa18b72230\n"
    },
    {
      "commit": "859029ff7b87087e5e70a087a75bac5836f41a22",
      "tree": "2fd046e76c40949500346ccee9d7c32cebe119ce",
      "parents": [
        "50752f7391a4fd299da1f1b3af1fe58dd4381426",
        "d6d9a1d0b9cf6fa740d9fe410015b094475c5a4c"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Tue Jul 12 17:29:55 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 12 17:29:56 2016 +0000"
      },
      "message": "Merge \"OpenSL-based audio support for BootAnimation\" into nyc-mr1-dev"
    },
    {
      "commit": "271674930a1f9020a291827a8ecb6ab68782c4fa",
      "tree": "3c714a394ffaa2133707a495542465deba3d5309",
      "parents": [
        "3cc6935719323a3d8dc31fcfba59f5e3a8abfa32"
      ],
      "author": {
        "name": "Sai Kiran Korwar",
        "email": "skirank@nvidia.com",
        "time": "Tue Jul 07 20:00:06 2015 +0530"
      },
      "committer": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Mon Jul 11 12:54:22 2016 -0400"
      },
      "message": "BootAnimation: Use npot textures\n\nIf non power of two textures are supported, then use\nnpot texture for specifying the images supplied by vendor.\nThis will reduce the memory footprint of the app by a considerable\namount.\n\nBug: 28865582\nBug: 30040263\nChange-Id: I5cef98fb013318d60d8a648041c9665da68c0ff3\n"
    },
    {
      "commit": "d6d9a1d0b9cf6fa740d9fe410015b094475c5a4c",
      "tree": "1acd21e2daca47872bca249e76f18110886b8fd1",
      "parents": [
        "58ef88927d5e28318920a135bba8edf5409115fe"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Wed Jun 08 00:38:58 2016 -0700"
      },
      "committer": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Wed Jul 06 11:13:48 2016 -0400"
      },
      "message": "OpenSL-based audio support for BootAnimation\n\nRespects dnd settings for sound playback.\nBasic implementation uses in-memory wavs as buffers.\naudioplay::playClip should not be called before previous clip ends.\nUpdated FORMAT.md to reflect no more audio_conf.txt\n\nBug: 29055299\nChange-Id: Ifc358d7c85f11b8b54ae6446c40643b87bc567f2\n"
    },
    {
      "commit": "dd214a796f8b97070645226d6a61f8651f9e13a0",
      "tree": "f71f1440203bdf1c2c98c13f08c462d3175f4549",
      "parents": [
        "0e792f567ac1b37a75e94e1ff1017f2f152494ef"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Mon Jun 27 17:14:30 2016 -0400"
      },
      "committer": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Wed Jun 29 09:35:21 2016 -0400"
      },
      "message": "Support trimmed images in BootAnimation\n\nEach frame directory may optionally contain a `trim.txt` to specify\nhow the image was trimmed relative to the animation\u0027s full size.\nSee FORMAT.md for more details.\n\nBug: 29055299\nChange-Id: I7a291e9a52b4bbe50a29c519f6a4d0e2cc0389d7\n"
    },
    {
      "commit": "9748086fe267e21d243a49df1775905094a28dd9",
      "tree": "e8e42b4b282f9ad5297ee44c925fa6e18763f06f",
      "parents": [
        "085933cc8fa0b06d28161ddc001c20282012f263"
      ],
      "author": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Tue Mar 29 14:55:55 2016 -0700"
      },
      "committer": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Thu May 12 17:01:59 2016 -0700"
      },
      "message": "Check clock accuracy before attempting to display clock\n\nThe RTC may not be set yet, may have been reset, or may have drifted\nsignificantly if the device time hasn\u0027t been updated in a long time.\n\nUsing the the last_time_change file to determine if the time is known to\nbe accurate and only display the clock when that is the case.\n\nBug: 27802041\nChange-Id: I845cf9c74fcb4009504f1bab853e04146fa19e1d\n"
    },
    {
      "commit": "815e51d76cc284f3ca59534d9f9372d3dd50f574",
      "tree": "1531cffeabba74e25580b8d42785554ddeb89865",
      "parents": [
        "7b7c0a4e45af093e1487519703c7d41ec0c45060",
        "0c7535bb4fbf2306df7039a3358c1216de34cd8f"
      ],
      "author": {
        "name": "Andriy Naborskyy",
        "email": "andriyn@google.com",
        "time": "Thu Mar 24 16:43:34 2016 -0700"
      },
      "committer": {
        "name": "Andriy Naborskyy",
        "email": "andriyn@google.com",
        "time": "Thu Mar 24 17:14:52 2016 -0700"
      },
      "message": "resolve merge conflicts of 0c7535b to nyc-dev\n\nChange-Id: I49fa42e0d78aeaa8127cefc5cc5122cf37fce878\n"
    },
    {
      "commit": "39218ba26d5bb8646f04273f2c3731598721c1da",
      "tree": "5a9f92f0589635df70a85ec8a8ef8c5bbb966b1b",
      "parents": [
        "54c3808802e643785cc76b29067d1119e9c78af4"
      ],
      "author": {
        "name": "Andriy Naborskyy",
        "email": "andriyn@google.com",
        "time": "Sun Aug 16 21:32:50 2015 -0700"
      },
      "committer": {
        "name": "Andriy Naborskyy",
        "email": "andriyn@google.com",
        "time": "Tue Mar 22 20:18:11 2016 -0700"
      },
      "message": "bootanimation: implement split packaging of animation\n\nAnimation package zip can be separated into OEM and SYSTEM\nOEM desc.txt can use new command \"$SYSTEM\" to invoke animation\nfrom SYSTEM package\n\nChanges to animation structure:\n1. animation can refer other animation\n2. animation contains zip file reference\n3. BootAnimation has name of root of animation Zip; processing desc.txt we\nneed filename of container zip and we can\u0027t access it from ZipFileRO instance\n\nmovie() changes:\n1. Split movie() into loading Zip and playing part\n2. load parses desc.txt and if needed referred Zip\n3. play can descend animations tree\n\nChange-Id: I600d02c84d537df7b3e32a84f84a294b26e319e0\nSigned-off-by: Andriy Naborskyy \u003candriyn@google.com\u003e\n"
    },
    {
      "commit": "a704b7d3444d218fe3b3f977fd242d2cd626058e",
      "tree": "33359e1798c4801be6471db575bd1f70ce6b70fb",
      "parents": [
        "569edb85125e6754de8f8e60f993afad42eed490"
      ],
      "author": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Tue Feb 16 16:55:49 2016 -0800"
      },
      "committer": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Mon Mar 07 16:15:31 2016 -0800"
      },
      "message": "Draw a clock on top of the Android boot animation\n\nDon\u0027t draw on top of vendor specific animations/logos since we can\u0027t\nmake it look good.\n\nBug: 27209004\nChange-Id: If4791b861ff476c23b37787ba896a3ef8d9df4fd\n"
    },
    {
      "commit": "ebf9a0d8a888042c16ec0cb6dd8419f18038663f",
      "tree": "e364c8e39ff0795a22da5a5d1e32472bc22dcebb",
      "parents": [
        "76716c5a180aa471c6973ca7aa03c7f2da677823"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Oct 02 16:08:47 2014 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Oct 03 15:38:15 2014 -0700"
      },
      "message": "Add support for playing audio during bootanimation\n\nThe bootanimation daemon will play 16 bit WAV files contained in bootanimation.zip\nFor this to work, the bootanimation.zip must contain an audio_conf.txt file,\nwhich contains parameters to be used for the tinyalsa pcm_open call\nas well as mixer parameters to set before attempting to play the sound.\n\nIf the bootanimation finds an audio_conf.txt file, then it will look for a file named\n\"audio.wav\" in each of the part subdirectories. If audio.wav is found, it will play that\nWAV file starting at the beginning of that part.\n\nThe code for this is based on the tinyplay utility in tinyalsa.\n\nThe audio_conf.txt and must begin with the following header:\n\ncard\u003d\u003cALSA card number\u003e\ndevice\u003d\u003cALSA device number\u003e\nperiod_size\u003d\u003cperiod size\u003e\nperiod_count\u003d\u003cperiod count\u003e\n\nThis header is followed by zero or more mixer settings, each with the format:\nmixer \"\u003cname\u003e\" \u003d \u003cvalue list\u003e\nSince mixer names can contain spaces, the name must be enclosed in double quotes.\nThe values in the value list can be integers, booleans (represented by 0 or 1)\nor strings for enum values.\n\nFinally I should mention that this change is not the right approach.\nInstead of going straight to ALSA we should be using the mediaserver instead.\nBut mediaserver isn\u0027t ready in time due to interactions with the system server, and there\nisn\u0027t time to fix this for the current release. We need to fix that for the next one.\n\nBug: 17674304\n\nChange-Id: Ic391ade61c941d0a24f4d64fe005ac9375a23fa9\n"
    },
    {
      "commit": "083b84cf8880bb7f0d2c2dc1b45c7d610656dbd1",
      "tree": "2c83dce383d221eeb4bba0069b2d047424c7a350",
      "parents": [
        "471157821f7b0933c55081ef4625c78f8e798de7"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Sep 22 10:51:09 2014 -0700"
      },
      "committer": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Thu Sep 25 23:37:12 2014 +0000"
      },
      "message": "bootanimation: allow animation to specify background color\n\nSome OEMs want to have a bootanimation (or parts of it) displayed on a\ncolor other than black. They currently just use full-screen frames for\nthat, which wastes lots of memory and bandwidth. This change allows\neach part of the animation to specify a background color that will be\napplied outside of the frame images; if unspecified the background\nwill be black as it is now.\n\nBug: 16635599\nChange-Id: Ibf008fc75c5aad891c86ba9e4ec0879b7a61b8bd\n"
    },
    {
      "commit": "0c1eeb3c8ab53954218d3b8f4be08ff21be3e985",
      "tree": "3a59dbad3788ed44780ea728f306e3eb84d915fe",
      "parents": [
        "ade631eed0df228e343f2a00db653058ff588846"
      ],
      "author": {
        "name": "Mykola Kondratenko",
        "email": "mykola.kondratenko@sonymobile.com",
        "time": "Tue Apr 15 09:35:44 2014 +0200"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 30 10:58:20 2014 +0000"
      },
      "message": "Freeing frame map\n\nFileMap memory is never released until application exit\n\nRelease it now as the texture is already loaded and the memory\nused for the packed resource can be released.\n\nChange-Id: Id08a1e466337b3a0179684eb6a444e18147ee343\n"
    },
    {
      "commit": "afd31e08299008fdc5c2813f21b2573f29dc53df",
      "tree": "7f83dd8f1e7ed71d4fe8ce280841e43ce275ac6d",
      "parents": [
        "6e2d0c1d91f644ab50e0c0b7cae4306262a4ca41"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 03 13:16:03 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Dec 09 16:23:16 2013 +0000"
      },
      "message": "Reimplement ZipFileRO in terms of libziparchive.\n\nThis lets us share zip archive processing code with both\nthe runtime (Art, dalvik) and critical java code\n(StrictJarFile).\n\nThis change also moves several utility methods to ZipUtils\nand dedups code across several zip inflation methods.\n\nOne of the side effects of this change is that several\nprocessing loops are now O(n) instead of O(n^2).\n\nbug: 10193060\n\nChange-Id: I3c7188496837a47246c4f342e45485a70fef3169\n"
    },
    {
      "commit": "d3782b26b2026e60a8e0d4b967a156369f2a46f8",
      "tree": "4cdd65f7346993aea94bedf15fbd91e910b74b33",
      "parents": [
        "fe54cb6f3da7fe95d5141d97b0c6780e001ad058"
      ],
      "author": {
        "name": "Kevin Hester",
        "email": "khester@google.com",
        "time": "Thu Apr 26 10:38:55 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 19 17:38:43 2012 -0700"
      },
      "message": "Exit boot animation cleanly.\n\nThe desc.txt file can now mark parts as \u0027must finish cleanly\u0027 by using\n\u0027c\u0027 as the part line prefix rather than \u0027p\u0027.  If so indicated, if the\nbootanimation is asked to quit it will do so only after waiting to\nfinish that part.\n\nI considered either making init.c service killing smarter or promoting\nbootanim to be a bindable service with a requestExit method.  However,\nthese changes are probably too big/risky given our ship date.  So\nI used a property as a mailbox between SurfaceFlinger and bootanim.\n\nBug: 6679877\nChange-Id: I1f8dd9e7da1ea80a483b31fa14c4a5645922d774\n"
    },
    {
      "commit": "8335f1ccccedb6655d96d9d5b697a7f0938235dd",
      "tree": "30a7f8b3e646157365dd51222665a68753fa25e3",
      "parents": [
        "57235fc65b5920f4867e66c8263efab49e92a21b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 18:48:35 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:08 2012 -0800"
      },
      "message": "fix libgui header location\n\nChange-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe\n"
    },
    {
      "commit": "b13b9bdad2baf6ad1ec2e56b6b7598fa20f55fc4",
      "tree": "2b90dc39a35d8081ea47b038893624b69a01202d",
      "parents": [
        "6db0608dff408130b35e6f21abe746a635648b18"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 18:27:36 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 19:01:26 2012 -0800"
      },
      "message": "frameworks/base refactoring.\n\nstep 2: move libutils headers to their new home: androidfw\n\nChange-Id: I14624ba23db92a81f2cb929f104386e1fab293ef\n"
    },
    {
      "commit": "000479f9e325b4e426a67033abd92d47da412725",
      "tree": "16b93ea777744aa24ffe7d3a191bb90529ad4ce5",
      "parents": [
        "28a5dc229ed25c771cde25668928edc788073029"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 09 17:46:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 13:16:22 2010 -0800"
      },
      "message": "split libsurfaceflinger_client and libcamera_client out of libui\n"
    },
    {
      "commit": "a8826d67097b12cf9d6b14a7e32c0862f17b189a",
      "tree": "70647cff0bcb6efe7e86b516473e536dc4d3aa57",
      "parents": [
        "98a9c56acf1857adaf1773bd91c88a8364fd3fa8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 01 03:10:14 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 01 03:14:30 2009 -0700"
      },
      "message": "improve boot animation a bit\n"
    },
    {
      "commit": "bc7261130a51dc9f3461d3970eee1b923bcbf193",
      "tree": "8f74c3943a2582418addd8c91e0c1307fe95f733",
      "parents": [
        "de0dfb7b65a02d4dd74c271b558adee0973fc267"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 15:44:05 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 15:49:32 2009 -0700"
      },
      "message": "fix [2132563] stuck in boot animation (framebuffer_device_open: Failed to create flip chain)\n"
    },
    {
      "commit": "947f4f4d384ea26eb2145cc070a3eed42c59534a",
      "tree": "edc5fb1e6e808a2b809720f44b6236ebe93b577b",
      "parents": [
        "6158b1bf0364da1582468a98ec09d004ba99deec",
        "0690519fcde1ccb189081aa79df61436f65686c2"
      ],
      "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": "627e7b50be41e4fdee758a1bfad3a55de56b4e27",
      "tree": "de5c88b60ad0f5454956eb457090958ebb9fc331",
      "parents": [
        "384bfa270cdcb5dc3bc9ec396b783e25eb2d9b4d"
      ],
      "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": "6158b1bf0364da1582468a98ec09d004ba99deec",
      "tree": "6fc11335f772f84dbee308e830d807fe0df1f815",
      "parents": [],
      "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": "b24b2970a8ff713ece1b732b55cb064cb87eb1c7",
      "tree": "4496f5379f4f8668c33aee3232364681bd3ae048",
      "parents": [
        "8516e44aa7c1c56e07cd5e06eb26d35d7ef8b440"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 18:34:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:34:22 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140807,140807\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "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": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "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": "d24b8183b93e781080b2c16c487e60d51c12da31",
      "tree": "fbb89154858984eb8e41556da7e9433040d55cd4",
      "parents": [
        "f1e484acb594a726fb57ad0ae4cfe902c7f35858"
      ],
      "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": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "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"
    }
  ]
}
