You will write JavaScript code for specified task. You will add comments only to lines of code, which requires explanation. You will not comment obvious lines of code which are easy to understand. Your comments will be short and descriptive. You will place comments only before lines which requires explanations. Adding comments before whole code or after whole code is strictly prohibited. You will be provided with list of functions, never mention name of provided functions in comments. You will be provided with list of functions, only those functions are allowed to use in generated code. Other functions and methods, including JavaScript default methods are not allowed. Methods of Array class are not allowed. You will use for of operator to iterate over list. For example: for(let list_element of list) { log(list_element) } Methods of String class are not allowed. You will use + operator to concatenate strings. Javascript string or array may be accessed or manipulated only by using provided functions. Any using of `function` keyword or => operator is strictly prohibited. Avoid grouping code into functions, even if it will cause code repetition. Defining new functions is strictly prohibited. Only use the functions listed below. No exceptions. No modern JavaScript features: Stick to old-style, basic JavaScript coding practices. Here are all available functions: --------------- /** * Constructs a new list (array), optionally pre-populated with provided elements. * * This function creates an empty list by default. However, it can also initialize * the list with a set of values passed as arguments. Each argument provided to the * function is added as an element in the new list, maintaining the order of arguments. * * @param {...*} ListItems - An optional set of values to initialize the list. These * values can be of any type. If no arguments are provided, * the function creates an empty list. * * @example * // Create an empty list: * CreateList() // Returns [] * * @example * // Create a list with initial elements: * CreateList("a", "b", "c") // Returns ["a", "b", "c"] * * @returns {Array} A new list, either empty or containing the provided initial elements. */ CreateList(...ListItems) /** * Evaluates whether a given string begins with a specified substring, starting from an optional index. * * @example * starts_with("Test text", "Test") // Returns true * starts_with("Just example string", "example") // Returns false * starts_with("Test text", "text", 5) // Returns true * * @param {string} string - The main string to check. * @param {string} substring - The substring to verify at the start of the main string. * @param {number} [index_from=0] - Optional starting index for the check. * * @returns {boolean} True if the main string starts with the substring from the given index, otherwise false. */ starts_with(string, substring, index_from) /** * Appends an item to the end of a given list (array) in place. * * @example * let ArrayExample = [1, 2, 3] * AppendElementToList(ArrayExample, "new item") // ArrayExample will contain [1, 2, 3, "new item"] * * @param {Array} List - The original list to which the item should be appended. * @param {*} Value - The item to be added to the list. * */ AppendElementToList(List, Value) /** * Retrieves an element from the list(array) at the specified index. Optionally, it can remove the element from the list. * * @example * GetListElementByIndex([1, 2, 3, 4], 2, false) // Returns 3 without modifying the original list * GetListElementByIndex([1, 2, 3, 4], 2, true) // Returns 3 and removes it from the list * * @param {Array} List - The list from which to retrieve the element. * @param {number} Index - The index of the element to retrieve. * @param {boolean} Remove - If true, the retrieved element will be removed from the list. * * @returns The element at the specified index from the list. */ GetListElementByIndex(List, Index, Remove) /** * Extracts a specific portion of a string based on start and end indices. * * Behavior: * - If neither 'index_from' nor 'index_to' are specified, the entire string is returned. * - If only 'index_from' is specified, the substring from 'index_from' to the string's end is returned. * - If only 'index_to' is specified, the substring from the start to 'index_to' is returned. * - If both 'index_from' and 'index_to' are specified, the substring between these indices is extracted. * - Negative indices are interpreted as positions counting from the end of the string. * * @param {string} string - The string from which the substring is to be extracted. * @param {number} [index_from] - The start index for the substring. Negative values count backwards from the end of the string. * @param {number} [index_to] - The end index for the substring. Char with index_to will not be included in resulting substring. Negative values count backwards from the end of the string. * * @example * get_substring("Just example string", 5, 12) // Returns "example" * @example * get_substring("Just example string", 5) // Returns "example string" * @example * get_substring("Just example string", -13, -6) // Returns "example" * * @returns {string} - The extracted substring based on the specified indices. */ get_substring(string, index_from, index_to) --------------- Only these functions are allowed. Strictly prohibited to define new functions. Using only provided functions implement following task: Filter LINKS list, remove all elements which starts with "about:"