private static @Nullable MixedIndentModel create(String[] lines) {
      int indent = PsiLiteralUtil.getTextBlockIndent(lines, true, false);
      if (indent <= 0) return null;
      int[] spaces = new int[lines.length];
      int[] tabs = new int[lines.length];
      Character expectedIndentChar = null;
      int inconsistencyIdx = -1;
      int pos = 0;
      for (int i = 0; i < lines.length; i++) {
        if (i != 0) pos++;
        String line = lines[i];
        boolean isContentPart = !line.isBlank() || i == lines.length - 1;
        if (!isContentPart) {
          spaces[i] = -1;
          tabs[i] = -1;
          pos += line.length();
          continue;
        }
        if (expectedIndentChar == null) expectedIndentChar = line.charAt(0);
        for (int j = 0; j < line.length(); j++) {
          char c = line.charAt(j);
          if (c != ' ' && c != '\t') break;
          if (j < indent) inconsistencyIdx = getInconsistencyIndex(inconsistencyIdx, c, pos, j, expectedIndentChar);
          if (c == ' ') {
            spaces[i]++;
          }
          else {
            tabs[i]++;
          }
        }
        pos += line.length();
      }
      return inconsistencyIdx == -1 ? null : new MixedIndentModel(lines, spaces, tabs, inconsistencyIdx);
    }
private static @Nullable MixedIndentModel create(String[] lines)