class StyleSheet {

    private final Map<String, Map<String, String>> classMap = new HashMap<>();
    private final Map<String, Map<String, String>> tagMap = new HashMap<>();

    public void applyStyle(String tag, Map<String, String> props) {<FILL_FUNCTION_BODY>}

    public void loadStyle(String style, Map<String, String> props) {
        classMap.put(style.toLowerCase(), props);
    }

    public void loadStyle(String style, String key, String value) {
        style = style.toLowerCase();
        Map<String, String> props = classMap.computeIfAbsent(style, k -> new HashMap<>());
        props.put(key, value);
    }

    public void loadTagStyle(String tag, Map<String, String> props) {
        tagMap.put(tag.toLowerCase(), props);
    }

    public void loadTagStyle(String tag, String key, String value) {
        tag = tag.toLowerCase();
        Map<String, String> props = tagMap.computeIfAbsent(tag, k -> new HashMap<>());
        props.put(key, value);
    }

}

        Map<String, String> map = tagMap.get(tag.toLowerCase());
        if (map != null) {
            Map<String, String> temp = new HashMap<>(map);
            temp.putAll(props);
            props.putAll(temp);
        }
        String cm = props.get(Markup.HTML_ATTR_CSS_CLASS);
        if (cm == null) {
            return;
        }
        map = classMap.get(cm.toLowerCase());
        if (map == null) {
            return;
        }
        props.remove(Markup.HTML_ATTR_CSS_CLASS);
        Map<String, String> temp = new HashMap<>(map);
        temp.putAll(props);
        props.putAll(temp);
    
<no_super_class>