PQ4|U|~s)H+OroABFSFyv)Am{gup%Qyfd)5z)B=eYM1Fx$w z3geXL^YZgFlzMwV8e63J$le3y}&mjupg$ zg8heQ{4b00P+WPCZqH!rZb{-7BB4{GM$zRgO`>@H440Fv51HSJDIFBl)$q=?H14Hq z49w@};sHCgS%lM!raY(q!Y)k=)`dHp|4PnuutPK1#aIfr=OB?lK?oVY)p^zc;k#$1 z0FvMURk|}z&IqcK;pNC*%gcNu0m(x@l6pL}yGt?@=+jSrJ4p2IIWzJ*P3P}Y(*z*o zK%vbV5YnkYJY~=~I>v1IqFAOE7oIAN&|Nj5^j4JD5ob8lt{5Im7caNp4=%WT^I=hz zqK@?TbvKq;O7n*Y&nfx=k#onSe!=u9WP_;lA4%Q>jFn5WQX*P Ir~ zMGLeUS;bhHmM6bD^AWWw$x7SVbma@{-3K+7&0tROGV KXpGLM1pYg_vG2` z(uCqT`=pg*UvBNh(PYnLOTkPYOAdeapLs_$WV+3A&H8~k 9OXVN9b2(TP26MeX)KqF!-Wtb^L)Z{vFAfJ2mfE-3 zzt(S4;ka?8^Ec*M=UL_}-s_!ffmr d+MPO|x+v0FX=_4VMQ$>0vRGvSNqV~8 zYhcY?5h;;XTDF!iFd*|{vRJwlQ&3@SlXJVG?~-}EpsARAwOO^kr-HVIkg<^EOWlnu z8Qsj%%omM_MpOUyP5r>QRiu1cb3s-_RwF6{l{166UKCe6a5KjwN3ug4^X6W}rp&A< zxI8>vEnY3UTTB1r(3F8yEuoS?W4~Yv7Ac0;b!L}OAdw|1BhMvTrMm9tc&F|2QA <=lgP~X_&t;4+&g$8Mrr7!|D o^tzihWcVp*)@0?NS8FtS(WA|=ZSte^ z*m2Dv-vx~eafryy#QcOs76P@!qvV%&;_kexj^9IX*lpy?+>!~GiI%z4;L%X*C-eh# zOm^&XF!_D-+v36Kp*FcVc?s25& y|fI*;Z^UbSS)4(4DCl=rg5tXm? 33&;vUfLltv+`*_t5jR2c_r4 bg6t4Mr%_ zdsY|lG1!<&Si$Rh^_O;t;r!(n%YiI0sSEYXzSV2# b!p2T7yPv{T4jV_<#f z-?gV>Un=j|j+&S$X(g;=FV{BO_*?obt*LIt5fCAW+|HI5_hHGQQLzHCMA4S$_>Nbz z_d1=AKkq2|UMgPF5zcx0gIt_LV)IMq5B7}=8mTew2*08wp5x5jH~l6NCRrmBBjIme zh~j-UeW#ZK2GiO4*aT$LPVR32AgGliAY84QKrp56lmRrgm%n<{zJ=Up*6f?qFT8!S}>sLVC$>>Ue;n@PdVGuaEe# z?J;I`Hk${eeKVs-w)A-T$EbB-{r2kfQ7b~lBb%7e8bzU#r2UuLt!D{^1U{8Ym1RUJ zf)KSIHR ZeRQ&!aj%>TmQQ(pcHfB(j5S3pP$hsC25oV@^32r&e9+J5n{I}x&> zfRF|r>q_M0QyM2``;CRg{*h1-<%V)_w)r=xyZ%Y&e*?JqZv%(`j&;Wn?+|V{qA=R} zfDz8c74Pf>Kw*MV!0d*CJKg~cz@Un7m>Dmi>yC19^8tvY{tNEC+<1wAPP|=kBaToa zvN!04(k&PS27^E$VlXHi3Wu0LAUwoIjMH+)o`wMbcgWuh^m4&jgCKwe2=bo?5QW2q z;ea*prws~)O8~#TfYV<#5eS@kwm5zMwn2!?`QJ7uO!&Wyh5o|^6^0P^_J8IRff85o z51aUJ^SZg9@D4baU-vWmcpn@fK|CBeJG%j=bs`>=)SRrHfzuM4_LYbgl@ddtgyCq2 zxClxd2S=kZSZg>62En0VqGA#lQ7Bpl^#6za`;TySBNph_?uiJCz(L&H%GxTRe*w8F BMSlPQ literal 0 HcmV?d00001 diff --git a/MonitorControl/Assets.xcassets/status.imageset/status.png b/MonitorControl/Assets.xcassets/status.imageset/status.png deleted file mode 100644 index 44e755220926d8a353d5e5bf87eda719bab14aa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1312 zcmV+*1>gFKP) 4Tx062|}Rb6NtRTMtEb7vzY&QokOg> Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1 C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY1z>%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u-> P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<% UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPV M6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p $HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%Q z&PhZ;R5%f>ld%oLFc3v8prD41j)qM#10^L$873641O;W5phSobXpvZe{1 qL&im&3u r zB{F0uB>SEvWXU_8<^S}5p7%ZPeeQGL*ZEz)>w914`rYSyKG(&kr>-dm6_*6_HP39! zEah!J>uzoVO9BwU&DIGlFAqp)Vq9=&5Axdui9@TS?c7jkK;i}(>wt3vpb%*Ypr{D; z#Cf2Ru3%pZ*IU=Id@>B5msqZZ@E9C<-Gmf!eYq4uQ%aMvei&k;FXk=4Jybd&63Jqk z6Sc=t|2{+C^FviEr`Pj=oS0n|m&7X_F$FoF%vQ^$c`w`TP^A=-xUCpp=2&U?-wU#l zN)m!$=bn!}nA#Nipgr;gAM6I3%qr&WD61h%U0|yd5s0P~P=rQsJ{m m_=A-gv#m-&!0;nsdXECl5pbc zc`H&r$eNq)f9k+S(dDu~*wsa#41d)!N7aX6Ls_0V@tL_ef{lt`L-V7W#>2w*W#FUB zB>8Nj(Q5}f#}LAz3tG 2{yJP?7qr^k>=RlAzN z)v#a<3qbsgzFjH`|6Fzml1`FYYH>%49GF!}(?5!f{
Pw2I<39NqC$5G@88 z;oa1;xnfsn*5LD_!XQ@SCD3F9EX~nC0eaIS{yr6ARY+!V-o2_d2G!KC+@=s7?Wcm$ zTjc;@$ERf#d&5Smc-e2B-g4<@E=adi%^Gr*e$3B%ySu 5ERSZQ=1q{n0SMqO+TO^GFGV9>t5>KB}fUsaO3`6E%RR zeM_s}{fb7m|333cy4-~1l#h_S0v40Fs5CQ7CZe>?v4Q#MaxigssX!q^r^axlHq2f$ zDx%cfjW(^v;cBC_OD3(xvz%C(vuho%E(KZHdFR=SRem3QvI6ijCCyAlHW6 _UI)9ryobUV0vGc7|vi zU``fQ*90s92{kttHxEO1q#YVKb~iOoC?NHxz%Lrozi8Yfe?da!*aWd;2LvS4(cTz4 zv;ji(KQ;)HhQj`Lqx{ty(;xd784j~OAl1s$cAwz^__jFx=zvdGud!0=M`{J@QAULE zd#j(&WMLM%g)(|afq1}Ur@=yhKh$=RZi7j$r9od^V`dEROt)4fwK<-4*lId4JXbL| z?64LvSPjxU2&HbsnNS47Gfh}lml`b2ob71dp*+V#aoU99-K4!eHDXttvhSc)AvHDs zT1)x%s(3J}W>mCZkKc3PD2Tu#qsDs@1lH)6mJj4-pP@`NEPu}dJEH!uMK;|CD2y$W zF6$-FRC9^TcHXQ=O?yf*|8yp&X&1*^_)~n1-gp|{WHz2U(;|iMi$nH38g#9ZRvKt# zN3ged_qQ7$2urGU=Nx~gOC(H#g<~~xgAzoW*ev(f<8<^7Imf3U-&}|3DC$Tp+g#?s z6wJ(goBiH;x#166s7PXy&g4Vi8>B5F!y^cLaEaSv4GKO}*HlNsN)gw}is`_t{8Q5jm*tldwQQhmUb80`%IlJhK}6S+$}^KMb=LsU#t9H{ z{I^Z+2p6mP=C2F_^wG=9E}j$_&f+5TGW!{!ZXfC+ +6aQP6EIB^s>EU14n z=$y0w4M$+QGmE2_H7FolPOnmnrp-+Oq;{E#7pvq)8L(u|1O>O%y>%=ilz7I%{C>{u zU8J{&!cN{$;W3=uW{5?3@MVc|WKV>-G*F(2qrp7`!$ZU&l%h7LxPm3!sm1|NSnxF_ zs>f8~*C;W{)UQ+&hd^Kz=n#eXeJ6KNUx;5f_03Re_mdXXx8I#|r)LO8D1##!u0trs zLol?V- l`|IpO;+GS&1Hwl3p1 zt7$Fo?>(dG2H+ Z)-jycEoroC!QRlm!}Tai??6SH)Z-+?l32`5+US za*nNqW9oq^e$w_9a==y_(w}0Na_a{Bth7CoWXO-u=eGT2xh4WHmAvVsnV-anHQ%y{ zwJ|SEE~6SkE??z3-TIE>E0=p< ILHH%&471881BscwKmnm^f+YXb;1f8{zsP`MNls2&TKu7PdlV zkA_s 22Sn@0I*Ir6!zk)(|oHJFn(k uO zl d*4lWZ-XAz*zeNc(5*K_#VrgK~pmNOtM1OwCDRqe8frMp{;q?L*r%+eq8{ zU!~sb^SzA^iLW@LTcEs9`ibxPB~I1e=XXC<5_O1IM$jXW3kaE<{oaIy_gfd|Yq#jo zd}#9-!5OX@&YAKL1}7UKHoKAr9MACy_!@ldCVaMvG({SfF2PtGy%kFOA&eEim&B7~ zpG1)q`{IVNTR%&G`U}?=x_uBQekY{Uu+x6Ocwr1FkL2@|lx___nm%~2SXv$FSGni( zy=hTlF@ZCUvyPL4)0i_E-Xg`3hD~cvn@O94w-O!A=wDNt&6v%-wt^(3u67#P^OZ-- zWfm2$ b|OEblsN882=wqf%i}Vd$f(dtJgr!n#C%EmKiHqbMV% z9#L-|^x<7MFk%y}@}wa@Gb*zl`4pKwX?OVrp|D3d+bsKPi>%$7J5lS3Q|A1ok?C6T zS~2Z9hC_YhMmE(XB8kCy){!4xC{@#%Rr=Y~^rhy&Gr1=DwtLxkpZpM^SBN%=PG=iq zvld+uH56MCy=W?Adcwq&xLCT^G}4^rY-tzJ8sRi$SKgI7Hv77$Ky1RhekI^)nq}!2 zTg}ZH()Q_Xo_+p(D2>7c-v_m)cZP7@f;C|Q{me`Ala*cT_$e9ze}S@It-OhJ(=MT| zQ(f8g4D8?7`^3(9^xT=O >>{-554!s zHV41W?G5hhQp-}mq?-rlP-{}(qEV!W(VaQrMcvdu(NGh5QR0&|uSFjlrRss2cep&A z6oVz}p65AnQTR*#<-3)}zJb0z)MB<8>T1n3*J9f~wIQNo*sinrXtpEXYxE;@H2gJ^ zHLfR{h? SNY6P4<^(+*pHuU5t)lwx7 Z-i{;`PdUBV@WDF)lG%NV1@(;3FoCxJ&F+ Klyz%`Sp7#mgeN*~!r&r?+2z15={Z8iDt?9IBY{!N6 z&G!93DSIg&FNZqspAiQQQmf9Vi^2zrEk>(u`dBtpPkygkigg8CuML0e(CmmopP#@+ zjrZw4(=V;FaV%e(ZBeaK)t{^t>oPy>^4^8jWo691yvS)Zna8T )?b;xCp(Go2e*8x=LTm+NjJ&F|PS zVq#ITL|Fc-TI~`iM1S65&SD5>Y}#z?qJPCo`bg{OVEu$^P%lLc)q5I6ZWgY$L2WyF z&P6J&?~$J;UpA4JvKFiB9fGWb)K{*p6G(_~#Pin1Sg-!8eS +Z$1rwsDLccTJcEC?KCY`^I?i!#d`_&gB#CPy0M zf5U%bA-FgFLe~W`r6))Cw(#4jY2_aru9FB|tiL^x%kT-@P;CickB(%2aOE~mv6?vj zDZRL~c)TMdxx{L{%A;VkcK^UQxzM3l&hlzNdO+<;#9_<;cg@qs*2{sIh1YAYwF~a$ zhmWU<9@U))nA@}5ml)r!4w!j#lzyHn`sCiKc%A=|)n|o;fbqi~ngT{ErA|NDL&rnA z<*6(Iu&(ga7fMBk{kwzq1+`nt&jxKs t!&?pR2)y)?$hmcd?$M^3%>_vubC?Ihi zgYqPE@-dB*)qY`NnSTkYA#q3-H-|q!-SbaE{~N$%e;GgqaFmxF`TRi86=|ny2;4$@ zcw*eJ02C$;1uO(ry)Z5)00vc)f>{Uw`d&y6oF70Y_21#%7bippbn?jpjyyu0%-&!@ z^(!z43 HNh!b{ z_%jBDN|D$4_yVwh#o!Pr^2+^p3__mHKVwiBS?M2na0v8YF{mVjym$F;Jvda7T!DYa zWPkZC&I5^YL3{juHe-nKLj!W;&5@fM4mhq8d84F-wRZ!KOK{v)Cs$P77KW08OUp{5 z?T|2(9UO(Ww}-=R<)mRyNlBQDoU9`F|4;ejkMP8i3-tTy!6o5PFdv_Wt|s_@0OR~M Awg3PC literal 0 HcmV?d00001 diff --git a/MonitorControl/Assets.xcassets/status.imageset/status@2x.png b/MonitorControl/Assets.xcassets/status.imageset/status@2x.png deleted file mode 100644 index cd07318f541a48fb391030457b73331ab1b170d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1592 zcmV-82FLk{P) 4Tx062|}Rb6NtRTMtEb7vzY&QokOg> Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1 C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY1z>%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u-> P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<% UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPV M6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p $HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%R z=1D|BR9FekmOW0yFc5_okoE>C5TZrmN8$t=0;DaFD7g<5T!Fm;)mF4LTficE-~iP8 zybm(bC~Rz#WMiK6 (xMC`$Fq7gq!Vz pHEhJXfIXi`KJRBH*e zXVHx20CK%nY*i~IU-ezp`*(xf)Ybf@PW1?!);tG#z7X%lx02ZO?Ta4dqS0j)E4{I- zEAd^l@4w#SBZk;sf#6K^1HS0_rX;ra5!-7K%*qB}uw!veG+@)`3n8Z$@Lp}%8DKl0 ziqDE5r@kiwsm-oSxoq~#G6rHSo{bp z3#87Z&H2sd*6Ku?t{*JR= zNG6({zeaVrOpxof(2ioN2;M7+SuUli*K#}C*?8C?F!SVVc}U3n5VbELX=#13+1Y Date: Wed, 26 Jan 2022 14:16:56 +0100 Subject: [PATCH 07/24] Onboarding Screen (#906) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR is related to this issue: #676 ### What's new - ✨ Add an onboarding screen (only appear on first launch) - 🇫🇷 French translations for the new onboarding screen - 🛠 Reorganize AppDelegate a bit - 🛠 Move View Controllers into folders ### What's left to do All current translations beside French & English (for the new onboarding) are missing for now. If you want to help with translations, please read the opening post of this discussion: #637 --- MonitorControl.xcodeproj/project.pbxproj | 32 ++- .../Contents.json | 18 ++ .../icon_keyboard.png | Bin 0 -> 1217 bytes .../icon_keyboard@2x.png | Bin 0 -> 2536 bytes .../Contents.json | 18 ++ .../icon_person.png | Bin 0 -> 1417 bytes .../icon_person@2x.png | Bin 0 -> 3261 bytes .../Contents.json | 40 +++ .../onboarding_keyboard.png | Bin 0 -> 31677 bytes .../onboarding_keyboard@2x.png | Bin 0 -> 104821 bytes .../onboarding_keyboard_dark.png | Bin 0 -> 31703 bytes .../onboarding_keyboard_dark@2x.png | Bin 0 -> 104682 bytes MonitorControl/Info.plist | 2 +- MonitorControl/Support/AppDelegate.swift | 72 +++-- .../Support/MediaKeyTapManager.swift | 4 +- MonitorControl/UI/Base.lproj/Main.storyboard | 257 +++++++++++++++++- MonitorControl/UI/de.lproj/Main.strings | 42 +++ MonitorControl/UI/en.lproj/Main.strings | 42 +++ MonitorControl/UI/es.lproj/Main.strings | 42 +++ MonitorControl/UI/fr.lproj/Main.strings | 42 +++ MonitorControl/UI/hu.lproj/Main.strings | 42 +++ MonitorControl/UI/it.lproj/Main.strings | 42 +++ MonitorControl/UI/ko.lproj/Main.strings | 42 +++ MonitorControl/UI/nl.lproj/Main.strings | 42 +++ MonitorControl/UI/pt-BR.lproj/Main.strings | 42 +++ MonitorControl/UI/tr.lproj/Main.strings | 42 +++ MonitorControl/UI/zh-Hans.lproj/Main.strings | 42 +++ .../UI/zh-Hant-TW.lproj/Main.strings | 42 +++ .../Onboarding/OnboardingViewController.swift | 26 ++ .../AboutPrefsViewController.swift | 0 .../DisplaysPrefsCellView.swift | 0 .../DisplaysPrefsViewController.swift | 0 .../KeyboardPrefsViewController.swift | 0 .../MainPrefsViewController.swift | 0 .../MenuslidersPrefsViewController.swift | 0 MonitorControl/main.swift | 8 +- MonitorControlHelper/Info.plist | 2 +- 37 files changed, 944 insertions(+), 39 deletions(-) create mode 100644 MonitorControl/Assets.xcassets/onboarding_icon_keyboard.imageset/Contents.json create mode 100644 MonitorControl/Assets.xcassets/onboarding_icon_keyboard.imageset/icon_keyboard.png create mode 100644 MonitorControl/Assets.xcassets/onboarding_icon_keyboard.imageset/icon_keyboard@2x.png create mode 100644 MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/Contents.json create mode 100644 MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/icon_person.png create mode 100644 MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/icon_person@2x.png create mode 100644 MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/Contents.json create mode 100644 MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/onboarding_keyboard.png create mode 100644 MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/onboarding_keyboard@2x.png create mode 100644 MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/onboarding_keyboard_dark.png create mode 100644 MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/onboarding_keyboard_dark@2x.png create mode 100644 MonitorControl/View Controllers/Onboarding/OnboardingViewController.swift rename MonitorControl/View Controllers/{ => Preferences}/AboutPrefsViewController.swift (100%) rename MonitorControl/View Controllers/{ => Preferences}/DisplaysPrefsCellView.swift (100%) rename MonitorControl/View Controllers/{ => Preferences}/DisplaysPrefsViewController.swift (100%) rename MonitorControl/View Controllers/{ => Preferences}/KeyboardPrefsViewController.swift (100%) rename MonitorControl/View Controllers/{ => Preferences}/MainPrefsViewController.swift (100%) rename MonitorControl/View Controllers/{ => Preferences}/MenuslidersPrefsViewController.swift (100%) diff --git a/MonitorControl.xcodeproj/project.pbxproj b/MonitorControl.xcodeproj/project.pbxproj index 8639f173..1fa5a4b9 100644 --- a/MonitorControl.xcodeproj/project.pbxproj +++ b/MonitorControl.xcodeproj/project.pbxproj @@ -56,6 +56,7 @@ F0445D3820023E710025AE82 /* MainPrefsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0445D3720023E710025AE82 /* MainPrefsViewController.swift */; }; F06792EA200A73460066C438 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = F06792E9200A73460066C438 /* main.swift */; }; F06792F6200A745F0066C438 /* MonitorControlHelper.app in [Login] Copy Helper to start at Login */ = {isa = PBXBuildFile; fileRef = F06792E7200A73460066C438 /* MonitorControlHelper.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + F0A489C4279C71B200BEDFD6 /* OnboardingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0A489C3279C71B200BEDFD6 /* OnboardingViewController.swift */; }; FE4E0896249D584C003A50BB /* OSDUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4E0895249D584C003A50BB /* OSDUtils.swift */; }; /* End PBXBuildFile section */ @@ -157,6 +158,7 @@ F06792E9200A73460066C438 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = " "; }; F06792F0200A73470066C438 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = " "; }; F06792F1200A73470066C438 /* MonitorControlHelper.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = MonitorControlHelper.entitlements; sourceTree = " "; }; + F0A489C3279C71B200BEDFD6 /* OnboardingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingViewController.swift; sourceTree = " "; }; FE4E0895249D584C003A50BB /* OSDUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSDUtils.swift; sourceTree = " "; }; /* End PBXFileReference section */ @@ -311,12 +313,8 @@ F0445D3620023D5B0025AE82 /* View Controllers */ = { isa = PBXGroup; children = ( - F0445D3720023E710025AE82 /* MainPrefsViewController.swift */, - AA25F6CE26E680510087F3A2 /* MenuslidersPrefsViewController.swift */, - AA25F6D026E681D30087F3A2 /* KeyboardPrefsViewController.swift */, - AA062E8926C9A039007E628C /* DisplaysPrefsViewController.swift */, - AA062E8D26CA7BE5007E628C /* DisplaysPrefsCellView.swift */, - AA665A5C26C5892800FEF2C1 /* AboutPrefsViewController.swift */, + F0A489C2279C719200BEDFD6 /* Onboarding */, + F0A489C1279C718400BEDFD6 /* Preferences */, ); path = "View Controllers"; sourceTree = " "; @@ -331,6 +329,27 @@ path = MonitorControlHelper; sourceTree = " "; }; + F0A489C1279C718400BEDFD6 /* Preferences */ = { + isa = PBXGroup; + children = ( + F0445D3720023E710025AE82 /* MainPrefsViewController.swift */, + AA25F6CE26E680510087F3A2 /* MenuslidersPrefsViewController.swift */, + AA25F6D026E681D30087F3A2 /* KeyboardPrefsViewController.swift */, + AA062E8926C9A039007E628C /* DisplaysPrefsViewController.swift */, + AA062E8D26CA7BE5007E628C /* DisplaysPrefsCellView.swift */, + AA665A5C26C5892800FEF2C1 /* AboutPrefsViewController.swift */, + ); + path = Preferences; + sourceTree = " "; + }; + F0A489C2279C719200BEDFD6 /* Onboarding */ = { + isa = PBXGroup; + children = ( + F0A489C3279C71B200BEDFD6 /* OnboardingViewController.swift */, + ); + path = Onboarding; + sourceTree = " "; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -581,6 +600,7 @@ F03A8DF21FFBAA6F0034DC27 /* OtherDisplay.swift in Sources */, AA78BDBD2709FE7B00CA8DF7 /* UpdaterDelegate.swift in Sources */, AA44E7052703790100E06865 /* KeyboardShortcuts+Extension.swift in Sources */, + F0A489C4279C71B200BEDFD6 /* OnboardingViewController.swift in Sources */, AA16139B26BE772E00DCF027 /* Arm64DDC.swift in Sources */, F0445D3820023E710025AE82 /* MainPrefsViewController.swift in Sources */, 28D1DDF2227FBE71004CB494 /* NSScreen+Extension.swift in Sources */, diff --git a/MonitorControl/Assets.xcassets/onboarding_icon_keyboard.imageset/Contents.json b/MonitorControl/Assets.xcassets/onboarding_icon_keyboard.imageset/Contents.json new file mode 100644 index 00000000..7ae38f6e --- /dev/null +++ b/MonitorControl/Assets.xcassets/onboarding_icon_keyboard.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "filename" : "icon_keyboard.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "icon_keyboard@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MonitorControl/Assets.xcassets/onboarding_icon_keyboard.imageset/icon_keyboard.png b/MonitorControl/Assets.xcassets/onboarding_icon_keyboard.imageset/icon_keyboard.png new file mode 100644 index 0000000000000000000000000000000000000000..abd33073f1778d689281f671f886bbf8924e199b GIT binary patch literal 1217 zcmV;y1U~zTP) Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91D4+uX1ONa40RR91C;$Ke0D9(TtN;K6D@jB_R9Fe^Slf$LRT%%RbDXif zjh8|Y5z@dX^Q9LbN-!d<1RqrB0wNkA8od gNF~%{*B*oLHmn77%fy4W_nxw`z@GBawj()6Q-z}qT3F|BQEa0=6y*Z2g zHLUlsGuNSEw$JJyKnur`_^HE$(}x?J+T%35N!H((hufU&f8jbN=;|8YMw9p|oYNIT zCt{|g11Dim(9vuf-63tVWmhTC#5Aqdzz`NQ*bk=eOqy8cs1CAWnUmvo2mM6pPPx*m zGBEuaNEe4t4sl`F+;d1>SsQM7)^0=|w%vPJic>MGSww++k5Kj{f_QPbg~!PFibsIE z6z(=*LL=E_IFg;7zT)Lujn=V`U#9j}imMIqhL^>(<#C=0`G=(Lb=#!O;hSC>(;6nH zTU@j4$ybUF1)rHLp)GuFIH3t&X-UqD4(nKN4(fOYgR&NiWBQ!Y8aDcX>n-O7(pRxp zn>azS lr$_`TF}DwvK3c3~2 2#glO$KERcM)ye7=IX++8Mu7d%EhO z1Z-%7O?-zTUg!*y-9KHsJAZCBE|i0I;0fhZGYsSdkB=G-Wyo+KUmA|&RWCp9@g^_7 z?)9JaxWx@U9zHevXfm|pdzdFf@>C{RUOruTP+s(LkK{vSGnkhu4&;Cthw`zB19{&& zJM8fuk53tnWV_do$5JF4z5I&Fbr|W^AIb#YlLw90_3J;F!R#a{`w|^{f^8Ii$Up4e z{PH1U9n8HI$LqF+dzAK%)BYP8-{imXLeAP-|K_N?i=F*u$9DU%otHiHILGwz5Dc=H zj^`Rr`Q1LNdBqUhe`{9^{k#cE8rSmi9GjjiE`xPeP4MbK@BmE?lYYX+T*~N7C1`Tx zYvF0ed5dlb81r=|V6-ztwt -SiP?ZQ4=+H^$1a}gdoJSQCGQfl@L**a|s&} zqOP*C2+_hK;>nwN_sx4hzB%VR=bJNgX3m^*9@|(MGtu+W0{{RfQxiDi%G&$_EeHUh zIOXnzUJ;7>2xEP~tM~kyR|M|kV0zoq5+HNs(*h_``~XzHBv;_O0sugXr2tS~S&CmV zEbyPK4VLo1{x6{-!NM8 3RNI?It68;K89fxh@C=x@0!1<| z)vLpxl%i}kkn=Hop&&Wbhue@zMk0+*eou|hFw=G)ZlU1MnJGn!Td|?yqC(kMqPyE` z+iQP+@HVADVAj$O@!R+9nal6n-@k3uY;6h8^}Vzm)nGsbC1+@-G#*H0Bi{IQW!OK( z6;pY^_mmxQde{1mhO)U={9BbBHJQIAvyG;rfltG=z-6{_nJRN_{&H45a%W0F@MZ4f zTca6DkUaku6cqDf)0Jn}*JxMB^gM5o2-<>a?q|u_)2-@$?w@fC)+wAj=Q5fP(f}pQ z2@{x@qoY{^%b42nM@a3%2akwo^{D5LrDCEp1iD7UY1|LD_vr~XpG2KrHmaCvnI9w4 zdaDtv8~yoYRG%wyOw2D`Tj;H7h0t3gl_AOP66MdpvGwY#dW1>NYGhfGv}i2D{-22m z`ZV*X3SGxVeZjt3j8J}Q8OKK@J4PUgBB{qME&e3K9(0>1ROe|g-B{`OH2I+}vPpIH zjgx%ksV3gc*)sv;G}|MDx)u%2v#WO)2nfsJ*Ka2|=WkfjFCht7tqQPNXjtTyL8e!Z z_zQAMZY_wN!S1COynUbc?8J`uX`MEI)Ww~G{xEUc 7C$NN?Da!*?02MkF@~QrLP|V7dnXgtZ z_jJET&{yVtw%E9ax$)tr$gOiclLg)*#Wy&REYorqIjLmc9X22NVoJWj`Rm^}J2wH0 z*LNgd`YpZG%{1yyaX8l$4IW72by!^H51Trkn-8rsdm)EBp{H`dPVkX1K|NtPgS10* zfbR ?}?EKzDVo9DY>KxolR(7s65G8FOInc3f4VgMh7vHsIl@C7s{lBC*54Dks=3o zTOH!PAhRt5d#d-3%I^rKOJbh!cSSyeW5gS#LZZpSD{31)t8BNR2r~(bZA<{$5UvJU z$iw3wmi|USWe5(lFE%M}$-Ppnf$<9DvHZPiwJ7Tjm%juP^LlBlAO1iMPf$RcbGSG? zwKNl@17_~c3as6LX??UZ>8!PehK-1UAM1Y1ZPD|ys%uhdVA)s~7Jtp{EpyuOoZ>VZ zmrYto4#I{#q+$x2e=ZUsG=XQRQLHcTaB=vlVEpb3D{{eJwJBShSbl%f9K-XhjvJHX zx}s+6xW!l08B(&l=dixW+2yY~!rkfDD@6=lOGW*(HEhcFemHqtS&N&;DbfDl#QYDH zVoBJmL>6h6RE#6yIu7|PF7bd{Gp*cf>n9RjSd4 i8ED)Z ybsGLaz!H0VAC_I*PdOZXB8K6zX<>lAfY`S1HOTgCo1l1(0u>m+4*ev} zSyK$6+yx@T U#%W%yh`_Cm6o8>po(2n3;d!f)GM;7Zy zv%NQ2=wgG(bEin>&9F>4{eB%lBKjLu7h-T36IAvER+A%Ft03i0i#;`Ab*ztf+7#zi z?=Ka dk>!d>pO?8x_Dac&Y`#H*dZjg8k^O;#fphP^2(nm04~Ni3Nyz^nZ3f3v*l>M zX`}~t8@D^Iwc@F *iW~Vg{=UL!tT^NjlP>0 G?eY)elD>dL-8-x!#=Gv2szZHSAP9xOi{ zO9V%?el?0ifHP;ku|39leq Y!7feY#*b}7Udfp)qslVF0FcizWVu;!w z)fd?Qm6zzht>JYvS(4pZ9*pO+MD-ERC!K78S7osI@8U*?zG5YR43}C351X&&$GhkD zx#d!l^TUA$5;G2J_3_F!@btPyiRc@Z`pPOlBetRDU4Kp+47U3?77KF1XB6k@PJ~{k z05%xzQmg1I;@v<>U)q|>ZHIpc%(Y(HahDM3d?^nP+WZ#=b8o^w97$_6Gln*CbjPR2 zz8+gI(K=)9E_s74C1N`_fmsQO#d@D5s@_iw|L!eD`;eM&vAd@(6!S?gBJNbW`_sy0 z!jW`-UjZlcBigf(m0+Wh?P)-k-3!Ghwl Fj=o2+ J19Gl~nPk5)`ErW}hS&L_}^j}aq zE*HiwDX_wFY`tDL-KJftK;+FQ`LV~bgs5`LW?l9?oUBNMdZkLdnYWQ{7HAOCI8_DY zxa_!N^ oF&0ivY< literal 0 HcmV?d00001 diff --git a/MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/Contents.json b/MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/Contents.json new file mode 100644 index 00000000..5e939b20 --- /dev/null +++ b/MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "filename" : "icon_person.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "icon_person@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/icon_person.png b/MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/icon_person.png new file mode 100644 index 0000000000000000000000000000000000000000..e329079cf1cc28cef188e9574cbfae9efbc5ecf4 GIT binary patch literal 1417 zcmV;41$O$0P) Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91D4+uX1ONa40RR91C;$Ke0D9(TtN;K6^GQTOR9Fe^SX*daMHF3go5p8b z8*77#u|BZ)K>g4ktA$oe0@@EPYK7v552PP0sQrldoW`RhL3~u(iYQI-Bcd2TL@mTO z3I!EW>W@mTibaT^C~3sTo0{#KId|sFdE9evR20j-aL(+ nlZ|M5yqo1tdbjlokHP zHk8{<&rt3(Z6F8pmaLbNblR{OP%1>Wn+025x5Fw9qc8h+>Gb%4?B+7wW?WFX3PWmd z-km@W8(}2JI%Oc+EuE~we4K2AH5_)~5&V${M(Q^!Wc$0J7vX*@ODtC9DI-)E;l6mn z(3AMl0+Y#Xl@%N)?R;sl^~|fX&06|DwZn2sEAA%2@zIe~P{R@C=>e|xdA 17WGPvw2yLx-*t!|IZ($nh1dz%0IXJc;5M>Zw$4Bf&5E;0zs+-^AH0 z@#Vz^H6oG|v(s@M6(+bKr#Ze&91Rh8L{5N6;~nA6u`$TztOquv!q?m~=Vry_d{uUs zgFBEba=<`#8C@h7<#dIDP|kN%zyd<)<3{hXEa|QsrmoB%4zu{2x+Dv#GR+hmXV!d2 zBQKbKk@}fQ`!xAf9&26NU?5i#IL-W=FdfHa9@}FK9lzE)dPr>~z0C1-B5hExfu(ep z1Kp%t;d8Pq5y|nsC~Xi}Ob>tY0p#Cyd Z zsKo_S@jKP&F?x4%R-RpySRYU0nJn1xinXM`nAR72=z5X}q@VAVd=3%)JO !s9Sr4O zy7MRv3kTbY`M8e*`QK>eW9qUl{6rI+PT+nl!KJN4wYh`3D(}MwG MwyAd}*Soa4RQ0n$mkradEPM8Uh;8`)9n+xraoT*j@`S zY-_kBC)b~F+OhbzBd7NS 6G4ueVp2SolWIXn{oeq6hlu3t zLJWn?9JJTSWsM9lvi)>IA1?!ZK4N4h_>9u>DqaB=a(UecZ_36IoN4&@BsiGTc})2p z4CO3t=x+?Z6K8O+@4dc%kBsls`Wn2G6WQFzSh<6`*MMBjWA`m%paX00pn3;-?;V0R zdN-fNMpyPyc%AA8m<%7Hl~cj9)!ac1)_3t5J|m^8#Xs{?SWkyvY-X%A2d$MrRx)eH z$aY)NoLj}D>gImktl~f4ni!aygTAq<^fDQ?)8Xa5I7ch!YBMtD%9AtH7PKSq-$dX~ XxKM9(rUVX%00000NkvXXu0mjf5(<@A literal 0 HcmV?d00001 diff --git a/MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/icon_person@2x.png b/MonitorControl/Assets.xcassets/onboarding_icon_person.imageset/icon_person@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..99026af243324dbc671c258db7b090c500b02e34 GIT binary patch literal 3261 zcmV;u3_|mXP) Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91P@n?<1ONa40RR91Pyhe`05RZ9PXGW6CrLy>RCodHTn(^QRTW _?{wrK!nDi?p;KQ<{4oc#`{`sreH`7CAcOq@s<4V=)yC zW~Mfok!7GX(NKgAXvTYx#)G%|);V{dv-kPG=iUd5oIP{zUVE*z*Is+=efIA KnlY?( zo!;Ofb<0SiMjzCS@z`WEsG&rMAN24w`ZAi~OCId-M$H>mrpZ%)w3VMk6KR1O*35RC zQnbzVJWXZQJ&TrT4#{8!Eg%VR@&OLpSra6aeq06D sSdu!EUQTFXf3CW}`K&1Vpj1q#D8Jf5DS{~EkDcmnm&T(#FmR;h!-0_ojG>Yv;X z_o5G`J`l+Quj0e#8QKYvOOg3P%eD@$Af_`hrH#Wh5sdy8Pb`tFna!5M6IWdr8+25V z+aDbKnkYOu1L`o3)}YsWCNT#R5RxB!S8WRfn$J7agaGfV^#N=Ewm_Gs8?<7e%ZHkb zw!jfO8RL(=08(U*ha+ZY58gv>kKqCYb8Ns2Xh}dq!`O|Yl&rw)te5j-bRZX9g=rEk zOrL=LZ1H~B+@2e+UP%0ebT)Z1q;37q+TP_IK8bR<^h{$W^x zppH@fd>oqpF)v@*g9l=^1tqr}#O$CU3^Ciu<#78j$VbvHdI){=6<#4(e~KQb!?7Iv zy4vBf`CAoVIoTR#gnSF?%-WJV-HSNGa$0=$L!!AP7GZUIn~5q7*XVdpUI78cEf^K% z@Fi&8E28Msw4(VKs+OnHD?(*~$^w-IDhpH=I5;g(elFJba`|;wiY>w3;w_k)Cwgc_ z|3>^ I)sg*}_z6s_>pHsjz;2HI)4;NV=?L zSPOnJi8TqQGbPb%oWrYOxj7zE(O1x9*Vzm?sU{1*ze!i#na%v193Hutf=xaf+&6hS z (u?wxJg6s)WbO9{)otV&mJ{8R %n{s=PXnxrUPWYgsD`p40fXl5^+rkoJ9Q$#dlgQj^XrjJKS(R8+g{p_D;NiJ8( zm75)|;J8I?j^vc-!O`RslbL*Mwt}O0+Wc^BqL87sYfB=rjdVC|WABfpihhulJzGJ- zafcsnP82fE@ajoq0CGTWP9ga+84puN$WzeI+VF0&;$mF2JB}=fX<*hV5Q-`2D)Uy+ z7OUu8Ho{2BP?HwM)3a$L6JJn4xGAND0rhLlz4n|dymdMyaU9fghA>|j2$?5K$p1h5 z4#7Bg8shkPrVD5(83*&nRLw83q7Px}l=yEZItpi7u+|>&M>{x!iI$L-9;J&tlA^Ds zu?RlD*812jYg%gZ97vLruU8^wOnaNq?DymFJb8w3xetT*h^JVVTrlJ{u~cCjihK!< zcpt-%5%xug`+;BV6(WEBY#qk(Sm_J$8hs7QULEj`&_CO7qH{sO2O!^qW^D<#M-6%s zwf~nXq%ho|$*}IsVD8Sbp2*GagTmo^jOZ2g!=;rIS-at*qUY{fv3{LzK@lt=ev0qo z%l$u!RrMQ-WG$|sNOO2A`dad;rbuZ%Px=*Ef{gqoHZu*VqmjJBM0E&@15)z+U5cR2 zEU1Nu2hMIhEOJRvBq;FCpqG{L#4D$usg%Qu(CptZQEgZTo&~VjRSC2TRav02KxKi- z0+j_S3se@UEKpgXvcSP^f$n!BV`V{?Ct!O&1v{O|C}KNa_;`{oRC3OCK!yEhz=b>$ z2Q+dyat4g_n$lKL^atc$g~OuTaXz!Lw49O|_niR;_$a&{ LoDNrXJNH6yxxlk+>G+ zz9U4oA$ehH8hx1NEB{11#!wE?djp!c)S*s0aKd~RPS1Z9qQ)3%^10~Q%V5lgRZ ;x`vz@Y>WmxdCgbg_V}#UcC~v^
8C`+c^|AR=Q$^NX$(bkMagDlP?)0{9ze>)KgZ1BDTTb7{i;kPI#*>A#oYE-F z(2OrsDbI1~7Wfd{-t~5DB(}wT7AuDhIT|LCqpgt0l!|nC4J!9OgMJ@+#VJPmzy!si z%l 0CW}Mj zm6ifE951!hN(&cF$o6Uv{PumP?pcV%#jm(N@>L$DN0H+J?0i htEf4mRT${v}#LTAK=7bBlJ0>F9+`t0lwFOcv}&?O9#|# zmgs(VVZ2K%Tn)!tE%g%%*I}YJ29!b_mZSM-uiJvzaxRv+KLp3CI@GOucG)Wv8j@)> zV!2z `RcOrfDY_eD-sxEW6h9KnP^z~E)CI|f z(O$X_$?+Ps-(!W39V#?zOZ~l sm!Sb5)9S%8V8*nw*oitHN$Mim_77vb{pBFu{NMV;;^7ylbs zw_ K-3n00000NkvXXu0mjfD`67P literal 0 HcmV?d00001 diff --git a/MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/Contents.json b/MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/Contents.json new file mode 100644 index 00000000..2eeb18db --- /dev/null +++ b/MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/Contents.json @@ -0,0 +1,40 @@ +{ + "images" : [ + { + "filename" : "onboarding_keyboard.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "onboarding_keyboard_dark.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "onboarding_keyboard@2x.png", + "idiom" : "mac", + "scale" : "2x" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "onboarding_keyboard_dark@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/onboarding_keyboard.png b/MonitorControl/Assets.xcassets/onboarding_keyboard.imageset/onboarding_keyboard.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9b3b30b6bad26212ce6706aabbbc518575fbcc GIT binary patch literal 31677 zcmXt=1ymc)+qNlEiqm4n+fv*q#hp@|P~2UMJ3)&V4aMEv-60fr3GVK0L4thg|Mz}p z&YtWflk9AEGxN-SUr$066(q6HNzf4x5U`}Bz9}IfAQr**_1?TjKzNmOG`k0{ymC^K z6ho*OBRhaszL{!Bo5{-~Fu?cUAiN5(L_q%61iq2LHv|NvtXBv~@W)sGp36e~|F0qz zWg-3leFVLK4QrXE;71Zckp3pB;{NKm9ktC=A|9&S=yY0uB)>;yAtpZM9FRvtx4;yD zhC+N#M)1A=t&8)j-70$yoj(uKZ!~ mH!#%{}fXS~NMYR6ai zGMvOwiyl_IOMlL20m`-NOI%MDH>Tf{HrOnw$&!h0F)J!7*Ot?e)LjJ2QPoM|8FgF` z{{C*$h9!%e^Fvk+;x1Oo`OU_reDV)V_`MOvd~D3d2Ra&E6O{ ?SuDYKyL*#iF!8^y5#={BB^;UBg<=zj;dp{ekSM*xl*8CQ|VOA@mDaMCW z<1HG%O?u_bVqLJIlV8*b>lw`DWM=NsSX7S(AP;OoCQ2FlOZ5bGYiot>o~ )6YCW`7?xUQd0$aK0^Y#&qx_Kno%HK*u|o! z??tKqqkmAiRc4w%zUxYhOZ~ipE7M5vC8YU^FbPlLy;b=t Z}irJWiYU zbnkEG)(luW?vzqjZI*r<-AOgtEY0S(3+>k}4K;A`yShJdS p>nu?;>m-5 zuczlyna&U%NzeUk)Y0RGTHObWqo+9dT{@fQx@f6Tp 3Di(c6t^FKGvx9ygl7IRy;qY{ux1P?Wd5=w@~`hlngOI+C?J-yaww0(ThjP z`BBQDZaOkq6u(f+P!Th%lE-@$BpX(OyY_9whdNH@rSyRMyD6}%E9u6Bvus3##8|PS z#rcG?B7CJBUkyRK(YAc0$-(#p-;> NeNYlCit!25Ba0Ix^5@bn-5< za=UnY }5v1w$A1GFS&Nls)`u7tc;#C`-F*`~^&pNxjYzme4ufvupdaIe}2x3?Ou2 zQ9hN67iOvlb6RlgPZ#FUhb?k1-&9uQHdpMn+@T8JW#6B@bad;Yp3PTJO*RQNSk<;z z?dd{2fQgL#!+$hu&C2hO^j|h10O6+yVs@iA#!OzPgmCzGX?)s#OH?7Sto|X=%YB`A zzs4J;z@IW7FmH3(0i!)VpL>RpMG7K(C#jj1CPsZl!Uw-7qmw@O!!WtC)&8dIr`wm+ zco4Bu+oX>llsh_Ce%*crY&y(!6|VmXIT7A>)O^-)&Jp{g*X~hN_IdYE+;%lbVpy!X zAT%W k$6SM z_3O ZZ;yYgQ+mkC#B=Hbz7tTo=OVQxrMd- W|+6BT6k+09;zk-kV$bOS>% ztR!}04=GnmlF}?0i_YodSP7OM*sbR{T6`Lp{M e@;Y^DY_Ub}~F26dB9y^U%QSRf@nJ>5dkK5CgbfR@M zJ|AdpX3Ck@9zTn)?Xo*jqwNX=JDHqi)GWxo_&4?k-&xJQCine`kFG{`8xWhtyQ52m z^u?5LmX?W0=g25bEb)xVk2>F#Qn|{>&h{t!Tkbs9U={bzx8O4f5-PT<>zNCJ-T=`71Ee-+1tvZ)`1t!mt@%Nm^Vv2Got`*jU5X z?H$6<)USg!27eYGBYdje4^k}YAs~-#p2&D=RucEk5W?3(oz%Z^^cES3jb`Newq1x} zfXD4#aWY6yX4D3n3$EGwfL^~ce@F>y4>cCeJTk-(_*;T+TG@R*job>cCdLgJ25{U~ zO*|akOiVL!$CtX@pIjlEg6+4Ivo Vv=JfP8GD3KF;*_mdNkzJD zdO7cch%y@aSKH;mK2Jk6z6Y}UoO3!(^~7A(-?FD_kr(SMjVZ%C#snVE^+zMQSCe{` zvb>LtDZgaik6@i%^iGJN1h*jD=+>BI--BOnOLsFoPvwb-cFtPQgua-KSU4RP RSPokoDf-i$K87%;DLxSsPT$G1FMz;pw`%Qko!eUKs>E r7^V0Klf&Sy*V(*&ho1?-EY;x_TzgK(sb`GTUUWdhn$5|RG`}h{~ zXc4%vSWt=Z-KEjTZC8S}hJy+_DaMg>SPk&;LNc6BBg&xs0~b+ut5u?}j55lmDrPz- z5;G>l8d%tps6iZX8o|bcKY`~nXm6eoIxbYZXOxlj`4QT9yM&6!pM-)z$miRQ-LV$9 zy|qmI6@NWSMm(UBlb!IM-B@8D5Cb5=Hc=%VJI1&XG~R_DB;@_N$!lKfwRj3>4@A6k zfE_0)KCyL}T;CIZ9ChM(vXT`p;mF>S=P=H9#H60!Gs`pDFTP0iJ)(h&t^-xZ)57 }q3kL!JQi82E*99rVTZve4*nmhb9xoYORo-7dYV+Wu%9X~CG zSan^K{R^40+w62&FU}|_Q*wI`5f^d_Nv>nB7At)v4>OM7DCxY65lR658?IOS^MefH zw@M>Q#%2eIuP;5=^pkQzfQJQJVr2QUM}XOekHO{TJlX@)*i=gN1&!dL(8-lsU9otD zu-JDnN9CWpjlWS+{kvl#k=8cMgivh~B9CKvKI%v>){hCr+GOe!yC{UeBXj4YGFg2L zLP0{5NhbTcf{PjTHY*odR3PpnZG w7#rUfCs;xij zB^L#|9>unLe9xO^^+ -+GJTI+ABM4YFo zvSM?>RBZtg0TLKw3>ZDcH;S4 |%ibLk <{m816;~aA*;-Xel8h((Rxti2!@MWCXF4?eFTy9zFae?_% CN9R7L45#xKP>_qh6&?r*wq?cSHR zpWB-pWVhgB2uF%HALcQIk-es0 z#$O(Zop$11);r>EppE)^2H9AKPw<$RT{e-$WycF~ZVA2LZ?eC`rmrLTLJdYxS((g# z)>gY;k5#W*?HLF0fe@B$Me&ab?(RCslHax*Rn%72>l`g!4N& z+HNh8NIv!Rg0_V=Ph zhp&5>HbT$)Mzz+k`?b^kPNHW2&C{vF&*QCJ&k^RvWuq}cw;1`e+A+Q^Z##uC^i2D9 zxkKaUPfGMrLw>P7H>EF@J})rgCL^J6HOnM{dugYKgTf^l?fE&%%bn+wwGL}xS!kJO z UlXk qZ-nl!~S!++SOpM@nu%q*T8JdYjW9n%57*d z*2CvvDl^&lp%5^C#_PheR3OXRKGL2t)l&Z==amsPaWC*hY@TMjHb oF2H4w&+9_U2A^ZR^V}UKl&H{ zy?h^9wYyvRq_bpqVZ*W={|2BwQ3QHWt-ON(_bWRd!oo1v`(}T9SWHfQ#cQW`(JJ*k z6J;c^Q9X`Eo5PilJslGy*6xyR^#(1A) |xhsW!H>(8F0SNjzW=3%3R#N#yB z8`jW8jHzcx(^LoJz5O6$j_Y&g*V(GB|8zJ 20 DB87nlkOi)d*7V3I#XgM3Vj_+DtD &K`E{Fs>LEoF7ldX`vzA|AA^t=DF>P zrK)CO3|kQMTnpLrGs?(!O~a9-YUs}4& zkhPAfaM~S7-c55F`|~^8L8og{@|J0zC0$qaQ2#UnJ+pEmvrEa5z;r4yQL#liW{j09 zaF4OT^y~MrXfE6~&ByFmkMyvk=nPcEt?<`+TE0UN7xB^rB4U*DBHA9TsgINg&cye} z4YC}ewRc`CXdtEaf}^es%aqKI?J8g&@9@{$H>1g4`Vaa6%x`O)&mqsgnv$l6gq_C= zUyc!h`5Pf7-!S|b +L`)gagv?q7GytErH+c7ok^~hR7cJUT^Z-o#mM0x{K=P#tI+dpg zvkuRA`m?y4O?eO}OK|5jy{4(A$K{D1y)sRBJ`2+C#Jz>**es53C*NW&q=Ed^BbhYCa>`w^R5qUX!Fz|`Wxt)E3$ zc8DMAEGDH;O_9*yZYLCy>kW%?rCnzVNfin}j~!3Kp%hxasCqOcMGv9guBV?4a$X=N z2tu%4YKSZi6o_}K`aRB1x97A}CYy9}cTgUksQGmSkRj0f^>I)5#qupV1({5n7vf|3 znOETo$%5wHAX|LC%cj%He#N*A(G~SWcfZ>@yFlx!O{#)+!;aXeWp4hDaFwamx;1PG z_i(WHBP=iwb_z57(+)|RZvbQpnVqly9UChFL90%cDN>(yxxuah8@s7?u0)m$vi;{d zTT$fv)-b%KT&feydu}`ETBm-knahvVqD-o7axUwlTKc)fkK{uB7Sn@!qYL6#C*PKu zqwy&nZ&zVX=H{U27jPfLY99%>3MeVQZ(vr;>vYT&wt^J&of>@`ZQ`3bmo&)eu4kAI z5 i>{%vR*5(*7?o6ww@BHnpAC-^h>N~#~1`M;vrj&h8Oz2sOb?DIL_V@V>^ z!tY;shY=^huiEt%Z4&XnLZF#-O!HIX%^!NL5C1EjnjaL3Cg0|u{3|H~hz?>lpTxf> z{r7gB?C+Gn3I7#~PZ&LD^`V%=hX2};nEM4>tU&rKHNehkibst j0YRGBl1n`f`oki#Xhg0=mkt=Fqulym-(E3wnheoWq;llZ zO6-JAq27dj*SbnI$(kWz@KKgoM_?$Ijy2`8>}_>D ~9h&Xwe?T?BZcN8@>(kQ1z!KGeLX!An`kw!#$f3 z$0y}`hGV=R@u4UQCboZ-PQhvBP!N?~nD{-e`ehD1VS-6-p_c{) IEEnk)hMxQ$z&KLCX3~dA_$1|#<_Yrq)85iY=|5a)4 zvYV?&hsCLi&eQD29ZVIb-e2vZYGjDNk4e08U%TW&yo!-!aS+zbYRKL5N5L2gXYJTu ze50%JA;j|1kk@n|6CTtTn2%@R6W!gb2vP2D9m(djep?YX$ tT35)!STHlpOkD4qHd?g(KXF6l H0jZ|Geo%BqUZ8!qzqK zbpHZZ!@nfzx@x{sMuHX>X4FttdF5BwbUby%3$#I&xL06OaNU`l<^<~|?W>jA#&Ei& z_qy!4xA(-GiTflTn?`*ZN6y3i=X}}37Mzgo*n#d%b}7*ib%7FDp`mdJDZpJaDuw5< z!|)l=JGqiNiMwpQF4|xP!L5E!;~FKI>bc~$>r(F$<;$Jq?bWAq2aOu6&~cI6blp~0 z7vadsMmzlwKLOKyey@34b<`UXWjU>na^VS4r74Q0JVuz~em@AAbdK$R9A9O=v;prn z!1Ej=+q5;#`SO1xQGHsCN0KJTH0tZWatRjvnD8<`7k=InE(_4L0DI0&3S5mi?RHZ> z+vl<^HP~1QL90Q@Am2x=scdo7t1ZfxX?Os;W{pp?w%2+&beqcRbMZaI>1uTCi!f|q zT*sG_tZDXnY!nMhOaCm)y>O9A3y((`_o}e|#?`L6F4;i24O#4Y9?Ih%e8loP9`2HS z5?Rt$b~fOFt+mkQ9}u5#8K6RkmvU9V$-bla#Avos|I9}y53X+Rd}E;NmOOLv2^GAf zxC=zXV~id)H#E9i-V?H_Xxc=Fwf8p!uXSgyk>GX06&PUy+olbVTYdqzWrxJ(n^|pA zqyw5E-@6dTkw|Wz)qL m+j1va V z8q5E{WocpKD`zlO5LpqRL0 !u}#l?hL`6DsuW1E5IN{C*2q?O#>n2*b!UL2OFzadiM z?T|JD3Ktdb;U&n0Qw~!h(&eLw%BrTevl@Mx#oxth wtaIpDrqrp{3JH)_cbcMvU<{iGMl*!ZdVWn;WrRwQ49A z2w8&T+t!Yk>qm7z6? m*O=zN!$p u4rUt zB-Y}gnKJj)ZL?#N@CezodQM|)eC|t+Sf&7c8uzrm*hF#dy{}qmadFyk YmRSAYJa=^5I4ws+7Dq~BTBK~d!BC$wjP#ORl zn6w&g4T+?VP7+p*%ob`)$HqQV9N^-$IcK#i7syo$f#+CsJd$D+_y(WlI;CKYqW!6F zslGR{HyCz57+4kcLG>AHO$Og_-{$fhC8HOp6K(*K257#c{o!R0c zvx64?c!{7Lx#tlrK7^vgVHPN=Cb8{u)xzPv9m$8-{7R^dpsS;JL6e!!Sy_5_*LOTx zg(`*mem<*I&eYnE!pe-2qb15>29YGZeR9A<%f>=#558c4dmdWH8YFF%W-r4t12!q{ zb7ywF|9C 2j}p(R`IH$(O=3$FS~KNOI28qAL(hm!OBdDOLHR{P;Vx zz%aOseZrR)BQqt#$vF;qVKB&gT<4FGO@2UpfJtZ7U5RVnB~8zNrXAS-2!ia>=zz*& zHr>zHvwM+Khr3Y1#r;H8^%45@$6%QYQde6#WIm9>6U(SgFMdxnw^QIA5#AT49d)|w zHz)gRYne&4i_CgMP1SzPE-^})Y9l5x6Y_;j8RtDHwt7#8w@eXCS`-Q?>aAeV(nd%i&ira`!64NXq0)X3UBE8G0k{WyO42EPtKMaGh>Gz_MRYXoH8&v zuAbGMMG;=wZwi5jPP;7ohm5_`fEF@6t$vg5GKnhD{W>Whil#~5QbV=#lS_ZB;ut{9 z#3UGhu?}yNY9;g%bkXKctAkDD4>VSj9zPJ+%;*j?*-R5pGs8?SLi-MrKJZRXvA4|j z2gqsI b3SP#2X;`@%Lvr>S{G~)0 zXXwT!18ReMlF~p2Yl{~ZT4$gFa?Y2omrcN=bKsMPs3)mKnNkA5dL<~NrJeb&ymdkd zYJspcoAx&9;$ICT6oytahwgsAj15&}kBjSJ_;j|dkhbme3kj^CX019jHXW}@S%ZZZ znWA{4Afk}1=-2GDH{Z{aFyEdfZ+6 LTXe z?8R@zwHeGisuWZC4e >)24Yc|~8#F+k!j ziWiz38&81EO3RG=8^;L6sQB?tzW{M1vy@u8#P^s?hynbp_JbUdQ~7tRjt>jTHrbd@ z&i6xkB#RlBY{#|SMhYbStAAE6qHgi8-vHyxgk=*m${<|?zubQp`)&p{@<1j&_JTK3 zcefPE7FP@8wav$)Y2_$AkI`88M~rq+9+Eox3If%jfq!Q9V$N1tL9!XHDRb)A&TV#U z6pb;#3QJee@5QBXLq44coT S}9Y1P`W6HKM<{VaswJswKS zng-m}tk|DczPcqa>^xh*7L$AkOXc%<$0V`KU5d8SaxXa)J&3XRC0Mewn@NvCmFoI< zVT_`^R)Y*H-SzbP1O gD<6b-Psps>EZR<0o+HGlNhXrz3mg6n;k8Q z*HnG;d=|Log37tFu-V;8-=|W|4lkhSTYPn-xB|r_Bg|nQ{$S7C%|DoJa#`xSE~>9k zNkFEL`;x*n=6o-*-6iUm2O92 F(ExNuIb %qG&l44y6`j)J%MdT=z=~WV~DC7gIRztkHhPl8+;#G%h=ML z>ng(%L5+%~*LMNeD|MTQ5Xe2@zGe3*I_8LT^y!3jA(9JR_d(mOn^IuBM&p?(1h}!* znHZwWw#Wk3U8wmCIuV=>@)HRk(TFQ>fv?0bd%E7(ygj71Hlk>3yBuO%$q9Tm$aX&7 z|6wb~UNI4m1SGGhiSTWBg!+Fy&U+A)ZJJe6I=xPMg(v-=9AKw~F;X9%$9SA;_vleq zT#aWz3d^d}pKZ6ac}Gg|KW$-x4nx39e@zhFr%(Vp$ ttqh35;*>5~l^%C-S*M Rt>yLYSKW5|G%y){`BL?PFVb`^xuKt{o)=C^cWYs 4PaYBc77UvC4)0mp z1(V{;xKyH*kT9)159+nmPx4fxEBgk+>63vv5vMy#Cj$zGqsu88c> zYHBoF7XD$@tvwH`cmLPf-D9+Cc|g)Z+hSaSdWm`fjfyIX+NTtwp)O}Np*Xu!&X(;b z1~c&^Tlje$zT5fdm`#xRERrPwAGi}J6r%Ra1=xZ97A1_^c;zuohiIzkZ*=b2u&2)H zS(C-zeo5xK34}Ke>Efy$<8DAn=?0`C)$)3Z;uX+LvSA+)P;%~;v%!s$eE2$a3Xcjn z8Ha65PoT!~9PP>mnI5)_<~Fs!9x0e+HIl$E_`h?ET1BV*mLKXe5fx3bYsw$5o}=H3 z$3PI|=anC_4SAnK8Iknmr!t^u)DOsJ{q_icb7k>9*735X=BjrMDq0$mGi%`s^P;B% zW!h#ARVG2#`LtbSq4-GRw0gBZ?V61~0hX3A{cjc1I1s(IL#MDl;OMuAZeozqQ5=Y8 zAOSZ@S+>P=2E~X#*SVM^qF&qaYD`)gWL}2pCH=3Kd>NDrWA+sFZm0@d#8MzVn;#tpv z2TVhcpAhqpAotqCceX9hib8VT 3R^T~@LGfd8%%0u1(JVS=C!;7#*v z6s5hVh-Z{9Yr*f9B|i_NB(a rr$P|ZQz zU39L`CGevz#gL4GKo9a{uPhVAkhIeT;f`)jh1})D=TcYWwFFl&72TNFh$`yDs9pf( z?(Yq8T{#lH-aKCXt~v`%hX7g?KJ1-P-UKFHTj=S^(V+!=O%5jxL7H_Ie>7X1i{Z;J ztL)q 2foQoHc;7#@{-Z zV-X0atCHZPBL4P UU7nG_*ld&B w5NI2%Rv zN1wdrFppqtVv}?AJDyG)9QEX &vH44{j_*?;dHSI9?uh1YZ02JjBB(PkyR8b+1iwsQ z&OGK?N9Q`As^*Mo= $K~0s z8yHreT6GxB)bY7}6s~q|1bD8Cl;6+ySFm$0+Xuj**v9VWi$2yQR7$T-KCO^XOxZG& z3#=ot!O!J(-otRqjaMP?5q{9GbI%ll9)xV|WJ4w6URoaLYe!br{AZ1cKTpc^Z=AW> zZ&&q`#(kglR}B0LH9%gOwbW6Kro$xsgW&ZjxN(i#g$*g*ZMz!#TA0Q$cKJCe=8sK# zl+ )kmJ>foo~O_c>twzLnoNdbFOvufbGwx-@*~urB8Wi+q{Nw&;9Ez924}9 z70;ws&fs`?sC+qe@BBsc MH9c zjTfu!o+AY6I)+b|jJ7$u+mF7_<1cn_D}HS$bY`vLkL~^+Y=$f6hrvvH;irS6QAy#4 zx7@`X$#8a2pZ#{t7fcQ#$ABWRFaut2xoj3q^gIrzmsr;tocj4k9r`1Sx5~eEhhVwH zcF@e&8{K%^2`Tci+D-(PgvPm-w~y$94Rfuw;n=G@9D|(4_6X5l*->4@zXteR#_r-} zHjTN=!!MNJ75vf_*w0$hJ ANpqVhpvC7P3IhQhX3x^qZOd=@GqV}U`wvm^@MAyFCAham)7D9 zbKQj#1^%hulI}9yjcS^qi&iTlHgs$OS0$wt9B_zQxH 0;zH?0TdZx{JhSY1CODh pOxeLnaA=@lv1kj6X3c!m+1b*Cdn75S&h5JBt?f*y zbo_&J7RtecKbWu-G@PJp_+TJ5V=`naH=ZH5Oif%`w2Q6V;_SdkPXf~0hs<}Dg#7LO zo7`HRv`?Vm% &%5#P z8!5A(kdn^FEVRx6J{Z*K{s_%YEKP(qSWYcg|LWZaokpT{oPij07Abi;33QBcpWgRK z9xz@nH`tV(RQ4HuTB)~EZ$uC?SD2WuulAGOhmY!f@B7}V6GURwX&b-M1@V=%lEO5b z;_$Xf52^*c?(ChmA~U&b%|@9F9=&^I62GfmYR>Oi5D0To
E7gF}^b>1CdOARaPDd)c3B-as`&W$Q7wlpNK>yuX@Y!M-1 zWq&N!8Vt2UFZDDGY?Il#u9M~qr|A31ny3l8g$bTjwQ;5&@5Ps m_o`M&5aHOwa4 zymPg{u-LI@E@5VE-}q4WZB@S_Hjy$=z>q}Hl!}G?>abCF{o!M!PSSO2r84)+JAHhd zYI_UtgJ@keh;!!>aNXGf{A=tEE(LM-AmBZhA?S9PG}mY-arzQx%u%q@8q*QuFko!u zJt+>)v1)fEs|tI=m!&?fd>MOvY})VT_Tdn(1Ea~puO{CYKeNMW^OLY!6YgDjQpKrB zXFdgXes@yKl~^z1G_FW|wZ2SB?KpvYTjh_${*OM&1(Tri-*7J_6+W2}V#cY5n7X|} zax_7CeNbmP-crj;i)&+VezEz1Byc~5z<#$d!()g^uWjP-e%zN6gK(sl{He~6l7%rV zF>|8!2E(-JIz`ymZ^`4_b76t+u7HL%4wovu;0Yis*t?3Ubqr01?DXCrKZF4v*WGuM z&5w~IWfSa(T;*u8ti9ZM4&X3G-vizFhclM|CSAK2RLR)P%{&!)+q%=WaRQBU_|mo* z2*-<wTUjlTtD5s9q&yA1I D-g|$b85z=Sykug_W1)j#RunEuMhz*iWKk%3d zR@Vd0*os$t?Wgc8Tk0U;b#>BNFB8GX6_+M}KF8nW1ye01JMj3s zJ2*Pw-7 j`FtT|!_45$ z0>htodW)~OiSqzL_kqL$?pbiCNb-2lr;+~^4MbXoM~+XZoM+?5&(V~xw!?;p(}iUf z+9MA)r0E?Dfc|V-X~A9{_;}>H#03(5P9hfc$h)FXXA9%?#+Ivk{L{N(`7gx=BlIgg zA%fywuHl= q<8hQ64S3 zcLI?+qS5501l016?rwgfdGef|=hu+<4uBrj_c><~NvM`)`bf&xVL`&)EiIrYY@bH( z? ;c1)FE6{y$-#!^ZUDE59NkINeaL^n@t!=76aPN9sDW0@7&{_Wv4tvca zi m}_pMw3<5SOk(#)Es?aS%~Ks{@DqdKOc|Cz2*K*B^g|;WY9R6C9Mw zpG=JAuE;(TNt_Ux2acsRpZ3Jjf+z&W`r=*Q&z5QK)U02`$r_6VKoz^ue>lRR zELKg51;r4{T(b?MJownM5LyX7fJ@D!$cB=E9FB@Zmg;)_iep(6ypD0&Pm?}aX}F-e z{>gPYn!lWse2(04s*oNuI|s(_AGzO&cq2_ZnXnJMlopGX&G|JmZQ(Sw1?wcyg0$y1 z1>s3E;pD0oMxr9HQ(*;EBB~xr-0`-#Y*voNpi)3v=KT`RzVN(_=k@;T6jWWGAiih) zfQ}yXjU?sD(gvGohRZCk0_u%J=WbOPKySWwx?maz&uk*3>5l~n_2y?62F#5E#Ny(w z3h@ABM?;e~cjrIGBxPaq##!prHicsf=`Hi-4QrcfyPEFjxShFa53)MLwfJ|zn8ZI_ z$PD`*xmsuDgy@(R(D4`!+Tfu&t=ml<@QTKbs?KihIqGX^CfzwL|H(Z~k#&0{$=8yJ zgfcz}&y66Wkv!>GGS*u{*W+{UaXR((o#XgvtrP}fN2Nz#{9U|cF;YPf+ QL|Qk8kvUlr z)aERa_^8=c5;r8Ju53xDcf)xopH`{!)PYHUR4HL|fkczJX3X*C64>?5{wa_^DYkB{ zTdoD^v5o5ot*OCmp}CUyeO$xa&d;9#Y$n6x>)&ypm4#0!Jq*>ci)nMVmND0V=2Wly zdP=4m!9F@`s5di7>v2c4Yqo~e9659eQQOj`l`0uT>K=powx8ZLob^BS$2g-*0rbQM zqQqb5)>y!i?=GX^lM)nqgmGSAC-9NV+odaza8|S FC >=UXes z1WTq5uXnPpzM^pw;sIUo4+^?Wf6#gVwFxt5t(H OlN-1noP4vo{ynZHTqM(K%J%H>nHAQb7 ztuxa@wT{JKn`d 1! zCLua$bdf#ZfM^4HVR{%T$uf%9^<@8X$cN|SjQli#d$e23EHW m{zQu zSwo4vV1c^loH$-eDYsCkvvPi}b2X;BG} 2kUUzC1dX@8~^M zc&Qy1ibXlF*r$JbJQPTc7wXDrbvvsW=NfmTY#!VVOqs7r! xJXvUX4AZlX^C#~u AT EjhhR+)N<( zdA9ll)vOGyaG-+&Li;VXJmz5{S4vf3^sACjtL5BM#S|as9gH8<1N+hiItG$H0@O&3 z+d5H6n&O)Gb7Xb2ukL;o)x~}XQP=<@iMgCjG>JFf!l)`;jUULS`mqw6#)O132NQ~l z>xfZrxyA@LMtPzrRzO_huW1 I4Ou`pWIkL*2_+Clbb+`;Q zwUT!=i^0Nj1Sos#EVldFyTb}X&)FNK1vz ?~nY zyz 2j|@U z^D;HwTEsv?m}{y8BGKs9gkp@VvPj#!$by~q6oq%MwsmQ{EZ(NEBVyb#5m;~zDLB?VFPnKsWa~9;(o=ha9HOl#z z0bS1po}k09t)rp|H>cJN-oC$zm}?W!jyW^lcDN5hX0%0g{V7-FVP`c>4JHvX8>xo! z$Ag^`)t%WAwGPCcdk-!h?-hediOBixM28G=kj8{k$CGX9zq6D#l2r_K!jrtqfxF3t z7)aNb!>qNQfMauqSh`mEnDKC+#970V&-!b6^4{C8lpg!9jx4+;!}_I5ricXLDb2 m zThZeEc )m-e1%H1qkw0Q2d5^|dhQ(Mqns-F|+eo{_$??vXX~>Q6W(yf|+s_*i^i z!B44^!4>JfeCRzmXJbv-_*M9E!?(F{;QhFHx=X +;#-ey)=Ztt5Jgr96pI`|6|21{iVNHJhA6G#U ziHQg(DN@oY9U@Xv>gbe`?$ISVk#3~ByB*zKqf=rq8U~~5cl&&Q&-Hz-UDw(D$9C^N zXS?p5^LfAC?*o+o5&SZ1GHQCBH5TFh%U8hidcPF66RQON-OzJWg35`Iit8)Ko4>vk zVnq%(V==cpjWnhEvvR&u#If6GZ&haIo=16r;B%(QmmW*Xt3*1J0V10;OLyN6-!nWd z!qW-g(1+#PdR6}k?p`wWEFP?ykes--1 zb%F0aSENkQD_mCNczg({xjJW2HN{8}^v{~X&c2;(aw~KEEgSn0GRlvykdH&c%E*6j zCMG~pVLd~<)hG9bu`E>Fu`SP@qX2B5J^86GZ@n|RJGX104|m<4-B4D#?`NsU3pobU z_L#;wHrH4}FvEQj*^Z g^TP7i0ldMC7pHBi`Vg zDCG4qKPDu_Vz}>nw2Cu-pEV|nB|BiN7-lNumBUq|V&6_fOm!lQ)mJd6Vtp4>+Sucl zy2;!Cex$2j2RBc$ZC(F9Ot4)hNSD=km}98URvZz3WDhxnIqo5J)gBS*I6l^@K-1S& zW1Nz~_N*Fv+<(!{{hXVLop81~BII4nFS*AQME(Cz`9Em+-!@$or<|ik_|BLlFU{EQ zNsCr`T*GP^h$l|^KkDvZh4;S?o`8qD4^EuiaW28v8(U{A%VK;FO*{Vq%m24E&3lex|hr0ZCqHts& ^+AoS zUkd-X$Mlu&w9|PbsX+`0z+4k)`-MR*o$H;ZdjWKQHR&d?4NL;YPdZO1tTjP_I)} zNI;T5WWMzHABq3JJ$cIdspRi z|_ `CvN290K0+hj)6MUqprByb2}<16uX@)- zZSe1S{c~h0iZfBSB&bbX4z={rO!KLP h1wNQI&5_ITW_w|owucSk1sOTN?Q*%zYGfu--=;VJ zE6{<~q@{n)k+6Pv!b;1SXSMYyP5TX)%7(Oo^WvLcI)J0+nI@Lad5{XRrm=a`AkEyh z)0-pR`D BO{)$)+F5B~vQ3KltI?VyF7+sca#Szu}i z4 =U?ydnjWp!AkH`UNd2Pks;bGe%E8*mq6w3~;4>Uth1}iVKt0F9pNoLp zC8QqyXYkSgGx#jf5lxn#xi18Af&|pTLBy+tEHT&vvKAt7bZHwUyn0nu^R;lSXN8j3 z=Q)<|m}on=a;gkWT_LT1Gf8T#{`{3yO->KyZBFMO0)Z%33#Iy|pIrLZEHhA=)ux}T zJMy` niwV=R|V&l#?{1oE}fARm35aG{Rkn zj1=8p^GhS}ThK9<#0n>$b6*J`F)?hs`UE 92ZTWFF#{W!zu0x-=x!yB_N!jJg1| ZJDrL zzReGSp~!}A KOs zi*E=x#7(bu{p-9IA61#{5QE)YohczOO2c}Hj{G8|k^b#^5OxNN7Dp$AOfa-RD5C?+ z_JfMD?+0;zVaj2ESswu*ZISxkAd|xb$Gc_ZJClHNN=QcXJrNeLj{fg*BN~HQS-~J_ z`=4FXI@F-8O?_u`TE+Vzq4CPsAH{1(J4G$&nYXP%;llt$`Flm`0kj{9#LEl zzm!p}K!bG?+Nl){{f)DUma}wy;q7#)pWNSTy@KM33o`EgXcH@+5M3!!cbz1eqP~8r zwr(b{!l){6@o73j@z +FDHy-VXm{K#I=z7mnOh}GzYHss`l?C;ks6T=Pv<2y9 zB8;<*AkY(3{bd{JBP}i%thBDrqT3Y(g*p*By!lkx{CMxZD=CTYN`ba8wT@e%ykn%A zcLZ@D`ZXx5pIqXRg0Ptf3To#m{I%ewT~d@8Pc^^AC?iNuxKsbt$o;hUg6z2cDsf?S zNhCN_zagJq?x_eZ6WFMWLDqxlFv`x`9$#s4bsoy-Li!@ro~F74-RR3tv!y76Q;NtJ zsg`V;G9B~EyF?4uj}ig!M5ik{A`cFUX8lx!>;H^e$LytI#d(a$kyeF4>@3Vm>$6GG z=R-3BCJb<({+no@7&Q%k^$&j1(IrMXP+P>iej2%_Et~dl^tSKhh;^M@fpnFfIe%Op zUjU@B8P8Sl!3W_p1AvG4i%v{^Br0#~&=7>C%~xD`6R1e_)f@jvqp|&6*wg-CdI1AG z>)AH!oLg)Rk&YCH3LioPKSrGl=nbtd3db*jE0&P(y(nD&cmD^qmnVC(RXu$YYrWe_ zi1dNHJ~=i0Kpy??(oaj_ol$amu|0u@kL5g-nn(=~pZSLmtssADpTqBqj{P8_E%JB) zj@wW$e5}{F2@U_LwBAlcA!3Fl4a0W{h>sgs4Un$a7l7pt(rus1 DF-QY~ zE{;>K{9Y!m=uvhK)Wtt(1F8foWJw`O@mh}v;ZT7h@~PaP p~c2#c>61S=kxtpH>3oe-XpL38>_H5KAUnS-l=68Lr% z&KX|nKU#_ipg0wSJgkx9yoM`PW)eW}iy}s&6JC*4*uIe vxp)xm^s3~*d&%V8dwIE_REQ;kmxx2QOxOiGEvYf6+i9&kz0}NA*kv(T9LO+ zP--yA>{_Gay5bLzI1b^a6Bv)gxhMpy`8==4!H}iTFYR3X?YDSbANDc-0seVN^0};4 zaalcgmzw4QP1-_zSm7zpGedKNYRg$JZi^`v=jD48f)I`rK}VjwdFOIz_a131Q~Q3d zpJ&X;%yw=lPW<;BZn}@a{OK>Q Z6U^HMY^WfFofL5NU=0HDpj)^oT$W zv|fpKl6eOBRShX!mhX?ZczZjb$D|v?rII|}A&tJi%S!!vt@+a?e(tk&T+adLSdZwD z{?#%OVA0WX*sG!9mZq3&;?Mw7U2+}jdEYoXoGm&xNIrp8s-p;t%l_ x0}n8zt*U7fzug7oM4sN;DjFWzga &BG+}=+ywa`KiHPnb{m1Uk&+S`R7_vj{J*C3oD9@}*MLC81 zH$Vd88i;Q(kP3OBzjSwdCPZI@t!2(KoWR)uB&@W&?ICvv*;>5XY{$eArLLCEl&jcp zUQGRS7GSw$7Il2$mpDi=Uw6P!)^wU!wfNTq21~gYn$wxeI#{SuGz7%dtY6y$t`F j}%k8 }yIYKJ$YF}%)WMg4E><#*A%fi;TBCRd_#poVSBzgIpN)k%;?S