public static String decode(final char[] chars) {
    final StringBuilder buffer = new StringBuilder();
    for (int i = 0; i < chars.length; i++) {
      char chr = chars[i];
      final char decodedChar;
      if (chr == Packet.ourSpecialSymbol) {
        i++;
        chr = chars[i];
        if (chr != Packet.ourSpecialSymbol) {
          final StringBuilder codeBuffer = new StringBuilder(Packet.CODE_LENGTH);
          codeBuffer.append(chr);
          for (int j = 1; j < Packet.CODE_LENGTH; j++) {
            codeBuffer.append(chars[i + j]);
          }
          i += Packet.CODE_LENGTH - 1;
          decodedChar = (char)Integer.parseInt(codeBuffer.toString());
        }
        else decodedChar = chr;
      } else decodedChar = chr;
      buffer.append(decodedChar);
    }
    return buffer.toString();
  }
public static String decode(final char[] chars)