I have the following script:

// Polyfill for String.trim() in ExtendScript
if (typeof String.prototype.trim !== 'function') {
    String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g, '');
    };
}

// ExtendScript for After Effects

// Begin undo group for script actions
app.beginUndoGroup("Create SubRip Comps");

// ... rest of your script ...

// Prompt user to select a SubRip (.srt) file
var srtFile = File.openDialog("Select a SubRip (.srt) file");
if (srtFile != null) {
    srtFile.open("r");
    var srtContent = srtFile.read();
    srtFile.close();

    // Parse the SubRip file content
    var entries = parseSRT(srtContent);

    if (entries.length > 0) {
        // Find the existing "FULL1-FIRSTHOUR" composition in the project
        var mainCompName = "FULL1-FIRSTHOUR";
        var mainComp = findCompByName(mainCompName);

        if (mainComp == null) {
            alert('The "' + mainCompName + '" composition was not found in the project.');
        } else {
            // Optionally adjust the mainComp's duration if needed
            var mainCompDuration = Math.max(mainComp.duration, entries[entries.length - 1].endTime);
            if (mainComp.duration < mainCompDuration) {
                mainComp.duration = mainCompDuration;
            }

            var mainCompWidth = mainComp.width;
            var mainCompHeight = mainComp.height;
            var mainCompPixelAspect = mainComp.pixelAspect;
            var mainCompFrameRate = mainComp.frameRate;

            // Locate the existing "WHITEBACKGROUND" composition in the project
            var whiteBG = findCompByName("WHITEBACKGROUND");
            if (whiteBG == null) {
                alert('The "WHITEBACKGROUND" composition was not found in the project.');
            }

            // Process each subtitle entry
            for (var i = 0; i < entries.length; i++) {
                var entry = entries[i];

                // Remove "{txt}" from the text for naming
                var cleanText = entry.text.replace("{txt}", "").trim();

                // Create a new composition for each subtitle
                var subtitleComp = app.project.items.addComp(
                    cleanText,
                    mainCompWidth,
                    mainCompHeight,
                    mainCompPixelAspect,
                    entry.duration,
                    mainCompFrameRate
                );

                // Add the "WHITEBACKGROUND" precomp first
                if (whiteBG != null) {
                    var bgLayer = subtitleComp.layers.add(whiteBG);
                    // Position or scale bgLayer if needed
                }

                // Add the text layer after the background layer so it appears on top
                var textLayer = subtitleComp.layers.addText(cleanText);
                var textProp = textLayer.property("Source Text");
                var textDocument = textProp.value;

                // Check for "{txt}" to set specific text properties
                if (entry.text.indexOf("{txt}") !== -1) {
                    textDocument.font = "MxPlus_IBM_XGA-AI_12x20"; // Use the correct font name
                    textDocument.fontSize = 45;
                    textDocument.leading = 54;
                    textDocument.fillColor = hexToRgb("#24254D");
                    textDocument.tracking = 0;
                    textDocument.justification = ParagraphJustification.LEFT_JUSTIFY;
                }

                textProp.setValue(textDocument);
                textLayer.property("Position").setValue([623, 706]);

                // Place the subtitle comp into the main comp at the correct time
                var compLayer = mainComp.layers.add(subtitleComp);
                compLayer.startTime = entry.startTime;
                // No need to set inPoint and outPoint; it will inherit from the comp's duration
            }
        }
    } else {
        alert("No valid entries found in the SubRip file.");
    }
}

// End undo group
app.endUndoGroup();

// Function to parse SRT content into entries
function parseSRT(data) {
    var regex = /(\d+)\s+([\d:,]+)\s+-->\s+([\d:,]+)\s+([\s\S]*?)(?=\n{2,}|$)/g;
    var entries = [];
    var match;

    while ((match = regex.exec(data)) !== null) {
        var index = parseInt(match[1], 10);
        var startTime = timeToSeconds(match[2]);
        var endTime = timeToSeconds(match[3]);
        var text = match[4].replace(/\r\n|\r|\n/g, "\n").trim();

        entries.push({
            index: index,
            startTime: startTime,
            endTime: endTime,
            duration: endTime - startTime,
            text: text
        });
    }

    return entries;
}

// Convert time in "HH:MM:SS,ms" to seconds
function timeToSeconds(t) {
    var parts = t.split(',');
    var timeParts = parts[0].split(':');
    var hours = parseFloat(timeParts[0]);
    var minutes = parseFloat(timeParts[1]);
    var seconds = parseFloat(timeParts[2]);
    var milliseconds = parseFloat(parts[1]) / 1000;

    return hours * 3600 + minutes * 60 + seconds + milliseconds;
}

// Convert hex color to RGB array (values between 0 and 1)
function hexToRgb(hex) {
    var bigint = parseInt(hex.replace("#", ""), 16);
    var r = ((bigint >> 16) & 255) / 255;
    var g = ((bigint >> 8) & 255) / 255;
    var b = (bigint & 255) / 255;
    return [r, g, b];
}

// Find a composition item by name in the project panel
function findCompByName(name) {
    for (var i = 1; i <= app.project.numItems; i++) {
        if (app.project.item(i) instanceof CompItem && app.project.item(i).name === name) {
            return app.project.item(i);
        }
    }
    return null;
}

I want you to modify this After Effects ExtendScript

1. When creating the comp, I want you to detect a precomp named "WINDOWFRAME" and place it below "WHITEBACKGROUND"

2. After the comp with the appropriate timing is created, I want after effects to extend that comp length to 11 frames

3. precomp the "WHITEBACKGROUND", "WINDOWFRAME" and the text layer and call it "DIALOGUEBOX"

4. Please find a precomp named "ANIMATEDMASK" and place it on top of the precomp "DIALOGUEBOX" in that range of 11 frames, set the track matte of "DIALOGUEBOX" to "ANIMATEDMASK"
and then set the track matte "invert matte" flag.