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

export const IconFingerprint24 = 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}
                <path
                    fill={color}
                    fillRule="evenodd"
                    d="M14.802 1.26c-3.792-.863-7.57.48-9.995 3.177A.75.75 0 105.923 5.44a8.841 8.841 0 018.546-2.718 8.8 8.8 0 014.622 2.717.75.75 0 001.118-1 10.3 10.3 0 00-5.407-3.18zM4.737 7.118a.75.75 0 00-1.318-.716 10.352 10.352 0 00-.998 2.65c-.466 2.05-.897 3.074-1.327 3.848a.75.75 0 001.312.728c.516-.929.99-2.095 1.478-4.244.185-.812.475-1.57.853-2.266zm16.858-.717a.75.75 0 10-1.318.718 8.808 8.808 0 01.855 6.187c-.385 1.694-.828 3.262-1.374 4.76a.75.75 0 101.409.514c.572-1.57 1.032-3.2 1.428-4.941.58-2.555.16-5.105-1-7.238zm-7.991.185a4.85 4.85 0 00-5.805 3.654 27.905 27.905 0 01-.82 2.94.75.75 0 101.418.49 29.39 29.39 0 00.865-3.097 3.35 3.35 0 016.426-.373.75.75 0 001.414-.502 4.847 4.847 0 00-3.498-3.112zm3.654 5.805a.75.75 0 10-1.463-.333c-.698 3.071-1.55 5.48-2.815 7.756-.383.69-.798 1.356-1.245 2.012a.75.75 0 001.24.845c.47-.69.909-1.394 1.317-2.13 1.35-2.43 2.245-4.98 2.966-8.15zm-10.135 4.17a.75.75 0 00-1.31-.73c-.489.88-1.083 1.754-1.875 2.767a.75.75 0 001.182.924c.826-1.057 1.468-1.997 2.003-2.962zm5.238-12.12a.75.75 0 01-.643.844 6.086 6.086 0 00-5.121 4.682c-.558 2.451-1.142 3.968-1.863 5.266a17.572 17.572 0 01-1.165 1.808.75.75 0 01-1.214-.882c.437-.601.779-1.134 1.068-1.655.634-1.142 1.176-2.517 1.711-4.87A7.586 7.586 0 0111.517 3.8a.75.75 0 01.844.643zm.951.045a.75.75 0 01.898-.565 7.583 7.583 0 015.713 9.076 45.025 45.025 0 01-.677 2.629.75.75 0 01-1.44-.42c.237-.81.453-1.654.654-2.542a6.083 6.083 0 00-4.583-7.28.75.75 0 01-.565-.898zm4.562 12.964a.75.75 0 01.426.972 28.137 28.137 0 01-1.619 3.447.75.75 0 01-1.311-.728 26.646 26.646 0 001.533-3.265.75.75 0 01.971-.426zm-4.876-8.198a2.115 2.115 0 00-1.88.485.75.75 0 101 1.12.615.615 0 011.012.595c-.446 1.962-.946 3.58-1.564 5.037a.75.75 0 001.38.586c.663-1.56 1.187-3.267 1.647-5.29a2.117 2.117 0 00-1.595-2.533zm-1.496 3.63a.75.75 0 00-1.446-.4c-.518 1.876-1.108 3.333-1.854 4.677-.563 1.013-1.231 1.993-2.066 3.066a.75.75 0 001.184.921c.869-1.117 1.584-2.162 2.193-3.259.813-1.463 1.445-3.033 1.989-5.005zm.4 6.333a.75.75 0 00-1.31-.729 25.143 25.143 0 01-1.872 2.858.75.75 0 001.201.898 26.63 26.63 0 001.981-3.027z"
                    clipRule="evenodd"
                />
            </svg>
        );
    }
);
