/* GENERATED FILE */
import React, { forwardRef } from 'react'

import type {
  IconWeight,
  IconProps,
  PaintFunction,
  Icon,
  RenderFunction,
} from '../lib'
import { renderPathForWeight, useIconContext, IconBase } from '../lib'

export const IconUsersFour: Icon = forwardRef<SVGSVGElement, IconProps>(
  (props, ref) => {
    let path: PaintFunction

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M25.60059,115.19336A67.8103,67.8103,0,0,1,53.0293,93.51074a40,40,0,1,1,53.9414,0A67.30469,67.30469,0,0,1,128,107.81421a67.29094,67.29094,0,0,1,21.0293-14.30347,40,40,0,1,1,53.9414,0,67.81009,67.81009,0,0,1,27.42676,21.68067,7.99981,7.99981,0,1,1-12.79248,9.60937,52.0088,52.0088,0,0,0-83.21143.00195c-.01318.01758-.0288.032-.042.04932a7.86941,7.86941,0,0,1-.5166.60791c-.05957.064-.1206.12476-.18213.18628q-.21019.20983-.43847.406c-.08838.07666-.17725.15185-.26807.22387-.04785.03784-.09082.07959-.13965.11646-.09131.06836-.1875.12524-.28076.18921-.10156.07007-.20166.14184-.30615.20654-.16358.10181-.33155.19238-.5.281-.084.04419-.165.0935-.25.13452a7.94481,7.94481,0,0,1-1.62012.57348c-.08057.01905-.16211.0315-.24365.0481-.19434.03979-.38916.07544-.58545.10034-.11035.01416-.22071.02295-.33106.03272-.16552.01416-.33056.02417-.49609.02807-.06738.00171-.13477.01148-.20215.01148-.0459,0-.09082-.00977-.13623-.01075a8.03172,8.03172,0,0,1-1.03027-.08081c-.09424-.01391-.187-.03637-.28076-.05371a7.99507,7.99507,0,0,1-.83692-.2019c-.09424-.02832-.18945-.05078-.2832-.08276a8.00518,8.00518,0,0,1-.96045-.40381c-.09326-.04615-.18555-.09375-.27783-.14405a7.8885,7.8885,0,0,1-.92823-.58471c-.021-.01538-.04443-.02539-.06494-.041-.1167-.0874-.22168-.18408-.332-.27637-.064-.0542-.13037-.10473-.19287-.16088-.166-.1482-.32129-.304-.47266-.4629-.02636-.02807-.05468-.054-.08056-.08251a7.99527,7.99527,0,0,1-.61231-.74,52.00276,52.00276,0,0,0-83.1084.13085,8,8,0,1,1-12.793-9.60937ZM202.9707,197.51074a40,40,0,1,0-53.9414,0A67.29094,67.29094,0,0,0,128,211.81421a67.30469,67.30469,0,0,0-21.0293-14.30347,40,40,0,1,0-53.9414,0,67.8103,67.8103,0,0,0-27.42871,21.68262,8,8,0,0,0,6.39648,12.80469l95.97266-.002.02734.002,96.00439-.002a7.9996,7.9996,0,0,0,6.396-12.80468A67.81009,67.81009,0,0,0,202.9707,197.51074Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <circle
              cx="80"
              cy="168"
              r="32"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M31.99717,223.99792a60.00878,60.00878,0,0,1,96.004-.00225"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <circle
              cx="80"
              cy="64"
              r="32"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M31.99717,119.99792a60.00878,60.00878,0,0,1,96.004-.00225"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <circle
              cx="176"
              cy="168"
              r="32"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M127.99717,223.99792a60.00878,60.00878,0,0,1,96.004-.00225"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <circle
              cx="176"
              cy="64"
              r="32"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M127.99717,119.99792a60.00878,60.00878,0,0,1,96.004-.00225"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
          </>
        )
        break
    }

    const renderPath: RenderFunction = (weight: IconWeight) =>
      renderPathForWeight(weight, path)

    const { useIconProps } = useIconContext()
    const parsedProps = useIconProps(props)

    return <IconBase ref={ref} {...parsedProps} renderPath={renderPath} />
  }
)
