)]}'
{
  "log": [
    {
      "commit": "d069cd5164ec4e6edcafa3fb3927675c55e5fe32",
      "tree": "a1ae232b089916607721d3b16624d0b839f339fe",
      "parents": [
        "0208462f7c5186544712dd2c84d4e4419a8c407a",
        "dc0c52f4f592f6b9731939f0031e977a70515d4a"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@android.com",
        "time": "Mon May 19 18:28:40 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 19 18:28:40 2014 +0000"
      },
      "message": "am dc0c52f4: am 7099995b: am a84d24c3: Merge \"Extend support for nordic languages with Sami\"\n\n* commit \u0027dc0c52f4f592f6b9731939f0031e977a70515d4a\u0027:\n  Extend support for nordic languages with Sami\n"
    },
    {
      "commit": "903c1ec38332ff898a25bf837c3ea6c7578dba7f",
      "tree": "b21d45a50e175aa3429d818e0f0ffa39599c4c7d",
      "parents": [
        "0a5236a7cd3fa5a62a97f14a512dbeb5eb34772a"
      ],
      "author": {
        "name": "Mathieu Meisser",
        "email": "mmeisser@logitech.com",
        "time": "Tue Dec 17 16:54:32 2013 +0100"
      },
      "committer": {
        "name": "Olivier Gay",
        "email": "ogay@logitech.com",
        "time": "Sat May 17 11:53:28 2014 +0200"
      },
      "message": "Extend support for nordic languages with Sami\n\nAdd access (via ralt combination) of Sami characters\ninto Danish, Norwegian and Swedish mappings.\nUpdate Finnish mapping by fixing wrong Sami characters,\nremoving wrong ralt+shift mappings and adding support\nwith capslock+ralt for capital Sami\u0027s.\nRemove unnecessary swap of MINUS and SLASH key\nmapping in kcm.\n\nChange-Id: I872ae2ad31272e8cf55ae1db01c7e30c6a40d5bc\nSigned-off-by: Olivier Gay \u003cogay@logitech.com\u003e\nSigned-off-by: Manuel Carthoblaz \u003cmcarthob@logitech.com\u003e\nSigned-off-by: Mathieu Meisser \u003cmmeisser@logitech.com\u003e\n"
    },
    {
      "commit": "23041ac43233a4757fc95d505e803524ecbcaa65",
      "tree": "82a46afbf8d2b4a1e5a081af8fd7a0ab3139eeb8",
      "parents": [
        "91b5c658d958f5330f81a7a4d9692b036991473d",
        "d55fa5d584f580d75a0e7014d961e070b541ba90"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@android.com",
        "time": "Sat May 17 01:13:03 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat May 17 01:13:03 2014 +0000"
      },
      "message": "am d55fa5d5: am 3a123fda: am 0a5236a7: Merge \"Add support for Latvian (qwerty) keyboard mapping\"\n\n* commit \u0027d55fa5d584f580d75a0e7014d961e070b541ba90\u0027:\n  Add support for Latvian (qwerty) keyboard mapping\n"
    },
    {
      "commit": "0a5236a7cd3fa5a62a97f14a512dbeb5eb34772a",
      "tree": "5f6cd03be37eef4f058d58f0ab87c55486350aa0",
      "parents": [
        "0661ddee112477db180d65e605f34fd538fdf8bc",
        "f797dc90551a6a1d4022f426bfd9ec8b94511181"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@android.com",
        "time": "Sat May 17 01:02:54 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat May 17 01:02:55 2014 +0000"
      },
      "message": "Merge \"Add support for Latvian (qwerty) keyboard mapping\""
    },
    {
      "commit": "fef372beb3ea7ea7b98943dfaa42f71fd75c0cf2",
      "tree": "93c4bf629aed0aef1dbe7445319adffa6fce36f8",
      "parents": [
        "ac1d91c1de3934f022b1b93c032aad28dab79405",
        "02b4777a54623cf96b8f8948d80fdd2c9f2e98e1"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@android.com",
        "time": "Wed Apr 30 17:39:15 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 30 17:39:15 2014 +0000"
      },
      "message": "am 571bd935: am bba434af: am 10884694: am 357c75e7: Merge \"Add missing character combinations for international layouts\"\n\n* commit \u0027571bd935a448397fcf21d0e9b97d3174b1317e49\u0027:\n  Add missing character combinations for international layouts\n"
    },
    {
      "commit": "02b4777a54623cf96b8f8948d80fdd2c9f2e98e1",
      "tree": "22cb132eda7a504b5c8b874617ff6a79d5a5df04",
      "parents": [
        "0653363a76f31e262519591df7401dd0c0acf855",
        "bba434af67600b1fb4a32f2c130526ad9e938f86"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@android.com",
        "time": "Wed Apr 30 17:33:23 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 30 17:33:23 2014 +0000"
      },
      "message": "am bba434af: am 10884694: am 357c75e7: Merge \"Add missing character combinations for international layouts\"\n\n* commit \u0027bba434af67600b1fb4a32f2c130526ad9e938f86\u0027:\n  Add missing character combinations for international layouts\n"
    },
    {
      "commit": "04f8532776abca46a9c4c50a4124b64539589e9c",
      "tree": "5799e8dd0f50b1889e7ecf9ab1af61ca77c180cd",
      "parents": [
        "10d57c4bc7459d0c73b254af006a3528e9a0c33e"
      ],
      "author": {
        "name": "Mathieu Meisser",
        "email": "mmeisser@logitech.com",
        "time": "Tue Dec 17 18:07:40 2013 +0100"
      },
      "committer": {
        "name": "Olivier Gay",
        "email": "ogay@logitech.com",
        "time": "Tue Apr 29 16:52:40 2014 +0200"
      },
      "message": "Add missing character combinations for international layouts\n\nCzech: add missing capslock for numbers and shift+ralt\nmappings.\nSlovak: fix wrong ralt mappings, add missing ralt mappings\nand fixed wrong PLUS key character.\nUS intl: add missing capslock+ralt support.\nSwiss French and Swiss German: add missing ralt mapping for key\nnumbers 4 and 5, and add missing capslock and capslock+\nshift for SEMICOLON and APOSTROPHE.\n\nChange-Id: I02c94bf13d5268d5d1e648c96b7251cb7564f233\nSigned-off-by: Olivier Gay \u003cogay@logitech.com\u003e\nSigned-off-by: Manuel Carthoblaz \u003cmcarthob@logitech.com\u003e\nSigned-off-by: Mathieu Meisser \u003cmmeisser@logitech.com\u003e\n"
    },
    {
      "commit": "016409812a200fe3bee1217b4168a15198b61a5c",
      "tree": "be7bd8c82abe97df05ffa5fe412d0d443fd70566",
      "parents": [
        "77b1286f7f949ef6ec8a254648380e211ee8b8eb"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Apr 07 09:09:09 2014 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Apr 07 09:09:09 2014 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I5aca3127cc5a9cde5f594d7d12fe0bd2c7a764f4\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "fcd04c6b3cddbc730de8c648a0afb8704e43e112",
      "tree": "cede0e2966c0c163a57cd5d9c2d31e9f38f5355a",
      "parents": [
        "892c574ecca0cd5bfc2444bbb6ca7204a296de3c"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Wed Apr 02 08:33:33 2014 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Wed Apr 02 08:33:33 2014 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I39f2fa7fcf25906e105feadf2bbda74384fca876\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "f797dc90551a6a1d4022f426bfd9ec8b94511181",
      "tree": "665a25a2c9a4f5ec92745fe2262015f7840cf080",
      "parents": [
        "ab561f5b4073055c414866ff3dbe8372263474a7"
      ],
      "author": {
        "name": "Mathieu Meisser",
        "email": "mmeisser@logitech.com",
        "time": "Mon Mar 31 17:02:03 2014 +0200"
      },
      "committer": {
        "name": "Olivier Gay",
        "email": "ogay@logitech.com",
        "time": "Tue Apr 01 14:53:32 2014 +0200"
      },
      "message": "Add support for Latvian (qwerty) keyboard mapping\n\nAdd kcm mapping files for Latvian keyboard layout\nbased on US-international keylayout (qwerty).\n\nChange-Id: I667081d3e7bb0ece3b278da3f97926f54c319ff8\nSigned-off-by: Olivier Gay \u003cogay@logitech.com\u003e\nSigned-off-by: Myriam Douve \u003cmdouve@logitech.com\u003e\nSigned-off-by: Mathieu Meisser \u003cmmeisser@logitech.com\u003e\n"
    },
    {
      "commit": "22339a562dc90873fb140d80fdc3869a1e2eb454",
      "tree": "feaeca72c7dd813df640b0a61f95b07ecce00001",
      "parents": [
        "8bfe0555cce1213255254d2686745077e9bd4062"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Mar 31 11:25:46 2014 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Mar 31 11:25:46 2014 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I873e19f2b3e2e27eb1bc555ef8cc3cc09f2de493\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "7ef7ef0e05736698d44876f3e51b841a2dac9be1",
      "tree": "7325593612efb8afd4d20241b1671c5d4bcc1bbc",
      "parents": [
        "4377086f9412ab61f67907e9f1d487a45def5ac5",
        "c9b937bbfae825e32158e06ca52f320ca3d6f464"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@android.com",
        "time": "Fri Mar 28 23:40:30 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 28 23:40:30 2014 +0000"
      },
      "message": "am c9b937bb: am 6a14146b: am e328056d: Merge \"Add support for additional international keyboard mappings\"\n\n* commit \u0027c9b937bbfae825e32158e06ca52f320ca3d6f464\u0027:\n  Add support for additional international keyboard mappings\n"
    },
    {
      "commit": "d2923266ae50d1b6338912e6cb1a989817a8d1b6",
      "tree": "0cb6566eb75f346b8771cf48993dc0dd513d05ac",
      "parents": [
        "cd3f60f30366a34b4499aab5a47b622069ba9cd6"
      ],
      "author": {
        "name": "Olivier Gay",
        "email": "ogay@logitech.com",
        "time": "Thu Mar 27 17:21:01 2014 +0100"
      },
      "committer": {
        "name": "Olivier Gay",
        "email": "ogay@logitech.com",
        "time": "Thu Mar 27 17:49:52 2014 +0100"
      },
      "message": "Add support for additional international keyboard mappings\n\nAdd kcm mapping files for Arabic, Greek, Hebrew, Lithuanian\nand Spanish (Latin).\n\nChange-Id: I35cb2a4d6e016c6f565fba05710ba1626452fe68\nSigned-off-by: Olivier Gay \u003cogay@logitech.com\u003e\nSigned-off-by: Manuel Carthoblaz \u003cmcarthob@logitech.com\u003e\nSigned-off-by: Mathieu Meisser \u003cmmeisser@logitech.com\u003e\n"
    },
    {
      "commit": "dca4e9ab8d83e9730e957a0de8ea569a26187707",
      "tree": "fae84fc3a031971044d26ba8033f07295d90b64b",
      "parents": [
        "afb02269cfaed56240f695101ba599beae0c5952"
      ],
      "author": {
        "name": "Geoff Mendal",
        "email": "mendal@google.com",
        "time": "Mon Dec 02 10:15:07 2013 -0800"
      },
      "committer": {
        "name": "Geoff Mendal",
        "email": "mendal@google.com",
        "time": "Mon Dec 02 10:15:07 2013 -0800"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I60f3f34d647bb11d8239a012b04cf8b6002467a0\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "9ef0c9a6d4a6310a9577419ff4e0e19af731a3f4",
      "tree": "f71d90e06e0b4c6815f65c7396a36b0aedd47500",
      "parents": [
        "4be55a0eac092d79d7462ac6921505ebb628f428"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Nov 18 08:40:16 2013 -0800"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Nov 18 08:40:16 2013 -0800"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: Ieb92529f59f8f2d834e11ff6eb97adb7336dabfa\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "8167db8d6b9189342fd56db605c6f86cb39862f3",
      "tree": "f2140a22b6d6e8e633f244d09ab2696ca5879864",
      "parents": [
        "ff060d860564129243cd9a8931e70da29a4703d8"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Wed Oct 30 08:51:46 2013 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Wed Oct 30 08:51:46 2013 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I4e7a1a3e0a6983e2be80aee88030d2a1848e877a\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "f667cc58c22830c84792eafcda7137597ff3cb99",
      "tree": "69fba062ccafdaacfd879bb7b23a9bbf6f6010d0",
      "parents": [
        "98e1797367ca8cd8b8476f6befdb55f81cd13e19"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Wed Oct 16 14:37:13 2013 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Wed Oct 16 14:37:13 2013 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I67a8fe6771ac5cedcba9f75b76f59a7071389e93\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "0da3dea90c706c7bfbe5dc71dc131b77f1c1f60a",
      "tree": "703601d52953ffeb5386559b0379210a415901c3",
      "parents": [
        "12b28ce4e82fcd3ed46ffac77fb866bb5aee4408"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Oct 14 09:12:27 2013 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Oct 14 09:12:27 2013 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I734c073236b4d50576d962b23f4b50abfccec16e\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "b8087da9330286a6340ff334c70a799573ba1fec",
      "tree": "7a91b7667e5025a6684777afbe4529ab0b24eb6f",
      "parents": [
        "59ff7bd243f46c7749a2ef2f1bb1c3c769f0584f"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Fri Oct 11 16:23:01 2013 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Fri Oct 11 16:23:01 2013 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I289f527bef7c4274b4161d2e90c8aa82dc9608a9\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "b2748c8492dceccd05ea167f7a48564de12ec897",
      "tree": "c0fea235a689349c034746d18e0841da00925463",
      "parents": [
        "222c5f80e5b4f35633da2c4bbc5a22c6216c3e4e"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Thu Oct 10 17:43:23 2013 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Thu Oct 10 17:43:23 2013 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: Ibb4f088ca9e1dbce63f35cdb686d7ce77567fc8c\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "18e14c75e3bce96690ac76c78fdb402af9740a01",
      "tree": "7a98143cb9dd9738a2c7c7aad153bddb76509fd3",
      "parents": [
        "5c2dfa8a21e7bd4e07e00f268d30058b654aa099"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Aug 29 14:33:58 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Sep 03 12:27:18 2013 -0700"
      },
      "message": "Fix keymap build dependencies and variable name collisions\n\nChange-Id: I06e67ddc97429ae9c3d04143934c3f8233fcd22f\n"
    },
    {
      "commit": "3407da1afb095eb3101415f1c260e91c619cd614",
      "tree": "afdf7aafd3e4758b5364b77a4be7258b30ffb23a",
      "parents": [
        "ee302758d6d8e9d954267c3404b7e783ef1d976f",
        "7dfcae9bae9fc16226b1a0496e947be5cedd1773"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jul 08 13:47:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 08 13:47:58 2013 -0700"
      },
      "message": "am 7dfcae9b: am d8694667: am ae6bdf63: Merge \"Add Colemak keyboard layout\"\n\n* commit \u00277dfcae9bae9fc16226b1a0496e947be5cedd1773\u0027:\n  Add Colemak keyboard layout\n"
    },
    {
      "commit": "8c890db75ae9f6d933dd03d2edb4c04d4a296685",
      "tree": "eb48966a16a41f4c05de6bd04055b45328e858ea",
      "parents": [
        "9775203b610267bf8cecaf7c00db68b73b529ced"
      ],
      "author": {
        "name": "Christopher Eby",
        "email": "kreed@kreed.org",
        "time": "Sun Nov 18 22:43:40 2012 -0600"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jul 08 13:09:18 2013 -0700"
      },
      "message": "Add Colemak keyboard layout\n\nChange-Id: I203b92e56522bc7b3014195d5d83dc1fdb3cab15\n"
    },
    {
      "commit": "ccbf84f44c9e6a5ed3c08673614826bb237afc54",
      "tree": "854e35665f7754b3b0d1b4aaadc7b4927c3ea9ce",
      "parents": [
        "4ffa23379f95771fcdc63a2e35586b7e2c0b23a5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 08 15:25:41 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 17 12:47:35 2013 -0700"
      },
      "message": "Some system apps are more system than others\n\n\"signatureOrSystem\" permissions are no longer available to all apps\nresiding en the /system partition.  Instead, there is a new /system/priv-app\ndirectory, and only apps whose APKs are in that directory are allowed\nto use signatureOrSystem permissions without sharing the platform cert.\nThis will reduce the surface area for possible exploits of system-\nbundled applications to try to gain access to permission-guarded\noperations.\n\nThe ApplicationInfo.FLAG_SYSTEM flag continues to mean what it is\nsays in the documentation: it indicates that the application apk was\nbundled on the /system partition.  A new hidden flag FLAG_PRIVILEGED\nhas been introduced that reflects the actual right to access these\npermissions.\n\nAt some point the \"system\" permission category will be\nrenamed to \"privileged\".\n\nBug 8765951\n\nChange-Id: I6f0fd9cdb9170e076dfc66d83ecea76f8dd7335d\n"
    },
    {
      "commit": "3c1c21bcf40ff588f10b9cd2a3cd3e28b537f8d2",
      "tree": "31d652f5e467bcc7e92d342b32c9e65e73351afd",
      "parents": [
        "55e9d98d990f7a015d4c10f5e5a92ae131637073"
      ],
      "author": {
        "name": "Olivier Gay",
        "email": "ogay@logitech.com",
        "time": "Wed Mar 20 16:45:43 2013 +0100"
      },
      "committer": {
        "name": "Olivier Gay",
        "email": "ogay@logitech.com",
        "time": "Sat Mar 30 19:29:40 2013 +0100"
      },
      "message": "Add new physical keyboard layouts.\n\nAdd support for the following physical keyboard layouts:\nEnglish US international and Brazilian layout.\n\nChange-Id: Iae928713a94611de18a92f6959adf7fa3500b2b2\nSigned-off-by: Olivier Gay \u003cogay@logitech.com\u003e\nSigned-off-by: Myriam Galaret \u003cmgalaret@logitech.com\u003e\n"
    },
    {
      "commit": "4037ce3c019262c7f70342ef612c90807b429dfe",
      "tree": "d852e34b24231e7670b3d0e111ce7f7652c0c44b",
      "parents": [
        "b1e16f11ffd3a391be1a44a352c122b6dad1e8a5"
      ],
      "author": {
        "name": "HeyRatFans",
        "email": "matt@heyratfans.co.uk",
        "time": "Tue Jan 22 11:58:40 2013 +0000"
      },
      "committer": {
        "name": "Matt Beale",
        "email": "matt@heyratfans.co.uk",
        "time": "Tue Jan 22 22:22:54 2013 +0000"
      },
      "message": "frameworks/base: Added English UK keyboard layout for physical keyboards\n\nChange-Id: Id6feb128964c76ebd74b3e0d67d8f90fedb91dda\n"
    },
    {
      "commit": "d9fec5d317c09da6bcc7a54df4e0190a76d21eae",
      "tree": "0eae74e8e946ea2d7715e31c3bd58a8f48befa2a",
      "parents": [
        "ab624c2fd4f0fad6ba7f422a960942e5a7035cea"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 17 16:01:54 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 17 16:01:54 2012 -0700"
      },
      "message": "Add support for grouping keyboard layouts by collection.\n\nBug: 6405203\nChange-Id: Id818b27ec09928150795d594a96df186a6e39168\n"
    },
    {
      "commit": "2f0957607411b99810226ad38d59cf18718b86d0",
      "tree": "02c124b552f1f206498e50f3532c5140c9fda8c4",
      "parents": [
        "3816174b3bea63eb355a0aa212c6b51e9435627b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 10 21:29:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 12:32:56 2012 -0700"
      },
      "message": "Rename kcm attribute to keyboardLayout.\n\nBug: 6478076\nChange-Id: I7fc0d8eb36d03a628d070f8fd6ea1e1464b1a163\n"
    },
    {
      "commit": "69b2be163d6ba00fead46c2e01ec775d8487e777",
      "tree": "6ac57718e3e4907b8b8cf79c40346d2a6a627eda",
      "parents": [
        "1fa1de527e541c88fb3809279b67b0dc29419bac"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 25 15:10:54 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 25 18:17:21 2012 -0700"
      },
      "message": "Add yet more keyboard layouts.\n\nBug: 6110399\nChange-Id: I8e2ce1cd350dddb006df51286e127dce65a8117f\n"
    },
    {
      "commit": "77241caa8e077e43909cca1e5d49f726f0b8afe5",
      "tree": "f19ca4c06044d24738d4af7bc9c0d5ea1a568474",
      "parents": [
        "4c181a3f6a6f450522a1bbfdaba7d94e2fbdcb96"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 24 20:34:54 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 24 20:34:54 2012 -0700"
      },
      "message": "Add even more keyboard layouts.\n\nBug: 6110399\n\nChange-Id: I2278424e2e4c7dc7f7804a25d2c6c63f45181d1b\n"
    },
    {
      "commit": "4c181a3f6a6f450522a1bbfdaba7d94e2fbdcb96",
      "tree": "fe2f0b6f148d25e0fd307e76a160171e11a6ce59",
      "parents": [
        "8bca94ad83f82682bc15df29dc25377fe43da17f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 23 19:43:55 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 24 17:39:59 2012 -0700"
      },
      "message": "Add more keyboard layouts.\n\nBug: 6110399\nChange-Id: I00f54338c9e94cce3a2925a5dff2e924a21fcdd8\n"
    },
    {
      "commit": "8bca94ad83f82682bc15df29dc25377fe43da17f",
      "tree": "04e78f028b7a6b8c8a9e9e66d0aa4d22ed97f073",
      "parents": [
        "fd6a5245ccb0294dada070444d9d9c6be752e668"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 23 16:12:32 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 23 16:12:32 2012 -0700"
      },
      "message": "More work on international keyboards.\n\nChanged the English US keymaps to implement a strict US key map\nwith no additional ALT functions.\n\nFixed a bug copying the alias in the InputDevice copy constructor.\n\nAdded support for end of line comments in KCM and KL files.\n\nAdded the German keyboard layout.\n\nSorted the keys in the keyboard layout files by physical arrangement\nto make it easier to maintain them.\n\nBug: 6110399\nChange-Id: If44d83de5b98f2bf0016cbb8e12264387b286aaa\n"
    },
    {
      "commit": "4a3862f6b0a8971b6ab5b1c46735b28e7604d0db",
      "tree": "4091176054868659d2fa6bec36540f56c08bd116",
      "parents": [
        "6ec6f79e1ac1714e3b837796e99f07ff88f66601"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 18:50:05 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 18:50:05 2012 -0700"
      },
      "message": "Add Dvorak keyboard layout.\n\nAdded support for mapping both scan codes and HID usages to\nKeyLayoutMap and KeyCharacterMap.  Keyboard overlays can\nnow influence how key events are mapped to key codes.\n\nBug: 6110399\nChange-Id: I6619fd2d3e1337c55928f89869dbc45b535c7ccf\n"
    },
    {
      "commit": "6ec6f79e1ac1714e3b837796e99f07ff88f66601",
      "tree": "02aa55617bfa6dd2eb0bec29156e279c8afaaa0d",
      "parents": [
        "a3bc565882dd3984e995363642b1295fe3d24d10"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 16:52:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 17:56:32 2012 -0700"
      },
      "message": "Support loading keyboard layout overlays from resources.\n\nAdded the concept of a keyboard layout overlay, which is\na key character map file that has \"type OVERLAY\".\n\nAdded support for loading keyboard layout overlays from\nresources dynamically.  The layouts are reloaded whenever they\nare changed in the Settings application or an application\nis installed.  This is somewhat more aggressive than necessary\nso we might want to optimize it later.\n\nBefore system-ready, the input system uses just the generic\nkeyboard layouts that are included on the device system image.\nAfter system-ready, it considers the user\u0027s selected keyboard\nlayout overlay and attempts to load it as necessary.  We need to\nwait until system-ready before doing this because we need to\nbe in a state where it is safe to start applications or access\ntheir resources.\n\nBug: 6110399\nChange-Id: Iae0886d3356649b0d2440aa00910a888cedd8323\n"
    },
    {
      "commit": "9df6e7a926ce480baf70e97ee1b9ea387193f6ad",
      "tree": "dfe752a296e934467d76d6727b687a8fc8fad586",
      "parents": [
        "dedf1b2727556223aafcebba1a567ffa816412d2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 11:49:26 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 14:42:10 2012 -0700"
      },
      "message": "Initial commit of InputManager and keyboard layout API.\n\nAdded a new InputManager service for interacting with input\ndevices and configuring them.  This will be the focus of\nan upcoming refactoring.\n\nAdded an API for registering keyboard layouts with the system\nbased on the use of a broadcast receiver.  Applications can\nregister their own keyboard layouts simply by declaring a\nbroadcast receiver in their manifests.\n\nAdded the skeleton of a package that will ultimately contain\nthe keyboard layouts and other input device related resources\nthat are part of the base system.\n\nBug: 6110399\nChange-Id: Ie01b0ef4adbd5198f6f012e73964bdef3c51805c\n"
    }
  ]
}
