anchor.diff:    end;
   
     if (Length(LAudienceArray) = 1) then
  -    TJSONUtils.SetJSONValueFrom<string>(TReservedClaimNames.AUDIENCE, Value, FJSON);
  -end;
  -
  -procedure TJWTClaims.SetAudienceArray(const Value: TArray<string>);
  -begin
  -  Audience := string.Join(AUDIENCE_SEPARATOR, Value);
  -end;
  -
  -procedure TJWTClaims.SetExpiration(Value: TDateTime);
  -begin
  -  if Value = 0 then
  +    TJSONUtils.SetJSONValueFrom<string>(TReservedClaimNames.AUDIENCE, AValue, FJSON);
  +end;
  +
  +procedure TJWTClaims.SetAudienceArray(const AValue: TArray<string>);
  +begin
  +  Audience := string.Join(AUDIENCE_SEPARATOR, AValue);
  +end;
  +
  +procedure TJWTClaims.SetExpiration(AValue: TDateTime);
  +begin
  +  if AValue = 0 then
       TJSONUtils.RemoveJSONNode(TReservedClaimNames.EXPIRATION, FJSON)
     else
  -    TJSONUtils.SetJSONValueFrom<TDateTime>(TReservedClaimNames.EXPIRATION, Value, FJSON);
  -end;
  -
  -procedure TJWTClaims.SetIssuedAt(Value: TDateTime);
  -begin
  -  if Value = 0 then
  +    TJSONUtils.SetJSONValueFrom<TDateTime>(TReservedClaimNames.EXPIRATION, AValue, FJSON);
  +end;
  +
  +procedure TJWTClaims.SetIssuedAt(AValue: TDateTime);
  +begin
  +  if AValue = 0 then
       TJSONUtils.RemoveJSONNode(TReservedClaimNames.ISSUED_AT, FJSON)
     else
  -    TJSONUtils.SetJSONValueFrom<TDateTime>(TReservedClaimNames.ISSUED_AT, Value, FJSON);
  -end;
  -
  -procedure TJWTClaims.SetIssuer(Value: string);
  -begin
  -  if Value = '' then
  +    TJSONUtils.SetJSONValueFrom<TDateTime>(TReservedClaimNames.ISSUED_AT, AValue, FJSON);
  +end;
  +
  +procedure TJWTClaims.SetIssuer(const AValue: string);
  +begin
  +  if AValue = '' then
       TJSONUtils.RemoveJSONNode(TReservedClaimNames.ISSUER, FJSON)
     else
  -    TJSONUtils.SetJSONValueFrom<string>(TReservedClaimNames.ISSUER, Value, FJSON);
  -end;
  -
  -procedure TJWTClaims.SetJWTId(Value: string);
  -begin
  -  if Value = '' then
  +    TJSONUtils.SetJSONValueFrom<string>(TReservedClaimNames.ISSUER, AValue, FJSON);
  +end;
  +
  +procedure TJWTClaims.SetJWTId(const AValue: string);
  +begin
  +  if AValue = '' then
       TJSONUtils.RemoveJSONNode(TReservedClaimNames.JWT_ID, FJSON)
     else
  -    TJSONUtils.SetJSONValueFrom<string>(TReservedClaimNames.JWT_ID, Value, FJSON);
  -end;
  -
  -procedure TJWTClaims.SetNotBefore(Value: TDateTime);
  -begin
  -  if Value = 0 then
  +    TJSONUtils.SetJSONValueFrom<string>(TReservedClaimNames.JWT_ID, AValue, FJSON);
  +end;
  +
  +procedure TJWTClaims.SetNotBefore(AValue: TDateTime);
  +begin
  +  if AValue = 0 then
       TJSONUtils.RemoveJSONNode(TReservedClaimNames.NOT_BEFORE, FJSON)
     else
  -    TJSONUtils.SetJSONValueFrom<TDateTime>(TReservedClaimNames.NOT_BEFORE, Value, FJSON);
  -end;
  -
  -procedure TJWTClaims.SetSubject(Value: string);
  -begin
  -  if Value = '' then
  +    TJSONUtils.SetJSONValueFrom<TDateTime>(TReservedClaimNames.NOT_BEFORE, AValue, FJSON);
  +end;
  +
  +procedure TJWTClaims.SetSubject(const AValue: string);
  +begin
  +  if AValue = '' then
       TJSONUtils.RemoveJSONNode(TReservedClaimNames.SUBJECT, FJSON)
     else
  -    TJSONUtils.SetJSONValueFrom<string>(TReservedClaimNames.SUBJECT, Value, FJSON);
  +    TJSONUtils.SetJSONValueFrom<string>(TReservedClaimNames.SUBJECT, AValue, FJSON);
   end;
   
   { TJWTHeader }
  
positive.code: 
      function ClaimExists(const AClaimName: string): Boolean;
      function GetAudienceArray: TArray<string>;
      procedure SetAudienceArray(const Value: TArray<string>);
    public
      constructor Create; virtual;
      procedure SetClaimOfType<T>(const AName: string; const AValue: T);
  
negative.code:     function GetJWTId: string;
      function GetNotBefore: TDateTime;
      function GetSubject: string;
      procedure SetAudience(const AValue: string);
      procedure SetExpiration(AValue: TDateTime);
      procedure SetIssuedAt(AValue: TDateTime);
      procedure SetIssuer(const AValue: string);
      procedure SetJWTId(const AValue: string);
      procedure SetNotBefore(AValue: TDateTime);
      procedure SetSubject(const AValue: string);
  
      function GetHasAudience: Boolean;
      function GetHasExpiration: Boolean;
  