import { forwardRef, useMemo } from 'react';
import { IconProps } from './types';

export const IconHelm24 = forwardRef<SVGSVGElement, IconProps>(
    ({ color = 'currentColor', title, ...props }, svgRef) => {
        const titleId = useMemo(
            () =>
                title
                    ? 'title-' + Math.random().toString(36).substr(2, 9)
                    : undefined,
            [title]
        );
        return (
            <svg
                xmlns="http://www.w3.org/2000/svg"
                width={24}
                height={24}
                fill="none"
                viewBox="0 0 24 24"
                aria-hidden={!title}
                ref={svgRef}
                aria-labelledby={titleId}
                {...props}
            >
                {title ? <title id={titleId}>{title}</title> : null}
                <g fill={color}>
                    <path d="m7.44 6.825.021.02q-.105.108-.21.211-.23.23-.448.462c-.282.305-.531.646-.556.742h.39q.456 0 .91.002a.19.19 0 0 0 .155-.07q.314-.346.68-.634a5.86 5.86 0 0 1 3.3-1.273q.609-.04 1.212.047a5.9 5.9 0 0 1 3.527 1.862.16.16 0 0 0 .127.068q.426-.003.85-.002h.422a.4.4 0 0 0 .067-.012 7 7 0 0 0-1.064-1.235l.006-.005.013-.013.024-.022c.41-.32.733-.714 1.004-1.153.193-.305.338-.639.43-.988q.051-.204.03-.414c-.018-.188-.123-.346-.374-.317a.7.7 0 0 0-.147.034 1.5 1.5 0 0 0-.473.275 4.35 4.35 0 0 0-1.316 1.87q-.009.024-.02.044l-.003.007-.005.01-.23-.134c-.173-.1-.343-.2-.519-.288a8 8 0 0 0-.79-.343 8 8 0 0 0-.818-.24c-.193-.046-.389-.08-.585-.113l-.261-.046q.111-.391.14-.797a4.5 4.5 0 0 0-.085-1.32 2.1 2.1 0 0 0-.21-.587.7.7 0 0 0-.235-.269.28.28 0 0 0-.32.002.6.6 0 0 0-.127.113q-.148.183-.22.407a3.4 3.4 0 0 0-.177.87 4.5 4.5 0 0 0 .106 1.479l.011.055.007.033a7.05 7.05 0 0 0-3.241.994l-.012-.01q-.009-.006-.01-.01L8.4 6.101a4.5 4.5 0 0 0-.869-1.337c-.206-.224-.431-.429-.707-.567a1 1 0 0 0-.229-.088c-.252-.06-.424.07-.442.327l-.002.035v.022c-.01.2.04.39.107.575.236.662.626 1.223 1.13 1.708zM16.822 17.003q.536-.493.96-1.087l-.008-.023h-.419q-.429.001-.858-.002a.3.3 0 0 0-.24.098q-2.037 1.989-4.864 1.714a5.6 5.6 0 0 1-1.988-.591 5.9 5.9 0 0 1-1.576-1.156.19.19 0 0 0-.149-.065q-.44.003-.88.002H6.42a1 1 0 0 0-.092.007c.328.461.71.882 1.138 1.253l-.014.026-.035.033-.02.02a4.5 4.5 0 0 0-1.06 1.51q-.126.273-.173.57c-.02.141-.03.283.027.42a.28.28 0 0 0 .216.18.5.5 0 0 0 .261-.028c.176-.062.34-.157.482-.278a4.4 4.4 0 0 0 1.236-1.657l.013-.03.015-.032.016-.036a7.04 7.04 0 0 0 3.239 1l.002.01.002.005q.003.01.002.014l-.014.065a3.8 3.8 0 0 0-.116.767q-.033.532.055 1.059c.045.256.108.507.231.738q.064.122.157.225c.155.168.345.167.504.003a.5.5 0 0 0 .094-.12q.093-.169.166-.349.152-.437.177-.899a4.4 4.4 0 0 0-.119-1.458l-.011-.055-.006-.031a7.5 7.5 0 0 0 1.132-.216 7 7 0 0 0 1.067-.389q.522-.243 1-.56l.013.032.017.043c.262.73.718 1.376 1.317 1.869q.171.136.367.232.13.062.271.08a.29.29 0 0 0 .326-.2.6.6 0 0 0 .03-.148 1.4 1.4 0 0 0-.088-.577 4.33 4.33 0 0 0-1.347-1.926zM16.03 9.91l.102.002q.113.005.222-.004c.12-.01.206.032.293.113q.57.524 1.146 1.044l.002.001.374.34.054.047.03.028.03-.025.057-.05q.786-.715 1.57-1.431a.22.22 0 0 1 .168-.066q.136.005.275.002h.12v4.214c-.07.02-.996.024-1.106.003v-2.135l-.022-.01-1.09.994-1.098-.99-.02.008-.001.363v1.777h-1.097c-.02-.07-.03-3.986-.01-4.225M6.996 9.915h-1.09v1.131l-.001.253v.11c-.119.021-1.277.017-1.355-.006V9.916H3.448v4.21c.093.023 1.024.02 1.106-.004v-1.59h1.351v1.062q0 .27.003.542H7c.022-.102.018-4.15-.004-4.22M8.303 14.135V9.928c.065-.021 2.462-.03 2.618-.008v.896l-.033.003q-.037.004-.074.004h-1.4v.698h1.334v.928H9.426c-.022.08-.028.633-.01.786l.032.002.074.005h1.4v.893zM12.175 9.916c-.02.076-.024 4.107-.004 4.22h2.618v-1.103h-1.407q-.036 0-.076-.004l-.044-.003v-3.11z" />
                </g>
            </svg>
        );
    }
);
