-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuilder_hair.go
More file actions
114 lines (108 loc) 路 21.4 KB
/
Copy pathbuilder_hair.go
File metadata and controls
114 lines (108 loc) 路 21.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package avatar
func (b *builder) AddHair(isMale bool, name, shape string) FactoryBuilder {
b.factory.addHair(isMale, name, shape)
return b
}
func (b *builder) DefaultHairs() FactoryBuilder {
b.ShortHair()
b.MediumHair()
b.WavyHair()
b.CurlyHair()
return b
}
func (b *builder) ShortHair() FactoryBuilder {
b.factory.addHair(
true,
string(HairShort),
`<path fill="{hair}" d="M43.7,58.15s2.04-.21,2.84-10.86c1.16-15.59,9.77-4.93,17.96-4.83,7.98,.1,15.76-10.96,17.54,5.03,1.02,9.18,2.06,10.71,2.06,10.71,0,0,8.94-32.03-20.13-32.03s-20.27,31.99-20.27,31.99Z" />`,
)
b.factory.addHair(
false,
string(HairShort),
`<g>
<path fill="{hair}" d="M51.37,41.17c1.7,6.9-1.4,13.5-2.9,14.8,0,0-1.9-4.2-1.9-5.1l-.7,5.8s-1.3-.5-2.1-1.4-4.3-10.8-3.8-13.7,2.2-5.6,4.2-8.1c.1-3.4,1.6-6,4.7-8.5,3.1-2.4,13.1-5.9,13.3-5.8s-.5,3.3-1.6,4.7c4.6-1.2,10-1.8,13.8-.7,3.8,1,12,4.2,13.3,4.3,1.1,.2-1.2,3-3.1,3.5,2,2.3,4,8,3.4,14-.9,5.9-3.2,9.6-3.7,10.4-.5,.6-2.1,1.4-2.1,1.4,0,0-2.5-4-4.8-7.4,0,0,.6,2.5,.3,2.7-.4,.2-8.9-2.7-13.1-5,0,0,2.7,4.7,2.1,4.8-.5,0-9.8-1.4-15.3-10.7Z" />
<path fill="{hair_highlight}" d="M59.27,39.69c-1.35-1.24-4.45-3.52-6.18-4.03,.34,.52,3.16,4.13,4.26,5.02,2.35,1.89,7.78,4.88,7.99,4.78,.17,.05,.92,.63-6.06-5.77Z" />
<path fill="{hair_highlight}" d="M79.6,37.34c.91,1.02,1.7,2.11,2.47,3.23,.02-.43,.04-.86,.03-1.32-.04-.65-.3-1.37-.62-2.03-.86-1.77-2.52-3.11-4.48-3.31-.15-.02-.3-.02-.45-.02-.21,0-.43,.02-.64,.02,1.33,1.02,2.57,2.17,3.69,3.43Z" />
<path fill="{hair_highlight}" d="M68.43,33.86c3.3,.07,12.58,9.79,13.94,14.93,0,0-.76-5.4-4.43-9.87-4.42-4.75-7.9-5.34-9.51-5.06Z" />
</g>`,
)
return b
}
func (b *builder) MediumHair() FactoryBuilder {
b.factory.addHair(
true,
string(HairMedium),
`<g>
<path fill="{hair}" d="M42.06,50.33c-.13,1.85,.5,5.39,1.01,7.45,.36,.21,.48,.18,.84,.42,.1,.09,.06,1.82,.14,1.91h.72c-.17-1.2,.22-5.93,1.18-13.15,.88-6.64,4.38-7.08,4.38-7.08,15.47,4.13,27.41,.16,27.41,.16,3.37,2.7,2.93,4.4,3.73,9.78,.88,4.45,1.12,8.4,1.56,10.53l.9-.05c.09-.2,.06-2.07,.18-2.1,.65-.27,.54-.25,.84-.38,0,0,1.15-4.76-.14-8.81,1.14-4.79,.52-8.13,.52-8.13,1.65-4.95-4.84-11.64-4.84-11.64-1.84-4.93-7.04-4.13-7.04-4.13-.15-1.43-2.91-2.54-3.68-3.25-.77-.71-4.59,1.98-4.59,1.98-4.44-3.81-8.42-.95-8.42-.95-4.9-.48-6.43,4.45-6.43,4.45-3.68,.48-3.37,3.34-3.37,3.34-1.84,.95-2.14,4.45-2.14,4.45-4.13,2.07-2.96,4.77-2.96,4.77-1.89,3.02,.21,10.45,.21,10.45Z" />
<path fill="{hair_highlight}" d="M57.59,23.84s-2.3,11.51,5.76,17.19c0,0-5.68-4.75-5.76-17.19Z" />
<path fill="{hair_highlight}" d="M59.53,41.04s-10.43-.94-11.73-9.93c0,0,2.3,7.27,11.73,9.93Z" />
<path fill="{hair_highlight}" d="M53.67,25.93s-1.12,7.55,5.14,12.16c0,0-8.56-4.46-5.14-12.16Z" />
</g>`,
)
b.factory.addHair(
false,
string(HairMedium),
`<g>
<path fill="{hair}" d="M97.05,70c-1.58-4.1-3.94-7.97-5.04-12.19-.95-3.61-.96-7.39-2.27-10.91-.03-.09-.07-.17-.1-.26,0-.39,0-.77,0-1.15,0-6.98-5.33-28.74-24.84-24.84,0,0-7.6-2.67-15.81,2.67-2.8,1.82-4.93,4.07-6.52,6.58-.15,.17-.3,.35-.45,.54-.87,1.07-3.31,4.63-5.2,7.95-2.55,3.25-2.54,7.51-1.93,11.41,.61,3.9,1.73,7.83,1.06,11.72-.63,3.69-2.82,7-4.44,10.45-1.62,3.45-2.68,7.41-1.03,10.84,.89,1.87,2.51,3.42,3.51,5.25,.93,1.73,1.28,3.69,.98,5.58-.36,2.31-1.66,4.54-1.32,6.86,.2,1.3,.93,2.48,1.95,3.47,2.14-1.85,4.56-3.47,7.01-4.99,6.6-4.1,12-8,12.4-12.1,0,0-.1-4.4-.3-6.3-1.2-1-2.3-2.1-3.5-3.4-1.6-1.6-2.8-3.7-3.9-6-1.2,.2-3.7-1.3-5.2-3.9-2-3.5-1.4-8.4-.4-9.4,.5-.5,1.4-.2,2.2,.3-.1-.83,.64,5.1,1.53,7.52-.34-2.92,.06-8.59,.39-11.51,.34-2.92,1.42-5.86,3.54-7.89,2.02-1.93,4.78-2.88,7.49-3.55,2.72-.66,5.52-1.11,8.06-2.26,2.57-1.17,4.17-2.97,5.5-5.34,1.03,2.67,2.4,5.03,4.73,6.79,1.82,1.37,4.02,2.3,5.49,4.04,1.51,1.79,2.02,4.21,2.25,6.53,.3,3.01-.02,10.73-.52,13.72,.55-1.11,1.74-8.06,1.74-8.06,.8-.4,1.69-.79,2.18-.29,1,1.1,1.5,5.9-.4,9.4-1.5,2.7-4,4.1-5.2,3.9-1.2,2.3-2.5,4.4-3.9,6-1.3,1.4-2.4,2.5-3.5,3.4-.3,2.1-.3,6.4-.2,7.1,1,3.8,6.1,7.6,12.3,11.4,2.73,1.67,5.41,3.47,7.7,5.55,1.25-.64,2.24-1.52,2.67-2.75,1.24-3.52-3.11-6.79-3.2-10.47-.09-3.27,3.11-5.81,4.7-8.77,2.11-3.92,1.36-8.55-.22-12.65Z" />
<path fill="{dress}" d="M50.46,34.45c4.04-2.72,8.81-4.19,13.62-4.99,3.39-.56,6.92-.8,10.22,.19-3.46-3.86-8.89-5.69-14.04-5.19-5.15,.49-9.98,3.17-13.52,6.95-2.73,2.91-6.7,9.37-4.51,13.5,2.26-4.18,4.11-7.68,8.24-10.45Z" />
<path fill="{hair_shadow}" d="M55,86.9s-.1-4.4-.3-6.3c-1.2-1-2.3-2.1-3.5-3.4-1.6-1.6-2.8-3.7-3.9-6-.62,.1-1.57-.25-2.56-.96,.27,1.18,.46,2.36,.39,3.57-.24,3.91-3.24,7.46-2.69,11.34,.48,3.39,3.55,5.9,4.33,9.24,.14,.6,.2,1.19,.2,1.78,4.47-3.09,7.72-6.12,8.03-9.26Z" />
<path fill="{hair_shadow}" d="M84.2,46.9c.3,4.1,.2,7.8-.1,11.3,.8-.4,1.7-.8,2.2-.3,1,1.1,1.5,5.9-.4,9.4-1.5,2.7-4,4.1-5.2,3.9-1.2,2.3-2.5,4.4-3.9,6-1.3,1.4-2.4,2.5-3.5,3.4-.3,2.1-.3,6.4-.2,7.1,1,3.8,6.1,7.6,12.3,11.4,.5,.31,1,.62,1.5,.94-2.08-2.25-3.56-4.68-2.85-8.27,.56-2.81,2.31-5.21,3.92-7.58,2.15-3.17,4.19-6.83,3.65-10.62-.36-2.55-1.85-4.77-2.84-7.14-.93-2.23-1.43-4.63-1.47-7.05-.04-2.68,.48-5.36,.31-8.04-.18-3.01-1.21-5.89-2.23-8.72-.51-1.42-1.04-2.88-1.99-4.05-.66-.81-1.5-1.44-2.39-1.99,1.72,2.61,2.89,5.99,3.19,10.33Z" />
</g>`,
)
return b
}
func (b *builder) WavyHair() FactoryBuilder {
b.factory.addHair(
true,
string(HairWavy),
`<g>
<path fill="{hair}" d="M96.95,47.77c.07-1.89,1.28-3.52,1.88-5.32,.97-2.89,.18-6.29-1.95-8.46-1.36-1.38-3.24-2.34-4.09-4.08-1.2-2.46,.06-5.72-1.5-7.97-1.85-2.67-6.18-1.96-8.68-4.04-1.42-1.19-2.03-3.11-3.31-4.45-1.51-1.58-3.94-2.18-6.01-1.5-1.2,.4-2.36,1.2-3.61,.98-1.06-.18-1.84-1.07-2.77-1.61-1.31-.76-2.69-.62-4.08-.22-2.21,.64-1.77,.97-4.15,.3-2.92-.81-6.35-1.51-8.72,.98-1.6,1.69-2.1,4.44-4.17,5.49-1.13,.56-2.47,.47-3.71,.71-2.61,.52-4.8,2.73-5.29,5.34-.49,2.6,.45,5.71-1.35,7.66-.71,.77-1.72,1.18-2.57,1.79-1.78,1.3-2.74,3.63-2.41,5.8,.35,2.3,2.01,4.26,2.21,6.57,.19,2.15-.91,4.21-2.16,5.97-1.25,1.77-2.71,3.44-3.41,5.49-.71,2.04-.43,4.64,1.31,5.91,.79,.58,1.81,.84,2.67,1.29,.39,.21,.75,.45,1.05,.79,.98,1.11,.87,2.79,.8,4.27-.17,3.68,.78,8.1,4.22,9.41,1.98,.76,4.47,.32,6.03,1.76,1.11,1.03,1.33,2.68,2.08,3.99,1.74,3.07,5.76,3.72,9.31,3.97,.25-.58,.42-1.15,.47-1.74,0,0-.1-4.4-.3-6.3-1.2-1-2.3-2.1-3.5-3.4-1.6-1.6-2.8-3.7-3.9-6-1.2,.2-3.7-1.3-5.2-3.9-2-3.5-1.4-8.4-.4-9.4,.5-.5,1.4-.2,2.2,.3-.4-3.5-.4-7.2-.1-11.3,.21-2.48,.69-4.63,1.38-6.52,1.46,.29,3.03,.48,4.16,1.17,1.19,.73,1.7,1.91,2.77,2.74,1.26,.97,3.31,1.34,5.04,.92,1.01-.25,1.98-.74,3.02-.6,.89,.11,1.54,.66,2.32,.99,1.1,.47,2.26,.38,3.42,.13,1.86-.39,1.48-.6,3.48-.18,2.45,.5,5.33,.93,7.31-.6,1.34-1.04,1.76-2.73,3.5-3.37,.89-.33,1.94-.3,2.93-.42,.53,1.7,.89,3.6,1.04,5.75,.3,4.1,.2,7.8-.1,11.3,.8-.4,1.7-.8,2.2-.3,1,1.1,1.5,5.9-.4,9.4-1.5,2.7-4,4.1-5.2,3.9-1.2,2.3-2.5,4.4-3.9,6-1.3,1.4-2.4,2.5-3.5,3.4-.3,2.1-.3,6.4-.2,7.1,.11,.42,.28,.83,.48,1.25,3.18-.77,6.14-2.47,8.39-4.85,1.61-1.7,2.91-3.77,4.94-4.97,1.97-1.16,4.51-1.41,6.07-3.08,2.54-2.71,.96-7.2,2.18-10.7,.45-1.29,1.27-2.45,2.09-3.59,1.24-1.71,2.48-3.38,2.46-5.41-.02-3.04-2.91-5.53-2.81-8.56Z" />
<path fill="{hair_shadow}" d="M92.79,29.91c-1.2-2.46,.06-5.72-1.5-7.97-1.85-2.67-6.18-1.96-8.68-4.04-1.42-1.19-2.03-3.11-3.31-4.45-1.51-1.58-3.94-2.18-6.01-1.5-1.2,.4-2.36,1.2-3.61,.98-1.06-.18-1.84-1.07-2.77-1.61-1.31-.76-2.69-.62-4.08-.22-2.21,.64-1.77,.97-4.15,.3-2.92-.81-6.35-1.51-8.72,.98-1.6,1.69-2.1,4.44-4.17,5.49-1.13,.56-2.47,.47-3.71,.71-1.49,.3-2.83,1.16-3.81,2.32,.1,.2-.17,.53-.4,.51-.53,.76-.92,1.61-1.09,2.52-.49,2.6,.45,5.71-1.35,7.66-.71,.77-1.72,1.18-2.57,1.79-.93,.68-1.64,1.65-2.05,2.74,.49,.68,.18,2.03-.41,2.33,0,.25,.02,.49,.06,.74,.35,2.3,2.01,4.26,2.21,6.57,.02,.24,.02,.47,.01,.71,.54,.31,1.11,.53,1.7,.64,.23,6.43,10.63,3.8,11.98-1.6,.08,7.83,8.78,.35,8.94-3.99,1.29,9.81,10,2.96,11.2-2.91,1.78,3.92,9.56,5.68,12.66,3.6,.09-.08,.19-.14,.28-.21,1.07-.9,1.4-2.37,.35-4.53,5.96,4.53,19.01,3.35,12.72-5.19,.78-.03,1.46-.12,2.06-.24-.73-.62-1.39-1.28-1.8-2.13Z" />
<path fill="{hair_shadow}" d="M84.15,58.17c.8-.4,1.7-.8,2.2-.3,1,1.1,1.5,5.9-.4,9.4-.94,1.7-2.29,2.88-3.45,3.48-.69,.36-1.31,.51-1.76,.45-1.2,2.29-2.49,4.38-3.89,5.98-1.3,1.4-2.4,2.5-3.5,3.4-.3,2.1-.3,6.4-.2,7.1,.11,.42,.28,.83,.48,1.25,3.18-.77,6.14-2.47,8.39-4.85,1.61-1.7,2.91-3.77,4.94-4.97,1.97-1.16,4.51-1.41,6.07-3.08,2.54-2.71,.96-7.2,2.18-10.7,.45-1.29,1.27-2.45,2.09-3.59-2.94,2.58-5.25,4.98-6.3-.92-.55-3.08,.6-7.34-2.34-9.51-1.25-.92-3.02-1.17-4.28-1.96,.11,3.13,.01,6.04-.23,8.82Z" />
</g>`,
)
b.factory.addHair(
false,
string(HairWavy),
`<g>
<path fill="{hair}" d="M96.9,47.8c.07-1.89,1.28-3.52,1.88-5.32,.97-2.89,.18-6.29-1.95-8.46-1.36-1.38-3.24-2.34-4.09-4.08-1.2-2.46,.06-5.72-1.5-7.97-1.85-2.67-6.18-1.96-8.68-4.04-1.42-1.19-2.03-3.11-3.31-4.45-1.51-1.58-3.94-2.18-6.01-1.5-1.2,.4-2.36,1.2-3.61,.98-1.06-.18-1.84-1.07-2.77-1.61-1.31-.76-2.69-.62-4.08-.22-2.21,.64-1.77,.97-4.15,.3-2.92-.81-6.35-1.51-8.72,.98-1.6,1.69-2.1,4.44-4.17,5.49-1.13,.56-2.47,.47-3.71,.71-2.61,.52-4.8,2.73-5.29,5.34-.49,2.6,.45,5.71-1.35,7.66-.71,.77-1.72,1.18-2.57,1.79-1.78,1.3-2.74,3.63-2.41,5.8,.35,2.3,2.01,4.26,2.21,6.57,.19,2.15-.91,4.21-2.16,5.97-1.25,1.77-2.71,3.44-3.41,5.49-.71,2.04-.43,4.64,1.31,5.91,.79,.58,1.81,.84,2.67,1.29,.39,.21,.75,.45,1.05,.79,.98,1.11,.87,2.79,.8,4.27-.17,3.68,.78,8.1,4.22,9.41,1.98,.76,4.47,.32,6.03,1.76,1.11,1.03,1.33,2.68,2.08,3.99,1.74,3.07,5.76,3.72,9.31,3.97,.25-.58,.42-1.15,.47-1.74,0,0-.1-4.4-.3-6.3-1.2-1-2.3-2.1-3.5-3.4-1.6-1.6-2.8-3.7-3.9-6-1.2,.2-3.7-1.3-5.2-3.9-2-3.5-1.4-8.4-.4-9.4,.5-.5,1.4-.2,2.2,.3-.4-3.5-.4-7.2-.1-11.3,.21-2.48,.69-4.63,1.38-6.52,1.46,.29,3.03,.48,4.16,1.17,1.19,.73,1.7,1.91,2.77,2.74,1.26,.97,3.31,1.34,5.04,.92,1.01-.25,1.98-.74,3.02-.6,.89,.11,1.54,.66,2.32,.99,1.1,.47,2.26,.38,3.42,.13,1.86-.39,1.48-.6,3.48-.18,2.45,.5,5.33,.93,7.31-.6,1.34-1.04,1.76-2.73,3.5-3.37,.89-.33,1.94-.3,2.93-.42,.53,1.7,.89,3.6,1.04,5.75,.3,4.1,.2,7.8-.1,11.3,.8-.4,1.7-.8,2.2-.3,1,1.1,1.5,5.9-.4,9.4-1.5,2.7-4,4.1-5.2,3.9-1.2,2.3-2.5,4.4-3.9,6-1.3,1.4-2.4,2.5-3.5,3.4-.3,2.1-.3,6.4-.2,7.1,.11,.42,.28,.83,.48,1.25,3.18-.77,6.14-2.47,8.39-4.85,1.61-1.7,2.91-3.77,4.94-4.97,1.97-1.16,4.51-1.41,6.07-3.08,2.54-2.71,.96-7.2,2.18-10.7,.45-1.29,1.27-2.45,2.09-3.59,1.24-1.71,2.48-3.38,2.46-5.41-.02-3.04-2.91-5.53-2.81-8.56Z" />
<path fill="{hair_shadow}" d="M84.1,58.2c.8-.4,1.7-.8,2.2-.3,1,1.1,1.5,5.9-.4,9.4-1.5,2.7-4,4.1-5.2,3.9-1.2,2.3-2.5,4.4-3.9,6-1.3,1.4-2.4,2.5-3.5,3.4-.3,2.1-.3,6.4-.2,7.1,.11,.42,.28,.83,.48,1.25,3.18-.77,6.14-2.47,8.39-4.85,1.61-1.7,2.91-3.77,4.94-4.97,1.97-1.16,4.51-1.41,6.07-3.08,2.54-2.71,.96-7.2,2.18-10.7,.45-1.29,1.27-2.45,2.09-3.59-2.94,2.58-5.25,4.98-6.3-.92-.55-3.08,.6-7.34-2.34-9.51-1.25-.92-3.02-1.17-4.28-1.96,.11,3.13,.01,6.04-.23,8.82Z" />
<path fill="{hair_shadow}" d="M32.9,69.5c-.17,3.68,.78,8.1,4.22,9.41,1.98,.76,4.47,.32,6.03,1.76,1.11,1.03,1.33,2.68,2.08,3.99,1.74,3.07,5.76,3.72,9.31,3.97,.25-.58,.42-1.15,.47-1.74,0,0-.1-4.4-.3-6.3-1.2-1-2.3-2.1-3.5-3.4-1.6-1.6-2.8-3.7-3.9-6-1.2,.2-3.7-1.3-5.2-3.9-2-3.5-1.4-8.4-.4-9.4,.5-.5,1.4-.2,2.2,.3-.4-3.5-.4-7.2-.1-11.3,.1-1.17,.26-2.26,.47-3.29-.59,.43-1.18,.87-1.77,1.3-1.15,.84-2.31,1.7-3.2,2.81-1.19,1.49-1.82,3.41-1.75,5.32,.06,1.78,.32,4.21-1.39,4.7-.64,.18-1.31-.05-1.98,0-1.39,.12-2.41,1.44-2.76,2.78-.34,1.27-.25,2.59-.38,3.89,.39,.21,.75,.45,1.05,.79,.98,1.11,.87,2.79,.8,4.27Z" />
<path fill="{hair_shadow}" d="M51.39,31.23c.4,1.88,.83,3.8,1.91,5.39,.95,1.4,2.4,2.45,4.02,2.94,1.62,.48,3.41,.39,4.97-.25,1.15-.47,2.16-1.23,3.31-1.69,1.15-.47,2.56-.6,3.56,.13,.86,.63,1.24,1.76,2.09,2.41,.79,.6,1.85,.68,2.84,.58,2.64-.24,5.15-1.59,6.82-3.64l-29.52-5.87Z" />
<path fill="{dress}" d="M62.63,34.04c18.67-.17,21.63,16.48,21.5,21.89,.42-4.34,.74-8.74,0-13.03-.74-4.29-5.99-15.65-22.26-14.91s-18.73,13.58-19.03,17.38c-.23,2.89-.19,6.32,.66,9.08,1.51-3.11,.46-20.24,19.13-20.41Z" />
</g>`,
)
return b
}
func (b *builder) CurlyHair() FactoryBuilder {
b.factory.addHair(
true,
string(HairCurly),
`<g>
<path fill="{hair}" d="M88.62,40.03s-2.1-.4-2.45-6.74c-.31-5.64-4.9-7.14-4.9-7.14,1.6-1.81,0-4.22,0-4.22-1.1,.7-2.7,1.31-6.39-1.44-3.7-2.75-6.69-1.71-6.69-1.71-2.7-3.36-7.99,.34-7.99,.34,0,0-3.6-1.31-8.99,1.21-5.4,2.51-8.99,8.14-6.91,11.11,0,0-3.63,.26-4.53,5.66-.91,5.4,2.16,10.36-.69,11.68,0,0,1.25,1.15,2.38,.41,0,0,0,0,0,0,0,0,.3,6.88,1.59,9.74l2.29,6.39s-.39-3.74-.69-6.52c-.3-2.79,1.86-5.31,.95-7.43-.2-.46-.38-1.2-.5-2.07-.17-2.85,.91-3.01,.91-4.75s3.71-4.04,3.12-5.75c-.3-.14-.62-.32-.93-.53-.43-.31-1.7-1.91-.94-1.14,.39,.38,.74,.53,1.17,.79,.43,.25,.85,.46,1.23,.56,.16,.05,.3,.08,.43,.1,.6-.07,1.24-.09,1.93-.06,1.47,.17,3.31,.66,5.18,1.77,3.8,2.24,8.46-.3,8.46-.3,0,0,4.08,1.49,8.46-.74,0,0,1.1,1.14,3.73,1.97,2.63,.82,1.27,3.93,2.13,4.94,.62,.72,2.08,2.15,1.95,3.58-.12,.68-.27,1.24-.44,1.62-.91,2.12,1.25,4.65,.95,7.43-.3,2.79,.31,6.52,.31,6.52l1.68-7.08c1.77-8.88,1.27-9.48,1.09-10.62,0,0,.6-2.6,0-7.03,0-.12,0-.25-.01-.37,1.98,.26,3.13-.18,3.13-.18Z" />
<path fill="{hair_highlight}" d="M49.19,35.61s-.16-.15-.42-.43c-.24-.29-.61-.72-.94-1.3-.34-.57-.66-1.29-.91-2.09-.09-.41-.23-.83-.26-1.28-.07-.44-.07-.9-.08-1.35,.05-.45,.07-.91,.18-1.35,.07-.45,.25-.85,.39-1.25,.16-.39,.38-.75,.57-1.08,.23-.31,.44-.61,.66-.86,.23-.24,.45-.45,.64-.64,.2-.18,.4-.31,.54-.43,.31-.23,.49-.35,.49-.35,0,0-.14,.18-.38,.46-.12,.15-.28,.31-.43,.52-.15,.22-.31,.46-.5,.72-.17,.27-.32,.58-.5,.88-.14,.33-.3,.67-.43,1.04-.12,.37-.23,.75-.29,1.15-.1,.39-.1,.81-.14,1.22,0,.41-.01,.83,.05,1.23,.03,.41,.11,.8,.18,1.19,.1,.38,.17,.75,.3,1.1,.1,.35,.23,.67,.34,.97,.24,.59,.47,1.08,.65,1.41,.19,.33,.3,.52,.3,.52Z" />
<path fill="{hair_highlight}" d="M60.66,23.91s.05-.07,.15-.19c.11-.11,.22-.32,.46-.51,.12-.1,.24-.21,.38-.32,.15-.11,.31-.21,.49-.32,.17-.12,.38-.21,.59-.32,.21-.11,.44-.2,.69-.28,.49-.18,1.03-.31,1.62-.41,.58-.1,1.21-.17,1.85-.16,.64,0,1.31,.03,1.98,.15,.34,.05,.67,.11,1.01,.2,.34,.07,.67,.17,1,.27,.66,.21,1.3,.49,1.91,.81,.61,.34,1.13,.72,1.66,1.03,.51,.29,1.05,.55,1.57,.72,.53,.17,1.04,.28,1.53,.3,.97,.06,1.79-.11,2.32-.34,.54-.22,.8-.44,.8-.44,0,0-.06,.06-.17,.17-.12,.1-.3,.26-.56,.41-.51,.3-1.34,.64-2.4,.65-1.05,.03-2.27-.24-3.45-.86-.56-.31-1.12-.66-1.67-.96-.57-.29-1.17-.54-1.79-.73-.31-.1-.62-.2-.94-.27-.31-.08-.63-.15-.95-.2-.63-.11-1.26-.19-1.87-.21-1.22-.05-2.38,.04-3.32,.29-.24,.05-.46,.13-.67,.2-.21,.07-.42,.13-.6,.23-.18,.09-.36,.16-.51,.24-.15,.09-.28,.18-.4,.26-.25,.14-.41,.33-.54,.42-.12,.1-.19,.16-.19,.16Z" />
<path fill="{hair_highlight}" d="M59.63,35.21s-.17-.13-.45-.36c-.14-.11-.3-.27-.47-.46-.18-.19-.39-.41-.56-.67-.09-.13-.19-.27-.29-.41-.08-.15-.17-.31-.26-.47-.19-.32-.33-.68-.48-1.06-.13-.38-.27-.78-.35-1.2-.09-.42-.16-.84-.18-1.28-.04-.43,0-.87,.02-1.3,.05-.43,.12-.85,.25-1.24,.09-.4,.29-.76,.44-1.1,.21-.32,.37-.64,.61-.87,.11-.12,.21-.24,.31-.34,.11-.1,.23-.18,.33-.26,.21-.16,.39-.29,.56-.37,.33-.16,.52-.24,.52-.24,0,0-.16,.14-.43,.37-.15,.1-.29,.27-.45,.46-.17,.17-.32,.41-.48,.66-.18,.23-.28,.55-.44,.85-.1,.33-.24,.65-.3,1.02-.09,.36-.12,.74-.16,1.13-.01,.39-.04,.79,0,1.18,.01,.4,.07,.79,.14,1.18,.07,.39,.16,.76,.26,1.13,.12,.35,.21,.71,.36,1.03,.12,.32,.26,.62,.4,.89,.13,.28,.27,.51,.4,.73,.12,.22,.24,.4,.36,.54,.22,.29,.33,.47,.33,.47Z" />
<path fill="{hair_highlight}" d="M68.65,39.27s-.07-.01-.21-.04c-.14-.03-.35-.07-.6-.17-.5-.18-1.21-.53-1.91-1.17-.69-.64-1.36-1.58-1.69-2.75-.33-1.16-.27-2.54,.25-3.74,.25-.6,.59-1.15,.99-1.64,.38-.47,.87-.93,1.36-1.26,1.01-.69,2.16-.95,3.1-.95,.95-.01,1.71,.2,2.22,.37,.51,.17,.77,.33,.77,.33,0,0-.3-.08-.82-.16-.52-.08-1.27-.13-2.14-.02-.86,.11-1.85,.42-2.7,1.06-.44,.32-.81,.67-1.18,1.14-.35,.44-.67,.93-.89,1.45-.23,.52-.37,1.07-.43,1.63-.06,.56,0,1.11,.1,1.64,.23,1.05,.77,1.96,1.35,2.62,.58,.67,1.21,1.1,1.67,1.33,.46,.25,.76,.34,.76,.34Z" />
<path fill="{hair_highlight}" d="M54.75,35.31s-.06-.08-.18-.24c-.11-.16-.31-.36-.49-.68-.09-.16-.2-.33-.31-.52-.1-.2-.2-.41-.32-.64-.21-.46-.44-1-.6-1.61-.1-.3-.17-.62-.23-.96-.08-.33-.13-.68-.17-1.04-.1-.72-.12-1.49-.08-2.29,.08-.79,.18-1.62,.46-2.43,.25-.81,.66-1.6,1.17-2.3,.5-.7,1.27-1.28,1.95-1.68,.79-.45,1.63-.63,2.44-.68,.81-.06,1.57,.04,2.27,.15,.7,.1,1.36,.2,1.96,.23,.6,.04,1.15,.01,1.64-.04,.24-.05,.47-.09,.67-.13,.21-.05,.39-.13,.56-.18,.34-.1,.58-.25,.76-.33,.18-.08,.27-.13,.27-.13,0,0-.09,.06-.25,.16-.17,.09-.38,.3-.72,.43-.17,.07-.35,.17-.55,.25-.21,.07-.44,.14-.68,.22-.5,.11-1.08,.21-1.71,.19-1.26,.02-2.71-.26-4.17-.12-.72,.07-1.46,.28-2.08,.63-.16,.08-.33,.22-.5,.33l-.25,.17s-.13,.12-.19,.18c-.14,.13-.29,.25-.42,.39l-.37,.45c-.46,.62-.84,1.31-1.08,2.06-.26,.73-.4,1.5-.49,2.24-.06,.75-.1,1.48-.04,2.17,.02,.35,.04,.69,.1,1.01,.04,.33,.09,.64,.16,.94,.12,.6,.28,1.14,.44,1.61,.09,.23,.17,.45,.24,.66,.09,.2,.17,.37,.25,.54,.14,.33,.3,.57,.39,.74,.1,.17,.15,.26,.15,.26Z" />
<path fill="{hair_highlight}" d="M43.69,34.19s-.04,.04-.12,.11c-.07,.08-.14,.2-.21,.38-.14,.35-.18,.91-.22,1.56-.06,1.32-.02,3.1-.11,4.9-.1,1.79-.33,3.61-.85,4.91-.25,.65-.59,1.13-.86,1.42-.28,.29-.51,.37-.49,.38,0,0,.04-.04,.11-.12,.08-.07,.16-.2,.26-.36,.21-.32,.4-.83,.55-1.47,.3-1.27,.4-3.04,.49-4.81,.1-1.77,.18-3.57,.45-4.91,.13-.67,.32-1.22,.53-1.57,.22-.37,.48-.41,.46-.42Z" />
<path fill="{hair_highlight}" d="M47.42,39.48s-.19,.14-.49,.41c-.15,.13-.32,.3-.5,.51-.19,.2-.37,.46-.58,.72-.19,.28-.4,.58-.58,.92-.2,.33-.36,.7-.54,1.08-.16,.39-.31,.79-.43,1.21-.15,.41-.21,.86-.31,1.29-.06,.44-.16,.88-.17,1.32-.02,.22-.03,.44-.05,.65,0,.22,0,.43,0,.64,0,.42,.01,.83,.05,1.22,.02,.39,.05,.76,.11,1.1,.05,.34,.07,.66,.12,.93,.05,.28,.1,.52,.13,.71,.07,.4,.1,.63,.1,.63,0,0-.1-.21-.25-.59-.15-.38-.39-.92-.55-1.6-.05-.17-.1-.35-.15-.53-.03-.19-.07-.38-.1-.58-.08-.4-.15-.82-.16-1.27-.04-.44-.05-.9-.02-1.37,0-.47,.1-.94,.15-1.42,.12-.46,.2-.94,.36-1.38,.13-.45,.34-.87,.53-1.28,.21-.39,.42-.77,.67-1.1,.23-.34,.49-.62,.73-.89,.5-.51,.98-.85,1.34-1.06,.17-.12,.32-.16,.42-.21,.1-.04,.15-.07,.15-.07Z" />
<path fill="{hair_highlight}" d="M71.97,36.56s-.04-.08-.12-.24c-.07-.16-.19-.39-.28-.71-.19-.63-.39-1.59-.18-2.74,.11-.57,.32-1.19,.69-1.76,.37-.57,.9-1.11,1.56-1.46,.66-.37,1.41-.56,2.18-.65,.76-.07,1.55-.03,2.31,.11,.79,.15,1.54,.49,2.16,1,.62,.51,1.07,1.15,1.41,1.79,.35,.63,.61,1.26,.85,1.86,.25,.59,.48,1.14,.74,1.62,.5,.97,1.04,1.72,1.49,2.18,.45,.46,.74,.7,.74,.7,0,0-.08-.05-.23-.14-.15-.09-.37-.23-.62-.44-.51-.41-1.2-1.09-1.78-2.07-.6-.96-1.14-2.18-1.81-3.35-.34-.58-.76-1.12-1.28-1.54-.52-.42-1.16-.68-1.82-.82-.7-.14-1.4-.18-2.1-.13-.68,.05-1.35,.2-1.92,.49-.57,.29-1.06,.69-1.42,1.17-.36,.48-.59,1.02-.72,1.53-.27,1.04-.22,1.98-.1,2.61,.06,.32,.12,.56,.18,.73,.06,.17,.09,.25,.09,.25Z" />
<path fill="{hair_highlight}" d="M82.12,28.35s.14,0,.37,.07c.23,.07,.56,.2,.9,.44,.17,.12,.35,.27,.51,.45,.16,.18,.33,.37,.47,.6,.29,.44,.52,.96,.67,1.49,.09,.27,.13,.54,.18,.81,.06,.27,.07,.53,.09,.79,.05,.51,0,.99-.02,1.4,0,.2-.05,.39-.08,.55-.03,.16-.05,.3-.07,.42-.04,.23-.08,.36-.08,.36,0,0-.02-.14-.04-.37,0-.12-.02-.26-.03-.42-.02-.16-.02-.35-.04-.54-.05-.4-.07-.86-.16-1.34-.03-.24-.07-.49-.13-.74-.05-.25-.1-.5-.18-.75-.13-.5-.33-.97-.54-1.39-.23-.41-.48-.78-.75-1.05-.53-.56-1.04-.77-1.04-.77Z" />
<path fill="{hair_highlight}" d="M80.67,39.85s0,.05,0,.16c0,.1-.03,.26,0,.44,.04,.19,.04,.39,.12,.65,.07,.25,.14,.53,.23,.84,.37,1.22,.96,2.84,1.44,4.51,.23,.84,.45,1.68,.58,2.5,.09,.4,.11,.81,.15,1.18,.03,.38,.03,.74,.03,1.07-.04,.34-.05,.64-.12,.91-.08,.26-.13,.49-.21,.67-.19,.34-.31,.52-.31,.52,0,0,.06-.22,.16-.57,.04-.18,.04-.41,.06-.66,.01-.25-.04-.55-.04-.86-.05-.31-.1-.65-.16-1.01-.08-.36-.15-.73-.25-1.12-.19-.77-.42-1.6-.66-2.42-.46-1.65-.94-3.33-1.12-4.63-.06-.32-.07-.63-.08-.9-.03-.26,.02-.52,.02-.71,0-.2,.09-.33,.11-.43,.03-.1,.05-.15,.05-.15Z" />
<path fill="{hair_highlight}" d="M82.12,42.56s.23,.52,.58,1.3c.34,.78,.77,1.84,1.01,2.99,.11,.57,.18,1.16,.17,1.72,0,.55-.09,1.08-.22,1.5-.05,.22-.15,.4-.21,.56-.06,.17-.15,.3-.22,.41-.14,.21-.22,.33-.22,.33,0,0,.03-.14,.08-.39,.03-.12,.06-.27,.07-.44,.02-.17,.06-.35,.06-.56,.02-.41,.02-.88-.03-1.39,0-.25-.07-.51-.1-.78-.05-.27-.09-.53-.15-.8-.21-1.08-.51-2.16-.66-3.01-.08-.42-.12-.79-.14-1.04,0-.25,0-.4,0-.4Z" />
</g>`,
)
b.factory.addHair(
false,
string(HairCurly),
`<g>
<path fill="{hair_shadow}" d="M51.2,77.2c-1.6-1.6-2.8-3.7-3.9-6-.35,.06-.83-.05-1.35-.27,.89,4.19,3.23,11.6,9.03,15.39-.03-1.25-.13-4.24-.29-5.72-1.2-1-2.3-2.1-3.5-3.4Z" />
<path fill="{hair_shadow}" d="M83.1,77.24h-6.33c-1.28,1.38-2.37,2.47-3.46,3.36-.3,2.1-.3,6.4-.2,7.1,.51,1.94,2.09,3.88,4.34,5.82h5.66v-16.28Z" />
<path fill="{hair_highlight}" d="M78.41,50.77c.03,1.78,.78,3.54,.86,5.33,.1,2.25-.75,4.18-1.75,6.06-2.22,4.14-3.62,9.6-3.12,14.36,.23,2.25,1.11,4.01,2.42,5.72,1.22,1.59,2.76,2.86,3.19,4.89,1.15,5.37-3.07,6.22-5.75,9.57-2.38,2.97-2.34,9.39-1.31,12.94,1.66,5.72,9.14,8.31,14.33,8.95,1.95,.24,4.11,.59,5.49-1.05,1.11-1.33,1.47-3.69,.87-5.29-.54-1.46-1.63-1.75-2.73-2.72-1.2-1.07-2.14-2.6-3.05-3.94-2.23-3.3-2.36-7.49,.42-10.62,2.51-2.83,4.81-4.65,4.69-8.84-.15-5.1-5.52-7.92-8.39-11.51-2.75-3.43-.02-6.25,1.64-9.37,1.26-2.38,1.56-4.59,2.2-7.37,1.43-6.25-.23-15.52-2.86-20.08" />
<path fill="{hair_shadow}" d="M52.37,38.83s16.12-8.43,22.08,8.44c0,0,2.41-25.77-22.08-8.44Z" />
<path fill="{hair}" d="M102.34,108.47c-.6-1.37-1.66-1.58-2.75-2.45-1.2-.95-2.19-2.36-3.13-3.59-2.31-3.02-2.66-7.01-.18-10.16,2.24-2.85,4.34-4.71,4-8.71-.42-4.86-5.7-7.25-8.63-10.51-2.81-3.12-.35-5.97,1.06-9.04,1.08-2.34,1.94-4.45,1.7-7.16-.45-5.16-4.07-7.63-6.79-11.51-.59-4.5-2.38-9.8-6.62-15.19,0,0-7.88-10.24-19.4-6.55,0,0-4.7,1.69-7.48,5.87-14.81,5.67-12.21,23.74-11.32,28.22,.36,.09,.74,.27,1.1,.5,.01,0,.03,0,.05,.01,.84-12.17,6.34-18.03,8.41-19.47,0,.03,0,.06,.01,.09,0,0,19.52-14.67,21.58,6.65,0,0,2.81,12.76,11.53,12.51-.23,1.24-.7,2.42-1.24,3.58-1.9,4.08-2.94,9.37-2.21,13.89,.35,2.13,1.28,3.77,2.62,5.32,1.25,1.45,2.79,2.57,3.31,4.48,1.39,5.06-2.59,6.11-4.97,9.47-2.11,2.97-1.73,9.1-.55,12.43,1.9,5.37,9.18,7.41,14.16,7.73,1.88,.12,3.96,.32,5.18-1.32,.99-1.33,1.2-3.6,.55-5.1Z" />
</g>`,
)
return b
}