static new TreeMap ipToCountry_data; static S ipToCountry(S ip) { long ipNum = ipToInt(trim(ip)); synchronized(ipToCountry_data) { ipToCountry_init(); Long key = ipToCountry_data.floorKey(ipNum); ret key == null ? null : ipToCountry_data.get(key); } } static void ipToCountry_init() { synchronized(ipToCountry_data) { if (nempty(ipToCountry_data)) ret; long start = 0; for (S s : linesFromReader(utf8bufferedReader(gzInputStream(loadLibrary(#1008743))))) { L l = splitAtSpace(s); if (l(l) < 2) continue; long diff = parseLong(first(l)); S country = intern(last(l)); start += diff; ipToCountry_data.put(start, country); } } }