code: public static Spliterator.OfLong spliterator(PrimitiveIterator.OfLong iterator,
                                                   long size,
                                                   int characteristics) {
          return new LongIteratorSpliterator(Objects.requireNonNull(iterator),
                                             size, characteristics);
      }
docs: Creates a {@code Spliterator.OfLong} using a given
  {@code LongStream.LongIterator} as the source of elements, and with a
  given initially reported size.
  
  <p>The spliterator is not
  <em><a href="Spliterator.html#binding">late-binding</a></em>, inherits
  the <em>fail-fast</em> properties of the iterator, and implements
  {@code trySplit} to permit limited parallelism.
  
  <p>Traversal of elements should be accomplished through the spliterator.
  The behaviour of splitting and traversal is undefined if the iterator is
  operated on after the spliterator is returned, or the initially reported
  size is not equal to the actual number of elements in the source.
  
  @param iterator The iterator for the source
  @param size The number of elements in the source, to be reported as
  initial {@code estimateSize}.
  @param characteristics Characteristics of this spliterator's source or
  elements.  The characteristics {@code SIZED} and {@code SUBSIZED}
  are additionally reported unless {@code CONCURRENT} is supplied.
  @return A spliterator from an iterator
  @throws NullPointerException if the given iterator is {@code null}