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

export const IconSnyk24 = 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
                        fillRule="evenodd"
                        d="M16.11 9.49c.239 2.176.309 3.663.187 3.977-.108.28-.535.877-.896 1.355l.523 4.875L12 22.535 8.992 20.36l.328-3.057c-.178-.673-.222-1.407-.232-1.76l-.486 4.535-.52-.376.522-4.87c-.362-.48-.795-1.084-.904-1.366-.121-.315-.051-1.801.187-3.978l.003-.033-.762-2.07v-.041c0-.903 1.159-3.32 1.844-4.604l.334-.628.708 4.982.426.704.105-.036c.36-.122.902-.267 1.45-.267.579 0 1.161.168 1.457.268l.106.035.425-.704.708-4.982.334.628c.686 1.285 1.845 3.7 1.845 4.604v.042l-.763 2.07zm.158-2.206c-.042-.594-.655-2.017-1.24-3.215l-.144 1.01c.021.166.269 1.979 1.056 3.095zm-2.072 4.096c.062-.069.592-.674-.116-.674-.64 0-1.101.52-1.223.674zm-.645.705a.15.15 0 0 0 .147-.13.15.15 0 0 0-.043-.129l.003-.003.003-.002h-.43v.02c0 .312.25.564.558.564a.56.56 0 0 0 .56-.563v-.021h-.426c.08.05.127.144.113.244a.247.247 0 0 1-.279.213.25.25 0 0 1-.206-.193m-.964 6.575a1.3 1.3 0 0 1-.258-.133.48.48 0 0 1-.33.096.48.48 0 0 1-.33-.097 1.3 1.3 0 0 1-.258.133q.21.245.588.245.377 0 .588-.244M9.97 12.085a.151.151 0 0 0 .103-.259q.003 0 .004-.003l.003-.002h-.43v.02c0 .312.25.564.558.564s.56-.252.56-.563v-.021h-.426a.25.25 0 0 1-.166.457.25.25 0 0 1-.206-.193m-.052-1.379c-.708 0-.179.605-.116.674h1.339c-.123-.154-.583-.674-1.223-.674m-.94-6.637c-.584 1.198-1.198 2.62-1.24 3.215l.336.911c.73-1.013 1.001-2.62 1.06-3.03zm.572 11.304c0 .051.003 1.265.317 2.133.254.7.82.775 1.053.775.6 0 .844-.55.855-.573v-.28l-.004-.002s.01-.235-.023-.313c-.06-.14-.191-.107-.293.075l-.006.013-.005.012c-.287-.21-.578-.47-.578-.67 0-.183.228-.505.237-.518l-.155-2.942-.987 1.135-.63.186c-.404-.532-.771-1.053-.845-1.223-.052-.245.038-1.852.241-3.687l.016-.143-.109-.296q.451-.519.793-1.312l.672 1.112.482-.208c.007-.004.73-.31 1.414-.31H12v-.374h-.003c-.77 0-1.548.335-1.562.34l-.185.08-.68-1.127-.1-.699-.189.54c-.272.777-.613 1.386-1.014 1.809l-.06.064.158.427-.006.056c-.143 1.29-.33 3.474-.226 3.84l.004.012c.117.304.898 1.34 1.362 1.92l.052.065zm1.297 3.373c.065.591.715.81 1.16.81.438 0 1.08-.219 1.143-.81l-.072.003q-.077 0-.151-.009c-.199.386-.56.51-.928.51-.369 0-.732-.123-.93-.51a1 1 0 0 1-.149.009l-.057-.002zm3.6-3.456.052-.064c.16-.2.355-.451.55-.71l-1.012-.298-.987-1.135-.155 2.942c.01.014.237.335.237.519 0 .2-.292.46-.58.669l-.003-.011-.007-.015c-.101-.18-.232-.214-.292-.075-.034.08-.023.314-.023.314l-.005.003v.269c.017.036.264.583.856.583.232 0 .799-.075 1.052-.775.314-.867.318-2.082.318-2.133z"
                        clipRule="evenodd"
                    />
                    <path d="M11.996 7.121c-.514 0-1.016.115-1.392.23l-.233-.385-.155-1.094q.832-.058 1.792-.06c.688 0 1.774.058 1.774.058l-.155 1.096-.234.386a5 5 0 0 0-1.398-.23M17.241 7.345c0-.266-.08-.626-.208-1.03.992.216 1.525.42 1.525.42v11.057l-2.244 1.622-.487-4.54c.45-.606.725-1.034.816-1.271.186-.48.019-2.482-.157-4.1l.755-2.05zM7.354 13.603c-.185-.48-.018-2.482.158-4.1l-.755-2.049v-.109c0-.266.08-.625.207-1.028-.992.216-1.525.418-1.525.418v11.058l2.253 1.628.486-4.536c-.453-.611-.732-1.043-.824-1.283" />
                </g>
            </svg>
        );
    }
);
