libphonenumber-csharp / java / release_notes.txt

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
Aug 20, 2012: libphonenumber-5.0.3
* Metadata changes:
 - New alternate formatting data for country calling code(s): 43
 - Updated metadata for region code(s): AT, BF, JO, NG, RU, SL
 - New geocoding data for country calling code(s): 62 (en, id), 98 (fa)

Aug 07, 2012: libphonenumber-5.0.2
* Metadata changes:
 - Updated metadata for region code(s):
   BF, CN, DJ, IL, JO, KH, KZ, MA, MT, MV, MY, NC, NG, SD, SK, SN, TL, UZ
 - New geocoding data for country calling code(s): 7 (ru), 98 (en)
 - Updated geocoding data for country calling code(s): 7 (en)

July 26th, 2012: libphonenumber-5.0.1
* Metadata changes
 - CL, DE ,IN, KR, US
 - New geocoding data for country calling codes 40, 57, 66, 82, 91.
 - Fixed comments for 353 (IE).

July 12th, 2012: libphonenumber-5.0
* Code changes:
  - Support for alternate formats when finding phone numbers.
  - Allowing two-digit numbers to be parsed if they are entered in national-format with no
    punctuation
* Metadata changes
  - IL, GA
* Other
  - Reflowed this file to 100 char width to make it unambiguous as to what the standard should be.

July 6th, 2012: libphonenumber-4.9.1
* Metadata changes
 - AR, BA, BF, CR, DE, EC, ES, KZ, MK, NC, NG, PF, SB, UZ, non-geo entity 882
 - Geocoding data updates for country calling codes 54 (AR) and 81 (JP), new data for 234 (NG)

June 21st, 2012: libphonenumber-4.9
* Bug fix
 - formatInOriginalFormat fixed not to add a star sign if it was not present originally.
* Metadata changes
 - BF, CZ, ES, KW
 - Non-geographical entities with calling code 882 (BebbiCell, Maritime Communications, Oration
   Technologies, Telespazio and Thuraya)
 - Geocoding data updates for country calling codes 221, 224, 226, 242, 244, 245
* Functionality changes:
 - Minimum allowed length for a national significant number (NSN) when parsing changed from 3 to 2.
 - Support parsing of RFC3966-formatted strings with an isdn-subaddress or extra parameters
   specified.
 - Allow soft hyphen to appear in phone numbers (\u00AD)
* Testing changes:
 - Add extra unit tests for non-geographical phone number entities
 - ExampleNumbersTest testEmergency tests now uses ShortNumberUtil

June 14th, 2012: libphonenumber-4.8.5
* Metadata update only:
 - AC, CR, DE, DK, IL, IN, IS, KH, LI, LR, MA, MD, MK, PA, SA, SG, SS

June 6th, 2012: libphonenumber-4.8.4
* Metadata update only:
 - AE, RO
 - Non-geographical entity with calling code 881 (Iridium)

May 30th, 2012: libphonenumber-4.8.3
* Metadata update only:
 - AN, ET, KW, MN, SX, TC, TL

May 16th, 2012: libphonenumber-4.8.2
* Metadata update only:
 - BH, CR, EE, JO, KW, LA, QA, SI, TH
 - Non-geographical entity with calling code 878 (VISIONng)

May 8th, 2012: libphonenumber-4.8.1
* Metadata update only:
 - CA, CI, EG, HK, IN, IR, LB, MA, ME, MM
 - Non-geographical entity with calling code 870 (Inmarsat)
 - Geocoding updates for country calling codes 1 for new area codes

April 24th, 2012: libphonenumber-4.8
* Functionality changes
 - RFC format now outputs a number starting with "tel:"
 - Parsing support for numbers in RFC format that contain the country info in the "phone-context"
   part
 - Support for obtaining area codes for Italy, Vatican City, San Marino
* Metadata changes
 - AM, AO, AR, BE, BF, CD, EG, GH, GM, GN, IN, IR, IT, JO, LA, LC, MD, MS, NO, PA, PK, SI, SJ, SO,
   SY, TC, TN, UZ, VN, ZW
 - Geocoding updates for country calling codes 1, 20, 233, 31, 33, 352, 374, 54, 56, 86
* Refactoring of matching functions, including moving them to PhoneNumberMatcher.

March 16th, 2012: libphonenumber-4.7
* Bug fixes
 - Now return "too long" for input that is longer than 250 chars when parsing
* Metadata changes
 - AC,AM,AT,AZ,BF,BR,BY,BZ,CR,CU,DE,DJ,EE,EG,ET,GA,GH,HK,HN,ID,IN,JP,KE,KG,KH,KR,KW,KY,LB,LU,MA,MD,
   MK,NA,NE,NZ,SA,SB,SC,SE,SL,SN,UZ
* Refactoring of test classes so that tests requiring the test metadata to be loaded have a common
  base class which handles this.

February 9th, 2012: libphonenumber-4.6
* Bug fixes
 - Fix for formatByPattern to enable RFC formatting to work
 - Fix for RFC formatting to work even when the international formatting rule starts with
   punctuation
 - Logging consistency changes - some warnings are no longer printed, others have become only
   WARNINGS
 - Fix for isValidNumberForRegion potentially throwing a NPE
 - Parsing Israeli * numbers written in international format now works
 - PhoneNumberMatcher doesn't match timestamps as phone-numbers
* Metadata changes
 - Updates for AN, AX, BF, BJ, BR, BS, DJ, FI, IN, LV, MW, RS, SC, VN
 - New countries supported: SS (South Sudan), CW (Curaçao) and BQ (Bonaire, Sint Eustatius and Saba)
* Refactoring of the private formatting functions in PhoneNumberUtil to ensure names are more
  descriptive and to reduce code duplication.

January 19th, 2012: libphonenumber-4.5
* Code changes
 - Support for non-geographical country calling codes (e.g. +800).
 - Modify formatInOriginalFormat to not insert/remove/modify digits in the original number passed
   in.
 - Fix formatOutOfCountryKeepingAlphaChars to not throw a NPE.

* Metadata changes
 - Updates for AR, BH, CI, CN, CR, DE, GA, IL, JO, JP, KE, KZ, LB, LK, LT, MV, MW, MZ, NA, NL, NZ,
   PL, RO, SA, SV, TM, UG, US
 - New country calling codes: 800, 808, 883, 888, 979
 - Geocoding data updates: AR, US

December 9th, 2011: libphonenumber-4.4
* Code changes
 - Support for Voicemail numbers
 - Support prefixes "xt" and "xtn" to indicate extensions of phone numbers
 - Change formatInOriginalFormat to use raw_input for numbers with incorrect leading zeroes, instead
   of all invalid numbers.

* Metadata changes
 - Updates for AR, BD, CH, CI, IL, IR, IS, IT, JP, KW, LR, MM, NG, SA, SC, UZ

November 24th, 2011: libphonenumber-4.3
* Code changes
 - Fix the problems with AYTF crashing for longer numbers entered with +CountryCode, and incorrectly
   removing national prefix for some numbers.
 - Improve PhoneNumberMatcher to not match numbers ending with '%'.
 - Fix formatNumberForMobileDialing to handle Israeli star numbers, Peruvian and Colombian numbers.
 - Modify formatInOriginalFormat to use the raw input if we don't have a formatting pattern for a
   number.
 - Simple offline geocoding function which takes into account the user's region.

* Metadata changes
 - Updates for CR, GN, JP, KE, PL, SG, SR, SX, TH, TK

November 10th, 2011: libphonenumber-4.2
* Code changes
 - Providing an "exact match" isEmergencyNumber method
 - Improvement to PhoneNumberMatcher: requires national prefix to be present when matching
   national-format numbers, unless matching for a region where it is explicitly marked in the
   metadata that they may be omitted. Applies to leniency level VALID and higher.
 - Change formatNumberForMobileDialing not to modify the phoneNumber passed in.

* Metadata changes
 - Emergency numbers added for all remaining countries
 - Collected data on which numbers we format with a national prefix are commonly written without one
   and added this
 - Updates for AR, AT, BH, CZ, GR, IR, KM, LT, MX, PT, SE, SO, UG
 - Addition of SX (Sint Maarten)

October 19th, 2011: libphonenumber-4.1
* Code changes
 - Update code and metadata for countries with IDD "8~10" to accept phone numbers where the "~" is
   omitted.
 - Modify formatInOriginalFormat to use raw_input (when present) when the number is considered as
   invalid by the library.
 - Add ShortNumberUtil to deal with international short phone numbers, such as short codes and
   emergency numbers.
 - Increase the maximum phone-number length accepted when parsing (now set to
   16).

* Metadata changes
 - Updates: BF, BN, CN, DE, DK, DO, FR, IN, KI, KW, MC, MD, ML, PA, QA, SB, UK, WS
 - Emergency number information also added to: AE, AF, AL, AM, AR, AT, AU, BA,
   BB, BD, BE, BG, BH, BO, BR, BY, CA, CH, CL, CN, CO, CR, CY, CZ, DE, DJ, DK,
   DO, DZ, EC, EE, EG, ES, FI, FJ, FO, FR, GB, GE, GF, GH, GI, GL, GR, GT, GY,
   HK, HN, HR, HU, ID, IE, IL, IN, IR, IS, IT, JM, JO, JP, KR, KW, KY, KZ, LB,
   LK, LT, LU, LV, MA, MC, MD, ME, MK, ML, MM, MN, MO, MT, MU, MV, MX, MY, NG,
   NI, NL, NO, NP, OM, PA, PE, PH, PK, PL, PM, PT, PY, QA, RO, RS, RU, RW, SA,
   SB, SD, SE, SG, SI, SK, SL, SM, SR, SV, SY, TD, TH, TJ, TM, TN, TR, TT, TW,
   UA, UG, US, UY, UZ, VA, VE, VN, VU, ZA, ZM, ZW

October 6th, 2011: libphonenumber-4.0
* Code changes
 - New function formatNumberForMobileDialing, which attempts to format a number in such a way that
   the call can be connected from a mobile phone. If this is impossible, for example for numbers
   that cannot be internationally dialled, then an empty string is returned.
 - Fallback functionality to English for non-CJK languages for geocoding

* Metadata changes
 - Collecting data for emergency numbers
 - Updates: AR, AU, BR, CN, CZ, EG, GD, IE, IL, JM, KW, KH, SD, SO, TR, UG, UZ
 - Geocoding data changes: AO, AR, AT, BJ, BR, CD, CG, CI, CL, CN, CV, DE, ES,
   FR, GR, GW, HU, KM, MR, MZ, NL, PL, PT, SE, ST, SZ

September 13th, 2011: libphonenumber-3.9
* Code changes
 - Enable AsYouTypeFormatter to handle long IDD and NDD.
 - Allow the presence of an IDD following a +.
 - Fix formatting of phone numbers which contain only 0s in the national number.
 - Refactored some code in geocoding including AreaCodeMap and the storage strategies.

* Metadata changes
 - Updates: AM, BE, BH, BJ, BR, BT, BZ, CI, CL, CN, DE, DK, DM, DZ, EC, EG, FJ,
   GR, HR, HT, IN, IQ, IS, JM, KE, KG, KH, KR, LA, LB, LR, MA, MD, ML, MO, MX,
   MY, NE, NG, PG, PH, PK, PY, QA, SA, SD, SG, SN, TD, TG, TH, TN, TT, UG, YE,
   ZA, ZM
 - New geocoding data for: AC, CG, CU, CV, EG, ET, FI, FI, FI, GL, JP, KM, MA,
   MA, MU, MU, MU, MZ, RS, SH, SH, SL, SO, ST, TG, TG, TG, UG, ZM
 - Updated geocoding data for: AR, DE

August 11th, 2011: libphonenumber-3.8
* Code changes
 - Fix to demo to not throw null-ptr exceptions for invalid NANPA numbers
 - Fixed AYTF to not accept plus signs in the middle of input
 - PhoneNumberMatcher improvements - added STRICT_GROUPING and EXACT_GROUPING levels, numbers
   followed/preceded by a currency symbol will not match, multiple numbers separated by phone-number
   punctuation will now match. ", " is no longer accepted as an extension symbol when matching, only
   when parsing. "x" is only accepted as a carrier code or extension marker, not otherwise.
 - Changes to handling of leading zeroes - these will not be silently ignored anymore, but will be
   stored as part of the number.
 - PhoneNumberOfflineGeocoder - new method to get the description of a number that assumes the
   validity of the number has already been checked and will not re-verify it.
 - Split geocoding US binary data into multiple files.

* Metadata changes
 - Updates: AR, AT, AU, AZ, BE, BF, BH, BY, CA, CN, CO, CR, HT, HU, IT, KG, KH,
   LB, LI, ME, NC, RS, SE, TT, US, VG, ZA
 - New geocoding data for: AL, AM, AO, BF, BJ, BW, CD, CI, CZ, DZ, EE, GH, GM,
   GN, GR, GW, HU, IS, KE, LK, LS, LT, LU, LV, MD, MG, MR, NA, PE, QN, SD, SK,
   SN, SZ, TN, VE, VN, ZA, ZW
 - Updated geocoding data for: GB, PT, US
 - Revised sorting of geocoding data

July 5th, 2011
* Code changes
 - Refactored AreaCodeMap to minimize binary and memory footprint by using 2 different strategies.
 - Refactored BuildMetadataFromXml.java and added unittests.

* Metadata changes
 - Regenerate binaries for all existing area code mapping data with smaller sizes.
 - Added city-level area code data mapping for US and Canada.

June 29th, 2011
* Code changes
 - Fixed issue 38, issue 39, issue 41 and issue 43

* Metadata changes
 - Added phone number area mapping files for
   - JP in Japanese
   - FR in French
   - TW in English, Simplified and Traditional Chinese
   - RU in English
   - IT in English and Italian
   - PT in Portuguese
   - TR in English and Turkish
   - CH in English, German, French and Italian
 - Updates: CR, GE, IT, JP, KW, MH, MP, MU, PE, PM, RW, TG, TJ, TK

June 14th, 2011
* Code changes
 - Added PhoneNumberOfflineGeocoder, supporting classes and their unittests.
 - Added GenerateAreaCodeData to transform phone number area mapping files from text files to binary
   files.
 - Modified PhoneNumberParserServlet.java and phonenumberparser.jsp to incorporate
   PhoneNumberOfflineGeocoding in the appengine demo.

* Metadata changes
 - Added phone number area mapping files for NANPA countries and GB in English, NL in Dutch, AR, CL
   and ES in Spanish, AT and DE in German, SE in Swedish, BR in Portuguese, KR in English, Korean,
   Simplified and Traditional Chinese, and CN in Simplified Chinese.

June 10th, 2011
* Code changes:
 - Fixes for PhoneNumberMatcher to be more restrictive in valid mode and not match numbers
   surrounded by Latin characters. This ensures, for example, the string abc123456789acg will not be
   marked as a phone numbers.
 - Enable PhoneNumberUtil to handle all digits, rather than a subset
 - Fix for AYTF issue36 and improvement for US AYTF behaviour.
* Metadata changes:
 - Updates: BG, EG, ES, GH, PF, SC, SY, VA

May 24th, 2011
* Code changes:
 - Phonenumber now implements Serializable.
 - findNumbers doesn't accept numbers with mis-matched brackets as phone-numbers
 - An offline phone number geocoder has been added. The current implementation just returns the
   region name for the phone number; more detailed geocoding will be added later.
* Metadata changes:
 - New countries: GF, KP, NC, PA, PF, PW, PY, SB, SR, TO, UY, VU
 - Updates: CY, CZ, ES, GB, GQ, JM, MQ, TN, VI

May 9th, 2011
* Code changes:
 - Fixed potential for a null-ptr exception in getExampleNumber
 - Potential speed improvement with replacement of StringBuffer with StringBuilder
* Metadata changes
 - Changed way that international formats are specified to make it easier to do so
 - New countries: AX, CC, CX, WF
 - Updates: AM, AR, AU, AW, CN, CO, CR, DM, EC, ET, FI, FJ, GH, IN, JP, KE, KM,
   KN, LR, MD, MQ, MX, NP, PH, SC, SE, SM, SN, SY, UG, US, VC, VI, ZM

Apr 26th, 2011
* Code changes:
 - Improved PhoneNumberMatcher for cases with other numbers before or after the phone number.
 - Improved AsYouTypeFormatter not to use formatting rules containing non-formatting characters
   (e.g. '*' in Israeli star numbers).
* Metadata changes:
 - New countries: FJ, FM, GY, NF, NI, NR, TV.
 - Updates: AM, AZ, BF, BW, BZ, CI, CR, GB, GP, HK, JM, KH, LB, LY, MV, PE, PK, SZ, TJ, US.
* Minor documentation updates

Apr 11th, 2011
* Bug fixes:
 - Adding date exclusion pattern in PhoneNumberMatcher.
 - Fixing bug with selecting a suitable region for numbers with leading zeros where mutiple regions
   for that country code are possible.
* Metadata changes:
 - Updates: AG, AI, AS, BB, BM, BS, CA, DM, DO, ET, FO, GD, GE, GU, IN, JM, KN, KY, LC, MN, MP, MR,
   MS, NO, PR, TC, TR, TT, US, VC, VG, VI
 - New countries: CK, FK, GT, IO, KI, SJ, SV
* Documentation updates and some small refactoring to AsYouTypeFormatter

Mar 31st, 2011
* New functionality:
 - Can parse and format numbers in RFC-3966 format.
 - Added isAlphaNumber to check to see if a number is a "vanity" or "alpha" number
 - Can format a number made up of alpha-characters in an "out-of-country" format (e.g. 0011 1
   800-SIX-FLAG to dial an American alpha-number from Australia).
* Code changes:
 - Renamed private vars, private methods and fixed comments to try and differentiate between country
   (calling) codes and region codes.
 == Non-backwards-compatible API changes: ==
 - Renamed getSupportedCountries to getSupportedRegions, as this more accurately reflects that the
   library is based around region codes.
 - getNationalSignificantNumber is no longer a static method, but is instead an instance method.
* Metadata changes:
 - Bug-fixes and updates for AU, AZ, EE, FI, IN, JO, KW, KZ, MV, RU, RR, VA
 - New country: ME

Mar 22nd, 2011
* Metadata changes:
 - New mobile-number pattern for AU

Mar 10th, 2011
* New functionality:
 - New function to format a number with the preferred domestic carrier code used when parsing,
   falling back to a default calling code otherwise (formatNationalNumberWithPreferredCarrierCode).
 - We now store the preferred domestic carrier code used when the user calls parseAndKeepRawInput
 - New functionality to extract phone-numbers from text (findNumbers). This is just the first
   version - it does not extract ALPHA numbers such as 0800 CALL ME, or numbers where alternate
   endings are specified (such as 03-331 6005/6006).
* Code changes:
 - Tidying up the test file to use several pre-defined phone number constants
 - Fixing several lint errors
 - Added javadoc to formatNationalNumberWithCarrierCode
 - Fixed bug where a null pointer exception was thrown when getAsYouTypeFormatter was called with an
   invalid region code
 - Improved AsYouTypeFormatter to deal with countries with variable-length patterns such as LU
* Metadata changes:
 - Bug-fixes and updates for the following countries: BF, BO, BR, CL, CO, CR, DK, FO, GE, KR, KW,
   LA, LU, MU, SC, SH, TR, VE
 - New country: SH

Mar 10th, 2011
* Code changes:
  - releasing the code to run the demo on localhost or appengine.

Mar 7th, 2011
* Metadata changes:
 - Adding support for AC

Feb 11th, 2011
* Metadata changes:
 - Update UAN number ranges for IM and JE.

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

Jan 28th, 2011
* Code changes:
  - Fixing critical bug with non-Android-compatible code. isEmpty() was being used and CANON_EQ in
    reg-ex matches.

Jan 20th, 2011
* Code improvements:
  - Handle null phone-numbers when parsing by throwing a NumberParseException.
  - Handle extension written with an accented "o", as per Spanish, when parsing.
  - Handle U+30FC dashes as phone-number punctuation.
  - Allow "ZZ" or null regions to be specified for numbers starting with a full-width "+" symbol, or
    with other characters (such as whitespace) before the leading +.
  - new getLengthOfNationalDestinationCode function
* Metadata changes:
  - New types of numbers introduced: UAN (universal or "company" numbers) and short codes. Note that
    "generalDesc" patterns do not encompass short-codes.  No code-support for these has been
    introduced as of yet. We are also now enabling the collection of data for information such as
    area-code-optional, and no-international-dialling ranges.
  - Data updates as per ITU notifications/bug fixes for the following countries: AM, BH, CD, CG, CR,
    DE, DJ, EE, GB, GN, HU, IE, JO, JP, LB, LR, MA, MK, MN, MR, NA, PG, SC, SG, SO, SZ, VN, ZA, ZW
  - Data added for the following countries: BZ, CU, EC, FO, GI, HN, HT, LK, MT, MV, NU, PS, SD
  - Indentation fixes in reg-exes for the following countries: BG, GB
  - Allow nationalPrefixForParsing to be specified for countries with no national prefix, to handle
    possible carrier prefixes

Jan 3rd, 2011
* Metadata changes:
  - Updates to JE
  - Updated comments for GB/GG/IM/JE

November 25th, 2010
* Metadata changes:
  - Updates to existing countries: AD, AG, AI, AN, AS, BB, BG, BM, BS, BW, CA, DM, DO, GD, GH, GM,
    GU, IN, JM, KN, KY, KZ, LB, LC, MP, MS, PR, SY, TC, TT, TZ, US, VC, VG, VI.
  - Reorganize reg-exes for better readability.
  - Updated comments.

October 22nd, 2010
* Metadata changes:
  - Updates to existing countries: AE, GB, GG, IM, JE

October 15th, 2010
* Code improvements:
  - Allowed parsing of numbers that start with "++" or a full-width "+" symbol
  - Allowed reg-exes for national and possible number patterns to have white space in them in the
    source XML file
  - Added a more useful toString method for the phone number proto class
* Metadata changes:
  - Updates to existing countries: AF, BF, BO, ES, GB, GG, IM, IS, JE, JE, JP, KR, PE, PT, RU, SE,
    TT, ZW
* Bug fixes:
  - Parsing empty strings with invalid region codes no longer throws a null pointer exception

September 4th, 2010
* Code improvement:
  - Added new phone number type: pager
* Metadata change:
  - update to existing country: GG, IM, JE, RS, RU
* Bug fixes:
  - ArrayOutOfBoundException in AsYouTypeFormatter.getRememberedPosition()
  - AsYouTypeFormatter for UK childline number

September 1st, 2010
* Bug fix on KZ metadata.

August 17th, 2010
* Code improvement:
  - Refactored BuildMetadataProtoFromXml.java into BuildMetadataFromXml.java and
    BuildMetadataProtoFromXml.java
  - Added BuildMetadataProtoFromXml.java and JSArrayBuilder.java
  - Refactored CountryCodeToRegionCodeMap and CountryCodeToRegionCodeMapForTesting into separate
    files.

August 16th, 2010
* Bug fixes
  - AsYouTypeFormatter for formatting Chinese geographical numbers entered in national format.
  - AsYouTypeFormatter for formatting Chinese 400/800 numbers entered in national format.
* Metadata change:
  - new countries: AM, AN, BH, GL, IS
  - adding national prefix 1 to all NANPA countries.
  - update to existing countries: BF, FR, UK, PK, RE

August 4th, 2010
* Further improve startup performance
  - Preload no country specific metadata at startup.
  - Stop creating the file containing mapping from country calling code to region code and loading
    it at startup; instead, do the initialization in PhoneNumberUtil.

July 31th, 2010

* Improve startup performance
  - Separate generated metadata binary file to one file per region
  - Preload US at start up, and load other region at the time when needed
  - Create a file containing mapping from country calling code to region code, and load it at
    startup
  - Same change also applied to unittests

July 30th, 2010
* Metadata change:
  - new country: TL
  - update to existing country: AZ, CN, FR, GH, JO, LA, PG, PK, QA, SZ, UA, VN

* Code improvement
  - China local number formatting for AsYouTypeFormatter
  - improve extension parsing to handle number in the form of +1 (645) 123 1234 ext. 910#
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.