anchor.diff:  itr_value({It, Opts}) ->
       Default = itr_default({It, Opts}),
       {Key, Obj} = riak_core_metadata_manager:iterator_value(It),
  -    case proplists:get_value(resolver, Opts) of
  +    AllowPut = get_option(allow_put, Opts, true),
  +    case get_option(resolver, Opts, undefined) of
           undefined ->
               case riak_core_metadata_object:value_count(Obj) of
                   1 ->
  
positive.code: %% a resolver was specified in the options when creating this iterator, they will be
  %% resolved. Otherwise, and error is returned. If conflicts are resolved, the resolved
  %% value is written locally and a broadcast is performed to update other nodes
  %% in the cluster
  %%
  %% NOTE: if resolution may be performed this function must be called at most once
  %% before calling itr_next/1 on the iterator (at which point the function can be called
  
negative.code:     end.
  
  %% @private
  maybe_resolve(PKey, Existing, Method, AllowPut) ->
      SibCount = riak_core_metadata_object:value_count(Existing),
      maybe_resolve(PKey, Existing, SibCount, Method, AllowPut).
  
  %% @private
  maybe_resolve(_PKey, Existing, 1, _Method, _AllowPut) ->
      riak_core_metadata_object:value(Existing);
  maybe_resolve(PKey, Existing, _, Method, AllowPut) ->
      Reconciled = riak_core_metadata_object:resolve(Existing, Method),
      RContext = riak_core_metadata_object:context(Reconciled),
      RValue = riak_core_metadata_object:value(Reconciled),
      case AllowPut of
          false ->
              ok;
          _ ->
              Stored = riak_core_metadata_manager:put(PKey, RContext, RValue),
              broadcast(PKey, Stored)
      end,
      RValue.
  
  %% @private
  