 	}
 
 	private static func disallowedCharactersData() -> Data {
-		return disallowedCharacters.rangeStringData()
+		return [Marker.disallowedCharacters] + disallowedCharacters.rangeStringData()
 	}
 
 	private static func ignoredCharactersData() -> Data {
-		return ignoredCharacters.rangeStringData()
+		return [Marker.ignoredCharacters] + ignoredCharacters.rangeStringData()
 	}
 
 	private static func joiningTypesData() -> Data {

	private static func characterMapData() -> Data {
		var data = Data()

		for key in characterMap.keys.sorted() {
			data.append(contentsOf: key.utf8)



		var data = Data()

		data.append(Marker.joiningTypes)

		for type in reverseMap.keys.sorted() {
			data.append(contentsOf: type.utf8)
			data.append(contentsOf: reverseMap[type]!.utf8)
