code: private static <T> UnmodifiableIterator<Iterator<? extends T>> iterators(Iterable<? extends CloseableIterable<? extends T>> iterables) {
          final Iterator<? extends Iterable<? extends T>> iterableIterator = iterables.iterator();
          return new UnmodifiableIterator<Iterator<? extends T>>() {
              @Override
              public boolean hasNext() {
                  return iterableIterator.hasNext();
              }
  
              @Override
              public Iterator<? extends T> next() {
                  return iterableIterator.next().iterator();
              }
          };
      }
docs: Returns an iterator over the iterators of the given iterables.