anchor.diff:      end,
       NormHeaders = [
           {nklib_util:to_lower(Name), to_bin(Value)}
  -        || {Name, Value} <- maps:to_list(Headers3)
  +        || {Name, Value} <- Headers3
       ],
       SortedHeaders = lists:keysort(1, NormHeaders),
       CanonicalHeaders = [[Name, $:, Value, $\n] || {Name, Value} <- SortedHeaders],
  
positive.code: 
  %% @doc AWS v4 signed request
  -spec request_v4(request_v4_config()) ->
      {Uri::binary(), Headers::#{binary() => binary()}}.
  
  request_v4(Config) ->
      Region = to_bin(maps:get(region, Config)),
      Service = to_bin(maps:get(service, Config)),
      Host = <<Service/binary, $., Region/binary, ".amazonaws.com">>,
      Date = iso_8601_basic_time(),
      HexHash = case maps:find(hash, Config) of
          {ok, BodyHash} ->
  
negative.code: 
  %% hex(crypto:hash(sha256, <<>>))
  -define(EMPTY_HASH, <<"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855">>).
  -define(DEFAULT_REGION, 'eu-west-1').
  
  %% ===================================================================
  %% Types
  