private static boolean containsSubArray(byte[] array, byte[] subArray) {
    int maxLength = array.length - subArray.length;
    for (int i = 0; i < maxLength; i++) {
      if (array[i] == subArray[0] && matches(array, subArray, i)) {
        return true;
      }
    }
    return false;
  }
private static boolean containsSubArray(byte[] array, byte[] subArray)