anchor.diff:  -spec parse_resource_key(binary(), binary()) -> {binary(), binary()}.
   parse_resource_key(<<$/, Rest/bits>>, Acc) -> {Acc, Rest};
   parse_resource_key(<<C, Rest/bits>>, Acc)  -> parse_resource_key(Rest, <<Acc/binary, C>>).
  +
  +-spec accumulate_body(binary(), fin | nofin, binary()) -> binary().
  +accumulate_body(Data, _IsFin, Acc) ->
  +	<<Acc/binary, Data/binary>>.
  
positive.code: 	await/4,
  	await/5,
  	await_body/5,
  	signature_v2/5,
  	signature_v2/7,
  	access_token_v2/2,
  
negative.code: 
  -spec await_body(pid(), reference(), non_neg_integer(), reference(), iodata()) -> iodata().
  await_body(Pid, Ref, Timeout, Mref, Acc) ->
  	fold_body(Pid, Ref, Timeout, Mref, Acc, fun accumulate_body/3).
  
  %% Be careful, 'Handle :: body_handler()' function must not fail.
  -spec fold_body(pid(), reference(), non_neg_integer(), reference(), iodata(), body_handler()) -> iodata().
  fold_body(Pid, Ref, Timeout, Mref, Acc, Handle) ->
  	receive
  		{gun_data, Pid, Ref, nofin =IsFin, Data} ->
  			fold_body(Pid, Ref, Timeout, Mref, Handle(Data, IsFin, Acc), Handle);
  		{gun_data, Pid, Ref, fin =IsFin, Data} ->
  			demonitor(Mref, [flush]),
  			gun:flush(Ref),
  			Handle(Data, IsFin, Acc);
  		{gun_error, Pid, Ref, Reason} ->
  			demonitor(Mref, [flush]),
  			gun:flush(Ref),
  