case INTERNAL_JAR :
newState.binaryLocations[i] = ClasspathLocation.forLibrary(root.getFile(new Path(in.readUTF())), readRestriction(in));
}
}
newState.structuralBuildTimes = new SimpleLookupTable(length = in.readInt());
for (int i = 0; i < length; i++)
newState.structuralBuildTimes.put(in.readUTF(), new Long(in.readLong()));
String[] internedTypeLocators = new String[length = in.readInt()];
for (int i = 0; i < length; i++)
internedTypeLocators[i] = in.readUTF();
newState.typeLocators = new SimpleLookupTable(length = in.readInt());
for (int i = 0; i < length; i++)
newState.recordLocatorForType(in.readUTF(), internedTypeLocators[in.readInt()]);
char[][] internedRootNames = ReferenceCollection.internSimpleNames(readNames(in), false);
char[][] internedSimpleNames = ReferenceCollection.internSimpleNames(readNames(in), false);
char[][][] internedQualifiedNames = new char[length = in.readInt()][][];
for (int i = 0; i < length; i++) {
int qLength = in.readInt();
char[][] qName = new char[qLength][];
for (int j = 0; j < qLength; j++)
qName[j] = internedSimpleNames[in.readInt()];
internedQualifiedNames[i] = qName;
}
internedQualifiedNames = ReferenceCollection.internQualifiedNames(internedQualifiedNames, false);
newState.references = new SimpleLookupTable(length = in.readInt());
for (int i = 0; i < length; i++) {
String typeLocator = internedTypeLocators[in.readInt()];
ReferenceCollection collection = null;
switch (in.readByte()) {
case 1 :