// Path: src/simpleserver/util/DamerauLevenshtein.java
// public static int distance(String a, String b) {
//   int n = a.length();
//   int m = b.length();
//   int d[][] = new int[n + 1][m + 1];
// 
//   for (int i = 0; i <= n; i++) {
//     d[i][0] = i;
//   }
// 
//   for (int j = 1; j <= m; j++) {
//     d[0][j] = j;
//   }
// 
//   for (int i = 0; i < n; i++) {
//     for (int j = 0; j < m; j++) {
//       int k = i + 1;
//       int q = j + 1;
//       int cost = (a.charAt(i) == b.charAt(j)) ? 0 : 1;
//       d[k][q] = Math.min(d[i][q] + 1,
//                          Math.min(d[k][j] + 1,
//                                   d[i][j] + cost));
//       if (i >= 1 && j >= 1 && a.charAt(i) == b.charAt(j - 1) && a.charAt(i - 1) == b.charAt(j)) {
//         d[k][q] = Math.min(d[k][q],
//                            d[i - 1][j - 1] + cost);
//       }
//     }
//   }
// 
//   return d[n][m];
// }


import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import static simpleserver.util.DamerauLevenshtein.distance;

    return item;
  }

  public String getAlias(int itemId, int damage) {
    for (String alias : aliases.keySet()) {
      Item i = aliases.get(alias);
      if (i.id == itemId && i.damage == damage) {
        return alias;
      }
    }
    return null;
  }

  private Item findWithSuffix(String find) {
    for (String suffix : suffixes) {
      if (find.endsWith(suffix)) {
        int prefixLength = find.length() - suffix.length();
        if (aliases.containsKey(find.substring(0, prefixLength))) {
          return aliases.get(find.substring(0, prefixLength));
        }
      }
    }
    return null;
  }

  public Suggestion findWithLevenshtein(String find) {
    int bestDistance = 100;
    String bestItem = null;
    for (String name : aliases.keySet()) {
// Path: src/simpleserver/util/DamerauLevenshtein.java
// public static int distance(String a, String b) {
//   int n = a.length();
//   int m = b.length();
//   int d[][] = new int[n + 1][m + 1];
// 
//   for (int i = 0; i <= n; i++) {
//     d[i][0] = i;
//   }
// 
//   for (int j = 1; j <= m; j++) {
//     d[0][j] = j;
//   }
// 
//   for (int i = 0; i < n; i++) {
//     for (int j = 0; j < m; j++) {
//       int k = i + 1;
//       int q = j + 1;
//       int cost = (a.charAt(i) == b.charAt(j)) ? 0 : 1;
//       d[k][q] = Math.min(d[i][q] + 1,
//                          Math.min(d[k][j] + 1,
//                                   d[i][j] + cost));
//       if (i >= 1 && j >= 1 && a.charAt(i) == b.charAt(j - 1) && a.charAt(i - 1) == b.charAt(j)) {
//         d[k][q] = Math.min(d[k][q],
//                            d[i - 1][j - 1] + cost);
//       }
//     }
//   }
// 
//   return d[n][m];
// }


// Path: src/simpleserver/config/GiveAliasList.java
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import static simpleserver.util.DamerauLevenshtein.distance;


    return item;
  }

  public String getAlias(int itemId, int damage) {
    for (String alias : aliases.keySet()) {
      Item i = aliases.get(alias);
      if (i.id == itemId && i.damage == damage) {
        return alias;
      }
    }
    return null;
  }

  private Item findWithSuffix(String find) {
    for (String suffix : suffixes) {
      if (find.endsWith(suffix)) {
        int prefixLength = find.length() - suffix.length();
        if (aliases.containsKey(find.substring(0, prefixLength))) {
          return aliases.get(find.substring(0, prefixLength));
        }
      }
    }
    return null;
  }

  public Suggestion findWithLevenshtein(String find) {
    int bestDistance = 100;
    String bestItem = null;
    for (String name : aliases.keySet()) {
      int distance = distance(name, find);