From 328e4cf602113ca23c2c45753783f3daf88fe2dc Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Fri, 11 Jan 2019 17:24:53 -0500 Subject: [PATCH] Setup window and add toolbar buttons --- Persephone.xcodeproj/project.pbxproj | 4 + .../xcschemes/xcschememanagement.plist | 5 + .../nextTrackButton.imageset/Contents.json | 25 ++ .../nextTrackButton.png | Bin 0 -> 265 bytes .../nextTrackButton@2x.png | Bin 0 -> 477 bytes .../pauseButton.imageset/Contents.json | 22 ++ .../pauseButton.imageset/pauseButton.png | Bin 0 -> 158 bytes .../pauseButton.imageset/pauseButton@2x.png | Bin 0 -> 241 bytes .../playButton.imageset/Contents.json | 25 ++ .../playButton.imageset/playButton.png | Bin 0 -> 230 bytes .../playButton.imageset/playButton@2x.png | Bin 0 -> 413 bytes .../prevTrackButton.imageset/Contents.json | 25 ++ .../prevTrackButton.png | Bin 0 -> 273 bytes .../prevTrackButton@2x.png | Bin 0 -> 478 bytes .../stopButton.imageset/Contents.json | 25 ++ .../stopButton.imageset/stopButton.png | Bin 0 -> 145 bytes .../stopButton.imageset/stopButton@2x.png | Bin 0 -> 213 bytes Persephone/Base.lproj/Main.storyboard | 244 ++++++++++++++++-- Persephone/WindowController.swift | 16 ++ Resources/export/nextTrackButton.png | Bin 0 -> 265 bytes Resources/export/nextTrackButton@2x.png | Bin 0 -> 477 bytes Resources/export/pauseButton.png | Bin 0 -> 158 bytes Resources/export/pauseButton@2x.png | Bin 0 -> 241 bytes Resources/export/playButton.png | Bin 0 -> 230 bytes Resources/export/playButton@2x.png | Bin 0 -> 413 bytes Resources/export/prevTrackButton.png | Bin 0 -> 273 bytes Resources/export/prevTrackButton@2x.png | Bin 0 -> 478 bytes Resources/export/stopButton.png | Bin 0 -> 145 bytes Resources/export/stopButton@2x.png | Bin 0 -> 213 bytes Resources/icons.sketch | Bin 0 -> 8307 bytes 30 files changed, 375 insertions(+), 16 deletions(-) create mode 100644 Persephone/Assets.xcassets/nextTrackButton.imageset/Contents.json create mode 100644 Persephone/Assets.xcassets/nextTrackButton.imageset/nextTrackButton.png create mode 100644 Persephone/Assets.xcassets/nextTrackButton.imageset/nextTrackButton@2x.png create mode 100644 Persephone/Assets.xcassets/pauseButton.imageset/Contents.json create mode 100644 Persephone/Assets.xcassets/pauseButton.imageset/pauseButton.png create mode 100644 Persephone/Assets.xcassets/pauseButton.imageset/pauseButton@2x.png create mode 100644 Persephone/Assets.xcassets/playButton.imageset/Contents.json create mode 100644 Persephone/Assets.xcassets/playButton.imageset/playButton.png create mode 100644 Persephone/Assets.xcassets/playButton.imageset/playButton@2x.png create mode 100644 Persephone/Assets.xcassets/prevTrackButton.imageset/Contents.json create mode 100644 Persephone/Assets.xcassets/prevTrackButton.imageset/prevTrackButton.png create mode 100644 Persephone/Assets.xcassets/prevTrackButton.imageset/prevTrackButton@2x.png create mode 100644 Persephone/Assets.xcassets/stopButton.imageset/Contents.json create mode 100644 Persephone/Assets.xcassets/stopButton.imageset/stopButton.png create mode 100644 Persephone/Assets.xcassets/stopButton.imageset/stopButton@2x.png create mode 100644 Persephone/WindowController.swift create mode 100644 Resources/export/nextTrackButton.png create mode 100644 Resources/export/nextTrackButton@2x.png create mode 100644 Resources/export/pauseButton.png create mode 100644 Resources/export/pauseButton@2x.png create mode 100644 Resources/export/playButton.png create mode 100644 Resources/export/playButton@2x.png create mode 100644 Resources/export/prevTrackButton.png create mode 100644 Resources/export/prevTrackButton@2x.png create mode 100644 Resources/export/stopButton.png create mode 100644 Resources/export/stopButton@2x.png create mode 100644 Resources/icons.sketch diff --git a/Persephone.xcodeproj/project.pbxproj b/Persephone.xcodeproj/project.pbxproj index 06ce5e7..2306030 100644 --- a/Persephone.xcodeproj/project.pbxproj +++ b/Persephone.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ E40786232110CE70006887B1 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E40786212110CE70006887B1 /* Main.storyboard */; }; E407862F2110CE70006887B1 /* PersephoneTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E407862E2110CE70006887B1 /* PersephoneTests.swift */; }; E407863A2110CE70006887B1 /* PersephoneUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E40786392110CE70006887B1 /* PersephoneUITests.swift */; }; + E465049A21E94DF500A70F4C /* WindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E465049921E94DF500A70F4C /* WindowController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -46,6 +47,7 @@ E40786352110CE70006887B1 /* PersephoneUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PersephoneUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; E40786392110CE70006887B1 /* PersephoneUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersephoneUITests.swift; sourceTree = ""; }; E407863B2110CE70006887B1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E465049921E94DF500A70F4C /* WindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -100,6 +102,7 @@ E407861D2110CE6E006887B1 /* ViewController.swift */, E407861F2110CE70006887B1 /* Assets.xcassets */, E40786212110CE70006887B1 /* Main.storyboard */, + E465049921E94DF500A70F4C /* WindowController.swift */, E40786242110CE70006887B1 /* Info.plist */, E40786252110CE70006887B1 /* Persephone.entitlements */, ); @@ -255,6 +258,7 @@ buildActionMask = 2147483647; files = ( E407861E2110CE6E006887B1 /* ViewController.swift in Sources */, + E465049A21E94DF500A70F4C /* WindowController.swift in Sources */, E407861C2110CE6E006887B1 /* AppDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Persephone.xcodeproj/xcuserdata/danbarber.xcuserdatad/xcschemes/xcschememanagement.plist b/Persephone.xcodeproj/xcuserdata/danbarber.xcuserdatad/xcschemes/xcschememanagement.plist index f8c8c47..2122692 100644 --- a/Persephone.xcodeproj/xcuserdata/danbarber.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Persephone.xcodeproj/xcuserdata/danbarber.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,6 +9,11 @@ orderHint 0 + Persephone.xcscheme_^#shared#^_ + + orderHint + 0 + diff --git a/Persephone/Assets.xcassets/nextTrackButton.imageset/Contents.json b/Persephone/Assets.xcassets/nextTrackButton.imageset/Contents.json new file mode 100644 index 0000000..f1049bc --- /dev/null +++ b/Persephone/Assets.xcassets/nextTrackButton.imageset/Contents.json @@ -0,0 +1,25 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "nextTrackButton.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "nextTrackButton@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" + } +} \ No newline at end of file diff --git a/Persephone/Assets.xcassets/nextTrackButton.imageset/nextTrackButton.png b/Persephone/Assets.xcassets/nextTrackButton.imageset/nextTrackButton.png new file mode 100644 index 0000000000000000000000000000000000000000..ee7df6ad8b9cf825c4f6479041c6f6f8d0a2c197 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2comUKs7M+SzC{oH>NS%Lfmo-U3d z7J|tM60AR*6j(G)_BuP71k7P=m+AVTtni*u;P;{qBZCc$KmRxWP!fnwY?(V)8zi(H%vhGZG!_tNGCa|3;GFQqdx6A>ZV86F0yEl@ z9i|$XS=n;m70GFnVbL-=ka$9B!445S=Qw6n;RRe14zoO&^xNSL>(s*w9P}7j@7O4a zxlL-7{KTzsjqgZ|N0G#toeqN0Jb`R%ZVPTiDO@|IWUkes%)(%+WViFqS&=fJUl=@H L{an^LB{Ts5Tx3+( literal 0 HcmV?d00001 diff --git a/Persephone/Assets.xcassets/nextTrackButton.imageset/nextTrackButton@2x.png b/Persephone/Assets.xcassets/nextTrackButton.imageset/nextTrackButton@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd1fa2d0acd565b3c9879edc70083a9c26efa81e GIT binary patch literal 477 zcmV<30V4j1P)muCtxc7O^^~&&ePJO!Xx##(Q&-Xs}$6G4J5jzk&5Ia!A z9oXjDj$xp{HP%sEflX*Hpi@gvSp9@oScN9AMhgX^5pH1;svf5}I8!-RVBBzR^)#Y8 zfL=qVF8e`Ts6ABW9A#Dz(LKWwH00>i(|JL}_z~uz-gC$c;x6Kn`cY3~PPHJ;_zah! zl#><2>2}a`rgZAhkRW3G4(recp+Q7<4|5=InmR&*xU0OuZ5rG>^eFrEX-SF(k&Q2Y z5kz#0e-%V-&jxfuXeXrZ0p#|mBeWyuxC|#wMV^seG+kd40{Mp)%?E5j2UI<#aF_-2%jfO1!hFO#7pJiUu>-LK|JH#oz6JXz TfZ6Ex00000NkvXXu0mjfK>*Rc literal 0 HcmV?d00001 diff --git a/Persephone/Assets.xcassets/pauseButton.imageset/Contents.json b/Persephone/Assets.xcassets/pauseButton.imageset/Contents.json new file mode 100644 index 0000000..8e78dbf --- /dev/null +++ b/Persephone/Assets.xcassets/pauseButton.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "pauseButton.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "pauseButton@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Persephone/Assets.xcassets/pauseButton.imageset/pauseButton.png b/Persephone/Assets.xcassets/pauseButton.imageset/pauseButton.png new file mode 100644 index 0000000000000000000000000000000000000000..ebaa46f1b9534407fbafd45ab87d66560c9bc96f GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2comUKs7M+SzC{oH>NS%LgePZ!4! z3&G?BiEjy}7uugMm?8Qqx=>}KWPstGE20bD)N79U z#K+)pi(qg^Be%ve9?}0iOC4WTEO=w@@XLCN?FkKr`#*W3X9*ws3bcU1)78&qol`;+ E0AX@6-~a#s literal 0 HcmV?d00001 diff --git a/Persephone/Assets.xcassets/pauseButton.imageset/pauseButton@2x.png b/Persephone/Assets.xcassets/pauseButton.imageset/pauseButton@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..41cfdd9cf3b9ad3585fd41489353cd3b44fb738b GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^1|+TAxeoy;mUKs7M+SzC{oH>NS%Lf&o-U3d z5uC{h60D0A4WyWsv@$3Qp1Rza<+E|cX|}GvF2dn#pR_L?akx|Ju!pzX!qZ8+an=9i zgEkR98xJkwTe6+2J4!@RP2?U!k(+Fj+>gU%E*&RZUo}V32ha?w<7Q+B2Y=89ZJ6T-G@yGywqnfl~

-G2comUKs7M+SzC{oH>NS%Lhyo-U3d z7J|tM5@8LJ-T8XVM}IW_FcJ8FRLOtJh57|r0{hsHEOdE!U=c?eM~@v(NOF^_Y@FhZ zw3J`+0mq#brX5=?>?ss!Z1r0^Al6o(SZU?)Q!dv#dhfS}s!vid^EKG`+@aLd;Y`aC zIc?!(j5Gi7h1_I2ViQrCAn0<9Cuu!HQl-wT4_pU%ELlTRd&5=bPR2Uyj8I5BvN+Ac bn~~wld~21RUZpBPhcbA&`njxgN@xNAI4%P)csqG%ee0R+GtQ^BWr+p3(%Wkygh0) z)9OC46kq3=y#Wkyk0$o-pRUxtRLj4DJVHy;=(vbxB;~)c8KAW|JGojis*7KP+m?}O znL0y1SN#rpX*PP7Zx%W~gE>TtIxf8;Wb9&JU{BF%I^N#tO#S^5#Fib?ywV?F405+Q zHlFZ8OEt_BIzS63`?CByF5`NG`sfN(??YMT2FeZm`wjd8#r)U)UD63>00000NkvXX Hu0mjfO-i-G2comUKs7M+SzC{oH>NS%Lf$o-U3d z7J|tM60A#F7`OupP55~4ID8b4DJn?hR(P!>@Si=&Y==h6L+&MV3?G#_#3zd|aGhm% zRPVrJ#L#lHQGz9Y2C5&Pl9MqZ(1kN)j1sr&6%A&!~cFUniSD-njkuRr_srVwR`_B#m1_q6LcDo!- Sx~l;F#Ng@b=d#Wzp$Pzd)GB4Nj>N325zIpZTD$j<6;qt8@?tnwP?@fxf}#3Vo6MR*3EFQ^Dv zNdv6FE4YGnB1nE#FQ)@=d4h{*@&Jb;M{rgV^-XfP$?z2}qQSEq?o+|OBI0X?b$ADz z(4UKtm2|*1e1Zfwf@KXMk^-G2comUKs7M+SzC{oH>NS%G{HPZ!4! z3&G?B3DzSm2Xq%Ks;~H9S>h~lk!42XAN!1?7kB(R>r=Y~b9jmiS3L q<9x0Ho2#;3jo@Y7#Y!&}85sVUi}*}oOr8NWlfl!~&t;ucLK6U!C@OdW literal 0 HcmV?d00001 diff --git a/Persephone/Assets.xcassets/stopButton.imageset/stopButton@2x.png b/Persephone/Assets.xcassets/stopButton.imageset/stopButton@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7b9b606cd941d0d4184b58ec3760983184527812 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^1|+TAxeoy;mUKs7M+SzC{oH>NS%Lf>PZ!6K z2+p_Dytx_-cwAODsek6H`p?aw)g^l6rC(5nNoaWR3|G6$ZSLZQeeEnB4J`ZAFFfj$ zywxl9Fnht9$AyO{u8f<#C_pOfO8C;}ewG*31oft_`jOt->~TxQNoi6;&rf#`7oiD; z|4#%fC9>XFa#Dbw%|GSkgh++gNhSw>pGp$(J;uU0fq^rIV@~f!^NnR0n{NQ!#o+1c K=d#Wzp$Py)pH2<{ literal 0 HcmV?d00001 diff --git a/Persephone/Base.lproj/Main.storyboard b/Persephone/Base.lproj/Main.storyboard index 6bc1534..fc5ff26 100644 --- a/Persephone/Base.lproj/Main.storyboard +++ b/Persephone/Base.lproj/Main.storyboard @@ -1,7 +1,9 @@ - - + + - + + + @@ -673,7 +675,7 @@ - + @@ -682,36 +684,246 @@ - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Persephone/WindowController.swift b/Persephone/WindowController.swift new file mode 100644 index 0000000..fb9ab65 --- /dev/null +++ b/Persephone/WindowController.swift @@ -0,0 +1,16 @@ +// +// WindowController.swift +// Persephone +// +// Created by Daniel Barber on 2019/1/11. +// Copyright © 2019 Dan Barber. All rights reserved. +// + +import Cocoa + +class WindowController: NSWindowController { + override func windowDidLoad() { + super.windowDidLoad() + window?.titleVisibility = .hidden + } +} diff --git a/Resources/export/nextTrackButton.png b/Resources/export/nextTrackButton.png new file mode 100644 index 0000000000000000000000000000000000000000..ee7df6ad8b9cf825c4f6479041c6f6f8d0a2c197 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2comUKs7M+SzC{oH>NS%Lfmo-U3d z7J|tM60AR*6j(G)_BuP71k7P=m+AVTtni*u;P;{qBZCc$KmRxWP!fnwY?(V)8zi(H%vhGZG!_tNGCa|3;GFQqdx6A>ZV86F0yEl@ z9i|$XS=n;m70GFnVbL-=ka$9B!445S=Qw6n;RRe14zoO&^xNSL>(s*w9P}7j@7O4a zxlL-7{KTzsjqgZ|N0G#toeqN0Jb`R%ZVPTiDO@|IWUkes%)(%+WViFqS&=fJUl=@H L{an^LB{Ts5Tx3+( literal 0 HcmV?d00001 diff --git a/Resources/export/nextTrackButton@2x.png b/Resources/export/nextTrackButton@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd1fa2d0acd565b3c9879edc70083a9c26efa81e GIT binary patch literal 477 zcmV<30V4j1P)muCtxc7O^^~&&ePJO!Xx##(Q&-Xs}$6G4J5jzk&5Ia!A z9oXjDj$xp{HP%sEflX*Hpi@gvSp9@oScN9AMhgX^5pH1;svf5}I8!-RVBBzR^)#Y8 zfL=qVF8e`Ts6ABW9A#Dz(LKWwH00>i(|JL}_z~uz-gC$c;x6Kn`cY3~PPHJ;_zah! zl#><2>2}a`rgZAhkRW3G4(recp+Q7<4|5=InmR&*xU0OuZ5rG>^eFrEX-SF(k&Q2Y z5kz#0e-%V-&jxfuXeXrZ0p#|mBeWyuxC|#wMV^seG+kd40{Mp)%?E5j2UI<#aF_-2%jfO1!hFO#7pJiUu>-LK|JH#oz6JXz TfZ6Ex00000NkvXXu0mjfK>*Rc literal 0 HcmV?d00001 diff --git a/Resources/export/pauseButton.png b/Resources/export/pauseButton.png new file mode 100644 index 0000000000000000000000000000000000000000..ebaa46f1b9534407fbafd45ab87d66560c9bc96f GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2comUKs7M+SzC{oH>NS%LgePZ!4! z3&G?BiEjy}7uugMm?8Qqx=>}KWPstGE20bD)N79U z#K+)pi(qg^Be%ve9?}0iOC4WTEO=w@@XLCN?FkKr`#*W3X9*ws3bcU1)78&qol`;+ E0AX@6-~a#s literal 0 HcmV?d00001 diff --git a/Resources/export/pauseButton@2x.png b/Resources/export/pauseButton@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..41cfdd9cf3b9ad3585fd41489353cd3b44fb738b GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^1|+TAxeoy;mUKs7M+SzC{oH>NS%Lf&o-U3d z5uC{h60D0A4WyWsv@$3Qp1Rza<+E|cX|}GvF2dn#pR_L?akx|Ju!pzX!qZ8+an=9i zgEkR98xJkwTe6+2J4!@RP2?U!k(+Fj+>gU%E*&RZUo}V32ha?w<7Q+B2Y=89ZJ6T-G@yGywqnfl~

-G2comUKs7M+SzC{oH>NS%Lhyo-U3d z7J|tM5@8LJ-T8XVM}IW_FcJ8FRLOtJh57|r0{hsHEOdE!U=c?eM~@v(NOF^_Y@FhZ zw3J`+0mq#brX5=?>?ss!Z1r0^Al6o(SZU?)Q!dv#dhfS}s!vid^EKG`+@aLd;Y`aC zIc?!(j5Gi7h1_I2ViQrCAn0<9Cuu!HQl-wT4_pU%ELlTRd&5=bPR2Uyj8I5BvN+Ac bn~~wld~21RUZpBPhcbA&`njxgN@xNAI4%P)csqG%ee0R+GtQ^BWr+p3(%Wkygh0) z)9OC46kq3=y#Wkyk0$o-pRUxtRLj4DJVHy;=(vbxB;~)c8KAW|JGojis*7KP+m?}O znL0y1SN#rpX*PP7Zx%W~gE>TtIxf8;Wb9&JU{BF%I^N#tO#S^5#Fib?ywV?F405+Q zHlFZ8OEt_BIzS63`?CByF5`NG`sfN(??YMT2FeZm`wjd8#r)U)UD63>00000NkvXX Hu0mjfO-i-G2comUKs7M+SzC{oH>NS%Lf$o-U3d z7J|tM60A#F7`OupP55~4ID8b4DJn?hR(P!>@Si=&Y==h6L+&MV3?G#_#3zd|aGhm% zRPVrJ#L#lHQGz9Y2C5&Pl9MqZ(1kN)j1sr&6%A&!~cFUniSD-njkuRr_srVwR`_B#m1_q6LcDo!- Sx~l;F#Ng@b=d#Wzp$Pzd)GB4Nj>N325zIpZTD$j<6;qt8@?tnwP?@fxf}#3Vo6MR*3EFQ^Dv zNdv6FE4YGnB1nE#FQ)@=d4h{*@&Jb;M{rgV^-XfP$?z2}qQSEq?o+|OBI0X?b$ADz z(4UKtm2|*1e1Zfwf@KXMk^-G2comUKs7M+SzC{oH>NS%G{HPZ!4! z3&G?B3DzSm2Xq%Ks;~H9S>h~lk!42XAN!1?7kB(R>r=Y~b9jmiS3L q<9x0Ho2#;3jo@Y7#Y!&}85sVUi}*}oOr8NWlfl!~&t;ucLK6U!C@OdW literal 0 HcmV?d00001 diff --git a/Resources/export/stopButton@2x.png b/Resources/export/stopButton@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7b9b606cd941d0d4184b58ec3760983184527812 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^1|+TAxeoy;mUKs7M+SzC{oH>NS%Lf>PZ!6K z2+p_Dytx_-cwAODsek6H`p?aw)g^l6rC(5nNoaWR3|G6$ZSLZQeeEnB4J`ZAFFfj$ zywxl9Fnht9$AyO{u8f<#C_pOfO8C;}ewG*31oft_`jOt->~TxQNoi6;&rf#`7oiD; z|4#%fC9>XFa#Dbw%|GSkgh++gNhSw>pGp$(J;uU0fq^rIV@~f!^NnR0n{NQ!#o+1c K=d#Wzp$Py)pH2<{ literal 0 HcmV?d00001 diff --git a/Resources/icons.sketch b/Resources/icons.sketch new file mode 100644 index 0000000000000000000000000000000000000000..71a5e76ee8deaf851654270bb09452be63d154d7 GIT binary patch literal 8307 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 literal 0 HcmV?d00001