author | juh |
Wed, 10 Jul 2013 18:01:22 -0700 (2013-07-11) | |
changeset 18800 | e7fa560afcfb |
parent 11125 | 99b115114fa3 |
permissions | -rw-r--r-- |
9775 | 1 |
/* |
2 |
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 |
* |
|
5 |
* This code is free software; you can redistribute it and/or modify it |
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
|
7 |
* published by the Free Software Foundation. Oracle designates this |
|
8 |
* particular file as subject to the "Classpath" exception as provided |
|
9 |
* by Oracle in the LICENSE file that accompanied this code. |
|
10 |
* |
|
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that |
|
15 |
* accompanied this code). |
|
16 |
* |
|
17 |
* You should have received a copy of the GNU General Public License version |
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation, |
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 |
* |
|
21 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
22 |
* or visit www.oracle.com if you need additional information or have any |
|
23 |
* questions. |
|
24 |
*/ |
|
25 |
package sun.net; |
|
26 |
||
27 |
import java.util.Arrays; |
|
28 |
import java.util.HashMap; |
|
29 |
import java.util.HashSet; |
|
30 |
import java.util.List; |
|
31 |
import java.util.Map; |
|
32 |
import java.util.Set; |
|
33 |
||
34 |
/* |
|
35 |
* The naming tables listed below were gathered from publicly available data such as |
|
36 |
* the subdomain registration websites listed for each top-level domain by the Internet |
|
37 |
* Assigned Numbers Authority and the website of the Internet Corporation for Assigned Names |
|
38 |
* and Numbers as well as Wikipedia. |
|
39 |
*/ |
|
40 |
||
41 |
public class RegisteredDomain { |
|
42 |
||
43 |
// XX.AA |
|
44 |
private static Set<String> top1Set = new HashSet<String>(Arrays.asList("asia", "biz", "cat", "coop", |
|
45 |
"edu", "info", "gov", "jobs", "travel", "am", "aq", "ax", "cc", "cf", "cg", "ch", "cv", "cz", |
|
46 |
"de", "dj", "dk", "fm", "fo", "ga", "gd", "gf", "gl", "gm", "gq", "gs", "gw", "hm", |
|
47 |
"li", "lu", "md", "mh", "mil", "mobi", "mq", "ms", "ms", "ne", "nl", "nu", "si", |
|
48 |
"sm", "sr", "su", "tc", "td", "tf", "tg", "tk", "tm", "tv", "va", "vg", |
|
49 |
/* ae */ "xn--mgbaam7a8h", /* cn s */ "xn--fiqs8s", /* cn t */ "xn--fiqz9s", |
|
50 |
/* eg */ "xn--wgbh1c", /* hk */ "xn--j6w193g", /* jo */ "xn--mgbayh7gpa", |
|
51 |
/* lk */ "xn--fzc2c9e2c", /* ps */ "xn--ygbi2ammx", /* ru */ "xn--p1ai", |
|
52 |
/* qa */ "xn--wgbl6a", /* sa */ "xn--mgberp4a5d4ar", /* sg */ "xn--yfro4i67o", |
|
53 |
/* th */ "xn--o3cw4h", /* tn */ "xn--pgbs0dh", /* tw s */ "xn--kpry57d", |
|
54 |
/* tw */ "xn--kprw13d", /* sg tamil */ "xn--clchc0ea0b2g2a9gcd")); |
|
55 |
||
56 |
// common pattern: XX.AA or XX.GOV.AA |
|
57 |
private static Set<String> top2Set = new HashSet<String>(Arrays.asList("as", "bf", "cd", "cx", |
|
58 |
"ie", "lt", "mr", "tl")); |
|
59 |
||
60 |
// common pattern: XX.AA or XX.COM.AA or XX.EDU.AA or XX.NET.AA or XX.ORG.AA or XX.GOV.AA |
|
61 |
private static Set<String> top4Set = new HashSet<String>(Arrays.asList("af", "bm", "bs", "bt", |
|
62 |
"bz", "dm", "ky", "lb", "lr", "mo", "sc", "sl", "ws")); |
|
63 |
||
64 |
// AA or less than 3 other XX.BB.AA possible matches |
|
65 |
private static Set<String> top3Set = new HashSet<String>(Arrays.asList("ad", "aw", "be", "bw", |
|
66 |
"cl", "fi", "int", "io", "mc")); |
|
67 |
||
68 |
// AA.UK exceptions |
|
69 |
private static Set<String> ukSet = new HashSet<String>(Arrays.asList( "bl", "british-library", |
|
70 |
"jet", "nhs", "nls", "parliament", "mod", "police")); |
|
71 |
||
72 |
// AA.AR exceptions |
|
73 |
private static Set<String> arSet = new HashSet<String>(Arrays.asList( "argentina", "educ", |
|
74 |
"gobiernoelectronico", "nic", "promocion", "retina", "uba")); |
|
75 |
||
76 |
// AA.OM exceptions |
|
77 |
private static Set<String> omSet = new HashSet<String>(Arrays.asList("mediaphone", "nawrastelecom", |
|
78 |
"nawras", "omanmobile", "omanpost", "omantel", "rakpetroleum", "siemens", "songfest", |
|
79 |
"statecouncil", "shura", "peie", "omran", "omnic", "omanet", "oman", "muriya", "kom")); |
|
80 |
||
81 |
// any XX.BB.AA |
|
82 |
private static Set<String> top5Set = new HashSet<String>(Arrays.asList("au", "arpa", "bd", "bn", "ck", |
|
83 |
"cy", "er", "et", "fj", "fk", "gt", "gu", "il", "jm", "ke", "kh", "kw", |
|
84 |
"mm", "mt", "mz", "ni", "np", "nz", "pg", "sb", "sv", "tz", "uy", "ve", "ye", |
|
85 |
"za", "zm", "zw")); |
|
86 |
||
87 |
// XX.CC.BB.JP |
|
88 |
private static Set<String> jpSet = new HashSet<String>(Arrays.asList("aichi", "akita", "aomori", |
|
89 |
"chiba", "ehime", "fukui", "fukuoka", "fukushima", "gifu", "gunma", "hiroshima", "hokkaido", |
|
90 |
"hyogo", "ibaraki", "ishikawa", "iwate", "kagawa", "kagoshima", "kanagawa", "kawasaki", |
|
91 |
"kitakyushu", "kobe", "kochi", "kumamoto", "kyoto", "mie", "miyagi", "miyazaki", "nagano", |
|
92 |
"nagasaki", "nagoya", "nara", "niigata", "oita", "okayama", "okinawa", "osaka", "saga", |
|
93 |
"saitama", "sapporo", "sendai", "shiga", "shimane", "shizuoka", "tochigi", "tokushima", |
|
94 |
"tokyo", "tottori", "toyama", "wakayama", "yamagata", "yamaguchi", "yamanashi", "yokohama")); |
|
95 |
||
96 |
// CC.BB.JP exceptions |
|
97 |
private static Set<String> jp2Set = new HashSet<String>(Arrays.asList("metro.tokyo.jp", |
|
98 |
"pref.aichi.jp", "pref.akita.jp", "pref.aomori.jp", "pref.chiba.jp", "pref.ehime.jp", |
|
99 |
"pref.fukui.jp", "pref.fukuoka.jp", "pref.fukushima.jp", "pref.gifu.jp", "pref.gunma.jp", |
|
100 |
"pref.hiroshima.jp", "pref.hokkaido.jp", "pref.hyogo.jp", "pref.ibaraki.jp", "pref.ishikawa.jp", |
|
101 |
"pref.iwate.jp", "pref.kagawa.jp", "pref.kagoshima.jp", "pref.kanagawa.jp", "pref.kochi.jp", |
|
102 |
"pref.kumamoto.jp", "pref.kyoto.jp", "pref.mie.jp", "pref.miyagi.jp", "pref.miyazaki.jp", |
|
103 |
"pref.nagano.jp", "pref.nagasaki.jp", "pref.nara.jp", "pref.niigata.jp", "pref.oita.jp", |
|
104 |
"pref.okayama.jp", "pref.okinawa.jp", "pref.osaka.jp", "pref.saga.jp", "pref.saitama.jp", |
|
105 |
"pref.shiga.jp", "pref.shimane.jp", "pref.shizuoka.jp", "pref.tochigi.jp", "pref.tokushima.jp", |
|
106 |
"pref.tottori.jp", "pref.toyama.jp", "pref.wakayama.jp", "pref.yamagata.jp", "pref.yamaguchi.jp", |
|
107 |
"pref.yamanashi.jp", "city.chiba.jp", "city.fukuoka.jp", "city.hamamatsu.jp", "city.hiroshima.jp", "city.kawasaki.jp", |
|
108 |
"city.kitakyushu.jp", "city.kobe.jp", "city.kyoto.jp", "city.nagoya.jp", "city.niigata.jp", |
|
109 |
"city.okayama.jp", "city.osaka.jp", "city.sagamihara.jp", "city.saitama.jp", "city.sapporo.jp", "city.sendai.jp", |
|
110 |
"city.shizuoka.jp", "city.yokohama.jp")); |
|
111 |
||
112 |
private static Set<String> usStateSet = new HashSet<String>(Arrays.asList("ak", |
|
113 |
"al", "ar", "as", "az", "ca", "co", "ct", "dc", "de", "fl", "ga", "gu", "hi", "ia", |
|
114 |
"id", "il", "in", "ks", "ky", "la", "ma", "md", "me", "mi", "mn", "mo", "ms", "mt", |
|
115 |
"nc", "nd", "ne", "nh", "nj", "nm", "nv", "ny", "oh", "ok", "or", "pa", "pr", "ri", |
|
116 |
"sc", "sd", "tn", "tx", "ut", "vi", "vt", "va", "wa", "wi", "wv", "wy")); |
|
117 |
||
118 |
private static Set<String> usSubStateSet = new HashSet<String>(Arrays.asList("state", |
|
119 |
"lib", "k12", "cc", "tec", "gen", "cog", "mus", "dst")); |
|
120 |
||
11125
99b115114fa3
7117357: Warnings in sun.instrument, tools and other sun.* classes
alanb
parents:
9775
diff
changeset
|
121 |
private static Map<String,Set<String>> topMap = new HashMap<>(); |
99b115114fa3
7117357: Warnings in sun.instrument, tools and other sun.* classes
alanb
parents:
9775
diff
changeset
|
122 |
private static Map<String,Set<String>> top3Map = new HashMap<>(); |
9775 | 123 |
|
124 |
static { |
|
125 |
/* |
|
126 |
* XX.AA or XX.BB.AA |
|
127 |
*/ |
|
128 |
topMap.put("ac", new HashSet<String>(Arrays.asList("com", "co", "edu", "gov", "net", "mil", "org"))); |
|
129 |
topMap.put("ae", new HashSet<String>(Arrays.asList("co", "net", "org", "sch", "ac", "gov", "mil"))); |
|
130 |
topMap.put("aero", new HashSet<String>(Arrays.asList("accident-investigation", |
|
131 |
"accident-prevention", "aerobatic", "aeroclub", "aerodrome", "agents", "aircraft", |
|
132 |
"airline", "airport", "air-surveillance", "airtraffic", "air-traffic-control", |
|
133 |
"ambulance", "amusement", "association", "author", "ballooning", "broker", "caa", |
|
134 |
"cargo", "catering", "certification", "championship", "charter", "civilaviation", |
|
135 |
"club", "conference", "consultant", "consulting", "control", "council", "crew", |
|
136 |
"design", "dgca", "educator", "emergency", "engine", "engineer", "entertainment", |
|
137 |
"equipment", "exchange", "express", "federation", "flight", "freight", "fuel", |
|
138 |
"gliding", "government", "groundhandling", "group", "hanggliding", "homebuilt", |
|
139 |
"insurance", "journal", "journalist", "leasing", "logistics", "magazine", |
|
140 |
"maintenance", "marketplace", "media", "microlight", "modelling", "navigation", |
|
141 |
"parachuting", "paragliding", "passenger-association", "pilot", "press", "production", |
|
142 |
"recreation", "repbody", "res", "research", "rotorcraft", "safety", "scientist", |
|
143 |
"services", "show", "skydiving", "software", "student", "taxi", "trader", "trading", |
|
144 |
"trainer", "union", "workinggroup", "works" ))); |
|
145 |
topMap.put( "ag", new HashSet<String>(Arrays.asList("com", "org", "net", "co", "nom"))); |
|
146 |
topMap.put( "ai", new HashSet<String>(Arrays.asList("off", "com", "net", "org"))); |
|
147 |
topMap.put( "al", new HashSet<String>(Arrays.asList("com", "edu", "gov", "mil", "net", "org"))); |
|
148 |
topMap.put( "an", new HashSet<String>(Arrays.asList("com"))); |
|
149 |
topMap.put( "ao", new HashSet<String>(Arrays.asList("ed", "gv", "og", "co", "pb", "it"))); |
|
150 |
topMap.put( "at", new HashSet<String>(Arrays.asList("ac", "co", "gv", "or", "biz", "info", "priv"))); |
|
151 |
topMap.put( "az", new HashSet<String>(Arrays.asList("com", "net", "int", "gov", "org", "edu", "info", |
|
152 |
"pp", "mil", "name", "biz"))); |
|
153 |
topMap.put( "ba", new HashSet<String>(Arrays.asList("org", "net", "edu", "gov", "mil", "unbi", |
|
154 |
"unmo", "unsa", "untz", "unze", "co", "com", "rs"))); |
|
155 |
topMap.put( "bb", new HashSet<String>(Arrays.asList("biz", "com", "edu", "gov", "info", "net", "org", |
|
156 |
"store"))); |
|
157 |
topMap.put( "bg", new HashSet<String>(Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", |
|
158 |
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", |
|
159 |
"2", "3", "4", "5", "6", "7", "8", "9"))); |
|
160 |
topMap.put( "bh", new HashSet<String>(Arrays.asList("com", "info", "cc", "edu", "biz", "net", |
|
161 |
"org", "gov"))); |
|
162 |
topMap.put( "bi", new HashSet<String>(Arrays.asList("co", "com", "edu", "gov", "info", "or", "org"))); |
|
163 |
topMap.put( "bj", new HashSet<String>(Arrays.asList("asso", "barreau", "com", "edu", "gouv", "gov", "mil"))); |
|
164 |
topMap.put( "bo", new HashSet<String>(Arrays.asList("com", "edu", "gov", "gob", "int", "org", "net", |
|
165 |
"mil", "tv"))); |
|
166 |
topMap.put( "br", new HashSet<String>(Arrays.asList("adm", "adv", "agr", "am", "arq", "art", "ato", |
|
167 |
"b", "bio", "blog", "bmd", "cim", "cng", "cnt", "com", "coop", "ecn", "edu", "emp", "eng", |
|
168 |
"esp", "etc", "eti", "far", "flog", "fm", "fnd", "fot", "fst", "g12", "ggf", "gov", |
|
169 |
"imb", "ind", "inf", "jor", "jus", "lel", "mat", "med", "mil", "mus", "net", "nom", |
|
170 |
"not", "ntr", "odo", "org", "ppg", "pro", "psc", "psi", "qsl", "radio", "rec", "slg", |
|
171 |
"srv", "taxi", "teo", "tmp", "trd", "tur", "tv", "vet", "vlog", "wiki", "zlg"))); |
|
172 |
topMap.put( "bw", new HashSet<String>(Arrays.asList("co", "gov", "org"))); |
|
173 |
topMap.put( "by", new HashSet<String>(Arrays.asList("gov", "mil", "com", "of"))); |
|
174 |
topMap.put( "ca", new HashSet<String>(Arrays.asList("ab", "bc", "mb", "nb", "nf", |
|
175 |
"nl", "ns", "nt", "nu", "on", "pe", "qc", "sk", "yk", "gc"))); |
|
176 |
topMap.put( "ci", new HashSet<String>(Arrays.asList("org", "or", "com", "co", "edu", |
|
177 |
"ed", "ac", "net", "go", "asso", "xn--aroport-bya", "int", |
|
178 |
"presse", "md", "gouv"))); |
|
179 |
topMap.put( "com", new HashSet<String>(Arrays.asList("ad", "ar", "br", "cn", "de", "eu", "gb", |
|
180 |
"gr", "hu", "jpn", "kr", "no", "qc", "ru", "sa", "se", "uk", "us", "uy", "za"))); |
|
181 |
topMap.put( "cm", new HashSet<String>(Arrays.asList("co", "com", "gov", "net"))); |
|
182 |
topMap.put( "cn", new HashSet<String>(Arrays.asList("ac", "com", "edu", "gov", "net", |
|
183 |
"org", "mil", "xn--55qx5d", "xn--io0a7i", |
|
184 |
"ah", "bj", "cq", "fj", "gd", "gs", "gz", "gx", |
|
185 |
"ha", "hb", "he", "hi", "hl", "hn", "jl", "js", "jx", "ln", "nm", "nx", "qh", |
|
186 |
"sc", "sd", "sh", "sn", "sx", "tj", "xj", "xz", "yn", "zj", "hk", "mo", "tw"))); |
|
187 |
topMap.put( "co", new HashSet<String>(Arrays.asList("arts", "com", "edu", "firm", "gov", "info", |
|
188 |
"int", "mil", "net", "nom", "org", "rec", "web"))); |
|
189 |
topMap.put( "cr", new HashSet<String>(Arrays.asList("ac", "co", "ed", "fi", "go", "or", "sa"))); |
|
190 |
topMap.put( "cu", new HashSet<String>(Arrays.asList("com", "edu", "org", "net", "gov", "inf"))); |
|
191 |
topMap.put( "do", new HashSet<String>(Arrays.asList("com", "edu", "org", "net", "gov", "gob", |
|
192 |
"web", "art", "sld", "mil"))); |
|
193 |
topMap.put( "dz", new HashSet<String>(Arrays.asList("com", "org", "net", "gov", "edu", "asso", |
|
194 |
"pol", "art"))); |
|
195 |
topMap.put( "ec", new HashSet<String>(Arrays.asList("com", "info", "net", "fin", "k12", "med", |
|
196 |
"pro", "org", "edu", "gov", "gob", "mil"))); |
|
197 |
topMap.put( "ee", new HashSet<String>(Arrays.asList("edu", "gov", "riik", "lib", "med", "com", |
|
198 |
"pri", "aip", "org", "fie"))); |
|
199 |
topMap.put( "eg", new HashSet<String>(Arrays.asList("com", "edu", "eun", "gov", "mil", "name", |
|
200 |
"net", "org", "sci"))); |
|
201 |
topMap.put( "es", new HashSet<String>(Arrays.asList("com", "nom", "org", "gob", "edu"))); |
|
202 |
topMap.put( "eu", new HashSet<String>(Arrays.asList("europa"))); |
|
203 |
topMap.put( "fr", new HashSet<String>(Arrays.asList("com", "asso", "nom", "prd", "presse", |
|
204 |
"tm", "aeroport", "assedic", "avocat", "avoues", "cci", "chambagri", |
|
205 |
"chirurgiens-dentistes", "experts-comptables", "geometre-expert", "gouv", "greta", |
|
206 |
"huissier-justice", "medecin", "notaires", "pharmacien", "port", "veterinaire"))); |
|
207 |
topMap.put( "ge", new HashSet<String>(Arrays.asList("com", "edu", "gov", "org", "mil", "net", "pvt"))); |
|
208 |
topMap.put( "gg", new HashSet<String>(Arrays.asList("co", "org", "net", "sch", "gov"))); |
|
209 |
topMap.put( "gh", new HashSet<String>(Arrays.asList("com", "edu", "gov", "org", "mil"))); |
|
210 |
topMap.put( "gi", new HashSet<String>(Arrays.asList("com", "ltd", "gov", "mod", "edu", "org"))); |
|
211 |
topMap.put( "gn", new HashSet<String>(Arrays.asList("ac", "com", "edu", "gov", "org", "net"))); |
|
212 |
topMap.put( "gp", new HashSet<String>(Arrays.asList("com", "net", "mobi", "edu", "org", "asso"))); |
|
213 |
topMap.put( "gr", new HashSet<String>(Arrays.asList("com", "co", "net", "edu", "org", "gov", |
|
214 |
"mil", "mod", "sch"))); |
|
215 |
topMap.put( "gy", new HashSet<String>(Arrays.asList("co", "com", "net", "org", "edu", "gov"))); |
|
216 |
topMap.put( "hk", new HashSet<String>(Arrays.asList("com", "edu", "gov", "idv", "net", "org", |
|
217 |
/* com */ "xn--55qx5d", /* edu */ "xn--wcvs22d", /* gov */"xn--mxtq1m", |
|
218 |
/* idv */ "xn--gmqw5a", /* net */ "xn--od0alg", /*org*/ "xn--uc0atv"))); |
|
219 |
topMap.put( /* hk */ "xn--j6w193g", new HashSet<String>(Arrays.asList( |
|
220 |
/* com */ "xn--55qx5d", /* edu */ "xn--wcvs22d", /* gov */"xn--mxtq1m", |
|
221 |
/* idv */ "xn--gmqw5a", /* net */ "xn--od0alg", /*org*/ "xn--uc0atv"))); |
|
222 |
topMap.put( "hn", new HashSet<String>(Arrays.asList("com", "edu", "org", "net", "mil", "gob"))); |
|
223 |
topMap.put( "hr", new HashSet<String>(Arrays.asList("iz.hr", "from.hr", "name.hr", "com.hr"))); |
|
224 |
topMap.put( "ht", new HashSet<String>(Arrays.asList("com", "shop", "firm", "info", "adult", |
|
225 |
"net", "pro", "org", "med", "art", "coop", "pol", "asso", "edu", "rel", "gouv", "perso"))); |
|
226 |
topMap.put( "hu", new HashSet<String>(Arrays.asList("co", "info", "org", "priv", "sport", "tm", |
|
227 |
"2000", "agrar", "bolt", "casino", "city", "erotica", "erotika", "film", "forum", |
|
228 |
"games", "hotel", "ingatlan", "jogasz", "konyvelo", "lakas", "media", "news", "reklam", |
|
229 |
"sex", "shop", "suli", "szex", "tozsde", "utazas", "video"))); |
|
230 |
topMap.put( "id", new HashSet<String>(Arrays.asList("ac", "co", "go", "mil", "net", "or", "sch", |
|
231 |
"web"))); |
|
232 |
topMap.put( "im", new HashSet<String>(Arrays.asList("co.im", "com", "net.im", "gov.im", "org.im", |
|
233 |
"ac.im"))); |
|
234 |
topMap.put( "in", new HashSet<String>(Arrays.asList("co", "firm", "ernet", "net", "org", "gen", "ind", |
|
235 |
"nic", "ac", "edu", "res", "gov", "mil"))); |
|
236 |
topMap.put( "iq", new HashSet<String>(Arrays.asList("gov", "edu", "mil", "com", "org", "net" ))); |
|
237 |
topMap.put( "ir", new HashSet<String>(Arrays.asList("ac", "co", "gov", "id", "net", "org", "sch" |
|
238 |
))); |
|
239 |
topMap.put( "is", new HashSet<String>(Arrays.asList("net", "com", "edu", "gov", "org", "int"))); |
|
240 |
topMap.put( "it", new HashSet<String>(Arrays.asList("gov", "edu", "agrigento", "ag", "alessandria", |
|
241 |
"al", "ancona", "an", "aosta", "aoste", "ao", "arezzo", "ar", "ascoli-piceno", |
|
242 |
"ascolipiceno", "ap", "asti", "at", "avellino", "av", "bari", "ba", |
|
243 |
"andria-barletta-trani", "andriabarlettatrani", "trani-barletta-andria", |
|
244 |
"tranibarlettaandria", "barletta-trani-andria", "barlettatraniandria", |
|
245 |
"andria-trani-barletta", "andriatranibarletta", "trani-andria-barletta", |
|
246 |
"traniandriabarletta", "bt", "belluno", "bl", "benevento", "bn", "bergamo", "bg", |
|
247 |
"biella", "bi", "bologna", "bo", "bolzano", "bozen", "balsan", "alto-adige", |
|
248 |
"altoadige", "suedtirol", "bz", "brescia", "bs", "brindisi", "br", "cagliari", |
|
249 |
"ca", "caltanissetta", "cl", "campobasso", "cb", "carboniaiglesias", "carbonia-iglesias", |
|
250 |
"iglesias-carbonia", "iglesiascarbonia", "ci", "caserta", "ce", "catania", "ct", |
|
251 |
"catanzaro", "cz", "chieti", "ch", "como", "co", "cosenza", "cs", "cremona", "cr", |
|
252 |
"crotone", "kr", "cuneo", "cn", "dell-ogliastra", "dellogliastra", "ogliastra", "og", |
|
253 |
"enna", "en", "ferrara", "fe", "fermo", "fm", "firenze", "florence", "fi", "foggia", |
|
254 |
"fg", "forli-cesena", "forlicesena", "cesena-forli", "cesenaforli", "fc", "frosinone", |
|
255 |
"fr", "genova", "genoa", "ge", "gorizia", "go", "grosseto", "gr", "imperia", "im", |
|
256 |
"isernia", "is", "laquila", "aquila", "aq", "la-spezia", "laspezia", "sp", "latina", |
|
257 |
"lt", "lecce", "le", "lecco", "lc", "livorno", "li", "lodi", "lo", "lucca", "lu", |
|
258 |
"macerata", "mc", "mantova", "mn", "massa-carrara", "massacarrara", "carrara-massa", |
|
259 |
"carraramassa", "ms", "matera", "mt", "medio-campidano", "mediocampidano", |
|
260 |
"campidano-medio", "campidanomedio", "vs", "messina", "me", "milano", "milan", |
|
261 |
"mi", "modena", "mo", "monza", "monza-brianza", "monzabrianza", "monzaebrianza", |
|
262 |
"monzaedellabrianza", "monza-e-della-brianza", "mb", "napoli", "naples", "na", |
|
263 |
"novara", "no", "nuoro", "nu", "oristano", "or", "padova", "padua", "pd", "palermo", |
|
264 |
"pa", "parma", "pr", "pavia", "pv", "perugia", "pg", "pescara", "pe", "pesaro-urbino", |
|
265 |
"pesarourbino", "urbino-pesaro", "urbinopesaro", "pu", "piacenza", "pc", "pisa", |
|
266 |
"pi", "pistoia", "pt", "pordenone", "pn", "potenza", "pz", "prato", "po", "ragusa", |
|
267 |
"rg", "ravenna", "ra", "reggio-calabria", "reggiocalabria", "rc", "reggio-emilia", |
|
268 |
"reggioemilia", "re", "rieti", "ri", "rimini", "rn", "roma", "rome", "rm", "rovigo", |
|
269 |
"ro", "salerno", "sa", "sassari", "ss", "savona", "sv", "siena", "si", "siracusa", |
|
270 |
"sr", "sondrio", "so", "taranto", "ta", "tempio-olbia", "tempioolbia", "olbia-tempio", |
|
271 |
"olbiatempio", "ot", "teramo", "te", "terni", "tr", "torino", "turin", "to", |
|
272 |
"trapani", "tp", "trento", "trentino", "tn", "treviso", "tv", "trieste", "ts", |
|
273 |
"udine", "ud", "varese", "va", "venezia", "venice", "ve", "verbania", "vb", |
|
274 |
"vercelli", "vc", "verona", "vr", "vibo-valentia", "vibovalentia", "vv", "vicenza", |
|
275 |
"vi", "viterbo", "vt"))); |
|
276 |
topMap.put( "je", new HashSet<String>(Arrays.asList("co", "org", "net", "sch", "gov"))); |
|
277 |
topMap.put( "jo", new HashSet<String>(Arrays.asList("com", "org", "net", "edu", "sch", |
|
278 |
"gov", "mil", "name"))); |
|
279 |
topMap.put( "jp", new HashSet<String>(Arrays.asList("ac", "ad", "co", "ed", "go", "gr", "lg", |
|
280 |
"ne", "or"))); |
|
281 |
topMap.put( "kg", new HashSet<String>(Arrays.asList("org", "net", "com", "edu", "gov", "mil"))); |
|
282 |
topMap.put( "ki", new HashSet<String>(Arrays.asList("edu", "biz", "net", "org", "gov", |
|
283 |
"info", "com"))); |
|
284 |
topMap.put( "km", new HashSet<String>(Arrays.asList("org", "nom", "gov", "prd", "tm", "edu", |
|
285 |
"mil", "ass", "com", "coop", "asso", "presse", "medecin", "notaires", "pharmaciens", |
|
286 |
"veterinaire", "gouv"))); |
|
287 |
topMap.put( "kn", new HashSet<String>(Arrays.asList("net", "org", "edu", "gov"))); |
|
288 |
topMap.put( "kp", new HashSet<String>(Arrays.asList("com", "edu", "gov", "org", "rep", "tra"))); |
|
289 |
topMap.put( "kr", new HashSet<String>(Arrays.asList("ac", "co", "es", "go", "hs", "kg", "mil", |
|
290 |
"ms", "ne", "or", "pe", "re", "sc", "busan", "chungbuk", "chungnam", "daegu", |
|
291 |
"daejeon", "gangwon", "gwangju", "gyeongbuk", "gyeonggi", "gyeongnam", "incheon", |
|
292 |
"jeju", "jeonbuk", "jeonnam", "seoul", "ulsan"))); |
|
293 |
topMap.put( "kz", new HashSet<String>(Arrays.asList("org", "edu", "net", "gov", "mil", "com"))); |
|
294 |
topMap.put( "la", new HashSet<String>(Arrays.asList("int", "net", "info", "edu", "gov", "per", |
|
295 |
"com", "org", "c"))); |
|
296 |
topMap.put( "lc", new HashSet<String>(Arrays.asList("com", "net", "co", "org", "edu", "gov", |
|
297 |
"l.lc", "p.lc"))); |
|
298 |
topMap.put( "lk", new HashSet<String>(Arrays.asList("gov", "sch", "net", "int", "com", "org", |
|
299 |
"edu", "ngo", "soc", "web", "ltd", "assn", "grp", "hotel"))); |
|
300 |
topMap.put( "ls", new HashSet<String>(Arrays.asList("co", "gov", "ac", "org"))); |
|
301 |
topMap.put( "lv", new HashSet<String>(Arrays.asList("com", "edu", "gov", "org", "mil", |
|
302 |
"id", "net", "asn", "conf"))); |
|
303 |
topMap.put( "ly", new HashSet<String>(Arrays.asList("com", "net", "gov", "plc", "edu", "sch", |
|
304 |
"med", "org", "id"))); |
|
305 |
topMap.put( "ma", new HashSet<String>(Arrays.asList("co", "net", "gov", "org", "ac", "press"))); |
|
306 |
topMap.put( "me", new HashSet<String>(Arrays.asList("co", "net", "org", "edu", "ac", "gov", |
|
307 |
"its", "priv"))); |
|
308 |
topMap.put( "mg", new HashSet<String>(Arrays.asList("org", "nom", "gov", "prd", "tm", |
|
309 |
"edu", "mil", "com"))); |
|
310 |
topMap.put( "mk", new HashSet<String>(Arrays.asList("com", "org", "net", "edu", "gov", "inf", |
|
311 |
"name", "pro"))); |
|
312 |
topMap.put( "ml", new HashSet<String>(Arrays.asList("com", "edu", "gouv", "gov", "net", |
|
313 |
"org", "presse"))); |
|
314 |
topMap.put( "mn", new HashSet<String>(Arrays.asList("gov", "edu", "org"))); |
|
315 |
topMap.put( "mp", new HashSet<String>(Arrays.asList("gov", "co", "org"))); |
|
316 |
topMap.put( "mu", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "ac", |
|
317 |
"co", "or"))); |
|
318 |
topMap.put( "museum", new HashSet<String>(Arrays.asList("academy", "agriculture", "air", |
|
319 |
"airguard", "alabama", "alaska", "amber", "ambulance", "american", "americana", |
|
320 |
"americanantiques", "americanart", "amsterdam", "and", "annefrank", "anthro", |
|
321 |
"anthropology", "antiques", "aquarium", "arboretum", "archaeological", "archaeology", |
|
322 |
"architecture", "art", "artanddesign", "artcenter", "artdeco", "arteducation", |
|
323 |
"artgallery", "arts", "artsandcrafts", "asmatart", "assassination", "assisi", |
|
324 |
"association", "astronomy", "atlanta", "austin", "australia", "automotive", "aviation", |
|
325 |
"axis", "badajoz", "baghdad", "bahn", "bale", "baltimore", "barcelona", "baseball", |
|
326 |
"basel", "baths", "bauern", "beauxarts", "beeldengeluid", "bellevue", "bergbau", |
|
327 |
"berkeley", "berlin", "bern", "bible", "bilbao", "bill", "birdart", "birthplace", |
|
328 |
"bonn", "boston", "botanical", "botanicalgarden", "botanicgarden", "botany", |
|
329 |
"brandywinevalley", "brasil", "bristol", "british", "britishcolumbia", "broadcast", |
|
330 |
"brunel", "brussel", "brussels", "bruxelles", "building", "burghof", "bus", "bushey", |
|
331 |
"cadaques", "california", "cambridge", "can", "canada", "capebreton", "carrier", |
|
332 |
"cartoonart", "casadelamoneda", "castle", "castres", "celtic", "center", "chattanooga", |
|
333 |
"cheltenham", "chesapeakebay", "chicago", "children", "childrens", "childrensgarden", |
|
334 |
"chiropractic", "chocolate", "christiansburg", "cincinnati", "cinema", "circus", |
|
335 |
"civilisation", "civilization", "civilwar", "clinton", "clock", "coal", "coastaldefence", |
|
336 |
"cody", "coldwar", "collection", "colonialwilliamsburg", "coloradoplateau", "columbia", |
|
337 |
"columbus", "communication", "communications", "community", "computer", |
|
338 |
"computerhistory", "xn--comunicaes-v6a2o", "contemporary", "contemporaryart", |
|
339 |
"convent", "copenhagen", "corporation", "xn--correios-e-telecomunicaes-ghc29a", |
|
340 |
"corvette", "costume", "countryestate", "county", "crafts", "cranbrook", "creation", |
|
341 |
"cultural", "culturalcenter", "culture", "cyber", "cymru", "dali", "dallas", "database", |
|
342 |
"ddr", "decorativearts", "delaware", "delmenhorst", "denmark", "depot", "design", |
|
343 |
"detroit", "dinosaur", "discovery", "dolls", "donostia", "durham", "eastafrica", |
|
344 |
"eastcoast", "education", "educational", "egyptian", "eisenbahn", "elburg", |
|
345 |
"elvendrell", "embroidery", "encyclopedic", "england", "entomology", "environment", |
|
346 |
"environmentalconservation", "epilepsy", "essex", "estate", "ethnology", "exeter", |
|
347 |
"exhibition", "family", "farm", "farmequipment", "farmers", "farmstead", "field", |
|
348 |
"figueres", "filatelia", "film", "fineart", "finearts", "finland", "flanders", "florida", |
|
349 |
"force", "fortmissoula", "fortworth", "foundation", "francaise", "frankfurt", |
|
350 |
"franziskaner", "freemasonry", "freiburg", "fribourg", "frog", "fundacio", "furniture", |
|
351 |
"gallery", "garden", "gateway", "geelvinck", "gemological", "geology", "georgia", |
|
352 |
"giessen", "glas", "glass", "gorge", "grandrapids", "graz", "guernsey", "halloffame", |
|
353 |
"hamburg", "handson", "harvestcelebration", "hawaii", "health", "heimatunduhren", |
|
354 |
"hellas", "helsinki", "hembygdsforbund", "heritage", "histoire", "historical", |
|
355 |
"historicalsociety", "historichouses", "historisch", "historisches", "history", |
|
356 |
"historyofscience", "horology", "house", "humanities", "illustration", "imageandsound", |
|
357 |
"indian", "indiana", "indianapolis", "indianmarket", "intelligence", "interactive", |
|
358 |
"iraq", "iron", "isleofman", "jamison", "jefferson", "jerusalem", "jewelry", |
|
359 |
"jewish", "jewishart", "jfk", "journalism", "judaica", "judygarland", "juedisches", |
|
360 |
"juif", "karate", "karikatur", "kids", "koebenhavn", "koeln", "kunst", "kunstsammlung", |
|
361 |
"kunstunddesign", "labor", "labour", "lajolla", "lancashire", "landes", "lans", |
|
362 |
"xn--lns-qla", "larsson", "lewismiller", "lincoln", "linz", "living", "livinghistory", |
|
363 |
"localhistory", "london", "losangeles", "louvre", "loyalist", "lucerne", "luxembourg", |
|
364 |
"luzern", "mad", "madrid", "mallorca", "manchester", "mansion", "mansions", "manx", |
|
365 |
"marburg", "maritime", "maritimo", "maryland", "marylhurst", "media", "medical", |
|
366 |
"medizinhistorisches", "meeres", "memorial", "mesaverde", "michigan", "midatlantic", |
|
367 |
"military", "mill", "miners", "mining", "minnesota", "missile", "missoula", "modern", |
|
368 |
"moma", "money", "monmouth", "monticello", "montreal", "moscow", "motorcycle", "muenchen", |
|
369 |
"muenster", "mulhouse", "muncie", "museet", "museumcenter", "museumvereniging", "music", |
|
370 |
"national", "nationalfirearms", "nationalheritage", "nativeamerican", "naturalhistory", |
|
371 |
"naturalhistorymuseum", "naturalsciences", "nature", "naturhistorisches", |
|
372 |
"natuurwetenschappen", "naumburg", "naval", "nebraska", "neues", "newhampshire", |
|
373 |
"newjersey", "newmexico", "newport", "newspaper", "newyork", "niepce", "norfolk", |
|
374 |
"north", "nrw", "nuernberg", "nuremberg", "nyc", "nyny", "oceanographic", |
|
375 |
"oceanographique", "omaha", "online", "ontario", "openair", "oregon", "oregontrail", |
|
376 |
"otago", "oxford", "pacific", "paderborn", "palace", "paleo", "palmsprings", "panama", |
|
377 |
"paris", "pasadena", "pharmacy", "philadelphia", "philadelphiaarea", "philately", |
|
378 |
"phoenix", "photography", "pilots", "pittsburgh", "planetarium", "plantation", |
|
379 |
"plants", "plaza", "portal", "portland", "portlligat", "posts-and-telecommunications", |
|
380 |
"preservation", "presidio", "press", "project", "public", "pubol", "quebec", |
|
381 |
"railroad", "railway", "research", "resistance", "riodejaneiro", "rochester", "rockart", |
|
382 |
"roma", "russia", "saintlouis", "salem", "salvadordali", "salzburg", "sandiego", |
|
383 |
"sanfrancisco", "santabarbara", "santacruz", "santafe", "saskatchewan", "satx", |
|
384 |
"savannahga", "schlesisches", "schoenbrunn", "schokoladen", "school", "schweiz", |
|
385 |
"science", "scienceandhistory", "scienceandindustry", "sciencecenter", "sciencecenters", |
|
386 |
"science-fiction", "sciencehistory", "sciences", "sciencesnaturelles", "scotland", |
|
387 |
"seaport", "settlement", "settlers", "shell", "sherbrooke", "sibenik", "silk", "ski", |
|
388 |
"skole", "society", "sologne", "soundandvision", "southcarolina", "southwest", "space", |
|
389 |
"spy", "square", "stadt", "stalbans", "starnberg", "state", "stateofdelaware", |
|
390 |
"station", "steam", "steiermark", "stjohn", "stockholm", "stpetersburg", "stuttgart", |
|
391 |
"suisse", "surgeonshall", "surrey", "svizzera", "sweden", "sydney", "tank", "tcm", |
|
392 |
"technology", "telekommunikation", "television", "texas", "textile", "theater", |
|
393 |
"time", "timekeeping", "topology", "torino", "touch", "town", "transport", "tree", |
|
394 |
"trolley", "trust", "trustee", "uhren", "ulm", "undersea", "university", "usa", |
|
395 |
"usantiques", "usarts", "uscountryestate", "usculture", "usdecorativearts", "usgarden", |
|
396 |
"ushistory", "ushuaia", "uslivinghistory", "utah", "uvic", "valley", "vantaa", |
|
397 |
"versailles", "viking", "village", "virginia", "virtual", "virtuel", "vlaanderen", |
|
398 |
"volkenkunde", "wales", "wallonie", "war", "washingtondc", "watchandclock", |
|
399 |
"watch-and-clock", "western", "westfalen", "whaling", "wildlife", "williamsburg", |
|
400 |
"windmill", "workshop", "york", "yorkshire", "yosemite", "youth", "zoological", |
|
401 |
"zoology", "xn--9dbhblg6di", "xn--h1aegh"))); |
|
402 |
topMap.put( "mv", new HashSet<String>(Arrays.asList("aero", "biz", "com", "coop", "edu", "gov", |
|
403 |
"info", "int", "mil", "museum", "name", "net", "org", "pro"))); |
|
404 |
topMap.put( "mw", new HashSet<String>(Arrays.asList("ac", "biz", "co", "com", "coop", "edu", |
|
405 |
"gov", "int", "museum", "net", "org"))); |
|
406 |
topMap.put( "mx", new HashSet<String>(Arrays.asList("com", "org", "gob", "edu", "net"))); |
|
407 |
topMap.put( "my", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu", |
|
408 |
"mil", "name", "sch"))); |
|
409 |
topMap.put( "na", new HashSet<String>(Arrays.asList("co", "com", "org", "edu", "edunet", "net", |
|
410 |
"alt", "biz", "info"))); |
|
411 |
topMap.put( "nc", new HashSet<String>(Arrays.asList("asso", "nom"))); |
|
412 |
topMap.put( "net", new HashSet<String>(Arrays.asList("gb", "se", "uk", "za"))); |
|
413 |
topMap.put( "ng", new HashSet<String>(Arrays.asList("name", "sch", "mil", "mobi", "com", |
|
414 |
"edu", "gov", "net", "org"))); |
|
415 |
topMap.put( "nf", new HashSet<String>(Arrays.asList("com", "net", "per", "rec", "web", |
|
416 |
"arts", "firm", "info", "other", "store"))); |
|
417 |
topMap.put( "no", new HashSet<String>(Arrays.asList("fhs", "vgs", "fylkesbibl", "folkebibl", |
|
418 |
"museum", "idrett", "priv", "mil", "stat", "dep", "kommune", "herad", "aa", |
|
419 |
"ah", "bu", "fm", "hl", "hm", "jan-mayen", "mr", "nl", "nt", "of", "ol", "oslo", |
|
420 |
"rl", "sf", "st", "svalbard", "tm", "tr", "va", "vf", "akrehamn", |
|
421 |
"xn--krehamn-dxa", "algard", "xn--lgrd-poac", "arna", "brumunddal", |
|
422 |
"bryne", "bronnoysund", "xn--brnnysund-m8ac", "drobak", |
|
423 |
"xn--drbak-wua", "egersund", "fetsund", "floro", "xn--flor-jra", |
|
424 |
"fredrikstad", "hokksund", "honefoss", "xn--hnefoss-q1a", |
|
425 |
"jessheim", "jorpeland", "xn--jrpeland-54a", "kirkenes", "kopervik", |
|
426 |
"krokstadelva", "langevag", "xn--langevg-jxa", "leirvik", "mjondalen", |
|
427 |
"xn--mjndalen-64a", "mo-i-rana", "mosjoen", "xn--mosjen-eya", |
|
428 |
"nesoddtangen", "orkanger", "osoyro", "xn--osyro-wua", |
|
429 |
"raholt", "xn--rholt-mra", "sandnessjoen", "xn--sandnessjen-ogb", |
|
430 |
"skedsmokorset", "slattum", "spjelkavik", "stathelle", "stavern", "stjordalshalsen", |
|
431 |
"xn--stjrdalshalsen-sqb", "tananger", "tranby", "vossevangen", "tranby", |
|
432 |
"vossevangen", "afjord", "xn--fjord-lra", "agdenes", "al", |
|
433 |
"xn--l-1fa", "alesund", "xn--lesund-hua", |
|
434 |
"alstahaug", "alta", "xn--lt-liac", "alaheadju", |
|
435 |
"xn--laheadju-7ya", "alvdal", "amli", "xn--mli-tla", |
|
436 |
"amot", "xn--mot-tla", "andebu", "andoy", "xn--andy-ira", |
|
437 |
"andasuolo", "ardal", "xn--rdal-poa", "aremark", "arendal", |
|
438 |
"xn--s-1fa", "aseral", "xn--seral-lra", |
|
439 |
"asker", "askim", "askvoll", "askoy", "xn--asky-ira", |
|
440 |
"asnes", "xn--snes-poa", "audnedaln", "aukra", "aure", "aurland", |
|
441 |
"aurskog-holand", "xn--aurskog-hland-jnb", |
|
442 |
"austevoll", "austrheim", "averoy", "xn--avery-yua", |
|
443 |
"balestrand", "ballangen", "balat", "xn--blt-elab", |
|
444 |
"balsfjord", "bahccavuotna", "xn--bhccavuotna-k7a", |
|
445 |
"bamble", "bardu", "beardu", "beiarn", "bajddar", "xn--bjddar-pta", |
|
446 |
"baidar", "xn--bidr-5nac", "berg", "bergen", "berlevag", "xn--berlevg-jxa", |
|
447 |
"bearalvahki", "xn--bearalvhki-y4a", "bindal", "birkenes", "bjarkoy", |
|
448 |
"xn--bjarky-fya", "bjerkreim", "bjugn", "bodo", "xn--bod-2na", |
|
449 |
"badaddja", "xn--bdddj-mrabd", "budejju", "bokn", |
|
450 |
"bremanger", "bronnoy", "xn--brnny-wuac", "bygland", |
|
451 |
"bykle", "barum", "xn--brum-voa", "bievat", "xn--bievt-0qa", |
|
452 |
"bomlo", "xn--bmlo-gra", "batsfjord", "xn--btsfjord-9za", "bahcavuotna", |
|
453 |
"xn--bhcavuotna-s4a", "dovre", "drammen", "drangedal", "dyroy", |
|
454 |
"xn--dyry-ira", "donna", "xn--dnna-gra", |
|
455 |
"eid", "eidfjord", "eidsberg", "eidskog", "eidsvoll", "eigersund", "elverum", |
|
456 |
"enebakk", "engerdal", "etne", "etnedal", "evenes", "evenassi", |
|
457 |
"xn--eveni-0qa01ga", "evje-og-hornnes", "farsund", "fauske", |
|
458 |
"fuossko", "fuoisku", "fedje", "fet", "finnoy", "xn--finny-yua", |
|
459 |
"fitjar", "fjaler", "fjell", "flakstad", "flatanger", "flekkefjord", "flesberg", |
|
460 |
"flora", "fla", "xn--fl-zia", "folldal", "forsand", "fosnes", "frei", |
|
461 |
"frogn", "froland", "frosta", "frana", "xn--frna-woa", |
|
462 |
"froya", "xn--frya-hra", "fusa", "fyresdal", "forde", |
|
463 |
"xn--frde-gra", "gamvik", "gangaviika", "xn--ggaviika-8ya47h", |
|
464 |
"gaular", "gausdal", "gildeskal", "xn--gildeskl-g0a", |
|
465 |
"giske", "gjemnes", "gjerdrum", "gjerstad", "gjesdal", "gjovik", |
|
466 |
"xn--gjvik-wua", "gloppen", "gol", "gran", "grane", "granvin", |
|
467 |
"gratangen", "grimstad", "grong", "kraanghke", "xn--kranghke-b0a", |
|
468 |
"grue", "gulen", "hadsel", "halden", "halsa", "hamar", "hamaroy", "habmer", |
|
469 |
"xn--hbmer-xqa", "hapmir", "xn--hpmir-xqa", |
|
470 |
"hammerfest", "hammarfeasta", "xn--hmmrfeasta-s4ac", |
|
471 |
"haram", "hareid", "harstad", "hasvik", "aknoluokta", "xn--koluokta-7ya57h", |
|
472 |
"hattfjelldal", "aarborte", "haugesund", "hemne", "hemnes", "hemsedal", |
|
473 |
"hitra", "hjartdal", "hjelmeland", |
|
474 |
"hobol", "xn--hobl-ira", "hof", "hol", "hole", "holmestrand", "holtalen", |
|
475 |
"xn--holtlen-hxa", "hornindal", "horten", "hurdal", "hurum", "hvaler", |
|
476 |
"hyllestad", "hagebostad", "xn--hgebostad-g3a", "hoyanger", |
|
477 |
"xn--hyanger-q1a", "hoylandet", "xn--hylandet-54a", |
|
478 |
"ha", "xn--h-2fa", "ibestad", "inderoy", "xn--indery-fya", |
|
479 |
"iveland", "jevnaker", "jondal", "jolster", "xn--jlster-bya", |
|
480 |
"karasjok", "karasjohka", "xn--krjohka-hwab49j", |
|
481 |
"karlsoy", "galsa", "xn--gls-elac", "karmoy", |
|
482 |
"xn--karmy-yua", "kautokeino", "guovdageaidnu", "klepp", "klabu", |
|
483 |
"xn--klbu-woa", "kongsberg", "kongsvinger", "kragero", "xn--krager-gya", |
|
484 |
"kristiansand", "kristiansund", "krodsherad", "xn--krdsherad-m8a", |
|
485 |
"kvalsund", "rahkkeravju", "xn--rhkkervju-01af", |
|
486 |
"kvam", "kvinesdal", "kvinnherad", "kviteseid", "kvitsoy", "xn--kvitsy-fya", |
|
487 |
"kvafjord", "xn--kvfjord-nxa", "giehtavuoatna", "kvanangen", |
|
488 |
"xn--kvnangen-k0a", "navuotna", "xn--nvuotna-hwa", |
|
489 |
"kafjord", "xn--kfjord-iua", "gaivuotna", "xn--givuotna-8ya", |
|
490 |
"larvik", "lavangen", "lavagis", "loabat", "xn--loabt-0qa", |
|
491 |
"lebesby", "davvesiida", "leikanger", "leirfjord", "leka", "leksvik", "lenvik", |
|
492 |
"leangaviika", "xn--leagaviika-52b", "lesja", "levanger", "lier", "lierne", |
|
493 |
"lillehammer", "lillesand", "lindesnes", "lindas", "xn--linds-pra", |
|
494 |
"lom", "loppa", "lahppi", "xn--lhppi-xqa", "lund", "lunner", "luroy", |
|
495 |
"xn--lury-ira", "luster", "lyngdal", "lyngen", "ivgu", "lardal", "lerdal", |
|
496 |
"xn--lrdal-sra", "lodingen", "xn--ldingen-q1a", "lorenskog", |
|
497 |
"xn--lrenskog-54a", "loten", "xn--lten-gra", "malvik", |
|
498 |
"masoy", "xn--msy-ula0h", "muosat", "xn--muost-0qa", |
|
499 |
"mandal", "marker", "marnardal", "masfjorden", "meland", "meldal", "melhus", |
|
500 |
"meloy", "xn--mely-ira", "meraker", "xn--merker-kua", "moareke", |
|
501 |
"xn--moreke-jua", "midsund", "midtre-gauldal", "modalen", "modum", |
|
502 |
"molde", "moskenes", "moss", "mosvik", "malselv", "xn--mlselv-iua", |
|
503 |
"malatvuopmi", "xn--mlatvuopmi-s4a", "namdalseid", "aejrie", "namsos", |
|
504 |
"namsskogan", "naamesjevuemie", "xn--nmesjevuemie-tcba", |
|
505 |
"laakesvuemie", "nannestad", "narvik", "narviika", "naustdal", "nedre-eiker", |
|
506 |
"nesna", "nesodden", "nesseby", "unjarga", "xn--unjrga-rta", "nesset", |
|
507 |
"nissedal", "nittedal", "nord-aurdal", "nord-fron", "nord-odal", "norddal", |
|
508 |
"nordkapp", "davvenjarga", "xn--davvenjrga-y4a", "nordre-land", |
|
509 |
"nordreisa", "raisa", "xn--risa-5na", "nore-og-uvdal", "notodden", "naroy", |
|
510 |
"xn--nry-yla5g", "notteroy", "xn--nttery-byae", |
|
511 |
"odda", "oksnes", "xn--ksnes-uua", "oppdal", "oppegard", |
|
512 |
"xn--oppegrd-ixa", "orkdal", "orland", "xn--rland-uua", |
|
513 |
"orskog", "xn--rskog-uua", "orsta", "xn--rsta-fra", |
|
514 |
"os.hedmark", "os.hordaland", "osen", "osteroy", "xn--ostery-fya", |
|
515 |
"ostre-toten", "xn--stre-toten-zcb", "overhalla", "ovre-eiker", |
|
516 |
"xn--vre-eiker-k8a", "oyer", "xn--yer-zna", |
|
517 |
"oygarden", "xn--ygarden-p1a", "oystre-slidre", "xn--ystre-slidre-ujb", |
|
518 |
"porsanger", "porsangu", "xn--porsgu-sta26f", "porsgrunn", |
|
519 |
"radoy", "xn--rady-ira", "rakkestad", "rana", "ruovat", "randaberg", |
|
520 |
"rauma", "rendalen", "rennebu", "rennesoy", "xn--rennesy-v1a", |
|
521 |
"rindal", "ringebu", "ringerike", "ringsaker", "rissa", "risor", |
|
522 |
"xn--risr-ira", "roan", "rollag", "rygge", "ralingen", "xn--rlingen-mxa", |
|
523 |
"rodoy", "xn--rdy-0nab", "romskog", "xn--rmskog-bya", |
|
524 |
"roros", "xn--rros-gra", "rost", "xn--rst-0na", |
|
525 |
"royken", "xn--ryken-vua", "royrvik", "xn--ryrvik-bya", |
|
526 |
"rade", "xn--rde-ula", "salangen", "siellak", "saltdal", "salat", |
|
527 |
"xn--slt-elab", "xn--slat-5na", "samnanger", |
|
528 |
"sandefjord", "sandnes", "sandoy", "xn--sandy-yua", "sarpsborg", |
|
529 |
"sauda", "sauherad", "sel", "selbu", "selje", "seljord", "sigdal", "siljan", |
|
530 |
"sirdal", "skaun", "skedsmo", "ski", "skien", "skiptvet", "skjervoy", |
|
531 |
"xn--skjervy-v1a", "skierva", "xn--skierv-uta", |
|
532 |
"skjak", "xn--skjk-soa", "skodje", "skanland", "xn--sknland-fxa", |
|
533 |
"skanit", "xn--sknit-yqa", "smola", "xn--smla-hra", |
|
534 |
"snillfjord", "snasa", "xn--snsa-roa", "snoasa", "snaase", |
|
535 |
"xn--snase-nra", "sogndal", "sokndal", "sola", "solund", "songdalen", |
|
536 |
"sortland", "spydeberg", "stange", "stavanger", "steigen", "steinkjer", |
|
537 |
"stjordal", "xn--stjrdal-s1a", "stokke", "stor-elvdal", "stord", "stordal", |
|
538 |
"storfjord", "omasvuotna", "strand", "stranda", "stryn", "sula", "suldal", |
|
539 |
"sund", "sunndal", "surnadal", "sveio", "svelvik", "sykkylven", "sogne", |
|
540 |
"xn--sgne-gra", "somna", "xn--smna-gra", "sondre-land", |
|
541 |
"xn--sndre-land-0cb", "sor-aurdal", "xn--sr-aurdal-l8a", |
|
542 |
"sor-fron", "xn--sr-fron-q1a", "sor-odal", "xn--sr-odal-q1a", |
|
543 |
"sor-varanger", "xn--sr-varanger-ggb", "matta-varjjat", |
|
544 |
"xn--mtta-vrjjat-k7af", "sorfold", "xn--srfold-bya", |
|
545 |
"sorreisa", "xn--srreisa-q1a", "sorum", "xn--srum-gra", |
|
546 |
"tana", "deatnu", "time", "tingvoll", "tinn", "tjeldsund", "dielddanuorri", |
|
547 |
"tjome", "xn--tjme-hra", "tokke", "tolga", "torsken", "tranoy", |
|
548 |
"xn--trany-yua", "tromso", "xn--troms-zua", "tromsa", "romsa", |
|
549 |
"trondheim", "troandin", "trysil", "trana", "xn--trna-woa", |
|
550 |
"trogstad", "xn--trgstad-r1a", "tvedestrand", "tydal", "tynset", |
|
551 |
"tysfjord", "divtasvuodna", "divttasvuotna", "tysnes", "tysvar", |
|
552 |
"xn--tysvr-vra", "tonsberg", "xn--tnsberg-q1a", |
|
553 |
"ullensaker", "ullensvang", "ulvik", "utsira", "vadso", "xn--vads-jra", |
|
554 |
"cahcesuolo", "xn--hcesuolo-7ya35b", "vaksdal", "valle", "vang", |
|
555 |
"vanylven", "vardo", "xn--vard-jra", "varggat", "xn--vrggt-xqad", |
|
556 |
"vefsn", "vaapste", "vega", "vegarshei", "xn--vegrshei-c0a", "vennesla", |
|
557 |
"verdal", "verran", "vestby", "vestnes", "vestre-slidre", "vestre-toten", |
|
558 |
"vestvagoy", "xn--vestvgy-ixa6o", "vevelstad", "vik", "vikna", |
|
559 |
"vindafjord", "volda", "voss", "varoy", "xn--vry-yla5g", |
|
560 |
"vagan", "xn--vgan-qoa", "voagat", "vagsoy", "xn--vgsy-qoa0j", |
|
561 |
"vaga", "xn--vg-yiab"))); |
|
562 |
||
563 |
topMap.put( "nr", new HashSet<String>(Arrays.asList("biz", "info", "gov", "edu", "org", |
|
564 |
"net", "com", "co"))); |
|
565 |
topMap.put( "pa", new HashSet<String>(Arrays.asList("ac", "gob", "com", "org", |
|
566 |
"sld", "edu", "net", "ing", "abo", "med", "nom"))); |
|
567 |
topMap.put( "pe", new HashSet<String>(Arrays.asList("edu", "gob", "nom", "mil", "org", "com", |
|
568 |
"net", "sld"))); |
|
569 |
topMap.put( "pf", new HashSet<String>(Arrays.asList( "com"))); |
|
570 |
topMap.put( "ph", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu", "ngo", "mil"))); |
|
571 |
topMap.put( "pk", new HashSet<String>(Arrays.asList("com", "net", "edu", "org", "fam", "biz", |
|
572 |
"web", "gov", "gob", "gok", "gon", "gop", "gos", "gog", "gkp", "info"))); |
|
573 |
topMap.put( "pl", new HashSet<String>(Arrays.asList("aid", "agro", "atm", "auto", "biz", "com", |
|
574 |
"edu", "gmina", "gsm", "info", "mail", "miasta", "media", "mil", "net", "nieruchomosci", |
|
575 |
"nom", "org", "pc", "powiat", "priv", "realestate", "rel", "sex", "shop", "sklep", |
|
576 |
"sos", "szkola", "targi", "tm", "tourism", "travel", "turystyka", "art", |
|
577 |
"gov", "ngo", "augustow", "babia-gora", "bedzin", "beskidy", |
|
578 |
"bialowieza", "bialystok", "bielawa", "bieszczady", "boleslawiec", "bydgoszcz", |
|
579 |
"bytom", "cieszyn", "czeladz", "czest", "dlugoleka", "elblag", "elk", "glogow", |
|
580 |
"gniezno", "gorlice", "grajewo", "ilawa", "jaworzno", "jelenia-gora", "jgora", |
|
581 |
"kalisz", "kazimierz-dolny", "karpacz", "kartuzy", "kaszuby", "katowice", "kepno", |
|
582 |
"ketrzyn", "klodzko", "kobierzyce", "kolobrzeg", "konin", "konskowola", "kutno", |
|
583 |
"lapy", "lebork", "legnica", "lezajsk", "limanowa", "lomza", "lowicz", "lubin", |
|
584 |
"lukow", "malbork", "malopolska", "mazowsze", "mazury", "mielec", "mielno", "mragowo", |
|
585 |
"naklo", "nowaruda", "nysa", "olawa", "olecko", "olkusz", "olsztyn", "opoczno", |
|
586 |
"opole", "ostroda", "ostroleka", "ostrowiec", "ostrowwlkp", "pila", "pisz", "podhale", |
|
587 |
"podlasie", "polkowice", "pomorze", "pomorskie", "prochowice", "pruszkow", "przeworsk", |
|
588 |
"pulawy", "radom", "rawa-maz", "rybnik", "rzeszow", "sanok", "sejny", "siedlce", |
|
589 |
"slask", "slupsk", "sosnowiec", "stalowa-wola", "skoczow", "starachowice", "stargard", |
|
590 |
"suwalki", "swidnica", "swiebodzin", "swinoujscie", "szczecin", "szczytno", "tarnobrzeg", |
|
591 |
"tgory", "turek", "tychy", "ustka", "walbrzych", "warmia", "warszawa", "waw", |
|
592 |
"wegrow", "wielun", "wlocl", "wloclawek", "wodzislaw", "wolomin", "wroclaw", |
|
593 |
"zachpomor", "zagan", "zarow", "zgora", "zgorzelec", "gda", "gdansk", |
|
594 |
"krakow", "poznan", "wroc", "co", |
|
595 |
"lodz", "lublin", "torun"))); |
|
596 |
topMap.put( "pn", new HashSet<String>(Arrays.asList("gov", "co", "org", "edu", "net"))); |
|
597 |
topMap.put( "pr", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu", "isla", |
|
598 |
"pro", "biz", "info", "name", "est", "prof", "ac", "gobierno"))); |
|
599 |
topMap.put( "pro", new HashSet<String>(Arrays.asList("aca", "bar", "cpa", "jur", "law", |
|
600 |
"med", "eng"))); |
|
601 |
topMap.put( "ps", new HashSet<String>(Arrays.asList("edu", "gov", "sec", "plo", "com", "org", "net"))); |
|
602 |
topMap.put( "pt", new HashSet<String>(Arrays.asList("net", "gov", "org", "edu", "int", "publ", |
|
603 |
"com", "nome"))); |
|
604 |
topMap.put( "pw", new HashSet<String>(Arrays.asList("co", "ne", "or", "ed", "go", "belau"))); |
|
605 |
topMap.put( "qa", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu", "mil"))); |
|
606 |
topMap.put( "re", new HashSet<String>(Arrays.asList("com", "asso", "nom"))); |
|
607 |
topMap.put( "ro", new HashSet<String>(Arrays.asList("com", "org", "tm", "nt", "nom", "info", |
|
608 |
"rec", "arts", "firm", "store", "www"))); |
|
609 |
topMap.put( "rs", new HashSet<String>(Arrays.asList("co", "org", "edu", "ac", "gov", "in"))); |
|
610 |
topMap.put( "ru", new HashSet<String>(Arrays.asList("ac", "com", "edu", "int", "net", "org", |
|
611 |
"pp", "adygeya", "altai", "amur", "arkhangelsk", "astrakhan", "bashkiria", |
|
612 |
"belgorod", "bir", "bryansk", "buryatia", "cap", "cbg", "chel", "chelyabinsk", "chita", |
|
613 |
"chukotka", "dagestan", "e-burg", "grozny", "irkutsk", |
|
614 |
"ivanovo", "izhevsk", "jar", "joshkar-ola", "kalmykia", "kaluga", "kamchatka", |
|
615 |
"karelia", "kazan", "kchr", "kemerovo", "khabarovsk", "khakassia", "khv", "kirov", |
|
616 |
"koenig", "komi", "kostroma", "krasnoyarsk", "kuban", "kurgan", "kursk", "lipetsk", |
|
617 |
"magadan", "mari", "mari-el", "marine", "mordovia", "mosreg", "msk", "murmansk", |
|
618 |
"nalchik", "nnov", "nov", "novosibirsk", "nsk", "omsk", "orenburg", "oryol", |
|
619 |
"palana", "penza", "perm", "pskov", "ptz", "rnd", "ryazan", "sakhalin", "samara", |
|
620 |
"saratov", "simbirsk", "smolensk", "spb", "stavropol", "stv", "surgut", "tambov", |
|
621 |
"tatarstan", "tom", "tomsk", "tsaritsyn", "tsk", "tula", "tuva", "tver", "tyumen", |
|
622 |
"udm", "udmurtia", "ulan-ude", "vladikavkaz", "vladimir", "vladivostok", "volgograd", |
|
623 |
"vologda", "voronezh", "vrn", "vyatka", "yakutia", "yamal", "yaroslavl", |
|
624 |
"yekaterinburg", "yuzhno-sakhalinsk", "amursk", "baikal", "cmw", "fareast", |
|
625 |
"jamal", "kms", "k-uralsk", "kustanai", "kuzbass", "magnitka", "mytis", |
|
626 |
"nakhodka", "nkz", "norilsk", "oskol", "pyatigorsk", "rubtsovsk", "snz", "syzran", |
|
627 |
"vdonsk", "zgrad", "gov", "mil", "test"))); |
|
628 |
topMap.put( "rw", new HashSet<String>(Arrays.asList("gov", "net", "edu", "ac", "com", "co", |
|
629 |
"int", "mil", "gouv"))); |
|
630 |
topMap.put( "sa", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "med", "pub", |
|
631 |
"edu", "sch"))); |
|
632 |
topMap.put( "sd", new HashSet<String>(Arrays.asList("com", "net", "org", "edu", "med", "gov", |
|
633 |
"info", "tv"))); |
|
634 |
topMap.put( "se", new HashSet<String>(Arrays.asList("a", "ac", "b", "bd", "brand", "c", "d", |
|
635 |
"e", "f", "fh", "fhsk", "fhv", "g", "h", "i", "k", "komforb", "kommunalforbund", |
|
636 |
"komvux", "l", "lanarb", "lanbib", "m", "n", "naturbruksgymn", "o", "org", "p", "parti", |
|
637 |
"pp", "press", "r", "s", "sshn", "t", "tm", "u", "w", "x", "y", "z"))); |
|
638 |
topMap.put( "sg", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu", "per"))); |
|
639 |
topMap.put( "sh", new HashSet<String>(Arrays.asList("co", "com", "net", "org", "gov", "edu", "nom"))); |
|
640 |
topMap.put( "sk", new HashSet<String>(Arrays.asList("gov", "edu"))); |
|
641 |
topMap.put( "sn", new HashSet<String>(Arrays.asList("art", "com", "edu", "gouv", "org", "perso", |
|
642 |
"univ"))); |
|
643 |
topMap.put( "so", new HashSet<String>(Arrays.asList("com", "net", "org"))); |
|
644 |
topMap.put( "sr", new HashSet<String>(Arrays.asList("co", "com", "consulado", "edu", "embaixada", |
|
645 |
"gov", "mil", "net", "org", "principe", "saotome", "store"))); |
|
646 |
topMap.put( "sy", new HashSet<String>(Arrays.asList("edu", "gov", "net", "mil", "com", "org", "news"))); |
|
647 |
topMap.put( "sz", new HashSet<String>(Arrays.asList("co", "ac", "org"))); |
|
648 |
topMap.put( "th", new HashSet<String>(Arrays.asList("ac", "co", "go", "in", "mi", "net", "or"))); |
|
649 |
topMap.put( "tj", new HashSet<String>(Arrays.asList("ac", "biz", "co", "com", "edu", "go", "gov", |
|
650 |
"int", "mil", "name", "net", "nic", "org", "test", "web"))); |
|
651 |
topMap.put( "tn", new HashSet<String>(Arrays.asList("com", "ens", "fin", "gov", "ind", "intl", |
|
652 |
"nat", "net", "org", "info", "perso", "tourism", "edunet", "rnrt", "rns", "rnu", |
|
653 |
"mincom", "agrinet", "defense", "turen"))); |
|
654 |
topMap.put( "to", new HashSet<String>(Arrays.asList("gov"))); |
|
655 |
topMap.put( "tt", new HashSet<String>(Arrays.asList("co", "com", "org", "net", "biz", "info", |
|
656 |
"pro", "int", "coop", "jobs", "mobi", "travel", "museum", "aero", "name", "gov", |
|
657 |
"edu", "cat", "tel", "mil"))); |
|
658 |
topMap.put( "tw", new HashSet<String>(Arrays.asList("edu", "gov", "mil", "com", "net", "org", |
|
659 |
"idv", "game", "ebiz", "club", "xn--zf0ao64a", "xn--uc0atv", "xn--czrw28b"))); |
|
660 |
topMap.put( "ua", new HashSet<String>(Arrays.asList("com", "edu", "gov", "in", "net", "org", |
|
661 |
"cherkassy", "chernigov", "chernovtsy", "ck", "cn", "crimea", "cv", "dn", |
|
662 |
"dnepropetrovsk", "donetsk", "dp", "if", "ivano-frankivsk", "kh", "kharkov", |
|
663 |
"kherson", "kiev", "kirovograd", "km", "kr", "ks", "lg", |
|
664 |
"lugansk", "lutsk", "lviv", "mk", "nikolaev", "od", "odessa", "pl", "poltava", |
|
665 |
"rovno", "rv", "sebastopol", "sumy", "te", "ternopil", "uzhgorod", "vinnica", "vn", |
|
666 |
"zaporizhzhe", "zp", "zhitomir", "zt", "cr", "lt", "lv", "sb", "sm", "tr", |
|
667 |
"co", "biz", "in", "ne", "pp", "uz", "dominic"))); |
|
668 |
topMap.put( "ug", new HashSet<String>(Arrays.asList("co", "ac", "sc", "go", "ne", "or", "org", "com"))); |
|
669 |
topMap.put( "us", new HashSet<String>(Arrays.asList("dni", "fed", "isa", "kids", "nsn", "kyschools"))); |
|
670 |
topMap.put( "uz", new HashSet<String>(Arrays.asList("co", "com", "org", "gov", "ac", "edu", "int", "pp", "net"))); |
|
671 |
topMap.put( "vc", new HashSet<String>(Arrays.asList("com", "net", "org", "gov"))); |
|
672 |
topMap.put( "vi", new HashSet<String>(Arrays.asList("co", "com", "k12", "net", "org"))); |
|
673 |
topMap.put( "vn", new HashSet<String>(Arrays.asList( "com", "net", "org", "edu", "gov", "int", |
|
674 |
"ac", "biz", "info", "name", "pro", "health"))); |
|
675 |
topMap.put( "vu", new HashSet<String>(Arrays.asList("co", "com", "net", "org", "edu", "gov", "de"))); |
|
676 |
topMap.put("org", new HashSet<String>(Arrays.asList("ae", "za"))); |
|
677 |
topMap.put("pro", new HashSet<String>(Arrays.asList("aca", "bar", "cpa", "jur", "law", "med", "eng"))); |
|
678 |
||
679 |
top3Map.put("au", new HashSet<String>(Arrays.asList("act.edu.au", "eq.edu.au", |
|
680 |
"nsw.edu.au", "nt.edu.au", "qld.edu.au", "sa.edu.au", "tas.edu.au", "vic.edu.au", |
|
681 |
"wa.edu.au", "act.gov.au", "nsw.gov.au", "nt.gov.au", "qld.gov.au", "sa.gov.au", |
|
682 |
"tas.gov.au", "vic.gov.au", "wa.gov.au"))); |
|
683 |
top3Map.put("im", new HashSet<String>(Arrays.asList("ltd.co.im", "plc.co.im"))); |
|
684 |
top3Map.put("no", new HashSet<String>(Arrays.asList("gs.aa.no", "gs.ah.no", "gs.bu.no", |
|
685 |
"gs.fm.no", "gs.hl.no", "gs.hm.no", "gs.jan-mayen.no", "gs.mr.no", "gs.nl.no", |
|
686 |
"gs.nt.no", "gs.of.no", "gs.ol.no", "gs.oslo.no", "gs.rl.no", "gs.sf.no", |
|
687 |
"gs.st.no", "gs.svalbard.no", "gs.tm.no", "gs.tr.no", "gs.va.no", "gs.vf.no", |
|
688 |
"bo.telemark.no", "xn--b-5ga.telemark.no", "bo.nordland.no", |
|
689 |
"xn--b-5ga.nordland.no", "heroy.more-og-romsdal.no", |
|
690 |
"xn--hery-ira.xn--mre-og-romsdal-qqb.no", "heroy.nordland.no", |
|
691 |
"xn--hery-ira.nordland.no", "nes.akershus.no", "nes.buskerud.no", |
|
692 |
"os.hedmark.no", "os.hordaland.no", |
|
693 |
"sande.more-og-romsdal.no", "sande.xn--mre-og-romsdal-qqb.no", |
|
694 |
"sande.vestfold.no", "valer.ostfold.no", "xn--vler-qoa.xn--stfold-9xa.no", |
|
695 |
"valer.hedmark.no", "xn--vler-qoa.hedmark.no"))); |
|
696 |
top3Map.put("tr", new HashSet<String>(Arrays.asList("gov.nc.tr"))); |
|
697 |
} |
|
698 |
||
699 |
||
700 |
/* |
|
701 |
* Return the registered part of a qualified domain |
|
702 |
* name or the original if no match is found. |
|
703 |
*/ |
|
704 |
public static String getRegisteredDomain(String cname) { |
|
705 |
int dot; |
|
706 |
||
707 |
/* |
|
708 |
* If one dot or less than just return. |
|
709 |
*/ |
|
710 |
dot = cname.lastIndexOf('.'); |
|
711 |
if (dot == -1) |
|
712 |
return cname; |
|
713 |
if (dot == 0) |
|
714 |
return ""; |
|
715 |
if (dot == cname.length() - 1) { |
|
716 |
cname = cname.substring(0, cname.length() -1); |
|
717 |
dot = cname.lastIndexOf('.'); |
|
718 |
if (dot == -1) |
|
719 |
return cname; |
|
720 |
if (dot == 0) |
|
721 |
return ""; |
|
722 |
} |
|
723 |
if (dot == cname.length() - 1) |
|
724 |
return ""; |
|
725 |
||
726 |
/* |
|
727 |
* Break it up into seperate labels. |
|
728 |
*/ |
|
729 |
int second = cname.lastIndexOf('.', dot - 1); |
|
730 |
if (second == -1) |
|
731 |
return cname; |
|
732 |
if (second == 0) |
|
733 |
return ""; |
|
734 |
int third = cname.lastIndexOf('.', second - 1); |
|
735 |
int fourth = -1; |
|
736 |
if (third > 0) { |
|
737 |
fourth = cname.lastIndexOf('.', third - 1); |
|
738 |
} |
|
739 |
int fifth = -1; |
|
740 |
if (fourth > 0) { |
|
741 |
fifth = cname.lastIndexOf('.', fourth - 1); |
|
742 |
} |
|
743 |
String s = cname.substring(dot + 1); |
|
744 |
String s2 = cname.substring(second + 1, dot); |
|
745 |
||
746 |
/* |
|
747 |
* Look for longest matches first. |
|
748 |
* XX.PVT.K12.MA.US etc. |
|
749 |
*/ |
|
750 |
if (fourth != -1 && s.equals("us") && usStateSet.contains(s2)) { |
|
751 |
String s3 = cname.substring(third + 1, second); |
|
752 |
String s4 = cname.substring(fourth + 1, third); |
|
753 |
if (s3.equals("k12")) { |
|
754 |
if (s2.equals("ma") && (s4.equals("chtr") || s4.equals("paroch"))) { |
|
755 |
return cname.substring(fifth + 1); |
|
756 |
} else if (s4.equals("pvt")) { |
|
757 |
return cname.substring(fifth + 1); |
|
758 |
} |
|
759 |
} |
|
760 |
} |
|
761 |
||
762 |
/* |
|
763 |
* XX.K12.MA.US. |
|
764 |
*/ |
|
765 |
String str = cname.substring(third + 1); |
|
766 |
if (third != -1) { |
|
11125
99b115114fa3
7117357: Warnings in sun.instrument, tools and other sun.* classes
alanb
parents:
9775
diff
changeset
|
767 |
Set<String> set = top3Map.get(s); |
9775 | 768 |
if (set != null) { |
769 |
if (set.contains(str)) { |
|
770 |
return cname.substring(fourth + 1); |
|
771 |
} |
|
772 |
} else if (s.equals("us") && usStateSet.contains(s2)) { |
|
773 |
// check for known third level labels |
|
774 |
String s3 = cname.substring(third + 1, second); |
|
775 |
if (usSubStateSet.contains(s3)) { |
|
776 |
return fourth != -1? cname.substring(fourth + 1): cname; |
|
777 |
} else { |
|
778 |
return cname.substring(third + 1); |
|
779 |
} |
|
780 |
} else if (s.equals("uk")) { |
|
781 |
if (s2.equals("sch")) { |
|
782 |
return cname.substring(fourth + 1); |
|
783 |
} |
|
784 |
} else if (s.equals("jp")) { |
|
785 |
if (jpSet.contains(s2)) { |
|
786 |
if (jp2Set.contains(str)) { |
|
787 |
return cname.substring(third + 1); |
|
788 |
} |
|
789 |
return cname.substring(fourth + 1); |
|
790 |
} |
|
791 |
} |
|
792 |
} |
|
793 |
||
794 |
/* |
|
795 |
* PREF.AKITA.JP etc. |
|
796 |
*/ |
|
797 |
if (jp2Set.contains(str)) { |
|
798 |
return cname.substring(third + 1); |
|
799 |
} |
|
800 |
||
801 |
/* |
|
802 |
* XX.MA.US. |
|
803 |
*/ |
|
11125
99b115114fa3
7117357: Warnings in sun.instrument, tools and other sun.* classes
alanb
parents:
9775
diff
changeset
|
804 |
Set<String> topSet = topMap.get(s); |
9775 | 805 |
if (topSet != null) { |
806 |
if (topSet.contains(s2)) { |
|
807 |
return cname.substring(third + 1); |
|
808 |
} |
|
809 |
if (!((s.equals("us") && usStateSet.contains(s2)) || (s.equals("jp") && jpSet.contains(s2)))) { |
|
810 |
return cname.substring(second + 1); |
|
811 |
} |
|
812 |
} else if (top2Set.contains(s)) { |
|
813 |
if (s2.equals("gov")) { |
|
814 |
return cname.substring(third + 1); |
|
815 |
} |
|
816 |
return cname.substring(second + 1); |
|
817 |
} else if (top3Set.contains(s)) { |
|
818 |
if (s.equals("ad") && s2.equals("nom") || |
|
819 |
s.equals("aw") && s2.equals("com") || |
|
820 |
s.equals("be") && s2.equals("ac") || |
|
821 |
s.equals("cl") && s2.equals("gov") || |
|
822 |
s.equals("cl") && s2.equals("gob") || |
|
823 |
s.equals("fi") && s2.equals("aland") || |
|
824 |
s.equals("int") && s2.equals("eu") || |
|
825 |
s.equals("io") && s2.equals("com") || |
|
826 |
s.equals("mc") && s2.equals("tm") || |
|
827 |
s.equals("mc") && s2.equals("asso") || |
|
828 |
s.equals("vc") && s2.equals("com")) { |
|
829 |
return cname.substring(third + 1); |
|
830 |
} |
|
831 |
return cname.substring(second + 1); |
|
832 |
} else if (top4Set.contains(s)) { |
|
833 |
if (s2.equals("com") || s2.equals("edu") || s2.equals("gov") || |
|
834 |
s2.equals("net") || s2.equals("org")) { |
|
835 |
return cname.substring(third + 1); |
|
836 |
} |
|
837 |
return cname.substring(second + 1); |
|
838 |
} else if (top5Set.contains(s)) { |
|
839 |
return cname.substring(third + 1); |
|
840 |
} |
|
841 |
||
842 |
/* |
|
843 |
* BB.AA exception cases. |
|
844 |
*/ |
|
845 |
if (s.equals("tr")) { |
|
846 |
if (!s2.equals("nic") && !s2.equals("tsk")) { |
|
847 |
return cname.substring(third + 1); |
|
848 |
} |
|
849 |
return cname.substring(second + 1); |
|
850 |
} else if (s.equals("uk")) { |
|
851 |
if (!ukSet.contains(s2)) { |
|
852 |
return cname.substring(third + 1); |
|
853 |
} |
|
854 |
return cname.substring(second + 1); |
|
855 |
} else if (s.equals("ar")) { |
|
856 |
if (!arSet.contains(s2)) { |
|
857 |
return cname.substring(third + 1); |
|
858 |
} |
|
859 |
return cname.substring(second + 1); |
|
860 |
} else if (s.equals("om")) { |
|
861 |
if (!omSet.contains(s2)) { |
|
862 |
return cname.substring(third + 1); |
|
863 |
} |
|
864 |
return cname.substring(second + 1); |
|
865 |
} |
|
866 |
||
867 |
/* |
|
868 |
* XX.AA |
|
869 |
*/ |
|
870 |
if (top1Set.contains(s)) { |
|
871 |
return cname.substring(second + 1); |
|
872 |
} |
|
873 |
||
874 |
/* |
|
875 |
* Nothing matched so we can't shorten the string. |
|
876 |
*/ |
|
877 |
return cname; |
|
878 |
} |
|
879 |
} |