Correct the raw offsets in the time zone index for a few zones.

ZoneCompactor was using the system time zone database to get the offsets
instead of using the data it was compiling, so for newly added or recently
changed zones the index could be inconsistent with the data.

Affected zones: San_Luis, Casey, Davis, Mawson, Kathmandu, Novokuznetsk
diff --git a/tools/zoneinfo/ZoneCompactor.java b/tools/zoneinfo/ZoneCompactor.java
index eea7dd4..3b5ddfa 100644
--- a/tools/zoneinfo/ZoneCompactor.java
+++ b/tools/zoneinfo/ZoneCompactor.java
@@ -48,8 +48,11 @@
     private static final int MAXNAME = 40;
 
     // Concatenate the contents of 'inFile' onto 'out'
-    private static void copyFile(File inFile, OutputStream out)
+    // and return the contents as a byte array.
+    private static byte[] copyFile(File inFile, OutputStream out)
         throws Exception {
+        byte[] ret = new byte[0];
+
         InputStream in = new FileInputStream(inFile);
         byte[] buf = new byte[8192];
         while (true) {
@@ -58,9 +61,14 @@
                 break;
             }
             out.write(buf, 0, nbytes);
+
+            byte[] nret = new byte[ret.length + nbytes];
+            System.arraycopy(ret, 0, nret, 0, ret.length);
+            System.arraycopy(buf, 0, nret, ret.length, nbytes);
+            ret = nret;
         }
         out.flush();
-        return;
+        return ret;
     }
     
     // Write a 32-bit integer in network byte order
@@ -96,12 +104,12 @@
                     starts.put(s, new Integer(start));
                     lengths.put(s, new Integer((int)length));
 
-                    TimeZone tz = TimeZone.getTimeZone(s);
+                    start += length;
+                    byte[] data = copyFile(f, zoneInfo);
+
+                    TimeZone tz = ZoneInfo.make(s, data);
                     int gmtOffset = tz.getRawOffset();
                     offsets.put(s, new Integer(gmtOffset));
-
-                    start += length;
-                    copyFile(f, zoneInfo);
                 }
             }
         }