anchor.diff:  {$ENDIF}
   
   
  -function TKMDeliveryBidKeyComparer.GetHashCode(const Value: TKMDeliveryBidKey): Integer;
  +function TKMDeliveryBidKeyEqualityComparer.GetHashCode(const Value: TKMDeliveryBidKey): Integer;
   begin
     Result := CombinedHash([THashBobJenkins.GetHashValue(Value.FromUID, SizeOf(Integer), 0),
                             THashBobJenkins.GetHashValue(Value.ToUID, SizeOf(Integer), 0)]);
   end;
  +
  +
  +function TKMDeliveryBidKeyComparer.Compare(const Left, Right: TKMDeliveryBidKey): Integer;
  +begin
  +  if Left.FromUID = Right.FromUID then
  +    Result := Left.ToUID - Right.ToUID
  +  else
  +    Result := Left.FromUID - Right.FromUID;
  +end;
  +
  +
   {$ENDIF}
   
   
  
positive.code: 
  {$IFDEF USE_HASH}
  { TKMDeliveryBidKeyComparer }
  function TKMDeliveryBidKeyComparer.Equals(const Left, Right: TKMDeliveryBidKey): Boolean;
  begin
    Result := (Left.FromUID = Right.FromUID) and (Left.ToUID = Right.ToUID);
  end;
  
negative.code: 
  type
    //Custom key comparator. Probably TDictionary can handle it himself, but lets try our custom comparator
    TKMDeliveryBidKeyEqualityComparer = class(TEqualityComparer<TKMDeliveryBidKey>)
      function Equals(const Left, Right: TKMDeliveryBidKey): Boolean; override;
      function GetHashCode(const Value: TKMDeliveryBidKey): Integer; override;
    end;
  
    TKMDeliveryBidKeyComparer = class(TComparer<TKMDeliveryBidKey>)
      function Compare(const Left, Right: TKMDeliveryBidKey): Integer; override;
    end;
    {$ENDIF}
  
  