    __add_control_row() {
        var tr = document.createElement('tr');
        for (var itemOption of this.control_items) {
            var td = document.createElement('td');
            var item = this.__add_control_item(itemOption);
            if (itemOption.colspan !== undefined) {
                td.colSpan = itemOption.colspan;
            }
            td.appendChild(item);
            tr.appendChild(td);
        }
        var td = document.createElement('td');

        var btn = document.createElement('button');
        var header_action_button_style = this.header_action_button.style === undefined ? {} : this.header_action_button.style;
        if (header_action_button_style.type !== undefined) {
            btn.classList.add("btn", "btn-"+header_action_button_style.type);
        } else {
            btn.classList.add("btn", "btn-primary");
        }
        if (header_action_button_style.tooltip !== undefined) {
            btn.title = header_action_button_style.tooltip;
        }
        if (header_action_button_style.icon !== undefined) {
            btn.innerHTML = '<span class="fa '+header_action_button_style.icon+'"></span>';
        } else {
            btn.innerHTML = '<span class="fa fa-plus-square"></span>';
        }
        btn.type = "button";
        btn.disabled = this.additionButtonDisabled;

        var that = this;
        btn.addEventListener("click", function(evt) {
            var data = [];
            for (var elem of that.form.elements) {
                if (elem.classList.contains('form-group')) {
                    data.push(elem.value);
                }
            }
            if (that.additionEnabled) {
                that.add_row(data);
            }
            if (that.onAddition !== undefined) {
                that.onAddition(data, that);
            }
        });

        td.appendChild(btn);

        tr.appendChild(td);
        this.thead.appendChild(tr);
    }
The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.