Merge "Remove createZoneInfo() method"
diff --git a/icu4c/source/data/misc/metaZones.txt b/icu4c/source/data/misc/metaZones.txt
index 9e5ea1d..c080c2e 100644
--- a/icu4c/source/data/misc/metaZones.txt
+++ b/icu4c/source/data/misc/metaZones.txt
@@ -896,6 +896,11 @@
             {
                 "Africa_Eastern",
                 "2000-01-15 10:00",
+                "2021-01-31 21:00",
+            }
+            {
+                "Africa_Central",
+                "2021-01-31 21:00",
                 "9999-12-31 23:59",
             }
         }
diff --git a/icu4c/source/data/misc/windowsZones.txt b/icu4c/source/data/misc/windowsZones.txt
index 4fe43fd..1d87eaa 100644
--- a/icu4c/source/data/misc/windowsZones.txt
+++ b/icu4c/source/data/misc/windowsZones.txt
@@ -213,7 +213,6 @@
             KM{"Indian/Comoro"}
             MG{"Indian/Antananarivo"}
             SO{"Africa/Mogadishu"}
-            SS{"Africa/Juba"}
             TZ{"Africa/Dar_es_Salaam"}
             UG{"Africa/Kampala"}
             YT{"Indian/Mayotte"}
@@ -610,6 +609,7 @@
             MW{"Africa/Blantyre"}
             MZ{"Africa/Maputo"}
             RW{"Africa/Kigali"}
+            SS{"Africa/Juba"}
             SZ{"Africa/Mbabane"}
             ZA{"Africa/Johannesburg"}
             ZM{"Africa/Lusaka"}
diff --git a/icu4c/source/data/misc/zoneinfo64.txt b/icu4c/source/data/misc/zoneinfo64.txt
index ac9bb09..e8a4f85 100644
--- a/icu4c/source/data/misc/zoneinfo64.txt
+++ b/icu4c/source/data/misc/zoneinfo64.txt
@@ -3,9 +3,9 @@
 // License & terms of use: http://www.unicode.org/copyright.html
 //---------------------------------------------------------
 // Build tool:  tz2icu
-// Build date:  Thu Jan 21 17:59:57 2021
+// Build date:  Thu Jan 28 11:58:31 2021
 // tz database: ftp://ftp.iana.org/tz/
-// tz version:  2020f
+// tz version:  2021a
 // ICU version: 68.2
 //---------------------------------------------------------
 // >> !!! >>   THIS IS A MACHINE-GENERATED FILE   << !!! <<
@@ -13,7 +13,7 @@
 //---------------------------------------------------------
 
 zoneinfo64:table(nofallback) {
- TZVersion { "2020f" }
+ TZVersion { "2021a" }
  Zones:array { 
   /* ACT */ :int { 356 } //Z#0
   /* AET */ :int { 368 } //Z#1
@@ -95,9 +95,9 @@
     links:intvector { 30, 44, 45 }
   } //Z#30
   /* Africa/Juba */ :table {
-    trans:intvector { -1230775588, 10360800, 24786000, 41810400, 56322000, 73432800, 87944400, 104882400, 119480400, 136332000, 151016400, 167781600, 182552400, 199231200, 214174800, 230680800, 245710800, 262735200, 277246800, 294184800, 308782800, 325634400, 340405200, 357084000, 371941200, 388533600, 403477200, 419983200, 435013200, 452037600, 466635600, 483487200, 498171600, 947930400 }
+    trans:intvector { -1230775588, 10360800, 24786000, 41810400, 56322000, 73432800, 87944400, 104882400, 119480400, 136332000, 151016400, 167781600, 182552400, 199231200, 214174800, 230680800, 245710800, 262735200, 277246800, 294184800, 308782800, 325634400, 340405200, 357084000, 371941200, 388533600, 403477200, 419983200, 435013200, 452037600, 466635600, 483487200, 498171600, 947930400, 1612126800 }
     typeOffsets:intvector { 7588, 0, 7200, 0, 7200, 3600, 10800, 0 }
-    typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020103" }
+    typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010301" }
   } //Z#31
   /* Africa/Kampala */ :int { 48 } //Z#32
   /* Africa/Khartoum */ :table {
diff --git a/icu4c/source/stubdata/icudt68l.dat b/icu4c/source/stubdata/icudt68l.dat
index 34f0022..bd204bb 100644
--- a/icu4c/source/stubdata/icudt68l.dat
+++ b/icu4c/source/stubdata/icudt68l.dat
Binary files differ
diff --git a/icu4c/source/test/Android.bp b/icu4c/source/test/Android.bp
index 11d0655..35fd0a9 100644
--- a/icu4c/source/test/Android.bp
+++ b/icu4c/source/test/Android.bp
@@ -42,6 +42,16 @@
         "libicuctest",
         "libicutoolutil",
     ],
+    target: {
+        android: {
+            cflags: [
+                // Required to link libicuuc_cts_stub
+                "-DANDROID_LINK_SHARED_ICU4C",
+                // Do not set the data directory explicitly on Android because libicuuc has set it.
+                "-DANDROID_USE_ICU_REG",
+            ],
+        },
+    },
 }
 
 genrule {
diff --git a/icu4c/source/test/cintltst/Android.bp b/icu4c/source/test/cintltst/Android.bp
index 1e65d4b..629d99a 100644
--- a/icu4c/source/test/cintltst/Android.bp
+++ b/icu4c/source/test/cintltst/Android.bp
@@ -22,9 +22,6 @@
         "**/*.cpp",
     ],
     cflags: [
-        "-DANDROID_LINK_SHARED_ICU4C",
-        // Do not set the data directory explicitly.
-        "-DANDROID_USE_ICU_REG",
         // Disable some file IO tests to workaround test crashing due to missing data files.
         "-DUCONFIG_NO_FILE_IO",
         "-DZERO_EXIT_CODE_FOR_FAILURES",
diff --git a/icu4c/source/test/fuzzer/Android.bp b/icu4c/source/test/fuzzer/Android.bp
new file mode 100644
index 0000000..c11404c
--- /dev/null
+++ b/icu4c/source/test/fuzzer/Android.bp
@@ -0,0 +1,133 @@
+// Copyright (C) 2021 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package {
+    default_visibility: [
+        "//external/icu:__subpackages__",
+    ],
+}
+
+cc_defaults {
+    name: "libicu_fuzzer_defaults",
+    defaults: ["icu_test_defaults"],
+    srcs: [
+        "locale_util.cpp",
+    ],
+    fuzz_config: {
+        componentid: 24949, // Bugs are filed to the "Core library" component
+        hotlists: ["930429"], // The hotlist applied on the bug
+        fuzz_on_haiku_device: true,
+        // Email addresses of users who should be CC'd on bugs.
+        cc: [
+            "vichang@google.com",
+            "g2.corp.android-icu-maintainers@google.com",
+        ],
+        // acknowledged in the Android Security Bulletin for any CVEs found by this fuzz target.
+        acknowledgement: [
+            "Victor Chang of Google",
+            "ICU Contributors of Google",
+        ],
+    },
+}
+
+cc_fuzz {
+    name: "libicu_break_iterator_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["break_iterator_fuzzer.cpp"],
+}
+
+cc_fuzz {
+    name: "libicu_collator_compare_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["collator_compare_fuzzer.cpp"],
+}
+
+cc_fuzz {
+    name: "libicu_collator_rulebased_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["collator_rulebased_fuzzer.cpp"],
+    corpus: ["collator_rulebased_fuzzer_seed_corpus.txt"],
+}
+
+cc_fuzz {
+    name: "libicu_converter_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["converter_fuzzer.cpp"],
+}
+
+cc_fuzz {
+    name: "libicu_locale_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["locale_fuzzer.cpp"],
+}
+
+cc_fuzz {
+    name: "libicu_number_format_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["number_format_fuzzer.cpp"],
+}
+
+cc_fuzz {
+    name: "libicu_ucasemap_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["ucasemap_fuzzer.cpp"],
+}
+
+cc_fuzz {
+    name: "libicu_uloc_canonicalize_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["uloc_canonicalize_fuzzer.cpp"],
+    corpus: ["uloc_canonicalize_fuzzer_seed_corpus.txt"],
+}
+
+cc_fuzz {
+    name: "libicu_uloc_for_language_tag_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["uloc_for_language_tag_fuzzer.cpp"],
+    corpus: ["uloc_for_language_tag_fuzzer_seed_corpus.txt"],
+}
+
+cc_fuzz {
+    name: "libicu_uloc_get_name_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["uloc_get_name_fuzzer.cpp"],
+    corpus: ["uloc_get_name_fuzzer_seed_corpus.txt"],
+}
+
+cc_fuzz {
+    name: "libicu_uloc_is_right_to_left_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["uloc_is_right_to_left_fuzzer.cpp"],
+    corpus: ["uloc_is_right_to_left_fuzzer_seed_corpus.txt"],
+}
+
+cc_fuzz {
+    name: "libicu_uloc_open_keywords_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["uloc_open_keywords_fuzzer.cpp"],
+    corpus: ["uloc_open_keywords_fuzzer_seed_corpus.txt"],
+}
+
+cc_fuzz {
+    name: "libicu_unicode_string_codepage_create_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["unicode_string_codepage_create_fuzzer.cpp"],
+}
+
+cc_fuzz {
+    name: "libicu_uregex_open_fuzzer",
+    defaults: ["libicu_fuzzer_defaults"],
+    srcs: ["uregex_open_fuzzer.cpp"],
+    dictionary: "uregex_open_fuzzer.dict",
+}
diff --git a/icu4c/source/test/intltest/Android.bp b/icu4c/source/test/intltest/Android.bp
index 8b812f8..3bdd6a4 100644
--- a/icu4c/source/test/intltest/Android.bp
+++ b/icu4c/source/test/intltest/Android.bp
@@ -18,9 +18,6 @@
     // Workaround to run primary abi only in CTS
     stem: "icu.intltest",
     cflags: [
-        "-DANDROID_LINK_SHARED_ICU4C",
-        // Do not set the data directory explicitly.
-        "-DANDROID_USE_ICU_REG",
         // Needed for char* shift calculation in the test.
         "-Wno-string-plus-int",
         "-DZERO_EXIT_CODE_FOR_FAILURES",
diff --git a/icu4j/main/shared/data/icutzdata.jar b/icu4j/main/shared/data/icutzdata.jar
index 63536fa..419d068 100644
--- a/icu4j/main/shared/data/icutzdata.jar
+++ b/icu4j/main/shared/data/icutzdata.jar
Binary files differ