1use std::collections::HashMap;
2
3use lazy_static::lazy_static;
4use maplit::hashmap;
5use strum::{Display, EnumIter, EnumString};
6
7#[derive(Debug, Clone, Copy, EnumIter, Display, EnumString)]
8#[strum(serialize_all = "camelCase")]
9pub enum Spinners {
19    Dots,
21    Dots2,
23    Dots3,
25    Dots4,
27    Dots5,
29    Dots6,
31    Dots7,
33    Dots8,
35    Dots9,
37    Dots10,
39    Dots11,
41    Dots8Bit,
43    Arrow,
45    Arrow2,
47    Arrow3,
49    BouncingBar,
51    BouncingBall,
53    Smiley,
55    Monkey,
57    Hearts,
59    Clock,
61    Earth,
63    Material,
65    Moon,
67    Runner,
69    Pong,
71    Shark,
73    Dqpb,
75    Weather,
77    Christmas,
79    Grenade,
81    Point,
83    Layer,
85    BetaWave,
87    FingerDance,
89    FistBump,
91    SoccerHeader,
93    Mindblown,
95    Speaker,
97    OrangePulse,
99    BluePulse,
101    OrangeBluePulse,
103    TimeTravel,
105    Aesthetic,
107    Pipe,
109    Star,
111    Star2,
113    Flip,
115    Hamburger,
117    GrowVertical,
119    GrowHorizontal,
121    Balloon,
123    Balloon2,
125    Noise,
127    Bounce,
129    BoxBounce,
131    BoxBounce2,
133    Triangle,
135    Arc,
137    Circle,
139    SquareCorners,
141    CircleQuaters,
143    CircleHalves,
145    Squish,
147    Toggle,
149    Toggle2,
151    Toggle3,
153    Toggle4,
155    Toggle5,
157    Toggle6,
159    Toggle7,
161    Toggle8,
163    Toggle9,
165    Toggle10,
167    Toggle11,
169    Toggle12,
171    Toggle13,
173    Line,
175    Line2,
177    SimpleDots,
179    SimpleDotsScrolling,
181}
182
183impl Spinners {
184    pub fn get_frames(&self) -> Vec<&'static str> {
186        SPINNER_MAP.get(&self.to_string()).unwrap().to_vec()
187    }
188}
189
190lazy_static! {
191    static ref SPINNER_MAP: HashMap<String, Vec<&'static str>> = {
192        hashmap! {
193            r"dots".into() => vec![
194            r"⠋",
195            r"⠙",
196            r"⠹",
197            r"⠸",
198            r"⠼",
199            r"⠴",
200            r"⠦",
201            r"⠧",
202            r"⠇",
203            r"⠏"
204            ],
205            "dots2".into()  =>  vec![
206            r"⣾",
207            r"⣽",
208            r"⣻",
209            r"⢿",
210            r"⡿",
211            r"⣟",
212            r"⣯",
213            r"⣷"
214            ],
215            "dots3".into()  =>  vec![
216            r"⠋",
217            r"⠙",
218            r"⠚",
219            r"⠞",
220            r"⠖",
221            r"⠦",
222            r"⠴",
223            r"⠲",
224            r"⠳",
225            r"⠓"
226            ],
227            "dots4".into()  =>  vec![
228            r"⠄",
229            r"⠆",
230            r"⠇",
231            r"⠋",
232            r"⠙",
233            r"⠸",
234            r"⠰",
235            r"⠠",
236            r"⠰",
237            r"⠸",
238            r"⠙",
239            r"⠋",
240            r"⠇",
241            r"⠆"
242            ],
243            "dots5".into()  =>  vec![
244            r"⠋",
245            r"⠙",
246            r"⠚",
247            r"⠒",
248            r"⠂",
249            r"⠂",
250            r"⠒",
251            r"⠲",
252            r"⠴",
253            r"⠦",
254            r"⠖",
255            r"⠒",
256            r"⠐",
257            r"⠐",
258            r"⠒",
259            r"⠓",
260            r"⠋"
261            ],
262            "dots6".into()  =>  vec![
263            r"⠁",
264            r"⠉",
265            r"⠙",
266            r"⠚",
267            r"⠒",
268            r"⠂",
269            r"⠂",
270            r"⠒",
271            r"⠲",
272            r"⠴",
273            r"⠤",
274            r"⠄",
275            r"⠄",
276            r"⠤",
277            r"⠴",
278            r"⠲",
279            r"⠒",
280            r"⠂",
281            r"⠂",
282            r"⠒",
283            r"⠚",
284            r"⠙",
285            r"⠉",
286            r"⠁"
287            ],
288            "dots7".into()  =>  vec![
289            r"⠈",
290            r"⠉",
291            r"⠋",
292            r"⠓",
293            r"⠒",
294            r"⠐",
295            r"⠐",
296            r"⠒",
297            r"⠖",
298            r"⠦",
299            r"⠤",
300            r"⠠",
301            r"⠠",
302            r"⠤",
303            r"⠦",
304            r"⠖",
305            r"⠒",
306            r"⠐",
307            r"⠐",
308            r"⠒",
309            r"⠓",
310            r"⠋",
311            r"⠉",
312            r"⠈"
313            ],
314            "dots8".into()  =>  vec![
315            r"⠁",
316            r"⠁",
317            r"⠉",
318            r"⠙",
319            r"⠚",
320            r"⠒",
321            r"⠂",
322            r"⠂",
323            r"⠒",
324            r"⠲",
325            r"⠴",
326            r"⠤",
327            r"⠄",
328            r"⠄",
329            r"⠤",
330            r"⠠",
331            r"⠠",
332            r"⠤",
333            r"⠦",
334            r"⠖",
335            r"⠒",
336            r"⠐",
337            r"⠐",
338            r"⠒",
339            r"⠓",
340            r"⠋",
341            r"⠉",
342            r"⠈",
343            r"⠈"
344            ],
345            "dots9".into()  =>  vec![
346            r"⢹",
347            r"⢺",
348            r"⢼",
349            r"⣸",
350            r"⣇",
351            r"⡧",
352            r"⡗",
353            r"⡏"
354            ],
355            "dots10".into()  =>  vec![
356            r"⢄",
357            r"⢂",
358            r"⢁",
359            r"⡁",
360            r"⡈",
361            r"⡐",
362            r"⡠"
363            ],
364            "dots11".into()  =>  vec![
365            r"⠁",
366            r"⠂",
367            r"⠄",
368            r"⡀",
369            r"⢀",
370            r"⠠",
371            r"⠐",
372            r"⠈"
373            ],
374            "pipe".into()  =>  vec![
375            r"┤",
376            r"┘",
377            r"┴",
378            r"└",
379            r"├",
380            r"┌",
381            r"┬",
382            r"┐"
383            ],
384            "star".into()  =>  vec![
385            r"✶",
386            r"✸",
387            r"✹",
388            r"✺",
389            r"✹",
390            r"✷"
391            ],
392            "star2".into()  =>  vec![
393            r"+",
394            r"x",
395            r"*"
396            ],
397            "flip".into()  =>  vec![
398            r"_",
399            r"_",
400            r"_",
401            r"-",
402            r"`",
403            r"`",
404            r"'",
405            r"´",
406            r"-",
407            r"_",
408            r"_",
409            r"_"
410            ],
411            "hamburger".into()  =>  vec![
412            r"☱",
413            r"☲",
414            r"☴"
415            ],
416            "growVertical".into()  =>  vec![
417            r"▁",
418            r"▃",
419            r"▄",
420            r"▅",
421            r"▆",
422            r"▇",
423            r"▆",
424            r"▅",
425            r"▄",
426            r"▃"
427            ],
428            "growHorizontal".into()  =>  vec![
429            r"▏",
430            r"▎",
431            r"▍",
432            r"▌",
433            r"▋",
434            r"▊",
435            r"▉",
436            r"▊",
437            r"▋",
438            r"▌",
439            r"▍",
440            r"▎"
441            ],
442            "balloon".into()  =>  vec![
443            r".",
444            r"i",
445            r"n",
446            r"t",
447            r"o",
448            r"(",
449            r")",
450            r" ",
451            r".",
452            r"o",
453            r"O",
454            r"@",
455            r"*",
456            r" "
457            ],
458            "balloon2".into()  =>  vec![
459            r".",
460            r"o",
461            r"O",
462            r"°",
463            r"O",
464            r"o",
465            r"."
466            ],
467            "noise".into()  =>  vec![
468            r"▓",
469            r"▒",
470            r"░"
471            ],
472            "bounce".into()  =>  vec![
473            r"⠁",
474            r"⠂",
475            r"⠄",
476            r"⠂"
477            ],
478            "boxBounce".into()  =>  vec![
479            r"▖",
480            r"▘",
481            r"▝",
482            r"▗"
483            ],
484            "boxBounce2".into()  =>  vec![
485            r"▌",
486            r"▀",
487            r"▐",
488            r"▄"
489            ],
490            "triangle".into()  =>  vec![
491            r"◢",
492            r"◣",
493            r"◤",
494            r"◥"
495            ],
496            "arc".into()  =>  vec![
497            r"◜",
498            r"◠",
499            r"◝",
500            r"◞",
501            r"◡",
502            r"◟"
503            ],
504            "circle".into()  =>  vec![
505            r"◡",
506            r"⊙",
507            r"◠"
508            ],
509            "squareCorners".into()  =>  vec![
510            r"◰",
511            r"◳",
512            r"◲",
513            r"◱"
514            ],
515            "circleQuaters".into()  =>  vec![
516            r"◴",
517            r"◷",
518            r"◶",
519            r"◵"
520            ],
521            "circleHalves".into()  =>  vec![
522            r"◐",
523            r"◓",
524            r"◑",
525            r"◒"
526            ],
527            "squish".into()  =>  vec![
528            r"╫",
529            r"╪"
530            ],
531            "toggle".into()  =>  vec![
532            r"⊶",
533            r"⊷"
534            ],
535            "toggle2".into()  =>  vec![
536            r"▫",
537            r"▪"
538            ],
539            "toggle3".into()  =>  vec![
540            r"□",
541            r"■"
542            ],
543            "toggle4".into()  =>  vec![
544            r"■",
545            r"□",
546            r"▪",
547            r"▫"
548            ],
549            "toggle5".into()  =>  vec![
550            r"▮",
551            r"▯"
552            ],
553            "toggle6".into()  =>  vec![
554            r"ဝ",
555            r"၀"
556            ],
557            "toggle7".into()  =>  vec![
558            r"⦾",
559            r"⦿"
560            ],
561            "toggle8".into()  =>  vec![
562            r"◍",
563            r"◌"
564            ],
565            "toggle9".into()  =>  vec![
566            r"◉",
567            r"◎"
568            ],
569            "toggle10".into()  =>  vec![
570            r"㊂",
571            r"㊀",
572            r"㊁"
573            ],
574            "toggle11".into()  =>  vec![
575            r"⧇",
576            r"⧆"
577            ],
578            "toggle12".into()  =>  vec![
579            r"☗",
580            r"☖"
581            ],
582            "toggle13".into()  =>  vec![
583            r"=",
584            r"*",
585            r"-"
586            ],
587            "arrow".into()  =>  vec![
588            r"←",
589            r"↖",
590            r"↑",
591            r"↗",
592            r"→",
593            r"↘",
594            r"↓",
595            r"↙"
596            ],
597            "dots8Bit".into() => vec![
598            r"⠀",
599            r"⠁",
600            r"⠂",
601            r"⠃",
602            r"⠄",
603            r"⠅",
604            r"⠆",
605            r"⠇",
606            r"⡀",
607            r"⡁",
608            r"⡂",
609            r"⡃",
610            r"⡄",
611            r"⡅",
612            r"⡆",
613            r"⡇",
614            r"⠈",
615            r"⠉",
616            r"⠊",
617            r"⠋",
618            r"⠌",
619            r"⠍",
620            r"⠎",
621            r"⠏",
622            r"⡈",
623            r"⡉",
624            r"⡊",
625            r"⡋",
626            r"⡌",
627            r"⡍",
628            r"⡎",
629            r"⡏",
630            r"⠐",
631            r"⠑",
632            r"⠒",
633            r"⠓",
634            r"⠔",
635            r"⠕",
636            r"⠖",
637            r"⠗",
638            r"⡐",
639            r"⡑",
640            r"⡒",
641            r"⡓",
642            r"⡔",
643            r"⡕",
644            r"⡖",
645            r"⡗",
646            r"⠘",
647            r"⠙",
648            r"⠚",
649            r"⠛",
650            r"⠜",
651            r"⠝",
652            r"⠞",
653            r"⠟",
654            r"⡘",
655            r"⡙",
656            r"⡚",
657            r"⡛",
658            r"⡜",
659            r"⡝",
660            r"⡞",
661            r"⡟",
662            r"⠠",
663            r"⠡",
664            r"⠢",
665            r"⠣",
666            r"⠤",
667            r"⠥",
668            r"⠦",
669            r"⠧",
670            r"⡠",
671            r"⡡",
672            r"⡢",
673            r"⡣",
674            r"⡤",
675            r"⡥",
676            r"⡦",
677            r"⡧",
678            r"⠨",
679            r"⠩",
680            r"⠪",
681            r"⠫",
682            r"⠬",
683            r"⠭",
684            r"⠮",
685            r"⠯",
686            r"⡨",
687            r"⡩",
688            r"⡪",
689            r"⡫",
690            r"⡬",
691            r"⡭",
692            r"⡮",
693            r"⡯",
694            r"⠰",
695            r"⠱",
696            r"⠲",
697            r"⠳",
698            r"⠴",
699            r"⠵",
700            r"⠶",
701            r"⠷",
702            r"⡰",
703            r"⡱",
704            r"⡲",
705            r"⡳",
706            r"⡴",
707            r"⡵",
708            r"⡶",
709            r"⡷",
710            r"⠸",
711            r"⠹",
712            r"⠺",
713            r"⠻",
714            r"⠼",
715            r"⠽",
716            r"⠾",
717            r"⠿",
718            r"⡸",
719            r"⡹",
720            r"⡺",
721            r"⡻",
722            r"⡼",
723            r"⡽",
724            r"⡾",
725            r"⡿",
726            r"⢀",
727            r"⢁",
728            r"⢂",
729            r"⢃",
730            r"⢄",
731            r"⢅",
732            r"⢆",
733            r"⢇",
734            r"⣀",
735            r"⣁",
736            r"⣂",
737            r"⣃",
738            r"⣄",
739            r"⣅",
740            r"⣆",
741            r"⣇",
742            r"⢈",
743            r"⢉",
744            r"⢊",
745            r"⢋",
746            r"⢌",
747            r"⢍",
748            r"⢎",
749            r"⢏",
750            r"⣈",
751            r"⣉",
752            r"⣊",
753            r"⣋",
754            r"⣌",
755            r"⣍",
756            r"⣎",
757            r"⣏",
758            r"⢐",
759            r"⢑",
760            r"⢒",
761            r"⢓",
762            r"⢔",
763            r"⢕",
764            r"⢖",
765            r"⢗",
766            r"⣐",
767            r"⣑",
768            r"⣒",
769            r"⣓",
770            r"⣔",
771            r"⣕",
772            r"⣖",
773            r"⣗",
774            r"⢘",
775            r"⢙",
776            r"⢚",
777            r"⢛",
778            r"⢜",
779            r"⢝",
780            r"⢞",
781            r"⢟",
782            r"⣘",
783            r"⣙",
784            r"⣚",
785            r"⣛",
786            r"⣜",
787            r"⣝",
788            r"⣞",
789            r"⣟",
790            r"⢠",
791            r"⢡",
792            r"⢢",
793            r"⢣",
794            r"⢤",
795            r"⢥",
796            r"⢦",
797            r"⢧",
798            r"⣠",
799            r"⣡",
800            r"⣢",
801            r"⣣",
802            r"⣤",
803            r"⣥",
804            r"⣦",
805            r"⣧",
806            r"⢨",
807            r"⢩",
808            r"⢪",
809            r"⢫",
810            r"⢬",
811            r"⢭",
812            r"⢮",
813            r"⢯",
814            r"⣨",
815            r"⣩",
816            r"⣪",
817            r"⣫",
818            r"⣬",
819            r"⣭",
820            r"⣮",
821            r"⣯",
822            r"⢰",
823            r"⢱",
824            r"⢲",
825            r"⢳",
826            r"⢴",
827            r"⢵",
828            r"⢶",
829            r"⢷",
830            r"⣰",
831            r"⣱",
832            r"⣲",
833            r"⣳",
834            r"⣴",
835            r"⣵",
836            r"⣶",
837            r"⣷",
838            r"⢸",
839            r"⢹",
840            r"⢺",
841            r"⢻",
842            r"⢼",
843            r"⢽",
844            r"⢾",
845            r"⢿",
846            r"⣸",
847            r"⣹",
848            r"⣺",
849            r"⣻",
850            r"⣼",
851            r"⣽",
852            r"⣾",
853            r"⣿"
854            ],
855            "line".into() => vec![
856            r"-",
857            r"\",
858            r"|",
859            r"/"
860            ],
861            "line2".into() => vec![
862            r"⠂",
863            r"-",
864            r"–",
865            r"—",
866            r"–",
867            r"-"
868            ],
869            "pipe".into() => vec![
870            r"┤",
871            r"┘",
872            r"┴",
873            r"└",
874            r"├",
875            r"┌",
876            r"┬",
877            r"┐"
878            ],
879            "simpleDots".into() => vec![
880            r".  ",
881            r".. ",
882            r"...",
883            r"   "
884            ],
885            "simpleDotsScrolling".into() => vec![
886            r".  ",
887            r".. ",
888            r"...",
889            r" ..",
890            r"  .",
891            r"   "
892            ],
893            "star".into() => vec![
894            r"✶",
895            r"✸",
896            r"✹",
897            r"✺",
898            r"✹",
899            r"✷"
900            ],
901            "star2".into() => vec![
902            r"+",
903            r"x",
904            r"*"
905            ],
906            "flip".into() => vec![
907            r"_",
908            r"_",
909            r"_",
910            r"-",
911            r"`",
912            r"`",
913            r"'",
914            r"´",
915            r"-",
916            r"_",
917            r"_",
918            r"_"
919            ],
920            "hamburger".into() => vec![
921            r"☱",
922            r"☲",
923            r"☴"
924            ],
925            "growVertical".into() => vec![
926            r"▁",
927            r"▃",
928            r"▄",
929            r"▅",
930            r"▆",
931            r"▇",
932            r"▆",
933            r"▅",
934            r"▄",
935            r"▃"
936            ],
937            "growHorizontal".into() => vec![
938            r"▏",
939            r"▎",
940            r"▍",
941            r"▌",
942            r"▋",
943            r"▊",
944            r"▉",
945            r"▊",
946            r"▋",
947            r"▌",
948            r"▍",
949            r"▎"
950            ],
951            "balloon".into() => vec![
952            r" ",
953            r".",
954            r"o",
955            r"O",
956            r"@",
957            r"*",
958            r" "
959            ],
960            "balloon2".into() => vec![
961            r".",
962            r"o",
963            r"O",
964            r"°",
965            r"O",
966            r"o",
967            r"."
968            ],
969            "noise".into() => vec![
970            r"▓",
971            r"▒",
972            r"░"
973            ],
974            "bounce".into() => vec![
975            r"⠁",
976            r"⠂",
977            r"⠄",
978            r"⠂"
979            ],
980            "boxBounce".into() => vec![
981            r"▖",
982            r"▘",
983            r"▝",
984            r"▗"
985            ],
986            "boxBounce2".into() => vec![
987            r"▌",
988            r"▀",
989            r"▐",
990            r"▄"
991            ],
992            "triangle".into() => vec![
993            r"◢",
994            r"◣",
995            r"◤",
996            r"◥"
997            ],
998            "arc".into() => vec![
999            r"◜",
1000            r"◠",
1001            r"◝",
1002            r"◞",
1003            r"◡",
1004            r"◟"
1005            ],
1006            "circle".into() => vec![
1007            r"◡",
1008            r"⊙",
1009            r"◠"
1010            ],
1011            "squareCorners".into() => vec![
1012            r"◰",
1013            r"◳",
1014            r"◲",
1015            r"◱"
1016            ],
1017            "circleQuarters".into() => vec![
1018            r"◴",
1019            r"◷",
1020            r"◶",
1021            r"◵"
1022            ],
1023            "circleHalves".into() => vec![
1024            r"◐",
1025            r"◓",
1026            r"◑",
1027            r"◒"
1028            ],
1029            "squish".into() => vec![
1030            r"╫",
1031            r"╪"
1032            ],
1033            "toggle".into() => vec![
1034            r"⊶",
1035            r"⊷"
1036            ],
1037            "toggle2".into() => vec![
1038            r"▫",
1039            r"▪"
1040            ],
1041            "toggle3".into() => vec![
1042            r"□",
1043            r"■"
1044            ],
1045            "toggle4".into() => vec![
1046            r"■",
1047            r"□",
1048            r"▪",
1049            r"▫"
1050            ],
1051            "toggle5".into() => vec![
1052            r"▮",
1053            r"▯"
1054            ],
1055            "toggle6".into() => vec![
1056            r"ဝ",
1057            r"၀"
1058            ],
1059            "toggle7".into() => vec![
1060            r"⦾",
1061            r"⦿"
1062            ],
1063            "toggle8".into() => vec![
1064            r"◍",
1065            r"◌"
1066            ],
1067            "toggle9".into() => vec![
1068            r"◉",
1069            r"◎"
1070            ],
1071            "toggle10".into() => vec![
1072            r"㊂",
1073            r"㊀",
1074            r"㊁"
1075            ],
1076            "toggle11".into() => vec![
1077            r"⧇",
1078            r"⧆"
1079            ],
1080            "toggle12".into() => vec![
1081            r"☗",
1082            r"☖"
1083            ],
1084            "toggle13".into() => vec![
1085            r"=",
1086            r"*",
1087            r"-"
1088            ],
1089            "arrow".into() => vec![
1090            r"←",
1091            r"↖",
1092            r"↑",
1093            r"↗",
1094            r"→",
1095            r"↘",
1096            r"↓",
1097            r"↙"
1098            ],
1099            "arrow2".into() => vec![
1100            r"⬆️ ",
1101            r"↗️ ",
1102            r"➡️ ",
1103            r"↘️ ",
1104            r"⬇️ ",
1105            r"↙️ ",
1106            r"⬅️ ",
1107            r"↖️ "
1108            ],
1109            "arrow3".into() => vec![
1110            r"▹▹▹▹▹",
1111            r"▸▹▹▹▹",
1112            r"▹▸▹▹▹",
1113            r"▹▹▸▹▹",
1114            r"▹▹▹▸▹",
1115            r"▹▹▹▹▸"
1116            ],
1117            "bouncingBar".into() => vec![
1118            r"[    ]",
1119            r"[=   ]",
1120            r"[==  ]",
1121            r"[=== ]",
1122            r"[ ===]",
1123            r"[  ==]",
1124            r"[   =]",
1125            r"[    ]",
1126            r"[   =]",
1127            r"[  ==]",
1128            r"[ ===]",
1129            r"[====]",
1130            r"[=== ]",
1131            r"[==  ]",
1132            r"[=   ]"
1133            ],
1134            "bouncingBall".into() => vec![
1135            r"( ●    )",
1136            r"(  ●   )",
1137            r"(   ●  )",
1138            r"(    ● )",
1139            r"(     ●)",
1140            r"(    ● )",
1141            r"(   ●  )",
1142            r"(  ●   )",
1143            r"( ●    )",
1144            r"(●     )"
1145            ],
1146            "smiley".into() => vec![
1147            r"😄 ",
1148            r"😝 "
1149            ],
1150            "monkey".into() => vec![
1151            r"🙈 ",
1152            r"🙈 ",
1153            r"🙉 ",
1154            r"🙊 "
1155            ],
1156            "hearts".into() => vec![
1157            r"💛 ",
1158            r"💙 ",
1159            r"💜 ",
1160            r"💚 ",
1161            r"❤️ "
1162            ],
1163            "clock".into() => vec![
1164            r"🕛 ",
1165            r"🕐 ",
1166            r"🕑 ",
1167            r"🕒 ",
1168            r"🕓 ",
1169            r"🕔 ",
1170            r"🕕 ",
1171            r"🕖 ",
1172            r"🕗 ",
1173            r"🕘 ",
1174            r"🕙 ",
1175            r"🕚 "
1176            ],
1177            "earth".into() => vec![
1178            r"🌍 ",
1179            r"🌎 ",
1180            r"🌏 "
1181            ],
1182            "material".into() => vec![
1183            r"█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1184            r"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1185            r"███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1186            r"████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1187            r"██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1188            r"██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1189            r"███████▁▁▁▁▁▁▁▁▁▁▁▁▁",
1190            r"████████▁▁▁▁▁▁▁▁▁▁▁▁",
1191            r"█████████▁▁▁▁▁▁▁▁▁▁▁",
1192            r"█████████▁▁▁▁▁▁▁▁▁▁▁",
1193            r"██████████▁▁▁▁▁▁▁▁▁▁",
1194            r"███████████▁▁▁▁▁▁▁▁▁",
1195            r"█████████████▁▁▁▁▁▁▁",
1196            r"██████████████▁▁▁▁▁▁",
1197            r"██████████████▁▁▁▁▁▁",
1198            r"▁██████████████▁▁▁▁▁",
1199            r"▁██████████████▁▁▁▁▁",
1200            r"▁██████████████▁▁▁▁▁",
1201            r"▁▁██████████████▁▁▁▁",
1202            r"▁▁▁██████████████▁▁▁",
1203            r"▁▁▁▁█████████████▁▁▁",
1204            r"▁▁▁▁██████████████▁▁",
1205            r"▁▁▁▁██████████████▁▁",
1206            r"▁▁▁▁▁██████████████▁",
1207            r"▁▁▁▁▁██████████████▁",
1208            r"▁▁▁▁▁██████████████▁",
1209            r"▁▁▁▁▁▁██████████████",
1210            r"▁▁▁▁▁▁██████████████",
1211            r"▁▁▁▁▁▁▁█████████████",
1212            r"▁▁▁▁▁▁▁█████████████",
1213            r"▁▁▁▁▁▁▁▁████████████",
1214            r"▁▁▁▁▁▁▁▁████████████",
1215            r"▁▁▁▁▁▁▁▁▁███████████",
1216            r"▁▁▁▁▁▁▁▁▁███████████",
1217            r"▁▁▁▁▁▁▁▁▁▁██████████",
1218            r"▁▁▁▁▁▁▁▁▁▁██████████",
1219            r"▁▁▁▁▁▁▁▁▁▁▁▁████████",
1220            r"▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
1221            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████",
1222            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
1223            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
1224            r"█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1225            r"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1226            r"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1227            r"███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1228            r"████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1229            r"█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1230            r"█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1231            r"██████▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1232            r"████████▁▁▁▁▁▁▁▁▁▁▁▁",
1233            r"█████████▁▁▁▁▁▁▁▁▁▁▁",
1234            r"█████████▁▁▁▁▁▁▁▁▁▁▁",
1235            r"█████████▁▁▁▁▁▁▁▁▁▁▁",
1236            r"█████████▁▁▁▁▁▁▁▁▁▁▁",
1237            r"███████████▁▁▁▁▁▁▁▁▁",
1238            r"████████████▁▁▁▁▁▁▁▁",
1239            r"████████████▁▁▁▁▁▁▁▁",
1240            r"██████████████▁▁▁▁▁▁",
1241            r"██████████████▁▁▁▁▁▁",
1242            r"▁██████████████▁▁▁▁▁",
1243            r"▁██████████████▁▁▁▁▁",
1244            r"▁▁▁█████████████▁▁▁▁",
1245            r"▁▁▁▁▁████████████▁▁▁",
1246            r"▁▁▁▁▁████████████▁▁▁",
1247            r"▁▁▁▁▁▁███████████▁▁▁",
1248            r"▁▁▁▁▁▁▁▁█████████▁▁▁",
1249            r"▁▁▁▁▁▁▁▁█████████▁▁▁",
1250            r"▁▁▁▁▁▁▁▁▁█████████▁▁",
1251            r"▁▁▁▁▁▁▁▁▁█████████▁▁",
1252            r"▁▁▁▁▁▁▁▁▁▁█████████▁",
1253            r"▁▁▁▁▁▁▁▁▁▁▁████████▁",
1254            r"▁▁▁▁▁▁▁▁▁▁▁████████▁",
1255            r"▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
1256            r"▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
1257            r"▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
1258            r"▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
1259            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
1260            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1261            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1262            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1263            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1264            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1265            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1266            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1267            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1268            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1269            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1270            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1271            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1272            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1273            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1274            r"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"
1275            ],
1276            "moon".into() => vec![
1277            r"🌑 ",
1278            r"🌒 ",
1279            r"🌓 ",
1280            r"🌔 ",
1281            r"🌕 ",
1282            r"🌖 ",
1283            r"🌗 ",
1284            r"🌘 "
1285            ],
1286            "runner".into() => vec![
1287            r"🚶 ",
1288            r"🏃 "
1289            ],
1290            "pong".into() => vec![
1291            r"▐⠂       ▌",
1292            r"▐⠈       ▌",
1293            r"▐ ⠂      ▌",
1294            r"▐ ⠠      ▌",
1295            r"▐  ⡀     ▌",
1296            r"▐  ⠠     ▌",
1297            r"▐   ⠂    ▌",
1298            r"▐   ⠈    ▌",
1299            r"▐    ⠂   ▌",
1300            r"▐    ⠠   ▌",
1301            r"▐     ⡀  ▌",
1302            r"▐     ⠠  ▌",
1303            r"▐      ⠂ ▌",
1304            r"▐      ⠈ ▌",
1305            r"▐       ⠂▌",
1306            r"▐       ⠠▌",
1307            r"▐       ⡀▌",
1308            r"▐      ⠠ ▌",
1309            r"▐      ⠂ ▌",
1310            r"▐     ⠈  ▌",
1311            r"▐     ⠂  ▌",
1312            r"▐    ⠠   ▌",
1313            r"▐    ⡀   ▌",
1314            r"▐   ⠠    ▌",
1315            r"▐   ⠂    ▌",
1316            r"▐  ⠈     ▌",
1317            r"▐  ⠂     ▌",
1318            r"▐ ⠠      ▌",
1319            r"▐ ⡀      ▌",
1320            r"▐⠠       ▌"
1321            ],
1322            "shark".into() => vec![
1323            r"▐|\____________▌",
1324            r"▐_|\___________▌",
1325            r"▐__|\__________▌",
1326            r"▐___|\_________▌",
1327            r"▐____|\________▌",
1328            r"▐_____|\_______▌",
1329            r"▐______|\______▌",
1330            r"▐_______|\_____▌",
1331            r"▐________|\____▌",
1332            r"▐_________|\___▌",
1333            r"▐__________|\__▌",
1334            r"▐___________|\_▌",
1335            r"▐____________|\▌",
1336            r"▐____________/|▌",
1337            r"▐___________/|_▌",
1338            r"▐__________/|__▌",
1339            r"▐_________/|___▌",
1340            r"▐________/|____▌",
1341            r"▐_______/|_____▌",
1342            r"▐______/|______▌",
1343            r"▐_____/|_______▌",
1344            r"▐____/|________▌",
1345            r"▐___/|_________▌",
1346            r"▐__/|__________▌",
1347            r"▐_/|___________▌",
1348            r"▐/|____________▌"
1349            ],
1350            "dqpb".into() => vec![
1351            r"d",
1352            r"q",
1353            r"p",
1354            r"b"
1355            ],
1356            "weather".into() => vec![
1357            r"☀️ ",
1358            r"☀️ ",
1359            r"☀️ ",
1360            r"🌤  ",
1361            r"⛅️ ",
1362            r"🌥  ",
1363            r"☁️ ",
1364            r"🌧  ",
1365            r"🌨  ",
1366            r"🌧  ",
1367            r"🌨  ",
1368            r"🌧  ",
1369            r"🌨  ",
1370            r"⛈  ",
1371            r"🌨  ",
1372            r"🌧  ",
1373            r"🌨  ",
1374            r"☁️ ",
1375            r"🌥  ",
1376            r"⛅️ ",
1377            r"🌤  ",
1378            r"☀️ ",
1379            r"☀️ "
1380            ],
1381            "christmas".into() => vec![
1382            r"🌲",
1383            r"🎄"
1384            ],
1385            "grenade".into() => vec![
1386            r"،    ",
1387            r"′    ",
1388            r" ´   ",
1389            r" ‾   ",
1390            r"  ⸌  ",
1391            r"  ⸊  ",
1392            r"  |  ",
1393            r"  ⁎  ",
1394            r"  ⁕  ",
1395            r" ෴ ",
1396            r"  ⁓  ",
1397            r"     ",
1398            r"     ",
1399            r"     "
1400            ],
1401            "point".into() => vec![
1402            r"∙∙∙",
1403            r"●∙∙",
1404            r"∙●∙",
1405            r"∙∙●",
1406            r"∙∙∙"
1407            ],
1408            "layer".into() => vec![
1409            r"-",
1410            r"=",
1411            r"≡"
1412            ],
1413            "betaWave".into() => vec![
1414            r"ρββββββ",
1415            r"βρβββββ",
1416            r"ββρββββ",
1417            r"βββρβββ",
1418            r"ββββρββ",
1419            r"βββββρβ",
1420            r"ββββββρ"
1421            ],
1422            "fingerDance".into() => vec![
1423            r"🤘 ",
1424            r"🤟 ",
1425            r"🖖 ",
1426            r"✋ ",
1427            r"🤚 ",
1428            r"👆 "
1429            ],
1430            "fistBump".into() => vec![
1431            r"🤜    🤛 ",
1432            r"🤜    🤛 ",
1433            r"🤜    🤛 ",
1434            r" 🤜  🤛  ",
1435            r"  🤜🤛   ",
1436            r" 🤜✨🤛   ",
1437            r"🤜 ✨ 🤛  "
1438            ],
1439            "soccerHeader".into() => vec![
1440            r" 🧑⚽️       🧑 ",
1441            r"🧑  ⚽️      🧑 ",
1442            r"🧑   ⚽️     🧑 ",
1443            r"🧑    ⚽️    🧑 ",
1444            r"🧑     ⚽️   🧑 ",
1445            r"🧑      ⚽️  🧑 ",
1446            r"🧑       ⚽️🧑  ",
1447            r"🧑      ⚽️  🧑 ",
1448            r"🧑     ⚽️   🧑 ",
1449            r"🧑    ⚽️    🧑 ",
1450            r"🧑   ⚽️     🧑 ",
1451            r"🧑  ⚽️      🧑 "
1452            ],
1453            "mindblown".into() => vec![
1454            r"😐 ",
1455            r"😐 ",
1456            r"😮 ",
1457            r"😮 ",
1458            r"😦 ",
1459            r"😦 ",
1460            r"😧 ",
1461            r"😧 ",
1462            r"🤯 ",
1463            r"💥 ",
1464            r"✨ ",
1465            r"  ",
1466            r"  ",
1467            r"  "
1468            ],
1469            "speaker".into() => vec![
1470            r"🔈 ",
1471            r"🔉 ",
1472            r"🔊 ",
1473            r"🔉 "
1474            ],
1475            "orangePulse".into() => vec![
1476            r"🔸 ",
1477            r"🔶 ",
1478            r"🟠 ",
1479            r"🟠 ",
1480            r"🔶 "
1481            ],
1482            "bluePulse".into() => vec![
1483            r"🔹 ",
1484            r"🔷 ",
1485            r"🔵 ",
1486            r"🔵 ",
1487            r"🔷 "
1488            ],
1489            "orangeBluePulse".into() => vec![
1490            r"🔸 ",
1491            r"🔶 ",
1492            r"🟠 ",
1493            r"🟠 ",
1494            r"🔶 ",
1495            r"🔹 ",
1496            r"🔷 ",
1497            r"🔵 ",
1498            r"🔵 ",
1499            r"🔷 "
1500            ],
1501            "timeTravel".into() => vec![
1502            r"🕛 ",
1503            r"🕚 ",
1504            r"🕙 ",
1505            r"🕘 ",
1506            r"🕗 ",
1507            r"🕖 ",
1508            r"🕕 ",
1509            r"🕔 ",
1510            r"🕓 ",
1511            r"🕒 ",
1512            r"🕑 ",
1513            r"🕐 "
1514            ],
1515            "aesthetic".into() => vec![
1516            r"▰▱▱▱▱▱▱",
1517            r"▰▰▱▱▱▱▱",
1518            r"▰▰▰▱▱▱▱",
1519            r"▰▰▰▰▱▱▱",
1520            r"▰▰▰▰▰▱▱",
1521            r"▰▰▰▰▰▰▱",
1522            r"▰▰▰▰▰▰▰",
1523            r"▰▱▱▱▱▱▱"
1524            ],
1525        }
1526    };
1527}