-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcelestial_ui.lua
More file actions
6091 lines (5842 loc) · 399 KB
/
Copy pathcelestial_ui.lua
File metadata and controls
6091 lines (5842 loc) · 399 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-- Hallmark · pre-emit critique: P5 H4 E4 S5 R5 V4
-- Audience: experienced farm operator · Use: fast runtime control · Tone: technical, austere
local LIB_NAME = "INSui"
local env = nil
pcall(function() env = (getfenv and getfenv()) or _G end)
if type(env) ~= "table" then env = {} end
local shared = type(shared) == "table" and shared or {}
local function safeWriteGlobal(key, value)
pcall(function() env[key] = value end)
pcall(function() getgenv()[key] = value end)
pcall(function() _G[key] = value end)
pcall(function() shared[key] = value end)
end
local function safeReadGlobal(key)
local v
pcall(function() v = getgenv()[key] end); if v ~= nil then return v end
pcall(function() v = _G[key] end); if v ~= nil then return v end
pcall(function() v = shared[key] end); if v ~= nil then return v end
pcall(function() v = env[key] end); return v
end
local function hostFn(name, fallback)
local f = env[name]
if type(f) ~= "function" then pcall(function() f = _G[name] end) end
if type(f) ~= "function" then return fallback end
return f
end
local iskeypressed = hostFn("iskeypressed", function() return false end)
local ismouse1 = hostFn("ismouse1pressed",function() return false end)
local ismouse2 = hostFn("ismouse2pressed",function() return false end)
local isrbxactive = hostFn("isrbxactive", function() return true end)
local setrobloxinput = hostFn("setrobloxinput", function() end)
local setclipboard = hostFn("setclipboard", function() end)
local base64decode = hostFn("base64decode")
local base64encode = hostFn("base64encode")
local httppost = hostFn("httppost")
local httprequest = hostFn("request") or hostFn("http_request")
local getclipboard = hostFn("getclipboard")
local clock = os and os.clock
if type(clock) ~= "function" then clock = hostFn("tick", function() return 0 end) end
local Color3 = Color3
local Vector2 = Vector2
local v2 = Vector2.new
local c3 = Color3.fromRGB
local hsv
pcall(function() hsv = Color3.fromHSV end)
if type(hsv) ~= "function" then hsv = function() return c3(255, 255, 255) end end
local floor, abs, min, max, sin, sqrt = math.floor, math.abs, math.min, math.max, math.sin, math.sqrt
local cos, pi = math.cos, math.pi
local remove, concat = table.remove, table.concat
local writefile = hostFn("writefile")
local readfile = hostFn("readfile")
local isfile = hostFn("isfile", function() return false end)
local isfolder = hostFn("isfolder", function() return false end)
local makefolder= hostFn("makefolder")
local listfiles = hostFn("listfiles", function() return {} end)
local delfile = hostFn("delfile")
local HttpService
pcall(function()
HttpService = game:GetService("HttpService")
end)
local function jsonSafe(v, seen)
local t = type(v)
if t == "number" then if v ~= v or v == math.huge or v == -math.huge then return 0 end return v
elseif t == "string" or t == "boolean" then return v
elseif t == "table" then
seen = seen or {}
if seen[v] then return nil end
seen[v] = true
local o = {}
pcall(function() for k, val in pairs(v) do local kt = type(k); if kt == "string" or kt == "number" then o[k] = jsonSafe(val, seen) end end end)
seen[v] = nil
return o
end
return nil
end
local function jsonEncode(t)
local s = jsonSafe(t)
local ok, r = pcall(function() return HttpService:JSONEncode(s) end)
if ok then return r end
if type(s) == "table" then
local safe = {}
for k, val in pairs(s) do
if pcall(function() return HttpService:JSONEncode(val) end) then safe[k] = val end
end
local ok2, r2 = pcall(function() return HttpService:JSONEncode(safe) end)
if ok2 then return r2 end
end
return nil
end
local function jsonDecode(s) local ok,r = pcall(function() return HttpService:JSONDecode(s) end); return ok and r or nil end
local instanceId = {}
safeWriteGlobal(LIB_NAME .. "InstanceId", instanceId)
pcall(setrobloxinput, true)
local function clamp(v, lo, hi) if v < lo then return lo elseif v > hi then return hi else return v end end
local function boolv(v) return v == true end
local function copyArray(src)
local out = {}
if type(src) == "table" then
for i = 1, #src do out[i] = src[i] end
elseif src ~= nil then
out[1] = src
end
return out
end
local function colorChanged(a, b)
if not a or not b then return a ~= b end
return abs(a.R - b.R) > 0.001 or abs(a.G - b.G) > 0.001 or abs(a.B - b.B) > 0.001
end
local function parseCombo(str)
if type(str) == "string" then
local p = string.find(str, "+", 1, true)
if p then return string.sub(str, 1, p - 1), string.sub(str, p + 1) end
return nil, str
end
return nil, nil
end
local KEY_ALIASES = {
rightshift = "rshift", leftshift = "lshift",
rightcontrol = "rctrl", leftcontrol = "lctrl", rightctrl = "rctrl", leftctrl = "lctrl",
rightalt = "ralt", leftalt = "lalt",
control = "ctrl", ["return"] = "enter", escape = "esc", del = "delete",
backquote = "tilde", grave = "tilde", equals = "plus", equal = "plus",
leftbracket = "lbracket", rightbracket = "rbracket", backslashkey = "backslash",
mousebutton3 = "mb3", middlemouse = "mb3", mmb = "mb3", m3 = "mb3", scrollclick = "mb3",
mousebutton4 = "mb4", mouse4 = "mb4", xbutton1 = "mb4", m4 = "mb4",
mousebutton5 = "mb5", mouse5 = "mb5", xbutton2 = "mb5", m5 = "mb5",
mouse1 = "m1", leftmouse = "m1", lmb = "m1", leftclick = "m1", mousebutton1 = "m1", mb1 = "m1",
mouse2 = "m2", rightmouse = "m2", rmb = "m2", rightclick = "m2", mousebutton2 = "m2", mb2 = "m2",
}
local function normalizeKey(v)
if v == nil then return nil end
v = string.lower(tostring(v)):gsub("%s+", "")
if v == "" or v == "-" or v == "none" or v == "nil" or v == "unbound" then return nil end
return KEY_ALIASES[v] or v
end
local function normalizeMode(v)
if v == "Toggle" or v == "Always" then return v end
return "Hold"
end
local KEY_DISPLAY = { m1 = "MB1", m2 = "MB2", mb3 = "MB3", mb4 = "MB4", mb5 = "MB5" }
local function dispKey(k) return KEY_DISPLAY[k] or string.upper(tostring(k)) end
local function keyLabel(v)
if v == nil or v == "" then return "none" end
local mod, k = parseCombo(v)
if mod then return dispKey(mod) .. "+" .. dispKey(k or "") end
return dispKey(v)
end
local WHITE = c3(255, 255, 255)
local Theme = {
bg = c3(11, 13, 18),
sidebar = c3(8, 10, 14),
white = WHITE,
text = c3(224, 226, 232),
sub = c3(143, 148, 160),
accent = c3(86, 126, 246),
accentA = c3(86, 126, 246),
accentB = c3(103, 139, 255),
tlRed = c3(250, 93, 86),
tlYellow = c3(252, 190, 57),
tlGreen = c3(119, 174, 94),
trackOff = c3(28, 32, 40),
trackOn = c3(86, 126, 246),
knobOff = c3(126, 132, 143),
sliderTrack = c3(39, 44, 55),
good = c3(119, 174, 94),
bad = c3(250, 93, 86),
unsafe = c3(252, 190, 57),
surface = c3(14, 17, 23),
surface2 = c3(17, 20, 27),
surface3 = c3(23, 27, 35),
border = c3(37, 42, 53),
}
local ThemePresets = {
Indigo = { c3(122, 134, 255), c3(189, 130, 255) },
NeverBlox = { c3(82, 122, 246), c3(120, 150, 255) },
Lemon = { c3(252, 211, 49), c3(240, 165, 25) },
Mono = { WHITE, WHITE },
Sunset = { c3(255, 150, 90), c3(255, 90, 140) },
Mint = { c3(110, 230, 180), c3(90, 200, 255) },
Rose = { c3(255, 120, 160), c3(200, 120, 255) },
Gold = { c3(255, 210, 120), c3(255, 150, 80) },
Crimson = { c3(255, 100, 100), c3(255, 60, 140) },
Ocean = { c3(90, 200, 255), c3(120, 140, 255) },
Toxic = { c3(150, 255, 120), c3(60, 220, 160) },
Lavender = { c3(180, 160, 255), c3(220, 160, 255) },
Aqua = { c3(80, 230, 230), c3(80, 180, 255) },
Ember = { c3(255, 120, 60), c3(255, 70, 70) },
Cyber = { c3(0, 255, 200), c3(120, 100, 255) },
Bubblegum = { c3(255, 140, 220), c3(150, 180, 255) },
Forest = { c3(120, 220, 120), c3(180, 230, 90) },
Slate = { c3(150, 170, 200), c3(110, 130, 170) },
Cherry = { c3(255, 90, 120), c3(255, 150, 110) },
Aurora = { c3(120, 255, 200), c3(160, 140, 255) },
Sky = { c3(120, 200, 255), c3(180, 210, 255) },
Magma = { c3(255, 80, 40), c3(255, 180, 40) },
Grape = { c3(170, 110, 255), c3(255, 110, 200) },
Steel = { c3(120, 200, 220), c3(150, 160, 200) },
Peach = { c3(255, 180, 150), c3(255, 130, 160) },
Neon = { c3(0, 240, 255), c3(180, 0, 255) },
Waifu = { c3(150, 205, 120), c3(195, 230, 130) },
}
local AL = {
hairline = 0.32, card = 1.00, cardStrk = 1.00, tabFill = 0.12,
text = 0.95, label = 0.90, dim = 0.76, hover = 1.00, field = 0.08,
}
AL.winShadow = { 0.10, 0.07, 0.05, 0.03, 0.015 }
local Fonts = (Drawing and Drawing.Fonts) or {}
local FontSystem = Fonts.System or 0
local FontBold = Fonts.SystemBold or Fonts.System or 0
local FontUI = Fonts.UI or Fonts.System or 0
local FontMono = Fonts.Monospace or 0
local FontWidths = {
[FontSystem] = 0.48, [FontBold] = 0.52, [FontUI] = 0.50, [FontMono] = 0.60,
[Fonts.Minecraft or -1] = 0.55, [Fonts.Pixel or -2] = 0.50, [Fonts.Fortnite or -3] = 0.55,
[Fonts.ProximaSoftBold or -4] = 0.53,
}
local FONT_LIST = {}
do
local cand = {
{ "Default", FontSystem }, { "Bold", FontBold }, { "Proxima", Fonts.ProximaSoftBold },
{ "Proggy", FontUI }, { "Minecraft", Fonts.Minecraft }, { "JetBrains", FontMono },
{ "Pixel", Fonts.Pixel }, { "Fortnite", Fonts.Fortnite },
}
for _, c in ipairs(cand) do if c[2] ~= nil then FONT_LIST[#FONT_LIST + 1] = c end end
end
local function fontByName(name)
for _, c in ipairs(FONT_LIST) do if c[1] == name then return c[2] end end
return FontSystem
end
local ProjectState = {
alive = true, destroyed = false, open = false, rendering = false,
x = 0, y = 0, w = 560, h = 460, minimized = false,
title = "uilib", subtitle = "",
configName = "default",
mouseX = 0, mouseY = 0, hasMouse = false, mouseScroll = 0,
lastFrame = clock() or 0, dt = 1/60,
inputState = nil,
drawVisible = 0,
contentFade = 1,
tabs = {}, activeTab = nil, activeIndex = 1,
notifications = {},
drag = nil, resizeEdge = nil, sliderDrag = nil, scrollDrag = nil,
dropdown = nil, colorpicker = nil, featureSettings = nil, cpDrag = nil, focus = nil,
repeatKey = nil, repeatAt = 0,
tooltipText = nil, tooltipX = 0, tooltipY = 0, tooltipAt = 0, lastTooltipText = nil,
hoverEffects = true, tooltipsEnabled = true,
smartFps = false, checkboxStyle = false, railOnly = false, skeetMode = false, compactSkeet = false, neverloseMode = false,
errorCount = 0,
}
local menuKey = "p"
local keybindItems = {}
local Input, InputOrder = {}, {}
local function addInput(name, id, char, shifted)
name = string.lower(tostring(name))
if not Input[name] then InputOrder[#InputOrder + 1] = name end
Input[name] = { id = id, held = false, click = false, released = false, char = char, shifted = shifted }
end
addInput("m1", 0x01); addInput("m2", 0x02)
addInput("mb3", 0x04); addInput("mb4", 0x05); addInput("mb5", 0x06)
addInput("backspace", 0x08); addInput("tab", 0x09); addInput("enter", 0x0D)
addInput("shift", 0x10); addInput("ctrl", 0x11); addInput("alt", 0x12)
addInput("esc", 0x1B); addInput("space", 0x20, " ", " ")
addInput("pageup", 0x21); addInput("pagedown", 0x22); addInput("end", 0x23); addInput("home", 0x24)
addInput("left", 0x25); addInput("up", 0x26); addInput("right", 0x27); addInput("down", 0x28)
addInput("insert", 0x2D); addInput("delete", 0x2E)
local shiftedDigits = {")","!","@","#","$","%","^","&","*","("}
for i = 0, 9 do addInput(tostring(i), 0x30 + i, tostring(i), shiftedDigits[i + 1]) end
for i = 0, 25 do local ch = string.char(97 + i); addInput(ch, 0x41 + i, ch, string.upper(ch)) end
for i = 1, 12 do addInput("f" .. i, 0x6F + i) end
addInput("lshift", 0xA0); addInput("rshift", 0xA1); addInput("lctrl", 0xA2); addInput("rctrl", 0xA3); addInput("lalt", 0xA4); addInput("ralt", 0xA5)
addInput("semicolon", 0xBA, ";", ":"); addInput("plus", 0xBB, "=", "+"); addInput("comma", 0xBC, ",", "<")
addInput("minus", 0xBD, "-", "_"); addInput("period", 0xBE, ".", ">"); addInput("slash", 0xBF, "/", "?")
addInput("tilde", 0xC0, "`", "~"); addInput("lbracket", 0xDB, "[", "{"); addInput("backslash", 0xDC, "\\", "|")
addInput("rbracket", 0xDD, "]", "}"); addInput("quote", 0xDE, "'", "\"")
pcall(function()
ProjectState.userInputService = game:GetService("UserInputService")
local inputBegan = ProjectState.userInputService
and ProjectState.userInputService.InputBegan
local connect = inputBegan and inputBegan.Connect
if type(connect) == "function" then
ProjectState.menuInputConnection = connect(
inputBegan,
function(input)
local keyCode = input and input.KeyCode
local configured = Input[menuKey]
if ProjectState.alive
and configured
and keyCode == configured.id
then
ProjectState.menuTogglePending = true
end
end
)
end
end)
local Pool = { sq = {}, tx = {}, ln = {}, ci = {}, tr = {}, im = {} }
local PoolC = { sq = {}, tx = {}, ln = {}, ci = {}, tr = {}, im = {} }
local PoolIndex = { sq = 0, tx = 0, ln = 0, ci = 0, tr = 0, im = 0 }
local PoolHigh = { sq = 0, tx = 0, ln = 0, ci = 0, tr = 0, im = 0 }
local TypeMap = { sq = "Square", tx = "Text", ln = "Line", ci = "Circle", tr = "Triangle", im = "Image" }
local drawSeq = 0
local function zord(z)
drawSeq = drawSeq + 1
return (z or 1) * 10000 + (drawSeq < 10000 and drawSeq or 9999)
end
local function resetPool()
PoolIndex.sq, PoolIndex.tx, PoolIndex.ln = 0, 0, 0
PoolIndex.ci, PoolIndex.tr, PoolIndex.im = 0, 0, 0
drawSeq = 0
end
local function getDrawing(kind)
if not ProjectState.alive or ProjectState.destroyed then return nil end
local i = PoolIndex[kind] + 1
PoolIndex[kind] = i
local list, clist = Pool[kind], PoolC[kind]
local obj = list[i]
local c = clist[i]
if not obj then
local ok, made = pcall(function() return Drawing.new(TypeMap[kind]) end)
if not ok or not made then return nil end
obj = made; list[i] = obj
c = {}; clist[i] = c
end
if i > PoolHigh[kind] then PoolHigh[kind] = i end
if c.v ~= true then c.v = true; obj.Visible = true end
return obj, c
end
local function hideUnused()
for kind, list in pairs(Pool) do
local clist = PoolC[kind]
local cur, hi = PoolIndex[kind], PoolHigh[kind]
if cur < hi then for i = cur + 1, hi do local o, c = list[i], clist[i]; if o and c and c.v ~= false then c.v = false; o.Visible = false end end end
if cur > hi then PoolHigh[kind] = cur end
end
end
local function hideAll()
for kind, list in pairs(Pool) do
local clist = PoolC[kind]
for i = 1, #list do local o, c = list[i], clist[i]; if o and c and c.v ~= false then c.v = false; o.Visible = false end end
end
end
local function hideWindowDrawings()
if ProjectState.windowImagesHidden then return end
local ok = pcall(function()
local function hideImage(img, cache)
if img and (not cache or cache[7] ~= false) then
img.Visible = false
if cache then cache[7] = false end
end
end
for _, t in ipairs(ProjectState.tabs) do
hideImage(t._img, t._ic)
hideImage(t._imgA, t._icA)
if t.subs then for _, sb in ipairs(t.subs) do
hideImage(sb._img, sb._ic)
hideImage(sb._imgA, sb._icA)
end end
for _, sec in ipairs(t.sections) do for _, it in ipairs(sec.items) do
hideImage(it._img, it._imgIc)
hideImage(it._ddImg, it._ddIc)
end end
end
hideImage(ProjectState._gearImg, ProjectState._gearIc)
hideImage(ProjectState.bgImg, ProjectState._bgIc)
hideImage(ProjectState.avatarImg, ProjectState._avatarIc)
hideImage(ProjectState.logoImg, ProjectState._logoIc)
hideImage(ProjectState.iconImg, ProjectState._iconIc)
end)
if ok then ProjectState.windowImagesHidden = true end
end
local function removeAllDrawings()
for kind, list in pairs(Pool) do
local clist = PoolC[kind]
for i = 1, #list do
local o = list[i]
if o then pcall(function() o.Visible = false; o:Remove() end); list[i] = nil end
clist[i] = nil
end
end
end
local HAS_CORNER, HAS_OUTLINE = false, false
pcall(function() local s = Drawing.new("Square"); s.Corner = 4; HAS_CORNER = true; s:Remove() end)
pcall(function() local t = Drawing.new("Text"); t.Outline = true; HAS_OUTLINE = true; t:Remove() end)
local function rect(x, y, w, h, color, z, radius, alpha)
if w <= 0 or h <= 0 then drawSeq = drawSeq + 1; return end
local d, c = getDrawing("sq"); if not d then return end
if c[1] ~= x or c[2] ~= y then c[1], c[2] = x, y; d.Position = v2(x, y) end
if c[3] ~= w or c[4] ~= h then c[3], c[4] = w, h; d.Size = v2(w, h) end
local r, g, b = color.R, color.G, color.B
if c[5] ~= r or c[6] ~= g or c[7] ~= b then c[5], c[6], c[7] = r, g, b; d.Color = color end
if c[8] ~= true then c[8] = true; d.Filled = true end
if HAS_CORNER then local cn = (radius or 0) * (ProjectState.roundScale or 1); if c[9] ~= cn then c[9] = cn; d.Corner = cn end end
local zi = zord(z); if c[10] ~= zi then c[10] = zi; d.ZIndex = zi end
local a = alpha or 1; if c[11] ~= a then c[11] = a; d.Transparency = a end
end
local function strokeRect(x, y, w, h, color, z, radius, alpha)
if w <= 0 or h <= 0 then drawSeq = drawSeq + 1; return end
local d, c = getDrawing("sq"); if not d then return end
if c[1] ~= x or c[2] ~= y then c[1], c[2] = x, y; d.Position = v2(x, y) end
if c[3] ~= w or c[4] ~= h then c[3], c[4] = w, h; d.Size = v2(w, h) end
local r, g, b = color.R, color.G, color.B
if c[5] ~= r or c[6] ~= g or c[7] ~= b then c[5], c[6], c[7] = r, g, b; d.Color = color end
if c[8] ~= false then c[8] = false; d.Filled = false end
if HAS_CORNER then local cn = (radius or 0) * (ProjectState.roundScale or 1); if c[9] ~= cn then c[9] = cn; d.Corner = cn end end
local zi = zord(z); if c[10] ~= zi then c[10] = zi; d.ZIndex = zi end
local a = alpha or 1; if c[11] ~= a then c[11] = a; d.Transparency = a end
end
local function lineD(x1, y1, x2, y2, color, z, thick, alpha)
local d, c = getDrawing("ln"); if not d then return end
if c[1] ~= x1 or c[2] ~= y1 then c[1], c[2] = x1, y1; d.From = v2(x1, y1) end
if c[3] ~= x2 or c[4] ~= y2 then c[3], c[4] = x2, y2; d.To = v2(x2, y2) end
local r, g, b = color.R, color.G, color.B
if c[5] ~= r or c[6] ~= g or c[7] ~= b then c[5], c[6], c[7] = r, g, b; d.Color = color end
local th = thick or 1; if c[8] ~= th then c[8] = th; d.Thickness = th end
local zi = zord(z); if c[9] ~= zi then c[9] = zi; d.ZIndex = zi end
local a = alpha or 1; if c[10] ~= a then c[10] = a; d.Transparency = a end
end
local function circ(x, y, r, color, z, filled, thick, sides, alpha)
local d, c = getDrawing("ci"); if not d then return end
if c[1] ~= x or c[2] ~= y then c[1], c[2] = x, y; d.Position = v2(x, y) end
if c[3] ~= r then c[3] = r; d.Radius = r end
local cr, cg, cb = color.R, color.G, color.B
if c[4] ~= cr or c[5] ~= cg or c[6] ~= cb then c[4], c[5], c[6] = cr, cg, cb; d.Color = color end
local fl = filled ~= false; if c[7] ~= fl then c[7] = fl; d.Filled = fl end
local th = thick or 1; if c[8] ~= th then c[8] = th; d.Thickness = th end
local ns = sides or 32; if c[9] ~= ns then c[9] = ns; d.NumSides = ns end
local zi = zord(z); if c[10] ~= zi then c[10] = zi; d.ZIndex = zi end
local a = alpha or 1; if c[11] ~= a then c[11] = a; d.Transparency = a end
end
local function tri(a, b, c, color, z, filled, alpha)
local d, k = getDrawing("tr"); if not d then return end
if k[1] ~= a.X or k[2] ~= a.Y then k[1], k[2] = a.X, a.Y; d.PointA = a end
if k[3] ~= b.X or k[4] ~= b.Y then k[3], k[4] = b.X, b.Y; d.PointB = b end
if k[5] ~= c.X or k[6] ~= c.Y then k[5], k[6] = c.X, c.Y; d.PointC = c end
local cr, cg, cb = color.R, color.G, color.B
if k[7] ~= cr or k[8] ~= cg or k[9] ~= cb then k[7], k[8], k[9] = cr, cg, cb; d.Color = color end
local fl = filled ~= false; if k[10] ~= fl then k[10] = fl; d.Filled = fl end
if k[13] ~= 1 then k[13] = 1; d.Thickness = 1 end
local zi = zord(z); if k[11] ~= zi then k[11] = zi; d.ZIndex = zi end
local al = alpha or 1; if k[12] ~= al then k[12] = al; d.Transparency = al end
end
local function resolveFont(f)
local u = ProjectState.uiFont
if u and (f == FontSystem or f == FontBold) then return u end
return f
end
local function textWidth(value, size, font)
font = resolveFont(font)
return #tostring(value or "") * ((size or 13) * (FontWidths[font] or 0.48))
end
local function trimText(value, maxW, size, font)
value = tostring(value or "")
font = resolveFont(font)
local m = FontWidths[font] or 0.48
local maxChars = floor(maxW / ((size or 13) * m))
if #value <= maxChars then return value end
if maxChars <= 2 then return "" end
return string.sub(value, 1, maxChars - 2) .. ".."
end
local function wrapLines(value, maxW, size, font)
value = tostring(value or "")
local m = FontWidths[font] or 0.48
local maxChars = max(1, floor(maxW / ((size or 13) * m)))
local lines, cur = {}, ""
for word in string.gmatch(value, "%S+") do
local cand = (cur == "") and word or (cur .. " " .. word)
if #cand <= maxChars then
cur = cand
else
if cur ~= "" then lines[#lines + 1] = cur end
if #word > maxChars then
while #word > maxChars do lines[#lines + 1] = string.sub(word, 1, maxChars); word = string.sub(word, maxChars + 1) end
cur = word
else
cur = word
end
end
end
if cur ~= "" then lines[#lines + 1] = cur end
if #lines == 0 then lines[1] = "" end
return lines
end
local function textTop(y, h, size) return floor(y + (h - (size or 13)) / 2 + 0.5) end
local function txt(value, x, y, color, size, font, z, centered, outline, maxW, alpha)
value = tostring(value or "")
if value == "" then drawSeq = drawSeq + 1; return end
if maxW then value = trimText(value, maxW, size, font); if value == "" then drawSeq = drawSeq + 1; return end end
local d, c = getDrawing("tx"); if not d then return end
local rf = resolveFont(font or FontSystem)
local sz = size or 13
local xPos = (centered == true) and (x - textWidth(value, sz, rf) / 2) or x
local eff = (color == WHITE) and Theme.text or color
if c[9] ~= value then c[9] = value; d.Text = value end
local r, g, b = eff.R, eff.G, eff.B
if c[3] ~= r or c[4] ~= g or c[5] ~= b then c[3], c[4], c[5] = r, g, b; d.Color = eff end
if c[10] ~= rf then c[10] = rf; d.Font = rf end
if c[6] ~= sz then c[6] = sz; d.Size = sz end
if HAS_OUTLINE then local ol = outline == true; if c[12] ~= ol then c[12] = ol; d.Outline = ol end end
if c[11] ~= false then c[11] = false; d.Center = false end
if c[1] ~= xPos or c[2] ~= y then c[1], c[2] = xPos, y; d.Position = v2(xPos, y) end
local zi = zord((z or 1) + 10); if c[7] ~= zi then c[7] = zi; d.ZIndex = zi end
local a = alpha or 1; if c[8] ~= a then c[8] = a; d.Transparency = a end
end
local function txtC(value, cx, y, color, size, font, z, alpha)
value = tostring(value or "")
if value == "" then drawSeq = drawSeq + 1; return end
local d, c = getDrawing("tx"); if not d then return end
local rf = resolveFont(font or FontSystem)
local sz = size or 13
local eff = (color == WHITE) and Theme.text or color
if c[9] ~= value then c[9] = value; d.Text = value end
local r, g, b = eff.R, eff.G, eff.B
if c[3] ~= r or c[4] ~= g or c[5] ~= b then c[3], c[4], c[5] = r, g, b; d.Color = eff end
if c[10] ~= rf then c[10] = rf; d.Font = rf end
if c[6] ~= sz then c[6] = sz; d.Size = sz end
if HAS_OUTLINE then if c[12] ~= false then c[12] = false; d.Outline = false end end
if c[11] ~= true then c[11] = true; d.Center = true end
if c[1] ~= cx or c[2] ~= y then c[1], c[2] = cx, y; d.Position = v2(cx, y) end
local zi = zord((z or 1) + 10); if c[7] ~= zi then c[7] = zi; d.ZIndex = zi end
local a = alpha or 1; if c[8] ~= a then c[8] = a; d.Transparency = a end
end
local function approach(cur, tgt, speed)
if ProjectState.noAnim or ProjectState.lite or not cur then return tgt end
local dt = ProjectState.dt or 1/60
if dt <= 0 then dt = 1/60 end
return cur + (tgt - cur) * (1 - math.exp(-(speed or 15) * dt))
end
local _gradCache = { c1 = nil, c2 = nil, steps = nil, cols = nil }
local function gradRectH(x, y, w, h, c1, c2, z, alpha)
if w <= 0 then return end
local steps = ProjectState.lite and 6 or 24
local C = _gradCache
if C.steps ~= steps or C.c1 ~= c1 or C.c2 ~= c2 then
local cols = {}
for i = 1, steps do
local t = (i - 0.5) / steps
cols[i] = Color3.new(c1.R + (c2.R - c1.R) * t, c1.G + (c2.G - c1.G) * t, c1.B + (c2.B - c1.B) * t)
end
C.steps, C.c1, C.c2, C.cols = steps, c1, c2, cols
end
local cols = C.cols
local prev = floor(x + 0.5)
for i = 1, steps do
local nx = floor(x + w * i / steps + 0.5)
local sw = nx - prev; if sw < 1 then sw = 1 end
rect(prev, y, sw, h, cols[i], z, 0, alpha)
prev = nx
end
end
function ProjectState.spectrumLine(x, y, w, z, alpha)
local colors = {
c3(69, 170, 242), c3(109, 145, 221), c3(151, 118, 196),
c3(202, 88, 151), c3(252, 92, 101), c3(253, 126, 83),
c3(253, 164, 68), c3(254, 211, 48),
}
local segments = #colors
local used = 0
for i = 1, segments do
local nextUsed = floor(w * i / segments + 0.5)
rect(x + used, y, max(1, nextUsed - used), 2, colors[i], z, 0, alpha)
used = nextUsed
end
end
function ProjectState.fadeLine(x, y, w, color, z, alpha, rev)
if w <= 6 or alpha <= 0.003 then return end
local segs = ProjectState.lite and 8 or min(26, max(10, floor(w / 6)))
local prev = floor(x + 0.5)
for i = 1, segs do
local nx = floor(x + w * i / segs + 0.5)
local sw = nx - prev
if sw >= 1 then
local t = (i - 0.5) / segs
if not rev then t = 1 - t end
rect(prev, y, sw, 1, color, z, 0, alpha * t * t)
end
prev = nx
end
end
local function lerpColor(a, b, t)
return Color3.new(a.R + (b.R - a.R) * t, a.G + (b.G - a.G) * t, a.B + (b.B - a.B) * t)
end
local function shimmerColor(colA, colB, phase)
return lerpColor(colA, colB, 0.5)
end
local function toHsv(color)
local r, g, b = color.R, color.G, color.B
local hi, lo = max(r, g, b), min(r, g, b)
local d = hi - lo
local h, s = 0, (hi > 0 and d / hi or 0)
if d > 0 then
if hi == r then h = ((g - b) / d) % 6
elseif hi == g then h = ((b - r) / d) + 2
else h = ((r - g) / d) + 4 end
h = h / 6
end
return h, s, hi
end
local function toHex(color)
local function b(v) local n = floor(clamp(v, 0, 1) * 255 + 0.5); return string.format("%02X", n) end
return "#" .. b(color.R) .. b(color.G) .. b(color.B)
end
local function parseHex(str)
str = string.gsub(tostring(str or ""), "[^0-9a-fA-F]", "")
if #str == 3 then str = str:gsub("(.)", "%1%1") end
if #str < 6 then return nil end
local r = tonumber(string.sub(str, 1, 2), 16)
local g = tonumber(string.sub(str, 3, 4), 16)
local bl = tonumber(string.sub(str, 5, 6), 16)
if not (r and g and bl) then return nil end
return c3(r, g, bl)
end
local IT = 1.4
local Icons = {}
Icons["target"] = function(ix, iy, s, c, z, a)
local cx, cy = ix + s / 2, iy + s / 2
circ(cx, cy, s * 0.44, c, z, false, IT, 26, a)
circ(cx, cy, s * 0.24, c, z, false, IT, 22, a)
circ(cx, cy, s * 0.06, c, z, true, 1, 12, a)
end
Icons["crosshair"] = function(ix, iy, s, c, z, a)
local cx, cy = ix + s / 2, iy + s / 2
circ(cx, cy, s * 0.4, c, z, false, IT, 26, a)
lineD(cx, iy, cx, iy + s * 0.16, c, z, IT, a); lineD(cx, iy + s * 0.84, cx, iy + s, c, z, IT, a)
lineD(ix, cy, ix + s * 0.16, cy, c, z, IT, a); lineD(ix + s * 0.84, cy, ix + s, cy, c, z, IT, a)
end
Icons["user"] = function(ix, iy, s, c, z, a)
circ(ix + s / 2, iy + s * 0.33, s * 0.17, c, z, false, IT, 18, a)
lineD(ix + s * 0.22, iy + s * 0.88, ix + s * 0.32, iy + s * 0.64, c, z, IT, a)
lineD(ix + s * 0.78, iy + s * 0.88, ix + s * 0.68, iy + s * 0.64, c, z, IT, a)
lineD(ix + s * 0.32, iy + s * 0.64, ix + s * 0.68, iy + s * 0.64, c, z, IT, a)
lineD(ix + s * 0.22, iy + s * 0.88, ix + s * 0.78, iy + s * 0.88, c, z, IT, a)
end
Icons["eye"] = function(ix, iy, s, c, z, a)
local cx, cy = ix + s / 2, iy + s / 2
circ(cx, cy, s * 0.15, c, z, false, IT, 16, a)
circ(cx, cy, s * 0.05, c, z, true, 1, 10, a)
lineD(ix + s * 0.12, cy, ix + s * 0.32, iy + s * 0.3, c, z, IT, a)
lineD(ix + s * 0.32, iy + s * 0.3, ix + s * 0.68, iy + s * 0.3, c, z, IT, a)
lineD(ix + s * 0.68, iy + s * 0.3, ix + s * 0.88, cy, c, z, IT, a)
lineD(ix + s * 0.12, cy, ix + s * 0.32, iy + s * 0.7, c, z, IT, a)
lineD(ix + s * 0.32, iy + s * 0.7, ix + s * 0.68, iy + s * 0.7, c, z, IT, a)
lineD(ix + s * 0.68, iy + s * 0.7, ix + s * 0.88, cy, c, z, IT, a)
end
Icons["settings"] = function(ix, iy, s, c, z, a)
local cx, cy = ix + s / 2, iy + s / 2
circ(cx, cy, s * 0.17, c, z, false, IT, 18, a)
for i = 0, 5 do
local ang = i * pi / 3
lineD(cx + cos(ang) * s * 0.25, cy + sin(ang) * s * 0.25, cx + cos(ang) * s * 0.42, cy + sin(ang) * s * 0.42, c, z, IT, a)
end
end
Icons["folder"] = function(ix, iy, s, c, z, a)
strokeRect(ix + s * 0.1, iy + s * 0.34, s * 0.8, s * 0.46, c, z, 2, a)
lineD(ix + s * 0.1, iy + s * 0.34, ix + s * 0.1, iy + s * 0.24, c, z, IT, a)
lineD(ix + s * 0.1, iy + s * 0.24, ix + s * 0.42, iy + s * 0.24, c, z, IT, a)
lineD(ix + s * 0.42, iy + s * 0.24, ix + s * 0.5, iy + s * 0.34, c, z, IT, a)
end
Icons["code"] = function(ix, iy, s, c, z, a)
local cy = iy + s / 2
lineD(ix + s * 0.38, iy + s * 0.26, ix + s * 0.18, cy, c, z, IT, a); lineD(ix + s * 0.18, cy, ix + s * 0.38, iy + s * 0.74, c, z, IT, a)
lineD(ix + s * 0.62, iy + s * 0.26, ix + s * 0.82, cy, c, z, IT, a); lineD(ix + s * 0.82, cy, ix + s * 0.62, iy + s * 0.74, c, z, IT, a)
end
Icons["sliders"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.14, iy + s * 0.33, ix + s * 0.86, iy + s * 0.33, c, z, IT, a)
lineD(ix + s * 0.14, iy + s * 0.67, ix + s * 0.86, iy + s * 0.67, c, z, IT, a)
circ(ix + s * 0.66, iy + s * 0.33, s * 0.1, c, z, true, 1, 12, a)
circ(ix + s * 0.34, iy + s * 0.67, s * 0.1, c, z, true, 1, 12, a)
end
Icons["shield"] = function(ix, iy, s, c, z, a)
local pts = { {0.5,0.12},{0.83,0.27},{0.71,0.78},{0.5,0.9},{0.29,0.78},{0.17,0.27},{0.5,0.12} }
for i = 1, #pts - 1 do lineD(ix + pts[i][1]*s, iy + pts[i][2]*s, ix + pts[i+1][1]*s, iy + pts[i+1][2]*s, c, z, IT, a) end
end
Icons["zap"] = function(ix, iy, s, c, z, a)
local pts = { {0.55,0.1},{0.3,0.55},{0.5,0.55},{0.45,0.9},{0.7,0.45},{0.5,0.45},{0.55,0.1} }
for i = 1, #pts - 1 do lineD(ix + pts[i][1]*s, iy + pts[i][2]*s, ix + pts[i+1][1]*s, iy + pts[i+1][2]*s, c, z, IT, a) end
end
Icons["box"] = function(ix, iy, s, c, z, a)
strokeRect(ix + s * 0.18, iy + s * 0.18, s * 0.64, s * 0.64, c, z, 2, a)
lineD(ix + s * 0.18, iy + s * 0.4, ix + s * 0.82, iy + s * 0.4, c, z, IT, a)
end
Icons["home"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.5, iy + s * 0.14, ix + s * 0.15, iy + s * 0.46, c, z, IT, a)
lineD(ix + s * 0.5, iy + s * 0.14, ix + s * 0.85, iy + s * 0.46, c, z, IT, a)
strokeRect(ix + s * 0.27, iy + s * 0.46, s * 0.46, s * 0.4, c, z, 1, a)
end
Icons["star"] = function(ix, iy, s, c, z, a)
local cx, cy = ix + s / 2, iy + s / 2
local pts = {}
for i = 0, 10 do local r = (i % 2 == 0) and s * 0.44 or s * 0.18; local ang = -pi/2 + i * pi / 5; pts[#pts+1] = { cx + cos(ang)*r, cy + sin(ang)*r } end
for i = 1, #pts - 1 do lineD(pts[i][1], pts[i][2], pts[i+1][1], pts[i+1][2], c, z, IT, a) end
end
Icons["swords"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.16, iy + s * 0.72, ix + s * 0.72, iy + s * 0.16, c, z, IT, a)
lineD(ix + s * 0.66, iy + s * 0.12, ix + s * 0.86, iy + s * 0.32, c, z, IT, a)
lineD(ix + s * 0.84, iy + s * 0.72, ix + s * 0.28, iy + s * 0.16, c, z, IT, a)
lineD(ix + s * 0.34, iy + s * 0.12, ix + s * 0.14, iy + s * 0.32, c, z, IT, a)
end
Icons["sword"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.82, iy + s * 0.16, ix + s * 0.38, iy + s * 0.6, c, z, IT, a)
lineD(ix + s * 0.22, iy + s * 0.56, ix + s * 0.44, iy + s * 0.78, c, z, IT, a)
lineD(ix + s * 0.14, iy + s * 0.86, ix + s * 0.3, iy + s * 0.7, c, z, IT, a)
end
Icons["globe"] = function(ix, iy, s, c, z, a)
local cx, cy = ix + s / 2, iy + s / 2
circ(cx, cy, s * 0.4, c, z, false, IT, 22, a)
lineD(ix + s * 0.11, cy, ix + s * 0.89, cy, c, z, IT, a)
lineD(cx, iy + s * 0.1, cx, iy + s * 0.9, c, z, IT, a)
for i = 0, 15 do
local t0, t1 = i / 16 * 2 * pi, (i + 1) / 16 * 2 * pi
lineD(cx + cos(t0) * s * 0.17, cy + sin(t0) * s * 0.4, cx + cos(t1) * s * 0.17, cy + sin(t1) * s * 0.4, c, z, IT, a)
end
end
Icons["users"] = function(ix, iy, s, c, z, a)
circ(ix + s * 0.38, iy + s * 0.34, s * 0.15, c, z, false, IT, 16, a)
lineD(ix + s * 0.16, iy + s * 0.86, ix + s * 0.24, iy + s * 0.64, c, z, IT, a)
lineD(ix + s * 0.6, iy + s * 0.64, ix + s * 0.52, iy + s * 0.86, c, z, IT, a)
lineD(ix + s * 0.24, iy + s * 0.64, ix + s * 0.52, iy + s * 0.64, c, z, IT, a)
lineD(ix + s * 0.16, iy + s * 0.86, ix + s * 0.52, iy + s * 0.86, c, z, IT, a)
circ(ix + s * 0.7, iy + s * 0.32, s * 0.11, c, z, false, IT, 14, a)
lineD(ix + s * 0.66, iy + s * 0.56, ix + s * 0.86, iy + s * 0.56, c, z, IT, a)
lineD(ix + s * 0.86, iy + s * 0.56, ix + s * 0.82, iy + s * 0.74, c, z, IT, a)
end
Icons["monitor"] = function(ix, iy, s, c, z, a)
strokeRect(ix + s * 0.14, iy + s * 0.2, s * 0.72, s * 0.46, c, z, 2, a)
lineD(ix + s * 0.38, iy + s * 0.84, ix + s * 0.62, iy + s * 0.84, c, z, IT, a)
lineD(ix + s * 0.5, iy + s * 0.66, ix + s * 0.5, iy + s * 0.84, c, z, IT, a)
end
Icons["grid"] = function(ix, iy, s, c, z, a)
strokeRect(ix + s * 0.16, iy + s * 0.16, s * 0.3, s * 0.3, c, z, 1.5, a)
strokeRect(ix + s * 0.54, iy + s * 0.16, s * 0.3, s * 0.3, c, z, 1.5, a)
strokeRect(ix + s * 0.16, iy + s * 0.54, s * 0.3, s * 0.3, c, z, 1.5, a)
strokeRect(ix + s * 0.54, iy + s * 0.54, s * 0.3, s * 0.3, c, z, 1.5, a)
end
Icons["layers"] = function(ix, iy, s, c, z, a)
local cx = ix + s / 2
lineD(cx, iy + s * 0.12, ix + s * 0.86, iy + s * 0.34, c, z, IT, a)
lineD(ix + s * 0.86, iy + s * 0.34, cx, iy + s * 0.56, c, z, IT, a)
lineD(cx, iy + s * 0.56, ix + s * 0.14, iy + s * 0.34, c, z, IT, a)
lineD(ix + s * 0.14, iy + s * 0.34, cx, iy + s * 0.12, c, z, IT, a)
lineD(ix + s * 0.14, iy + s * 0.56, cx, iy + s * 0.78, c, z, IT, a)
lineD(cx, iy + s * 0.78, ix + s * 0.86, iy + s * 0.56, c, z, IT, a)
end
Icons["gauge"] = function(ix, iy, s, c, z, a)
local cx, cy = ix + s / 2, iy + s * 0.62
for i = 0, 10 do
local t0, t1 = pi + i / 11 * pi, pi + (i + 1) / 11 * pi
lineD(cx + cos(t0) * s * 0.36, cy + sin(t0) * s * 0.36, cx + cos(t1) * s * 0.36, cy + sin(t1) * s * 0.36, c, z, IT, a)
end
lineD(cx, cy, cx + s * 0.2, cy - s * 0.22, c, z, IT, a)
circ(cx, cy, s * 0.05, c, z, true, 1, 10, a)
end
Icons["map"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.16, iy + s * 0.22, ix + s * 0.38, iy + s * 0.14, c, z, IT, a)
lineD(ix + s * 0.38, iy + s * 0.14, ix + s * 0.62, iy + s * 0.22, c, z, IT, a)
lineD(ix + s * 0.62, iy + s * 0.22, ix + s * 0.84, iy + s * 0.14, c, z, IT, a)
lineD(ix + s * 0.84, iy + s * 0.14, ix + s * 0.84, iy + s * 0.78, c, z, IT, a)
lineD(ix + s * 0.84, iy + s * 0.78, ix + s * 0.62, iy + s * 0.86, c, z, IT, a)
lineD(ix + s * 0.62, iy + s * 0.86, ix + s * 0.38, iy + s * 0.78, c, z, IT, a)
lineD(ix + s * 0.38, iy + s * 0.78, ix + s * 0.16, iy + s * 0.86, c, z, IT, a)
lineD(ix + s * 0.16, iy + s * 0.86, ix + s * 0.16, iy + s * 0.22, c, z, IT, a)
lineD(ix + s * 0.38, iy + s * 0.14, ix + s * 0.38, iy + s * 0.78, c, z, IT, a)
lineD(ix + s * 0.62, iy + s * 0.22, ix + s * 0.62, iy + s * 0.86, c, z, IT, a)
end
Icons["crown"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.14, iy + s * 0.72, ix + s * 0.2, iy + s * 0.3, c, z, IT, a)
lineD(ix + s * 0.2, iy + s * 0.3, ix + s * 0.35, iy + s * 0.5, c, z, IT, a)
lineD(ix + s * 0.35, iy + s * 0.5, ix + s * 0.5, iy + s * 0.24, c, z, IT, a)
lineD(ix + s * 0.5, iy + s * 0.24, ix + s * 0.65, iy + s * 0.5, c, z, IT, a)
lineD(ix + s * 0.65, iy + s * 0.5, ix + s * 0.8, iy + s * 0.3, c, z, IT, a)
lineD(ix + s * 0.8, iy + s * 0.3, ix + s * 0.86, iy + s * 0.72, c, z, IT, a)
lineD(ix + s * 0.14, iy + s * 0.72, ix + s * 0.86, iy + s * 0.72, c, z, IT, a)
end
Icons["flame"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.5, iy + s * 0.1, ix + s * 0.72, iy + s * 0.4, c, z, IT, a)
lineD(ix + s * 0.72, iy + s * 0.4, ix + s * 0.78, iy + s * 0.66, c, z, IT, a)
lineD(ix + s * 0.78, iy + s * 0.66, ix + s * 0.5, iy + s * 0.9, c, z, IT, a)
lineD(ix + s * 0.5, iy + s * 0.9, ix + s * 0.22, iy + s * 0.66, c, z, IT, a)
lineD(ix + s * 0.22, iy + s * 0.66, ix + s * 0.34, iy + s * 0.44, c, z, IT, a)
lineD(ix + s * 0.34, iy + s * 0.44, ix + s * 0.44, iy + s * 0.56, c, z, IT, a)
lineD(ix + s * 0.44, iy + s * 0.56, ix + s * 0.5, iy + s * 0.1, c, z, IT, a)
end
Icons["skull"] = function(ix, iy, s, c, z, a)
circ(ix + s / 2, iy + s * 0.42, s * 0.3, c, z, false, IT, 20, a)
circ(ix + s * 0.4, iy + s * 0.42, s * 0.06, c, z, true, 1, 10, a)
circ(ix + s * 0.6, iy + s * 0.42, s * 0.06, c, z, true, 1, 10, a)
lineD(ix + s * 0.36, iy + s * 0.72, ix + s * 0.64, iy + s * 0.72, c, z, IT, a)
lineD(ix + s * 0.44, iy + s * 0.7, ix + s * 0.44, iy + s * 0.84, c, z, IT, a)
lineD(ix + s * 0.56, iy + s * 0.7, ix + s * 0.56, iy + s * 0.84, c, z, IT, a)
end
Icons["lock"] = function(ix, iy, s, c, z, a)
strokeRect(ix + s * 0.24, iy + s * 0.46, s * 0.52, s * 0.4, c, z, 2, a)
for i = 0, 8 do
local t0, t1 = pi + i / 9 * pi, pi + (i + 1) / 9 * pi
lineD(ix + s / 2 + cos(t0) * s * 0.16, iy + s * 0.46 + sin(t0) * s * 0.16, ix + s / 2 + cos(t1) * s * 0.16, iy + s * 0.46 + sin(t1) * s * 0.16, c, z, IT, a)
end
end
Icons["bell"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.28, iy + s * 0.7, ix + s * 0.3, iy + s * 0.42, c, z, IT, a)
lineD(ix + s * 0.72, iy + s * 0.7, ix + s * 0.7, iy + s * 0.42, c, z, IT, a)
for i = 0, 7 do
local t0, t1 = pi + i / 8 * pi, pi + (i + 1) / 8 * pi
lineD(ix + s / 2 + cos(t0) * s * 0.2, iy + s * 0.42 + sin(t0) * s * 0.2, ix + s / 2 + cos(t1) * s * 0.2, iy + s * 0.42 + sin(t1) * s * 0.2, c, z, IT, a)
end
lineD(ix + s * 0.28, iy + s * 0.7, ix + s * 0.72, iy + s * 0.7, c, z, IT, a)
circ(ix + s / 2, iy + s * 0.8, s * 0.05, c, z, true, 1, 8, a)
end
Icons["compass"] = function(ix, iy, s, c, z, a)
circ(ix + s / 2, iy + s / 2, s * 0.4, c, z, false, IT, 22, a)
lineD(ix + s * 0.62, iy + s * 0.38, ix + s * 0.5, iy + s * 0.62, c, z, IT, a)
lineD(ix + s * 0.5, iy + s * 0.62, ix + s * 0.38, iy + s * 0.5, c, z, IT, a)
lineD(ix + s * 0.38, iy + s * 0.5, ix + s * 0.62, iy + s * 0.38, c, z, IT, a)
end
Icons["rocket"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.5, iy + s * 0.1, ix + s * 0.68, iy + s * 0.5, c, z, IT, a)
lineD(ix + s * 0.68, iy + s * 0.5, ix + s * 0.6, iy + s * 0.72, c, z, IT, a)
lineD(ix + s * 0.6, iy + s * 0.72, ix + s * 0.4, iy + s * 0.72, c, z, IT, a)
lineD(ix + s * 0.4, iy + s * 0.72, ix + s * 0.32, iy + s * 0.5, c, z, IT, a)
lineD(ix + s * 0.32, iy + s * 0.5, ix + s * 0.5, iy + s * 0.1, c, z, IT, a)
circ(ix + s * 0.5, iy + s * 0.42, s * 0.08, c, z, false, IT, 12, a)
lineD(ix + s * 0.32, iy + s * 0.58, ix + s * 0.2, iy + s * 0.78, c, z, IT, a)
lineD(ix + s * 0.68, iy + s * 0.58, ix + s * 0.8, iy + s * 0.78, c, z, IT, a)
end
Icons["leaf"] = function(ix, iy, s, c, z, a)
lineD(ix + s * 0.2, iy + s * 0.8, ix + s * 0.8, iy + s * 0.2, c, z, IT, a)
for i = 0, 9 do
local t0, t1 = -pi / 4 + i / 10 * pi, -pi / 4 + (i + 1) / 10 * pi
lineD(ix + s * 0.5 + cos(t0) * s * 0.34, iy + s * 0.5 + sin(t0) * s * 0.34, ix + s * 0.5 + cos(t1) * s * 0.34, iy + s * 0.5 + sin(t1) * s * 0.34, c, z, IT, a)
end
lineD(ix + s * 0.34, iy + s * 0.66, ix + s * 0.66, iy + s * 0.34, c, z, IT, a)
end
Icons["gamepad"] = function(ix, iy, s, c, z, a)
strokeRect(ix + s * 0.14, iy + s * 0.34, s * 0.72, s * 0.34, c, z, 5, a)
lineD(ix + s * 0.26, iy + s * 0.44, ix + s * 0.26, iy + s * 0.58, c, z, IT, a)
lineD(ix + s * 0.19, iy + s * 0.51, ix + s * 0.33, iy + s * 0.51, c, z, IT, a)
circ(ix + s * 0.68, iy + s * 0.47, s * 0.045, c, z, true, 1, 8, a)
circ(ix + s * 0.76, iy + s * 0.55, s * 0.045, c, z, true, 1, 8, a)
end
Icons["search"] = function(ix, iy, s, c, z, a)
circ(ix + s * 0.42, iy + s * 0.42, s * 0.26, c, z, false, IT, 20, a)
lineD(ix + s * 0.62, iy + s * 0.62, ix + s * 0.84, iy + s * 0.84, c, z, IT, a)
end
Icons["cog"] = Icons["settings"]
local function drawIcon(name, ix, iy, sz, color, z, a)
local f = Icons[name]
if f then f(ix, iy, sz, color, z, a) end
end
local IconData = { ["target"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAB0klEQVR4nO2Y8VHCUAzGv3r8ryPgBLIBZQPdACZQJ8ANdANlAtmAMgF0A0bQCWoezWGtpMlL4ax3/d29612bl/eRvqR5DNBxBug4vcC2dF7ghfSgKIopjU0hM4UR9iWxafKVSA7p8gqFhICBoMJgdkfulvWbUgTvobOGHYvt/NhNKYLVX/xJ44nG9sfEJMkQAblMa7dG7Pey4jPxCHykeS84A7TMA12eD2KOCLRk8RbnQ/Xd18G2nEQg7aWw4ccoN34gvLo1banW20MSOENZB9dN2UrCrlBu8qnw/A1lkn0cex58k00oQWNe87cNnLC4Fb6jJhGiOJFEalzATyg9mjiwjbtMuSLIe26DOK4pijtE4o1ginhu4cCbxZZXW2cIB/+3H1Tw1LcdHHgjmCGeJRy4IshfiEXElIUng/drwQkX6ozGjWKa00hPWqgrZ4iVNJEXTNEcyYUmLqzRdMaxNKwTrXsm8yHKOldtFpbaa+Uu+xAEb8OqwkLO0nX3DWtbLGXG81mzkmoGlgjOOWnqx86Yc3FIiHHtVgrD+VvK4iBGq28ZiZzAJm4FPVo5+RtZBYaS8Q6FP/vrgw3DGSGHzAx2mmxzSdxeCzpOXwfb0gtsyxfbX+Kilrt4bgAAAABJRU5ErkJggg==", ["crosshair"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADMklEQVR4nM1Y/3XaMBA+8vi/bBB3gqQT1J0AMkHoBJAJSicITFAzAXSCOBM0TFBnA5iA3odPRIiTLBvxXr/39Kwn63Sfdbofcp/+c/QpIfb7/T2evV7vjRLhhhKByY358QdN+kmQjCBjbPVHlAhJTWxhQInQowvAphzyA+cul6chtuWGc1jiyWfyN3VEa4JMCiQmVJs0ixSruBXcFkx2Sy3QiiCTw9l6pnhiLipuT0xyHSsQTZDJgdhUebXjthbllYxl0vBBnxSZOZN8olQEmdwvOvVS4JXbjBWVDbI55nH76rwqWPY7XUqQFcypPnMG2LFxGzPJOtjNgk53FGdySl0JyqIrOiWXd80UkmlKh+RD6GN7gcXgrcgMWQpyAZIVty8+7w5lkimdeuvYRw5KuU1wVqVNTF52IWuMraGMdOer5/tesIK/9EHwlRfOlTnY5Wc6dyCDguqwslVkS/pwnIrnfNYWuPGQG9Hp7s1IJ/cSIEfy7kXmuphb/Ux0xhGkOm0Z7DyhZO7Mo8Bac3dQHGPnzIsmmFv9Mw+T8/VI8XhkmUwZX3t0HnFjKcUiMAfMdmfNqRS5nNpDM2Fl9e+MfnAxg30hhx0pSEeljMWY1kWmjNnOg3OaSz9nTht4/LXqwWQ4mFhiE/Ii6jbkWPvwZopcl2BdKWO2d+9ENzg8mJh73EEeKEjM7MSoTFm4pPbQ0llm9d+0WOvz4tLqD92X8nVLiseSZSplfOjReYSPoG3CgZRMLpCeNtSMDSmpTNYceHSGCUoQfbeGfihz4IE5hXcS73JPIWCv+e6raEK5eOYs4i2LJAgjzpnwg91Ye8yqlXE/ee6MWhIciKJbGcIufEtUbiEZGPPCUvetyy0RsM/OoTjwlVEdyQHT0E0v+GdBTLqgc5Ijak9upJBbNF0dGn99yJ1h6ZBcSc7Mm+QxR/L7ik7JLZvuIwf9FAnl8mQA84SunQNFZhFDrhVBIQmFIHpL3QCHmF7l4m4g3o2vH1M8URArqL6wb6kFLv15ZGJfLk9zU0PiRzgqqc6x0TuWlKANp8BQL1ldcK16sJUZQ0j5h7Xw9C9CMhMD1/iJnpTgNfAPyQ1XINTuz3oAAAAASUVORK5CYII=", ["swords"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADGUlEQVR4nM1YsW4TQRAdO1FEFQIlTSwRatJScWlRivwBxx84X5D4C7C/ALuFJgWijVMhKpI+COcHgNAQIUXOG9/a3tubm9293EV+0mh1d7Mzb3d2ZndvnVYc67TiKBCcTqdbaF4KuletVmtCNQA+Omi2hU8X8PHHftFyOh6jOaJy9GHgkO5H7j2arqLSg49jcgmamftNfgxh4B1VAHx8QJMGqD6Zz2TberlLYUiNoyhEkMtxaVM1RJGMJJeDjyCvtz3ISPgWRFIhNzK21TXtKzPnWAtjtGM44ue3VCRJZWtSI4c+qdEhDb4ZXBAyBoNn0lSElBRyrg8JdhZ30PwUdHJZC71hiVFXjyvClkZOmeFiFpsiPBCUczMUMZPXVI3cwC7WuRDjQzfEeSDJA8iVIdoLJDcyHJacBKWYMAbpOba9iWNDTJLQMDaYOEsupKDumQxJHBdqmWlgJtXEiSbYAMnSxCn1T4FoMnE0BB8W6g43bwyQI0hCml+KRB0zSdmGcErLhDlE3z7FEDQHWD79diAnMDCokeR/yIb1fIZ+iaCnnmb6lvEEznbnzjmMIacbRW/DeZ5QCbQ12BGcR681RW+OC1LuKBrBE6ru3K1/HyG3gt4lJHFvcjYa30kgnyCfBV//IM80cl6CNZHkmVtz3v2FbPvIMUJ3kkvhU2i414R3m5RVCC+8BA2JnZLPTHJRvwISwu3rvXS5fxa49s3DxI54lCn5sTiiczlC842KpYTDuin0HVJ2s1v4tUPvEuTqnpjHX5CngkEO945E0NxrvlPxSDVLCMrXVhu2rzFs7c0/tC1yHYsckUyOR/eC8neXnjXiVCDHA5plq7IEbF+JieQM7gyyo8ckw730zIzY4TAb/6nVh4twoc4pGc+4hn4pQV4/XyGPnE4cguchZQE2eFfgc98E0pX6mMH9oGKUbiCv0OdcJGg6vyG5sJaeOGJhBuGWGd609+Hji/2yUGaMwj5lo7Hhnb174EYiN+NT1sOEe0zZmjyDHISEOAQmxLzXv6bs+J/YYQ0iaBuri1gV29En6ofGyv/lvwPj/9coBGLaTwAAAABJRU5ErkJggg==", ["user"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABjUlEQVR4nO2W7U3DQAyG36AOUCYgTABskA2ACegIYZNugJgA2KAbQCboMQHpBMFuXLWq2vuw0yg/7pGstLmL7tF92TNMnBkmTha0kgWtDCbYdV1Jjxv5+1sUhcMAXMEIiT1RrOknx0pize+4DUYKGCCBN3osAt2WNJuvUKKeQZKrEZZjaumrQjWDNOAc/ZLOIz9pKW5pJlskop1B3luxcpC+qv2oPcUl0imhQCt4j3Q036iX+AfpaL5Rz+Bogup7kE6ywz5zhGjoBI+6xAyfyk1EP+6zgBK1IM0IL1kFvyS3VdJXhSkXy8AlBaey5qCpkXelRW47BiZOLlitmASlSL3DPkvsnrt9t4KxeE3egyT1iP6KqRCfXx162U+S/UICUYJSXr1Q1FAm/QMcxZLiPab8CgqSHC/bxwBixziK59A15BUUuW9clgefZEjwD2mFqYaWBK/PNZ7NJDJ7l5Zj5jLWSXzXzBhywbEmf1H7igWHuHLKykbGOknokJQY/no5xvkyTa5mrGRBK1nQyj9JfnKIuCLRswAAAABJRU5ErkJggg==", ["eye"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACl0lEQVR4nO1Y4XXaQAyW8/K/bFB3gpIJYiYoTFAyQdMJ4k7QMEHMBIEJ4k6QMAF0A5iA6sOye3F8J9nOy+OHv/cUBSzpPutsScclnTku6cwxEOyLgWBfvAvB4/E4ZvWp9vUhiqIX6omIOkAIfWNJRELIRdZdCLciyMS+s7plGVM3gOA9E11aHUwEmVjC6jd1J1YHiP5korlmqBJkcg+s5mTDX9GfjfYZk7wJGVz4LjCxEcsz6eSwXZOoQCyCG5/ItRDmWANr+QwiHzlWTxTeUmRrqj348kKtKJxVxMBN7kkjaCS3YUmaAnpIImbO8pVakmwi+MhqSmFcuZljn5jVHUvsLLZgm51jgxt+VuKu2GfmJchBQOxRCfKLg6SOz5zVg8f2hm0zxxZ+dxTGjH1WbwjKNmxZRkqAL2VmpPw8KfaTspxIpreK/V7WOG21+xbfGsht3G0THw2VjfhuFPvRKx/8aZG9P7xIUn5gvyMZIGWn9MlZXSsuVRYvHNYauY9ExedEUFK/pvbQtstqU8eyfJTcZ/De4Hhdq/oWn8pGfLXtBbLyn4qgvGkLg/PU8cko3M6Wbpkhvb4CC3eIqNdB3CGKbKgt7ago1HvHL6WiZ5d+aINZrV4iNgp1HIgNv7Ebu6mToOLn9HZCdtE4hUido1opKq9pU9GBivb5qrf7hgVLW1JHpRbkgKumwaNx3BJD9MQD+YFRaSvdxEcsgQ3pmZv5pqLgwCqZzCg8hQB4ZnIqnl8AfgkZOhPLPDSyWSZqLJKy/KD3BSpGqo1s5kOTZDOl4jTXB2sh9mIxbn3slDcVzRw1zXr2OJUdKl6sHbVAp3NxCdn+hP5P37HonWhkKbdO3k3oRfAjMPx41BcDwb4YCPbF2RP8B6CM/vT50VvlAAAAAElFTkSuQmCC", ["monitor"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABL0lEQVR4nO2YgQ2CMBBFr8YBdANGcAN1Ah3BDcQJ1AnUDVzBCcQN3EDZgA3wH7aJIhDhYsHkXnIpVggv9Lhw7VPH6VPH+S/BNE0nGGaIEbXDFXEyxkRuwrgDyIUYdtQNVpDc80EmCLkAw426xRCSiVvioOCEC/llnPvNaRaVvSTT1zzwgc3/c36+V3Syb7mqe2odlKKCUlRQigpKUUEpKihFBaWooJTCD1Z83Q7IM7Yv+qDsCZ5xAXdVd/JDgAiL/nCCSW6eG5YjtUvmlC0x+gFumH13cVWcrNNbDs4RB0RM7RFbh4WbMCSkrF20iNtXrYNSGi2xrZNrer7tAyrfDeNET+y45b0W8iTINXJJ9ThAMKx5jdclrv30mKaCGzt+u9EZIfbUAHGZ+TVaZqQ8AFdjQ0+y/ANkAAAAAElFTkSuQmCC", ["palette"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACqUlEQVR4nO2Y/3XaMBDHv/D4v2UC3AmSDeJOEDoBZoKECUInCJkgsAGZIGaCwgRVJyhMQO/C+SGrkixLcZrXl89794z1i69POunsAd45A7xz/n+Bx+Pxii653GZyVXLdkm16vd4ekfQQAYmaiKgx2eeALiXZmmzVVmwrgSQsp8sdzh5rC4tbkD2ECg0SSMLYS/dkBV4HRfaNRG6bGjYKFHHPZJd4feYk8ruvgVegiPuJsHUWy4xELlyVfVeF5rkuxTH39F+Fq7Lv6wj/tM7IhmRfyJ4s9U9SN5S2Ph5JZGarsE6xROsz3PB2UWjt2cu84EdS9IvsUo9UarOky8QzZkntv5qFLg/ewU+p34gQpRUpyzZSwk9ODzFGk0BZDzkaBjP6sAdHWtFIypx9HBRoEhg40IQE3LAIWTuPOB9zkN8v60ra3MA/vRXX5oP9tQapwW90H7k+eANfVzc1D0pw2MQdyDZkO6Szk7EOjvrazmFOcW7pwANxROZk3HmKeKY8Bo8lQg5NHfpoZkEDquqGfi8R58md9K3GUTglDiY1D5r5YGbpoCxlMfndPrCslkCEeLAWfRK1F2jPheW0uLa0U/rNwFcp8AbKpwpHFgfQLeKinPv8oLF4WtlzvCnnlnYlPAJd5IhPUnVY5NxTv9HXO2NOcYl/y61ZUBNI6ksEhH5HzGwZti1I1nh7Vq6k1SawxNvBszXVUzcTVz5Y0uUK3cH54hKnQ8C7p8YmrKHwsaiMsn3I21yF86UpIAMOYZjyVYHxnSQc8qnZyxyJhLx2KrJPiP0DAgn0Gwbn6cmQ4EnX21oojcmCiMzJVojAPLraEpLNvIiUvYpfCzcI5wGJxH5+K3D+/OZan/wg49QoTlrAjOyZnAVzQGU4pVJbPXtOIVlg13x8RE/lD10o3SFAI/ONAAAAAElFTkSuQmCC", ["settings"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACVElEQVR4nO2Y7VHDMAyG33D8ByYg3aBMQJgANiBMQJmAMAF0gnYD2gloJ2g7QdMNYIIiEfWucWXHTvp1PZ47Xe4ix1ZkW5J9jiPnHEfOaRu4XC4v6fFK0rY0mZK8RVH0jZpEaAAZOKDHfUWzIRn4gJo0neLrLbWx0tSDS5925MHa45yhJrL+tt7W5Kyi45Tki6RHYm6EkHX1YPTblj6579T1YeQwjg2aGK9HJH0ZMHThD0RSksTQ3dAqmCLQwC+lo10xIgPvNIU6xWQceyfB/khkzA02PCgLmqc2xn7JyYst86XmwQ72bxwTk3My82XJg+K9OUloWBij2Dz5ajAUm+EWYXBKbK2nRtNAbedW8UQd9jWFrCvWXcCf0o4uTbEouvDnxWac9LcKK750zXCjhhnPP19QZzE88CgqfkhS+aESapiRhjzdM9j5gD99h47HaGvGMdZURx/kKCK/jSn8yR26gYylcvQVtdWDtG5iuNdNG/7EDt29jKXiSnWTCiOe4c+jQ/cX2mypbsNAavhOj09UB2uO/J2KNqufrap8eKxPGbvENgJ1hxZ512FcD2GZqbW+abRUx8qQyM+MoKe6BGFwPIytqQ6FkRmKo+Qh4CNqtv7CVm5xjGt0GquBmpk2Nom4t3Lx7wB1TFfJP0J4uVSXMTkm0RSuU532R1z3PZEMEc5Qvh0rutT2kfNALUdClpzkY70UEl0PfpRqRglnq8q97yzZUBNJT3PP5ld1L5BO9+pDWHi0maEBTQ2cbqmNlaZTzEE9g/sCMzvYBeY++L9Eb8ov04vnmGZXJSUAAAAASUVORK5CYII=", ["sliders"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABa0lEQVR4nO2YgU3DMBBFf1AG6AhhgnYDnA0YgU5AR4ENGIENaDdIN/AGwAThrBgpRL7Qsy8mVH6S5TiJ7eudfT9ujZVTY+UUA1NZvYE3yEDf9w/9wBuEVMiAs2zUbKuqOl7Ydf0hDnqQfvCOqkcqDeI4k5cOo/HGHuyofEzet1SeqU83HYjzoFsrG8Qzt3R2zH1D5XZ6s46YYCmCc3IGGiouRA3i6GaenREO8VPo5bKLU8mSqIm9r08S7znEIfZqYNykNNkLFkZkIBlnMKSgoTOBhfmfXzMzSsImb+rj0sQWcVgwSsJJ3TsuUJJxiKnPkao7xGNpuOtXEudVLoxz6vEbFhpKUnZxAJGSeBU4+eYeGVALkU9N3+FvQykjBk0tdptq48sBSmiuwYa5TkKqJD+gMLbMo63wiGlRlCSdrGeST8iUxWLpM8kkxO7L2UABzTRjmesktBP1q2/eayXqv9gMIsofmKkUA1P5Am/6eNUAfuXtAAAAAElFTkSuQmCC", ["shield"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABkUlEQVR4nO2Y7VHDMAyG3/T6n45gJqAjtBPABrgTMAKwQdggbEA3CBvABJQJIBME6aL8AeIvJbnc1c+dLpdasd9KbiN5jYWzxsI5H4Ft2xq6XMvtsSiKE0aggAIStUEnypLtfg2/sJHQZyhIEkjCdnS5Jbsh23jcv9GJfSKxb4gkWKCkkEVZMoM0TmQlIraAV6BE6x5/U6ilj2rtcnIKJHH8be8wLY8k8mFocFCgpPQD83A5lPKV4yGD+TBDA/lNoiUL1JIFaskCtWSBWlzvYq7zvjCHCGJobOV4iAvNT0yPcw1XscDUmJ7aNbh4gSEVNaf6AtPQ0FZy9jS+CDIVpqPyOYRE0NCFu7Gxo9iQbX3NkzeCMkGJ8SlDOruYtpOjeIVxeCdx2xDHkD3YY9GlRUsjcwURLFBOBSz02JgThpgIskhutg9I5yBzhK+JBGg/8v6pEf7L5rTuUs5moiLYIwsZsmOAO/uYFHFMkkCGiwkyPt3ak73+48Kf7dlHCo+0dTAS8odu5bZaxAHmHOSSX8sPoqdhh7W2pFsAAAAASUVORK5CYII=", ["folder"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAA5UlEQVR4nO3Y0Q2CMBSF4VPDAG6gIzCCIziCbgAbuIFxAt1AN8ARcBM3wNuEGNqQiD2Q3of7JaSh4eEnTYBSQLkCylkgywJZo4Fd121l2GCal3PujYW4eELiKhnOmM7HnSTyggUEgRK3k6FBmptEHjGzVXS+R7qD3OAVM4sDS3B8ZKq7HOWvwJz86jUSuR5Oagr0fFw1nND4HAyWWWNgsMT2qmNZIMsCWRbIskCWBbIskKU+MP6ibpFf0BAHPpBf0BAEyr72KUONfOq+4cuNXdXvrNgt6L/asV8oDsrZY4ZlgSz1gR+92GNIRtdWlgAAAABJRU5ErkJggg==", ["code"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABW0lEQVR4nO2X0XHCMAyGZR/vpRukG3QD0g06QtigI3QTugnpBG0nKCOQCVyJ6sGAQyQL5/Lg787nxOff+jBHHFawcFawcKqglSpopQpaqYJWPCgJITTYNqCEMpQFJSpBLPCM3Re2Hq/3ihzN7SnLa4hx0om8MBVa89DgnFsLsyG6PWJ7wey3JCvawYQc8QZyttE1rbGX7uSk4IjcFnfgA4Tw3CxJX1rOKunnkLNI+rnkciX9nHI5ki4h+ItdA4XkLmp12O2ioQPWeornpL7iS2n1qaFgM1E7KfiKbYjuO/ykO7gzvGYXDQ1c+4wrQX7Ct1BQckSuTZ0uyV9xSUmN3KhgKUmt3E3Be0vmyE0KTki+gxCe24FS7lQfhPBDtMf2wENHLPAozIYcOUL8wprYyR+Q8wkZcqe6oIRf2xss0itilGvh/6Q4KGJ6wbmpfzutVEErVdBKFbSyeME/RofOMy1Qvr4AAAAASUVORK5CYII=", ["zap"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABnUlEQVR4nO2Y4U3DMBSEL6j/YQQzAdmAsAEjsAHdgG7QjACTECaATgCdAJggPLcOMiZW+/yuUn7kkyyndpOcznkXKwtMnAUmzizQyuQFnuEE9H3fSvuUdgEjFciIqFq61/DzsqqqDxg4hcBn6ZrdxQUYoT6DIu4WQZywAQF2kayj4y8QoAkU91bSuWioAwGKwFCt98nwpBxspaWR8gYC5ipLYiXGHDEehsDfWPlzYULEeExLnMRKDCViPNZncJ0ZF+39dWZuI+YeXUDFyxBi5QF6bkRgd+yfiwSGWHnH/8o9xIuIazQnlC7xCnpxw3kq1A6Kew5797Q8iXt3UFIicDRWDvAtrS7JRdUSh1BuoKctDW2Vg6E46sy0f91djYxvsXev6N2scjDcpBub88GXOW1ZKm53T5DICFTHSgpru+UyU0sYYW233MiYjxXzloslMC0cHytm9zwsgelbpbUURgylSOQZ7KQbdi9bEedAguXgeXRMWdoBloNDxJhjJcXsYBIxVPc8jCX2xeCr9pERKyn0bzNs5g+YVmaBVn4A2WB+p41hgdoAAAAASUVORK5CYII=", ["box"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABOElEQVR4nO2X7Q2CMBRFb43/cQMZgQ3sCDqBjuBIOoGO0BEcQTfQCfA2oNZa1ORhK0lP0vRTe/KARxnjzxnjzxmmYF3XS1aapUQcjixGKbX1J5Q/QLkdqznSsKfkwh0YuR3KrZFOzjJvHe74l7hy2heWA+Jg9y2c9h1fsHTaB4ZbIwKMmmE1CzjkNCNm0IIF740Z4lB0TfiCBo+btWr7sTFu5ylRM2IlmtRSIA02tVXMHsfbwFOibic00qFdOYsKrWIkaySAci8+Oc1IyYJSRpCxVR+wayBA9BSHnrq+/08UQe6r+1jzjj7yoPkwr/EloQjmRC0lC0rJglKyoJTBHhYuiE9wzy5Bg/iY0GDXq65sfzBFHE4IfDBZOo9LlJywWqF52U/wG85oArGh3Dm04KvzXEpympFyBbWzVjAPa8AQAAAAAElFTkSuQmCC", ["home"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABV0lEQVR4nO2XjW3CMBCFnysGYIRuUEagE1TdIN2go3QD2KDtBAkb0E2yQfosXVRo/s65AyLhTzoZcTb5dHEOZ4WFs8LCyYJW7kuwaZqXOIYQvuHEA5yg3I7DVwz57EKAEcqsOXwytv9SFeOV1axhwCQociVjMzDlyHi2SM6+xZSLUmNykFwpc2cxq4IncmvlkljBWMkjEkmuIOW2SJODzC1lbRJJgrxAgXS5llaySFmkFpQf9mgfuxRJ1R6UvlbAlz335NvUpMkKXkguUmga+mAFRxqwNxVGGnqvoKIBezPY0Du3+AZywF9D73SHvj34iOvKtWzk2md0BGO3DyfwqwMuxyGc0/mnySdqKx6CP4z3gdwH4wkGPARr7p2qL8Gn0nRYjeQ9aCULWsmCVlzaDOYzuVZz5N8b8mM5TV595I8njb4XpXrqVdKyVi14S/JTbCULWlm84C907Xp979DbtQAAAABJRU5ErkJggg==", ["star"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAB2UlEQVR4nO2Y0XHCMAyGlR7vpRMQJmg6Qc0E7QiMACMwQVeADcoE0AlaJiCdoHQC+usqrhRsx7INl4d8dz4H25F/ZEV20qOW06OW0wlMpROYyg1lYr/fVyhbKRVloqBMQNQKlZGf66IoRpSBLALFY+8nzQ8Q+UGJ5FriSWCbmmQPwnt9VF+Wrh3KEF7cUQI5PDh2tPc9fcHk8OAWVenoruHBISWQ5EGIeya3OKaUMdEEeRCTlKgGh0npTxRP3pTz+El+Pbo+xOQmJD4Lj6gXyvQkNsAi5xA7tXVaBUKcQbWi62LNm64Y5IHfdD14rtrWYRUosWHoOiJ5DuOKR+dTLO4uUTZ0Odh25dsSvWnmyJNvlB+2yZ6rfYMa8yCLRDG4XFA+FmwzJM0EJ2oYG6OaUjozsRU2LylBCuKk+0RxLCFOtbPEHPnvKZ6BcrzOg56jlYY7zRFMe1gwlI7RDG69QG0MNp1cDjvPbYKNf2g9+OjpW8rklVzH2DgjWKCccGx8oow4ffCuIIVTyUj6NLbiBdJ57PByctItUdang6WNvTkLsOUkOM3IqZo3dY4vXsJJ0z56cu+cfpeX/1gVem/MTlLFvpDLC36tyYPZPn1ciu7zWyqdwFRaL/AH0duIDzY4li8AAAAASUVORK5CYII=", ["skull"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADMElEQVR4nM1Y63HbMAyGe/kfdYIyE8SeoMoEcSaoO0HdCeoNKk9geYI6E0SeoPYEVSeoM4EL2NAdDYIvWZfLd4ejCILgxzeoG3jnuIF3jkEJHo/HgtLRaHSAgTCCnmAyX1BKlIJTGw3KgdN1X9LZBJGYweQHypSJpYDI1ShLJNpCBrIIIrmfmMzhOlRI8nuqcRJBns4XlDEMgwblKWXaowQTyK1RWpQdnKeSULC9gfM61UD2DzGSo57kXlEqOE/XIcHHnOUWMknGCNbgjsBflCk63UEG0Bd1slFI0g6fQS5BdvhbqPcoZd8jg0ezQbkXRRNfh0MEaWpLob7LPSYUvwaTP0LdoN8Hzf6Dx8kMXHLLa8kR2MdSqEtu04FKEFxytCkWMBwW7DPU5gk+gp9Fvh70fj37qiNtnuAQ5DVihLqB4dGIvOmCDRvaCJZSgT3edN/UAZQVbSKWFXfqAordtwhBtW0t3DIiv7UbBXcHEqZYNuk2kcfutBHQZkIZmmbMk297aulo29iVtBEMHcALj74QZT67MZIKBRtO2xrB0GYw1vcWrNEVZdJub+Wn4IfTdkpE/cmjv4U0kN3RU3YPEaSMoOFrj9Ba+jFcBhGt51u1Y59FpG39qsPKtBbs3p0udF78VCZHjw7dsdgkQTslENmj3gnpfAd1LfKPdEYxAXJCMWC3Btc2OULMjs+7x0ibZ1+akh38E2rvhW7V6UYk+EjyBCIftTrqCLLhs1DTOVaBH9RoxfICfnKVQu7Z16FQuGVAX0dP9s3CtjNMVsLuK9rVwo6OmF/C7mL9JhMMONx1t4FlR4GtXOAt2t0l2DkdtuHbJCdwRTn0r4rpWNEZRSfrHkLkCEGC2OMS3LNKW4fLRF0t8gW34UWffzNOSISjMOez07CqleuvL1LexTTF2nORgtglJIBDrRkoz1f0UYTqBqeYUSs6aqiKTQ+TI5sK9HVaxeqnEFzAZTRio4Q4fDbkM0ow598M7Tb5bmgg/hwowSVJV990kH8zNpBoA57HTQa2SKxMNU6ZYhstXI9NjnHuCBrQr79UqCFVCH3/sC5AvylC2CC56KaQ6P2P+q3wH/rMb9XrhmAmAAAAAElFTkSuQmCC", ["gauge"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACWElEQVR4nO2Y7VECMRCG9xj/qx1cB9KBZwVgBaYDsQK1AulArECsQKxAqYCjA6gA3+VyM3u5JCQXYPjBO7OTIyG5J7ubD7igE9cFnbjOgKk6A6ZqL4CbzeYKxY1RvcyyrKREZdRBGmgAG8IK2JXjqyvYDDaFfQF4RYcE1GCPsJEHyiWGuwPkX0yn4BADjr31Bsupm3hCPMb+AQH3jkJZmpawsX7pqvaO9nSfqvAzVJ2fU4rUzhA74L5gL6Hhwhj59mXGouGJ7MrLHsXBrWH3GHQYk0sMJuEYDBaULj0P3MiA43DmeFF0mIxxCxS/sHXIJDPHIDmKhahizxWxK9AYk/PymaodYI6x+iH9XIvkzficCleg4HTJdZUK7duzDMYzG4qq165wIte+BVxjPLSrTaVFvZi8gFSFoBaHdkzd4Aqqck2Ox6F9Mb6qdJkb33UCDsTzJPZ4cnjNhJEqxfMt+QD1rOURNqE4uILaXqvlShW5K/TNMJselI3riI3Y5zWWLbRbWbatggIBYxYGr9CRp12RXz9kZ0i/D1pWvanXlC3KBCwoXr5rlzO0oTJDXFK8Sk+bong1JpwMqC8BT5amp4jQXpKDwQyxHLC1J7kEkDFykfvWuThF3Sykr7g72hialwXLJeE+9fayS/qm/imqruXh0AixDtdcVCk6vJR4npsnl+2om4jngT4dDiK9RcmjtXXuZ5ZOnBMlNRP3GOKTq7VltTyoXdzpBpMo6zudP5rgyQmKBzqOPuAYZWvw/qrTqzqnw2rl2y87/fVxTJ3/fkvVGTBVJw/4D7296lpNRhmNAAAAAElFTkSuQmCC", ["wrench"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACDklEQVR4nM2Yj3WCMBCHD58DdIPGCaoT1BF0guIG7QS1G9QJpBvYDewGdgJwg3YC+zsJNCAlCVyw33t5eUIgH5c/HozpnzN2bXg6nW5Q3RmHjlEUZRSYqO2klnpAeURRDU0ylARlA9kvCsCo7aTudEbNcqSPr1FSPMwzBSByaYTOE8ojaYPbPUlG00mQ8ZDcQXBJQoxcG6LTGNWbQ9MFHmZNQjhHsMAxkue5K7HKR0bHryix7QLHSPLqj0mAMoKQSylflStIJLYL0f5A1X2xTob7TKgnI92Zot+tZOsSSb7Mcl7p+/aiGGJVO94qiXNbVFOyo6gnbau4UVLLxTQQtm2mIjm0HBPpjhWqtKXdQdcuw2oy6bvVmKs4Q3VLcnC2o6gn5hDvSJaUBDAjqKRuapAgiivqQRlBPVdeSJZYL6zOXPwX44Z7VPckS+dINm0zC5R3kqVzJC8EOdlEYUke7m+So5OkyzvJmvKoNm1BR137bE9ew+2TUSuq/rdytpLph9hTe2ZTx1nSO2FtIqSkc8rfhn5JmqN8elzmNCdFBJlQkmKCTAhJUUFGWlJckJGUFFnFf9FxdS/xgGVmFVSQ6SB5gOCs+BFckPGVhGDpFWQONnTYZU6eGUSQ8ZCsZFKDDLGJZbg5e5qaL1qDRbDAiOSmduqDj9ffAgePYB1EdE75ym386Hl1QRvOX/mvxQ+3BNohn7iytgAAAABJRU5ErkJggg==", ["bell"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABY0lEQVR4nO2YgY3CMAxFf08McGzQm+B6G+Q2uNugK3QCYAIYgQ1ggzICG9ANYINiwEgIUWrXrlRQnmRVtCE8OQl1MsLAGWHgREErH3CirutAUXIEOJHAARJK6bK7u/2VJEkFI14ZzIX31HjNwU/hPTWmIaahneCSqbShSUWxpKGeoSOdBEkso8sKzWL3VBT/JLqFErUgy5XQD+GB4lcrqRIkuZPUabV2nV8VxQ9JHqRf0K7iKWyTP+U+xIgzyNnbw4exNIuaDObwI5c21AgG+BGkDTV/1N/wQ9yXZg7WcITmoOi3Yz1oJQpaiYJWoqAV0auOCwVXpH22CnJHJfwpJZJPBW/kMvhzrszbJNsymKMfuSsZWkqvl1/FS1xK/IB+2FBRs3jWwOXoo0/MQ8zb0HnD46LLXvgWcwYbDo6ujDVbzEeYD4/4BKt48Kiwyp37hxN8JvjHH9ckt4ED779I+mbwgkd0cGLR5PM1UwAAAABJRU5ErkJggg==", ["lock"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABq0lEQVR4nO2Y0VHDMAyGFa7vlA3SDWCChAnoCkwA2YANChuwQckEaSYAJmg2ACYIEiiHG+IktpRcHvzd6eyodu8/WZYTr2DhrECJuq4vsTnnx68oit5AgQgEoKg1Nndo92jr1s8V2jPaE4r9BE+8BXLEig5hbUjctW9EvQSyuFdw48pH5Bk4wstatNw5/EbpB+qzz6TgudMKhP/5douatmiHxkF98mE3M8atea4TzkuMUfiAP4E5C+kbf8Am4ccKx2/AAacIcu6Z0XscMe3B6Mf8H6NxXeKTHDKX1UbHGKc8VCvUUxEEShkUiEmdYnOD1t4g9FsB7uxwHp0uVLTzoTyOBsRR3drBtGQo0loNrAJRXIzNEebhwvZC0VdmYpgPa20Mu1hKEChFW2DJbQJK+LwPdvGOtsFSkZJRn31itATSC2vVPHB/CwpoCCxNcQ3sK0HI4jeJRgQTPhZPYJ94s2jl4N4Uyf09KKC1xHSWHvkDiUhBCe0cTEGZcNRJCQKl9AmsYD6st17WOshHVQbTk/VdcA5eHvFnJx38TncqI6CovYg+O5dA2MVSvgHw8nfpPNSjVwAAAABJRU5ErkJggg==", ["search"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACM0lEQVR4nO2Y7VHCQBCGN47/pQOvA+nAUIF0YKwArEA6ECogVKBUYKxArIDYAVYQd8lmWDK55G5DMD94Z3Zycx+5h9u9uw3X0HNdQ891AWyr3gNe+XTOssygTdDe0LbZQVReoj3CiRW4dMKJB/iYoM0cuu/QpkEQrOAEagREuCE+lmhD8FOM9oygO2ihWkCG+0AblJrWaBu0lNsM2hjtttQvQcARdAHIbiW4YQmM3JdaxhBkjHYjqhfYfwodAM4hj7tCK5woggbxD0vQ7kT1CMcmoFBQM8kWDq5d4wRjcBTtdshDoFhJtattx0wEx3Hn5SIOgbmoChnaWzbAUJTXtphr0Lzmnc6yAcr42YBCfLx8iyoDCtmuOiPKKkCWPAMHoJDLXWzgNFIB2lz8I8oG9JIHdwoK2QClWx9AIb6FjKhKQCEb4LsoG74hfCWPpl/tQV0JiC+L6aWiasmHt5Owb4QPmXrFoFRdPihXYH8vuxy2DPcqquiHzkApKyCvoszpKKa+EOClajUp5ihphTw1k+1Rm5SrKd2iiSge7yuaaSMVExuw7/YiLXvSgLpm1OXMpknk1ghy1xa3EoGOfCGdvkk4n6Ns5BOawRZoBsfQyqeibZ/8+my2/dzgKd4oIU9IVrh6w1Cyb1Vu6LWS3oC+agvp9dmpEUOEcJzZOLu7c0BSG8izAJK0kGcDJNVAhrYxZwUkWSCtSXHnu9gmdusY8i++1Nbv3wBddfl/sK0ugG3Ve8A/XTrc2FB3eyMAAAAASUVORK5CYII=", ["flame"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACOklEQVR4nO1Y7XHCMAxVewxAN8gGZYOGCWCDhgkoE8AIMEFhgtIJgA1ggsIEhQnSZ6pwic8fcuLc8YN3pwuxZPkhWY6SDt05OnTneBBsimeKgDzPE8gA0qXIaEwQpKa4/EDWkC+KjCeqCY7WJ2RYcQhQRNTagyql9B+tHrWMYIIgp0htINH3mwlBe5Aj5yTHNtEgJsh7TqXVF7nMMn8MeadAhKRYFYRkz01B5Be1smBilWLCfYrLBPqzwJesiuE040VCcYQkhvElCI5IAC9BjoA652IXxQIkP3xGkj2onLRRsWNOtxPOCLYYvQJbRLHvMvBFUG3sNs+71BdFCcEQrFhCkLmUvhTnJMcI6VryvIzkVX/GvBeb0hrBwCfCjZwC/xYdI0DXtZYrxQnJUCFXIJBkYlM07Qcr5FQjwc3EFYEkjWjS8vdBYFvclLoc9Vvp9sQkeSvXeRLVjuDIQq7LsjFEcuLwZ30u16niHRZMLeT0RW+RZNstLm+a3QU21rPWF8GDYWxWWrDoVEwLXHXai9TMYLclB3wE59r9pZxaXtDVgvWoRIrnXjSbNTUguNYc7jX9gPzQbco+TtSEIDeVM4dJQn64bGa+xtVbxXCg0ryzqE/kx8Ey/m064HVIj5khk3nVxpeCuXoKlQ9FOiMBRAQ5DSnkhKosdzhzskeIWHcrNJ6r/mgqfScRH9RweGSSPQNxU4u1MhDp4r4nJXddgyKBz7uC/D6EhAtRv6O0gccHzKZ4EGyKuyf4B8e71RBt5IsJAAAAAElFTkSuQmCC", ["snowflake"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACRElEQVR4nO2Y7XHCMAyGlRz/YQQ2gA0aRugETScoG+BOUDpBwwTtBoQNGIERYAIqFftwjL/kuG1+8N754jS29FROZJkRDFwjGLgGD1hCJp3P5wm2N9kmkEk5Iyiwvch+gW0JGcSOIEbnCVtleTR39NW8iuYCUyxAdCDw0mDbYv+DMY/GbmmutBEtbgT1yNQxkHJM7bARFBdQYDtp915IC9xJ2ogW6yMpimIv378W2xiukBAJV5EN4PiEBKHzuQEZUhIcqfRArLB9SpiOpKMKusvNhiPb0sfKNblwwNV4Ue/WEdvC5QD8kfTCweXLVkn9Ecd9meNcETxofTKwTYgkB450tNiwA6LRFi+bHpBcuI30GQcoHddMSB1mz4SrwSFvHuRAhpQCFwTMBZkK9+PfMEQG6JO3Oa+Me3qp9WWcawC+Z0ot3IrmvCL40QW4hmvJ9F96R8CluhliRd1JNyagkFfbEj8Y95RKzGUcRzxT2sGtWmxr/Q9Re3HMxo9jWrj+Ezt8VmnPbDtOg2OeIaDgV5yjKnEk86h6svxtuL6QZQ44uYQz7U8zxrbohXRVMxVcEmssnJmESdwqaGHbj10RnPaEA+AXGDYb7q9Ynr7IuEiA0xWKpIBLcSGAA+gTAy4IGVLKwd268UM38e4gUxXEPbhHVyW5SrWUc3EQTskBKYAhLqD+DsXVc7eQrPeQe3AXuEQH7B5cZwjHPErGDXan2G+AIXa55XFAkVHFQmuZ10KCcv8+SKKUsoZMSsqDf6n7j+h99Q0A3W3gZBxT3QAAAABJRU5ErkJggg==", ["bot"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAB3UlEQVR4nO2Yj1HCMBTGv3oOABt0A+sEhgkYAUbQCcQJxA1wBCYoTiBMIEwAG+B7NZUUSJrk0cqd/d29Sy/Nn++SvLzX3uLKucWV8z8E7vf7HhUjskxXLcnekyTZQUgCISSOReVkvaNXLG5AIpcQIBJI4lIqPnEqroRF3pPINSK5gYwJ7OKg300gQLqCW7gFMjtawT4iqXUSEqGoGOLgACZ14oo2NEZ+pp7P5pzEL1ydkxpxj1S8olmeSOTU9tIqUDvAF9qhb7uSXE6Soj0y24su1Em5eoGVM8gxleyZjJ0jR3vkPKeeu3J1JaY4LSrzHPRDlw8XalfC9+Og9GpzBacB4ngAxcbPF2hnkmktBcUKBt55nEaNzQrqP8NPuhXTzkZxN5YrmMKf3YXrbBS7GZPNDM2DrJ+HgnZOEqPzNqDfGodzwvE6FbY7R7HFphfP4H8+mub3/B5fMwuyO/wtKzJ1cs3oCkX2QrZB+2z03MrMbFzploI9mqyOB3LhsTsDW+Ia+00yDfmk1G1niCBWoEI4vqGuQmw2M6Jt4+3yXUXeYt8wWkGSbkVNGEqXsEpxCQwJ7FKsc1m9WP/0maN55q4fTHXXzJjsDc1Elo0ee+xqJP791jSdF0vpBEr5BitApEHVmA2+AAAAAElFTkSuQmCC", ["ghost"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACkElEQVR4nO2Y0XHbMAyGoV7eqw2iTlB3gjITxBtEmaDqBKknqDdwNEHSCeJuIE9QZ4NqAheowDsaBiWQ8uXy4P8ORwsEyU80RYG6gneuK5ihw+FQYXGLRuVCVHdoe7RfRVHsIVMFZAjB7rD4AQOYRQS7RtAWEpUEiGBLLH6CHUxqj/YdQZ+tDT5YAxHuAYsnyIcDbvvEfZlkmkHscINFPRKyg2F2ugCE1uTnkTaPOJP3MBdwBK6HYR3SQH8jbUtuS3EfIQOymIBrYFhzUrTYmxgY6KBrtDulmtbkGlIBeQv5o1TdY4ePkKGRG/4U24rGHpKN4lvlwpF4plbGsYY2mhPv1GHxIty04S7hDML+aZu5Fe4b7H8rY2MzWCu+Bs6nxjhmFPCruG7nvK6kuK92Ysz/OgHE6af9qxJu886fINlnxWMfSUsWSumQrybeNvyW0U7sg7G4rWVsDXAB06JXnuPfNdqX1DiCxRvQxt6GDm0NyrvYhRe8P7qwU/ZBRtxuYmxTsnD09/EC7wNXrz1AxrjJN5E5mxFyaL/Z3BniosrKqHEmOsuA1rgxzUr530IXwLm6AM7VBXCuLoBzlXJwp3ztgY8DWn2J9o2tjMQ47qMCo0wzyIkknVFKvj46zzIQ1ftUrUbfTZj/ifN1Q/VgkGUGr0O4AGATgQP+/eJnUjn8+zbXMCHLDFYRf80J5wL0JNdDdqAfiEpQ8r8cwDHVE/UxeLNS88HeUG+JMSsFkNLzCk6Pi+HAji0G0XIfOzDKCkgdOnoq0Wo4hey5vguSVAlJp7qan2wHRkgNcBuD8w6GXDHEq4cL6j3kK8esuI2vj0F24jr6babBYgnDR0nzZ7ZUBZ/lKrRn7TNc1kf0t9Q/g8sRu4EGCmsAAAAASUVORK5CYII=", ["gamepad"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAB9ElEQVR4nO2Y0U3DMBCGL1XfKRtkg4YJCBPACGEC6ATtBnQD2glaJiBs0E4AnYAyQfhPMVJwzva1idI85JcsV/b5/OXqs52MqecaU881ADbVANhUA2BTqQCLopigukeJUVJqphzlC+UtiqJjyDgKGQDuAdUryoTaFcM9AnLrMxr5OgGXodpQ+3BkfG7MHE45I4iBKap36kY3iORO6vBFcE7daeHq8EWwILdmKPzEoQj/VCbn+spliAiKLGMHXEp+7eAv9z9DCQW7pfHJ1YvLkOdkn6QBpHI7aVuTc/pPAfyo/D4KbQnV/8K5WSo8+RP5xeO3WsDEbkD4U18bOHJUt5YJgy1Jp1hqdAHWwg2AakLMeFuw2qYU1prKk+RZsI+lAWLmFOHVf2eSJJglFe0xJjH+Y1SfVv8R/df2oC4vC6GH0SWJYothTU+MHivBED7Tef/MJANpq5EiqDl3tQvfVhbor80tHXUJXU61uaUIxnQ5xXZD7wFr2wwW6jfp1iFfBHakk3TKSKptNRKgJjsZLnXd4QSfDJiTAtK+1UhJsqcW4cykbJuasT4d7AYJcNkm3J+UkAu7YSQ4WlF5Zto6nAtX8e2DXJu5/48hh8yJwiWmMhlWmtdEjcxrbGb8s+9cuqx6Afui4dNHUw2ATTUANlXvAX8Bo1qeTaQi0oIAAAAASUVORK5CYII=", ["brain"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACNUlEQVR4nO2Y7XWCMBSGLz0dwE5Q3IANxAlqJyhOYDcoG2gn0E6gTlDdQDegE1QnoO+tUXNiQhJCrT94zrkHIZfwcj8CeE83zj3dOK3AUG5e4B01QFmWCWwM+4R9l2d4fwp7oppEFAAunGLzBksd3AtYHkXRB3lQWyDEsbCc/FnAhhC6c3GuJZDThk1G9dnA+i4ivWsQ4nIKE8cksLmLo5dAbgY61JyRSAK7VfWWipttTiAYW8a3yn5h8R9BZKfKwVmgiF6qGRrC+rB32EAZm4jj7NOF7ZVxFvdKFTg3CQTyxUbK4TUymZIjIqVqiRSYo2s6xyfFiebYhC5FDGBzXobU9EFIrpkjrkqzj8BHzbGxSP1JHB26k7c5bCqNdVi4Ye6EQgSKC8eaIT4mRzFTxuWaTOmyRq1YBUJcTFIkNMyk3xtl7EsZ25MnLhHktJhqhB9ZM2mfo7mks7hTxOBX0CHiuqfHrpZA0blJhUsq7/CjCzYQ63QMUyPKc6k3u9f42QWK4h9RNS/HJsG2Z5pH6lJdqSyoAuM6KCad0fmOewbXQmxj2JIjKM2RSaI4Srps8EvDinwFqvDbp4Mbp/hBOke3uMtYF/qmBTIr6beu5o5wRyeieYz8hUBXniFuYXNq5JvEE46ckzjm2l91a1hmS6uMTwS3FMZvQ/iIY3wETugfcBYoHmn84hkaSS9Cv4t9Otvr5fZI+99MKNcUWFANQhfqoaMfvxvWWgWCmuQatDUYSiswlB+dk9tKqmoWqQAAAABJRU5ErkJggg==", ["map"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABdElEQVR4nO2YgW2DMBBFz1UGyAZlg3aDuhOUDcoI3aTtBnQDmKB0g3SCphuQCci3OBTLCdjhsIQiP+kLCV2OFycSPm9o5Wxo5SRBKbcn2HVdhssLkvOtCqmVUnuKgAopsqQK5HGkbIeUyBdkW08/jcsrkiGm9hOfaegaQTTZcpNiQmqMik4r23K/jPov+cZiLs+XJNWInBH6RrY0Tc0P9cmaPtpT9wNBHSpYBTyY0FDxSpv/Y4E8kQDT7+zepUI8tKMZDflnHGQf6EqiCzo9MupFTe5pZr9ogkv1S28SKUlQShKUkgSlJEEpSVBKEpSyesE7EoBt3h/yzpvTKIg2rA7D2Hk2I0s2rEsK2jR0km0D+5na3L05JmhWwzf01HwNGTtzT80B0RDcUaCgpn4udvlHPpDSGsiHsTMPkHX5pX6ly7HTiKmpTFN/CmAE9tykoQlYtqDpsXOQqkLOc4KmsjlYM7J9yBQkZRNNcCnSm0RKEpRyBNDskPpwhwuvAAAAAElFTkSuQmCC", ["cog"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACVElEQVR4nO2Y7VHDMAyG33D8ByYg3aBMQJgANiBMQJmAMAF0gnYD2gloJ2g7QdMNYIIiEfWucWXHTvp1PZ47Xe4ix1ZkW5J9jiPnHEfOaRu4XC4v6fFK0rY0mZK8RVH0jZpEaAAZOKDHfUWzIRn4gJo0neLrLbWx0tSDS5925MHa45yhJrL+tt7W5Kyi45Tki6RHYm6EkHX1YPTblj6579T1YeQwjg2aGK9HJH0ZMHThD0RSksTQ3dAqmCLQwC+lo10xIgPvNIU6xWQceyfB/khkzA02PCgLmqc2xn7JyYst86XmwQ72bxwTk3My82XJg+K9OUloWBij2Dz5ajAUm+EWYXBKbK2nRtNAbedW8UQd9jWFrCvWXcCf0o4uTbEouvDnxWac9LcKK750zXCjhhnPP19QZzE88CgqfkhS+aESapiRhjzdM9j5gD99h47HaGvGMdZURx/kKCK/jSn8yR26gYylcvQVtdWDtG5iuNdNG/7EDt29jKXiSnWTCiOe4c+jQ/cX2mypbsNAavhOj09UB2uO/J2KNqufrap8eKxPGbvENgJ1hxZ512FcD2GZqbW+abRUx8qQyM+MoKe6BGFwPIytqQ6FkRmKo+Qh4CNqtv7CVm5xjGt0GquBmpk2Nom4t3Lx7wB1TFfJP0J4uVSXMTkm0RSuU532R1z3PZEMEc5Qvh0rutT2kfNALUdClpzkY70UEl0PfpRqRglnq8q97yzZUBNJT3PP5ld1L5BO9+pDWHi0maEBTQ2cbqmNlaZTzEE9g/sCMzvYBeY++L9Eb8ov04vnmGZXJSUAAAAASUVORK5CYII=", ["rocket"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAC00lEQVR4nO2Y0XHbMAyGoZzfmw2qTlBngrATVN1AnqDdoMoEcSeoO4GcCSxP0GSCKhMkmcDFb4EuS5MURcm+POS/wykmIfIzSIJwZvTKNaNXrjfAsTo74G63u+aHEjP1zLbIsuzZbDwLIEPl/PjKVrJdBlxfxOegkwIyGGBu7UkDyu2GkwEyXMGPnxSOWK8uaGIhamwAq2kkHDRpBGVJN2xzmkjREeTJFduG7UmetwKk+wH1ZyRcYzdERZAnL6nbT1qK7UGnBIFD5FxLupXnNSUAZn1vOOBI4ObSD6jfdHwCH9gK9mvFD/1rto+eqR7Z1x4jvMQeOOSqwoDbOODIhIPk74L8WrkaLwbCQZUxcUXuPbc14SzIrcP/xQc4GwiHpV2Kj6LudphCS9cXgjIHXE7daXTpEw/UiB98cvLrgz2pZ2xEL7fvYC3XEufk1taAKykMB9UCZMLVDr/CBwe5IoiNv2L7bHXtoyf9iELsLdHIUzn6fvCY3yggb5qRb1xRd/LueSAl7Wj7TuN1SFVJgFoSsUsjn/XtvSg4NhVaWooFtMWALT/eU7qCh8JWSjVTyCQpio6c1uAIQnL3NmzvBrw2GA5Kqgd5knvqTmVsJG9wIIziIrpO7LuLdYmlVUulHAuJqF2xb2WMiRuqorGAkk429H/+AlwtfSHIR+p+oc3FZ5+22FD1lDSgZsw8cErgQvrCk6/FX+9JLCGKiZU1HvImEvJhadknav/7CtZgdheV1NV3OpJH+0q+KJY0t7ruKFK+q+6JIuSLgoAhasrz6qHo6JMrggUlSpYav4NVwG0RCwe5ABXFybVMLdtV4J2FvT/75DrFMT9uoKXdIHlu7fEfDLcf0/wwYP/dmLnNGiOn46I0CQ6yI9iXn36RlXhtSdVzNwXcfjzzg0SwpX93LBJuI7aOvUdlHEVdHdnSCPnSzFwGH3Sxn0JJ1cw59fYv4LH6C0Y4RyJu4KXxAAAAAElFTkSuQmCC", ["swirl"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADKElEQVR4nO1Y63EaMRDe8/h/7AoiKjCpwOrA1wGkgpAO0gF2B1ABuAKOCsJVwFFBcAVkN1o5e4sex2MIk/E3s3PiJO190j604hauHLdw5bh6gjddBu12u28oY5Q7uDCyO4ikhvh45p89lBIuiC4mloSubwcRD6K9Cg1g0z8kdNRFUWzhCCQJ4ocNPox4Vam+Abgd7kMGOJ4ejZIKZYPkm9i8AtJKLT4W4tU9P8coQzgfGnBkKyQ7lR05E1vRfgO3m0T43L5owC14iJtyjyR9UGbTjBFtstFP2CdHK/6K8qVgUJvfvUb0vrHkvpk1cYWPx0g3fXyU8h/WYcClqSfVRYtowFmJhPx4q3XmCK5BrYjxXZqhC1DXCJzvehCZXi66cwR30IEcDqPV0077aKZ0tMRxqwzJFxwzgmMIcm77pV6/osJSjUlF9ATcgrZizhza5u6l3CQVJKHcNlLkFpBON9S3UGf4KDAGjiGoMVUrJTPrRSxZJPrw9ywH1iGjWwfP0QQr32CfG4i+GpypLAm4oqIW/QOOZo+5aPfPRVA6vFV9ZSs1uLauesqILn9iwUkEVUTKVS9DTs7vpLlNRFcS/0dFTWC/85A78Kj8y4+nd/IUaiK6jiaozSCVVqpvJklye6bGdA4MiShBTq4yEkvRR+Sn6oNrJEY5j3LjGtokdIoq4VSCDLnqJ2VKSri1Gm9hP8JraCd4A5ncdwjBifr9fo7yDlto76QG9VlVEIz1IOyvYgqSxQIBVzyBdlIOFQsG2qU/ucBcp59AseAJFqcQpHO0QfkkXlPN9gIHgO7WII48gQ3qMrF5N0qJQZmxs9NFnXyFCFo175nHGcgT+6MzQo7QpOYXStkE2ub08D50F+ibs9T+hOA8R9fQEsIRS+W+twhF+BAi0CfJKkIwRMzjnUS4vt0jZqF9U2xSE1omZuenyw5F3wbOC/JZA84acsFValKu5Des1PLTy2foBsqBZP6Jj2jUSbstT5lkRZ0sFngiSRXqT5VJidxmRXuTuxWeVM2kEmwCqTN9D/+i3JKnSpUbnE3U5wYn/h8oTZe79cUJHoqPP9FPxW+r/Eb9R3QXOAAAAABJRU5ErkJggg==", ["globe"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAC1ElEQVR4nO1Y0XHbMAx99uU/3qDqBPEGoSdoOoHlCepOUHeCeoM4EzidIMoEdieou4E9gQtE0BWiSYqk7Fyul3eHI0WBxBMFQISu8MZxhTeO/5/g8Xi8pcbIZSHtTtpqMBg8owcGyACRmlJzh5rYqEN9T1KRPBLZByQiiSARM9T8IBkjDxXJdyJaxU6IIkjEeJeYWInzYEXylYjuuxQ7CRK5gpo18neN8YfkgzW2JZl0kRwiTI53btOTHIhEQc2M5KCGec3fYiOdoEx8QncQdOEnapIr1FH+S917sREiGdrBPsHQgHds0Vzw6yThNXU0j8WWE04flGh9Qhp4Zxp/4pZ9bOnzMbLB92/U0MQV3T6COX43SUkf8lp3JNcyxEl9YusNHRNL9H+1nZCdXaghI7ZbcPngHV4JRHKJOgU1MLaOi+At8tCZdD1Yqf4n+2bLBxOCww6IFe3GIzJANtmdNmqo5cv2acaoPqeIOck9TjFPCYgQaJ0tkWRbTbAw4aq5H8qDW0muM1weW9VvJW2bYGFd4xVJOjkMY2Y4SPLnKRYl0rAPEdwhnmQs7hP1gwQ1buyBC75ubStIsFL9kaSAFs5NUmzowNh6CUrq0Gc2AwfOTFJ/uQ52+nK9Yq3wBR4IyXNgqvonyd5FUCsVGVF4Ai5NRcbWeIl2Wqnsub7jlj6rsdN+dJ3rHGe6GFQkn1H73Qb//O+ZbBhb2RfFc9XnBdYevSXSYWTeGu3gWLiUvVUd7c4Kbf/gA8HMoVeifqDUndR4oLVLJBLkp6ssw95SkfRZN+eoxicj4ysNvIlaJhi4S0VvdCfiECIXJMiQiQVOS8UlkWSi31zJPBK8ZtFVuKf8+mDHngbU2NAIceCycx7z6yP2NLMXJ+aqy/c7LYYcz2UfLmPIvdhGBiRyDerP1HWHOvsZJ/8q5+uTRVBD6pjmg1/I8A5SvPctDXoTvDTef6L3xV9GTCZ/TsXbRAAAAABJRU5ErkJggg==", ["leaf"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAB+ElEQVR4nO2Y7VHCQBCG3zj+xw6MHUgFxgrECgwVSAfSAVAB0gEdCBUYKiB2oBXgrrnMRGXva8OEH3lmdi6wB/Nkj/sglzhzLnHm9IJaekEtJxM8HA53ji4fSZKUjj5IoMSIZBS3FKlpfSko7kn0U+oQJUhSGTVPFCOKK+goSHAoJYMESYyrM0NVsTa5kYb7Ap6QHIu9o305JpUSXpOE5JbU5OgApyDJzdGRHGMVJLmcmmd0iChIcjw7Z+gYWwWn0C8hao7OYlM9zdB+oSWkZWaEeLYUe4Qh7iSSYIZwuGqPFAOEbXegRbqQcpJgijB25jMPCJRzIQm6TiJNVqgqPkHcermzJb23OoEVDU+OqmoviKOwJSVBn1n4I2dm/BLxlLakJGi9K1TDMjHX3KaIZ21LSoIlZLi6Iz5ktrFe2mYwIwna7mraOLtx9TS7zdrVQTywUnV48Rz8eXtLcpnJs9heKTiMrSAzP/Je3rjWHve3LjnGeuSnKpXUXJuX9ZJS596gO10PfQRd62DeuJ7WFySXQie38JFjrIL0JRtqxqiGo2ykNNsZj8TEt7NzJ6Eve8X/002s4K+fiQ9eW92RP9YZwuC1cxwqx8TuxWlA3wX3NyMRTPSjD5ooPOwcqYl6tvOBtaTYUKxtjzV8UD+bOTX980EtvaCWb5ZAfzhWHlKuAAAAAElFTkSuQmCC", ["sprout"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACU0lEQVR4nO1Y7VEjMQxVbvhPOrilg6MClgouHcRXwUEFhApIBwkdQAUsFYRUQKgAqCA8sQoojkxW68Dkx74Zjb9k7YtkyZ4c0J7jgPYcHcFcdARz0RHMxS9yYrlc9iF3kEA/ADdBQQmZgOQFfTPcBHu93guaaxmOvJ6UCAwhRRP9th4cqz57sty2QYhN0H2GTCGBGqBHLYGPLdD8liH3j8W7lm5AcwXpy9QcUqb0Ndp6kHGj+gUlPCJem7QhR5kEH6Lxf7LJBTX1yuOm5Bg5dXARje/1AOTOaNOrY5B7IAdan0EhsVTDI3x8IfMFmhl9hpXxhPWCnNjVTXK/IicY0To5xphaYFcEPxKGywmaYbR+S3VpcSMnSRinVGdlpeaC6j+xDrw78CSGhnkGxQuPVIepgrBx9tJt/CHW1XMYs95fqr0WLH2qPVxC/lBdoljnyPoRySSBoQrNibE0hVxGZ07v4+SYYz1E8wUavruDsY3PcGnZS4ZYNpxTXbs0AmT2xR38apDjGjmjTXJs+zxF7p0HbQGMcxgqyKGxPIXxf5F+HPK4WGty5ba62KgOeknuihyjURaLoUFiOVjhTtwkKwya3iium0RlaAwO6bFOHOjys6pv6HIlSP3YDXjrYEjMM5FRNDd32jDhIhi9pmMMpcatMDV0rr0Fu81NcvPFmg5d5dxrYu0MSrbekX12mmDtfMEee+vQsZ/1T3UCxR48yyBHxl7X20/2Bz0RE6woDyeUj0oPNsqMhLm1FxGeKsPWS1wfs17UP4Huz6NcdARzsfcE3wBmmutmpDlXvgAAAABJRU5ErkJggg==", ["layers"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACeElEQVR4nO1Y7VHjQAx9Yfh/dHDu4Hwd+DoIFeB0kKvgQgUHFcSpAKggoYJABYQOoIKghxXwbLzfDsOPvBmNnaxWel7tSrJP8c1xim+OI8FcnGAgbLfbC5GlygUGwgiZEDJncrkRqYyhlcj5aDR6QQayCAq5Ui5LkTOLygYtyQckIjnEQq6Wyxp2ckRBHdVNQjRBhlRkLrfziGlzztHtEIWoEIuDAu1+K5EGhpoh34ROCF5BITdGG9JUctC5a7UVhCCCYvAf2pWLDlEP3k+92vTCGWJHChkKK3hSkXUFNYUwpBUOhwptyK3bxrqCMukJbZr4CjzIKv7uG3DV4uwqEwGrL9ch4Ul7xuFBH7Vt0EpQyxP3xj0Ohzv6cJVCZ5rh6RKp5PYSw+NSbI99zUTwPtPk2oj8QB5eRUhsFaKcUupuRX4hDY9oyW1CJ5x4CJXdAq+GK5EF4rGQ+WWXnDYeZRJBmXiFNlE/yX3VIcl9WcvtBGFgSCc6p2ufW4a5dq2+euFK1Fvjr6k4uTZ0+PQM+U+LGaaQsXlKtQ7PunqiU/QZcIX42vh9JYZvjJC7UtFeCtGQLg1yRAMLfM1Cjf3GlA4nPatC3XrnUMYbY5wPwsaj6PzN8E9N3WCCHcNmGJm7/roMGzZq7D9ob/hNePtBSxgZZrbw/+EmZns98FaQD/+IgDibycVsNOnkj1kRHK8HrCAzBCK6Y7FUFJI731UH1eGqdTvwqAqSTFAJFOivKI1ea+P/6AqyQ3LPp+mGCdb3mWNhJukYDPHpo0b/O7I3hYRgkK5ZU1GDz5DzxE9zPnnsMGhbr3sTKXvNhq9870jC8QtrLo4Ec/EGlwgYKQZtG6AAAAAASUVORK5CYII=", ["grid"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABhUlEQVR4nO2Y4U3DMBCFX1D/0xHCBu0EdAPaDdIJYAQ2gE4AG9BOAEyQMEHaDdIJwhkuUhTunLMsVUHyJ1l27frdUxzbp8wwcWaYOMlgLJM3eKUNtG1bUClbPzWVJypzYf6cx+oRDRej0HxkmjmqXmBnn2XZZqDxTtUKdjaksYfRYEnVAmEsKUDF893cMmw6Kpq/HHZq72CoOcdcaVsRY6ZdHEsyGEsyGIt2k5xxeU5Sp2bwFYHidMh+dD+4fUIYe6lTM/hI5QAbzsha6F/DbvLAMf+Q+WbxleW9FfpPTtFYwU/TXZGiPibO/z5meImvff+h5fkc0biFn3PwEnMC+gZbPnfEby5XDTQWrJEbNNwO3pJGA6PBZ6ruYedI4jcDjdpormNHGg/DTu2YuUMYeX+3cjtHGGJM7R3McXlyqTMlC7Ekg7Ekg7Fo5+AXwmmUthUxpi8fDOHQv+q4bc0nvTFFg/yNZIvxJ+kS0h2VQhgreGwsaXUxxO8yP14wcdIujiUZjOUbzPq5rgR8AucAAAAASUVORK5CYII=", ["crown"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACnElEQVR4nO2Y7VHcMBCG1wz/CRVEVBBTAb4KoANIBeEq4FJBnAruOuCoIE4FuXRgKgAqcN6NFpB10kq2GeaGuXdmR9bX6rG+7UPacR3SjuvjA3ZdZxCcwz7BjCS3sEfYXVEULU1QQSMFsBsEVw5UTBvYGqDfaYQGAwLsAsEPSoP5amFzgK6HVBoECDgGu45k//biZ5FyNSDnlKlsQMAtyQ6pD1XDGjT66JXnOVmRfSEfdoXyX+mtANHYAsGNk/TEsLnDJdNiBTtyknm461TdJCCcVwh+UR+ugvMNDRD8lAga6kPO4KehiYAMV9EEOA/yj5PEU2Om1TlIOKwcOFY9Fo4ldd3tppI2aBQg9RfFPdkFERXPVZmvmmrxFWpjS0WiwQeyJwTrJ3rgWinL5R4keuyvaq8sQ36TaIuyJ7GyB4oT48CxUiv2IvIckuvLyMsFpQ2x8eKtX4B7ohMhunSylt2rQtPC91XSCMCeIod+o9f6v+qbTF9BZQOGJBv1qYD44oVQhTZzbUh9ZQPGtgPZOlaBrLWyJUWH1FcUMLDDa07PA2lnSvky0daLUj145zxfKuUM2WGeiT2R/kKXkTZoKKA7f0pl1+ebieGekN4wkrYl8VFG2thSzlncIvgsUX4+1TbhhC9eHHwWG0m6hy+j1clZJAvn2cBuabxuqb+/LlIVcu+DPAzuQuDVOcvtSek5vhW5Q8sfVKkTJxvQPWefxXB16mNIPq74DPf3vuOcFxxy5e+UbO5h7tVW4oZsb0V7CHBZbb8V4GDlAu5/fUzVHnCq9oBTtfOAk27Ujv7C+IfQidhc0iZryEbNx9KRB7Uie3NuI3UM2dPkCvbFyUreYsYA8tHFZ+pGg1LqG7KwFWyR+4di9B/W99LOL5J/34H4Fqzbn6kAAAAASUVORK5CYII=", ["users"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAB+ElEQVR4nO2X8VHCMBTGXz3+FzeoE8gGlAnUCcQJhAmkEygb4AQeE1g2qBNYJ6BMgN9rE6/WtHltwOO8/O5yKU2+vI80SV8HdOIM6MTxBl3xBl3xBl3pZHC/31+jGqmSorwEQZBZNCGqu4omhWZNQgJJJwQZonpFiQzNCwSMG3SP3G5oSlBuocvpQAbfGsxp5gj2XNPMUD21aBJoJuRqEIFuqJy9NnIEu6jptqiGFt0EuqStwxnZiQR9hjD03U9d28yJxpZskpCOR2jrIJnBlGTkDddtZLYOkjUYovqwdNtgLUU1Hf+xK4vu0nZMWWdQDRC3dNmhzAz3p6qtidhmjpE8Yja5QDU3BHxHidCeGjR8L1J9qvAYczWmPTZ1pLJbc5OxBg2/RYpdbTtW6nQ2+Nf8u2RhXLu1kzxm9YjP9W9oNiRk0DIorxnOXiJVwoZ+XLHJhMr3a1OmstYmlSbTGm5rShwCQ8AQFWchU+oHB+LEYVkNqmYxocpM1liR4egJauYe1OCHIKMypUor4y+o/PNtzKBZUt2gUNwVnsGJNqmWzVagi/U5GXQU9uHHaxCxElRjge6Cl4h+k4zoeEjMmCg8+a86V7RBaf7Wh0/qR+GpMMi7DIv3Hpf8/SFJ1aVk9PvY4sAbi7GV3vk+WXDFG3TFG3TFG3TlCxeAq5+TynB6AAAAAElFTkSuQmCC", ["compass"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACwElEQVR4nO2Y7VHjMBCG33j4f5QgKiAdoFRwuQrwVXBcBWcqOHdwSQWBCmIquFABpgNSQdjFm8GWZWtlOzMMwzOz41jRx2t5tVr5DB+cM3xwPr/Aw+FwRRcrt0aupVyL2Wz2gBHMMAASdU2XJSph54HqL2QF2R2JXSOSKIEkzNLlL9kcwyjIbklooW2gEkjCeJZYWIppWJH9JqEvoYpBgSTO0GWD4bPWxY5sERLZK1Bm7glhPxsKi7voE5l0/SHitjidOEjfWxnLS9LTeMxi6OOe7LZ2P5exvHgFympNMS0cYvh1LtF+8FTGbOH1Qar8H9PM3h7Vis1JWCl9G1R+7cJBfeEWJh5x6QTiWBi/RkOD3hzFCVlHGytj9wtEtUMM5ZnspwjL3NUps3fd0966Bb69+ArxPKJ6jatAvZvA/9/dgoYPiqNuEccPEnYXqhQRUxf1rdB9xRZxPGrECTx7mpja8P8E48iPP2iG5mQbscYgMnu/oKPxEK4PGuh5dnwuw7sPsevUF9sS+h3J1G/GJKxZRN0/EXUbK98VWELH3rNiM99viW0GenoFasndAhLM6ZMvhsbMHtMQ6C6SAmF4l8gV9Xj2WLBBHLv6TUOgxJ99f3usQkkmn1nIOOZtEMfePQ74wkyBfvIOUec1YSvEzxzTiqmJplKNtbPxH4Wxn40RdqRwC7rSLfaDS89fF07axME3xTRZ9wP1bd3Crp3Et6nfszgWRvYP1Yxpty8Nma/QK1Ac1T1k73gbE2EppmXddVbuPNXJ/smNLnFaOFWzXZFBc+wsyb7hNHBIM4OOnYw0NKiecmq4TxOKqcF0SzqwaPvkGLgvq/n0ocoHuSOylH7yqWvM5zRuyxlzqhH3NjYGIBmKRZUchPyT/YyDf6E4s7QYJLCOnGM4g+YFZaS4RJWV7GI+tfkYLfDUfH1EH8sr/Sj18Q217OUAAAAASUVORK5CYII=", ["magnet"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADMUlEQVR4nM2YTbLSQBDH/6HYS3kBcwPBvRoPoOLWjXgC8Aa8Ezw9gXmLV2+LegDAAyjvAJbhAoonwO6kg5PJfGWCpf+qLmA+f/R0TweG+M81xBl1PB7H9PKcLBVTtSHbkW2TJDkgUAl6iqBG9DInmxmgbFqRXRDozjewFyDBMdiSbIQ45WRvXB6NAhSvXaLyWl8VZC9s3uwMKHBrsrFj2BZVvNWeyVAd/z3L+INAbtAH0AO3J1vSJrljPs9bkL2CGfKJ7slgQA8cx9FbBIrWylAlyh2tqyCbqDE5QIAccL9QHU0wHEuOMiW71bq4rbGW14MeuCzkqvCsXaDtyUm97uBfwbHkKKeGruVpDOxwnHFfyO6iA5xSTTJpqqvHCva9cmiJQ+MTK6B47lsEnOvi5ti6MF3K8qW+as0c26uBBW5tgGNtHXDvBcJWVRZQjk6VrLnXmsuwGljgbJfwMwExwc3g15zGTi19BVyAgRWCNVMhHXAfyN4Z2jOYtdE+lyehPm7ZsvUz2VO0IU/v0dYVHVvZLuPmSp/PAQ0NZZEFHFeJKctgP9ITnMhWf3Wlpsb6iKc2OP4gG17BrwacHL++9gZhgIUKqOs7tKANgDTBzbQx/MVzfaLE/2M4APWrg497LRMba8GsmwA4Fj/tFIZ2U2aXF3siC9pqIoPzI9DBsemO+icBcHpsQpnDJ5YqTXsaW34uPSi3e4bqCFTVnrRteqPBXUfALdGOv7x+k2iDGWiDtifh25Tmcqka+8Zp+3G7fvGzk9K6JDaSRLI2Q9uTPrjrCDgef2noWjgfWAMgTdn60jL26IDjwjAyrJ03eGBbuVqEi3+d/gw8Ux+bAmtwTnNeB8Dd0rjWKQT9JqFFU/166PCAcIJ0waEqDIcoQF2W4GbVF7npV9tHskdd4PoA/oQ5fmbSn1sg0QWOFfSrToNLXXCswNrthYsCtJSq+3pZFMhP6AGHGEBlA1Wt2i0J8dAw90coHCs2Bm0Vp6zdqEqXKVsZ7gHB7RGo6L/fPJApOmYrzg3I6lC7o+BYsTFYKrB2R8OxegGyPJC94Mr1cSZJBi/x56lm1fVfL5POBvi39Bveg5lLAuPIgwAAAABJRU5ErkJggg==", ["footprints"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADOklEQVR4nM1YwW4TMRB9qXqslHDjgNTtEQmJ/AHLFzR/0PAFpF/QzRfQfgHpFyQfgMT2yAE1EYgrmwM3pCYSBziFGTKLNuOx10m6VZ802p2x134ee8ZeH+KR4zCm0mq1SulxStIV04JkSnLdarUKNIgWwsSY0JgkCVR7QyRHaAgHvgIi16fHR4TJMd5L3UZgelA8d4t4FOTFEzQAnwfHHvsNyZBkruxJU150gkQ6SpR5RpKSlxZS55IeBUm7UidBA7A8eKH0JSrkGPI+UfW6qIEsnd0JUgM9uJ4YVMlVUCi9A5vUGcl3khWpt6s17kg4uBJsQ5DQV/pynxTCJOgxgjvojvTFxC+wBUHthRH8SJW+UOQGcAdsIZOBmNAEXyq9gB9tpU+V/hbx6MuAHNR5cGp9RI1xPb3gF5Vyay1fk7wmOcc6XWm8s9bkQaXRbSKsZ9iqUZ2qsjmt5T5JTnJJkgphjYGXIH1keiuS4EwdGvRgdUri/vpwPXkms+MS9CDx2F8pPUcYC489U3oZ3f+hCc6Uniq9XF/bRDvgyZE85UafvRDBXOnaU4xU6UtjeRRKD63vSaCslmBiRNZpRAeF0o/hh6674RR9WLAChcO/tD+Fuy4tgrqdfwP1nL4dGwdKub22jMJv9HiOeDzRe7VE4p2qd84pBm5/KdYH4ypOysFYUfwH8Sisg4TYnBSCSFQ9bRGcIR4/AmXOcUznuNKOACyChdJLb9zAzWcfgGiCDGsHSpW+4fm6RM3gXSKV7SnauzJN8wiCwaQfQ3AfaC9ukJH9X097XlViftzbnvcYjLB57OoQqS/0/Cn6M/2B7C4IEdQ5jBd3GYHdmrq6syl9+4tejyrmF4FPnPYsgoVhGyGyQQPsrSPE4bc2OGtQ9tUr1OMq8l7mM+LxSRt8QZIhHLEzuEclH74qvcD6538IO6VtwCTIOwFJF+4tAr8PuczzKxoDPl1nLHDTkINgFEsjWbkD7EFqZ0TdD94zsWPPu4mmEzUjVzofvcYscI9uum74AvM+IMujQH2S5zugRM9W4x6UDrOIquYd0ENMMeSgOgxUGfrugBqf4irkcMAnmlRMOckk9E/+oAR3wV9uaCeGF/zxowAAAABJRU5ErkJggg==", ["sword"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACD0lEQVR4nM2YvU4CQRSF76Ix2hC1tJHEB1ALY6zE1thayxsoT6A+AfgExtaKwtiKla30FthYGrQyJgbPkVlchmF2F2YGTnIy7M4d+LjztzvzMuOalxnXVAC73W4JxbqhqhVFUSd5I5LAAlwNxZkl5BKQF/FFUEDAXaOoZAhdiTNZkEDKAUdtxR+CjMGccAPynkEL3A18AFdt7b1m0AaHMVZRMdbv8AaYBU7pRCzyMouzwlni+rPYeQYdwF0lF2unGXQAp3e/uwz6gKOcAPqCoyYG9AlHTQToG44aGzAEHDUWYCg4qpACUobP1QNmcDgqssDxobKmLrlwcmM/DQmXBthEsZ+49Q0vSEA4ytbFbe06OBxly+Ayiia8OSLEOxw1MoNqwy7DL4bqH/hWPMP9caQFqEy+wUt6FXwEH/uCE8n4NKMgX+GiVsVMzhmaOIGjsi7UXG6Khvte4ahUwJxvZE7hqEiDYVfG7wh862LmKoZ2nzKcUa6TuwB8Fo+AD9KbudQ7vGpoQ3DuMqaJw5m/Dci2OFIhAVdKwMkoOHahWoLWZHgJYg9UxKH6gOpff1hiB8aXgtyBW1pcUxxK72KeiTzBi1ocu3sj0o7GVBtmrQ6X4AZi6uILUP3gIYo7Q13V9Y9n0dBWB4h76e0QX1pVR6Yg416sIPfkf0w+wg2ZgjLtxaaxF0rBj4DzauZP+X8B4icUfKgAlRsAAAAASUVORK5CYII=", ["sparkles"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACRUlEQVR4nN1Y0XHCMAxVev0vTFDYACYoTFA2IJ2gdAJgAugGZgLYoDABdALoBMAE9AmUKwTbiY2P5PrudDrbwnnIlmT7kUqORyo5HqhAHA6HSpZNYQRBrga1hR7Y7CIqCCCmoLqQXRRFVZNdIR6Upe1Ks4J2bLK9O0GQaUFNU90j9Hd19ndbYhDoQPUhDYvZDjLGkg+TjnsSnEG95jSvgiST9VtifKwBWYo0cv4shrBnfiw2E0g9Icfw8iBIfUG1pDnHhG1ygKSW/lnXAhJjnk3a1pmgeGyZ6m5i8hU5APNsoJ6l2cbv5zo7nyXu5ezLghL9bSLHcPKgZP+1YbiuWyLLXJwLFQt+NzPZuXqw5zl2BQ4ESMdG7mhHOSH/mL1nKvAceRcRGAKZHuRlhYzITo5kbM22shWCILIQ42h9p1P+8oGCfLpGdxpXBIUYe6xFYTCHfPgS1RHkHJe3OuTFCgSb5AHdkb9K4eFd83VBwqeOBYXDsYyRJ7KChHNbl/zAhX8cPEjSkJTBRGPIU4b5nk7RO3apKja4JuoNmUkyudrdE3UC+bCymKjQ5BiutXjsOXYFXhHIVK4CRjgRlH010QxNPPYc7+vknmL+Jjki4IF1S3+1PdyBVYic58mFB7k+XR48+qZnEN87CXtRSTPOQ1AIJIePmsFMQYbn2+V/Xjs9oSi7hHIuHd587bwF8vQxgLycdTOxHoiptH0hr1uay9ebjhyjDM9ve5AzXiWKfGEdiLZWoMI8yODUk1W/CyWYB6V/5f8F0Ifq/euDgPsAAAAASUVORK5CYII=", ["waypoints"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABm0lEQVR4nO2Xj02DQBTGPwwD1AnEDdhAuoEj4ASmE+gIOkHpBnWC4gStE5RuYCfA76U0UXIHx/0hJPJLXmjgAb/ewXtHjIkTY+L8D8G6rhfcPDMyxeGKsYmiqIQFERxp5PaMpCd1aSN5A3dS9MsJj7BgzGcwhQXzW+zKLOiKD0HTh7+EBU51kDVQ5PYGqSdGyjr4jYFYj2Ajt2vtXjEOivSDjZxgNYKa7rGixBs8M3gEGzkZueTX7k0IOSHuEEm4uVMcyvH3xfigXI5AKKeYctI314xF9+n4YmS2z5cJOsEjzBYAtyHlBJ1gDZOTCQIztzpXJi/otKJuamJQdIJnmHGk5EtIUZ1gATNE7BUBRbVlgjfLcfnQ0d30QbFPaqK0vPd2fezoTMKJ+RWGCPbBG2a4jF6vaPNn1x2Xk/wn5m7hS3CgaI7+zlRR8L6901sn6BE1QtWZfHy4Xy9eMjL+XDI+4Qlvgld8iwZv9s3U70xyVVMcXFBwWR15n2INZ9ucsQQL25xRpljo6ExSK7ec3UJ13miCtswLVld+AHRchUekLW3kAAAAAElFTkSuQmCC", ["bug"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACCklEQVR4nO2Y7W3CMBCG31T8Lxs0GzRMQNiADcgIHaFMUDYo3YANAhPQbhA2gAnSO3EWSRQ7/ogrVPFIVlL7XL/4fOeDCe6cCe6ch8BQ/qfAuq4zfiZJ8h3DvskTHKHFlvQ4cqP3Dwv7z4b9Eo44CyTyxvubCOhFxgrNXCsSOCLu2lN7bnTvqLH7MvlbvTd37MICXd3sLNAg0oSXOCYkiutIti18g6SkNnWYxralT5A4uZgWSHGNSBdxTc7UZuTqynZCMiBohXYUptJCqKQptiT4S2esFSiBcMTfMNMF0N1fdUMuLnDNZXzm5gbTE9puY1JqLxp7Tju8Y3wm2cU7+AhsQmJrg7iMFjl37Kciolck2Vut7XPVdam64kQA91UIZAyBc9qtvNspfXMEMnQGOSHniMuednuhG9TuoOxAjvjkfR5QmFxc4RptsbnAcFaHXJzidnOUBlO+CbadvoLayjBHubUyXX1jpJkfWiDTzOE089o3ZptmxrhJas8xK4wCxcUq0XJe66tiMintd2IDsStwq7C7nGmOSkEnLxePUFrZYizBTFGcIr44yBqpblArkD7Rnh4HxOcga/XrgAOSUEuEsTAJ6uJ0F8s/XsOftYs4xrlYoAXe4SdyLXPd1oMn8g1tA31RquB6sXDdOYW3QIUILdCuujm4OH1sfIUpggXG5vEDZigPgaH8Av23voLBXVgfAAAAAElFTkSuQmCC", ["activity"]="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABc0lEQVR4nO2X7U3DMBCGL1EH6AgdoSOEDboBzgawASN0g5YN2KAwQWECwgZ0gvCecKWrib8jnB9+pFNk5y59ZDvXdkULZ0ULpwrmUgVzqYK5VMFcWirMOI5rxHn85cm831BhWA6X7XXcAHm/6BZD7kBCDryZOcUEtZwSUx+InZlXZIshp3A5iKkLYoPd/TZz/30FLXLdlByTvIL89uFyj/jCw18Ca/i8nY3pO9S/2mqSVlDLnUgfcIyP+JCe/HInY7p3yTHRK2jKCaySuuYTsRbTj8jfk4eoRu2QY5R+M201Uu45RC5K0CJ3Ib+kWcNyigIJEnTIdYjeJjnRiLnXPVAE3jPoksNKvOscRbetgxkQG7qVs7aTJMEQOZGrJiRlzRY1A0XSziHHYO5If7db1gyUQDuHnEdy56rx0cwlZzyDv/QVYu9rxCmCLNdRotzcTAmOYlhUjpk6g9czVFyOKf6T30f925lLFcylCuZSBXNZvOAPi9mzvQ09WC4AAAAASUVORK5CYII=" }
ProjectState.placeImg = function(img, c, px, py, sx, sy, z, tr, vis, rounding)
if not img or not c then return end
if c._img ~= img then
c._img = img
for i = 1, 8 do c[i] = nil end
end
pcall(function()
if c[1] ~= px or c[2] ~= py then c[1], c[2] = px, py; img.Position = v2(px, py) end
if c[3] ~= sx or c[4] ~= sy then c[3], c[4] = sx, sy; img.Size = v2(sx, sy) end
if c[5] ~= z then c[5] = z; img.ZIndex = z end
if c[6] ~= tr then c[6] = tr; img.Transparency = tr end
if c[7] ~= vis then c[7] = vis; img.Visible = vis end
end)
if rounding ~= nil and c[8] ~= rounding then
local ok = pcall(function() img.Rounding = rounding end)
if ok then c[8] = rounding end
end
end
ProjectState.iconMasks = ProjectState.iconMasks or {}
ProjectState.iconAlias = {['home']='house', ['settings']='gear', ['cog']='gear', ['user']='person', ['users']='two-people', ['people']='two-people', ['sliders']='three-sliders-horizontal', ['shield']='shield-check', ['zap']='lightning-bolt', ['lightning']='lightning-bolt', ['box']='gift-box', ['globe']='globe-simplified', ['world']='globe-simplified', ['layers']='two-stacked-squares', ['gauge']='speedometer', ['speed']='speedometer', ['map']='location-pin-map', ['fire']='flame', ['lock']='lock-closed', ['notification']='bell', ['gamepad']='controller', ['search']='magnifying-glass', ['target']='crosshairs', ['crosshair']='crosshairs', ['swords']='sword', ['edit']='pencil', ['trash']='trash-can', ['delete']='trash-can', ['book']='book-closed', ['menu']='three-bars-horizontal', ['cart']='shopping-cart', ['mail']='envelope', ['email']='envelope', ['mic']='microphone', ['volume']='speaker', ['sound']='speaker', ['close']='x', ['info']='circle-i', ['question']='circle-question', ['warning']='triangle-exclamation', ['alert']='triangle-exclamation', ['time']='clock', ['camera']='photo-camera', ['hash']='hashtag', ['monitor']='code', ['plus']='plus-small', ['minus']='minus-small', ['play']='play-small', ['pause']='pause-small', ['stop']='stop-small'}
ProjectState.iconMasks['house']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAAEAAZ7fggABAAAAAAAAAAAAAAAAAAAAQMAL8v//88zAAICAAAAAAAAAAAAAAADAABq9f/6+v/3bwAAAwAAAAAAAAAAAQQAF6v///z///z//68ZAAQBAAAAAAACAQBJ4f/7/v/////++//kTQAAAwAAAAAABIn///v///////////z//40GAAAAAAAwxf/9/f/////////////9/f/INAAAAADn//v///////////////////v/7QAAAAAmpv/8/////////////////P+rJwAAAAAAmP/7/////fv7+/v9////+/+eAAAAAAACnP/7////////////////+/+iAgAAAAAAm//7//3/zI2Pj43J//3/+/+hAAAAAAAAm//7//v/WAAAAABQ//z/+/+hAAAAAAAAm//7//v/YAUJCQVZ//z/+/+hAAAAAAAAmv36//v/XgAEBABX//z/+v2gAAAAAAAAoP/8/fj7WQAAAABS+/n9/P+nAAAAAAAASuP7////9+fo6Of2/////ORPAAAAAAAAAAklP1RmeYWJiYV5ZlU/JgoAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['gear']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAgECCMPv7roEAgECAwAAAAAAAAAAAAEAAAUAR/////86AAUAAAEAAAAAAAABAQBKHwAOu/37+/6xCgAjSQABAAAAAAACAI3/9L7e//7///7/2sD2/4EAAwAAAAAAW//6/////v37+/3+////+/9QAAAAAAAAtv77/vz9/P/////9/fz++/+pAAAAAAAAN/z9///9/9iWmNv//f/+/vgtAAAAAAADAKv//P3/kQcAAAma//37/54ABAAAAAADALb/+f/IAAAFBQAA0v/5/6kABAAAAAAAb/n9+v9wAQUAAAUAff/6/fZoAAAAAAC5////+/9lAgQAAAQCcv/7////rwAAAAD//P7//P+qAAYDBAUAt//8//78/AAAAADc/vr8//39VgAAAABg//3//Pr+0AAAAACQ/////v7+/5xRU6D//v7+////ggAAAAAJNlay//3///////////3/qVM0BwAAAAAAAAAG1v79/vv7+/v//f/NAQAAAAAAAAABAgYAu/78//3///3//P6uAAYCAQAAAAAAAAAB4v/6/f/3+P/9+v/XAQEAAAAAAAAAAAIBg/f//6gbHrH///V7AAIAAAAAAAAAAAABADGjnAAAAAOjoC0AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['person']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAfO/EfzwKAAAAAAAAAAAAAAAAAAAAAQAL6/////3dcgECAAAAAAAAAAAAAAAAAwA8//39/P7/8woAAQAAAAAAAAAAAAAABAB9//v///z9wwEBAAAAAAAAAAAAAAAAAgC+/vz///v/ggAEAAAAAAAAAAAAAAABAAry//v7/fz+QQADAAAAAAAAAAAAAAAAAgKF7v/////zDgABAAAAAAAAAAAAAAAAAAMAGU+QzfGGAwUAAAAAAAAAAAAAAAAAAgAAAAAAAAMAAAACAAAAAAAAAAAAAAACADmTp6qsqKOokzkAAgAAAAAAAAAAAAMAWf7///////////5ZAAMAAAAAAAAAAQEL6f/5+/v7+/v7+f/pCwEBAAAAAAAAAwA4//3///////////3/OAADAAAAAAAABABr/vv///////////v+bAAEAAAAAAAAAwCi//v///////////v/owADAAAAAAAAAQHU//3///////////3/1AEBAAAAAAACAB/1/v7///////////7+9R8AAgAAAAADAEL//vz9/v/////+/fz+/0IAAwAAAAABAQ2i/f/////////////9og0BAQAAAAAAAAAAOo3F5fb+/vblxY06AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['two-people']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAABAAAAAAAAAAEAAAAAAAAAAwBQ1bd3OQcAAgBrv8aDDQABAAAAAAAAAgDQ/////9kpAJr/////xgkCAQAAAAACABz2/fv7+v9cIf/7/P34/2MABAAAAAAEAFf//P///v0dWfz7///7/JoABAAAAAAEAJ/99/z8/t8AR//6/v/5/34ABAAAAAAEAHT////+/6QACc///v7/8R8BAgAAAAAAAQBBhsX1+EQAAB+7/f/SPQACAAAAAAAAAAMAAAAJDwADAQAAEBYAAAQAAAAAAAAAAQApaHVrTxEAAhNUaWpkKwABAAAAAAACAIH5/////+FEAMH/////+oUAAgAAAAAAZf/++/v7+v/2GF39+Pv7/v9pAAAAAAAF2P38//////n/hAP2//7//P3bBgAAAAAs+v////////z+ygDI//z////7LwAAAABk//3///////7/9gaJ//v///z/aQAAAACh//z////////9/zRG//z///z/pwAAAADj/Pr9/f7+/fz3/X0P/P79/fr86AAAAADG/////////////2IZ////////zAAAAAANYKXM3+jn3MOURwBz5+XgzKZjDgAAAAAAAAAAChEQBwAAAAEOEBEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['eye']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMAAAAAAAAAAAMCAAAAAAAAAAAAAAADAAAVTXeNjXdNFQAAAwAAAAAAAAAAAAMAHZft////////7ZcdAAMAAAAAAAAAAwBK6f///Pr4+Pr8///pSgADAAAAAAADAEr9//v+/P/////8/vv//UoAAwAAAAABHvH+/P/9/+y/vev//v/8//EeAQAAAAAAqf/7//3/fw8AABSJ//3/+/+pAAAAAAA1/f3//P+BPMRxAwAAjP/8//39NQAAAACe//z+/+wI2v/6DAIDDez//vz/ngAAAADr//78/74AeOiSAgICALz//P7/6wAAAADt//78/7oAAA8AAAACALr//P7/7QAAAACj//z+/+kKBAABAAIDCun//vz/owAAAAA6/v3//P+EAAEDAwAAhP/8//3+OgAAAAAAsP/7//3/fg0AAA1+//3/+/+wAAAAAAABI/X+/f/+/+OysuP//v/9/vUjAQAAAAADAFP///v+/P/////8/vv//1MAAwAAAAAAAwBT7////Pn4+Pn8///vUwADAAAAAAAAAAMAJKP0////////9KMkAAMAAAAAAAAAAAADAAAdWIOamoNYHQAAAwAAAAAAAAAAAAAAAgMAAAAAAAAAAAMCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['folder']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAA+jI+Pj4+Pij8AAwAAAAAAAAAAAAAAAAD4//////////9PAAYDAwMDAwMDAwAAAAD/+/v7+/v7+v3zMAAAAAAAAAAAAAAAAAD+//////////3/6K6wrq6urq2rVwAAAAD////////////+/////////////wAAAAD//////////////vz8/Pz8/Pz7/wAAAAD//////////////////////////gAAAAD//////////////////////////wAAAAD//////////////////////////wAAAAD//////////////////////////wAAAAD//////////////////////////wAAAAD//////////////////////////wAAAAD//////////////////////////wAAAAD//////////////////////////wAAAAD+/////////////////////////gAAAAD/+/v7+/v7+/v7+/v7+/v7+/v7/wAAAAD9/////////////////////////QAAAABJmpydnZ2dnZ2dnZ2dnZ2dnZyaSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['code']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAgMAAQQBAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAEVoKAAIANkwAEVsJAAIAAAAAAAAAAwARxv86AAQA2fsATf+3CQACAAAAAAADABHF/44FBAAZ/LsACJ7/twkAAgAAAAAAEMb/kAABBABO/3cAAwCg/7cIAAAAAAARxP+RAAMBBACO/zoABAIAof+1CQAAAADS/4gABAEAAQDS9QwAAQEDAJr/vgAAAADT/4oABAEBABj9vAACAAEDAZv/vwAAAAARxP+TAAMFAE3/eAAEAQIAo/+1CQAAAAAAEMX/kgAEAI3/OwAEAACh/7cIAAAAAAADABDE/5AFAM/0DAADCZ//tgkAAgAAAAAAAwAQxf82A//CAAYAT/+2CQACAAAAAAAAAAIAEFgKAFIsAAIAEFkJAAIAAAAAAAAAAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQQAAAMCAAAAAQQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['three-sliders-horizontal']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAgABKx8AAAEBAAAAAAAAAAAAAAAAAAAAADPL+PGaCAAAAAAAAAAABAMEBAQEBAUFEuP//v//iQMHAAAAAADb9PP09PT09PT0+P/9//78//P0zgAAAACKoqChoaKioaKgrv/8/fz96J+jgQAAAAAAAAAAAAAAAAAAAL//////XQAAAAAAAAAEBAQEAA4UAAAGAxWk5NhtAAYEBAAAAAADAwQDhOLqqRcCBAAADQUAAwICAwAAAAAAAAB8/////78AAAAAAAAAAAAAAAAAAACux8X3/P3+/P/MxcbGx8fGxsXHowAAAAC91tX7/P7+/P/b1tbW1tbW1tXWsgAAAAAAAACH///+/8oAAAAAAAAAAAAAAAAAAAACAgMHmfH3viEBAwAAAAAAAwEBAgAAAAAEBAQDABwkAAAGAw6Q08VcAAYEBAAAAAAAAAAAAAAAAAAAALj/////VwAAAAAAAACKoqChoaKjoaKgrf/7/fv96J+jgQAAAADb9PP09PT09PT0+f/9//78//P0zgAAAAAABAMEBAQEBAUEE+j//Pz/jgMHAAAAAAAAAAAAAAAAAAAAAD/c//ytDAAAAAAAAAABAQEBAQEBAQEBAgAORDUAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['shield-check']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAADPpLk45E9AwAAAAQBAAAAAAAAAAACOIXQ/v/////+z4Q3AgAAAAAAAAABEITU//////z+/vz/////04MQAQAAAAAAhf///vv9/////////fv+//+FAAAAAAAAnvv5///////////++/7/+fueAAAAAAAAmf/7//////////7/////+/+YAAAAAAAAlf/7/////////v//iNj/+f+VAAAAAAAAjv/7//77/v/9/f9WAML/+P+OAAAAAAAAgv/7//////z+/1cAqv/9+/+CAAAAAAAAbv/5/99i5v/9VwCo//z/+/9uAAAAAAAAUv/6/t4FJNtZAKf/+v///P9SAAAAAAAALv///f/UDwEAo//6/////v8sAAAAAAAACOP//vz/0y6i//r////9/+EHAAAAAAAEAJj/+//9/////f/////7/5YABAAAAAADACv9/P7//f/9//////78/CoAAgAAAAAAAwCH//n///////////n/hQADAAAAAAAAAQMCrf/7/f/////9+/+sAgMBAAAAAAAAAAEBA5j///z+/vz//5gDAQEAAAAAAAAAAAABAQBV2P/////YVQABAQAAAAAAAAAAAAAAAQMADnvp6XsOAAMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['lightning-bolt']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABa7KcFAgAAAAAAAAAAAAAAAAAAAAADADL0//8kAAIAAAAAAAAAAAAAAAAAAAIBE+D//f0oAAIAAAAAAAAAAAAAAAAAAQQAuf/7//4nAAIAAAAAAAAAAAAAAAAABACM//v+//4nAAIAAAAAAAAAAAAAAAAEAFv/+//+//4qAgIAAAAAAAAAAAAAAAMAMff8/v/+//4aAAMEAwAAAAAAAAAAAgAS3f/9/////v5wIAAAAAEAAAAAAAAAAgS3//z/////////98aGPAABAAAAAAAEAGn/9v3+///////8/////1IAAwAAAAAEAF3//////P///////v32/2oABAAAAAAAAQBKldP+//////////z/vQYCAQAAAAAAAAAAAAMsfv7+/////f/hFQACAAAAAAAAAAADBAEAHP/////+/Pk3AAMAAAAAAAAAAAAAAAMCLf/////7/2IABAAAAAAAAAAAAAAAAAIAKv////v/kgAEAAAAAAAAAAAAAAAAAAIAKv//+//AAgMBAAAAAAAAAAAAAAAAAAIAKv79/+QXAQIAAAAAAAAAAAAAAAAAAAIAKP//9zgAAwAAAAAAAAAAAAAAAAAAAAEBCLj3YwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['gift-box']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAbKtZaqxaAAEAAAAAAAAAAAACBAQEBgB2//f///f/WAAHBAQEAQAAAAAAAAAAAAHa0gDmuwDvuAEAAAAAAAAAAAAga29xUgCd/63v4LH/ewBgcW9pGQAAAADg////+RkRoP////+QBy3/////0QAAAAD/+/v4/7cAaP+Vq/9LANH9+Pv79wAAAAD//v/9/uYAWIUAAJBDBPj+/v/+9QAAAADz//////9uAABbSgAAiP//////5QAAAAAeIyAhICElAAA2LQAAJyEhISAkHAAAAAAAPklISEhIUlMAC1NRR0hIR0k3AAAAAABG//////////8mSP//////////KQAAAABL/fv8/Pz8+/wiQfz5/Pz8/Pz7LgAAAABK//7//////v8iQv/8///////8LQAAAABK//7//////v8iQv/8///////8LQAAAABK//7//////v8iQv/8///////8LQAAAABK//7//////v8iQv/8///////8LQAAAABJ/v7//////v8iQv/8///////6LQAAAABN//39/Pz8+/wiQfz5/Pz8/f7/LgAAAAAc3P////////8kRf/////////IDQAAAAAAFkpieYyapKsXLayimIp2X0YOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['star']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQmRkQgBAQAAAAAAAAAAAAAAAAAAAAAEAGT//2IABAAAAAAAAAAAAAAAAAAAAAACAMD9/b4AAgAAAAAAAAAAAAAAAAAAAAIAIfj+/vggAAIAAAAAAAAAAAACBAQEBAgDcP/7+/9uAwgEBAQEAgAAAAAAAAAAAAAAxP/8/P/EAAAAAAAAAAAAAAAncXR1dnSC+v/////6gnR2dXRxJwAAAADo////////////////////////6AAAAADk//f7+/v7////////+/v7+/f/5AAAAAAmxf/8/v/////////////+/P/FJgAAAAAABpf//////////////////5cGAAAAAAACAABi8v3+/////////v3yYgAAAgAAAAAAAQQAR//9/////////f9IAAQBAAAAAAAAAAQDXP/8/////////P9cAwQAAAAAAAAAAAMAsf/7//78/P7/+/+yAAMAAAAAAAAAAQAQ7f/+/f/////9/v/tEAABAAAAAAAAAwBL//z7//16ev3/+/z/SwADAAAAAAAABACc/Pr/1DwAADzU//r8nAAEAAAAAAAAAwCf//2QCwAEBAALkP3/nwADAAAAAAAAAQAWhEwAAAMAAAMAAEyEFgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['globe-simplified']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACABFqxo8AAI/FaA4AAwAAAAAAAAAAAQIAYN3/+RRYSRb4/9paAAIBAAAAAAABAwCY////awL04wBu////kQADAQAAAAADAJb/+f3rA3r//2IF6/35/40AAwAAAAAAVv/6+v+PAur+/toAkf/6+v9NAAAAAAAM3v79/f8yP//8/f8qNf/9/P7WBwAAAABg//z+//QDi/76+v50BPT//v3/UwAAAAC1/vz9/9cAuv/8+/+kANf//fz+qQAAAADp/////8gA0/////+/AMr/////4QAAAAAaGhoaGxMAFRoaGhsTABMbGhoaGgAAAABbZGRjZEwAU2RjY2RLAFBkY2RkXQAAAADx/////9YA3f/////EAOH/////7AAAAACx+vj5+9cAsfv49/qSAOT7+fj6qQAAAABh//3+//YFhf77/P9YFf7//v3/VQAAAAAK2/78/f8zOv/8/voRXf/7/P/RBgAAAAAATP/6+v+MAen+/7AAwf/7+/9BAAAAAAADAIP/+vznAX7//i0p/vr8/3cAAwAAAAAAAwB/////XQb+qwC0////dAADAAAAAAAAAAIARMT/8RJYGVH//789AAMAAAAAAAAAAAADAABHoWEACLCWQwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['grid']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZ////////////////////////igAAAAD/y4mNi4r03IqMjIrk7YqLjYnT/AAAAAD+gQAAAADkrQAAAADA1AAAAACU/wAAAAD/jAQJBATmtAQHBwTF2AQFCASe/wAAAAD/igEGAQHmswEEBAHE1wECBQGc/wAAAAD/hgAAAADlsAAAAADC1gAAAACZ/wAAAAD/7dfZ2Nj789fY2Nf2+dfY2Nfw9QAAAAD/5MTFxMT57cTFxcTx9sTExcTo9gAAAAD/gwAAAADlrwAAAADB1QAAAACW/wAAAAD/iwMIAwPmtAMGBgPF1wMEBwOd/wAAAAD/jAMIAwPmtAMGBgPF2AMEBwOd/wAAAAD/ggAAAADkrgAAAADA1AAAAACW/wAAAAD/3bO2tLT46bO1tbPu87S0tbPi9wAAAAD/8+bm5ub99+bm5ub5++bm5ub19AAAAAD/iAABAADmsgAAAADD1gAAAACa/wAAAAD/igAFAADmswADAwDE1wABBACc/wAAAAD/jAUJBQXmtAUICAXF2AUGCQWe/wAAAAD+gQAAAADkrQAAAADA1AAAAACU/wAAAAD/y4qNi4v03YqNjIrk7YuMjYrT/AAAAACZ////////////////////////igAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['two-stacked-squares']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACK////////////////7kEAAgAAAAAAAAD72ZmbmpqampqampqX+6MABAAAAAAAAAD/lAAAAAAAAAAAAAAA66oABAAAAAAAAAD/ngQIBAQEBAQEBQQE7KgABAAAAAAAAAD/nAAEAAACAQAAAQEA9q0ABQABAwAAAAD/nAAEAAAAAAAAAAAAQykAAAAAAAAAAAD/nAAEAgBCxM/Pz8/PwsfPz8/KawAAAAD/nAAEAgDH/////////////////wAAAAD/nAAEAQDJ/Pr9/f39/f39/f38/gAAAAD/nAAEAQDJ//z//////////////wAAAAD/nAAFAQDJ//z//////////////wAAAAD+nAADAQHJ//z//////////////wAAAAD/mQABAADK//z//////////////wAAAADr/+bn5kS7//z//////////////wAAAAA7oa6trC+///z//////////////wAAAAAAAAAAAADK//z//////////////wAAAAACBAMDBQHI//z//////////////wAAAAAAAAAAAQDJ//z//////////////gAAAAAAAAAAAgDK//z//////////////wAAAAAAAAAAAwBl9fz///////////37mQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['speedometer']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAABAgAAAAAAAAAAAAACAAAFOGWAgGJADQIBAF5SAAAAAAAAAAMACXXY///////QHgACjP9xAAAAAAAAAwAx0f///vn6/5oLABu6/6kAAgAAAAADADrx//v9+//7bgAAQOH/2hEEAgAAAAACGur/+//7/+JBAABt+//4OAAAAQAAAAAAqP/7//z/vR0ACpz/+v9xABd5AAAAAAA1/f3//P+tAwAmx//4/6wAAKH/LwAAAACX//z+/uoRAEnp//n/3RIAZf/9lQAAAADY//37/6QAKPj/+vz7OQAw9/z/1wAAAAD2///7/4wCWP/2+f9wAA7W//z/9QAAAAD////8/64AHef//6kAAKP/+////gAAAAD1///+/vMiACuLdAoAZ//7////9QAAAADW//3//f/LHAAAAABP+fz+//3/1gAAAACT//z///3/6IhaY6n///7///z/lAAAAAAx/P3////9/////////v////38MQAAAAAAov/4+/v7+vf4+Pj7+/v7+P+iAAAAAAACFub//////////////////+YXAgAAAAACADGcnJ2dnZ2dnZ2dnZ2cnDEAAgAAAAAAAQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['location-pin']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAymNn09NeULgABAQAAAAAAAAAAAAECAYb3////////9H8AAgEAAAAAAAAAAQMBqf///P37+/38//+gAAMAAAAAAAAAAwB+//n//f/////9/vn/cwADAAAAAAACAB/4/P7+//CztPL//v788xkAAgAAAAAEAHr/+/3/xR8AACPM//37/28ABAAAAAADALj++/72IQAFBQAq+f37/q0AAwAAAAAAAND/+v/IAAMAAAIA0v/6/8YAAQAAAAABAM3/+v/RAAQBAQMB2v/6/8MAAgAAAAADAKz++/39PwAAAABJ/v37/qIABAAAAAAEAGT//P7/5k0LDFLq/v78/1kABAAAAAABAQ/o/v3////j5f////3+4QsBAQAAAAAAAwBW//v9/v3///3+/Pz/TAADAAAAAAAAAAMAdv///f/9/f/9//9tAAMAAAAAAAAAAAADAFDX//7///7/00oAAwAAAAAAAAAAAAAAAwAIsf78/P6oBgADAAAAAAAAAAAAAAAAAAYARP/8/f85AAYAAAAAAAAAAAAAAAAAAAEBE+///+gNAQEAAAAAAAAAAAAAAAAAAAACALv//7AAAwAAAAAAAAAAAAAAAAAAAAADAVb49UwBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['location-pin-map']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAADAAAAAAAAAAAAAAAAAAAAAAACAAUrKwUAAgAAAAAAAAAAAAAAAAAAAAIAXtr9/dpeAAIAAAAAAAAAAAAAAAAAAwBi////////YQADAAAAAAAAAAACBAECAQ/s/f/Gxv/97A8BAgEEAgAAAAAAAAAAAED//7gAALj//0AAAAAAAAAAAAAefNpxAEv//6QAAKT//0oAcdp8HgAAAADf/7k8ABz4/PuVlfv89xwAPbn/3wAAAAD/cgAABgCF//3///3/hQAGAABy/wAAAAD+bgMGAAACjv75+f6OAgAABgNu/gAAAAD/cAACXV0BAGb//2UAAV1dAgBw/wAAAAD/cAAAz9AAAgr19AoCANDPAABw/wAAAAD/cAAAwMEAAwLa2gIDAMHAAABw/wAAAAD/cAACxMUDBQAaGgAFA8XEAgBw/wAAAAD/cgEAvr8AAgQhJQQCAL++AAFy/wAAAAD9ZAAq2981CAC5ygAGNN/bKgBk/QAAAAD/ws7/8u//76TZ4aLu/+/y/87C/wAAAACY8L5hGBJMmuX//+WaTRIYYb7wlwAAAAAACAAAAAAAAAArKwAAAAAAAAAIAAAAAAACAAMEAQEDBAAAAAAEAwEBBAMAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['crown']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgAAAAAAAgA4OQABAAAAAAACAQAAAAAAAAECAAADAEX8/UcAAwAAAgEAAAAAAAABJgAABAICCd3//90JAgIEAAAnAgAAAACt/bkwAAMAg//7+/+AAAMAMrr9sQAAAAD4///5hgYl+Pz+/vz2IAiJ+v//+gAAAADX/vv//83L//3///3/yND///v+2QAAAAC9//3+/P///v/////+///8/v3/vwAAAACf//z///39/////////f3///z/oQAAAACA//z///////////////////z/gQAAAABh//3///////////////////3/YgAAAABE//7///////////////////7/RQAAAAAq+v/+/////////////////v/6KwAAAAAV6//9/Pv7/P3+/v38+/v8/f/rFQAAAAAE1vz///////////////////zWBAAAAAAAyv/ptH9YPi8oKC8+WH+06f/KAAAAAAAAfFkAAAQfNkZOTkY2HwQAAFl8AAAAAAABABl7yfH///////////HJexkAAQAAAAABG+b///////z7+/z//////+YbAQAAAAABAR9trNTr+P7///7469SsbR8BAQAAAAAAAAAAAAMWJzQ7OzQnFgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['flame']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEP3vXRhhwAAwAAAAAAAAAAAAAAAAAABAFQ//7//+dWAAMAAAAAAAAAAAAAAAAAAwC+//v+/P//UQADAAAAAAAAAAAAAAAEAE3//P////z+6xMBAQAAAAAAAAAAAAIBFeX+/f/////7/3EABAAAAAAAAAAAAQMBuf/8///////8/rkBBQEAAAAAAAAAAwCH//v////////9/9gAAAAAAAAAAAADAD//+/7////+///9/9cOOxwAAQAAAAACAcX//P////////////Ti/7cAAgAAAAAAKf7+//////39/f7//////vQVAAAAAAAAVv/8///9/85c//39//79/f89AAAAAAAAZf/7///7/4oAev///v///P5TAAAAAAAAWf/7///9/0ACAD7f/v3//P9OAAAAAAAAMf/+//7/9BcCCQBw//v//v8sAAAAAAABBdv+/f7+9x0ABACJ//v9/dgEAQAAAAAEAGr/+v/9/7MbBkvx/v76/2kABAAAAAABAgTD//n//v/w3f///vr/xAQCAQAAAAAAAgEX0//+/fz///38/v/UGAECAAAAAAAAAAIAEqP9/////v///qMSAAIAAAAAAAAAAAACAABCpOD6++KlQgAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['lock-closed']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAUtT//8I4AAIAAAAAAAAAAAAAAAAAAwBu/+KVnfP7RgADAAAAAAAAAAAAAAACACj/tAgAABna7A4BAQAAAAAAAAAAAAAEAIj+GQAHBwBE/1UABAAAAAAAAAAAAAMFAbHqAAIBAwIX/nwBBgMAAAAAAAAAAQAAAK/mAAAAAAAT/3oAAAABAAAAAAACAGTCye/6y8vLy8rQ/+TJukcAAgAAAAAAR/////////////////////okAQAAAAAAhv34/f7//Pz7+/z9//79+f9XAAAAAAAAg//7/////////////////P5XAAAAAAAAhP/7/////v/h6v/+/////P9XAAAAAAAAhP/7/////v8kVf/8/////P9XAAAAAAAAhP/7//////8ZSP/8/////P9XAAAAAAAAhP/7//////8dS//8/////P9XAAAAAAAAhP/7/////v8UR//8/////P9XAAAAAAAAhP/7/////v+/0P/+/////P9XAAAAAAAAhP37////////////////+/xXAAAAAAAAhv/8/Pz9/v/8/f/+/fz9/v9WAAAAAAABLs/8////////////////+L0WAQAAAAABAAM3c6nQ6ff+/fXlyaFqLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['bell']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAABawO349+q2SwABAAAAAAAAAAAAAAECCaj//////////5MBAwEAAAAAAAAAAAIArf/7/f7///79/P+QAAMAAAAAAAAAAwBQ//r//////////vv/NQADAAAAAAAAAwCy/fv///////////v+kwAEAAAAAAABAArl//7///////////3/zQABAAAAAAADADP//v////////////7/9hoAAgAAAAAEAGv/+//////////////8/00AAwAAAAADAKb/+//////////////7/4gABAAAAAAABNz//f/////////////8/8EAAgAAAAAAJvz////////////////+/+8RAAAAAAAAW//8/////////////////f8/AAAAAAAAlf/7////////////////+/93AAAAAAAAy//9/////////////////P+wAAAAAAAi8/v6/Pz+//39/f3//vz8+vvjDgAAAAA7///////////////////////3IQAAAAACNXCatsP4+Nzn5df88sK0lWosAAAAAAAAAAAAAACl+ioAAED/gQAAAAAAAAAAAAAAAgQEBQIi6fOWnv/WEgMEBAQCAAAAAAAAAAAAAAIALcD//7AdAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['compass']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECABBpue07ZemxXwkAAwAAAAAAAAAAAQEAYN3///8nU////9NQAAMAAAAAAAABAwGa///8/P4bTP74/f//hQADAAAAAAADAJv/+v3//f+nvP77/f37/4EAAwAAAAAAXP/6/////fv////////++/9DAAAAAAAP4/39///+/////+/M0P/+/P7OBAAAAABo//z///7/xoZUNBgAB+T//f3/SgAAAAC6/Pv9/P/GAAAcAAABFO7//Pr9nAAAAAD6////+/+HALH/24kBN//+////4AAAAABBLS6q/v9YBu39//gBW///iCwuQAAAAABeTE24//8nLP///7oBjv/+nEtMWgAAAAD8//////ERCoTL82MAuP/7////4gAAAAC2+/n7/8kAAAAAAwAf6f7+/fj7mAAAAABi//39/8oHDzJWfa3p//7///3/RQAAAAAL3v79///c5////////v///P/HAgAAAAAAU//6/v////////z+///++/87AAAAAAADAJD/+/39/P+Qq//9//z8/3YAAwAAAAABAwCO///9+/4aSv74/f//eAADAAAAAAAAAQIAVNP///8nVf///8hEAAMAAAAAAAAAAAADAAlcq+E7Y92jUQIAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['controller']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAAAAAAAAAAAAAAAAAwAAAAAAAAAAAQAALmVyc3Nzc3NzcVgXAAIAAAAAAAABAQyj///////////////ubQACAAAAAAACArb//fv7+/v7+/v7+Pj//2oAAwAAAAAAU//5/vz+/////////////fMVAAAAAAAApf35/////f////r7kWPw+f9SAAAAAAAAyP//2UfX//3/////HwDb//+AAAAAAAAO5f/hlgCT4f39/p6Nxqu/fviwAAAAAAAr+v8fAAkAHf/+9QAA8f9BAMniAQAAAABQ//ywbABqr/39/6qavp7Hjvj1HQAAAAB5//n/zxTN//z/////HADa//7/RgAAAACj//z8+vD6/P////r7onfz+vv/dQAAAADL//3///////39/f7///////z/pwAAAADu//7///7//v///////Pv///3/1gAAAAD+///////8/8o/ReD//f////7/7gAAAADj/f3///77/DAAAEP/+v7///z90wAAAABq//77+/3/hAAGBgCP//v7+/3/XwAAAAAAhv////yTAgMBAQMFqP////+CAAAAAAABAC1kYCkAAAAAAAEAAD93cTAAAQAAAAAAAgAAAAACAAAAAAABAQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['magnifying-glass']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAEmj2/T026NJAAADAAAAAAAAAAAAAwAotf//////////tSgAAwAAAAAAAAADAD/u//+0akREarT//+4/AAMAAAAAAAABJfH/2EEAAAAAAABB2P/wJgECAAAAAAABuv/aGgADBAMDBAMAGtr/vgECAAAAAABI//s7AAUAAAAAAAAFADv6/0MAAwAAAACo/7MABAAAAAAAAAAABACz/p4ABAAAAADh/2EBBAAAAAAAAAAABAFh/9ICAAAAAAD5/z0AAwAAAAAAAAAAAwA8/+kOAAAAAAD7/zoAAwAAAAAAAAAAAwA6/+sPAAAAAADm/1kBBAAAAAAAAAAABAFZ/9cDAAAAAACz/qYABAAAAAAAAAAABACl/qgAAwAAAABX//YpAAQAAAAAAAAEACn1/1IABAAAAAAFzP/HCgAFAwICAwUACsj/0AYBAQAAAAAAOPz/wSYAAAAAAAAmwf/4MgAFAAAAAAADAFr7/++SRyYmR5Lv////nQkABAAAAAAAAwBD1P////7+////1VDG/8YeAAAAAAAAAAMACma56P396LpmCwAf5f/hQAAAAAAAAAACAAAADyIiDwAAAAUAOPH/6QAAAAAAAAAAAQQCAAAAAAIEAQAEAF3ndgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['sword']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABACY8vL08/PscwAAAAAAAAAAAAAAAAAEAHH/////////6QAAAAAAAAAAAAAAAAMARf/8/v////7+6AAAAAAAAAAAAAAAAgAf6/79//////7/6AAAAAAAAAAAAAABAwbK//z///////7/6AAAAAAAAAAAAAAEAJ7/+/z+//////7/5gAAAAAAAAAAAAQAbf/6/v////////3+7wAAAAAAAQMAAwBA/fr9/6no//7//f//gwAAAAAAAAABARvo/fr/awC4//z8//lhAAAAAAAAKbEPAMf/+f9sAID+/fv/4DoAAwAAAAAASv9ci//4/24Aff/8+/+9GQAEAAAAAAACC77///z/cAB7//n+/5IDAAMAAAAAAAACAg7C//lmAHj/+P/6ZgABAgAAAAAAAAAAAAAFv/9Zav/3/+I9AAQBAAAAAAAAAAAAOKsqBMT///3/wRsABAAAAAAAAAAAAACf///lJgTA//iJAAADAAAAAAAAAAAAAAD9/vn/5C0MwP9bGAQBAAAAAAAAAAAAAABx//35/7EADLz/uQADAAAAAAAAAAAAAAAAbv///zgBAARGKAABAAAAAAAAAAAAAAAEAHLtoQECAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['crosshairs']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAADbyAAAAAMAAAAAAAAAAAAAAAAAAgAHQYT/+3o7AgADAAAAAAAAAAAAAAEBAF3U///9////zFAAAgAAAAAAAAAAAQMCnP//3Kf/+qXk//+JAAMBAAAAAAAAAwCc//h2CwDo1gARhP//hAADAAAAAAADAFb/9ksAAAIZFQMAAGD8/z8AAwAAAAACBtf/eAAGAQIAAAEBBgCS/78BAwAAAAAAO//gBQQBAAAAAAAAAgMT8P0kAAAAAAAAff6gCQABAReZkRABAQALuv9lAAAAAADJ+P7z6lEBAKf//5EAAWns9P32swAAAADc//76+lsAAK///5oAAHX8+v3/xQAAAAAFiP6kFwABAR+rpBYBAQAYvP9wAgAAAAAAPv/aAAQBAAAAAAAAAgMM7P4mAAAAAAACCNz/cQAGAQEAAAEBBgCL/8UCAwAAAAAEAF3/80UAAQRdUwQAAFn6/0UAAwAAAAAAAwCi//ZxCQj/9QAPf/3/igADAAAAAAAAAQIEof//26X69KPi//+OAAMBAAAAAAAAAAEBAGDU///+////zFMAAgAAAAAAAAAAAAABAgAHQYT/+3o7AgACAAAAAAAAAAAAAAAAAAMAAADbyAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['pencil']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAQ962DgADAAAAAAAAAAAAAAAAAAAABQRO7///whIAAwAAAAAAAAAAAAAAAAADAACv//j7/88XAAAAAAAAAAAAAAAAAAQAUUYAtf/7+//TIAAAAAAAAAAAAAAABQBO//c8ALf/+/v/zwAAAAAAAAAAAAAFAFH8/f/0PQC4//j/1AAAAAAAAAAAAAUAVPz+/v3/9D0At//dJwAAAAAAAAAABQBX/f79///9//Q6AJ8sAAAAAAAAAAAFAFn+/f3//////f72QAAAAgAAAAAAAAUAXP/9/v///////f/uOgMEAAAAAAAABABf//3+///////9/+4zAAIAAAAAAAAEAGL//f7///////3/8TgABAAAAAAAAAAAY//9/v///////f/0PQAEAAAAAAAAAABl//3+///////9/vdCAAQAAAAAAAAAAAD2//7///////3++UcABAAAAAAAAAAAAAD//////////f77TAAEAAAAAAAAAAAAAAD+///////+/f1RAAUAAAAAAAAAAAAAAAD+//////3+/1cABQAAAAAAAAAAAAAAAAD//////v/9WwAEAAAAAAAAAAAAAAAAAACh/P3+/exhAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['pencil-square']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMDIyMjIyMjItAwABBAWP6HkAAwAAAAC3////////////OQAFAG3//P99AAAAAAD/o0xPTExMTE1HCwAFJQ26//j/hgAAAAD9cgAAAAAAAAAAAACg8jIAvv/88AAAAAD/fAMHAwMDAwUFAJ7///A1Ab7/ZwAAAAD/egAEAAAAAQIAof/7/P/vMA1VAAAAAAD/egAEAAACAgCk//r///z/9RcAAwAAAAD/egAEAAEBAaf/+v///vv/gQcIAQAAAAD/egAEAQIEqv/6////+/+DAAAAAAAAAAD/egAEAgGg//r////7/4kAAw8/AgAAAAD/egAGAB3//f7///r/jwAHAFj/IQAAAAD/egAGACj7/v3++v+VAAMFAF3+JgAAAAD/egAGACX//////5oAAwEEAFz/JQAAAAD/egAFAQi3+vnzlAACAQAEAFz/JQAAAAD/egAEAQABISQaAAEBAAAEAFz/JQAAAAD/egAEAAAAAAAAAgAAAAAEAFz/JQAAAAD/fAQIBAQFBgYGBAQEBAQIBF//JQAAAAD+cAAAAAAAAAAAAAAAAAAAAE//JQAAAAD/u3p9e3t7e3t7e3t7e3t9eqv/JAAAAACh//////////////////////+rBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['trash-can']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwFP8f/////xTwEDAAAAAAAAAAAAAQMEBQDJ2XZ6enbYygAFBAMBAAAAAAAAAAAAAAv9gQMHBwOB/QsAAAAAAAAAAAAAFlCErdT/9ff39/f1/9SthFAXAAAAAAAt/f/////////////////////9LQAAAAARWMj7+f3//f7+/v79//35+8hYEQAAAAABAKL/+//////////////7/6IAAQAAAAAFBJT/+///6//////r///7/5QEBQAAAAAEAID/+f/XEs///88S1//5/4AABAAAAAAEAG3/+f/UALP//7MA1P/5/20ABAAAAAAEAFr/+v/kAaX//6UB5P/6/1oABAAAAAADAEn/+//uAJT//5MA7v/7/0kAAwAAAAADADj//f/4CIP//4MI+P/9/zgAAwAAAAACACj+////C2n//2kL/////igAAgAAAAACABr1//3/Pn3//30+//3/9RoAAgAAAAABAA7q//3/+v3///35//3/6g4AAQAAAAABAATc//3///////////3/3AQAAQAAAAAAAADT/Pr9/f7///79/fr80wAAAAAAAAAAAwCl////////////////pQADAAAAAAAAAQEVdqrQ6ff+/vfp0Kp2FQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['book-closed']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgB83gR48e3w8PDw8O/vxSMBAgAAAAAEAGb/+QKB//7////+/////68AAwAAAAACAMz98gOA/vr///////79/dYAAAAAAAAAANH/9AOA//7RL1Cb2P/9/9EAAAAAAAAAANH/9AOA//93ACYABHX//9IAAAAAAAAAANH/9AOA//8sQv/ZB2H//9IAAAAAAAAAANH/9AN+/+IAgv/gALX//9IAAAAAAAAAANH/9AN+/8wCADU+B+v//9IAAAAAAAAAANH/9AOA//zSjEMKU//7/9IAAAAAAAAAANH/9AOA//v////z+P/8/9IAAAAAAAAAANH/9AOA//v9+/z////9/9IAAAAAAAAAANH/9AOA//v////+/v/9/9IAAAAAAAAAANH/9AOA//v////////9/9IAAAAAAAAAANH/9AOA//v////////9/9IAAAAAAAAAANH/9AOA//v////////9/9EAAAAAAAAAANH+8wOA//v////////8/tUAAAAAAAAAAM///AeG/////////////8gAAQAAAAAAAOLAHAAEGxobGxseG8XYHwsAAQAAAAADAL/fZG9pZGRkZGRmY9bnaUMAAQAAAAACASze/////////////////8YAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['check']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQEAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABYOaJAAAAAAAAAAAAAAAAAAAAAAAAgEFsv//0gAAAAAAAAAAAAAAAAAAAAACAQWy//f95gAAAAAAAAAAAAAAAAAAAAIBBbL/+P/2SQAAAAAAAAAAAAAAAAAAAgEFsv/4/vlIAAAAAAACBAQAAAAAAAACAQWy//j/+UoABQAAAAAAAAAAAAAAAAIBBbL/+P74SQAEAAAAAAAum3QAAgEAAgEFsv/4/vlKAAQAAAAAAADn//+cAAIDAQWy//n/+UoABAAAAAAAAAD8+/n/mwAABrP/+f75SgAFAAAAAAAAAABg//35/5oRtP/4/vlKAAQAAAAAAAAAAAAAXv/8/P/j//v++UoABQAAAAAAAAAAAAAFAGH//fz/+/75SgAFAAAAAAAAAAAAAAAABQBh//z4//lLAAQAAAAAAAAAAAAAAAAAAAQAYv//+EsABQAAAAAAAAAAAAAAAAAAAAAEAEeLNwAEAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAMEAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['three-dots-horizontal']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAwQDAQAAAAMDBAIAAAACAwQDAQAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAMlJxWGAACAGynaCsAAgA8qn07AwAAAABg////6iwAHP////1lAQDG////sgAAAACo+vj6/0gAV/z49/+QABvv+/n+5AAAAADu//r76hEAmP/6+f9KAE7//vj8mgAAAACK7f//swABSd////MTAR3G/P//TQAAAAAAFEt2IAACAAk3c0IAAgAAKGhjAwAAAAACAAAAAAAAAgAAAAABAAEAAAAAAAAAAAAAAQMEAgAAAAEDBAMAAAAAAgQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['three-bars-horizontal']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBAQEBAQEBAQEBAQEBAQEBAQEAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnk5KTk5OTk5OTk5OTk5OTk5KTWwAAAAD/////////////////////////+gAAAABJdHN0dHR0dHR0dHR0dHR0dHN0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAIISAhISEhISEhISEhISEhISEhBQAAAADg////////////////////////zgAAAADE6unp6enp6enp6enp6enp6ejptAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAEAQEBAQEBAQEBAQEBAQEBAQEBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkkY+QkJCQkJCQkJCQkJCQkI+QWAAAAAD/////////////////////////+gAAAABNd3Z3d3d3d3d3d3d3d3d3d3Z3QwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBAQEBAQEBAQEBAQEBAQEBAQEAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['chevron-small-down']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAEBAAAAAAADAAADAAAAAAAAAAAAAAAAAwAAAgAAAAAAEBAAAgAAAAAAAAAAAAACAA8SAAAAAABj6OljAAQAAAAAAAAAAAQAYObqZwAAAAD7////ZwAEAAAAAAAABABm////9QAAAADw//v8/2YABQAAAAAEAGj//Pr/2wAAAABQ+f/8/P9lAAQAAAQAaP/8/P/wOwAAAAAATvz+/P3/ZAAFBABq//z8//Q9AAAAAAAFAFH7/vz9/2MAAGv//fz/9UEABAAAAAAABABR+/78/f9ZYv/8/P/2QwAEAAAAAAAAAAUAUvz+/f////78//hGAAUAAAAAAAAAAAAFAFL9/v3//v3/+EgABQAAAAAAAAAAAAAABQBT/P78/P75SwAEAAAAAAAAAAAAAAAAAAQAVP3///tOAAUAAAAAAAAAAAAAAAAAAAAEAE7U2EwABAAAAAAAAAAAAAAAAAAAAAAAAwABAwACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['chevron-small-up']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAgAQEQACAAAAAAAAAAAAAAAAAAAAAAAEAGXo6mIABAAAAAAAAAAAAAAAAAAAAAQAaf////9jAAUAAAAAAAAAAAAAAAAABABp//z8/Pz/YQAFAAAAAAAAAAAAAAAEAGj//P3///39/14ABQAAAAAAAAAAAAQAZ//8/P/6/P/8/f9bAAQAAAAAAAAABABn//38//pETf7+/P3+WAAFAAAAAAAEAGf//Pz++k4AAFX9/vz+/lUABQAAAAAAZP/9/P77TwAEBQBU/P78/v1RAAAAAABk//38/vtPAAQAAAUAU/z+/P76TQAAAAD4/fv++1AABQAAAAAFAFL7/vr+5QAAAADz///8UQAEAAAAAAAABABR/P//7gAAAABP1tdNAAQAAAAAAAAAAAQAStPZUwAAAAAAAgIAAgAAAAAAAAAAAAADAAEDAAAAAAADAAADAAAAAAAAAAAAAAAAAwAAAgAAAAAAAQEAAAAAAAAAAAAAAAAAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['chevron-large-left']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAmtg3AAIAAAAAAAAAAAAAAAAAAAABAgCd//9+AAQAAAAAAAAAAAAAAAAAAAECAKL//9IYAQEAAAAAAAAAAAAAAAAAAQIAo///1RkAAgAAAAAAAAAAAAAAAAABAgCk///WGgADAAAAAAAAAAAAAAAAAAICAab//9caAAMAAAAAAAAAAAAAAAAAAQIBp///1xsAAwAAAAAAAAAAAAAAAAABAAGp///YHAADAAAAAAAAAAAAAAAAAAECBar//9ocAAMAAAAAAAAAAAAAAAAAAAMAkf/7zxsAAwAAAAAAAAAAAAAAAAAAAAQAnv/7wgkBAgAAAAAAAAAAAAAAAAAAAAECDsD//8YOAAIAAAAAAAAAAAAAAAAAAAABAAvA///FDgACAAAAAAAAAAAAAAAAAAAAAgALwP//xQ4AAwAAAAAAAAAAAAAAAAAAAAIAC8D//8UOAAIAAAAAAAAAAAAAAAAAAAACAAvA///FDgACAAAAAAAAAAAAAAAAAAAAAgALwP//xg8AAQAAAAAAAAAAAAAAAAAAAAIAC8H//8USAgEAAAAAAAAAAAAAAAAAAAACAAu8//97AAQAAAAAAAAAAAAAAAAAAAAAAgAMwfFCAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['chevron-large-right']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAXdtxAAQAAAAAAAAAAAAAAAAAAAAAAAQAt///cgAEAAAAAAAAAAAAAAAAAAAAAAIBNu7//3YABAAAAAAAAAAAAAAAAAAAAAACADnw/v93AAQAAAAAAAAAAAAAAAAAAAAABAA68f7/eAAEAQAAAAAAAAAAAAAAAAAAAAQAO/H+/3oABAAAAAAAAAAAAAAAAAAAAAAEADzy/v97AAQBAAAAAAAAAAAAAAAAAAAABAA88v7/fQADAAAAAAAAAAAAAAAAAAAAAAQAPvT//34AAgAAAAAAAAAAAAAAAAAAAAAEADjo+/9eAAMAAAAAAAAAAAAAAAAAAAADACHi+/9oAAQAAAAAAAAAAAAAAAAAAAQAKef//5YBAgAAAAAAAAAAAAAAAAAABAAq5f//lgACAQAAAAAAAAAAAAAAAAAEACnl//+WAAMBAAAAAAAAAAAAAAAAAAQAKuX//5cAAwEAAAAAAAAAAAAAAAAABAAq5f//lwADAQAAAAAAAAAAAAAAAAACACrl//+XAAMBAAAAAAAAAAAAAAAAAAIBKeX//5gAAwEAAAAAAAAAAAAAAAAAAAQAs///lAADAQAAAAAAAAAAAAAAAAAAAAMAbPWZAAMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['heart']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAAAAAAAADAwAAAAAAAAIBAAAAAAABAAAycot9TQoAAApNfYtyMgAAAQAAAAAADKP//////91RUd3//////6MMAAAAAAAFuf/9+/v7/P/////8+/v7/f+5BQAAAABz//r///////3+/v3///////r/cwAAAADb/f3///////////////////392wAAAAD7////////////////////////+wAAAAD6////////////////////////+QAAAADY/v3///////////////////3+2AAAAACI//z///////////////////z/iAAAAAAc8P3+/////////////////v3wHAAAAAAAcf/6////////////////+v9xAAAAAAADAbb/+v/////////////6/7YBAwAAAAABAQ7L//r///////////r/yw4BAQAAAAAAAgATxv/6/v/////++v/GEwACAAAAAAAAAAIAC6r//vz///z+/6oLAAIAAAAAAAAAAAACAAB4+//7+//7eAAAAgAAAAAAAAAAAAAAAQIAOcr//8o5AAIBAAAAAAAAAAAAAAAAAAADAANkZAMAAwAAAAAAAAAAAAAAAAAAAAAAAwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['clock']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAApdr9/z8tunUwMAAwAAAAAAAAAAAQIAVtX//////////8pGAAMAAAAAAAABAwCQ///9/f78/P78/f//egADAAAAAAADAJH/+/3///////////z8/3cAAwAAAAAAVP/6/v///f+Lnv/8///++/88AAAAAAAM3v79/////f8hQf/8/////P/IAwAAAABj//3//////f8xTv/8//////3/RQAAAAC6/vz//////f8uS//8//////z+mwAAAADp//7//////f8wT/38//////3/0AAAAAD8/////////f8nQ//7//////7/5gAAAAD9/////////P98AJb//f////7/5wAAAADr//7///////3/bgCR//z///3/0QAAAAC9/vz///////79/2hc//z///z+nwAAAABo//3////////+/v////////3/SgAAAAAP4/39//////////3+/////P7OBAAAAAAAXP/6///////////////++/9DAAAAAAADAJv/+v3///////////37/4EAAwAAAAABAwGb///9/f7///79/f//hQADAAAAAAAAAQEAYN3//////////9NQAAMAAAAAAAAAAAECABBpu+n8++WzXwkAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['key']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAMeLhZgAAAwAAAAAAAAAAAAAAAAAABAAu5f///7YfAAMAAAAAAAAAAAAAAAADAC7q//z+/P/nOAADAAAAAAAAAAAAAAIALun//P/9//n/8TQAAgAAAAAAAAAAAgEg6P/8///////8/+UXAgAAAAAAAAAABABg//r//vlmKrH/+f+uAAAAAAAAAAAABABg/vv8/88AAC///Pz/UAAAAAAAAAAABAJY//v+/vJGEJb//P380QAAAAAAAAAABgCB//v//v/+6v////v/sgAAAAAAAAAEAGT9/f////7///3/+/+8DgAAAAAAAAUAYv/9/v/////+/v/7/8ALAAAAAAAABABh//z+/////vz9/fv/wQwAAgAAAAAFAGD//f7////7//////+9DAACAAAAAAAAXP/9/v//////71hDQz4EAAIAAAAAAABg/v3+///+++2rNgAAAAAAAQAAAAAAAAD7//7////8/7kAAAMDAwMBAAAAAAAAAAD//v////73gjsEBAAAAAAAAAAAAAAAAAD+/v//+//fAAABAAAAAAAAAAAAAAAAAAD//////+49BAQAAAAAAAAAAAAAAAAAAACT8PLz4EEAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['flag']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZsAAka7fZy4QWAAAAAAY5gVcAAQAAAACM+rvy///////gdUJTldb+//8rAAAAAAA3/////f3+/fz/////////+/gjAAAAAAAJ3vz8///////9+/38+/37/7AAAwAAAAAApf/7///////////////9/0oABAAAAAAAY//7//////////////3/2wADAQAAAAAAJvz+/v////////////799VwABAAAAAABAtX//f/////////////+//5MAAAAAAAEAJb/+/78/P3//////////f7zPQAAAAAEAFL//P/////8/v////78/Pz/lgAAAAACABn0/+/FueT///z8/f////vCKAAAAAAAAgDPzxUAAA105////+2yaigAAAAAAAAABACJ8gIBAwAAEUheRhUAAAABAQAAAAAAAwA+/zsAAwEDAAAAAAACBAIAAAAAAAAAAQAK+IMABAAAAQMEAwEAAAAAAAAAAAAAAAMAwNAAAgAAAAAAAAAAAAAAAAAAAAAAAAQAc/0SAAEAAAAAAAAAAAAAAAAAAAAAAAIALf9LAAQAAAAAAAAAAAAAAAAAAAAAAAEAA/GiAAQAAAAAAAAAAAAAAAAAAAAAAAADAJigAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['tag']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQBZ3+jq6urq6ejjbwAAAAAAAAAAAAAEAFX6////////////6gAAAAAAAAAAAAUAV//+/f7+/v/+//7+6QAAAAAAAAAABQBW/v3+///+/+guVvz/6AAAAAAAAAAFAFb+/f7////9/9oAIfr/6AAAAAAAAAUAVv79/f///////v/R4v//6QAAAAAABABW/v3+//////////////7/6QAAAAAFAFb+/f3////////////9/f7/6AAAAAAAVP79/f////////////////7+6QAAAABW/P79//////////////////3/6AAAAAD1/v3//////////////////v79WgAAAACw//v////////////////+/f9YAAAAAAAJs//7//////////////79/1oABQAAAAAABrf/+v///////////v3/WgAFAAAAAAACAQe3//v////////+/f9bAAUAAAAAAAAAAgAHt//6//////79/1sABQAAAAAAAAAAAAIAB7j/+////v3/XAAEAAAAAAAAAAAAAAACAAe5//v+/v9cAAUAAAAAAAAAAAAAAAAAAgAHtf///FsABQAAAAAAAAAAAAAAAAAAAAIACbXtXwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['photo-camera']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQMCBAIKbH99fX9oBgIDAgIBAAAAAAACAAAAAACv////////oQAAAAAAAgAAAAAAEzU4Nn3/+fv7+/v6/3E2ODQPAAAAAABV6P/////+/////////v/////jSQAAAADx//3+/v3//v/7/P7///3+/vz/4wAAAAD//v/////////////+/f/////99AAAAAD+//////z/kS1sreT/////////8gAAAAD///////7/MAAAAA4+w/79////8wAAAAD//////f/iCQIFAwEAkf/7////8wAAAAD/////+/+pAAMAAQEG2f/9////8wAAAAD/////+/9gBAgCAwAq/f7/////8wAAAAD//////f8/AAAABANo//v/////8wAAAAD//////v7moV8lAACu//v/////8wAAAAD+///////////6zKX3//7/////8gAAAAD//P3+/v/++/z////////+/v389wAAAADX//////38/Pv6+fj7/P3/////xAAAAAAmrdzx////////////////79qkHAAAAAAAAAQVKT1NWWFlZWFYTDsoFAMAAAAAAAACAwAAAAAAAAAAAAAAAAAAAAADAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['image']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+kpmZmpqampqampqampqamZmSPgAAAAD4+ubo5+jo5+fn5+fn5+fn6Ob6+AAAAAD/awAAAAAAAAAAAAAAAAAAAABr/wAAAAD+cAAEAAcAAAAAAAAAAAAABABw/gAAAAD/cAACR96vDAIBAQQFAQAABABw/wAAAAD/cAAArP//MQADAgAAAAEABABw/wAAAAD/cAABOc2cBwIEAFZ4BwACBABw/wAAAAD/cAAFAAAAAAUAdP//ugkABgBw/wAAAAD/cAEGAAMCBQBz//v4/7oIAwFw/wAAAAD/cgAABQAEAHH//P7/+/+5CQBz/wAAAAD/agCm3mIAcf/8/v////v/uwBq/wAAAAD/dKH///+q//7+///////6/6R0/wAAAAD/8v/8/f///v///////////f/z/wAAAAD///3////8//////////////3//wAAAAD+/v/////////////////////+/gAAAAD/+/v7+/v7+/v7+/v7+/v7+/v7/wAAAAD9/////////////////////////AAAAABJmpydnZ2dnZ2dnZ2dnZ2dnZyaSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['cloud']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEBAQEBAEAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAAAAAAAAAADAAVQjqSTWgwAAwAAAAAAAAAAAAAAAAMAPND//////95RAAMAAAAAAAAAAAAAAwBA+P/7+/v7+///XQADAAAAAAAAAAABARDl//v///////z9+CUEBgIAAAAAAAAEAG//+//////////7/5IAAAADAAAAAAADAbv+/P/////////+/uyfficAAgAAAAABANH//f////////////////dkAAAAAAAAA9b+/f////////////77+v//RwAAAAAVwv79//////////////////z+ywAAAACo//3/////////////////////+gAAAAD4/f/////////////////////++wAAAAD7/P7///////////////////v/wwAAAACT//37/f////////////79+v/0MwAAAAAEkv/////8+/v7+/v7/P///9o8AAAAAAAAADma3v////////////fHbw0AAgAAAAAAAgAACC9Wd4yYmItyTSEAAAACAAAAAAAAAAIDAAAAAAAAAAAAAAABBAEAAAAAAAAAAAAAAQIEBAQEBAQEBAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['sun']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwComgADAAAAAgAAAAAAAAAAAAAAAgAAAgDYyAADAAABAAAAAAAAAAAAAAopAAAAAgCZjQADAQAAKwMAAAAAAAADAD7/bAIDAwIAAAMDAgWS/x0AAgAAAAAAAgWW/xUCAAAKCAAAAjX/cAICAAAAAAAAAAAAJgMAVbvi369AAAklAAAAAAAAAAAAAAABAACO////////agAAAgAAAAAAAAADAwMEAlv/+vz+/fv9/zYCAwMDAwAAAAAAAAABAs/9/P/////7/6YAAwAAAAAAAACju4MAF/L//v/////9/tUBA5S7kQAAAACyzI8AGPP//v/////9/9YAA6HMnwAAAAAAAAABAtH9/P/////7/qkAAwAAAAAAAAADAgIEAWD/+vz+/vv8/zoCAwMCAwAAAAAAAAABAACW////////cgAAAgAAAAAAAAAAAAAAHgIAXcPp5rhHAAgdAAAAAAAAAAAAAgOM/BUBAAAQDgAAAjX/ZwECAAAAAAADAD3/dgIDBAEAAAIDAgec/x0AAgAAAAABAA0zAAAAAgCPgwADAQAANQUAAAAAAAAAAAAAAgAAAgDYyAADAAAAAAAAAAAAAAAAAAEDAAAAAwCyowADAAABAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['moon']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAK77sOQADAAAAAAAAAAAAAAAAAAAAAwBS7f//owAEAAAAAAAAAAAAAAAAAAADAFT///j+mwAEAAAAAAAAAAAAAAAAAAABJvb+/fv/fQAEAAAAAAAAAAAAAAAAAAAAtf/7//v/gQAEAAAAAAAAAAAAAAAAAAA6/v3///v/oQADAAAAAAAAAAAAAAAAAACa//z///3/3AQBAAAAAAAAAAAAAAAAAADY//3////9/0cABAAAAAAAAAAAAAAAAAD2///////8/swBAwIAAAAAAAAAAAAAAAD//////////P+QAAIDAQAAAAAAAAAAAAD2//////////z/jwMAAAMEBAQEAgAAAADZ//7////////8/8hLBgAAAAAAAAAAAACc//z//////////P//2aOCfpyeNgAAAAA9//3///////////39////////8AAAAAAAuP/7/////////////fv7+/j+uwAAAAABKfj9/f///////////////f7vIgAAAAADAFj///v////////////7//9LAAAAAAAAAwBZ9v/+/P7////+/P//8lIAAwAAAAAAAAMALbT+//////////yvKAADAAAAAAAAAAADAABAmdf0/vTVljwAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['trophy']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAis7Mzs7Ozs7Ozc+wEAAAAAAAAAANUVZy////////////////oVVVFQAAAADA/////v39/f39/f39/f39////2QAAAADyuCA/+v/+//////////z/eCCf/wAAAACo6AAM8f/+//////////z/TQDQywAAAABd/yYE5//+//////////3/Owr+fQAAAAAe/2MC3P/9////////////Izz/NwAAAAAA4bMAyv/8/////////v/+BIn2BwAAAAAAf/8pe/77/////////f/EF/WjAAAAAAACDMz/w//9/////////f7Z7uYcAQAAAAABAA+T6vz//v/////+/f/trCAAAQAAAAAAAQAABjn0//3///77/20LAAABAAAAAAAAAAEDAABG9v/+//7/ggAAAwIAAAAAAAAAAAAAAQQAQOj+/Pt3AAQBAAAAAAAAAAAAAAAAAAAGAE/6/5EAAgEAAAAAAAAAAAAAAAAAAAIAdef8/fGlCwEBAAAAAAAAAAAAAAAAAwBi////////qgACAAAAAAAAAAAAAAABAAvn+/n8/Pv3/zwAAwAAAAAAAAAAAAABARHg////////+0MAAwAAAAAAAAAAAAAAAQAeYo+rsJpyNwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['bug']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAQAAAAIAHK/08qkWAAEAAAABAgAAAAAAAAAAAQEL0P/////GBgIBAAAAAAAAAAAbBwAABAB1/+fV1+n/ZQAEAAAKGAAAAADzYgAEAgNDLQAAAAAzQAMCBACB6wAAAAD/bgQIAwAARpEaN4s6AAADCASO/wAAAAD/dgAAAFXc//8qWv//z0QAAACX/QAAAADA/qWXqP//+/snU/v4//+hman/oAAAAAATnd3+//39/v8nVP/7/f7/99yNCQAAAAAAAA3g+/3//v8nVP/7//z7yAAAAAAAAAAFA3H/+////v8nVP/7///9/0kDBAAAAAADALn+/P///v8nVP/7///7/pAABAAAAAAAAdf//f///v8nVP/7///8/7MAAwAAAAAABdz//f///v8nVP/7///8/7kDAwAAAAADALj+/P///v8nVP/7///7/osABgAAAAAAZOv//v///v8nVP/7///9/9lQAAAAAACE/8P4/f7//v8nVP/7//7+7cr/YgAAAAD8mwCI//n+/v8nVP/7/vr/YAC66QAAAAD/bgIFr///+/4nVP34//+OAAGR/wAAAABuJwABA4n3//8nVf//7XAAAwA1ZQAAAAAAAAABAAAzldokTtSGIwACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['wallet']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjw5OTk5OTk5OTk5OTcGAAEAAAAAAABZ6v/////////////////WDwMCAAAAAAD0//14TE5MTExMTExMS0xUBgAAAQAAAAD//fxHEhYUFBQUFBQUFBQSISQHAAAAAAD+////////////////////+/zSGgAAAAD////+//////////////////7/ZAAAAAD//////v7+/v7+/v7+/v7+/vv9kgAAAAD////////////////+/Pz7/v3/uAAAAAD///////////////////////3/0wAAAAD//////////////v7xX0yQ7P7/5QAAAAD/////////////+/+aAAAATf//7wAAAAD//////////////P9QBw0HO///8wAAAAD//////////////P9bAAAAgv/+8AAAAAD//////////////v7ui0ZN5v7/6AAAAAD///////////////////////3/1wAAAAD////////////////++/39/v3/vQAAAAD9//////////////////////z+mQAAAAD//v7+/v7+/v7+/v7+/v7+/vv/bQAAAADA///////////////////////nJAAAAAAKRUpKSkpKSkpKSkpKSkpKSUofAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['shopping-cart']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADz//ZgBAcEBQUFBQUFBQUFBQUEAQAAAACNpu/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJr/iICBgICAgICAgICAgIByFQAAAAAIA2P+////////////////////wgAAAAADADH++vr7+/v7+/v7+/v7+/r74wAAAAABAArm//3///////////////z/nAAAAAAAAgC4//z///////////////3/UwAAAAAABACD//v//////////////v/tFgAAAAAAAwBN//z//////////////P64AAAAAAAAAgAe+P/7+/v7+/v7+/v79/53AAAAAAAAAAEC1P////////////////8tAAAAAAAAAAQAo/6ZkZKSkpKSkpKQkU0AAgAAAAAAAAQAa/82AAAAAAAAAAAAAAABAAAAAAAAAAIAI/r70NLR0dHR0dDRySsAAgAAAAAAAAACAEnK5OLj4+Pj5Ofl3C4AAgAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAC6FQAABAAEAFYBeAAIAAAAAAAAAAAEBDeH/+SQBAgMAtP//UgADAAAAAAAAAAEAE/P//y8AAwIAxf//YQAEAAAAAAAAAAACAF3MegACAAIAMr2XCAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['phone']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5buzSsBAgAAAAAAAAAAAAAAAAAAAAAWtv/+/8oCAgEAAAAAAAAAAAAAAAAAAADE//v/+/9eAAQAAAAAAAAAAAAAAAAAAAD//f///f7gDQEBAAAAAAAAAAAAAAAAAAD6//////z/UgAEAAAAAAAAAAAAAAAAAADs//7///v/PQADAAAAAAAAAAAAAAAAAADN//3/+v+RAAIAAAAAAAAAAAAAAAAAAACX//z7/5UAAgEAAAAAAAAAAAAAAAAAAABN//z/lgADAQAAAAAAAAAAAAAAAAAAAAAL3v6SAAMBAAAAAAAAAAAAAAAAAAAAAAAAf/8fAgMAAAAAAAAAAAMDAQAAAAAAAAABEvW2AAQAAAAAAAAAAQAAAAMAAAAAAAADAGn/XwAFAAAAAAEBAENSCgABAgAAAAAAAwCz/zkABQAAAQIAmf//2l8AAAAAAAAAAQIO0/c6AAMDAgCc//v7///DKQAAAAAAAAIAGNP/XwAAAJz/+v///fr/ygAAAAAAAAACABCy/7MumP/6//////778QAAAAAAAAAAAgAAbPj///z8/f7///v/jAAAAAAAAAAAAAEBABaB2v///////f+vAgAAAAAAAAAAAAAABAAADE+WzOv6+7sPAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['envelope']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9jI+Pj4+Pj4+Pj4+Pj4+Pj4+MPQAAAAD6////////////////////////+gAAAAD4//n5+/v7+/v7+/v7+/v7+fn/+AAAAAAZqf//+/7///////////77//+pGQAAAAA8AEna///8/////////P//2kkAPAAAAAD/phEAg/r//P3///38//qDABGm/wAAAAD9/+9sACO5///7+///uSMAbO///QAAAAD//P//yTMAWOT//+RYADPJ///8/wAAAAD///78//+WBwSZmQQHlv///P7//wAAAAD//////f7/5lwAAFzm//79/////wAAAAD////////7//+9vf//+////////wAAAAD//////////v3///3+/////////wAAAAD////////////8/P///////////wAAAAD//////////////////////////wAAAAD9/////////////////////////QAAAAD///37+/v7+/v7+/v7+/v7+/3//wAAAADC////////////////////////wgAAAAADK0ZcbX2Hj5SWlpSPh31tXEYrAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['microphone']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBn3/3+/vrTTQACAAAAAAAAAAAAAAADAGP/////////+j8AAwAAAAAAAAAAAAEBCOT+/P/////6/78AAgAAAAAAAAAAAAIAH/r//v/////9/t8EAAEAAAAAAAAAAAIAIPr//v/////9/98GAAEAAAAAAAAAAAIAIPr//v/////9/98GAAEAAAAAAAAAAAIAIPr//v/////9/98GAAEAAAAAAAAAAAIAIPr//v/////9/98GAAEAAAAAAAAAAAIAIPr//v/////9/98GAAEAAAAAAAAAAAIBHvn+/v/////9/t4EAQEAAAAAAAAAAAAAB9v/+f39/f34/7QAAAAAAAAAAAAAAAIdAFX/////////9TMAHAAAAAAAAAACACv9UwBGudnb29etLgB/9w0AAQAAAAABAge2/2MAAAAAAAAAA4D/jwIDAAAAAAAAAQAJpv/xysO2ucTO+v+HAAEBAAAAAAAAAAEAAD6Xv8T/9sO9ii4AAQAAAAAAAAAAAAABAgAAAADUpgAAAAADAAAAAAAAAAAAAAAAAAMAAADXpwAAAAIAAAAAAAAAAAAAAAAAAgA1cW/q0W9xJAABAAAAAAAAAAAAAAAABACV////////aAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['headphones']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAADWY4P////3WhiUAAAEAAAAAAAAAAgAXpP//yqOamqjT//+IBwABAAAAAAACACrj/4YcAAAAAAAAKqH/xBEBAQAAAAACFeLwOAAAAgQEBAMBAABW/8AEAwAAAAAArP80AAYCAAAAAAAAAgUAWv97AAAAAAA4/4IABgAAAAAAAAAAAAAFALP2FQAAAACl9xACAgAAAAAAAAAAAAADAjP/bQAAAADvvgACAAAAAAAAAAAAAAABAALpuwAAAAD/kQEEAAAAAAAAAAAAAAAAAgDE4gAAAAD+igQIAQAAAAAAAAAAAAACBwS86gAAAAD/gAAAAAEAAAAAAAAAAAIAAAC26wAAAAD/wHhrEwACAAAAAAAAAgAkcnjc4gAAAAD/////1xMBAgAAAAADAC/v////2QAAAAD//fv5/7kAAwEAAAEBEdv/+fr+2gAAAAD0////+v+LAAMAAAIDtf/7//3/zQAAAADJ/v3//vz/NwADBABh//r///z/mAAAAABi//v///v/YAAEBACQ/Pv//vz+NQAAAAAEwf/6/vz4IAACAwBF//v++v+WAAAAAAABGdH//v+YAAMAAAIBxf///7MHAgAAAAACABKg6a4QAgEAAAIBJMXmhQMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['speaker']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAQCAAAAAAAAAAAAAAMAWop9GAABAAAAAAAAAAAAAAAAAAAABQB4////ogAEAAAEAWUoAQAAAAABAwMGAGb/+vf7uAADAAAAAfS1AAAAAAAAAAAAVv/8/vz/tAADAQNFBHT8GQAAAAARSEpm+v7+//z/tQAEABf/WRD/aQAAAADS//////7///z/tQAEDwHXvADitwAAAAD//Pz8/v////z/uABW5gCN9gCp7QAAAAD9//////////z/uABN/x1X/wR//wAAAAD///////////z/twAt/jg//xNq/wAAAAD///////////z/twAt/Tc//xJq/wAAAAD9//////////z/uABP/xxY/wSA/wAAAAD//Pz8/v////z/uABV4QCP9QCr6wAAAADV//////////z/tQADCwHZugDktQAAAAATTE1r/P7+//z/tQAEABf/VhL/ZwAAAAAAAAAAXP/7/vz/tAADAQM+A3n7FwAAAAABAwMGAHD/+vj7twADAAAAAfWxAAAAAAAAAAAABACE////qQAEAAADAV4lAQAAAAAAAAAAAQMAa52QIQABAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['x']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACE98AQAAIAAAAAAAAAAAMAG832cAAAAAD//v/BDgACAAAAAAAAAwAY0P//8gAAAADE//j/xQ4AAgAAAAADABjU//j/rgAAAAATxv/3/8MNAAIAAAMAF9L/9/+2CgAAAAAAEMn/9//CDQACAwAX0v/2/7oIAAAAAAADABLK//f/wQwBABbR//f/uggAAgAAAAAAAwASy//3/8EFEND/9/+7CQACAAAAAAAAAAMAEsv/+P+9yP/3/7wJAAIAAAAAAAAAAAADABPO//v///v/vQoAAgAAAAAAAAAAAAAAAgAQxf76+v+1CAECAAAAAAAAAAAAAAAAAgAQxf76+v+1CAECAAAAAAAAAAAAAAADABPO//v///v/vQoAAgAAAAAAAAAAAAMAEsv/+P+9yP/3/7wJAAIAAAAAAAAAAwASy//3/8EFEND/9/+7CQACAAAAAAADABLK//f/wQwBABbR//f/uggAAgAAAAAAEMr/9//CDQACAwAX0v/2/7oIAAAAAAATxv/3/8MNAAIAAAMAF9L/9/+2CgAAAADE//j/xQ4AAgAAAAADABjU//j/rgAAAAD//v/BDgACAAAAAAAAAwAY0P//8gAAAACE98AQAAIAAAAAAAAAAAMAG832cQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['pin']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwBZ20AAAwEAAAAAAAAAAAAAAAAAAAAAAwIg5fdqAAIBAAAAAAAAAAAAAAAAAAADAABs7P3/kgACAQAAAAAAAAAAAAAAAAQAE6z///77/6YCAQEAAAAAAAACAQABAwA93P/7/v//+v+sAgIBAAAAAAAAAAMAAHL7//v///////r/pAADAQAAAAAzCwAUq//+/f/////////6/48ABAAAAAD/u0fd//v+////////////+v9kAAAAAABX/////P///////////////v/9OQAAAAAATvv8/v/////////////+/u7p4wAAAAAFAFP9/v3////////////7/14kUgAAAAAABABT/f/+//////////v/pAAAAAAAAAAAAAQAVu76/f///////f/YDAIDAwAAAAAAAAEGAK///f7////+/PkyAAMAAAAAAAAAAQQAjP+s+P/9///7/2kABAAAAAAAAAABBACH/4cAVv39/vz/pwAEAAAAAAAAAAAEAIb/ggAGAFb9/f7ZDgIBAAAAAAAAAAAAg/+DAAQBBQBV/v83AAQAAAAAAAAAAACS/4EABAEAAAQAUvm0DwIBAAAAAAAAAAD4kQAEAQAAAAAFAFz7LAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['circle-i']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAApdr9/z8tunUwMAAwAAAAAAAAAAAQIAVtX//////////8pGAAMAAAAAAAABAwCQ///9/f78/P78/f//egADAAAAAAADAJH/+/3///////////z8/3cAAwAAAAAAVP/6/v///f9nff/9///++/88AAAAAAAM3v79/////f1NZ//8/////P/IAwAAAABj//3///////////////////3/RQAAAAC6/vz///3/1Co2f//9//////z+mwAAAADp//7///3/21EETP/8//////3/0AAAAAD8//////////80Tf/8//////7/5gAAAAD9/////////PstTP/8//////7/5wAAAADr//7/////+/stS/v6//////3/0QAAAAC9/vz///////8yUv////////z+nwAAAABo//3///3/x5saLZvS//3///3/SgAAAAAP4/39//v/dAAQDgCR//v//P7OBAAAAAAAXP/6////9u7s7O74///++/9DAAAAAAADAJv/+v3///////////37/4EAAwAAAAABAwGb///9/P3+/v38/f//hQADAAAAAAAAAQEAYN3//////////9NQAAMAAAAAAAAAAAECABBpu+n8++WzXwkAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['circle-question']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAARSotTq6c+aRwAAAwAAAAAAAAAAAAIATMz//////////8E9AAMAAAAAAAABAwCG///9/Pv6+vr8/v//cQAEAAAAAAADAIn/+/3//f///////vz9/28AAwAAAAAAT//6/v///8SAdKX4//7+/P83AAAAAAAK2/79//32aAAAAAA88v7+/P/EAgAAAABf//3//v7sHS/E0EgAqf/7//3/QgAAAAC4/vz///7/7+///50Anf/7//z/mQAAAADo//7////+////1h0O4v79//3/zwAAAAD8////////+/3QFA7C//3///7/5gAAAAD9/////////f8jANb//P////7/5wAAAADr//7////+//5iiv/7//////3/0gAAAAC+/v3///////////3///////z+oAAAAABp//3////+/+8tU//+//////3/SwAAAAAP5P39///+/+sFMv/+/////P7PBQAAAAAAXv/6//////7t8P/////++/9EAAAAAAADAJz/+v3///////////37/4MAAwAAAAABAgGc///8/f7+/v79/f//hgADAAAAAAAAAQEAYd3//////////9NRAAMAAAAAAAAAAAECABFqu+n8++WzYAkAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['triangle-exclamation']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgNycgMCAQAAAAAAAAAAAAAAAAAAAAADAH///38AAwAAAAAAAAAAAAAAAAAAAAIBI/f6+vcjAQIAAAAAAAAAAAAAAAAAAAMAsv/8/P+yAAMAAAAAAAAAAAAAAAAAAwBL//z9/fz/TAADAAAAAAAAAAAAAAABAwja/v3///3+2gkDAQAAAAAAAAAAAAADAH3/+f9+cf/5/30AAwAAAAAAAAAAAAIBIfX9+/86Kv/8/fUhAQIAAAAAAAAAAAMAr//8/P9HOf/9/P+vAAMAAAAAAAAAAwBI//z//P9AMf/9//z/SAADAAAAAAABAgfY/v3//P9VRv/8//3+2AcCAQAAAAAEAHr/+//////////+///7/3oABAAAAAABHvT9/v///v+4rP7+///+/fQeAQAAAAAAqP/8///+//IAAOH//f///P+oAAAAAABL//3//////v2IePn+//////3/SgAAAADf+/n7+/v7+/v///z7+/v7+/n73wAAAADi////////////////////////4gAAAAAlfIKDg4ODg4ODg4ODg4ODg4J8JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['calendar']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYCKe83AgQBAQQCOe0eAgUCAAAAAAABAAAAMv9DAAAAAAAARP8lAAAAAQAAAAAAMafE0v7WxsfHx8fG1v7Pw6MpAAAAAAAr7/////3///////////3////nIQAAAACg////////////////////////jgAAAACf4+Hk5OTk5OTk5OTk5OTk5OHjkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgi4mLi4uLi4uLi4uLi4uLi4mLVwAAAAC9////////////////////////rAAAAACt+/j7////+/v///v7///++/j7nQAAAACw//v/63Dj//+Vlf//4XLx//v/oAAAAACw//v/4C/T//9jY///0TLo//v/oAAAAACw//z///////////////////z/oAAAAACw//z///////////////////z/oAAAAACw//z//Nn6///l5f//+tr9//z/oAAAAACv//r/1gDH//88PP//xQDh//r/nwAAAACx/vz/+cP2///V1f//9cX7//z+oQAAAACj//n9///////////////+/fn/kgAAAAA28//////////9/f/////////tLAAAAAAAOqHC1+jx+P3///z48efWwJ4yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['hashtag']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEL3cQEAQIAHu2dAAIAAAAAAAAAAAAAAgAu/+YHAAQAUv/DAAIAAAAAAAAAAAAABABQ/r0AAgQAdv6WAAQAAAAAAAAABAQECAR1/5sECAgEnf9zBAgEAwAAAAAAAAAAAACX/2IAAAAAwP86AAAAAAAAAAAHZIB+gH/d/6d+gX+C7v6Wf39/RwAAAAA4////////////////////////9QAAAAAJbIaGhpf+9YyGiIam/uWHhoWGTwAAAAAAAAAAAC3/zgAAAABU/6cAAAAAAAAAAAAABAQIBGX/qwQHCASM/4QECAQEAwAAAAADBAQIBIf/iAQIBgOv/2EECAQEAQAAAAAAAAAAAKv/UgAAAADS/ysAAAAAAAAAAABgm5qcnOr+tZudm6H3/qmbm52BDQAAAADy////////////////////////NwAAAAA1aWlphf7qa2lraZn/1WlqaGlRBAAAAAAAAAAAPf+8AAAAAGb/kwAAAAAAAAAAAAACBAgEdf+YBAgIBJ3/cQQIBAQDAAAAAAAAAAQAl/5yAAQCAL7+TAADAAAAAAAAAAAAAAIAxf9NAAQAB+n/KgACAAAAAAAAAAAAAAIAj9oXAAIBA7TICAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['robux']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAHKP/94sNAAADAAAAAAAAAAAAAAMBAAl5+feUof/pYQAAAgIAAAAAAAAAAgAAXOj/mxYAACmz/9RFAAACAAAAAAACAD/M/7ovAAJpVQAARdD/tCsAAgAAAAAAdf/VSgAAUdL//7g1AABg6f9RAAAAAAAn/44AAC+y///+///7lBcACbbvDAAAAABZ/xwAavj/+/L19fL//+dAAEb/LAAAAABZ/yQB0P/1QhkbHBlw+/+YAU3+LQAAAABZ/yIAxv7xEQAAAAA///6TAEz/LQAAAABZ/yIAyP/yGwECBAFJ//+UAEz/LQAAAABZ/yIAyP/yHAIDBQJJ//+UAEz/LQAAAABZ/yIAx/7xDQAAAAA9//2UAEz/LQAAAABZ/yQBzf/2Vy4wMS6B+/+UAU3+LQAAAABZ/xwAVun//////////9MyAEX/LAAAAAAn/44AAByY+//8/v/seQkACbbvDAAAAAAAdf/VSgAAOrz//58hAABg6f9RAAAAAAACAD/M/7kxAABOPAAARdD/tCsAAgAAAAAAAgAAXOj/mxkAACqz/9RFAAACAAAAAAAAAAMBAAl5+feToP/pYQAAAgIAAAAAAAAAAAAABAAAHKP/94sNAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['discord']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQMEAgAAAAACBAMBAAAAAAAAAAAAAAADAAAAAAQDAwQAAAAAAwAAAAAAAAAAAAAABTh4LwAAAAA1dzcEAAEAAAAAAAAAAgJ62P//05atrJbY///WdwECAAAAAAAEAGj///77////////+/7//2YAAwAAAAABEOr8+////fv8+/v9///7/OoQAQAAAAAAc//7///9/v/////+/f//+/9yAAAAAAAF1f79//////7///7///7//f7UBQAAAAA9/v7+///N7f/+/v/rzf///v7+PAAAAACF//z9/2gAIuH+/twdAGr//fz/ggAAAAC8//v/5gIFAIz//4EABQLm//v/uAAAAADd//3+8RcAAKn//6AAABfx/v3/2gAAAADu//79/7g/dvz+/vpzP7j//f7/6gAAAADv/v7///////39/f3///////797AAAAAD1//r+6dD//////////87q/vn/8QAAAABd5f//4X5gl8DU1MGWYYDj///iWQAAAAAAF43s/+wBAAAAAAAABfL/6ooVAAAAAAADAAAYcEABBgIAAAIGAENuFgAAAwAAAAAAAQMAAAABAAAAAAAAAQAAAAMBAAAAAAAAAAACBAIAAAAAAAAAAAIEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['plus-small']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACADjZ1DEBAgAAAAAAAAAAAAAAAAAAAAADALf//6oAAwAAAAAAAAAAAAAAAAAAAAACAMX+/roAAgAAAAAAAAAAAAAAAAAAAAACAML//7cAAgAAAAAAAAAAAAAAAAAAAAACAMP//7gAAgAAAAAAAAAAAAAAAAAAAAACAMP//7gAAgAAAAAAAAAAAAACAwICAgIEAsT//7kCBAICAgIDAgAAAAAAAAAAAAAAAMD//7UAAAAAAAAAAAAAAAA+rbu6urq7uu///+y6u7q6ubynKgAAAADw////////////////////////zwAAAAD1////////////////////////1AAAAABFt8LDw8PEw/H//+7DxMPDwsKwMAAAAAAAAAAAAAAAAMH//7UAAAAAAAAAAAAAAAADAgICAgIEAsP//7kCBAICAgIDAgAAAAAAAAAAAAACAMP//7gAAgAAAAAAAAAAAAAAAAAAAAACAMP//7gAAgAAAAAAAAAAAAAAAAAAAAACAML//7cAAgAAAAAAAAAAAAAAAAAAAAACAMT+/rkAAgAAAAAAAAAAAAAAAAAAAAADALz//7AAAwAAAAAAAAAAAAAAAAAAAAADAEbt6j4AAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['minus-small']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAABA0MDAwMDAwMDAwMDAwMDA0EAAAAAABc2Ofm5+fn5+fn5+fn5+fn5ufYXAAAAAD7////////////////////////+wAAAADt////////////////////////7QAAAAA+uMfIycnJycnJycnJycnJyMe4PgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgEBAQEBAQEBAQEBAQEBAQECAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['play-small']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT/GpHwAAAwAAAAAAAAAAAAAAAAAAAAAAjf//6G4EAAMCAAAAAAAAAAAAAAAAAAAAiP74///MRgAABAEAAAAAAAAAAAAAAAAAif/7/vz//6MgAAADAAAAAAAAAAAAAAAAif/7///9/f/udQcAAwIAAAAAAAAAAAAAif/7//////z//89JAAAEAQAAAAAAAAAAif/7///////++///pyQAAAMAAAAAAAAAif/7//////////39//F7CAABAAAAAAAAif/7/////////////P//004AAgAAAAAAif/7//////////////77//9mAAAAAAAAif/7//////////////78//9iAAAAAAAAif/7/////////////P//zEYAAQAAAAAAif/7//////////3+/+xxBQABAAAAAAAAif/7///////+/P//nh4AAAMAAAAAAAAAif/7//////v//8dAAAAEAQAAAAAAAAAAif/7///8/v/oawIAAwEAAAAAAAAAAAAAif/7/vz//pcaAAEDAAAAAAAAAAAAAAAAiP74///COwAABAAAAAAAAAAAAAAAAAAAjf//4GMAAAMBAAAAAAAAAAAAAAAAAAAASOmcFgABAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['pause-small']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3397f397YOQADAwBg3t3f393fjQAAAAD/////////cQAEBACk////////3gAAAAD9/v7+/vr+bAAEBACd/vr+/v3+1QAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD///////v/bQAEBACe//v///7/1wAAAAD+//////v/bAAEBACd//v///7/1gAAAAD///////v/cQAEBACj//v///7/3AAAAADb//7///35SgADBAB3/vz///3/rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState.iconMasks['stop-small']={w=24,h=24,a=[[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWpN3f4ODg4ODg4ODg4ODg39uKBQAAAAC5////////////////////////hQAAAAD//f7+/v7+/v7+/v7+/v7+/vz92QAAAAD+//////////////////////7/1gAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD///////////////////////7/1wAAAAD+//////////////////////7/1gAAAAD//f////////////////////392gAAAADP//3///////////////////3/nAAAAAAtzP3+/////////////////vqzEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]}
ProjectState._pngFromMask = function(mask, w, h, r, g, b)
local floor2, schar, sbyte, concat2, ssub = math.floor, string.char, string.byte, table.concat, string.sub
local bxor, band, rshift
if bit32 then bxor, band, rshift = bit32.bxor, bit32.band, bit32.rshift
else
bxor = function(x, y) local rr, p = 0, 1; for _ = 1, 32 do local a2, b2 = x % 2, y % 2; if a2 ~= b2 then rr = rr + p end; x = (x - a2) / 2; y = (y - b2) / 2; p = p * 2 end; return rr end
band = function(x, y) local rr, p = 0, 1; for _ = 1, 32 do local a2, b2 = x % 2, y % 2; if a2 == 1 and b2 == 1 then rr = rr + p end; x = (x - a2) / 2; y = (y - b2) / 2; p = p * 2 end; return rr end
rshift = function(x, n) return floor2(x / (2 ^ n)) end
end
local crcT = ProjectState._crcT
if not crcT then
crcT = {}
for n = 0, 255 do local cc = n; for _ = 1, 8 do if band(cc, 1) == 1 then cc = bxor(3988292384, rshift(cc, 1)) else cc = rshift(cc, 1) end end; crcT[n] = cc end
ProjectState._crcT = crcT
end
local function crc32(str) local cc = 4294967295; for i = 1, #str do cc = bxor(rshift(cc, 8), crcT[band(bxor(cc, sbyte(str, i)), 255)]) end; return bxor(cc, 4294967295) end
local function u32be(n) return schar(floor2(n / 16777216) % 256, floor2(n / 65536) % 256, floor2(n / 256) % 256, n % 256) end
local function u16le(n) return schar(n % 256, floor2(n / 256) % 256) end
local rgb = schar(r, g, b)
local raw = {}
local idx = 0
for _ = 1, h do