class Jwt {

  public List<String> getAudiences() throws JwtExpiredException, JwtNotBeforeException {
    JSONArray audiences = (JSONArray) getClaim(JwtNames.CLAIM_AUDIENCE);
    if (audiences == null) {
      return null;
    }

    List<String> result = new ArrayList<>(audiences.length());
    for (int i = 0; i < audiences.length(); i++) {
      try {
        result.add(audiences.getString(i));
      } catch (JSONException ex) {
        throw new IllegalStateException("invalid audience", ex);
      }
    }

    return Collections.unmodifiableList(result);
  }

    Jwt(JSONObject header, JSONObject payload, Clock clock, Duration clockSkew);

}