phonelib 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1989) hide show
  1. checksums.yaml +4 -4
  2. data/data/extended_data.dat +0 -0
  3. data/data/phone_data.dat +0 -0
  4. data/lib/phonelib/data_importer.rb +1 -1
  5. data/lib/phonelib/phone_analyzer.rb +32 -12
  6. data/lib/phonelib/phone_analyzer_helper.rb +21 -2
  7. data/lib/phonelib/phone_formatter.rb +13 -0
  8. data/lib/phonelib/version.rb +1 -1
  9. data/lib/validators/phone_validator.rb +1 -1
  10. metadata +2 -1981
  11. data/data/libphonenumber/AUTHORS +0 -4
  12. data/data/libphonenumber/CONTRIBUTING.md +0 -47
  13. data/data/libphonenumber/CONTRIBUTORS +0 -69
  14. data/data/libphonenumber/FALSEHOODS.md +0 -237
  15. data/data/libphonenumber/FAQ.md +0 -190
  16. data/data/libphonenumber/LICENSE +0 -176
  17. data/data/libphonenumber/LICENSE.Chromium +0 -37
  18. data/data/libphonenumber/README.md +0 -116
  19. data/data/libphonenumber/codereview.settings +0 -4
  20. data/data/libphonenumber/cpp/CMakeLists.txt +0 -592
  21. data/data/libphonenumber/cpp/LICENSE +0 -13
  22. data/data/libphonenumber/cpp/README +0 -344
  23. data/data/libphonenumber/cpp/src/phonenumbers/alternate_format.cc +0 -907
  24. data/data/libphonenumber/cpp/src/phonenumbers/alternate_format.h +0 -29
  25. data/data/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.cc +0 -781
  26. data/data/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.h +0 -243
  27. data/data/libphonenumber/cpp/src/phonenumbers/base/basictypes.h +0 -263
  28. data/data/libphonenumber/cpp/src/phonenumbers/base/logging.h +0 -45
  29. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/scoped_ptr.h +0 -450
  30. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/singleton.h +0 -95
  31. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/singleton_posix.h +0 -53
  32. data/data/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.cc +0 -221
  33. data/data/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.h +0 -194
  34. data/data/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock.h +0 -91
  35. data/data/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock_posix.h +0 -63
  36. data/data/libphonenumber/cpp/src/phonenumbers/base/template_util.h +0 -108
  37. data/data/libphonenumber/cpp/src/phonenumbers/base/thread_checker.h +0 -70
  38. data/data/libphonenumber/cpp/src/phonenumbers/callback.h +0 -88
  39. data/data/libphonenumber/cpp/src/phonenumbers/default_logger.cc +0 -57
  40. data/data/libphonenumber/cpp/src/phonenumbers/default_logger.h +0 -105
  41. data/data/libphonenumber/cpp/src/phonenumbers/encoding_utils.h +0 -51
  42. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/area_code_map.cc +0 -94
  43. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/area_code_map.h +0 -75
  44. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/default_map_storage.cc +0 -65
  45. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/default_map_storage.h +0 -76
  46. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/geocoding_data.h +0 -77
  47. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/mapping_file_provider.cc +0 -175
  48. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/mapping_file_provider.h +0 -75
  49. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc +0 -226
  50. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.h +0 -165
  51. data/data/libphonenumber/cpp/src/phonenumbers/lite_metadata.cc +0 -11547
  52. data/data/libphonenumber/cpp/src/phonenumbers/logger.cc +0 -27
  53. data/data/libphonenumber/cpp/src/phonenumbers/logger.h +0 -103
  54. data/data/libphonenumber/cpp/src/phonenumbers/matcher_api.h +0 -54
  55. data/data/libphonenumber/cpp/src/phonenumbers/metadata.cc +0 -12478
  56. data/data/libphonenumber/cpp/src/phonenumbers/metadata.h +0 -29
  57. data/data/libphonenumber/cpp/src/phonenumbers/normalize_utf8.h +0 -50
  58. data/data/libphonenumber/cpp/src/phonenumbers/phonenumber.cc +0 -87
  59. data/data/libphonenumber/cpp/src/phonenumbers/phonenumber.h +0 -40
  60. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.cc +0 -91
  61. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.h +0 -125
  62. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.cc +0 -907
  63. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.h +0 -201
  64. data/data/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc +0 -2926
  65. data/data/libphonenumber/cpp/src/phonenumbers/phonenumberutil.h +0 -868
  66. data/data/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.cc +0 -68
  67. data/data/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.h +0 -61
  68. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter.h +0 -168
  69. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc +0 -237
  70. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.h +0 -41
  71. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_re2.cc +0 -155
  72. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_re2.h +0 -40
  73. data/data/libphonenumber/cpp/src/phonenumbers/regexp_cache.cc +0 -60
  74. data/data/libphonenumber/cpp/src/phonenumbers/regexp_cache.h +0 -77
  75. data/data/libphonenumber/cpp/src/phonenumbers/regexp_factory.h +0 -44
  76. data/data/libphonenumber/cpp/src/phonenumbers/region_code.h +0 -40
  77. data/data/libphonenumber/cpp/src/phonenumbers/short_metadata.cc +0 -3032
  78. data/data/libphonenumber/cpp/src/phonenumbers/short_metadata.h +0 -29
  79. data/data/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.cc +0 -427
  80. data/data/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.h +0 -240
  81. data/data/libphonenumber/cpp/src/phonenumbers/stl_util.h +0 -51
  82. data/data/libphonenumber/cpp/src/phonenumbers/string_byte_sink.cc +0 -33
  83. data/data/libphonenumber/cpp/src/phonenumbers/string_byte_sink.h +0 -40
  84. data/data/libphonenumber/cpp/src/phonenumbers/stringutil.cc +0 -448
  85. data/data/libphonenumber/cpp/src/phonenumbers/stringutil.h +0 -176
  86. data/data/libphonenumber/cpp/src/phonenumbers/test_metadata.cc +0 -885
  87. data/data/libphonenumber/cpp/src/phonenumbers/unicodestring.cc +0 -114
  88. data/data/libphonenumber/cpp/src/phonenumbers/unicodestring.h +0 -133
  89. data/data/libphonenumber/cpp/src/phonenumbers/utf/README +0 -1
  90. data/data/libphonenumber/cpp/src/phonenumbers/utf/rune.c +0 -358
  91. data/data/libphonenumber/cpp/src/phonenumbers/utf/stringpiece.h +0 -23
  92. data/data/libphonenumber/cpp/src/phonenumbers/utf/stringprintf.h +0 -22
  93. data/data/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc +0 -520
  94. data/data/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h +0 -461
  95. data/data/libphonenumber/cpp/src/phonenumbers/utf/unilib.cc +0 -68
  96. data/data/libphonenumber/cpp/src/phonenumbers/utf/unilib.h +0 -99
  97. data/data/libphonenumber/cpp/src/phonenumbers/utf/utf.h +0 -240
  98. data/data/libphonenumber/cpp/src/phonenumbers/utf/utfdef.h +0 -27
  99. data/data/libphonenumber/cpp/test/phonenumbers/asyoutypeformatter_test.cc +0 -1237
  100. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/area_code_map_test.cc +0 -201
  101. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_data_test.cc +0 -176
  102. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_test_data.h +0 -50
  103. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_test_program.cc +0 -44
  104. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/mapping_file_provider_test.cc +0 -91
  105. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/phonenumber_offline_geocoder_test.cc +0 -214
  106. data/data/libphonenumber/cpp/test/phonenumbers/logger_test.cc +0 -172
  107. data/data/libphonenumber/cpp/test/phonenumbers/phonenumbermatch_test.cc +0 -92
  108. data/data/libphonenumber/cpp/test/phonenumbers/phonenumbermatcher_test.cc +0 -1234
  109. data/data/libphonenumber/cpp/test/phonenumbers/phonenumberutil_test.cc +0 -3992
  110. data/data/libphonenumber/cpp/test/phonenumbers/regexp_adapter_test.cc +0 -322
  111. data/data/libphonenumber/cpp/test/phonenumbers/regexp_cache_test.cc +0 -60
  112. data/data/libphonenumber/cpp/test/phonenumbers/run_tests.cc +0 -21
  113. data/data/libphonenumber/cpp/test/phonenumbers/shortnumberinfo_test.cc +0 -483
  114. data/data/libphonenumber/cpp/test/phonenumbers/stringutil_test.cc +0 -306
  115. data/data/libphonenumber/cpp/test/phonenumbers/test_util.cc +0 -60
  116. data/data/libphonenumber/cpp/test/phonenumbers/test_util.h +0 -199
  117. data/data/libphonenumber/cpp/test/phonenumbers/unicodestring_test.cc +0 -236
  118. data/data/libphonenumber/cpp/test/phonenumbers/utf/unicodetext_test.cc +0 -45
  119. data/data/libphonenumber/debian/README.source +0 -21
  120. data/data/libphonenumber/debian/changelog +0 -5
  121. data/data/libphonenumber/debian/compat +0 -1
  122. data/data/libphonenumber/debian/control +0 -75
  123. data/data/libphonenumber/debian/copyright +0 -74
  124. data/data/libphonenumber/debian/libphonenumber7-dev.install +0 -3
  125. data/data/libphonenumber/debian/libphonenumber7-java.jlibs +0 -1
  126. data/data/libphonenumber/debian/libphonenumber7-java.poms +0 -39
  127. data/data/libphonenumber/debian/libphonenumber7.install +0 -1
  128. data/data/libphonenumber/debian/maven.cleanIgnoreRules +0 -17
  129. data/data/libphonenumber/debian/maven.ignoreRules +0 -23
  130. data/data/libphonenumber/debian/maven.properties +0 -4
  131. data/data/libphonenumber/debian/maven.publishedRules +0 -19
  132. data/data/libphonenumber/debian/maven.rules +0 -31
  133. data/data/libphonenumber/debian/patches/0003-maven-exclude-demo.patch +0 -13
  134. data/data/libphonenumber/debian/patches/series +0 -1
  135. data/data/libphonenumber/debian/rules +0 -89
  136. data/data/libphonenumber/debian/source/format +0 -1
  137. data/data/libphonenumber/debian/watch +0 -3
  138. data/data/libphonenumber/java/build.xml +0 -307
  139. data/data/libphonenumber/java/carrier/pom.xml +0 -68
  140. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/PhoneNumberToCarrierMapper.java +0 -124
  141. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1242_en +0 -0
  142. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1246_en +0 -0
  143. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1264_en +0 -0
  144. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1441_en +0 -0
  145. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1473_en +0 -0
  146. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1649_en +0 -0
  147. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1671_en +0 -0
  148. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1684_en +0 -0
  149. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1758_en +0 -0
  150. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1767_en +0 -0
  151. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1784_en +0 -0
  152. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1787_en +0 -0
  153. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1809_en +0 -0
  154. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1868_en +0 -0
  155. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1869_en +0 -0
  156. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1876_en +0 -0
  157. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1939_en +0 -0
  158. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/20_en +0 -0
  159. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/211_en +0 -0
  160. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/212_en +0 -0
  161. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/213_en +0 -0
  162. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/216_en +0 -0
  163. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/220_en +0 -0
  164. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/221_en +0 -0
  165. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/222_en +0 -0
  166. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/223_en +0 -0
  167. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/224_en +0 -0
  168. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/225_en +0 -0
  169. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/226_en +0 -0
  170. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/227_en +0 -0
  171. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/228_en +0 -0
  172. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/229_en +0 -0
  173. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/230_en +0 -0
  174. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/231_en +0 -0
  175. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/232_en +0 -0
  176. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/233_en +0 -0
  177. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/234_en +0 -0
  178. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/235_en +0 -0
  179. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/236_en +0 -0
  180. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/237_en +0 -0
  181. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/238_en +0 -0
  182. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/239_en +0 -0
  183. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/240_en +0 -0
  184. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/241_en +0 -0
  185. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/242_en +0 -0
  186. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/243_en +0 -0
  187. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/244_en +0 -0
  188. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/245_en +0 -0
  189. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/248_en +0 -0
  190. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/249_en +0 -0
  191. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/250_en +0 -0
  192. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/251_en +0 -0
  193. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/252_en +0 -0
  194. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/253_en +0 -0
  195. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/254_en +0 -0
  196. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/255_en +0 -0
  197. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/256_en +0 -0
  198. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/257_en +0 -0
  199. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/258_en +0 -0
  200. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/260_en +0 -0
  201. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/261_en +0 -0
  202. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/263_en +0 -0
  203. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/265_en +0 -0
  204. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/267_en +0 -0
  205. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/268_en +0 -0
  206. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/27_en +0 -0
  207. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/297_en +0 -0
  208. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/298_en +0 -0
  209. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/299_en +0 -0
  210. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/30_en +0 -0
  211. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/31_en +0 -0
  212. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/32_en +0 -0
  213. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/33_en +0 -0
  214. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/350_en +0 -0
  215. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/351_en +0 -0
  216. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/352_en +0 -0
  217. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/353_en +0 -0
  218. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/354_en +0 -0
  219. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/355_en +0 -0
  220. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/356_en +0 -0
  221. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/357_en +0 -0
  222. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/358_en +0 -0
  223. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/359_en +0 -0
  224. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/36_en +0 -0
  225. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/370_en +0 -0
  226. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/372_en +0 -0
  227. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/373_en +0 -0
  228. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/374_en +0 -0
  229. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/374_ru +0 -0
  230. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_be +0 -0
  231. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_en +0 -0
  232. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_ru +0 -0
  233. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/376_en +0 -0
  234. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/380_en +0 -0
  235. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/381_en +0 -0
  236. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/382_en +0 -0
  237. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/385_en +0 -0
  238. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/386_en +0 -0
  239. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/387_en +0 -0
  240. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/389_en +0 -0
  241. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/39_en +0 -0
  242. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/40_en +0 -0
  243. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/41_en +0 -0
  244. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/420_en +0 -0
  245. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/421_en +0 -0
  246. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/43_en +0 -0
  247. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/45_en +0 -0
  248. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/47_en +0 -0
  249. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/48_en +0 -0
  250. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/49_en +0 -0
  251. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/501_en +0 -0
  252. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/505_en +0 -0
  253. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/506_en +0 -0
  254. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/507_en +0 -0
  255. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/509_en +0 -0
  256. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/51_en +0 -0
  257. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/53_en +0 -0
  258. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/54_en +0 -0
  259. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/55_en +0 -0
  260. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/56_en +0 -0
  261. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/57_en +0 -0
  262. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/58_en +0 -0
  263. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/591_en +0 -0
  264. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/592_en +0 -0
  265. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/595_en +0 -0
  266. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/597_en +0 -0
  267. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/598_en +0 -0
  268. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/599_en +0 -0
  269. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/60_en +0 -0
  270. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/61_en +0 -0
  271. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/62_en +0 -0
  272. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/63_en +0 -0
  273. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/64_en +0 -0
  274. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/65_en +0 -0
  275. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/66_en +0 -0
  276. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/670_en +0 -0
  277. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/673_en +0 -0
  278. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/675_en +0 -0
  279. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/676_en +0 -0
  280. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/677_en +0 -0
  281. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/678_en +0 -0
  282. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/679_en +0 -0
  283. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/685_en +0 -0
  284. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/686_en +0 -0
  285. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/689_en +0 -0
  286. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/7_en +0 -0
  287. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/84_en +0 -0
  288. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_en +0 -0
  289. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh +0 -0
  290. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh_Hant +0 -0
  291. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/853_en +0 -0
  292. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/855_en +0 -0
  293. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/856_en +0 -0
  294. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_en +0 -0
  295. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_zh +0 -0
  296. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_zh_Hant +0 -0
  297. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/880_en +0 -0
  298. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/90_en +0 -0
  299. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/91_en +0 -0
  300. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/92_en +0 -0
  301. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/93_en +0 -0
  302. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/93_fa +0 -0
  303. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/94_en +0 -0
  304. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/95_en +0 -0
  305. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/960_en +0 -0
  306. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/961_en +0 -0
  307. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/962_en +0 -0
  308. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/963_en +0 -0
  309. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/964_en +0 -0
  310. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/965_ar +0 -0
  311. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/965_en +0 -0
  312. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/966_en +0 -0
  313. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/967_en +0 -0
  314. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/968_en +0 -0
  315. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/970_en +0 -0
  316. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/971_en +0 -0
  317. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/972_en +0 -0
  318. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/973_en +0 -0
  319. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/974_en +0 -0
  320. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/975_en +0 -0
  321. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/976_en +0 -0
  322. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/977_en +0 -0
  323. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/98_en +0 -0
  324. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/98_fa +0 -0
  325. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/992_en +0 -0
  326. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/993_en +0 -0
  327. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/994_en +0 -0
  328. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/995_en +0 -0
  329. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/996_en +0 -0
  330. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/998_en +0 -0
  331. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/config +0 -0
  332. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/PhoneNumberToCarrierMapperTest.java +0 -121
  333. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/1650_en +0 -0
  334. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/244_en +0 -0
  335. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/44_en +0 -0
  336. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/44_sv +0 -0
  337. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/config +0 -0
  338. data/data/libphonenumber/java/demo/README +0 -16
  339. data/data/libphonenumber/java/demo/build.xml +0 -59
  340. data/data/libphonenumber/java/demo/pom.xml +0 -112
  341. data/data/libphonenumber/java/demo/src/com/google/phonenumbers/PhoneNumberParserServlet.java +0 -434
  342. data/data/libphonenumber/java/demo/war/WEB-INF/appengine-web.xml +0 -11
  343. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-fileupload-1.2.1.jar +0 -0
  344. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-io-1.4.jar +0 -0
  345. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-lang-2.6.jar +0 -0
  346. data/data/libphonenumber/java/demo/war/WEB-INF/logging.properties +0 -13
  347. data/data/libphonenumber/java/demo/war/WEB-INF/web.xml +0 -18
  348. data/data/libphonenumber/java/demo/war/favicon.ico +0 -0
  349. data/data/libphonenumber/java/demo/war/phonenumberparser.jsp +0 -39
  350. data/data/libphonenumber/java/demo/war/stylesheets/main.css +0 -26
  351. data/data/libphonenumber/java/geocoder/pom.xml +0 -76
  352. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/PhoneNumberToTimeZonesMapper.java +0 -191
  353. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder.java +0 -217
  354. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1201_en +0 -0
  355. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1202_en +0 -0
  356. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1203_en +0 -0
  357. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1204_en +0 -0
  358. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1205_en +0 -0
  359. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1206_en +0 -0
  360. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1207_en +0 -0
  361. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1208_en +0 -0
  362. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1209_en +0 -0
  363. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1210_en +0 -0
  364. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1212_en +0 -0
  365. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1213_en +0 -0
  366. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1214_en +0 -0
  367. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1215_en +0 -0
  368. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1216_en +0 -0
  369. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1217_en +0 -0
  370. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1218_en +0 -0
  371. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1219_en +0 -0
  372. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1220_en +0 -0
  373. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1224_en +0 -0
  374. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1225_en +0 -0
  375. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1226_en +0 -0
  376. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1228_en +0 -0
  377. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1229_en +0 -0
  378. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1231_en +0 -0
  379. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1234_en +0 -0
  380. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1236_en +0 -0
  381. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1239_en +0 -0
  382. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1240_en +0 -0
  383. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1242_en +0 -0
  384. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1248_en +0 -0
  385. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1250_en +0 -0
  386. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1251_en +0 -0
  387. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1252_en +0 -0
  388. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1253_en +0 -0
  389. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1254_en +0 -0
  390. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1256_en +0 -0
  391. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1260_en +0 -0
  392. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1262_en +0 -0
  393. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1267_en +0 -0
  394. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1269_en +0 -0
  395. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1270_en +0 -0
  396. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1272_en +0 -0
  397. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1276_en +0 -0
  398. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1281_en +0 -0
  399. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1289_en +0 -0
  400. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1301_en +0 -0
  401. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1302_en +0 -0
  402. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1303_en +0 -0
  403. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1304_en +0 -0
  404. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1305_en +0 -0
  405. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1306_en +0 -0
  406. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1307_en +0 -0
  407. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1308_en +0 -0
  408. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1309_en +0 -0
  409. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1310_en +0 -0
  410. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1312_en +0 -0
  411. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1313_en +0 -0
  412. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1314_en +0 -0
  413. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1315_en +0 -0
  414. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1316_en +0 -0
  415. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1317_en +0 -0
  416. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1318_en +0 -0
  417. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1319_en +0 -0
  418. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1320_en +0 -0
  419. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1321_en +0 -0
  420. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1323_en +0 -0
  421. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1325_en +0 -0
  422. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1330_en +0 -0
  423. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1331_en +0 -0
  424. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1334_en +0 -0
  425. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1336_en +0 -0
  426. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1337_en +0 -0
  427. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1339_en +0 -0
  428. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1345_en +0 -0
  429. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1346_en +0 -0
  430. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1347_en +0 -0
  431. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1351_en +0 -0
  432. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1352_en +0 -0
  433. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1360_en +0 -0
  434. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1361_en +0 -0
  435. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1364_en +0 -0
  436. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1365_en +0 -0
  437. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1380_en +0 -0
  438. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1385_en +0 -0
  439. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1386_en +0 -0
  440. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1401_en +0 -0
  441. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1402_en +0 -0
  442. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1403_en +0 -0
  443. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1404_en +0 -0
  444. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1405_en +0 -0
  445. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1406_en +0 -0
  446. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1407_en +0 -0
  447. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1408_en +0 -0
  448. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1409_en +0 -0
  449. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1410_en +0 -0
  450. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1412_en +0 -0
  451. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1413_en +0 -0
  452. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1414_en +0 -0
  453. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1415_en +0 -0
  454. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1416_en +0 -0
  455. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1417_en +0 -0
  456. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1418_en +0 -0
  457. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1419_en +0 -0
  458. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1423_en +0 -0
  459. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1424_en +0 -0
  460. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1425_en +0 -0
  461. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1430_en +0 -0
  462. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1431_en +0 -0
  463. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1432_en +0 -0
  464. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1434_en +0 -0
  465. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1435_en +0 -0
  466. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1437_en +0 -0
  467. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1438_en +0 -0
  468. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1440_en +0 -0
  469. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1441_en +0 -0
  470. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1443_en +0 -0
  471. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1450_en +0 -0
  472. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1469_en +0 -0
  473. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1478_en +0 -0
  474. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1479_en +0 -0
  475. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1480_en +0 -0
  476. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1484_en +0 -0
  477. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1501_en +0 -0
  478. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1502_en +0 -0
  479. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1503_en +0 -0
  480. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1504_en +0 -0
  481. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1505_en +0 -0
  482. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1506_en +0 -0
  483. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1507_en +0 -0
  484. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1508_en +0 -0
  485. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1509_en +0 -0
  486. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1510_en +0 -0
  487. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1512_en +0 -0
  488. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1513_en +0 -0
  489. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1514_en +0 -0
  490. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1515_en +0 -0
  491. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1516_en +0 -0
  492. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1517_en +0 -0
  493. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1518_en +0 -0
  494. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1519_en +0 -0
  495. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1520_en +0 -0
  496. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1530_en +0 -0
  497. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1540_en +0 -0
  498. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1541_en +0 -0
  499. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1548_en +0 -0
  500. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1551_en +0 -0
  501. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1559_en +0 -0
  502. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1561_en +0 -0
  503. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1562_en +0 -0
  504. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1563_en +0 -0
  505. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1567_en +0 -0
  506. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1570_en +0 -0
  507. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1571_en +0 -0
  508. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1573_en +0 -0
  509. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1574_en +0 -0
  510. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1575_en +0 -0
  511. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1580_en +0 -0
  512. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1585_en +0 -0
  513. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1586_en +0 -0
  514. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1587_en +0 -0
  515. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1601_en +0 -0
  516. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1602_en +0 -0
  517. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1603_en +0 -0
  518. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1604_en +0 -0
  519. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1605_en +0 -0
  520. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1606_en +0 -0
  521. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1607_en +0 -0
  522. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1608_en +0 -0
  523. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1609_en +0 -0
  524. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1610_en +0 -0
  525. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1612_en +0 -0
  526. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1613_en +0 -0
  527. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1614_en +0 -0
  528. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1615_en +0 -0
  529. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1616_en +0 -0
  530. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1617_en +0 -0
  531. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1618_en +0 -0
  532. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1619_en +0 -0
  533. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1620_en +0 -0
  534. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1623_en +0 -0
  535. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1626_en +0 -0
  536. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1628_en +0 -0
  537. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1629_en +0 -0
  538. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1630_en +0 -0
  539. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1631_en +0 -0
  540. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1636_en +0 -0
  541. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1639_en +0 -0
  542. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1641_en +0 -0
  543. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1646_en +0 -0
  544. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1647_en +0 -0
  545. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1649_en +0 -0
  546. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1650_en +0 -0
  547. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1651_en +0 -0
  548. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1657_en +0 -0
  549. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1660_en +0 -0
  550. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1661_en +0 -0
  551. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1662_en +0 -0
  552. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1667_en +0 -0
  553. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1669_en +0 -0
  554. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1671_en +0 -0
  555. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1678_en +0 -0
  556. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1682_en +0 -0
  557. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1701_en +0 -0
  558. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1702_en +0 -0
  559. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1703_en +0 -0
  560. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1704_en +0 -0
  561. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1705_en +0 -0
  562. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1706_en +0 -0
  563. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1707_en +0 -0
  564. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1708_en +0 -0
  565. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1709_en +0 -0
  566. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1712_en +0 -0
  567. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1713_en +0 -0
  568. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1714_en +0 -0
  569. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1715_en +0 -0
  570. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1716_en +0 -0
  571. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1717_en +0 -0
  572. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1718_en +0 -0
  573. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1719_en +0 -0
  574. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1720_en +0 -0
  575. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1724_en +0 -0
  576. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1725_en +0 -0
  577. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1727_en +0 -0
  578. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1731_en +0 -0
  579. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1732_en +0 -0
  580. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1734_en +0 -0
  581. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1737_en +0 -0
  582. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1740_en +0 -0
  583. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1743_en +0 -0
  584. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1747_en +0 -0
  585. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1754_en +0 -0
  586. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1757_en +0 -0
  587. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1760_en +0 -0
  588. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1763_en +0 -0
  589. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1765_en +0 -0
  590. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1769_en +0 -0
  591. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1770_en +0 -0
  592. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1772_en +0 -0
  593. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1773_en +0 -0
  594. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1774_en +0 -0
  595. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1775_en +0 -0
  596. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1778_en +0 -0
  597. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1779_en +0 -0
  598. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1780_en +0 -0
  599. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1781_en +0 -0
  600. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1782_en +0 -0
  601. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1785_en +0 -0
  602. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1786_en +0 -0
  603. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1801_en +0 -0
  604. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1802_en +0 -0
  605. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1803_en +0 -0
  606. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1804_en +0 -0
  607. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1805_en +0 -0
  608. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1806_en +0 -0
  609. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1807_en +0 -0
  610. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1808_en +0 -0
  611. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1809_en +0 -0
  612. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1810_en +0 -0
  613. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1812_en +0 -0
  614. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1813_en +0 -0
  615. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1814_en +0 -0
  616. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1815_en +0 -0
  617. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1816_en +0 -0
  618. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1817_en +0 -0
  619. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1818_en +0 -0
  620. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1819_en +0 -0
  621. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1825_en +0 -0
  622. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1828_en +0 -0
  623. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1830_en +0 -0
  624. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1831_en +0 -0
  625. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1832_en +0 -0
  626. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1843_en +0 -0
  627. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1845_en +0 -0
  628. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1847_en +0 -0
  629. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1848_en +0 -0
  630. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1850_en +0 -0
  631. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1854_en +0 -0
  632. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1856_en +0 -0
  633. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1857_en +0 -0
  634. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1858_en +0 -0
  635. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1859_en +0 -0
  636. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1860_en +0 -0
  637. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1862_en +0 -0
  638. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1863_en +0 -0
  639. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1864_en +0 -0
  640. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1865_en +0 -0
  641. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1867_en +0 -0
  642. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1870_en +0 -0
  643. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1872_en +0 -0
  644. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1873_en +0 -0
  645. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1876_en +0 -0
  646. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1878_en +0 -0
  647. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1901_en +0 -0
  648. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1902_en +0 -0
  649. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1903_en +0 -0
  650. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1904_en +0 -0
  651. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1905_en +0 -0
  652. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1906_en +0 -0
  653. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1907_en +0 -0
  654. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1908_en +0 -0
  655. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1909_en +0 -0
  656. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1910_en +0 -0
  657. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1912_en +0 -0
  658. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1913_en +0 -0
  659. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1914_en +0 -0
  660. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1915_en +0 -0
  661. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1916_en +0 -0
  662. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1917_en +0 -0
  663. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1918_en +0 -0
  664. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1919_en +0 -0
  665. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1920_en +0 -0
  666. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1925_en +0 -0
  667. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1928_en +0 -0
  668. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1929_en +0 -0
  669. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1930_en +0 -0
  670. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1931_en +0 -0
  671. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1934_en +0 -0
  672. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1936_en +0 -0
  673. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1937_en +0 -0
  674. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1938_en +0 -0
  675. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1940_en +0 -0
  676. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1941_en +0 -0
  677. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1947_en +0 -0
  678. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1949_en +0 -0
  679. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1951_en +0 -0
  680. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1952_en +0 -0
  681. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1954_en +0 -0
  682. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1956_en +0 -0
  683. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1959_en +0 -0
  684. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1970_en +0 -0
  685. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1971_en +0 -0
  686. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1972_en +0 -0
  687. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1973_en +0 -0
  688. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1978_en +0 -0
  689. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1979_en +0 -0
  690. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1980_en +0 -0
  691. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1984_en +0 -0
  692. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1985_en +0 -0
  693. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1989_en +0 -0
  694. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/20_en +0 -0
  695. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_en +0 -0
  696. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_fr +0 -0
  697. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/213_en +0 -0
  698. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/216_en +0 -0
  699. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/220_en +0 -0
  700. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/221_en +0 -0
  701. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/222_en +0 -0
  702. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/222_fr +0 -0
  703. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/223_en +0 -0
  704. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/224_en +0 -0
  705. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/225_en +0 -0
  706. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/226_en +0 -0
  707. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_en +0 -0
  708. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_es +0 -0
  709. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_fr +0 -0
  710. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/229_en +0 -0
  711. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/229_fr +0 -0
  712. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_en +0 -0
  713. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_es +0 -0
  714. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_fr +0 -0
  715. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/232_en +0 -0
  716. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/233_en +0 -0
  717. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/234_en +0 -0
  718. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/237_en +0 -0
  719. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/238_en +0 -0
  720. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/239_en +0 -0
  721. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/239_pt +0 -0
  722. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/241_en +0 -0
  723. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/242_en +0 -0
  724. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/243_en +0 -0
  725. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/243_fr +0 -0
  726. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/244_en +0 -0
  727. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/244_pt +0 -0
  728. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_en +0 -0
  729. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_pt +0 -0
  730. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/247_en +0 -0
  731. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/249_en +0 -0
  732. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/251_en +0 -0
  733. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/252_en +0 -0
  734. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/254_en +0 -0
  735. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/256_en +0 -0
  736. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/257_en +0 -0
  737. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/258_en +0 -0
  738. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/258_pt +0 -0
  739. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/260_en +0 -0
  740. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/261_en +0 -0
  741. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/263_en +0 -0
  742. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/264_en +0 -0
  743. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/266_en +0 -0
  744. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/267_en +0 -0
  745. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/268_en +0 -0
  746. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/269_en +0 -0
  747. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/27_en +0 -0
  748. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/290_en +0 -0
  749. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/290_fr +0 -0
  750. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/299_en +0 -0
  751. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/30_el +0 -0
  752. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/30_en +0 -0
  753. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/31_en +0 -0
  754. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/31_nl +0 -0
  755. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_de +0 -0
  756. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_en +0 -0
  757. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_fr +0 -0
  758. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_nl +0 -0
  759. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/33_en +0 -0
  760. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/33_fr +0 -0
  761. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/34_en +0 -0
  762. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/34_es +0 -0
  763. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/351_en +0 -0
  764. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/351_pt +0 -0
  765. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_de +0 -0
  766. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_en +0 -0
  767. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_fr +0 -0
  768. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/353_en +0 -0
  769. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/354_en +0 -0
  770. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/355_en +0 -0
  771. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_en +0 -0
  772. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_fi +0 -0
  773. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_se +0 -0
  774. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/359_bg +0 -0
  775. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/359_en +0 -0
  776. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/36_en +0 -0
  777. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/36_hu +0 -0
  778. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/370_en +0 -0
  779. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/371_en +0 -0
  780. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/372_en +0 -0
  781. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_en +0 -0
  782. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_ro +0 -0
  783. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_ru +0 -0
  784. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_am +0 -0
  785. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_en +0 -0
  786. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_ru +0 -0
  787. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_be +0 -0
  788. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_en +0 -0
  789. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_ru +0 -0
  790. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/381_en +0 -0
  791. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/381_sr +0 -0
  792. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/389_en +0 -0
  793. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/39_en +0 -0
  794. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/39_it +0 -0
  795. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/40_en +0 -0
  796. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/40_ro +0 -0
  797. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_de +0 -0
  798. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_en +0 -0
  799. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_fr +0 -0
  800. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_it +0 -0
  801. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/420_en +0 -0
  802. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/421_en +0 -0
  803. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/43_de +0 -0
  804. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/43_en +0 -0
  805. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/44_en +0 -0
  806. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/46_en +0 -0
  807. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/46_sv +0 -0
  808. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/47_en +0 -0
  809. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/48_en +0 -0
  810. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/48_pl +0 -0
  811. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/49_de +0 -0
  812. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/49_en +0 -0
  813. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/501_en +0 -0
  814. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/504_en +0 -0
  815. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/51_en +0 -0
  816. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/53_en +0 -0
  817. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/54_en +0 -0
  818. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/54_es +0 -0
  819. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/55_en +0 -0
  820. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/55_pt +0 -0
  821. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/56_en +0 -0
  822. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/56_es +0 -0
  823. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/57_en +0 -0
  824. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/58_en +0 -0
  825. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/58_es +0 -0
  826. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/592_en +0 -0
  827. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/599_en +0 -0
  828. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_en +0 -0
  829. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_id +0 -0
  830. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/64_en +0 -0
  831. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/66_en +0 -0
  832. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/66_th +0 -0
  833. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/686_en +0 -0
  834. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/688_en +0 -0
  835. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/7_en +0 -0
  836. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/7_ru +0 -0
  837. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/81_en +0 -0
  838. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/81_ja +0 -0
  839. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ar +0 -0
  840. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_bg +0 -0
  841. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ca +0 -0
  842. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_cs +0 -0
  843. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_el +0 -0
  844. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_en +0 -0
  845. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_es +0 -0
  846. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_fi +0 -0
  847. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_fr +0 -0
  848. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_hi +0 -0
  849. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_hu +0 -0
  850. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_iw +0 -0
  851. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ja +0 -0
  852. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ko +0 -0
  853. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_tr +0 -0
  854. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_zh +0 -0
  855. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_zh_Hant +0 -0
  856. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_en +0 -0
  857. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_vi +0 -0
  858. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/86_en +0 -0
  859. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/86_zh +0 -0
  860. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_en +0 -0
  861. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_zh +0 -0
  862. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_zh_Hant +0 -0
  863. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/90_en +0 -0
  864. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/90_tr +0 -0
  865. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/91_en +0 -0
  866. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/93_en +0 -0
  867. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/93_fa +0 -0
  868. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/94_en +0 -0
  869. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/95_en +0 -0
  870. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/962_en +0 -0
  871. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/966_ar +0 -0
  872. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/966_en +0 -0
  873. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/968_en +0 -0
  874. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/972_en +0 -0
  875. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/975_en +0 -0
  876. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/98_en +0 -0
  877. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/98_fa +0 -0
  878. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/992_en +0 -0
  879. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/994_en +0 -0
  880. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/config +0 -0
  881. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data +0 -0
  882. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/PhoneNumberToTimeZonesMapperTest.java +0 -136
  883. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoderTest.java +0 -170
  884. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_de +0 -0
  885. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_en +0 -0
  886. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1212_en +0 -0
  887. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1617_en +0 -0
  888. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_de +0 -0
  889. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_en +0 -0
  890. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1989_en +0 -0
  891. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/54_en +0 -0
  892. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_en +0 -0
  893. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_ko +0 -0
  894. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/config +0 -0
  895. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/timezones/testing_data/map_data +0 -0
  896. data/data/libphonenumber/java/internal/prefixmapper/pom.xml +0 -58
  897. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/DefaultMapStorage.java +0 -94
  898. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/FlyweightMapStorage.java +0 -263
  899. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/MappingFileProvider.java +0 -229
  900. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMap.java +0 -216
  901. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMapStorageStrategy.java +0 -108
  902. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PrefixFileReader.java +0 -143
  903. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMap.java +0 -126
  904. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/FlyweightMapStorageTest.java +0 -107
  905. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/MappingFileProviderTest.java +0 -93
  906. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMapTest.java +0 -193
  907. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PrefixFileReaderTest.java +0 -75
  908. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMapTest.java +0 -176
  909. data/data/libphonenumber/java/lib/junit-4.8.1.jar +0 -0
  910. data/data/libphonenumber/java/lib/protobuf-javanano-3.0.0-alpha-7.jar +0 -0
  911. data/data/libphonenumber/java/lib/protobuf-javanano-readme.md +0 -20
  912. data/data/libphonenumber/java/libphonenumber/pom.xml +0 -64
  913. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java +0 -79
  914. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java +0 -664
  915. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java +0 -938
  916. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataLoader.java +0 -35
  917. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataManager.java +0 -183
  918. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataSource.java +0 -38
  919. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java +0 -133
  920. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/NumberParseException.java +0 -62
  921. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatch.java +0 -123
  922. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java +0 -727
  923. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +0 -3312
  924. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonenumber.java +0 -285
  925. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/RegexCache.java +0 -78
  926. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java +0 -608
  927. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumbersRegionCodeSet.java +0 -274
  928. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java +0 -122
  929. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_255 +0 -0
  930. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_27 +0 -0
  931. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_30 +0 -0
  932. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_31 +0 -0
  933. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_34 +0 -0
  934. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_350 +0 -0
  935. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_351 +0 -0
  936. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_352 +0 -0
  937. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_358 +0 -0
  938. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_359 +0 -0
  939. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_36 +0 -0
  940. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_372 +0 -0
  941. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_373 +0 -0
  942. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_375 +0 -0
  943. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_380 +0 -0
  944. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_381 +0 -0
  945. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_385 +0 -0
  946. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_43 +0 -0
  947. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_44 +0 -0
  948. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_49 +0 -0
  949. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_505 +0 -0
  950. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_506 +0 -0
  951. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_54 +0 -0
  952. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_55 +0 -0
  953. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_58 +0 -0
  954. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_595 +0 -0
  955. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_61 +0 -0
  956. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_62 +0 -0
  957. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_63 +0 -0
  958. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_66 +0 -0
  959. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_675 +0 -0
  960. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_676 +0 -0
  961. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_679 +0 -0
  962. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_7 +0 -0
  963. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_81 +0 -0
  964. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_84 +0 -0
  965. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_855 +0 -0
  966. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_90 +0 -0
  967. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_91 +0 -0
  968. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_94 +0 -0
  969. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_95 +0 -0
  970. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_971 +0 -0
  971. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_972 +0 -0
  972. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_995 +0 -0
  973. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_800 +0 -0
  974. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_808 +0 -0
  975. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_870 +0 -0
  976. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_878 +0 -0
  977. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_881 +0 -0
  978. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_882 +0 -0
  979. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_883 +0 -0
  980. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_888 +0 -0
  981. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_979 +0 -0
  982. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC +0 -0
  983. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD +0 -0
  984. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE +0 -0
  985. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF +0 -0
  986. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG +0 -0
  987. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI +0 -0
  988. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL +0 -0
  989. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM +0 -0
  990. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO +0 -0
  991. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR +0 -0
  992. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS +0 -0
  993. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT +0 -0
  994. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU +0 -0
  995. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW +0 -0
  996. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX +0 -0
  997. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ +0 -0
  998. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA +0 -0
  999. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB +0 -0
  1000. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD +0 -0
  1001. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE +0 -0
  1002. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF +0 -0
  1003. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG +0 -0
  1004. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH +0 -0
  1005. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI +0 -0
  1006. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ +0 -0
  1007. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL +0 -0
  1008. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM +0 -0
  1009. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN +0 -0
  1010. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO +0 -0
  1011. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BQ +0 -0
  1012. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR +0 -0
  1013. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS +0 -0
  1014. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT +0 -0
  1015. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW +0 -0
  1016. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY +0 -0
  1017. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ +0 -0
  1018. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA +0 -0
  1019. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC +0 -0
  1020. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD +0 -0
  1021. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF +0 -0
  1022. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG +0 -0
  1023. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH +0 -0
  1024. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI +0 -0
  1025. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK +0 -0
  1026. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL +0 -0
  1027. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM +0 -0
  1028. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN +0 -0
  1029. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO +0 -0
  1030. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR +0 -0
  1031. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU +0 -0
  1032. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV +0 -0
  1033. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CW +0 -0
  1034. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX +0 -0
  1035. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY +0 -0
  1036. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ +0 -0
  1037. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE +0 -0
  1038. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ +0 -0
  1039. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK +0 -0
  1040. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM +0 -0
  1041. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO +0 -0
  1042. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ +0 -0
  1043. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC +0 -0
  1044. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE +0 -0
  1045. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG +0 -0
  1046. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH +0 -0
  1047. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER +0 -0
  1048. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES +0 -0
  1049. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET +0 -0
  1050. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI +0 -0
  1051. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ +0 -0
  1052. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK +0 -0
  1053. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM +0 -0
  1054. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO +0 -0
  1055. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR +0 -0
  1056. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA +0 -0
  1057. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB +0 -0
  1058. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD +0 -0
  1059. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE +0 -0
  1060. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF +0 -0
  1061. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG +0 -0
  1062. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH +0 -0
  1063. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI +0 -0
  1064. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL +0 -0
  1065. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM +0 -0
  1066. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN +0 -0
  1067. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP +0 -0
  1068. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ +0 -0
  1069. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR +0 -0
  1070. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT +0 -0
  1071. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU +0 -0
  1072. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW +0 -0
  1073. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY +0 -0
  1074. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK +0 -0
  1075. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN +0 -0
  1076. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR +0 -0
  1077. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT +0 -0
  1078. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU +0 -0
  1079. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID +0 -0
  1080. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE +0 -0
  1081. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL +0 -0
  1082. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM +0 -0
  1083. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN +0 -0
  1084. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO +0 -0
  1085. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ +0 -0
  1086. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR +0 -0
  1087. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS +0 -0
  1088. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT +0 -0
  1089. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE +0 -0
  1090. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM +0 -0
  1091. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO +0 -0
  1092. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP +0 -0
  1093. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE +0 -0
  1094. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG +0 -0
  1095. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH +0 -0
  1096. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI +0 -0
  1097. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM +0 -0
  1098. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN +0 -0
  1099. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP +0 -0
  1100. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR +0 -0
  1101. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW +0 -0
  1102. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY +0 -0
  1103. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ +0 -0
  1104. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA +0 -0
  1105. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB +0 -0
  1106. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC +0 -0
  1107. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI +0 -0
  1108. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK +0 -0
  1109. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR +0 -0
  1110. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS +0 -0
  1111. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT +0 -0
  1112. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU +0 -0
  1113. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV +0 -0
  1114. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY +0 -0
  1115. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA +0 -0
  1116. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC +0 -0
  1117. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD +0 -0
  1118. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME +0 -0
  1119. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF +0 -0
  1120. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG +0 -0
  1121. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH +0 -0
  1122. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK +0 -0
  1123. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML +0 -0
  1124. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM +0 -0
  1125. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN +0 -0
  1126. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO +0 -0
  1127. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP +0 -0
  1128. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ +0 -0
  1129. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR +0 -0
  1130. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS +0 -0
  1131. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT +0 -0
  1132. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU +0 -0
  1133. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV +0 -0
  1134. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW +0 -0
  1135. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX +0 -0
  1136. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY +0 -0
  1137. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ +0 -0
  1138. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA +0 -0
  1139. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC +0 -0
  1140. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE +0 -0
  1141. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF +0 -0
  1142. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG +0 -0
  1143. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI +0 -0
  1144. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL +0 -0
  1145. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO +0 -0
  1146. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP +0 -0
  1147. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR +0 -0
  1148. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU +0 -0
  1149. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ +0 -0
  1150. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM +0 -0
  1151. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA +0 -0
  1152. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE +0 -0
  1153. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF +0 -0
  1154. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG +0 -0
  1155. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH +0 -0
  1156. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK +0 -0
  1157. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL +0 -0
  1158. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM +0 -0
  1159. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR +0 -0
  1160. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS +0 -0
  1161. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT +0 -0
  1162. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW +0 -0
  1163. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY +0 -0
  1164. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA +0 -0
  1165. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE +0 -0
  1166. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO +0 -0
  1167. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS +0 -0
  1168. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU +0 -0
  1169. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW +0 -0
  1170. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA +0 -0
  1171. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB +0 -0
  1172. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC +0 -0
  1173. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD +0 -0
  1174. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE +0 -0
  1175. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG +0 -0
  1176. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH +0 -0
  1177. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI +0 -0
  1178. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ +0 -0
  1179. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK +0 -0
  1180. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL +0 -0
  1181. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM +0 -0
  1182. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN +0 -0
  1183. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO +0 -0
  1184. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR +0 -0
  1185. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SS +0 -0
  1186. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST +0 -0
  1187. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV +0 -0
  1188. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SX +0 -0
  1189. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY +0 -0
  1190. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ +0 -0
  1191. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TA +0 -0
  1192. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC +0 -0
  1193. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD +0 -0
  1194. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG +0 -0
  1195. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH +0 -0
  1196. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ +0 -0
  1197. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK +0 -0
  1198. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL +0 -0
  1199. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM +0 -0
  1200. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN +0 -0
  1201. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO +0 -0
  1202. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR +0 -0
  1203. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT +0 -0
  1204. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV +0 -0
  1205. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW +0 -0
  1206. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ +0 -0
  1207. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA +0 -0
  1208. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG +0 -0
  1209. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US +0 -0
  1210. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY +0 -0
  1211. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ +0 -0
  1212. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA +0 -0
  1213. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC +0 -0
  1214. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE +0 -0
  1215. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG +0 -0
  1216. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI +0 -0
  1217. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN +0 -0
  1218. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU +0 -0
  1219. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF +0 -0
  1220. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS +0 -0
  1221. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE +0 -0
  1222. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT +0 -0
  1223. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA +0 -0
  1224. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM +0 -0
  1225. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW +0 -0
  1226. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AC +0 -0
  1227. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AD +0 -0
  1228. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AE +0 -0
  1229. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AF +0 -0
  1230. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AG +0 -0
  1231. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AI +0 -0
  1232. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AL +0 -0
  1233. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AM +0 -0
  1234. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AO +0 -0
  1235. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR +0 -0
  1236. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AS +0 -0
  1237. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AT +0 -0
  1238. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AU +0 -0
  1239. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AW +0 -0
  1240. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AX +0 -0
  1241. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AZ +0 -0
  1242. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BA +0 -0
  1243. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BB +0 -0
  1244. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD +0 -0
  1245. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BE +0 -0
  1246. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BF +0 -0
  1247. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BG +0 -0
  1248. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BH +0 -0
  1249. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BI +0 -0
  1250. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BJ +0 -0
  1251. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BL +0 -0
  1252. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BM +0 -0
  1253. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BN +0 -0
  1254. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BO +0 -0
  1255. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BQ +0 -0
  1256. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BR +0 -0
  1257. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BS +0 -0
  1258. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BT +0 -0
  1259. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BW +0 -0
  1260. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BY +0 -0
  1261. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BZ +0 -0
  1262. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CA +0 -0
  1263. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CC +0 -0
  1264. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CD +0 -0
  1265. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CF +0 -0
  1266. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CG +0 -0
  1267. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH +0 -0
  1268. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CI +0 -0
  1269. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CK +0 -0
  1270. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CL +0 -0
  1271. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CM +0 -0
  1272. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CN +0 -0
  1273. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CO +0 -0
  1274. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR +0 -0
  1275. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU +0 -0
  1276. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CV +0 -0
  1277. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CW +0 -0
  1278. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CX +0 -0
  1279. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CY +0 -0
  1280. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ +0 -0
  1281. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE +0 -0
  1282. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DJ +0 -0
  1283. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DK +0 -0
  1284. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DM +0 -0
  1285. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DO +0 -0
  1286. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DZ +0 -0
  1287. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EC +0 -0
  1288. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE +0 -0
  1289. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EG +0 -0
  1290. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EH +0 -0
  1291. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ER +0 -0
  1292. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ES +0 -0
  1293. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ET +0 -0
  1294. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FI +0 -0
  1295. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ +0 -0
  1296. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK +0 -0
  1297. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FM +0 -0
  1298. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO +0 -0
  1299. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR +0 -0
  1300. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GA +0 -0
  1301. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB +0 -0
  1302. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GD +0 -0
  1303. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GE +0 -0
  1304. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GF +0 -0
  1305. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG +0 -0
  1306. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GH +0 -0
  1307. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI +0 -0
  1308. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GL +0 -0
  1309. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GM +0 -0
  1310. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GN +0 -0
  1311. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GP +0 -0
  1312. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GR +0 -0
  1313. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT +0 -0
  1314. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GU +0 -0
  1315. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GW +0 -0
  1316. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY +0 -0
  1317. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HK +0 -0
  1318. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HN +0 -0
  1319. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HR +0 -0
  1320. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT +0 -0
  1321. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HU +0 -0
  1322. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ID +0 -0
  1323. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IE +0 -0
  1324. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL +0 -0
  1325. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM +0 -0
  1326. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IN +0 -0
  1327. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IQ +0 -0
  1328. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IR +0 -0
  1329. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IS +0 -0
  1330. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT +0 -0
  1331. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE +0 -0
  1332. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JM +0 -0
  1333. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO +0 -0
  1334. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JP +0 -0
  1335. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE +0 -0
  1336. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KG +0 -0
  1337. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KH +0 -0
  1338. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI +0 -0
  1339. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KM +0 -0
  1340. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KN +0 -0
  1341. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KP +0 -0
  1342. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KR +0 -0
  1343. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW +0 -0
  1344. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KY +0 -0
  1345. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KZ +0 -0
  1346. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LA +0 -0
  1347. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LB +0 -0
  1348. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LC +0 -0
  1349. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI +0 -0
  1350. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LK +0 -0
  1351. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LR +0 -0
  1352. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LS +0 -0
  1353. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LT +0 -0
  1354. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU +0 -0
  1355. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LV +0 -0
  1356. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LY +0 -0
  1357. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MA +0 -0
  1358. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MC +0 -0
  1359. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD +0 -0
  1360. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME +0 -0
  1361. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MF +0 -0
  1362. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MG +0 -0
  1363. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MH +0 -0
  1364. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MK +0 -0
  1365. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ML +0 -0
  1366. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MM +0 -0
  1367. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MN +0 -0
  1368. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MO +0 -0
  1369. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MP +0 -0
  1370. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MQ +0 -0
  1371. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MR +0 -0
  1372. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MS +0 -0
  1373. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MT +0 -0
  1374. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU +0 -0
  1375. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV +0 -0
  1376. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MW +0 -0
  1377. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MX +0 -0
  1378. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MY +0 -0
  1379. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ +0 -0
  1380. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA +0 -0
  1381. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC +0 -0
  1382. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NE +0 -0
  1383. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NF +0 -0
  1384. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NG +0 -0
  1385. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NI +0 -0
  1386. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL +0 -0
  1387. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NO +0 -0
  1388. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NP +0 -0
  1389. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR +0 -0
  1390. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NU +0 -0
  1391. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NZ +0 -0
  1392. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_OM +0 -0
  1393. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA +0 -0
  1394. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PE +0 -0
  1395. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PF +0 -0
  1396. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PG +0 -0
  1397. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PH +0 -0
  1398. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PK +0 -0
  1399. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PL +0 -0
  1400. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PM +0 -0
  1401. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PR +0 -0
  1402. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PT +0 -0
  1403. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PW +0 -0
  1404. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY +0 -0
  1405. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA +0 -0
  1406. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RE +0 -0
  1407. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RO +0 -0
  1408. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS +0 -0
  1409. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RU +0 -0
  1410. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RW +0 -0
  1411. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA +0 -0
  1412. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB +0 -0
  1413. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC +0 -0
  1414. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SD +0 -0
  1415. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SE +0 -0
  1416. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG +0 -0
  1417. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH +0 -0
  1418. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SI +0 -0
  1419. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SJ +0 -0
  1420. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SK +0 -0
  1421. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SL +0 -0
  1422. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SM +0 -0
  1423. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SN +0 -0
  1424. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SO +0 -0
  1425. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR +0 -0
  1426. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ST +0 -0
  1427. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SV +0 -0
  1428. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SX +0 -0
  1429. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SY +0 -0
  1430. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SZ +0 -0
  1431. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TC +0 -0
  1432. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TD +0 -0
  1433. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TG +0 -0
  1434. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TH +0 -0
  1435. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TJ +0 -0
  1436. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL +0 -0
  1437. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TM +0 -0
  1438. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TN +0 -0
  1439. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TO +0 -0
  1440. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TR +0 -0
  1441. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TT +0 -0
  1442. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TV +0 -0
  1443. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TW +0 -0
  1444. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TZ +0 -0
  1445. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UA +0 -0
  1446. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UG +0 -0
  1447. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_US +0 -0
  1448. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY +0 -0
  1449. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UZ +0 -0
  1450. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VA +0 -0
  1451. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VC +0 -0
  1452. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VE +0 -0
  1453. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VG +0 -0
  1454. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VI +0 -0
  1455. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VN +0 -0
  1456. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VU +0 -0
  1457. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_WF +0 -0
  1458. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_WS +0 -0
  1459. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_YE +0 -0
  1460. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_YT +0 -0
  1461. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZA +0 -0
  1462. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZM +0 -0
  1463. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZW +0 -0
  1464. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/MatcherApi.java +0 -38
  1465. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/RegexBasedMatcher.java +0 -52
  1466. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/nano/Phonemetadata.java +0 -1040
  1467. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java +0 -1173
  1468. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java +0 -146
  1469. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java +0 -274
  1470. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java +0 -51
  1471. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/MultiFileMetadataSourceImplTest.java +0 -67
  1472. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberMatchTest.java +0 -70
  1473. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberMatcherTest.java +0 -1090
  1474. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +0 -2591
  1475. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhonenumberTest.java +0 -112
  1476. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/RegexCacheTest.java +0 -55
  1477. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/RegionCode.java +0 -61
  1478. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/ShortNumberInfoTest.java +0 -355
  1479. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/SingleFileMetadataSourceImplTest.java +0 -40
  1480. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/TestMetadataTestCase.java +0 -47
  1481. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_800 +0 -0
  1482. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_979 +0 -0
  1483. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD +0 -0
  1484. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AE +0 -0
  1485. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO +0 -0
  1486. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR +0 -0
  1487. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU +0 -0
  1488. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BB +0 -0
  1489. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BR +0 -0
  1490. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS +0 -0
  1491. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BY +0 -0
  1492. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CA +0 -0
  1493. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CC +0 -0
  1494. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CN +0 -0
  1495. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CX +0 -0
  1496. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE +0 -0
  1497. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_FR +0 -0
  1498. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB +0 -0
  1499. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GG +0 -0
  1500. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_HU +0 -0
  1501. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT +0 -0
  1502. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP +0 -0
  1503. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR +0 -0
  1504. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX +0 -0
  1505. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ +0 -0
  1506. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL +0 -0
  1507. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE +0 -0
  1508. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SE +0 -0
  1509. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG +0 -0
  1510. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US +0 -0
  1511. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT +0 -0
  1512. data/data/libphonenumber/java/pending_code_changes.txt +0 -1
  1513. data/data/libphonenumber/java/pom.xml +0 -185
  1514. data/data/libphonenumber/java/release_notes.txt +0 -1306
  1515. data/data/libphonenumber/javadoc/allclasses-frame.html +0 -49
  1516. data/data/libphonenumber/javadoc/allclasses-noframe.html +0 -49
  1517. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/AsYouTypeFormatter.html +0 -302
  1518. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/NumberParseException.ErrorType.html +0 -369
  1519. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/NumberParseException.html +0 -311
  1520. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberMatch.html +0 -378
  1521. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.Leniency.html +0 -330
  1522. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.MatchType.html +0 -373
  1523. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.PhoneNumberFormat.html +0 -365
  1524. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.PhoneNumberType.html +0 -469
  1525. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.ValidationResult.html +0 -357
  1526. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.html +0 -1405
  1527. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-frame.html +0 -68
  1528. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-summary.html +0 -211
  1529. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-tree.html +0 -161
  1530. data/data/libphonenumber/javadoc/constant-values.html +0 -142
  1531. data/data/libphonenumber/javadoc/deprecated-list.html +0 -142
  1532. data/data/libphonenumber/javadoc/help-doc.html +0 -209
  1533. data/data/libphonenumber/javadoc/index-all.html +0 -413
  1534. data/data/libphonenumber/javadoc/index.html +0 -36
  1535. data/data/libphonenumber/javadoc/overview-tree.html +0 -163
  1536. data/data/libphonenumber/javadoc/package-list +0 -1
  1537. data/data/libphonenumber/javadoc/resources/inherit.gif +0 -0
  1538. data/data/libphonenumber/javadoc/serialized-form.html +0 -184
  1539. data/data/libphonenumber/javadoc/stylesheet.css +0 -29
  1540. data/data/libphonenumber/javascript/README.md +0 -86
  1541. data/data/libphonenumber/javascript/build.xml +0 -137
  1542. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter.js +0 -1113
  1543. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter_test.html +0 -38
  1544. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter_test.js +0 -1207
  1545. data/data/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.html +0 -53
  1546. data/data/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.js +0 -459
  1547. data/data/libphonenumber/javascript/i18n/phonenumbers/demo.html +0 -62
  1548. data/data/libphonenumber/javascript/i18n/phonenumbers/demo.js +0 -161
  1549. data/data/libphonenumber/javascript/i18n/phonenumbers/metadata.js +0 -5234
  1550. data/data/libphonenumber/javascript/i18n/phonenumbers/metadatafortesting.js +0 -632
  1551. data/data/libphonenumber/javascript/i18n/phonenumbers/metadatalite.js +0 -5234
  1552. data/data/libphonenumber/javascript/i18n/phonenumbers/phonemetadata.pb.js +0 -2443
  1553. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumber.pb.js +0 -536
  1554. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil.js +0 -4223
  1555. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil_test.html +0 -37
  1556. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil_test.js +0 -3330
  1557. data/data/libphonenumber/javascript/i18n/phonenumbers/regioncodefortesting.js +0 -66
  1558. data/data/libphonenumber/pom.xml +0 -26
  1559. data/data/libphonenumber/resources/PhoneNumberAlternateFormats.xml +0 -1869
  1560. data/data/libphonenumber/resources/PhoneNumberMetadata.xml +0 -25723
  1561. data/data/libphonenumber/resources/PhoneNumberMetadataForTesting.xml +0 -973
  1562. data/data/libphonenumber/resources/ShortNumberMetadata.xml +0 -9837
  1563. data/data/libphonenumber/resources/carrier/README +0 -2
  1564. data/data/libphonenumber/resources/carrier/ar/965.txt +0 -17
  1565. data/data/libphonenumber/resources/carrier/be/375.txt +0 -28
  1566. data/data/libphonenumber/resources/carrier/en/1.txt +0 -479
  1567. data/data/libphonenumber/resources/carrier/en/20.txt +0 -17
  1568. data/data/libphonenumber/resources/carrier/en/211.txt +0 -18
  1569. data/data/libphonenumber/resources/carrier/en/212.txt +0 -124
  1570. data/data/libphonenumber/resources/carrier/en/213.txt +0 -20
  1571. data/data/libphonenumber/resources/carrier/en/216.txt +0 -28
  1572. data/data/libphonenumber/resources/carrier/en/220.txt +0 -19
  1573. data/data/libphonenumber/resources/carrier/en/221.txt +0 -23
  1574. data/data/libphonenumber/resources/carrier/en/222.txt +0 -19
  1575. data/data/libphonenumber/resources/carrier/en/223.txt +0 -31
  1576. data/data/libphonenumber/resources/carrier/en/224.txt +0 -21
  1577. data/data/libphonenumber/resources/carrier/en/225.txt +0 -56
  1578. data/data/libphonenumber/resources/carrier/en/226.txt +0 -36
  1579. data/data/libphonenumber/resources/carrier/en/227.txt +0 -26
  1580. data/data/libphonenumber/resources/carrier/en/228.txt +0 -16
  1581. data/data/libphonenumber/resources/carrier/en/229.txt +0 -29
  1582. data/data/libphonenumber/resources/carrier/en/230.txt +0 -63
  1583. data/data/libphonenumber/resources/carrier/en/231.txt +0 -22
  1584. data/data/libphonenumber/resources/carrier/en/232.txt +0 -31
  1585. data/data/libphonenumber/resources/carrier/en/233.txt +0 -28
  1586. data/data/libphonenumber/resources/carrier/en/234.txt +0 -257
  1587. data/data/libphonenumber/resources/carrier/en/235.txt +0 -17
  1588. data/data/libphonenumber/resources/carrier/en/236.txt +0 -18
  1589. data/data/libphonenumber/resources/carrier/en/237.txt +0 -28
  1590. data/data/libphonenumber/resources/carrier/en/238.txt +0 -20
  1591. data/data/libphonenumber/resources/carrier/en/239.txt +0 -17
  1592. data/data/libphonenumber/resources/carrier/en/240.txt +0 -17
  1593. data/data/libphonenumber/resources/carrier/en/241.txt +0 -35
  1594. data/data/libphonenumber/resources/carrier/en/242.txt +0 -19
  1595. data/data/libphonenumber/resources/carrier/en/243.txt +0 -23
  1596. data/data/libphonenumber/resources/carrier/en/244.txt +0 -19
  1597. data/data/libphonenumber/resources/carrier/en/245.txt +0 -18
  1598. data/data/libphonenumber/resources/carrier/en/248.txt +0 -18
  1599. data/data/libphonenumber/resources/carrier/en/249.txt +0 -20
  1600. data/data/libphonenumber/resources/carrier/en/250.txt +0 -15
  1601. data/data/libphonenumber/resources/carrier/en/251.txt +0 -21
  1602. data/data/libphonenumber/resources/carrier/en/252.txt +0 -34
  1603. data/data/libphonenumber/resources/carrier/en/253.txt +0 -17
  1604. data/data/libphonenumber/resources/carrier/en/254.txt +0 -63
  1605. data/data/libphonenumber/resources/carrier/en/255.txt +0 -29
  1606. data/data/libphonenumber/resources/carrier/en/256.txt +0 -26
  1607. data/data/libphonenumber/resources/carrier/en/257.txt +0 -28
  1608. data/data/libphonenumber/resources/carrier/en/258.txt +0 -18
  1609. data/data/libphonenumber/resources/carrier/en/260.txt +0 -17
  1610. data/data/libphonenumber/resources/carrier/en/261.txt +0 -18
  1611. data/data/libphonenumber/resources/carrier/en/263.txt +0 -18
  1612. data/data/libphonenumber/resources/carrier/en/265.txt +0 -16
  1613. data/data/libphonenumber/resources/carrier/en/267.txt +0 -57
  1614. data/data/libphonenumber/resources/carrier/en/268.txt +0 -15
  1615. data/data/libphonenumber/resources/carrier/en/27.txt +0 -70
  1616. data/data/libphonenumber/resources/carrier/en/297.txt +0 -29
  1617. data/data/libphonenumber/resources/carrier/en/298.txt +0 -18
  1618. data/data/libphonenumber/resources/carrier/en/299.txt +0 -17
  1619. data/data/libphonenumber/resources/carrier/en/30.txt +0 -20
  1620. data/data/libphonenumber/resources/carrier/en/31.txt +0 -65
  1621. data/data/libphonenumber/resources/carrier/en/32.txt +0 -36
  1622. data/data/libphonenumber/resources/carrier/en/33.txt +0 -72
  1623. data/data/libphonenumber/resources/carrier/en/350.txt +0 -19
  1624. data/data/libphonenumber/resources/carrier/en/351.txt +0 -26
  1625. data/data/libphonenumber/resources/carrier/en/352.txt +0 -27
  1626. data/data/libphonenumber/resources/carrier/en/353.txt +0 -20
  1627. data/data/libphonenumber/resources/carrier/en/354.txt +0 -55
  1628. data/data/libphonenumber/resources/carrier/en/355.txt +0 -18
  1629. data/data/libphonenumber/resources/carrier/en/356.txt +0 -27
  1630. data/data/libphonenumber/resources/carrier/en/357.txt +0 -20
  1631. data/data/libphonenumber/resources/carrier/en/358.txt +0 -44
  1632. data/data/libphonenumber/resources/carrier/en/359.txt +0 -19
  1633. data/data/libphonenumber/resources/carrier/en/36.txt +0 -17
  1634. data/data/libphonenumber/resources/carrier/en/370.txt +0 -50
  1635. data/data/libphonenumber/resources/carrier/en/372.txt +0 -30
  1636. data/data/libphonenumber/resources/carrier/en/373.txt +0 -44
  1637. data/data/libphonenumber/resources/carrier/en/374.txt +0 -29
  1638. data/data/libphonenumber/resources/carrier/en/375.txt +0 -28
  1639. data/data/libphonenumber/resources/carrier/en/376.txt +0 -15
  1640. data/data/libphonenumber/resources/carrier/en/380.txt +0 -26
  1641. data/data/libphonenumber/resources/carrier/en/381.txt +0 -23
  1642. data/data/libphonenumber/resources/carrier/en/382.txt +0 -29
  1643. data/data/libphonenumber/resources/carrier/en/385.txt +0 -22
  1644. data/data/libphonenumber/resources/carrier/en/386.txt +0 -23
  1645. data/data/libphonenumber/resources/carrier/en/387.txt +0 -20
  1646. data/data/libphonenumber/resources/carrier/en/389.txt +0 -23
  1647. data/data/libphonenumber/resources/carrier/en/39.txt +0 -23
  1648. data/data/libphonenumber/resources/carrier/en/40.txt +0 -21
  1649. data/data/libphonenumber/resources/carrier/en/41.txt +0 -18
  1650. data/data/libphonenumber/resources/carrier/en/420.txt +0 -32
  1651. data/data/libphonenumber/resources/carrier/en/421.txt +0 -38
  1652. data/data/libphonenumber/resources/carrier/en/43.txt +0 -26
  1653. data/data/libphonenumber/resources/carrier/en/45.txt +0 -599
  1654. data/data/libphonenumber/resources/carrier/en/47.txt +0 -239
  1655. data/data/libphonenumber/resources/carrier/en/48.txt +0 -118
  1656. data/data/libphonenumber/resources/carrier/en/49.txt +0 -50
  1657. data/data/libphonenumber/resources/carrier/en/501.txt +0 -16
  1658. data/data/libphonenumber/resources/carrier/en/505.txt +0 -101
  1659. data/data/libphonenumber/resources/carrier/en/506.txt +0 -50
  1660. data/data/libphonenumber/resources/carrier/en/507.txt +0 -84
  1661. data/data/libphonenumber/resources/carrier/en/509.txt +0 -24
  1662. data/data/libphonenumber/resources/carrier/en/51.txt +0 -584
  1663. data/data/libphonenumber/resources/carrier/en/53.txt +0 -15
  1664. data/data/libphonenumber/resources/carrier/en/54.txt +0 -98
  1665. data/data/libphonenumber/resources/carrier/en/55.txt +0 -9479
  1666. data/data/libphonenumber/resources/carrier/en/56.txt +0 -538
  1667. data/data/libphonenumber/resources/carrier/en/57.txt +0 -38
  1668. data/data/libphonenumber/resources/carrier/en/58.txt +0 -18
  1669. data/data/libphonenumber/resources/carrier/en/591.txt +0 -51
  1670. data/data/libphonenumber/resources/carrier/en/592.txt +0 -15
  1671. data/data/libphonenumber/resources/carrier/en/595.txt +0 -19
  1672. data/data/libphonenumber/resources/carrier/en/597.txt +0 -33
  1673. data/data/libphonenumber/resources/carrier/en/598.txt +0 -25
  1674. data/data/libphonenumber/resources/carrier/en/599.txt +0 -49
  1675. data/data/libphonenumber/resources/carrier/en/60.txt +0 -301
  1676. data/data/libphonenumber/resources/carrier/en/61.txt +0 -95
  1677. data/data/libphonenumber/resources/carrier/en/62.txt +0 -702
  1678. data/data/libphonenumber/resources/carrier/en/63.txt +0 -55
  1679. data/data/libphonenumber/resources/carrier/en/64.txt +0 -22
  1680. data/data/libphonenumber/resources/carrier/en/65.txt +0 -591
  1681. data/data/libphonenumber/resources/carrier/en/66.txt +0 -48
  1682. data/data/libphonenumber/resources/carrier/en/670.txt +0 -16
  1683. data/data/libphonenumber/resources/carrier/en/673.txt +0 -22
  1684. data/data/libphonenumber/resources/carrier/en/675.txt +0 -30
  1685. data/data/libphonenumber/resources/carrier/en/676.txt +0 -39
  1686. data/data/libphonenumber/resources/carrier/en/677.txt +0 -44
  1687. data/data/libphonenumber/resources/carrier/en/678.txt +0 -35
  1688. data/data/libphonenumber/resources/carrier/en/679.txt +0 -23
  1689. data/data/libphonenumber/resources/carrier/en/685.txt +0 -17
  1690. data/data/libphonenumber/resources/carrier/en/686.txt +0 -20
  1691. data/data/libphonenumber/resources/carrier/en/689.txt +0 -16
  1692. data/data/libphonenumber/resources/carrier/en/7.txt +0 -25
  1693. data/data/libphonenumber/resources/carrier/en/84.txt +0 -27
  1694. data/data/libphonenumber/resources/carrier/en/852.txt +0 -282
  1695. data/data/libphonenumber/resources/carrier/en/853.txt +0 -326
  1696. data/data/libphonenumber/resources/carrier/en/855.txt +0 -36
  1697. data/data/libphonenumber/resources/carrier/en/856.txt +0 -18
  1698. data/data/libphonenumber/resources/carrier/en/86.txt +0 -64
  1699. data/data/libphonenumber/resources/carrier/en/880.txt +0 -20
  1700. data/data/libphonenumber/resources/carrier/en/90.txt +0 -26
  1701. data/data/libphonenumber/resources/carrier/en/91.txt +0 -2883
  1702. data/data/libphonenumber/resources/carrier/en/92.txt +0 -51
  1703. data/data/libphonenumber/resources/carrier/en/93.txt +0 -24
  1704. data/data/libphonenumber/resources/carrier/en/94.txt +0 -22
  1705. data/data/libphonenumber/resources/carrier/en/95.txt +0 -46
  1706. data/data/libphonenumber/resources/carrier/en/960.txt +0 -16
  1707. data/data/libphonenumber/resources/carrier/en/961.txt +0 -35
  1708. data/data/libphonenumber/resources/carrier/en/962.txt +0 -20
  1709. data/data/libphonenumber/resources/carrier/en/963.txt +0 -50
  1710. data/data/libphonenumber/resources/carrier/en/964.txt +0 -27
  1711. data/data/libphonenumber/resources/carrier/en/965.txt +0 -17
  1712. data/data/libphonenumber/resources/carrier/en/966.txt +0 -27
  1713. data/data/libphonenumber/resources/carrier/en/967.txt +0 -21
  1714. data/data/libphonenumber/resources/carrier/en/968.txt +0 -34
  1715. data/data/libphonenumber/resources/carrier/en/970.txt +0 -16
  1716. data/data/libphonenumber/resources/carrier/en/971.txt +0 -19
  1717. data/data/libphonenumber/resources/carrier/en/972.txt +0 -40
  1718. data/data/libphonenumber/resources/carrier/en/973.txt +0 -32
  1719. data/data/libphonenumber/resources/carrier/en/974.txt +0 -18
  1720. data/data/libphonenumber/resources/carrier/en/975.txt +0 -17
  1721. data/data/libphonenumber/resources/carrier/en/976.txt +0 -21
  1722. data/data/libphonenumber/resources/carrier/en/977.txt +0 -26
  1723. data/data/libphonenumber/resources/carrier/en/98.txt +0 -30
  1724. data/data/libphonenumber/resources/carrier/en/992.txt +0 -27
  1725. data/data/libphonenumber/resources/carrier/en/993.txt +0 -19
  1726. data/data/libphonenumber/resources/carrier/en/994.txt +0 -23
  1727. data/data/libphonenumber/resources/carrier/en/995.txt +0 -34
  1728. data/data/libphonenumber/resources/carrier/en/996.txt +0 -22
  1729. data/data/libphonenumber/resources/carrier/en/998.txt +0 -33
  1730. data/data/libphonenumber/resources/carrier/fa/93.txt +0 -24
  1731. data/data/libphonenumber/resources/carrier/fa/98.txt +0 -30
  1732. data/data/libphonenumber/resources/carrier/ru/374.txt +0 -28
  1733. data/data/libphonenumber/resources/carrier/ru/375.txt +0 -28
  1734. data/data/libphonenumber/resources/carrier/zh/852.txt +0 -283
  1735. data/data/libphonenumber/resources/carrier/zh/86.txt +0 -64
  1736. data/data/libphonenumber/resources/carrier/zh_Hant/852.txt +0 -283
  1737. data/data/libphonenumber/resources/carrier/zh_Hant/86.txt +0 -64
  1738. data/data/libphonenumber/resources/geocoding/am/374.txt +0 -177
  1739. data/data/libphonenumber/resources/geocoding/ar/82.txt +0 -34
  1740. data/data/libphonenumber/resources/geocoding/ar/966.txt +0 -27
  1741. data/data/libphonenumber/resources/geocoding/be/375.txt +0 -144
  1742. data/data/libphonenumber/resources/geocoding/bg/359.txt +0 -2105
  1743. data/data/libphonenumber/resources/geocoding/bg/82.txt +0 -34
  1744. data/data/libphonenumber/resources/geocoding/ca/82.txt +0 -34
  1745. data/data/libphonenumber/resources/geocoding/cs/82.txt +0 -35
  1746. data/data/libphonenumber/resources/geocoding/de/32.txt +0 -59
  1747. data/data/libphonenumber/resources/geocoding/de/352.txt +0 -229
  1748. data/data/libphonenumber/resources/geocoding/de/41.txt +0 -37
  1749. data/data/libphonenumber/resources/geocoding/de/43.txt +0 -1037
  1750. data/data/libphonenumber/resources/geocoding/de/49.txt +0 -5219
  1751. data/data/libphonenumber/resources/geocoding/el/30.txt +0 -259
  1752. data/data/libphonenumber/resources/geocoding/el/82.txt +0 -28
  1753. data/data/libphonenumber/resources/geocoding/en/1.txt +0 -36238
  1754. data/data/libphonenumber/resources/geocoding/en/20.txt +0 -45
  1755. data/data/libphonenumber/resources/geocoding/en/212.txt +0 -86
  1756. data/data/libphonenumber/resources/geocoding/en/213.txt +0 -30
  1757. data/data/libphonenumber/resources/geocoding/en/216.txt +0 -26
  1758. data/data/libphonenumber/resources/geocoding/en/220.txt +0 -59
  1759. data/data/libphonenumber/resources/geocoding/en/221.txt +0 -19
  1760. data/data/libphonenumber/resources/geocoding/en/222.txt +0 -28
  1761. data/data/libphonenumber/resources/geocoding/en/223.txt +0 -37
  1762. data/data/libphonenumber/resources/geocoding/en/224.txt +0 -38
  1763. data/data/libphonenumber/resources/geocoding/en/225.txt +0 -28
  1764. data/data/libphonenumber/resources/geocoding/en/226.txt +0 -50
  1765. data/data/libphonenumber/resources/geocoding/en/228.txt +0 -24
  1766. data/data/libphonenumber/resources/geocoding/en/229.txt +0 -52
  1767. data/data/libphonenumber/resources/geocoding/en/230.txt +0 -25
  1768. data/data/libphonenumber/resources/geocoding/en/232.txt +0 -20
  1769. data/data/libphonenumber/resources/geocoding/en/233.txt +0 -86
  1770. data/data/libphonenumber/resources/geocoding/en/234.txt +0 -79
  1771. data/data/libphonenumber/resources/geocoding/en/237.txt +0 -125
  1772. data/data/libphonenumber/resources/geocoding/en/238.txt +0 -54
  1773. data/data/libphonenumber/resources/geocoding/en/239.txt +0 -35
  1774. data/data/libphonenumber/resources/geocoding/en/241.txt +0 -48
  1775. data/data/libphonenumber/resources/geocoding/en/242.txt +0 -23
  1776. data/data/libphonenumber/resources/geocoding/en/243.txt +0 -22
  1777. data/data/libphonenumber/resources/geocoding/en/244.txt +0 -54
  1778. data/data/libphonenumber/resources/geocoding/en/245.txt +0 -38
  1779. data/data/libphonenumber/resources/geocoding/en/247.txt +0 -27
  1780. data/data/libphonenumber/resources/geocoding/en/249.txt +0 -28
  1781. data/data/libphonenumber/resources/geocoding/en/251.txt +0 -386
  1782. data/data/libphonenumber/resources/geocoding/en/252.txt +0 -21
  1783. data/data/libphonenumber/resources/geocoding/en/254.txt +0 -46
  1784. data/data/libphonenumber/resources/geocoding/en/256.txt +0 -30
  1785. data/data/libphonenumber/resources/geocoding/en/257.txt +0 -28
  1786. data/data/libphonenumber/resources/geocoding/en/258.txt +0 -27
  1787. data/data/libphonenumber/resources/geocoding/en/260.txt +0 -26
  1788. data/data/libphonenumber/resources/geocoding/en/261.txt +0 -40
  1789. data/data/libphonenumber/resources/geocoding/en/263.txt +0 -134
  1790. data/data/libphonenumber/resources/geocoding/en/264.txt +0 -1047
  1791. data/data/libphonenumber/resources/geocoding/en/266.txt +0 -18
  1792. data/data/libphonenumber/resources/geocoding/en/267.txt +0 -35
  1793. data/data/libphonenumber/resources/geocoding/en/268.txt +0 -54
  1794. data/data/libphonenumber/resources/geocoding/en/269.txt +0 -32
  1795. data/data/libphonenumber/resources/geocoding/en/27.txt +0 -57
  1796. data/data/libphonenumber/resources/geocoding/en/290.txt +0 -24
  1797. data/data/libphonenumber/resources/geocoding/en/299.txt +0 -43
  1798. data/data/libphonenumber/resources/geocoding/en/30.txt +0 -261
  1799. data/data/libphonenumber/resources/geocoding/en/31.txt +0 -137
  1800. data/data/libphonenumber/resources/geocoding/en/32.txt +0 -59
  1801. data/data/libphonenumber/resources/geocoding/en/33.txt +0 -5592
  1802. data/data/libphonenumber/resources/geocoding/en/34.txt +0 -123
  1803. data/data/libphonenumber/resources/geocoding/en/351.txt +0 -67
  1804. data/data/libphonenumber/resources/geocoding/en/352.txt +0 -229
  1805. data/data/libphonenumber/resources/geocoding/en/353.txt +0 -71
  1806. data/data/libphonenumber/resources/geocoding/en/354.txt +0 -23
  1807. data/data/libphonenumber/resources/geocoding/en/355.txt +0 -188
  1808. data/data/libphonenumber/resources/geocoding/en/358.txt +0 -74
  1809. data/data/libphonenumber/resources/geocoding/en/359.txt +0 -2102
  1810. data/data/libphonenumber/resources/geocoding/en/36.txt +0 -70
  1811. data/data/libphonenumber/resources/geocoding/en/370.txt +0 -64
  1812. data/data/libphonenumber/resources/geocoding/en/371.txt +0 -56
  1813. data/data/libphonenumber/resources/geocoding/en/372.txt +0 -35
  1814. data/data/libphonenumber/resources/geocoding/en/373.txt +0 -62
  1815. data/data/libphonenumber/resources/geocoding/en/374.txt +0 -184
  1816. data/data/libphonenumber/resources/geocoding/en/375.txt +0 -142
  1817. data/data/libphonenumber/resources/geocoding/en/381.txt +0 -50
  1818. data/data/libphonenumber/resources/geocoding/en/389.txt +0 -28
  1819. data/data/libphonenumber/resources/geocoding/en/39.txt +0 -137
  1820. data/data/libphonenumber/resources/geocoding/en/40.txt +0 -98
  1821. data/data/libphonenumber/resources/geocoding/en/41.txt +0 -37
  1822. data/data/libphonenumber/resources/geocoding/en/420.txt +0 -37
  1823. data/data/libphonenumber/resources/geocoding/en/421.txt +0 -42
  1824. data/data/libphonenumber/resources/geocoding/en/43.txt +0 -1036
  1825. data/data/libphonenumber/resources/geocoding/en/44.txt +0 -870
  1826. data/data/libphonenumber/resources/geocoding/en/46.txt +0 -280
  1827. data/data/libphonenumber/resources/geocoding/en/47.txt +0 -49
  1828. data/data/libphonenumber/resources/geocoding/en/48.txt +0 -65
  1829. data/data/libphonenumber/resources/geocoding/en/49.txt +0 -5218
  1830. data/data/libphonenumber/resources/geocoding/en/501.txt +0 -23
  1831. data/data/libphonenumber/resources/geocoding/en/504.txt +0 -19
  1832. data/data/libphonenumber/resources/geocoding/en/51.txt +0 -42
  1833. data/data/libphonenumber/resources/geocoding/en/53.txt +0 -33
  1834. data/data/libphonenumber/resources/geocoding/en/54.txt +0 -236
  1835. data/data/libphonenumber/resources/geocoding/en/55.txt +0 -15271
  1836. data/data/libphonenumber/resources/geocoding/en/56.txt +0 -41
  1837. data/data/libphonenumber/resources/geocoding/en/57.txt +0 -186
  1838. data/data/libphonenumber/resources/geocoding/en/58.txt +0 -73
  1839. data/data/libphonenumber/resources/geocoding/en/592.txt +0 -82
  1840. data/data/libphonenumber/resources/geocoding/en/599.txt +0 -22
  1841. data/data/libphonenumber/resources/geocoding/en/62.txt +0 -325
  1842. data/data/libphonenumber/resources/geocoding/en/64.txt +0 -124
  1843. data/data/libphonenumber/resources/geocoding/en/66.txt +0 -40
  1844. data/data/libphonenumber/resources/geocoding/en/686.txt +0 -50
  1845. data/data/libphonenumber/resources/geocoding/en/688.txt +0 -25
  1846. data/data/libphonenumber/resources/geocoding/en/7.txt +0 -355
  1847. data/data/libphonenumber/resources/geocoding/en/81.txt +0 -1547
  1848. data/data/libphonenumber/resources/geocoding/en/82.txt +0 -35
  1849. data/data/libphonenumber/resources/geocoding/en/84.txt +0 -88
  1850. data/data/libphonenumber/resources/geocoding/en/86.txt +0 -154830
  1851. data/data/libphonenumber/resources/geocoding/en/886.txt +0 -30
  1852. data/data/libphonenumber/resources/geocoding/en/90.txt +0 -182
  1853. data/data/libphonenumber/resources/geocoding/en/91.txt +0 -2666
  1854. data/data/libphonenumber/resources/geocoding/en/93.txt +0 -52
  1855. data/data/libphonenumber/resources/geocoding/en/94.txt +0 -46
  1856. data/data/libphonenumber/resources/geocoding/en/95.txt +0 -17
  1857. data/data/libphonenumber/resources/geocoding/en/962.txt +0 -32
  1858. data/data/libphonenumber/resources/geocoding/en/966.txt +0 -29
  1859. data/data/libphonenumber/resources/geocoding/en/968.txt +0 -18
  1860. data/data/libphonenumber/resources/geocoding/en/972.txt +0 -20
  1861. data/data/libphonenumber/resources/geocoding/en/975.txt +0 -21
  1862. data/data/libphonenumber/resources/geocoding/en/98.txt +0 -51
  1863. data/data/libphonenumber/resources/geocoding/en/992.txt +0 -77
  1864. data/data/libphonenumber/resources/geocoding/en/994.txt +0 -98
  1865. data/data/libphonenumber/resources/geocoding/es/228.txt +0 -23
  1866. data/data/libphonenumber/resources/geocoding/es/230.txt +0 -23
  1867. data/data/libphonenumber/resources/geocoding/es/34.txt +0 -124
  1868. data/data/libphonenumber/resources/geocoding/es/54.txt +0 -238
  1869. data/data/libphonenumber/resources/geocoding/es/56.txt +0 -43
  1870. data/data/libphonenumber/resources/geocoding/es/57.txt +0 -186
  1871. data/data/libphonenumber/resources/geocoding/es/58.txt +0 -72
  1872. data/data/libphonenumber/resources/geocoding/es/82.txt +0 -33
  1873. data/data/libphonenumber/resources/geocoding/fa/93.txt +0 -53
  1874. data/data/libphonenumber/resources/geocoding/fa/98.txt +0 -48
  1875. data/data/libphonenumber/resources/geocoding/fi/358.txt +0 -74
  1876. data/data/libphonenumber/resources/geocoding/fi/82.txt +0 -34
  1877. data/data/libphonenumber/resources/geocoding/fr/212.txt +0 -85
  1878. data/data/libphonenumber/resources/geocoding/fr/222.txt +0 -29
  1879. data/data/libphonenumber/resources/geocoding/fr/225.txt +0 -30
  1880. data/data/libphonenumber/resources/geocoding/fr/228.txt +0 -24
  1881. data/data/libphonenumber/resources/geocoding/fr/229.txt +0 -55
  1882. data/data/libphonenumber/resources/geocoding/fr/230.txt +0 -23
  1883. data/data/libphonenumber/resources/geocoding/fr/242.txt +0 -25
  1884. data/data/libphonenumber/resources/geocoding/fr/243.txt +0 -24
  1885. data/data/libphonenumber/resources/geocoding/fr/269.txt +0 -34
  1886. data/data/libphonenumber/resources/geocoding/fr/290.txt +0 -24
  1887. data/data/libphonenumber/resources/geocoding/fr/32.txt +0 -59
  1888. data/data/libphonenumber/resources/geocoding/fr/33.txt +0 -5593
  1889. data/data/libphonenumber/resources/geocoding/fr/352.txt +0 -231
  1890. data/data/libphonenumber/resources/geocoding/fr/41.txt +0 -37
  1891. data/data/libphonenumber/resources/geocoding/fr/82.txt +0 -33
  1892. data/data/libphonenumber/resources/geocoding/hi/82.txt +0 -36
  1893. data/data/libphonenumber/resources/geocoding/hu/36.txt +0 -71
  1894. data/data/libphonenumber/resources/geocoding/hu/82.txt +0 -35
  1895. data/data/libphonenumber/resources/geocoding/id/62.txt +0 -326
  1896. data/data/libphonenumber/resources/geocoding/it/39.txt +0 -248
  1897. data/data/libphonenumber/resources/geocoding/it/41.txt +0 -37
  1898. data/data/libphonenumber/resources/geocoding/iw/82.txt +0 -37
  1899. data/data/libphonenumber/resources/geocoding/ja/81.txt +0 -1546
  1900. data/data/libphonenumber/resources/geocoding/ja/82.txt +0 -35
  1901. data/data/libphonenumber/resources/geocoding/ko/82.txt +0 -35
  1902. data/data/libphonenumber/resources/geocoding/nl/31.txt +0 -145
  1903. data/data/libphonenumber/resources/geocoding/nl/32.txt +0 -59
  1904. data/data/libphonenumber/resources/geocoding/pl/48.txt +0 -66
  1905. data/data/libphonenumber/resources/geocoding/pt/238.txt +0 -58
  1906. data/data/libphonenumber/resources/geocoding/pt/239.txt +0 -37
  1907. data/data/libphonenumber/resources/geocoding/pt/244.txt +0 -59
  1908. data/data/libphonenumber/resources/geocoding/pt/245.txt +0 -37
  1909. data/data/libphonenumber/resources/geocoding/pt/258.txt +0 -29
  1910. data/data/libphonenumber/resources/geocoding/pt/351.txt +0 -69
  1911. data/data/libphonenumber/resources/geocoding/pt/55.txt +0 -15269
  1912. data/data/libphonenumber/resources/geocoding/ro/373.txt +0 -61
  1913. data/data/libphonenumber/resources/geocoding/ro/40.txt +0 -99
  1914. data/data/libphonenumber/resources/geocoding/ru/373.txt +0 -61
  1915. data/data/libphonenumber/resources/geocoding/ru/374.txt +0 -177
  1916. data/data/libphonenumber/resources/geocoding/ru/375.txt +0 -143
  1917. data/data/libphonenumber/resources/geocoding/ru/7.txt +0 -108
  1918. data/data/libphonenumber/resources/geocoding/se/358.txt +0 -74
  1919. data/data/libphonenumber/resources/geocoding/sr/381.txt +0 -51
  1920. data/data/libphonenumber/resources/geocoding/sv/46.txt +0 -266
  1921. data/data/libphonenumber/resources/geocoding/th/66.txt +0 -39
  1922. data/data/libphonenumber/resources/geocoding/tr/82.txt +0 -35
  1923. data/data/libphonenumber/resources/geocoding/tr/90.txt +0 -182
  1924. data/data/libphonenumber/resources/geocoding/vi/84.txt +0 -80
  1925. data/data/libphonenumber/resources/geocoding/zh/82.txt +0 -35
  1926. data/data/libphonenumber/resources/geocoding/zh/86.txt +0 -154830
  1927. data/data/libphonenumber/resources/geocoding/zh/886.txt +0 -30
  1928. data/data/libphonenumber/resources/geocoding/zh_Hant/82.txt +0 -35
  1929. data/data/libphonenumber/resources/geocoding/zh_Hant/886.txt +0 -30
  1930. data/data/libphonenumber/resources/phonemetadata.proto +0 -282
  1931. data/data/libphonenumber/resources/phonenumber.proto +0 -124
  1932. data/data/libphonenumber/resources/test/carrier/en/1.txt +0 -16
  1933. data/data/libphonenumber/resources/test/carrier/en/244.txt +0 -16
  1934. data/data/libphonenumber/resources/test/carrier/en/44.txt +0 -17
  1935. data/data/libphonenumber/resources/test/carrier/sv/44.txt +0 -15
  1936. data/data/libphonenumber/resources/test/geocoding/de/1.txt +0 -16
  1937. data/data/libphonenumber/resources/test/geocoding/en/1.txt +0 -21
  1938. data/data/libphonenumber/resources/test/geocoding/en/54.txt +0 -15
  1939. data/data/libphonenumber/resources/test/geocoding/en/82.txt +0 -31
  1940. data/data/libphonenumber/resources/test/geocoding/ko/82.txt +0 -29
  1941. data/data/libphonenumber/resources/test/timezones/map_data.txt +0 -24
  1942. data/data/libphonenumber/resources/timezones/map_data.txt +0 -2070
  1943. data/data/libphonenumber/tools/cpp/CMakeLists.txt +0 -57
  1944. data/data/libphonenumber/tools/cpp/gtest.cmake +0 -47
  1945. data/data/libphonenumber/tools/cpp/src/base/basictypes.h +0 -330
  1946. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data.cc +0 -655
  1947. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data.h +0 -37
  1948. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data_main.cc +0 -21
  1949. data/data/libphonenumber/tools/cpp/test/cpp-build/generate_geocoding_data_test.cc +0 -39
  1950. data/data/libphonenumber/tools/cpp/test/cpp-build/run_tests.cc +0 -21
  1951. data/data/libphonenumber/tools/java/common/pom.xml +0 -69
  1952. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java +0 -530
  1953. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/Command.java +0 -51
  1954. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/CommandDispatcher.java +0 -78
  1955. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/CopyrightNotice.java +0 -66
  1956. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/FileUtils.java +0 -52
  1957. data/data/libphonenumber/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java +0 -654
  1958. data/data/libphonenumber/tools/java/cpp-build/pom.xml +0 -114
  1959. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/BuildMetadataCppFromXml.java +0 -230
  1960. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/CppMetadataGenerator.java +0 -197
  1961. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/EntryPoint.java +0 -33
  1962. data/data/libphonenumber/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  1963. data/data/libphonenumber/tools/java/cpp-build/test/com/google/i18n/phonenumbers/BuildMetadataCppFromXmlTest.java +0 -185
  1964. data/data/libphonenumber/tools/java/cpp-build/test/com/google/i18n/phonenumbers/CppMetadataGeneratorTest.java +0 -122
  1965. data/data/libphonenumber/tools/java/data/README +0 -16
  1966. data/data/libphonenumber/tools/java/data/pom.xml +0 -101
  1967. data/data/libphonenumber/tools/java/data/src/com/google/i18n/phonenumbers/CombineGeoData.java +0 -287
  1968. data/data/libphonenumber/tools/java/data/src/com/google/i18n/phonenumbers/CombineGeoDataServlet.java +0 -46
  1969. data/data/libphonenumber/tools/java/data/test/com/google/i18n/phonenumbers/CombineGeoDataTest.java +0 -233
  1970. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/appengine-web.xml +0 -8
  1971. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/logging.properties +0 -13
  1972. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/web.xml +0 -18
  1973. data/data/libphonenumber/tools/java/data/webapp/index.html +0 -22
  1974. data/data/libphonenumber/tools/java/java-build/pom.xml +0 -121
  1975. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java +0 -397
  1976. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java +0 -381
  1977. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/EntryPoint.java +0 -39
  1978. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/JSArrayBuilder.java +0 -142
  1979. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/AbstractPhonePrefixDataIOHandler.java +0 -62
  1980. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixData.java +0 -483
  1981. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixDataEntryPoint.java +0 -58
  1982. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapData.java +0 -143
  1983. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapDataEntryPoint.java +0 -60
  1984. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/PhonePrefixDataIOHandler.java +0 -59
  1985. data/data/libphonenumber/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  1986. data/data/libphonenumber/tools/java/java-build/test/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixDataTest.java +0 -291
  1987. data/data/libphonenumber/tools/java/java-build/test/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapDataTest.java +0 -136
  1988. data/data/libphonenumber/tools/java/pom.xml +0 -29
  1989. data/data/libphonenumber/tools/script/continuous-integration.sh +0 -96
@@ -1,3312 +0,0 @@
1
- /*
2
- * Copyright (C) 2009 The Libphonenumber Authors
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- package com.google.i18n.phonenumbers;
18
-
19
- import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
20
- import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource;
21
- import com.google.i18n.phonenumbers.nano.Phonemetadata.NumberFormat;
22
- import com.google.i18n.phonenumbers.nano.Phonemetadata.PhoneMetadata;
23
- import com.google.i18n.phonenumbers.nano.Phonemetadata.PhoneNumberDesc;
24
-
25
- import java.io.InputStream;
26
- import java.util.ArrayList;
27
- import java.util.Arrays;
28
- import java.util.Collections;
29
- import java.util.HashMap;
30
- import java.util.HashSet;
31
- import java.util.Iterator;
32
- import java.util.List;
33
- import java.util.Map;
34
- import java.util.Set;
35
- import java.util.logging.Level;
36
- import java.util.logging.Logger;
37
- import java.util.regex.Matcher;
38
- import java.util.regex.Pattern;
39
-
40
- /**
41
- * Utility for international phone numbers. Functionality includes formatting, parsing and
42
- * validation.
43
- *
44
- * <p>If you use this library, and want to be notified about important changes, please sign up to
45
- * our <a href="http://groups.google.com/group/libphonenumber-discuss/about">mailing list</a>.
46
- *
47
- * NOTE: A lot of methods in this class require Region Code strings. These must be provided using
48
- * ISO 3166-1 two-letter country-code format. These should be in upper-case. The list of the codes
49
- * can be found here:
50
- * http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm
51
- *
52
- * @author Shaopeng Jia
53
- */
54
- public class PhoneNumberUtil {
55
- // @VisibleForTesting
56
- static final MetadataLoader DEFAULT_METADATA_LOADER = new MetadataLoader() {
57
- @Override
58
- public InputStream loadMetadata(String metadataFileName) {
59
- return PhoneNumberUtil.class.getResourceAsStream(metadataFileName);
60
- }
61
- };
62
-
63
- private static final Logger logger = Logger.getLogger(PhoneNumberUtil.class.getName());
64
-
65
- /** Flags to use when compiling regular expressions for phone numbers. */
66
- static final int REGEX_FLAGS = Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE;
67
- // The minimum and maximum length of the national significant number.
68
- private static final int MIN_LENGTH_FOR_NSN = 2;
69
- // The ITU says the maximum length should be 15, but we have found longer numbers in Germany.
70
- static final int MAX_LENGTH_FOR_NSN = 17;
71
- // The maximum length of the country calling code.
72
- static final int MAX_LENGTH_COUNTRY_CODE = 3;
73
- // We don't allow input strings for parsing to be longer than 250 chars. This prevents malicious
74
- // input from overflowing the regular-expression engine.
75
- private static final int MAX_INPUT_STRING_LENGTH = 250;
76
-
77
- // Region-code for the unknown region.
78
- private static final String UNKNOWN_REGION = "ZZ";
79
-
80
- private static final int NANPA_COUNTRY_CODE = 1;
81
-
82
- // The prefix that needs to be inserted in front of a Colombian landline number when dialed from
83
- // a mobile phone in Colombia.
84
- private static final String COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX = "3";
85
-
86
- // Map of country calling codes that use a mobile token before the area code. One example of when
87
- // this is relevant is when determining the length of the national destination code, which should
88
- // be the length of the area code plus the length of the mobile token.
89
- private static final Map<Integer, String> MOBILE_TOKEN_MAPPINGS;
90
-
91
- // Set of country codes that have geographically assigned mobile numbers (see GEO_MOBILE_COUNTRIES
92
- // below) which are not based on *area codes*. For example, in China mobile numbers start with a
93
- // carrier indicator, and beyond that are geographically assigned: this carrier indicator is not
94
- // considered to be an area code.
95
- private static final Set<Integer> GEO_MOBILE_COUNTRIES_WITHOUT_MOBILE_AREA_CODES;
96
-
97
- // Set of country calling codes that have geographically assigned mobile numbers. This may not be
98
- // complete; we add calling codes case by case, as we find geographical mobile numbers or hear
99
- // from user reports. Note that countries like the US, where we can't distinguish between
100
- // fixed-line or mobile numbers, are not listed here, since we consider FIXED_LINE_OR_MOBILE to be
101
- // a possibly geographically-related type anyway (like FIXED_LINE).
102
- private static final Set<Integer> GEO_MOBILE_COUNTRIES;
103
-
104
- // The PLUS_SIGN signifies the international prefix.
105
- static final char PLUS_SIGN = '+';
106
-
107
- private static final char STAR_SIGN = '*';
108
-
109
- private static final String RFC3966_EXTN_PREFIX = ";ext=";
110
- private static final String RFC3966_PREFIX = "tel:";
111
- private static final String RFC3966_PHONE_CONTEXT = ";phone-context=";
112
- private static final String RFC3966_ISDN_SUBADDRESS = ";isub=";
113
-
114
- // A map that contains characters that are essential when dialling. That means any of the
115
- // characters in this map must not be removed from a number when dialling, otherwise the call
116
- // will not reach the intended destination.
117
- private static final Map<Character, Character> DIALLABLE_CHAR_MAPPINGS;
118
-
119
- // Only upper-case variants of alpha characters are stored.
120
- private static final Map<Character, Character> ALPHA_MAPPINGS;
121
-
122
- // For performance reasons, amalgamate both into one map.
123
- private static final Map<Character, Character> ALPHA_PHONE_MAPPINGS;
124
-
125
- // Separate map of all symbols that we wish to retain when formatting alpha numbers. This
126
- // includes digits, ASCII letters and number grouping symbols such as "-" and " ".
127
- private static final Map<Character, Character> ALL_PLUS_NUMBER_GROUPING_SYMBOLS;
128
-
129
- static {
130
- HashMap<Integer, String> mobileTokenMap = new HashMap<Integer, String>();
131
- mobileTokenMap.put(52, "1");
132
- mobileTokenMap.put(54, "9");
133
- MOBILE_TOKEN_MAPPINGS = Collections.unmodifiableMap(mobileTokenMap);
134
-
135
- HashSet<Integer> geoMobileCountriesWithoutMobileAreaCodes = new HashSet<Integer>();
136
- geoMobileCountriesWithoutMobileAreaCodes.add(86); // China
137
- GEO_MOBILE_COUNTRIES_WITHOUT_MOBILE_AREA_CODES =
138
- Collections.unmodifiableSet(geoMobileCountriesWithoutMobileAreaCodes);
139
-
140
- HashSet<Integer> geoMobileCountries = new HashSet<Integer>();
141
- geoMobileCountries.add(52); // Mexico
142
- geoMobileCountries.add(54); // Argentina
143
- geoMobileCountries.add(55); // Brazil
144
- geoMobileCountries.add(62); // Indonesia: some prefixes only (fixed CMDA wireless)
145
- geoMobileCountries.addAll(geoMobileCountriesWithoutMobileAreaCodes);
146
- GEO_MOBILE_COUNTRIES = Collections.unmodifiableSet(geoMobileCountries);
147
-
148
- // Simple ASCII digits map used to populate ALPHA_PHONE_MAPPINGS and
149
- // ALL_PLUS_NUMBER_GROUPING_SYMBOLS.
150
- HashMap<Character, Character> asciiDigitMappings = new HashMap<Character, Character>();
151
- asciiDigitMappings.put('0', '0');
152
- asciiDigitMappings.put('1', '1');
153
- asciiDigitMappings.put('2', '2');
154
- asciiDigitMappings.put('3', '3');
155
- asciiDigitMappings.put('4', '4');
156
- asciiDigitMappings.put('5', '5');
157
- asciiDigitMappings.put('6', '6');
158
- asciiDigitMappings.put('7', '7');
159
- asciiDigitMappings.put('8', '8');
160
- asciiDigitMappings.put('9', '9');
161
-
162
- HashMap<Character, Character> alphaMap = new HashMap<Character, Character>(40);
163
- alphaMap.put('A', '2');
164
- alphaMap.put('B', '2');
165
- alphaMap.put('C', '2');
166
- alphaMap.put('D', '3');
167
- alphaMap.put('E', '3');
168
- alphaMap.put('F', '3');
169
- alphaMap.put('G', '4');
170
- alphaMap.put('H', '4');
171
- alphaMap.put('I', '4');
172
- alphaMap.put('J', '5');
173
- alphaMap.put('K', '5');
174
- alphaMap.put('L', '5');
175
- alphaMap.put('M', '6');
176
- alphaMap.put('N', '6');
177
- alphaMap.put('O', '6');
178
- alphaMap.put('P', '7');
179
- alphaMap.put('Q', '7');
180
- alphaMap.put('R', '7');
181
- alphaMap.put('S', '7');
182
- alphaMap.put('T', '8');
183
- alphaMap.put('U', '8');
184
- alphaMap.put('V', '8');
185
- alphaMap.put('W', '9');
186
- alphaMap.put('X', '9');
187
- alphaMap.put('Y', '9');
188
- alphaMap.put('Z', '9');
189
- ALPHA_MAPPINGS = Collections.unmodifiableMap(alphaMap);
190
-
191
- HashMap<Character, Character> combinedMap = new HashMap<Character, Character>(100);
192
- combinedMap.putAll(ALPHA_MAPPINGS);
193
- combinedMap.putAll(asciiDigitMappings);
194
- ALPHA_PHONE_MAPPINGS = Collections.unmodifiableMap(combinedMap);
195
-
196
- HashMap<Character, Character> diallableCharMap = new HashMap<Character, Character>();
197
- diallableCharMap.putAll(asciiDigitMappings);
198
- diallableCharMap.put(PLUS_SIGN, PLUS_SIGN);
199
- diallableCharMap.put('*', '*');
200
- DIALLABLE_CHAR_MAPPINGS = Collections.unmodifiableMap(diallableCharMap);
201
-
202
- HashMap<Character, Character> allPlusNumberGroupings = new HashMap<Character, Character>();
203
- // Put (lower letter -> upper letter) and (upper letter -> upper letter) mappings.
204
- for (char c : ALPHA_MAPPINGS.keySet()) {
205
- allPlusNumberGroupings.put(Character.toLowerCase(c), c);
206
- allPlusNumberGroupings.put(c, c);
207
- }
208
- allPlusNumberGroupings.putAll(asciiDigitMappings);
209
- // Put grouping symbols.
210
- allPlusNumberGroupings.put('-', '-');
211
- allPlusNumberGroupings.put('\uFF0D', '-');
212
- allPlusNumberGroupings.put('\u2010', '-');
213
- allPlusNumberGroupings.put('\u2011', '-');
214
- allPlusNumberGroupings.put('\u2012', '-');
215
- allPlusNumberGroupings.put('\u2013', '-');
216
- allPlusNumberGroupings.put('\u2014', '-');
217
- allPlusNumberGroupings.put('\u2015', '-');
218
- allPlusNumberGroupings.put('\u2212', '-');
219
- allPlusNumberGroupings.put('/', '/');
220
- allPlusNumberGroupings.put('\uFF0F', '/');
221
- allPlusNumberGroupings.put(' ', ' ');
222
- allPlusNumberGroupings.put('\u3000', ' ');
223
- allPlusNumberGroupings.put('\u2060', ' ');
224
- allPlusNumberGroupings.put('.', '.');
225
- allPlusNumberGroupings.put('\uFF0E', '.');
226
- ALL_PLUS_NUMBER_GROUPING_SYMBOLS = Collections.unmodifiableMap(allPlusNumberGroupings);
227
- }
228
-
229
- // Pattern that makes it easy to distinguish whether a region has a unique international dialing
230
- // prefix or not. If a region has a unique international prefix (e.g. 011 in USA), it will be
231
- // represented as a string that contains a sequence of ASCII digits. If there are multiple
232
- // available international prefixes in a region, they will be represented as a regex string that
233
- // always contains character(s) other than ASCII digits.
234
- // Note this regex also includes tilde, which signals waiting for the tone.
235
- private static final Pattern UNIQUE_INTERNATIONAL_PREFIX =
236
- Pattern.compile("[\\d]+(?:[~\u2053\u223C\uFF5E][\\d]+)?");
237
-
238
- // Regular expression of acceptable punctuation found in phone numbers. This excludes punctuation
239
- // found as a leading character only.
240
- // This consists of dash characters, white space characters, full stops, slashes,
241
- // square brackets, parentheses and tildes. It also includes the letter 'x' as that is found as a
242
- // placeholder for carrier information in some phone numbers. Full-width variants are also
243
- // present.
244
- static final String VALID_PUNCTUATION = "-x\u2010-\u2015\u2212\u30FC\uFF0D-\uFF0F " +
245
- "\u00A0\u00AD\u200B\u2060\u3000()\uFF08\uFF09\uFF3B\uFF3D.\\[\\]/~\u2053\u223C\uFF5E";
246
-
247
- private static final String DIGITS = "\\p{Nd}";
248
- // We accept alpha characters in phone numbers, ASCII only, upper and lower case.
249
- private static final String VALID_ALPHA =
250
- Arrays.toString(ALPHA_MAPPINGS.keySet().toArray()).replaceAll("[, \\[\\]]", "") +
251
- Arrays.toString(ALPHA_MAPPINGS.keySet().toArray()).toLowerCase().replaceAll("[, \\[\\]]", "");
252
- static final String PLUS_CHARS = "+\uFF0B";
253
- static final Pattern PLUS_CHARS_PATTERN = Pattern.compile("[" + PLUS_CHARS + "]+");
254
- private static final Pattern SEPARATOR_PATTERN = Pattern.compile("[" + VALID_PUNCTUATION + "]+");
255
- private static final Pattern CAPTURING_DIGIT_PATTERN = Pattern.compile("(" + DIGITS + ")");
256
-
257
- // Regular expression of acceptable characters that may start a phone number for the purposes of
258
- // parsing. This allows us to strip away meaningless prefixes to phone numbers that may be
259
- // mistakenly given to us. This consists of digits, the plus symbol and arabic-indic digits. This
260
- // does not contain alpha characters, although they may be used later in the number. It also does
261
- // not include other punctuation, as this will be stripped later during parsing and is of no
262
- // information value when parsing a number.
263
- private static final String VALID_START_CHAR = "[" + PLUS_CHARS + DIGITS + "]";
264
- private static final Pattern VALID_START_CHAR_PATTERN = Pattern.compile(VALID_START_CHAR);
265
-
266
- // Regular expression of characters typically used to start a second phone number for the purposes
267
- // of parsing. This allows us to strip off parts of the number that are actually the start of
268
- // another number, such as for: (530) 583-6985 x302/x2303 -> the second extension here makes this
269
- // actually two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second
270
- // extension so that the first number is parsed correctly.
271
- private static final String SECOND_NUMBER_START = "[\\\\/] *x";
272
- static final Pattern SECOND_NUMBER_START_PATTERN = Pattern.compile(SECOND_NUMBER_START);
273
-
274
- // Regular expression of trailing characters that we want to remove. We remove all characters that
275
- // are not alpha or numerical characters. The hash character is retained here, as it may signify
276
- // the previous block was an extension.
277
- private static final String UNWANTED_END_CHARS = "[[\\P{N}&&\\P{L}]&&[^#]]+$";
278
- static final Pattern UNWANTED_END_CHAR_PATTERN = Pattern.compile(UNWANTED_END_CHARS);
279
-
280
- // We use this pattern to check if the phone number has at least three letters in it - if so, then
281
- // we treat it as a number where some phone-number digits are represented by letters.
282
- private static final Pattern VALID_ALPHA_PHONE_PATTERN = Pattern.compile("(?:.*?[A-Za-z]){3}.*");
283
-
284
- // Regular expression of viable phone numbers. This is location independent. Checks we have at
285
- // least three leading digits, and only valid punctuation, alpha characters and
286
- // digits in the phone number. Does not include extension data.
287
- // The symbol 'x' is allowed here as valid punctuation since it is often used as a placeholder for
288
- // carrier codes, for example in Brazilian phone numbers. We also allow multiple "+" characters at
289
- // the start.
290
- // Corresponds to the following:
291
- // [digits]{minLengthNsn}|
292
- // plus_sign*(([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*
293
- //
294
- // The first reg-ex is to allow short numbers (two digits long) to be parsed if they are entered
295
- // as "15" etc, but only if there is no punctuation in them. The second expression restricts the
296
- // number of digits to three or more, but then allows them to be in international form, and to
297
- // have alpha-characters and punctuation.
298
- //
299
- // Note VALID_PUNCTUATION starts with a -, so must be the first in the range.
300
- private static final String VALID_PHONE_NUMBER =
301
- DIGITS + "{" + MIN_LENGTH_FOR_NSN + "}" + "|" +
302
- "[" + PLUS_CHARS + "]*+(?:[" + VALID_PUNCTUATION + STAR_SIGN + "]*" + DIGITS + "){3,}[" +
303
- VALID_PUNCTUATION + STAR_SIGN + VALID_ALPHA + DIGITS + "]*";
304
-
305
- // Default extension prefix to use when formatting. This will be put in front of any extension
306
- // component of the number, after the main national number is formatted. For example, if you wish
307
- // the default extension formatting to be " extn: 3456", then you should specify " extn: " here
308
- // as the default extension prefix. This can be overridden by region-specific preferences.
309
- private static final String DEFAULT_EXTN_PREFIX = " ext. ";
310
-
311
- // Pattern to capture digits used in an extension. Places a maximum length of "7" for an
312
- // extension.
313
- private static final String CAPTURING_EXTN_DIGITS = "(" + DIGITS + "{1,7})";
314
- // Regexp of all possible ways to write extensions, for use when parsing. This will be run as a
315
- // case-insensitive regexp match. Wide character versions are also provided after each ASCII
316
- // version.
317
- private static final String EXTN_PATTERNS_FOR_PARSING;
318
- static final String EXTN_PATTERNS_FOR_MATCHING;
319
- static {
320
- // One-character symbols that can be used to indicate an extension.
321
- String singleExtnSymbolsForMatching = "x\uFF58#\uFF03~\uFF5E";
322
- // For parsing, we are slightly more lenient in our interpretation than for matching. Here we
323
- // allow a "comma" as a possible extension indicator. When matching, this is hardly ever used to
324
- // indicate this.
325
- String singleExtnSymbolsForParsing = "," + singleExtnSymbolsForMatching;
326
-
327
- EXTN_PATTERNS_FOR_PARSING = createExtnPattern(singleExtnSymbolsForParsing);
328
- EXTN_PATTERNS_FOR_MATCHING = createExtnPattern(singleExtnSymbolsForMatching);
329
- }
330
-
331
- /**
332
- * Helper initialiser method to create the regular-expression pattern to match extensions,
333
- * allowing the one-char extension symbols provided by {@code singleExtnSymbols}.
334
- */
335
- private static String createExtnPattern(String singleExtnSymbols) {
336
- // There are three regular expressions here. The first covers RFC 3966 format, where the
337
- // extension is added using ";ext=". The second more generic one starts with optional white
338
- // space and ends with an optional full stop (.), followed by zero or more spaces/tabs and then
339
- // the numbers themselves. The other one covers the special case of American numbers where the
340
- // extension is written with a hash at the end, such as "- 503#".
341
- // Note that the only capturing groups should be around the digits that you want to capture as
342
- // part of the extension, or else parsing will fail!
343
- // Canonical-equivalence doesn't seem to be an option with Android java, so we allow two options
344
- // for representing the accented o - the character itself, and one in the unicode decomposed
345
- // form with the combining acute accent.
346
- return (RFC3966_EXTN_PREFIX + CAPTURING_EXTN_DIGITS + "|" + "[ \u00A0\\t,]*" +
347
- "(?:e?xt(?:ensi(?:o\u0301?|\u00F3))?n?|\uFF45?\uFF58\uFF54\uFF4E?|" +
348
- "[" + singleExtnSymbols + "]|int|anexo|\uFF49\uFF4E\uFF54)" +
349
- "[:\\.\uFF0E]?[ \u00A0\\t,-]*" + CAPTURING_EXTN_DIGITS + "#?|" +
350
- "[- ]+(" + DIGITS + "{1,5})#");
351
- }
352
-
353
- // Regexp of all known extension prefixes used by different regions followed by 1 or more valid
354
- // digits, for use when parsing.
355
- private static final Pattern EXTN_PATTERN =
356
- Pattern.compile("(?:" + EXTN_PATTERNS_FOR_PARSING + ")$", REGEX_FLAGS);
357
-
358
- // We append optionally the extension pattern to the end here, as a valid phone number may
359
- // have an extension prefix appended, followed by 1 or more digits.
360
- private static final Pattern VALID_PHONE_NUMBER_PATTERN =
361
- Pattern.compile(VALID_PHONE_NUMBER + "(?:" + EXTN_PATTERNS_FOR_PARSING + ")?", REGEX_FLAGS);
362
-
363
- static final Pattern NON_DIGITS_PATTERN = Pattern.compile("(\\D+)");
364
-
365
- // The FIRST_GROUP_PATTERN was originally set to $1 but there are some countries for which the
366
- // first group is not used in the national pattern (e.g. Argentina) so the $1 group does not match
367
- // correctly. Therefore, we use \d, so that the first group actually used in the pattern will be
368
- // matched.
369
- private static final Pattern FIRST_GROUP_PATTERN = Pattern.compile("(\\$\\d)");
370
- private static final Pattern NP_PATTERN = Pattern.compile("\\$NP");
371
- private static final Pattern FG_PATTERN = Pattern.compile("\\$FG");
372
- private static final Pattern CC_PATTERN = Pattern.compile("\\$CC");
373
-
374
- // A pattern that is used to determine if the national prefix formatting rule has the first group
375
- // only, i.e., does not start with the national prefix. Note that the pattern explicitly allows
376
- // for unbalanced parentheses.
377
- private static final Pattern FIRST_GROUP_ONLY_PREFIX_PATTERN = Pattern.compile("\\(?\\$1\\)?");
378
-
379
- private static PhoneNumberUtil instance = null;
380
-
381
- public static final String REGION_CODE_FOR_NON_GEO_ENTITY = "001";
382
-
383
- /**
384
- * INTERNATIONAL and NATIONAL formats are consistent with the definition in ITU-T Recommendation
385
- * E123. For example, the number of the Google Switzerland office will be written as
386
- * "+41 44 668 1800" in INTERNATIONAL format, and as "044 668 1800" in NATIONAL format.
387
- * E164 format is as per INTERNATIONAL format but with no formatting applied, e.g.
388
- * "+41446681800". RFC3966 is as per INTERNATIONAL format, but with all spaces and other
389
- * separating symbols replaced with a hyphen, and with any phone number extension appended with
390
- * ";ext=". It also will have a prefix of "tel:" added, e.g. "tel:+41-44-668-1800".
391
- *
392
- * Note: If you are considering storing the number in a neutral format, you are highly advised to
393
- * use the PhoneNumber class.
394
- */
395
- public enum PhoneNumberFormat {
396
- E164,
397
- INTERNATIONAL,
398
- NATIONAL,
399
- RFC3966
400
- }
401
-
402
- /**
403
- * Type of phone numbers.
404
- */
405
- public enum PhoneNumberType {
406
- FIXED_LINE,
407
- MOBILE,
408
- // In some regions (e.g. the USA), it is impossible to distinguish between fixed-line and
409
- // mobile numbers by looking at the phone number itself.
410
- FIXED_LINE_OR_MOBILE,
411
- // Freephone lines
412
- TOLL_FREE,
413
- PREMIUM_RATE,
414
- // The cost of this call is shared between the caller and the recipient, and is hence typically
415
- // less than PREMIUM_RATE calls. See // http://en.wikipedia.org/wiki/Shared_Cost_Service for
416
- // more information.
417
- SHARED_COST,
418
- // Voice over IP numbers. This includes TSoIP (Telephony Service over IP).
419
- VOIP,
420
- // A personal number is associated with a particular person, and may be routed to either a
421
- // MOBILE or FIXED_LINE number. Some more information can be found here:
422
- // http://en.wikipedia.org/wiki/Personal_Numbers
423
- PERSONAL_NUMBER,
424
- PAGER,
425
- // Used for "Universal Access Numbers" or "Company Numbers". They may be further routed to
426
- // specific offices, but allow one number to be used for a company.
427
- UAN,
428
- // Used for "Voice Mail Access Numbers".
429
- VOICEMAIL,
430
- // A phone number is of type UNKNOWN when it does not fit any of the known patterns for a
431
- // specific region.
432
- UNKNOWN
433
- }
434
-
435
- /**
436
- * Types of phone number matches. See detailed description beside the isNumberMatch() method.
437
- */
438
- public enum MatchType {
439
- NOT_A_NUMBER,
440
- NO_MATCH,
441
- SHORT_NSN_MATCH,
442
- NSN_MATCH,
443
- EXACT_MATCH,
444
- }
445
-
446
- /**
447
- * Possible outcomes when testing if a PhoneNumber is possible.
448
- */
449
- public enum ValidationResult {
450
- IS_POSSIBLE,
451
- INVALID_COUNTRY_CODE,
452
- TOO_SHORT,
453
- TOO_LONG,
454
- }
455
-
456
- /**
457
- * Leniency when {@linkplain PhoneNumberUtil#findNumbers finding} potential phone numbers in text
458
- * segments. The levels here are ordered in increasing strictness.
459
- */
460
- public enum Leniency {
461
- /**
462
- * Phone numbers accepted are {@linkplain PhoneNumberUtil#isPossibleNumber(PhoneNumber)
463
- * possible}, but not necessarily {@linkplain PhoneNumberUtil#isValidNumber(PhoneNumber) valid}.
464
- */
465
- POSSIBLE {
466
- @Override
467
- boolean verify(PhoneNumber number, String candidate, PhoneNumberUtil util) {
468
- return util.isPossibleNumber(number);
469
- }
470
- },
471
- /**
472
- * Phone numbers accepted are {@linkplain PhoneNumberUtil#isPossibleNumber(PhoneNumber)
473
- * possible} and {@linkplain PhoneNumberUtil#isValidNumber(PhoneNumber) valid}. Numbers written
474
- * in national format must have their national-prefix present if it is usually written for a
475
- * number of this type.
476
- */
477
- VALID {
478
- @Override
479
- boolean verify(PhoneNumber number, String candidate, PhoneNumberUtil util) {
480
- if (!util.isValidNumber(number) ||
481
- !PhoneNumberMatcher.containsOnlyValidXChars(number, candidate, util)) {
482
- return false;
483
- }
484
- return PhoneNumberMatcher.isNationalPrefixPresentIfRequired(number, util);
485
- }
486
- },
487
- /**
488
- * Phone numbers accepted are {@linkplain PhoneNumberUtil#isValidNumber(PhoneNumber) valid} and
489
- * are grouped in a possible way for this locale. For example, a US number written as
490
- * "65 02 53 00 00" and "650253 0000" are not accepted at this leniency level, whereas
491
- * "650 253 0000", "650 2530000" or "6502530000" are.
492
- * Numbers with more than one '/' symbol in the national significant number are also dropped at
493
- * this level.
494
- * <p>
495
- * Warning: This level might result in lower coverage especially for regions outside of country
496
- * code "+1". If you are not sure about which level to use, email the discussion group
497
- * libphonenumber-discuss@googlegroups.com.
498
- */
499
- STRICT_GROUPING {
500
- @Override
501
- boolean verify(PhoneNumber number, String candidate, PhoneNumberUtil util) {
502
- if (!util.isValidNumber(number) ||
503
- !PhoneNumberMatcher.containsOnlyValidXChars(number, candidate, util) ||
504
- PhoneNumberMatcher.containsMoreThanOneSlashInNationalNumber(number, candidate) ||
505
- !PhoneNumberMatcher.isNationalPrefixPresentIfRequired(number, util)) {
506
- return false;
507
- }
508
- return PhoneNumberMatcher.checkNumberGroupingIsValid(
509
- number, candidate, util, new PhoneNumberMatcher.NumberGroupingChecker() {
510
- @Override
511
- public boolean checkGroups(PhoneNumberUtil util, PhoneNumber number,
512
- StringBuilder normalizedCandidate,
513
- String[] expectedNumberGroups) {
514
- return PhoneNumberMatcher.allNumberGroupsRemainGrouped(
515
- util, number, normalizedCandidate, expectedNumberGroups);
516
- }
517
- });
518
- }
519
- },
520
- /**
521
- * Phone numbers accepted are {@linkplain PhoneNumberUtil#isValidNumber(PhoneNumber) valid} and
522
- * are grouped in the same way that we would have formatted it, or as a single block. For
523
- * example, a US number written as "650 2530000" is not accepted at this leniency level, whereas
524
- * "650 253 0000" or "6502530000" are.
525
- * Numbers with more than one '/' symbol are also dropped at this level.
526
- * <p>
527
- * Warning: This level might result in lower coverage especially for regions outside of country
528
- * code "+1". If you are not sure about which level to use, email the discussion group
529
- * libphonenumber-discuss@googlegroups.com.
530
- */
531
- EXACT_GROUPING {
532
- @Override
533
- boolean verify(PhoneNumber number, String candidate, PhoneNumberUtil util) {
534
- if (!util.isValidNumber(number) ||
535
- !PhoneNumberMatcher.containsOnlyValidXChars(number, candidate, util) ||
536
- PhoneNumberMatcher.containsMoreThanOneSlashInNationalNumber(number, candidate) ||
537
- !PhoneNumberMatcher.isNationalPrefixPresentIfRequired(number, util)) {
538
- return false;
539
- }
540
- return PhoneNumberMatcher.checkNumberGroupingIsValid(
541
- number, candidate, util, new PhoneNumberMatcher.NumberGroupingChecker() {
542
- @Override
543
- public boolean checkGroups(PhoneNumberUtil util, PhoneNumber number,
544
- StringBuilder normalizedCandidate,
545
- String[] expectedNumberGroups) {
546
- return PhoneNumberMatcher.allNumberGroupsAreExactlyPresent(
547
- util, number, normalizedCandidate, expectedNumberGroups);
548
- }
549
- });
550
- }
551
- };
552
-
553
- /** Returns true if {@code number} is a verified number according to this leniency. */
554
- abstract boolean verify(PhoneNumber number, String candidate, PhoneNumberUtil util);
555
- }
556
-
557
- // A source of metadata for different regions.
558
- private final MetadataSource metadataSource;
559
-
560
- // A mapping from a country calling code to the region codes which denote the region represented
561
- // by that country calling code. In the case of multiple regions sharing a calling code, such as
562
- // the NANPA regions, the one indicated with "isMainCountryForCode" in the metadata should be
563
- // first.
564
- private final Map<Integer, List<String>> countryCallingCodeToRegionCodeMap;
565
-
566
- // The set of regions that share country calling code 1.
567
- // There are roughly 26 regions.
568
- // We set the initial capacity of the HashSet to 35 to offer a load factor of roughly 0.75.
569
- private final Set<String> nanpaRegions = new HashSet<String>(35);
570
-
571
- // A cache for frequently used region-specific regular expressions.
572
- // The initial capacity is set to 100 as this seems to be an optimal value for Android, based on
573
- // performance measurements.
574
- private final RegexCache regexCache = new RegexCache(100);
575
-
576
- // The set of regions the library supports.
577
- // There are roughly 240 of them and we set the initial capacity of the HashSet to 320 to offer a
578
- // load factor of roughly 0.75.
579
- private final Set<String> supportedRegions = new HashSet<String>(320);
580
-
581
- // The set of country calling codes that map to the non-geo entity region ("001"). This set
582
- // currently contains < 12 elements so the default capacity of 16 (load factor=0.75) is fine.
583
- private final Set<Integer> countryCodesForNonGeographicalRegion = new HashSet<Integer>();
584
-
585
- /**
586
- * This class implements a singleton, the constructor is only visible to facilitate testing.
587
- */
588
- // @VisibleForTesting
589
- PhoneNumberUtil(MetadataSource metadataSource,
590
- Map<Integer, List<String>> countryCallingCodeToRegionCodeMap) {
591
- this.metadataSource = metadataSource;
592
- this.countryCallingCodeToRegionCodeMap = countryCallingCodeToRegionCodeMap;
593
- for (Map.Entry<Integer, List<String>> entry : countryCallingCodeToRegionCodeMap.entrySet()) {
594
- List<String> regionCodes = entry.getValue();
595
- // We can assume that if the country calling code maps to the non-geo entity region code then
596
- // that's the only region code it maps to.
597
- if (regionCodes.size() == 1 && REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCodes.get(0))) {
598
- // This is the subset of all country codes that map to the non-geo entity region code.
599
- countryCodesForNonGeographicalRegion.add(entry.getKey());
600
- } else {
601
- // The supported regions set does not include the "001" non-geo entity region code.
602
- supportedRegions.addAll(regionCodes);
603
- }
604
- }
605
- // If the non-geo entity still got added to the set of supported regions it must be because
606
- // there are entries that list the non-geo entity alongside normal regions (which is wrong).
607
- // If we discover this, remove the non-geo entity from the set of supported regions and log.
608
- if (supportedRegions.remove(REGION_CODE_FOR_NON_GEO_ENTITY)) {
609
- logger.log(Level.WARNING, "invalid metadata " +
610
- "(country calling code was mapped to the non-geo entity as well as specific region(s))");
611
- }
612
- nanpaRegions.addAll(countryCallingCodeToRegionCodeMap.get(NANPA_COUNTRY_CODE));
613
- }
614
-
615
- /**
616
- * Returns a copy of the given NumberFormat object.
617
- */
618
- static NumberFormat copyNumberFormat(NumberFormat other) {
619
- NumberFormat copy = new NumberFormat();
620
- copy.pattern = other.pattern;
621
- copy.format = other.format;
622
- int leadingDigitsPatternSize = other.leadingDigitsPattern.length;
623
- copy.leadingDigitsPattern = new String[leadingDigitsPatternSize];
624
- for (int i = 0; i < leadingDigitsPatternSize; i++) {
625
- copy.leadingDigitsPattern[i] = other.leadingDigitsPattern[i];
626
- }
627
- copy.nationalPrefixFormattingRule = other.nationalPrefixFormattingRule;
628
- copy.domesticCarrierCodeFormattingRule = other.domesticCarrierCodeFormattingRule;
629
- copy.nationalPrefixOptionalWhenFormatting = other.nationalPrefixOptionalWhenFormatting;
630
- return copy;
631
- }
632
-
633
- /**
634
- * Attempts to extract a possible number from the string passed in. This currently strips all
635
- * leading characters that cannot be used to start a phone number. Characters that can be used to
636
- * start a phone number are defined in the VALID_START_CHAR_PATTERN. If none of these characters
637
- * are found in the number passed in, an empty string is returned. This function also attempts to
638
- * strip off any alternative extensions or endings if two or more are present, such as in the case
639
- * of: (530) 583-6985 x302/x2303. The second extension here makes this actually two phone numbers,
640
- * (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second extension so that the first
641
- * number is parsed correctly.
642
- *
643
- * @param number the string that might contain a phone number
644
- * @return the number, stripped of any non-phone-number prefix (such as "Tel:") or an empty
645
- * string if no character used to start phone numbers (such as + or any digit) is
646
- * found in the number
647
- */
648
- static String extractPossibleNumber(String number) {
649
- Matcher m = VALID_START_CHAR_PATTERN.matcher(number);
650
- if (m.find()) {
651
- number = number.substring(m.start());
652
- // Remove trailing non-alpha non-numerical characters.
653
- Matcher trailingCharsMatcher = UNWANTED_END_CHAR_PATTERN.matcher(number);
654
- if (trailingCharsMatcher.find()) {
655
- number = number.substring(0, trailingCharsMatcher.start());
656
- logger.log(Level.FINER, "Stripped trailing characters: " + number);
657
- }
658
- // Check for extra numbers at the end.
659
- Matcher secondNumber = SECOND_NUMBER_START_PATTERN.matcher(number);
660
- if (secondNumber.find()) {
661
- number = number.substring(0, secondNumber.start());
662
- }
663
- return number;
664
- } else {
665
- return "";
666
- }
667
- }
668
-
669
- /**
670
- * Checks to see if the string of characters could possibly be a phone number at all. At the
671
- * moment, checks to see that the string begins with at least 2 digits, ignoring any punctuation
672
- * commonly found in phone numbers.
673
- * This method does not require the number to be normalized in advance - but does assume that
674
- * leading non-number symbols have been removed, such as by the method extractPossibleNumber.
675
- *
676
- * @param number string to be checked for viability as a phone number
677
- * @return true if the number could be a phone number of some sort, otherwise false
678
- */
679
- // @VisibleForTesting
680
- static boolean isViablePhoneNumber(String number) {
681
- if (number.length() < MIN_LENGTH_FOR_NSN) {
682
- return false;
683
- }
684
- Matcher m = VALID_PHONE_NUMBER_PATTERN.matcher(number);
685
- return m.matches();
686
- }
687
-
688
- /**
689
- * Normalizes a string of characters representing a phone number. This performs the following
690
- * conversions:
691
- * Punctuation is stripped.
692
- * For ALPHA/VANITY numbers:
693
- * Letters are converted to their numeric representation on a telephone keypad. The keypad
694
- * used here is the one defined in ITU Recommendation E.161. This is only done if there are
695
- * 3 or more letters in the number, to lessen the risk that such letters are typos.
696
- * For other numbers:
697
- * Wide-ascii digits are converted to normal ASCII (European) digits.
698
- * Arabic-Indic numerals are converted to European numerals.
699
- * Spurious alpha characters are stripped.
700
- *
701
- * @param number a string of characters representing a phone number
702
- * @return the normalized string version of the phone number
703
- */
704
- static String normalize(String number) {
705
- Matcher m = VALID_ALPHA_PHONE_PATTERN.matcher(number);
706
- if (m.matches()) {
707
- return normalizeHelper(number, ALPHA_PHONE_MAPPINGS, true);
708
- } else {
709
- return normalizeDigitsOnly(number);
710
- }
711
- }
712
-
713
- /**
714
- * Normalizes a string of characters representing a phone number. This is a wrapper for
715
- * normalize(String number) but does in-place normalization of the StringBuilder provided.
716
- *
717
- * @param number a StringBuilder of characters representing a phone number that will be
718
- * normalized in place
719
- */
720
- static void normalize(StringBuilder number) {
721
- String normalizedNumber = normalize(number.toString());
722
- number.replace(0, number.length(), normalizedNumber);
723
- }
724
-
725
- /**
726
- * Normalizes a string of characters representing a phone number. This converts wide-ascii and
727
- * arabic-indic numerals to European numerals, and strips punctuation and alpha characters.
728
- *
729
- * @param number a string of characters representing a phone number
730
- * @return the normalized string version of the phone number
731
- */
732
- public static String normalizeDigitsOnly(String number) {
733
- return normalizeDigits(number, false /* strip non-digits */).toString();
734
- }
735
-
736
- static StringBuilder normalizeDigits(String number, boolean keepNonDigits) {
737
- StringBuilder normalizedDigits = new StringBuilder(number.length());
738
- for (char c : number.toCharArray()) {
739
- int digit = Character.digit(c, 10);
740
- if (digit != -1) {
741
- normalizedDigits.append(digit);
742
- } else if (keepNonDigits) {
743
- normalizedDigits.append(c);
744
- }
745
- }
746
- return normalizedDigits;
747
- }
748
-
749
- /**
750
- * Normalizes a string of characters representing a phone number. This strips all characters which
751
- * are not diallable on a mobile phone keypad (including all non-ASCII digits).
752
- *
753
- * @param number a string of characters representing a phone number
754
- * @return the normalized string version of the phone number
755
- */
756
- static String normalizeDiallableCharsOnly(String number) {
757
- return normalizeHelper(number, DIALLABLE_CHAR_MAPPINGS, true /* remove non matches */);
758
- }
759
-
760
- /**
761
- * Converts all alpha characters in a number to their respective digits on a keypad, but retains
762
- * existing formatting.
763
- */
764
- public static String convertAlphaCharactersInNumber(String number) {
765
- return normalizeHelper(number, ALPHA_PHONE_MAPPINGS, false);
766
- }
767
-
768
- /**
769
- * Gets the length of the geographical area code from the
770
- * PhoneNumber object passed in, so that clients could use it
771
- * to split a national significant number into geographical area code and subscriber number. It
772
- * works in such a way that the resultant subscriber number should be diallable, at least on some
773
- * devices. An example of how this could be used:
774
- *
775
- * <pre>{@code
776
- * PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
777
- * PhoneNumber number = phoneUtil.parse("16502530000", "US");
778
- * String nationalSignificantNumber = phoneUtil.getNationalSignificantNumber(number);
779
- * String areaCode;
780
- * String subscriberNumber;
781
- *
782
- * int areaCodeLength = phoneUtil.getLengthOfGeographicalAreaCode(number);
783
- * if (areaCodeLength > 0) {
784
- * areaCode = nationalSignificantNumber.substring(0, areaCodeLength);
785
- * subscriberNumber = nationalSignificantNumber.substring(areaCodeLength);
786
- * } else {
787
- * areaCode = "";
788
- * subscriberNumber = nationalSignificantNumber;
789
- * }
790
- * }</pre>
791
- *
792
- * N.B.: area code is a very ambiguous concept, so the I18N team generally recommends against
793
- * using it for most purposes, but recommends using the more general {@code national_number}
794
- * instead. Read the following carefully before deciding to use this method:
795
- * <ul>
796
- * <li> geographical area codes change over time, and this method honors those changes;
797
- * therefore, it doesn't guarantee the stability of the result it produces.
798
- * <li> subscriber numbers may not be diallable from all devices (notably mobile devices, which
799
- * typically requires the full national_number to be dialled in most regions).
800
- * <li> most non-geographical numbers have no area codes, including numbers from non-geographical
801
- * entities
802
- * <li> some geographical numbers have no area codes.
803
- * </ul>
804
- * @param number the PhoneNumber object for which clients
805
- * want to know the length of the area code.
806
- * @return the length of area code of the PhoneNumber object
807
- * passed in.
808
- */
809
- public int getLengthOfGeographicalAreaCode(PhoneNumber number) {
810
- PhoneMetadata metadata = getMetadataForRegion(getRegionCodeForNumber(number));
811
- if (metadata == null) {
812
- return 0;
813
- }
814
- // If a country doesn't use a national prefix, and this number doesn't have an Italian leading
815
- // zero, we assume it is a closed dialling plan with no area codes.
816
- if (metadata.nationalPrefix.equals("") && !number.isItalianLeadingZero()) {
817
- return 0;
818
- }
819
-
820
- PhoneNumberType type = getNumberType(number);
821
- int countryCallingCode = number.getCountryCode();
822
- if (type == PhoneNumberType.MOBILE
823
- // Note this is a rough heuristic; it doesn't cover Indonesia well, for example, where area
824
- // codes are present for some mobile phones but not for others. We have no better way of
825
- // representing this in the metadata at this point.
826
- && GEO_MOBILE_COUNTRIES_WITHOUT_MOBILE_AREA_CODES.contains(countryCallingCode)) {
827
- return 0;
828
- }
829
-
830
- if (!isNumberGeographical(type, countryCallingCode)) {
831
- return 0;
832
- }
833
-
834
- return getLengthOfNationalDestinationCode(number);
835
- }
836
-
837
- /**
838
- * Gets the length of the national destination code (NDC) from the
839
- * PhoneNumber object passed in, so that clients could use it
840
- * to split a national significant number into NDC and subscriber number. The NDC of a phone
841
- * number is normally the first group of digit(s) right after the country calling code when the
842
- * number is formatted in the international format, if there is a subscriber number part that
843
- * follows. An example of how this could be used:
844
- *
845
- * <pre>{@code
846
- * PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
847
- * PhoneNumber number = phoneUtil.parse("18002530000", "US");
848
- * String nationalSignificantNumber = phoneUtil.getNationalSignificantNumber(number);
849
- * String nationalDestinationCode;
850
- * String subscriberNumber;
851
- *
852
- * int nationalDestinationCodeLength = phoneUtil.getLengthOfNationalDestinationCode(number);
853
- * if (nationalDestinationCodeLength > 0) {
854
- * nationalDestinationCode = nationalSignificantNumber.substring(0,
855
- * nationalDestinationCodeLength);
856
- * subscriberNumber = nationalSignificantNumber.substring(nationalDestinationCodeLength);
857
- * } else {
858
- * nationalDestinationCode = "";
859
- * subscriberNumber = nationalSignificantNumber;
860
- * }
861
- * }</pre>
862
- *
863
- * Refer to the unittests to see the difference between this function and
864
- * {@link #getLengthOfGeographicalAreaCode}.
865
- *
866
- * @param number the PhoneNumber object for which clients
867
- * want to know the length of the NDC.
868
- * @return the length of NDC of the PhoneNumber object
869
- * passed in.
870
- */
871
- public int getLengthOfNationalDestinationCode(PhoneNumber number) {
872
- PhoneNumber copiedProto;
873
- if (number.hasExtension()) {
874
- // We don't want to alter the proto given to us, but we don't want to include the extension
875
- // when we format it, so we copy it and clear the extension here.
876
- copiedProto = new PhoneNumber();
877
- copiedProto.mergeFrom(number);
878
- copiedProto.clearExtension();
879
- } else {
880
- copiedProto = number;
881
- }
882
-
883
- String nationalSignificantNumber = format(copiedProto,
884
- PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
885
- String[] numberGroups = NON_DIGITS_PATTERN.split(nationalSignificantNumber);
886
- // The pattern will start with "+COUNTRY_CODE " so the first group will always be the empty
887
- // string (before the + symbol) and the second group will be the country calling code. The third
888
- // group will be area code if it is not the last group.
889
- if (numberGroups.length <= 3) {
890
- return 0;
891
- }
892
-
893
- if (getNumberType(number) == PhoneNumberType.MOBILE) {
894
- // For example Argentinian mobile numbers, when formatted in the international format, are in
895
- // the form of +54 9 NDC XXXX.... As a result, we take the length of the third group (NDC) and
896
- // add the length of the second group (which is the mobile token), which also forms part of
897
- // the national significant number. This assumes that the mobile token is always formatted
898
- // separately from the rest of the phone number.
899
- String mobileToken = getCountryMobileToken(number.getCountryCode());
900
- if (!mobileToken.equals("")) {
901
- return numberGroups[2].length() + numberGroups[3].length();
902
- }
903
- }
904
- return numberGroups[2].length();
905
- }
906
-
907
- /**
908
- * Returns the mobile token for the provided country calling code if it has one, otherwise
909
- * returns an empty string. A mobile token is a number inserted before the area code when dialing
910
- * a mobile number from that country from abroad.
911
- *
912
- * @param countryCallingCode the country calling code for which we want the mobile token
913
- * @return the mobile token, as a string, for the given country calling code
914
- */
915
- public static String getCountryMobileToken(int countryCallingCode) {
916
- if (MOBILE_TOKEN_MAPPINGS.containsKey(countryCallingCode)) {
917
- return MOBILE_TOKEN_MAPPINGS.get(countryCallingCode);
918
- }
919
- return "";
920
- }
921
-
922
- /**
923
- * Normalizes a string of characters representing a phone number by replacing all characters found
924
- * in the accompanying map with the values therein, and stripping all other characters if
925
- * removeNonMatches is true.
926
- *
927
- * @param number a string of characters representing a phone number
928
- * @param normalizationReplacements a mapping of characters to what they should be replaced by in
929
- * the normalized version of the phone number
930
- * @param removeNonMatches indicates whether characters that are not able to be replaced
931
- * should be stripped from the number. If this is false, they
932
- * will be left unchanged in the number.
933
- * @return the normalized string version of the phone number
934
- */
935
- private static String normalizeHelper(String number,
936
- Map<Character, Character> normalizationReplacements,
937
- boolean removeNonMatches) {
938
- StringBuilder normalizedNumber = new StringBuilder(number.length());
939
- for (int i = 0; i < number.length(); i++) {
940
- char character = number.charAt(i);
941
- Character newDigit = normalizationReplacements.get(Character.toUpperCase(character));
942
- if (newDigit != null) {
943
- normalizedNumber.append(newDigit);
944
- } else if (!removeNonMatches) {
945
- normalizedNumber.append(character);
946
- }
947
- // If neither of the above are true, we remove this character.
948
- }
949
- return normalizedNumber.toString();
950
- }
951
-
952
- /**
953
- * Sets or resets the PhoneNumberUtil singleton instance. If set to null, the next call to
954
- * {@code getInstance()} will load (and return) the default instance.
955
- */
956
- // @VisibleForTesting
957
- static synchronized void setInstance(PhoneNumberUtil util) {
958
- instance = util;
959
- }
960
-
961
- /**
962
- * Convenience method to get a list of what regions the library has metadata for.
963
- */
964
- public Set<String> getSupportedRegions() {
965
- return Collections.unmodifiableSet(supportedRegions);
966
- }
967
-
968
- /**
969
- * Convenience method to get a list of what global network calling codes the library has metadata
970
- * for.
971
- */
972
- public Set<Integer> getSupportedGlobalNetworkCallingCodes() {
973
- return Collections.unmodifiableSet(countryCodesForNonGeographicalRegion);
974
- }
975
-
976
- /**
977
- * Gets a {@link PhoneNumberUtil} instance to carry out international phone number formatting,
978
- * parsing, or validation. The instance is loaded with phone number metadata for a number of most
979
- * commonly used regions.
980
- *
981
- * <p>The {@link PhoneNumberUtil} is implemented as a singleton. Therefore, calling getInstance
982
- * multiple times will only result in one instance being created.
983
- *
984
- * @return a PhoneNumberUtil instance
985
- */
986
- public static synchronized PhoneNumberUtil getInstance() {
987
- if (instance == null) {
988
- setInstance(createInstance(DEFAULT_METADATA_LOADER));
989
- }
990
- return instance;
991
- }
992
-
993
- /**
994
- * Create a new {@link PhoneNumberUtil} instance to carry out international phone number
995
- * formatting, parsing, or validation. The instance is loaded with all metadata by
996
- * using the metadataSource specified.
997
- *
998
- * This method should only be used in the rare case in which you want to manage your own
999
- * metadata loading. Calling this method multiple times is very expensive, as each time
1000
- * a new instance is created from scratch. When in doubt, use {@link #getInstance}.
1001
- *
1002
- * @param metadataSource Customized metadata source. This should not be null.
1003
- * @return a PhoneNumberUtil instance
1004
- */
1005
- public static PhoneNumberUtil createInstance(MetadataSource metadataSource) {
1006
- if (metadataSource == null) {
1007
- throw new IllegalArgumentException("metadataSource could not be null.");
1008
- }
1009
- return new PhoneNumberUtil(metadataSource,
1010
- CountryCodeToRegionCodeMap.getCountryCodeToRegionCodeMap());
1011
- }
1012
-
1013
- /**
1014
- * Create a new {@link PhoneNumberUtil} instance to carry out international phone number
1015
- * formatting, parsing, or validation. The instance is loaded with all metadata by
1016
- * using the metadataLoader specified.
1017
- *
1018
- * This method should only be used in the rare case in which you want to manage your own
1019
- * metadata loading. Calling this method multiple times is very expensive, as each time
1020
- * a new instance is created from scratch. When in doubt, use {@link #getInstance}.
1021
- *
1022
- * @param metadataLoader Customized metadata loader. This should not be null.
1023
- * @return a PhoneNumberUtil instance
1024
- */
1025
- public static PhoneNumberUtil createInstance(MetadataLoader metadataLoader) {
1026
- if (metadataLoader == null) {
1027
- throw new IllegalArgumentException("metadataLoader could not be null.");
1028
- }
1029
- return createInstance(new MultiFileMetadataSourceImpl(metadataLoader));
1030
- }
1031
-
1032
- /**
1033
- * Helper function to check if the national prefix formatting rule has the first group only, i.e.,
1034
- * does not start with the national prefix.
1035
- */
1036
- static boolean formattingRuleHasFirstGroupOnly(String nationalPrefixFormattingRule) {
1037
- return nationalPrefixFormattingRule.length() == 0 ||
1038
- FIRST_GROUP_ONLY_PREFIX_PATTERN.matcher(nationalPrefixFormattingRule).matches();
1039
- }
1040
-
1041
- /**
1042
- * Tests whether a phone number has a geographical association. It checks if the number is
1043
- * associated to a certain region in the country where it belongs to. Note that this doesn't
1044
- * verify if the number is actually in use.
1045
- */
1046
- public boolean isNumberGeographical(PhoneNumber phoneNumber) {
1047
- return isNumberGeographical(getNumberType(phoneNumber), phoneNumber.getCountryCode());
1048
- }
1049
-
1050
- /**
1051
- * Tests whether a phone number has a geographical association, as represented by its type and the
1052
- * country it belongs to.
1053
- *
1054
- * This version of isNumberGeographical exists since calculating the phone number type is
1055
- * expensive; if we have already done this, we don't want to do it again.
1056
- */
1057
- public boolean isNumberGeographical(PhoneNumberType numberType, int countryCallingCode) {
1058
- return numberType == PhoneNumberType.FIXED_LINE
1059
- || numberType == PhoneNumberType.FIXED_LINE_OR_MOBILE
1060
- || (GEO_MOBILE_COUNTRIES.contains(countryCallingCode)
1061
- && numberType == PhoneNumberType.MOBILE);
1062
- }
1063
-
1064
- /**
1065
- * Helper function to check region code is not unknown or null.
1066
- */
1067
- private boolean isValidRegionCode(String regionCode) {
1068
- return regionCode != null && supportedRegions.contains(regionCode);
1069
- }
1070
-
1071
- /**
1072
- * Helper function to check the country calling code is valid.
1073
- */
1074
- private boolean hasValidCountryCallingCode(int countryCallingCode) {
1075
- return countryCallingCodeToRegionCodeMap.containsKey(countryCallingCode);
1076
- }
1077
-
1078
- /**
1079
- * Formats a phone number in the specified format using default rules. Note that this does not
1080
- * promise to produce a phone number that the user can dial from where they are - although we do
1081
- * format in either 'national' or 'international' format depending on what the client asks for, we
1082
- * do not currently support a more abbreviated format, such as for users in the same "area" who
1083
- * could potentially dial the number without area code. Note that if the phone number has a
1084
- * country calling code of 0 or an otherwise invalid country calling code, we cannot work out
1085
- * which formatting rules to apply so we return the national significant number with no formatting
1086
- * applied.
1087
- *
1088
- * @param number the phone number to be formatted
1089
- * @param numberFormat the format the phone number should be formatted into
1090
- * @return the formatted phone number
1091
- */
1092
- public String format(PhoneNumber number, PhoneNumberFormat numberFormat) {
1093
- if (number.getNationalNumber() == 0 && number.hasRawInput()) {
1094
- // Unparseable numbers that kept their raw input just use that.
1095
- // This is the only case where a number can be formatted as E164 without a
1096
- // leading '+' symbol (but the original number wasn't parseable anyway).
1097
- // TODO: Consider removing the 'if' above so that unparseable
1098
- // strings without raw input format to the empty string instead of "+00"
1099
- String rawInput = number.getRawInput();
1100
- if (rawInput.length() > 0) {
1101
- return rawInput;
1102
- }
1103
- }
1104
- StringBuilder formattedNumber = new StringBuilder(20);
1105
- format(number, numberFormat, formattedNumber);
1106
- return formattedNumber.toString();
1107
- }
1108
-
1109
- /**
1110
- * Same as {@link #format(PhoneNumber, PhoneNumberFormat)}, but accepts a mutable StringBuilder as
1111
- * a parameter to decrease object creation when invoked many times.
1112
- */
1113
- public void format(PhoneNumber number, PhoneNumberFormat numberFormat,
1114
- StringBuilder formattedNumber) {
1115
- // Clear the StringBuilder first.
1116
- formattedNumber.setLength(0);
1117
- int countryCallingCode = number.getCountryCode();
1118
- String nationalSignificantNumber = getNationalSignificantNumber(number);
1119
-
1120
- if (numberFormat == PhoneNumberFormat.E164) {
1121
- // Early exit for E164 case (even if the country calling code is invalid) since no formatting
1122
- // of the national number needs to be applied. Extensions are not formatted.
1123
- formattedNumber.append(nationalSignificantNumber);
1124
- prefixNumberWithCountryCallingCode(countryCallingCode, PhoneNumberFormat.E164,
1125
- formattedNumber);
1126
- return;
1127
- }
1128
- if (!hasValidCountryCallingCode(countryCallingCode)) {
1129
- formattedNumber.append(nationalSignificantNumber);
1130
- return;
1131
- }
1132
- // Note getRegionCodeForCountryCode() is used because formatting information for regions which
1133
- // share a country calling code is contained by only one region for performance reasons. For
1134
- // example, for NANPA regions it will be contained in the metadata for US.
1135
- String regionCode = getRegionCodeForCountryCode(countryCallingCode);
1136
- // Metadata cannot be null because the country calling code is valid (which means that the
1137
- // region code cannot be ZZ and must be one of our supported region codes).
1138
- PhoneMetadata metadata =
1139
- getMetadataForRegionOrCallingCode(countryCallingCode, regionCode);
1140
- formattedNumber.append(formatNsn(nationalSignificantNumber, metadata, numberFormat));
1141
- maybeAppendFormattedExtension(number, metadata, numberFormat, formattedNumber);
1142
- prefixNumberWithCountryCallingCode(countryCallingCode, numberFormat, formattedNumber);
1143
- }
1144
-
1145
- /**
1146
- * Formats a phone number in the specified format using client-defined formatting rules. Note that
1147
- * if the phone number has a country calling code of zero or an otherwise invalid country calling
1148
- * code, we cannot work out things like whether there should be a national prefix applied, or how
1149
- * to format extensions, so we return the national significant number with no formatting applied.
1150
- *
1151
- * @param number the phone number to be formatted
1152
- * @param numberFormat the format the phone number should be formatted into
1153
- * @param userDefinedFormats formatting rules specified by clients
1154
- * @return the formatted phone number
1155
- */
1156
- public String formatByPattern(PhoneNumber number,
1157
- PhoneNumberFormat numberFormat,
1158
- List<NumberFormat> userDefinedFormats) {
1159
- int countryCallingCode = number.getCountryCode();
1160
- String nationalSignificantNumber = getNationalSignificantNumber(number);
1161
- if (!hasValidCountryCallingCode(countryCallingCode)) {
1162
- return nationalSignificantNumber;
1163
- }
1164
- // Note getRegionCodeForCountryCode() is used because formatting information for regions which
1165
- // share a country calling code is contained by only one region for performance reasons. For
1166
- // example, for NANPA regions it will be contained in the metadata for US.
1167
- String regionCode = getRegionCodeForCountryCode(countryCallingCode);
1168
- // Metadata cannot be null because the country calling code is valid
1169
- PhoneMetadata metadata =
1170
- getMetadataForRegionOrCallingCode(countryCallingCode, regionCode);
1171
-
1172
- StringBuilder formattedNumber = new StringBuilder(20);
1173
-
1174
- NumberFormat formattingPattern =
1175
- chooseFormattingPatternForNumber(userDefinedFormats.toArray(
1176
- new NumberFormat[userDefinedFormats.size()]), nationalSignificantNumber);
1177
- if (formattingPattern == null) {
1178
- // If no pattern above is matched, we format the number as a whole.
1179
- formattedNumber.append(nationalSignificantNumber);
1180
- } else {
1181
- // Before we do a replacement of the national prefix pattern $NP with the national prefix, we
1182
- // need to copy the rule so that subsequent replacements for different numbers have the
1183
- // appropriate national prefix.
1184
- NumberFormat numFormatCopy = copyNumberFormat(formattingPattern);
1185
- String nationalPrefixFormattingRule = formattingPattern.nationalPrefixFormattingRule;
1186
- if (nationalPrefixFormattingRule.length() > 0) {
1187
- String nationalPrefix = metadata.nationalPrefix;
1188
- if (nationalPrefix.length() > 0) {
1189
- // Replace $NP with national prefix and $FG with the first group ($1).
1190
- nationalPrefixFormattingRule =
1191
- NP_PATTERN.matcher(nationalPrefixFormattingRule).replaceFirst(nationalPrefix);
1192
- nationalPrefixFormattingRule =
1193
- FG_PATTERN.matcher(nationalPrefixFormattingRule).replaceFirst("\\$1");
1194
- numFormatCopy.nationalPrefixFormattingRule = nationalPrefixFormattingRule;
1195
- } else {
1196
- // We don't want to have a rule for how to format the national prefix if there isn't one.
1197
- numFormatCopy.nationalPrefixFormattingRule = "";
1198
- }
1199
- }
1200
- formattedNumber.append(
1201
- formatNsnUsingPattern(nationalSignificantNumber, numFormatCopy, numberFormat));
1202
- }
1203
- maybeAppendFormattedExtension(number, metadata, numberFormat, formattedNumber);
1204
- prefixNumberWithCountryCallingCode(countryCallingCode, numberFormat, formattedNumber);
1205
- return formattedNumber.toString();
1206
- }
1207
-
1208
- /**
1209
- * Formats a phone number in national format for dialing using the carrier as specified in the
1210
- * {@code carrierCode}. The {@code carrierCode} will always be used regardless of whether the
1211
- * phone number already has a preferred domestic carrier code stored. If {@code carrierCode}
1212
- * contains an empty string, returns the number in national format without any carrier code.
1213
- *
1214
- * @param number the phone number to be formatted
1215
- * @param carrierCode the carrier selection code to be used
1216
- * @return the formatted phone number in national format for dialing using the carrier as
1217
- * specified in the {@code carrierCode}
1218
- */
1219
- public String formatNationalNumberWithCarrierCode(PhoneNumber number, String carrierCode) {
1220
- int countryCallingCode = number.getCountryCode();
1221
- String nationalSignificantNumber = getNationalSignificantNumber(number);
1222
- if (!hasValidCountryCallingCode(countryCallingCode)) {
1223
- return nationalSignificantNumber;
1224
- }
1225
-
1226
- // Note getRegionCodeForCountryCode() is used because formatting information for regions which
1227
- // share a country calling code is contained by only one region for performance reasons. For
1228
- // example, for NANPA regions it will be contained in the metadata for US.
1229
- String regionCode = getRegionCodeForCountryCode(countryCallingCode);
1230
- // Metadata cannot be null because the country calling code is valid.
1231
- PhoneMetadata metadata = getMetadataForRegionOrCallingCode(countryCallingCode, regionCode);
1232
-
1233
- StringBuilder formattedNumber = new StringBuilder(20);
1234
- formattedNumber.append(formatNsn(nationalSignificantNumber, metadata,
1235
- PhoneNumberFormat.NATIONAL, carrierCode));
1236
- maybeAppendFormattedExtension(number, metadata, PhoneNumberFormat.NATIONAL, formattedNumber);
1237
- prefixNumberWithCountryCallingCode(countryCallingCode, PhoneNumberFormat.NATIONAL,
1238
- formattedNumber);
1239
- return formattedNumber.toString();
1240
- }
1241
-
1242
- private PhoneMetadata getMetadataForRegionOrCallingCode(
1243
- int countryCallingCode, String regionCode) {
1244
- return REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCode)
1245
- ? getMetadataForNonGeographicalRegion(countryCallingCode)
1246
- : getMetadataForRegion(regionCode);
1247
- }
1248
-
1249
- /**
1250
- * Formats a phone number in national format for dialing using the carrier as specified in the
1251
- * preferredDomesticCarrierCode field of the PhoneNumber object passed in. If that is missing,
1252
- * use the {@code fallbackCarrierCode} passed in instead. If there is no
1253
- * {@code preferredDomesticCarrierCode}, and the {@code fallbackCarrierCode} contains an empty
1254
- * string, return the number in national format without any carrier code.
1255
- *
1256
- * <p>Use {@link #formatNationalNumberWithCarrierCode} instead if the carrier code passed in
1257
- * should take precedence over the number's {@code preferredDomesticCarrierCode} when formatting.
1258
- *
1259
- * @param number the phone number to be formatted
1260
- * @param fallbackCarrierCode the carrier selection code to be used, if none is found in the
1261
- * phone number itself
1262
- * @return the formatted phone number in national format for dialing using the number's
1263
- * {@code preferredDomesticCarrierCode}, or the {@code fallbackCarrierCode} passed in if
1264
- * none is found
1265
- */
1266
- public String formatNationalNumberWithPreferredCarrierCode(PhoneNumber number,
1267
- String fallbackCarrierCode) {
1268
- return formatNationalNumberWithCarrierCode(number, number.hasPreferredDomesticCarrierCode()
1269
- ? number.getPreferredDomesticCarrierCode()
1270
- : fallbackCarrierCode);
1271
- }
1272
-
1273
- /**
1274
- * Returns a number formatted in such a way that it can be dialed from a mobile phone in a
1275
- * specific region. If the number cannot be reached from the region (e.g. some countries block
1276
- * toll-free numbers from being called outside of the country), the method returns an empty
1277
- * string.
1278
- *
1279
- * @param number the phone number to be formatted
1280
- * @param regionCallingFrom the region where the call is being placed
1281
- * @param withFormatting whether the number should be returned with formatting symbols, such as
1282
- * spaces and dashes.
1283
- * @return the formatted phone number
1284
- */
1285
- public String formatNumberForMobileDialing(PhoneNumber number, String regionCallingFrom,
1286
- boolean withFormatting) {
1287
- int countryCallingCode = number.getCountryCode();
1288
- if (!hasValidCountryCallingCode(countryCallingCode)) {
1289
- return number.hasRawInput() ? number.getRawInput() : "";
1290
- }
1291
-
1292
- String formattedNumber = "";
1293
- // Clear the extension, as that part cannot normally be dialed together with the main number.
1294
- PhoneNumber numberNoExt = new PhoneNumber().mergeFrom(number).clearExtension();
1295
- String regionCode = getRegionCodeForCountryCode(countryCallingCode);
1296
- PhoneNumberType numberType = getNumberType(numberNoExt);
1297
- boolean isValidNumber = (numberType != PhoneNumberType.UNKNOWN);
1298
- if (regionCallingFrom.equals(regionCode)) {
1299
- boolean isFixedLineOrMobile =
1300
- (numberType == PhoneNumberType.FIXED_LINE) || (numberType == PhoneNumberType.MOBILE) ||
1301
- (numberType == PhoneNumberType.FIXED_LINE_OR_MOBILE);
1302
- // Carrier codes may be needed in some countries. We handle this here.
1303
- if (regionCode.equals("CO") && numberType == PhoneNumberType.FIXED_LINE) {
1304
- formattedNumber =
1305
- formatNationalNumberWithCarrierCode(numberNoExt, COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX);
1306
- } else if (regionCode.equals("BR") && isFixedLineOrMobile) {
1307
- formattedNumber = numberNoExt.hasPreferredDomesticCarrierCode()
1308
- ? formattedNumber = formatNationalNumberWithPreferredCarrierCode(numberNoExt, "")
1309
- // Brazilian fixed line and mobile numbers need to be dialed with a carrier code when
1310
- // called within Brazil. Without that, most of the carriers won't connect the call.
1311
- // Because of that, we return an empty string here.
1312
- : "";
1313
- } else if (isValidNumber && regionCode.equals("HU")) {
1314
- // The national format for HU numbers doesn't contain the national prefix, because that is
1315
- // how numbers are normally written down. However, the national prefix is obligatory when
1316
- // dialing from a mobile phone, except for short numbers. As a result, we add it back here
1317
- // if it is a valid regular length phone number.
1318
- formattedNumber =
1319
- getNddPrefixForRegion(regionCode, true /* strip non-digits */) +
1320
- " " + format(numberNoExt, PhoneNumberFormat.NATIONAL);
1321
- } else if (countryCallingCode == NANPA_COUNTRY_CODE) {
1322
- // For NANPA countries, we output international format for numbers that can be dialed
1323
- // internationally, since that always works, except for numbers which might potentially be
1324
- // short numbers, which are always dialled in national format.
1325
- PhoneMetadata regionMetadata = getMetadataForRegion(regionCallingFrom);
1326
- if (canBeInternationallyDialled(numberNoExt) &&
1327
- !isShorterThanPossibleNormalNumber(regionMetadata,
1328
- getNationalSignificantNumber(numberNoExt))) {
1329
- formattedNumber = format(numberNoExt, PhoneNumberFormat.INTERNATIONAL);
1330
- } else {
1331
- formattedNumber = format(numberNoExt, PhoneNumberFormat.NATIONAL);
1332
- }
1333
- } else {
1334
- // For non-geographical countries, and Mexican and Chilean fixed line and mobile numbers, we
1335
- // output international format for numbers that can be dialed internationally as that always
1336
- // works.
1337
- if ((regionCode.equals(REGION_CODE_FOR_NON_GEO_ENTITY) ||
1338
- // MX fixed line and mobile numbers should always be formatted in international format,
1339
- // even when dialed within MX. For national format to work, a carrier code needs to be
1340
- // used, and the correct carrier code depends on if the caller and callee are from the
1341
- // same local area. It is trickier to get that to work correctly than using
1342
- // international format, which is tested to work fine on all carriers.
1343
- // CL fixed line numbers need the national prefix when dialing in the national format,
1344
- // but don't have it when used for display. The reverse is true for mobile numbers.
1345
- // As a result, we output them in the international format to make it work.
1346
- ((regionCode.equals("MX") || regionCode.equals("CL")) &&
1347
- isFixedLineOrMobile)) &&
1348
- canBeInternationallyDialled(numberNoExt)) {
1349
- formattedNumber = format(numberNoExt, PhoneNumberFormat.INTERNATIONAL);
1350
- } else {
1351
- formattedNumber = format(numberNoExt, PhoneNumberFormat.NATIONAL);
1352
- }
1353
- }
1354
- } else if (isValidNumber && canBeInternationallyDialled(numberNoExt)) {
1355
- // We assume that short numbers are not diallable from outside their region, so if a number
1356
- // is not a valid regular length phone number, we treat it as if it cannot be internationally
1357
- // dialled.
1358
- return withFormatting ? format(numberNoExt, PhoneNumberFormat.INTERNATIONAL)
1359
- : format(numberNoExt, PhoneNumberFormat.E164);
1360
- }
1361
- return withFormatting ? formattedNumber
1362
- : normalizeDiallableCharsOnly(formattedNumber);
1363
- }
1364
-
1365
- /**
1366
- * Formats a phone number for out-of-country dialing purposes. If no regionCallingFrom is
1367
- * supplied, we format the number in its INTERNATIONAL format. If the country calling code is the
1368
- * same as that of the region where the number is from, then NATIONAL formatting will be applied.
1369
- *
1370
- * <p>If the number itself has a country calling code of zero or an otherwise invalid country
1371
- * calling code, then we return the number with no formatting applied.
1372
- *
1373
- * <p>Note this function takes care of the case for calling inside of NANPA and between Russia and
1374
- * Kazakhstan (who share the same country calling code). In those cases, no international prefix
1375
- * is used. For regions which have multiple international prefixes, the number in its
1376
- * INTERNATIONAL format will be returned instead.
1377
- *
1378
- * @param number the phone number to be formatted
1379
- * @param regionCallingFrom the region where the call is being placed
1380
- * @return the formatted phone number
1381
- */
1382
- public String formatOutOfCountryCallingNumber(PhoneNumber number,
1383
- String regionCallingFrom) {
1384
- if (!isValidRegionCode(regionCallingFrom)) {
1385
- logger.log(Level.WARNING,
1386
- "Trying to format number from invalid region "
1387
- + regionCallingFrom
1388
- + ". International formatting applied.");
1389
- return format(number, PhoneNumberFormat.INTERNATIONAL);
1390
- }
1391
- int countryCallingCode = number.getCountryCode();
1392
- String nationalSignificantNumber = getNationalSignificantNumber(number);
1393
- if (!hasValidCountryCallingCode(countryCallingCode)) {
1394
- return nationalSignificantNumber;
1395
- }
1396
- if (countryCallingCode == NANPA_COUNTRY_CODE) {
1397
- if (isNANPACountry(regionCallingFrom)) {
1398
- // For NANPA regions, return the national format for these regions but prefix it with the
1399
- // country calling code.
1400
- return countryCallingCode + " " + format(number, PhoneNumberFormat.NATIONAL);
1401
- }
1402
- } else if (countryCallingCode == getCountryCodeForValidRegion(regionCallingFrom)) {
1403
- // If regions share a country calling code, the country calling code need not be dialled.
1404
- // This also applies when dialling within a region, so this if clause covers both these cases.
1405
- // Technically this is the case for dialling from La Reunion to other overseas departments of
1406
- // France (French Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover this
1407
- // edge case for now and for those cases return the version including country calling code.
1408
- // Details here: http://www.petitfute.com/voyage/225-info-pratiques-reunion
1409
- return format(number, PhoneNumberFormat.NATIONAL);
1410
- }
1411
- // Metadata cannot be null because we checked 'isValidRegionCode()' above.
1412
- PhoneMetadata metadataForRegionCallingFrom = getMetadataForRegion(regionCallingFrom);
1413
- String internationalPrefix = metadataForRegionCallingFrom.internationalPrefix;
1414
-
1415
- // For regions that have multiple international prefixes, the international format of the
1416
- // number is returned, unless there is a preferred international prefix.
1417
- String internationalPrefixForFormatting = "";
1418
- if (UNIQUE_INTERNATIONAL_PREFIX.matcher(internationalPrefix).matches()) {
1419
- internationalPrefixForFormatting = internationalPrefix;
1420
- } else if (!metadataForRegionCallingFrom.preferredInternationalPrefix.equals("")) {
1421
- internationalPrefixForFormatting =
1422
- metadataForRegionCallingFrom.preferredInternationalPrefix;
1423
- }
1424
-
1425
- String regionCode = getRegionCodeForCountryCode(countryCallingCode);
1426
- // Metadata cannot be null because the country calling code is valid.
1427
- PhoneMetadata metadataForRegion =
1428
- getMetadataForRegionOrCallingCode(countryCallingCode, regionCode);
1429
- String formattedNationalNumber =
1430
- formatNsn(nationalSignificantNumber, metadataForRegion, PhoneNumberFormat.INTERNATIONAL);
1431
- StringBuilder formattedNumber = new StringBuilder(formattedNationalNumber);
1432
- maybeAppendFormattedExtension(number, metadataForRegion, PhoneNumberFormat.INTERNATIONAL,
1433
- formattedNumber);
1434
- if (internationalPrefixForFormatting.length() > 0) {
1435
- formattedNumber.insert(0, " ").insert(0, countryCallingCode).insert(0, " ")
1436
- .insert(0, internationalPrefixForFormatting);
1437
- } else {
1438
- prefixNumberWithCountryCallingCode(countryCallingCode,
1439
- PhoneNumberFormat.INTERNATIONAL,
1440
- formattedNumber);
1441
- }
1442
- return formattedNumber.toString();
1443
- }
1444
-
1445
- /**
1446
- * Formats a phone number using the original phone number format that the number is parsed from.
1447
- * The original format is embedded in the country_code_source field of the PhoneNumber object
1448
- * passed in. If such information is missing, the number will be formatted into the NATIONAL
1449
- * format by default. When the number contains a leading zero and this is unexpected for this
1450
- * country, or we don't have a formatting pattern for the number, the method returns the raw input
1451
- * when it is available.
1452
- *
1453
- * Note this method guarantees no digit will be inserted, removed or modified as a result of
1454
- * formatting.
1455
- *
1456
- * @param number the phone number that needs to be formatted in its original number format
1457
- * @param regionCallingFrom the region whose IDD needs to be prefixed if the original number
1458
- * has one
1459
- * @return the formatted phone number in its original number format
1460
- */
1461
- public String formatInOriginalFormat(PhoneNumber number, String regionCallingFrom) {
1462
- if (number.hasRawInput() &&
1463
- (hasUnexpectedItalianLeadingZero(number) || !hasFormattingPatternForNumber(number))) {
1464
- // We check if we have the formatting pattern because without that, we might format the number
1465
- // as a group without national prefix.
1466
- return number.getRawInput();
1467
- }
1468
- if (!number.hasCountryCodeSource()) {
1469
- return format(number, PhoneNumberFormat.NATIONAL);
1470
- }
1471
- String formattedNumber;
1472
- switch (number.getCountryCodeSource()) {
1473
- case FROM_NUMBER_WITH_PLUS_SIGN:
1474
- formattedNumber = format(number, PhoneNumberFormat.INTERNATIONAL);
1475
- break;
1476
- case FROM_NUMBER_WITH_IDD:
1477
- formattedNumber = formatOutOfCountryCallingNumber(number, regionCallingFrom);
1478
- break;
1479
- case FROM_NUMBER_WITHOUT_PLUS_SIGN:
1480
- formattedNumber = format(number, PhoneNumberFormat.INTERNATIONAL).substring(1);
1481
- break;
1482
- case FROM_DEFAULT_COUNTRY:
1483
- // Fall-through to default case.
1484
- default:
1485
- String regionCode = getRegionCodeForCountryCode(number.getCountryCode());
1486
- // We strip non-digits from the NDD here, and from the raw input later, so that we can
1487
- // compare them easily.
1488
- String nationalPrefix = getNddPrefixForRegion(regionCode, true /* strip non-digits */);
1489
- String nationalFormat = format(number, PhoneNumberFormat.NATIONAL);
1490
- if (nationalPrefix == null || nationalPrefix.length() == 0) {
1491
- // If the region doesn't have a national prefix at all, we can safely return the national
1492
- // format without worrying about a national prefix being added.
1493
- formattedNumber = nationalFormat;
1494
- break;
1495
- }
1496
- // Otherwise, we check if the original number was entered with a national prefix.
1497
- if (rawInputContainsNationalPrefix(
1498
- number.getRawInput(), nationalPrefix, regionCode)) {
1499
- // If so, we can safely return the national format.
1500
- formattedNumber = nationalFormat;
1501
- break;
1502
- }
1503
- // Metadata cannot be null here because getNddPrefixForRegion() (above) returns null if
1504
- // there is no metadata for the region.
1505
- PhoneMetadata metadata = getMetadataForRegion(regionCode);
1506
- String nationalNumber = getNationalSignificantNumber(number);
1507
- NumberFormat formatRule =
1508
- chooseFormattingPatternForNumber(metadata.numberFormat, nationalNumber);
1509
- // The format rule could still be null here if the national number was 0 and there was no
1510
- // raw input (this should not be possible for numbers generated by the phonenumber library
1511
- // as they would also not have a country calling code and we would have exited earlier).
1512
- if (formatRule == null) {
1513
- formattedNumber = nationalFormat;
1514
- break;
1515
- }
1516
- // When the format we apply to this number doesn't contain national prefix, we can just
1517
- // return the national format.
1518
- // TODO: Refactor the code below with the code in
1519
- // isNationalPrefixPresentIfRequired.
1520
- String candidateNationalPrefixRule = formatRule.nationalPrefixFormattingRule;
1521
- // We assume that the first-group symbol will never be _before_ the national prefix.
1522
- int indexOfFirstGroup = candidateNationalPrefixRule.indexOf("$1");
1523
- if (indexOfFirstGroup <= 0) {
1524
- formattedNumber = nationalFormat;
1525
- break;
1526
- }
1527
- candidateNationalPrefixRule =
1528
- candidateNationalPrefixRule.substring(0, indexOfFirstGroup);
1529
- candidateNationalPrefixRule = normalizeDigitsOnly(candidateNationalPrefixRule);
1530
- if (candidateNationalPrefixRule.length() == 0) {
1531
- // National prefix not used when formatting this number.
1532
- formattedNumber = nationalFormat;
1533
- break;
1534
- }
1535
- // Otherwise, we need to remove the national prefix from our output.
1536
- NumberFormat numFormatCopy = copyNumberFormat(formatRule);
1537
- numFormatCopy.nationalPrefixFormattingRule = "";
1538
- List<NumberFormat> numberFormats = new ArrayList<NumberFormat>(1);
1539
- numberFormats.add(numFormatCopy);
1540
- formattedNumber = formatByPattern(number, PhoneNumberFormat.NATIONAL, numberFormats);
1541
- break;
1542
- }
1543
- String rawInput = number.getRawInput();
1544
- // If no digit is inserted/removed/modified as a result of our formatting, we return the
1545
- // formatted phone number; otherwise we return the raw input the user entered.
1546
- if (formattedNumber != null && rawInput.length() > 0) {
1547
- String normalizedFormattedNumber = normalizeDiallableCharsOnly(formattedNumber);
1548
- String normalizedRawInput = normalizeDiallableCharsOnly(rawInput);
1549
- if (!normalizedFormattedNumber.equals(normalizedRawInput)) {
1550
- formattedNumber = rawInput;
1551
- }
1552
- }
1553
- return formattedNumber;
1554
- }
1555
-
1556
- // Check if rawInput, which is assumed to be in the national format, has a national prefix. The
1557
- // national prefix is assumed to be in digits-only form.
1558
- private boolean rawInputContainsNationalPrefix(String rawInput, String nationalPrefix,
1559
- String regionCode) {
1560
- String normalizedNationalNumber = normalizeDigitsOnly(rawInput);
1561
- if (normalizedNationalNumber.startsWith(nationalPrefix)) {
1562
- try {
1563
- // Some Japanese numbers (e.g. 00777123) might be mistaken to contain the national prefix
1564
- // when written without it (e.g. 0777123) if we just do prefix matching. To tackle that, we
1565
- // check the validity of the number if the assumed national prefix is removed (777123 won't
1566
- // be valid in Japan).
1567
- return isValidNumber(
1568
- parse(normalizedNationalNumber.substring(nationalPrefix.length()), regionCode));
1569
- } catch (NumberParseException e) {
1570
- return false;
1571
- }
1572
- }
1573
- return false;
1574
- }
1575
-
1576
- /**
1577
- * Returns true if a number is from a region whose national significant number couldn't contain a
1578
- * leading zero, but has the italian_leading_zero field set to true.
1579
- */
1580
- private boolean hasUnexpectedItalianLeadingZero(PhoneNumber number) {
1581
- return number.isItalianLeadingZero() && !isLeadingZeroPossible(number.getCountryCode());
1582
- }
1583
-
1584
- private boolean hasFormattingPatternForNumber(PhoneNumber number) {
1585
- int countryCallingCode = number.getCountryCode();
1586
- String phoneNumberRegion = getRegionCodeForCountryCode(countryCallingCode);
1587
- PhoneMetadata metadata =
1588
- getMetadataForRegionOrCallingCode(countryCallingCode, phoneNumberRegion);
1589
- if (metadata == null) {
1590
- return false;
1591
- }
1592
- String nationalNumber = getNationalSignificantNumber(number);
1593
- NumberFormat formatRule =
1594
- chooseFormattingPatternForNumber(metadata.numberFormat, nationalNumber);
1595
- return formatRule != null;
1596
- }
1597
-
1598
- /**
1599
- * Formats a phone number for out-of-country dialing purposes.
1600
- *
1601
- * Note that in this version, if the number was entered originally using alpha characters and
1602
- * this version of the number is stored in raw_input, this representation of the number will be
1603
- * used rather than the digit representation. Grouping information, as specified by characters
1604
- * such as "-" and " ", will be retained.
1605
- *
1606
- * <p><b>Caveats:</b></p>
1607
- * <ul>
1608
- * <li> This will not produce good results if the country calling code is both present in the raw
1609
- * input _and_ is the start of the national number. This is not a problem in the regions
1610
- * which typically use alpha numbers.
1611
- * <li> This will also not produce good results if the raw input has any grouping information
1612
- * within the first three digits of the national number, and if the function needs to strip
1613
- * preceding digits/words in the raw input before these digits. Normally people group the
1614
- * first three digits together so this is not a huge problem - and will be fixed if it
1615
- * proves to be so.
1616
- * </ul>
1617
- *
1618
- * @param number the phone number that needs to be formatted
1619
- * @param regionCallingFrom the region where the call is being placed
1620
- * @return the formatted phone number
1621
- */
1622
- public String formatOutOfCountryKeepingAlphaChars(PhoneNumber number,
1623
- String regionCallingFrom) {
1624
- String rawInput = number.getRawInput();
1625
- // If there is no raw input, then we can't keep alpha characters because there aren't any.
1626
- // In this case, we return formatOutOfCountryCallingNumber.
1627
- if (rawInput.length() == 0) {
1628
- return formatOutOfCountryCallingNumber(number, regionCallingFrom);
1629
- }
1630
- int countryCode = number.getCountryCode();
1631
- if (!hasValidCountryCallingCode(countryCode)) {
1632
- return rawInput;
1633
- }
1634
- // Strip any prefix such as country calling code, IDD, that was present. We do this by comparing
1635
- // the number in raw_input with the parsed number.
1636
- // To do this, first we normalize punctuation. We retain number grouping symbols such as " "
1637
- // only.
1638
- rawInput = normalizeHelper(rawInput, ALL_PLUS_NUMBER_GROUPING_SYMBOLS, true);
1639
- // Now we trim everything before the first three digits in the parsed number. We choose three
1640
- // because all valid alpha numbers have 3 digits at the start - if it does not, then we don't
1641
- // trim anything at all. Similarly, if the national number was less than three digits, we don't
1642
- // trim anything at all.
1643
- String nationalNumber = getNationalSignificantNumber(number);
1644
- if (nationalNumber.length() > 3) {
1645
- int firstNationalNumberDigit = rawInput.indexOf(nationalNumber.substring(0, 3));
1646
- if (firstNationalNumberDigit != -1) {
1647
- rawInput = rawInput.substring(firstNationalNumberDigit);
1648
- }
1649
- }
1650
- PhoneMetadata metadataForRegionCallingFrom = getMetadataForRegion(regionCallingFrom);
1651
- if (countryCode == NANPA_COUNTRY_CODE) {
1652
- if (isNANPACountry(regionCallingFrom)) {
1653
- return countryCode + " " + rawInput;
1654
- }
1655
- } else if (metadataForRegionCallingFrom != null &&
1656
- countryCode == getCountryCodeForValidRegion(regionCallingFrom)) {
1657
- NumberFormat formattingPattern =
1658
- chooseFormattingPatternForNumber(metadataForRegionCallingFrom.numberFormat,
1659
- nationalNumber);
1660
- if (formattingPattern == null) {
1661
- // If no pattern above is matched, we format the original input.
1662
- return rawInput;
1663
- }
1664
- NumberFormat newFormat = copyNumberFormat(formattingPattern);
1665
- // The first group is the first group of digits that the user wrote together.
1666
- newFormat.pattern = "(\\d+)(.*)";
1667
- // Here we just concatenate them back together after the national prefix has been fixed.
1668
- newFormat.format = "$1$2";
1669
- // Now we format using this pattern instead of the default pattern, but with the national
1670
- // prefix prefixed if necessary.
1671
- // This will not work in the cases where the pattern (and not the leading digits) decide
1672
- // whether a national prefix needs to be used, since we have overridden the pattern to match
1673
- // anything, but that is not the case in the metadata to date.
1674
- return formatNsnUsingPattern(rawInput, newFormat, PhoneNumberFormat.NATIONAL);
1675
- }
1676
- String internationalPrefixForFormatting = "";
1677
- // If an unsupported region-calling-from is entered, or a country with multiple international
1678
- // prefixes, the international format of the number is returned, unless there is a preferred
1679
- // international prefix.
1680
- if (metadataForRegionCallingFrom != null) {
1681
- String internationalPrefix = metadataForRegionCallingFrom.internationalPrefix;
1682
- internationalPrefixForFormatting =
1683
- UNIQUE_INTERNATIONAL_PREFIX.matcher(internationalPrefix).matches()
1684
- ? internationalPrefix
1685
- : metadataForRegionCallingFrom.preferredInternationalPrefix;
1686
- }
1687
- StringBuilder formattedNumber = new StringBuilder(rawInput);
1688
- String regionCode = getRegionCodeForCountryCode(countryCode);
1689
- // Metadata cannot be null because the country calling code is valid.
1690
- PhoneMetadata metadataForRegion = getMetadataForRegionOrCallingCode(countryCode, regionCode);
1691
- maybeAppendFormattedExtension(number, metadataForRegion,
1692
- PhoneNumberFormat.INTERNATIONAL, formattedNumber);
1693
- if (internationalPrefixForFormatting.length() > 0) {
1694
- formattedNumber.insert(0, " ").insert(0, countryCode).insert(0, " ")
1695
- .insert(0, internationalPrefixForFormatting);
1696
- } else {
1697
- // Invalid region entered as country-calling-from (so no metadata was found for it) or the
1698
- // region chosen has multiple international dialling prefixes.
1699
- if (!isValidRegionCode(regionCallingFrom)) {
1700
- logger.log(Level.WARNING,
1701
- "Trying to format number from invalid region "
1702
- + regionCallingFrom
1703
- + ". International formatting applied.");
1704
- }
1705
- prefixNumberWithCountryCallingCode(countryCode,
1706
- PhoneNumberFormat.INTERNATIONAL,
1707
- formattedNumber);
1708
- }
1709
- return formattedNumber.toString();
1710
- }
1711
-
1712
- /**
1713
- * Gets the national significant number of the a phone number. Note a national significant number
1714
- * doesn't contain a national prefix or any formatting.
1715
- *
1716
- * @param number the phone number for which the national significant number is needed
1717
- * @return the national significant number of the PhoneNumber object passed in
1718
- */
1719
- public String getNationalSignificantNumber(PhoneNumber number) {
1720
- // If leading zero(s) have been set, we prefix this now. Note this is not a national prefix.
1721
- StringBuilder nationalNumber = new StringBuilder();
1722
- if (number.isItalianLeadingZero()) {
1723
- char[] zeros = new char[number.getNumberOfLeadingZeros()];
1724
- Arrays.fill(zeros, '0');
1725
- nationalNumber.append(new String(zeros));
1726
- }
1727
- nationalNumber.append(number.getNationalNumber());
1728
- return nationalNumber.toString();
1729
- }
1730
-
1731
- /**
1732
- * A helper function that is used by format and formatByPattern.
1733
- */
1734
- private void prefixNumberWithCountryCallingCode(int countryCallingCode,
1735
- PhoneNumberFormat numberFormat,
1736
- StringBuilder formattedNumber) {
1737
- switch (numberFormat) {
1738
- case E164:
1739
- formattedNumber.insert(0, countryCallingCode).insert(0, PLUS_SIGN);
1740
- return;
1741
- case INTERNATIONAL:
1742
- formattedNumber.insert(0, " ").insert(0, countryCallingCode).insert(0, PLUS_SIGN);
1743
- return;
1744
- case RFC3966:
1745
- formattedNumber.insert(0, "-").insert(0, countryCallingCode).insert(0, PLUS_SIGN)
1746
- .insert(0, RFC3966_PREFIX);
1747
- return;
1748
- case NATIONAL:
1749
- default:
1750
- return;
1751
- }
1752
- }
1753
-
1754
- // Simple wrapper of formatNsn for the common case of no carrier code.
1755
- private String formatNsn(String number, PhoneMetadata metadata, PhoneNumberFormat numberFormat) {
1756
- return formatNsn(number, metadata, numberFormat, null);
1757
- }
1758
-
1759
- // Note in some regions, the national number can be written in two completely different ways
1760
- // depending on whether it forms part of the NATIONAL format or INTERNATIONAL format. The
1761
- // numberFormat parameter here is used to specify which format to use for those cases. If a
1762
- // carrierCode is specified, this will be inserted into the formatted string to replace $CC.
1763
- private String formatNsn(String number,
1764
- PhoneMetadata metadata,
1765
- PhoneNumberFormat numberFormat,
1766
- String carrierCode) {
1767
- NumberFormat[] intlNumberFormats = metadata.intlNumberFormat;
1768
- // When the intlNumberFormats exists, we use that to format national number for the
1769
- // INTERNATIONAL format instead of using the numberDesc.numberFormats.
1770
- NumberFormat[] availableFormats =
1771
- (intlNumberFormats.length == 0 || numberFormat == PhoneNumberFormat.NATIONAL)
1772
- ? metadata.numberFormat
1773
- : metadata.intlNumberFormat;
1774
- NumberFormat formattingPattern = chooseFormattingPatternForNumber(availableFormats, number);
1775
- return (formattingPattern == null)
1776
- ? number
1777
- : formatNsnUsingPattern(number, formattingPattern, numberFormat, carrierCode);
1778
- }
1779
-
1780
- NumberFormat chooseFormattingPatternForNumber(NumberFormat[] availableFormats,
1781
- String nationalNumber) {
1782
- for (NumberFormat numFormat : availableFormats) {
1783
- int size = numFormat.leadingDigitsPattern.length;
1784
- if (size == 0 || regexCache.getPatternForRegex(
1785
- // We always use the last leading_digits_pattern, as it is the most detailed.
1786
- numFormat.leadingDigitsPattern[size - 1]).matcher(nationalNumber).lookingAt()) {
1787
- Matcher m = regexCache.getPatternForRegex(numFormat.pattern).matcher(nationalNumber);
1788
- if (m.matches()) {
1789
- return numFormat;
1790
- }
1791
- }
1792
- }
1793
- return null;
1794
- }
1795
-
1796
- // Simple wrapper of formatNsnUsingPattern for the common case of no carrier code.
1797
- String formatNsnUsingPattern(String nationalNumber,
1798
- NumberFormat formattingPattern,
1799
- PhoneNumberFormat numberFormat) {
1800
- return formatNsnUsingPattern(nationalNumber, formattingPattern, numberFormat, null);
1801
- }
1802
-
1803
- // Note that carrierCode is optional - if null or an empty string, no carrier code replacement
1804
- // will take place.
1805
- private String formatNsnUsingPattern(String nationalNumber,
1806
- NumberFormat formattingPattern,
1807
- PhoneNumberFormat numberFormat,
1808
- String carrierCode) {
1809
- String numberFormatRule = formattingPattern.format;
1810
- Matcher m =
1811
- regexCache.getPatternForRegex(formattingPattern.pattern).matcher(nationalNumber);
1812
- String formattedNationalNumber = "";
1813
- if (numberFormat == PhoneNumberFormat.NATIONAL &&
1814
- carrierCode != null && carrierCode.length() > 0 &&
1815
- formattingPattern.domesticCarrierCodeFormattingRule.length() > 0) {
1816
- // Replace the $CC in the formatting rule with the desired carrier code.
1817
- String carrierCodeFormattingRule = formattingPattern.domesticCarrierCodeFormattingRule;
1818
- carrierCodeFormattingRule =
1819
- CC_PATTERN.matcher(carrierCodeFormattingRule).replaceFirst(carrierCode);
1820
- // Now replace the $FG in the formatting rule with the first group and the carrier code
1821
- // combined in the appropriate way.
1822
- numberFormatRule = FIRST_GROUP_PATTERN.matcher(numberFormatRule)
1823
- .replaceFirst(carrierCodeFormattingRule);
1824
- formattedNationalNumber = m.replaceAll(numberFormatRule);
1825
- } else {
1826
- // Use the national prefix formatting rule instead.
1827
- String nationalPrefixFormattingRule = formattingPattern.nationalPrefixFormattingRule;
1828
- if (numberFormat == PhoneNumberFormat.NATIONAL &&
1829
- nationalPrefixFormattingRule != null &&
1830
- nationalPrefixFormattingRule.length() > 0) {
1831
- Matcher firstGroupMatcher = FIRST_GROUP_PATTERN.matcher(numberFormatRule);
1832
- formattedNationalNumber =
1833
- m.replaceAll(firstGroupMatcher.replaceFirst(nationalPrefixFormattingRule));
1834
- } else {
1835
- formattedNationalNumber = m.replaceAll(numberFormatRule);
1836
- }
1837
- }
1838
- if (numberFormat == PhoneNumberFormat.RFC3966) {
1839
- // Strip any leading punctuation.
1840
- Matcher matcher = SEPARATOR_PATTERN.matcher(formattedNationalNumber);
1841
- if (matcher.lookingAt()) {
1842
- formattedNationalNumber = matcher.replaceFirst("");
1843
- }
1844
- // Replace the rest with a dash between each number group.
1845
- formattedNationalNumber = matcher.reset(formattedNationalNumber).replaceAll("-");
1846
- }
1847
- return formattedNationalNumber;
1848
- }
1849
-
1850
- /**
1851
- * Gets a valid number for the specified region.
1852
- *
1853
- * @param regionCode the region for which an example number is needed
1854
- * @return a valid fixed-line number for the specified region. Returns null when the metadata
1855
- * does not contain such information, or the region 001 is passed in. For 001 (representing
1856
- * non-geographical numbers), call {@link #getExampleNumberForNonGeoEntity} instead.
1857
- */
1858
- public PhoneNumber getExampleNumber(String regionCode) {
1859
- return getExampleNumberForType(regionCode, PhoneNumberType.FIXED_LINE);
1860
- }
1861
-
1862
- /**
1863
- * Gets an invalid number for the specified region. This is useful for unit-testing purposes,
1864
- * where you want to test what will happen with an invalid number. Note that the number that is
1865
- * returned will always be able to be parsed and will have the correct country code. It may also
1866
- * be a valid *short* number/code for this region. Validity checking such numbers is handled with
1867
- * {@link com.google.i18n.phonenumbers.ShortNumberInfo}.
1868
- *
1869
- * @param regionCode the region for which an example number is needed
1870
- * @return an invalid number for the specified region. Returns null when an unsupported region or
1871
- * the region 001 (Earth) is passed in.
1872
- */
1873
- public PhoneNumber getInvalidExampleNumber(String regionCode) {
1874
- if (!isValidRegionCode(regionCode)) {
1875
- logger.log(Level.WARNING, "Invalid or unknown region code provided: " + regionCode);
1876
- return null;
1877
- }
1878
- // We start off with a valid fixed-line number since every country supports this. Alternatively
1879
- // we could start with a different number type, since fixed-line numbers typically have a wide
1880
- // breadth of valid number lengths and we may have to make it very short before we get an
1881
- // invalid number.
1882
- PhoneNumberDesc desc = getNumberDescByType(getMetadataForRegion(regionCode),
1883
- PhoneNumberType.FIXED_LINE);
1884
- if (desc.exampleNumber.equals("")) {
1885
- // This shouldn't happen; we have a test for this.
1886
- return null;
1887
- }
1888
- String exampleNumber = desc.exampleNumber;
1889
- // Try and make the number invalid. We do this by changing the length. We try reducing the
1890
- // length of the number, since currently no region has a number that is the same length as
1891
- // MIN_LENGTH_FOR_NSN. This is probably quicker than making the number longer, which is another
1892
- // alternative. We could also use the possible number pattern to extract the possible lengths of
1893
- // the number to make this faster, but this method is only for unit-testing so simplicity is
1894
- // preferred to performance. We don't want to return a number that can't be parsed, so we check
1895
- // the number is long enough. We try all possible lengths because phone number plans often have
1896
- // overlapping prefixes so the number 123456 might be valid as a fixed-line number, and 12345 as
1897
- // a mobile number. It would be faster to loop in a different order, but we prefer numbers that
1898
- // look closer to real numbers (and it gives us a variety of different lengths for the resulting
1899
- // phone numbers - otherwise they would all be MIN_LENGTH_FOR_NSN digits long.)
1900
- for (int phoneNumberLength = exampleNumber.length() - 1;
1901
- phoneNumberLength >= MIN_LENGTH_FOR_NSN;
1902
- phoneNumberLength--) {
1903
- String numberToTry = exampleNumber.substring(0, phoneNumberLength);
1904
- try {
1905
- PhoneNumber possiblyValidNumber = parse(numberToTry, regionCode);
1906
- if (!isValidNumber(possiblyValidNumber)) {
1907
- return possiblyValidNumber;
1908
- }
1909
- } catch (NumberParseException e) {
1910
- // Shouldn't happen: we have already checked the length, we know example numbers have
1911
- // only valid digits, and we know the region code is fine.
1912
- }
1913
- }
1914
- // We have a test to check that this doesn't happen for any of our supported regions.
1915
- return null;
1916
- }
1917
-
1918
- /**
1919
- * Gets a valid number for the specified region and number type.
1920
- *
1921
- * @param regionCode the region for which an example number is needed
1922
- * @param type the type of number that is needed
1923
- * @return a valid number for the specified region and type. Returns null when the metadata
1924
- * does not contain such information or if an invalid region or region 001 was entered.
1925
- * For 001 (representing non-geographical numbers), call
1926
- * {@link #getExampleNumberForNonGeoEntity} instead.
1927
- */
1928
- public PhoneNumber getExampleNumberForType(String regionCode, PhoneNumberType type) {
1929
- // Check the region code is valid.
1930
- if (!isValidRegionCode(regionCode)) {
1931
- logger.log(Level.WARNING, "Invalid or unknown region code provided: " + regionCode);
1932
- return null;
1933
- }
1934
- PhoneNumberDesc desc = getNumberDescByType(getMetadataForRegion(regionCode), type);
1935
- try {
1936
- if (!desc.exampleNumber.equals("")) {
1937
- return parse(desc.exampleNumber, regionCode);
1938
- }
1939
- } catch (NumberParseException e) {
1940
- logger.log(Level.SEVERE, e.toString());
1941
- }
1942
- return null;
1943
- }
1944
-
1945
- /**
1946
- * Gets a valid number for the specified number type (it may belong to any country).
1947
- *
1948
- * @param type the type of number that is needed
1949
- * @return a valid number for the specified type. Returns null when the metadata
1950
- * does not contain such information. This should only happen when no numbers of this type are
1951
- * allocated anywhere in the world anymore.
1952
- */
1953
- public PhoneNumber getExampleNumberForType(PhoneNumberType type) {
1954
- for (String regionCode : getSupportedRegions()) {
1955
- PhoneNumber exampleNumber = getExampleNumberForType(regionCode, type);
1956
- if (exampleNumber != null) {
1957
- return exampleNumber;
1958
- }
1959
- }
1960
- // If there wasn't an example number for a region, try the non-geographical entities.
1961
- for (int countryCallingCode : getSupportedGlobalNetworkCallingCodes()) {
1962
- PhoneNumberDesc desc = getNumberDescByType(
1963
- getMetadataForNonGeographicalRegion(countryCallingCode), type);
1964
- try {
1965
- if (!desc.exampleNumber.equals("")) {
1966
- return parse("+" + countryCallingCode + desc.exampleNumber, UNKNOWN_REGION);
1967
- }
1968
- } catch (NumberParseException e) {
1969
- logger.log(Level.SEVERE, e.toString());
1970
- }
1971
- }
1972
- // There are no example numbers of this type for any country in the library.
1973
- return null;
1974
- }
1975
-
1976
- /**
1977
- * Gets a valid number for the specified country calling code for a non-geographical entity.
1978
- *
1979
- * @param countryCallingCode the country calling code for a non-geographical entity
1980
- * @return a valid number for the non-geographical entity. Returns null when the metadata
1981
- * does not contain such information, or the country calling code passed in does not belong
1982
- * to a non-geographical entity.
1983
- */
1984
- public PhoneNumber getExampleNumberForNonGeoEntity(int countryCallingCode) {
1985
- PhoneMetadata metadata = getMetadataForNonGeographicalRegion(countryCallingCode);
1986
- if (metadata != null) {
1987
- PhoneNumberDesc desc = metadata.generalDesc;
1988
- try {
1989
- if (!desc.exampleNumber.equals("")) {
1990
- return parse("+" + countryCallingCode + desc.exampleNumber, UNKNOWN_REGION);
1991
- }
1992
- } catch (NumberParseException e) {
1993
- logger.log(Level.SEVERE, e.toString());
1994
- }
1995
- } else {
1996
- logger.log(Level.WARNING,
1997
- "Invalid or unknown country calling code provided: " + countryCallingCode);
1998
- }
1999
- return null;
2000
- }
2001
-
2002
- /**
2003
- * Appends the formatted extension of a phone number to formattedNumber, if the phone number had
2004
- * an extension specified.
2005
- */
2006
- private void maybeAppendFormattedExtension(PhoneNumber number, PhoneMetadata metadata,
2007
- PhoneNumberFormat numberFormat,
2008
- StringBuilder formattedNumber) {
2009
- if (number.hasExtension() && number.getExtension().length() > 0) {
2010
- if (numberFormat == PhoneNumberFormat.RFC3966) {
2011
- formattedNumber.append(RFC3966_EXTN_PREFIX).append(number.getExtension());
2012
- } else {
2013
- if (!metadata.preferredExtnPrefix.equals("")) {
2014
- formattedNumber.append(metadata.preferredExtnPrefix).append(number.getExtension());
2015
- } else {
2016
- formattedNumber.append(DEFAULT_EXTN_PREFIX).append(number.getExtension());
2017
- }
2018
- }
2019
- }
2020
- }
2021
-
2022
- PhoneNumberDesc getNumberDescByType(PhoneMetadata metadata, PhoneNumberType type) {
2023
- switch (type) {
2024
- case PREMIUM_RATE:
2025
- return metadata.premiumRate;
2026
- case TOLL_FREE:
2027
- return metadata.tollFree;
2028
- case MOBILE:
2029
- return metadata.mobile;
2030
- case FIXED_LINE:
2031
- case FIXED_LINE_OR_MOBILE:
2032
- return metadata.fixedLine;
2033
- case SHARED_COST:
2034
- return metadata.sharedCost;
2035
- case VOIP:
2036
- return metadata.voip;
2037
- case PERSONAL_NUMBER:
2038
- return metadata.personalNumber;
2039
- case PAGER:
2040
- return metadata.pager;
2041
- case UAN:
2042
- return metadata.uan;
2043
- case VOICEMAIL:
2044
- return metadata.voicemail;
2045
- default:
2046
- return metadata.generalDesc;
2047
- }
2048
- }
2049
-
2050
- /**
2051
- * Gets the type of a phone number.
2052
- *
2053
- * @param number the phone number that we want to know the type
2054
- * @return the type of the phone number
2055
- */
2056
- public PhoneNumberType getNumberType(PhoneNumber number) {
2057
- String regionCode = getRegionCodeForNumber(number);
2058
- PhoneMetadata metadata = getMetadataForRegionOrCallingCode(number.getCountryCode(), regionCode);
2059
- if (metadata == null) {
2060
- return PhoneNumberType.UNKNOWN;
2061
- }
2062
- String nationalSignificantNumber = getNationalSignificantNumber(number);
2063
- return getNumberTypeHelper(nationalSignificantNumber, metadata);
2064
- }
2065
-
2066
- private PhoneNumberType getNumberTypeHelper(String nationalNumber, PhoneMetadata metadata) {
2067
- if (!isNumberMatchingDesc(nationalNumber, metadata.generalDesc)) {
2068
- return PhoneNumberType.UNKNOWN;
2069
- }
2070
-
2071
- if (isNumberMatchingDesc(nationalNumber, metadata.premiumRate)) {
2072
- return PhoneNumberType.PREMIUM_RATE;
2073
- }
2074
- if (isNumberMatchingDesc(nationalNumber, metadata.tollFree)) {
2075
- return PhoneNumberType.TOLL_FREE;
2076
- }
2077
- if (isNumberMatchingDesc(nationalNumber, metadata.sharedCost)) {
2078
- return PhoneNumberType.SHARED_COST;
2079
- }
2080
- if (isNumberMatchingDesc(nationalNumber, metadata.voip)) {
2081
- return PhoneNumberType.VOIP;
2082
- }
2083
- if (isNumberMatchingDesc(nationalNumber, metadata.personalNumber)) {
2084
- return PhoneNumberType.PERSONAL_NUMBER;
2085
- }
2086
- if (isNumberMatchingDesc(nationalNumber, metadata.pager)) {
2087
- return PhoneNumberType.PAGER;
2088
- }
2089
- if (isNumberMatchingDesc(nationalNumber, metadata.uan)) {
2090
- return PhoneNumberType.UAN;
2091
- }
2092
- if (isNumberMatchingDesc(nationalNumber, metadata.voicemail)) {
2093
- return PhoneNumberType.VOICEMAIL;
2094
- }
2095
-
2096
- boolean isFixedLine = isNumberMatchingDesc(nationalNumber, metadata.fixedLine);
2097
- if (isFixedLine) {
2098
- if (metadata.sameMobileAndFixedLinePattern) {
2099
- return PhoneNumberType.FIXED_LINE_OR_MOBILE;
2100
- } else if (isNumberMatchingDesc(nationalNumber, metadata.mobile)) {
2101
- return PhoneNumberType.FIXED_LINE_OR_MOBILE;
2102
- }
2103
- return PhoneNumberType.FIXED_LINE;
2104
- }
2105
- // Otherwise, test to see if the number is mobile. Only do this if certain that the patterns for
2106
- // mobile and fixed line aren't the same.
2107
- if (!metadata.sameMobileAndFixedLinePattern &&
2108
- isNumberMatchingDesc(nationalNumber, metadata.mobile)) {
2109
- return PhoneNumberType.MOBILE;
2110
- }
2111
- return PhoneNumberType.UNKNOWN;
2112
- }
2113
-
2114
- /**
2115
- * Returns the metadata for the given region code or {@code null} if the region code is invalid
2116
- * or unknown.
2117
- */
2118
- PhoneMetadata getMetadataForRegion(String regionCode) {
2119
- if (!isValidRegionCode(regionCode)) {
2120
- return null;
2121
- }
2122
- return metadataSource.getMetadataForRegion(regionCode);
2123
- }
2124
-
2125
- PhoneMetadata getMetadataForNonGeographicalRegion(int countryCallingCode) {
2126
- if (!countryCallingCodeToRegionCodeMap.containsKey(countryCallingCode)) {
2127
- return null;
2128
- }
2129
- return metadataSource.getMetadataForNonGeographicalRegion(countryCallingCode);
2130
- }
2131
-
2132
- boolean isNumberPossibleForDesc(String nationalNumber, PhoneNumberDesc numberDesc) {
2133
- Matcher possibleNumberPatternMatcher =
2134
- regexCache.getPatternForRegex(numberDesc.possibleNumberPattern)
2135
- .matcher(nationalNumber);
2136
- return possibleNumberPatternMatcher.matches();
2137
- }
2138
-
2139
- boolean isNumberMatchingDesc(String nationalNumber, PhoneNumberDesc numberDesc) {
2140
- Matcher nationalNumberPatternMatcher =
2141
- regexCache.getPatternForRegex(numberDesc.nationalNumberPattern)
2142
- .matcher(nationalNumber);
2143
- return isNumberPossibleForDesc(nationalNumber, numberDesc) &&
2144
- nationalNumberPatternMatcher.matches();
2145
- }
2146
-
2147
- /**
2148
- * Tests whether a phone number matches a valid pattern. Note this doesn't verify the number
2149
- * is actually in use, which is impossible to tell by just looking at a number itself.
2150
- *
2151
- * @param number the phone number that we want to validate
2152
- * @return a boolean that indicates whether the number is of a valid pattern
2153
- */
2154
- public boolean isValidNumber(PhoneNumber number) {
2155
- String regionCode = getRegionCodeForNumber(number);
2156
- return isValidNumberForRegion(number, regionCode);
2157
- }
2158
-
2159
- /**
2160
- * Tests whether a phone number is valid for a certain region. Note this doesn't verify the number
2161
- * is actually in use, which is impossible to tell by just looking at a number itself. If the
2162
- * country calling code is not the same as the country calling code for the region, this
2163
- * immediately exits with false. After this, the specific number pattern rules for the region are
2164
- * examined. This is useful for determining for example whether a particular number is valid for
2165
- * Canada, rather than just a valid NANPA number.
2166
- * Warning: In most cases, you want to use {@link #isValidNumber} instead. For example, this
2167
- * method will mark numbers from British Crown dependencies such as the Isle of Man as invalid for
2168
- * the region "GB" (United Kingdom), since it has its own region code, "IM", which may be
2169
- * undesirable.
2170
- *
2171
- * @param number the phone number that we want to validate
2172
- * @param regionCode the region that we want to validate the phone number for
2173
- * @return a boolean that indicates whether the number is of a valid pattern
2174
- */
2175
- public boolean isValidNumberForRegion(PhoneNumber number, String regionCode) {
2176
- int countryCode = number.getCountryCode();
2177
- PhoneMetadata metadata = getMetadataForRegionOrCallingCode(countryCode, regionCode);
2178
- if ((metadata == null) ||
2179
- (!REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCode) &&
2180
- countryCode != getCountryCodeForValidRegion(regionCode))) {
2181
- // Either the region code was invalid, or the country calling code for this number does not
2182
- // match that of the region code.
2183
- return false;
2184
- }
2185
- String nationalSignificantNumber = getNationalSignificantNumber(number);
2186
- return getNumberTypeHelper(nationalSignificantNumber, metadata) != PhoneNumberType.UNKNOWN;
2187
- }
2188
-
2189
- /**
2190
- * Returns the region where a phone number is from. This could be used for geocoding at the region
2191
- * level.
2192
- *
2193
- * @param number the phone number whose origin we want to know
2194
- * @return the region where the phone number is from, or null if no region matches this calling
2195
- * code
2196
- */
2197
- public String getRegionCodeForNumber(PhoneNumber number) {
2198
- int countryCode = number.getCountryCode();
2199
- List<String> regions = countryCallingCodeToRegionCodeMap.get(countryCode);
2200
- if (regions == null) {
2201
- String numberString = getNationalSignificantNumber(number);
2202
- logger.log(Level.INFO,
2203
- "Missing/invalid country_code (" + countryCode + ") for number " + numberString);
2204
- return null;
2205
- }
2206
- if (regions.size() == 1) {
2207
- return regions.get(0);
2208
- } else {
2209
- return getRegionCodeForNumberFromRegionList(number, regions);
2210
- }
2211
- }
2212
-
2213
- private String getRegionCodeForNumberFromRegionList(PhoneNumber number,
2214
- List<String> regionCodes) {
2215
- String nationalNumber = getNationalSignificantNumber(number);
2216
- for (String regionCode : regionCodes) {
2217
- // If leadingDigits is present, use this. Otherwise, do full validation.
2218
- // Metadata cannot be null because the region codes come from the country calling code map.
2219
- PhoneMetadata metadata = getMetadataForRegion(regionCode);
2220
- if (!metadata.leadingDigits.equals("")) {
2221
- if (regexCache.getPatternForRegex(metadata.leadingDigits)
2222
- .matcher(nationalNumber).lookingAt()) {
2223
- return regionCode;
2224
- }
2225
- } else if (getNumberTypeHelper(nationalNumber, metadata) != PhoneNumberType.UNKNOWN) {
2226
- return regionCode;
2227
- }
2228
- }
2229
- return null;
2230
- }
2231
-
2232
- /**
2233
- * Returns the region code that matches the specific country calling code. In the case of no
2234
- * region code being found, ZZ will be returned. In the case of multiple regions, the one
2235
- * designated in the metadata as the "main" region for this calling code will be returned. If the
2236
- * countryCallingCode entered is valid but doesn't match a specific region (such as in the case of
2237
- * non-geographical calling codes like 800) the value "001" will be returned (corresponding to
2238
- * the value for World in the UN M.49 schema).
2239
- */
2240
- public String getRegionCodeForCountryCode(int countryCallingCode) {
2241
- List<String> regionCodes = countryCallingCodeToRegionCodeMap.get(countryCallingCode);
2242
- return regionCodes == null ? UNKNOWN_REGION : regionCodes.get(0);
2243
- }
2244
-
2245
- /**
2246
- * Returns a list with the region codes that match the specific country calling code. For
2247
- * non-geographical country calling codes, the region code 001 is returned. Also, in the case
2248
- * of no region code being found, an empty list is returned.
2249
- */
2250
- public List<String> getRegionCodesForCountryCode(int countryCallingCode) {
2251
- List<String> regionCodes = countryCallingCodeToRegionCodeMap.get(countryCallingCode);
2252
- return Collections.unmodifiableList(regionCodes == null ? new ArrayList<String>(0)
2253
- : regionCodes);
2254
- }
2255
-
2256
- /**
2257
- * Returns the country calling code for a specific region. For example, this would be 1 for the
2258
- * United States, and 64 for New Zealand.
2259
- *
2260
- * @param regionCode the region that we want to get the country calling code for
2261
- * @return the country calling code for the region denoted by regionCode
2262
- */
2263
- public int getCountryCodeForRegion(String regionCode) {
2264
- if (!isValidRegionCode(regionCode)) {
2265
- logger.log(Level.WARNING,
2266
- "Invalid or missing region code ("
2267
- + ((regionCode == null) ? "null" : regionCode)
2268
- + ") provided.");
2269
- return 0;
2270
- }
2271
- return getCountryCodeForValidRegion(regionCode);
2272
- }
2273
-
2274
- /**
2275
- * Returns the country calling code for a specific region. For example, this would be 1 for the
2276
- * United States, and 64 for New Zealand. Assumes the region is already valid.
2277
- *
2278
- * @param regionCode the region that we want to get the country calling code for
2279
- * @return the country calling code for the region denoted by regionCode
2280
- * @throws IllegalArgumentException if the region is invalid
2281
- */
2282
- private int getCountryCodeForValidRegion(String regionCode) {
2283
- PhoneMetadata metadata = getMetadataForRegion(regionCode);
2284
- if (metadata == null) {
2285
- throw new IllegalArgumentException("Invalid region code: " + regionCode);
2286
- }
2287
- return metadata.countryCode;
2288
- }
2289
-
2290
- /**
2291
- * Returns the national dialling prefix for a specific region. For example, this would be 1 for
2292
- * the United States, and 0 for New Zealand. Set stripNonDigits to true to strip symbols like "~"
2293
- * (which indicates a wait for a dialling tone) from the prefix returned. If no national prefix is
2294
- * present, we return null.
2295
- *
2296
- * <p>Warning: Do not use this method for do-your-own formatting - for some regions, the
2297
- * national dialling prefix is used only for certain types of numbers. Use the library's
2298
- * formatting functions to prefix the national prefix when required.
2299
- *
2300
- * @param regionCode the region that we want to get the dialling prefix for
2301
- * @param stripNonDigits true to strip non-digits from the national dialling prefix
2302
- * @return the dialling prefix for the region denoted by regionCode
2303
- */
2304
- public String getNddPrefixForRegion(String regionCode, boolean stripNonDigits) {
2305
- PhoneMetadata metadata = getMetadataForRegion(regionCode);
2306
- if (metadata == null) {
2307
- logger.log(Level.WARNING,
2308
- "Invalid or missing region code ("
2309
- + ((regionCode == null) ? "null" : regionCode)
2310
- + ") provided.");
2311
- return null;
2312
- }
2313
- String nationalPrefix = metadata.nationalPrefix;
2314
- // If no national prefix was found, we return null.
2315
- if (nationalPrefix.length() == 0) {
2316
- return null;
2317
- }
2318
- if (stripNonDigits) {
2319
- // Note: if any other non-numeric symbols are ever used in national prefixes, these would have
2320
- // to be removed here as well.
2321
- nationalPrefix = nationalPrefix.replace("~", "");
2322
- }
2323
- return nationalPrefix;
2324
- }
2325
-
2326
- /**
2327
- * Checks if this is a region under the North American Numbering Plan Administration (NANPA).
2328
- *
2329
- * @return true if regionCode is one of the regions under NANPA
2330
- */
2331
- public boolean isNANPACountry(String regionCode) {
2332
- return nanpaRegions.contains(regionCode);
2333
- }
2334
-
2335
- /**
2336
- * Checks whether the country calling code is from a region whose national significant number
2337
- * could contain a leading zero. An example of such a region is Italy. Returns false if no
2338
- * metadata for the country is found.
2339
- */
2340
- boolean isLeadingZeroPossible(int countryCallingCode) {
2341
- PhoneMetadata mainMetadataForCallingCode =
2342
- getMetadataForRegionOrCallingCode(countryCallingCode,
2343
- getRegionCodeForCountryCode(countryCallingCode));
2344
- if (mainMetadataForCallingCode == null) {
2345
- return false;
2346
- }
2347
- return mainMetadataForCallingCode.leadingZeroPossible;
2348
- }
2349
-
2350
- /**
2351
- * Checks if the number is a valid vanity (alpha) number such as 800 MICROSOFT. A valid vanity
2352
- * number will start with at least 3 digits and will have three or more alpha characters. This
2353
- * does not do region-specific checks - to work out if this number is actually valid for a region,
2354
- * it should be parsed and methods such as {@link #isPossibleNumberWithReason} and
2355
- * {@link #isValidNumber} should be used.
2356
- *
2357
- * @param number the number that needs to be checked
2358
- * @return true if the number is a valid vanity number
2359
- */
2360
- public boolean isAlphaNumber(String number) {
2361
- if (!isViablePhoneNumber(number)) {
2362
- // Number is too short, or doesn't match the basic phone number pattern.
2363
- return false;
2364
- }
2365
- StringBuilder strippedNumber = new StringBuilder(number);
2366
- maybeStripExtension(strippedNumber);
2367
- return VALID_ALPHA_PHONE_PATTERN.matcher(strippedNumber).matches();
2368
- }
2369
-
2370
- /**
2371
- * Convenience wrapper around {@link #isPossibleNumberWithReason}. Instead of returning the reason
2372
- * for failure, this method returns a boolean value.
2373
- * @param number the number that needs to be checked
2374
- * @return true if the number is possible
2375
- */
2376
- public boolean isPossibleNumber(PhoneNumber number) {
2377
- return isPossibleNumberWithReason(number) == ValidationResult.IS_POSSIBLE;
2378
- }
2379
-
2380
- /**
2381
- * Helper method to check a number against a particular pattern and determine whether it matches,
2382
- * or is too short or too long. Currently, if a number pattern suggests that numbers of length 7
2383
- * and 10 are possible, and a number in between these possible lengths is entered, such as of
2384
- * length 8, this will return TOO_LONG.
2385
- */
2386
- private ValidationResult testNumberLengthAgainstPattern(Pattern numberPattern, String number) {
2387
- Matcher numberMatcher = numberPattern.matcher(number);
2388
- if (numberMatcher.matches()) {
2389
- return ValidationResult.IS_POSSIBLE;
2390
- }
2391
- if (numberMatcher.lookingAt()) {
2392
- return ValidationResult.TOO_LONG;
2393
- } else {
2394
- return ValidationResult.TOO_SHORT;
2395
- }
2396
- }
2397
-
2398
- /**
2399
- * Helper method to check whether a number is too short to be a regular length phone number in a
2400
- * region.
2401
- */
2402
- private boolean isShorterThanPossibleNormalNumber(PhoneMetadata regionMetadata, String number) {
2403
- Pattern possibleNumberPattern = regexCache.getPatternForRegex(
2404
- regionMetadata.generalDesc.possibleNumberPattern);
2405
- return testNumberLengthAgainstPattern(possibleNumberPattern, number) ==
2406
- ValidationResult.TOO_SHORT;
2407
- }
2408
-
2409
- /**
2410
- * Check whether a phone number is a possible number. It provides a more lenient check than
2411
- * {@link #isValidNumber} in the following sense:
2412
- *<ol>
2413
- * <li> It only checks the length of phone numbers. In particular, it doesn't check starting
2414
- * digits of the number.
2415
- * <li> It doesn't attempt to figure out the type of the number, but uses general rules which
2416
- * applies to all types of phone numbers in a region. Therefore, it is much faster than
2417
- * isValidNumber.
2418
- * <li> For fixed line numbers, many regions have the concept of area code, which together with
2419
- * subscriber number constitute the national significant number. It is sometimes okay to dial
2420
- * the subscriber number only when dialing in the same area. This function will return
2421
- * true if the subscriber-number-only version is passed in. On the other hand, because
2422
- * isValidNumber validates using information on both starting digits (for fixed line
2423
- * numbers, that would most likely be area codes) and length (obviously includes the
2424
- * length of area codes for fixed line numbers), it will return false for the
2425
- * subscriber-number-only version.
2426
- * </ol>
2427
- * @param number the number that needs to be checked
2428
- * @return a ValidationResult object which indicates whether the number is possible
2429
- */
2430
- public ValidationResult isPossibleNumberWithReason(PhoneNumber number) {
2431
- String nationalNumber = getNationalSignificantNumber(number);
2432
- int countryCode = number.getCountryCode();
2433
- // Note: For Russian Fed and NANPA numbers, we just use the rules from the default region (US or
2434
- // Russia) since the getRegionCodeForNumber will not work if the number is possible but not
2435
- // valid. This would need to be revisited if the possible number pattern ever differed between
2436
- // various regions within those plans.
2437
- if (!hasValidCountryCallingCode(countryCode)) {
2438
- return ValidationResult.INVALID_COUNTRY_CODE;
2439
- }
2440
- String regionCode = getRegionCodeForCountryCode(countryCode);
2441
- // Metadata cannot be null because the country calling code is valid.
2442
- PhoneMetadata metadata = getMetadataForRegionOrCallingCode(countryCode, regionCode);
2443
- Pattern possibleNumberPattern =
2444
- regexCache.getPatternForRegex(metadata.generalDesc.possibleNumberPattern);
2445
- return testNumberLengthAgainstPattern(possibleNumberPattern, nationalNumber);
2446
- }
2447
-
2448
- /**
2449
- * Check whether a phone number is a possible number given a number in the form of a string, and
2450
- * the region where the number could be dialed from. It provides a more lenient check than
2451
- * {@link #isValidNumber}. See {@link #isPossibleNumber(PhoneNumber)} for details.
2452
- *
2453
- * <p>This method first parses the number, then invokes {@link #isPossibleNumber(PhoneNumber)}
2454
- * with the resultant PhoneNumber object.
2455
- *
2456
- * @param number the number that needs to be checked, in the form of a string
2457
- * @param regionDialingFrom the region that we are expecting the number to be dialed from.
2458
- * Note this is different from the region where the number belongs. For example, the number
2459
- * +1 650 253 0000 is a number that belongs to US. When written in this form, it can be
2460
- * dialed from any region. When it is written as 00 1 650 253 0000, it can be dialed from any
2461
- * region which uses an international dialling prefix of 00. When it is written as
2462
- * 650 253 0000, it can only be dialed from within the US, and when written as 253 0000, it
2463
- * can only be dialed from within a smaller area in the US (Mountain View, CA, to be more
2464
- * specific).
2465
- * @return true if the number is possible
2466
- */
2467
- public boolean isPossibleNumber(String number, String regionDialingFrom) {
2468
- try {
2469
- return isPossibleNumber(parse(number, regionDialingFrom));
2470
- } catch (NumberParseException e) {
2471
- return false;
2472
- }
2473
- }
2474
-
2475
- /**
2476
- * Attempts to extract a valid number from a phone number that is too long to be valid, and resets
2477
- * the PhoneNumber object passed in to that valid version. If no valid number could be extracted,
2478
- * the PhoneNumber object passed in will not be modified.
2479
- * @param number a PhoneNumber object which contains a number that is too long to be valid.
2480
- * @return true if a valid phone number can be successfully extracted.
2481
- */
2482
- public boolean truncateTooLongNumber(PhoneNumber number) {
2483
- if (isValidNumber(number)) {
2484
- return true;
2485
- }
2486
- PhoneNumber numberCopy = new PhoneNumber();
2487
- numberCopy.mergeFrom(number);
2488
- long nationalNumber = number.getNationalNumber();
2489
- do {
2490
- nationalNumber /= 10;
2491
- numberCopy.setNationalNumber(nationalNumber);
2492
- if (isPossibleNumberWithReason(numberCopy) == ValidationResult.TOO_SHORT ||
2493
- nationalNumber == 0) {
2494
- return false;
2495
- }
2496
- } while (!isValidNumber(numberCopy));
2497
- number.setNationalNumber(nationalNumber);
2498
- return true;
2499
- }
2500
-
2501
- /**
2502
- * Gets an {@link com.google.i18n.phonenumbers.AsYouTypeFormatter} for the specific region.
2503
- *
2504
- * @param regionCode the region where the phone number is being entered
2505
- * @return an {@link com.google.i18n.phonenumbers.AsYouTypeFormatter} object, which can be used
2506
- * to format phone numbers in the specific region "as you type"
2507
- */
2508
- public AsYouTypeFormatter getAsYouTypeFormatter(String regionCode) {
2509
- return new AsYouTypeFormatter(regionCode);
2510
- }
2511
-
2512
- // Extracts country calling code from fullNumber, returns it and places the remaining number in
2513
- // nationalNumber. It assumes that the leading plus sign or IDD has already been removed. Returns
2514
- // 0 if fullNumber doesn't start with a valid country calling code, and leaves nationalNumber
2515
- // unmodified.
2516
- int extractCountryCode(StringBuilder fullNumber, StringBuilder nationalNumber) {
2517
- if ((fullNumber.length() == 0) || (fullNumber.charAt(0) == '0')) {
2518
- // Country codes do not begin with a '0'.
2519
- return 0;
2520
- }
2521
- int potentialCountryCode;
2522
- int numberLength = fullNumber.length();
2523
- for (int i = 1; i <= MAX_LENGTH_COUNTRY_CODE && i <= numberLength; i++) {
2524
- potentialCountryCode = Integer.parseInt(fullNumber.substring(0, i));
2525
- if (countryCallingCodeToRegionCodeMap.containsKey(potentialCountryCode)) {
2526
- nationalNumber.append(fullNumber.substring(i));
2527
- return potentialCountryCode;
2528
- }
2529
- }
2530
- return 0;
2531
- }
2532
-
2533
- /**
2534
- * Tries to extract a country calling code from a number. This method will return zero if no
2535
- * country calling code is considered to be present. Country calling codes are extracted in the
2536
- * following ways:
2537
- * <ul>
2538
- * <li> by stripping the international dialing prefix of the region the person is dialing from,
2539
- * if this is present in the number, and looking at the next digits
2540
- * <li> by stripping the '+' sign if present and then looking at the next digits
2541
- * <li> by comparing the start of the number and the country calling code of the default region.
2542
- * If the number is not considered possible for the numbering plan of the default region
2543
- * initially, but starts with the country calling code of this region, validation will be
2544
- * reattempted after stripping this country calling code. If this number is considered a
2545
- * possible number, then the first digits will be considered the country calling code and
2546
- * removed as such.
2547
- * </ul>
2548
- * It will throw a NumberParseException if the number starts with a '+' but the country calling
2549
- * code supplied after this does not match that of any known region.
2550
- *
2551
- * @param number non-normalized telephone number that we wish to extract a country calling
2552
- * code from - may begin with '+'
2553
- * @param defaultRegionMetadata metadata about the region this number may be from
2554
- * @param nationalNumber a string buffer to store the national significant number in, in the case
2555
- * that a country calling code was extracted. The number is appended to any existing contents.
2556
- * If no country calling code was extracted, this will be left unchanged.
2557
- * @param keepRawInput true if the country_code_source and preferred_carrier_code fields of
2558
- * phoneNumber should be populated.
2559
- * @param phoneNumber the PhoneNumber object where the country_code and country_code_source need
2560
- * to be populated. Note the country_code is always populated, whereas country_code_source is
2561
- * only populated when keepCountryCodeSource is true.
2562
- * @return the country calling code extracted or 0 if none could be extracted
2563
- */
2564
- // @VisibleForTesting
2565
- int maybeExtractCountryCode(String number, PhoneMetadata defaultRegionMetadata,
2566
- StringBuilder nationalNumber, boolean keepRawInput,
2567
- PhoneNumber phoneNumber)
2568
- throws NumberParseException {
2569
- if (number.length() == 0) {
2570
- return 0;
2571
- }
2572
- StringBuilder fullNumber = new StringBuilder(number);
2573
- // Set the default prefix to be something that will never match.
2574
- String possibleCountryIddPrefix = "NonMatch";
2575
- if (defaultRegionMetadata != null) {
2576
- possibleCountryIddPrefix = defaultRegionMetadata.internationalPrefix;
2577
- }
2578
-
2579
- CountryCodeSource countryCodeSource =
2580
- maybeStripInternationalPrefixAndNormalize(fullNumber, possibleCountryIddPrefix);
2581
- if (keepRawInput) {
2582
- phoneNumber.setCountryCodeSource(countryCodeSource);
2583
- }
2584
- if (countryCodeSource != CountryCodeSource.FROM_DEFAULT_COUNTRY) {
2585
- if (fullNumber.length() <= MIN_LENGTH_FOR_NSN) {
2586
- throw new NumberParseException(NumberParseException.ErrorType.TOO_SHORT_AFTER_IDD,
2587
- "Phone number had an IDD, but after this was not "
2588
- + "long enough to be a viable phone number.");
2589
- }
2590
- int potentialCountryCode = extractCountryCode(fullNumber, nationalNumber);
2591
- if (potentialCountryCode != 0) {
2592
- phoneNumber.setCountryCode(potentialCountryCode);
2593
- return potentialCountryCode;
2594
- }
2595
-
2596
- // If this fails, they must be using a strange country calling code that we don't recognize,
2597
- // or that doesn't exist.
2598
- throw new NumberParseException(NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2599
- "Country calling code supplied was not recognised.");
2600
- } else if (defaultRegionMetadata != null) {
2601
- // Check to see if the number starts with the country calling code for the default region. If
2602
- // so, we remove the country calling code, and do some checks on the validity of the number
2603
- // before and after.
2604
- int defaultCountryCode = defaultRegionMetadata.countryCode;
2605
- String defaultCountryCodeString = String.valueOf(defaultCountryCode);
2606
- String normalizedNumber = fullNumber.toString();
2607
- if (normalizedNumber.startsWith(defaultCountryCodeString)) {
2608
- StringBuilder potentialNationalNumber =
2609
- new StringBuilder(normalizedNumber.substring(defaultCountryCodeString.length()));
2610
- PhoneNumberDesc generalDesc = defaultRegionMetadata.generalDesc;
2611
- Pattern validNumberPattern =
2612
- regexCache.getPatternForRegex(generalDesc.nationalNumberPattern);
2613
- maybeStripNationalPrefixAndCarrierCode(
2614
- potentialNationalNumber, defaultRegionMetadata, null /* Don't need the carrier code */);
2615
- Pattern possibleNumberPattern =
2616
- regexCache.getPatternForRegex(generalDesc.possibleNumberPattern);
2617
- // If the number was not valid before but is valid now, or if it was too long before, we
2618
- // consider the number with the country calling code stripped to be a better result and
2619
- // keep that instead.
2620
- if ((!validNumberPattern.matcher(fullNumber).matches() &&
2621
- validNumberPattern.matcher(potentialNationalNumber).matches()) ||
2622
- testNumberLengthAgainstPattern(possibleNumberPattern, fullNumber.toString())
2623
- == ValidationResult.TOO_LONG) {
2624
- nationalNumber.append(potentialNationalNumber);
2625
- if (keepRawInput) {
2626
- phoneNumber.setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN);
2627
- }
2628
- phoneNumber.setCountryCode(defaultCountryCode);
2629
- return defaultCountryCode;
2630
- }
2631
- }
2632
- }
2633
- // No country calling code present.
2634
- phoneNumber.setCountryCode(0);
2635
- return 0;
2636
- }
2637
-
2638
- /**
2639
- * Strips the IDD from the start of the number if present. Helper function used by
2640
- * maybeStripInternationalPrefixAndNormalize.
2641
- */
2642
- private boolean parsePrefixAsIdd(Pattern iddPattern, StringBuilder number) {
2643
- Matcher m = iddPattern.matcher(number);
2644
- if (m.lookingAt()) {
2645
- int matchEnd = m.end();
2646
- // Only strip this if the first digit after the match is not a 0, since country calling codes
2647
- // cannot begin with 0.
2648
- Matcher digitMatcher = CAPTURING_DIGIT_PATTERN.matcher(number.substring(matchEnd));
2649
- if (digitMatcher.find()) {
2650
- String normalizedGroup = normalizeDigitsOnly(digitMatcher.group(1));
2651
- if (normalizedGroup.equals("0")) {
2652
- return false;
2653
- }
2654
- }
2655
- number.delete(0, matchEnd);
2656
- return true;
2657
- }
2658
- return false;
2659
- }
2660
-
2661
- /**
2662
- * Strips any international prefix (such as +, 00, 011) present in the number provided, normalizes
2663
- * the resulting number, and indicates if an international prefix was present.
2664
- *
2665
- * @param number the non-normalized telephone number that we wish to strip any international
2666
- * dialing prefix from.
2667
- * @param possibleIddPrefix the international direct dialing prefix from the region we
2668
- * think this number may be dialed in
2669
- * @return the corresponding CountryCodeSource if an international dialing prefix could be
2670
- * removed from the number, otherwise CountryCodeSource.FROM_DEFAULT_COUNTRY if the number did
2671
- * not seem to be in international format.
2672
- */
2673
- // @VisibleForTesting
2674
- CountryCodeSource maybeStripInternationalPrefixAndNormalize(
2675
- StringBuilder number,
2676
- String possibleIddPrefix) {
2677
- if (number.length() == 0) {
2678
- return CountryCodeSource.FROM_DEFAULT_COUNTRY;
2679
- }
2680
- // Check to see if the number begins with one or more plus signs.
2681
- Matcher m = PLUS_CHARS_PATTERN.matcher(number);
2682
- if (m.lookingAt()) {
2683
- number.delete(0, m.end());
2684
- // Can now normalize the rest of the number since we've consumed the "+" sign at the start.
2685
- normalize(number);
2686
- return CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN;
2687
- }
2688
- // Attempt to parse the first digits as an international prefix.
2689
- Pattern iddPattern = regexCache.getPatternForRegex(possibleIddPrefix);
2690
- normalize(number);
2691
- return parsePrefixAsIdd(iddPattern, number)
2692
- ? CountryCodeSource.FROM_NUMBER_WITH_IDD
2693
- : CountryCodeSource.FROM_DEFAULT_COUNTRY;
2694
- }
2695
-
2696
- /**
2697
- * Strips any national prefix (such as 0, 1) present in the number provided.
2698
- *
2699
- * @param number the normalized telephone number that we wish to strip any national
2700
- * dialing prefix from
2701
- * @param metadata the metadata for the region that we think this number is from
2702
- * @param carrierCode a place to insert the carrier code if one is extracted
2703
- * @return true if a national prefix or carrier code (or both) could be extracted.
2704
- */
2705
- // @VisibleForTesting
2706
- boolean maybeStripNationalPrefixAndCarrierCode(
2707
- StringBuilder number, PhoneMetadata metadata, StringBuilder carrierCode) {
2708
- int numberLength = number.length();
2709
- String possibleNationalPrefix = metadata.nationalPrefixForParsing;
2710
- if (numberLength == 0 || possibleNationalPrefix.length() == 0) {
2711
- // Early return for numbers of zero length.
2712
- return false;
2713
- }
2714
- // Attempt to parse the first digits as a national prefix.
2715
- Matcher prefixMatcher = regexCache.getPatternForRegex(possibleNationalPrefix).matcher(number);
2716
- if (prefixMatcher.lookingAt()) {
2717
- Pattern nationalNumberRule =
2718
- regexCache.getPatternForRegex(metadata.generalDesc.nationalNumberPattern);
2719
- // Check if the original number is viable.
2720
- boolean isViableOriginalNumber = nationalNumberRule.matcher(number).matches();
2721
- // prefixMatcher.group(numOfGroups) == null implies nothing was captured by the capturing
2722
- // groups in possibleNationalPrefix; therefore, no transformation is necessary, and we just
2723
- // remove the national prefix.
2724
- int numOfGroups = prefixMatcher.groupCount();
2725
- String transformRule = metadata.nationalPrefixTransformRule;
2726
- if (transformRule == null || transformRule.length() == 0 ||
2727
- prefixMatcher.group(numOfGroups) == null) {
2728
- // If the original number was viable, and the resultant number is not, we return.
2729
- if (isViableOriginalNumber &&
2730
- !nationalNumberRule.matcher(number.substring(prefixMatcher.end())).matches()) {
2731
- return false;
2732
- }
2733
- if (carrierCode != null && numOfGroups > 0 && prefixMatcher.group(numOfGroups) != null) {
2734
- carrierCode.append(prefixMatcher.group(1));
2735
- }
2736
- number.delete(0, prefixMatcher.end());
2737
- return true;
2738
- } else {
2739
- // Check that the resultant number is still viable. If not, return. Check this by copying
2740
- // the string buffer and making the transformation on the copy first.
2741
- StringBuilder transformedNumber = new StringBuilder(number);
2742
- transformedNumber.replace(0, numberLength, prefixMatcher.replaceFirst(transformRule));
2743
- if (isViableOriginalNumber &&
2744
- !nationalNumberRule.matcher(transformedNumber.toString()).matches()) {
2745
- return false;
2746
- }
2747
- if (carrierCode != null && numOfGroups > 1) {
2748
- carrierCode.append(prefixMatcher.group(1));
2749
- }
2750
- number.replace(0, number.length(), transformedNumber.toString());
2751
- return true;
2752
- }
2753
- }
2754
- return false;
2755
- }
2756
-
2757
- /**
2758
- * Strips any extension (as in, the part of the number dialled after the call is connected,
2759
- * usually indicated with extn, ext, x or similar) from the end of the number, and returns it.
2760
- *
2761
- * @param number the non-normalized telephone number that we wish to strip the extension from
2762
- * @return the phone extension
2763
- */
2764
- // @VisibleForTesting
2765
- String maybeStripExtension(StringBuilder number) {
2766
- Matcher m = EXTN_PATTERN.matcher(number);
2767
- // If we find a potential extension, and the number preceding this is a viable number, we assume
2768
- // it is an extension.
2769
- if (m.find() && isViablePhoneNumber(number.substring(0, m.start()))) {
2770
- // The numbers are captured into groups in the regular expression.
2771
- for (int i = 1, length = m.groupCount(); i <= length; i++) {
2772
- if (m.group(i) != null) {
2773
- // We go through the capturing groups until we find one that captured some digits. If none
2774
- // did, then we will return the empty string.
2775
- String extension = m.group(i);
2776
- number.delete(m.start(), number.length());
2777
- return extension;
2778
- }
2779
- }
2780
- }
2781
- return "";
2782
- }
2783
-
2784
- /**
2785
- * Checks to see that the region code used is valid, or if it is not valid, that the number to
2786
- * parse starts with a + symbol so that we can attempt to infer the region from the number.
2787
- * Returns false if it cannot use the region provided and the region cannot be inferred.
2788
- */
2789
- private boolean checkRegionForParsing(String numberToParse, String defaultRegion) {
2790
- if (!isValidRegionCode(defaultRegion)) {
2791
- // If the number is null or empty, we can't infer the region.
2792
- if ((numberToParse == null) || (numberToParse.length() == 0) ||
2793
- !PLUS_CHARS_PATTERN.matcher(numberToParse).lookingAt()) {
2794
- return false;
2795
- }
2796
- }
2797
- return true;
2798
- }
2799
-
2800
- /**
2801
- * Parses a string and returns it as a phone number in proto buffer format. The method is quite
2802
- * lenient and looks for a number in the input text (raw input) and does not check whether the
2803
- * string is definitely only a phone number. To do this, it ignores punctuation and white-space,
2804
- * as well as any text before the number (e.g. a leading "Tel: ") and trims the non-number bits.
2805
- * It will accept a number in any format (E164, national, international etc), assuming it can be
2806
- * interpreted with the defaultRegion supplied. It also attempts to convert any alpha characters
2807
- * into digits if it thinks this is a vanity number of the type "1800 MICROSOFT".
2808
- *
2809
- * <p> This method will throw a {@link com.google.i18n.phonenumbers.NumberParseException} if the
2810
- * number is not considered to be a possible number. Note that validation of whether the number
2811
- * is actually a valid number for a particular region is not performed. This can be done
2812
- * separately with {@link #isValidNumber}.
2813
- *
2814
- * @param numberToParse number that we are attempting to parse. This can contain formatting
2815
- * such as +, ( and -, as well as a phone number extension. It can also
2816
- * be provided in RFC3966 format.
2817
- * @param defaultRegion region that we are expecting the number to be from. This is only used
2818
- * if the number being parsed is not written in international format.
2819
- * The country_code for the number in this case would be stored as that
2820
- * of the default region supplied. If the number is guaranteed to
2821
- * start with a '+' followed by the country calling code, then
2822
- * "ZZ" or null can be supplied.
2823
- * @return a phone number proto buffer filled with the parsed number
2824
- * @throws NumberParseException if the string is not considered to be a viable phone number (e.g.
2825
- * too few or too many digits) or if no default region was supplied
2826
- * and the number is not in international format (does not start
2827
- * with +)
2828
- */
2829
- public PhoneNumber parse(String numberToParse, String defaultRegion)
2830
- throws NumberParseException {
2831
- PhoneNumber phoneNumber = new PhoneNumber();
2832
- parse(numberToParse, defaultRegion, phoneNumber);
2833
- return phoneNumber;
2834
- }
2835
-
2836
- /**
2837
- * Same as {@link #parse(String, String)}, but accepts mutable PhoneNumber as a parameter to
2838
- * decrease object creation when invoked many times.
2839
- */
2840
- public void parse(String numberToParse, String defaultRegion, PhoneNumber phoneNumber)
2841
- throws NumberParseException {
2842
- parseHelper(numberToParse, defaultRegion, false, true, phoneNumber);
2843
- }
2844
-
2845
- /**
2846
- * Parses a string and returns it in proto buffer format. This method differs from {@link #parse}
2847
- * in that it always populates the raw_input field of the protocol buffer with numberToParse as
2848
- * well as the country_code_source field.
2849
- *
2850
- * @param numberToParse number that we are attempting to parse. This can contain formatting
2851
- * such as +, ( and -, as well as a phone number extension.
2852
- * @param defaultRegion region that we are expecting the number to be from. This is only used
2853
- * if the number being parsed is not written in international format.
2854
- * The country calling code for the number in this case would be stored
2855
- * as that of the default region supplied.
2856
- * @return a phone number proto buffer filled with the parsed number
2857
- * @throws NumberParseException if the string is not considered to be a viable phone number or if
2858
- * no default region was supplied
2859
- */
2860
- public PhoneNumber parseAndKeepRawInput(String numberToParse, String defaultRegion)
2861
- throws NumberParseException {
2862
- PhoneNumber phoneNumber = new PhoneNumber();
2863
- parseAndKeepRawInput(numberToParse, defaultRegion, phoneNumber);
2864
- return phoneNumber;
2865
- }
2866
-
2867
- /**
2868
- * Same as{@link #parseAndKeepRawInput(String, String)}, but accepts a mutable PhoneNumber as
2869
- * a parameter to decrease object creation when invoked many times.
2870
- */
2871
- public void parseAndKeepRawInput(String numberToParse, String defaultRegion,
2872
- PhoneNumber phoneNumber)
2873
- throws NumberParseException {
2874
- parseHelper(numberToParse, defaultRegion, true, true, phoneNumber);
2875
- }
2876
-
2877
- /**
2878
- * Returns an iterable over all {@link PhoneNumberMatch PhoneNumberMatches} in {@code text}. This
2879
- * is a shortcut for {@link #findNumbers(CharSequence, String, Leniency, long)
2880
- * getMatcher(text, defaultRegion, Leniency.VALID, Long.MAX_VALUE)}.
2881
- *
2882
- * @param text the text to search for phone numbers, null for no text
2883
- * @param defaultRegion region that we are expecting the number to be from. This is only used
2884
- * if the number being parsed is not written in international format. The
2885
- * country_code for the number in this case would be stored as that of
2886
- * the default region supplied. May be null if only international
2887
- * numbers are expected.
2888
- */
2889
- public Iterable<PhoneNumberMatch> findNumbers(CharSequence text, String defaultRegion) {
2890
- return findNumbers(text, defaultRegion, Leniency.VALID, Long.MAX_VALUE);
2891
- }
2892
-
2893
- /**
2894
- * Returns an iterable over all {@link PhoneNumberMatch PhoneNumberMatches} in {@code text}.
2895
- *
2896
- * @param text the text to search for phone numbers, null for no text
2897
- * @param defaultRegion region that we are expecting the number to be from. This is only used
2898
- * if the number being parsed is not written in international format. The
2899
- * country_code for the number in this case would be stored as that of
2900
- * the default region supplied. May be null if only international
2901
- * numbers are expected.
2902
- * @param leniency the leniency to use when evaluating candidate phone numbers
2903
- * @param maxTries the maximum number of invalid numbers to try before giving up on the
2904
- * text. This is to cover degenerate cases where the text has a lot of
2905
- * false positives in it. Must be {@code >= 0}.
2906
- */
2907
- public Iterable<PhoneNumberMatch> findNumbers(
2908
- final CharSequence text, final String defaultRegion, final Leniency leniency,
2909
- final long maxTries) {
2910
-
2911
- return new Iterable<PhoneNumberMatch>() {
2912
- @Override
2913
- public Iterator<PhoneNumberMatch> iterator() {
2914
- return new PhoneNumberMatcher(
2915
- PhoneNumberUtil.this, text, defaultRegion, leniency, maxTries);
2916
- }
2917
- };
2918
- }
2919
-
2920
- /**
2921
- * A helper function to set the values related to leading zeros in a PhoneNumber.
2922
- */
2923
- static void setItalianLeadingZerosForPhoneNumber(String nationalNumber, PhoneNumber phoneNumber) {
2924
- if (nationalNumber.length() > 1 && nationalNumber.charAt(0) == '0') {
2925
- phoneNumber.setItalianLeadingZero(true);
2926
- int numberOfLeadingZeros = 1;
2927
- // Note that if the national number is all "0"s, the last "0" is not counted as a leading
2928
- // zero.
2929
- while (numberOfLeadingZeros < nationalNumber.length() - 1 &&
2930
- nationalNumber.charAt(numberOfLeadingZeros) == '0') {
2931
- numberOfLeadingZeros++;
2932
- }
2933
- if (numberOfLeadingZeros != 1) {
2934
- phoneNumber.setNumberOfLeadingZeros(numberOfLeadingZeros);
2935
- }
2936
- }
2937
- }
2938
-
2939
- /**
2940
- * Parses a string and fills up the phoneNumber. This method is the same as the public
2941
- * parse() method, with the exception that it allows the default region to be null, for use by
2942
- * isNumberMatch(). checkRegion should be set to false if it is permitted for the default region
2943
- * to be null or unknown ("ZZ").
2944
- */
2945
- private void parseHelper(String numberToParse, String defaultRegion, boolean keepRawInput,
2946
- boolean checkRegion, PhoneNumber phoneNumber)
2947
- throws NumberParseException {
2948
- if (numberToParse == null) {
2949
- throw new NumberParseException(NumberParseException.ErrorType.NOT_A_NUMBER,
2950
- "The phone number supplied was null.");
2951
- } else if (numberToParse.length() > MAX_INPUT_STRING_LENGTH) {
2952
- throw new NumberParseException(NumberParseException.ErrorType.TOO_LONG,
2953
- "The string supplied was too long to parse.");
2954
- }
2955
-
2956
- StringBuilder nationalNumber = new StringBuilder();
2957
- buildNationalNumberForParsing(numberToParse, nationalNumber);
2958
-
2959
- if (!isViablePhoneNumber(nationalNumber.toString())) {
2960
- throw new NumberParseException(NumberParseException.ErrorType.NOT_A_NUMBER,
2961
- "The string supplied did not seem to be a phone number.");
2962
- }
2963
-
2964
- // Check the region supplied is valid, or that the extracted number starts with some sort of +
2965
- // sign so the number's region can be determined.
2966
- if (checkRegion && !checkRegionForParsing(nationalNumber.toString(), defaultRegion)) {
2967
- throw new NumberParseException(NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2968
- "Missing or invalid default region.");
2969
- }
2970
-
2971
- if (keepRawInput) {
2972
- phoneNumber.setRawInput(numberToParse);
2973
- }
2974
- // Attempt to parse extension first, since it doesn't require region-specific data and we want
2975
- // to have the non-normalised number here.
2976
- String extension = maybeStripExtension(nationalNumber);
2977
- if (extension.length() > 0) {
2978
- phoneNumber.setExtension(extension);
2979
- }
2980
-
2981
- PhoneMetadata regionMetadata = getMetadataForRegion(defaultRegion);
2982
- // Check to see if the number is given in international format so we know whether this number is
2983
- // from the default region or not.
2984
- StringBuilder normalizedNationalNumber = new StringBuilder();
2985
- int countryCode = 0;
2986
- try {
2987
- // TODO: This method should really just take in the string buffer that has already
2988
- // been created, and just remove the prefix, rather than taking in a string and then
2989
- // outputting a string buffer.
2990
- countryCode = maybeExtractCountryCode(nationalNumber.toString(), regionMetadata,
2991
- normalizedNationalNumber, keepRawInput, phoneNumber);
2992
- } catch (NumberParseException e) {
2993
- Matcher matcher = PLUS_CHARS_PATTERN.matcher(nationalNumber.toString());
2994
- if (e.getErrorType() == NumberParseException.ErrorType.INVALID_COUNTRY_CODE &&
2995
- matcher.lookingAt()) {
2996
- // Strip the plus-char, and try again.
2997
- countryCode = maybeExtractCountryCode(nationalNumber.substring(matcher.end()),
2998
- regionMetadata, normalizedNationalNumber,
2999
- keepRawInput, phoneNumber);
3000
- if (countryCode == 0) {
3001
- throw new NumberParseException(NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
3002
- "Could not interpret numbers after plus-sign.");
3003
- }
3004
- } else {
3005
- throw new NumberParseException(e.getErrorType(), e.getMessage());
3006
- }
3007
- }
3008
- if (countryCode != 0) {
3009
- String phoneNumberRegion = getRegionCodeForCountryCode(countryCode);
3010
- if (!phoneNumberRegion.equals(defaultRegion)) {
3011
- // Metadata cannot be null because the country calling code is valid.
3012
- regionMetadata = getMetadataForRegionOrCallingCode(countryCode, phoneNumberRegion);
3013
- }
3014
- } else {
3015
- // If no extracted country calling code, use the region supplied instead. The national number
3016
- // is just the normalized version of the number we were given to parse.
3017
- normalize(nationalNumber);
3018
- normalizedNationalNumber.append(nationalNumber);
3019
- if (defaultRegion != null) {
3020
- countryCode = regionMetadata.countryCode;
3021
- phoneNumber.setCountryCode(countryCode);
3022
- } else if (keepRawInput) {
3023
- phoneNumber.clearCountryCodeSource();
3024
- }
3025
- }
3026
- if (normalizedNationalNumber.length() < MIN_LENGTH_FOR_NSN) {
3027
- throw new NumberParseException(NumberParseException.ErrorType.TOO_SHORT_NSN,
3028
- "The string supplied is too short to be a phone number.");
3029
- }
3030
- if (regionMetadata != null) {
3031
- StringBuilder carrierCode = new StringBuilder();
3032
- StringBuilder potentialNationalNumber = new StringBuilder(normalizedNationalNumber);
3033
- maybeStripNationalPrefixAndCarrierCode(potentialNationalNumber, regionMetadata, carrierCode);
3034
- // We require that the NSN remaining after stripping the national prefix and carrier code be
3035
- // of a possible length for the region. Otherwise, we don't do the stripping, since the
3036
- // original number could be a valid short number.
3037
- if (!isShorterThanPossibleNormalNumber(regionMetadata, potentialNationalNumber.toString())) {
3038
- normalizedNationalNumber = potentialNationalNumber;
3039
- if (keepRawInput) {
3040
- phoneNumber.setPreferredDomesticCarrierCode(carrierCode.toString());
3041
- }
3042
- }
3043
- }
3044
- int lengthOfNationalNumber = normalizedNationalNumber.length();
3045
- if (lengthOfNationalNumber < MIN_LENGTH_FOR_NSN) {
3046
- throw new NumberParseException(NumberParseException.ErrorType.TOO_SHORT_NSN,
3047
- "The string supplied is too short to be a phone number.");
3048
- }
3049
- if (lengthOfNationalNumber > MAX_LENGTH_FOR_NSN) {
3050
- throw new NumberParseException(NumberParseException.ErrorType.TOO_LONG,
3051
- "The string supplied is too long to be a phone number.");
3052
- }
3053
- setItalianLeadingZerosForPhoneNumber(normalizedNationalNumber.toString(), phoneNumber);
3054
- phoneNumber.setNationalNumber(Long.parseLong(normalizedNationalNumber.toString()));
3055
- }
3056
-
3057
- /**
3058
- * Converts numberToParse to a form that we can parse and write it to nationalNumber if it is
3059
- * written in RFC3966; otherwise extract a possible number out of it and write to nationalNumber.
3060
- */
3061
- private void buildNationalNumberForParsing(String numberToParse, StringBuilder nationalNumber) {
3062
- int indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT);
3063
- if (indexOfPhoneContext > 0) {
3064
- int phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT.length();
3065
- // If the phone context contains a phone number prefix, we need to capture it, whereas domains
3066
- // will be ignored.
3067
- if (numberToParse.charAt(phoneContextStart) == PLUS_SIGN) {
3068
- // Additional parameters might follow the phone context. If so, we will remove them here
3069
- // because the parameters after phone context are not important for parsing the
3070
- // phone number.
3071
- int phoneContextEnd = numberToParse.indexOf(';', phoneContextStart);
3072
- if (phoneContextEnd > 0) {
3073
- nationalNumber.append(numberToParse.substring(phoneContextStart, phoneContextEnd));
3074
- } else {
3075
- nationalNumber.append(numberToParse.substring(phoneContextStart));
3076
- }
3077
- }
3078
-
3079
- // Now append everything between the "tel:" prefix and the phone-context. This should include
3080
- // the national number, an optional extension or isdn-subaddress component. Note we also
3081
- // handle the case when "tel:" is missing, as we have seen in some of the phone number inputs.
3082
- // In that case, we append everything from the beginning.
3083
- int indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX);
3084
- int indexOfNationalNumber = (indexOfRfc3966Prefix >= 0) ?
3085
- indexOfRfc3966Prefix + RFC3966_PREFIX.length() : 0;
3086
- nationalNumber.append(numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext));
3087
- } else {
3088
- // Extract a possible number from the string passed in (this strips leading characters that
3089
- // could not be the start of a phone number.)
3090
- nationalNumber.append(extractPossibleNumber(numberToParse));
3091
- }
3092
-
3093
- // Delete the isdn-subaddress and everything after it if it is present. Note extension won't
3094
- // appear at the same time with isdn-subaddress according to paragraph 5.3 of the RFC3966 spec,
3095
- int indexOfIsdn = nationalNumber.indexOf(RFC3966_ISDN_SUBADDRESS);
3096
- if (indexOfIsdn > 0) {
3097
- nationalNumber.delete(indexOfIsdn, nationalNumber.length());
3098
- }
3099
- // If both phone context and isdn-subaddress are absent but other parameters are present, the
3100
- // parameters are left in nationalNumber. This is because we are concerned about deleting
3101
- // content from a potential number string when there is no strong evidence that the number is
3102
- // actually written in RFC3966.
3103
- }
3104
-
3105
- /**
3106
- * Takes two phone numbers and compares them for equality.
3107
- *
3108
- * <p>Returns EXACT_MATCH if the country_code, NSN, presence of a leading zero for Italian numbers
3109
- * and any extension present are the same.
3110
- * Returns NSN_MATCH if either or both has no region specified, and the NSNs and extensions are
3111
- * the same.
3112
- * Returns SHORT_NSN_MATCH if either or both has no region specified, or the region specified is
3113
- * the same, and one NSN could be a shorter version of the other number. This includes the case
3114
- * where one has an extension specified, and the other does not.
3115
- * Returns NO_MATCH otherwise.
3116
- * For example, the numbers +1 345 657 1234 and 657 1234 are a SHORT_NSN_MATCH.
3117
- * The numbers +1 345 657 1234 and 345 657 are a NO_MATCH.
3118
- *
3119
- * @param firstNumberIn first number to compare
3120
- * @param secondNumberIn second number to compare
3121
- *
3122
- * @return NO_MATCH, SHORT_NSN_MATCH, NSN_MATCH or EXACT_MATCH depending on the level of equality
3123
- * of the two numbers, described in the method definition.
3124
- */
3125
- public MatchType isNumberMatch(PhoneNumber firstNumberIn, PhoneNumber secondNumberIn) {
3126
- // Make copies of the phone number so that the numbers passed in are not edited.
3127
- PhoneNumber firstNumber = new PhoneNumber();
3128
- firstNumber.mergeFrom(firstNumberIn);
3129
- PhoneNumber secondNumber = new PhoneNumber();
3130
- secondNumber.mergeFrom(secondNumberIn);
3131
- // First clear raw_input, country_code_source and preferred_domestic_carrier_code fields and any
3132
- // empty-string extensions so that we can use the proto-buffer equality method.
3133
- firstNumber.clearRawInput();
3134
- firstNumber.clearCountryCodeSource();
3135
- firstNumber.clearPreferredDomesticCarrierCode();
3136
- secondNumber.clearRawInput();
3137
- secondNumber.clearCountryCodeSource();
3138
- secondNumber.clearPreferredDomesticCarrierCode();
3139
- if (firstNumber.hasExtension() &&
3140
- firstNumber.getExtension().length() == 0) {
3141
- firstNumber.clearExtension();
3142
- }
3143
- if (secondNumber.hasExtension() &&
3144
- secondNumber.getExtension().length() == 0) {
3145
- secondNumber.clearExtension();
3146
- }
3147
- // Early exit if both had extensions and these are different.
3148
- if (firstNumber.hasExtension() && secondNumber.hasExtension() &&
3149
- !firstNumber.getExtension().equals(secondNumber.getExtension())) {
3150
- return MatchType.NO_MATCH;
3151
- }
3152
- int firstNumberCountryCode = firstNumber.getCountryCode();
3153
- int secondNumberCountryCode = secondNumber.getCountryCode();
3154
- // Both had country_code specified.
3155
- if (firstNumberCountryCode != 0 && secondNumberCountryCode != 0) {
3156
- if (firstNumber.exactlySameAs(secondNumber)) {
3157
- return MatchType.EXACT_MATCH;
3158
- } else if (firstNumberCountryCode == secondNumberCountryCode &&
3159
- isNationalNumberSuffixOfTheOther(firstNumber, secondNumber)) {
3160
- // A SHORT_NSN_MATCH occurs if there is a difference because of the presence or absence of
3161
- // an 'Italian leading zero', the presence or absence of an extension, or one NSN being a
3162
- // shorter variant of the other.
3163
- return MatchType.SHORT_NSN_MATCH;
3164
- }
3165
- // This is not a match.
3166
- return MatchType.NO_MATCH;
3167
- }
3168
- // Checks cases where one or both country_code fields were not specified. To make equality
3169
- // checks easier, we first set the country_code fields to be equal.
3170
- firstNumber.setCountryCode(secondNumberCountryCode);
3171
- // If all else was the same, then this is an NSN_MATCH.
3172
- if (firstNumber.exactlySameAs(secondNumber)) {
3173
- return MatchType.NSN_MATCH;
3174
- }
3175
- if (isNationalNumberSuffixOfTheOther(firstNumber, secondNumber)) {
3176
- return MatchType.SHORT_NSN_MATCH;
3177
- }
3178
- return MatchType.NO_MATCH;
3179
- }
3180
-
3181
- // Returns true when one national number is the suffix of the other or both are the same.
3182
- private boolean isNationalNumberSuffixOfTheOther(PhoneNumber firstNumber,
3183
- PhoneNumber secondNumber) {
3184
- String firstNumberNationalNumber = String.valueOf(firstNumber.getNationalNumber());
3185
- String secondNumberNationalNumber = String.valueOf(secondNumber.getNationalNumber());
3186
- // Note that endsWith returns true if the numbers are equal.
3187
- return firstNumberNationalNumber.endsWith(secondNumberNationalNumber) ||
3188
- secondNumberNationalNumber.endsWith(firstNumberNationalNumber);
3189
- }
3190
-
3191
- /**
3192
- * Takes two phone numbers as strings and compares them for equality. This is a convenience
3193
- * wrapper for {@link #isNumberMatch(PhoneNumber, PhoneNumber)}. No default region is known.
3194
- *
3195
- * @param firstNumber first number to compare. Can contain formatting, and can have country
3196
- * calling code specified with + at the start.
3197
- * @param secondNumber second number to compare. Can contain formatting, and can have country
3198
- * calling code specified with + at the start.
3199
- * @return NOT_A_NUMBER, NO_MATCH, SHORT_NSN_MATCH, NSN_MATCH, EXACT_MATCH. See
3200
- * {@link #isNumberMatch(PhoneNumber, PhoneNumber)} for more details.
3201
- */
3202
- public MatchType isNumberMatch(String firstNumber, String secondNumber) {
3203
- try {
3204
- PhoneNumber firstNumberAsProto = parse(firstNumber, UNKNOWN_REGION);
3205
- return isNumberMatch(firstNumberAsProto, secondNumber);
3206
- } catch (NumberParseException e) {
3207
- if (e.getErrorType() == NumberParseException.ErrorType.INVALID_COUNTRY_CODE) {
3208
- try {
3209
- PhoneNumber secondNumberAsProto = parse(secondNumber, UNKNOWN_REGION);
3210
- return isNumberMatch(secondNumberAsProto, firstNumber);
3211
- } catch (NumberParseException e2) {
3212
- if (e2.getErrorType() == NumberParseException.ErrorType.INVALID_COUNTRY_CODE) {
3213
- try {
3214
- PhoneNumber firstNumberProto = new PhoneNumber();
3215
- PhoneNumber secondNumberProto = new PhoneNumber();
3216
- parseHelper(firstNumber, null, false, false, firstNumberProto);
3217
- parseHelper(secondNumber, null, false, false, secondNumberProto);
3218
- return isNumberMatch(firstNumberProto, secondNumberProto);
3219
- } catch (NumberParseException e3) {
3220
- // Fall through and return MatchType.NOT_A_NUMBER.
3221
- }
3222
- }
3223
- }
3224
- }
3225
- }
3226
- // One or more of the phone numbers we are trying to match is not a viable phone number.
3227
- return MatchType.NOT_A_NUMBER;
3228
- }
3229
-
3230
- /**
3231
- * Takes two phone numbers and compares them for equality. This is a convenience wrapper for
3232
- * {@link #isNumberMatch(PhoneNumber, PhoneNumber)}. No default region is known.
3233
- *
3234
- * @param firstNumber first number to compare in proto buffer format.
3235
- * @param secondNumber second number to compare. Can contain formatting, and can have country
3236
- * calling code specified with + at the start.
3237
- * @return NOT_A_NUMBER, NO_MATCH, SHORT_NSN_MATCH, NSN_MATCH, EXACT_MATCH. See
3238
- * {@link #isNumberMatch(PhoneNumber, PhoneNumber)} for more details.
3239
- */
3240
- public MatchType isNumberMatch(PhoneNumber firstNumber, String secondNumber) {
3241
- // First see if the second number has an implicit country calling code, by attempting to parse
3242
- // it.
3243
- try {
3244
- PhoneNumber secondNumberAsProto = parse(secondNumber, UNKNOWN_REGION);
3245
- return isNumberMatch(firstNumber, secondNumberAsProto);
3246
- } catch (NumberParseException e) {
3247
- if (e.getErrorType() == NumberParseException.ErrorType.INVALID_COUNTRY_CODE) {
3248
- // The second number has no country calling code. EXACT_MATCH is no longer possible.
3249
- // We parse it as if the region was the same as that for the first number, and if
3250
- // EXACT_MATCH is returned, we replace this with NSN_MATCH.
3251
- String firstNumberRegion = getRegionCodeForCountryCode(firstNumber.getCountryCode());
3252
- try {
3253
- if (!firstNumberRegion.equals(UNKNOWN_REGION)) {
3254
- PhoneNumber secondNumberWithFirstNumberRegion = parse(secondNumber, firstNumberRegion);
3255
- MatchType match = isNumberMatch(firstNumber, secondNumberWithFirstNumberRegion);
3256
- if (match == MatchType.EXACT_MATCH) {
3257
- return MatchType.NSN_MATCH;
3258
- }
3259
- return match;
3260
- } else {
3261
- // If the first number didn't have a valid country calling code, then we parse the
3262
- // second number without one as well.
3263
- PhoneNumber secondNumberProto = new PhoneNumber();
3264
- parseHelper(secondNumber, null, false, false, secondNumberProto);
3265
- return isNumberMatch(firstNumber, secondNumberProto);
3266
- }
3267
- } catch (NumberParseException e2) {
3268
- // Fall-through to return NOT_A_NUMBER.
3269
- }
3270
- }
3271
- }
3272
- // One or more of the phone numbers we are trying to match is not a viable phone number.
3273
- return MatchType.NOT_A_NUMBER;
3274
- }
3275
-
3276
- /**
3277
- * Returns true if the number can be dialled from outside the region, or unknown. If the number
3278
- * can only be dialled from within the region, returns false. Does not check the number is a valid
3279
- * number. Note that, at the moment, this method does not handle short numbers.
3280
- * TODO: Make this method public when we have enough metadata to make it worthwhile.
3281
- *
3282
- * @param number the phone-number for which we want to know whether it is diallable from
3283
- * outside the region
3284
- */
3285
- // @VisibleForTesting
3286
- boolean canBeInternationallyDialled(PhoneNumber number) {
3287
- PhoneMetadata metadata = getMetadataForRegion(getRegionCodeForNumber(number));
3288
- if (metadata == null) {
3289
- // Note numbers belonging to non-geographical entities (e.g. +800 numbers) are always
3290
- // internationally diallable, and will be caught here.
3291
- return true;
3292
- }
3293
- String nationalSignificantNumber = getNationalSignificantNumber(number);
3294
- return !isNumberMatchingDesc(nationalSignificantNumber, metadata.noInternationalDialling);
3295
- }
3296
-
3297
- /**
3298
- * Returns true if the supplied region supports mobile number portability. Returns false for
3299
- * invalid, unknown or regions that don't support mobile number portability.
3300
- *
3301
- * @param regionCode the region for which we want to know whether it supports mobile number
3302
- * portability or not.
3303
- */
3304
- public boolean isMobileNumberPortableRegion(String regionCode) {
3305
- PhoneMetadata metadata = getMetadataForRegion(regionCode);
3306
- if (metadata == null) {
3307
- logger.log(Level.WARNING, "Invalid or unknown region code provided: " + regionCode);
3308
- return false;
3309
- }
3310
- return metadata.mobileNumberPortableRegion;
3311
- }
3312
- }