@Override
  public void loadState(@NotNull final Element element) {
    try {
      setSentTime(Long.parseLong(element.getAttributeValue(LAST_TIME_ATTR, "0")));
    }
    catch (NumberFormatException e) {
      setSentTime(0);
    }

    final String isAllowedEapValue = element.getAttributeValue(IS_ALLOWED_EAP_ATTR, "true");
    isAllowedForEAP = (isAllowedEapValue == null || isAllowedEapValue.isBlank()) || Boolean.parseBoolean(isAllowedEapValue);

    // compatibility: if was previously allowed, transfer the setting to the new place
    final String isAllowedValue = element.getAttributeValue(IS_ALLOWED_ATTR);
    if (isAllowedValue != null && !isAllowedValue.isBlank() && Boolean.parseBoolean(isAllowedValue)) {
      final ConsentOptionsProvider options = getConsentOptionsProvider();
      if (options != null) {
        options.setSendingUsageStatsAllowed(true);
      }
    }

    String isShowNotificationValue = element.getAttributeValue(SHOW_NOTIFICATION_ATTR);
    setShowNotification((isShowNotificationValue == null || isShowNotificationValue.isBlank()) ||
                        Boolean.parseBoolean(isShowNotificationValue));

    myRecorderToSystemEventIds.clear();
    for (Element path : element.getChildren(SYSTEM_EVENT_ATTR)) {
      String recorder = path.getAttributeValue(RECORDER_ATTR);
      if (recorder != null && !recorder.isEmpty()) {
        try {
          long eventId = Long.parseLong(path.getAttributeValue(EVENT_ID_ATTR, "0"));
          myRecorderToSystemEventIds.put(recorder, eventId);
        }
        catch (NumberFormatException ignored) {
        }
      }
    }
  }
@Override
  public void loadState(@NotNull final Element element)