anchor.diff:  %% ====================================================================
   
   %% @private
  +%% Returns values in the range [0, RingSize)
  +identify_unavailable_keyspaces(CHBin, PartitionSize, Service) ->
  +    %% Get a list of the VNodes owned by any unavailable nodes
  +    DownVNodes = [Index ||
  +                     {Index, _Node}
  +                         <- riak_core_apl:offline_owners(Service, CHBin)],
  +    [(DownVNode div PartitionSize) || DownVNode <- DownVNodes].
  +
  +
  +%% @private
  +find_coverage(_AllKeySpaces, _Offset, _NVal, _PartitionCount,
  +              _UnavailableKeySpaces, 0, Results) ->
  +    {ok, Results};
   find_coverage(AllKeySpaces, Offset, NVal, PartitionCount, UnavailableKeySpaces, PVC, []) ->
       %% Calculate the available keyspaces.
       AvailableKeySpaces = [{((VNode+Offset) rem PartitionCount),
  
positive.code:     {[{TargetHash, node()}], [{TargetHash, HashFilters}]};
  create_plan(_VNodeTarget, {_NVal, _RingSize, TotalSubp}, _PVC, _ReqId, _Service) ->
      %% XXX TODO - this completely ignores everything relevant to failed nodes
      MaskBSL = 160 - (length(hd(io_lib:format("~.2b", [TotalSubp]))) - 1),
      {ok, ChashBin} = riak_core_ring_manager:get_chash_bin(),
      Partitions = chashbin:to_list(ChashBin),
      lists:map(fun(X) ->
  
negative.code:                 end
          end,
      %% The offset value serves as a tiebreaker in the
      %% compare_vnode_keyspaces function and is used to distribute work
      %% to different sets of VNodes.
      CoverageResult = find_coverage(AllKeySpaces,
                                     Offset,
                                     NVal,
  