def hsl_to_rgb(hsl_array):
    """!
    @brief  Convert hsl array [h, s, l] to rgb array [r, g, b].
    @details    HSL where h is in the set [0, 359] and s, l are in the set [0.0, 100.0].
                RGB where r, g, b in the set [0, 255].
                Formula adapted from https://www.rapidtables.com/convert/color/hsl-to-rgb.html
    @param  hsl_array   HSL array [h, s, l].
    @return RGB array [r, g, b].
    """
    # Normalize 0 <= s <= 1 AND 0 <= l <= 1
    h, s, l = hsl_array
    s, l = s/100, l/100

    r, g, b = None, None, None

    if s == 0:
        r = g = b = l   # Color is grayscale/achromatic.
    else:
        color_range = s * (1 - abs(2 * l - 1))
        x = color_range * (1 - abs(((h / 60) % 2) - 1))
        m = l - (color_range / 2)

        if 0 <= h < 60:
            r, g, b = color_range, x, 0
        elif 60 <= h < 120:
            r, g, b = x, color_range, 0
        elif 120 <= h < 180:
            r, g, b = 0, color_range, x
        elif 180 <= h < 240:
            r, g, b = 0, x, color_range
        elif 240 <= h < 300:
            r, g, b = x, 0, color_range
        elif 300 <= h < 360:
            r, g, b = color_range, 0, x

        r, g, b = (r+m), (g+m), (b+m)

    r, g, b = round(r*255), round(g*255), round(b*255)

    return [r, g, b]