private void add(int offset, int @NotNull [] stack, int level) {
      if (level < stack.length) {
        Node node = get(offset);
        if (node == null) {
          node = new Node(4);
          put(offset, node);
        }
        node.add(stack[level], stack, level + 1);
      }
      else {
        if (!containsKey(offset)) {
          put(offset, null);
        }
      }
    }
private void add(int offset, int @NotNull [] stack, int level)