docs: public static UUID nameUUIDv5FromBytes(byte[] name) {
          // Based on code from OpenJDK UUID#nameUUIDFromBytes + private byte[] constructor
          MessageDigest md;
  
          try {
              md = MessageDigest.getInstance("SHA1");
          }
          catch (NoSuchAlgorithmException nsae) {
              throw new InternalError("SHA1 not supported");
          }
  
          byte[] sha1Bytes = md.digest(name);
          sha1Bytes[6]  &= 0x0f;  /* clear version        */
          sha1Bytes[6]  |= 0x50;  /* set to version 5     */
          sha1Bytes[8]  &= 0x3f;  /* clear variant        */
          sha1Bytes[8]  |= 0x80;  /* set to IETF variant  */
  
          long msb = 0;
          long lsb = 0;
  
          // NOTE: According to RFC 4122, only first 16 bytes are used, meaning
          // bytes 17-20 in the 160 bit SHA1 hash are simply discarded in this case...
          for (int i=0; i<8; i++) {
              msb = (msb << 8) | (sha1Bytes[i] & 0xff);
          }
          for (int i=8; i<16; i++) {
              lsb = (lsb << 8) | (sha1Bytes[i] & 0xff);
          }
  
          return new UUID(msb, lsb);
      }