/* GENERATED FILE */
import  { useContext  } from "solid-js";
import { IconContext } from "../lib";

const renderPathFor = (weight: string, color: string) => {
  switch (weight) {
    case "bold":
      return (
        <>
          <circle cx="128" cy="128" r="44" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>
  <path d="M122.87457,44.15392,104.0051,30.006a7.99514,7.99514,0,0,0-7.17954-1.24562A103.35049,103.35049,0,0,0,79.883,35.77028a8.00249,8.00249,0,0,0-4.20618,5.96441L72.3411,65.08557q-1.90725,1.69062-3.73445,3.51677Q66.78,70.429,65.089,72.33777l-.00051.0004L41.74171,75.67684a7.99514,7.99514,0,0,0-5.95749,4.19591,103.35182,103.35182,0,0,0-7.02349,16.93693,8.00252,8.00252,0,0,0,1.24326,7.19169l14.15286,18.87027q-.15318,2.54408-.15392,5.12738,0,2.58326.154,5.1287l-.00008.00064L30.009,151.99783a7.99514,7.99514,0,0,0-1.24562,7.17954,103.35049,103.35049,0,0,0,7.00986,16.94257,8.00249,8.00249,0,0,0,5.96441,4.20618l23.35088,3.33571q1.69062,1.90725,3.51677,3.73445,1.82662,1.82663,3.73543,3.51764l.0004.00051,3.33867,23.34679a7.99514,7.99514,0,0,0,4.19591,5.95749,103.35182,103.35182,0,0,0,16.93693,7.02349,8.00252,8.00252,0,0,0,7.19169-1.24326l18.87027-14.15286q2.54407.15318,5.12738.15392,2.58326,0,5.1287-.154l.00064.00008L152.00076,225.994a7.99514,7.99514,0,0,0,7.17954,1.24562,103.35049,103.35049,0,0,0,16.94257-7.00986,8.00249,8.00249,0,0,0,4.20618-5.96441l3.33571-23.35088q1.90725-1.69062,3.73445-3.51677,1.82663-1.82663,3.51764-3.73543l.00051-.0004,23.34679-3.33867a7.99516,7.99516,0,0,0,5.95749-4.19591,103.35182,103.35182,0,0,0,7.02349-16.93693,8.00252,8.00252,0,0,0-1.24326-7.19169L211.849,133.12836q.15318-2.54407.15392-5.12738,0-2.58326-.154-5.1287l.00008-.00064,14.14788-18.86947a7.99514,7.99514,0,0,0,1.24562-7.17954,103.35136,103.35136,0,0,0-7.00986-16.94257,8.00249,8.00249,0,0,0-5.96441-4.20618l-23.35088-3.33571q-1.69062-1.90725-3.51677-3.73445-1.82663-1.82662-3.73543-3.51764l-.0004-.00051-3.33867-23.34679a7.99514,7.99514,0,0,0-4.19591-5.95749,103.35182,103.35182,0,0,0-16.93693-7.02349,8.00252,8.00252,0,0,0-7.19169,1.24326L133.13129,44.15392q-2.54408-.15318-5.12738-.15392-2.58325,0-5.1287.154Z" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>
        </>
      )
    case "duotone":
      return (
        <>
          <path d="M226.00391,151.99854l-14.15284-18.87012q.15308-2.54408.15381-5.12744,0-2.58326-.15381-5.12867v-.00073l14.148-18.86938a7.99672,7.99672,0,0,0,1.24561-7.17945,103.32133,103.32133,0,0,0-7.01026-16.94262,8.00171,8.00171,0,0,0-5.96435-4.2063l-23.35059-3.3357q-1.69116-1.90722-3.51709-3.73437-1.82665-1.82665-3.73535-3.51782v-.00049l-3.33887-23.34668a7.99635,7.99635,0,0,0-4.1958-5.95752,103.33431,103.33431,0,0,0-16.937-7.02344,8.00348,8.00348,0,0,0-7.19189,1.24317L133.1333,44.15381q-2.54443-.15307-5.12744-.15381-2.58326,0-5.12891.154l-.00049-.00024L104.00684,30.0061a7.9938,7.9938,0,0,0-7.1792-1.2456,103.35208,103.35208,0,0,0-16.94287,7.00976,8.00291,8.00291,0,0,0-4.20606,5.96436L72.34326,65.08545q-1.90722,1.6908-3.73486,3.51684-1.82667,1.82667-3.51758,3.7356l-.00049.00024L41.74365,75.67676a7.9965,7.9965,0,0,0-5.95752,4.196A103.33174,103.33174,0,0,0,28.7627,96.80957a8.00347,8.00347,0,0,0,1.24316,7.19189l14.15283,18.87012q-.15307,2.54407-.15381,5.12744,0,2.58326.15381,5.12867v.00073l-14.148,18.86938a7.99672,7.99672,0,0,0-1.2456,7.17945,103.32129,103.32129,0,0,0,7.01025,16.94262,8.00173,8.00173,0,0,0,5.96436,4.2063l23.35058,3.3357q1.69116,1.90722,3.51709,3.73437,1.82667,1.82665,3.73535,3.51782l.00049.00049,3.33838,23.34668a7.99638,7.99638,0,0,0,4.1958,5.95752,103.35211,103.35211,0,0,0,16.937,7.02344,8.0035,8.0035,0,0,0,7.1919-1.24317l18.87011-14.15283q2.54444.15307,5.12745.15381,2.58324,0,5.1289-.15405l.00049.00024,18.86963,14.14771a7.9938,7.9938,0,0,0,7.1792,1.2456,103.35244,103.35244,0,0,0,16.94287-7.00976,8.0029,8.0029,0,0,0,4.20605-5.96436l3.33594-23.35083q1.90724-1.6908,3.73438-3.51684,1.82666-1.82667,3.51758-3.7356l.00048-.00024,23.34668-3.33863a7.9965,7.9965,0,0,0,5.95752-4.196,103.3309,103.3309,0,0,0,7.02344-16.93677A8.0035,8.0035,0,0,0,226.00391,151.99854ZM128.00488,176a48,48,0,1,1,48-48A47.99988,47.99988,0,0,1,128.00488,176Z" opacity="0.2"/>
  <circle cx="128.00488" cy="128" r="48" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
  <path d="M122.87653,44.15392,104.00705,30.006a7.99514,7.99514,0,0,0-7.17954-1.24562,103.35049,103.35049,0,0,0-16.94257,7.00986,8.00251,8.00251,0,0,0-4.20618,5.96441L72.34305,65.08557q-1.90725,1.69062-3.73445,3.51677Q66.782,70.429,65.091,72.33777l-.0005.0004-23.3468,3.33867a7.99516,7.99516,0,0,0-5.95749,4.19591,103.35182,103.35182,0,0,0-7.02349,16.93693,8.00252,8.00252,0,0,0,1.24326,7.19169l14.15287,18.87027q-.1532,2.54408-.15393,5.12738,0,2.58326.154,5.1287l-.00008.00064L30.01093,151.99783a7.99512,7.99512,0,0,0-1.24562,7.17954,103.35131,103.35131,0,0,0,7.00985,16.94257,8.00251,8.00251,0,0,0,5.96441,4.20618l23.35089,3.33571q1.69061,1.90725,3.51676,3.73445,1.82664,1.82663,3.73544,3.51764l.00039.00051,3.33867,23.34679a7.99513,7.99513,0,0,0,4.19592,5.95749,103.35135,103.35135,0,0,0,16.93692,7.02349,8.00254,8.00254,0,0,0,7.1917-1.24326l18.87027-14.15286q2.54406.15318,5.12738.15392,2.58324,0,5.1287-.154l.00063.00008L152.00271,225.994a7.99514,7.99514,0,0,0,7.17954,1.24562,103.351,103.351,0,0,0,16.94258-7.00986,8.00254,8.00254,0,0,0,4.20618-5.96441l3.33571-23.35088q1.90725-1.69062,3.73444-3.51677,1.82662-1.82663,3.51764-3.73543l.00051-.0004,23.34679-3.33867a7.99514,7.99514,0,0,0,5.95749-4.19591,103.351,103.351,0,0,0,7.02349-16.93693,8.00254,8.00254,0,0,0-1.24325-7.19169L211.851,133.12836q.15318-2.54407.15392-5.12738,0-2.58326-.154-5.1287l.00008-.00064,14.14788-18.86947a7.99514,7.99514,0,0,0,1.24562-7.17954,103.35131,103.35131,0,0,0-7.00985-16.94257,8.00252,8.00252,0,0,0-5.96442-4.20618l-23.35088-3.33571q-1.69061-1.90725-3.51677-3.73445-1.82662-1.82662-3.73543-3.51764l-.00039-.00051L180.328,41.73878a7.99512,7.99512,0,0,0-4.19591-5.95749,103.35135,103.35135,0,0,0-16.93692-7.02349,8.00254,8.00254,0,0,0-7.1917,1.24326L133.13324,44.15392q-2.54408-.15318-5.12738-.15392-2.58324,0-5.1287.154Z" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
        </>
      )
    case "fill":
      return (
        <>
          <path d="M232.39894,147.19845l-12.43555-16.58106c.02442-.873.03662-1.74707.03662-2.6167,0-.87011-.0122-1.74511-.0371-2.61963l12.43066-16.57959A16.027,16.027,0,0,0,234.874,94.43135a111.771,111.771,0,0,0-7.55274-18.25488,16.03337,16.03337,0,0,0-11.9248-8.42237l-20.51758-2.93066q-.89941-.95216-1.82422-1.877-.92286-.92285-1.87842-1.82617l-2.93359-20.51465a16.03111,16.03111,0,0,0-8.40821-11.91406,111.63548,111.63548,0,0,0-18.24805-7.5669,16.03793,16.03793,0,0,0-14.38818,2.47608L130.61816,36.03632c-1.74755-.04834-3.48877-.04834-5.23632,0L108.80078,23.60419a16.03566,16.03566,0,0,0-14.37012-2.47851,111.64349,111.64349,0,0,0-18.25245,7.55273A16.0328,16.0328,0,0,0,67.7539,40.60322L64.82323,61.1208q-.95434.90234-1.876,1.82471-.92433.92358-1.82666,1.87793L40.60546,67.757a16.0303,16.0303,0,0,0-11.91309,8.40821A111.6597,111.6597,0,0,0,21.125,94.41329,16.03524,16.03524,0,0,0,23.60106,108.801L36.03661,125.382c-.02442.873-.03662,1.74707-.03662,2.6167,0,.87012.0122,1.74512.0371,2.61963L23.60643,147.198A16.027,16.027,0,0,0,21.126,161.56808,111.77105,111.77105,0,0,0,28.6787,179.823a16.03335,16.03335,0,0,0,11.9248,8.42236L61.12108,191.176q.89941.95214,1.82422,1.877.92286.92284,1.87842,1.82617l2.93359,20.51465a16.03112,16.03112,0,0,0,8.40821,11.91407,111.63455,111.63455,0,0,0,18.24805,7.56689,15.89624,15.89624,0,0,0,4.76221.72852,16.0616,16.0616,0,0,0,9.626-3.20459l16.58009-12.43555c1.74755.04932,3.48877.04883,5.23632,0l16.58106,12.43213a16.03567,16.03567,0,0,0,14.37012,2.47852,111.64353,111.64353,0,0,0,18.25245-7.55274,16.03277,16.03277,0,0,0,8.42431-11.9248l2.93067-20.51759q.95434-.90234,1.876-1.8247.92433-.9236,1.82666-1.87793l20.51514-2.9336a16.03027,16.03027,0,0,0,11.91309-8.4082,111.66043,111.66043,0,0,0,7.56739-18.24805A16.03525,16.03525,0,0,0,232.39894,147.19845ZM172,127.99972a44,44,0,1,1-44-44A44.04973,44.04973,0,0,1,172,127.99972Z"/>
        </>
      )
    case "light":
      return (
        <>
          <circle cx="128.00195" cy="128" r="48" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>
  <path d="M122.8736,44.15392,104.00412,30.006a7.99514,7.99514,0,0,0-7.17954-1.24562A103.35049,103.35049,0,0,0,79.882,35.77028a8.00251,8.00251,0,0,0-4.20618,5.96441L72.34012,65.08557q-1.90725,1.69062-3.73445,3.51677Q66.779,70.429,65.088,72.33777l-.0005.0004-23.3468,3.33867a7.99513,7.99513,0,0,0-5.95748,4.19591,103.35186,103.35186,0,0,0-7.0235,16.93693,8.00252,8.00252,0,0,0,1.24326,7.19169l14.15287,18.87027q-.1532,2.54408-.15393,5.12738,0,2.58326.154,5.1287l-.00008.00064L30.008,151.99783a7.99512,7.99512,0,0,0-1.24562,7.17954,103.35131,103.35131,0,0,0,7.00985,16.94257,8.00251,8.00251,0,0,0,5.96441,4.20618l23.35089,3.33571q1.69061,1.90725,3.51676,3.73445,1.82664,1.82663,3.73544,3.51764l.00039.00051,3.33867,23.34679a7.99513,7.99513,0,0,0,4.19592,5.95749,103.35135,103.35135,0,0,0,16.93692,7.02349,8.00254,8.00254,0,0,0,7.1917-1.24326l18.87027-14.15286q2.54406.15318,5.12738.15392,2.58324,0,5.1287-.154l.00063.00008L151.99978,225.994a7.99514,7.99514,0,0,0,7.17954,1.24562,103.351,103.351,0,0,0,16.94258-7.00986,8.00254,8.00254,0,0,0,4.20618-5.96441l3.33571-23.35088q1.90725-1.69062,3.73444-3.51677,1.82664-1.82663,3.51764-3.73543l.00051-.0004,23.34679-3.33867a7.99514,7.99514,0,0,0,5.95749-4.19591,103.351,103.351,0,0,0,7.02349-16.93693,8.00251,8.00251,0,0,0-1.24325-7.19169L211.848,133.12836q.15318-2.54407.15392-5.12738,0-2.58326-.154-5.1287l.00008-.00064,14.14788-18.86947a7.99514,7.99514,0,0,0,1.24562-7.17954,103.35131,103.35131,0,0,0-7.00985-16.94257,8.00252,8.00252,0,0,0-5.96442-4.20618l-23.35088-3.33571q-1.69061-1.90725-3.51677-3.73445-1.82662-1.82662-3.73543-3.51764l-.00039-.00051-3.33868-23.34679a7.99512,7.99512,0,0,0-4.19591-5.95749,103.35135,103.35135,0,0,0-16.93692-7.02349,8.00254,8.00254,0,0,0-7.1917,1.24326L133.13031,44.15392q-2.54408-.15318-5.12738-.15392-2.58324,0-5.1287.154Z" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>
        </>
      )
    case "thin":
      return (
        <>
          <circle cx="128.00098" cy="128" r="48" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>
  <path d="M122.87262,44.15392,104.00314,30.006a7.99512,7.99512,0,0,0-7.17953-1.24562A103.351,103.351,0,0,0,79.881,35.77028a8.00254,8.00254,0,0,0-4.20618,5.96441L72.33914,65.08557q-1.90725,1.69062-3.73444,3.51677-1.82664,1.82662-3.51764,3.73543l-.00051.0004L41.73976,75.67684a7.99513,7.99513,0,0,0-5.95749,4.19591,103.351,103.351,0,0,0-7.02349,16.93693,8.00251,8.00251,0,0,0,1.24325,7.19169L44.1549,122.87164q-.15318,2.54408-.15392,5.12738,0,2.58326.154,5.1287l-.00008.00064L30.007,151.99783a7.99514,7.99514,0,0,0-1.24562,7.17954,103.35131,103.35131,0,0,0,7.00985,16.94257,8.00252,8.00252,0,0,0,5.96442,4.20618l23.35088,3.33571q1.69061,1.90725,3.51677,3.73445,1.82663,1.82663,3.73543,3.51764l.00039.00051,3.33868,23.34679a7.99512,7.99512,0,0,0,4.19591,5.95749,103.35135,103.35135,0,0,0,16.93692,7.02349,8.00254,8.00254,0,0,0,7.1917-1.24326l18.87027-14.15286Q125.4167,211.99926,128,212q2.58324,0,5.1287-.154l.00063.00008L151.99881,225.994a7.99514,7.99514,0,0,0,7.17954,1.24562,103.35049,103.35049,0,0,0,16.94257-7.00986,8.00251,8.00251,0,0,0,4.20618-5.96441l3.33571-23.35088q1.90725-1.69062,3.73445-3.51677,1.82663-1.82663,3.51764-3.73543l.0005-.0004,23.3468-3.33867a7.99513,7.99513,0,0,0,5.95748-4.19591,103.35186,103.35186,0,0,0,7.0235-16.93693,8.00252,8.00252,0,0,0-1.24326-7.19169l-14.15287-18.87027q.1532-2.54407.15393-5.12738,0-2.58326-.154-5.1287l.00008-.00064,14.14788-18.86947a7.99512,7.99512,0,0,0,1.24562-7.17954,103.35131,103.35131,0,0,0-7.00985-16.94257,8.00251,8.00251,0,0,0-5.96441-4.20618L190.9154,72.33817q-1.69061-1.90725-3.51676-3.73445-1.82664-1.82662-3.73544-3.51764l-.00039-.00051-3.33867-23.34679a7.99513,7.99513,0,0,0-4.19592-5.95749A103.35135,103.35135,0,0,0,159.1913,28.7578a8.00254,8.00254,0,0,0-7.1917,1.24326L133.12933,44.15392Q130.58527,44.00074,128.002,44q-2.58324,0-5.1287.154Z" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>
        </>
      )
    case "regular":
      return (
        <>
          <circle cx="128" cy="128" r="48" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
  <path d="M122.87164,44.15392,104.00217,30.006a7.99514,7.99514,0,0,0-7.17954-1.24562,103.35049,103.35049,0,0,0-16.94257,7.00986,8.00249,8.00249,0,0,0-4.20618,5.96441L72.33817,65.08557q-1.90725,1.69062-3.73445,3.51677Q66.7771,70.429,65.08608,72.33777l-.00051.0004L41.73878,75.67684a7.99514,7.99514,0,0,0-5.95749,4.19591A103.35182,103.35182,0,0,0,28.7578,96.80968a8.00252,8.00252,0,0,0,1.24326,7.19169l14.15286,18.87027Q44.00074,125.41572,44,127.999q0,2.58326.154,5.1287l-.00008.00064L30.006,151.99783a7.99514,7.99514,0,0,0-1.24562,7.17954,103.35049,103.35049,0,0,0,7.00986,16.94257,8.00249,8.00249,0,0,0,5.96441,4.20618l23.35088,3.33571q1.69062,1.90725,3.51677,3.73445,1.82662,1.82663,3.73543,3.51764l.0004.00051,3.33867,23.34679a7.99514,7.99514,0,0,0,4.19591,5.95749,103.35182,103.35182,0,0,0,16.93693,7.02349,8.00252,8.00252,0,0,0,7.19169-1.24326l18.87027-14.15286q2.54408.15318,5.12738.15392,2.58326,0,5.1287-.154l.00064.00008L151.99783,225.994a7.99514,7.99514,0,0,0,7.17954,1.24562,103.35049,103.35049,0,0,0,16.94257-7.00986,8.00249,8.00249,0,0,0,4.20618-5.96441l3.33571-23.35088q1.90725-1.69062,3.73445-3.51677,1.82663-1.82663,3.51764-3.73543l.00051-.0004,23.34679-3.33867a7.99514,7.99514,0,0,0,5.95749-4.19591,103.35182,103.35182,0,0,0,7.02349-16.93693,8.00252,8.00252,0,0,0-1.24326-7.19169l-14.15286-18.87027q.15318-2.54407.15392-5.12738,0-2.58326-.154-5.1287l.00008-.00064L225.994,104.00217a7.99514,7.99514,0,0,0,1.24562-7.17954,103.35049,103.35049,0,0,0-7.00986-16.94257,8.00249,8.00249,0,0,0-5.96441-4.20618l-23.35088-3.33571q-1.69062-1.90725-3.51677-3.73445-1.82663-1.82662-3.73543-3.51764l-.0004-.00051-3.33867-23.34679a7.99514,7.99514,0,0,0-4.19591-5.95749,103.35182,103.35182,0,0,0-16.93693-7.02349,8.00252,8.00252,0,0,0-7.19169,1.24326L133.12836,44.15392Q130.58429,44.00074,128.001,44q-2.58326,0-5.1287.154Z" fill="none" stroke={color} stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
        </>
      )
    default:
      console.error(
        'Unsupported icon weight. Choose from "thin", "light", "regular", "bold", "fill", or "duotone".'
      );
      return null;
  }
};

const Gear = (props: any, ref: any)  => {
  const { color, size, weight, mirrored, children, ...restProps } = props;
  const {
    color: contextColor,
    size: contextSize,
    weight: contextWeight,
    mirrored: contextMirrored,
    ...restContext
  } = useContext(IconContext);

  return (
    <svg
      ref={ref}
      xmlns="http://www.w3.org/2000/svg"
      width={size ?? contextSize}
      height={size ?? contextSize}
      fill={color ?? contextColor}
      viewBox="0 0 256 256"
      transform={mirrored || contextMirrored ? "scale(-1, 1)" : undefined}
      {...restContext}
      {...restProps}
    >
      {children}
      <rect width="256" height="256" fill="none"/>
      {renderPathFor(weight ?? contextWeight, color ?? contextColor)}
    </svg>
  );
};


export default Gear;
