static new TreeMap ipToCountry_data; static S ipToCountry(S ip) { long ipNum = ipToInt(trim(ip)); synchronized(ipToCountry_data) { ipToCountry_init(); Long key = data.floorKey(ipNum); ret key == null ? null : data.get(key); } } static void ipToCountry_init() { synchronized(ipToCountry_data) { if (nempty(ipToCountry_data)) ret; for (S s : linesFromReader(utf8bufferedReader(lzmaInputStream(#1004343))))) { L l = tok_splitAtComma_unquote(s); if (l(l) < 3) continue; long start = parseLong(first(l)); long end = parseLong(second(l)); S country = intern(l.get(4)); ipToCountry_data.put(start, country); } } }