)]}'
{
  "log": [
    {
      "commit": "bdd8fbf6eae886dc3b2cd716745ede918773a2c4",
      "tree": "b2253029638ca058b5b634805443d7d6ec5871b3",
      "parents": [
        "01cdd3123f408dc41a2bd4786f3a943157ab6c69",
        "877ae53586c3f7f5b788a40dfb0a58bef54a7446"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 02:20:10 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 02:20:10 2014 +0000"
      },
      "message": "am 877ae535: Set default text style in layoutlib as NORMAL [DO NOT MERGE]\n\n* commit \u0027877ae53586c3f7f5b788a40dfb0a58bef54a7446\u0027:\n  Set default text style in layoutlib as NORMAL [DO NOT MERGE]\n"
    },
    {
      "commit": "01cdd3123f408dc41a2bd4786f3a943157ab6c69",
      "tree": "9849bd626d384312f0b4b5e1da0b4f305e2905a9",
      "parents": [
        "d094742d2e19371291409886bb80f070df099533",
        "669792b303b99a003bbcbf8d962f5be1debf9b63"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 02:20:07 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 02:20:07 2014 +0000"
      },
      "message": "am 669792b3: Fix sans-serif-thin and sans-serif-light fonts in layoutlib. [DO NOT MERGE]\n\n* commit \u0027669792b303b99a003bbcbf8d962f5be1debf9b63\u0027:\n  Fix sans-serif-thin and sans-serif-light fonts in layoutlib. [DO NOT MERGE]\n"
    },
    {
      "commit": "d094742d2e19371291409886bb80f070df099533",
      "tree": "b2b599560d23bea98ec2c87eab06eb24fe3bf043",
      "parents": [
        "7bb8de580a451621480913d7839fd7eb784ab689",
        "cda89ca02548c19250ae55671c055536b64b74f8"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 02:19:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 02:19:59 2014 +0000"
      },
      "message": "am cda89ca0: Fix a bug in Nine Patch library. [DO NOT MERGE]\n\n* commit \u0027cda89ca02548c19250ae55671c055536b64b74f8\u0027:\n  Fix a bug in Nine Patch library. [DO NOT MERGE]\n"
    },
    {
      "commit": "7bb8de580a451621480913d7839fd7eb784ab689",
      "tree": "aab26e63f31bd94a3c5878a7304db2f2257bbcd6",
      "parents": [
        "69b3115e1c02f2b22165b93bd9bcc5c90ec69b12",
        "a2b34c96f1ef24d96854d1e23426dec7774510e8"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 02:19:56 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 02:19:56 2014 +0000"
      },
      "message": "am a2b34c96: Optimize layout rendering in layoutlib [DO NOT MERGE]\n\n* commit \u0027a2b34c96f1ef24d96854d1e23426dec7774510e8\u0027:\n  Optimize layout rendering in layoutlib [DO NOT MERGE]\n"
    },
    {
      "commit": "69b3115e1c02f2b22165b93bd9bcc5c90ec69b12",
      "tree": "3d673806a4fdbae13801a8ef1ccf44472fa5977a",
      "parents": [
        "82d5bd98b77a9955e375b075e262639625c40232",
        "e183855c1eb7baf750c67bb20e70fb887eba7af6"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 02:19:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 02:19:52 2014 +0000"
      },
      "message": "am e183855c: Add methods for Time_Delegate [DO NOT MERGE]\n\n* commit \u0027e183855c1eb7baf750c67bb20e70fb887eba7af6\u0027:\n  Add methods for Time_Delegate [DO NOT MERGE]\n"
    },
    {
      "commit": "82d5bd98b77a9955e375b075e262639625c40232",
      "tree": "5c262c3b83f090a2a1c2e9d90af963b5386bb69b",
      "parents": [
        "d5de1bd6305dc8885027504996602755b1e79099",
        "e5a2347bc6cf1506799136af4c9724275ca0247e"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 02:19:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 02:19:49 2014 +0000"
      },
      "message": "am e5a2347b: Fix NPE in layoutlib. [DO NOT MERGE]\n\n* commit \u0027e5a2347bc6cf1506799136af4c9724275ca0247e\u0027:\n  Fix NPE in layoutlib. [DO NOT MERGE]\n"
    },
    {
      "commit": "d5de1bd6305dc8885027504996602755b1e79099",
      "tree": "dbb9cb4c3f5831d865ee01c7ae3b5914af90a132",
      "parents": [
        "8a70bcef5a724906e3c35c58cb2266ee9c9e1b78",
        "30505abeb6cda9d042ec41f2563d561714eac46b"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 02:19:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 02:19:46 2014 +0000"
      },
      "message": "am 30505abe: Fix text size in Fake Action Bar. [DO NOT MERGE]\n\n* commit \u002730505abeb6cda9d042ec41f2563d561714eac46b\u0027:\n  Fix text size in Fake Action Bar. [DO NOT MERGE]\n"
    },
    {
      "commit": "8a70bcef5a724906e3c35c58cb2266ee9c9e1b78",
      "tree": "f2cb1b765259a60932381baaab6da5436d03b237",
      "parents": [
        "40fea8b1bf689933e63941b5fa5e3379f82c88b5",
        "5a7b3b65b691edbdb855eb6154b8b30f5700acbb"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon May 12 18:57:34 2014 -0700"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon May 12 18:57:34 2014 -0700"
      },
      "message": "resolved conflicts for merge 5a7b3b65 to jb-dev-plus-aosp\n\nChange-Id: I6bafdb9c6a8dfc6f55a4d9adf67f447661137eb8\n"
    },
    {
      "commit": "40fea8b1bf689933e63941b5fa5e3379f82c88b5",
      "tree": "d3b0400cdaa9c9fd40176748059f77b9f5122f94",
      "parents": [
        "065ce2e8b3e11ff8bb1699748edbd23d272bc8a6",
        "4b5da86d04200ba278b62ff99da91e212b87e9af"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 01:52:32 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 01:52:32 2014 +0000"
      },
      "message": "am 4b5da86d: Fix DatePicker and Calendar widget in layoutlib. [DO NOT MERGE]\n\n* commit \u00274b5da86d04200ba278b62ff99da91e212b87e9af\u0027:\n  Fix DatePicker and Calendar widget in layoutlib. [DO NOT MERGE]\n"
    },
    {
      "commit": "065ce2e8b3e11ff8bb1699748edbd23d272bc8a6",
      "tree": "1172f5724fe99a26d49f19fd759bef9bbc16b0a7",
      "parents": [
        "9f2f5e776aed6bfcd87be0b7dd6aa9d22af28817",
        "5c166c9c04b6ea9d4955830e7ba277be71f17a6f"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 01:52:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 01:52:28 2014 +0000"
      },
      "message": "am 5c166c9c: Layoutlib: Update the wifi icon in the status bar. [DO NOT MERGE]\n\n* commit \u00275c166c9c04b6ea9d4955830e7ba277be71f17a6f\u0027:\n  Layoutlib: Update the wifi icon in the status bar. [DO NOT MERGE]\n"
    },
    {
      "commit": "9f2f5e776aed6bfcd87be0b7dd6aa9d22af28817",
      "tree": "c973773aae23028496acb208e58b7449f00ef162",
      "parents": [
        "06c4f23d737082717f37f5f3583d9c12f4b64bf2",
        "2d82586b96593b1b3b5280d77d5ae9a09df9d1fd"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 01:52:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 01:52:25 2014 +0000"
      },
      "message": "am 2d82586b: Fix CalendarView to show the right labels. [DO NOT MERGE]\n\n* commit \u00272d82586b96593b1b3b5280d77d5ae9a09df9d1fd\u0027:\n  Fix CalendarView to show the right labels. [DO NOT MERGE]\n"
    },
    {
      "commit": "06c4f23d737082717f37f5f3583d9c12f4b64bf2",
      "tree": "64b766589afd8e060291cf494adf4e9f64b3651a",
      "parents": [
        "cdb87d8d83e8a76a4cf78d24d5c49ee8548eba1f",
        "64dc0380127047ffcf135b6848c9150aa8dbed85"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 01:52:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 01:52:21 2014 +0000"
      },
      "message": "am 64dc0380: Fix layoutlib [DO NOT MERGE]\n\n* commit \u002764dc0380127047ffcf135b6848c9150aa8dbed85\u0027:\n  Fix layoutlib [DO NOT MERGE]\n"
    },
    {
      "commit": "cdb87d8d83e8a76a4cf78d24d5c49ee8548eba1f",
      "tree": "5254a9d9f4ce93f13e219a565e8b776536abe9e0",
      "parents": [
        "edae4e69512a7c9df1076fde70de83e15053a30a",
        "a59c27dd6674a31c875b0baa86519caec628ca2d"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 01:52:18 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 01:52:18 2014 +0000"
      },
      "message": "am a59c27dd: Fix ClassCastException when rendering ListView [DO NOT MERGE]\n\n* commit \u0027a59c27dd6674a31c875b0baa86519caec628ca2d\u0027:\n  Fix ClassCastException when rendering ListView [DO NOT MERGE]\n"
    },
    {
      "commit": "edae4e69512a7c9df1076fde70de83e15053a30a",
      "tree": "f49af95f48fa15922f072db754ebe291b3e05559",
      "parents": [
        "3ecaa88d83d04a0fd55b494829badbb41016f5a1",
        "8a39c3afb29f2540b05319042e758dd4d5f73a1e"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 13 01:52:15 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 01:52:15 2014 +0000"
      },
      "message": "am 8a39c3af: Add orientation to configuration for layoutlib. [DO NOT MERGE]\n\n* commit \u00278a39c3afb29f2540b05319042e758dd4d5f73a1e\u0027:\n  Add orientation to configuration for layoutlib. [DO NOT MERGE]\n"
    },
    {
      "commit": "877ae53586c3f7f5b788a40dfb0a58bef54a7446",
      "tree": "ad1d0e6b55054fc9aa163357b4f4615ea3159484",
      "parents": [
        "669792b303b99a003bbcbf8d962f5be1debf9b63"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Wed Feb 19 11:05:02 2014 -0800"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 06 14:02:46 2014 -0700"
      },
      "message": "Set default text style in layoutlib as NORMAL [DO NOT MERGE]\n\nIf a style doesn\u0027t specify text style (normal/bold/italic/bold-italic)\nthen default to normal instead of throwing an error.\n\nBug: http://b.android.com/61358\nChange-Id: I0138c73807a5ff6e4d938a99ece3044333110aa1\n(cherry-picked from bcbeaf83ca75e4a819377938fdf3ec1e07fa30a7)\n"
    },
    {
      "commit": "669792b303b99a003bbcbf8d962f5be1debf9b63",
      "tree": "4722ec9c2137a49a0b6becf70fb6e979664d1031",
      "parents": [
        "cda89ca02548c19250ae55671c055536b64b74f8"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Wed Feb 19 10:53:27 2014 -0800"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 06 14:02:46 2014 -0700"
      },
      "message": "Fix sans-serif-thin and sans-serif-light fonts in layoutlib. [DO NOT MERGE]\n\nFor these font families, text was always rendered as italic. This\nchangeset fixes the issue.\n\nBug: http://b.android.com/57221\nChange-Id: Ic8a299bd1e555f5bb914cd3d2fe72917ec7f471a\n(cherry-picked from 5be65fda15c6f66067da3cc623811427e9d541e4)\n"
    },
    {
      "commit": "cda89ca02548c19250ae55671c055536b64b74f8",
      "tree": "8236ee47cf924e8d6313d536458edcdcb0c0b37f",
      "parents": [
        "a2b34c96f1ef24d96854d1e23426dec7774510e8"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Wed Feb 05 17:11:14 2014 -0800"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 06 14:02:46 2014 -0700"
      },
      "message": "Fix a bug in Nine Patch library. [DO NOT MERGE]\n\nThe nine patches were not drawn correctly if they were not positioned at\nthe top left corner of the canvas.\n\nBug: http://b.android.com/29959\nChange-Id: Icfed522ea07322a3ee9f3955067d3da26c4b0b5b\n(cherry-picked from 5bb3414d148f1309dade9333fe9b89c8d1c2f308)\n"
    },
    {
      "commit": "a2b34c96f1ef24d96854d1e23426dec7774510e8",
      "tree": "a08c442846dd49a566f8393fbef617bd9df56470",
      "parents": [
        "e183855c1eb7baf750c67bb20e70fb887eba7af6"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon Jan 20 17:02:37 2014 -0800"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 06 14:02:45 2014 -0700"
      },
      "message": "Optimize layout rendering in layoutlib [DO NOT MERGE]\n\nThe height of a layout should be zero if it is assigned a layout_weight.\nThis way, the layout is measured only once and prevents spurious errors.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d58398\nChange-Id: If49a7480e5eb82cb86780e00f2f5b65ee053fc2a\n(cherry-picked from 5712b5fc3fec0dc376e84f660f2fe0d1102c0cbb)\n"
    },
    {
      "commit": "e183855c1eb7baf750c67bb20e70fb887eba7af6",
      "tree": "605ee71b08c79e1afd44d296bd595ad26449f13f",
      "parents": [
        "e5a2347bc6cf1506799136af4c9724275ca0247e"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Fri Jan 31 19:03:48 2014 -0800"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 06 14:02:45 2014 -0700"
      },
      "message": "Add methods for Time_Delegate [DO NOT MERGE]\n\nBug: http://b.android.com/65359\nChange-Id: I7c2d09286d6bcd9899444aaa5a4a5a342e39d923\n(cherry-picked from 02cde9ceeb4c052ee273a5d809816dfd355ebb56)\n"
    },
    {
      "commit": "e5a2347bc6cf1506799136af4c9724275ca0247e",
      "tree": "617004ed8978b3823313a3fcd85d9ff7a48fab9d",
      "parents": [
        "30505abeb6cda9d042ec41f2563d561714eac46b"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue Nov 12 18:33:17 2013 +0530"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 06 14:02:45 2014 -0700"
      },
      "message": "Fix NPE in layoutlib. [DO NOT MERGE]\n\nChange-Id: I36623304d83b344ea078044001577b8005a63c02\n(cherry picked from commit 689c0dfe72a57c0555560012cbc6806375e7d4b7)\n"
    },
    {
      "commit": "30505abeb6cda9d042ec41f2563d561714eac46b",
      "tree": "af42df6a9b013972e6581b50964f9b886609b326",
      "parents": [
        "5a7b3b65b691edbdb855eb6154b8b30f5700acbb"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Fri Nov 08 16:43:07 2013 +0530"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 06 14:02:44 2014 -0700"
      },
      "message": "Fix text size in Fake Action Bar. [DO NOT MERGE]\n\nThe density multiplier was being applied twice to the title text in\nthe fake action bar.\n\nBug: 11436018\nChange-Id: Id74c11037cb43d01f6cd79126623c84edfc37aaf\n(cherry-picked from 083d1562e00631630b5594462ce4a867a3508d8d)\n"
    },
    {
      "commit": "5a7b3b65b691edbdb855eb6154b8b30f5700acbb",
      "tree": "d3dc6d36dc0fe3c1f20887caaab0c48ebbff758c",
      "parents": [
        "4b5da86d04200ba278b62ff99da91e212b87e9af"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue Sep 10 15:41:21 2013 -0700"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue May 06 13:55:56 2014 -0700"
      },
      "message": "Remove references to non-std Java classes. [DO NOT MERGE]\n\nDo not add the non-standard Java classes. Updates the references to all\nnon-standard classes to new classes in\ncom.android.tools.layoulib.create package. This also treats\njava.lang.AutoCloseable which is part of Java 7 similarly so that we can\nstill run on Java 6.\n\nThis also adapts the cherrypick for this branch by updating references\nto the non-standard Java classes present in this branch. This also\nincludes the following change that includes some changes that the\noriginal cherrypick missed.\nChange-Id: I76c87c74ee088778b37d1a7a7d531e0fde5c758f\ncommit: 1ed75bde09275c9f2bd1f81830e381ea864ac7f5\n\nChange-Id: Iac5b272652e2780c9bb72d19f415d150948ca589\n(cherry picked from 80c668f2a076e91d887dbf77776cd503ff88b0b4)\n"
    },
    {
      "commit": "4b5da86d04200ba278b62ff99da91e212b87e9af",
      "tree": "7f0c035e13a8868a1b52897c9a6ea023081ca462",
      "parents": [
        "5c166c9c04b6ea9d4955830e7ba277be71f17a6f"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Sat Oct 12 18:37:19 2013 -0700"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon May 05 18:42:28 2014 -0700"
      },
      "message": "Fix DatePicker and Calendar widget in layoutlib. [DO NOT MERGE]\n\nIssue: https://code.google.com/p/android/issues/detail?id\u003d59732\n\nChange-Id: I281b3fdad88c591281a3645592c84f3e2cb61d09\n(cherry picked from commit 6335590aa8997944cc7fb358a315dbb9b789f87f)\n"
    },
    {
      "commit": "5c166c9c04b6ea9d4955830e7ba277be71f17a6f",
      "tree": "ed50ff091b83989feecb9465d03ff876a854358a",
      "parents": [
        "2d82586b96593b1b3b5280d77d5ae9a09df9d1fd"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Sat Oct 12 21:28:50 2013 -0700"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon May 05 18:33:08 2014 -0700"
      },
      "message": "Layoutlib: Update the wifi icon in the status bar. [DO NOT MERGE]\n\nIssue: https://code.google.com/p/android/issues/detail?id\u003d60993\n\nChange-Id: Ia43ed40b42c79f67dcd5809b827d4fecbc823c25\n(cherry picked from commit 11ee746dc5e77f4f33aac45ac9e344444223012d)\n"
    },
    {
      "commit": "2d82586b96593b1b3b5280d77d5ae9a09df9d1fd",
      "tree": "612a59c1b4d1d3b847a4b15a7379aeecf8d46986",
      "parents": [
        "64dc0380127047ffcf135b6848c9150aa8dbed85"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon Oct 14 18:14:58 2013 -0700"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon May 05 18:32:04 2014 -0700"
      },
      "message": "Fix CalendarView to show the right labels. [DO NOT MERGE]\n\nChange-Id: I95431f1054678d4192bd1621c1f69b29268f55e9\n(cherry picked from commit 44bcd64e5b9fd211dd56b0598693a0559f65dc1a)\n"
    },
    {
      "commit": "64dc0380127047ffcf135b6848c9150aa8dbed85",
      "tree": "7a91446d1791bbcbe997a68c66b26e814c5d902a",
      "parents": [
        "a59c27dd6674a31c875b0baa86519caec628ca2d"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Wed Oct 16 20:27:51 2013 -0700"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon May 05 18:23:15 2014 -0700"
      },
      "message": "Fix layoutlib [DO NOT MERGE]\n\nFix a NPE.\n\nThe cherry-pick differs slightly from the original to remove changes not\nrelevant to the current branch.\n\nBug: 11140701\nChange-Id: Id92fc5359acf6dde1bcdbc781aaf637fdb6eecbf\n(cherry-picked from 87be67f91719234cbd381ff0242b5efc8b6aa257)\n"
    },
    {
      "commit": "a59c27dd6674a31c875b0baa86519caec628ca2d",
      "tree": "241812ea15034a063d7df2304cdd178815ecfca4",
      "parents": [
        "8a39c3afb29f2540b05319042e758dd4d5f73a1e"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Tue Sep 10 15:39:41 2013 -0700"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon May 05 18:21:41 2014 -0700"
      },
      "message": "Fix ClassCastException when rendering ListView [DO NOT MERGE]\n\nBug: b.android.com/59300\nChange-Id: Ia350adb3308daa8170bff755302760790163c811\n(cherry picked from commit 7b5d54f05be61a7ab40021644a91c466e2897627)\n"
    },
    {
      "commit": "8a39c3afb29f2540b05319042e758dd4d5f73a1e",
      "tree": "db14a03054a1938c0078df9fc5b620ec468b2595",
      "parents": [
        "ecb013dbff5e33b95c49015fa375579e055911ae"
      ],
      "author": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Fri Jul 12 15:24:51 2013 -0700"
      },
      "committer": {
        "name": "Deepanshu Gupta",
        "email": "deepanshu@google.com",
        "time": "Mon May 05 18:17:13 2014 -0700"
      },
      "message": "Add orientation to configuration for layoutlib. [DO NOT MERGE]\n\nUpdate the configuration with the device orientation before rendering.\n\nChange-Id: Icd40901204fd13f90b18353e53a15e25e5b2176c\n(cherry picked from commit d4875e19f5b7c69226783b0a6590831466159f84)\n"
    },
    {
      "commit": "fcc93e734be9fe4608fb5a6818163104cdec3fb5",
      "tree": "2855c1d7f4f69858c28021531f7b0448c7f3d220",
      "parents": [
        "82f0ba79e67c154fc12a6cfde2fe1205da166b0d",
        "135b5ba52431b147d51a81b807784009cd0510dd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Oct 18 17:48:57 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 18 17:48:57 2012 -0700"
      },
      "message": "am 135b5ba5: Layoutlib: Read and close XML files as soon as possible. do not merge.\n\n* commit \u0027135b5ba52431b147d51a81b807784009cd0510dd\u0027:\n  Layoutlib: Read and close XML files as soon as possible. do not merge.\n"
    },
    {
      "commit": "135b5ba52431b147d51a81b807784009cd0510dd",
      "tree": "275f2981705cf6541ce08f50ffce24c576ef75bb",
      "parents": [
        "4a6b69488f9fd90bbe04a930ffad8999bc93e173"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Oct 17 18:38:49 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Oct 18 15:48:10 2012 -0700"
      },
      "message": "Layoutlib: Read and close XML files as soon as possible. do not merge.\n\nBecause passing an InputStream to KXML does not close the\nstream after the file has been parsed, the files are staying\nlocked on windows until the gc and finalizers are run.\n\nThis change preload the XML files and close their stream,\nand then pass the content in a stream to the parser.\n\n(cherry picked from commit c48b0b940d632b9862ff6aa32665e37fe9e50845)\n\nChange-Id: I1b225454c166026c1aab6290c55ac8279e8862d5\n"
    },
    {
      "commit": "64b3de296cdbc8c02e2890f8853409c6d49cddb1",
      "tree": "6898aeea14acaf1cd926844e8ca3cf3c69dcff6f",
      "parents": [
        "5dc7ac745300fb043267a0c9235244a115507c51",
        "434cd38f96a4a87220a8218901622f31e567354a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Oct 18 12:23:28 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 18 12:23:28 2012 -0700"
      },
      "message": "am 434cd38f: Update layoutlib for jb mr1. do not merge.\n\n* commit \u0027434cd38f96a4a87220a8218901622f31e567354a\u0027:\n  Update layoutlib for jb mr1. do not merge.\n"
    },
    {
      "commit": "434cd38f96a4a87220a8218901622f31e567354a",
      "tree": "030c8815439bcd6187c2bdb3eab17d7ab3dd76b6",
      "parents": [
        "a7b56a20ec80699371359cdd6f459a7eaec67185"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 16 19:56:03 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Oct 18 11:15:39 2012 -0700"
      },
      "message": "Update layoutlib for jb mr1. do not merge.\n\nStatus bar displayed on all devices.\nUpdate logic for displaying nav bar to whether or not\ndevice has soft button.\n\nUpdate navigation buttons to new look.\nRemove battery and signal from navigation bar.\n\n(cherry picked from commit 891b703f7b1e0e396d16477cc66a286da7161b49)\n\nChange-Id: Id7cc9ad4255d2c4d2e6461a565dfe2cc17e12e75\n"
    },
    {
      "commit": "f7243dcc616bc9bd84fa519356babb15d6f17e7d",
      "tree": "3e0059ad9d14ccf1e8c76d8c8d5961e7f053385c",
      "parents": [
        "d8104d9b3debad8c960a302972488e5157702618"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 05 17:49:21 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 15:05:22 2012 -0700"
      },
      "message": "Add --error-on-failed-insert option to aapt. do not merge.\n\nThe new SDK build system give the ability to insert\nversionCode/Name and min/targetSdkVersion in the manifest\nbut aapt won\u0027t replace those if they already exist.\n\nThe main problem is that aapt doesn\u0027t actually fail when\nit doesn\u0027t replace them, making the output not what the\ndeveloper wanted.\n\nThis patch set adds an option to aapt to make it return\nan error if the insert failed because the attribute\nalready existed.\n\nCherry-pick from 7714a2429b192c88e134ff67b969121bbaeb5457\n\nChange-Id: I8938ec1238da407a8562c974e9598db39001ffd9\n"
    },
    {
      "commit": "4649d03b96f576c4a7d5d4aa7d7d637a6ae091aa",
      "tree": "31c9a5b67a53afd387ac7eee999fb323ba09a0d8",
      "parents": [
        "82e7fdfd47e7de5408c3a0e296475bb1e945f339",
        "6c6ddbff890afb2133f6da79237cf581f00c13ba"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 11:03:45 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 26 11:03:45 2012 -0700"
      },
      "message": "am 6c6ddbff: Fix writing text version of styleable IDs. do not merge.\n\n* commit \u00276c6ddbff890afb2133f6da79237cf581f00c13ba\u0027:\n  Fix writing text version of styleable IDs. do not merge.\n"
    },
    {
      "commit": "6c6ddbff890afb2133f6da79237cf581f00c13ba",
      "tree": "c9c61752b1a814b94f7e4901900e3016b9716945",
      "parents": [
        "4f832bc796bad90e5632c3ab69e305b3c7c008ba"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 10:11:54 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 11:00:41 2012 -0700"
      },
      "message": "Fix writing text version of styleable IDs. do not merge.\n\n(cherry picked from commit d16047434bca24b2811de7ea9d22de6ee0f87f79)\n\nChange-Id: Ia1fc343e0649b175d290357f63eebec0dd1ae14a\n"
    },
    {
      "commit": "f43f5c7aaa617e740e6e2775c85926b97abaf5b1",
      "tree": "51c40d1c50ed2d173291458432b5a070e0987431",
      "parents": [
        "edf0ba6e1b6de8f43880267862e43ee461901c25"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 14:45:22 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 18 17:02:34 2012 -0700"
      },
      "message": "Add --output-text-symbols option to aapt. do not merge.\n\nLibrary projects in the SDK are built using --non-constant-id\nto generate a temporary R.java class.\nWhen the library is packaged with the application to generate an\napk, the R class is recreated with the proper IDs due to all the\nresources coming from the app and all the libraries.\n\nHowever for large apps with many libraries (each with their own\nR class in their package), this means a lot of unnecessary IDs:\nall R classes contains all the IDs including for resources from\nby projects they don\u0027t have access through the dependency graph.\n\nFor really large apps (X,000 resources), with lots of libraries\n(10+), this can generate tens of thousands of resources, which\ncan trigger dalvik\u0027s limit of 65K fields and methods per dex\nfiles.\n\nThis changes lets aapt generate not only the R class but a simple\ntext file containing the list of all those IDs so that it is\neasier to parse back. The SDK build system will not ask aapt\nto generate the R class of the libraries (through the\n--extra-packages option), instead it will then read this\nfile to know what IDs are needed for each library and generate\na much smaller R class for each library (using the same text\nfile output from compiling all the resources to get the final\ninteger value).\n\nChery-picked from f5de650ff1e161ea135c828e43515895343d2c0f\n\nChange-Id: I0e08ceb6e4ceb3feb169ce17df21dd35a2505e7f\n"
    },
    {
      "commit": "5de9603529ee01a416b5fa31074197565fde4482",
      "tree": "f610ba56bf685b21bbc81bbf4d6ed8b2d5640ef7",
      "parents": [
        "cc9747ed45302956a3ec9dd21f7b950b837dbfdd",
        "31820a35b2cf864a8dcb71d43e6fd21d54f49a2d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 17 12:03:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 12:03:19 2012 -0700"
      },
      "message": "am 31820a35: Merge \"Add --output-text-symbols option to aapt.\"\n\n* commit \u002731820a35b2cf864a8dcb71d43e6fd21d54f49a2d\u0027:\n  Add --output-text-symbols option to aapt.\n"
    },
    {
      "commit": "cc9747ed45302956a3ec9dd21f7b950b837dbfdd",
      "tree": "4f5bf98606f87858b78a95bd8dd09e9e6a797716",
      "parents": [
        "f5437ee86a34751fa6d441b95282feb315e19eb6",
        "d72525718ea7ef3e1f97cf557365b143c8919a5b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 17 12:03:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 12:03:12 2012 -0700"
      },
      "message": "am d7252571: Merge \"Add --error-on-failed-insert option to aapt.\"\n\n* commit \u0027d72525718ea7ef3e1f97cf557365b143c8919a5b\u0027:\n  Add --error-on-failed-insert option to aapt.\n"
    },
    {
      "commit": "f5de650ff1e161ea135c828e43515895343d2c0f",
      "tree": "4398a8d071f3322512e6c4d5f153fb9564865d6a",
      "parents": [
        "7714a2429b192c88e134ff67b969121bbaeb5457"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 14:45:22 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 18:19:00 2012 -0700"
      },
      "message": "Add --output-text-symbols option to aapt.\n\nLibrary projects in the SDK are built using --non-constant-id\nto generate a temporary R.java class.\nWhen the library is packaged with the application to generate an\napk, the R class is recreated with the proper IDs due to all the\nresources coming from the app and all the libraries.\n\nHowever for large apps with many libraries (each with their own\nR class in their package), this means a lot of unnecessary IDs:\nall R classes contains all the IDs including for resources from\nby projects they don\u0027t have access through the dependency graph.\n\nFor really large apps (X,000 resources), with lots of libraries\n(10+), this can generate tens of thousands of resources, which\ncan trigger dalvik\u0027s limit of 65K fields and methods per dex\nfiles.\n\nThis changes lets aapt generate not only the R class but a simple\ntext file containing the list of all those IDs so that it is\neasier to parse back. The SDK build system will not ask aapt\nto generate the R class of the libraries (through the\n--extra-packages option), instead it will then read this\nfile to know what IDs are needed for each library and generate\na much smaller R class for each library (using the same text\nfile output from compiling all the resources to get the final\ninteger value).\n\nChange-Id: I4db959fec372cf3ead9950e4b2b82fa1ae7eed2d\n"
    },
    {
      "commit": "7714a2429b192c88e134ff67b969121bbaeb5457",
      "tree": "13d8c0eeb0d9eee815e3444fd236924306861fe3",
      "parents": [
        "2415841c370d855d7f3a3e6a537e641c69a57097"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 05 17:49:21 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 18:17:22 2012 -0700"
      },
      "message": "Add --error-on-failed-insert option to aapt.\n\nThe new SDK build system give the ability to insert\nversionCode/Name and min/targetSdkVersion in the manifest\nbut aapt won\u0027t replace those if they already exist.\n\nThe main problem is that aapt doesn\u0027t actually fail when\nit doesn\u0027t replace them, making the output not what the\ndeveloper wanted.\n\nThis patch set adds an option to aapt to make it return\nan error if the insert failed because the attribute\nalready existed.\n\nChange-Id: I8938ec1238da407a8562c974e9598db39001ffd9\n"
    },
    {
      "commit": "3150feef0b27ad34370904eb12875805f6c84e8a",
      "tree": "3ee1c94081aad597863e2b624fc3cc87efe403b6",
      "parents": [
        "3f3ce8adc7a4fcb5ec23a317c8b5063b61ac15a2",
        "bfe1ab825731d365fef169deab646d7ceeafc998"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 09 16:09:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 09 16:09:15 2012 -0700"
      },
      "message": "am bfe1ab82: Merge \"Fix aapt to get expat header files from the approved location.\"\n\n* commit \u0027bfe1ab825731d365fef169deab646d7ceeafc998\u0027:\n  Fix aapt to get expat header files from the approved location.\n"
    },
    {
      "commit": "ee15e1547531919effd77fa546daffaef94691a4",
      "tree": "c1d9284ef63cfb465dfab4151151a06a9c8bea40",
      "parents": [
        "bb60bc26020f3aabc50aa93ad9bf812af7f48f9c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 09 14:45:32 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 09 14:45:32 2012 -0700"
      },
      "message": "Fix aapt to get expat header files from the approved location.\n\nChange-Id: Ic7c796e048cfe98ee355c18b3708fee5ea716e2e\n"
    },
    {
      "commit": "c1c55afb474dd85a6205bc8ab94065f3ac38aa77",
      "tree": "abbf38d69839d0a2e4f3070aee28a7422a27d678",
      "parents": [
        "64ed6b2cfa6a4bb58f3f8a9b59d840cdce049c80",
        "e67f8c8c279e20fff5f426eccd062b709e6280ed"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 12:01:35 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 12:01:35 2012 -0700"
      },
      "message": "am e67f8c8c: Merge \"Normalize output from aapt d xmltree\"\n\n* commit \u0027e67f8c8c279e20fff5f426eccd062b709e6280ed\u0027:\n  Normalize output from aapt d xmltree\n"
    },
    {
      "commit": "e67f8c8c279e20fff5f426eccd062b709e6280ed",
      "tree": "e53054cf3446cc91228a1ea5ae48b0c803ca5cc6",
      "parents": [
        "d77d17c28d6f120ceb648747c7e2ef1a50215700",
        "429dad687bcb5f00587e8b91b3a614502907aaa1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 11:21:28 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 08 11:21:29 2012 -0700"
      },
      "message": "Merge \"Normalize output from aapt d xmltree\""
    },
    {
      "commit": "4b4b44381b133e9ab7418806c046774b7fd31393",
      "tree": "b5fce87b6f9346cf9957938ee63c5debb5134deb",
      "parents": [
        "d7cb30484ba94ecb8f4844f45742bf2ffc004599",
        "33c5670b315810f1f3dc66fe8cd38f7b3e05f3ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 07 13:18:53 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 07 13:18:53 2012 -0700"
      },
      "message": "am 33c5670b: Merge \"Fewer warnings in aidl generated code.\"\n\n* commit \u002733c5670b315810f1f3dc66fe8cd38f7b3e05f3ac\u0027:\n  Fewer warnings in aidl generated code.\n"
    },
    {
      "commit": "b327c41e125a3be15a6c6c4dba318fe1b2392605",
      "tree": "f2a28c312caed39bd47fb8788aa514847a8476e6",
      "parents": [
        "dfac68eacc60c130e54345d98bd45c99573cb627"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 07 10:34:02 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 07 10:34:02 2012 -0700"
      },
      "message": "Fewer warnings in aidl generated code.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d19196\nChange-Id: If054e60c19dc73fe32f55d0fa1054309565a6de6\n"
    },
    {
      "commit": "be925017201ad547a72e8d1e333dbc7eae3fc76f",
      "tree": "d07536a4132acc745f4170342898aeee1ceffd56",
      "parents": [
        "1c7a9b2ec9a75fe5975bd35482d74dc3d07e6205",
        "b71393bd34a48eeb622292e78f43b99e374a5e3a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jul 19 14:30:39 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 19 14:30:39 2012 -0700"
      },
      "message": "am b71393bd: Merge \"Fix aapt -G to properly support class attr in fragment.\" into jb-dev\n\n* commit \u0027b71393bd34a48eeb622292e78f43b99e374a5e3a\u0027:\n  Fix aapt -G to properly support class attr in fragment.\n"
    },
    {
      "commit": "095cd2e2d14e4fe25b66df54861fb66000a25adc",
      "tree": "b16c8e094f998b23b77a68e364e70f45629f13b5",
      "parents": [
        "12a5475205243bc2d069a87d2c7d4982b5f4d11d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jul 18 18:06:09 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jul 19 09:06:03 2012 -0700"
      },
      "message": "Fix aapt -G to properly support class attr in fragment.\n\nThe code added attributes android:name and class to a\nKeyedVector under the same key (fragment) so the 2nd\nadd (android:name) removed class with was never checked.\n\nThis replace the value type in the KeyedVector to be\nVector\u003cNamespaceAttributePair\u003e instead of just\nNamespaceAttributePair.\n\nChange-Id: I009b8a8cca878191661c2a63bb14c967d230498d\n"
    },
    {
      "commit": "54059cd38de24bbffc2525b56955535df73bf1eb",
      "tree": "693abe2c8ae261ba276ef46f72e9c7b16cb2adf4",
      "parents": [
        "23316a1ef8868bc641ed72d42839c20b7b86fadb",
        "15c15eaac51c0c375d18fb70cd1bd066d87b034e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 10 18:38:21 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 10 18:38:21 2012 -0700"
      },
      "message": "am 15c15eaa: Merge \"Replace LruCache implementation for layoutlib. do not merge.\" into jb-dev\n\n* commit \u002715c15eaac51c0c375d18fb70cd1bd066d87b034e\u0027:\n  Replace LruCache implementation for layoutlib. do not merge.\n"
    },
    {
      "commit": "54a18ef7ad9da65a95f4d383952ae6268f8a4f34",
      "tree": "627ce814923bcd9cedc56c43b57faeddd2f1bea5",
      "parents": [
        "40a4ab130a3e3c99afb1a57e9aa30de03a89b51e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 09 15:53:40 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 10 12:51:30 2012 -0700"
      },
      "message": "Replace LruCache implementation for layoutlib. do not merge.\n\nThe android version depends on a custom version of LinkedHashMap\nwhich is not present on desktop VMs. This new implementation is done\nin a way that minimizes the difference between the two.\n\nAlso some minor fixes.\n\n(cherry picked from commit 01b6c755dbcf24e71192dc44757e2eea2a426091)\n\nChange-Id: Idc7bca820e472e281a3024a5b610fd55606cf428\n"
    },
    {
      "commit": "429dad687bcb5f00587e8b91b3a614502907aaa1",
      "tree": "ee2b4ad0c456c6dde1cd81979565b72e9c389fa6",
      "parents": [
        "dc99555d61d50820b398096bb774ee56b2500476"
      ],
      "author": {
        "name": "Shachar Shemesh",
        "email": "lingnu@gmail.com",
        "time": "Sun Jul 08 06:37:48 2012 +0300"
      },
      "committer": {
        "name": "Shachar Shemesh",
        "email": "lingnu@gmail.com",
        "time": "Sun Jul 08 06:37:48 2012 +0300"
      },
      "message": "Normalize output from aapt d xmltree\n\nWhen using aapt dump xmltree to dump an XML which has a content element with newlines, the output contains a\nnewline. This makes it very difficult, sometimes impossible, to understand what is part of the content, and\nwhat is the meta-data.\n\nWe now pass XML content through the same normalizer used for other tags.\n\nChange-Id: I327321520fac563eb32aecaf796f2473866697fc\n"
    },
    {
      "commit": "cc6cf51b80eabd199f797f40b76f7980c343962b",
      "tree": "1db1e94e54cec4da8d771afd1d802c72c21d3c2d",
      "parents": [
        "8a0f63bb588138a9e4f1ef7830e94282efe57c6b",
        "8c71784e9e83e914135e996591aa7903edd2fd96"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jun 22 14:34:54 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 22 14:34:54 2012 -0700"
      },
      "message": "am 8c71784e: Merge \"Initialize mJunkPath to false\"\n\n* commit \u00278c71784e9e83e914135e996591aa7903edd2fd96\u0027:\n  Initialize mJunkPath to false\n"
    },
    {
      "commit": "dbcfed9e2cad3175109aca4b55bbe41da7238a4f",
      "tree": "0d00f26132e510b1bb0c8758ecd09d9c57410064",
      "parents": [
        "a9543a3dad0da58f30580bdf99b76bc2ab97a2df"
      ],
      "author": {
        "name": "Haitao Feng",
        "email": "haitao.feng@intel.com",
        "time": "Fri Jun 22 09:20:26 2012 +0800"
      },
      "committer": {
        "name": "Haitao Feng",
        "email": "haitao.feng@intel.com",
        "time": "Fri Jun 22 09:20:26 2012 +0800"
      },
      "message": "Initialize mJunkPath to false\n\nChange-Id: Ib48bb1d91736d27f055528c3ba275237ff5ada07\n"
    },
    {
      "commit": "58a8d8d2d4b15cd4abf010680181359823ebfda4",
      "tree": "2d5eb4858fa0599a93671be236fe41949585a544",
      "parents": [
        "f99e81a6ff22b6b93dd057802e553f66c0a7b97b",
        "0e302bc884fa4b25eb391d625f2fb0eddc25d9b7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 19 18:06:37 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 19 18:06:37 2012 -0700"
      },
      "message": "am 0e302bc8: Merge \"Disable debug output in SDK layoutlib.\" into jb-dev\n\n* commit \u00270e302bc884fa4b25eb391d625f2fb0eddc25d9b7\u0027:\n  Disable debug output in SDK layoutlib.\n"
    },
    {
      "commit": "4d7f301f94b9d2dda0ef109e9991ad2d77442f75",
      "tree": "f7a5bbab6a84abe5b9272b3e294e130c80e4ea72",
      "parents": [
        "1b36a68f607538bd090c33b31bd418169657ff6c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 19 18:01:50 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 19 18:02:21 2012 -0700"
      },
      "message": "Disable debug output in SDK layoutlib.\n\nBug: 6697442\n\nChange-Id: I9741761342ea220c158aa124089430b0db80bf7e\n"
    },
    {
      "commit": "bce1011dd2a371c587d2e39ad8c3d446b63049d0",
      "tree": "3e99f4996919ff44364c895e95999f3f9c03d37b",
      "parents": [
        "eb02d40c6d068ffcbb822910c5449b7081d1ae51",
        "8cf489c1f509ad2414a887035ad3d6996d1931a3"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "raphael@google.com",
        "time": "Thu Jun 14 14:14:45 2012 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "raphael@google.com",
        "time": "Thu Jun 14 14:14:45 2012 -0700"
      },
      "message": "resolved conflicts for merge of 8cf489c1 to jb-dev-plus-aosp\n\nChange-Id: I06608e3c122b8f321429d457c51aa2213dd238b4\n"
    },
    {
      "commit": "8cf489c1f509ad2414a887035ad3d6996d1931a3",
      "tree": "9a2fc3f8ab1860b3cec34dc35eefd5fb7b452311",
      "parents": [
        "cfe75518ef23efede1359274c91c732c0ac7ccf3",
        "0f160c95122276c40ca84afe6fcd2b9cd800e35c"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Thu Jun 14 11:34:31 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 14 11:34:31 2012 -0700"
      },
      "message": "am 0f160c95: Merge \"Layoutlib Create: Find dependencies.\"\n\n* commit \u00270f160c95122276c40ca84afe6fcd2b9cd800e35c\u0027:\n  Layoutlib Create: Find dependencies.\n"
    },
    {
      "commit": "4306096a4351030cab4ea413b5e87460b60a84bf",
      "tree": "359ee2d75645d0d641f052fde11469628194add8",
      "parents": [
        "f01f6b6d379c911a2c1e350bc758cea26bfe6d9d"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Wed Jun 13 00:22:47 2012 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Wed Jun 13 15:44:54 2012 -0700"
      },
      "message": "Layoutlib Create: Find dependencies.\n\nUsage: layoutlib_create --list-deps /path/to/layoutlib.jar\n\nPrints:\n- all classes found in the Jar and the types they use (the dependencies).\n- all the dependencies missing from the Jar and what uses them.\n\nChange-Id: I8b2674df127e1494feed7a653282e88e4d2f5494\n"
    },
    {
      "commit": "6892f1ec9670432f1cab71813592077bea991a8b",
      "tree": "13dfe731323f7a32f0854d54da80aa8d3f54f438",
      "parents": [
        "19e046c4d2f11e6ed5d324122996080942e94569",
        "0f6471ace77387560988964ed0679f843bba6f1f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 12 12:41:36 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 12 12:41:36 2012 -0700"
      },
      "message": "am 0f6471ac: Merge \"Fix issue #6641368: can\\\u0027t launch gallery\" into jb-dev\n\n* commit \u00270f6471ace77387560988964ed0679f843bba6f1f\u0027:\n  Fix issue #6641368: can\u0027t launch gallery\n"
    },
    {
      "commit": "2bd8d0403be62df679f0f94ab4d84c9ae9a2e918",
      "tree": "64bab80cac947253c02794f0aea7d765aecb5e3b",
      "parents": [
        "a7e3a1e0e7d308e7e78a1992038a34485d04ab29"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 11 12:27:05 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 11 12:27:05 2012 -0700"
      },
      "message": "Fix issue #6641368: can\u0027t launch gallery\n\nThis is a revert of 1db36528b12395b9ed9bf8a1005a6d4ace737627,\nbut with comments added so I don\u0027t make this mistake again. :)\n\nChange-Id: I053216279e3721f08f32f561bb989736ef619f82\n"
    },
    {
      "commit": "f22eb96301aa1c4e0f7ac317daa64a617c21855c",
      "tree": "d85eda22d166b57293c05ae2e916eb63352f5f24",
      "parents": [
        "4835c17b13c08693cf9a370df86d660818f8d391",
        "c9fe6568f3e7e4d9dc6da072afc929b9a81001ed"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jun 05 18:48:00 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 05 18:48:00 2012 -0700"
      },
      "message": "am c9fe6568: am 9e22d9c5: Merge \"Fix \"Too many open files\" error for aapt built with Mac OS X SDK 10.6.\"\n\n* commit \u0027c9fe6568f3e7e4d9dc6da072afc929b9a81001ed\u0027:\n  Fix \"Too many open files\" error for aapt built with Mac OS X SDK 10.6.\n"
    },
    {
      "commit": "c9fe6568f3e7e4d9dc6da072afc929b9a81001ed",
      "tree": "7b99d88b9c2c59836870644894ba9996cbbd5f74",
      "parents": [
        "44ff9b8f9294e015031fc9293974604771e5efdd",
        "9e22d9c514457c4b163d03b9241e4e28b1698368"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jun 05 18:43:49 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 05 18:43:49 2012 -0700"
      },
      "message": "am 9e22d9c5: Merge \"Fix \"Too many open files\" error for aapt built with Mac OS X SDK 10.6.\"\n\n* commit \u00279e22d9c514457c4b163d03b9241e4e28b1698368\u0027:\n  Fix \"Too many open files\" error for aapt built with Mac OS X SDK 10.6.\n"
    },
    {
      "commit": "41bdb03ffb81d7bcbf6fa35d7b40e196635c86f3",
      "tree": "5eedea44e81362a897f143d2c43bbc60f669b370",
      "parents": [
        "36ac43ba9982a78b4a047c8970776505a3fab4da"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed May 30 18:02:55 2012 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jun 05 14:30:39 2012 -0700"
      },
      "message": "Fix \"Too many open files\" error for aapt built with Mac OS X SDK 10.6.\n\nWith SDK 10.6 without _DARWIN_UNLIMITED_STREAMS aapt sometimes fails\nright away with the error \"Too many open files\" when calling fopen().\n\nChange-Id: Ifa7bd8a9530d706aa47f98be8186f1aefe943d76\n"
    },
    {
      "commit": "9f374b9de5a557a7977b24d41f45c3464cfff8c1",
      "tree": "7d2eba9b27fcddaf67d48fa22e1bebc2ff0b6dca",
      "parents": [
        "b25605cd7111bcab41ec10547f015bd2d6215c91",
        "44ff9b8f9294e015031fc9293974604771e5efdd"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Jun 05 08:45:20 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 05 08:45:20 2012 -0700"
      },
      "message": "am 44ff9b8f: am 36ac43ba: Merge \"Tweak default ignore-assets path\"\n\n* commit \u002744ff9b8f9294e015031fc9293974604771e5efdd\u0027:\n  Tweak default ignore-assets path\n"
    },
    {
      "commit": "44ff9b8f9294e015031fc9293974604771e5efdd",
      "tree": "91eabfeb2a567799b801af23f5e59b23d735488c",
      "parents": [
        "3df4e1a2f1b4f0eb110c8983107b7c7fa21ed338",
        "36ac43ba9982a78b4a047c8970776505a3fab4da"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Jun 05 08:41:16 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 05 08:41:16 2012 -0700"
      },
      "message": "am 36ac43ba: Merge \"Tweak default ignore-assets path\"\n\n* commit \u002736ac43ba9982a78b4a047c8970776505a3fab4da\u0027:\n  Tweak default ignore-assets path\n"
    },
    {
      "commit": "fcd738240a7d716e21721514202caa5bfb2dcb98",
      "tree": "caaa71a10f3154c2925f0c5b060126f74f1a81bf",
      "parents": [
        "5bf8f01be1cd9800e53b30117fe9ea7fb1153301",
        "dd251cab5b6e5b590cc0aeae8be8f885a7794e72"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 04 11:09:00 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 04 11:09:00 2012 -0700"
      },
      "message": "am dd251cab: Merge \"Fix build.\" into jb-dev\n\n* commit \u0027dd251cab5b6e5b590cc0aeae8be8f885a7794e72\u0027:\n  Fix build.\n"
    },
    {
      "commit": "bb47cf66ec72adff895d0e8b94c26f5d438be49a",
      "tree": "58824f18a2e3e751de8ef06e5cb2883bb19a36a5",
      "parents": [
        "6593be0c200f69d932e40e05e9df54b89c157c48"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 04 10:51:17 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 04 10:51:17 2012 -0700"
      },
      "message": "Fix build.\n\nChange-Id: I41415fed99d98406bc033289428bde59475c2917\n"
    },
    {
      "commit": "e0219c8baa9d63b3794f90ab772f1c19ecb74ec4",
      "tree": "cc5f1052ffefb73dcd46da1683d6bcfe6eda5adf",
      "parents": [
        "0748a5698776d1a9693a5449ffc983af26cc533b"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Mon Jun 04 10:38:13 2012 -0700"
      },
      "committer": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Mon Jun 04 10:41:38 2012 -0700"
      },
      "message": "Tweak default ignore-assets path\n\nAdd .DS_Store to the list of ignored files that are silently\nignored (other dot-files are ignored but aapt emits a \"(skipping \u003cx\u003e)\"\nmessage.)\n\nAlso, add a \"!\" prefix to the *~ pattern for Emacs/Vim/Gedit backup\nfiles.\n\nFinally, move the !*.scc pattern up in front of the .* pattern, such\nthat it doesn\u0027t match the earlier .* pattern (which is verbose, unlike\n!*.scc).\n\nChange-Id: Id3e96490f1802486aea8c58366d43e9d413971b8\n"
    },
    {
      "commit": "3df4e1a2f1b4f0eb110c8983107b7c7fa21ed338",
      "tree": "1d687db32a08d214e7522eae3d9850c7fcb59036",
      "parents": [
        "ae545bb87c8509c31a72bbc03c0bee7cb23a5133",
        "0748a5698776d1a9693a5449ffc983af26cc533b"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jun 02 09:56:45 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jun 02 09:56:45 2012 -0700"
      },
      "message": "am 0748a569: Merge \"aapt: Remove terminal pointer incrementaion\"\n\n* commit \u00270748a5698776d1a9693a5449ffc983af26cc533b\u0027:\n  aapt: Remove terminal pointer incrementaion\n"
    },
    {
      "commit": "0748a5698776d1a9693a5449ffc983af26cc533b",
      "tree": "cd409bf30a0c15e69a7417a7c22f9c53af70965b",
      "parents": [
        "54a2a6df410ad860f048ef4ff653820787f68f3a",
        "c4293c14083d833bb5d13dc19e73daed8cbbb4ea"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jun 02 09:21:36 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jun 02 09:21:37 2012 -0700"
      },
      "message": "Merge \"aapt: Remove terminal pointer incrementaion\""
    },
    {
      "commit": "f3b4c93e0da9af2db9e16864faa734cf70fecfe3",
      "tree": "7e9700c7556be59ccc6919bcb4cd0a3cdb50b7f6",
      "parents": [
        "09dfd60bc37585e2670e4ca997940256e5b21ac8",
        "ae5811c71405878b09eace395ec2b28e54eeb427"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 29 15:53:38 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 29 15:53:38 2012 -0700"
      },
      "message": "am ae5811c7: Merge \"Fix (mostly) issue #5109947: Race condition between retrieving a...\" into jb-dev\n\n* commit \u0027ae5811c71405878b09eace395ec2b28e54eeb427\u0027:\n  Fix (mostly) issue #5109947: Race condition between retrieving a...\n"
    },
    {
      "commit": "6ae8d1821822296df0606c9cd1c46708cc21cb58",
      "tree": "eb4b17b255b1f0e78078923474afcaad67755f12",
      "parents": [
        "3dac02265e42bf176e26b83da430ce15d6fd06df"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 23 13:12:42 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 29 13:33:09 2012 -0700"
      },
      "message": "Fix (mostly) issue #5109947: Race condition between retrieving a...\n\n...content provider and updating its oom adj\n\nThis introduces the concept of an \"unstable\" reference on a content\nprovider.  When holding such a reference (and no normal stable ref),\nthe content provider dying will not cause the client process to be\nkilled.\n\nThis is used in ContentResolver.query(), .openAssetFileDescriptor(),\nand .openTypedAssetFileDescriptor() to first access the provider\nwith an unstable reference, and if at the point of calling into the\nprovider we find it is dead then acquiring a new stable reference\nand doing the operation again.  Thus if the provider process dies\nat any point until we get the result back, our own process will not\nbe killed and we can safely retry the operation.\n\nArguably there is still the potential for a race -- if somehow the\nprovider is killed way late by the OOM killer after the query or\nopen has returned -- but this should now be *extremely* unlikely.\nWe also continue to have the issue with the other calls, but these\nare much less critical, and the same model can\u0027t be used there (we\nwouldn\u0027t want to execute two insert operations for example).\n\nThe implementation of this required some significant changes to the\nunderlying plumbing of content providers, now keeping track of the\ntwo different reference counts, and managing them appropriately.  To\nfacilitate this, the activity manager now has a formal connection\nobject for a client reference on a content provider, which hands to\nthe application when opening the provider.\n\nThese changes have allowed a lot of the code to be cleaned up and\nsubtle issues closed.  For example, when a process is crashing, we\nnow have a much better idea of the state of content provider clients\n(olding a stable ref, unstable ref, or waiting for it to launch), so\nthat we can correctly handle each of these.\n\nThe client side code is also a fair amount cleaner, though in the\nfuture there is more than should be done.  In particular, the two\nProviderClientRecord and ProviderRefCount classes should be combined\ninto one, part of which is exposed to the ContentResolver internal\nAPI as a reference on a content provider with methods for updating\nreference counts and such.  Some day we\u0027ll do that.\n\nChange-Id: I87b10d1b67573ab899e09ca428f1b556fd669c8c\n"
    },
    {
      "commit": "98a0607a314a7a6023fabdafaa8e470a1e800c09",
      "tree": "820f623b5b8b83061597cc24996cab7615f54e34",
      "parents": [
        "d4cb08df751e29338f4df1a76b303aa720f2bc00"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 22 11:24:22 2012 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Thu May 24 11:07:14 2012 -0700"
      },
      "message": "Merge \"Fix length of pattern.\" DO NOT MERGE.\n\nAfter skipping * with \"token++\", the length should decrease by 1 as\nwell.\n\n(merged from 996b073e813ba1a22a13282ccdebb664f14ba898)\n\nChange-Id: Ie6232ef603bb31e25e03b926e6c1bb92ac34902d\n"
    },
    {
      "commit": "ac9f50573dad2050d261850f1accbcea383cc6f0",
      "tree": "20b3b890015bf87346a6c5ebfa019d3f734b77e0",
      "parents": [
        "88ab8c8de4d8d2e2c1f3237024ecdefd77300916",
        "996b073e813ba1a22a13282ccdebb664f14ba898"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 22 11:43:14 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 22 11:43:14 2012 -0700"
      },
      "message": "am 996b073e: Fix length of pattern.\n\n* commit \u0027996b073e813ba1a22a13282ccdebb664f14ba898\u0027:\n  Fix length of pattern.\n"
    },
    {
      "commit": "996b073e813ba1a22a13282ccdebb664f14ba898",
      "tree": "0f59bedc48c4da4a49b82eac6170c5d8d7e37e6f",
      "parents": [
        "0eaeb69d1c4849da8ab1df70b84e90837193df67"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 22 11:24:22 2012 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 22 11:35:22 2012 -0700"
      },
      "message": "Fix length of pattern.\n\nAfter skipping * with \"token++\", the length should decrease by 1 as\nwell.\n\nChange-Id: I132eb7d12bb756f2f713c607e92741ca834aef81\n"
    },
    {
      "commit": "9c06ac09c3530c5f0bc0b47a3350eedb5b539c35",
      "tree": "4ce6121aa3126bd243e014b449df65c72296de1f",
      "parents": [
        "ee3bb6498adc801023798b4fc48b5dcd77e059f5",
        "6c255a3a378143af59021d29b4980b28f1ab4544"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Mon May 21 13:09:29 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 21 13:09:29 2012 -0700"
      },
      "message": "Merge \"Merge \"AAPT: support a new --ignore-assets flag.\"\" into jb-dev"
    },
    {
      "commit": "6c255a3a378143af59021d29b4980b28f1ab4544",
      "tree": "145d2632678e6227c664a046de8930ff2e3873be",
      "parents": [
        "43a760ba84a5357bae792a33ad4a0e946f02679c"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Mon May 07 16:16:46 2012 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "raphael@google.com",
        "time": "Fri May 18 20:34:44 2012 -0700"
      },
      "message": "Merge \"AAPT: support a new --ignore-assets flag.\"\n\nAAPT has a fixed built-in list of files and directories\nto ignore when parsing resource files. Over the years we\nalways had developers requiring specific patterns.\n\nAdded a command-line option for it:\n  aapt di --ignore-assets \"foo*:*.blah\"\n\nIf the env var ANDROID_AAPT_IGNORE is set, it is parsed\nto find which file/directory patterns to ignore.\n\nOtherwise a default is used that matches the current behavior.\n\nSDK Bug: 5343 24067\n\n(cherry-pick from AOSP 90897ed87bce639bf6bb2ccf15fbabb59b131bab)\n\nChange-Id: Ia4caa2a8188c8c1df143f884e459b8182645995f\n"
    },
    {
      "commit": "72669b5f4663937b09d33f9d951f0b86a03fa98b",
      "tree": "3daf749f3aa07123d471ab58c86ceaace6cee55f",
      "parents": [
        "099a220cf57f00732d347cd49422c849354d2e38",
        "13a0271cb81d497edbf93f3d6ecf4b9b8da4ee69"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 18 19:41:10 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 18 19:41:10 2012 -0700"
      },
      "message": "am 13a0271c: Merge \"Add aapt support for generating proguard rules for onClick methods.\" into jb-dev\n\n* commit \u002713a0271cb81d497edbf93f3d6ecf4b9b8da4ee69\u0027:\n  Add aapt support for generating proguard rules for onClick methods.\n"
    },
    {
      "commit": "9275197d35a99c3f187d18d0eda6ead3b8a32603",
      "tree": "ba364f6cf805ce6dac0d3eb8ced5d82d71cd956a",
      "parents": [
        "fb5c3dba4ddac023cfd4cdcabdfdbcf343197c94"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 18 19:22:14 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 18 19:23:19 2012 -0700"
      },
      "message": "Add aapt support for generating proguard rules for onClick methods.\n\nAlso fix Activity menu inflater when using the dark on light\ntheme wrapper to still be able to find onClick listeners.\n\nChange-Id: Ie206db26d1df96041bc477804e476b02ad99dc9d\n"
    },
    {
      "commit": "f67f834a9cb7ee9b743e79af85cb42bd45b5aa23",
      "tree": "44605c7c36f04f1c951a07374e32d325a856721a",
      "parents": [
        "38e34874a89b6e71464bfa3e89480252000765ad",
        "8748399f6f999d21eef9226baadb20f71dfb61ea"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Fri May 18 16:33:14 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 18 16:33:14 2012 -0700"
      },
      "message": "am 8748399f: am 61394501: Merge \"Support a new ANDROID_AAPT_IGNORE env var.\"\n\n* commit \u00278748399f6f999d21eef9226baadb20f71dfb61ea\u0027:\n  Support a new ANDROID_AAPT_IGNORE env var.\n"
    },
    {
      "commit": "38e34874a89b6e71464bfa3e89480252000765ad",
      "tree": "4d1c5a4945991dec9dcefbb85ca59ca28a83afe5",
      "parents": [
        "1b61dc2eb7f738bb49142db14a7d339e2fd90545",
        "2a9b85d7ccdd3b8e6be90454cdcb4be3b032cd64"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri May 18 16:33:10 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 18 16:33:10 2012 -0700"
      },
      "message": "am 2a9b85d7: am c0f17383: Merge \"Move kxml2 to prebuilts/misc\"\n\n* commit \u00272a9b85d7ccdd3b8e6be90454cdcb4be3b032cd64\u0027:\n  Move kxml2 to prebuilts/misc\n"
    },
    {
      "commit": "a4cae2847eb086742ff9d3b24a469242bd9ddae1",
      "tree": "7b64bbefff9c6a040d64ceaac1bc8bec8c4bc4cb",
      "parents": [
        "5f0d6063fac445f4628feeeafbc34dab35d34966",
        "4b51e293d86d60dc651c409ae0e25078a2170740"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 18 15:59:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 18 15:59:41 2012 -0700"
      },
      "message": "am 4b51e293: Merge \"Fix the preloaded-classes tool for JellyBean.\" into jb-dev\n\n* commit \u00274b51e293d86d60dc651c409ae0e25078a2170740\u0027:\n  Fix the preloaded-classes tool for JellyBean.\n"
    },
    {
      "commit": "613945011ef9f79388a1cf21acf514154e2d5af2",
      "tree": "f3ffbfd0d969139f01b9f349ea7821f4e4af0018",
      "parents": [
        "c0f17383579cf49f897fdd1d55aaf44b8d6be0da",
        "90897ed87bce639bf6bb2ccf15fbabb59b131bab"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Fri May 18 13:00:31 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 18 13:00:31 2012 -0700"
      },
      "message": "Merge \"Support a new ANDROID_AAPT_IGNORE env var.\""
    },
    {
      "commit": "c0f17383579cf49f897fdd1d55aaf44b8d6be0da",
      "tree": "d9e7f0a6611afb43096269bfc37008e8172a07ca",
      "parents": [
        "ad3f86a526c49ecd733564771b5c2ce7eade2a96",
        "bda124453d58d8b55d9026e4c5e7ae8c804e995a"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri May 18 09:51:03 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 18 09:51:04 2012 -0700"
      },
      "message": "Merge \"Move kxml2 to prebuilts/misc\""
    },
    {
      "commit": "98e00add5544df3d8fc1804bc0be825b2238701c",
      "tree": "79d6ce9ea61ba9e2f7c34334396abdcad4d1738f",
      "parents": [
        "c6015df128811a52faf918bd34d0d7296c8a6834"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 17 17:03:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 17 17:03:51 2012 -0700"
      },
      "message": "Fix the preloaded-classes tool for JellyBean.\n\nBug: 5213043\nChange-Id: I8178ca04da0bd72a90244983be5e8ecfbc1b0573\n"
    },
    {
      "commit": "095c2d315d3bdf4cdb61439d427413c0bd7796e1",
      "tree": "31ddc4f91d1631b8c3183120da12eab33732d147",
      "parents": [
        "2da87ec32e72c2c25998e2444155c00074cfbd40",
        "4286d6d115385391b75db8e6c4e397008ef9b3db"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 14 19:32:43 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 14 19:32:43 2012 -0700"
      },
      "message": "am 4286d6d1: Fix build.\n\n* commit \u00274286d6d115385391b75db8e6c4e397008ef9b3db\u0027:\n  Fix build.\n"
    },
    {
      "commit": "2da87ec32e72c2c25998e2444155c00074cfbd40",
      "tree": "49dd2b0d98e7b0e451c23c15738a5e4cdf0e24c4",
      "parents": [
        "58b0dcde83354bd1ae9091a7cbc7f207fb29960a",
        "2a7a6ca00ab176105b5bbfa6b17bb0dcd058d517"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 14 19:32:39 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 14 19:32:39 2012 -0700"
      },
      "message": "am 2a7a6ca0: Merge \"Implement new window cropping.\" into jb-dev\n\n* commit \u00272a7a6ca00ab176105b5bbfa6b17bb0dcd058d517\u0027:\n  Implement new window cropping.\n"
    },
    {
      "commit": "4286d6d115385391b75db8e6c4e397008ef9b3db",
      "tree": "a44118310b76995e9b1eed18f6707b062117504b",
      "parents": [
        "2a7a6ca00ab176105b5bbfa6b17bb0dcd058d517"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 16:03:39 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 16:03:39 2012 -0700"
      },
      "message": "Fix build.\n\nChange-Id: I53263d509559c70100cd78ad49f225f0dafd8891\n"
    },
    {
      "commit": "85afd1b6f871d471fdff1980134676a5f1690525",
      "tree": "94f1a2661418208e7969d659dc694353ff43d304",
      "parents": [
        "dca5fb9e7e193d6aed233e0650691675a56022a3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 13:31:06 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 13:31:06 2012 -0700"
      },
      "message": "Implement new window cropping.\n\nThe window manager now performs the crop internally, evaluating\nit every animation from, to be able to update it along with\nthe surface position.\n\nChange-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32\n"
    },
    {
      "commit": "bf1b5fa944158044a595706924b935b5577ec0f0",
      "tree": "7f1c394643715a533da215864c4858a762e8955d",
      "parents": [
        "2c51f2b949d7b07d1f349dad7b90ce7bb1314c1b",
        "421dceb0a4fd8f20349a0de277f82b56e71cb90b"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu May 10 10:45:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 10 10:45:30 2012 -0700"
      },
      "message": "am 421dceb0: Merge \"Making transition out of recents look better\" into jb-dev\n\n* commit \u0027421dceb0a4fd8f20349a0de277f82b56e71cb90b\u0027:\n  Making transition out of recents look better\n"
    },
    {
      "commit": "421dceb0a4fd8f20349a0de277f82b56e71cb90b",
      "tree": "092633533796bf65021ee895b1bd7d7a42cb99c2",
      "parents": [
        "dc442534070aa8ff4c07cae16fc5207ba6821651",
        "21385cd83d7d7938b57a4acbaa236dd4c7804ed4"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu May 10 10:35:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 10 10:35:19 2012 -0700"
      },
      "message": "Merge \"Making transition out of recents look better\" into jb-dev"
    },
    {
      "commit": "e2e0391389fce1a9fd9d5c5442ba1901b6d96211",
      "tree": "303919fb5787ef92da3a372b2d5a18abd2ee28c5",
      "parents": [
        "dfca63f37484b207ff8dfe5fefc553c5ce1d7bc4",
        "dd79ae6b7201b68dbe2a223d2f371ea1a473f6c4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 10 09:26:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 10 09:26:03 2012 -0700"
      },
      "message": "am dd79ae6b: Merge \"Add infrastructure for accessing \"unstable\" content providers.\" into jb-dev\n\n* commit \u0027dd79ae6b7201b68dbe2a223d2f371ea1a473f6c4\u0027:\n  Add infrastructure for accessing \"unstable\" content providers.\n"
    },
    {
      "commit": "90897ed87bce639bf6bb2ccf15fbabb59b131bab",
      "tree": "53b5b28bf5a41e41a35751f12becef9dd94a0dbe",
      "parents": [
        "ad3f86a526c49ecd733564771b5c2ce7eade2a96"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Mon May 07 16:16:46 2012 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Wed May 09 21:16:26 2012 -0700"
      },
      "message": "Support a new ANDROID_AAPT_IGNORE env var.\n\nAAPT has a fixed built-in list of files and directories\nto ignore when parsing resource files. Over the years we\nalways had developers requiring specific patterns.\nIf the env var ANDROID_AAPT_IGNORE is set, it is parsed\nto find which file/directory patterns to ignore.\nOtherwise a default is used that matches the current behavior.\n\nAdded a command-line option for it:\n  aapt di --ignore-assets \"foo*:*.blah\"\n\nSDK Bug: 5343 24067\n\nChange-Id: Ia4caa2a8188c8c1df143f884e459b8182645995f\n"
    },
    {
      "commit": "21385cd83d7d7938b57a4acbaa236dd4c7804ed4",
      "tree": "4437d4ba6ded58da748f2231c2d87c5c406b807e",
      "parents": [
        "0fa152912e55f2d08f0a8d1260332a81e5706694"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu May 03 10:57:31 2012 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Wed May 09 20:25:28 2012 -0700"
      },
      "message": "Making transition out of recents look better\n\n- Fading out recents first, then scaling up app\nthumbnail\n- Fade Recents out over 130ms\n- Delay the window animation for 200ms first,\nthen animate for 200ms (previously we didn\u0027t delay\nand then animated for 300ms)\n\nBug: 6390075\n\nChange-Id: Ia8c753bf7ee03d2acef6eb2772b28d88fe10a682"
    },
    {
      "commit": "652b6d1e591f6684cda4b93d4712920f287991b4",
      "tree": "5ffe183aa2cbe66c8b8b89e8f3a809e4e7f4c603",
      "parents": [
        "a53de0629f3b94472c0f160f5bbe1090b020feab"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 09 18:18:40 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 09 18:18:40 2012 -0700"
      },
      "message": "Add infrastructure for accessing \"unstable\" content providers.\n\nWe have an API and some stuff that purports to this, but no real\nimplementation yet.\n\nChange-Id: I93555440014a50fdf79fa3f65318d90fb82265b4\n"
    },
    {
      "commit": "50e657e66ce6663fdff929cd365a3daf87cef9ae",
      "tree": "aaa26ff945d2339d74f98822c5db59f5cd294188",
      "parents": [
        "0916b463598a99400840c5d55a443bee2446b626",
        "024d3b2374497c86b55298a8dc4f2fbe258ce7ea"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed May 09 01:49:29 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 01:49:29 2012 -0700"
      },
      "message": "am 024d3b23: Merge \"Add missing native method to Canvas_Delegate.\" into jb-dev\n\n* commit \u0027024d3b2374497c86b55298a8dc4f2fbe258ce7ea\u0027:\n  Add missing native method to Canvas_Delegate.\n"
    },
    {
      "commit": "a394efa33531ce36c432872ec56ad0c93a9999e7",
      "tree": "54bf6369b4448c23fbac41b05db5c4fec356fa66",
      "parents": [
        "fbb7b072d87f15fce2b694054a27a8ec5db3daaf",
        "947f1c8db00bd3805838ff49a5f4d220df507b47"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 09 01:47:20 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 01:47:20 2012 -0700"
      },
      "message": "am 947f1c8d: Merge \"Move CancellationSignal to android.os package.\" into jb-dev\n\n* commit \u0027947f1c8db00bd3805838ff49a5f4d220df507b47\u0027:\n  Move CancellationSignal to android.os package.\n"
    },
    {
      "commit": "fbb7b072d87f15fce2b694054a27a8ec5db3daaf",
      "tree": "09ebd4b9f44ccdf4e0254188b187a179052fbd17",
      "parents": [
        "92f12822c18f988c2a5cfbac1b33dd1b0ffaa8e1",
        "6d6d186cd1a5df5fff73c8a731a81a9da3fea13b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 01:47:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 01:47:17 2012 -0700"
      },
      "message": "am 6d6d186c: Merge \"The \\\u0027localize\\\u0027 tool is dead.\" into jb-dev\n\n* commit \u00276d6d186cd1a5df5fff73c8a731a81a9da3fea13b\u0027:\n  The \u0027localize\u0027 tool is dead.\n"
    },
    {
      "commit": "e8e94a0743eae912658865645db75619533449b3",
      "tree": "2e6b0a58080ce153230664f9b299491b5a819ce8",
      "parents": [
        "2521bfdc01939967a25c74f0cf195a7ad81319e6",
        "41a4704b09f98723f4ddec895c9f2e651a5c0c8e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 09 01:45:49 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 01:45:49 2012 -0700"
      },
      "message": "am 41a4704b: Merge \"Small tweaks to orientation.\" into jb-dev\n\n* commit \u002741a4704b09f98723f4ddec895c9f2e651a5c0c8e\u0027:\n  Small tweaks to orientation.\n"
    },
    {
      "commit": "f18c68b83f4919cf903e249da056acb470b683af",
      "tree": "56ebc10498d0d25156114dc3b6787cb49af44b61",
      "parents": [
        "5602d02389c2b945e8d78ea34990933a8e1ddc8b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue May 08 17:14:18 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue May 08 17:14:18 2012 -0700"
      },
      "message": "Add missing native method to Canvas_Delegate.\n\nChange-Id: I86288c942004e5489eacc43ba5e112cf56f94487\n"
    }
  ],
  "next": "947f1c8db00bd3805838ff49a5f4d220df507b47"
}
