JAVA,GEODATA: libphonenumber 4.0.
authorlararennie@google.com <lararennie@google.com@ee073f10-1060-11df-b6a4-87a95322a99c>
Thu, 6 Oct 2011 12:56:47 +0000 (12:56 +0000)
committerlararennie@google.com <lararennie@google.com@ee073f10-1060-11df-b6a4-87a95322a99c>
Thu, 6 Oct 2011 12:56:47 +0000 (12:56 +0000)
git-svn-id: http://libphonenumber.googlecode.com/svn/trunk@362 ee073f10-1060-11df-b6a4-87a95322a99c

309 files changed:
java/release_notes.txt
java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
java/src/com/google/i18n/phonenumbers/Phonemetadata.java
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM
java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW
java/src/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder.java
java/src/com/google/i18n/phonenumbers/geocoding/data/212_fr
java/src/com/google/i18n/phonenumbers/geocoding/data/222_fr
java/src/com/google/i18n/phonenumbers/geocoding/data/229_fr
java/src/com/google/i18n/phonenumbers/geocoding/data/230_es
java/src/com/google/i18n/phonenumbers/geocoding/data/230_fr
java/src/com/google/i18n/phonenumbers/geocoding/data/239_pt
java/src/com/google/i18n/phonenumbers/geocoding/data/243_fr
java/src/com/google/i18n/phonenumbers/geocoding/data/244_pt
java/src/com/google/i18n/phonenumbers/geocoding/data/258_pt
java/src/com/google/i18n/phonenumbers/geocoding/data/290_fr
java/src/com/google/i18n/phonenumbers/geocoding/data/30_en
java/src/com/google/i18n/phonenumbers/geocoding/data/31_nl
java/src/com/google/i18n/phonenumbers/geocoding/data/33_fr
java/src/com/google/i18n/phonenumbers/geocoding/data/34_es
java/src/com/google/i18n/phonenumbers/geocoding/data/351_pt
java/src/com/google/i18n/phonenumbers/geocoding/data/352_de
java/src/com/google/i18n/phonenumbers/geocoding/data/358_fi
java/src/com/google/i18n/phonenumbers/geocoding/data/358_se
java/src/com/google/i18n/phonenumbers/geocoding/data/36_hu
java/src/com/google/i18n/phonenumbers/geocoding/data/373_ro
java/src/com/google/i18n/phonenumbers/geocoding/data/381_sr
java/src/com/google/i18n/phonenumbers/geocoding/data/39_it
java/src/com/google/i18n/phonenumbers/geocoding/data/41_de
java/src/com/google/i18n/phonenumbers/geocoding/data/41_fr
java/src/com/google/i18n/phonenumbers/geocoding/data/41_it
java/src/com/google/i18n/phonenumbers/geocoding/data/43_de
java/src/com/google/i18n/phonenumbers/geocoding/data/46_sv
java/src/com/google/i18n/phonenumbers/geocoding/data/48_pl
java/src/com/google/i18n/phonenumbers/geocoding/data/49_de
java/src/com/google/i18n/phonenumbers/geocoding/data/54_es
java/src/com/google/i18n/phonenumbers/geocoding/data/58_es
java/src/com/google/i18n/phonenumbers/geocoding/data/81_en
java/src/com/google/i18n/phonenumbers/geocoding/data/90_tr
java/src/com/google/i18n/phonenumbers/geocoding/data/config
java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US
java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT
java/test/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoderTest.java
java/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_de [new file with mode: 0644]
java/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_de [new file with mode: 0644]
java/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_ko
java/test/com/google/i18n/phonenumbers/geocoding/testing_data/config
resources/PhoneNumberMetaData.xml
resources/phonemetadata.proto
resources/test/geocoding/de/1.txt [new file with mode: 0644]
resources/test/geocoding/ko/82.txt
tools/java/common/src/com/google/i18n/phonenumbers/tools/BuildMetadataFromXml.java
tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar
tools/java/java-build/src/com/google/i18n/phonenumbers/tools/GenerateAreaCodeData.java
tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar
tools/java/java-build/test/com/google/i18n/phonenumbers/tools/GenerateAreaCodeDataTest.java

index 5ed12e1..ff4ddab 100644 (file)
@@ -1,3 +1,17 @@
+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.
index 2778231..3097d4f 100644 (file)
@@ -87,6 +87,10 @@ public class PhoneNumberUtil {
   private final Set<String> nanpaRegions = new HashSet<String>(35);
   private static final int NANPA_COUNTRY_CODE = 1;
 
+  // The prefix that needs to be inserted in front of a Colombian landline number when dialed from
+  // a mobile phone in Colombia.
+  private static final String COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX = "3";
+
   // The PLUS_SIGN signifies the international prefix.
   static final char PLUS_SIGN = '+';
 
@@ -635,6 +639,7 @@ public class PhoneNumberUtil {
    *                string if no character used to start phone numbers (such as + or any digit) is
    *                found in the number
    */
+  // @VisibleForTesting
   static String extractPossibleNumber(String number) {
     Matcher m = VALID_START_CHAR_PATTERN.matcher(number);
     if (m.find()) {
@@ -666,6 +671,7 @@ public class PhoneNumberUtil {
    * @param number  string to be checked for viability as a phone number
    * @return        true if the number could be a phone number of some sort, otherwise false
    */
+  // @VisibleForTesting
   static boolean isViablePhoneNumber(String number) {
     if (number.length() < MIN_LENGTH_FOR_NSN) {
       return false;
@@ -917,7 +923,7 @@ public class PhoneNumberUtil {
   }
 
   /**
-   * Convenience method to enable tests to get a list of what regions the library has metadata for.
+   * Convenience method to get a list of what regions the library has metadata for.
    */
   public Set<String> getSupportedRegions() {
     return supportedRegions;
@@ -1141,6 +1147,52 @@ public class PhoneNumberUtil {
   }
 
   /**
+   * Returns a number formatted in such a way that it can be dialed from a mobile phone in a
+   * specific region. If the number cannot be reached from the region (e.g. some countries block
+   * toll-free numbers from being called outside of the country), the method returns an empty
+   * string.
+   *
+   * @param number  the phone number to be formatted
+   * @param regionCallingFrom  the region where the call is being placed
+   * @param withFormatting  whether the number should be returned with formatting symbols, such as
+   *     spaces and dashes.
+   * @return  the formatted phone number
+   */
+  public String formatNumberForMobileDialing(PhoneNumber number, String regionCallingFrom,
+                                             boolean withFormatting) {
+    String regionCode = getRegionCodeForNumber(number);
+    if (!isValidRegionCode(regionCode)) {
+      return number.hasRawInput() ? number.getRawInput() : "";
+    }
+
+    String formattedNumber;
+    // Clear the extension, as that part cannot normally be dialed together with the main number.
+    number.clearExtension();
+    PhoneNumberType numberType = getNumberType(number);
+    if ((regionCode == "CO") && (regionCallingFrom == "CO") &&
+        (numberType == PhoneNumberType.FIXED_LINE)) {
+      formattedNumber =
+          formatNationalNumberWithCarrierCode(number, COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX);
+    } else if ((regionCode == "BR") && (regionCallingFrom == "BR") &&
+        ((numberType == PhoneNumberType.FIXED_LINE) || (numberType == PhoneNumberType.MOBILE) ||
+         (numberType == PhoneNumberType.FIXED_LINE_OR_MOBILE))) {
+      formattedNumber = number.hasPreferredDomesticCarrierCode()
+          ? formatNationalNumberWithPreferredCarrierCode(number, "")
+          // Brazilian fixed line and mobile numbers need to be dialed with a carrier code when
+          // called within Brazil. Without that, most of the carriers won't connect the call.
+          // Because of that, we return an empty string here.
+          : "";
+    } else if (canBeInternationallyDialled(number)) {
+      return withFormatting ? format(number, PhoneNumberFormat.INTERNATIONAL)
+                            : format(number, PhoneNumberFormat.E164);
+    } else {
+      formattedNumber = (regionCallingFrom == regionCode)
+          ? format(number, PhoneNumberFormat.NATIONAL) : "";
+    }
+    return withFormatting ? formattedNumber : normalizeDigitsOnly(formattedNumber);
+  }
+
+  /**
    * Formats a phone number for out-of-country dialing purposes. If no regionCallingFrom is
    * supplied, we format the number in its INTERNATIONAL format. If the country calling code is the
    * same as that of the region where the number is from, then NATIONAL formatting will be applied.
@@ -1348,18 +1400,8 @@ public class PhoneNumberUtil {
    * @return  the national significant number of the PhoneNumber object passed in
    */
   public String getNationalSignificantNumber(PhoneNumber number) {
-    // The leading zero in the national (significant) number of an Italian phone number has a
-    // special meaning. Unlike the rest of the world, it indicates the number is a landline
-    // number. There have been plans to migrate landline numbers to start with the digit two since
-    // December 2000, but it has not yet happened.
-    // See http://en.wikipedia.org/wiki/%2B39 for more details.
-    // Other regions such as Cote d'Ivoire and Gabon use this for their mobile numbers.
-    StringBuilder nationalNumber = new StringBuilder(
-        (number.hasItalianLeadingZero() &&
-         number.isItalianLeadingZero() &&
-         isLeadingZeroPossible(number.getCountryCode()))
-        ? "0" : ""
-    );
+    // If a leading zero has been set, we prefix this now. Note this is not a national prefix.
+    StringBuilder nationalNumber = new StringBuilder(number.isItalianLeadingZero() ? "0" : "");
     nationalNumber.append(number.getNationalNumber());
     return nationalNumber.toString();
   }
@@ -1378,7 +1420,7 @@ public class PhoneNumberUtil {
         formattedNumber.insert(0, " ").insert(0, countryCallingCode).insert(0, PLUS_SIGN);
         return;
       case RFC3966:
-        formattedNumber.insert(0, "-").insert(0, countryCallingCode) .insert(0, PLUS_SIGN);
+        formattedNumber.insert(0, "-").insert(0, countryCallingCode).insert(0, PLUS_SIGN);
         return;
       case NATIONAL:
       default:
@@ -2024,6 +2066,7 @@ public class PhoneNumberUtil {
    *     only populated when keepCountryCodeSource is true.
    * @return  the country calling code extracted or 0 if none could be extracted
    */
+  // @VisibleForTesting
   int maybeExtractCountryCode(String number, PhoneMetadata defaultRegionMetadata,
                               StringBuilder nationalNumber, boolean keepRawInput,
                               PhoneNumber phoneNumber)
@@ -2131,6 +2174,7 @@ public class PhoneNumberUtil {
    *     removed from the number, otherwise CountryCodeSource.FROM_DEFAULT_COUNTRY if the number did
    *     not seem to be in international format.
    */
+  // @VisibleForTesting
   CountryCodeSource maybeStripInternationalPrefixAndNormalize(
       StringBuilder number,
       String possibleIddPrefix) {
@@ -2168,6 +2212,7 @@ public class PhoneNumberUtil {
    * @param metadata  the metadata for the region that we think this number is from
    * @return the carrier code extracted if it is present, otherwise return an empty string.
    */
+  // @VisibleForTesting
   String maybeStripNationalPrefixAndCarrierCode(StringBuilder number, PhoneMetadata metadata) {
     String carrierCode = "";
     int numberLength = number.length();
@@ -2224,6 +2269,7 @@ public class PhoneNumberUtil {
    * @param number  the non-normalized telephone number that we wish to strip the extension from
    * @return        the phone extension
    */
+  // @VisibleForTesting
   String maybeStripExtension(StringBuilder number) {
     Matcher m = EXTN_PATTERN.matcher(number);
     // If we find a potential extension, and the number preceding this is a viable number, we assume
index 4a730d6..db3ca64 100644 (file)
@@ -430,6 +430,20 @@ public final class Phonemetadata {
       return this;
     }
 
+    // required PhoneNumberDesc emergency = 27;
+    private boolean hasEmergency;
+    private PhoneNumberDesc emergency_ = null;
+    public boolean hasEmergency() { return hasEmergency; }
+    public PhoneNumberDesc getEmergency() { return emergency_; }
+    public PhoneMetadata setEmergency(PhoneNumberDesc value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      hasEmergency = true;
+      emergency_ = value;
+      return this;
+    }
+
     // required PhoneNumberDesc noInternationalDialling = 24;
     private boolean hasNoInternationalDialling;
     private PhoneNumberDesc noInternationalDialling_ = null;
@@ -660,6 +674,10 @@ public final class Phonemetadata {
       if (hasUan) {
         uan_.writeExternal(objectOutput);
       }
+      objectOutput.writeBoolean(hasEmergency);
+      if (hasEmergency) {
+        emergency_.writeExternal(objectOutput);
+      }
       objectOutput.writeBoolean(hasNoInternationalDialling);
       if (hasNoInternationalDialling) {
         noInternationalDialling_.writeExternal(objectOutput);
@@ -783,6 +801,12 @@ public final class Phonemetadata {
       if (hasDesc) {
         PhoneNumberDesc desc = new PhoneNumberDesc();
         desc.readExternal(objectInput);
+        setEmergency(desc);
+      }
+      hasDesc = objectInput.readBoolean();
+      if (hasDesc) {
+        PhoneNumberDesc desc = new PhoneNumberDesc();
+        desc.readExternal(objectInput);
         setNoInternationalDialling(desc);
       }
 
index d0069f1..1a3a4b1 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC differ
index 2f5199b..8a62bd6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD differ
index 2f543e1..e7ed682 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE differ
index 0120a23..1f6d033 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF differ
index ce1d508..5f23860 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG differ
index 2bdd9da..de0fb77 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI differ
index 15cbd77..ef49402 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL differ
index 91a2fae..0a0926c 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM differ
index e2aa056..25aab56 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN differ
index 13a5285..c975f99 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO differ
index a4f9793..852f0f5 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR differ
index 76f517c..221eccb 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS differ
index 6cdcf99..f0317a4 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT differ
index 0b96301..93a0f3b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU differ
index 5e69468..de31efe 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW differ
index 8abd003..fd7987d 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX differ
index 8b6224b..6b536c7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ differ
index c5e36f6..7a85e71 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA differ
index 553a1de..085bc8f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB differ
index f335c39..b3d1eb0 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD differ
index d2a7d2c..28370ae 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE differ
index 9cd27d8..7a6217b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF differ
index f3645fd..3892d3e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG differ
index 75d5b60..aed9c0b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH differ
index 2b67b00..db38b2c 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI differ
index 5453418..abe9377 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ differ
index b410d02..dede309 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL differ
index c50e099..18c0945 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM differ
index 46b0177..329144a 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN differ
index 8e8857c..edabab6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO differ
index 8353e3c..a20cdfc 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR differ
index 23bbf75..c6f960e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS differ
index 87251ae..c0f93c5 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT differ
index 641043d..cf09542 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW differ
index b07157e..5dae4a8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY differ
index 6e8fd58..e9bd308 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ differ
index 396702d..7b72ab8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA differ
index 948af63..515bcc4 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC differ
index 4456d29..65cd03b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD differ
index eeb5eeb..fb5a305 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF differ
index 6b809d4..3cab707 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG differ
index 1b520c3..b96b2e4 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH differ
index f8ff1ca..bb771dc 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI differ
index ce2a8ec..168a085 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK differ
index 5d301f2..9afd53f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL differ
index 5fb3c1f..330fe3a 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM differ
index 4b299a6..301ba40 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN differ
index e87ef01..8202d23 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO differ
index 5090575..b1c8b56 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR differ
index 3d2e499..c4da25e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU differ
index 947e660..70b1667 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV differ
index 585d96a..733e530 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX differ
index fb374ed..26270b2 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY differ
index 43ec39e..f1bf854 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ differ
index 87844f3..0057432 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE differ
index 2978ffe..7b83345 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ differ
index d8b8bd4..c16c4e9 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK differ
index 0a3e39b..3829daf 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM differ
index c48d82c..015b17a 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO differ
index 4c4e871..4f2aecd 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ differ
index a9716d5..bcb8405 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC differ
index 8387a3b..332ec1b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE differ
index 8ab546d..c3d8017 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG differ
index 5c25636..d6e0f9b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER differ
index c5717d0..53bdd84 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES differ
index 6aacbc5..4e73ea1 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET differ
index bd871b6..328bc77 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI differ
index cb06c07..e337b45 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ differ
index 47e774d..ff38f2c 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK differ
index 678e85d..eceb9a2 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM differ
index f6641dd..2713bf6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO differ
index 7a2adfd..4be40cd 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR differ
index 800c4f2..348b1ed 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA differ
index d1ae758..1000d4e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB differ
index ef111dd..368a105 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD differ
index 9b0cc6e..0db258b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE differ
index b84bf20..1b9cbe5 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF differ
index 7d24686..f289a98 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG differ
index 4e97d13..300049c 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH differ
index 6625331..52f0354 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI differ
index f50ade6..74814e8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL differ
index abef42b..827c8b7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM differ
index c865a17..0d8cd8a 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN differ
index fdce952..05961ec 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP differ
index 2444a74..e18b8f5 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ differ
index 849fd68..147ef93 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR differ
index 2f9f995..00503ae 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT differ
index 7cd7701..de49dfe 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU differ
index 9ca2299..3c9ee20 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW differ
index 1636ed4..8aa1ae5 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY differ
index 89a9cff..018d40e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK differ
index 8aa3857..f9b215c 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN differ
index ff1590c..af5f9d8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR differ
index 7a117e7..105d95f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT differ
index 98f85c9..08eb86f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU differ
index c2d6738..2a01174 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID differ
index bd1e9ed..2d0e1e8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE differ
index f784b0f..37c3d56 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL differ
index ab78e3a..c83da95 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM differ
index 401aafd..0dbfd5b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN differ
index 7731fb8..0e26ed9 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO differ
index ca8ede8..eaf0102 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ differ
index a5b3394..3989284 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR differ
index b49745d..f0a513d 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS differ
index da951bc..b26351d 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT differ
index 37dc706..71003d3 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE differ
index 14b8c4e..9916932 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM differ
index cc0d091..292fad3 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO differ
index 9b020a4..d88d603 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP differ
index 1c09ed2..ba36625 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE differ
index 33f8201..f9013e7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG differ
index 9e9c454..b6d9b70 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH differ
index 1b754cc..37f9a16 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI differ
index b691649..9035f8f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM differ
index 9045dfb..091abf0 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN differ
index aa771a1..8bb9238 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP differ
index 47942d7..7cd65f0 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR differ
index e0df426..c407023 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW differ
index 5bfc93e..39d3ad4 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY differ
index 06708a2..13f9852 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ differ
index 9d4d251..4562931 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA differ
index 168135c..24bc5c6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB differ
index 3239dd6..45c9fe7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC differ
index e1d137c..13efb94 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI differ
index 2b06a38..c289760 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK differ
index 0bc061c..9094843 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR differ
index e65316e..e821055 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS differ
index 02ad948..41a4ad4 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT differ
index ef5e720..54a4edd 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU differ
index 80c3aa3..b6e3488 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV differ
index a3c6000..8988b9f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY differ
index 2c885ab..a4253d6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA differ
index 1a80b90..c72360f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC differ
index 521bfa3..f9355ca 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD differ
index 7cce967..8d5aeb4 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME differ
index 2daec61..e00abfa 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF differ
index 7eef113..da2d7b2 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG differ
index ec542a9..def092d 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH differ
index 040a791..872f2b1 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK differ
index bf29a8d..459f1a8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML differ
index fbe65bc..dea439e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM differ
index b96b7f9..dfcc797 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN differ
index 2bd32a7..3719033 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO differ
index 83c50af..1f0249c 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP differ
index 889f649..1e686ce 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ differ
index d4e34bc..eadaab0 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR differ
index c6d5fe5..1db3c7b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS differ
index e4ef74a..dbf30e4 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT differ
index 51ef9b2..42cec4d 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU differ
index 7e2e0b3..c3e1e95 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV differ
index 36fe6c9..a509610 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW differ
index 850667e..02d688f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX differ
index df113ce..3af451c 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY differ
index 5128f4e..c50b924 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ differ
index 5c54aa0..0538f74 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA differ
index 6e85722..1a7d8a8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC differ
index 7b9d543..226b16f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE differ
index 59991ff..596dd70 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF differ
index d16685c..a6d1a46 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG differ
index 95e956a..c3a5b3d 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI differ
index f0a7b30..3efe1ad 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL differ
index cf7b46e..70453d0 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO differ
index e54df79..c9de462 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP differ
index 65dd064..870e517 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR differ
index ac5a701..571051f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU differ
index 199e3c2..cd20481 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ differ
index a3ce6c1..868e7b7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM differ
index ad660fc..dc0fc85 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA differ
index 7c9e801..bba9766 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE differ
index f09ce4c..f24e8e4 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF differ
index 8e08a8d..ec72d57 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG differ
index 52d70e4..57b1740 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH differ
index dd4e23b..38462c6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK differ
index 012f5b7..fceedc3 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL differ
index b91198c..e99cb7e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM differ
index ed7165b..0901ad5 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR differ
index 1114659..46a269f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS differ
index 9c691cc..e57e736 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT differ
index f51d0d1..a8bd035 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW differ
index 5722887..5c6d5b0 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY differ
index a1303ac..2fa26f0 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA differ
index 0a282a4..43593bb 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE differ
index d45708a..56fbce6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO differ
index d3691b5..9deba17 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS differ
index 189e57f..89cfaa6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU differ
index 22f3ec7..2381381 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW differ
index b72118a..d25ee49 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA differ
index 5524740..a761852 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB differ
index 95fa89a..ca57e4c 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC differ
index 6f9420e..56f9021 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD differ
index 8851346..cfc4255 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE differ
index b455861..2580897 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG differ
index e928407..b4ebc4b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH differ
index b9df92b..dd95975 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI differ
index aca19d3..a8b4cab 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ differ
index 50b4e3a..6fcd225 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK differ
index 5ab8432..c24634d 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL differ
index 176add7..dc5d5d7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM differ
index fcad903..933dca8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN differ
index 2db9450..0238868 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO differ
index a215045..65af676 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR differ
index 9a8a7ec..da445df 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST differ
index 695ef3f..10fad67 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV differ
index 858b5da..887492e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY differ
index b487a13..3cdd284 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ differ
index 0db9395..67ccd0f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC differ
index 8cc88a0..e01ba0b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD differ
index 1fdd338..ee3bd80 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG differ
index e7c9408..8d3e4e2 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH differ
index e683407..a092ef6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ differ
index 83d8bfc..849f1c7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK differ
index 3e96e18..e971e04 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL differ
index b3b4ad8..d8ac34a 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM differ
index 0e846e8..69de812 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN differ
index 256eebf..aee32a7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO differ
index df54d35..6863a47 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR differ
index 23294b1..01b8fc8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT differ
index 973582a..ab5424e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV differ
index 08b4172..698f17f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW differ
index b5c29af..1c80036 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ differ
index f74e132..8cf21a6 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA differ
index a936999..992328f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG differ
index d6ac18f..91f6fa7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US differ
index ebf41e1..6d55edb 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY differ
index 05c6854..1ee8282 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ differ
index 0b7f9ee..47c2400 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA differ
index 5817468..386be34 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC differ
index 1db7196..f8cd36c 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE differ
index 3c4a379..215b7a5 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG differ
index 3f93a89..bf3ab19 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI differ
index 6f2b378..0675178 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN differ
index fe110d2..350002d 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU differ
index f6b6c15..404da8e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF differ
index 9022baa..8350267 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS differ
index 725f6b6..43cba39 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE differ
index ae7df49..088ad95 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT differ
index f4c0f11..17876c7 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA differ
index 34c8c13..b41f2e4 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM differ
index 45b6bc1..af1a857 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW differ
index 2e4fa14..5278b85 100644 (file)
@@ -69,8 +69,8 @@ public class PhoneNumberOfflineGeocoder {
   }
 
   private AreaCodeMap getPhonePrefixDescriptions(
-      int countryCallingCode, String language, String script, String region) {
-    String fileName = mappingFileProvider.getFileName(countryCallingCode, language, script, region);
+      int prefixMapKey, String language, String script, String region) {
+    String fileName = mappingFileProvider.getFileName(prefixMapKey, language, script, region);
     if (fileName.length() == 0) {
       return null;
     }
@@ -179,9 +179,25 @@ public class PhoneNumberOfflineGeocoder {
         countryCallingCode : (1000 + (int) (number.getNationalNumber() / 10000000));
     AreaCodeMap phonePrefixDescriptions =
         getPhonePrefixDescriptions(phonePrefix, lang, script, region);
-    String description = phonePrefixDescriptions != null
+    String description = (phonePrefixDescriptions != null)
         ? phonePrefixDescriptions.lookup(number)
-        : "";
-    return description == null ? "" : description;
+        : null;
+    // When a location is not available in the requested language, fall back to English.
+    if ((description == null || description.length() == 0) && mayFallBackToEnglish(lang)) {
+      AreaCodeMap defaultMap = getPhonePrefixDescriptions(phonePrefix, "en", "", "");
+      if (defaultMap == null) {
+        return "";
+      }
+      description = defaultMap.lookup(number);
+    }
+    return description != null ? description : "";
+  }
+
+  private boolean mayFallBackToEnglish(String lang) {
+    // Don't fall back to English if the requested language is among the following:
+    // - Chinese
+    // - Japanese
+    // - Korean
+    return !lang.equals("zh") && !lang.equals("ja") && !lang.equals("ko");
   }
 }
index 0f52d75..9016b0d 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/212_fr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/212_fr differ
index ba4c00e..ceb0870 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/222_fr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/222_fr differ
index a990a6d..6002a86 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/229_fr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/229_fr differ
index 125af28..49f2050 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/230_es and b/java/src/com/google/i18n/phonenumbers/geocoding/data/230_es differ
index b9d497c..bf51072 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/230_fr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/230_fr differ
index dbd97cd..8610e0a 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/239_pt and b/java/src/com/google/i18n/phonenumbers/geocoding/data/239_pt differ
index 84dbeb0..ac48d42 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/243_fr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/243_fr differ
index aadfa19..34cf12b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/244_pt and b/java/src/com/google/i18n/phonenumbers/geocoding/data/244_pt differ
index ad43c62..18ddf2e 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/258_pt and b/java/src/com/google/i18n/phonenumbers/geocoding/data/258_pt differ
index fb22232..a9df787 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/290_fr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/290_fr differ
index 4943311..8211506 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/30_en and b/java/src/com/google/i18n/phonenumbers/geocoding/data/30_en differ
index c1807c8..78768ba 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/31_nl and b/java/src/com/google/i18n/phonenumbers/geocoding/data/31_nl differ
index c18f305..85f2c6b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/33_fr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/33_fr differ
index e4719ca..749b162 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/34_es and b/java/src/com/google/i18n/phonenumbers/geocoding/data/34_es differ
index 04dc74e..eb08045 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/351_pt and b/java/src/com/google/i18n/phonenumbers/geocoding/data/351_pt differ
index f151686..d20ebca 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/352_de and b/java/src/com/google/i18n/phonenumbers/geocoding/data/352_de differ
index 835fec1..3824cfb 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/358_fi and b/java/src/com/google/i18n/phonenumbers/geocoding/data/358_fi differ
index 3c2ce7e..3c49760 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/358_se and b/java/src/com/google/i18n/phonenumbers/geocoding/data/358_se differ
index d8b785a..6eaf151 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/36_hu and b/java/src/com/google/i18n/phonenumbers/geocoding/data/36_hu differ
index a45a9a8..3ef4931 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/373_ro and b/java/src/com/google/i18n/phonenumbers/geocoding/data/373_ro differ
index 93d5fe5..2a5deaa 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/381_sr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/381_sr differ
index 2bd7c5c..db32682 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/39_it and b/java/src/com/google/i18n/phonenumbers/geocoding/data/39_it differ
index 86723f3..e62c797 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/41_de and b/java/src/com/google/i18n/phonenumbers/geocoding/data/41_de differ
index b62ae33..6fb2df8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/41_fr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/41_fr differ
index 847fc3f..9cc1e5b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/41_it and b/java/src/com/google/i18n/phonenumbers/geocoding/data/41_it differ
index 3c76470..5687e97 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/43_de and b/java/src/com/google/i18n/phonenumbers/geocoding/data/43_de differ
index 016fd62..31a27a8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/46_sv and b/java/src/com/google/i18n/phonenumbers/geocoding/data/46_sv differ
index 717b1ce..cd5eb5a 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/48_pl and b/java/src/com/google/i18n/phonenumbers/geocoding/data/48_pl differ
index 8e5914b..428b8bf 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/49_de and b/java/src/com/google/i18n/phonenumbers/geocoding/data/49_de differ
index cc94c44..afd958b 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/54_es and b/java/src/com/google/i18n/phonenumbers/geocoding/data/54_es differ
index 1ddc793..8407816 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/58_es and b/java/src/com/google/i18n/phonenumbers/geocoding/data/58_es differ
index c23db64..f9d096f 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/81_en and b/java/src/com/google/i18n/phonenumbers/geocoding/data/81_en differ
index 7ba238e..cfcf99a 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/90_tr and b/java/src/com/google/i18n/phonenumbers/geocoding/data/90_tr differ
index 123f41a..c7db9c8 100644 (file)
Binary files a/java/src/com/google/i18n/phonenumbers/geocoding/data/config and b/java/src/com/google/i18n/phonenumbers/geocoding/data/config differ
index 660a34e..16f348e 100644 (file)
@@ -603,6 +603,27 @@ public class PhoneNumberUtilTest extends TestCase {
         phoneUtil.formatNationalNumberWithPreferredCarrierCode(usNumber, "15"));
   }
 
+  public void testFormatNumberForMobileDialing() {
+    // US toll free numbers are marked as noInternationalDialling in the test metadata for testing
+    // purposes.
+    assertEquals("800 253 0000",
+        phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.US, true));
+    assertEquals("", phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.CN, true));
+    assertEquals("+1 650 253 0000",
+        phoneUtil.formatNumberForMobileDialing(US_NUMBER, RegionCode.US, true));
+    PhoneNumber usNumberWithExtn = new PhoneNumber().mergeFrom(US_NUMBER).setExtension("1234");
+    assertEquals("+1 650 253 0000",
+        phoneUtil.formatNumberForMobileDialing(usNumberWithExtn, RegionCode.US, true));
+
+    assertEquals("8002530000",
+        phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.US, false));
+    assertEquals("", phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.CN, false));
+    assertEquals("+16502530000",
+        phoneUtil.formatNumberForMobileDialing(US_NUMBER, RegionCode.US, false));
+    assertEquals("+16502530000",
+        phoneUtil.formatNumberForMobileDialing(usNumberWithExtn, RegionCode.US, false));
+  }
+
   public void testFormatByPattern() {
     NumberFormat newNumFormat = new NumberFormat();
     newNumFormat.setPattern("(\\d{3})(\\d{3})(\\d{4})");
index 0554c1f..8dba7fa 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD differ
index 8f829b8..6a8cb68 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO differ
index 80e8ebf..f93ae44 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR differ
index ecd6757..a5761e1 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU differ
index 2c30b61..7ec5aa3 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS differ
index 766539f..c2ebe28 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE differ
index 1cbd1f3..28acb39 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB differ
index a75f0db..4175fee 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT differ
index cfb8f71..8fc2b78 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP differ
index a96ad54..63fc8ea 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR differ
index 7f1e18b..e033b40 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX differ
index 5a494e6..de81143 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ differ
index 424909c..c742150 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL differ
index 77a8f8f..fffbfcf 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE differ
index cdce608..b987735 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG differ
index 0630d77..fcea9cb 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US differ
index 50db378..ecee4a4 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT differ
index a75b327..e8488e4 100644 (file)
@@ -63,8 +63,6 @@ public class PhoneNumberOfflineGeocoderTest extends TestCase {
     // a result, the country name of United States in simplified Chinese is returned.
     assertEquals("\u7F8E\u56FD",
         geocoder.getDescriptionForNumber(US_NUMBER1, Locale.SIMPLIFIED_CHINESE));
-    assertEquals("Stati Uniti",
-        geocoder.getDescriptionForNumber(US_NUMBER1, Locale.ITALIAN));
     assertEquals("Bahamas",
         geocoder.getDescriptionForNumber(BS_NUMBER1, new Locale("en", "US")));
     assertEquals("Australia",
@@ -100,7 +98,21 @@ public class PhoneNumberOfflineGeocoderTest extends TestCase {
         geocoder.getDescriptionForNumber(KO_NUMBER1, Locale.KOREAN));
     assertEquals("\uC778\uCC9C",
         geocoder.getDescriptionForNumber(KO_NUMBER2, Locale.KOREAN));
-    assertEquals("\uC81C\uC8FC",
+  }
+
+  public void testGetDescriptionForFallBack() {
+    // No fallback, as the location name for the given phone number is available in the requested
+    // language.
+    assertEquals("Kalifornien",
+        geocoder.getDescriptionForNumber(US_NUMBER1, Locale.GERMAN));
+    // German falls back to English.
+    assertEquals("New York, NY",
+        geocoder.getDescriptionForNumber(US_NUMBER3, Locale.GERMAN));
+    // Italian falls back to English.
+    assertEquals("CA",
+        geocoder.getDescriptionForNumber(US_NUMBER1, Locale.ITALIAN));
+    // Korean doesn't fall back to English.
+    assertEquals("\uB300\uD55C\uBBFC\uAD6D",
         geocoder.getDescriptionForNumber(KO_NUMBER3, Locale.KOREAN));
   }
 
diff --git a/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_de b/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_de
new file mode 100644 (file)
index 0000000..2a516e0
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_de differ
diff --git a/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_de b/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_de
new file mode 100644 (file)
index 0000000..1fa2f0f
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_de differ
index cbc3017..dfa91c3 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_ko and b/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_ko differ
index 0731ac8..aab8c13 100644 (file)
Binary files a/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/config and b/java/test/com/google/i18n/phonenumbers/geocoding/testing_data/config differ
index 00919ea..886dc13 100644 (file)
@@ -38,7 +38,7 @@
     <!ELEMENT territories (territory+)>
     <!ELEMENT territory (availableFormats?, generalDesc?, noInternationalDialling?,
         areaCodeOptional?, fixedLine?, mobile?, pager?, tollFree?, premiumRate?,
-        sharedCost?, personalNumber?, voip?, uan?, shortCode?)>
+        sharedCost?, personalNumber?, voip?, uan?, shortCode?, emergency?)>
     <!ELEMENT generalDesc (nationalNumberPattern, possibleNumberPattern)>
     <!ELEMENT noInternationalDialling (nationalNumberPattern, possibleNumberPattern,
         exampleNumber?)>
@@ -53,6 +53,7 @@
     <!ELEMENT voip (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
     <!ELEMENT uan (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
     <!ELEMENT shortCode (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
+    <!ELEMENT emergency (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)>
     <!ELEMENT availableFormats (numberFormat+)>
     <!ELEMENT nationalNumberPattern (#PCDATA)>
     <!ELEMENT possibleNumberPattern (#PCDATA)>
         </nationalNumberPattern>
         <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
       </generalDesc>
+      <noInternationalDialling>
+        <nationalNumberPattern>810\d{7}</nationalNumberPattern>
+        <possibleNumberPattern>\d{10}</possibleNumberPattern>
+        <exampleNumber>8101234567</exampleNumber>
+      </noInternationalDialling>
       <fixedLine>
         <!-- Also covering fixed satellite service numbers (670). -->
         <nationalNumberPattern>
         <nationalNumberPattern>[1-578]\d{5,9}</nationalNumberPattern>
         <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
       </generalDesc>
+      <noInternationalDialling>
+        <nationalNumberPattern>
+          1(?:
+            3(?:
+              \d{4}|
+              00\d{6}
+            )|
+            80(?:
+              0\d{6}|
+              2\d{3}
+            )
+          )
+        </nationalNumberPattern>
+        <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
+        <exampleNumber>1300123456</exampleNumber>
+      </noInternationalDialling>
       <fixedLine>
         <!-- Excludes prefixes used by Cocos Islands and Christmas Islands -->
         <nationalNumberPattern>
         <nationalNumberPattern>[1-9]\d{7,9}</nationalNumberPattern>
         <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
       </generalDesc>
+      <noInternationalDialling>
+        <nationalNumberPattern>
+          (?:
+            400\d|
+            3003
+          )\d{4}
+        </nationalNumberPattern>
+        <possibleNumberPattern>\d{8}</possibleNumberPattern>
+        <exampleNumber>40041234</exampleNumber>
+      </noInternationalDialling>
       <fixedLine>
         <!-- According to this publication, the prefixes 11 53, 11 54 and 11 57 are to be used for
              mobile phones prior to the introduction of a ninth digit. It is not clear whether they
             3003
           )\d{4}
         </nationalNumberPattern>
+        <possibleNumberPattern>\d{8}</possibleNumberPattern>
         <exampleNumber>40041234</exampleNumber>
       </sharedCost>
     </territory>
         </nationalNumberPattern>
         <possibleNumberPattern>\d{4,12}</possibleNumberPattern>
       </generalDesc>
+      <noInternationalDialling>
+        <nationalNumberPattern>
+          (?:
+            4|
+            (?:
+              10
+            )?8
+          )00\d{7}
+        </nationalNumberPattern>
+        <possibleNumberPattern>\d{10,12}</possibleNumberPattern>
+        <exampleNumber>4001234567</exampleNumber>
+      </noInternationalDialling>
       <fixedLine>
         <!-- 0432 increased to 8 digits on October 24, 2009. 0791 increased to 8 digits on
              August 28, 2011. 0475 is the prefix for Tongliao but is not in the ITU data. -->
             )|
             1(?:
               1[0-35-9]|
-              2|
               37|
               46|
               75|
         <possibleNumberPattern>\d{9}</possibleNumberPattern>
       </generalDesc>
       <fixedLine>
+        <!-- Numbers belonging to private communication networks are included here. They start with
+             972, 973 and 974, and are reachable by the public. -->
         <nationalNumberPattern>
           2\d{8}|
           (?:
             3[1257-9]|
             4[16-9]|
             5[13-9]
-          )\d{7}
+          )\d{7}|
+          97[234]\d{6}
         </nationalNumberPattern>
         <exampleNumber>212345678</exampleNumber>
       </fixedLine>
          </numberFormat>
          <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
            <leadingDigits>
-             15[0-2]|
+             1(?:
+               0[0169]|
+               1[124]|
+               2[0278]|
+               5[0-2]
+             )|
              [89]00
            </leadingDigits>
            <format>$1 $2 $3</format>
         <exampleNumber>234567890</exampleNumber>
       </fixedLine>
       <mobile>
+        <!-- Egypt is switching to a 10-digit pattern on October 6th. This will run in parallel with
+             the old pattern for three months, so we support both here in the meantime. -->
         <nationalNumberPattern>
           1(?:
             [0-246-9]|
             5[0-2]
+          )\d{7}|
+          1(?:
+            0[0169]|
+            1[124]|
+            2[0278]
           )\d{7}
         </nationalNumberPattern>
         <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
-        <exampleNumber>101234567</exampleNumber>
+        <exampleNumber>1001234567</exampleNumber>
       </mobile>
       <tollFree>
         <nationalNumberPattern>800\d{7}</nationalNumberPattern>
               3[5-9]|
               4[0-49]|
               5[5-79]|
+              68|
               73|
               90
             )|
         <nationalNumberPattern>[124-9]\d{6,9}</nationalNumberPattern>
         <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
       </generalDesc>
+      <noInternationalDialling>
+        <nationalNumberPattern>18[59]0\d{6}</nationalNumberPattern>
+        <possibleNumberPattern>\d{10}</possibleNumberPattern>
+        <exampleNumber>1850123456</exampleNumber>
+      </noInternationalDialling>
       <fixedLine>
         <!-- We allow 6-7 digit subscriber numbers for the 021 area code since that seems to be
              reflected by the numbers in the Yellow Pages. The 023, 043, 052 and 064 area codes also
         <exampleNumber>501234567</exampleNumber>
       </mobile>
       <tollFree>
+        <!-- Online 1-809 numbers now classify themselves as "toll-free". -->
         <nationalNumberPattern>
           1(?:
-            80[01]\d{3}|
+            80[019]\d{3}|
             255
           )\d{3}
         </nationalNumberPattern>
         <exampleNumber>1919123456</exampleNumber>
       </premiumRate>
       <sharedCost>
-        <nationalNumberPattern>
-          1(?:
-            700|
-            809
-          )\d{6}
-        </nationalNumberPattern>
+        <nationalNumberPattern>1700\d{6}</nationalNumberPattern>
         <possibleNumberPattern>\d{10}</possibleNumberPattern>
         <exampleNumber>1700123456</exampleNumber>
       </sharedCost>
         <possibleNumberPattern>\d{7}(?:\d{3})?</possibleNumberPattern>
       </generalDesc>
       <fixedLine>
+        <!-- Numbers have been found online for ranges 62x,63x, 656, 66[2-489]. -->
         <nationalNumberPattern>
           876(?:
             5(?:
             )|
             6(?:
               0[1-3579]|
-              1[027]|
-              2[3-5]|
-              34|
-              [45]0|
-              63|
+              1[027-9]|
+              [23]\d|
+              40|
+              5[06]|
+              6[2-489]|
               7[05]|
               8[04]|
               9[4-9]
-            )
+            )|
             7(?:
               0[2-689]|
               [1-6]\d|
       </fixedLine>
       <mobile>
         <!-- Adding 27, 28, 299, 31, 508, 527 and 566 as extra prefixes, as they have been found to
-             be valid by sending SMSs and looking at online number lookup sites. -->
+             be valid by sending SMSs and looking at online number lookup sites.
+
+             Numbers have been found online for the following ranges 29x, 53x, 54x, 55x, 56x.
+             Most have mobile numbers online so we have put them under mobile but is possible
+             they are a mixture of fixed line and mobile.
+             -->
         <nationalNumberPattern>
           876(?:
-            2(?:
-              [178]\d|
-              99
-            )|
+            2[1789]\d|
             [348]\d{2}|
             5(?:
               08|
               27|
-              66|
-              [78]\d
+              6[0-24-9]|
+              [3-578]\d
             )|
             7(?:
               0[07]|
       </fixedLine>
       <mobile>
         <!-- Adding 86 from numbers found online, along with 88 (these numbers seem to be one digit
-             longer as well.) -->
+             longer as well.) Adding 97 followed by 7 digits as such numbers have been found online.
+             -->
         <nationalNumberPattern>
           (?:
             (?:
               1[0-35-9]|
               6[6-9]|
-              7[06-89]|
-              9\d
+              7[06-89]
             )[1-9]|
             8(?:
               0[89]|
               5[2-689]|
               8\d{2}|
               [13469]\d|
+            )|
+            9(?:
+              [0-689][1-9]|
+              7[1-9]\d?
             )
           )\d{5}
         </nationalNumberPattern>
         <nationalNumberPattern>
           (?:
             5(?:
-              0[0-25]|
+              0[0-26]|
               5\d
             )|
             6(?:
               5[015-9]|
               6\d|
               7[067]|
-              99
+              9[69]
             )|
             9(?:
               0[09]|
         <exampleNumber>1123456</exampleNumber>
       </fixedLine>
       <mobile>
-        <!-- Adding 76[389] from numbers where SMSs have been received and online examples have been
-             found. -->
         <nationalNumberPattern>
           (?:
             3\d|
         <possibleNumberPattern>\d{9,11}</possibleNumberPattern>
         <exampleNumber>900123456</exampleNumber>
       </premiumRate>
+      <emergency>
+        <nationalNumberPattern>111</nationalNumberPattern>
+        <possibleNumberPattern>\d{3}</possibleNumberPattern>
+        <exampleNumber>111</exampleNumber>
+      </emergency>
     </territory>
 
     <!-- Oman -->
       </fixedLine>
       <mobile>
         <!-- Adding 90X as online numbers have been found with this prefix. -->
-        <nationalNumberPattern>9[01259]\d{7}</nationalNumberPattern>
+        <nationalNumberPattern>9[012569]\d{7}</nationalNumberPattern>
         <exampleNumber>911231234</exampleNumber>
       </mobile>
     </territory>
 
     <!-- Somalia -->
     <!-- http://www.itu.int/oth/T02020000C0/en -->
+    <!-- http://en.wikipedia.org/wiki/+252 -->
     <!-- This document seems to cover only a small set of prefixes in Somalia.
     Somalia has limited information available, and the numerous telecom carriers
     were previously working under an unregulated environment. The extra prefixes
     <territory id="SO" countryCode="252" internationalPrefix="00">
       <availableFormats>
         <!-- These follow formats online, such as www.hortel.net/contact_us.html -->
-        <numberFormat pattern="([13-5])(\d{6})">
+        <numberFormat pattern="(\d)(\d{6})">
           <leadingDigits>[13-5]</leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
+        <numberFormat pattern="(2)(\d{7})">
+          <leadingDigits>2</leadingDigits>
+          <format>$1 $2</format>
+        </numberFormat>
         <!-- Unfortunately numbers beginning with 1 are hard to format based on prefixes, since it
              depends on number length. -->
-        <numberFormat pattern="([19]\d)(\d{6})">
-          <leadingDigits>15|9</leadingDigits>
+        <numberFormat pattern="([169]\d)(\d{6})">
+          <leadingDigits>
+            15|
+            62|
+            9
+          </leadingDigits>
+          <format>$1 $2</format>
+        </numberFormat>
+        <numberFormat pattern="(61)(\d{7})">
+          <leadingDigits>61</leadingDigits>
+          <format>$1 $2</format>
+        </numberFormat>
+        <numberFormat pattern="(699)(\d{6})">
+          <leadingDigits>699</leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
       </availableFormats>
       <generalDesc>
-        <nationalNumberPattern>[13-59]\d{6,7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
+        <nationalNumberPattern>[1-69]\d{6,8}</nationalNumberPattern>
+        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
       </generalDesc>
       <fixedLine>
+        <!-- 699 has been added from prefixes found in online numbers. -->
         <nationalNumberPattern>
           (?:
             5[57-9]|
+            6[19]\d{2}|
             [134]\d
           )\d{5}
         </nationalNumberPattern>
-        <possibleNumberPattern>\d{7}</possibleNumberPattern>
+        <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
         <!-- Example numbers are test numbers from the document. -->
         <exampleNumber>5522010</exampleNumber>
       </fixedLine>
       <mobile>
+        <!-- 24 is used by the carrier Telesom. -->
+        <!-- 62 has been added from prefixes found in online numbers. -->
         <nationalNumberPattern>
           (?:
-            9[01]|
-            15
+            15|
+            24|
+            62|
+            9[01]
           )\d{6}
         </nationalNumberPattern>
         <possibleNumberPattern>\d{8}</possibleNumberPattern>
         </nationalNumberPattern>
         <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
       </generalDesc>
+      <noInternationalDialling>
+        <nationalNumberPattern>444\d{4}</nationalNumberPattern>
+        <possibleNumberPattern>\d{7}</possibleNumberPattern>
+        <exampleNumber>4441444</exampleNumber>
+      </noInternationalDialling>
       <fixedLine>
         <!-- Includes numbers starting with 392 for Northern Cyprus. -->
         <nationalNumberPattern>
     <territory id="UG" countryCode="256" internationalPrefix="00[057]"
                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
       <availableFormats>
-        <numberFormat pattern="([247-9]\d{2})(\d{6})">
+        <numberFormat pattern="(\d{3})(\d{6})">
           <leadingDigits>
             [7-9]|
             200|
           </leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
-        <numberFormat pattern="([34]\d)(\d{7})">
+        <numberFormat pattern="(\d{2})(\d{7})">
           <leadingDigits>
+            204|
             3|
             4(?:
               [1-5]|
             96
           )\d{6}|
           20(?:
-            0\d|
+            [04]\d|
             24
           )\d{5}
         </nationalNumberPattern>
         <exampleNumber>312345678</exampleNumber>
       </fixedLine>
       <mobile>
-        <!-- Added 79X and 70[5-7] from online numbers found with this prefix. -->
+        <!-- Added 79[5-9] and 70[5-7] from online numbers found with this prefix. -->
         <nationalNumberPattern>
           7(?:
             [15789]\d|
         <possibleNumberPattern>\d{10}</possibleNumberPattern>
         <exampleNumber>5002345678</exampleNumber>
       </personalNumber>
+      <emergency>
+        <nationalNumberPattern>911</nationalNumberPattern>
+        <possibleNumberPattern>\d{3}</possibleNumberPattern>
+        <exampleNumber>911</exampleNumber>
+      </emergency>
     </territory>
 
     <!-- Uruguay -->
     </territory>
 
     <!-- Uzbekistan -->
+    <!-- http://www.ttts.uz/eng/telephone_codes/codes_uzb_eng -->
     <!-- http://www.itu.int/oth/T02020000E1/en -->
     <territory id="UZ" countryCode="998" internationalPrefix="8~10"
                nationalPrefix="8" nationalPrefixFormattingRule="$NP$FG">
         <possibleNumberPattern>\d{7,9}</possibleNumberPattern>
       </generalDesc>
       <fixedLine>
-        <!-- Adding 70 prefix as suggested by http://www.ttts.uz/eng/telephone_codes/codes_uzb_eng
-             -->
         <nationalNumberPattern>
           (?:
-            6[125679]|
-            7[0-69]
-          )\d{7}
+            6(?:
+              1(?:
+                22|
+                3[124]|
+                4[1-4]|
+                5[123578]|
+                64
+              )|
+              2(?:
+                22|
+                3[0-57-9]|
+                41
+              )|
+              5(?:
+                22|
+                3[3-7]|
+                5[024-8]
+              )|
+              6\d{2}|
+              7(?:
+                [23]\d|
+                7[69]|
+              )|
+              9(?:
+                4[1-8]|
+                6[135]
+              )
+            )|
+            7(?:
+              0(?:
+                5[4-9]|
+                6[0146]|
+                7[12456]|
+                9[135-8]
+              )|
+              12\d|
+              2(?:
+                22|
+                3[1345789]|
+                4[123579]|
+                5[14]
+              )|
+              3(?:
+                2\d|
+                3[1578]|
+                4[1-35-7]|
+                5[1-57]|
+                61
+              )|
+              4(?:
+                2\d|
+                3[1-4579]|
+                7[1-79]
+              )|
+              5(?:
+                22|
+                5[1-9]|
+                6[1457]
+              )|
+              6(?:
+                22|
+                3[12457]|
+                4[13-8]
+              )|
+              9(?:
+                22|
+                5[1-9]
+              )
+            )
+          )\d{5}
         </nationalNumberPattern>
-        <exampleNumber>612345678</exampleNumber>
+        <exampleNumber>662345678</exampleNumber>
       </fixedLine>
       <mobile>
         <!-- Adding 9[45] as suggested by http://www.ucell.uz/en/for_subscribers/how_to_call.html
-             -->
-        <nationalNumberPattern>9[0-57-9]\d{7}</nationalNumberPattern>
+             Adding other prefixes from http://www.weltvorwahlen.de/99861353.html, and any other
+             prefixes Tyntec has a carrier mapped to. -->
+        <nationalNumberPattern>
+          6(?:
+            1(?:
+              2(?:
+                98|
+                2[01]
+              )|
+              35[0-4]|
+              50\d|
+              61[23]|
+              7(?:
+                [01][017]|
+                4\d|
+                55|
+                9[5-9]
+              )
+            )|
+            2(?:
+              11\d|
+              2(?:
+                [12]1|
+                9[01379]
+              )|
+              5(?:
+                [126]\d|
+                3[0-4]
+              )|
+              7\d{2}
+            )|
+            5(?:
+              19[01]|
+              2(?:
+                27|
+                9[26]
+              )|
+              30\d|
+              59\d|
+              7\d{2}
+            )|
+            6(?:
+              2(?:
+                1[5-9]|
+                2[0367]|
+                38|
+                41|
+                52|
+                60
+              )|
+              3[79]\d|
+              4(?:
+                56|
+                83
+              )|
+              7(?:
+                [07]\d|
+                1[017]|
+                3[07]|
+                4[047]|
+                5[057]|
+                67|
+                8[0178]|
+                9[79]
+                )|
+              9[0-3]\d
+            )|
+            7(?:
+              2(?:
+                24|
+                3[237]|
+                4[5-9]|
+                7[15-8]
+              )|
+              5(?:
+                7[12]|
+                8[0589]
+              )|
+              7(?:
+                0\d|
+                [39][07]
+              )|
+              9(?:
+                0\d|
+                7[079]
+              )
+            )|
+            9(
+              2(?:
+                1[1267]|
+                5\d|
+                3[01]|
+                7[0-4]
+              )|
+              5[67]\d|
+              6(?:
+                2[0-26]|
+                8\d
+              )|
+              7\d{2}
+            )
+          )\d{4}|
+          7(?:
+            0\d{3}|
+            1(?:
+              13[01]|
+              6(?:
+                0[47]|
+                1[67]|
+                66
+              )|
+              71[3-69]|
+              98\d
+            )|
+            2(?:
+              2(?:
+                2[79]|
+                95
+              )|
+              3(?:
+                2[5-9]|
+                6[0-6]
+              )|
+              57\d|
+              7(?:
+                0\d|
+                1[17]|
+                2[27]|
+                3[37]|
+                44|
+                5[057]|
+                66|
+                88
+              )
+            )|
+            3(?:
+              2(?:
+                1[0-6]|
+                21|
+                3[469]|
+                7[159]
+              )|
+              33\d|
+              5(?:
+                0[0-4]|
+                5[579]|
+                9\d
+              )|
+              7(?:
+                [0-3579]\d|
+                4[0467]|
+                6[67]|
+                8[078]
+              )|
+              9[4-6]\d
+            )|
+            4(?:
+              2(?:
+                29|
+                5[0257]|
+                6[0-7]|
+                7[1-57]
+              )|
+              5(?:
+                1[0-4]|
+                8\d|
+                9[5-9]
+              )|
+              7(?:
+                0\d|
+                1[024589]|
+                2[0127]|
+                3[0137]|
+                [46][07]|
+                5[01]|
+                7[5-9]|
+                9[079]
+              )|
+              9(?:
+                7[015-9]|
+                [89]\d
+              )
+            )|
+            5(?:
+              112|
+              2(?:
+                0\d|
+                2[29]|
+                [49]4
+              )|
+              3[1568]\d|
+              52[6-9]|
+              7(?:
+                0[01578]|
+                1[017]|
+                [23]7|
+                4[047]|
+                [5-7]\d|
+                8[78]|
+                9[079]
+              )
+            )|
+            6(?:
+              2(?:
+                2[1245]|
+                4[2-4]
+              )|
+              39\d|
+              41[179]|
+              5(?:
+                [349]\d|
+                5[0-2]
+              )|
+              7(?:
+                0[017]|
+                [13]\d|
+                22|
+                44|
+                55|
+                67|
+                88
+              )
+            )|
+            9(?:
+              22[128]|
+              3(?:
+                2[0-4]|
+                7\d
+              )|
+              57[05629]|
+              7(?:
+                2[05-9]|
+                3[37]|
+                4\d|
+                60|
+                7[2579]|
+                87|
+                9[07]
+              )
+            )
+          )\d{4}|
+          9[0-57-9]\d{7}
+        </nationalNumberPattern>
         <exampleNumber>912345678</exampleNumber>
       </mobile>
       <!-- No tollFree or premiumRate information can be found. -->
index fbd4549..2af674b 100644 (file)
@@ -120,6 +120,7 @@ message PhoneMetadata {
   required PhoneNumberDesc voip = 8;
   required PhoneNumberDesc pager = 21;
   required PhoneNumberDesc uan = 25;
+  required PhoneNumberDesc emergency = 27;
   // The rules here distinguish the numbers that are only able to be dialled
   // nationally.
   required PhoneNumberDesc no_international_dialling = 24;
diff --git a/resources/test/geocoding/de/1.txt b/resources/test/geocoding/de/1.txt
new file mode 100644 (file)
index 0000000..ebd0d2d
--- /dev/null
@@ -0,0 +1,16 @@
+# Copyright (C) 2011 The Libphonenumber Authors
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+1201|New Jersey
+1650|Kalifornien
index 00e5038..8154768 100644 (file)
@@ -27,4 +27,3 @@
 8261|전남
 8262|광주
 8263|전북
-8264|제주
index bdd3116..a107309 100644 (file)
@@ -49,6 +49,7 @@ public class BuildMetadataFromXml {
   // String constants used to fetch the XML nodes and attributes.
   private static final String CARRIER_CODE_FORMATTING_RULE = "carrierCodeFormattingRule";
   private static final String COUNTRY_CODE = "countryCode";
+  private static final String EMERGENCY = "emergency";
   private static final String EXAMPLE_NUMBER = "exampleNumber";
   private static final String FIXED_LINE = "fixedLine";
   private static final String FORMAT = "format";
@@ -427,6 +428,7 @@ public class BuildMetadataFromXml {
                                                              PERSONAL_NUMBER));
     metadata.setPager(processPhoneNumberDescElement(generalDesc, element, PAGER));
     metadata.setUan(processPhoneNumberDescElement(generalDesc, element, UAN));
+    metadata.setEmergency(processPhoneNumberDescElement(generalDesc, element, EMERGENCY));
     metadata.setNoInternationalDialling(processPhoneNumberDescElement(generalDesc, element,
                                                                       NO_INTERNATIONAL_DIALLING));
     metadata.setSameMobileAndFixedLinePattern(
index 1e2782a..779034c 100644 (file)
Binary files a/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar and b/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar differ
index 4957111..5d164e0 100644 (file)
@@ -34,6 +34,7 @@ import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -41,6 +42,7 @@ import java.util.SortedMap;
 import java.util.TreeMap;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import java.util.regex.Pattern;
 
 /**
  * A utility that generates the binary serialization of the area code/location mappings from
@@ -59,6 +61,12 @@ public class GenerateAreaCodeData extends Command {
   // The path to the output directory.
   private final File outputPath;
   private static final int NANPA_COUNTRY_CODE = 1;
+  // Pattern used to match the two-letter-long language code contained in the input text file path.
+  private static final Pattern LANGUAGE_IN_FILE_PATH_PATTERN =
+      Pattern.compile("(.*)(?:[a-z]{2})(/\\d+\\.txt)");
+  // Map used to store the English mappings to avoid reading the English text files multiple times.
+  private final Map<Integer /* country code */, SortedMap<Integer, String>> englishMaps =
+      new HashMap<Integer, SortedMap<Integer,String>>();
 
   private static final Logger LOGGER = Logger.getLogger(GenerateAreaCodeData.class.getName());
 
@@ -232,6 +240,22 @@ public class GenerateAreaCodeData extends Command {
   }
 
   /**
+   * Returns the country code extracted from the provided text file name expected as
+   * [1-9][0-9]*.txt.
+   *
+   * @throws RuntimeException if the file path is not formatted as expected
+   */
+  private static int getCountryCodeFromTextFileName(String filename) {
+    int indexOfDot = filename.indexOf('.');
+    if (indexOfDot < 1) {
+      throw new RuntimeException(
+          String.format("unexpected file name %s, expected pattern [1-9][0-9]*.txt", filename));
+    }
+    String countryCode = filename.substring(0, indexOfDot);
+    return Integer.parseInt(countryCode);
+  }
+
+  /**
    * Generates the mappings between the input text files and the output binary files.
    *
    * @throws IOException
@@ -251,18 +275,9 @@ public class GenerateAreaCodeData extends Command {
           continue;
         }
         String countryCodeFileName = countryCodeFile.getName();
-        int indexOfDot = countryCodeFileName.indexOf('.');
-        if (indexOfDot == -1) {
-          throw new RuntimeException(
-              String.format("unexpected file name %s, expected pattern .*\\.txt",
-                            countryCodeFileName));
-        }
-        String countryCode = countryCodeFileName.substring(0, indexOfDot);
-        if (!countryCode.matches("\\d+")) {
-          throw new RuntimeException("unexpected file " + countryCodeFileName);
-        }
         List<File> outputFiles = createOutputFiles(
-            countryCodeFile, Integer.parseInt(countryCode), languageDirectory.getName());
+            countryCodeFile, getCountryCodeFromTextFileName(countryCodeFileName),
+            languageDirectory.getName());
         mappings.put(countryCodeFile, outputFiles);
       }
     }
@@ -343,10 +358,105 @@ public class GenerateAreaCodeData extends Command {
   }
 
   /**
+   * Gets the English data text file path corresponding to the provided one.
+   */
+  // @VisibleForTesting
+  static String getEnglishDataPath(File inputTextFile) {
+    return LANGUAGE_IN_FILE_PATH_PATTERN.matcher(inputTextFile.getAbsolutePath()).replaceFirst(
+        "$1en$2");
+  }
+
+  /**
+   * Tests whether any prefix of the given number overlaps with any phone number prefix contained in
+   * the provided map.
+   */
+  // @VisibleForTesting
+  static boolean hasOverlappingPrefix(int number, SortedMap<Integer, String> mappings) {
+    while (number > 0) {
+      number = number / 10;
+      if (mappings.get(number) != null) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  /**
+   * Compresses the provided non-English map according to the English map provided. For each mapping
+   * which is contained in both maps with a same description this method either:
+   * <ul>
+   *  <li> Removes from the non-English map the mapping whose prefix does not overlap with an
+   *       existing prefix in the map, or;
+   *  <li> Keeps this mapping in both maps but makes the description an empty string in the
+   *       non-English map.
+   * </ul>
+   */
+  // @VisibleForTesting
+  static void compressAccordingToEnglishData(
+      SortedMap<Integer, String> englishMap, SortedMap<Integer, String> nonEnglishMap) {
+    Iterator<Map.Entry<Integer, String>> it = nonEnglishMap.entrySet().iterator();
+    while (it.hasNext()) {
+      Map.Entry<Integer, String> entry = it.next();
+      int prefix = entry.getKey();
+      String englishDescription = englishMap.get(prefix);
+      if (englishDescription != null && englishDescription.equals(entry.getValue())) {
+        if (!hasOverlappingPrefix(prefix, nonEnglishMap)) {
+          it.remove();
+        } else {
+          nonEnglishMap.put(prefix, "");
+        }
+      }
+    }
+  }
+
+  /**
+   * Compresses the provided mappings according to the English data file if any.
+   *
+   * @throws IOException
+   */
+  private void makeDataFallbackToEnglish(File inputTextFile, SortedMap<Integer, String> mappings)
+      throws IOException {
+    File englishTextFile = new File(getEnglishDataPath(inputTextFile));
+    if (inputTextFile.getAbsolutePath().equals(englishTextFile.getAbsolutePath()) ||
+        !englishTextFile.exists()) {
+      return;
+    }
+    int countryCode = getCountryCodeFromTextFileName(inputTextFile.getName());
+    SortedMap<Integer, String> englishMap = englishMaps.get(countryCode);
+    if (englishMap == null) {
+      FileInputStream englishFileInputStream = null;
+      try {
+        englishFileInputStream = new FileInputStream(englishTextFile);
+        englishMap = readMappingsFromTextFile(englishFileInputStream);
+        englishMaps.put(countryCode, englishMap);
+      } finally {
+        closeFile(englishFileInputStream);
+      }
+    }
+    compressAccordingToEnglishData(englishMap, mappings);
+  }
+
+  /**
+   * Removes the empty-description mappings in the provided map if the language passed-in is "en".
+   */
+  // @VisibleForTesting
+  static void removeEmptyEnglishMappings(SortedMap<Integer, String> map, String lang) {
+    if (!lang.equals("en")) {
+      return;
+    }
+    Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
+    while (it.hasNext()) {
+      Map.Entry<Integer, String> mapping = it.next();
+      if (mapping.getValue().isEmpty()) {
+        it.remove();
+      }
+    }
+  }
+
+  /**
    * Runs the area code data generator.
    *
    * @throws IOException
-   * @throws FileNotFoundException
    */
   public void run() throws IOException {
     Map<File, List<File>> inputOutputMappings = createInputOutputMappings();
@@ -361,6 +471,8 @@ public class GenerateAreaCodeData extends Command {
         List<File> outputBinaryFiles = inputOutputMapping.getValue();
         fileInputStream = new FileInputStream(textFile);
         SortedMap<Integer, String> mappings = readMappingsFromTextFile(fileInputStream);
+        removeEmptyEnglishMappings(mappings, textFile.getParentFile().getName());
+        makeDataFallbackToEnglish(textFile, mappings);
         Map<File, SortedMap<Integer, String>> mappingsForFiles =
             splitMap(mappings, outputBinaryFiles);
 
index f55eb21..2f7279d 100644 (file)
Binary files a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar and b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar differ
index ac9d97f..807afe8 100644 (file)
@@ -200,4 +200,93 @@ public class GenerateAreaCodeDataTest extends TestCase {
       // Expected.
     }
   }
+
+  public void testGetEnglishDataPath() {
+    assertEquals("/path/en/33.txt",
+                 GenerateAreaCodeData.getEnglishDataPath(new File("/path/fr/33.txt")));
+  }
+
+  public void testHasOverlap() {
+    SortedMap<Integer, String> map = new TreeMap<Integer, String>();
+    map.put(1234, "");
+    map.put(123, "");
+    map.put(2345, "");
+
+    assertTrue(GenerateAreaCodeData.hasOverlappingPrefix(1234, map));
+    assertFalse(GenerateAreaCodeData.hasOverlappingPrefix(2345, map));
+  }
+
+  public void testCompressAccordingToEnglishDataMakesDescriptionEmpty() {
+    SortedMap<Integer, String> frenchMappings = new TreeMap<Integer, String>();
+    frenchMappings.put(411, "Genève");
+    frenchMappings.put(4112, "Zurich");
+
+    SortedMap<Integer, String> englishMappings = new TreeMap<Integer, String>();
+    englishMappings.put(411, "Geneva");
+    englishMappings.put(4112, "Zurich");
+    // The English map should not be modified.
+    englishMappings = Collections.unmodifiableSortedMap(englishMappings);
+
+    GenerateAreaCodeData.compressAccordingToEnglishData(englishMappings, frenchMappings);
+
+    assertEquals(2, frenchMappings.size());
+    assertEquals("Genève", frenchMappings.get(411));
+    assertEquals("", frenchMappings.get(4112));
+  }
+
+  public void testCompressAccordingToEnglishDataRemovesMappingWhenNoOverlap() {
+    SortedMap<Integer, String> frenchMappings = new TreeMap<Integer, String>();
+    frenchMappings.put(411, "Genève");
+    frenchMappings.put(412, "Zurich");
+
+    SortedMap<Integer, String> englishMappings = new TreeMap<Integer, String>();
+    englishMappings.put(411, "Geneva");
+    englishMappings.put(412, "Zurich");
+    // The English map should not be modified.
+    englishMappings = Collections.unmodifiableSortedMap(englishMappings);
+
+    GenerateAreaCodeData.compressAccordingToEnglishData(englishMappings, frenchMappings);
+
+    assertEquals(1, frenchMappings.size());
+    assertEquals("Genève", frenchMappings.get(411));
+  }
+
+  public void testCompressAccordingToEnglishData() {
+    SortedMap<Integer, String> frenchMappings = new TreeMap<Integer, String>();
+    frenchMappings.put(12, "A");
+    frenchMappings.put(123, "B");
+
+    SortedMap<Integer, String> englishMappings = new TreeMap<Integer, String>();
+    englishMappings.put(12, "A");
+    englishMappings.put(123, "B");
+    // The English map should not be modified.
+    englishMappings = Collections.unmodifiableSortedMap(englishMappings);
+
+    GenerateAreaCodeData.compressAccordingToEnglishData(englishMappings, frenchMappings);
+
+    assertEquals(0, frenchMappings.size());
+  }
+
+  public void testRemoveEmptyEnglishMappingsDoesNotRemoveNonEnglishMappings() {
+    SortedMap<Integer, String> frenchMappings = new TreeMap<Integer, String>();
+    frenchMappings.put(331, "Paris");
+    frenchMappings.put(334, "");
+    // The French map should not be modified.
+    frenchMappings = Collections.unmodifiableSortedMap(frenchMappings);
+
+    GenerateAreaCodeData.removeEmptyEnglishMappings(frenchMappings, "fr");
+
+    assertEquals(2, frenchMappings.size());
+  }
+
+  public void testRemoveEmptyEnglishMappings() {
+    SortedMap<Integer, String> englishMappings = new TreeMap<Integer, String>();
+    englishMappings.put(331, "Paris");
+    englishMappings.put(334, "");
+
+    GenerateAreaCodeData.removeEmptyEnglishMappings(englishMappings, "en");
+
+    assertEquals(1, englishMappings.size());
+    assertEquals("Paris", englishMappings.get(331));
+  }
 }