anchor.diff:         true -> NewState
       end;
   
  -on({?check_nodes_response, FlagsBin, OtherMaxLeafCount, MaxLeafItemsCountDiff},
  +on({?check_nodes_response, FlagsBin, OtherMaxLeafCount, OtherMaxLeafItemsCountDiff},
      State = #rr_recon_state{stage = reconciliation,        initiator = true,
                              method = merkle_tree,          merkle_sync = MerkleSync,
                              params = #merkle_params{bucket_size = BucketSize} = Params,
  
positive.code:             MerkleV = merkle_tree:get_branch_factor(MySyncStruct),
              MerkleB = merkle_tree:get_bucket_size(MySyncStruct),
              P1ETotal = get_p1e(),
              {P1E_I, P1E_L} = merkle_next_p1e(MerkleV, P1ETotal),
  
              LeafCount = merkle_tree:get_leaf_count(MySyncStruct),
              ItemCount = merkle_tree:get_item_count(MySyncStruct),
  
negative.code: %% merkle tree sync messages
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  on({?check_nodes, SenderPid, ToCheck, OtherMaxLeafCount, OtherMaxLeafItemsCountDiff}, State) ->
      NewState = State#rr_recon_state{dest_recon_pid = SenderPid},
      on({?check_nodes, ToCheck, OtherMaxLeafCount, OtherMaxLeafItemsCountDiff}, NewState);
  
  on({?check_nodes, ToCheck0, OtherMaxLeafCount, OtherMaxLeafItemsCountDiff},
     State = #rr_recon_state{stage = reconciliation,    initiator = false,
                             method = merkle_tree,      merkle_sync = MerkleSync,
                             params = #merkle_params{bucket_size = BucketSize} = Params,
                             struct = Tree,             ownerPid = OwnerL,
                             dest_rr_pid = DestNodePid, stats = Stats,
                             dest_recon_pid = DestReconPid,
                             misc = [{p1e, LastP1ETotal},
                                     {lcount, MyLastMaxLeafCount},
                                     {icount, MyLastMaxItemsCount}]}) ->
      ?DBG_ASSERT(comm:is_valid(DestReconPid)),
      OtherMaxItemsCount = OtherMaxLeafCount * BucketSize - OtherMaxLeafItemsCountDiff,
      {P1E_I, P1E_L, SigSizeI, SigSizeL} =
          merkle_next_signature_sizes(Params, LastP1ETotal,
                                      OtherMaxLeafCount, OtherMaxItemsCount,
                                      MyLastMaxLeafCount, MyLastMaxItemsCount),
      ToCheck = merkle_decompress_hashlist(ToCheck0, [], SigSizeI, SigSizeL),
      {FlagsBin, RTree, MerkleSyncNew, MyMaxLeafCount, MyMaxItemsCount} =
          check_node(ToCheck, Tree, SigSizeI, SigSizeL, LastP1ETotal, P1E_L, MerkleSync),
      ?DBG_ASSERT(MyMaxLeafCount * BucketSize >= MyMaxItemsCount),
      MyMaxLeafItemsCountDiff = MyMaxLeafCount * BucketSize - MyMaxItemsCount,
      send(DestReconPid, {?check_nodes_response, FlagsBin, MyMaxLeafCount, MyMaxLeafItemsCountDiff}),
      NewState = State#rr_recon_state{struct = RTree, merkle_sync = MerkleSyncNew,
                                      misc = [{p1e, P1E_I},
                                              {lcount, MyMaxLeafCount},
                                              {icount, MyMaxItemsCount}]},
      if RTree =:= [] andalso MerkleSyncNew =:= [] ->
             shutdown(sync_finished, NewState);
         RTree =:= [] ->
  