anchor.diff:  %% with the particular information.
   update(FluName, Filename, Offset, Length, Csum) ->
       gen_server:cast(make_merkle_tree_mgr_name(FluName), 
  -                    {update, Filename, Offset, Length, Csum}, ?TIMEOUT).
  +                    {update, Filename, Offset, Length, Csum}).
   
   -spec fetch ( FluName :: atom(),
                Filename :: string() ) -> {ok, [ Data :: binary() ]}.
  
positive.code:     end.
  
  build_tree(Tid, MT = #mt{ leaves = D }) ->
      Lvl1s = build_level_1(?CHUNK_SIZE, lists:map(fun map_dict/1, orddict:to_list(D)), 1, [ crypto:hash_init(?H) ]),
      Mod2 = length(Lvl1s) div ?LEVEL_SIZE,
      Lvl2s = build_int_level(Mod2, Lvl1s, 1, [ crypto:hash_init(?H) ]),
      Mod3 = length(Lvl2s) div 2,
      Lvl3s = build_int_level(Mod3, Lvl2s, 1, [ crypto:hash_init(?H) ]),
      Root = build_root(Lvl3s, crypto:hash_init(?H)),
      ets:insert(Tid, MT#mt{ root = Root, lvl1 = Lvl1s, lvl2 = Lvl2s, lvl3 = Lvl3s, recalc = false }),
      [Root, Lvl3s, Lvl2s, Lvl1s].
  
  build_root([], Ctx) ->
      crypto:hash_final(Ctx);
  build_root([H|T], Ctx) ->
      build_root(T, crypto:hash_update(H, Ctx)).
  
  build_int_level(_Mod, [], _Cnt, [ Ctx | Rest ]) ->
      lists:reverse( [ crypto:hash_final(Ctx) | Rest ] );
  build_int_level(Mod, [H|T], Cnt, [ Ctx | Rest ]) when Cnt rem Mod == 0 ->
      NewCtx = crypto:hash_init(?H),
      build_int_level(Mod, T, Cnt + 1, [ crypto:hash_update(H, NewCtx), crypto:hash_final(Ctx) | Rest ]);
  build_int_level(Mod, [H|T], Cnt, [ Ctx | Rest ]) ->
      build_int_level(Mod, T, Cnt+1, [ crypto:hash_update(H, Ctx) | Rest ]).
  
  map_dict({{Offset, Len}, Hash}) ->
      {Offset + Len, Hash}.
  
  build_level_1(_Size, [], _Multiple, [ Ctx | Rest ]) ->
      lists:reverse([ crypto:hash_final(Ctx) | Rest ]);
  build_level_1(Size, [{Pos, Hash}|T], Multiple, [ Ctx | Rest ]) when Pos > Size ->
      NewCtx = crypto:hash_init(?H),
      build_level_1(Size*(Multiple+1), T, Multiple+1, 
                    [ crypto:hash_update(Hash, NewCtx), crypto:hash_final(Ctx) | Rest ]);
  build_level_1(Size, [{Pos, Hash}|T], Multiple, [ Ctx | Rest ]) when Pos =< Size ->
      build_level_1(Size, T, Multiple, [ crypto:hash_update(Hash, Ctx) | Rest ]).
  
  
negative.code:     end.
  
  load_bin(Tid, Filename, Bin) ->
      {CsumL, _} = machi_csum_table:split_checksum_list_blob_decode(Bin),
      iter_csum_list(Tid, Filename, CsumL).
  
  iter_csum_list(Tid, Filename, []) ->
  