diff --git a/java/release_notes.txt b/java/release_notes.txt
index a5e0ff57d..37931d36c 100644
--- a/java/release_notes.txt
+++ b/java/release_notes.txt
@@ -1,3 +1,18 @@
+Feb 9th, 2011
+* Code changes:
+ - Better isNumberMatch method. This will now recognise numbers starting with a national prefix as
+ an NSN_MATCH, instead of SHORT_NSN_MATCH.
+ == Note Non-backwards-compatible API change here! ==
+ This will no longer throw a NumberParseException - instead we will return NOT_A_NUMBER if one
+ or other of the numbers provided do not match.
+ - New number-type UAN now supported in the code. This represents Company Numbers or Universally
+ Accessible Numbers.
+* Metadata changes:
+ - Bug-fixes and updates for the following countries: AG, AZ, BA, BE, CA, CU, ES, FI, GB, GD, GG,
+ IE, IL, IM, IN, IR, IT, JE, JP, KR, KW, NG, NZ, PK, PS, PT, RU, SE, SG, SY, US
+ - New countries: CO, LU, LY, MC, SM
+ - Addition of "Personal Number" ranges to all NANPA countries
+
Jan 31st, 2011
* Code changes:
- Introducing equals() and hashCode() methods for the Phonenumber.PhoneNumber class
diff --git a/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java b/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java
index 5c2ef7a4e..87a8d0544 100644
--- a/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java
+++ b/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java
@@ -138,7 +138,7 @@ public class BuildMetadataFromXml {
nationalPrefix = element.getAttribute("nationalPrefix");
metadata.setNationalPrefix(nationalPrefix);
nationalPrefixFormattingRule =
- validateRE(getNationalPrefixFormattingRuleFromElement(element, nationalPrefix));
+ getNationalPrefixFormattingRuleFromElement(element, nationalPrefix);
if (!metadata.hasNationalPrefixForParsing()) {
metadata.setNationalPrefixForParsing(nationalPrefix);
@@ -159,8 +159,8 @@ public class BuildMetadataFromXml {
Element numberFormatElement = (Element) numberFormatElements.item(i);
NumberFormat format = new NumberFormat();
if (numberFormatElement.hasAttribute("nationalPrefixFormattingRule")) {
- format.setNationalPrefixFormattingRule(validateRE(
- getNationalPrefixFormattingRuleFromElement(numberFormatElement, nationalPrefix)));
+ format.setNationalPrefixFormattingRule(
+ getNationalPrefixFormattingRuleFromElement(numberFormatElement, nationalPrefix));
} else {
format.setNationalPrefixFormattingRule(nationalPrefixFormattingRule);
}
@@ -180,7 +180,7 @@ public class BuildMetadataFromXml {
throw new RuntimeException("Invalid number of format patterns for country: " +
regionCode);
}
- format.setFormat(validateRE(formatPattern.item(0).getFirstChild().getNodeValue()));
+ format.setFormat(formatPattern.item(0).getFirstChild().getNodeValue());
metadata.addNumberFormat(format);
}
}
@@ -224,6 +224,9 @@ public class BuildMetadataFromXml {
metadata.setPersonalNumber(processPhoneNumberDescElement(generalDesc, element,
"personalNumber"));
metadata.setPager(processPhoneNumberDescElement(generalDesc, element, "pager"));
+ metadata.setUan(processPhoneNumberDescElement(generalDesc, element, "uan"));
+ metadata.setNoInternationalDialling(processPhoneNumberDescElement(generalDesc, element,
+ "noInternationalDialling"));
if (metadata.getMobile().getNationalNumberPattern().equals(
metadata.getFixedLine().getNationalNumberPattern())) {
diff --git a/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto b/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto
index 7968feb2b..42f0a994d 100644
--- a/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto
+++ b/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto
@@ -118,6 +118,10 @@ message PhoneMetadata {
required PhoneNumberDesc personal_number = 7;
required PhoneNumberDesc voip = 8;
required PhoneNumberDesc pager = 21;
+ required PhoneNumberDesc uan = 25;
+ // The rules here distinguish the numbers that are only able to be dialled
+ // nationally.
+ required PhoneNumberDesc no_international_dialling = 24;
// The ISO 3166-1 alpha-2 representation of a country/region
required string id = 9;
diff --git a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml b/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml
index fb011b205..a32c7dd2f 100644
--- a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml
+++ b/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml
@@ -236,10 +236,12 @@
\d{7,10}
+
268(?:
4(?:
- 6[0-3]|
+ 6[0-38]|
84
)|
56[0-2]
@@ -248,20 +250,27 @@
2684601234
+
268(?:
464|
7(?:
2[0-9]|
64|
- 7[0-5]|
- 8[358]
+ 7[0-689]|
+ 8[02-68]
)
)\d{4}
\d{10}
2684641234
+
+ 26840[69]\d{4}
+ \d{10}
+ 2684061234
+
8(?:
@@ -280,6 +289,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
26848[01]\d{4}
@@ -342,6 +363,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -919,6 +952,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -1250,30 +1295,42 @@
-
-
+
+
-
-
- 1[28]|
- 22|
- [3-8]
-
- $1 $2 $3
+
+ 1[28]
+ $1 $2 $3 $4
+
+
+ 22
+ $1 $2 $3 $4
+
+
+ 3
+ $1 $2 $3 $4
-
+
1[013-79]|
2[013-9]
- $1 $2
+ $1 $2 $3 $4
+
+
+ [4-8]
+ $1 $2 $3 $4
[1-8]\d{7,8}
- \d{8,9}
+ \d{5,9}
+
(?:
1(?:
@@ -1286,7 +1343,7 @@
3[358]|
4[013-79]|
5[0-479]|
- 6[0236-9]|
+ 6[02346-9]|
7[0-24-8]
)|
2(?:
@@ -1337,12 +1394,10 @@
\d{6,8}
-
(?:
[35]\d|
- 49|
- 81
+ 49
)\d{6}
30123456
@@ -1369,6 +1424,11 @@
\d{8}
82123456
+
+ 81\d{6}
+ \d{8}
+ 81123456
+
@@ -1416,6 +1476,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -1666,7 +1738,7 @@
)\d{6}|
8(?:
0[1-9]|
- [1-79]\d
+ [1-69]\d
)\d{5}
\d{8}
@@ -1698,6 +1770,11 @@
\d{8}
90123456
+
+ 87\d{6}
+ \d{8}
+ 87123456
+
@@ -2118,6 +2195,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -2360,6 +2449,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -2645,42 +2746,37 @@
50|
89
)|
- 306|
+ 3(?:
+ 06|
+ 43
+ )|
4(?:
03|
- 16|
- 18|
+ 1[68]|
38|
- 50|
- 56
+ 5[06]
)|
5(?:
- 00|
- 06|
- 14|
- 19|
- 81|
- 87
+ 0[06]|
+ 1[49]|
+ 79|
+ 8[17]
)|
6(?:
- 00|
- 04|
+ 0[04]|
13|
47
)|
7(?:
- 00|
- 05|
- 09|
- 10|
- 78|
- 80
+ 0[059]|
+ [18]0|
+ 78
)|
8(?:
- 07|
+ [06]7|
19|
- 67
- )
+ )|
+ 90[25]
)[2-9]\d{6}|
310\d{4}
@@ -2695,46 +2791,37 @@
50|
89
)|
- 306|
+ 3(?:
+ 06|
+ 43
+ )|
4(?:
03|
- 16|
- 18|
+ 1[68]|
38|
- 50|
- 56
+ 5[06]
)|
5(?:
- 00|
- 06|
- 14|
- 19|
- 81|
- 87
+ 0[06]|
+ 1[49]|
+ 79|
+ 8[17]
)|
6(?:
- 00|
- 04|
+ 0[04]|
13|
47
)|
7(?:
- 00|
- 05|
- 09|
- 10|
- 78|
- 80
+ 0[059]|
+ [18]0|
+ 78
)|
8(?:
- 07|
+ [06]7|
19|
- 67
)|
- 9(?:
- 02|
- 05
- )
+ 90[25]
)[2-9]\d{6}
2042345678
@@ -2757,6 +2844,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -2976,7 +3075,7 @@
-
+
+
+
+
+
+ 1(?:
+ 8[2-9]|
+ 9[0-3]|
+ [2-7]
+ )|
+ [24-8]
+
+
+ 1(?:
+ 8[2-9]|
+ 9(?:
+ 09|
+ [1-3]
+ )|
+ [2-7]
+ )|
+ [24-8]
+
+ ($1) $2
+
+
+
+ 1(?:
+ 8[2-9]|
+ 9[0-3]|
+ [2-7]
+ )|
+ [24-8]
+
+
+ 1(?:
+ 8[2-9]|
+ 9(?:
+ 09|
+ [1-3]
+ )|
+ [2-7]
+ )|
+ [24-8]
+
+ $1 $2
+
+
+ 3
+ $1 $2
+
+
+ 3
+ $1 $2
+
+
+
+ 1(?:
+ 80|
+ 9[04]
+ )
+
+
+ 1(?:
+ 800|
+ 9(?:
+ 0[01]|
+ 4[78]
+ )
+ )
+
+ $1-$2-$3
+
+
+
+ 1(?:
+ 80|
+ 9[04]
+ )
+
+
+ 1(?:
+ 800|
+ 9(?:
+ 0[01]|
+ 4[78]
+ )
+ )
+
+ $1 $2 $3
+
+
+
+
+ (?:
+ [13]\d{0,3}|
+ [24-8]
+ )\d{7}
+
+ \d{7,11}
+
+
+ [124-8][2-9]\d{6}
+ \d{8}
+ 12345678
+
+
+
+ 3(?:
+ 0[0-24]|
+ 1[0-8]|
+ 2[01]
+ )\d{7}
+
+ \d{10}
+ 3211234567
+
+
+ 1800\d{7}
+ \d{11}
+ 18001234567
+
+
+
+ 19(?:
+ 0[01]|
+ 4[78]
+ )\d{7}
+
+ \d{11}
+ 19001234567
+
@@ -3612,16 +3843,15 @@
- (?:
- 2[1-4]\d{5,6}|
- 3(?:
- 1\d{6}|
- [23]\d{4,6})|
- 4(?:
- [125]\d{5,6}|
- [36]\d{6}|
- [78]\d{4,6})|
- 7\d{6,7})
+ 2[1-4]\d{5,6}|
+ 3(?:
+ 1\d{6}|
+ [23]\d{4,6})|
+ 4(?:
+ [125]\d{5,6}|
+ [36]\d{6}|
+ [78]\d{4,6})|
+ 7\d{6,7}
71234567
@@ -4166,6 +4396,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -4206,6 +4448,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -4639,16 +4893,15 @@
90[12]\d{6}
901123456
-
-
- (?:
- 51|
- 70
- )\d{7}
-
+ 70\d{7}
701234567
+
+
+ 51\d{7}
+ 511234567
+
@@ -4855,35 +5108,19 @@
\d{5,12}
-
+
1(?:
- 0[1-9]\d{3,7}|
[35689][1-8]\d{3,9}|
[47]\d{5,10}
)|
- 2(?:
- 0(?:
- [16-8]\d{3,7}|
- 2[14-9]\d{1,6}|
- [3-5]\d{2,7}|
- 9[0-7]\d{1,6}
- )|
- [1-8]\d{3,9}|
- 9\d{4,8}
- )|
+ 2[1-8]\d{3,9}|
3(?:
- 0[1-9]\d{3,7}|
[1-8]\d{3,9}|
9\d{4,8}
)|
[5689][1-8]\d{3,9}|
- 7(?:
- 1\d{7}|
- 3\d{8}|
- 5[03-9]\d{2,7}
- )
1312345678
@@ -4905,6 +5142,28 @@
\d{8,9}
600123456
+
+
+ 10[1-9]\d{3,7}|
+ 2(?:
+ 0(?:
+ [16-8]\d{3,7}|
+ 2[14-9]\d{1,6}|
+ [3-5]\d{2,7}|
+ 9[0-7]\d{1,6}
+ )|
+ 9\d{4,8}
+ )|
+ 30[1-9]\d{3,7}|
+ 7(?:
+ 1\d{7}|
+ 3\d{8}|
+ 5[03-9]\d{2,7}
+ )
+
+ \d{6,10}
+ 10112345
+
@@ -5159,7 +5418,7 @@
@@ -5322,15 +5581,14 @@
+ All patterns exclude ranges used in GG, IM, JE. -->
2(?:
0[01378]|
@@ -5350,7 +5608,7 @@
21[0-7]|
31[0-8]|
[459]1\d|
- 61[01246-9]
+ 61[0-46-9]
)
)\d{6}|
1(?:
@@ -5562,11 +5820,7 @@
)
)\d{3}|
176888[234678]\d{2}|
- 16977[23]\d{3}|
- (?:
- 3[0347]|
- 55
- )\d{8}
+ 16977[23]\d{3}
1212345678
@@ -5679,6 +5933,7 @@
5612345678
+
(?:
3[0347]|
@@ -5688,6 +5943,56 @@
\d{10}
5512345678
+
+
+
+ 1(?:
+ 0[01]|
+ 1(?:
+ [12]|
+ [68]\d{3}
+ )|
+ 2[123]|
+ 33|
+ 4(?:
+ 1|
+ 7\d
+ )|
+ 5\d|
+ 70\d|
+ 800\d|
+ 9[15]
+ )|
+ 2(?:
+ 02|
+ 2(?:
+ 02|
+ 11|
+ 2
+ )|
+ 3(?:
+ 02|
+ 45
+ )
+ 425
+ )|
+ 3[13]3|
+ 4(?:
+ 0[02]|
+ 35[01]|
+ 44[45]|
+ 5\d
+ )|
+ 650|
+ 789|
+ 9(?:
+ 01|
+ 99
+ )
+
+ \d{3,6}
+ 150
+
@@ -5711,11 +6016,10 @@
86
)|
4(?:
- 08|
+ [06]8|
3[5-9]|
4[0-49]|
5[5-79]|
- 68|
73|
90
)|
@@ -5762,6 +6066,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -5860,9 +6176,14 @@
- [15789]\d{6,9}
+ [135789]\d{6,9}
\d{6,10}
+
+ 1481[2-9]\d{5}
+ \d{10}
+ 1481250123
+
@@ -5948,6 +6269,24 @@
\d{10}
5612345678
+
+
+ (?:
+ 3[0347]|
+ 55
+ )\d{8}
+
+ \d{10}
+ 5512345678
+
+
+
+ 1\d{2}(?:\d{3})?|
+ 999
+
+ \d{3,6}
+ 150
+
@@ -6502,6 +6841,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -7110,8 +7461,7 @@
may have 7 digit subscriber numbers, although limited to 5 in the plan. This was caused
by a numbering update in 2008 (http://www.wtng.info/wtng-353-ie.html has more details).
Other changes not in the plan include consolidating 0502, 0506 and 0509 into 057 and
- 054, 055 and 053 into 053, and making 044 be followed by 7 digits in some cases. We
- also include Universal Access numbers here in the fixed-line list.
+ 054, 055 and 053 into 053, and making 044 be followed by 7 digits in some cases.
Another peculiarity is that 048 actually replaces 00 44 28 when Irish people dial,
allowing them to easily dial Northern Ireland. We support these numbers here, although
technically they are numbers for the UK. -->
@@ -7144,7 +7494,6 @@
[56]\d{7}
)|
7[14]\d{7}|
- 818\d{6}|
9(?:
1\d{6}|
[04]\d{7}|
@@ -7196,6 +7545,11 @@
\d{9}
761234567
+
+ 818\d{6}
+ \d{9}
+ 818123456
+
@@ -7234,11 +7588,29 @@
121
$1-$2-$3
+
+
+ [2-689]
+ *$1
+
- [1-57-9]\d{6,9}
- \d{7,10}
+
+ [17]\d{6,9}|
+ [2-589]\d{3}(?:\d{3,6})?|
+ 6\d{3}
+
+ \d{4,10}
+
+
+ 1700\d{6}|
+ [2-689]\d{3}
+
+ \d{4,10}
+ 1700123456
+
(?:
@@ -7297,6 +7669,17 @@
\d{9}
771234567
+
+
+ [2-689]\d{3}
+ \d{4}
+ 2250
+
+
+ 1\d{3}
+ \d{4}
+ 1455
+
@@ -7305,9 +7688,14 @@
- [15789]\d{6,9}
+ [135789]\d{6,9}
\d{6,10}
+
+ 1624[2-9]\d{5}
+ \d{10}
+ 1624250123
+
@@ -7320,53 +7708,38 @@
\d{10}
7924123456
-
-
- 7624\d{6}
- \d{10}
- 7624123456
-
-
-
- 80(?:
- 0(?:
- 1111|
- \d{6,7}
- )|
- 8\d{7}
- )|
- 500\d{6}
-
- \d{7}(?:\d{2,3})?
- 8001234567
+
+ 808162\d{4}
+ \d{10}
+ 8081624567
+
(?:
- 87[123]|
- 9(?:
- [01]\d|
- 8[0-3]
- )
- )\d{7}
+ 872299|
+ 90[0167]624
+ )\d{4}
\d{10}
- 9012345678
+ 9016247890
+
8(?:
4(?:
- 5464\d|
- [2-5]\d{7}
+ 40[49]06|
+ 5624\d
)|
- 70\d{7}
- )
+ 70624\d
+ )\d{3}
- \d{7}(?:\d{3})?
- 8431234567
+ \d{10}
+ 8456247890
+
70\d{8}
\d{10}
@@ -7377,6 +7750,24 @@
\d{10}
5612345678
+
+
+ (?:
+ 3[0347]|
+ 55
+ )\d{8}
+
+ \d{10}
+ 5512345678
+
+
+
+ 1\d{2}(?:\d{3})?|
+ 999
+
+ \d{3,6}
+ 150
+
@@ -7585,9 +7976,9 @@
$1 $2 $3
- 180
- 1800
+ pattern="(18[06]0)(\d{2,3})(\d{4})">
+ 18[06]
+ 18[06]0
$1 $2 $3
@@ -7854,6 +8245,12 @@
9001234567
-->
+
+
+ 1860345\d{4}
+ \d{11}
+ 18603451234
+
@@ -7911,6 +8308,7 @@
+
21
$1 $2 $3
@@ -7924,53 +8322,149 @@
- [1-9]\d{9}
- \d{7,10}
-
-
- [1-8]\d{9}
- 2123456789
-
-
-
- 9(?:
- 1\d|
- 3[1-8]
- )\d{7}
-
- \d{10}
- 9123456789
-
-
-
-
-
-
-
-
-
- [4-9]
- $1 $2
-
-
- 3
- $1 $2 $3
-
-
-
-
- [4-9]\d{6}|
- 38\d{7}
-
- \d{7,9}
+ [2-6]\d{4,9}|[1789]\d{9}
+ \d{5,10}
-
+
+ 2(?:
+ 1[2-9]\d{2,7}|
+ 51\d{3,7}
+ )|
(?:
- 4(?:
- 1[0-245]|
- 2[0-7]|
+ 241|
+ 3(?:
+ 11|
+ 5[23]
+ )|
+ 441|
+ 5[14]1
+ )\d{4,7}|
+ (?:
+ 3(?:
+ 34|
+ 41
+ )|
+ 6(?:
+ 11|
+ 52
+ )|
+ )\d{6,7}|
+ (?:
+ 1(?:
+ [134589][12]|
+ [27][1-4]
+ )|
+ 2(?:
+ 2[189]|
+ [3689][12]|
+ 42|
+ 5[256]|
+ 7[34]
+ )|
+ 3(?:
+ 12|
+ 2[1-4]|
+ 3[125]|
+ 4[24-9]|
+ 51|
+ [6-9][12]
+ )|
+ 4(?:
+ [135-9][12]|
+ 2[1-467]|
+ 4[2-4]
+ )|
+ 5(?:
+ 12|
+ 2[89]|
+ 3[1-5]|
+ 4[2-8]|
+ [5-7][12]|
+ 8[1245]
+ )|
+ 6(?:
+ 12|
+ [347-9][12]|
+ 51|
+ 6[1-6]
+ )|
+ 7(?:
+ [13589][12]|
+ 2[1289]|
+ 4[1-4]|
+ 6[1-6]|
+ 7[1-3]
+ )|
+ 8(?:
+ [145][12]|
+ 3[124578]|
+ 6[1256]|
+ 7[1245]
+ )
+ )\d{7}
+
+ 2123456789
+
+
+
+ 9(?:
+ 1\d|
+ 3[124-8]
+ )\d{7}
+
+ \d{10}
+ 9123456789
+
+
+ 943[24678]\d{6}
+ \d{10}
+ 9432123456
+
+
+
+
+ 993[12]\d{6}
+ \d{10}
+ 9932123456
+
+
+
+ 9990\d{6}
+ \d{10}
+ 9990123456
+
+
+
+
+
+
+
+
+ [4-9]
+ $1 $2
+
+
+ 3
+ $1 $2 $3
+
+
+
+
+ [4-9]\d{6}|
+ 38\d{7}
+
+ \d{7,9}
+
+
+
+
+ (?:
+ 4(?:
+ 1[0-245]|
+ 2[0-7]|
[37][0-8]|
4[0245]|
5[0-356]|
@@ -8051,34 +8545,24 @@
0[26]
$1 $2 $3
-
+
0[26]
$1 $2
-
- 0(?:
- [13-57-9][0159]|
- 36
- )
-
+ 0[13-57-9][0159]
$1 $2 $3
-
-
- 0(?:
- [13-57-9][0159]|
- 36
- )
-
+
+ 0[13-57-9][0159]
$1 $2
- 0[13-57-9]
+ 0[13-57-9][2-46-8]
$1 $2 $3
- 0[13-57-9]
+ 0[13-57-9][2-46-8]
$1 $2
@@ -8106,8 +8590,16 @@
\d{6,11}
- 0\d{7,10}
- \d{8,11}
+
+ 0(?:
+ [26]\d{4,9}|
+ [13-57-9](?:
+ [0159]\d{4,8}|
+ [2-46-8]\d{5,8}
+ )
+ )
+
+ \d{6,11}
0212345678
@@ -8158,9 +8650,14 @@
- [15789]\d{6,9}
+ [135789]\d{6,9}
\d{6,10}
+
+ 1534[2-9]\d{5}
+ \d{10}
+ 1534250123
+
@@ -8269,6 +8766,47 @@
\d{10}
5612345678
+
+
+
+ (?:
+ 3[0347]|
+ 55
+ )\d{8}
+
+ \d{10}
+ 5512345678
+
+
+
+
+ 1(?:
+ 00|
+ 1(?:
+ 2|
+ 8\d{3}
+ )|
+ 23|
+ 4(?:
+ [14]|
+ 28|
+ 7\d
+ )|
+ 5\d|
+ 7(?:
+ 0[12]|
+ [128]|
+ 35?
+ )|
+ 808|
+ 9[135]
+ )|
+ 23[234]|
+ 999
+
+ \d{3,6}
+ 150
+
@@ -8348,6 +8886,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -9209,13 +9759,14 @@
(?:
1(?:
+ 1[236-8]|
2[3-6]|
3[3-9]|
4[2-6]|
[58][2-8]|
6[2-7]|
7[2-9]|
- 9[1-578]
+ 9[1-8]
)|
2[2-9]\d|
[36][1-9]\d|
@@ -9617,6 +10168,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -9803,24 +10366,7 @@
\d{4,10}
-
- 1(?:
- 5(?:
- 44|
- 66|
- 77|
- 88|
- 99
- )|
- 6(?:
- 00|
- 44|
- 6[16]|
- 70|
- 88
- )
- )\d{4}|
(?:
2|
[34][1-3]|
@@ -9860,14 +10406,36 @@
\d{10}
7012345678
+
+
+ 1(?:
+ 5(?:
+ 44|
+ 66|
+ 77|
+ 88|
+ 99
+ )|
+ 6(?:
+ 00|
+ 44|
+ 6[16]|
+ 70|
+ 88
+ )
+ )\d{4}
+
+ \d{8}
+ 15441234
+
+ nationalPrefixFormattingRule="$NP$FG">
-
+
[1269]
$1 $2
@@ -9897,21 +10465,37 @@
)
)\d{4}
- \d{7,8}
22345678
(?:
- 5[05]|
- 6[05-7]|
- 9[0479]
- )\d{6}
+ 5(?:
+ 0[02]|
+ 5\d
+ )|
+ 6(?:
+ 0[03679]|
+ 5[015-9]|
+ 6\d|
+ 7[067]
+ )|
+ 9(?:
+ 0[09]|
+ 4[049]|
+ [79]\d
+ )
+ )\d{5}
\d{8}
50012345
+
+ 1\d{2}
+ \d{3}
+ 177
+
@@ -9995,6 +10579,18 @@
\d{10}
9002345678
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -10330,6 +10926,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -10640,7 +11248,200 @@
-
+
+
+
+
+
+
+ [23-5]|
+ 7[1-9]|
+ [89](?:
+ [1-9]|
+ 0[2-9]
+ )
+
+ $1 $2
+
+
+
+ [23-5]|
+ 7[1-9]|
+ [89](?:
+ [1-9]|
+ 0[2-9]
+ )
+
+ $1 $2 $3
+
+
+ 20
+ $1 $2 $3
+
+
+
+
+ 2(?:
+ [0367]|
+ 4[3-8]
+ )
+
+ $1 $2 $3 $4
+
+
+ 20
+ $1 $2 $3 $4
+
+
+
+ 2(?:
+ [0367]|
+ 4[3-8]
+ )
+
+ $1 $2 $3 $4 $5
+
+
+
+ 2(?:
+ [12589]|
+ 4[12]
+ )|
+ [3-5]|
+ 7[1-9]|
+ [89](?:
+ [1-9]|
+ 0[2-9]
+ )
+
+ $1 $2 $3 $4
+
+
+
+ [89]0[01]|
+ 70
+
+ $1 $2 $3
+
+
+ 6
+ $1 $2 $3
+
+
+
+
+
+ [24-9]\d{3,10}|
+ 3(?:
+ [0-46-9]\d{2,9}|
+ 5[013-9]\d{1,8}
+ )
+
+ \d{4,11}
+
+
+
+
+ (?:
+ 2(?:
+ 2\d{1,2}|
+ 3[2-9]|
+ [67]\d|
+ 4[1-8]\d?|
+ 5[1-5]\d?|
+ 9[0-24-9]\d?
+ )|
+ 3(?:
+ [059][05-9]|
+ [13]\d|
+ [26][015-9]|
+ 4[0-26-9]|
+ 7[0-389]|
+ 8[08]
+ )\d?|
+ 4\d{2,3}|
+ 5(?:
+ [01458]\d|
+ [27][0-69]|
+ 3[0-3]|
+ [69][0-7]
+ )\d?|
+ 7(?:
+ 1[019]|
+ 2[05-9]|
+ 3[05]|
+ [45][07-9]|
+ [679][089]|
+ 8[06-9]
+ )\d?|
+ 8(?:
+ 0[2-9]|
+ 1[0-36-9]|
+ 3[3-9]|
+ [469]9|
+ [58][7-9]|
+ 7[89]
+ )\d?|
+ 9(?:
+ 0[89]|
+ 2[0-49]|
+ 37|
+ 49|
+ 5[0-27-9]|
+ 7[7-9]|
+ 9[0-478]
+ )\d?
+ )\d{1,7}
+
+ 27123456
+
+
+ 6[269][18]\d{6}
+ \d{9}
+ 628123456
+
+
+ 800\d{5}
+ \d{8}
+ 80012345
+
+
+ 90[01]\d{5}
+ \d{8}
+ 90012345
+
+
+ 801\d{5}
+ \d{8}
+ 80112345
+
+
+ 70\d{6}
+ \d{8}
+ 70123456
+
+
+ 20\d{2,8}
+ \d{4,10}
+ 2012345
+
+
+
+ 1(?:
+ 1[23]|
+ 2\d{3}
+ )
+
+ \d{3,5}
+ 12123
+
@@ -10674,8 +11475,39 @@
+
+
+ nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
+
+
+ $1-$2
+
+
+
+ [25679]\d{8}
+ \d{7,9}
+
+
+
+ (?:
+ 2[1345]|
+ 5[1347]|
+ 6[123479]|
+ 71
+ )\d{7}
+
+ 212345678
+
+
+ 9[12356]\d{7}
+ \d{9}
+ 912345678
+
@@ -10802,8 +11634,58 @@
+
+
+ nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
+
+
+
+ [89]
+ $1 $2 $3 $4
+
+
+ 4
+ $1 $2 $3
+
+
+ 6
+ $1 $2 $3 $4 $5
+
+
+
+ [4689]\d{7,8}
+ \d{8,9}
+
+
+ 8\d{7}
+ \d{8}
+
+
+
+ 9[2-47-9]\d{6}
+ \d{8}
+ 99123456
+
+
+
+
+ 6\d{8}|
+ 4\d{7}
+
+ 612345678
+
+
+
+ (?:
+ 8\d|
+ 90
+ )\d{6}
+
+ \d{8}
+ 90123456
+
@@ -11371,6 +12253,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -11476,6 +12370,18 @@
\d{10}
9002123456
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -12365,18 +13271,8 @@
- 70[03-9]|
- 8(?:
- 0|
- 1[23]
- )
-
- $1 $2 $3
-
-
-
- 702|
- 819
+ 70|
+ 8[01]
$1 $2 $3
@@ -12426,19 +13322,17 @@
12345678
-
+
(?:
- 70[3-9]|
+ 70(?:
+ [3-9]\d|
+ 2[1-9]
+ )|
8(?:
0[2-9]|
- 1[23]
- )
- )\d{7}|
- (?:
- 702[1-9]|
- 819[01]
+ 1[23689]
+ )\d
)\d{6}
\d{10}
@@ -12706,8 +13600,11 @@
-
+
+
@@ -12734,8 +13631,8 @@
-
- 2[019]
+
+ 2[0169]|86
$1 $2 $3
@@ -12747,60 +13644,61 @@
- [2-9]\d{7,9}
- \d{7,10}
+
+ 6[235-9]\d{6}|
+ [2-57-9]\d{7,10}
+
+ \d{7,11}
(?:
3[2-79]|
- [479][2-689]|
- 6[235-9]
+ [49][2-689]|
+ 6[235-9]|
+ 7[2-589]
)\d{6}|
24099\d{3}
\d{7,8}
32345678
-
+
2(?:
- [027]\d{7}|
- 9\d{6,7}|
+ [079]\d{7}|
1(?:
0\d{5,7}|
[12]\d{5,6}|
[3-9]\d{5}
)|
- 4[1-9]\d{6}|
- 8\d{7,8}
+ [28]\d{7,8}|
+ 4[1-9]\d{6}
)
\d{8,10}
211234567
-
+
+ [28]6\d{6,7}
+ \d{8,9}
+ 26123456
+
+
- (?:
- 800|
- 508
- )\d{6,7}
+ 508\d{6,7}|
+ 80\d{6,8}
-
- \d{9,10}
+ \d{8,10}
800123456
-
- 900\d{6,7}
- \d{9,10}
+ 90\d{7,9}
+ \d{9,11}
900123456
@@ -13189,15 +14087,13 @@
- (?:
- 2[349]|
- 45|
- 54|
- 60|
- 72|
- 8[2-5]|
- 9[2-9]
- )
+ 2[349]|
+ 45|
+ 54|
+ 60|
+ 72|
+ 8[2-5]|
+ 9[2-9]
(?:
@@ -13381,14 +14277,19 @@
\d{8}
90012345
-
+
+
+ 122\d{6}
+ \d{9}
+
+ 122044444
+
+
+ what type of number they are. We exclude Azad Jammu, Kashmir and Northern Areas here
+ since no online example UANs can be found, and they have an "access code" at the start,
+ making it difficult to guess what a UAN in these areas would look like. -->
(?:
2(?:
@@ -13432,14 +14333,7 @@
\d{11,12}
21111825888
-
-
-
- 122\d{6}
- \d{9}
-
- 122044444
-
+
@@ -13573,6 +14467,18 @@
\d{10}
9002345678
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -13602,12 +14508,10 @@
- (?:
- [24589]\d{7,9}|
- 1(?:
- [78]\d{8}|
- [49]\d{2,3}
- )
+ [24589]\d{7,8}|
+ 1(?:
+ [78]\d{8}|
+ [49]\d{2,3}
)
\d{4,10}
@@ -13615,7 +14519,7 @@
(?:
- 22[2379]|
+ 22[234789]|
42[45]|
82[01458]|
92[369]
@@ -13682,7 +14586,7 @@
9(?:
[136]\d{2}|
- 2[25-79]\d|
+ 2[124-79]\d|
4(?:
80|
9\d
@@ -14003,11 +14907,15 @@
9123456789
- 800\d{7}
+
+ 80[04]\d{7}
8001234567
- 809\d{7}
+
+ 80[39]\d{7}
8091234567
@@ -14260,8 +15168,12 @@
8
- $1 $2 $3 $4
+ $1-$2 $3 $4
+
+ 8
+ $1 $2 $3 $4
+
1[013689]|
@@ -14272,8 +15184,20 @@
6[03]|
90
- $1 $2 $3 $4
+ $1-$2 $3 $4
+
+
+ 1[013689]|
+ 2[0136]|
+ 3[1356]|
+ 4[0246]|
+ 54|
+ 6[03]|
+ 90
+
+ $1 $2 $3 $4
+
1[13689]|
@@ -14284,8 +15208,20 @@
6[03]|
90
- $1 $2 $3
+ $1-$2 $3
+
+
+ 1[13689]|
+ 2[136]|
+ 3[1356]|
+ 4[0246]|
+ 54|
+ 6[03]|
+ 90
+
+ $1 $2 $3
+
1[2457]|
@@ -14300,8 +15236,24 @@
4[0-3]
)
- $1 $2 $3 $4
+ $1-$2 $3 $4
+
+
+ 1[2457]|
+ 2[2457-9]|
+ 3[0247-9]|
+ 4[1357-9]|
+ 5[0-35-9]|
+ 6[124-9]|
+ 9(?:
+ [125-8]|
+ 3[0-5]|
+ 4[0-3]
+ )
+
+ $1 $2 $3 $4
+
1[2457]|
@@ -14316,20 +15268,48 @@
4[0-3]
)
- $1 $2 $3
+ $1-$2 $3
+
+
+ 1[2457]|
+ 2[2457-9]|
+ 3[0247-9]|
+ 4[1357-9]|
+ 5[0-35-9]|
+ 6[124-9]|
+ 9(?:
+ [125-8]|
+ 3[0-5]|
+ 4[0-3]
+ )
+
+ $1 $2 $3
+
7[02-467]
- $1 $2 $3 $4
+ $1-$2 $3 $4
+
+ 7[02-467]
+ $1 $2 $3 $4
+
20
- $1 $2 $3
+ $1-$2 $3
+
+ 20
+ $1 $2 $3
+
9[034]
- $1 $2 $3 $4
+ $1-$2 $3 $4
+
+ 9[034]
+ $1 $2 $3 $4
+
\d{7,10}
@@ -14487,12 +15467,8 @@
\d{8,11}
-
-
- 6[1-8]\d{6}|
- 7000\d{7}
-
- \d{8,11}
+ 6[1-8]\d{6}
+ \d{8}
61234567
@@ -14750,8 +15726,76 @@
+
+
+
+
+ nationalPrefixForParsing="(?:0549)?([89]\d{5})" nationalPrefixTransformRule="0549$1">
+
+
+ [5-7]
+ $1 $2 $3 $4
+
+
+ [5-7]
+ $1 $2 $3 $4
+
+
+
+ 0
+ $1 $2
+
+
+
+ 0
+ ($1) $2
+
+
+
+ [89]
+ 0549 $1
+
+
+ [89]
+ (0549) $1
+
+
+
+ [05-7]\d{7,9}
+ \d{6,10}
+
+
+
+
+ 0549(?:
+ 8[0157-9]|
+ 9\d
+ )\d{4}
+
+ 0549886377
+
+
+ 6[16]\d{6}
+ \d{8}
+ 66661212
+
+
+
+ 7[178]\d{6}
+ \d{8}
+ 71123456
+
+
+ 5[158]\d{6}
+ \d{8}
+ 58001110
+
@@ -14916,8 +15960,7 @@
(?:
1(?:
-
- 1\d? |
+ 1\d?|
4\d|
[2356]
)|
@@ -15082,6 +16125,18 @@
\d{10}
9002345678
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
64971[01]\d{4}
\d{10}
@@ -15550,6 +16605,18 @@
\d{10}
9002345678
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -15637,9 +16704,7 @@
(?:
6[158]|
7[1-9]
- )(?:
- \d{7}
- )
+ )\d{7}
\d{9}
612345678
@@ -15980,14 +17045,16 @@
2[3-5]|
3[0245]|
4[0235]|
+ 58|
69|
- 7[089]|
+ 7[0589]|
8[04]
)|
5(?:
0[1-57-9]|
1[0235-8]|
- [23]0|
+ 20|
+ 3[04]|
4[01]|
5[19]|
6[1-37]|
@@ -16030,7 +17097,7 @@
0[1346-9]|
1[02-9]|
2[058]|
- 3[167]|
+ 3[1678]|
4[0179]|
5[1246]|
7[0-3589]|
@@ -16070,14 +17137,16 @@
2[3-5]|
3[0245]|
4[0235]|
+ 58|
69|
- 7[089]|
+ 7[0589]|
8[04]
)|
5(?:
0[1-57-9]|
1[0235-8]|
- [23]0|
+ 20|
+ 3[04]|
4[01]|
5[19]|
6[1-37]|
@@ -16120,7 +17189,7 @@
0[1346-9]|
1[02-9]|
2[058]|
- 3[167]|
+ 3[1678]|
4[0179]|
5[1246]|
7[0-3589]|
@@ -16148,6 +17217,18 @@
\d{10}
9002345678
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -16293,6 +17374,18 @@
\d{10}
9002345678
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -16427,6 +17520,18 @@
\d{10}
9002345678
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
@@ -16476,6 +17581,18 @@
\d{10}
9002345678
+
+
+
+ 5(?:
+ 00|
+ 33|
+ 44
+ )[2-9]\d{6}
+
+ \d{10}
+ 5002345678
+
diff --git a/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml b/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml
index 6560b6896..c2b0dd84d 100644
--- a/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml
+++ b/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml
@@ -558,7 +558,10 @@
- [2-9]\d{7,9}
+
+ [289]\d{7,9}|
+ [3-7]\d{7}
+
\d{7,10}
@@ -702,8 +705,13 @@
\d{7,10}
1234567890
+
+
+ 800\d{7}
+ \d{10}
+
- 8(00|66|77|88)\d{7}
+ 8(?:00|66|77|88)\d{7}
\d{10}
diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
index be71063d3..9f0039203 100644
--- a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
+++ b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
@@ -47,9 +47,13 @@ import java.util.regex.Pattern;
* @author Lara Rennie
*/
public class PhoneNumberUtil {
+ /** Flags to use when compiling regular expressions for phone numbers. */
+ static final int REGEX_FLAGS = Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE;
// The minimum and maximum length of the national significant number.
private static final int MIN_LENGTH_FOR_NSN = 3;
- private static final int MAX_LENGTH_FOR_NSN = 15;
+ static final int MAX_LENGTH_FOR_NSN = 15;
+ // The maximum length of the country code.
+ static final int MAX_LENGTH_COUNTRY_CODE = 3;
static final String META_DATA_FILE_PREFIX =
"/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto";
static final String COUNTRY_CODE_TO_REGION_CODE_MAP_CLASS_NAME =
@@ -68,6 +72,8 @@ public class PhoneNumberUtil {
// load factor of roughly 0.75.
private final Set supportedCountries = new HashSet(300);
+ // Region-code for the unknown region.
+ private static final String UNKNOWN_REGION = "ZZ";
// The set of countries that share country code 1.
// There are roughly 26 countries of them and we set the initial capacity of the HashSet to 35
@@ -94,33 +100,43 @@ public class PhoneNumberUtil {
digitMap.put('0', '0');
digitMap.put('\uFF10', '0'); // Fullwidth digit 0
digitMap.put('\u0660', '0'); // Arabic-indic digit 0
+ digitMap.put('\u06F0', '0'); // Eastern-Arabic digit 0
digitMap.put('1', '1');
digitMap.put('\uFF11', '1'); // Fullwidth digit 1
digitMap.put('\u0661', '1'); // Arabic-indic digit 1
+ digitMap.put('\u06F1', '1'); // Eastern-Arabic digit 1
digitMap.put('2', '2');
digitMap.put('\uFF12', '2'); // Fullwidth digit 2
digitMap.put('\u0662', '2'); // Arabic-indic digit 2
+ digitMap.put('\u06F2', '2'); // Eastern-Arabic digit 2
digitMap.put('3', '3');
digitMap.put('\uFF13', '3'); // Fullwidth digit 3
digitMap.put('\u0663', '3'); // Arabic-indic digit 3
+ digitMap.put('\u06F3', '3'); // Eastern-Arabic digit 3
digitMap.put('4', '4');
digitMap.put('\uFF14', '4'); // Fullwidth digit 4
digitMap.put('\u0664', '4'); // Arabic-indic digit 4
+ digitMap.put('\u06F4', '4'); // Eastern-Arabic digit 4
digitMap.put('5', '5');
digitMap.put('\uFF15', '5'); // Fullwidth digit 5
digitMap.put('\u0665', '5'); // Arabic-indic digit 5
+ digitMap.put('\u06F5', '5'); // Eastern-Arabic digit 5
digitMap.put('6', '6');
digitMap.put('\uFF16', '6'); // Fullwidth digit 6
digitMap.put('\u0666', '6'); // Arabic-indic digit 6
+ digitMap.put('\u06F6', '6'); // Eastern-Arabic digit 6
digitMap.put('7', '7');
digitMap.put('\uFF17', '7'); // Fullwidth digit 7
digitMap.put('\u0667', '7'); // Arabic-indic digit 7
+ digitMap.put('\u06F7', '7'); // Eastern-Arabic digit 7
digitMap.put('8', '8');
digitMap.put('\uFF18', '8'); // Fullwidth digit 8
digitMap.put('\u0668', '8'); // Arabic-indic digit 8
+ digitMap.put('\u06F8', '8'); // Eastern-Arabic digit 8
digitMap.put('9', '9');
digitMap.put('\uFF19', '9'); // Fullwidth digit 9
digitMap.put('\u0669', '9'); // Arabic-indic digit 9
+ digitMap.put('\u06F9', '9'); // Eastern-Arabic digit 9
DIGIT_MAPPINGS = Collections.unmodifiableMap(digitMap);
HashMap alphaMap = new HashMap(40);
@@ -171,6 +187,7 @@ public class PhoneNumberUtil {
aSet.add(241); // Gabon
aSet.add(242); // Congo (Rep. of the)
aSet.add(268); // Swaziland
+ aSet.add(378); // San Marino
aSet.add(379); // Vatican City
aSet.add(501); // Belize
LEADING_ZERO_COUNTRIES = Collections.unmodifiableSet(aSet);
@@ -190,17 +207,17 @@ public class PhoneNumberUtil {
// This consists of dash characters, white space characters, full stops, slashes,
// square brackets, parentheses and tildes. It also includes the letter 'x' as that is found as a
// placeholder for carrier information in some phone numbers.
- private static final String VALID_PUNCTUATION = "-x\u2010-\u2015\u2212\u30FC\uFF0D-\uFF0F " +
+ static final String VALID_PUNCTUATION = "-x\u2010-\u2015\u2212\u30FC\uFF0D-\uFF0F " +
"\u00A0\u200B\u2060\u3000()\uFF08\uFF09\uFF3B\uFF3D.\\[\\]/~\u2053\u223C\uFF5E";
- // Digits accepted in phone numbers
+ // Digits accepted in phone numbers that we understand.
private static final String VALID_DIGITS =
- Arrays.toString(DIGIT_MAPPINGS.keySet().toArray()).replaceAll(", ", "");
+ Arrays.toString(DIGIT_MAPPINGS.keySet().toArray()).replaceAll("[, \\[\\]]", "");
// We accept alpha characters in phone numbers, ASCII only, upper and lower case.
private static final String VALID_ALPHA =
- Arrays.toString(ALPHA_MAPPINGS.keySet().toArray()).replaceAll(", ", "") +
- Arrays.toString(ALPHA_MAPPINGS.keySet().toArray()).toLowerCase().replaceAll(", ", "");
- private static final String PLUS_CHARS = "+\uFF0B";
+ Arrays.toString(ALPHA_MAPPINGS.keySet().toArray()).replaceAll("[, \\[\\]]", "") +
+ Arrays.toString(ALPHA_MAPPINGS.keySet().toArray()).toLowerCase().replaceAll("[, \\[\\]]", "");
+ static final String PLUS_CHARS = "+\uFF0B";
private static final Pattern PLUS_CHARS_PATTERN = Pattern.compile("[" + PLUS_CHARS + "]+");
private static final Pattern CAPTURING_DIGIT_PATTERN =
Pattern.compile("([" + VALID_DIGITS + "])");
@@ -220,7 +237,7 @@ public class PhoneNumberUtil {
// actually two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second
// extension so that the first number is parsed correctly.
private static final String SECOND_NUMBER_START = "[\\\\/] *x";
- private static final Pattern SECOND_NUMBER_START_PATTERN = Pattern.compile(SECOND_NUMBER_START);
+ static final Pattern SECOND_NUMBER_START_PATTERN = Pattern.compile(SECOND_NUMBER_START);
// Regular expression of trailing characters that we want to remove. We remove all characters that
// are not alpha or numerical characters. The hash character is retained here, as it may signify
@@ -240,9 +257,10 @@ public class PhoneNumberUtil {
// the start.
// Corresponds to the following:
// plus_sign*([punctuation]*[digits]){3,}([punctuation]|[digits]|[alpha])*
+ // Note VALID_PUNCTUATION starts with a -, so must be the first in the range.
private static final String VALID_PHONE_NUMBER =
"[" + PLUS_CHARS + "]*(?:[" + VALID_PUNCTUATION + "]*[" + VALID_DIGITS + "]){3,}[" +
- VALID_ALPHA + VALID_PUNCTUATION + VALID_DIGITS + "]*";
+ VALID_PUNCTUATION + VALID_ALPHA + VALID_DIGITS + "]*";
// Default extension prefix to use when formatting. This will be put in front of any extension
// component of the number, after the main national number is formatted. For example, if you wish
@@ -261,7 +279,7 @@ public class PhoneNumberUtil {
// Canonical-equivalence doesn't seem to be an option with Android java, so we allow two options
// for representing the accented o - the character itself, and one in the unicode decomposed form
// with the combining acute accent.
- private static final String KNOWN_EXTN_PATTERNS = "[ \u00A0\\t,]*" +
+ static final String KNOWN_EXTN_PATTERNS = "[ \u00A0\\t,]*" +
"(?:ext(?:ensi(?:o\u0301?|\u00F3))?n?|" +
"\uFF45\uFF58\uFF54\uFF4E?|[,x\uFF58#\uFF03~\uFF5E]|int|anexo|\uFF49\uFF4E\uFF54)" +
"[:\\.\uFF0E]?[ \u00A0\\t,-]*([" + VALID_DIGITS + "]{1,7})#?|[- ]+([" + VALID_DIGITS +
@@ -270,14 +288,12 @@ public class PhoneNumberUtil {
// Regexp of all known extension prefixes used by different countries followed by 1 or more valid
// digits, for use when parsing.
private static final Pattern EXTN_PATTERN =
- Pattern.compile("(?:" + KNOWN_EXTN_PATTERNS + ")$",
- Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
+ Pattern.compile("(?:" + KNOWN_EXTN_PATTERNS + ")$", REGEX_FLAGS);
// We append optionally the extension pattern to the end here, as a valid phone number may
// have an extension prefix appended, followed by 1 or more digits.
private static final Pattern VALID_PHONE_NUMBER_PATTERN =
- Pattern.compile(VALID_PHONE_NUMBER + "(?:" + KNOWN_EXTN_PATTERNS + ")?",
- Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
+ Pattern.compile(VALID_PHONE_NUMBER + "(?:" + KNOWN_EXTN_PATTERNS + ")?", REGEX_FLAGS);
private static final Pattern NON_DIGITS_PATTERN = Pattern.compile("(\\D+)");
private static final Pattern FIRST_GROUP_PATTERN = Pattern.compile("(\\$1)");
@@ -334,6 +350,9 @@ public class PhoneNumberUtil {
// http://en.wikipedia.org/wiki/Personal_Numbers
PERSONAL_NUMBER,
PAGER,
+ // Used for "Universal Access Numbers" or "Company Numbers". They may be further routed to
+ // specific offices, but allow one number to be used for a company.
+ UAN,
// A phone number is of type UNKNOWN when it does not fit any of the known patterns for a
// specific country.
UNKNOWN
@@ -343,6 +362,7 @@ public class PhoneNumberUtil {
* Types of phone number matches. See detailed description beside the isNumberMatch() method.
*/
public enum MatchType {
+ NOT_A_NUMBER,
NO_MATCH,
SHORT_NSN_MATCH,
NSN_MATCH,
@@ -1120,6 +1140,8 @@ public class PhoneNumberUtil {
return metadata.getPersonalNumber();
case PAGER:
return metadata.getPager();
+ case UAN:
+ return metadata.getUan();
default:
return metadata.getGeneralDesc();
}
@@ -1165,6 +1187,9 @@ public class PhoneNumberUtil {
if (isNumberMatchingDesc(nationalNumber, metadata.getPager())) {
return PhoneNumberType.PAGER;
}
+ if (isNumberMatchingDesc(nationalNumber, metadata.getUan())) {
+ return PhoneNumberType.UAN;
+ }
boolean isFixedLine = isNumberMatchingDesc(nationalNumber, metadata.getFixedLine());
if (isFixedLine) {
@@ -1294,7 +1319,7 @@ public class PhoneNumberUtil {
*/
public String getRegionCodeForCountryCode(int countryCode) {
List regionCodes = countryCodeToRegionCodeMap.get(countryCode);
- return regionCodes == null ? "ZZ" : regionCodes.get(0);
+ return regionCodes == null ? UNKNOWN_REGION : regionCodes.get(0);
}
/**
@@ -1509,7 +1534,7 @@ public class PhoneNumberUtil {
int extractCountryCode(StringBuffer fullNumber, StringBuffer nationalNumber) {
int potentialCountryCode;
int numberLength = fullNumber.length();
- for (int i = 1; i <= 3 && i <= numberLength; i++) {
+ for (int i = 1; i <= MAX_LENGTH_COUNTRY_CODE && i <= numberLength; i++) {
potentialCountryCode = Integer.parseInt(fullNumber.substring(0, i));
if (countryCodeToRegionCodeMap.containsKey(potentialCountryCode)) {
nationalNumber.append(fullNumber.substring(i));
@@ -2025,18 +2050,35 @@ public class PhoneNumberUtil {
* specified with + at the start.
* @param secondNumber second number to compare. Can contain formatting, and can have country
* code specified with + at the start.
- * @return NO_MATCH, SHORT_NSN_MATCH, NSN_MATCH, EXACT_MATCH. See isNumberMatch(PhoneNumber
- * firstNumber, PhoneNumber secondNumber) for more details.
- * @throws NumberParseException if either number is not considered to be a viable phone
- * number
+ * @return NOT_A_NUMBER, NO_MATCH, SHORT_NSN_MATCH, NSN_MATCH, EXACT_MATCH. See
+ * isNumberMatch(PhoneNumber firstNumber, PhoneNumber secondNumber) for more details.
*/
- public MatchType isNumberMatch(String firstNumber, String secondNumber)
- throws NumberParseException {
- PhoneNumber number1 = new PhoneNumber();
- parseHelper(firstNumber, null, false, false, number1);
- PhoneNumber number2 = new PhoneNumber();
- parseHelper(secondNumber, null, false, false, number2);
- return isNumberMatch(number1, number2);
+ public MatchType isNumberMatch(String firstNumber, String secondNumber) {
+ try {
+ PhoneNumber firstNumberAsProto = parse(firstNumber, UNKNOWN_REGION);
+ return isNumberMatch(firstNumberAsProto, secondNumber);
+ } catch (NumberParseException e) {
+ if (e.getErrorType() == NumberParseException.ErrorType.INVALID_COUNTRY_CODE) {
+ try {
+ PhoneNumber secondNumberAsProto = parse(secondNumber, UNKNOWN_REGION);
+ return isNumberMatch(secondNumberAsProto, firstNumber);
+ } catch (NumberParseException e2) {
+ if (e2.getErrorType() == NumberParseException.ErrorType.INVALID_COUNTRY_CODE) {
+ try {
+ PhoneNumber firstNumberProto = new PhoneNumber();
+ PhoneNumber secondNumberProto = new PhoneNumber();
+ parseHelper(firstNumber, null, false, false, firstNumberProto);
+ parseHelper(secondNumber, null, false, false, secondNumberProto);
+ return isNumberMatch(firstNumberProto, secondNumberProto);
+ } catch (NumberParseException e3) {
+ // Fall through and return MatchType.NOT_A_NUMBER.
+ }
+ }
+ }
+ }
+ }
+ // One or more of the phone numbers we are trying to match is not a viable phone number.
+ return MatchType.NOT_A_NUMBER;
}
/**
@@ -2046,15 +2088,61 @@ public class PhoneNumberUtil {
* @param firstNumber first number to compare in proto buffer format.
* @param secondNumber second number to compare. Can contain formatting, and can have country
* code specified with + at the start.
- * @return NO_MATCH, SHORT_NSN_MATCH, NSN_MATCH, EXACT_MATCH. See isNumberMatch(PhoneNumber
- * firstNumber, PhoneNumber secondNumber) for more details.
- * @throws NumberParseException if the second number is not considered to be a viable phone
- * number
+ * @return NOT_A_NUMBER, NO_MATCH, SHORT_NSN_MATCH, NSN_MATCH, EXACT_MATCH. See
+ * isNumberMatch(PhoneNumber firstNumber, PhoneNumber secondNumber) for more details.
*/
- public MatchType isNumberMatch(PhoneNumber firstNumber, String secondNumber)
- throws NumberParseException {
- PhoneNumber number2 = new PhoneNumber();
- parseHelper(secondNumber, null, false, false, number2);
- return isNumberMatch(firstNumber, number2);
+ public MatchType isNumberMatch(PhoneNumber firstNumber, String secondNumber) {
+ // First see if the second number has an implicit country code, by attempting to parse it.
+ try {
+ PhoneNumber secondNumberAsProto = parse(secondNumber, UNKNOWN_REGION);
+ return isNumberMatch(firstNumber, secondNumberAsProto);
+ } catch (NumberParseException e) {
+ if (e.getErrorType() == NumberParseException.ErrorType.INVALID_COUNTRY_CODE) {
+ // The second number has no country code. EXACT_MATCH is no longer possible.
+ // We parse it as if the region was the same as that for the first number, and if
+ // EXACT_MATCH is returned, we replace this with NSN_MATCH.
+ String firstNumberRegion = getRegionCodeForCountryCode(firstNumber.getCountryCode());
+ try {
+ if (!firstNumberRegion.equals(UNKNOWN_REGION)) {
+ PhoneNumber secondNumberWithFirstNumberRegion = parse(secondNumber, firstNumberRegion);
+ MatchType match = isNumberMatch(firstNumber, secondNumberWithFirstNumberRegion);
+ if (match == MatchType.EXACT_MATCH) {
+ return MatchType.NSN_MATCH;
+ }
+ return match;
+ } else {
+ // If the first number didn't have a valid country code, then we parse the second number
+ // without one as well.
+ PhoneNumber secondNumberProto = new PhoneNumber();
+ parseHelper(secondNumber, null, false, false, secondNumberProto);
+ return isNumberMatch(firstNumber, secondNumberProto);
+ }
+ } catch (NumberParseException e2) {
+ // Fall-through to return NOT_A_NUMBER.
+ }
+ }
+ }
+ // One or more of the phone numbers we are trying to match is not a viable phone number.
+ return MatchType.NOT_A_NUMBER;
+ }
+
+ /**
+ * Returns true if the number can only be dialled from within the country. If unknown, or the
+ * number can be dialled from outside the country as well, returns false. Does not check the
+ * number is a valid number.
+ * TODO: Make this method public when we have enough metadata to make it worthwhile. Currently
+ * visible for testing purposes only.
+ *
+ * @param number the phone-number for which we want to know whether it is only diallable from
+ * within the country
+ */
+ boolean canBeInternationallyDialled(PhoneNumber number) {
+ String regionCode = getRegionCodeForNumber(number);
+ String nationalSignificantNumber = getNationalSignificantNumber(number);
+ if (!isValidRegionCode(regionCode)) {
+ return true;
+ }
+ PhoneMetadata metadata = getMetadataForRegion(regionCode);
+ return !isNumberMatchingDesc(nationalSignificantNumber, metadata.getNoInternationalDialling());
}
}
diff --git a/java/src/com/google/i18n/phonenumbers/Phonemetadata.java b/java/src/com/google/i18n/phonenumbers/Phonemetadata.java
index 0c1aea0b9..98dd52fa2 100644
--- a/java/src/com/google/i18n/phonenumbers/Phonemetadata.java
+++ b/java/src/com/google/i18n/phonenumbers/Phonemetadata.java
@@ -374,6 +374,34 @@ public final class Phonemetadata {
return this;
}
+ // required PhoneNumberDesc uan = 25;
+ private boolean hasUan;
+ private PhoneNumberDesc uan_ = null;
+ public boolean hasUan() { return hasUan; }
+ public PhoneNumberDesc getUan() { return uan_; }
+ public PhoneMetadata setUan(PhoneNumberDesc value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ hasUan = true;
+ uan_ = value;
+ return this;
+ }
+
+ // required PhoneNumberDesc noInternationalDialling = 24;
+ private boolean hasNoInternationalDialling;
+ private PhoneNumberDesc noInternationalDialling_ = null;
+ public boolean hasNoInternationalDialling() { return hasNoInternationalDialling; }
+ public PhoneNumberDesc getNoInternationalDialling() { return noInternationalDialling_; }
+ public PhoneMetadata setNoInternationalDialling(PhoneNumberDesc value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ hasNoInternationalDialling = true;
+ noInternationalDialling_ = value;
+ return this;
+ }
+
// required string id = 9;
private boolean hasId;
private String id_ = "";
@@ -568,6 +596,14 @@ public final class Phonemetadata {
if (hasPager) {
pager_.writeExternal(objectOutput);
}
+ objectOutput.writeBoolean(hasUan);
+ if (hasUan) {
+ uan_.writeExternal(objectOutput);
+ }
+ objectOutput.writeBoolean(hasNoInternationalDialling);
+ if (hasNoInternationalDialling) {
+ noInternationalDialling_.writeExternal(objectOutput);
+ }
objectOutput.writeUTF(id_);
objectOutput.writeInt(countryCode_);
@@ -675,6 +711,18 @@ public final class Phonemetadata {
desc.readExternal(objectInput);
setPager(desc);
}
+ hasDesc = objectInput.readBoolean();
+ if (hasDesc) {
+ PhoneNumberDesc desc = new PhoneNumberDesc();
+ desc.readExternal(objectInput);
+ setUan(desc);
+ }
+ hasDesc = objectInput.readBoolean();
+ if (hasDesc) {
+ PhoneNumberDesc desc = new PhoneNumberDesc();
+ desc.readExternal(objectInput);
+ setNoInternationalDialling(desc);
+ }
setId(objectInput.readUTF());
setCountryCode(objectInput.readInt());
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD
index 616dae9d9..62b3b29d8 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE
index 597d55b46..cce75403e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF
index d5c398595..69223401e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG
index 6fc667fb7..f0b7c4fa7 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI
index f4bd58190..403d69383 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL
index 9ace69a20..560b6777b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM
index aa722df63..e1488b3cf 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN
index f32485cb7..73a83e860 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO
index 83acb24e8..304cb0a2c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR
index 7c154101d..44a3b68a0 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS
index 90d3150f3..8728b2840 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT
index 54e77bc09..f2b645c83 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU
index b00eedd3e..0fa61dd62 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW
index 8eae2ed39..1c7842e7b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ
index f1d442e8b..ca83c980b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA
index 8517a8116..3c9e26887 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB
index 30e6907c6..0b60e5724 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD
index a7d04c2b2..872fc63a9 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE
index 925aa03bb..b0074bfeb 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
index 99e001ae9..1fc75cc6d 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG
index c99fbe105..ed3913d0f 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH
index abef81672..a7b67c4b2 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI
index db71deb94..40ecfcbb1 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ
index 3ed5c445d..1fb831867 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL
index 276bbbc90..de4b8047c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM
index cc07f4213..f51c6f7e9 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN
index 2b56da632..0fe3d3804 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO
index 577f50510..191b55c7a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR
index 741d8b733..7fc1610f8 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
index 29dec477d..e72eaac50 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT
index c5abdd1de..c04cc474e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW
index 24f51e879..752f8527d 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY
index 0ef9b4d15..91b82072b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ
index f5a494afa..ec98a819b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA
index 42a6b4ff3..08a19c188 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD
index b248f9c0f..029f0e9fe 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF
index 7ad9c1f28..440ee17f2 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG
index 94f8cca09..dfc82a1db 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH
index b9ec90d25..b9781b3c9 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI
index 728b344a9..c647c3dfb 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK
index a02cd7a10..2ce83c280 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL
index a5068d89b..e6bb05edf 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM
index 48d920932..414c1ddc0 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
index f0e924bb1..aeb822422 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO
index ec43e3adf..84926a14e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
index 5cb60ae70..1b3a91c7a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU
index ab458a33c..58728b954 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV
index 348260b5a..40f68197a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY
index d59197b3c..6e910fa53 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ
index 9fd84fc03..8e4bc858f 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE
index 5cec8ce32..657ff376a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ
index 8df1bce1e..195b880b1 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK
index 294013b8e..84b40d6e4 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM
index 046e184da..2f468341e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO
index 05ef91320..0100b938c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ
index 809e4a281..9551e58d1 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC
index 1e125fc96..507802083 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE
index 893337044..45242fefe 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG
index dc2b77238..1b383cb18 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER
index 5dee5f6a8..72073963e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES
index 85d0e22b7..81c67e256 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET
index 45587dffe..6c1a58853 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI
index f544b38f4..925e74014 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ
index 9756031dc..dfc643275 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK
index b10ad6585..9630d47db 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM
index 13fbbace8..f3f36997b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO
index 6f8ab3a08..f75752f4b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR
index af320de4f..2b16deaae 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA
index 21886c628..f923cae53 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB
index c6853dec2..9f4e327b9 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD
index eed33a81c..f2e6c56f6 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE
index 13f26f3fc..fd894c53f 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF
index b904357fd..e82b26cf0 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG
index 869208202..ae3cec7c8 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH
index 59857cf8c..82ff8e468 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI
index 89fad3eba..63a685fa4 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL
index a0934bc50..f8dc2b009 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM
index fc19acc0f..27ce34fb1 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN
index 919cd8df3..dde6c5365 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP
index e9302aacb..f6108ee18 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ
index 455e8aefc..c3bd13e57 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR
index 7797c75a2..ed28df8d6 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT
index 82c4d1dec..b91516c18 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU
index c7ebf8fe1..237d37afd 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW
index a5c64f69a..a755f3641 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY
index d11ba6d10..10f48a72c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK
index aa8066c8e..01b773d70 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN
index c884ba692..502c311e1 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR
index 3a0bbe87f..3089e8b99 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT
index aac7351d3..11abb56fb 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU
index 14dcc1cb3..90009c012 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID
index 704fffee9..0c2803e31 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE
index bcaef598f..706aeddd5 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL
index 7657febc2..d39b391d8 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM
index fb263ec64..7285d1ec2 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
index 1d3d7d6d9..60dd9da21 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO
index a8da3f4dc..f15346f96 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ
index 18d3ab2e0..ab713bbe8 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR
index 2fbfb2d33..35827c066 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS
index ac155c1eb..233e357f3 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT
index b3334c6ff..8c81e18d9 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE
index 43b10d14b..8b31f895b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM
index ff1a1794b..77c4efc80 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO
index 8d6edadf9..6c8e26589 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP
index 1a8acdbec..230c63b70 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
index ab8e98770..bfd69a4b5 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG
index a20e18d5e..06d1f7d88 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
index 2d186fef6..0ddca187c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI
index 8370801e6..377f39bb9 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM
index 2d6fe4fc5..a2d3de609 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN
index eb4ad7749..863b3eb33 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP
index 74310f17e..eccdf9e39 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR
index 978e7d9e8..641ce7fce 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
index 5cc81d800..3d5cd85f9 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY
index 4be45c47e..754551b7c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ
index 4c457f38d..b0b73df41 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA
index 4d0bedba0..e0c1ec1ca 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB
index 8ec8d9dfa..ab97154f0 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC
index d253f1380..296fe4179 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI
index 03207a103..37693c566 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK
index aa92d0ec1..4092102ba 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR
index 762883c88..c5cfee68a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS
index aaafe00ec..ca9890046 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT
index 47f22282d..43b750c50 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU
index 2b9e4a8db..e3b025ff1 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV
index 929329803..631d6f20c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY
index f0433fd99..6fb9f25d6 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
index 673f6bb67..bf6969880 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC
index 66f0d7651..61e560f22 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD
index 9b7ff42c8..edc5d0f85 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME
index 80be441b5..056305b55 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF
index 5138d374f..29c214b0b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG
index 7b38ca3ac..b0c8bf218 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH
index b8d3d45d2..131f1980e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK
index 9bf3754f7..9b94a61ce 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML
index 73cc6dca7..d1efd0f24 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
index f0be7e4c4..8c3505974 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN
index d3c52c6cf..0d76175c1 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO
index f0fbe002d..a72a4bcc2 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP
index f8789a57a..312659b09 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ
index c13fbbf43..6a495d763 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR
index ce173e479..fd21ea71e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS
index f966f9b5b..c1ad3b365 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT
index 8e06f3f6a..9dcbbbf65 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU
index f6ae6ee19..782c700fd 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV
index 77a73cc87..49e9b28b0 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW
index aeb833490..4529ee137 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX
index c09bbf4b8..c857d1de5 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY
index 9ba15d72b..47e64ecc6 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ
index 3320fb12b..6ae79b9f5 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA
index 1e44cb9a0..046be1550 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC
index b5e235afc..a6ce4d01c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE
index 9654c4d5c..05e12c30e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF
index 544eef3f7..e4ef5e8fe 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
index ddb825f7f..09939ff5d 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI
index 42181d37e..5eb33fe7c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL
index e85597f2b..79c874169 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO
index 7f32771dc..de77f88cd 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP
index fc42a3fe0..74caa0401 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR
index 1ed47df6f..72e46b38a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU
index 099065c19..d33aa7a2f 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ
index 71b1d941d..20dc762bb 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM
index 9f31d3f83..aa0e794f3 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA
index 7a7f1b4c4..c8c2c769d 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE
index 472ee3049..45de89dbf 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF
index 921e217ec..30924a4ef 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
index 05e8556b2..067b4997c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH
index 39910ad4c..5810c2979 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
index ac191776d..a7a82f770 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL
index 1adeefd02..2d51c348d 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM
index f108d308c..e645cd2b0 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR
index 0995296e7..335b318e8 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS
index 16b2bedaa..21b99860f 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT
index 3903c9c07..bb7270f9c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW
index f0fbeb9cd..d65d876a5 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY
index 546d53133..07354365f 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA
index 3415b66f3..4717ebd1f 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE
index 3f9a186bc..fa0ccb45d 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO
index 6f1621583..595878ed5 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS
index 6b0d501fa..cc359b110 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU
index 1c713a3f8..9589b8474 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW
index 9b9f1d65c..63319ceb1 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA
index df752f213..ec5abcc4f 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB
index fa3af2f7d..464b8ec69 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC
index 79ee4c0d8..d8528060a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD
index 8d70a39a2..34968f0ad 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE
index a857f7ea9..fb42a83c2 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG
index 5c92a3726..9071c3f4b 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH
index df0fa3469..96e6c73e7 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI
index e592b21bc..927774b1e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK
index 862ba163e..b755b5caf 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL
index ee6c80fab..c3fd293ff 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM
index 60532b715..ea97ce14e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN
index 48518c5ae..535afa354 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO
index f23197bb2..334be741e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR
index 1acc4d5bb..b563d07d2 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST
index 4cf121b04..29b7d3644 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV
index 1530fe382..0a299cfa5 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY
index aa5f2627e..9c547de49 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ
index a9184cae3..663f11ae8 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC
index 572176b97..8034cbd92 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD
index e37f5ee96..cfde8b739 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF
index b434ff298..d18541def 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG
index 473a79cf2..d6b965453 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH
index 2148ca086..e7f2c336a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ
index f938797e9..5a3fd6f8a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK
index bc3a14c3f..653d60651 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL
index 60b6a85e0..8b4378c53 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM
index fef8dc06c..c3c8de1c7 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN
index fa651eb3c..b9ffbfd44 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO
index 5de891540..4497b3f42 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR
index beb21682e..595e26cd3 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT
index 046ff6e28..bdbaf96cd 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV
index bc611bf4e..8cf631d51 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW
index e87da4772..63963cf51 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ
index b1afda8e9..0f99acbf5 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA
index 9fe9153ae..a5d280640 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG
index cddbc4a9a..4eb5563f8 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US
index 9408e0509..25b36680c 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY
index 0160ccfed..2a198e603 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ
index 2349b7d23..2a307b35d 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA
index 7da0693af..a0be427a7 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC
index f2567b037..ab0438382 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE
index 41e1cf692..3cc77d15a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG
index 78de3169a..e7d7db703 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI
index deb4d554b..88428e8ca 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN
index 79206df59..a46320719 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU
index d2499c021..a79ddef17 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF
index 47b706eda..423e86d3f 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS
index b4150e816..52fd0e7db 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE
index 0858848ca..e4e2e7874 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT
index 824eb7730..5d3b0f98a 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA
index 54877d9f2..19896c6c1 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM
index addba8da8..99c815290 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW
index 0c3990e6c..13aa7286e 100644
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW differ
diff --git a/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java b/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java
index bfc21329e..1d83fa79b 100644
--- a/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java
+++ b/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java
@@ -17,6 +17,7 @@
package com.google.i18n.phonenumbers;
import com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberType;
+import com.google.i18n.phonenumbers.Phonemetadata.PhoneNumberDesc;
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
import junit.framework.TestCase;
@@ -127,8 +128,15 @@ public class ExampleNumbersTest extends TestCase {
}
public void testPager() throws Exception {
- Set voipTypes = EnumSet.of(PhoneNumberType.PAGER);
- checkNumbersValidAndCorrectType(PhoneNumberType.PAGER, voipTypes);
+ Set pagerTypes = EnumSet.of(PhoneNumberType.PAGER);
+ checkNumbersValidAndCorrectType(PhoneNumberType.PAGER, pagerTypes);
+ assertEquals(0, invalidCases.size());
+ assertEquals(0, wrongTypeCases.size());
+ }
+
+ public void testUan() throws Exception {
+ Set uanTypes = EnumSet.of(PhoneNumberType.UAN);
+ checkNumbersValidAndCorrectType(PhoneNumberType.UAN, uanTypes);
assertEquals(0, invalidCases.size());
assertEquals(0, wrongTypeCases.size());
}
@@ -139,4 +147,23 @@ public class ExampleNumbersTest extends TestCase {
assertEquals(0, invalidCases.size());
assertEquals(0, wrongTypeCases.size());
}
+
+ public void testCanBeInternationallyDialled() throws Exception {
+ for (String regionCode : phoneNumberUtil.getSupportedCountries()) {
+ PhoneNumber exampleNumber = null;
+ PhoneNumberDesc desc =
+ phoneNumberUtil.getMetadataForRegion(regionCode).getNoInternationalDialling();
+ try {
+ if (desc.hasExampleNumber()) {
+ exampleNumber = phoneNumberUtil.parse(desc.getExampleNumber(), regionCode);
+ }
+ } catch (NumberParseException e) {
+ LOGGER.log(Level.SEVERE, e.toString());
+ }
+ if (exampleNumber != null && phoneNumberUtil.canBeInternationallyDialled(exampleNumber)) {
+ wrongTypeCases.add(exampleNumber);
+ }
+ }
+ assertEquals(0, wrongTypeCases.size());
+ }
}
diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
index 2e0f7314c..ffd6017b6 100644
--- a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
+++ b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
@@ -256,6 +256,12 @@ public class PhoneNumberUtilTest extends TestCase {
assertEquals("Conversion did not correctly replace non-latin digits",
expectedOutput,
PhoneNumberUtil.normalize(inputNumber));
+ // Eastern-Arabic digits.
+ inputNumber = "\u06F52\u06F0";
+ expectedOutput = "520";
+ assertEquals("Conversion did not correctly replace non-latin digits",
+ expectedOutput,
+ PhoneNumberUtil.normalize(inputNumber));
}
public void testNormaliseStripAlphaCharacters() {
@@ -442,8 +448,6 @@ public class PhoneNumberUtilTest extends TestCase {
phoneUtil.formatOutOfCountryCallingNumber(arNumber, "AU"));
assertEquals("011 15 8765-4321 ext. 1234",
phoneUtil.formatOutOfCountryCallingNumber(arNumber, "AR"));
- assertEquals("011 15 8765-4321 ext. 1234",
- phoneUtil.formatOutOfCountryCallingNumber(arNumber, "ar"));
}
public void testFormatOutOfCountryWithPreferredIntlPrefix() {
@@ -1740,6 +1744,17 @@ public class PhoneNumberUtilTest extends TestCase {
// NSN matches, but extension is different - not the same number.
assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
phoneUtil.isNumberMatch("+64 3 331-6005 ext.1235", "3 331 6005#1234"));
+
+ // Invalid numbers that can't be parsed.
+ assertEquals(PhoneNumberUtil.MatchType.NOT_A_NUMBER,
+ phoneUtil.isNumberMatch("43", "3 331 6043"));
+ // Invalid numbers that can't be parsed.
+ assertEquals(PhoneNumberUtil.MatchType.NOT_A_NUMBER,
+ phoneUtil.isNumberMatch("+43", "+64 3 331 6005"));
+ assertEquals(PhoneNumberUtil.MatchType.NOT_A_NUMBER,
+ phoneUtil.isNumberMatch("+43", "64 3 331 6005"));
+ assertEquals(PhoneNumberUtil.MatchType.NOT_A_NUMBER,
+ phoneUtil.isNumberMatch("Dog", "64 3 331 6005"));
}
public void testIsNumberMatchNsnMatches() throws Exception {
@@ -1752,10 +1767,35 @@ public class PhoneNumberUtilTest extends TestCase {
nzNumber.setCountryCode(64).setNationalNumber(33316005L).setExtension("");
assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
phoneUtil.isNumberMatch(nzNumber, "03 331 6005"));
+ // Here the second number possibly starts with the country code for New Zealand, although we are
+ // unsure.
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
+ phoneUtil.isNumberMatch(nzNumber, "(64-3) 331 6005"));
PhoneNumber unchangedNzNumber = new PhoneNumber();
unchangedNzNumber.setCountryCode(64).setNationalNumber(33316005L).setExtension("");
// Check the phone number proto was not edited during the method call.
assertEquals(unchangedNzNumber, nzNumber);
+
+ // Here, the 1 might be a national prefix, if we compare it to the US number, so the resultant
+ // match is an NSN match.
+ PhoneNumber usNumber = new PhoneNumber();
+ usNumber.setCountryCode(1).setNationalNumber(2345678901L).setExtension("");
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
+ phoneUtil.isNumberMatch(usNumber, "1-234-567-8901"));
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
+ phoneUtil.isNumberMatch(usNumber, "2345678901"));
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
+ phoneUtil.isNumberMatch("+1 234-567 8901", "1 234 567 8901"));
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
+ phoneUtil.isNumberMatch("1 234-567 8901", "1 234 567 8901"));
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
+ phoneUtil.isNumberMatch("1 234-567 8901", "+1 234 567 8901"));
+ // For this case, the match will be a short NSN match, because we cannot assume that the 1 might
+ // be a national prefix, so don't remove it when parsing.
+ PhoneNumber randomNumber = new PhoneNumber();
+ randomNumber.setCountryCode(41).setNationalNumber(2345678901L).setExtension("");
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
+ phoneUtil.isNumberMatch(randomNumber, "1-234-567-8901"));
}
public void testIsNumberMatchShortNsnMatches() throws Exception {
@@ -1789,4 +1829,25 @@ public class PhoneNumberUtilTest extends TestCase {
assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
phoneUtil.isNumberMatch(italianNumberOne, italianNumberTwo));
}
+
+ public void testCanBeInternationallyDialled() throws Exception {
+ // We have no-international-dialling rules for the US in our test metadata.
+ PhoneNumber usNumber = new PhoneNumber();
+ usNumber.setCountryCode(1).setNationalNumber(8001231234L);
+ assertFalse(phoneUtil.canBeInternationallyDialled(usNumber));
+
+ PhoneNumber usInternationalNumber = new PhoneNumber();
+ usInternationalNumber.setCountryCode(1).setNationalNumber(2311231234L);
+ assertTrue(phoneUtil.canBeInternationallyDialled(usInternationalNumber));
+
+ PhoneNumber usInvalidNumber = new PhoneNumber();
+ // Invalid number.
+ usInvalidNumber.setCountryCode(1).setNationalNumber(13112312L);
+ assertTrue(phoneUtil.canBeInternationallyDialled(usInvalidNumber));
+
+ // We have no data for NZ - should return true.
+ PhoneNumber nzNumber = new PhoneNumber();
+ nzNumber.setCountryCode(64).setNationalNumber(33316005L);
+ assertTrue(phoneUtil.canBeInternationallyDialled(nzNumber));
+ }
}
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD
index 8f72b9537..f72b26475 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO
index 76203392f..486d96d7c 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR
index 68b25027b..4a9b091ee 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU
index 8a05649f7..8c20ebf74 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS
index f6f9f9cf5..d1a31b0a7 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE
index 039192c6c..b2f1c5aa4 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB
index 4a3747bcc..1d2b408b8 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT
index 486528473..3cc5f04c6 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP
index 431629749..7887d3237 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR
index 5bad0e2f1..aad7e4146 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX
index 98c475bce..5857b91f5 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ
index 257c95578..e330135da 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL
index c6a0cb6f9..0fd0d2775 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE
index 69e0bb7a3..6ec64af80 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG
index bb12d762d..0836187d9 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US
index 6070764aa..3db0e266d 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT
index 47e6e0654..b9da1048c 100644
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT differ