public void writeData(final DataOutputStream out) throws IOException {
		out.writeShort(maxStack);
		out.writeShort(maxLocals);

		out.writeInt(code.length);
		out.write(code, 0, code.length);

		out.writeShort(handlers.length);

		for (int i = 0; i < handlers.length; i++) {
			writeCatch(out, handlers[i]);
		}

		out.writeShort(attrs.length);

		for (int i = 0; i < attrs.length; i++) {
			out.writeShort(attrs[i].nameIndex());
			out.writeInt(attrs[i].length());
			attrs[i].writeData(out);
		}
	}