private CstString parseUtf8(int at) {
    int length = bytes.getUnsignedShort(at + 1);

    at += 3; // Skip to the data.

    ByteArray ubytes = bytes.slice(at, at + length);

    try {
      return new CstString(ubytes);
    } catch (IllegalArgumentException ex) {
      // Translate the exception
      throw new ParseException(ex);
    }
  }
Parses a utf8 constant.

@param at offset to the start of the constant (where the tag byte is)
@return {@code non-null;} the parsed value
android/android_framework/dex-maker/src/main/java/com/android/dx/cf/cst/ConstantPoolParser.java