Documentation ¶
Overview ¶
Code generated from files in client/src/svg. See https://projectforge.dev for details. DO NOT EDIT.
Index ¶
- Constants
- Variables
- func ArrayDereference[T any](x []*T) []T
- func ArrayFirstN[V any](items []V, n int) []V
- func ArrayFlatten[T any](arrs ...[]T) []T
- func ArrayFromAny[T any](dest any) []T
- func ArrayLastN[V any](items []V, n int) []V
- func ArrayLimit[T any](x []T, limit int) ([]T, int)
- func ArrayRemoveDuplicates[T comparable](x []T) []T
- func ArrayRemoveEmpty[T comparable](x []T) []T
- func ArrayRemoveNil[T any](x []*T) []*T
- func ArraySorted[T cmp.Ordered](x []T) []T
- func ArraySplit[T any](xs []T, fn func(T) bool) ([]T, []T)
- func ArrayTest(dest any) bool
- func ArrayToStringArray[T any](a []T) []string
- func ArrayTransform[T any, U any](x []T, f func(T) U) []U
- func AsyncCollect[T any, R any](items []T, f func(x T) (R, error), loggers ...Logger) ([]R, []error)
- func AsyncCollectMap[T any, K comparable, R any](items []T, k func(x T) K, f func(x T) (R, error), loggers ...Logger) (map[K]R, map[K]error)
- func AsyncRateLimit[T any, R any](key string, items []T, f func(x T) (R, error), maxConcurrent int, ...) ([]R, []error)
- func ByteSizeIEC(b int64) string
- func ByteSizeSI(b int64) string
- func Choose[T any](b bool, ifTrue T, ifFalse T) T
- func ConfigureAcronym(key, val string)
- func CountryFlag(code string) string
- func CycleJSON(src any, tgt any) error
- func CycleXML(src any, tgt any) error
- func DebugBuildInfo() *debug.BuildInfo
- func DebugMemStats() *runtime.MemStats
- func DebugStartCPUProfile() error
- func DebugTakeHeapProfile() error
- func DecryptMessage(key []byte, message string, logger Logger) (string, error)
- func DefaultIfNil[T any](ptr *T, d T) T
- func DefaultValue[T any]() T
- func EncryptMessage(key []byte, message string, logger Logger) (string, error)
- func ErrorMerge(errs ...error) error
- func Filename(s string) string
- func FormatSeconds(x float64) string
- func FormatSecondsFull(x float64) string
- func FromJSON(msg json.RawMessage, tgt any) error
- func FromJSONAny(msg json.RawMessage) (any, error)
- func FromJSONAnyOK(msg json.RawMessage) any
- func FromJSONObj[T any](msg json.RawMessage) (T, error)
- func FromJSONReader(r io.Reader, tgt any) error
- func FromJSONStrict(msg json.RawMessage, tgt any) error
- func FromJSONString(msg json.RawMessage) (string, error)
- func FromTOML(msg []byte, tgt any) error
- func FromTOMLAny(msg []byte) (any, error)
- func FromTOMLReader(r io.Reader, tgt any) error
- func FromTOMLStrict(msg []byte, tgt any) error
- func FromTOMLString(msg []byte) (string, error)
- func FromXML(msg []byte, tgt any) error
- func FromXMLAny(msg []byte) (any, error)
- func FromXMLReader(r io.Reader, tgt any) error
- func FromXMLStrict(msg []byte, tgt any) error
- func FromXMLString(msg []byte) (string, error)
- func GetEnv(name string, defaultValue ...string) string
- func GetEnvBool(name string, defaultValue bool) bool
- func GetEnvDuration(name string, defaultValue time.Duration) time.Duration
- func GetEnvInt(name string, defaultValue int) int
- func HashFNV128UUID(s string) uuid.UUID
- func HashFNV32(s string) uint32
- func HashSHA256(s string) string
- func InitAcronyms(extras ...string) error
- func JSONToMap(i any) map[string]any
- func LengthAny(dest any) int
- func MapError[T any, U any](xa []T, f func(el T, idx int) (U, error)) ([]U, error)
- func MapGetOrElse[K comparable, V any](mp map[K]V, k K, dflt V) V
- func MarkdownTable(header []string, rows [][]string, linebreak string) (string, error)
- func MarkdownTableParse(md string) ([]string, [][]string)
- func MicrosToMillis(i int) string
- func OrDefault[T comparable](x T, dflt T) T
- func ParseArray(r any, path string, allowEmpty bool, coerce bool) ([]any, error)
- func ParseArrayFloat(r any, path string, allowEmpty bool) ([]float64, error)
- func ParseArrayInt(r any, path string, allowEmpty bool) ([]int, error)
- func ParseArrayString(r any, path string, allowEmpty bool) ([]string, error)
- func ParseBool(r any, path string, allowEmpty bool) (bool, error)
- func ParseFloat(r any, path string, allowEmpty bool) (float64, error)
- func ParseInt(r any, path string, allowEmpty bool) (int, error)
- func ParseInt16(r any, path string, allowEmpty bool) (int16, error)
- func ParseInt32(r any, path string, allowEmpty bool) (int32, error)
- func ParseInt64(r any, path string, allowEmpty bool) (int64, error)
- func ParseJSON(r any, path string, allowEmpty bool) (any, error)
- func ParseString(r any, path string, allowEmpty bool) (string, error)
- func ParseTime(r any, path string, allowEmpty bool) (*time.Time, error)
- func ParseUUID(r any, path string, allowEmpty bool) (*uuid.UUID, error)
- func RandomBool() bool
- func RandomBytes(size int) []byte
- func RandomDate() time.Time
- func RandomElement[T any](slice []T) T
- func RandomElements[T any](slice []T, idx int) []T
- func RandomFloat(maxExclusive int) float64
- func RandomIcon() string
- func RandomInt(maxExclusive int) int
- func RandomInt16(maxExclusive int16) int16
- func RandomInt32(maxExclusive int32) int32
- func RandomInt64(maxExclusive int64) int64
- func RandomString(length int) string
- func RandomURL() *url.URL
- func ReplaceEnvVars(s string, logger Logger) string
- func RunProcess(cmd string, path string, in io.Reader, out io.Writer, er io.Writer, ...) (int, error)
- func RunProcessSimple(cmd string, path string) (int, string, error)
- func StartProcess(cmd string, path string, in io.Reader, out io.Writer, er io.Writer, ...) (*exec.Cmd, error)
- func StringArrayFromAny(a []any, maxLength int) []string
- func StringArrayMaxLength(a []string) int
- func StringArrayOxfordComma(names []string, separator string) string
- func StringArrayQuoted(a []string) []string
- func StringDetectLinebreak(s string) string
- func StringForms(s string) (string, string)
- func StringNullable(s fmt.Stringer) string
- func StringPad(s string, size int) string
- func StringPadLeft(s string, size int, chr rune) string
- func StringPadRight(s string, size int, chr rune) string
- func StringPlural(count int, s string) string
- func StringRepeat(s string, n int) string
- func StringReplaceBetween(s string, l string, r string, replacement string) (string, error)
- func StringSplit(s string, sep byte, cutc bool) (string, string)
- func StringSplitAndTrim(s string, delim string) []string
- func StringSplitLast(s string, sep byte, cutc bool) (string, string)
- func StringSplitLastOnly(s string, sep byte, cutc bool) string
- func StringSplitLines(s string) []string
- func StringSplitLinesIndented(s string, indent int, indentFirstLine bool, includeEmptyLines bool) []string
- func StringSplitPath(s string) (string, string)
- func StringSplitPathAndTrim(s string) []string
- func StringSubstringBetween(s string, l string, r string) string
- func StringToCamel(s string, extraAcronyms ...string) string
- func StringToLowerCamel(s string, extraAcronyms ...string) string
- func StringToPlural(s string) string
- func StringToSingular(s string) string
- func StringToSnake(s string, extraAcronyms ...string) string
- func StringToTitle(s string, extraAcronyms ...string) string
- func StringTruncate(s string, mx int) string
- func TimeCurrent() time.Time
- func TimeCurrentMillis() int64
- func TimeCurrentNanos() int64
- func TimeCurrentP() *time.Time
- func TimeCurrentUnix() int64
- func TimeFromFull(s string) (*time.Time, error)
- func TimeFromFullMS(s string) (*time.Time, error)
- func TimeFromHTML(s string) (*time.Time, error)
- func TimeFromJS(s string) (*time.Time, error)
- func TimeFromRFC3339(s string) (*time.Time, error)
- func TimeFromString(s string) (*time.Time, error)
- func TimeFromStringFmt(s string, fmt string) (*time.Time, error)
- func TimeFromStringSimple(s string) *time.Time
- func TimeFromVerbose(s string) (*time.Time, error)
- func TimeFromYMD(s string) (*time.Time, error)
- func TimeMax(ts ...*time.Time) *time.Time
- func TimeMin(ts ...*time.Time) *time.Time
- func TimeRelative(t *time.Time) string
- func TimeToFull(d *time.Time) string
- func TimeToFullMS(d *time.Time) string
- func TimeToHTML(d *time.Time) string
- func TimeToHours(d *time.Time) string
- func TimeToJS(d *time.Time) string
- func TimeToJSFull(d *time.Time) string
- func TimeToMap(t time.Time) map[string]any
- func TimeToRFC3339(d *time.Time) string
- func TimeToString(d *time.Time, fmt string) string
- func TimeToVerbose(d *time.Time) string
- func TimeToYMD(d *time.Time) string
- func TimeToday() *time.Time
- func TimeTruncate(t *time.Time) *time.Time
- func ToCSV(data any) ([]string, [][]string, error)
- func ToCSVBytes(data any) ([]byte, error)
- func ToJSON(x any) string
- func ToJSONBytes(x any, indent bool) []byte
- func ToJSONCompact(x any) string
- func ToTOML(x any) string
- func ToTOMLBytes(x any) []byte
- func ToXML(x any) (string, error)
- func ToXMLBytes(x any, indent bool) ([]byte, error)
- func ToXMLCompact(x any) (string, error)
- func UUID() uuid.UUID
- func UUIDFromString(s string) *uuid.UUID
- func UUIDFromStringOK(s string) uuid.UUID
- func UUIDP() *uuid.UUID
- func UUIDString(u *uuid.UUID) string
- func UUIDV7() uuid.UUID
- func UUIDV7P() *uuid.UUID
- func ValueMapGet[T any](m ValueMap, pth string) (T, error)
- type DebugInfo
- type Diff
- type Diffs
- type DiffsSet
- type ErrorDetail
- type ErrorFrame
- type FieldDesc
- type FieldDescResults
- type FieldDescs
- type HTTPRequest
- type KeyTypeDesc
- type KeyTypeDescs
- type KeyVal
- type KeyVals
- type Logger
- type NilBool
- type NilFloat64
- type NilInt32
- type NilInt64
- type NilJSON
- type NilString
- type NilTime
- type Node
- type Nodes
- type OrderedMap
- func (o *OrderedMap[V]) Append(k string, v V)
- func (o *OrderedMap[V]) Clone() *OrderedMap[V]
- func (o *OrderedMap[V]) Get(k string) (V, bool)
- func (o *OrderedMap[V]) GetSimple(k string) V
- func (o *OrderedMap[V]) HasKey(k string) bool
- func (o *OrderedMap[V]) IndexOf(k string) int
- func (o OrderedMap[V]) MarshalJSON() ([]byte, error)
- func (o OrderedMap[V]) MarshalXML(e *xml.Encoder, start xml.StartElement) error
- func (o OrderedMap[V]) MarshalYAML() (any, error)
- func (o *OrderedMap[V]) Pairs() []*OrderedPair[V]
- func (o *OrderedMap[V]) Remove(k string)
- func (o *OrderedMap[V]) Set(k string, v V)
- func (o *OrderedMap[V]) UnmarshalJSON(b []byte) error
- type OrderedPair
- type Pkg
- func (p Pkg) Drop(n int) Pkg
- func (p Pkg) Equals(other Pkg) bool
- func (p Pkg) Last() string
- func (p Pkg) Push(name string) Pkg
- func (p Pkg) Quoted(quote string) string
- func (p Pkg) Shift() Pkg
- func (p Pkg) StartsWith(t Pkg) bool
- func (p Pkg) String() string
- func (p Pkg) StringWith(extra ...string) string
- func (p Pkg) ToPath(extra ...string) string
- func (p Pkg) Trim(src Pkg) Pkg
- func (p Pkg) With(key string) Pkg
- type Progress
- type Set
- func (s *Set[T]) Clone() *Set[T]
- func (s *Set[T]) Contains(x T) bool
- func (s *Set[T]) Entries() []T
- func (s Set[T]) MarshalJSON() ([]byte, error)
- func (s Set[T]) MarshalXML(e *xml.Encoder, start xml.StartElement) error
- func (s Set[T]) MarshalYAML() (any, error)
- func (s *Set[T]) Remove(x T)
- func (s *Set[T]) Set(v T)
- func (s *Set[T]) UnmarshalJSON(b []byte) error
- type StringSlice
- type Timer
- type Tree
- type ValueMap
- func FromJSONMap(msg json.RawMessage) (ValueMap, error)
- func FromTOMLMap(msg []byte) (ValueMap, error)
- func FromXMLMap(msg []byte) (ValueMap, error)
- func ParseArrayMap(r any, path string, allowEmpty bool) ([]ValueMap, error)
- func ParseMap(r any, path string, allowEmpty bool) (ValueMap, error)
- func RandomValueMap(keys int) ValueMap
- func ValueMapFor(kvs ...any) ValueMap
- func ValueMapFrom(m map[string]any) ValueMap
- func (m ValueMap) Add(kvs ...any)
- func (m ValueMap) AsChanges() (ValueMap, error)
- func (m ValueMap) AsMap(simplify bool) map[string]any
- func (m ValueMap) Clone() ValueMap
- func (m ValueMap) Filter(keys []string) ValueMap
- func (m ValueMap) GetArray(key string, allowEmpty bool) ([]any, error)
- func (m ValueMap) GetArrayOpt(key string) []any
- func (m ValueMap) GetBool(key string, allowEmpty bool) (bool, error)
- func (m ValueMap) GetBoolOpt(key string) bool
- func (m ValueMap) GetFloat(key string, allowEmpty bool) (float64, error)
- func (m ValueMap) GetFloatArray(key string, allowEmpty bool) ([]float64, error)
- func (m ValueMap) GetFloatOpt(key string) float64
- func (m ValueMap) GetInt(key string, allowEmpty bool) (int, error)
- func (m ValueMap) GetInt64(key string, allowEmpty bool) (int64, error)
- func (m ValueMap) GetIntArray(key string, allowEmpty bool) ([]int, error)
- func (m ValueMap) GetIntOpt(key string) int
- func (m ValueMap) GetMap(key string, allowEmpty bool) (ValueMap, error)
- func (m ValueMap) GetMapArray(key string, allowEmpty bool) ([]ValueMap, error)
- func (m ValueMap) GetMapOpt(key string) ValueMap
- func (m ValueMap) GetPath(path string, allowMissing bool) (any, error)
- func (m ValueMap) GetRequired(k string) (any, error)
- func (m ValueMap) GetString(key string, allowEmpty bool) (string, error)
- func (m ValueMap) GetStringArray(key string, allowEmpty bool) ([]string, error)
- func (m ValueMap) GetStringArrayOpt(key string) []string
- func (m ValueMap) GetStringOpt(key string) string
- func (m ValueMap) GetStringPtr(key string) *string
- func (m ValueMap) GetTime(key string, allowEmpty bool) (*time.Time, error)
- func (m ValueMap) GetTimeOpt(key string) time.Time
- func (m ValueMap) GetType(key string, ret any) error
- func (m ValueMap) GetUUID(key string, allowEmpty bool) (*uuid.UUID, error)
- func (m ValueMap) GetUUIDOpt(key string) uuid.UUID
- func (m ValueMap) HasKey(key string) bool
- func (m ValueMap) JSON() string
- func (m ValueMap) Keys() []string
- func (m ValueMap) KeysAndValues() ([]string, []any)
- func (m ValueMap) MarshalXML(e *xml.Encoder, _ xml.StartElement) error
- func (m ValueMap) Merge(args ...ValueMap) ValueMap
- func (m ValueMap) Overwrite(sourceMap ValueMap) ValueMap
- func (m ValueMap) ParseArray(path string, allowMissing bool, allowEmpty bool, coerce bool) ([]any, error)
- func (m ValueMap) ParseArrayFloat(path string, allowMissing bool, allowEmpty bool) ([]float64, error)
- func (m ValueMap) ParseArrayInt(path string, allowMissing bool, allowEmpty bool) ([]int, error)
- func (m ValueMap) ParseArrayMap(path string, allowMissing bool, allowEmpty bool) ([]ValueMap, error)
- func (m ValueMap) ParseArrayString(path string, allowMissing bool, allowEmpty bool) ([]string, error)
- func (m ValueMap) ParseBool(path string, allowMissing bool, allowEmpty bool) (bool, error)
- func (m ValueMap) ParseFloat(path string, allowMissing bool, allowEmpty bool) (float64, error)
- func (m ValueMap) ParseInt(path string, allowMissing bool, allowEmpty bool) (int, error)
- func (m ValueMap) ParseInt16(path string, allowMissing bool, allowEmpty bool) (int16, error)
- func (m ValueMap) ParseInt32(path string, allowMissing bool, allowEmpty bool) (int32, error)
- func (m ValueMap) ParseInt64(path string, allowMissing bool, allowEmpty bool) (int64, error)
- func (m ValueMap) ParseJSON(path string, allowMissing bool, allowEmpty bool) (any, error)
- func (m ValueMap) ParseMap(path string, allowMissing bool, allowEmpty bool) (ValueMap, error)
- func (m ValueMap) ParseString(path string, allowMissing bool, allowEmpty bool) (string, error)
- func (m ValueMap) ParseTime(path string, allowMissing bool, allowEmpty bool) (*time.Time, error)
- func (m ValueMap) ParseUUID(path string, allowMissing bool, allowEmpty bool) (*uuid.UUID, error)
- func (m ValueMap) SetPath(path string, val any) error
- func (m ValueMap) String() string
- func (m ValueMap) ToQueryString() string
- func (m ValueMap) ToStringMap() map[string]string
- func (m ValueMap) With(k string, v any) ValueMap
- func (m ValueMap) WithoutKeys(keys ...string) ValueMap
Constants ¶
View Source
const ( BoolTrue = "true" BoolFalse = "false" )
View Source
const ( AppKey = "admini" AppName = "Admini" AppSummary = "Use Admini to explore and manage your data as fast and easily as possible" AppPort = 14000 AppContact = "Kyle U <kyle@kyleu.com>" AppURL = "https://admini.dev" AppSource = "https://github.com/kyleu/admini" AppLegal = `Built by <a href="mailto:kyle@kyleu.com">Kyle U</a>, all rights reserved` KeyDebug = "debug" KeyError = "error" KeyRandom = "random" KeyStart = "start" KeyUnknown = "unknown" KeyCSV = "csv" KeyJSON = "json" KeyTOML = "toml" KeyXML = "xml" KeyYAML = "yaml" ExtJSON = ".json" ExtMarkdown = ".md" OK = "ok" )
Variables ¶
View Source
var ( DEBUG = false ConfigDir = "." )
View Source
var EmptyStruct = struct{}{}
View Source
var HTTPDefaultClient = http.DefaultClient
View Source
var SVGIconKeys = []string{"android", "app", "apple", "archive", "backward", "bell", "bolt", "bookmark", "calendar", "camera", "cart", "check", "clock", "code", "cog", "comment", "compass", "database", "desktop", "dna", "dot", "down", "download", "edit", "error", "export", "external", "eye", "file", "file-text", "filter", "fingerprint", "fire", "flag", "folder", "folder-open", "forward", "gift", "github", "graph", "grid", "handle", "happy", "hashtag", "heart", "image", "import", "info", "left", "link", "linux", "list", "location", "lock", "mail", "mail-open", "medal", "meh", "microphone", "minus", "mobile", "pencil", "play", "plus", "poo", "print", "profile", "question", "refresh", "reply", "right", "robot", "sad", "searchbox", "server", "settings", "share", "social", "sort", "star", "struct", "tag", "thumbs-down", "thumbs-up", "times", "tools", "trash", "trophy", "unlock", "up", "upload", "users", "warning", "windows", "world", "wrench"}
View Source
var SVGLibrary = map[string]string{
"android": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-android" viewBox="0 0 32 32"><path class="svg-fill" d="M 10.53125 3.5 C 10.363281 3.542969 10.230469 3.671875 10.179688 3.835938 C 10.128906 4.003906 10.167969 4.183594 10.28125 4.3125 L 11.75 6.4375 C 10.082031 7.71875 9 9.742188 9 12 L 9 22 C 9 22.703125 9.441406 23.203125 10 23.5625 L 10 26.5 C 10 27.867188 11.132813 29 12.5 29 C 13.867188 29 15 27.867188 15 26.5 L 15 24 L 17 24 L 17 26.5 C 17 27.867188 18.132813 29 19.5 29 C 20.867188 29 22 27.867188 22 26.5 L 22 23.5625 C 22.558594 23.203125 23 22.703125 23 22 L 23 12 C 23 9.742188 21.917969 7.71875 20.25 6.4375 L 21.71875 4.3125 C 21.839844 4.160156 21.863281 3.949219 21.777344 3.777344 C 21.6875 3.601563 21.507813 3.492188 21.3125 3.5 C 21.28125 3.496094 21.25 3.496094 21.21875 3.5 C 21.085938 3.535156 20.972656 3.625 20.90625 3.75 L 19.40625 5.875 C 18.398438 5.3125 17.230469 5 16 5 C 14.769531 5 13.601563 5.3125 12.59375 5.875 L 11.09375 3.75 C 11.007813 3.601563 10.855469 3.507813 10.6875 3.5 C 10.65625 3.496094 10.625 3.496094 10.59375 3.5 C 10.574219 3.5 10.550781 3.5 10.53125 3.5 Z M 16 7 C 18.425781 7 20.441406 8.714844 20.90625 11 L 11.09375 11 C 11.558594 8.714844 13.574219 7 16 7 Z M 14 8 C 13.449219 8 13 8.449219 13 9 C 13 9.550781 13.449219 10 14 10 C 14.550781 10 15 9.550781 15 9 C 15 8.449219 14.550781 8 14 8 Z M 18 8 C 17.449219 8 17 8.449219 17 9 C 17 9.550781 17.449219 10 18 10 C 18.550781 10 19 9.550781 19 9 C 19 8.449219 18.550781 8 18 8 Z M 6 11 L 6 21 L 8 21 L 8 11 Z M 24 11 L 24 21 L 26 21 L 26 11 Z M 11 13 L 21 13 L 21 22 L 20 22 L 20 26.5 C 20 26.785156 19.785156 27 19.5 27 C 19.214844 27 19 26.785156 19 26.5 L 19 22 L 13 22 L 13 26.5 C 13 26.785156 12.785156 27 12.5 27 C 12.214844 27 12 26.785156 12 26.5 L 12 22 L 11 22 Z" /></symbol><use xlink:href="#svg-android" /></svg>`,
"app": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-app" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 9.382813 4 4 9.382813 4 16 C 4 22.617188 9.382813 28 16 28 C 22.617188 28 28 22.617188 28 16 C 28 9.382813 22.617188 4 16 4 Z M 14.96875 6.0625 C 14.980469 6.0625 14.988281 6.0625 15 6.0625 L 15 7 L 17 7 L 17 6.0625 C 21.738281 6.527344 25.472656 10.261719 25.9375 15 L 25 15 L 25 17 L 25.9375 17 C 25.472656 21.738281 21.738281 25.472656 17 25.9375 L 17 25 L 15 25 L 15 25.9375 C 10.261719 25.472656 6.527344 21.738281 6.0625 17 L 7 17 L 7 15 L 6.0625 15 C 6.527344 10.269531 10.246094 6.539063 14.96875 6.0625 Z M 22.5 9.5 L 14.15625 14.15625 L 9.5 22.5 L 17.84375 17.84375 Z M 16 14.5 C 16.828125 14.5 17.5 15.171875 17.5 16 C 17.5 16.828125 16.828125 17.5 16 17.5 C 15.171875 17.5 14.5 16.828125 14.5 16 C 14.5 15.171875 15.171875 14.5 16 14.5 Z" /></symbol><use xlink:href="#svg-app" /></svg>`,
"apple": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-apple" viewBox="0 0 32 32"><path class="svg-fill" d="M 20.84375 2 C 19.203125 2 17.546875 2.851563 16.4375 4.15625 L 16.4375 4.1875 C 15.648438 5.167969 14.792969 6.714844 15.0625 8.5 C 14.933594 8.449219 14.925781 8.464844 14.78125 8.40625 C 14.089844 8.125 13.234375 7.8125 12.21875 7.8125 C 8.238281 7.8125 5.21875 11.417969 5.21875 16.15625 C 5.21875 19.222656 6.25 22.097656 7.625 24.25 C 8.3125 25.328125 9.09375 26.214844 9.90625 26.875 C 10.71875 27.535156 11.570313 28 12.53125 28 C 13.492188 28 14.210938 27.675781 14.75 27.4375 C 15.289063 27.199219 15.707031 27 16.5 27 C 17.214844 27 17.578125 27.195313 18.125 27.4375 C 18.671875 27.679688 19.417969 28 20.40625 28 C 21.476563 28 22.386719 27.476563 23.125 26.8125 C 23.863281 26.148438 24.484375 25.292969 25 24.46875 C 25.515625 23.644531 25.921875 22.835938 26.21875 22.1875 C 26.367188 21.863281 26.476563 21.59375 26.5625 21.375 C 26.648438 21.15625 26.691406 21.09375 26.75 20.84375 L 26.9375 20.03125 L 26.1875 19.6875 C 26.011719 19.609375 25.3125 19.261719 24.6875 18.625 C 24.0625 17.988281 23.53125 17.117188 23.53125 15.78125 C 23.53125 14.488281 24.027344 13.621094 24.5625 13 C 24.828125 12.691406 25.105469 12.4375 25.3125 12.28125 C 25.417969 12.203125 25.5 12.164063 25.5625 12.125 C 25.625 12.085938 25.613281 12.097656 25.71875 12.03125 L 26.5625 11.5 L 26 10.65625 C 24.367188 8.144531 21.753906 7.8125 20.71875 7.8125 C 20.238281 7.8125 19.898438 7.980469 19.46875 8.0625 C 19.710938 7.835938 20.023438 7.695313 20.21875 7.4375 C 20.222656 7.433594 20.214844 7.410156 20.21875 7.40625 C 20.230469 7.394531 20.242188 7.386719 20.25 7.375 L 20.28125 7.375 C 21.347656 6.183594 21.9375 4.582031 21.84375 2.9375 L 21.78125 2 Z M 19.65625 4.3125 C 19.484375 4.972656 19.203125 5.601563 18.75 6.09375 L 18.6875 6.15625 C 18.304688 6.671875 17.714844 7.054688 17.125 7.28125 C 17.289063 6.628906 17.574219 5.96875 17.96875 5.46875 C 17.976563 5.457031 17.992188 5.449219 18 5.4375 C 18.4375 4.9375 19.042969 4.5625 19.65625 4.3125 Z M 12.21875 9.8125 C 12.777344 9.8125 13.390625 10.023438 14.03125 10.28125 C 14.671875 10.539063 15.269531 10.875 16.125 10.875 C 16.976563 10.875 17.621094 10.539063 18.375 10.28125 C 19.128906 10.023438 19.933594 9.8125 20.71875 9.8125 C 21.242188 9.8125 22.535156 10.144531 23.625 11.15625 C 23.433594 11.328125 23.265625 11.453125 23.0625 11.6875 C 22.300781 12.570313 21.53125 13.945313 21.53125 15.78125 C 21.53125 17.6875 22.363281 19.121094 23.25 20.03125 C 23.800781 20.59375 24.140625 20.726563 24.5625 20.96875 C 24.507813 21.09375 24.476563 21.191406 24.40625 21.34375 C 24.136719 21.929688 23.765625 22.679688 23.3125 23.40625 C 22.859375 24.132813 22.308594 24.839844 21.78125 25.3125 C 21.253906 25.785156 20.78125 26 20.40625 26 C 19.839844 26 19.507813 25.84375 18.9375 25.59375 C 18.367188 25.34375 17.582031 25 16.5 25 C 15.363281 25 14.523438 25.335938 13.9375 25.59375 C 13.351563 25.851563 13.046875 26 12.53125 26 C 12.285156 26 11.753906 25.800781 11.15625 25.3125 C 10.558594 24.824219 9.902344 24.082031 9.3125 23.15625 C 8.128906 21.304688 7.21875 18.761719 7.21875 16.15625 C 7.21875 12.214844 9.417969 9.8125 12.21875 9.8125 Z" /></symbol><use xlink:href="#svg-apple" /></svg>`,
"archive": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-archive" viewBox="0 0 32 32"><path class="svg-fill" d="M 4 5 L 4 11 L 5 11 L 5 27 L 27 27 L 27 11 L 28 11 L 28 5 Z M 6 7 L 26 7 L 26 9 L 6 9 Z M 7 11 L 25 11 L 25 25 L 7 25 Z M 12.8125 13 C 12.261719 13.050781 11.855469 13.542969 11.90625 14.09375 C 11.957031 14.644531 12.449219 15.050781 13 15 L 19 15 C 19.359375 15.003906 19.695313 14.816406 19.878906 14.503906 C 20.058594 14.191406 20.058594 13.808594 19.878906 13.496094 C 19.695313 13.183594 19.359375 12.996094 19 13 L 13 13 C 12.96875 13 12.9375 13 12.90625 13 C 12.875 13 12.84375 13 12.8125 13 Z" /></symbol><use xlink:href="#svg-archive" /></svg>`,
"backward": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-backward" viewBox="0 0 32 32"><path class="svg-fill" d="M 17 5 L 15.40625 6.1875 L 3.40625 15.1875 L 2.34375 16 L 3.40625 16.8125 L 15.40625 25.8125 L 17 27 L 17 19.625 L 25.40625 25.8125 L 27 26.96875 L 27 5.03125 L 25.40625 6.1875 L 17 12.375 Z M 25 8.96875 L 25 23.03125 L 16.59375 16.84375 L 15.46875 16 L 16.59375 15.15625 Z M 15 9 L 15 23 L 5.6875 16 Z" /></symbol><use xlink:href="#svg-backward" /></svg>`,
"bell": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-bell" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 3 C 14.894531 3 14 3.894531 14 5 C 14 5.085938 14.019531 5.167969 14.03125 5.25 C 10.574219 6.132813 8 9.273438 8 13 L 8 22 C 8 22.566406 7.566406 23 7 23 L 6 23 L 6 25 L 13.1875 25 C 13.074219 25.316406 13 25.648438 13 26 C 13 27.644531 14.355469 29 16 29 C 17.644531 29 19 27.644531 19 26 C 19 25.648438 18.925781 25.316406 18.8125 25 L 26 25 L 26 23 L 25 23 C 24.433594 23 24 22.566406 24 22 L 24 13.28125 C 24 9.523438 21.488281 6.171875 17.96875 5.25 C 17.980469 5.167969 18 5.085938 18 5 C 18 3.894531 17.105469 3 16 3 Z M 15.5625 7 C 15.707031 6.988281 15.851563 7 16 7 C 16.0625 7 16.125 7 16.1875 7 C 19.453125 7.097656 22 9.960938 22 13.28125 L 22 22 C 22 22.351563 22.074219 22.683594 22.1875 23 L 9.8125 23 C 9.925781 22.683594 10 22.351563 10 22 L 10 13 C 10 9.824219 12.445313 7.226563 15.5625 7 Z M 16 25 C 16.5625 25 17 25.4375 17 26 C 17 26.5625 16.5625 27 16 27 C 15.4375 27 15 26.5625 15 26 C 15 25.4375 15.4375 25 16 25 Z" /></symbol><use xlink:href="#svg-bell" /></svg>`,
"bolt": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-bolt" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 6 L 16 15 L 20 16 L 16.101563 26 L 16 26 L 16 17.96875 L 12 16.96875 L 15.898438 6 L 16 6 M 18 4 L 14.488281 4 L 14.015625 5.328125 L 10.113281 16.300781 L 9.378906 18.375 L 11.515625 18.910156 L 14 19.53125 L 14 28 L 17.46875 28 L 17.964844 26.726563 L 21.863281 16.726563 L 22.6875 14.609375 L 18 13.4375 Z" /></symbol><use xlink:href="#svg-bolt" /></svg>`,
"bookmark": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-bookmark" viewBox="0 0 32 32"><path class="svg-fill" d="M 7 5 L 7 28 L 8.59375 26.8125 L 16 21.25 L 23.40625 26.8125 L 25 28 L 25 5 Z M 9 7 L 23 7 L 23 24 L 16.59375 19.1875 L 16 18.75 L 15.40625 19.1875 L 9 24 Z" /></symbol><use xlink:href="#svg-bookmark" /></svg>`,
"calendar": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-calendar" viewBox="0 0 32 32"><path class="svg-fill" d="M 9 4 L 9 5 L 5 5 L 5 27 L 27 27 L 27 5 L 23 5 L 23 4 L 21 4 L 21 5 L 11 5 L 11 4 Z M 7 7 L 9 7 L 9 8 L 11 8 L 11 7 L 21 7 L 21 8 L 23 8 L 23 7 L 25 7 L 25 9 L 7 9 Z M 7 11 L 25 11 L 25 25 L 7 25 Z M 13 13 L 13 15 L 15 15 L 15 13 Z M 17 13 L 17 15 L 19 15 L 19 13 Z M 21 13 L 21 15 L 23 15 L 23 13 Z M 9 17 L 9 19 L 11 19 L 11 17 Z M 13 17 L 13 19 L 15 19 L 15 17 Z M 17 17 L 17 19 L 19 19 L 19 17 Z M 21 17 L 21 19 L 23 19 L 23 17 Z M 9 21 L 9 23 L 11 23 L 11 21 Z M 13 21 L 13 23 L 15 23 L 15 21 Z M 17 21 L 17 23 L 19 23 L 19 21 Z" /></symbol><use xlink:href="#svg-calendar" /></svg>`,
"camera": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-camera" viewBox="0 0 32 32"><path class="svg-fill" d="M 11.5 6 L 11.1875 6.40625 L 10 8 L 3 8 L 3 26 L 29 26 L 29 8 L 22 8 L 20.8125 6.40625 L 20.5 6 Z M 12.5 8 L 19.5 8 L 20.6875 9.59375 L 21 10 L 27 10 L 27 24 L 5 24 L 5 10 L 11 10 L 11.3125 9.59375 Z M 8 11 C 7.449219 11 7 11.449219 7 12 C 7 12.550781 7.449219 13 8 13 C 8.550781 13 9 12.550781 9 12 C 9 11.449219 8.550781 11 8 11 Z M 16 11 C 12.699219 11 10 13.699219 10 17 C 10 20.300781 12.699219 23 16 23 C 19.300781 23 22 20.300781 22 17 C 22 13.699219 19.300781 11 16 11 Z M 16 13 C 18.222656 13 20 14.777344 20 17 C 20 19.222656 18.222656 21 16 21 C 13.777344 21 12 19.222656 12 17 C 12 14.777344 13.777344 13 16 13 Z" /></symbol><use xlink:href="#svg-camera" /></svg>`,
"cart": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-cart" viewBox="0 0 32 32"><path class="svg-fill" d="M 5 7 C 4.449219 7 4 7.449219 4 8 C 4 8.550781 4.449219 9 5 9 L 7.21875 9 L 9.84375 19.5 C 10.066406 20.390625 10.863281 21 11.78125 21 L 23.25 21 C 24.152344 21 24.917969 20.402344 25.15625 19.53125 L 27.75 10 L 11 10 L 11.5 12 L 25.15625 12 L 23.25 19 L 11.78125 19 L 9.15625 8.5 C 8.933594 7.609375 8.136719 7 7.21875 7 Z M 22 21 C 20.355469 21 19 22.355469 19 24 C 19 25.644531 20.355469 27 22 27 C 23.644531 27 25 25.644531 25 24 C 25 22.355469 23.644531 21 22 21 Z M 13 21 C 11.355469 21 10 22.355469 10 24 C 10 25.644531 11.355469 27 13 27 C 14.644531 27 16 25.644531 16 24 C 16 22.355469 14.644531 21 13 21 Z M 13 23 C 13.5625 23 14 23.4375 14 24 C 14 24.5625 13.5625 25 13 25 C 12.4375 25 12 24.5625 12 24 C 12 23.4375 12.4375 23 13 23 Z M 22 23 C 22.5625 23 23 23.4375 23 24 C 23 24.5625 22.5625 25 22 25 C 21.4375 25 21 24.5625 21 24 C 21 23.4375 21.4375 23 22 23 Z" /></symbol><use xlink:href="#svg-cart" /></svg>`,
"check": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-check" viewBox="0 0 32 32"><path class="svg-fill" d="M 28.28125 6.28125 L 11 23.5625 L 3.71875 16.28125 L 2.28125 17.71875 L 10.28125 25.71875 L 11 26.40625 L 11.71875 25.71875 L 29.71875 7.71875 Z" /></symbol><use xlink:href="#svg-check" /></svg>`,
"clock": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-clock" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 9.382813 4 4 9.382813 4 16 C 4 22.617188 9.382813 28 16 28 C 22.617188 28 28 22.617188 28 16 C 28 9.382813 22.617188 4 16 4 Z M 16 6 C 21.535156 6 26 10.464844 26 16 C 26 21.535156 21.535156 26 16 26 C 10.464844 26 6 21.535156 6 16 C 6 10.464844 10.464844 6 16 6 Z M 15 8 L 15 17 L 22 17 L 22 15 L 17 15 L 17 8 Z" /></symbol><use xlink:href="#svg-clock" /></svg>`,
"code": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-code" viewBox="0 0 32 32"><path class="svg-fill" d="M 18 5 L 12 27 L 14 27 L 20 5 Z M 7.9375 6.40625 L 1.1875 15.40625 L 0.75 16 L 1.1875 16.59375 L 7.9375 25.59375 L 9.5625 24.40625 L 3.25 16 L 9.5625 7.59375 Z M 24.0625 6.40625 L 22.4375 7.59375 L 28.75 16 L 22.4375 24.40625 L 24.0625 25.59375 L 30.8125 16.59375 L 31.25 16 L 30.8125 15.40625 Z" /></symbol><use xlink:href="#svg-code" /></svg>`,
"cog": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-cog" viewBox="0 0 32 32"><path class="svg-fill" d="M 13.1875 3 L 13.03125 3.8125 L 12.4375 6.78125 C 11.484375 7.15625 10.625 7.683594 9.84375 8.3125 L 6.9375 7.3125 L 6.15625 7.0625 L 5.75 7.78125 L 3.75 11.21875 L 3.34375 11.9375 L 3.9375 12.46875 L 6.1875 14.4375 C 6.105469 14.949219 6 15.460938 6 16 C 6 16.539063 6.105469 17.050781 6.1875 17.5625 L 3.9375 19.53125 L 3.34375 20.0625 L 3.75 20.78125 L 5.75 24.21875 L 6.15625 24.9375 L 6.9375 24.6875 L 9.84375 23.6875 C 10.625 24.316406 11.484375 24.84375 12.4375 25.21875 L 13.03125 28.1875 L 13.1875 29 L 18.8125 29 L 18.96875 28.1875 L 19.5625 25.21875 C 20.515625 24.84375 21.375 24.316406 22.15625 23.6875 L 25.0625 24.6875 L 25.84375 24.9375 L 26.25 24.21875 L 28.25 20.78125 L 28.65625 20.0625 L 28.0625 19.53125 L 25.8125 17.5625 C 25.894531 17.050781 26 16.539063 26 16 C 26 15.460938 25.894531 14.949219 25.8125 14.4375 L 28.0625 12.46875 L 28.65625 11.9375 L 28.25 11.21875 L 26.25 7.78125 L 25.84375 7.0625 L 25.0625 7.3125 L 22.15625 8.3125 C 21.375 7.683594 20.515625 7.15625 19.5625 6.78125 L 18.96875 3.8125 L 18.8125 3 Z M 14.8125 5 L 17.1875 5 L 17.6875 7.59375 L 17.8125 8.1875 L 18.375 8.375 C 19.511719 8.730469 20.542969 9.332031 21.40625 10.125 L 21.84375 10.53125 L 22.40625 10.34375 L 24.9375 9.46875 L 26.125 11.5 L 24.125 13.28125 L 23.65625 13.65625 L 23.8125 14.25 C 23.941406 14.820313 24 15.402344 24 16 C 24 16.597656 23.941406 17.179688 23.8125 17.75 L 23.6875 18.34375 L 24.125 18.71875 L 26.125 20.5 L 24.9375 22.53125 L 22.40625 21.65625 L 21.84375 21.46875 L 21.40625 21.875 C 20.542969 22.667969 19.511719 23.269531 18.375 23.625 L 17.8125 23.8125 L 17.6875 24.40625 L 17.1875 27 L 14.8125 27 L 14.3125 24.40625 L 14.1875 23.8125 L 13.625 23.625 C 12.488281 23.269531 11.457031 22.667969 10.59375 21.875 L 10.15625 21.46875 L 9.59375 21.65625 L 7.0625 22.53125 L 5.875 20.5 L 7.875 18.71875 L 8.34375 18.34375 L 8.1875 17.75 C 8.058594 17.179688 8 16.597656 8 16 C 8 15.402344 8.058594 14.820313 8.1875 14.25 L 8.34375 13.65625 L 7.875 13.28125 L 5.875 11.5 L 7.0625 9.46875 L 9.59375 10.34375 L 10.15625 10.53125 L 10.59375 10.125 C 11.457031 9.332031 12.488281 8.730469 13.625 8.375 L 14.1875 8.1875 L 14.3125 7.59375 Z M 16 11 C 13.25 11 11 13.25 11 16 C 11 18.75 13.25 21 16 21 C 18.75 21 21 18.75 21 16 C 21 13.25 18.75 11 16 11 Z M 16 13 C 17.667969 13 19 14.332031 19 16 C 19 17.667969 17.667969 19 16 19 C 14.332031 19 13 17.667969 13 16 C 13 14.332031 14.332031 13 16 13 Z" /></symbol><use xlink:href="#svg-cog" /></svg>`,
"comment": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-comment" viewBox="0 0 32 32"><path class="svg-fill" d="M 3 6 L 3 26 L 12.585938 26 L 16 29.414063 L 19.414063 26 L 29 26 L 29 6 Z M 5 8 L 27 8 L 27 24 L 18.585938 24 L 16 26.585938 L 13.414063 24 L 5 24 Z M 9 11 L 9 13 L 23 13 L 23 11 Z M 9 15 L 9 17 L 23 17 L 23 15 Z M 9 19 L 9 21 L 19 21 L 19 19 Z" /></symbol><use xlink:href="#svg-comment" /></svg>`,
"compass": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-compass" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 9.382813 4 4 9.382813 4 16 C 4 22.617188 9.382813 28 16 28 C 22.617188 28 28 22.617188 28 16 C 28 9.382813 22.617188 4 16 4 Z M 14.96875 6.0625 C 14.980469 6.0625 14.988281 6.0625 15 6.0625 L 15 7 L 17 7 L 17 6.0625 C 21.738281 6.527344 25.472656 10.261719 25.9375 15 L 25 15 L 25 17 L 25.9375 17 C 25.472656 21.738281 21.738281 25.472656 17 25.9375 L 17 25 L 15 25 L 15 25.9375 C 10.261719 25.472656 6.527344 21.738281 6.0625 17 L 7 17 L 7 15 L 6.0625 15 C 6.527344 10.269531 10.246094 6.539063 14.96875 6.0625 Z M 22.5 9.5 L 14.15625 14.15625 L 9.5 22.5 L 17.84375 17.84375 Z M 16 14.5 C 16.828125 14.5 17.5 15.171875 17.5 16 C 17.5 16.828125 16.828125 17.5 16 17.5 C 15.171875 17.5 14.5 16.828125 14.5 16 C 14.5 15.171875 15.171875 14.5 16 14.5 Z" /></symbol><use xlink:href="#svg-compass" /></svg>`,
"database": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-database" viewBox="0 0 32 32"><path class="svg-fill" d="M 6 4 L 6 28 L 26 28 L 26 4 Z M 8 6 L 24 6 L 24 11 L 8 11 Z M 8 13 L 24 13 L 24 19 L 8 19 Z M 8 21 L 24 21 L 24 26 L 8 26 Z" /></symbol><use xlink:href="#svg-database" /></svg>`,
"desktop": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-desktop" viewBox="0 0 32 32"><path class="svg-fill" d="M 2 6 L 2 24 L 15 24 L 15 26 L 10 26 L 10 28 L 22 28 L 22 26 L 17 26 L 17 24 L 30 24 L 30 6 Z M 4 8 L 28 8 L 28 22 L 4 22 Z" /></symbol><use xlink:href="#svg-desktop" /></svg>`,
"dna": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-dna" viewBox="0 0 32 32"><path class="svg-fill" d="M 6 5 C 6 8.023438 7.28125 10.375 9.09375 12.21875 C 10.53125 13.683594 12.277344 14.886719 14.0625 16 C 9.894531 18.632813 6 21.511719 6 27 L 8 27 C 8 22.304688 11.78125 19.742188 15.96875 17.15625 C 16.964844 17.769531 17.9375 18.367188 18.84375 19 L 15.1875 19 C 14.1875 19.601563 13.304688 20.300781 12.40625 21 L 21.3125 21 C 21.363281 21.050781 21.417969 21.105469 21.46875 21.15625 C 22.039063 21.734375 22.542969 22.347656 22.9375 23 L 10.59375 23 C 10.09375 23.601563 9.800781 24.300781 9.5 25 L 23.75 25 C 23.90625 25.617188 24 26.273438 24 27 L 26 27 C 26 23.976563 24.71875 21.625 22.90625 19.78125 C 21.09375 17.9375 18.78125 16.53125 16.53125 15.15625 C 14.28125 13.78125 12.09375 12.4375 10.53125 10.84375 C 8.96875 9.25 8 7.476563 8 5 Z M 24 5 C 24 5.71875 23.882813 6.378906 23.71875 7 L 9.5 7 C 9.800781 7.699219 10.09375 8.398438 10.59375 9 L 22.875 9 C 22.4375 9.722656 21.882813 10.378906 21.25 11 L 12.40625 11 C 13.304688 11.699219 14.1875 12.398438 15.1875 13 L 18.875 13 C 18.273438 13.4375 17.640625 13.878906 17 14.3125 C 17.601563 14.710938 18.210938 15.007813 18.8125 15.40625 C 22.613281 12.90625 26 10 26 5 Z" /></symbol><use xlink:href="#svg-dna" /></svg>`,
"dot": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-dot" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 9.382813 4 4 9.382813 4 16 C 4 22.617188 9.382813 28 16 28 C 22.617188 28 28 22.617188 28 16 C 28 9.382813 22.617188 4 16 4 Z M 16 6 C 21.535156 6 26 10.464844 26 16 C 26 21.535156 21.535156 26 16 26 C 10.464844 26 6 21.535156 6 16 C 6 10.464844 10.464844 6 16 6 Z M 16 13 C 14.34375 13 13 14.34375 13 16 C 13 17.65625 14.34375 19 16 19 C 17.65625 19 19 17.65625 19 16 C 19 14.34375 17.65625 13 16 13 Z" /></symbol><use xlink:href="#svg-dot" /></svg>`,
"down": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-down" viewBox="0 0 32 32"><path class="svg-fill" d="M 4.21875 10.78125 L 2.78125 12.21875 L 15.28125 24.71875 L 16 25.40625 L 16.71875 24.71875 L 29.21875 12.21875 L 27.78125 10.78125 L 16 22.5625 Z" /></symbol><use xlink:href="#svg-down" /></svg>`,
"download": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-download" viewBox="0 0 32 32"><path class="svg-fill" d="M 15 4 L 15 20.5625 L 9.71875 15.28125 L 8.28125 16.71875 L 15.28125 23.71875 L 16 24.40625 L 16.71875 23.71875 L 23.71875 16.71875 L 22.28125 15.28125 L 17 20.5625 L 17 4 Z M 7 26 L 7 28 L 25 28 L 25 26 Z" /></symbol><use xlink:href="#svg-download" /></svg>`,
"edit": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-edit" viewBox="0 0 32 32"><path class="svg-fill" d="M 25 4.03125 C 24.234375 4.03125 23.484375 4.328125 22.90625 4.90625 L 13 14.78125 L 12.78125 15 L 12.71875 15.3125 L 12.03125 18.8125 L 11.71875 20.28125 L 13.1875 19.96875 L 16.6875 19.28125 L 17 19.21875 L 17.21875 19 L 27.09375 9.09375 C 28.246094 7.941406 28.246094 6.058594 27.09375 4.90625 C 26.515625 4.328125 25.765625 4.03125 25 4.03125 Z M 25 5.96875 C 25.234375 5.96875 25.464844 6.089844 25.6875 6.3125 C 26.132813 6.757813 26.132813 7.242188 25.6875 7.6875 L 16 17.375 L 14.28125 17.71875 L 14.625 16 L 24.3125 6.3125 C 24.535156 6.089844 24.765625 5.96875 25 5.96875 Z M 4 8 L 4 28 L 24 28 L 24 14.8125 L 22 16.8125 L 22 26 L 6 26 L 6 10 L 15.1875 10 L 17.1875 8 Z" /></symbol><use xlink:href="#svg-edit" /></svg>`,
"error": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-error" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 3.21875 L 15.125 4.71875 L 3.125 25.5 L 2.28125 27 L 29.71875 27 L 28.875 25.5 L 16.875 4.71875 Z M 16 7.21875 L 26.25 25 L 5.75 25 Z M 15 14 L 15 20 L 17 20 L 17 14 Z M 15 21 L 15 23 L 17 23 L 17 21 Z" /></symbol><use xlink:href="#svg-error" /></svg>`,
"export": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-export" viewBox="0 0 32 32"><path class="svg-fill" d="M 6 4 L 6 28 L 26 28 L 26 20 L 24 22 L 24 26 L 8 26 L 8 6 L 24 6 L 24 10 L 26 12 L 26 4 Z M 22.40625 11 L 21 12.40625 L 23.5625 15 L 13.90625 15 L 13.90625 17 L 23.5625 17 L 21 19.59375 L 22.40625 21 L 26.71875 16.71875 L 27.40625 16 L 26.71875 15.28125 Z" /></symbol><use xlink:href="#svg-export" /></svg>`,
"external": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-external" viewBox="0 0 32 32"><path class="svg-fill" d="M 23.414062 4.4375 L 22 5.8515625 L 26.167969 10 L 16.5 10 C 13.468 10 11 12.467 11 15.5 C 11 18.533 13.468 21 16.5 21 L 17 21 L 17 19 L 16.5 19 C 14.57 19 13 17.43 13 15.5 C 13 13.57 14.57 12 16.5 12 L 26.171875 12 L 22.007812 16.164062 L 23.421875 17.578125 L 30 11 L 23.414062 4.4375 z M 5 5 L 5 27 L 27 27 L 27 17 L 25 19 L 25 25 L 7 25 L 7 7 L 17.853516 7 L 19.853516 5 L 5 5 z" /></symbol><use xlink:href="#svg-external" /></svg>`,
"eye": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-eye" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 8 C 7.664063 8 1.25 15.34375 1.25 15.34375 L 0.65625 16 L 1.25 16.65625 C 1.25 16.65625 7.097656 23.324219 14.875 23.9375 C 15.246094 23.984375 15.617188 24 16 24 C 16.382813 24 16.753906 23.984375 17.125 23.9375 C 24.902344 23.324219 30.75 16.65625 30.75 16.65625 L 31.34375 16 L 30.75 15.34375 C 30.75 15.34375 24.335938 8 16 8 Z M 16 10 C 18.203125 10 20.234375 10.601563 22 11.40625 C 22.636719 12.460938 23 13.675781 23 15 C 23 18.613281 20.289063 21.582031 16.78125 21.96875 C 16.761719 21.972656 16.738281 21.964844 16.71875 21.96875 C 16.480469 21.980469 16.242188 22 16 22 C 15.734375 22 15.476563 21.984375 15.21875 21.96875 C 11.710938 21.582031 9 18.613281 9 15 C 9 13.695313 9.351563 12.480469 9.96875 11.4375 L 9.9375 11.4375 C 11.71875 10.617188 13.773438 10 16 10 Z M 16 12 C 14.34375 12 13 13.34375 13 15 C 13 16.65625 14.34375 18 16 18 C 17.65625 18 19 16.65625 19 15 C 19 13.34375 17.65625 12 16 12 Z M 7.25 12.9375 C 7.09375 13.609375 7 14.285156 7 15 C 7 16.753906 7.5 18.394531 8.375 19.78125 C 5.855469 18.324219 4.105469 16.585938 3.53125 16 C 4.011719 15.507813 5.351563 14.203125 7.25 12.9375 Z M 24.75 12.9375 C 26.648438 14.203125 27.988281 15.507813 28.46875 16 C 27.894531 16.585938 26.144531 18.324219 23.625 19.78125 C 24.5 18.394531 25 16.753906 25 15 C 25 14.285156 24.90625 13.601563 24.75 12.9375 Z" /></symbol><use xlink:href="#svg-eye" /></svg>`,
"file": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-file" viewBox="0 0 32 32"><path class="svg-fill" d="M 6 3 L 6 29 L 26 29 L 26 9.59375 L 25.71875 9.28125 L 19.71875 3.28125 L 19.40625 3 Z M 8 5 L 18 5 L 18 11 L 24 11 L 24 27 L 8 27 Z M 20 6.4375 L 22.5625 9 L 20 9 Z M 11 13 L 11 15 L 21 15 L 21 13 Z M 11 17 L 11 19 L 21 19 L 21 17 Z M 11 21 L 11 23 L 21 23 L 21 21 Z" /></symbol><use xlink:href="#svg-file" /></svg>`,
"file-text": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-file-text" viewBox="0 0 32 32"><path class="svg-fill" d="M 6 3 L 6 29 L 26 29 L 26 9.59375 L 25.71875 9.28125 L 19.71875 3.28125 L 19.40625 3 Z M 8 5 L 18 5 L 18 11 L 24 11 L 24 27 L 8 27 Z M 20 6.4375 L 22.5625 9 L 20 9 Z M 11 13 L 11 15 L 21 15 L 21 13 Z M 11 17 L 11 19 L 21 19 L 21 17 Z M 11 21 L 11 23 L 21 23 L 21 21 Z" /></symbol><use xlink:href="#svg-file-text" /></svg>`,
"filter": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-filter" viewBox="0 0 32 32"><path class="svg-fill" d="M 5 4 L 5 6.34375 L 5.21875 6.625 L 13 16.34375 L 13 28 L 14.59375 26.8125 L 18.59375 23.8125 L 19 23.5 L 19 16.34375 L 26.78125 6.625 L 27 6.34375 L 27 4 Z M 7.28125 6 L 24.71875 6 L 17.53125 15 L 14.46875 15 Z M 15 17 L 17 17 L 17 22.5 L 15 24 Z" /></symbol><use xlink:href="#svg-filter" /></svg>`,
"fingerprint": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-fingerprint" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 15.738281 4 15.503906 4.015625 15.25 4.03125 C 13.84375 4.109375 12.46875 4.398438 11.1875 4.90625 L 11.9375 6.78125 C 13.015625 6.351563 14.152344 6.097656 15.34375 6.03125 C 15.550781 6.019531 15.773438 6 16 6 C 17.882813 6 19.664063 6.476563 21.21875 7.3125 L 22.15625 5.5625 C 20.320313 4.574219 18.21875 4 16 4 Z M 9.5 5.71875 C 8.324219 6.398438 7.242188 7.273438 6.3125 8.3125 C 5.898438 8.773438 5.535156 9.292969 5.1875 9.8125 C 4.804688 10.382813 4.472656 10.980469 4.1875 11.59375 L 6 12.40625 C 6.238281 11.890625 6.519531 11.394531 6.84375 10.90625 C 7.136719 10.464844 7.464844 10.042969 7.8125 9.65625 C 8.605469 8.769531 9.511719 8.042969 10.5 7.46875 Z M 23.96875 6.71875 L 22.75 8.3125 C 25.191406 10.207031 26.789063 13.09375 26.96875 16.40625 C 26.972656 16.46875 27.015625 17.015625 26.96875 17.9375 L 28.96875 18.0625 C 29.019531 17.058594 28.976563 16.398438 28.96875 16.28125 C 28.757813 12.378906 26.851563 8.953125 23.96875 6.71875 Z M 16 7 L 16 9 C 20.25 9 23.769531 12.3125 24 16.5625 C 24.007813 16.675781 24.128906 19.628906 23 23.1875 L 24.90625 23.78125 C 26.144531 19.878906 26.015625 16.75 26 16.46875 C 25.714844 11.175781 21.292969 7 16 7 Z M 14.15625 7.15625 C 12.003906 7.550781 10.050781 8.652344 8.5625 10.3125 C 8.242188 10.667969 7.925781 11.066406 7.65625 11.46875 L 7.6875 11.46875 L 7.6875 11.5 C 6.519531 13.261719 5.902344 15.300781 6 17.40625 C 6 17.425781 6 17.449219 6 17.46875 L 6 17.96875 L 8 18.03125 L 8 17.375 C 7.910156 15.660156 8.382813 14 9.34375 12.5625 C 9.554688 12.242188 9.777344 11.9375 10.03125 11.65625 C 11.230469 10.316406 12.8125 9.441406 14.53125 9.125 Z M 15.59375 10 C 14.003906 10.085938 12.523438 10.722656 11.34375 11.78125 L 12.65625 13.28125 C 13.503906 12.519531 14.582031 12.0625 15.71875 12 C 15.824219 11.992188 15.902344 12 16 12 C 16.582031 12 17.140625 12.097656 17.65625 12.28125 L 18.34375 10.40625 C 17.617188 10.148438 16.808594 10 16 10 C 15.855469 10 15.730469 9.992188 15.59375 10 Z M 19.875 11.15625 L 18.78125 12.84375 C 20.050781 13.691406 20.910156 15.078125 21 16.71875 L 23 16.625 C 22.875 14.34375 21.652344 12.339844 19.875 11.15625 Z M 15.78125 13 C 14.726563 13.058594 13.738281 13.554688 13.03125 14.34375 C 12.324219 15.132813 11.941406 16.160156 12 17.21875 C 12 17.214844 12.050781 18.34375 11.59375 19.65625 C 11.136719 20.96875 10.222656 22.449219 8.25 23.40625 C 8.25 23.40625 7.957031 23.539063 7.625 23.6875 C 7.292969 23.835938 6.875 24.007813 6.78125 24.03125 L 7.21875 25.96875 C 7.664063 25.867188 8.09375 25.667969 8.46875 25.5 C 8.84375 25.332031 9.125 25.1875 9.125 25.1875 C 11.625 23.976563 12.886719 21.980469 13.46875 20.3125 C 14.050781 18.644531 14.007813 17.316406 14 17.125 L 14 17.09375 C 13.96875 16.554688 14.136719 16.058594 14.5 15.65625 C 14.863281 15.25 15.347656 15.027344 15.875 15 C 15.925781 14.996094 15.964844 15 16 15 L 16 13 C 15.917969 13 15.851563 12.996094 15.78125 13 Z M 10.15625 13.125 C 9.328125 14.363281 8.925781 15.839844 9 17.34375 C 9 17.355469 9 17.363281 9 17.375 C 9.003906 17.457031 9.089844 19.640625 6.9375 20.6875 C 6.890625 20.707031 6.144531 21 5 21 L 5 23 C 6.566406 23 7.75 22.53125 7.75 22.53125 L 7.78125 22.53125 L 7.8125 22.5 C 11.035156 20.9375 11.003906 17.460938 11 17.28125 L 11 17.25 C 10.941406 16.160156 11.25 15.140625 11.84375 14.25 Z M 17.90625 13.46875 L 16.9375 15.25 C 17.53125 15.570313 17.960938 16.152344 18 16.875 C 18.007813 17.039063 18.285156 23.261719 13.375 27.21875 L 14.625 28.78125 C 20.34375 24.175781 20.027344 17.25 20 16.78125 C 19.925781 15.351563 19.097656 14.109375 17.90625 13.46875 Z M 16 16 C 15.449219 16 15 16.449219 15 17 C 15 17.023438 15 17.042969 15 17.0625 C 15 17.0625 15.117188 19.121094 14.09375 21.4375 L 15.90625 22.25 C 17.089844 19.574219 17.007813 17.171875 17 17 C 17 16.976563 17 16.957031 17 16.9375 C 16.964844 16.414063 16.53125 16 16 16 Z M 20.96875 17.9375 C 20.84375 19.96875 20.203125 24.132813 17.25 27.625 L 18.75 28.90625 C 22.113281 24.933594 22.828125 20.347656 22.96875 18.0625 Z M 13.5625 22.5 C 12.761719 23.847656 11.523438 25.144531 9.5625 26.09375 L 10.4375 27.90625 C 12.757813 26.78125 14.308594 25.136719 15.28125 23.5 Z" /></symbol><use xlink:href="#svg-fingerprint" /></svg>`,
"fire": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-fire" viewBox="0 0 32 32"><path class="svg-fill" d="M 16.798828 4.390625 L 13.802734 9.3867188 L 11.953125 7.5390625 L 11.25 8.3378906 C 7.767 12.285891 6 15.873 6 19 C 6 23.962 10.486 28 16 28 C 21.514 28 26 23.962 26 19 C 26 14.238 20.803078 8.3660625 17.705078 5.2890625 L 16.798828 4.390625 z M 17.191406 7.6230469 C 19.767406 10.309047 24 15.288 24 19 C 24 21.391212 22.620267 23.5043 20.523438 24.767578 C 20.822014 24.054088 21 23.267477 21 22.429688 C 21 20.048687 19.315344 17.224391 17.902344 15.275391 L 17.058594 14.109375 L 14.84375 17.431641 L 13.4375 16.025391 L 12.777344 17.115234 C 11.598344 19.061234 11 20.848688 11 22.429688 C 11 23.267477 11.177986 24.054088 11.476562 24.767578 C 9.3797333 23.5043 8 21.391212 8 19 C 8 16.611 9.3976406 13.676703 12.056641 10.470703 L 14.197266 12.613281 L 17.191406 7.6230469 z M 17.103516 17.648438 C 18.333516 19.565437 19 21.233687 19 22.429688 C 19 24.398688 17.654 26 16 26 C 14.346 26 13 24.398688 13 22.429688 C 13 21.507688 13.290234 20.45225 13.865234 19.28125 L 15.15625 20.570312 L 17.103516 17.648438 z" /></symbol><use xlink:href="#svg-fire" /></svg>`,
"flag": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-flag" viewBox="0 0 32 32"><path class="svg-fill" d="M 5 5 L 5 29 L 7 29 L 7 19 L 15 19 L 15 22 L 27 22 L 27 8 L 17 8 L 17 5 Z M 7 7 L 15 7 L 15 17 L 7 17 Z M 17 10 L 25 10 L 25 20 L 17 20 Z" /></symbol><use xlink:href="#svg-flag" /></svg>`,
"folder": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-folder" viewBox="0 0 32 32"><path class="svg-fill" d="M 6 3 L 6 29 L 26 29 L 26 15.4375 L 27.71875 13.71875 L 28 13.40625 L 28 3 Z M 8 5 L 22 5 L 22 13.40625 L 22.28125 13.71875 L 24 15.4375 L 24 27 L 8 27 Z M 24 5 L 26 5 L 26 12.5625 L 25 13.5625 L 24 12.5625 Z" /></symbol><use xlink:href="#svg-folder" /></svg>`,
"folder-open": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-folder-open" viewBox="0 0 32 32"><path class="svg-fill" d="M 5 3 L 5 27.8125 L 5.78125 27.96875 L 17.78125 30.46875 L 19 30.71875 L 19 28 L 25 28 L 25 15.4375 L 26.71875 13.71875 L 27 13.40625 L 27 3 Z M 14.125 5 L 25 5 L 25 12.5625 L 23.28125 14.28125 L 23 14.59375 L 23 26 L 19 26 L 19 17.09375 L 18.71875 16.78125 L 17 15.0625 L 17 5.71875 Z M 7 5.28125 L 15 7.28125 L 15 15.90625 L 15.28125 16.21875 L 17 17.9375 L 17 28.28125 L 7 26.1875 Z" /></symbol><use xlink:href="#svg-folder-open" /></svg>`,
"forward": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-forward" viewBox="0 0 32 32"><path class="svg-fill" d="M 15 5 L 15 12.375 L 6.59375 6.1875 L 5 5.03125 L 5 26.96875 L 6.59375 25.8125 L 15 19.625 L 15 27 L 16.59375 25.8125 L 28.59375 16.8125 L 29.65625 16 L 28.59375 15.1875 L 16.59375 6.1875 Z M 7 8.96875 L 15.40625 15.15625 L 16.53125 16 L 15.40625 16.84375 L 7 23.03125 Z M 17 9 L 26.3125 16 L 17 23 Z" /></symbol><use xlink:href="#svg-forward" /></svg>`,
"gift": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-gift" viewBox="0 0 32 32"><path class="svg-fill" d="M 12 5 C 10.355469 5 9 6.355469 9 8 C 9 8.351563 9.074219 8.683594 9.1875 9 L 4 9 L 4 15 L 5 15 L 5 28 L 27 28 L 27 15 L 28 15 L 28 9 L 22.8125 9 C 22.925781 8.683594 23 8.351563 23 8 C 23 6.355469 21.644531 5 20 5 C 18.25 5 17.0625 6.328125 16.28125 7.4375 C 16.175781 7.585938 16.09375 7.730469 16 7.875 C 15.90625 7.730469 15.824219 7.585938 15.71875 7.4375 C 14.9375 6.328125 13.75 5 12 5 Z M 12 7 C 12.625 7 13.4375 7.671875 14.0625 8.5625 C 14.214844 8.78125 14.191406 8.792969 14.3125 9 L 12 9 C 11.433594 9 11 8.566406 11 8 C 11 7.433594 11.433594 7 12 7 Z M 20 7 C 20.566406 7 21 7.433594 21 8 C 21 8.566406 20.566406 9 20 9 L 17.6875 9 C 17.808594 8.792969 17.785156 8.78125 17.9375 8.5625 C 18.5625 7.671875 19.375 7 20 7 Z M 6 11 L 26 11 L 26 13 L 17 13 L 17 12 L 15 12 L 15 13 L 6 13 Z M 7 15 L 25 15 L 25 26 L 17 26 L 17 16 L 15 16 L 15 26 L 7 26 Z" /></symbol><use xlink:href="#svg-gift" /></svg>`,
"github": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-github" viewBox="0 0 32 32"><path class="svg-fill" fill-rule="evenodd" d="M 16 4 C 9.371094 4 4 9.371094 4 16 C 4 21.300781 7.4375 25.800781 12.207031 27.386719 C 12.808594 27.496094 13.027344 27.128906 13.027344 26.808594 C 13.027344 26.523438 13.015625 25.769531 13.011719 24.769531 C 9.671875 25.492188 8.96875 23.160156 8.96875 23.160156 C 8.421875 21.773438 7.636719 21.402344 7.636719 21.402344 C 6.546875 20.660156 7.71875 20.675781 7.71875 20.675781 C 8.921875 20.761719 9.554688 21.910156 9.554688 21.910156 C 10.625 23.746094 12.363281 23.214844 13.046875 22.910156 C 13.15625 22.132813 13.46875 21.605469 13.808594 21.304688 C 11.144531 21.003906 8.34375 19.972656 8.34375 15.375 C 8.34375 14.0625 8.8125 12.992188 9.578125 12.152344 C 9.457031 11.851563 9.042969 10.628906 9.695313 8.976563 C 9.695313 8.976563 10.703125 8.65625 12.996094 10.207031 C 13.953125 9.941406 14.980469 9.808594 16 9.804688 C 17.019531 9.808594 18.046875 9.941406 19.003906 10.207031 C 21.296875 8.65625 22.300781 8.976563 22.300781 8.976563 C 22.957031 10.628906 22.546875 11.851563 22.421875 12.152344 C 23.191406 12.992188 23.652344 14.0625 23.652344 15.375 C 23.652344 19.984375 20.847656 20.996094 18.175781 21.296875 C 18.605469 21.664063 18.988281 22.398438 18.988281 23.515625 C 18.988281 25.121094 18.976563 26.414063 18.976563 26.808594 C 18.976563 27.128906 19.191406 27.503906 19.800781 27.386719 C 24.566406 25.796875 28 21.300781 28 16 C 28 9.371094 22.628906 4 16 4 Z" /></symbol><use xlink:href="#svg-github" /></svg>`,
"graph": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-graph" viewBox="0 0 32 32"><path class="svg-fill" d="M 5 7 L 5 23 L 3 23 L 3 25 L 29 25 L 29 23 L 27 23 L 27 7 Z M 7 9 L 25 9 L 25 23 L 7 23 Z M 21.28125 12.28125 L 17 16.5625 L 13.71875 13.28125 L 13 12.59375 L 12.28125 13.28125 L 9.28125 16.28125 L 10.71875 17.71875 L 13 15.4375 L 16.28125 18.71875 L 17 19.40625 L 17.71875 18.71875 L 22.71875 13.71875 Z M 20 20 L 19 21 L 20 22 L 24 22 L 24 20 Z" /></symbol><use xlink:href="#svg-graph" /></svg>`,
"grid": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-grid" viewBox="0 0 32 32"><path class="svg-fill" d="M 12 6 C 10.894531 6 10 6.894531 10 8 C 10 9.105469 10.894531 10 12 10 C 13.105469 10 14 9.105469 14 8 C 14 6.894531 13.105469 6 12 6 Z M 20 6 C 18.894531 6 18 6.894531 18 8 C 18 9.105469 18.894531 10 20 10 C 21.105469 10 22 9.105469 22 8 C 22 6.894531 21.105469 6 20 6 Z M 12 14 C 10.894531 14 10 14.894531 10 16 C 10 17.105469 10.894531 18 12 18 C 13.105469 18 14 17.105469 14 16 C 14 14.894531 13.105469 14 12 14 Z M 20 14 C 18.894531 14 18 14.894531 18 16 C 18 17.105469 18.894531 18 20 18 C 21.105469 18 22 17.105469 22 16 C 22 14.894531 21.105469 14 20 14 Z M 12 22 C 10.894531 22 10 22.894531 10 24 C 10 25.105469 10.894531 26 12 26 C 13.105469 26 14 25.105469 14 24 C 14 22.894531 13.105469 22 12 22 Z M 20 22 C 18.894531 22 18 22.894531 18 24 C 18 25.105469 18.894531 26 20 26 C 21.105469 26 22 25.105469 22 24 C 22 22.894531 21.105469 22 20 22 Z" /></symbol><use xlink:href="#svg-grid" /></svg>`,
"handle": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-handle" viewBox="0 0 32 32"><path class="svg-fill" d="M 4 7 L 4 9 L 28 9 L 28 7 Z M 4 15 L 4 17 L 28 17 L 28 15 Z M 4 23 L 4 25 L 28 25 L 28 23 Z" /></symbol><use xlink:href="#svg-handle" /></svg>`,
"happy": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-happy" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 9.382813 4 4 9.382813 4 16 C 4 22.617188 9.382813 28 16 28 C 22.617188 28 28 22.617188 28 16 C 28 9.382813 22.617188 4 16 4 Z M 16 6 C 21.535156 6 26 10.464844 26 16 C 26 21.535156 21.535156 26 16 26 C 10.464844 26 6 21.535156 6 16 C 6 10.464844 10.464844 6 16 6 Z M 11.5 12 C 10.671875 12 10 12.671875 10 13.5 C 10 14.328125 10.671875 15 11.5 15 C 12.328125 15 13 14.328125 13 13.5 C 13 12.671875 12.328125 12 11.5 12 Z M 20.5 12 C 19.671875 12 19 12.671875 19 13.5 C 19 14.328125 19.671875 15 20.5 15 C 21.328125 15 22 14.328125 22 13.5 C 22 12.671875 21.328125 12 20.5 12 Z M 10.8125 19 L 9.09375 20 C 10.476563 22.386719 13.046875 24 16 24 C 18.953125 24 21.523438 22.386719 22.90625 20 L 21.1875 19 C 20.148438 20.792969 18.226563 22 16 22 C 13.773438 22 11.851563 20.792969 10.8125 19 Z" /></symbol><use xlink:href="#svg-happy" /></svg>`,
"hashtag": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-hashtag" viewBox="0 0 32 32"><path class="svg-fill" d="M 11 5 L 11 11 L 5 11 L 5 13 L 11 13 L 11 19 L 5 19 L 5 21 L 11 21 L 11 27 L 13 27 L 13 21 L 19 21 L 19 27 L 21 27 L 21 21 L 27 21 L 27 19 L 21 19 L 21 13 L 27 13 L 27 11 L 21 11 L 21 5 L 19 5 L 19 11 L 13 11 L 13 5 Z M 13 13 L 19 13 L 19 19 L 13 19 Z" /></symbol><use xlink:href="#svg-hashtag" /></svg>`,
"heart": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-heart" viewBox="0 0 32 32"><path class="svg-fill" d="M 9.5 5 C 5.363281 5 2 8.402344 2 12.5 C 2 13.929688 2.648438 15.167969 3.25 16.0625 C 3.851563 16.957031 4.46875 17.53125 4.46875 17.53125 L 15.28125 28.375 L 16 29.09375 L 16.71875 28.375 L 27.53125 17.53125 C 27.53125 17.53125 30 15.355469 30 12.5 C 30 8.402344 26.636719 5 22.5 5 C 19.066406 5 16.855469 7.066406 16 7.9375 C 15.144531 7.066406 12.933594 5 9.5 5 Z M 9.5 7 C 12.488281 7 15.25 9.90625 15.25 9.90625 L 16 10.75 L 16.75 9.90625 C 16.75 9.90625 19.511719 7 22.5 7 C 25.542969 7 28 9.496094 28 12.5 C 28 14.042969 26.125 16.125 26.125 16.125 L 16 26.25 L 5.875 16.125 C 5.875 16.125 5.390625 15.660156 4.90625 14.9375 C 4.421875 14.214844 4 13.273438 4 12.5 C 4 9.496094 6.457031 7 9.5 7 Z" /></symbol><use xlink:href="#svg-heart" /></svg>`,
"image": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-image" viewBox="0 0 32 32"><path class="svg-fill" d="M 6 3 L 6 29 L 26 29 L 26 9.59375 L 25.71875 9.28125 L 19.71875 3.28125 L 19.40625 3 Z M 8 5 L 18 5 L 18 11 L 24 11 L 24 27 L 8 27 Z M 20 6.4375 L 22.5625 9 L 20 9 Z M 21.09375 14 C 20.542969 14 20.09375 14.449219 20.09375 15 C 20.09375 15.550781 20.542969 16 21.09375 16 C 21.644531 16 22.09375 15.550781 22.09375 15 C 22.09375 14.449219 21.644531 14 21.09375 14 Z M 14 15.59375 L 13.28125 16.28125 L 9.28125 20.28125 L 10.71875 21.71875 L 14 18.4375 L 16.28125 20.71875 L 17 21.40625 L 17.71875 20.71875 L 19 19.4375 L 21.28125 21.71875 L 22.71875 20.28125 L 19.71875 17.28125 L 19 16.59375 L 18.28125 17.28125 L 17 18.5625 L 14.71875 16.28125 Z" /></symbol><use xlink:href="#svg-image" /></svg>`,
"import": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-import" viewBox="0 0 32 32"><path class="svg-fill" d="M 6 4 L 6 28 L 26 28 L 26 19 L 24 19 L 24 26 L 8 26 L 8 6 L 24 6 L 24 13 L 26 13 L 26 4 Z M 17.5 11 L 13.1875 15.28125 L 12.5 16 L 13.1875 16.71875 L 17.5 21 L 18.90625 19.59375 L 16.3125 17 L 28 17 L 28 15 L 16.3125 15 L 18.90625 12.40625 Z" /></symbol><use xlink:href="#svg-import" /></svg>`,
"info": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-info" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 3 C 8.832031 3 3 8.832031 3 16 C 3 23.167969 8.832031 29 16 29 C 23.167969 29 29 23.167969 29 16 C 29 8.832031 23.167969 3 16 3 Z M 16 5 C 22.085938 5 27 9.914063 27 16 C 27 22.085938 22.085938 27 16 27 C 9.914063 27 5 22.085938 5 16 C 5 9.914063 9.914063 5 16 5 Z M 15 10 L 15 12 L 17 12 L 17 10 Z M 15 14 L 15 22 L 17 22 L 17 14 Z" /></symbol><use xlink:href="#svg-info" /></svg>`,
"left": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-left" viewBox="0 0 32 32"><path class="svg-fill" d="M 19.03125 4.28125 L 8.03125 15.28125 L 7.34375 16 L 8.03125 16.71875 L 19.03125 27.71875 L 20.46875 26.28125 L 10.1875 16 L 20.46875 5.71875 Z" /></symbol><use xlink:href="#svg-left" /></svg>`,
"link": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-link" viewBox="0 0 32 32"><path class="svg-fill" d="M 21.75 4 C 20.078125 4 18.492188 4.660156 17.3125 5.84375 L 15.84375 7.3125 C 14.660156 8.496094 14 10.078125 14 11.75 C 14 12.542969 14.152344 13.316406 14.4375 14.03125 L 16.0625 12.40625 C 15.859375 11.109375 16.253906 9.714844 17.25 8.71875 L 18.71875 7.25 C 19.523438 6.445313 20.613281 6 21.75 6 C 22.886719 6 23.945313 6.445313 24.75 7.25 C 26.410156 8.910156 26.410156 11.621094 24.75 13.28125 L 23.28125 14.75 C 22.476563 15.554688 21.386719 16 20.25 16 C 20.027344 16 19.808594 15.976563 19.59375 15.9375 L 17.96875 17.5625 C 18.683594 17.847656 19.457031 18 20.25 18 C 21.921875 18 23.507813 17.339844 24.6875 16.15625 L 26.15625 14.6875 C 27.339844 13.503906 28 11.921875 28 10.25 C 28 8.578125 27.339844 7.027344 26.15625 5.84375 C 24.976563 4.660156 23.421875 4 21.75 4 Z M 19.28125 11.28125 L 11.28125 19.28125 L 12.71875 20.71875 L 20.71875 12.71875 Z M 11.75 14 C 10.078125 14 8.492188 14.660156 7.3125 15.84375 L 5.84375 17.3125 C 4.660156 18.496094 4 20.078125 4 21.75 C 4 23.421875 4.660156 24.972656 5.84375 26.15625 C 7.023438 27.339844 8.578125 28 10.25 28 C 11.921875 28 13.507813 27.339844 14.6875 26.15625 L 16.15625 24.6875 C 17.339844 23.503906 18 21.921875 18 20.25 C 18 19.457031 17.847656 18.683594 17.5625 17.96875 L 15.9375 19.59375 C 16.140625 20.890625 15.746094 22.285156 14.75 23.28125 L 13.28125 24.75 C 12.476563 25.554688 11.386719 26 10.25 26 C 9.113281 26 8.054688 25.554688 7.25 24.75 C 5.589844 23.089844 5.589844 20.378906 7.25 18.71875 L 8.71875 17.25 C 9.523438 16.445313 10.613281 16 11.75 16 C 11.972656 16 12.191406 16.023438 12.40625 16.0625 L 14.03125 14.4375 C 13.316406 14.152344 12.542969 14 11.75 14 Z" /></symbol><use xlink:href="#svg-link" /></svg>`,
"linux": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-linux" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 5 C 10.488281 5 6 9.488281 6 15 L 6 23 C 6 24.117188 5.117188 25 4 25 L 4 27 C 6.199219 27 8 25.199219 8 23 L 8 15 C 8 10.570313 11.570313 7 16 7 C 17.015625 7 17.984375 7.1875 18.875 7.53125 C 18.582031 7.945313 18.738281 8.675781 19.28125 9.21875 C 19.867188 9.804688 20.671875 9.953125 21.0625 9.5625 C 21.207031 9.417969 21.25 9.195313 21.25 8.96875 C 22.929688 10.433594 24 12.585938 24 15 L 24 23 C 24 25.199219 25.800781 27 28 27 L 28 25 C 26.882813 25 26 24.117188 26 23 L 26 15 C 26 9.488281 21.511719 5 16 5 Z M 13 11 C 11.480469 11 10.332031 11.851563 9.75 12.875 C 9.167969 13.898438 9 15.046875 9 16 C 9 17.355469 9.414063 18.347656 9.875 18.96875 C 9.917969 19.027344 9.957031 19.070313 10 19.125 C 9.386719 19.78125 9 20.59375 9 21.5 C 9 22.929688 9.972656 24.097656 11.25 24.84375 C 12.527344 25.589844 14.183594 26 16 26 C 17.816406 26 19.472656 25.589844 20.75 24.84375 C 22.027344 24.097656 23 22.929688 23 21.5 C 23 20.59375 22.613281 19.78125 22 19.125 C 22.042969 19.070313 22.082031 19.027344 22.125 18.96875 C 22.585938 18.347656 23 17.355469 23 16 C 23 15.046875 22.832031 13.898438 22.25 12.875 C 21.667969 11.851563 20.519531 11 19 11 C 17.667969 11 16.628906 11.652344 16 12.5 C 15.371094 11.652344 14.332031 11 13 11 Z M 13 13 C 13.867188 13 14.210938 13.3125 14.53125 13.875 C 14.851563 14.4375 15 15.292969 15 16 L 17 16 C 17 15.292969 17.148438 14.4375 17.46875 13.875 C 17.789063 13.3125 18.132813 13 19 13 C 19.867188 13 20.210938 13.3125 20.53125 13.875 C 20.851563 14.4375 21 15.292969 21 16 C 21 16.960938 20.722656 17.480469 20.5 17.78125 C 20.429688 17.878906 20.390625 17.921875 20.34375 17.96875 C 20.117188 17.855469 19.898438 17.71875 19.65625 17.625 C 19.867188 17.351563 20 16.953125 20 16.5 C 20 15.671875 19.550781 15 19 15 C 18.449219 15 18 15.671875 18 16.5 C 18 16.765625 18.078125 17.003906 18.15625 17.21875 C 17.46875 17.082031 16.757813 17 16 17 C 15.242188 17 14.53125 17.082031 13.84375 17.21875 C 13.921875 17.003906 14 16.765625 14 16.5 C 14 15.671875 13.550781 15 13 15 C 12.449219 15 12 15.671875 12 16.5 C 12 16.953125 12.132813 17.351563 12.34375 17.625 C 12.101563 17.71875 11.882813 17.855469 11.65625 17.96875 C 11.609375 17.921875 11.570313 17.878906 11.5 17.78125 C 11.277344 17.480469 11 16.960938 11 16 C 11 15.292969 11.148438 14.4375 11.46875 13.875 C 11.789063 13.3125 12.132813 13 13 13 Z M 16 19 C 17.5 19 18.855469 19.351563 19.75 19.875 C 20.644531 20.398438 21 20.996094 21 21.5 C 21 22.003906 20.644531 22.601563 19.75 23.125 C 18.855469 23.648438 17.5 24 16 24 C 14.5 24 13.144531 23.648438 12.25 23.125 C 11.355469 22.601563 11 22.003906 11 21.5 C 11 20.996094 11.355469 20.398438 12.25 19.875 C 13.144531 19.351563 14.5 19 16 19 Z M 13.5 20.4375 L 12.5 22.15625 C 12.5 22.15625 13.925781 23 16 23 C 18.074219 23 19.5 22.15625 19.5 22.15625 L 18.5 20.4375 C 18.5 20.4375 17.546875 21 16 21 C 14.453125 21 13.5 20.4375 13.5 20.4375 Z" /></symbol><use xlink:href="#svg-linux" /></svg>`,
"list": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-list" viewBox="0 0 32 32"><path class="svg-fill" d="M 4 5 L 4 11 L 10 11 L 10 5 Z M 6 7 L 8 7 L 8 9 L 6 9 Z M 12 7 L 12 9 L 27 9 L 27 7 Z M 4 13 L 4 19 L 10 19 L 10 13 Z M 6 15 L 8 15 L 8 17 L 6 17 Z M 12 15 L 12 17 L 27 17 L 27 15 Z M 4 21 L 4 27 L 10 27 L 10 21 Z M 6 23 L 8 23 L 8 25 L 6 25 Z M 12 23 L 12 25 L 27 25 L 27 23 Z" /></symbol><use xlink:href="#svg-list" /></svg>`,
"location": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-location" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 3 C 11.042969 3 7 7.042969 7 12 C 7 13.40625 7.570313 15.019531 8.34375 16.78125 C 9.117188 18.542969 10.113281 20.414063 11.125 22.15625 C 13.148438 25.644531 15.1875 28.5625 15.1875 28.5625 L 16 29.75 L 16.8125 28.5625 C 16.8125 28.5625 18.851563 25.644531 20.875 22.15625 C 21.886719 20.414063 22.882813 18.542969 23.65625 16.78125 C 24.429688 15.019531 25 13.40625 25 12 C 25 7.042969 20.957031 3 16 3 Z M 16 5 C 19.878906 5 23 8.121094 23 12 C 23 12.800781 22.570313 14.316406 21.84375 15.96875 C 21.117188 17.621094 20.113281 19.453125 19.125 21.15625 C 17.554688 23.867188 16.578125 25.300781 16 26.15625 C 15.421875 25.300781 14.445313 23.867188 12.875 21.15625 C 11.886719 19.453125 10.882813 17.621094 10.15625 15.96875 C 9.429688 14.316406 9 12.800781 9 12 C 9 8.121094 12.121094 5 16 5 Z M 16 10 C 14.894531 10 14 10.894531 14 12 C 14 13.105469 14.894531 14 16 14 C 17.105469 14 18 13.105469 18 12 C 18 10.894531 17.105469 10 16 10 Z" /></symbol><use xlink:href="#svg-location" /></svg>`,
"lock": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-lock" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 3 C 12.15625 3 9 6.15625 9 10 L 9 13 L 6 13 L 6 29 L 26 29 L 26 13 L 23 13 L 23 10 C 23 6.15625 19.84375 3 16 3 Z M 16 5 C 18.753906 5 21 7.246094 21 10 L 21 13 L 11 13 L 11 10 C 11 7.246094 13.246094 5 16 5 Z M 8 15 L 24 15 L 24 27 L 8 27 Z" /></symbol><use xlink:href="#svg-lock" /></svg>`,
"mail": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-mail" viewBox="0 0 32 32"><path class="svg-fill" d="M 3 8 L 3 26 L 29 26 L 29 8 Z M 7.3125 10 L 24.6875 10 L 16 15.78125 Z M 5 10.875 L 15.4375 17.84375 L 16 18.1875 L 16.5625 17.84375 L 27 10.875 L 27 24 L 5 24 Z" /></symbol><use xlink:href="#svg-mail" /></svg>`,
"mail-open": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-mail-open" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 3 L 15.46875 3.34375 L 3.46875 11.15625 L 3 11.46875 L 3 29 L 29 29 L 29 11.46875 L 28.53125 11.15625 L 16.53125 3.34375 Z M 16 5.375 L 26.1875 12 L 16 18.59375 L 5.8125 12 Z M 5 13.84375 L 15.46875 20.625 L 16 20.96875 L 16.53125 20.625 L 27 13.84375 L 27 27 L 5 27 Z" /></symbol><use xlink:href="#svg-mail-open" /></svg>`,
"medal": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-medal" viewBox="0 0 32 32"><path class="svg-fill" d="M 7 3 L 11.265625 13.359375 C 8.7096967 14.94892 7 17.775441 7 21 C 7 25.962 11.037 30 16 30 C 20.963 30 25 25.962 25 21 C 25 17.775441 23.290303 14.94892 20.734375 13.359375 L 25 3 L 22.837891 3 L 18.925781 12.498047 C 18.268581 12.271202 17.580892 12.113483 16.865234 12.044922 L 20.587891 3 L 18.425781 3 L 14.673828 12.109375 C 14.12256 12.191305 13.588371 12.320577 13.074219 12.498047 L 9.1621094 3 L 7 3 z M 11.412109 3 L 13.953125 9.1738281 L 15.035156 6.546875 L 13.574219 3 L 11.412109 3 z M 16 14 C 19.859 14 23 17.14 23 21 C 23 24.86 19.859 28 16 28 C 12.141 28 9 24.86 9 21 C 9 17.14 12.141 14 16 14 z M 16 17.162109 L 14.832031 19.78125 L 12 20.091797 L 14.119141 21.996094 L 13.523438 24.806641 L 16 23.376953 L 18.476562 24.806641 L 17.880859 21.996094 L 20 20.091797 L 17.167969 19.78125 L 16 17.162109 z" /></symbol><use xlink:href="#svg-medal" /></svg>`,
"meh": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-meh" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 9.382813 4 4 9.382813 4 16 C 4 22.617188 9.382813 28 16 28 C 22.617188 28 28 22.617188 28 16 C 28 9.382813 22.617188 4 16 4 Z M 16 6 C 21.535156 6 26 10.464844 26 16 C 26 21.535156 21.535156 26 16 26 C 10.464844 26 6 21.535156 6 16 C 6 10.464844 10.464844 6 16 6 Z M 11.5 12 C 10.671875 12 10 12.671875 10 13.5 C 10 14.328125 10.671875 15 11.5 15 C 12.328125 15 13 14.328125 13 13.5 C 13 12.671875 12.328125 12 11.5 12 Z M 20.5 12 C 19.671875 12 19 12.671875 19 13.5 C 19 14.328125 19.671875 15 20.5 15 C 21.328125 15 22 14.328125 22 13.5 C 22 12.671875 21.328125 12 20.5 12 Z M 11 20 L 11 22 L 21 22 L 21 20 Z" /></symbol><use xlink:href="#svg-meh" /></svg>`,
"microphone": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-microphone" viewBox="0 0 32 32"><path class="svg-fill" d="M 13 4 C 11.90625 4 11 4.90625 11 6 L 11 18 C 11 19.09375 11.90625 20 13 20 L 19 20 C 20.09375 20 21 19.09375 21 18 L 21 6 C 21 4.90625 20.09375 4 19 4 Z M 13 6 L 19 6 L 19 18 L 13 18 Z M 7 14 L 7 18 C 7 21.300781 9.699219 24 13 24 L 15 24 L 15 26 L 11 26 L 11 28 L 21 28 L 21 26 L 17 26 L 17 24 L 19 24 C 22.300781 24 25 21.300781 25 18 L 25 14 L 23 14 L 23 18 C 23 20.21875 21.21875 22 19 22 L 13 22 C 10.78125 22 9 20.21875 9 18 L 9 14 Z" /></symbol><use xlink:href="#svg-microphone" /></svg>`,
"minus": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-minus" viewBox="0 0 32 32"><path class="svg-fill" d="M 5 15 L 5 17 L 27 17 L 27 15 Z" /></symbol><use xlink:href="#svg-minus" /></svg>`,
"mobile": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-mobile" viewBox="0 0 32 32"><path class="svg-fill" d="M 11 4 C 9.355469 4 8 5.355469 8 7 L 8 25 C 8 26.644531 9.355469 28 11 28 L 21 28 C 22.644531 28 24 26.644531 24 25 L 24 7 C 24 5.355469 22.644531 4 21 4 Z M 11 6 L 21 6 C 21.554688 6 22 6.445313 22 7 L 22 25 C 22 25.554688 21.554688 26 21 26 L 11 26 C 10.445313 26 10 25.554688 10 25 L 10 7 C 10 6.445313 10.445313 6 11 6 Z M 16 23 C 15.449219 23 15 23.449219 15 24 C 15 24.550781 15.449219 25 16 25 C 16.550781 25 17 24.550781 17 24 C 17 23.449219 16.550781 23 16 23 Z" /></symbol><use xlink:href="#svg-mobile" /></svg>`,
"pencil": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-pencil" viewBox="0 0 32 32"><path class="svg-fill" d="M 23.90625 3.96875 C 22.859375 3.96875 21.8125 4.375 21 5.1875 L 5.1875 21 L 5.125 21.3125 L 4.03125 26.8125 L 3.71875 28.28125 L 5.1875 27.96875 L 10.6875 26.875 L 11 26.8125 L 26.8125 11 C 28.4375 9.375 28.4375 6.8125 26.8125 5.1875 C 26 4.375 24.953125 3.96875 23.90625 3.96875 Z M 23.90625 5.875 C 24.410156 5.875 24.917969 6.105469 25.40625 6.59375 C 26.378906 7.566406 26.378906 8.621094 25.40625 9.59375 L 24.6875 10.28125 L 21.71875 7.3125 L 22.40625 6.59375 C 22.894531 6.105469 23.402344 5.875 23.90625 5.875 Z M 20.3125 8.71875 L 23.28125 11.6875 L 11.1875 23.78125 C 10.53125 22.5 9.5 21.46875 8.21875 20.8125 Z M 6.9375 22.4375 C 8.136719 22.921875 9.078125 23.863281 9.5625 25.0625 L 6.28125 25.71875 Z" /></symbol><use xlink:href="#svg-pencil" /></svg>`,
"play": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-play" viewBox="0 0 32 32"><path class="svg-fill" d="M 9 5.15625 L 9 26.84375 L 10.53125 25.84375 L 25.84375 16 L 10.53125 6.15625 Z M 11 8.8125 L 22.15625 16 L 11 23.1875 Z" /></symbol><use xlink:href="#svg-play" /></svg>`,
"plus": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-plus" viewBox="0 0 32 32"><path class="svg-fill" d="M 15 5 L 15 15 L 5 15 L 5 17 L 15 17 L 15 27 L 17 27 L 17 17 L 27 17 L 27 15 L 17 15 L 17 5 Z" /></symbol><use xlink:href="#svg-plus" /></svg>`,
"poo": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-poo" viewBox="0 0 32 32"><path class="svg-fill" d="M 17 6 C 14.162 6 11 8.6132812 11 12.363281 L 11 13 L 10 13 C 7.794 13 6 14.794 6 17 C 6 17.408 6.0645 17.811312 6.1875 18.195312 C 4.3455 18.758312 3 20.475 3 22.5 C 3 24.981 5.019 27 7.5 27 L 24.5 27 C 26.981 27 29 24.981 29 22.5 C 29 20.475 27.6555 18.757359 25.8125 18.193359 C 25.9365 17.809359 26 17.406047 26 16.998047 C 26 14.792047 24.206 12.998047 22 12.998047 L 20.931641 12.998047 C 20.674641 11.225047 19.738391 10.531906 19.025391 10.003906 C 18.278391 9.4499062 17.785141 9.0824688 17.994141 7.1054688 L 18.111328 6 L 17 6 z M 15.953125 8.1875 C 16.026125 10.0915 16.852937 10.880375 17.835938 11.609375 C 18.536938 12.130375 19 12.474 19 14 L 19 15 L 22 15 C 23.103 15 24 15.897 24 17 C 24 17.483 23.813562 17.954125 23.476562 18.328125 L 21.964844 20 L 24.5 20 C 25.879 20 27 21.121 27 22.5 C 27 23.879 25.879 25 24.5 25 L 7.5 25 C 6.121 25 5 23.879 5 22.5 C 5 21.121 6.121 20 7.5 20 L 10.035156 20 L 8.5234375 18.328125 C 8.1864375 17.954125 8 17.483 8 17 C 8 15.897 8.897 15 10 15 L 13 15 L 13 12.363281 C 13 10.362281 14.426125 8.7275 15.953125 8.1875 z M 12 17 A 1 1 0 0 0 12 19 A 1 1 0 0 0 12 17 z M 20 17 A 1 1 0 0 0 20 19 A 1 1 0 0 0 20 17 z M 14 20 C 14 21.105 14.895 22 16 22 C 17.105 22 18 21.105 18 20 L 14 20 z" /></symbol><use xlink:href="#svg-poo" /></svg>`,
"print": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-print" viewBox="0 0 32 32"><path class="svg-fill" d="M 9 4 L 9 11 L 7 11 C 5.355469 11 4 12.355469 4 14 L 4 24 L 9 24 L 9 28 L 23 28 L 23 24 L 28 24 L 28 14 C 28 12.355469 26.644531 11 25 11 L 23 11 L 23 4 Z M 11 6 L 21 6 L 21 11 L 11 11 Z M 7 13 L 25 13 C 25.566406 13 26 13.433594 26 14 L 26 22 L 23 22 L 23 18 L 9 18 L 9 22 L 6 22 L 6 14 C 6 13.433594 6.433594 13 7 13 Z M 8 14 C 7.449219 14 7 14.449219 7 15 C 7 15.550781 7.449219 16 8 16 C 8.550781 16 9 15.550781 9 15 C 9 14.449219 8.550781 14 8 14 Z M 11 20 L 21 20 L 21 26 L 11 26 Z" /></symbol><use xlink:href="#svg-print" /></svg>`,
"profile": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-profile" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 5 C 12.144531 5 9 8.144531 9 12 C 9 14.410156 10.230469 16.550781 12.09375 17.8125 C 8.527344 19.34375 6 22.882813 6 27 L 8 27 C 8 22.570313 11.570313 19 16 19 C 20.429688 19 24 22.570313 24 27 L 26 27 C 26 22.882813 23.472656 19.34375 19.90625 17.8125 C 21.769531 16.550781 23 14.410156 23 12 C 23 8.144531 19.855469 5 16 5 Z M 16 7 C 18.773438 7 21 9.226563 21 12 C 21 14.773438 18.773438 17 16 17 C 13.226563 17 11 14.773438 11 12 C 11 9.226563 13.226563 7 16 7 Z" /></symbol><use xlink:href="#svg-profile" /></svg>`,
"question": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-question" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 9.382813 4 4 9.382813 4 16 C 4 22.617188 9.382813 28 16 28 C 22.617188 28 28 22.617188 28 16 C 28 9.382813 22.617188 4 16 4 Z M 16 6 C 21.535156 6 26 10.464844 26 16 C 26 21.535156 21.535156 26 16 26 C 10.464844 26 6 21.535156 6 16 C 6 10.464844 10.464844 6 16 6 Z M 16 10 C 13.800781 10 12 11.800781 12 14 L 14 14 C 14 12.882813 14.882813 12 16 12 C 17.117188 12 18 12.882813 18 14 C 18 14.765625 17.507813 15.445313 16.78125 15.6875 L 16.375 15.8125 C 15.558594 16.082031 15 16.863281 15 17.71875 L 15 19 L 17 19 L 17 17.71875 L 17.40625 17.59375 C 18.945313 17.082031 20 15.621094 20 14 C 20 11.800781 18.199219 10 16 10 Z M 15 20 L 15 22 L 17 22 L 17 20 Z" /></symbol><use xlink:href="#svg-question" /></svg>`,
"refresh": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-refresh" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 10.886719 4 6.617188 7.160156 4.875 11.625 L 6.71875 12.375 C 8.175781 8.640625 11.710938 6 16 6 C 19.242188 6 22.132813 7.589844 23.9375 10 L 20 10 L 20 12 L 27 12 L 27 5 L 25 5 L 25 8.09375 C 22.808594 5.582031 19.570313 4 16 4 Z M 25.28125 19.625 C 23.824219 23.359375 20.289063 26 16 26 C 12.722656 26 9.84375 24.386719 8.03125 22 L 12 22 L 12 20 L 5 20 L 5 27 L 7 27 L 7 23.90625 C 9.1875 26.386719 12.394531 28 16 28 C 21.113281 28 25.382813 24.839844 27.125 20.375 Z" /></symbol><use xlink:href="#svg-refresh" /></svg>`,
"reply": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-reply" viewBox="0 0 32 32"><path class="svg-fill" d="M 12.28125 5.28125 L 4.28125 13.28125 L 3.59375 14 L 4.28125 14.71875 L 12.28125 22.71875 L 13.71875 21.28125 L 7.4375 15 L 21 15 C 23.773438 15 26 17.226563 26 20 C 26 22.773438 23.773438 25 21 25 L 21 27 C 24.855469 27 28 23.855469 28 20 C 28 16.144531 24.855469 13 21 13 L 7.4375 13 L 13.71875 6.71875 Z" /></symbol><use xlink:href="#svg-reply" /></svg>`,
"right": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-right" viewBox="0 0 32 32"><path class="svg-fill" d="M 12.96875 4.28125 L 11.53125 5.71875 L 21.8125 16 L 11.53125 26.28125 L 12.96875 27.71875 L 23.96875 16.71875 L 24.65625 16 L 23.96875 15.28125 Z" /></symbol><use xlink:href="#svg-right" /></svg>`,
"robot": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-robot" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 1 C 14.894531 1 14 1.894531 14 3 C 14 3.738281 14.402344 4.371094 15 4.71875 L 15 7 L 10 7 C 7.25 7 5 9.25 5 12 L 5 14 L 2 14 L 2 22 L 5 22 L 5 27 L 27 27 L 27 22 L 30 22 L 30 14 L 27 14 L 27 12 C 27 9.25 24.75 7 22 7 L 17 7 L 17 4.71875 C 17.597656 4.371094 18 3.738281 18 3 C 18 1.894531 17.105469 1 16 1 Z M 10 9 L 22 9 C 23.667969 9 25 10.332031 25 12 L 25 25 L 23 25 L 23 20 L 9 20 L 9 25 L 7 25 L 7 12 C 7 10.332031 8.332031 9 10 9 Z M 12 13 C 10.894531 13 10 13.894531 10 15 C 10 16.105469 10.894531 17 12 17 C 13.105469 17 14 16.105469 14 15 C 14 13.894531 13.105469 13 12 13 Z M 20 13 C 18.894531 13 18 13.894531 18 15 C 18 16.105469 18.894531 17 20 17 C 21.105469 17 22 16.105469 22 15 C 22 13.894531 21.105469 13 20 13 Z M 4 16 L 5 16 L 5 20 L 4 20 Z M 27 16 L 28 16 L 28 20 L 27 20 Z M 11 22 L 13 22 L 13 25 L 11 25 Z M 15 22 L 17 22 L 17 25 L 15 25 Z M 19 22 L 21 22 L 21 25 L 19 25 Z" /></symbol><use xlink:href="#svg-robot" /></svg>`,
"sad": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-sad" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 9.382813 4 4 9.382813 4 16 C 4 22.617188 9.382813 28 16 28 C 22.617188 28 28 22.617188 28 16 C 28 9.382813 22.617188 4 16 4 Z M 16 6 C 21.535156 6 26 10.464844 26 16 C 26 21.535156 21.535156 26 16 26 C 10.464844 26 6 21.535156 6 16 C 6 10.464844 10.464844 6 16 6 Z M 11.5 12 C 10.671875 12 10 12.671875 10 13.5 C 10 14.328125 10.671875 15 11.5 15 C 12.328125 15 13 14.328125 13 13.5 C 13 12.671875 12.328125 12 11.5 12 Z M 20.5 12 C 19.671875 12 19 12.671875 19 13.5 C 19 14.328125 19.671875 15 20.5 15 C 21.328125 15 22 14.328125 22 13.5 C 22 12.671875 21.328125 12 20.5 12 Z M 16 18 C 13.332031 18 10.980469 19.335938 9.53125 21.34375 L 11.15625 22.5 C 12.246094 20.984375 13.992188 20 16 20 C 18.007813 20 19.753906 20.984375 20.84375 22.5 L 22.46875 21.34375 C 21.019531 19.335938 18.667969 18 16 18 Z" /></symbol><use xlink:href="#svg-sad" /></svg>`,
"search": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-search" viewBox="0 0 32 32"><path class="svg-fill" d="M 19 3 C 13.488281 3 9 7.488281 9 13 C 9 15.394531 9.839844 17.589844 11.25 19.3125 L 3.28125 27.28125 L 4.71875 28.71875 L 12.6875 20.75 C 14.410156 22.160156 16.605469 23 19 23 C 24.511719 23 29 18.511719 29 13 C 29 7.488281 24.511719 3 19 3 Z M 19 5 C 23.429688 5 27 8.570313 27 13 C 27 17.429688 23.429688 21 19 21 C 14.570313 21 11 17.429688 11 13 C 11 8.570313 14.570313 5 19 5 Z" /></symbol><use xlink:href="#svg-search" /></svg>`,
"searchbox": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><symbol id="svg-searchbox" viewBox="0 0 160 28"><path d="M32.9418651,-20.6880772 C37.9418651,-20.6880772 40.9418651,-16.6880772 40.9418651,-12.6880772 C40.9418651,-8.68807717 37.9418651,-4.68807717 32.9418651,-4.68807717 C27.9418651,-4.68807717 24.9418651,-8.68807717 24.9418651,-12.6880772 C24.9418651,-16.6880772 27.9418651,-20.6880772 32.9418651,-20.6880772 L32.9418651,-29.870624 C32.9418651,-30.3676803 33.3448089,-30.770624 33.8418651,-30.770624 C34.08056,-30.770624 34.3094785,-30.6758029 34.4782612,-30.5070201 L141.371843,76.386562" transform="translate(83.156854, 22.171573) rotate(-225.000000) translate(-83.156854, -22.171573)" /></symbol><use xlink:href="#svg-searchbox" /></svg>`,
"server": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-server" viewBox="0 0 32 32"><path class="svg-fill" d="M 3 6 L 3 26 L 29 26 L 29 6 Z M 5 8 L 27 8 L 27 12 L 5 12 Z M 7 9 L 7 11 L 15 11 L 15 9 Z M 24 9 C 23.449219 9 23 9.449219 23 10 C 23 10.550781 23.449219 11 24 11 C 24.550781 11 25 10.550781 25 10 C 25 9.449219 24.550781 9 24 9 Z M 5 14 L 27 14 L 27 18 L 5 18 Z M 7 15 L 7 17 L 15 17 L 15 15 Z M 24 15 C 23.449219 15 23 15.449219 23 16 C 23 16.550781 23.449219 17 24 17 C 24.550781 17 25 16.550781 25 16 C 25 15.449219 24.550781 15 24 15 Z M 5 20 L 27 20 L 27 24 L 5 24 Z M 7 21 L 7 23 L 15 23 L 15 21 Z M 24 21 C 23.449219 21 23 21.449219 23 22 C 23 22.550781 23.449219 23 24 23 C 24.550781 23 25 22.550781 25 22 C 25 21.449219 24.550781 21 24 21 Z" /></symbol><use xlink:href="#svg-server" /></svg>`,
"settings": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-settings" viewBox="0 0 32 32"><path class="svg-fill" d="M 15 5 C 13.707031 5 12.605469 5.84375 12.1875 7 L 4 7 L 4 9 L 12.1875 9 C 12.605469 10.15625 13.707031 11 15 11 C 16.292969 11 17.394531 10.15625 17.8125 9 L 28 9 L 28 7 L 17.8125 7 C 17.394531 5.84375 16.292969 5 15 5 Z M 15 7 C 15.5625 7 16 7.4375 16 8 C 16 8.5625 15.5625 9 15 9 C 14.4375 9 14 8.5625 14 8 C 14 7.4375 14.4375 7 15 7 Z M 22 13 C 20.707031 13 19.605469 13.84375 19.1875 15 L 4 15 L 4 17 L 19.1875 17 C 19.605469 18.15625 20.707031 19 22 19 C 23.292969 19 24.394531 18.15625 24.8125 17 L 28 17 L 28 15 L 24.8125 15 C 24.394531 13.84375 23.292969 13 22 13 Z M 22 15 C 22.5625 15 23 15.4375 23 16 C 23 16.5625 22.5625 17 22 17 C 21.4375 17 21 16.5625 21 16 C 21 15.4375 21.4375 15 22 15 Z M 11 21 C 9.707031 21 8.605469 21.84375 8.1875 23 L 4 23 L 4 25 L 8.1875 25 C 8.605469 26.15625 9.707031 27 11 27 C 12.292969 27 13.394531 26.15625 13.8125 25 L 28 25 L 28 23 L 13.8125 23 C 13.394531 21.84375 12.292969 21 11 21 Z M 11 23 C 11.5625 23 12 23.4375 12 24 C 12 24.5625 11.5625 25 11 25 C 10.4375 25 10 24.5625 10 24 C 10 23.4375 10.4375 23 11 23 Z" /></symbol><use xlink:href="#svg-settings" /></svg>`,
"share": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-share" viewBox="0 0 32 32"><path class="svg-fill" d="M 19.71875 5.28125 L 18.28125 6.71875 L 24.5625 13 L 11 13 C 7.144531 13 4 16.144531 4 20 C 4 23.855469 7.144531 27 11 27 L 11 25 C 8.226563 25 6 22.773438 6 20 C 6 17.226563 8.226563 15 11 15 L 24.5625 15 L 18.28125 21.28125 L 19.71875 22.71875 L 27.71875 14.71875 L 28.40625 14 L 27.71875 13.28125 Z" /></symbol><use xlink:href="#svg-share" /></svg>`,
"social": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-social" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 13.855469 4 12.117188 5.71875 12.03125 7.84375 C 8.425781 9.375 6 12.941406 6 17 C 6 17.171875 5.992188 17.359375 6 17.5625 C 4.816406 18.257813 4 19.535156 4 21 C 4 23.199219 5.800781 25 8 25 C 8.574219 25 9.128906 24.878906 9.625 24.65625 C 11.359375 26.113281 13.617188 27 16 27 C 18.382813 27 20.640625 26.113281 22.375 24.65625 C 22.871094 24.878906 23.425781 25 24 25 C 26.199219 25 28 23.199219 28 21 C 28 19.519531 27.175781 18.222656 25.96875 17.53125 C 25.984375 17.371094 26 17.207031 26 17 C 26 12.941406 23.574219 9.375 19.96875 7.84375 C 19.882813 5.71875 18.144531 4 16 4 Z M 16 6 C 17.117188 6 18 6.882813 18 8 C 18 9.117188 17.117188 10 16 10 C 14.882813 10 14 9.117188 14 8 C 14 6.882813 14.882813 6 16 6 Z M 12.46875 9.84375 C 13.140625 11.117188 14.46875 12 16 12 C 17.53125 12 18.859375 11.117188 19.53125 9.84375 C 22.210938 11.144531 24 13.878906 24 17 C 21.800781 17 20 18.800781 20 21 C 20 21.894531 20.308594 22.707031 20.8125 23.375 C 19.476563 24.386719 17.757813 25 16 25 C 14.242188 25 12.523438 24.386719 11.1875 23.375 C 11.691406 22.707031 12 21.894531 12 21 C 12 18.800781 10.199219 17 8 17 C 8 13.878906 9.789063 11.144531 12.46875 9.84375 Z M 8 19 C 9.117188 19 10 19.882813 10 21 C 10 22.117188 9.117188 23 8 23 C 6.882813 23 6 22.117188 6 21 C 6 19.882813 6.882813 19 8 19 Z M 24 19 C 25.117188 19 26 19.882813 26 21 C 26 22.117188 25.117188 23 24 23 C 22.882813 23 22 22.117188 22 21 C 22 19.882813 22.882813 19 24 19 Z" /></symbol><use xlink:href="#svg-social" /></svg>`,
"sort": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-sort" viewBox="0 0 32 32"><path class="svg-fill" d="M 4 5 L 4 7 L 16 7 L 16 5 Z M 21 5 L 21 23.6875 L 18.40625 21.09375 L 17 22.5 L 21.28125 26.8125 L 22 27.5 L 22.71875 26.8125 L 27 22.5 L 25.59375 21.09375 L 23 23.6875 L 23 5 Z M 4 9 L 4 11 L 14 11 L 14 9 Z M 4 13 L 4 15 L 12 15 L 12 13 Z M 4 17 L 4 19 L 10 19 L 10 17 Z M 4 21 L 4 23 L 8 23 L 8 21 Z M 4 25 L 4 27 L 6 27 L 6 25 Z" /></symbol><use xlink:href="#svg-sort" /></svg>`,
"star": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-star" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 2.125 L 15.09375 4.1875 L 11.84375 11.46875 L 3.90625 12.3125 L 1.65625 12.5625 L 3.34375 14.0625 L 9.25 19.40625 L 7.59375 27.21875 L 7.125 29.40625 L 9.09375 28.28125 L 16 24.28125 L 22.90625 28.28125 L 24.875 29.40625 L 24.40625 27.21875 L 22.75 19.40625 L 28.65625 14.0625 L 30.34375 12.5625 L 28.09375 12.3125 L 20.15625 11.46875 L 16.90625 4.1875 Z M 16 7.03125 L 18.5625 12.8125 L 18.8125 13.34375 L 19.375 13.40625 L 25.65625 14.0625 L 20.96875 18.28125 L 20.53125 18.6875 L 20.65625 19.25 L 21.96875 25.40625 L 16.5 22.28125 L 16 21.96875 L 15.5 22.28125 L 10.03125 25.40625 L 11.34375 19.25 L 11.46875 18.6875 L 11.03125 18.28125 L 6.34375 14.0625 L 12.625 13.40625 L 13.1875 13.34375 L 13.4375 12.8125 Z" /></symbol><use xlink:href="#svg-star" /></svg>`,
"struct": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-struct" viewBox="0 0 32 32"><path class="svg-fill" d="M 3 5 L 3 23 C 3 25.210938 4.789063 27 7 27 L 25 27 C 27.210938 27 29 25.210938 29 23 L 29 12 L 23 12 L 23 5 Z M 5 7 L 21 7 L 21 23 C 21 23.730469 21.222656 24.410156 21.5625 25 L 7 25 C 5.808594 25 5 24.191406 5 23 Z M 7 9 L 7 14 L 19 14 L 19 9 Z M 9 11 L 17 11 L 17 12 L 9 12 Z M 23 14 L 27 14 L 27 23 C 27 24.191406 26.191406 25 25 25 C 23.808594 25 23 24.191406 23 23 Z M 7 15 L 7 17 L 12 17 L 12 15 Z M 14 15 L 14 17 L 19 17 L 19 15 Z M 7 18 L 7 20 L 12 20 L 12 18 Z M 14 18 L 14 20 L 19 20 L 19 18 Z M 7 21 L 7 23 L 12 23 L 12 21 Z M 14 21 L 14 23 L 19 23 L 19 21 Z" /></symbol><use xlink:href="#svg-struct" /></svg>`,
"tag": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-tag" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 5 L 15.6875 5.28125 L 4.28125 16.8125 L 3.59375 17.5 L 4.28125 18.21875 L 13.78125 27.71875 L 14.5 28.40625 L 15.1875 27.71875 L 26.71875 16.3125 L 27 16 L 27 5 Z M 16.84375 7 L 25 7 L 25 15.15625 L 14.5 25.59375 L 6.40625 17.5 Z M 22 9 C 21.449219 9 21 9.449219 21 10 C 21 10.550781 21.449219 11 22 11 C 22.550781 11 23 10.550781 23 10 C 23 9.449219 22.550781 9 22 9 Z" /></symbol><use xlink:href="#svg-tag" /></svg>`,
"thumbs-down": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-thumbs-down" viewBox="0 0 32 32"><path class="svg-fill" d="M 10.15625 6 C 8.746094 6 7.515625 6.996094 7.21875 8.375 L 5.0625 18.375 C 4.667969 20.222656 6.113281 22 8 22 L 13.75 22 L 13.5625 22.75 C 13.359375 22.90625 13.230469 22.972656 12.9375 23.375 C 12.46875 24.015625 12 25.007813 12 26.34375 C 12 27.769531 13.289063 29 14.90625 29 L 15.3125 29 L 15.625 28.71875 L 22.40625 22 L 27 22 L 27 6 Z M 10.15625 8 L 21 8 L 21 20.59375 L 14.59375 26.90625 C 14.171875 26.824219 14 26.652344 14 26.34375 C 14 25.441406 14.273438 24.882813 14.53125 24.53125 C 14.789063 24.179688 14.96875 24.09375 14.96875 24.09375 L 15.3125 23.90625 L 15.4375 23.5 L 16.03125 21.25 L 16.34375 20 L 8 20 C 7.339844 20 6.894531 19.425781 7.03125 18.78125 L 9.15625 8.78125 C 9.257813 8.3125 9.679688 8 10.15625 8 Z M 23 8 L 25 8 L 25 20 L 23 20 Z" /></symbol><use xlink:href="#svg-thumbs-down" /></svg>`,
"thumbs-up": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-thumbs-up" viewBox="0 0 32 32"><path class="svg-fill" d="M 16.6875 3 L 16.375 3.28125 L 9.59375 10 L 5 10 L 5 26 L 21.84375 26 C 23.253906 26 24.484375 25.003906 24.78125 23.625 L 26.9375 13.625 C 27.332031 11.777344 25.886719 10 24 10 L 18.25 10 L 18.4375 9.25 C 18.640625 9.09375 18.769531 9.027344 19.0625 8.625 C 19.53125 7.984375 20 6.992188 20 5.65625 C 20 4.230469 18.710938 3 17.09375 3 Z M 17.40625 5.09375 C 17.828125 5.175781 18 5.347656 18 5.65625 C 18 6.558594 17.726563 7.117188 17.46875 7.46875 C 17.210938 7.820313 17.03125 7.90625 17.03125 7.90625 L 16.6875 8.09375 L 16.5625 8.5 L 15.96875 10.75 L 15.65625 12 L 24 12 C 24.660156 12 25.105469 12.574219 24.96875 13.21875 L 22.84375 23.21875 C 22.742188 23.6875 22.320313 24 21.84375 24 L 11 24 L 11 11.40625 Z M 7 12 L 9 12 L 9 24 L 7 24 Z" /></symbol><use xlink:href="#svg-thumbs-up" /></svg>`,
"times": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-times" viewBox="0 0 32 32"><path class="svg-fill" d="M 7.21875 5.78125 L 5.78125 7.21875 L 14.5625 16 L 5.78125 24.78125 L 7.21875 26.21875 L 16 17.4375 L 24.78125 26.21875 L 26.21875 24.78125 L 17.4375 16 L 26.21875 7.21875 L 24.78125 5.78125 L 16 14.5625 Z" /></symbol><use xlink:href="#svg-times" /></svg>`,
"tools": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-tools" viewBox="0 0 32 32"><path class="svg-fill" d="M 5.25 2.75 L 4.6875 3.28125 L 3.28125 4.6875 L 2.75 5.25 L 3.15625 5.90625 L 5.25 9.40625 L 5.53125 9.90625 L 8.46875 9.90625 L 12.46875 13.875 C 8.894531 17.464844 4.347656 22.027344 4.1875 22.1875 C 2.621094 23.753906 2.617188 26.320313 4.21875 27.8125 C 5.78125 29.355469 8.328125 29.394531 9.8125 27.8125 C 9.824219 27.800781 9.832031 27.792969 9.84375 27.78125 L 16 21.59375 L 22.1875 27.8125 L 22.28125 27.875 C 23.851563 29.355469 26.347656 29.375 27.8125 27.8125 L 27.8125 27.78125 L 27.84375 27.78125 C 29.375 26.214844 29.390625 23.667969 27.8125 22.1875 L 27.78125 22.15625 L 22.5625 16.96875 C 26.074219 16.640625 28.824219 13.675781 28.875 10.09375 L 28.90625 10.09375 C 28.910156 10.074219 28.90625 10.050781 28.90625 10.03125 C 28.90625 10.019531 28.90625 10.011719 28.90625 10 C 29.003906 8.84375 28.753906 7.738281 28.15625 6.78125 L 27.46875 5.71875 L 22.8125 10.375 L 21.40625 8.90625 L 26.15625 4.15625 L 24.78125 3.59375 C 23.976563 3.25 23.046875 3 22 3 C 18.15625 3 15 6.15625 15 10 C 15 10.417969 15.089844 10.78125 15.15625 11.15625 C 14.71875 11.59375 14.390625 11.953125 13.875 12.46875 L 9.90625 8.5 L 9.90625 5.53125 L 9.40625 5.25 L 5.90625 3.15625 Z M 22 5 C 22.140625 5 22.238281 5.082031 22.375 5.09375 L 18.59375 8.875 L 19.28125 9.59375 L 22.09375 12.5 L 22.78125 13.21875 L 26.75 9.25 C 26.769531 9.480469 26.933594 9.648438 26.90625 9.90625 L 26.90625 10 C 26.90625 12.753906 24.660156 15 21.90625 15 C 21.539063 15 21.09375 14.914063 20.59375 14.8125 L 20.0625 14.71875 L 19.6875 15.09375 L 8.40625 26.40625 L 8.375 26.40625 L 8.375 26.4375 C 7.664063 27.214844 6.421875 27.234375 5.59375 26.40625 L 5.59375 26.375 L 5.5625 26.375 C 4.785156 25.664063 4.765625 24.421875 5.59375 23.59375 C 5.972656 23.214844 13.3125 15.8125 16.90625 12.21875 L 17.3125 11.8125 L 17.15625 11.25 C 17.074219 10.925781 17 10.367188 17 10 C 17 7.246094 19.246094 5 22 5 Z M 5.5625 5.25 L 7.90625 6.6875 L 7.90625 7.6875 L 7.6875 7.90625 L 6.6875 7.90625 L 5.25 5.5625 Z M 20.1875 17.40625 L 26.40625 23.59375 L 26.40625 23.625 L 26.4375 23.625 C 27.214844 24.335938 27.234375 25.578125 26.40625 26.40625 L 26.375 26.40625 L 26.375 26.4375 C 25.664063 27.214844 24.421875 27.234375 23.59375 26.40625 L 17.40625 20.1875 Z" /></symbol><use xlink:href="#svg-tools" /></svg>`,
"trash": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-trash" viewBox="0 0 32 32"><path class="svg-fill" d="M 14 4 C 13.476563 4 12.941406 4.183594 12.5625 4.5625 C 12.183594 4.941406 12 5.476563 12 6 L 12 7 L 5 7 L 5 9 L 6.09375 9 L 8 27.09375 L 8.09375 28 L 23.90625 28 L 24 27.09375 L 25.90625 9 L 27 9 L 27 7 L 20 7 L 20 6 C 20 5.476563 19.816406 4.941406 19.4375 4.5625 C 19.058594 4.183594 18.523438 4 18 4 Z M 14 6 L 18 6 L 18 7 L 14 7 Z M 8.125 9 L 23.875 9 L 22.09375 26 L 9.90625 26 Z M 12 12 L 12 23 L 14 23 L 14 12 Z M 15 12 L 15 23 L 17 23 L 17 12 Z M 18 12 L 18 23 L 20 23 L 20 12 Z" /></symbol><use xlink:href="#svg-trash" /></svg>`,
"trophy": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-trophy" viewBox="0 0 32 32"><path class="svg-fill" d="M 7 4 C 6.058594 4 5.085938 4.355469 4.3125 5.03125 C 3.539063 5.707031 3 6.746094 3 8 C 3 9.0625 3.445313 9.96875 4 10.6875 C 4.554688 11.40625 5.226563 11.972656 5.84375 12.53125 C 7.078125 13.648438 8 14.566406 8 16 C 8 16.152344 7.851563 16.519531 7.65625 16.8125 C 7.460938 17.105469 7.28125 17.28125 7.28125 17.28125 L 8.71875 18.6875 C 8.71875 18.6875 9.039063 18.367188 9.34375 17.90625 C 9.605469 17.511719 9.890625 17.003906 9.96875 16.34375 C 10.082031 16.667969 10.191406 17 10.3125 17.3125 C 11 19.085938 11.792969 20.675781 12.6875 21.875 C 13.011719 22.3125 13.347656 22.699219 13.71875 23.03125 C 11.652344 23.179688 10 24.898438 10 27 L 10 28 L 22 28 L 22 27 C 22 24.875 20.316406 23.148438 18.21875 23.03125 C 18.59375 22.699219 18.953125 22.308594 19.28125 21.875 C 20.179688 20.679688 20.960938 19.085938 21.65625 17.3125 C 21.785156 16.980469 21.910156 16.625 22.03125 16.28125 C 22.097656 16.96875 22.386719 17.5 22.65625 17.90625 C 22.960938 18.367188 23.28125 18.6875 23.28125 18.6875 L 24.71875 17.28125 C 24.71875 17.28125 24.539063 17.105469 24.34375 16.8125 C 24.148438 16.519531 24 16.152344 24 16 C 24 14.566406 24.921875 13.648438 26.15625 12.53125 C 26.773438 11.972656 27.445313 11.40625 28 10.6875 C 28.554688 9.96875 29 9.0625 29 8 C 29 6.746094 28.460938 5.707031 27.6875 5.03125 C 26.914063 4.355469 25.941406 4 25 4 C 23.722656 4 22.847656 4.582031 22.375 5 L 9.625 5 C 9.152344 4.582031 8.277344 4 7 4 Z M 7 6 C 7.472656 6 7.777344 6.148438 8 6.28125 C 8.027344 8.320313 8.378906 10.632813 8.9375 12.90625 C 8.40625 12.1875 7.742188 11.589844 7.15625 11.0625 C 6.523438 10.492188 5.945313 9.964844 5.5625 9.46875 C 5.179688 8.972656 5 8.542969 5 8 C 5 7.300781 5.273438 6.867188 5.65625 6.53125 C 6.039063 6.195313 6.566406 6 7 6 Z M 25 6 C 25.433594 6 25.960938 6.195313 26.34375 6.53125 C 26.726563 6.867188 27 7.300781 27 8 C 27 8.542969 26.820313 8.972656 26.4375 9.46875 C 26.054688 9.964844 25.476563 10.492188 24.84375 11.0625 C 24.246094 11.601563 23.570313 12.222656 23.03125 12.96875 C 23.605469 10.679688 23.972656 8.347656 24 6.28125 C 24.222656 6.148438 24.527344 6 25 6 Z M 10.125 7 L 21.875 7 C 21.722656 9.972656 20.953125 13.597656 19.78125 16.59375 C 19.132813 18.25 18.382813 19.6875 17.65625 20.65625 C 16.929688 21.625 16.265625 22 15.96875 22 C 15.675781 22 15.035156 21.625 14.3125 20.65625 C 13.589844 19.6875 12.832031 18.253906 12.1875 16.59375 C 11.023438 13.59375 10.277344 9.957031 10.125 7 Z M 15 10 L 15 15 L 17 15 L 17 10 Z M 14 25 L 18 25 C 18.71875 25 19.210938 25.441406 19.5625 26 L 12.4375 26 C 12.789063 25.441406 13.28125 25 14 25 Z" /></symbol><use xlink:href="#svg-trophy" /></svg>`,
"unlock": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-unlock" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 3 C 12.964844 3 10.414063 4.964844 9.375 7.625 L 11.21875 8.375 C 11.976563 6.433594 13.835938 5 16 5 C 18.753906 5 21 7.246094 21 10 L 21 13 L 6 13 L 6 29 L 26 29 L 26 13 L 23 13 L 23 10 C 23 6.15625 19.84375 3 16 3 Z M 8 15 L 24 15 L 24 27 L 8 27 Z" /></symbol><use xlink:href="#svg-unlock" /></svg>`,
"up": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-up" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 6.59375 L 15.28125 7.28125 L 2.78125 19.78125 L 4.21875 21.21875 L 16 9.4375 L 27.78125 21.21875 L 29.21875 19.78125 L 16.71875 7.28125 Z" /></symbol><use xlink:href="#svg-up" /></svg>`,
"upload": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-upload" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 3.59375 L 15.28125 4.28125 L 8.28125 11.28125 L 9.71875 12.71875 L 15 7.4375 L 15 24 L 17 24 L 17 7.4375 L 22.28125 12.71875 L 23.71875 11.28125 L 16.71875 4.28125 Z M 7 26 L 7 28 L 25 28 L 25 26 Z" /></symbol><use xlink:href="#svg-upload" /></svg>`,
"users": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-users" viewBox="0 0 32 32"><path class="svg-fill" d="M 11.5 6 C 9.578125 6 8 7.578125 8 9.5 C 8 11.421875 9.578125 13 11.5 13 C 13.421875 13 15 11.421875 15 9.5 C 15 7.578125 13.421875 6 11.5 6 Z M 20.5 6 C 18.578125 6 17 7.578125 17 9.5 C 17 11.421875 18.578125 13 20.5 13 C 22.421875 13 24 11.421875 24 9.5 C 24 7.578125 22.421875 6 20.5 6 Z M 11.5 8 C 12.339844 8 13 8.660156 13 9.5 C 13 10.339844 12.339844 11 11.5 11 C 10.660156 11 10 10.339844 10 9.5 C 10 8.660156 10.660156 8 11.5 8 Z M 20.5 8 C 21.339844 8 22 8.660156 22 9.5 C 22 10.339844 21.339844 11 20.5 11 C 19.660156 11 19 10.339844 19 9.5 C 19 8.660156 19.660156 8 20.5 8 Z M 7 12 C 4.800781 12 3 13.800781 3 16 C 3 17.113281 3.476563 18.117188 4.21875 18.84375 C 2.886719 19.746094 2 21.28125 2 23 L 4 23 C 4 21.332031 5.332031 20 7 20 C 8.667969 20 10 21.332031 10 23 L 12 23 C 12 21.28125 11.113281 19.746094 9.78125 18.84375 C 10.523438 18.117188 11 17.113281 11 16 C 11 13.800781 9.199219 12 7 12 Z M 12 23 C 11.375 23.835938 11 24.886719 11 26 L 13 26 C 13 24.332031 14.332031 23 16 23 C 17.667969 23 19 24.332031 19 26 L 21 26 C 21 24.886719 20.625 23.835938 20 23 C 19.660156 22.546875 19.25 22.160156 18.78125 21.84375 C 19.523438 21.117188 20 20.113281 20 19 C 20 16.800781 18.199219 15 16 15 C 13.800781 15 12 16.800781 12 19 C 12 20.113281 12.476563 21.117188 13.21875 21.84375 C 12.75 22.160156 12.339844 22.546875 12 23 Z M 20 23 L 22 23 C 22 21.332031 23.332031 20 25 20 C 26.667969 20 28 21.332031 28 23 L 30 23 C 30 21.28125 29.113281 19.746094 27.78125 18.84375 C 28.523438 18.117188 29 17.113281 29 16 C 29 13.800781 27.199219 12 25 12 C 22.800781 12 21 13.800781 21 16 C 21 17.113281 21.476563 18.117188 22.21875 18.84375 C 20.886719 19.746094 20 21.28125 20 23 Z M 7 14 C 8.117188 14 9 14.882813 9 16 C 9 17.117188 8.117188 18 7 18 C 5.882813 18 5 17.117188 5 16 C 5 14.882813 5.882813 14 7 14 Z M 25 14 C 26.117188 14 27 14.882813 27 16 C 27 17.117188 26.117188 18 25 18 C 23.882813 18 23 17.117188 23 16 C 23 14.882813 23.882813 14 25 14 Z M 16 17 C 17.117188 17 18 17.882813 18 19 C 18 20.117188 17.117188 21 16 21 C 14.882813 21 14 20.117188 14 19 C 14 17.882813 14.882813 17 16 17 Z" /></symbol><use xlink:href="#svg-users" /></svg>`,
"warning": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-warning" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 3.21875 L 15.125 4.71875 L 3.125 25.5 L 2.28125 27 L 29.71875 27 L 28.875 25.5 L 16.875 4.71875 Z M 16 7.21875 L 26.25 25 L 5.75 25 Z M 15 14 L 15 20 L 17 20 L 17 14 Z M 15 21 L 15 23 L 17 23 L 17 21 Z" /></symbol><use xlink:href="#svg-warning" /></svg>`,
"windows": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-windows" viewBox="0 0 32 32"><path class="svg-fill" d="M 27 5 L 5 7.9921875 L 5 24.007812 L 27 27 L 27 5 z M 25 7.2890625 L 25 15 L 15 15 L 15 8.6503906 L 25 7.2890625 z M 13 8.921875 L 13 15 L 7 15 L 7 9.7382812 L 13 8.921875 z M 7 17 L 13 17 L 13 23.078125 L 7 22.261719 L 7 17 z M 15 17 L 25 17 L 25 24.710938 L 15 23.349609 L 15 17 z" /></symbol><use xlink:href="#svg-windows" /></svg>`,
"world": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-world" viewBox="0 0 32 32"><path class="svg-fill" d="M 16 4 C 9.382813 4 4 9.382813 4 16 C 4 22.617188 9.382813 28 16 28 C 22.617188 28 28 22.617188 28 16 C 28 9.382813 22.617188 4 16 4 Z M 16 6 C 17.96875 6 19.796875 6.585938 21.34375 7.5625 L 20.53125 7.65625 L 20.71875 9.65625 L 19.65625 9.1875 L 18.78125 9.9375 L 18.9375 12 L 21.09375 11.3125 L 23.78125 12.1875 L 23.09375 13.4375 L 21.46875 12.4375 L 19.71875 12.6875 L 18 13.96875 L 17.03125 16.96875 L 18.96875 18.5625 C 18.96875 18.5625 20.957031 18.21875 21.0625 18.21875 C 21.167969 18.21875 21.90625 20.03125 21.90625 20.03125 L 20.3125 25.03125 C 19.011719 25.652344 17.542969 26 16 26 C 15.683594 26 15.371094 25.964844 15.0625 25.9375 L 13.96875 24.03125 L 15.03125 20.03125 L 11 17 L 7.28125 17 L 6.3125 15.03125 L 9 12.90625 L 13 11 L 12.40625 8.34375 L 14.125 7.96875 L 14.9375 9.09375 L 17.9375 8.53125 L 17.40625 6.21875 L 15.1875 6.0625 C 15.453125 6.042969 15.726563 6 16 6 Z M 14.875 6.0625 L 13.3125 6.71875 L 12.5625 6.59375 C 13.300781 6.324219 14.066406 6.152344 14.875 6.0625 Z M 6.0625 16.78125 L 7.03125 17.90625 L 7.03125 19.96875 L 8.90625 22.03125 L 10.0625 22.03125 L 12.90625 25.53125 C 9.132813 24.308594 6.378906 20.890625 6.0625 16.78125 Z" /></symbol><use xlink:href="#svg-world" /></svg>`,
"wrench": `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><symbol id="svg-wrench" viewBox="0 0 32 32"><path class="svg-fill" d="M 21 4 C 17.144531 4 14 7.144531 14 11 C 14 11.714844 14.214844 12.363281 14.414063 13.015625 L 4.945313 22.484375 C 3.6875 23.738281 3.6875 25.800781 4.945313 27.058594 C 6.199219 28.3125 8.261719 28.3125 9.515625 27.058594 L 18.984375 17.589844 C 19.632813 17.789063 20.285156 18 21 18 C 24.855469 18 28 14.855469 28 11 C 28 9.972656 27.773438 9 27.375 8.125 L 26.78125 6.804688 L 25.761719 7.828125 L 22.585938 11 L 21 11 L 21 9.414063 L 25.195313 5.21875 L 23.875 4.625 C 23 4.226563 22.027344 4 21 4 Z M 21 6 C 21.171875 6 21.316406 6.085938 21.484375 6.101563 L 19 8.585938 L 19 13 L 23.414063 13 L 25.894531 10.515625 C 25.914063 10.683594 26 10.828125 26 11 C 26 13.773438 23.773438 16 21 16 C 20.300781 16 19.636719 15.855469 19.03125 15.597656 L 18.410156 15.332031 L 8.101563 25.640625 C 7.621094 26.125 6.839844 26.125 6.359375 25.640625 C 5.875 25.160156 5.875 24.378906 6.359375 23.894531 L 16.667969 13.589844 L 16.402344 12.964844 C 16.144531 12.359375 16 11.699219 16 11 C 16 8.226563 18.226563 6 21 6 Z" /></symbol><use xlink:href="#svg-wrench" /></svg>`,
}
View Source
var StringDefaultLinebreak = func() string { if runtime.GOOS == "windows" { return winLB } return saneLB }()
View Source
var UUIDDefault = uuid.UUID{}
Functions ¶
func ArrayDereference ¶ added in v0.2.12
func ArrayDereference[T any](x []*T) []T
func ArrayFirstN ¶ added in v0.2.12
func ArrayFlatten ¶ added in v0.2.12
func ArrayFlatten[T any](arrs ...[]T) []T
func ArrayFromAny ¶ added in v0.2.3
func ArrayLastN ¶ added in v0.2.12
func ArrayLimit ¶ added in v0.4.13
func ArrayRemoveDuplicates ¶ added in v0.2.4
func ArrayRemoveDuplicates[T comparable](x []T) []T
func ArrayRemoveEmpty ¶ added in v0.4.30
func ArrayRemoveEmpty[T comparable](x []T) []T
func ArrayRemoveNil ¶ added in v0.2.12
func ArrayRemoveNil[T any](x []*T) []*T
func ArraySorted ¶ added in v0.2.12
func ArraySplit ¶ added in v0.4.10
func ArrayToStringArray ¶ added in v0.3.9
func ArrayTransform ¶ added in v0.3.8
func AsyncCollect ¶ added in v0.2.1
func AsyncCollectMap ¶ added in v0.2.12
func AsyncRateLimit ¶ added in v0.2.11
func ByteSizeIEC ¶ added in v0.2.14
func ByteSizeSI ¶ added in v0.2.14
func ConfigureAcronym ¶ added in v0.4.10
func ConfigureAcronym(key, val string)
func CountryFlag ¶ added in v0.2.11
func DebugBuildInfo ¶ added in v0.2.18
func DebugMemStats ¶ added in v0.2.18
func DebugStartCPUProfile ¶ added in v0.2.18
func DebugStartCPUProfile() error
func DebugTakeHeapProfile ¶ added in v0.2.18
func DebugTakeHeapProfile() error
func DecryptMessage ¶
func DefaultIfNil ¶ added in v0.2.12
func DefaultIfNil[T any](ptr *T, d T) T
func DefaultValue ¶ added in v0.4.10
func DefaultValue[T any]() T
func EncryptMessage ¶
func ErrorMerge ¶ added in v0.2.5
func FormatSeconds ¶ added in v0.4.4
func FormatSecondsFull ¶ added in v0.4.4
func FromJSONAny ¶ added in v0.4.0
func FromJSONAny(msg json.RawMessage) (any, error)
func FromJSONAnyOK ¶ added in v0.4.26
func FromJSONAnyOK(msg json.RawMessage) any
func FromJSONObj ¶ added in v0.4.4
func FromJSONObj[T any](msg json.RawMessage) (T, error)
func FromJSONStrict ¶
func FromJSONStrict(msg json.RawMessage, tgt any) error
func FromJSONString ¶ added in v0.2.27
func FromJSONString(msg json.RawMessage) (string, error)
func FromTOMLAny ¶ added in v0.4.4
func FromTOMLStrict ¶ added in v0.4.4
func FromTOMLString ¶ added in v0.4.4
func FromXMLAny ¶ added in v0.4.0
func FromXMLStrict ¶ added in v0.4.0
func FromXMLString ¶ added in v0.4.0
func GetEnvBool ¶ added in v0.2.1
func GetEnvDuration ¶ added in v0.2.5
func HashFNV128UUID ¶ added in v0.3.10
func HashSHA256 ¶
HashSHA256 returns a Base64-encoded string representing the SHA-256 hash of the argument.
func InitAcronyms ¶ added in v0.3.8
func MapGetOrElse ¶ added in v0.4.8
func MapGetOrElse[K comparable, V any](mp map[K]V, k K, dflt V) V
func MarkdownTable ¶ added in v0.4.0
func MarkdownTableParse ¶ added in v0.4.0
func MicrosToMillis ¶
func OrDefault ¶ added in v0.4.10
func OrDefault[T comparable](x T, dflt T) T
func ParseArray ¶ added in v0.4.8
func ParseArrayFloat ¶ added in v0.4.8
func ParseArrayInt ¶ added in v0.4.8
func ParseArrayString ¶ added in v0.4.8
func ParseFloat ¶ added in v0.4.8
func ParseInt16 ¶ added in v0.4.34
func ParseInt32 ¶ added in v0.4.34
func ParseInt64 ¶ added in v0.4.33
func ParseString ¶ added in v0.4.8
func RandomBool ¶
func RandomBool() bool
func RandomBytes ¶
func RandomDate ¶
func RandomElement ¶ added in v0.4.12
func RandomElement[T any](slice []T) T
func RandomElements ¶ added in v0.3.10
func RandomFloat ¶ added in v0.2.9
func RandomIcon ¶ added in v0.4.4
func RandomIcon() string
func RandomInt16 ¶ added in v0.4.34
func RandomInt32 ¶ added in v0.4.34
func RandomInt64 ¶ added in v0.4.33
func RandomString ¶
func ReplaceEnvVars ¶
func RunProcess ¶
func StartProcess ¶ added in v0.2.12
func StringArrayFromAny ¶ added in v0.4.0
func StringArrayMaxLength ¶
func StringArrayOxfordComma ¶
func StringArrayQuoted ¶
func StringDetectLinebreak ¶ added in v0.2.12
func StringForms ¶
func StringNullable ¶ added in v0.4.0
func StringPlural ¶
func StringRepeat ¶
func StringReplaceBetween ¶ added in v0.2.12
func StringSplitAndTrim ¶
func StringSplitLastOnly ¶ added in v0.2.12
func StringSplitLines ¶ added in v0.2.12
func StringSplitLinesIndented ¶ added in v0.3.1
func StringSplitPath ¶ added in v0.2.12
func StringSplitPathAndTrim ¶ added in v0.2.12
func StringSubstringBetween ¶ added in v0.2.12
func StringToCamel ¶
func StringToLowerCamel ¶
func StringToPlural ¶
func StringToSingular ¶
func StringToSnake ¶ added in v0.2.5
func StringToTitle ¶
func StringTruncate ¶
func TimeCurrent ¶ added in v0.2.12
func TimeCurrentMillis ¶
func TimeCurrentMillis() int64
func TimeCurrentNanos ¶ added in v0.2.12
func TimeCurrentNanos() int64
func TimeCurrentP ¶ added in v0.2.12
func TimeCurrentUnix ¶ added in v0.2.12
func TimeCurrentUnix() int64
func TimeFromStringSimple ¶ added in v0.3.10
func TimeRelative ¶
func TimeToFull ¶
func TimeToFullMS ¶ added in v0.4.0
func TimeToHTML ¶
func TimeToHours ¶ added in v0.4.0
func TimeToJSFull ¶ added in v0.4.4
func TimeToRFC3339 ¶ added in v0.4.0
func TimeToVerbose ¶ added in v0.2.12
func ToCSVBytes ¶ added in v0.4.0
func ToJSONBytes ¶
func ToJSONCompact ¶
func ToTOMLBytes ¶ added in v0.4.4
func ToXMLCompact ¶ added in v0.4.0
func UUIDFromString ¶
func UUIDFromStringOK ¶ added in v0.2.12
func UUIDString ¶ added in v0.2.12
Types ¶
type DebugInfo ¶
type DebugInfo struct { ServerTags *OrderedMap[string] AppTags *OrderedMap[string] RuntimeTags *OrderedMap[string] Mods []*debug.Module }
type Diff ¶
type Diff struct { Path string `json:"path"` Old string `json:"o,omitempty"` New string `json:"n"` }
func (Diff) StringVerbose ¶ added in v0.2.11
type Diffs ¶
type Diffs []*Diff
func DiffObjectsIgnoring ¶
func RandomDiffs ¶
func (Diffs) StringVerbose ¶ added in v0.2.11
type ErrorDetail ¶
type ErrorDetail struct { Type string `json:"type" xml:"type"` Message string `json:"message" xml:"message"` Stack []ErrorFrame `json:"stack,omitempty" xml:"stack,omitempty"` StackTrace errors.StackTrace `json:"-" xml:"-"` Cause *ErrorDetail `json:"cause,omitempty" xml:"cause,omitempty"` }
func GetErrorDetail ¶
func GetErrorDetail(e error, includeStack bool) *ErrorDetail
type ErrorFrame ¶
func TraceDetail ¶
func TraceDetail(trace errors.StackTrace) []ErrorFrame
type FieldDesc ¶ added in v0.3.0
type FieldDescResults ¶ added in v0.4.19
type FieldDescResults struct { FieldDescs FieldDescs `json:"fieldDescs"` Values ValueMap `json:"values"` Missing []string `json:"missing,omitempty"` }
func FieldDescsCollect ¶ added in v0.4.19
func FieldDescsCollect(r *http.Request, args FieldDescs) *FieldDescResults
func (*FieldDescResults) HasMissing ¶ added in v0.4.19
func (a *FieldDescResults) HasMissing() bool
type FieldDescs ¶ added in v0.3.0
type FieldDescs []*FieldDesc
func (FieldDescs) Get ¶ added in v0.4.4
func (d FieldDescs) Get(key string) *FieldDesc
func (FieldDescs) Keys ¶ added in v0.4.0
func (d FieldDescs) Keys() []string
type HTTPRequest ¶ added in v0.4.10
func NewHTTPGet ¶ added in v0.4.32
func NewHTTPGet(ctx context.Context, url string) *HTTPRequest
func NewHTTPPost ¶ added in v0.4.32
func NewHTTPRequest ¶ added in v0.4.10
func (*HTTPRequest) RunSimple ¶ added in v0.4.10
func (r *HTTPRequest) RunSimple() (*http.Response, []byte, error)
func (*HTTPRequest) WithClient ¶ added in v0.4.10
func (r *HTTPRequest) WithClient(c *http.Client) *HTTPRequest
func (*HTTPRequest) WithHeader ¶ added in v0.4.10
func (r *HTTPRequest) WithHeader(k string, v string) *HTTPRequest
type KeyTypeDesc ¶ added in v0.1.42
type KeyTypeDesc struct { Key string `json:"key"` Type string `json:"type"` Description string `json:"description"` }
func (*KeyTypeDesc) Array ¶ added in v0.1.42
func (k *KeyTypeDesc) Array(key string) []string
func (*KeyTypeDesc) Matches ¶ added in v0.4.4
func (k *KeyTypeDesc) Matches(x *KeyTypeDesc) bool
func (*KeyTypeDesc) String ¶ added in v0.4.24
func (k *KeyTypeDesc) String() string
type KeyTypeDescs ¶ added in v0.1.42
type KeyTypeDescs []*KeyTypeDesc
func (KeyTypeDescs) Array ¶ added in v0.1.42
func (k KeyTypeDescs) Array(key string) [][]string
func (KeyTypeDescs) Sort ¶ added in v0.1.42
func (k KeyTypeDescs) Sort() KeyTypeDescs
func (KeyTypeDescs) Strings ¶ added in v0.4.24
func (k KeyTypeDescs) Strings() []string
type NilBool ¶ added in v0.4.0
func (NilBool) MarshalJSON ¶ added in v0.4.0
func (*NilBool) UnmarshalJSON ¶ added in v0.4.0
type NilFloat64 ¶ added in v0.4.0
type NilFloat64 struct {
sql.NullFloat64
}
func (NilFloat64) MarshalJSON ¶ added in v0.4.0
func (n NilFloat64) MarshalJSON() ([]byte, error)
func (*NilFloat64) UnmarshalJSON ¶ added in v0.4.0
func (n *NilFloat64) UnmarshalJSON(data []byte) error
type NilInt32 ¶ added in v0.4.0
func (NilInt32) MarshalJSON ¶ added in v0.4.0
func (*NilInt32) UnmarshalJSON ¶ added in v0.4.0
type NilInt64 ¶ added in v0.4.0
func (NilInt64) MarshalJSON ¶ added in v0.4.0
func (*NilInt64) UnmarshalJSON ¶ added in v0.4.0
type NilJSON ¶ added in v0.4.26
type NilJSON struct { sql.Null[json.RawMessage] }
func (NilJSON) MarshalJSON ¶ added in v0.4.26
func (*NilJSON) UnmarshalJSON ¶ added in v0.4.26
type NilString ¶ added in v0.4.0
type NilString struct {
sql.NullString
}
func (NilString) MarshalJSON ¶ added in v0.4.0
func (*NilString) UnmarshalJSON ¶ added in v0.4.0
type NilTime ¶ added in v0.4.0
func (NilTime) MarshalJSON ¶ added in v0.4.0
func (*NilTime) UnmarshalJSON ¶ added in v0.4.0
type Node ¶ added in v0.4.0
type OrderedMap ¶
func NewOMap ¶ added in v0.4.4
func NewOMap[V any]() *OrderedMap[V]
func NewOrderedMap ¶
func NewOrderedMap[V any](lexical bool, capacity int) *OrderedMap[V]
func (*OrderedMap[V]) Append ¶
func (o *OrderedMap[V]) Append(k string, v V)
func (*OrderedMap[V]) Clone ¶ added in v0.4.25
func (o *OrderedMap[V]) Clone() *OrderedMap[V]
func (*OrderedMap[V]) Get ¶
func (o *OrderedMap[V]) Get(k string) (V, bool)
func (*OrderedMap[V]) GetSimple ¶
func (o *OrderedMap[V]) GetSimple(k string) V
func (*OrderedMap[V]) HasKey ¶ added in v0.4.4
func (o *OrderedMap[V]) HasKey(k string) bool
func (*OrderedMap[V]) IndexOf ¶ added in v0.4.4
func (o *OrderedMap[V]) IndexOf(k string) int
func (OrderedMap[V]) MarshalJSON ¶
func (o OrderedMap[V]) MarshalJSON() ([]byte, error)
func (OrderedMap[V]) MarshalXML ¶
func (o OrderedMap[V]) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (OrderedMap[V]) MarshalYAML ¶
func (o OrderedMap[V]) MarshalYAML() (any, error)
func (*OrderedMap[V]) Pairs ¶ added in v0.4.4
func (o *OrderedMap[V]) Pairs() []*OrderedPair[V]
func (*OrderedMap[V]) Remove ¶ added in v0.4.4
func (o *OrderedMap[V]) Remove(k string)
func (*OrderedMap[V]) Set ¶ added in v0.4.4
func (o *OrderedMap[V]) Set(k string, v V)
func (*OrderedMap[V]) UnmarshalJSON ¶
func (o *OrderedMap[V]) UnmarshalJSON(b []byte) error
type OrderedPair ¶ added in v0.4.4
type Progress ¶ added in v0.4.8
type Progress struct { Key string `json:"key,omitempty"` Total int `json:"total,omitempty"` Completed int `json:"completed,omitempty"` // contains filtered or unexported fields }
func NewProgress ¶ added in v0.4.8
type Set ¶ added in v0.4.27
func (Set[T]) MarshalJSON ¶ added in v0.4.27
func (Set[T]) MarshalXML ¶ added in v0.4.27
func (Set[T]) MarshalYAML ¶ added in v0.4.27
func (*Set[T]) UnmarshalJSON ¶ added in v0.4.27
type StringSlice ¶ added in v0.4.0
type StringSlice struct {
Slice []string
}
func NewStringSlice ¶ added in v0.4.0
func NewStringSlice(a []string) *StringSlice
func (*StringSlice) Empty ¶ added in v0.4.0
func (s *StringSlice) Empty() bool
func (*StringSlice) Join ¶ added in v0.4.0
func (s *StringSlice) Join(x string) string
func (*StringSlice) Push ¶ added in v0.4.0
func (s *StringSlice) Push(strs ...string)
func (*StringSlice) Pushf ¶ added in v0.4.0
func (s *StringSlice) Pushf(msg string, args ...any)
func (*StringSlice) Sort ¶ added in v0.4.0
func (s *StringSlice) Sort()
func (*StringSlice) String ¶ added in v0.4.4
func (s *StringSlice) String() string
type Timer ¶ added in v0.1.43
func TimerStart ¶
func TimerStart() *Timer
type Tree ¶ added in v0.4.0
type ValueMap ¶
func FromJSONMap ¶ added in v0.2.27
func FromJSONMap(msg json.RawMessage) (ValueMap, error)
func FromTOMLMap ¶ added in v0.4.4
func FromXMLMap ¶ added in v0.4.0
func ParseArrayMap ¶ added in v0.4.8
func RandomValueMap ¶
func ValueMapFor ¶
func ValueMapFrom ¶ added in v0.4.33
func (ValueMap) GetArrayOpt ¶ added in v0.3.9
func (ValueMap) GetBoolOpt ¶ added in v0.2.4
func (ValueMap) GetFloatArray ¶ added in v0.3.9
func (ValueMap) GetFloatOpt ¶ added in v0.3.9
func (ValueMap) GetIntArray ¶ added in v0.3.9
func (ValueMap) GetMapArray ¶ added in v0.3.9
func (ValueMap) GetStringArray ¶
func (ValueMap) GetStringArrayOpt ¶ added in v0.3.9
func (ValueMap) GetStringOpt ¶
func (ValueMap) GetStringPtr ¶ added in v0.2.12
func (ValueMap) KeysAndValues ¶
func (ValueMap) MarshalXML ¶
func (ValueMap) ParseArray ¶
func (ValueMap) ParseArrayFloat ¶ added in v0.3.9
func (ValueMap) ParseArrayInt ¶ added in v0.2.5
func (ValueMap) ParseArrayMap ¶ added in v0.3.9
func (ValueMap) ParseArrayString ¶ added in v0.2.5
func (ValueMap) ParseFloat ¶
func (ValueMap) ParseInt16 ¶ added in v0.4.34
func (ValueMap) ParseInt32 ¶ added in v0.4.34
func (ValueMap) ParseInt64 ¶ added in v0.4.33
func (ValueMap) ParseString ¶
func (ValueMap) ToQueryString ¶
func (ValueMap) ToStringMap ¶ added in v0.2.20
func (ValueMap) WithoutKeys ¶ added in v0.4.1
Source Files ¶
- acronym.go
- array.go
- async.go
- bool.go
- byte.go
- casing.go
- csv.go
- debug.go
- diff.go
- encryption.go
- env.go
- errors.go
- fielddesc.go
- http.go
- json.go
- keys.go
- keyval.go
- log.go
- map.go
- mapget.go
- mapordered.go
- mapparse.go
- mappath.go
- markdown.go
- nil.go
- numeric.go
- parse.go
- parsearray.go
- pkg.go
- plural.go
- process.go
- progress.go
- random.go
- set.go
- string.go
- stringslice.go
- svg.go
- time.go
- timefmt.go
- timer.go
- toml.go
- tree.go
- uuid.go
- xml.go
Click to show internal directories.
Click to hide internal directories.