anchor.diff:  		Log :: disk_log:log(),
   		Start :: pos_integer(),
   		End :: pos_integer(),
  -		Result :: eof | disk_log:continuation().
  +		Result :: eof | disk_log:continuation() | {error, Reason},
  +		Reason :: term().
   %% @doc Binary tree search of multi file wrap disk_log.
   %% @private
   start_binary_tree(Log, Start, _End) ->
  
positive.code: start_binary_tree(_, _, _, _, _, _, _, _, {error, Reason}) ->
  	{error, Reason}.
  
  
negative.code: 			{error, Reason}
  	end.
  %% @hidden
  ipdr_log1(_IpdrLog, _Start, _End, {error, Reason}) ->
  	error_logger:error_report([disk_log:format_error(Reason),
  			{module, ?MODULE}, {log, ?RADACCT}, {error, Reason}]),
  	{error, Reason};
  ipdr_log1(IpdrLog, _Start, _End, eof) ->
  	ipdr_log5(IpdrLog, disk_log:close(IpdrLog));
  ipdr_log1(IpdrLog, Start, End, Cont) ->
  	ipdr_log2(IpdrLog, Start, End, Cont, disk_log:chunk(?RADACCT, Cont, 1)).
  %% @hidden
  ipdr_log2(IpdrLog, _Start, _End, _PrevCont, eof) ->
  	ipdr_log5(IpdrLog, disk_log:close(IpdrLog));
  ipdr_log2(IpdrLog, _Start, _End, _PrevCont, {error, Reason}) ->
  	error_logger:error_report([disk_log:format_error(Reason),
  			{module, ?MODULE}, {log, ?RADACCT}, {error, Reason}]),
  	ipdr_log5(IpdrLog, disk_log:close(IpdrLog));
  ipdr_log2(IpdrLog, Start, End, _PrevCont, {Cont, [R]})
  		when element(1, R) < Start ->
  	ipdr_log2(IpdrLog, Start, End, Cont, disk_log:chunk(?RADACCT, Cont, 1));
  ipdr_log2(IpdrLog, Start, End, PrevCont, {_Cont, _Chunk}) ->
  	ipdr_log3(IpdrLog, Start, End, 0, disk_log:chunk(?RADACCT, PrevCont)).
  %% @hidden
  ipdr_log3(IpdrLog, _Start, _End, _SeqNum, {error, Reason}) ->
  	error_logger:error_report([disk_log:format_error(Reason),
  			{module, ?MODULE}, {log, ?RADACCT}, {error, Reason}]),
  	ipdr_log5(IpdrLog, disk_log:close(IpdrLog));
  ipdr_log3(IpdrLog, _Start, _End, _SeqNum, eof) ->
  	ipdr_log5(IpdrLog, disk_log:close(IpdrLog));
  ipdr_log3(IpdrLog, Start, End, SeqNum, {Cont, Chunk}) ->
  	Fstart = fun(R) when element(1, R) < Start ->
  				true;
  			(_) ->
  				false
  	end,
  	ipdr_log4(IpdrLog, Start, End, SeqNum,
  			{Cont, lists:dropwhile(Fstart, Chunk)}).
  %% @hidden
  ipdr_log4(IpdrLog, Start, End, SeqNum, {Cont, []}) ->
  	ipdr_log4(IpdrLog, Start, End, SeqNum, disk_log:chunk(?RADACCT, Cont));
  ipdr_log4(IpdrLog, _Start, End, _SeqNum, {_Cont, [H | _]})
  		when element(1, H) > End ->
  	ipdr_log5(IpdrLog, disk_log:close(IpdrLog));
  ipdr_log4(IpdrLog, _Start, End, SeqNum, {Cont, [H | T]})
  		when element(5, H) == stop ->
  	IPDR = ipdr_codec(H),
  	case disk_log:log(IpdrLog, IPDR#ipdr{seqNum = SeqNum}) of
  		ok ->
  			ipdr_log4(IpdrLog, _Start, End, SeqNum + 1, {Cont, T});
  		{error, Reason} ->
  			error_logger:error_report([disk_log:format_error(Reason),
  					{module, ?MODULE}, {log, IpdrLog}, {error, Reason}]),
  			{error, Reason}
  	end;
  ipdr_log4(IpdrLog, Start, End, SeqNum, {Cont, [_ | T]}) ->
  	ipdr_log4(IpdrLog, Start, End, SeqNum, {Cont, T}).
  %% @hidden
  ipdr_log5(_IpdrLog, ok) ->
  	ok;
  