@Override
		public final void registerId(final Path parent, final String filename) {
			final Path p = parent == null ? Path.getPath(filename) : parent.resolve(filename);

			final int pathId = Deserializer_0.this.pathIdNextOut.incrementAndGet();
			final byte[] idBytesPrev = writeIntRE(parent == null ? 0 : Deserializer_0.this.idMapOut.get(parent));
			final byte[] idBytes = writeIntRE(pathId);
			final byte[] bytesName = filename.getBytes(FileSystem.UTF8);
			final byte[] nameLength = writeIntRE(bytesName.length);
			final byte[] bytes = new byte[idBytesPrev.length + idBytes.length + nameLength.length + bytesName.length];
			int offset = 0;
			System.arraycopy(idBytesPrev, 0, bytes, offset, idBytesPrev.length);
			offset += idBytesPrev.length;
			System.arraycopy(idBytes, 0, bytes, offset, idBytes.length);
			offset += idBytes.length;
			System.arraycopy(nameLength, 0, bytes, offset, nameLength.length);
			offset += nameLength.length;
			System.arraycopy(bytesName, 0, bytes, offset, bytesName.length);
			try {
				synchronized (Deserializer_0.this.pathIdOut) {
					Deserializer_0.this.pathIdOut.write(bytes);
				}

			} catch (final IOException e) {
				e.printStackTrace();
			}
			synchronized (Deserializer_0.this.idMapOut) {
				Deserializer_0.this.idMapOut.put(p, pathId);
				Deserializer_0.this.idMapOut.notifyAll();
			}
		}