code: @CanIgnoreReturnValue
    public static <K, V, M extends Multimap<K, V>> M invertFrom(
        Multimap<? extends V, ? extends K> source, M dest) {
      checkNotNull(dest);
      for (Map.Entry<? extends V, ? extends K> entry : source.entries()) {
        dest.put(entry.getValue(), entry.getKey());
      }
      return dest;
    }
docs: Copies each key-value mapping in {@code source} into {@code dest}, with its key and value
  reversed.
  
  <p>If {@code source} is an {@link ImmutableMultimap}, consider using {@link
  ImmutableMultimap#inverse} instead.
  
  @param source any multimap
  @param dest the multimap to copy into; usually empty
  @return {@code dest}