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

export const IconLinux24 = 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}
                    d="M12.42 2c-.13 0-.263.007-.4.018-3.522.277-2.588 4.005-2.642 5.248-.063.91-.25 1.627-.875 2.517-.737.875-1.772 2.291-2.263 3.767-.232.693-.342 1.403-.24 2.074a.352.352 0 00-.091.113c-.217.223-.375.5-.552.699-.166.166-.405.222-.665.333-.26.114-.548.224-.72.567a1.116 1.116 0 00-.11.502c0 .165.023.333.046.446.049.333.097.607.034.809-.208.566-.234.954-.089 1.236.145.279.446.392.784.501.675.167 1.591.113 2.311.5.772.388 1.555.558 2.18.392a1.477 1.477 0 001.007-.789c.489-.002 1.025-.224 1.883-.278.583-.048 1.312.223 2.148.167.02.111.052.165.095.277l.002.003c.326.648.928.943 1.57.892.643-.05 1.327-.447 1.881-1.088.526-.638 1.402-.903 1.982-1.253.29-.165.524-.39.54-.71.02-.334-.166-.676-.595-1.147v-.081l-.002-.003c-.142-.166-.208-.445-.282-.771-.07-.334-.151-.655-.41-.872h-.002c-.05-.045-.103-.056-.157-.112a.297.297 0 00-.158-.054c.359-1.065.22-2.125-.144-3.078-.445-1.175-1.221-2.198-1.813-2.902-.663-.838-1.313-1.631-1.3-2.807.022-1.793.197-5.111-2.953-5.116zm.44 2.838h.011c.178 0 .33.051.487.165.159.112.275.276.365.444.088.215.132.382.138.603 0-.017.005-.033.005-.05v.088a.074.074 0 01-.003-.018l-.003-.02a1.506 1.506 0 01-.125.588c-.039.105-.1.2-.178.28a.586.586 0 00-.073-.035c-.087-.038-.165-.054-.237-.111a1.094 1.094 0 00-.183-.055c.042-.05.122-.111.152-.165a.986.986 0 00.074-.335V6.2a1.006 1.006 0 00-.051-.333c-.038-.112-.084-.167-.153-.278-.07-.055-.139-.11-.222-.11h-.013c-.078 0-.147.025-.219.11a.666.666 0 00-.17.278.986.986 0 00-.075.334v.016c.001.074.006.149.016.222-.16-.056-.365-.112-.506-.168a1.368 1.368 0 01-.015-.167v-.016c-.006-.22.037-.44.125-.64a.9.9 0 01.359-.445.82.82 0 01.495-.165zm-2.468.049h.03c.119 0 .225.04.333.112.121.108.22.24.286.388.075.166.117.333.128.556v.003c.006.112.005.167-.002.222v.066c-.025.006-.046.015-.069.02-.127.046-.228.113-.327.167.01-.075.01-.15.002-.223v-.012c-.01-.111-.033-.167-.068-.278a.51.51 0 00-.139-.222.206.206 0 00-.152-.053h-.018c-.059.005-.108.033-.155.11a.46.46 0 00-.1.224.786.786 0 00-.019.276v.012c.01.112.031.167.067.278a.52.52 0 00.138.224.1.1 0 00.029.02c-.059.047-.098.058-.147.113a.253.253 0 01-.11.057 2.185 2.185 0 01-.228-.335 1.477 1.477 0 01-.13-.556 1.466 1.466 0 01.067-.557c.046-.164.127-.316.236-.446.107-.11.217-.166.348-.166zm1.142 1.421c.277 0 .61.054 1.013.333.244.167.436.224.877.39h.003c.212.113.337.222.398.332v-.109a.476.476 0 01.013.392c-.102.258-.43.536-.886.702v.001c-.223.113-.417.278-.646.388-.23.112-.49.243-.843.222a.949.949 0 01-.373-.056 2.975 2.975 0 01-.268-.165c-.163-.112-.303-.276-.51-.387v-.004h-.005c-.333-.205-.513-.427-.571-.592-.059-.223-.004-.392.16-.5.187-.112.317-.226.403-.28.087-.062.12-.085.147-.11h.001v-.002c.141-.168.364-.391.7-.5.115-.03.244-.055.387-.055zm2.333 1.785c.299 1.181.997 2.896 1.446 3.728.239.445.713 1.382.918 2.52.13-.004.275.015.428.053.538-1.392-.455-2.889-.907-3.305-.184-.167-.194-.279-.103-.279.492.445 1.138 1.31 1.372 2.297.108.446.133.92.017 1.392.056.024.113.05.171.056.86.445 1.178.782 1.025 1.28V15.8c-.05-.003-.1 0-.15 0h-.013c.125-.39-.152-.688-.888-1.02-.762-.333-1.371-.28-1.475.388-.007.035-.01.055-.015.112-.056.02-.116.044-.174.053-.358.224-.552.558-.66.99-.11.444-.143.963-.172 1.557v.003c-.016.278-.141.698-.265 1.125-1.25.893-2.984 1.281-4.457.278a2.204 2.204 0 00-.335-.444 1.206 1.206 0 00-.23-.278c.152 0 .282-.025.388-.056a.513.513 0 00.262-.278c.09-.223 0-.58-.288-.97-.287-.388-.775-.828-1.49-1.267-.525-.333-.821-.725-.958-1.163-.137-.445-.12-.904-.012-1.37.204-.893.727-1.76 1.061-2.303.09-.055.031.112-.34.811-.33.626-.95 2.081-.101 3.212a6.77 6.77 0 01.539-2.397c.47-1.065 1.452-2.92 1.53-4.39.04.03.18.113.24.169.182.11.317.277.492.387a.99.99 0 00.73.28c.033.002.063.004.092.004.343 0 .608-.111.83-.223.242-.112.434-.278.617-.333h.004c.39-.113.697-.335.871-.584zm1.821 7.465c.031.5.286 1.038.735 1.148.49.111 1.195-.278 1.493-.638l.175-.008c.263-.006.481.008.706.223l.003.003c.173.166.254.441.326.73.07.333.128.65.34.888.405.44.538.755.53.95l.003-.006v.015l-.002-.009c-.013.219-.155.33-.416.495-.524.334-1.454.593-2.047 1.308-.515.615-1.142.95-1.697.993-.553.044-1.03-.167-1.311-.748l-.005-.003c-.175-.333-.1-.854.047-1.408.147-.557.357-1.12.386-1.581.03-.595.063-1.113.162-1.512.1-.387.257-.664.535-.82l.037-.018v-.002zm-9.011.041h.008c.044 0 .087.004.13.012.314.046.589.277.853.627l.759 1.386.002.003c.203.444.628.886.99 1.364.363.498.643.942.608 1.308v.005c-.047.62-.4.957-.937 1.079-.538.112-1.267.001-1.996-.387-.807-.447-1.765-.391-2.38-.502-.308-.055-.51-.166-.603-.333-.092-.167-.094-.502.102-1.025v-.003l.002-.003c.097-.278.025-.627-.023-.932-.045-.334-.069-.591.036-.783.134-.278.33-.333.575-.444.245-.113.534-.169.763-.392h.001v-.002c.214-.223.371-.5.557-.698.158-.167.317-.28.553-.28zm5.965-7.562c-.362.168-.787.446-1.24.446-.451 0-.808-.222-1.066-.388-.129-.112-.234-.223-.311-.28-.137-.11-.12-.277-.062-.277.091.014.108.112.166.167.08.055.18.167.3.277.243.167.567.39.973.39.404 0 .877-.223 1.165-.389.162-.112.37-.278.54-.389.13-.113.124-.222.232-.222.107.013.028.111-.123.276a6.73 6.73 0 01-.574.39zm-.901-1.319V6.7c-.005-.017.01-.035.024-.042.061-.036.15-.022.216.004.053 0 .134.056.126.112-.005.041-.071.055-.113.055-.046 0-.077-.036-.117-.056-.044-.015-.122-.007-.136-.055zm-.46 0c-.016.049-.094.041-.138.055-.039.021-.072.057-.117.057-.041 0-.108-.017-.113-.057-.008-.055.073-.11.125-.11.067-.026.153-.04.216-.005.016.008.03.025.025.042v.017h.002v.001z"
                />
            </svg>
        );
    }
);
