code: List<EventInfo> getEvents() {
          synchronized (events) {
              List<EventInfo> result = new ArrayList<>(events.size());
              for (ListIterator<EventInfo> iterator = events.listIterator(events.size()); iterator.hasPrevious();) {
                  result.add(iterator.previous());
              }
              return result;
          }
      }
docs: Returns a mutable copy of the captured event information (in reverse order - last added events go first).
  
  @return mutable copy of the captured event information