You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2015/03/29 05:02:49 UTC

[31/71] [abbrv] [partial] incubator-brooklyn git commit: Move mobile app to sandbox

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur-in.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur-in.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur-in.js
new file mode 100644
index 0000000..c501be6
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur-in.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u062f\u0646",
+      "\u0631\u0627\u062a"
+    ],
+    "DAY": [
+      "\u0627\u062a\u0648\u0627\u0631",
+      "\u067e\u064a\u0631",
+      "\u0645\u0646\u06af\u0644",
+      "\u0628\u062f\u0647",
+      "\u062c\u0645\u0639\u0631\u0627\u062a",
+      "\u062c\u0645\u0639\u06c1",
+      "\u06c1\u0641\u062a\u06c1"
+    ],
+    "MONTH": [
+      "\u062c\u0646\u0648\u0631\u06cc",
+      "\u0641\u0631\u0648\u0631\u06cc",
+      "\u0645\u0627\u0631\u0686",
+      "\u0627\u067e\u0631\u064a\u0644",
+      "\u0645\u0626",
+      "\u062c\u0648\u0646",
+      "\u062c\u0648\u0644\u0627\u0626",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "SHORTDAY": [
+      "\u0627\u062a\u0648\u0627\u0631",
+      "\u067e\u064a\u0631",
+      "\u0645\u0646\u06af\u0644",
+      "\u0628\u062f\u0647",
+      "\u062c\u0645\u0639\u0631\u0627\u062a",
+      "\u062c\u0645\u0639\u06c1",
+      "\u06c1\u0641\u062a\u06c1"
+    ],
+    "SHORTMONTH": [
+      "\u062c\u0646\u0648\u0631\u06cc",
+      "\u0641\u0631\u0648\u0631\u06cc",
+      "\u0645\u0627\u0631\u0686",
+      "\u0627\u067e\u0631\u064a\u0644",
+      "\u0645\u0626",
+      "\u062c\u0648\u0646",
+      "\u062c\u0648\u0644\u0627\u0626",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "fullDate": "EEEE\u060d d\u060d MMMM y",
+    "longDate": "d\u060d MMMM y",
+    "medium": "d\u060d MMM y h:mm:ss a",
+    "mediumDate": "d\u060d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "d/M/yy h:mm a",
+    "shortDate": "d/M/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Rs",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "ur-in",
+  "pluralCat": function (n) {  if (n == 1) {   return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur-pk.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur-pk.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur-pk.js
new file mode 100644
index 0000000..cd64221
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur-pk.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u062f\u0646",
+      "\u0631\u0627\u062a"
+    ],
+    "DAY": [
+      "\u0627\u062a\u0648\u0627\u0631",
+      "\u067e\u064a\u0631",
+      "\u0645\u0646\u06af\u0644",
+      "\u0628\u062f\u0647",
+      "\u062c\u0645\u0639\u0631\u0627\u062a",
+      "\u062c\u0645\u0639\u06c1",
+      "\u06c1\u0641\u062a\u06c1"
+    ],
+    "MONTH": [
+      "\u062c\u0646\u0648\u0631\u06cc",
+      "\u0641\u0631\u0648\u0631\u06cc",
+      "\u0645\u0627\u0631\u0686",
+      "\u0627\u067e\u0631\u064a\u0644",
+      "\u0645\u0626",
+      "\u062c\u0648\u0646",
+      "\u062c\u0648\u0644\u0627\u0626",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "SHORTDAY": [
+      "\u0627\u062a\u0648\u0627\u0631",
+      "\u067e\u064a\u0631",
+      "\u0645\u0646\u06af\u0644",
+      "\u0628\u062f\u0647",
+      "\u062c\u0645\u0639\u0631\u0627\u062a",
+      "\u062c\u0645\u0639\u06c1",
+      "\u06c1\u0641\u062a\u06c1"
+    ],
+    "SHORTMONTH": [
+      "\u062c\u0646\u0648\u0631\u06cc",
+      "\u0641\u0631\u0648\u0631\u06cc",
+      "\u0645\u0627\u0631\u0686",
+      "\u0627\u067e\u0631\u064a\u0644",
+      "\u0645\u0626",
+      "\u062c\u0648\u0646",
+      "\u062c\u0648\u0644\u0627\u0626",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "fullDate": "EEEE\u060d d\u060d MMMM y",
+    "longDate": "d\u060d MMMM y",
+    "medium": "d\u060d MMM y h:mm:ss a",
+    "mediumDate": "d\u060d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "d/M/yy h:mm a",
+    "shortDate": "d/M/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Rs",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "ur-pk",
+  "pluralCat": function (n) {  if (n == 1) {   return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur.js
new file mode 100644
index 0000000..d09bea8
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_ur.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u062f\u0646",
+      "\u0631\u0627\u062a"
+    ],
+    "DAY": [
+      "\u0627\u062a\u0648\u0627\u0631",
+      "\u067e\u064a\u0631",
+      "\u0645\u0646\u06af\u0644",
+      "\u0628\u062f\u0647",
+      "\u062c\u0645\u0639\u0631\u0627\u062a",
+      "\u062c\u0645\u0639\u06c1",
+      "\u06c1\u0641\u062a\u06c1"
+    ],
+    "MONTH": [
+      "\u062c\u0646\u0648\u0631\u06cc",
+      "\u0641\u0631\u0648\u0631\u06cc",
+      "\u0645\u0627\u0631\u0686",
+      "\u0627\u067e\u0631\u064a\u0644",
+      "\u0645\u0626",
+      "\u062c\u0648\u0646",
+      "\u062c\u0648\u0644\u0627\u0626",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "SHORTDAY": [
+      "\u0627\u062a\u0648\u0627\u0631",
+      "\u067e\u064a\u0631",
+      "\u0645\u0646\u06af\u0644",
+      "\u0628\u062f\u0647",
+      "\u062c\u0645\u0639\u0631\u0627\u062a",
+      "\u062c\u0645\u0639\u06c1",
+      "\u06c1\u0641\u062a\u06c1"
+    ],
+    "SHORTMONTH": [
+      "\u062c\u0646\u0648\u0631\u06cc",
+      "\u0641\u0631\u0648\u0631\u06cc",
+      "\u0645\u0627\u0631\u0686",
+      "\u0627\u067e\u0631\u064a\u0644",
+      "\u0645\u0626",
+      "\u062c\u0648\u0646",
+      "\u062c\u0648\u0644\u0627\u0626",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "fullDate": "EEEE\u060d d\u060d MMMM y",
+    "longDate": "d\u060d MMMM y",
+    "medium": "d\u060d MMM y h:mm:ss a",
+    "mediumDate": "d\u060d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "d/M/yy h:mm a",
+    "shortDate": "d/M/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Rs",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "ur",
+  "pluralCat": function (n) {  if (n == 1) {   return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_vi-vn.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_vi-vn.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_vi-vn.js
new file mode 100644
index 0000000..1f4fa05
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_vi-vn.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "SA",
+      "CH"
+    ],
+    "DAY": [
+      "Ch\u1ee7 nh\u1eadt",
+      "Th\u1ee9 hai",
+      "Th\u1ee9 ba",
+      "Th\u1ee9 t\u01b0",
+      "Th\u1ee9 n\u0103m",
+      "Th\u1ee9 s\u00e1u",
+      "Th\u1ee9 b\u1ea3y"
+    ],
+    "MONTH": [
+      "th\u00e1ng m\u1ed9t",
+      "th\u00e1ng hai",
+      "th\u00e1ng ba",
+      "th\u00e1ng t\u01b0",
+      "th\u00e1ng n\u0103m",
+      "th\u00e1ng s\u00e1u",
+      "th\u00e1ng b\u1ea3y",
+      "th\u00e1ng t\u00e1m",
+      "th\u00e1ng ch\u00edn",
+      "th\u00e1ng m\u01b0\u1eddi",
+      "th\u00e1ng m\u01b0\u1eddi m\u1ed9t",
+      "th\u00e1ng m\u01b0\u1eddi hai"
+    ],
+    "SHORTDAY": [
+      "CN",
+      "Th 2",
+      "Th 3",
+      "Th 4",
+      "Th 5",
+      "Th 6",
+      "Th 7"
+    ],
+    "SHORTMONTH": [
+      "thg 1",
+      "thg 2",
+      "thg 3",
+      "thg 4",
+      "thg 5",
+      "thg 6",
+      "thg 7",
+      "thg 8",
+      "thg 9",
+      "thg 10",
+      "thg 11",
+      "thg 12"
+    ],
+    "fullDate": "EEEE, 'ng\u00e0y' dd MMMM 'n\u0103m' y",
+    "longDate": "'Ng\u00e0y' dd 'th\u00e1ng' M 'n\u0103m' y",
+    "medium": "dd-MM-yyyy HH:mm:ss",
+    "mediumDate": "dd-MM-yyyy",
+    "mediumTime": "HH:mm:ss",
+    "short": "dd/MM/yyyy HH:mm",
+    "shortDate": "dd/MM/yyyy",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u20ab",
+    "DECIMAL_SEP": ",",
+    "GROUP_SEP": ".",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "\u00a0\u00a4",
+        "posPre": "",
+        "posSuf": "\u00a0\u00a4"
+      }
+    ]
+  },
+  "id": "vi-vn",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_vi.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_vi.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_vi.js
new file mode 100644
index 0000000..d8d478e
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_vi.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "SA",
+      "CH"
+    ],
+    "DAY": [
+      "Ch\u1ee7 nh\u1eadt",
+      "Th\u1ee9 hai",
+      "Th\u1ee9 ba",
+      "Th\u1ee9 t\u01b0",
+      "Th\u1ee9 n\u0103m",
+      "Th\u1ee9 s\u00e1u",
+      "Th\u1ee9 b\u1ea3y"
+    ],
+    "MONTH": [
+      "th\u00e1ng m\u1ed9t",
+      "th\u00e1ng hai",
+      "th\u00e1ng ba",
+      "th\u00e1ng t\u01b0",
+      "th\u00e1ng n\u0103m",
+      "th\u00e1ng s\u00e1u",
+      "th\u00e1ng b\u1ea3y",
+      "th\u00e1ng t\u00e1m",
+      "th\u00e1ng ch\u00edn",
+      "th\u00e1ng m\u01b0\u1eddi",
+      "th\u00e1ng m\u01b0\u1eddi m\u1ed9t",
+      "th\u00e1ng m\u01b0\u1eddi hai"
+    ],
+    "SHORTDAY": [
+      "CN",
+      "Th 2",
+      "Th 3",
+      "Th 4",
+      "Th 5",
+      "Th 6",
+      "Th 7"
+    ],
+    "SHORTMONTH": [
+      "thg 1",
+      "thg 2",
+      "thg 3",
+      "thg 4",
+      "thg 5",
+      "thg 6",
+      "thg 7",
+      "thg 8",
+      "thg 9",
+      "thg 10",
+      "thg 11",
+      "thg 12"
+    ],
+    "fullDate": "EEEE, 'ng\u00e0y' dd MMMM 'n\u0103m' y",
+    "longDate": "'Ng\u00e0y' dd 'th\u00e1ng' M 'n\u0103m' y",
+    "medium": "dd-MM-yyyy HH:mm:ss",
+    "mediumDate": "dd-MM-yyyy",
+    "mediumTime": "HH:mm:ss",
+    "short": "dd/MM/yyyy HH:mm",
+    "shortDate": "dd/MM/yyyy",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u20ab",
+    "DECIMAL_SEP": ",",
+    "GROUP_SEP": ".",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "\u00a0\u00a4",
+        "posPre": "",
+        "posSuf": "\u00a0\u00a4"
+      }
+    ]
+  },
+  "id": "vi",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-cn.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-cn.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-cn.js
new file mode 100644
index 0000000..787d1fd
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-cn.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u5468\u65e5",
+      "\u5468\u4e00",
+      "\u5468\u4e8c",
+      "\u5468\u4e09",
+      "\u5468\u56db",
+      "\u5468\u4e94",
+      "\u5468\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "yyyy-M-d ah:mm:ss",
+    "mediumDate": "yyyy-M-d",
+    "mediumTime": "ah:mm:ss",
+    "short": "yy-M-d ah:mm",
+    "shortDate": "yy-M-d",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-cn",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-cn.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-cn.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-cn.js
new file mode 100644
index 0000000..b439a08
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-cn.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u5468\u65e5",
+      "\u5468\u4e00",
+      "\u5468\u4e8c",
+      "\u5468\u4e09",
+      "\u5468\u56db",
+      "\u5468\u4e94",
+      "\u5468\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "yyyy-M-d ah:mm:ss",
+    "mediumDate": "yyyy-M-d",
+    "mediumTime": "ah:mm:ss",
+    "short": "yy-M-d ah:mm",
+    "shortDate": "yy-M-d",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hans-cn",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-hk.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-hk.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-hk.js
new file mode 100644
index 0000000..079fdde
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-hk.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "\u4e00\u6708",
+      "\u4e8c\u6708",
+      "\u4e09\u6708",
+      "\u56db\u6708",
+      "\u4e94\u6708",
+      "\u516d\u6708",
+      "\u4e03\u6708",
+      "\u516b\u6708",
+      "\u4e5d\u6708",
+      "\u5341\u6708",
+      "\u5341\u4e00\u6708",
+      "\u5341\u4e8c\u6708"
+    ],
+    "SHORTDAY": [
+      "\u5468\u65e5",
+      "\u5468\u4e00",
+      "\u5468\u4e8c",
+      "\u5468\u4e09",
+      "\u5468\u56db",
+      "\u5468\u4e94",
+      "\u5468\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "y\u5e74M\u6708d\u65e5 ah:mm:ss",
+    "mediumDate": "y\u5e74M\u6708d\u65e5",
+    "mediumTime": "ah:mm:ss",
+    "short": "d/M/yy ah:mm",
+    "shortDate": "d/M/yy",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hans-hk",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-mo.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-mo.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-mo.js
new file mode 100644
index 0000000..4e93003
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-mo.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "\u4e00\u6708",
+      "\u4e8c\u6708",
+      "\u4e09\u6708",
+      "\u56db\u6708",
+      "\u4e94\u6708",
+      "\u516d\u6708",
+      "\u4e03\u6708",
+      "\u516b\u6708",
+      "\u4e5d\u6708",
+      "\u5341\u6708",
+      "\u5341\u4e00\u6708",
+      "\u5341\u4e8c\u6708"
+    ],
+    "SHORTDAY": [
+      "\u5468\u65e5",
+      "\u5468\u4e00",
+      "\u5468\u4e8c",
+      "\u5468\u4e09",
+      "\u5468\u56db",
+      "\u5468\u4e94",
+      "\u5468\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "y\u5e74M\u6708d\u65e5 ah:mm:ss",
+    "mediumDate": "y\u5e74M\u6708d\u65e5",
+    "mediumTime": "ah:mm:ss",
+    "short": "d/M/yy ah:mm",
+    "shortDate": "d/M/yy",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hans-mo",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-sg.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-sg.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-sg.js
new file mode 100644
index 0000000..2c2ea98
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans-sg.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "\u4e00\u6708",
+      "\u4e8c\u6708",
+      "\u4e09\u6708",
+      "\u56db\u6708",
+      "\u4e94\u6708",
+      "\u516d\u6708",
+      "\u4e03\u6708",
+      "\u516b\u6708",
+      "\u4e5d\u6708",
+      "\u5341\u6708",
+      "\u5341\u4e00\u6708",
+      "\u5341\u4e8c\u6708"
+    ],
+    "SHORTDAY": [
+      "\u5468\u65e5",
+      "\u5468\u4e00",
+      "\u5468\u4e8c",
+      "\u5468\u4e09",
+      "\u5468\u56db",
+      "\u5468\u4e94",
+      "\u5468\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "y\u5e74M\u6708d\u65e5 ah:mm:ss",
+    "mediumDate": "y\u5e74M\u6708d\u65e5",
+    "mediumTime": "ah:mm:ss",
+    "short": "dd/MM/yy ahh:mm",
+    "shortDate": "dd/MM/yy",
+    "shortTime": "ahh:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hans-sg",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans.js
new file mode 100644
index 0000000..5c76da0
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hans.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u5468\u65e5",
+      "\u5468\u4e00",
+      "\u5468\u4e8c",
+      "\u5468\u4e09",
+      "\u5468\u56db",
+      "\u5468\u4e94",
+      "\u5468\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "yyyy-M-d ah:mm:ss",
+    "mediumDate": "yyyy-M-d",
+    "mediumTime": "ah:mm:ss",
+    "short": "yy-M-d ah:mm",
+    "shortDate": "yy-M-d",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hans",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-hk.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-hk.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-hk.js
new file mode 100644
index 0000000..822a17b
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-hk.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u9031\u65e5",
+      "\u9031\u4e00",
+      "\u9031\u4e8c",
+      "\u9031\u4e09",
+      "\u9031\u56db",
+      "\u9031\u4e94",
+      "\u9031\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "y\u5e74M\u6708d\u65e5 ahh:mm:ss",
+    "mediumDate": "y\u5e74M\u6708d\u65e5",
+    "mediumTime": "ahh:mm:ss",
+    "short": "yy\u5e74M\u6708d\u65e5 ah:mm",
+    "shortDate": "yy\u5e74M\u6708d\u65e5",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hant-hk",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-mo.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-mo.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-mo.js
new file mode 100644
index 0000000..c23d3bc
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-mo.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u9031\u65e5",
+      "\u9031\u4e00",
+      "\u9031\u4e8c",
+      "\u9031\u4e09",
+      "\u9031\u56db",
+      "\u9031\u4e94",
+      "\u9031\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74MM\u6708dd\u65e5EEEE",
+    "longDate": "y\u5e74MM\u6708dd\u65e5",
+    "medium": "y\u5e74M\u6708d\u65e5 ahh:mm:ss",
+    "mediumDate": "y\u5e74M\u6708d\u65e5",
+    "mediumTime": "ahh:mm:ss",
+    "short": "yy\u5e74M\u6708d\u65e5 ah:mm",
+    "shortDate": "yy\u5e74M\u6708d\u65e5",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hant-mo",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-tw.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-tw.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-tw.js
new file mode 100644
index 0000000..d242f7f
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant-tw.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u9031\u65e5",
+      "\u9031\u4e00",
+      "\u9031\u4e8c",
+      "\u9031\u4e09",
+      "\u9031\u56db",
+      "\u9031\u4e94",
+      "\u9031\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "yyyy/M/d ah:mm:ss",
+    "mediumDate": "yyyy/M/d",
+    "mediumTime": "ah:mm:ss",
+    "short": "y/M/d ah:mm",
+    "shortDate": "y/M/d",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hant-tw",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant.js
new file mode 100644
index 0000000..f721f68
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hant.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u9031\u65e5",
+      "\u9031\u4e00",
+      "\u9031\u4e8c",
+      "\u9031\u4e09",
+      "\u9031\u56db",
+      "\u9031\u4e94",
+      "\u9031\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "yyyy/M/d ah:mm:ss",
+    "mediumDate": "yyyy/M/d",
+    "mediumTime": "ah:mm:ss",
+    "short": "y/M/d ah:mm",
+    "shortDate": "y/M/d",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hant",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hk.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hk.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hk.js
new file mode 100644
index 0000000..0a47198
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-hk.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u9031\u65e5",
+      "\u9031\u4e00",
+      "\u9031\u4e8c",
+      "\u9031\u4e09",
+      "\u9031\u56db",
+      "\u9031\u4e94",
+      "\u9031\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "y\u5e74M\u6708d\u65e5 ahh:mm:ss",
+    "mediumDate": "y\u5e74M\u6708d\u65e5",
+    "mediumTime": "ahh:mm:ss",
+    "short": "yy\u5e74M\u6708d\u65e5 ah:mm",
+    "shortDate": "yy\u5e74M\u6708d\u65e5",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "$",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-hk",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-tw.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-tw.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-tw.js
new file mode 100644
index 0000000..8989021
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh-tw.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u9031\u65e5",
+      "\u9031\u4e00",
+      "\u9031\u4e8c",
+      "\u9031\u4e09",
+      "\u9031\u56db",
+      "\u9031\u4e94",
+      "\u9031\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "yyyy/M/d ah:mm:ss",
+    "mediumDate": "yyyy/M/d",
+    "mediumTime": "ah:mm:ss",
+    "short": "y/M/d ah:mm",
+    "shortDate": "y/M/d",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "NT$",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh-tw",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh.js
new file mode 100644
index 0000000..d02bfa3
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zh.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u4e0a\u5348",
+      "\u4e0b\u5348"
+    ],
+    "DAY": [
+      "\u661f\u671f\u65e5",
+      "\u661f\u671f\u4e00",
+      "\u661f\u671f\u4e8c",
+      "\u661f\u671f\u4e09",
+      "\u661f\u671f\u56db",
+      "\u661f\u671f\u4e94",
+      "\u661f\u671f\u516d"
+    ],
+    "MONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "SHORTDAY": [
+      "\u5468\u65e5",
+      "\u5468\u4e00",
+      "\u5468\u4e8c",
+      "\u5468\u4e09",
+      "\u5468\u56db",
+      "\u5468\u4e94",
+      "\u5468\u516d"
+    ],
+    "SHORTMONTH": [
+      "1\u6708",
+      "2\u6708",
+      "3\u6708",
+      "4\u6708",
+      "5\u6708",
+      "6\u6708",
+      "7\u6708",
+      "8\u6708",
+      "9\u6708",
+      "10\u6708",
+      "11\u6708",
+      "12\u6708"
+    ],
+    "fullDate": "y\u5e74M\u6708d\u65e5EEEE",
+    "longDate": "y\u5e74M\u6708d\u65e5",
+    "medium": "yyyy-M-d ah:mm:ss",
+    "mediumDate": "yyyy-M-d",
+    "mediumTime": "ah:mm:ss",
+    "short": "yy-M-d ah:mm",
+    "shortDate": "yy-M-d",
+    "shortTime": "ah:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a5",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zh",
+  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zu-za.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zu-za.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zu-za.js
new file mode 100644
index 0000000..4c6cda6
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zu-za.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "AM",
+      "PM"
+    ],
+    "DAY": [
+      "Sonto",
+      "Msombuluko",
+      "Lwesibili",
+      "Lwesithathu",
+      "uLwesine",
+      "Lwesihlanu",
+      "Mgqibelo"
+    ],
+    "MONTH": [
+      "Januwari",
+      "Februwari",
+      "Mashi",
+      "Apreli",
+      "Meyi",
+      "Juni",
+      "Julayi",
+      "Agasti",
+      "Septhemba",
+      "Okthoba",
+      "Novemba",
+      "Disemba"
+    ],
+    "SHORTDAY": [
+      "Son",
+      "Mso",
+      "Bil",
+      "Tha",
+      "Sin",
+      "Hla",
+      "Mgq"
+    ],
+    "SHORTMONTH": [
+      "Jan",
+      "Feb",
+      "Mas",
+      "Apr",
+      "Mey",
+      "Jun",
+      "Jul",
+      "Aga",
+      "Sep",
+      "Okt",
+      "Nov",
+      "Dis"
+    ],
+    "fullDate": "EEEE dd MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "d MMM y h:mm:ss a",
+    "mediumDate": "d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "yyyy-MM-dd h:mm a",
+    "shortDate": "yyyy-MM-dd",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "R",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zu-za",
+  "pluralCat": function (n) {  if (n == 1) {   return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zu.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zu.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zu.js
new file mode 100644
index 0000000..fcadc8f
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/i18n/angular-locale_zu.js
@@ -0,0 +1,99 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "AM",
+      "PM"
+    ],
+    "DAY": [
+      "Sonto",
+      "Msombuluko",
+      "Lwesibili",
+      "Lwesithathu",
+      "uLwesine",
+      "Lwesihlanu",
+      "Mgqibelo"
+    ],
+    "MONTH": [
+      "Januwari",
+      "Februwari",
+      "Mashi",
+      "Apreli",
+      "Meyi",
+      "Juni",
+      "Julayi",
+      "Agasti",
+      "Septhemba",
+      "Okthoba",
+      "Novemba",
+      "Disemba"
+    ],
+    "SHORTDAY": [
+      "Son",
+      "Mso",
+      "Bil",
+      "Tha",
+      "Sin",
+      "Hla",
+      "Mgq"
+    ],
+    "SHORTMONTH": [
+      "Jan",
+      "Feb",
+      "Mas",
+      "Apr",
+      "Mey",
+      "Jun",
+      "Jul",
+      "Aga",
+      "Sep",
+      "Okt",
+      "Nov",
+      "Dis"
+    ],
+    "fullDate": "EEEE dd MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "d MMM y h:mm:ss a",
+    "mediumDate": "d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "yyyy-MM-dd h:mm a",
+    "shortDate": "yyyy-MM-dd",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "R",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "macFrac": 0,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "(\u00a4",
+        "negSuf": ")",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "zu",
+  "pluralCat": function (n) {  if (n == 1) {   return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/version.json
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/version.json b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/version.json
new file mode 100644
index 0000000..7589655
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/version.json
@@ -0,0 +1 @@
+{"raw":"v1.2.19","major":1,"minor":2,"patch":19,"prerelease":[],"build":[],"version":"1.2.19","codeName":"precognitive-flashbacks","full":"1.2.19","cdn":{"raw":"v1.2.18","major":1,"minor":2,"patch":18,"prerelease":[],"build":[],"version":"1.2.18","isStable":true,"docsUrl":"http://code.angularjs.org/1.2.18/docs"}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/version.txt
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/version.txt b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/version.txt
new file mode 100644
index 0000000..f37ae4a
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-1.2.19/version.txt
@@ -0,0 +1 @@
+1.2.19
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/.bower.json
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/.bower.json b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/.bower.json
new file mode 100644
index 0000000..732d397
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/.bower.json
@@ -0,0 +1,19 @@
+{
+  "name": "angular-translate-loader-static-files",
+  "version": "2.2.0",
+  "main": "./angular-translate-loader-static-files.js",
+  "dependencies": {
+    "angular-translate": "~2.2.0"
+  },
+  "homepage": "https://github.com/PascalPrecht/bower-angular-translate-loader-static-files",
+  "_release": "2.2.0",
+  "_resolution": {
+    "type": "version",
+    "tag": "2.2.0",
+    "commit": "6f0cbc619d478b371000aab3a0720bf93b556a63"
+  },
+  "_source": "git://github.com/PascalPrecht/bower-angular-translate-loader-static-files.git",
+  "_target": "~2.2.0",
+  "_originalSource": "angular-translate-loader-static-files",
+  "_direct": true
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/README.md
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/README.md b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/README.md
new file mode 100644
index 0000000..dcc821c
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/README.md
@@ -0,0 +1,9 @@
+# bower-angular-translate-loader-static-files
+
+angular-translate-loader-static-files bower package
+
+### Installation
+
+````
+$ bower install angular-translate-loader-static-files
+````

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js
new file mode 100644
index 0000000..7878387
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js
@@ -0,0 +1,31 @@
+/*!
+ * angular-translate - v2.2.0 - 2014-06-03
+ * http://github.com/PascalPrecht/angular-translate
+ * Copyright (c) 2014 ; Licensed MIT
+ */
+angular.module('pascalprecht.translate').factory('$translateStaticFilesLoader', [
+  '$q',
+  '$http',
+  function ($q, $http) {
+    return function (options) {
+      if (!options || (!angular.isString(options.prefix) || !angular.isString(options.suffix))) {
+        throw new Error('Couldn\'t load static files, no prefix or suffix specified!');
+      }
+      var deferred = $q.defer();
+      $http({
+        url: [
+          options.prefix,
+          options.key,
+          options.suffix
+        ].join(''),
+        method: 'GET',
+        params: ''
+      }).success(function (data) {
+        deferred.resolve(data);
+      }).error(function (data) {
+        deferred.reject(options.key);
+      });
+      return deferred.promise;
+    };
+  }
+]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js
new file mode 100644
index 0000000..476c7df
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js
@@ -0,0 +1,6 @@
+/*!
+ * angular-translate - v2.2.0 - 2014-06-03
+ * http://github.com/PascalPrecht/angular-translate
+ * Copyright (c) 2014 ; Licensed MIT
+ */
+angular.module("pascalprecht.translate").factory("$translateStaticFilesLoader",["$q","$http",function(a,b){return function(c){if(!c||!angular.isString(c.prefix)||!angular.isString(c.suffix))throw new Error("Couldn't load static files, no prefix or suffix specified!");var d=a.defer();return b({url:[c.prefix,c.key,c.suffix].join(""),method:"GET",params:""}).success(function(a){d.resolve(a)}).error(function(){d.reject(c.key)}),d.promise}}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/bower.json
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/bower.json b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/bower.json
new file mode 100644
index 0000000..25c1368
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-static-files/bower.json
@@ -0,0 +1,8 @@
+{
+  "name": "angular-translate-loader-static-files",
+  "version": "2.2.0",
+  "main": "./angular-translate-loader-static-files.js",
+  "dependencies": {
+    "angular-translate": "~2.2.0"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-url
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-url b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-url
new file mode 160000
index 0000000..9f880b3
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-loader-url
@@ -0,0 +1 @@
+Subproject commit 9f880b3a44574d313012f5891e6ce7f28b9824fa

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/.bower.json
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/.bower.json b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/.bower.json
new file mode 100644
index 0000000..137f75c
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/.bower.json
@@ -0,0 +1,18 @@
+{
+  "name": "angular-translate-storage-cookie",
+  "version": "2.2.0",
+  "main": "./angular-translate-storage-cookie.js",
+  "dependencies": {
+    "angular-translate": "~2.2.0"
+  },
+  "homepage": "https://github.com/PascalPrecht/bower-angular-translate-storage-cookie",
+  "_release": "2.2.0",
+  "_resolution": {
+    "type": "version",
+    "tag": "2.2.0",
+    "commit": "f3b6dfcc8882f2aa23f6e18daf19acafccfdcd6e"
+  },
+  "_source": "git://github.com/PascalPrecht/bower-angular-translate-storage-cookie.git",
+  "_target": "~2.2.0",
+  "_originalSource": "angular-translate-storage-cookie"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/README.md
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/README.md b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/README.md
new file mode 100644
index 0000000..a2d5176
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/README.md
@@ -0,0 +1,9 @@
+# bower-angular-translate-storage-cookie
+
+angular-translate-cookie-storage bower package
+
+### Installation
+
+````
+$ bower install angular-translate-storage-cookie
+````

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js
new file mode 100644
index 0000000..497c243
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js
@@ -0,0 +1,19 @@
+/*!
+ * angular-translate - v2.2.0 - 2014-06-03
+ * http://github.com/PascalPrecht/angular-translate
+ * Copyright (c) 2014 ; Licensed MIT
+ */
+angular.module('pascalprecht.translate').factory('$translateCookieStorage', [
+  '$cookieStore',
+  function ($cookieStore) {
+    var $translateCookieStorage = {
+        get: function (name) {
+          return $cookieStore.get(name);
+        },
+        set: function (name, value) {
+          $cookieStore.put(name, value);
+        }
+      };
+    return $translateCookieStorage;
+  }
+]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js
new file mode 100644
index 0000000..12cd3b7
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js
@@ -0,0 +1,6 @@
+/*!
+ * angular-translate - v2.2.0 - 2014-06-03
+ * http://github.com/PascalPrecht/angular-translate
+ * Copyright (c) 2014 ; Licensed MIT
+ */
+angular.module("pascalprecht.translate").factory("$translateCookieStorage",["$cookieStore",function(a){var b={get:function(b){return a.get(b)},set:function(b,c){a.put(b,c)}};return b}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/bower.json
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/bower.json b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/bower.json
new file mode 100644
index 0000000..1c75713
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/bower.json
@@ -0,0 +1,8 @@
+{
+  "name": "angular-translate-storage-cookie",
+  "version": "2.2.0",
+  "main": "./angular-translate-storage-cookie.js",
+  "dependencies": {
+    "angular-translate": "~2.2.0"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/.bower.json
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/.bower.json b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/.bower.json
new file mode 100644
index 0000000..b7daa7a
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/.bower.json
@@ -0,0 +1,20 @@
+{
+  "name": "angular-translate-storage-local",
+  "version": "2.2.0",
+  "main": "./angular-translate-storage-local.js",
+  "dependencies": {
+    "angular-translate": "~2.2.0",
+    "angular-translate-storage-cookie": "~2.2.0"
+  },
+  "homepage": "https://github.com/PascalPrecht/bower-angular-translate-storage-local",
+  "_release": "2.2.0",
+  "_resolution": {
+    "type": "version",
+    "tag": "2.2.0",
+    "commit": "1b2fbfc31ce70e3e75e0037f759b60fd92b46bd8"
+  },
+  "_source": "git://github.com/PascalPrecht/bower-angular-translate-storage-local.git",
+  "_target": "~2.2.0",
+  "_originalSource": "angular-translate-storage-local",
+  "_direct": true
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/README.md
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/README.md b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/README.md
new file mode 100644
index 0000000..56f3ec1
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/README.md
@@ -0,0 +1,9 @@
+# bower-angular-translate-storage-local
+
+angular-translate-cookie-local bower package
+
+### Installation
+
+````
+$ bower install angular-translate-storage-local
+````

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/angular-translate-storage-local.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/angular-translate-storage-local.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/angular-translate-storage-local.js
new file mode 100644
index 0000000..d6c7cf9
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/angular-translate-storage-local.js
@@ -0,0 +1,38 @@
+/*!
+ * angular-translate - v2.2.0 - 2014-06-03
+ * http://github.com/PascalPrecht/angular-translate
+ * Copyright (c) 2014 ; Licensed MIT
+ */
+angular.module('pascalprecht.translate').factory('$translateLocalStorage', [
+  '$window',
+  '$translateCookieStorage',
+  function ($window, $translateCookieStorage) {
+    var localStorageAdapter = function () {
+        var langKey;
+        return {
+          get: function (name) {
+            if (!langKey) {
+              langKey = $window.localStorage.getItem(name);
+            }
+            return langKey;
+          },
+          set: function (name, value) {
+            langKey = value;
+            $window.localStorage.setItem(name, value);
+          }
+        };
+      }();
+    var hasLocalStorageSupport = 'localStorage' in $window && $window.localStorage !== null;
+    if (hasLocalStorageSupport) {
+      var testKey = 'pascalprecht.translate.storageTest';
+      try {
+        $window.localStorage.setItem(testKey, 'foo');
+        $window.localStorage.removeItem(testKey);
+      } catch (e) {
+        hasLocalStorageSupport = false;
+      }
+    }
+    var $translateLocalStorage = hasLocalStorageSupport ? localStorageAdapter : $translateCookieStorage;
+    return $translateLocalStorage;
+  }
+]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/angular-translate-storage-local.min.js
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/angular-translate-storage-local.min.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/angular-translate-storage-local.min.js
new file mode 100644
index 0000000..9571ce0
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/angular-translate-storage-local.min.js
@@ -0,0 +1,6 @@
+/*!
+ * angular-translate - v2.2.0 - 2014-06-03
+ * http://github.com/PascalPrecht/angular-translate
+ * Copyright (c) 2014 ; Licensed MIT
+ */
+angular.module("pascalprecht.translate").factory("$translateLocalStorage",["$window","$translateCookieStorage",function(a,b){var c=function(){var b;return{get:function(c){return b||(b=a.localStorage.getItem(c)),b},set:function(c,d){b=d,a.localStorage.setItem(c,d)}}}(),d="localStorage"in a&&null!==a.localStorage;if(d){var e="pascalprecht.translate.storageTest";try{a.localStorage.setItem(e,"foo"),a.localStorage.removeItem(e)}catch(f){d=!1}}var g=d?c:b;return g}]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/bower.json
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/bower.json b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/bower.json
new file mode 100644
index 0000000..3e89c60
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/bower.json
@@ -0,0 +1,9 @@
+{
+  "name": "angular-translate-storage-local",
+  "version": "2.2.0",
+  "main": "./angular-translate-storage-local.js",
+  "dependencies": {
+    "angular-translate": "~2.2.0",
+    "angular-translate-storage-cookie": "~2.2.0"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate/.bower.json
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate/.bower.json b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate/.bower.json
new file mode 100644
index 0000000..16a3c0a
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate/.bower.json
@@ -0,0 +1,16 @@
+{
+  "name": "angular-translate",
+  "version": "2.2.0",
+  "main": "./angular-translate.js",
+  "homepage": "https://github.com/PascalPrecht/bower-angular-translate",
+  "_release": "2.2.0",
+  "_resolution": {
+    "type": "version",
+    "tag": "2.2.0",
+    "commit": "21e6f3f41d53a53b627f3947b8e17dfb2ba26a74"
+  },
+  "_source": "git://github.com/PascalPrecht/bower-angular-translate.git",
+  "_target": "~2.2.0",
+  "_originalSource": "angular-translate",
+  "_direct": true
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate/README.md
----------------------------------------------------------------------
diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate/README.md b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate/README.md
new file mode 100644
index 0000000..65dc3ae
--- /dev/null
+++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/libs/angular-translate/README.md
@@ -0,0 +1,9 @@
+# bower-angular-translate
+
+angular-translate bower package
+
+### Installation
+
+````
+$ bower install angular-translate
+````