From 7ba387067613bde6577d4732a81eb6061227b4b8 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sat, 6 Mar 2021 11:30:44 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Initial=20implementation=20using?= =?UTF-8?q?=20fyne=20v1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + Icon.png | Bin 0 -> 2375 bytes LICENSE | 674 ++++++++++++++++++++++ README.md | 7 + data/LICENSE | 21 + data/README.md | 1 + data/gitmojis.json | 437 ++++++++++++++ data/images/alembic.png | Bin 0 -> 2664 bytes data/images/alien.png | Bin 0 -> 1689 bytes data/images/ambulance.png | Bin 0 -> 2769 bytes data/images/apple.png | Bin 0 -> 2045 bytes data/images/arrow-down.png | Bin 0 -> 1054 bytes data/images/arrow-up.png | Bin 0 -> 1034 bytes data/images/art.png | Bin 0 -> 3744 bytes data/images/beers.png | Bin 0 -> 3070 bytes data/images/bento.png | Bin 0 -> 4187 bytes data/images/bookmark.png | Bin 0 -> 1450 bytes data/images/boom.png | Bin 0 -> 2101 bytes data/images/bug.png | Bin 0 -> 3478 bytes data/images/building-construction.png | Bin 0 -> 3121 bytes data/images/bulb.png | Bin 0 -> 1218 bytes data/images/busts-in-silhouette.png | Bin 0 -> 1012 bytes data/images/camera-flash.png | Bin 0 -> 2671 bytes data/images/card-file-box.png | Bin 0 -> 1401 bytes data/images/chart-with-upwards-trend.png | Bin 0 -> 1861 bytes data/images/checkered-flag.png | Bin 0 -> 1384 bytes data/images/children-crossing.png | Bin 0 -> 1190 bytes data/images/clown-face.png | Bin 0 -> 3526 bytes data/images/construction-worker.png | Bin 0 -> 3221 bytes data/images/construction.png | Bin 0 -> 2554 bytes data/images/egg.png | Bin 0 -> 1015 bytes data/images/fire.png | Bin 0 -> 2128 bytes data/images/globe-with-meridians.png | Bin 0 -> 2985 bytes data/images/green-apple.png | Bin 0 -> 1960 bytes data/images/green-heart.png | Bin 0 -> 1209 bytes data/images/hankey.png | Bin 0 -> 1782 bytes data/images/heavy-minus-sign.png | Bin 0 -> 200 bytes data/images/heavy-plus-sign.png | Bin 0 -> 251 bytes data/images/iphone.png | Bin 0 -> 1517 bytes data/images/label.png | Bin 0 -> 495 bytes data/images/lipstick.png | Bin 0 -> 1511 bytes data/images/lock.png | Bin 0 -> 1356 bytes data/images/loud-sound.png | Bin 0 -> 3375 bytes data/images/mag.png | Bin 0 -> 1931 bytes data/images/memo.png | Bin 0 -> 2169 bytes data/images/mute.png | Bin 0 -> 2099 bytes data/images/ok-hand.png | Bin 0 -> 1488 bytes data/images/package.png | Bin 0 -> 1493 bytes data/images/page-facing-up.png | Bin 0 -> 1257 bytes data/images/pencil.png | Bin 0 -> 1587 bytes data/images/penguin.png | Bin 0 -> 1612 bytes data/images/pushpin.png | Bin 0 -> 2156 bytes data/images/recycle.png | Bin 0 -> 1547 bytes data/images/rewind.png | Bin 0 -> 1097 bytes data/images/robot.png | Bin 0 -> 2767 bytes data/images/rocket.png | Bin 0 -> 3216 bytes data/images/rotating-light.png | Bin 0 -> 2975 bytes data/images/see-no-evil.png | Bin 0 -> 2542 bytes data/images/sparkles.png | Bin 0 -> 1385 bytes data/images/speech-balloon.png | Bin 0 -> 1244 bytes data/images/tada.png | Bin 0 -> 3725 bytes data/images/truck.png | Bin 0 -> 2291 bytes data/images/twisted-rightwards-arrows.png | Bin 0 -> 1165 bytes data/images/whale.png | Bin 0 -> 2468 bytes data/images/wheel-of-dharma.png | Bin 0 -> 1621 bytes data/images/wheelchair.png | Bin 0 -> 1487 bytes data/images/white-check-mark.png | Bin 0 -> 1137 bytes data/images/wrench.png | Bin 0 -> 1216 bytes data/images/zap.png | Bin 0 -> 822 bytes go.mod | 9 + go.sum | 117 ++++ internal/scraper/go.mod | 8 + internal/scraper/go.sum | 14 + internal/scraper/imagescraper.go | 81 +++ main.go | 206 +++++++ 75 files changed, 1577 insertions(+) create mode 100644 .gitignore create mode 100644 Icon.png create mode 100644 LICENSE create mode 100644 README.md create mode 100644 data/LICENSE create mode 100644 data/README.md create mode 100644 data/gitmojis.json create mode 100644 data/images/alembic.png create mode 100644 data/images/alien.png create mode 100644 data/images/ambulance.png create mode 100644 data/images/apple.png create mode 100644 data/images/arrow-down.png create mode 100644 data/images/arrow-up.png create mode 100644 data/images/art.png create mode 100644 data/images/beers.png create mode 100644 data/images/bento.png create mode 100644 data/images/bookmark.png create mode 100644 data/images/boom.png create mode 100644 data/images/bug.png create mode 100644 data/images/building-construction.png create mode 100644 data/images/bulb.png create mode 100644 data/images/busts-in-silhouette.png create mode 100644 data/images/camera-flash.png create mode 100644 data/images/card-file-box.png create mode 100644 data/images/chart-with-upwards-trend.png create mode 100644 data/images/checkered-flag.png create mode 100644 data/images/children-crossing.png create mode 100644 data/images/clown-face.png create mode 100644 data/images/construction-worker.png create mode 100644 data/images/construction.png create mode 100644 data/images/egg.png create mode 100644 data/images/fire.png create mode 100644 data/images/globe-with-meridians.png create mode 100644 data/images/green-apple.png create mode 100644 data/images/green-heart.png create mode 100644 data/images/hankey.png create mode 100644 data/images/heavy-minus-sign.png create mode 100644 data/images/heavy-plus-sign.png create mode 100644 data/images/iphone.png create mode 100644 data/images/label.png create mode 100644 data/images/lipstick.png create mode 100644 data/images/lock.png create mode 100644 data/images/loud-sound.png create mode 100644 data/images/mag.png create mode 100644 data/images/memo.png create mode 100644 data/images/mute.png create mode 100644 data/images/ok-hand.png create mode 100644 data/images/package.png create mode 100644 data/images/page-facing-up.png create mode 100644 data/images/pencil.png create mode 100644 data/images/penguin.png create mode 100644 data/images/pushpin.png create mode 100644 data/images/recycle.png create mode 100644 data/images/rewind.png create mode 100644 data/images/robot.png create mode 100644 data/images/rocket.png create mode 100644 data/images/rotating-light.png create mode 100644 data/images/see-no-evil.png create mode 100644 data/images/sparkles.png create mode 100644 data/images/speech-balloon.png create mode 100644 data/images/tada.png create mode 100644 data/images/truck.png create mode 100644 data/images/twisted-rightwards-arrows.png create mode 100644 data/images/whale.png create mode 100644 data/images/wheel-of-dharma.png create mode 100644 data/images/wheelchair.png create mode 100644 data/images/white-check-mark.png create mode 100644 data/images/wrench.png create mode 100644 data/images/zap.png create mode 100644 go.mod create mode 100644 go.sum create mode 100644 internal/scraper/go.mod create mode 100644 internal/scraper/go.sum create mode 100644 internal/scraper/imagescraper.go create mode 100644 main.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2d1fd6b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea/ +pickgitmoji* \ No newline at end of file diff --git a/Icon.png b/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b9c666c8b562ce1ed8dc2a5dcaaded184093088a GIT binary patch literal 2375 zcmZuzdpwkB8@}I}mpNz{6XP^8z9msE6GHor*4 zNG(O0{W=iJOrkqOb9_`R{`NB?CEKvej8tPe@;{=086RBwwRAz|rO{Y~i!tr7qC#pL|dpn^8@ z=E4o9u_J8HOQu0RINzu1NVG2e*_bj#vGs<5Ji1V+bv%n$$2r6O?;IM7 zw*Q3*VRuK0V#m+Tx9{VG?}ga#kv!M9^RCx?4ick6W-60zS2RTP2wdBG#oeCqZM0JK z<{ujj3vT=w!HKue>)}O*-0#k}-R)fWxZJpQIo;ew*8a_#>o*QOi@HbM-13<1r1B}L z4$X?+H{v`ci{JQ!cf;1cN^BZ;ckdH}1@|5GmkS@XRGi5)CKNw&jAab@z8d=dU`NK( zZ-xJC7s;(MKBhEnbsLGESUTO|`_rGxqWfR8s2aLxo&CD{5<$bHQTG*(xnrnCrNXu8 z#oQ*96$>eN)4jh5-O0S9XsT5C^4dLo=B7Ot&)h|Ausf=%D{AtuYC6r-U@QJm9dx=3 zCik{B&N#_QO2!LqaF&zu6jwXP{JqHu?HQ^LuLRt#$qIh(IW9s+R~(2~$whiI7rt{2 zz#0V$E@w~DnEM^1_;u6*s1dcCJ4O@zl`2_!;>$*gv)lwGa-#G%6O`>iYNJ-GUZtM| z|EyMlf|I4Ij2hMrGxfq=ir<*si9{=(pAzq7qS9Up@((o|wj~G3N7mpjbRY%hXxMlN zA@2xPDLKUOp$W0`uGpR|9p*;9@~SQiTOtP84I=Eaz9JEGaOF<$>oxd`_x;NmF5OY+`C%)+mL;1LWK;8h7XY~k*RIy$#amz}m-bt1hQ`WLy2KFl zo`Iw@P%D89gFc|VQA$_3LKs5@ne#SCwbE83%uT~Yiv{2!A`E}^-f_FGspQecZ*`#8 z)#G_Lf;|sCU2VV+gf{ivzxeYa892u2_0!#cWr*+-Ke>Sn5t^l(`Ze{NMHumYEg!(@ zDA>kjqW3@AADwENJc)#9SteZXFVRBUZNN~=(qm}ByU$OF{u*KocW}RfF+W#wD2)P! zw}KG|eUYX_VU`0D3M>SWWSg-*7p8e89|U%*!5ukzPhg3g0a>8}KA>US3EB2a>_k~X z2fot64sE0@+a}WgpiygrTUJ%A(eBBop^$){4P_SkKXawIqhwo z@ro4>KfdUYq-SjXYqtfmMEBlG)l?CmhFOTjw)29Ypwn*6%n z4&Nw#d5#4zSQRmobM{=^hb*ue2HQy4#x_J2+3q}!L;(Cf3kM#Ya*x8NqM%)d_xZ-9 zReykzr@N0~ZX|mveM5Z;(??B@`Dg~2ezpWjU5PnSQ26k)yCr^D$4xt5OK=VavvPdV zn$Rc{S1eihh{Zt2Oo6Q{NX5rpz1om;Ng$$k)^Wh-1or5Q7^N!MbLrS5KA*N zU|7}@&7f$ln?OCv<>u~LI7`$cBqF~KEEI>2f~RtImG3NQA0E0z;$fQkoWrSry{wM0 zK^m*3T8qo^(?SG*M1Fh^uoxjl^c@KI^$xi$Y!GQ0`1$M4f$AG!9ak9 z1vVL)P!d9y6RE~4_Fa&mL{4RYoI5FxZpeE7Z~q|NEscE`9<>t0NOT${N|flqx@V)_ zCNjx^7Hot*Uzm3xEHDViUh)jNH-}nds{G0nf}AAv96=i0NC8-{b@zmQ@AQwlg3+RB z*Iy{8wd_;(bW@?P`plN@iT*d1Y@~f*jF#9#^n&yLCi>j)^+X}0HGi!d%An`#iM*c- z^oD!Y+n9`aFRaA}S}%7&R^9G+S3B`6xw$H)`bfd1?sVsb8I{P5wHLQaL7AP@-oDdi z^xCSP9b3{SE6&$@Zcgv#=3It2<%b)EwWG<|K4j_G)x^1(8C!KMi7QW>d${GP+Eg}j zyyx<9gM3HZrYUzj)_>F&ynnaKY4YjD;jY!=Ktjh d5l*yAg==Q5+oTg*Q}#I_`FaL;)Cfgc{{^bg+hqU% literal 0 HcmV?d00001 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3877ae0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..b98c66d --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Gitmoji Picker + +A simple GUI picker to choose the (right) gitmoji and copy it into the clipboard. + +## Credits + +Main Icon by Twitter, licensed under [Creative Commons BY 3.0](http://creativecommons.org/licenses/by/3.0/). \ No newline at end of file diff --git a/data/LICENSE b/data/LICENSE new file mode 100644 index 0000000..eb7df95 --- /dev/null +++ b/data/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016-2018 Carlos Cuesta + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/data/README.md b/data/README.md new file mode 100644 index 0000000..cfb3cd5 --- /dev/null +++ b/data/README.md @@ -0,0 +1 @@ +Gitmojis are taken from https://github.com/carloscuesta/gitmoji. \ No newline at end of file diff --git a/data/gitmojis.json b/data/gitmojis.json new file mode 100644 index 0000000..14ce266 --- /dev/null +++ b/data/gitmojis.json @@ -0,0 +1,437 @@ +{ + "gitmojis":[ + { + "emoji":"🎨", + "entity":"🎨", + "code":":art:", + "description":"Improving structure / format of the code.", + "name":"art" + }, + { + "emoji":"⚑️", + "entity":"⚡", + "code":":zap:", + "description":"Improving performance.", + "name":"zap" + }, + { + "emoji":"πŸ”₯", + "entity":"🔥", + "code":":fire:", + "description":"Removing code or files.", + "name":"fire" + }, + { + "emoji":"πŸ›", + "entity":"🐛", + "code":":bug:", + "description":"Fixing a bug.", + "name":"bug" + }, + { + "emoji": "πŸš‘", + "entity": "🚑", + "code": ":ambulance:", + "description": "Critical hotfix.", + "name": "ambulance" + }, + { + "emoji":"✨", + "entity":"✨", + "code":":sparkles:", + "description":"Introducing new features.", + "name":"sparkles" + }, + { + "emoji":"πŸ“", + "entity":"📝", + "code":":memo:", + "description":"Writing docs.", + "name":"memo" + }, + { + "emoji":"πŸš€", + "entity":"🚀", + "code":":rocket:", + "description":"Deploying stuff.", + "name":"rocket" + }, + { + "emoji":"πŸ’„", + "entity":"&#ff99cc;", + "code":":lipstick:", + "description":"Updating the UI and style files.", + "name":"lipstick" + }, + { + "emoji":"πŸŽ‰", + "entity":"🎉", + "code":":tada:", + "description":"Initial commit.", + "name":"tada" + }, + { + "emoji":"βœ…", + "entity":"✅", + "code":":white_check_mark:", + "description":"Updating tests.", + "name":"white-check-mark" + }, + { + "emoji":"πŸ”’", + "entity":"🔒", + "code":":lock:", + "description":"Fixing security issues.", + "name":"lock" + }, + { + "emoji":"🍎", + "entity":"🍎", + "code":":apple:", + "description":"Fixing something on macOS.", + "name":"apple" + }, + { + "emoji":"🐧", + "entity":"🐧", + "code":":penguin:", + "description":"Fixing something on Linux.", + "name":"penguin" + }, + { + "emoji":"🏁", + "entity":"🏁", + "code":":checkered_flag:", + "description":"Fixing something on Windows.", + "name":"checkered-flag" + }, + { + "emoji":"πŸ€–", + "entity":"🤖", + "code":":robot:", + "description":"Fixing something on Android.", + "name":"robot" + }, + { + "emoji":"🍏", + "entity":"🍏", + "code":":green_apple:", + "description":"Fixing something on iOS.", + "name":"green-apple" + }, + { + "emoji":"πŸ”–", + "entity":"🔖", + "code":":bookmark:", + "description":"Releasing / Version tags.", + "name":"bookmark" + }, + { + "emoji":"🚨", + "entity":"🚨", + "code":":rotating_light:", + "description":"Removing linter warnings.", + "name":"rotating-light" + }, + { + "emoji":"🚧", + "entity":"🚧", + "code":":construction:", + "description":"Work in progress.", + "name":"construction" + }, + { + "emoji":"πŸ’š", + "entity":"💚", + "code":":green_heart:", + "description":"Fixing CI Build.", + "name":"green-heart" + }, + { + "emoji":"⬇️", + "entity":"⬇️", + "code":":arrow_down:", + "description":"Downgrading dependencies.", + "name":"arrow-down" + }, + { + "emoji":"⬆️", + "entity":"⬆️", + "code":":arrow_up:", + "description":"Upgrading dependencies.", + "name":"arrow-up" + }, + { + "emoji": "πŸ“Œ", + "entity": "📌", + "code": ":pushpin:", + "description": "Pinning dependencies to specific versions.", + "name": "pushpin" + }, + { + "emoji":"πŸ‘·", + "entity":"👷", + "code":":construction_worker:", + "description":"Adding CI build system.", + "name":"construction-worker" + }, + { + "emoji":"πŸ“ˆ", + "code":":chart_with_upwards_trend:", + "description":"Adding analytics or tracking code.", + "name":"chart-with-upwards-trend" + }, + { + "emoji":"♻️", + "entity":"♲", + "code":":recycle:", + "description":"Refactoring code.", + "name":"recycle" + }, + { + "emoji":"🐳", + "entity":"🐳", + "code":":whale:", + "description":"Work about Docker.", + "name":"whale" + }, + { + "emoji":"βž•", + "entity":"➕", + "code":":heavy_plus_sign:", + "description":"Adding a dependency.", + "name":"heavy-plus-sign" + }, + { + "emoji":"βž–", + "entity":"➖", + "code":":heavy_minus_sign:", + "description":"Removing a dependency.", + "name":"heavy-minus-sign" + }, + { + "emoji":"πŸ”§", + "entity":"🔧", + "code":":wrench:", + "description":"Changing configuration files.", + "name":"wrench" + }, + { + "emoji": "🌐", + "entity": "🌐", + "code": ":globe_with_meridians:", + "description": "Internationalization and localization.", + "name": "globe-with-meridians" + }, + { + "emoji":"✏️", + "entity":"", + "code":":pencil2:", + "description":"Fixing typos.", + "name":"pencil" + }, + { + "emoji":"πŸ’©", + "entity":"", + "code":":hankey:", + "description":"Writing bad code that needs to be improved.", + "name":"hankey" + }, + { + "emoji":"βͺ", + "entity":"⏪", + "code":":rewind:", + "description":"Reverting changes.", + "name":"rewind" + }, + { + "emoji":"πŸ”€", + "entity":"🔀", + "code":":twisted_rightwards_arrows:", + "description":"Merging branches.", + "name":"twisted-rightwards-arrows" + }, + { + "emoji":"πŸ“¦", + "entity":"F4E6;", + "code":":package:", + "description":"Updating compiled files or packages.", + "name":"package" + }, + { + "emoji":"πŸ‘½", + "entity":"F47D;", + "code":":alien:", + "description":"Updating code due to external API changes.", + "name":"alien" + }, + { + "emoji":"🚚", + "entity":"F69A;", + "code":":truck:", + "description":"Moving or renaming files.", + "name":"truck" + }, + { + "emoji":"πŸ“„", + "entity":"F4C4;", + "code":":page_facing_up:", + "description":"Adding or updating license.", + "name":"page-facing-up" + }, + { + "emoji":"πŸ’₯", + "entity":"💥", + "code":":boom:", + "description":"Introducing breaking changes.", + "name":"boom" + }, + { + "emoji":"🍱", + "entity":"F371", + "code":":bento:", + "description":"Adding or updating assets.", + "name":"bento" + }, + { + "emoji":"πŸ‘Œ", + "entity":"👌", + "code":":ok_hand:", + "description":"Updating code due to code review changes.", + "name":"ok-hand" + }, + { + "emoji": "♿️", + "entity":"♿", + "code": ":wheelchair:", + "description":"Improving accessibility.", + "name":"wheelchair" + }, + { + "emoji": "πŸ’‘", + "entity":"💡", + "code": ":bulb:", + "description":"Documenting source code.", + "name":"bulb" + }, + { + "emoji": "🍻", + "entity":"🍻", + "code": ":beers:", + "description": "Writing code drunkenly.", + "name":"beers" + }, + { + "emoji": "πŸ’¬", + "entity":"💬", + "code": ":speech_balloon:", + "description": "Updating text and literals.", + "name":"speech-balloon" + }, + { + "emoji": "πŸ—ƒ", + "entity":"🗃", + "code": ":card_file_box:", + "description": "Performing database related changes.", + "name":"card-file-box" + }, + { + "emoji":"πŸ”Š", + "entity":"🔊", + "code":":loud_sound:", + "description":"Adding logs.", + "name":"loud-sound" + }, + { + "emoji":"πŸ”‡", + "entity":"🔇", + "code":":mute:", + "description":"Removing logs.", + "name":"mute" + }, + { + "emoji": "πŸ‘₯", + "entity": "👥", + "code": ":busts_in_silhouette:", + "description": "Adding contributor(s).", + "name": "busts-in-silhouette" + }, + { + "emoji": "🚸", + "entity": "🚸", + "code": ":children_crossing:", + "description": "Improving user experience / usability.", + "name": "children-crossing" + }, + { + "emoji": "πŸ—", + "entity": "f3d7;", + "code": ":building_construction:", + "description": "Making architectural changes.", + "name": "building-construction" + }, + { + "emoji": "πŸ“±", + "entity": "📱" , + "code": ":iphone:", + "description": "Working on responsive design.", + "name": "iphone" + }, + { + "emoji": "🀑", + "entity": "🤡" , + "code": ":clown_face:", + "description": "Mocking things.", + "name": "clown-face" + }, + { + "emoji": "πŸ₯š", + "entity": "🥚", + "code": ":egg:", + "description": "Adding an easter egg.", + "name": "egg" + }, + { + "emoji": "πŸ™ˆ", + "entity": "bdfe7;" , + "code": ":see_no_evil:", + "description": "Adding or updating a .gitignore file", + "name": "see-no-evil" + }, + { + "emoji": "πŸ“Έ", + "entity": "📸" , + "code": ":camera_flash:", + "description": "Adding or updating snapshots", + "name": "camera-flash" + }, + { + "emoji": "βš—", + "entity": "📸" , + "code": ":alembic:", + "description": "Experimenting new things", + "name": "alembic" + }, + { + "emoji": "πŸ”", + "entity": "🔍" , + "code": ":mag:", + "description": "Improving SEO", + "name": "mag" + }, + { + "emoji":"☸️", + "entity":"☸", + "code":":wheel_of_dharma:", + "description":"Work about Kubernetes", + "name":"wheel-of-dharma" + }, + { + "emoji": "🏷️", + "entity": "🏷", + "code": ":label:", + "description": "Adding or updating types (Flow, TypeScript)", + "name": "label" + } + ] +} diff --git a/data/images/alembic.png b/data/images/alembic.png new file mode 100644 index 0000000000000000000000000000000000000000..903d2c3ae8128e7961de712f51fa5d2a473e4776 GIT binary patch literal 2664 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 literal 0 HcmV?d00001 diff --git a/data/images/ambulance.png b/data/images/ambulance.png new file mode 100644 index 0000000000000000000000000000000000000000..a47839447fdea44a2fffe8d70f01a1276e6c7672 GIT binary patch literal 2769 zcmV;?3NH1DP)Px$zfeq6MMrQs?<6%lbD+Z1_rmhy{@sc$X;5~*Vl7$bI1w{00000007Vc0Jgfjs6#(O zLPE6w0Cc^~D=jU{$jDq=UCSyUo}QjIH#TCj#nS))%e%U9adBm5XK89`xBvh?K0rJ< zJMaJileWdXiiTye!_3akfP;ipUu5p@^6&BU?(XnJL`Cib0OkPz;Nju{q3-PN?&IX; zhtsS{{R0lFflhcIo$yODJd!!78msP_vh>EK0ZKL zT3t&{QEqQ=>uF`{;ot$4=kGBv%>V%G_4Zw?!OqXn)Bph40RdE@xng8y`TP3*`|{cC z@@2Tma>Ud5_VbvSnyjv`wzjvvzrgGJ{N$63c6WHQ004c@+r!7mpr4>8oau(XcmM%*00DXc z07s?UEh~t<0000pbW%=J02(aPD2U|#st!R*{WxxpdHU+R<*?@M!}*t>z_#35y|B7< zsP(s>yJEn^aq^^-(BS7tqKlaT00?nOL_t(o!|j;+Thmw?$8`{6K|tNnRmUB7c4qI_ z=gFmnq`46ilJpX-#T1iPdP!+*DXndRf&wd}<8@|t|KWYlNv{gR?vMNIx6mdhZ$A0H z=a!S4JNJM6Z)*C=rO#<@I&>yXXine)(cH0$3OCP0niee5TLPgU_^1?U$peuVD)uN( zojU{P{9mG+N<0VgUbW~KeNrV!6@H6VFN%r@i}t?$;&jlTu12VpgUdhsaQQt^<1DM{ zfHS{nS!#jbhvEkZaD4NZrziK_)sh-H*jipr-KrKLMb;;rR zsi3a_R60n7!)XA)>AX*J-T)L1FTcoArOnEjKve0Vl1^_OI5k>T9bcurqHn2cL8zhP zTM_b1j(&eNLRv-p;GkT!3Y}IbFIqGet-;p5CA1F??1DvG+h3ib1I%$GXO$w66*wU( ziX=snG^N6pN~^e-Bdv=U&d~l>Xfo)IG)cohNm779f^wQhz4VNrIXDINX~aMvDu+Y` zC`A8HK-dtr1DR!!IMlx}3t(qV4H=^8epDovr!N>2 zB4h^PkV>ZeHd)VhF{s&nyRo7M?RP9FG{<_y{NH)*35zZ}B zKMWv!C6Oi6Y{!7^G?)CnwV_5pFfN*1L|VW?hU%nB9q;JdU2n&JJOWxnsrBoK%w+0) z4uI-ZM#Y(Z3YuPvF4ewYdpuMR6bukG6RB_XK?{rZY$h=D2`F@D*K?jd9ut7XV9b&f zV3GsQ!a@?df_g0IuTMCy@$~V-5k1}m5FHHuO#N+gaRju0+aFB<*2S4o&V`4~obc@7 zxc2f+&k?OssIC_R6nsN%XLERJ_-OL~w!Q;R|7c8o5REN0Q9s(ipe`CHFh)pl1fW|Z zQ|Cs+o2%>XYJZLc}qt zG@d+5n?E0dW-h{Qoh-Vwd_G@$)>k~wS9w?`;NDH6DF9q;fP#q)&v*0~=*l&?<*B^j zx9zg+whBeRT6G*ppb4J`PH#1WrfdpNwN#&j4wMGBqnS%QEGtTpY?CN7+U0h&nT+9P{&!4}4{~Ufdd)j`^-al1A z&z}C9wY2^qd^Eqhnog&-DwWDsDwR&Jt}Y{`DwiLes>{gH%(W%&UOF5;3U2`^wY3$1 zdK>_)&M(6UDLl~8(NS*?mwySM(9Qez*TKmuoRS6*kVZLBI=~D;srm473hmAhK{LWn zA3nTZuKeqt|EMgZ+_1($^F7djRC)2@MFoQ}34^W>KfQVL;V1=FlkS7k>5mKyb5=4>n zEP~*9mdA2@HX0RST?JogBZ@{IF9-rF!T`i2B8fm33in=b5~>&FX^#|Hk@7g6@*IK< z#5+Y+f;ZS7zyU@7{MS@`Ai9jryk}1nFe0Nl9i6g)~%8uxR0LAm9Q!Lnq zB%?q@VOn{gLLfYid{fBRYWw@TBr^;XgFi!J3WfcAAy93f<=LRVSe~x7I+`NKa3G^8 zX598E7C;LGUZrRjBdkyEda?e*^I~Ijati1xP}So$3{Q` zD+Y{*Q*we2#< zcFPG<>wy?XPdGhGEP+6B3;;o(U4}{k5Fz5H<4M`jOheXNHdLaEJ`DgvzrxZq*)5_w z91?(JS?de~6A&md`<=V^ZZtJJJ7F3|qm^KAvzA+$Axk$V2fF>+-~0^ecYpXJ1j_Av zFVN0wvMedTxIKI{o>UAuQEV_^A!Zj`be+j#9|~p_!(a*>9OxEo*)XN+W6$I_OwDlp zV%vowT{hsbbo>K&XaWM`z7K(UzX44sNmFA1laj1y@%^e(-FKl{r19&FTEc-f2rSq^ zVCbVOL4Y2E8jRt?H%@vZ5V|gzFgg=Kpdu+#AHQ&zkQBI<2KB4}XX@lP6T?8L0Oixb zFD9T^feA#Cq=~7|z2mq(3_SjVvw%XHm^|g#dv-$U1)lJPx#_E1bzMMrQ<>0nmVSWDSmPSapZ%uY$QLO|KO^y-2M?*D&4NjOBgH$?VHYZ7-60Sl(OHUHR zM?*%N5mPD{>S|U?AQD$DAhtk1NgNTZOG45iBdr=8${!)zBPF;T9>N|VW9DJ$$Q zF8N$o^-)iv7#qncExsr&|Fx**H#YG{M*VST|E8JyXJDiwC+a~!yfitO7#p!CEZ#3K z-BnNid~yDWeOa&=!$Ly;mWuH@IsHUKgBBY8QBU|bHFy~w+ek@+A0@3eIF1z=*gHO< zGc}hiFpMZIkRBtCEdc)j001L&QchC<{%uwk{rv?E{V1%Kf;{KSJ>ve;`S@m~B!#1k z&iZG+w9w?k>Hz=%26jnAK~z}7#n@?A;z$$*U`QYdNn}$Hm$p?vkj2n|V%Rh)wzA6q z|1)!!%0{Cj(;wzKJ!hs*_jBHRQ&lO5ME;*T${ZfX{+`L493&EtnZHhRl7MUA#D92b>d&*>B{rg-z{BD^J9j4LbViW^jU^7hpTjSlc4*n7C zYlqTkv823b8ir{eOG%w0?eC+MILXA4(sAMZ{Jd~1>*`l|G&Lq0sS(sWR6Lb7Bw5c8 zw104VT*xZ6s9Clkt6w-t1C7OE(OxWuiv?iu?Bz0-%Pp0x<2bh6!Wy&&U?~NC8$=ID zN{vvtr)onXNbtg1SWsoFYE_{?vu!6UZyOMd!-P1XbedQlsORT)dx%w|Di(|It8A6a zNP*-?>Xt!kdr@fXzS+3zLfzdpUSD5co}ZuV_4;-F8tV!QwPF#|p%jkr>RS`Rlzb=xj|@8- zhapPT1&Edb&nUPCAX4zbA;g`*61u&;4YwBP&FgF^763=`dhq@1q6j5|KaUbrmwxV$K?nNs0u=)ey-)_;uyIvN2(iQzmvBhp3Hg0htCcD`gC#)T z$t{oKaO~sT1EmHE4f-!~IMDFgpEC@)0!{^9aI>Yijv!Jp_3plhAcSC=ji~3e`O*7* zRj@D+B=S~vB%-HA@FKj2zt!YwG^6gzjhUfn%wblkB4g7OSX zQ>Qz`Rjua75lpFvfmSeUBY2b8i#v|B7`DU3%CJ@pdg9 zc=0Iv(_y67@AuYygq)3Qo1Q|*s)dS9X5OR1;V6ClwO+43Rx2gF`60)I-av9Gs|MGN zGF}?1)$nw{n4{B2Xz56s_sAqhYO!S1@JM#UY;;A?e2sxVRsdqA;j?a1GO{xa_JJEr zNhiPcErM?1=T1ifMbf?7xGonivoi&LH!W%3{aQnpOw*K-n`6LF*`_4#^fe1!Px#IZ#YgMN(&aX@{i$|Nm}{t7U;z<-5<|iK@ut=jyr3GI;<1019+cPE!H@|NsC0|Jp^G zj6W!b000ARNkl$CI^ghgJ~c^H2ix`Y2KBqJbgp?2IukZuxBZ?Wmcp1e{(N zX+6M;+|Bj+Do(RYuyrKT3U;LZ7K3paaHaGb^Fli(+@=z?d~V#2m#-5|QFfd5oa=&C zFR9P5u>0}yx{#!|keJWw*MZsjFn!KH z1xzT&4Kmvuzs=m4DmoyyV{Vw4E7Yud7x4hcIS-%(K(++2xPOYcJ2JCd(E#NOSAkx} zbsTw+1P~9CtFtt#rgvj+tL<<1d_~A zIb;LWb|fF5GU~V1)7c2>kv?>^)6ACkuORC|%7YrL{R!GzIt~H>YWz9wu+<Y@wwd0fdgM4Lz;RG&s~COYOyG_X4zMRMIv;)E>1|D;(vJDQb|v8QRMpEzrz< zz3RVy_KP#PE()U9IL8Ktryx)Co|IM1RAT%eGfV0XnO+!5-i8Y0sw8W=EvOn#Vbec8V$kP ze+{`|588EEOZuM1KO$Hi``jKQ4NTOPkl7S+t3&BQsB{W7pV{Os)t-h=g<2Ep2!Px#IZ#YgMN(&a|NsAOjH+>wuv2S-Vt$xthN4?_jZ$cS zQfYpGq{MrkzFBgLc9^%3uE@*S!%Ju@Tjh1 z&*~;GXU3*AX9S+rtgDG72OJ^?NGlm5PAnxOFSD+>Vq!CMrpb~q;zXs4^tSf3*@?)G zY^(kTGL!>f_`tUn(AKkTVZpwWC!PpuOkTzn-<^*CmHQ$ki z4L5bQ4)944Y?{I z0>a{h+v%1p-rOg^Bj^)Bfuo;*!Ua`E(DomH%HR8W_4cwNoTm%08bAs`p(moE*m?PO z&dR9HH|At&12v$5;6K0*WHct-1_||nj7FgAsZnD9`HcFd2ZH{_SU`-0ag0*yfC41J z(t&``62wX442na%oP(;2YViT6E15xZ;P@X%mU9D=UqQ5#QxDYhiU>N9(n-oQ=yb>8 z%pgYIo&0$4w4gYYZ6QcT^=-x(m7A2PL0$ExCad)03!w5K^#C+@lT09S7bJcGiGD_+ zV=N#c+XB(gs5Mp@2@>ht0r@LW9|H0@h42Hh)q=vXByMl-O^sGhphL7CnL)FPq*LHH ztKaZ=V-qPMHN!i<8tr4iYS5xef3AcoAePq>zU^jq#ZIr63{hZIIY}X(Ox2XI+RUJ)(b|?>`8%TlFV$@}a z=X{pa)>x28M-l6yYN>Neb#~c4>ajlEjlTt0k5p0q0H}nOr*sG8sQ>@~07*qoM6N<$ Ef;@!er~m)} literal 0 HcmV?d00001 diff --git a/data/images/art.png b/data/images/art.png new file mode 100644 index 0000000000000000000000000000000000000000..77c4778c5a38fb7e1ebd31349bd0591d1d9cee0f GIT binary patch literal 3744 zcmc&$gyfC-Zp>G}}^X?RW=q&r1wbc1v_>4s6#EsY=o zlk)lgig(|4ci;U1_uWMybYM@&n8*MCz!MF1sNO$U|38uv{!=S46|a9rWUs8P3;@){ zKfbjj{+9{f>A@g?>T%|M0DusHfFo65DEM@StT_zqtw=SSAu*8v#O3NnT7#FeS*zd6 zTF5@1h@oB0V)~v!W1_^hP>TFuDC(}sjYY%Mg&0=L;bR{uV(nG*#h#bia(xS8e|0@LXnv)QtX z1*)sn#y@JcmkJao^AS@iEOVdLmWyFac|tQ;5)+AZLvg$li7$RM7<~V%G@m25Rf`;r zW8SPY!SBEiT8vhT#HNx3Hfs=z82D^5-BzXAd;xqchH@~Pel$gJqZBfg1C8PBx>;Rrz#NZ&r#@LY@yU*B;Ie-?G0n)$8I}pzMLvBzMc~#YI%&7 zeZbqYRHD(-<}LCqM!eWxCPT0fH251o%7YD}YJ5G_9xmGw#F41flxoGRKO?GExbD!g zvrul*Ab68|FMjf7YZc{4D!oElcHwVZ0Pg zPOSYI@Nff8{EAAO9~rFcP(1nTJGLUj+F7358R=1AZHW41lI5%p>^8*CHI)hckO03c z@1w%-toJ11C7)aqU&Wk^$W}T=edw1O!btcr_E-d`Nk()>F6mW|7!5mXo`ZFE)D-@7d_L^g zc9;-J%mzjp7wDAI)ms(&rKi5Mj`37^M{SR}n`tX)k<8pht^a4bUW`hwOxW{K|M z9L@K=)v_|&zdNsN^>4j%X+ug+}Ap;FOJR5=aPTyj&-g7{r|^3RO7EB06_Lm1FDQP>N!etMC$u6 z^4;3@B z1QFJgf?5h&e%`dque5o&9XEd3>FJnv46`~GJ-1c(Ekn?SLSOmiUj1ENepUE>O6XeA zP+gsYcN<+4N=!Tu4uioW2F9OIklhGzSO@pK;CxX6j|wQ@)8{OK4UokDSqSP^gN;u~ zGlSEYRNsj<((DYP#-d^}p8tMl)kQ7O^I{w$l1Wod-YiSGd;e>-v*v`y*NjQq!3M8; zNlPuu^#Tl*e^ZFq^JMx;JZ`>F`?CA~?c0^^V^l(Z+~8@QV%f$iz+x|6E&tV?de{>3 zZ0Kw1?e+C7|7^2sviL_fs@tuVi1r7qLBBoQ7*B0D!(Lw1-$j#1BIj#zyB+eb6*kz1 zCL1Rs*V*{~W5T<)uk7#d2eo`q+w%So&kY!3`)>TX+tT9x_Q@4qX%ht@xKPQVw`;>~ zSs+_mPk8{xS<6hgPCqKjUxyVwxpICU7wHrcYS>3RB^XsAdA8r8M8HE#{;E_nn9s2lM1O#6k6N? zvyWtuM^{|Y?gWm;W_^5UOLJp$^VQ4THUw=ShZn85)4Jxx!PAL@(8xHXpX=z&VMiPx zUFc@0Vn8u>qiru1Pq@G9sKu`w_GTU;lajD~2$DqC`w35QeW9I0ylhea-#2N`_DtVosC&6!cc{%5qn#yA6u1<}}hXgB;LQ2KX!g$N8q#Nm!&VP6b z$meCTic_Z?hRb^i?4KMQfXwvwgns*YrMf8Q_8TSyCQVR5Ko9cOSw8E&qNQ}@4=vPq zAvcw0R;81Vswy|Gvr-+)l6a4197GG!j02R*qyxVyfrImS^DifHex{CkFsvR;Jn0QZ zX$Hx@XW+DB*39%{V0U-(RdonNU9Ysh6i*7_Fo=xgTzseXc+U0Hd>x&Vha8u`G+&d^ z;oO5EmF-oGMq`;o=gQ9&iA0Map++MC5ERN0%B1=V5^yq!3$8Mqr=tnXON;K?=rL4u zVk;xwublfhUE<{L@9*T4cY5W`TbV)(V`nC%$|nul;tlp~1m=;Y(E&Ak`Gz*%J`D;k zxP0UVs5f~8ZQlBg8A)%~_40XZQt*t5$W@sNiGjE?Q$@`u*z>?7!digNJgFmfig@2H8II! zU)+t&77kSk0|cGetiJd&$)R+kpjL0{56-pHy^+4si0AqBMu--g*A=P=NpMr16S>&n z0-QVD#k#h|Yzv=XlV55T6-g;!BWd$sz~XCS($2^i1evC9WhfUHv5E*0Ru~Gj^Y0Yk z&i=%!y&e4Bj3j=#^6jL1S&W@Ix5Z}Du&SvfzC{R*x)339ZgB3tAXWmk_fjp zvz_gASt@6;fv2U6*y4s51ai-+N;ZNE7e!MusR4eennK%B4BHk@o@wks5oB>1!sPS~ z<=i@f?$}`B*OW0swo^bl-LKP%Pv|8pT8zlZA3aHW00X_&2jr#{D_{BvIt!c@A8ywI?r~TJ-^bQQfACHuLMgtBS zF47A@3Z#wUe~b&=c7ZY70ztIfWz#X_;k(h& z?a0vwI;PDn(ot9|##ljxx0l#o9;lSp2P4D7uGm!XYV8^+(GAi?=UNuEaP0|o-_z4k z3$(S9_22cApB>?`<{d4-NB8=3fdlg<<`m)eCJmYm_4Nw0mL%@=aJ!kM47G+SZn3N} zyUte$lg)>4Gh9PTJYka?6nb!U6~10Q#Y z4x<{9E-gFZ)^AQ|2PW2^2)yXr@TmdH(ZJM||)q>dGOF0{>?2wv?@C0ry#LWb#O5v>e@T>Or3bA1me-HRa# z=2}0{D?-0fyy-D1H#k7Ui+NjjWOzw7w=B8b0E6L@7-)-bWJ1p_Jlm*!KPx%Nl;8wMMrQ>Xg@CrInSyRtuBV`YcWs!8d3bejlX_c~jDfVOo{WWh+t9_zy|HDSXNWp&cfTxyxh>l&cL$P&A_#*pnZ01fqQd|fpFK# zzs0wzu9bjrZDyN}fTNX&gKt>PysczWLuF1se0q0pSxBLZaCT`~-qy~-uavf-f_!UR zl!|>~U03+??DX&G`SI!R=-}++-0tDg^6cgQz%kRtxBugt_3GZ#tAhT_YX9Mo|Iu{e z*2(kc*w~jM-i{#N(#7cA(#W`|nolFyh#UXel#_vM=iu1Ri6Q^eeW`0H_p~PLswI9$ z8sys0+sU~9?3CNhz{0Sg|Hd}de;EJUgY3M3_Qr#%b2HAQdgY)ey?;BZif{JqII#)&AQQ4IgeLAbWE=!Y4$gIcs=DsDd`)xD(6on&=137K9nxM>f&rjqTq zTfmM{{?Ul|z)#Aqm6C5w;I@RmkY=`+evnHW?5#UxD+{@xhTwS;shfzJLk6~tah8;k z=-bMbX*=VlNBjBr_{MnNu5YJXFV?e-y=^geSvl6$)Tw?)rD;Xdmq~^^2j%4B_q9f) zd0_v|S;TcIj9e&kOC`j^z(^VgS0o7aogK|^6NX$s;K{4oemDTP#hd^D06%n6PE!D7 zS1mmZ1|Jjt`~Ll|lYtxlQF^EB`1?iv{4lis{A!v0%bmECN8bHm&*R|s^VG!Pw9oI~ z@$Sfg!`ZI3e=gq;fB*mq2uVaiR9M68m*-cSSr^4cQ3UKpjT(*77)|eW<{cG;M@0}2 zX;MW|ssa{*1(0G3qGG{@z4zYJ{<66bX4aZSGFi;~b+#__gZ|b&=iYtqxd8$H=|BBi z!Kff45{U}_|0qE>Gt%$hkBf`DpPmtj`qvm#MjTyK%E9Atcs#z8em^5H=wBHNN*9SZ z96XLd$R!X60LBr;-G1x8FVt;{2zCQFumB3M2)H<;zo45E30(vm%FWHm$<4W>;c&U> zewG*V41yqf={J%Wla~Y6$hqUEp?EYJEumb3fG4lu3UlB3#R-f@GZ^uZw>TV*;4Ll( zc7!9`_NTVM`<0c9%E}Q3Abnf8Zym?u`~p404h)QU%Z+`9Qm|GzFg# z^6Lhpkb$s}sAuZKoxTa-2Uza8@$tD45uPHZQ0C@F9D%>&ATuAp9fr{8^atacPNDD= z=9~)qMjVRn5z$EZm}9#I`y}RWWMoX}Kduu5i6wM8okF3|B@FdvA<*fGk!Msm*2l)g zib3AUc4|UO9EAd5?cVZjhR2|oS$#TF=Bth$wWhx z(#ze~(9n?A&;VdSoH^iW#|skos(8G`Y)m-fdIV-)l;zV>=rae%1K{KVP96}vkG-r? zKw2vTAct51Kqr_7ApgN{I``v!u3jbsEfH~GKd>E`vkboS8fr^QzO0q4DMnWZ#}uo( zI-Zf86$Ji1Vt&6l&DW9ffZ;V%>(yVD;Lp6m{O+Ef-kQ4A-cm!*LKPx&(+0Z>5q#Z-sD+@Eoz0yDO8e z0J${v^>TGu2n^af`wtRL*j8;xKJX~k&@{54p_TG-(xlBM zSBHc2CqMeJM)6B9^h$IiL3T^9_;IoO0`rsN|UcVWN%lOVH?O(HcnnS8G|1 zRrtZOEg)7^5jzShDvB#A$V322cp%#9#9aF>Y7r@&kDkLv@J+VcC|C7*K{bl9wY46N zwa01|p0byks(?C*y`X9U+D>TR@0|ah6YzUd(ya(@uh@$`xoUM3sHSFYt*6Io*x2~G zA>33S@PVT$Vs#s+t+=|1%2i=fIDl8p#Zo5*z=ko=V zzz&&A9yW8Cri9EZpoo+dZ)wPf(K=h}0oc5m*FxrKd@y%r2&M2?iYvw=?Vejc&x% zBklU57KoCBNwu{qj|$q_D%#qLiB%mPRs1G{fwswB?0WxRI^EUPCDoA0B$sP=a>8?Q zYD)7lklf9l;cO*D+gb%jpez8YCU#tc+PRzR&(j}2P6Lqi6O+6;xGk6SoOY*YEZx_g zcK2RqN}}6ln*{-vwE%yHY>HZ0)(<2-l+g(~}?eDicEn?pjX;f^& ztwk6FG5}D+O;sILO?oyyI|GG=^_HlZ&Qb==lT z6376nfHmojgg~JDxcKym<=i>zbj||Vxh~o0`p5vp!J*lYgM80L2`x4*b&^zGUS7>w zF~gBC3zT}MXs+1wI#!#5`Yk*$`}^phkq8IW95rBZ3; znyE~kB{G&hlgd`lOo1x~;w&%cQYu@*o<<;lHqk^Tx~FNhNss_?`H+ihHdDFv;M*96 zK)ec@0e7%SM4>~KGwiTeZz5uT{!j|OvB`VSq#ZOi!lWgpUQgrJ)42U7(RYF)pTBtV zA~EsRs~69o{~j6h&yO0^Q;SY2)dNr?iM-Ovq|umCDUJE*1dbFc`8up*6e{$W!z}W( z+v5>(kG!STfjo3gf0BZa#ot2xdn~*i*}RzD6Ao?<_STiVm>?8gpQhix|Kxrb;uk0M zHZ=8NuOA$2ySszEDxuKcKMgqV?a>*2g0isCj76@pEiJiRy}}Ep=i&n7V9yzy>F0YY zmW|~Q=p$2((HhxOza6B(bMEn+pGV*H_Z^M6mx{$N=Muoc_GM7cGumhEcDwWQcwm6P zLLqL1u^FP=<>eg5z|^?fwB2`VnZn))@L!>KBHuhsg?BNS`4{LA1N-L|M#wRf*E#24 z7UGxDGUVZjr~!hA=5@9l4CDef4i0G{Mt(jS8yguBM)C&?M!{eQ0MtH|u0FRNO8@`> M07*qoM6N<$g7aS+Z2$lO literal 0 HcmV?d00001 diff --git a/data/images/bento.png b/data/images/bento.png new file mode 100644 index 0000000000000000000000000000000000000000..89525b35ca6e764160857f9658e235a93b6d0b54 GIT binary patch literal 4187 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 literal 0 HcmV?d00001 diff --git a/data/images/bookmark.png b/data/images/bookmark.png new file mode 100644 index 0000000000000000000000000000000000000000..98fc0458d31bd78947233420b0aa93199df8e983 GIT binary patch literal 1450 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 literal 0 HcmV?d00001 diff --git a/data/images/bug.png b/data/images/bug.png new file mode 100644 index 0000000000000000000000000000000000000000..8371554a83383189fc6bfca9376f77ad72b61a85 GIT binary patch literal 3478 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 Eg8!0?cK`qY literal 0 HcmV?d00001 diff --git a/data/images/building-construction.png b/data/images/building-construction.png new file mode 100644 index 0000000000000000000000000000000000000000..a81a67df8a2d754a9626038d0caa84d4592c98c5 GIT binary patch literal 3121 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 LNkvXXu0mjf^tfy( literal 0 HcmV?d00001 diff --git a/data/images/bulb.png b/data/images/bulb.png new file mode 100644 index 0000000000000000000000000000000000000000..ee720636ee3ed4881cb75f9c666042fb383daeb1 GIT binary patch literal 1218 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 Hu0mjfv6q)w literal 0 HcmV?d00001 diff --git a/data/images/chart-with-upwards-trend.png b/data/images/chart-with-upwards-trend.png new file mode 100644 index 0000000000000000000000000000000000000000..4065c1056750c65900c87997c5a1f906b0f2cc7a GIT binary patch literal 1861 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 Ef}kBk2mk;8 literal 0 HcmV?d00001 diff --git a/data/images/clown-face.png b/data/images/clown-face.png new file mode 100644 index 0000000000000000000000000000000000000000..3225494cd0231034fb005477d63f0229aaaddcdb GIT binary patch literal 3526 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 AasU7T literal 0 HcmV?d00001 diff --git a/data/images/construction-worker.png b/data/images/construction-worker.png new file mode 100644 index 0000000000000000000000000000000000000000..1c3c891d066ce534b5dfadd64b5cd030d7e3e70c GIT binary patch literal 3221 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 literal 0 HcmV?d00001 diff --git a/data/images/fire.png b/data/images/fire.png new file mode 100644 index 0000000000000000000000000000000000000000..48a97d78119394de6867d3fe1a78de5aee3fd2b1 GIT binary patch literal 2128 zcmV-W2(R~vP)Px$DNsyQMMrQ<@@ZM}fq(K+O7mP)@{E1$B@|=U`svHi z@u8ydG$Qg)Kk{E#?^pxyE*txJ|4kYHWJCXMJNGFC|3L}=a7O>sOaI7B|F}f|+*SW! zFYhe@|9nROutfa()c^8w|CK%M9s>RR-uOBK{{7_tTs!_Z2K@TG?>Ykia5DTa0{`Y= z{y!M}`mFr<$nqKh_DTW&=M4V!ga2J1|Ikzaa2EfGJO8{Z{`r#sYbg4X1pcoE|AYwt ztSR+?0{xx`|Jxh#Y6Aa_Apg`m|Ljoz@?ihB5&c^P|He80=sW++2>tn<|E3TBeK7yc z82`Z*|C%fR%qVnUsu2JH0338uPE!C{D~@nG^92qa+Mz`L=*z3iyuj#r*}`S0?wb;j zEdc-k2AxSnK~z}7t=M^6+E^3@@B)D(Y~nUuhC)IDf(aHV0|tzOpr|OD;EJ^R{XfLK z=O#frf-tqGf7Iux{qdfYdv6jxd{|T>=l<|V${k(}{t-xAHNzbL2OuFLHH!i9{SY58 zm1cRx`+mq%R!UO&546WswFD%eM|daXQl$h*>U#&pAV^8|or4Oha)L=_)$e^@BDpk` zg6|qOwZ zt4po|{+Azlmrs?HY;-5eBn?u{v(y?FpJyPrTtSboR@MN;Vo`z=KvmyTW8$7a&+Ait zYSol0N-KuS6QoIIQVlGzS%kH~6!O%}5=v20`4}Q$Oo~!jG7`_3(?p^lOFEUxW>e@a zii#7Y$!596EpBY1Vj$W zYg$5bIulpaq^3MO1m*J;O>4>vA#tN5tqISgmNf**+l(bmmV(?H(#mv-0jslL15F|K z0?0r81<|i30X;iWf*xC16Hv`BF1TpVrTbe}B>f3uncoCR0iZX3h zRxwsKge_8w{P&!AeLg!E&BLJl3x`PzQfmSBJDc-I?hQxmpCSZh+YAK)fPi{a>f*c3XSDYqUc6XC-0H|e2Di%DmCsaJkO4jao z85R_CoHYL0v7iK3J5o=kAl!4}ufDhfJtoFjrVxVPcXrZLFG#{qi1ecdYzI;%`7IG8JyijuVg zLD|~gN~h`iBN9Q)vttK(J?&taAV`FegWD?$w9P6_65DQ*N@a3sLxn>4)e-0NSrDW% zC(zEfQvd-dSO={D4CLYh=22$aG9-nJn}ia+KVl$-~#L>STq zlPt#$w70jt2kFR?SR@7&XF|bn!GLspaY5a^aQ3WXP#R}Ir$dlA7jm!ESfq;!B)@#@ zbTZV~k>l)bvrMyk;GOIgN< z2%2$_xb#9nFA~)5Jpj7BO>Yqd2bH5tSeduCCnufGF`y)MR-19!is(((i^r7cp>qOg zYs+@Vr>6+Ts3DWstgHCsSqBo&sRi9A4y;6gh6I5*9q;dt$0Uumhr^)_p)o)+Z*Za? z<2G(yLVH)a#_8$)?ky^HJwQ3qaQO6ea{cho>l)ax^PVN>1hAo>Ps6*> zRgUI!@D0TzKzD$CB2hbJ=swr{XGkAbcemX;2SiQ-d3L{9g*i2HqmczYbnAwXd+X_# z^+wPSK#f!8d`GcNh=fExC{YN`+=mFB$2*l_gt`v|^)VsL`G7f)Y^cwmZpe7!jl|1| zSeEtBpl3q}M9x1biiB|k`T?jNs=xIbAq4!KxLFT{x(vFrp??_kouJ&P59q!(2(7>Q z%q9fPjg3%fFlb-j|LFIxeub#DyMDiaf8HJ31iYKUH@|f-756#%!}4G!74ce)+iR{omgr3Es_* zJDs2Ree4q)Bm2XTe}D4+-Zx0R;QsXY=f9{ve+Ke)mVW`=Y2-|9X(g8c0000cG+ literal 0 HcmV?d00001 diff --git a/data/images/globe-with-meridians.png b/data/images/globe-with-meridians.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a99cb23e501a899432aae49f194afa0ce07f3d GIT binary patch literal 2985 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 literal 0 HcmV?d00001 diff --git a/data/images/hankey.png b/data/images/hankey.png new file mode 100644 index 0000000000000000000000000000000000000000..f29d946a70ce98ad0db223895412d4ed834c7081 GIT binary patch literal 1782 zcmVPx#v`|b`MMrQ34F>^s9m0&k+JRgo(GYbm~pld;qTs4|yJofhWr*ueYHyvUz8e1t8{Qdmod(uq|-iPaUzFaM%&=;c*IyD%tR!eY6h^g@* zkP!eULYElpeaNBZ5!j$<)68I=;V0n~Y4jBHc55Fm&U zaNuN)_x0^(yYKeK0a8{v(k3|Mc;DWvD#jQYo6QD$1Oshbz)^1o^#X(-2NTw~qg4E5 z@Ya&nAjG&7X5_^2`b&54Hetk6VSBhb%G#Y|y|$*)k#T##+gQ*p^*jUzPStQ?JM`h= z&Ehl|hX^rEpy*TKv693Qhz9uV#`773p|a*pbdn_Tn8twd(QT*e3FI*R`ONXmP*CUL zGq_{i+^oU{4GMh*W~C-qyp! zyS3-q-1n2G<9@rZJq6u{Rlu0OoojPxal!S?F7JA@OA3 zRGnreR5VnRs&aWc)2rHZpyscaXkF*>HRo_koYc9j4(R7eW@Uh~pss>?q&A?@kRf{dHkCyPfmV*qSs~M! zk_MR!0R&!N^~knC7MX9>8IYcyfRjIZ9`~WyY_FCQE}lx67b}5NCB6#kf+7M7NV{C7 zd7h@}RdtrzT>pFxGC5!lYq&0E=_)F5(`h9rV#!h1d&uQ zoUT@64?&=Te&h$cvfQm`r9l%$k?q4li&yH6P1b`TLm8*UFP9JRzD(>bNdKoR252jgEvz!(R?1!w7U4tIhMVa32? z)25W-G%{7Jn2X~<{3HSf9qCMh<_r5+$e@Q{dYch%N2S!L z#?rLda41*5SyfE4*)iIe`tb^)vu&HJ3QPHn$#y;#tBccIuNgX{s`DIfgBULmn<^P3 zUu?=u5-hKF0oUHpXB=7w^~$6A&!9;|(JRq~an9Z4X1CjI0s$EPnW8xsEnu{PbuKiP zDCc|eQD6`cPy^l=3`(MeXLmG4z3#b@X`c70#z0Du#i_@*X$n95JtkTIxTtNzvY#D6 zS@+!5J-ifw`;n);psrH*gFrxn^a*Xm;OE^`Q`W;Duf=3A zdudBBuR&4gQV#fY_r5^Z!{M<1vq}y+_&U8KiQ{kIzLIrj-|?tkb3eYgCIT{s!yo<0 zZ$xs^>h$~lPN&tHOuB=?J=)#N59jWT${9X>-Cpj+rQv{M4#p3 YKb7(#AetN@9{>OV07*qoM6N<$g5+jX_W%F@ literal 0 HcmV?d00001 diff --git a/data/images/heavy-minus-sign.png b/data/images/heavy-minus-sign.png new file mode 100644 index 0000000000000000000000000000000000000000..c7fec7cdb7e79ef78356a5538ebb26ba0224df34 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7SkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?sl51o(uwx)=C3I5^bT*Sop7g@FN(;p*zjb9(YJpc?j)AirP+cJ@yn&z}9c z@|r17$lBAzF~s9|a)Jcw;slW%rXYsJ3VsR<;YZSXgjp0sraop_+?BDY<0`AVgGN%& kAx;su$^SKgY8zA-7#7{^i@x(yALLdBPgg&ebxsLQ0KEn~g#Z8m literal 0 HcmV?d00001 diff --git a/data/images/heavy-plus-sign.png b/data/images/heavy-plus-sign.png new file mode 100644 index 0000000000000000000000000000000000000000..6484609e517286cbd351b94b4eace308f412816b GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7SkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?smG1o(uwx)=Dkxw!=g2PY>dcXoCH*_oM{p`oGi@$m@>2|z)hNK)tehd}k* zB|(0{48gyHg3q2k*Re0|Vab_QK;bw~7sn8fvM=U3wLJ&tCQ;c9YH&2B_kRx}@fkYGK9xbV) ouCmABN9M4xu`Tu$o5jfR;qZK)&p&4L0BvIMboFyt=akR{0OF-m{r~^~ literal 0 HcmV?d00001 diff --git a/data/images/iphone.png b/data/images/iphone.png new file mode 100644 index 0000000000000000000000000000000000000000..294ec73f9e4b76f7c59a1a006c4b0e6ac585660a GIT binary patch literal 1517 zcmVPx#_E1bzMMrQ?aB_{s<{%vh-N=8Q% z6BBA`YF1!eadB}nFfbe&92vp>_iADO>S0aeXJ}_=OwwYYpr9I5Y#g!f3?M5>wOSW} zvVDDhHYFA7>+4zK^&+6rL$JG0(cfZWVf>K*w6wHOBO#wfKv75`u0Nqx@xsr-xPVn>+92wA{b_CJ1dT?;i zQlNih4H3(KvJ9wBtyW`TAy9Q0bbl|Ps8%i)1zC?O0=jwb5xRnif>yO!{YDsHA08fd z0Mh&W`v(t6vqMq9E9VHZt0nnI3Fo2&KS?}^v3)EbyMh!UO8zJW02#889Y_c^t=vH< zQu9nC$iVsI0-$=k-M%0d#KxF}V|9CbEBSLVnM~@gAfIK`2)9Z!+S0kq2?Vo<|^!Zh^_((UQp-5oD~|L8aa`R*Pqf>1!G1wp$O)RUoPdeZI_4#u@?%~D=c$q84QCAdCV6BHW<#{L zI7logYb^kwAgDVYj}vJ;TAKtZ7>!0<*@IHO3xKfuWq*HvMqmzk_tyYUerI)&49C6_ zxP!ogE-5P`T#qbh1f=~m93)sAq@RPrp91Am6Hw$wgTNg`YCN0G#vEiWiDd)WJvli! z=h%3>hvOovrt$6MX)Q^$D@f#bECO=L912MP&mcRs(el*h zat6U-usM_Ch~J9TYd`=?3GiISKywEEBxr^HTTse%Rt~c-iZ^ZSaf+udARs;rS1J{) zt$DIyG?x=TRVr`;C0fgi-<2_yUZc^N7<0wLR>hbazX#q_wC4<}*jG_)CemSh#uY=-=^ZO^gy3&^Gt}SkINO)?5P~bBpxXU;Av9V!*`v zC-El%*4gXBUsmYl>%+eR5tAL{ Tt@^kw00000NkvXXu0mjfSnS0| literal 0 HcmV?d00001 diff --git a/data/images/label.png b/data/images/label.png new file mode 100644 index 0000000000000000000000000000000000000000..5691f1128ccbc98f25dd3d6c4ca027fcfe94ed7e GIT binary patch literal 495 zcmVPx#Ay76nM|bY35pnOCSupb@B`D%CYeVu~FxNS%&xG94DWrB-hSuG1E1p`r?N z0YOxtHzjC|Kt`yC3Ng*9_%G5&qrlFMl8kHvl87U9(5y_B1b&2x8GKA@yA<@<33lj4 zNl}#14+nrBVzVj5B3@PG1HoO2Rc!DBb%C$?0APTluLLOUNV;(;G|Ul>OqXs3#wqiI%<*` z-@9Lj7CDeRQqz!l%7Nx(2E>r@}=X2UFFYogo*Ee(hV4owSlsNzZ002ovPDHLkV1h!p(?b9N literal 0 HcmV?d00001 diff --git a/data/images/lipstick.png b/data/images/lipstick.png new file mode 100644 index 0000000000000000000000000000000000000000..8511985f7909f6d342fd769a887702df35d2580d GIT binary patch literal 1511 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 literal 0 HcmV?d00001 diff --git a/data/images/mute.png b/data/images/mute.png new file mode 100644 index 0000000000000000000000000000000000000000..dbd752f39b5f9eae74edc45c8f02f0e3e3f22520 GIT binary patch literal 2099 zcmV-32+a41P)Px#>QGEnMMrQ<-7+z#w85sQsFRbFxx2i^$<5Z&)1j@q z%FWHTyu-J4}AslZrUpD{6zA|mJR^Vf5AvqnXk z0&TNklF zwva$3$$(pXqs1**yA-V~;r(A{swJ=_;{-#foE(-PAGfM*S9SZJe?B%?_G37ozMYk%&)%<27|-ny~+4p zq#YnEo=~@39fQ4H_FW_zi-wdHN#^-JxBng#)$}Ck=3W$KQz5`Qp1fC6L;A@>h^k#s zRc|LfmuW#sqA2pbjFNn?_tyOOZl9B*B(aVwSt{! z{%geFAHNM0{kncZl4Vg=yusvcAZuNdOi8k=72BuB9#?+ka<@10#mWVZB3V{t6Vls~ z#O_xW=SKeBe7@*tsyQ?S|9HznO&o`_Tu%RavreKMQ`Pe=eX#2|Q4~jo2&C5IB25f9 z5Ym<;_HZ4D$IPub@l6s{38e{+n8xpsLCiZI#AlkStiB7s_ z4pxjX8Vp~T6fc+Y(&7*=u4$?h1CFBLFghH+E@=r7bDqjybt+zyo;V7^#CqN1vzU@B zA1ok>_;KD&-+SYUgOI{lub#UD=7CCba?Hz8;dN)hJ#H|%j!^FIy#ktI3rG*KU#MzW zFuX9;^r0bz0e~JJdZY#; z=@LrZKeUcLkVV^urQ$990#i%u7k2 zsbpl0EIJ1~rgAvn_cv&w$-U?td%(-8sfkLKR#||sL`IG?g5&FZWt!8t?VOgoS`Q?b zN9&zC06lOjRWqwbRTu;kB2HC7sUtswI~R@H`MgV_HP>OH^ldr*QF9bSP8`cg0A!=2 zN|_2KxL=SYqpZiirp8QGzuwb^gOH4%xJ)3}wv9-dl?^E%&;u`f?9B1I+DrP{kYf*k zqrfqeu$)=0LnI19q)ZZK1iQD8!lWpRq(`cc3iA3@Ixs1RI!#qzlQ2?EvcrUsa%6Ep z3J4*gbl;i2^|?bJY1~z$;hG}|ikw*1vm_LdFi5J1^Rpm?Zw+;g1T&@AxN$-`f)D@+ zPXEYZf?5%fpza|9PVz_)V7Th8NDFW#9hM|IY=`BfL`ZtFt1c^5l_qv03E7}cDt#{Z zbQ!L>YKK%$Iz`~P)&Vmn)BzF%6oloVV#)wDAo@i?q37qGAX4+UBzjsfMmg8!HcOeO z#Gns~CWjdbZ3RF|^A9Uhk$ZVzUQtw6(>=ysbiB%K!a#YSISN)~LINB97?8kQ3anQH z5$bNezAg3lT@ig=^=-(EDym3=J}B7GWHksB44p(u9hffJpn&H|Ve;Y{2|z1PvNOlc zbgHN3n5rn-2)=4c3j)W6MV9BG3Jb5Z&FNdJt@f00tw5I=J*KJB3o)iQ84SO`2He;T zxQxI|D09w3(7ui)Ahn?JW#y&_tvGN?moS!C}m?kW2a8*D`4_rm?eLGd=op&&MnK+eXbT~W}1!tsW(lmh{B1u6~ z5Qc=%HzCJ$CSC7EJ^Ws#B{sDcr$(uWFsb7>X=0vVo}7QDm=YrMa=)G9iymnTe>~LG zE(d-9RFb9)G57;^JRD9h6RI#}N|;aG>DwW(mr@woJ&p-iM)*@QW(LG z1LHHx9ygOt;CSLbM}Z}8(qGBbRSjmJozV!E%m`qeIvus2(2P&Ods>eJ!-WnK1y8#J zezFh4kH*O9WOv$5li@iy*c5vlIus;*y0*M__x8VntpD~WtGD@02LvQApC>ED_{2$xx@0K73fM);z002ovPDHLkV1k?3<{|(9 literal 0 HcmV?d00001 diff --git a/data/images/ok-hand.png b/data/images/ok-hand.png new file mode 100644 index 0000000000000000000000000000000000000000..c183e9336cd9c58e395f36e855f3a6ffdc98d049 GIT binary patch literal 1488 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 literal 0 HcmV?d00001 diff --git a/data/images/page-facing-up.png b/data/images/page-facing-up.png new file mode 100644 index 0000000000000000000000000000000000000000..10da7b52d82d9f5da043ca6c96a0cd0895cca702 GIT binary patch literal 1257 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 lALbs82A7H literal 0 HcmV?d00001 diff --git a/data/images/penguin.png b/data/images/penguin.png new file mode 100644 index 0000000000000000000000000000000000000000..5400fac50adb7b3ff2fc91e70cb99430895717a8 GIT binary patch literal 1612 zcmV-S2DABzP)Px#y--Y4MMrQKBO@asBO@XrAs~l`hf_Es zxpFilBO)Ik9+754czAduBqNMxOq^RJjZqz!SR#Refgc|qD=aG`BO)|3GA}PKCnqLO zPE0>PK14)AN=isMIXL;XBmMpT*VotY@9*d5=lA#b#>U3q-`|#&m9MX_ySuxiqoen$ zC-$E##C$l=(9qnOPSJup6c!iOi$?X5G32pdrDH0OR3MpJBVAoxaZoYfrdU@#C~IqK zi)l67nkxA+}HEHU1F%kTylG)@6TNb#{&RYW={WWgw&6rr^FNO`65XGU03 zBD7q3(9wir$#5+u=|UoZlqzL4Plp?}&8bW257nJJNXQV9tEsxC66`o_-s^a+C>>7O zA1Uqh{=PWrkP)GcJ5WbBx@M+9Pgf#OQ{I<2W@I2?K2h*5!e z}ZE%ZAnb%X;9bA}N9=xCd!D9;iZ0ra}YE>&(U8QY2z=6KO0njz)SOvhvt zB!xZV#l5lO8aG?58Ao)yux)GBal)i3q$H_#WH_|FSz8HP?XrX-lcuRktO-J1>SWUN zch>HO0SD!3Z5`}TI>UU@#0n!@CFyMF4})=@(n)57wLway8&gPA+a5@y~G9?c{RkIFk_UTnR;4Mh@2Yat2kd^#~x{jv%FW!fzivIR;ppTsM=i8+X{r zy|QeD-dZ5V%v#5Q;MsLx*{kI73$2 zpqfEYo2YE9($D9%)~hd;bA{kiVM>vj5Q8M@3@QtPU@*xua;A9FAfX*j+z&IU`#fDN z_pALOp$2s)vk{qMRQitVAoG1)ocZXiU zoB_lTyUiW@G<}D0s~p%JaMA3{S*;YD#YsB^WyHF}n86@`Zp*Q>Q>N4UdZ#n!eEH9u z)qa-%WJ5|bl(>U`s#Z2}%@f23oW6b=^h_y~Bl!lVWFC-XjLxkje zi$5s&oXPfe51@KoQP5j3Q8@qY|Wl}>;7i50V$6iCHgoP6k4c_;{2JMIp+hr*6Q~9D9PAtH##w@ zF-n{YXQ+*h{NYZ8^Ko7mTD?AE8y;I2eC_dAQp^fxReH`a=-TC2>$Y0G=jZ2szyI8a zp#)GyAr^&gBEBJHI`>|qH5P@U>Qt*jVis~Kk-2b&Jn+&kw5u#K3$)mR2k2QkkG=g1 zzp6Pkj!~=POI9L~PU*3)kzC@|I6lIrkqRj{9{*}R=c3uG*e1n z|As8IehI7%t%mQ=MyK+PFHyO{y4_X@qEh*{pW1)pQ~f9Y&+!jpt1GGGX!&#i0000< KMNUMnLSTXiKJTRf literal 0 HcmV?d00001 diff --git a/data/images/pushpin.png b/data/images/pushpin.png new file mode 100644 index 0000000000000000000000000000000000000000..23e8708b79bf9363d5930b32a7c327f370a1fc5d GIT binary patch literal 2156 zcmV-y2$T1TP)Px$#ZXLCMMrQMcIJiGiqc1A8E-v*>OW3BX%qlGDJ2s>tAKJ#t$~HCTMM2nqfz~iE);v3% zBp|(Va<4r|k~~bznVP{zSFc1?w^Ub(JWcCNN0KBWr8PC8F*ETpDU&uo%}rd#gN3L$ zIh#F4-9|snM@QI8Nak#CxL{?&NIJPeJ-#w5+gV__Jvp^vW~@G+?+=A6Upglt`SUQdLRtmZ2#?=COVBqZS|C(Ixqw;UbUCMLce9;6{8 z;59VEAS2%+B=#^euNxq@HbU??HRvNC@hByyJWcRLL8LcB`9(vlHABNUI=D|?uQM|G zDJ6z9Kj`=WI4C4BGB_m{60KlwtKaONPF$;hslZw6!|L6gaA+%A~<~+uWSb*VR?K)lS86fRb^$bx4^`u`DnUwQKD_ zOO0e)i3uCSLmbaCRs?O|Yh!W52&s=_MkBrPYK~|7`{}MOpKtpC(FUZ`z)7^xwT+GK zQa?!B0NpT1cY<4TC1w#&k!yQpfIzZ7l6nLbvpSVVjv4Jxn_7Oa3{sIU`eLzbxFpBi zo5>_KawURl`Fy!l-h+&2S}NpT&!{xWu?f~FWwU&_Tz;Bc z?3S=ynRm|44rK?Yl;hIrG*@CurO!CH**!TqIbblK*U+&3!EsWQg@Hn+(wmvkj*&0f z92b85 zyXbK>FNH#(KtnFqKp?Eg51}=k=i{XcqLba)n*ID4T-fhJ5g{?9h=~-MK2V=Z#p~2V zI}@GW&(Bt3X}{0qLR4bHn3W?-Wr7~9)#`RchdX!HFFAq$xkCQy5PdGE#i&GSp`!%C}Y=EwqZM!04zt5KyaitD(LSX$MJP@E#qVM0zqjBRZy$ z7McdWpdKBaP>TTv*Ojo_umbhw=)|>}N%IVHGPA8TAHqF2F*-_$P$CkEB%DL`wfdWS zC6Li@ykL}Hy7BK*>TR4uB$RwssGurWIJPD&)4)vD7| zfCGf8sJ9;C- zK#yhwL69^GVR0e^FK69bsT7pi95~SM1%Z}wVZggr8YGFRKz+E5oOHHS2C4W|DBdtj z8q5I_h3?I(mmz&No!;COrF^ki^hue{1eA#!8w=E5z1-jAfPvsZ%IAx8P1;a3Pc9?h{|#oSuH+_YIE^jgk6vHp``KF}lPuOuwXRn!#Ij?tF0IZTCaU z6ZUxONaCYHD&AtP@#Q;jU&FfIk95M&OHrPBQ?f<5c}1)FynX#4pJsn@JS>$mw^kV`4@{eb)4-amCl0EL8`7RcXS-94IQ4!$$`CksA z433#ww`MwanjdI!zmRiq@O69tDSVR8|HoOLhIO5F?8xp;Kl}Ue?3<4BG5_-H^q_M` zM*IxUZ?`*kWOsi$J^R&xckCE`I6ZsfmUaBM67l`%kB-il1q*xp#C-*f%>DTHt4K$t ixH}-bl29nF#`y;Tl&SUUyp${e0000c4 literal 0 HcmV?d00001 diff --git a/data/images/recycle.png b/data/images/recycle.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea6a78898b944587bd82e1aa68c7640c5e4b8d2 GIT binary patch literal 1547 zcmV+m2K4!fP)Px#+fYnYMMrQ<1j`FIvqu4D1RP=~Yw&ajHwhA%6bK9n zEs;7o&_5`!G!Ir24mJ@qx;$;=bStws0ksGaPZKYiJuIs_53ZI766L_42M?PPG^9ceMi4NZKLvyd0hI*;%?k*l4+(4x6`&de$_XZ|F(s}q0mcbe;#zd- zdMSf71;Gda!3ZdYH7bZU0m=v}j5h$r2m!AL62%w+r3WW~GXb^-By}zUy9fcA1_6%- z0lo<^nmz)A1qR6xBg!itWF}PGTQ;Ue0(b-iXaq30JyY9RNULq#0000ibW%=J0MxY2 z2`NAw6#o8LwpkV7IM&hTdNOdI_ayG`jhKPV$>xmTceLfy@wnlQRmPZf000D*Nkl(R6o%D9RSw`ViaK8FrM2grfe^roSOwehGXMV~OdHrq!45ny& zW(+bRx^;JMae4!1J1sLw>hciUq^APYhsDaG;oK^{ zAl#HHN=VR_`#+fYc59MJ&owTnM>L~bwCa4&im95AQr3euj6*Ez$t|tpr>sQixhC~8 zv6Lsbq!&?#k15xkgk3`doo$q`_L^@ZD;Ble{%Y#Bb`SF~>DX@Av3jRbx z7?(ZC_$%Z1+}Z3({3tT!C#sCU!nB)-YLPf-!HPW#r9_K75krYNl`_@Hijz1^Qe?FQ zLs#TUV!qx|Cm9v~Fd?+bO@*3h+b}ga)6UnsKIAV9IkvBngv5wsvZuWdn4eN#hm4== zAxHFaN|Ns*5(1eFNLFMwSMR~lWf&G4-V>4 zgFr9W+J&F^dZBMZJiE!jt}k)Vjo)!famsS;sxCR>cwHw~MxfJ`?gR(RcRV^Ap3-WN zXt4=dV{)*slPjZqUZ1I!y%XCI8X3Jd*n z3}SZ+6r{fLi$91tmsEwjqa>wV(6hzuMiS7uovv__l930JxSbZ8P-gKSw1X@u1~sbO zW+V~_f%d^UXYuY`Fo-3^phbGamMERGZ)?igln6*&@d?p^^>fXS=zXAi6OaZBkeAT8 zox5)nN<7VmUluM-?@DRCtV8q6KT!Bzxz>&>~{z5660f1@E&hwQDbIX$j4OFTa`nP3jjtZ{Pq x6C3{={WjyT`A3i-e-WrsfBGVj(5U>E;ve@KinzdTOnLwS002ovPDHLkV1m}{wO;@L literal 0 HcmV?d00001 diff --git a/data/images/rewind.png b/data/images/rewind.png new file mode 100644 index 0000000000000000000000000000000000000000..74f58e42638c965e5328c2cc287c3516874bfa2c GIT binary patch literal 1097 zcmV-P1h)H$P)Px#JWxzjMMrQqp)I00WgtL_t(o!>yQ$wxb{nMMVoLsG$7+zYZZh!o%L$&VgkmC7UEwS7jKI zUduW^(z?8cR*rHCCmuQ%MQ@Exr(;!^*Ln)>#5ns@ZZ7BIT#KldSpY$en=xklu#XCG zVkSW?E*hq!(fcE5Bb5tFEQIp~CZi(hH3R3^ztRDu8SAtPW7C)2$oM^I^WE5KvV{fM({vd!@9&7@aZMQ%Y``X<@dJ?5z^OpS z+d3e3W#5tZX{tdOBY?7#OjmXnB%u^FNa|qgfFPm{2}=<`;d?nITLDr5l$M7px8o0P^2JaIq8YWqK(ApLBRt8Vg+bSJZYyE zRIm{gJt|O?G9?Ez-hdj81F5aHbwKXnPe`gLa{v`(j-c$M+`~VDa??{I+p;|< zwE`53`_$1j-GG8$8&Ok=TNM#81o1>tW_ke1nJJz?e(0nhMWmu50jW^6qgRi9je?8v z|FsAR#kSVVj&13#kveriinU(0lX3@iy8p8UsksEKV(Mr>*@^W*&Pz8DvATE_=!Db+ zfEaD8yd@x_I%NQ*#y#i+5N)tTQF80eym$cki2Ph%A_Vc01S3w@w`gN(FF-8Jb;=-O z^(@7SmyLLqOMXdY`<^3G1QS;0OxF=Pk5qC1MGj4^`}z~tx5O5UcS+*)2Z)K_Whq_R z=O7k-C|lUDcof7F=$_=gZ1FmX#p{9uyg1%9jiA`zAl&r|pwvVHy&-X95BNSCoa1Kq zaOz)3`I$f*EsVINS;3MIj>HRgi0H)BICZAX%%f~NSDX=)z6@viJefFIA|r56f__i} z{YVlXwEiE^IxHvT1}z`_hyQ8PX&Cp0u(xq8?o~8~ln=E-_9<3~L&(g%u>0IdFgVD= zUdso60+|h%TiAbz6tY1>drc8BvD5EGU`TXVhqny6kSI5QLO?^PQWU3WT}-`=gcTZc za?~N?IxCcliAB;WzS2oKuo3kg2{7|gZH)zq2Mx5oI-7Nm)o#}PzJ2%)JzJAs>R@1- P00000NkvXXu0mjfkAU*_ literal 0 HcmV?d00001 diff --git a/data/images/robot.png b/data/images/robot.png new file mode 100644 index 0000000000000000000000000000000000000000..0e63e74a57a35fd3a7f035233c6d907e79d0534e GIT binary patch literal 2767 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 VB!m5iO^W~k002ovPDHLkV1kUQ)yV(= literal 0 HcmV?d00001 diff --git a/data/images/see-no-evil.png b/data/images/see-no-evil.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ae7ef1359c48e9207b1efad670a04357a3891f GIT binary patch literal 2542 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 Eg5n6xoB#j- literal 0 HcmV?d00001 diff --git a/data/images/sparkles.png b/data/images/sparkles.png new file mode 100644 index 0000000000000000000000000000000000000000..6aee3eae97b43de7edef5a5bda4fab6f124819db GIT binary patch literal 1385 zcmV-v1(y1WP)Px#z)(z7MMrQ<`lwF!oip~AIQ6h_`?6>Fqg2Pbzw5Au z_@-CNVUq%!`uQufxn`?+rSs3HBiXZ^5K{Hsy^ zv{Ln(D*2*2`?om%(p&qaQ~tJI{G}-Uwp9MbYW~D#{keDhuQ>d?IQyG3|Ja4~o+15~ zJN=vaF)RR6{||Keo)s@jMJ>=00a$5L_t(o!_Ao4lBzlshGh)1AP(R>k1fQ=D5&rM zRwvNi=j>L*WLICDbzzm2;;TPvhDPImZQ!>+y!1<;rci$_kxE`E^&Ejzac@C!U+Hz5QE;vmxkZ3LIoB)`9hYTcG%XZzl($~mt#vH9$C+PNsOp$g}Yn?E$ zhlJ5j^SVR=Q`;pgkYx&|HMz^r)j3ZB>g-~;skxiDR2`W>4{P1BAQ>^Q^U+HBwZV`? zSzz?}?wWdD0M&)kltr;3p*SnCnK~b~nTcbM(5?G+4S5Ek@w&b_oF37RBgse;A?J1Kvd74ac0~0*K&Zx<`tj_i*B%Lo zHIV+Y)_@yjUVL4WR2$bdl$x#=;XJ$U7?M^y`*>Zm`VNEq+jUCPBKI@-wV*35A$+$T zOA@xjt1J@M*W0Biq4e5k-_P6DwmN9MHaeDq3R1dhz0FE?0;&eJzE-2?lY>cFj%F>U zHh6$5f(9gs=S8tCV-pyqH}9))`X#6Q4f4eJSPus*!^yJ9OND`-3dEuTN^PN|ta{VA z<2Zd=9j9?zcB=nKK1L;masQYd4%@9c)HO!_>64NRBwoZ?I97KZTg~%0_WiG0eOieM zAVLVU4(3E-1hIbM0b-};jMLjKy?jGTJ7L%fCdSOvxX%vwHjV(u+FHF`Z{hiJ`GjEe zFP8vyO_rpk{OLGtghfRd^@Z^-S<*EbzCmq*sYbV`0Qse!z}T~Yx3_}9CM+eDiePs@ zu7-aYM|u)|gD{8YHp)Y>wDK@4oCM*Wh6A|C14tfa=Ry)hCe<>|x{q#XB?SngE<@#B z?eGX{cCjQZXipdR!N+5^@q1W+?ky^gG`u&T=jY{oLS2>$#Bc9UlTtCV0z_38K%61{ zdB$Yn3GL}#ptvqFpJz-E26vOLCI$$O9=AMcn`022ubU$nJnc7Nn1}hD$kzY>+h4OWp6d(bM~Au!|{fr1hL7v;u%dHQBEL${krC#-!Sbp?Fd>>{9k+)s(QiE rt3V?C2EsR`$}*(iKYr^Y8NK}j(s_b6M8+Eo00000NkvXXu0mjfU~;zp literal 0 HcmV?d00001 diff --git a/data/images/speech-balloon.png b/data/images/speech-balloon.png new file mode 100644 index 0000000000000000000000000000000000000000..12cad17e59404a33eb03e2dd39471e9127a75aef GIT binary patch literal 1244 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 N002ovPDHLkV1h5_HDmw) literal 0 HcmV?d00001 diff --git a/data/images/twisted-rightwards-arrows.png b/data/images/twisted-rightwards-arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..a93e827450701cecc465f863d1ff8a7a116d20fd GIT binary patch literal 1165 zcmV;81akX{P)Px#IZ#YgMN(&aagwqB|NmcllT&MgV}F`xhND|`jZ$cS zQfYpHrNwxfxs+1t-1I7RV019+cPE!H@|Nol*|JvF` zG_&vj000BrNkl>JOY=qhI&FD)(T z0ym@#B0GcN$~cni?l{4*B2z(ty#OI;x&90?&l(hi?7gBftvC{H^mvv)4-x@dJldIhkey&8GADZ?NN12cZCH4jpxC_N|3-15Qh?L}p|XQW zv~*HUJC!zrth`*Vp0KvIL@U?36pBz}Yq!9Vi9}1h@L&#t-Umg}YNCDbvhTegfZhNy zcc7MN+fBA1g&t%+foz}XHSGrh%kk>yU} z;J;)n>a8s8(BTs)%Y%NDq@rl6isVBiCXwi(E|tN2CoW-Fvo%H5%BM)X>4YxIZj?wQ zkw6>$=eHdB`L<1CH+Nbf*`{dIIWJeBoR&LM+F6likl|Li>4wCD8pvLP*0vJb zZ|>SW+JQ{C@#1v)%gFN7Pl{4h{p#)fj4YfZsQVr{Yfh`c`fnuWTTAh%pezuVka;&( zYe~Z%Mti;xm2&`nzXbJkA=)gRK^hmc#@5~NdNrSGXKf;At**4Pt)SLvMWc0fO&!K) zjPTN1r^s}$4?SiNM)nm&n52?N+p4+Vu0d(y%-$<2+IYn;3R$lh+nQ}8a}hLEMb~D# z(@`rMfTm&IFiAfdq-dLm`TaWxB7@cO^s6LIkqsQ1{)I!44Ox;l|Gi~F17?Zd9Q`LI zXK3KyzSDGW5NB(zYna5cJ|2hafy2=~eleCY@BWn*WE@bq=}$*j#VOmxTekQ1*xr{f f{$^l3vX1f(6JLPx$aZpTDMMrQ%-D6x&{@^l zhu+T@t;0-PO`{++2CDZ$;Q;z ze&^&OeWzRE-X)&Ijmpt3q{k&@jWw#vF{jBSYLkA|-zuNPCYQb@Vu&c4!6S#UK(o$7 zw$MJY%_MJ_Y|Pptk-JK{(IkSbC3Kx+$=N!s%Y)eABaOCs(%w(K(<6PSBzU4au+DPO z-BiESUdGs2!qy|3!j7@GKBL1bqsJ^~il@NGH=DmmnYbvAwjx$~LetwGT!W0HtF+D0 zGi!}A$Ja!5lmi9|yxQJ3kFzB-Lq3M69!h74@$pBQ(9Qq=077(9PE!CTFa8Q0Q4&4{ z{x^JOn*NPwrL9v=%zpi3@BZ|;ZT&*(nC9Ts^UlNBi}Akb^1R>n#`?C*-RR1Q&hE0O z=Dqs;`|8K$000MrNkl>%Wwk2$ zUa8W68`fwuvwEXhrQJ6wRjdYQH1EJLrUSTMq1$(NZ${iUmQ}Di);2e1gYYyulj_YJ zo7=2aD0J>__vXWg4kIo3RJlesqj3$Mi)x584I)*j+d*tsc30-0+wJQ9Y=5x_@;n&3-8tnS?$n{euyf@v|9S6|1-1C^-)}Ct zVg2XkHLL%=y@%Lhzo^CEchhfPH(RltpSxdoz8PeR#dftnot<#n-&*diQgrgwe#IDc zM$4vi(=x47{yyRCQZyd_IQx>quCH$A5{-+yi^fTLadrAPtI4nwi^oeZK+N>&b~c;! zC#uPOvYIISv)RRU!>^VJasb3W$7G58<-}R_EK$z+{eapw8-C5nl$M8bWLWiQ1?9?# z1m*bsxm<41^pnnJPDTl6R}Qi-W+jo!MNYX~PMBX!m3ApcK`XNIPj6>QAQDQnQ$}}* zrPo>;yBq~jCR3Wy%Q(WNLnMK70$O;btBgg#Q6}T%Ed%zVUkJsYB|{1;ft)kQ{d1DW zV9=qXQih+D>}nTtIVmgt;jm5!r&_6QSmhl1=ElaBm-A*ad~*<)84{W+6BL2vNU{Yx zlvBy)#|{ z;>uWW_?#HFlT0RK$t@M#Mixj8WXH>apV}ZpIygT;B>)lvg`Dx(eL43M)mfDw+XIMT`nJc?QM~Zac=hGRgD&$K5H*WRn+5V5tyQ z2~Q?MA$Bk*z<>=1iLL=gHD=YZN&4j>;RGlC?S2LX5A`B+Y)zph$5ABo#RVT}ucH7)=nz$CI)?psNCCk}QBR zQVd*Sa7igniE(_-P|@rlB>-x2-sF zvPzt*O-@h{$stE@I7IOhg@greYN$Zd8>InPS3735uizv(db8R*CW9~~{B!-6+6fqL(92D$yQiWprJ9(zho`P_a(%=+A49W-t$|+TcDsrDn z6^p*dPo!zjrXmqCd)$FRc>?oT_>&kBnNpDyx=9~->VGLj5DIUE_c}g?dmZB+9i0w! zApt;zRH0BP77^p~^m`L@asCgErvzH$6bH30Mj=NOsEP!VK05OGJf1p@OriY-GlT`S zRAgA4;CUcOOo$MQ00yPBLNj*`;i>iw`Q#)4CsXJA9@vr#i2)Fwr{!t2LjB%%aSMNi zNpe=PAd_I=^5Nmh2Y}}g@Zt%zTCHn!&mp#guQ-Wk71KqLNZ*R-r`y{fKOQ_H0vSFJ zVmzS`a{B7tsMO|WVUnDcCOE1heS5gQeR#MHNk#|*Aq3NU1kT{M5A)4ObVPBY&;vRG z6rJ}BAc(ncUC*?8wdkb9vyl%&9*`wK{N+) zJw18SkFNfeuUJTXL=15Hu6FOxI{a^WV4OsBz0`Vr((w*m9whswk!^-Mo>C5ZB_@ZXo0 zPnUhQ(|LF2>|KY7se2GK4`@Y=z0cNJm6p*A!A`5% zT^En{l+vJGZE|;K%3`rv$Ht^D{(8pX7zexRdcFRGNZkhYK<$A5buU994WE9E^NV>| zqL4Lu2#7jLjUvRlBsfxc?Oj}8Ym{i`jf;!V^Ur_xX_R)y==k`dNF%Qz>hN%U)M2+f zratchP1N4!d8_jEAODP2X|OvS^P{7{q#7M{IP3-`-3%J7!ESZT6ItyBt^POvm!Q{x i7%I)nll3V1f&T-3T!NYR1LxTQ0000Px#T~JI^MMrQs zW6-yM$GW7z&B)K6XRaxdAgKTV019+cPE!CR|Nl>#^x4_lx8M3)000GmNklRd(QJ~S+Z>=soKYx6N7lB{GXJ5TASO!g z+*+x-zWZR;HSTzHe}KBXv@L{mxV6em-DhczAk7~J!Kn6j_&GfwpeGhQ>CEz^&olJH z@i_G1ne_Wl_terpPLP?9c-LQnp30j*$_fpo7t&2{se~vv~_2aY8g;YyZeC`zpQSiCnn<|awc?aq6y2Gof zsnTukWB)bM9dNGLE2Mma!)g<0!5Cac5?m&q!6U} zpv0UR3#ot-XVj!!baK*ht^p{OP)iS!(S>9JUIbG(#!O`9GpPc_66%u%?-OZVDad7& znFH{KTPf8q>xih-#ekraNQ$#1&I{&f4#|1)t3Xl{Mw>vBNYia3Z3Q`G+Hk&_g+Q=m z%Tz$!(Z#zrB<7%wdZ4dBHvowYT4H9=It*zkiN8ffxh*<@1c0s?WT;ym{2IJ5CN^(3 zjvX&b!9-;-B}V{Vb3|rcS8BpFi%Z>YBv0jKt8-ypO$4RXj1G(AesWoc*kmR(%3kN( z5->&vJqYCAF3~vbD3w3;6$l3F@ef1&8FZX5b56}lAnE1Z3(@B!4I5}vde5&Yu= zDm=D{HRNYDFNO;$ja;@m?#3P-*QiuA2yQj?npBcR$tF%WDOa8#eN=&tCX;4Qvju@r zpZa){(;1fdlpB09S&0m zct@ZMf+QDk!1@!1NTj40f|;_Zu#XFZ1Zwe&xhcGf6D{!5b!dW1B#0np7VA$Sm?MmV z)VafDipP1Scx_S2XOiJnGjJbbL~Q}FP`@2#l{nD93B>&~#O0$34*S7I%Hbz#_&1DzSfb>o-dr6Z$O!N~+G){LQ_Mr4wxK~boFr}God zE%U;EuNRlf0`*;}oHih)L$5Wxw${53OEmPRwYqPDQYDQy5n)SU%UBiOqFew~wAn|5 zZ^r6X0M+alHi*N%+6sX$?eInmAnX%5NRjFhIyAXuTobg&7{MQQvi9+Nj_>>;mI)ER z>Bm|aV*CmLqt4n|mpxQ`_di?;C{`p&tuXpi_iwUE0a0d_U)V7>D^d+PFcB-y<0y&} zdpqFJ`+Cfcl`%O^KYBE{s^*Y480x^htC2#=^@%zpXkhO}4oFlQu?dK`G}@hIEf$;k zv$oA!8k8K6ELC4uZg;=06yj{RYg(+=MpQb){^&`>oKX*6p<48sptA z8&CW8a&w~Ww#I0)?uI*XEgb19pZhy1LAkwb*2V3^>-7dl`pPHWr;B2-**^RSjPUPQ T>2AJK00000NkvXXu0mjfli~zx literal 0 HcmV?d00001 diff --git a/data/images/wheelchair.png b/data/images/wheelchair.png new file mode 100644 index 0000000000000000000000000000000000000000..a93b5ce56b1e5c7d010daf33b0132d4c9a3e1bc8 GIT binary patch literal 1487 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 DT+s;) literal 0 HcmV?d00001 diff --git a/data/images/wrench.png b/data/images/wrench.png new file mode 100644 index 0000000000000000000000000000000000000000..18a4716e97393ec3fc424431d103283230df1b6b GIT binary patch literal 1216 zcmV;x1V8(UP)Px#$xuvGMMrQ4KtUoSAQuDz z6&DscH8(CTE{2kyA|W3(FfF^y-ce9bH8C-pv&}LrD_TxZQ$|NZwsd=hkDjn+ zZFGo?lu$`WeSLq>ZB<#k)a`d| zaH6lhfP8>iMoE^Orh0UEZCqb)U}UPd!-eh!wZqY8P*bkP-)2co zjiR`2evVRGW9R(;h?b^XX?Mp_(gXki03>u$PE!D@?Ug@7{woO@+jYlNx&B_t_x|3y z>EfZ=dFh$C{aA(R(DT#<7cT$+17%4>K~z}7t=Lz4+AtIbU@yD~7-B|B$Z9?C9`eFw zB>De8sz)AeXs={Nce#0=qtBm&V}|*%WIi-oMr-ab94k>lvb5C-SU{;$x}hdNjs-#ps4GjC`s5KH-}j5=!cxxk zh#lWY&4p(ur4}+#vm)$)@=pgBSTcRHFvvzyp04v-X$KBo#|=^5ukR?lm0l1Y$TU$V zkU`I9@kV+%wgcI|F(sYqD}b6!45dTJk)rR<3V=Vc?a`$)Jf1kX@WV zub-C!oMGi2AtXN`9B$FTLftHeWm!g06K+kOL=cN%Kz9slU@W5w!#BeFO@1;%@AiS@knR`be*qL8OF=)={eHhD9VGiZq&6s8 zNrv5}ezSfV)^&y`Vgkrnw{=uj zN&YnQ1hdiV*oJ6qmH$(&QPda@>5X{Quo= e#D5A>5BvtizOI%dvi(v30000Px#T2M?>MMrQ<`>hD_oe}(+1m~*}`mqG=oD=S%5&WkE z%$6+pp$g}sAo8sj^0gxWrUd_-2mg=(|NrIxu?PSE-2dfC|GfwQ&ISMah5!H2|L<-8 z|GfX+D*wzh|Nf#(C37zT000hjQchC<@SO56n^-;C8O(pb-9Z%mxc~qHU`a$lR9M5U znA?)0FbqV4Nw|+M0s}Vi|G&9y2vfV6sUjPx^GcoSmK9lWyZx_<;wGYdB?Bs}rk3HD zLME3MF$6y%h7zZd$)zO>m6i6SL^#WsmlCrBJ!g8r(xb*3S@ji_bkTB4f=rlFK;*_@k*3U02%i7T-T zrCj6GI~T~eEI*{d>0!uo45c~d!|eJ#__1K+LPLY&wsGugjvu3k#F>YYVd&sQglWx zV|3SzG3d{olX0$q7K0!j{hV>`wlcT0xjAq-b%z2aKh{*NH4DLpc@D;!hQ&d!HDbpC zhqYzZ4GNU}=#IA>wH7Cz{3sp=!G 0 { + currentId = 0 + } else { + currentId = -1 + } + m.Unlock() + + l.Select(currentId) + l.Refresh() + } + + l.Select(currentId) + + w.SetContent(container.NewBorder(e, nil, nil, nil, l)) + w.Resize(fyne.NewSize(300, 300)) + + e.Show() + + e.onKeyTyped = func(event *fyne.KeyEvent) bool { + switch event.Name { + case fyne.KeyDown: + m.Lock() + if currentId < len(currentEntries)-1 { + currentId++ + } + m.Unlock() + l.Select(currentId) + return true + case fyne.KeyUp: + m.Lock() + if currentId > 0 { + currentId-- + } + m.Unlock() + l.Select(currentId) + return true + case fyne.KeyEscape: + w.Close() + return true + case fyne.KeyReturn, fyne.KeyEnter: + m.Lock() + defer m.Unlock() + + if currentId > -1 { + w.Clipboard().SetContent(currentEntries[currentId].Emoji) + w.Close() + return true + } + } + return false + } + + w.Canvas().Focus(e) + + w.ShowAndRun() +} + +func loadData() (*GitmojiData, error) { + f, err := os.Open("data/gitmojis.json") + if err != nil { + return nil, fmt.Errorf("cannot load gitmoji file: %w", err) + } + defer f.Close() + + var result GitmojiData + if err := json.NewDecoder(f).Decode(&result); err != nil { + return nil, fmt.Errorf("cannot load gitmoji file: %w", err) + } + + return &result, nil +}