/** Parse {@code data} as a message of this type and merge it with the message being built. */
 public static final MessageNano mergeFrom(
     MessageNano msg, final byte[] data, final int off, final int len)
     throws InvalidProtocolBufferNanoException {
   try {
     final CodedInputByteBufferNano input = CodedInputByteBufferNano.newInstance(data, off, len);
     msg.mergeFrom(input);
     input.checkLastTagWas(0);
     return msg;
   } catch (InvalidProtocolBufferNanoException e) {
     throw e;
   } catch (IOException e) {
     throw new RuntimeException(
         "Reading from a byte array threw an IOException (should " + "never happen).");
   }
 }