From 4cc3a9806e7e76f52b9549978d8c04c3c169c1c3 Mon Sep 17 00:00:00 2001 From: Holger Voormann Date: Thu, 17 Dec 2020 10:47:51 +0100 Subject: [PATCH] Eclipse 2020-12: Add Intro/Outro/Thumbnail SVG; minor updates --- how-to.md | 36 +- intro_outro_thumbnail.svg | 830 ++++++++++++++++++++++++++++---------- narration.odt | Bin 32859 -> 29860 bytes projects_2020-12.txt | 8 +- storyboard.txt | 147 +------ 5 files changed, 637 insertions(+), 384 deletions(-) diff --git a/how-to.md b/how-to.md index 39f7c36..37ecee3 100644 --- a/how-to.md +++ b/how-to.md @@ -2,39 +2,17 @@ 1. Storyboard and narration 1. Collect things to show (and not to show) in [`README.md`](README.md) - 2. Write down narration (mark in color how to emphasize it), e.g. with _LibreOffice Writter_ (see for example [`general_and_git/narration.odt`](general_and_git/narration.odt)) + 2. Write down [narration](narration.odt) (mark in color how to emphasize it), e.g. with _LibreOffice Writter_ 2. Screen recording 1. Preparation: * Display settings: **1920x1080** with **175%** scaling * Via _ClearType Switch_ **turn off _ClearType_** (keep _Enable smooth edges for screen font_) * Taskbar settings: **_Automatically hide taskbar in desktop mode_** - 2. Record screencast(s) via _CamStudio_: - * _Region > **Full Screen**_ - * _Options > Video Options_ - * _CamStudio **Lossless** Codec v1.5_ - * **125** _frames/second_ - * _Auto Adjust_ - * _Lock Capture and Playback Rates_ - * _Options > Do not record audio_ - 3. Record intro/outro animations: - * E.g. create animation with InkScape (with manually added [SVG animation elements](https://en.wikipedia.org/wiki/SVG_animation)) and record the animation shown in a web browser (less flickering in _Chrome_ than in _Firefox_; converting text into path objects also reduces flickering) in full screen (F11) mode + 2. Record screencast(s), e.g. via _OBS Studio_ + 3. Record intro/outro animations, e.g. via _OBS Studio_ of an animated SVG created with InkScape (with manually added [SVG animation elements](https://en.wikipedia.org/wiki/SVG_animation)) shown in a web browser in full screen (F11) mode (less flickering in _Firefox_ than in _Chrome_; converting text into path objects also reduces flickering) 3. Audio recording 1. Record narration (e.g. with _Roland R-09HR_) read by a human speaker ([no, it's not Cortana](https://www.eclipse.org/lists/cross-project-issues-dev/msg14950.html)) in a single audio file (if a sentence didn't work out for the first time, the speaker repeats it) -4. Video editing - 1. Convert videos from **AVI to MOV** (as _DaVinci Resolve_ cannot read the AVI recordings by _CamStudio_): - * _Format_ - * _Format: **MOV**_ - * _File Extension: mov_ - * _Video only_ - * _Video_ - * _Mode: Convert_ - * _Codec: MPEG-4_ - * _Rate control mode: **VBR (Variable bitrate)**_ - * _Bitrate: **20000**_ - * _Maximum Bitrate (kbps): **30000**_ - * _Minimum Bitrate (kbps): 0_ - * _GOP length: 0 (Auto.)_ - 2. Compose video and audio clips and do the **video cutting** using _DaVinci Resolve 15_ +4. Video editing, e.g via _DaVinci Resolve_ 5. Publishing 1. Upload to **YouTube** (maybe in future also to Vimeo which provides fullscreen when the video is embedded in a website in contrast to YouTube) @@ -47,10 +25,10 @@ ## Tools (currently not used tools in parentheses) * Screen recording - * Windows only: [**CamStudio 2.7.2** with **CamStudio Lossless Codec v1.5**](https://camstudio.org/) - * (Windows only: [**Ultravnc Screenrecorder (2015)**](https://www.uvnc.com/downloads/screenrecorder/86-screenrecorder.html): fork of CamStudio and newer, but in my case the recorded video flickers) + * [OBS Studio 26.1](https://obsproject.com/) + * [Solution for _Black Screen_ Display Capture: in Windows settings _Graphics settings_ set `obs64.exe` to _Power saving_](https://obsproject.com/forum/threads/solution-for-black-screen-display-capture-even-after-performing-the-steps-on-obs-forum.112109/) * Video editing - * [**DaVinci Resolve 15**](https://www.blackmagicdesign.com/products/davinciresolve/) - free (registration requried), but not open source + * [**DaVinci Resolve 17 BETA**](https://www.blackmagicdesign.com/products/davinciresolve/) - free (registration requried), but not open source * (Linux only: [**Flowblade** ](https://jliljebl.github.io/flowblade/) - open source; not yet tested) * Video converting * Windows only: [**XMedia Recode**](https://www.xmedia-recode.de/) diff --git a/intro_outro_thumbnail.svg b/intro_outro_thumbnail.svg index 251cc7a..5ee6fbf 100644 --- a/intro_outro_thumbnail.svg +++ b/intro_outro_thumbnail.svg @@ -13,8 +13,8 @@ viewBox="0 0 67.72736 38.09664" version="1.1" id="svg8" - inkscape:version="1.0 (4035a4fb49, 2020-05-01)" - sodipodi:docname="intro_outro_thumbnails.svg" + inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" + sodipodi:docname="intro_outro_thumbnail.svg" inkscape:export-filename="C:\Users\User\Desktop\thumbnail.png" inkscape:export-xdpi="180" inkscape:export-ydpi="180"> @@ -1028,6 +1028,24 @@ width="30.292118" y="-47.488518" x="44.710635" /> + + + + transform="translate(33.86368,19.04832)" + style="display:none;opacity:1" + inkscape:label="intro/thumbnail" + id="g584" + inkscape:groupmode="layer"> + transform="matrix(0.96921879,0,0,0.96921879,-1.1004277e-7,0.556567)" + id="g578" + style="filter:url(#f1)"> - + repeatCount="indefinite" /> + + from="0.5" + to="1.5" + values="0.7;0.8;0.8;1.5" + keyTimes="0;0.1;0.9;1" + keySplines="0.1 0.8 0.2 1;0.1 0.8 0.2 1;0.1 0.8 0.2 1; 0.1 0.8 0.2 1" + type="scale" + dur="20s" + fill="freeze" /> + transform="translate(-32.4086,-19.274709)" + id="g576"> Java IDE 2020-06Java IDE 2020-12Improvements + style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.82491px;font-family:Carlito;-inkscape-font-specification:'Carlito Italic';text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke-width:0.108786px" + y="33.31612" + x="32.672234" + sodipodi:role="line">Improvements + x="10.021723" + y="23.48451" + id="text580" /> + style="font-style:normal;font-weight:normal;font-size:2.6456px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect586);fill:#000000;fill-opacity:1;stroke:none;" + id="text582" + xml:space="preserve" /> + g1cKFcpzAiMS{D#ySqCCcXxMpw?Fs3{#E@`H8ov5 zJ=0aYz1wG|POo@_=N*9|D#}7YVt_!fAdr(xbTr}@h`&QDAvkHYJH|g^^dR@YnsPAG z*fbBg=yuruGKkdz``04&pD6}UxL8K8|CqA}J$jvg1!TYcoeCR~zdy0zJDOuIo21|E-*d0%?aBswC4?jjcrSp`7x?C1>PBJwvb`0cl$v$TAnH7mZNq0!B=*^cRIk z5^U+4Y$m+48V@s>!teAgK)Tn*J+s}SgAAL%gqAvXQ(SZue@GuBRid%JVeok&C-VWq zC$fD?x~ilR>v1~W7TOyumx`ezyV}der36H~_n7eXR!k1<8X6M`e+sS1akj8-J}cT% zH-ggUfJvyGQr83ujp`@oMV&9h3W)FDYMU2zEmv>P&za^G15?Zq0ev;clIm-Qehm6~ z@ihIs>fSjq!dAlYQ#;Y^asqy>t!GEa2riQYI^C*>^V<=R*V~cRO!^G<+{V{BxFTj9 za-m;0cuSdM^llZ+o|-9w;t)(AM}5vkD}kp=mK zGDuVE&w17{eG0Xt0Ghz`L#BD@@L_LDt7?zAKM9njvWwh*$YqJ`=tqOWNlOaH_~~!Y z9!apjqtO!tDlC0sSR~mkpZp{Zsd9jTc-L))6AFhKjrOyzq?vogphCofFo>h^${lnJ ztP9s&MPZw$71{GwB>hkhcP95+ix#2}(1cnmWHl6jl<{w)0)i^cM0-V5MG22X4xUKp z7(8)5i$HM)XTYv|%xET}Bsy614}AQA!zzZwafzK|y>a60Dw&l{Nt|h9`pkrDIzTyW zAGZ@0(r6dDE|;4$@*@d+-6RRPjaiF%6ipElz}TC-C@YPZw8Z3 z#s&ds#xRaYvfgh+V?;Xf);YmH$IP~$3HA7nusTcykwf-s`9Sl!i)E=`nr3zr(Dl)* zgX|!!`c20T$F%l7&9|VVVINF-DX@)0>I@H69>U1^0>(#M;iw}^ZS_>{A*_+P#DTs^ zgxqSKJM06pswyk+P4SEh^bsYTLj_0+UQ(EOe4~^;>!N3$rN@PgXpU+8QVvr`N-rv= z=6>cVbL5GA!5@P~LD3(acS=A=|_vGp%dSq{2?rVufA3 z^G37m0bt==2!i3v6gMQT`iIO5ll98?^Q@6>e~3H=SlpDv$feIAi_d+lWf_M+GZN{AH0 zvnHx{{;-1I5#hj;{$?v@u|sSzwvF7=He9qS22{Fr97f*KinMIy zFdAFoh9 z1QJ%gS@*>I<>bv<>D&SOqfNqVgW;2HP`QaxwFp5D8W2>b zJl8cRrvY*H=qpp4Vn>59t%dKyX8%dEU9v7S2cPngEoasYG6%m7eLzf=Wbu%xr!R$h zL;SXPS&h;!`g>=|My@rhLh1S1sbcuqCgV*u3U5;=#MJop4}#tw%ZAWyHY`1>4O?ng zD=lZJE`$zX(&?BI{1Y-%LXQO40>DzMZ-$c-`+V)ssj7a{dg#V4GbeTfvPWPc!72>^ zNta^%E^Og>()MW+Z2_}c=y}}twBPHbYcK6t;oj0bzrMjX{J2j;DPuMo_4KyQ701pA zAJoI9*s3C+xg1SO0qbL~OPvghRBwn*_D7O?-|lCr$h&d1*-TiOn!hEls|HrE>nL*; z_$_3a^Bz6~C*F##gW;4f;#3Yxy}LQGCaFBrg!?Bl%TvwI+cZp&Y+l3IIA}J_q4;L_ zRBFJjhV6?h(Z<3)=EY+6n3Ti8QPxC|ukv%2`oB#;<+=@EA$DoG!>%S3N#c}K)4Nml z{M3}fGKtB^$;_~na{5$(YYf!SvgJL>I9Vfl#;@^*dLW+leHRpe=-NhZqCDCgUy9G< z_rr2Moy}cQArMXns^5*~FNh-^hc(vqe>XVh*nOm$IBkXJ{b_b!+q3Q!Iyd?1QHMP! z`mFsz`5eu>AFz-1P=wtvNod>YA&RP)-F)}l>h&M3T#L00b-WO@_%ej5Cm#1VYB6($b+EM=RrA_IRrB!^uP zy(m4RhDg3gaVoW$8Y7jgd|)~uV@n6GTl-4dLdvc30wXIFHI!GI& zN!(d9(C~TWUh#DKm;Dfp8Gf2nXgcp>qQzFQNffttK!cz%Nv(#@Pbh~cx~K|~3Vo<) z%)z@-krwc$b2Sn`&u6s_E{{HH( z;>@_Q$L`X`#qD+M$ZMG><<%{9?0&X678LnNe>9rd2Uc&37b-0UA4XW~H?9b_*^pVK z18{$i&;|>JLqP(2QJT<6oTQc z&0vPDD#25--*%$16aUD&2rf>2=VyEZ^&+jkxVEq%v`A$58}-(tVjzX$fszxk!hBCuF|QZ3a_+RHt`iC0P0jP)&muN3n^$cBFV!BQh5yfc_FRM zuNKCtLjkp@#|!BI&w(@N@aSK4<-*1Wkn5Z8V&#b!t@ThC(i~PCv!_|w#V*zh?Mt_A z_dPxj?ltSzSC=1DSNAT8vM{jhTR!83e<5wS7zp$qSQ{1=_8+YMUziv87yACi-yj>a zpGN;c-tgG5h*TB~{|8UFU1#`)ZZH$D+Ts!>?RsT)OBd8?!tI2`L7v{*vy)5iWH~Ie zf#!{^40oH5zylS00hty0Tv=~&Nburj)GyqWuB%>fw5~<#nEUpMx@<;|PZag=3e$5w zjmH_B>Ol>VQU`nh^cD-kRFrr>7mFl~4-?<{)RVyj!OODUXv&>&QV=Dx&&-RMaO0PcW^VlP8-j>AC`^yNmRcLB zFZMJ#ZbLJl35;NUc_-(3&=nb1+DEl9cmAvnFT0W5uEeSVVfI8h9DhthX~=0;CTS#b z@iM{Je_;65F5%^(43LgD;IM|_2In$RhB|c@R4CINAPZrb^Lv#(69Kmk6Of*iw*#w( zh_}llAJ^*lYGPA}!q`+T(b~UStLL!m8?RTIKuHobU&vm!3a?>!Z(9vG*77Nu#GKPP zJ1JchP4Q!ZDMU1y z!Fd+x%0ox}QnBB$z?foV3~8v=rI84?{^C;#{EZL*7Oyhm^$-jMdWZP`36Xyz1mT}! zk=f6m-)+tRJs8z%uQ+V;pm=UnN?&DwiB+h^(0=Yg;HOX&p{l>3I)$!_o@0_hx_nqc z3m8I^#=#fN_uaECW-e4{^mub33eD9}Ov!DdRqF&)zetgM4r@wVjmroq-x--+Sm~_z zA+S$6OO7yulgB%6h`=}{b=xv~x3`n3Tw+R?yx+p4h0tQ#!$(D;Q8~9!QNeGv#2mz( zU(71guG_%Opy46PNt>xkSGc$LQ99??y*Kjf&6?|lt+cs*uC%nY#=S)wFNfe}r~_Z8 zLf;l(SlPv&nf=m8&tDb+xTm+*ygH5|{+Z{JTAEN_k`Ml>0qn8p=#=kT*|>6m4zmGn^v-wet%h6wR?7U^Q5zY{*1 zws`K$Ezd2v2_5;-jz6O)or*XP??T=N1fT*rAS&5L$^0k?(=x9WEq(}$s66foZlzrXF0I0;J92+4nso1fl`n0wrOqSAV27&9P^$u17}o|o}}fmh=Q zKlg2#pl499#}wlDsvVxai3woZ5h4OaF+_h3AmFni`v2xs$seSp*Sfy|sbKCWE|RK0 z#EFku(`WW6^91D(saOxfEKBU2-bCXQ!=vI#G`C9u*T-DB5(* zr#mk&MW;^a^{E!|K@+?rpJlz}20~m`=L19uF_wIq&&EOfawq_Wu@pp_02ZQ~Of%VV zBgjJtA0y6?!Lf(kH@21T5Euzqynn6V+JTxwn4DOZBTkY_w$PNjHEaNL_uq=MS7&2F z0?6p!Q@c>nU6z`9=EaDsID(Q<Ojj?(tdQw> zupz8V?g$U@I`Voy{{k4sIQ^i{>QKwGCX2y2@(K$`=Sit@#k9gy*7@qQcwBZ8hgGO$ zS6#@TujHDfd*9L!sFM#tp>2v;FmGXWHFKvvvO0(fy}kW8l+F#APxVUYKPBp@R*9_V z<-^kzoi{Q62q(B(WiA5*m$yEzc0-niVbi}6^QH=7kTck$i?aIS8!(ZUnUa^M4^SaU z?f2P|Kt)5Qutac=cq(VbLfJ2UsUdRRD0(hakfZ`(HSBtJNOh4NpJyrgrGBY1$h_jP zwn7Z{b3#rEZxSlM8nI7{7rWiMALz-{$HSEduJL2v{j{zNNt}N*5KV?Agp2D$TNWoRdh>tbVTIQjF8e?Ra6)S5)Pe$k_-MgSM!Le7B)}0r zT3=E56b*b{iTP!<;=yVC)m5W~G|qsMute1Xg)Sor`ED0*X;9gr^2?Z06j}{mZTjH< zfqO>Hy!xHN;!~2lphAK-@;P|F6sb~IO?UtG_)<6#giRpVdO=jN!vZ#a%29wDQBo)2 zM#Tu3)@9$d!?%FP@0seR(-A|d`X(%D&fqQQ7=qpwd~6BwsP5DBLYPe-9=A)nI_v9% zkv1NutPb>mz1iodKV~7t9f{F-L<1Azqnrx&?mw$?l{%*AoQLDK2t*yckH&ZhBZnLb8Qeidz^J5 z-`AQi;uiStt&p}&nA%pmWltp5#NByRUexhezGXAMU%K-=2B+Gy0(f_>GRPyM6du%2If&S?@fAgrSg_Di3tE zubYvb94WqgxcEL*4EaZ4&S~W|K6_1q5k0U;fSIBXZGjkLS$Y zt-PbX;=0WMpJ&vU_G`W_5LSYqR_0 zXk>S1_TzQp<85PiclY%4^yB^F_V)Ju{rztUeSCc6DBV_pK=^Vp;-adq%V(aUi3CfY z>ZtUP17&7zEv3f^0)_mxVh;$_Zjh<5kK*jElcU>C>M={2NQ+TB=rK+RA!j%o4`8bU zbZDsL=s*UzEEi6h`-6UvXXx=qx%~FPRdtDZ*b<(+aEZH%t=ig#OXtNyiE;C3 zi>=Jc@l{(R8P7%ljz@W6(X)TZQS#@w2Fx*#;0p{FkMs&Xlt9ch}ok8QcCULdvCwrZ* zgY5?I_kJ(H4ed9|cduJgindGEmO8n432c*ByV@n|4)>e-Z0M}t`#Dqf*aEKfsSV%r z%H4Y7f9kT8{`8OZw{YshWYvD%vgS+u`tWhD2q9fMwwLAr$Gc>y^134OroxZj7r2pQP3b_yWr z@}RV{d&A>`7)oVrR`!xs{t;VcqrCto3lO%~C*#iLbfVX#SbHJryh~BZEsG;3Ngk72 z^e<-FWzLfHE=;jiPOMs4LK(`s#%zC1O|WCSOC6ga*IfyUVEg@1;=T;m_ZSCrE%TjH zlx$aPy4!L0EWz#A)X=$O$94Y->%>mLlT%AIjB&|;Mv+%_wdOVrc)B}UU*7_zPW!{3 zPHSoFq6180-X7Pd-t9&Y@b^pnx%Mk{lRI2qj_3UPUd%HUhw01nmBZgyf(E8Ms*Oy# z9MU?Ub~oNag@0Xd4#iR#wF!m^2&Emu|k{ALmF@CHq*a-+4(-}4vXmr@z+FIylhHJX_tS#Non0?t zWVtrGw?fCCIP#dPL|=*oxVyI$F&VP@i2oGvK|wmmRxVeU#oqP1ns5W&zfEtup=@=* z?+*<@V?5TMjfdRkWY*~Hd}HPZtE~eK;K9dv4@J5t;8BEb*(N!??~DkFLltGB#7pwi z;aVA-5!|5D_A9z+eu6*ikW@fpxn-C8==ZG$eA-Wyq*$|Gk|tts@h}vdE->@*xm`mG zOnSYk++~l%2g_mLjmrj%K-L4evt%n_@vysJr+43K zN2C%DG^lS%YmplX6LeoO1#X4wrm~jrU~c&d$l<(oqsW%M-kwjF*XvI{IA6r|Lv52+ z+P*W;;4pK-qS&eS0axvS(e-d^?bq$` z9X>USs&=7cAoYfic>Per8o#0d3KEX4lL!ljCFs2w1gt_)cN1O4!fMmCbA&rm$(Xyx z7<(t-6&(g;YbP2wqd6D_TUjaE>*3qteMexm%a3Q1@1w79gYw#x$mPHWxAKRJ5sHsu zS8m^}(c8T>hQOr~gMCM24SSMIf&5*ana5Po;ivIPrbIQE5akobJQieWi(&FU?dmbq zKB8_m2H0=bu;yb?(#uk*)%R&Js_M--v42Cc(H3n_F4<>Rn1RP;XL^8V3Att7kMC@A z0k8BNf?VqOc zUfo?cE*e6)Fy>s?`V#u)_cU>FF>y}>#he|(Mg!K&_$y}9vr&e^gpw>%R0r5VjRKmP-4rCg_Z)VJIG7LHB*6rleFk+{07m8af2SKoOsy zYY6+?V{iOG7&sW$=_#E2%q2c27apUqnm1@P7qMXXb!HdeKcBkm3;&82iYSeP$-9%o2|1#VCg9HU4WcCvf+w1@cggH3d&t_HYiT|G zRFaC6_i##H8~lc;f>bS-_Oq zAM?|7JA2~Qdw&92Rt7ZW7Ihlb;!65mZpnMgpeSr+|=O^D0 zeafmV(=j{d{Tuw7lbg5pC*vz9X=1zh@Edt))c$u2Q8lkmhdA5M@vOM*rIgz?|PCg`52TyEH)(>_@_D7 z(km!f97?<;8$-q*>?SPTwn7Xk;NkHx6S#YP3>|oL=1Q#4bN5>o-fJOFh=azh99`#k zGiylFYku~5ia%pcs8Lt$15&svrg|K4%P_-Pl!Lc+o;)Al{VF@(ix-4$mKF?p?}rrL z%?HuN43)pperDbx=*AI)Z-c}Cn|kx`=-Un^f6q6rx>6hZ?S2FiB}}?2BuxLZJB5bD z^S{WwpI3r|_^A~&>D3=2D{1n^31=k%+v388#OYKE452fL-L8o+z%}#Ev02#m!l*)93@iUVH%3*3$+kAd$Pbw2}zyiW}&g^JuD5(UMnrd6?FJEMT|O?!6Zl zins5%Y@ONmp>5MjJ{^pvzy3~!TqD6Qs)ExEga-;CO)7|Vcq4XPd`REqVjqi)^G!w* z_mgvHVEd{<&2BG5LI6#u!)!fttxy57FJrg^%^BOhn zhQaOe&Xb)Lw@k<&ep+`JLx>e~1&6K-V^cO9L-Y9FtSmqL*suvErpNiY$)YF(IR$^1 z{{g^^&;W}$CSe(*nTBKf0!f-hmlX%wd zv9ptmp>@}A74Mp+D>DQKE>0#m3>0omH$I_tzk^{qICf1;Yuk{lJ)WC|2{P{_QAC;T z!{PlMcSWqZZLUnXL~rt5Rjp)oNrkc6+$zA0h;CHl>EzBD8fBZaRKnH3gcYZT+`KfC zqwb_Sipt)k^jywwx9)Z`)`4Zehc_%9J|6~4*FhM->WfOt_i_k^8Lkd&$o*HxLx;^eqW|=)vygH$%M?Ap70vm25UiJw*PA%;>o^+mNlBU1CS<(z7p3@Lx^sYUPlyhSaIcR_FVZFqq2hxd0m#iUanm?qr{axt zh1b;%o-%xT)2qP1s~#a>n%8gs57flx6gT?#A4vA5P?$el!ORMBEO~Z~gpdim88GHs zP$&|98>U@1Oi<^rM(d2iHI@W(iSi!BaKt%s~EQx@|a znnYSE3mBh`o%)Vb=7v8pAB)_5OOd&RMcmwe%BMDRDTvzpnd=ZRGmT|^#8FUF;^=n8 zFOs%LP41yE90zIMie^5d)}kl`mErvK8mlJq5oU?s1?L+U#;&U_D^1@#>d96Q&U=a0 zqZUyg#Ue{5rz+-7XhfN8m2?51z?&0yAkR8c)kSGzRBAz=W+fqbqNrYDWPI}J8JR@F zD7P?yaU_ktSJ@$TyBAz(b~}f!8e1eHIwNGjf@xi_BOoFmBp}jXd6LT$;f!Ndt(Da; zOgR2=2hBzU8_;X~a=d$OpsU;7(%KHe$)>0K1Sz5*T1_kQ%3+_18+`|CrIJKN(zrxs z2)+=15K_PEOk{YzUk|*Kh@tA->H?O88U0SAKOys*r1R!DfHm8(RMzLMz4$` z<1j*7f`X9&9cMEOEiRj07D?5R;;XjraR7oWHjz^t=jc1;v{UT}l4$}Py7~ygEl}yH z)qN?}=*U!?yK#&=p5NfD?`(@HJ2_rx^U{9DF)fB2{v51WoGcII!I!}tsY&9WUJtuw z(*g+2IjY-;Nh*wtAOyKsC3eg;&X^kY|#t=sP4)>+FKTCZL-nFqGda82(yGwRj zN5joI#k7PLw-G^@GufIEDhv2vFy{78{VW%^B%*YwZ!^A*YScAiA} z&NCE}Vyqb<91fq0SUcXO2_*?NwVij%Y%T!BDt|^xzvWxj<#QQDr+(xMJxO2Y;WK27 zjU=wBD`jIaKUb!zBQ=%dQGhy=Ipj9#XY9NMiLMMT`kN9!{yxKj1t$+Xt*=zC3m)Um zs{YBR52xX9MbvRC6nNua|8-Js@U&>q3S4wo3JUN(Emm$FbnDo8p02ky3SIB6??_Qc zDi8_2&kw~$zFxltJ`iULxZYCtHptQoab#YMZ*XsO?0c6y$P+#l>E{X2;^-Xg3=Lh3)@q^;y~j$1hS?lQ|8 zJ9e%0%qJTl2IqTdjy<4{vRx6gw$zmq^}!T-Oi?_O6->mts&&>BcO=1TSavA~DP(=2 zpa2I|;Vz9Kv0;^Jh-R^?e&~`WkZeud(MeC1tjknm-Q^F=67tJ@b!;Xj7%t+^c~pJf zu4!1Pe%3Te+)cI1P{w?lB5|y=+IWEoSt8R)+Y}ArCO@%Yv;81d2wXv`({N~~oO5&E ztu!(Yvx>F?vnROVWuT~tW)Nm0(8|;%N&r@fa2u80xRmdAsc`bd8#QbVDcFYVw>Fd63g_mbwsmsaF=CZNyq0Fhmb*ks-vh2 zK7P$PV+ojD7GXTCwy@2*O&#XKFjKbDzHBN_*KfxR@2^RcBmapJrw6vw0`{OZRZe#E z6FKmn!@W8miuz7wK9jf2^Cf&Gvjgyaxi4R7jJ*8q!Y%Ci;wnO;USaBOJS09DCZX?W zfi^CV_*y(;uu$V+w&X5C$t({bUE@!VdP92d!QNKl&& znxQ;si$C`Z9jQIjQ-}()A^~V;W}NZad*^B|)DE@d-p}pc#)((kQxmMzewB2zm~ngP z%acA6!I#tcbmS^gN=k+`E*5>WR<)^5u)MJD`=TGdo1j#`=$*+@7J1p~5~-p1lE2Y> zgM8ujbbgh1@jkP&!wfu~ukEcAYvkz39+`cHh@Mgkfn<5!H)VSp+W=l>jBd){S*uNfSI}V9idLDN1Wt&r+sH8+S$MHKZpmWxlFReN;0wn4UiGr1e0l+bMYj&sqaUVXAvfk`39?|O2qkSKDcD(0RDgwGFC@%EpM=}ht{aMXdN+H%9$suAcT}?{k73u2G}1&G`+(I| z$m^rwEFu=vVF21%ETlU{XZTSH51-IIB@3&+#v;#H(MjhOIb`g8%P=Bl>8eqd& z;XO52B5=!v%S6&zCeuTiLwo2+Yr)T7YKycOcfd)4W3}>Xd{u{t(~U_SO}`(m-=%j? z<>R47f7x&TK1a(v_zq1BcKg&URb2Vz>V{6qoZO+hBny~fHVn%;4K*|{UCHJ$a(AfK zPS?op6wuj>l@>5@v!cV9znGjNW5P%D|7gAK(OP`@6wEm@cEFVjf0!~4PLnGSuJwQ1;>{KYcny!S>e~ zc5O_s)vM|T+f0M7q5G6nY^hXRkN`%bG8e)+$AM^)5iF0i**xT5Z<1k4GW)QrpPYN+ znL4ZnvF5~lk`~xHq6`*RZppu1GOF(R9iBy1V+SZ_Y(s7%c#@4rOYFxa9x74hq>{=l zEiui7j!E949i^pV@Chg54!30Rmn2uu{$`D*HdMeh zeG|ZGB03U-?W=O*d|nMdC?HLa1VT-4N2lR2FNOeH6aC%d_mE`Tb{AqFG&u;lEZR31 zjRzDieM8CY<~Qr~xAVI&-oV&^8Dz~QE3Q6$o=4fuc8N&IZ~VECkC9MN357FmXTX!| zxjT-=3&ZHREDh!ijfI7fQO&hXkbj5zGl&lV@V)g5a-xgcW4uez0(mLaN1&SpHwv?T zL%;UKacJuA3A>qwV+ptAB+Jd;#l$sOo5z5|3@u{{34Tj`R1OshRw8-&1Y>^JPZfRW zmS~y0grMErEPmKOOlcFigFmUIK-rCqe&TaqKZkKd=q4U)R~YOcIz(}a&sffAW(g~5 zrJ`Inr-9>%+%oPB+>a4^fBp$2jaVw)S9xInNp5;dnHnLv$r>*Rg&{oo`kTq&YX60v zxp+h47XtqB(=*awv$-$$7Z{Tq#C)Pua{ka9VF$=-8{oEeV9WL;x z;Om)PdygOB1gXY>GxSmF|1hOwB)*DQh#C6+AGTesy{IkNzcnXYVkK-qNhKYz&zOuL zt_64H<8RTo80}`UQ!#8E+hAnJ-)hKz(X@3Z`*~c+SUpK)34u|&{qm2Wxt3Z+Fy0B1 zC|Y*QkfQU@ECtuRf*Te)@L?(%9G~?(wrjgfirGc|$aQ`$q(?quiX{fHm9>Fb0$|*o z^a=y3q}A0B@oc4S`)Bz8WQPkVg?=_#`fH?}yz9pJe6=t365~r;ZX@s3hWy}NRjv)> zqhm1gt%bD#N@#m+$1KM9?t|da9!cs=3rg+3a!CeOc|&O?Le^a6mzo9Z?b+x_g{+9i zJHh9gn`+@h#0s)FFSpaQe%B`pO4AsfTArW~eb=JOKui&IYDDq}nhrDsF3Ra1IX7QL zer(V%h2N2?JxpR1+_kb>*D?;m?V$TEL|c|e75-NQh21xBq)caP z?6W=t(R(IVcs~v!!M#&=WFcDJQ&;Z~9ue(`httuWkoYpEZ!*?4@RU=X$l81l7E`TA zt@%aD6PK%lhkiN&TzyC*PKt@-6`WX)6t1T184+QRWR+LoTnLvGrr(H79y7~j3lMTj za4t!g&dZX(7SUAv^w56`BlnCV82*A+=5n&erT4upDl${$L0V--7^J#{tDYDWlJ_qo zQtDkN7rdlYVQ_);T($o3{3k4w%G7D{`P;8#lUE-mn$*oDVBiP)>o;uZBdhEn6h%V| zvL~L2YANNAW+e-U2hy4~0g)R|eewPWC@s>+E_Lcbg4J2f93QmAv`0KOs5_-`#2a$K5oz1ga>em^C zFgoQf1;hP4fc||CXrH9W@HqFVK?3YL@i>eAbW|bQ0xnFoCP@wo<0c@uX}aqT#og?- z+SULa|>|QG8*vGQ9qfdaDONO0dEdrDAuTfbT+Ii17b-_t6~EF?Z*Bv*a4i zQU(`ASC+Dgu0GiWuG44Jw`Mpu;`U9fAoTJ_f=MJmelI&~xP z9g40nCQ}*4n4wliBY8ar1{&aA9L9oiBCCh`o|>~?{P&i5%#|)qGKQ~hyn;RD5Goh)p$p}aJMd=*K@E>2LyB_qzP*j(=v#XhC)|jE zT$kgjY9rJ4E26nM(@x=ZQfr#N8RG~kC4K3(r~B^`k$(&*BKpdVbjbQ+F9Kh=`#Mij zQCK+=0t*by2y08UYC&6fbYwV=a{(Bfr+wOuwT(AA_klqD7=USwZelRn@DB5 z4)DKtWv0u}2IWW#ClOi9;gA^$_PDG@))*M+bMTJVQBk|p+iRyr?1g^{V7-e$I8V7_ zSrQMOacxGCg@DNuk5@ae^2H;`DfJB~`aCGLRqoy8HoxvRP%==_CA%90UK?fiLbZp8 zlho#4X0WRMr!hJuh@SJq;YG?HrrSMcv&+1kwlo)hf?zIK5|p9cxe zJFs_~vIlk8$y*!C{W9;l?!gy(kuTi-^b&c7SR-gwgdr$4EGM+>k2@L%P{jrfm?|7NSl-g?m!|D*Zei^Te#R>t~TL0MmZ{pQIH0A$kzft}#Y5D(sF8?nv>wi{u#8v>*B>(KLTBktB^p_q@ s2?+vW{*S?5shl$w5XFu~@J9I8@PEGm`2S-_#2w4yO$beE|Bv?n1Fq@K-v9sr delta 18046 zcmZ7dWmMij(D(^oxVscBUff-ZySo>?aCh$)cc-|!LveQ~?(R_B-HPq+zW4t;XLs{v z=42*0c`+yX%p@r~fmrv4L{XN5g2o1c;6Wf%wU`7HS*ZU+5-}uMQnn*9(*MJhR1HCv z#O#Fl|LWU=AWLY#{of(~W8QIwPBMf*{r^uv0fGI$x+4VN|M6k}U%3at{eOHo|3@}x zKng$r|0yb<|3^doPj_+kvNdyI^0c$PAhL1TEi*?-Mx${q2iMf@#EMDGoC( zG6Fd+%vhcFh-;s$ek*MhtVjN6nnT0&%4!OV!$)LHb_W)RZXJ!8R|KWb+!9-KA0Hv@ zxCBvUTj&hT-kGOh=8vJnb>k}Mxjgv;Cr&57;Qp?cXh{^b{!%zj}M4 zf0y8}+i>cnhg7;t0hCesXMa>BSSLd){xNxJk7cCS#QE(IE|nszpv&_*<>KsvYa=L(|i z)9Z6)P%I}-BfsCS&16i5cP$3lUG5(Pi3yHt?w~)$E;Y{WDL~quz>5N>0^?R@lVcWC z_WRxp83Jd6(wp4#Rl)9usQy?!KFKFBy>=0~(T1Yv@Wk=~s8W^L%0O|u9l6aUo>+@! zNF`K_ZmXO1QV&gOq6PE({oW$)wskrc*&VTO()b|wlE2p+1E&i*wCjT0IPb=o9N2@N z1^fHMHZF0+1C}vJENbusCUU_%%^y$!{w3LFw>dbr{xgOuqk~Vx0_>jgzEf-yQMj@) zV8oB#9kmS?#4ROLSFe!(zWruzjLQt+V-L@3UW!NR3ftJ# z5L@s|(W6;?84Y7tRc_3bQ`7nHIYn6r&522dvvFzAz|dSDAw^1qmyP@*w&_SYe z>=9M>d{iTkZS2&WTOti1$(Lo5fQpU;r{SxMkE1w4a}dhKVsP;0ktfQ+sT3FgRe%|O zr9DW{Z;p<{#@8$kJjHmQq`HhpnG@&z) z!48qVWJIp`+(FMb)P!RtH5BO~^L(}Zw!zC67hXnv6urUjnd*dm-m1orOh z`GB?Y!0zz?_KR*hh6Mip zr8IkmDKr&t`4iV1!dQj0nHjD+E37z36k_q~6Q;$ciX^Efb|n10EO!hXTARw7^*MlP z`ZS5sF|yPo66+$4_@jnj?3~bACqm)N5O6#<3<;&ELfa_}RMe)UZXoqzzowWg(x*hz zU#T=Bw85Q6Lpqr~9bv}uth`8zql(qOKTTNky|w-vy2L3H$L8pfsq`Ts>k4_V+s6tvbl1T!gLg;o`Uq0%UXn zBeEJa`jc+?GttcHzbcr+2*}g9F=${?{TJ!QJ80WA18Z0ie;AXtOZYf3h{FWN*t6(Y zz1+S_a991{jNOWoe-G@DS~bbheC}Ayzg_PmJQO2ycKiZYkbSVn6S~*<2l-alG`P*K zzw&R3(>lc^-#%nKpIqc)PLjOuHNeZ{S?>Y!{p{4d%HpKJIB3)x%08KLc{?_B4hkEq z)b>-@Ki_&3LvfRB=*3A*-e3%O6Jmh}p-Zft(N}~JBEj)~0^N4+oR>^{dpfNWa#J#b zOPnyFLnbX`z&Wp%-P9TuyJsdsG*?h}Rni=nkL4wbaG*7DYOg6&&t6Jz9#ES3b7?S> z5^ivn$JiCW_34}Qs&asZQ?x}}I@1CjWF?%h(9Y8nmn)>lJ-y*o`iE%k8Q;uOxpx}T zwZyFijI#9Wujn>g2L5MtFlD7*5djQod&t+nauN;IlR0vd4JnKS{tb`ltz0TGEV@dX zkFvp|zhfExQ1VI$5iiD`VgmZ?gLLI)(l<$`E7t$$I$CgF2-c$Jy~7^^hOQg~=0>yc z=!HCB8LwB$r8-J^emZ`dybpA)3lZHU*LHTn+Z~B-e|#A}Wg?P^U_Stlt%mw-3}-!C zGRFtq$2`g1Qy5O5Ouk>LF#G18ZQ8%^@z0F-cyt~4=!LVwwVa1kQ~@G_Hsj}psbO8G z9HU%!L4@V3ka||ur>idio`L-X$u7bZJ_-6+=*(Y^V$MZJJRMVEd?menT^Xf5VmVj8 zzX^`5ptRde;J>wHKTMq^>A0BGT4>GCIl2JmMdWx?Iv_JSwg*Y+++V1s+P9NkBG*-Z zEjFT3XTQ6QU@j*sBmhB{+R&5q!sMH$NYz5byGN=Sc)Ug#IE!C=-VjrO<$R1?A<1qq zq?%EHyCt9eka39BV!fdJ1ztv>*4~R!^q=yp1Py_qFqg7E{E3`twGEQg^zJE!`v>Zb z8+S@x_DN0dQde7L zF!FmV*xE&9ToSDG~yh=>w4TA>umi|60oIM?_2(nv=prNsFr-GkmRtoV>qZkSEmoTzB z*@}RL_DK!*2%}iowkw)tzuV4<{5x^~?-CC;PH27d*>F>LC%;XWox&UIHiwx|C*;D5 zpY08h;?xg%re`pIl#J((XAUH`Xe|Bk-rSmJ4N>En#*z{N3rRbd^e$L71w<@TSYnZydxdu3H9sy-JICzakB$KlLn6^w51p2?38y+71f0+CKKrirrqwjwl4ze?I zHU1ywjY*P=%Vfb0d3whQcSrh(!Gg<@S#esRLC;y}{)M+$Yy*=J-y-ef71JPT6s+Q& z^-6r%wp`-rDahHEKr3q1HwZu$^k^NUs5bF%Jm_?sA$(`@CJ}$ zl^`y85NTIzhgd{;M8Q$$0|*0N(MH|cUu;h+iXI30q;AjuIB0C&3^NAiVm&ACkhm0b z&)C#H(-SOeP>wr1x3SDNv04At)AF13DeaCy0_h-|ViuwaJvheuwY*Bq|Hy#W8mV!6 zY{C3GVhbdJUB#%xBjg9kCaok7zM8dB@_dI+R4yPLatTlUsrLCm?(q|^;7%91@baZw zCE>Tl-ne5cM`4*#=TC~YcdFs)HG>4pMWR|_hd7%6CQpZK{Y3>?a~&eMsOvFC&Wyrh z^H7S*xV6ff1CwL7D09MSQDvN+#bU^(pF5`{%5sEo@Bp2|$1wy5^a1t%36Z1(bP_<% zWsML0r%(_1fX^6}6+s#$v6$#MEdp}9x#D(km%k#oS}GCh?X>|j^blRTEGCDo@3y8f z)uHFd%jp?8E;Vx=hm_Zkik}s~6oo_aoOrvKzQ?YWrWV(713z}b{bH8lcqOdTE){)v zx&=zdZsmlP!^_3$qp)m~ZesO#t^+_Yio9@*p-rd3rsG(>A$qMGyJ@0io2{XC^>eVb zZjA=r(ZS;9*&;%E zrQx2oF$0}<-UC<@o6Mwhi^}tM@lu;k$25m3&9#TE&+QkPGbk9_U>U3TK?VTJn_O8@ zj{AXm@$^OGr8;du!o%3aee6TO95?B0kb-@kwq5d4fd1PX|MiLO)1S)4@rEehxiI!D zG}3~VfdAN=_LvdHR2)J+#Xee=EH^gRmM+Vtbr?RD?484Wlr|NEfz;cka#Q7SD?eOo ze1KsqqS?J7=I_!HSDwww_cnn0xm$mU=`LzBm1$A7+Bt>akb?y2I)O>?cPh3=BAgF< zvF5A(=*4&Hj)*@-ox>}s4|iFLZy|Vb(o60OlgjCH3dO>`byOuKA>=U!?)DaQNO@bb z-dHy;UHdsK`7S15O>&tbu!}iez^GMb?AJj58Q}%Z`=GFDIJTniq8vbA$cf7LZ1|%4 z+Ixff*PYB5bBt%q`Q_B&Pw2-~P?Q=FyAy{;XmmLjU1nDmh^R-3pexvyh54Yv@p>X`ZR zSi;rNW$Lpv35ctcKC36Xg~0+zg4Xu4|DKPgxi%~i z%9{HwFh}8Det} zdyFv(=DqMQhAO3~vkMD3v3FRonH5;E&IYZ9p2JA8_v?(d@_a;8Jv%@S%Ws%NA?YFc z_0F-Fi#BQ(yb1%wx&&MyQAi|C%~(9{;sgg;mpl#TuWcFI_h7la$3AC1Zi`v(l$tY3jy_6eXoFkeqQ)YkB8IF@R21FN{*Jcbn%CV>WgHH8taF zqlz~fst(Sva-6Y6B-i&J{H+$wY=t#%zkVm{s@SY_;^YJ4e}4Bt2_X-$?~IYMFTD$uqsA08+@4TIJINYGRK=&)_)!@OSa8p&4xPq{MKRSbeCKW`GWqbeOc{i z?b6E*y6vH=3}BVT;)<8dloj-xQZESP(puBxIc^1?O6N);2luv(8$ssbCXsp4>=4Q~ zmHzX;{Ne!6vB6NdZb~2pU$ab1xpwi*ko}8QNj)bzk*TA+F&#X|B_&)&7yk6;mc9v_ zltwB(oW06^qFmIZtNQAGrO(p)f(9aqfsa^*B25{Hxc*Bg)V1rcfjd%0i5SDjgfFX_Gr$@!&1k_X9lZZ%qV@y_=Q7XX6SW+?ROiDe328Gis=x z=#xFMo9o7#iax_2mj747_!DI&q_GrjwF#wCKBM*z`p?#Vm1yRaxrn_iFaJF8U$nIW z;ThP?8h`$tss)>5>#4&d?i+ksYuQoyN`YJ9y0mmo1Pn&&_PTMO;Kq@Q6C|4XBC&v5 zEm1vy2D+)o@e8%Nm0bG6=M9>eQ*$@s4GR;C9K=5e2jhO#U8r2fElTtUFH1dD2fNJL z&`E?V8SdcQ$|AXBSyZthth<_=w<&k)4e(3@!C2UO9pMu|%~bflAHp94!w7*?do+r9 zz4fE_nT8Tkn`=dTlec5mH1A^O&pI}n#^pc2M1g&iWg68f zll|tvrMGQ73Dcr<&gT2bXWZ1dQ4&^*wKAc6Y^wQpkbi$$pVddzB)>-~#~&XN(a^Bw z`Pig$hc?_u`N?eh?-?lgD<9eOHPv>Eai@f8^GjdZnawBEZxX?QEfz+GZPZ=AZ!VdP zh<@F_imQ%%{7Q#Z&OGdH!nOz6u2#p`90WC(uU^AH4~6~*r|@t7efxj~fnZtwe`n?Y zDPgMob@J_Tqy>Q-X_J<|hyw4*^6Ck3f6VP!G#sUysC}4k>_Rpl^^rkP;CFiv9&k4hN;Bg3{szGx9*`MM6bU zpyD)8eKx2vTL>sC236IATFOCf&7h{*?>Q-Y5&rfOLEfohUMcC|^aS6$7@w|Y`QjF! zsn({g!LGd@)Z8c7Ujh2l2Ab;t^|dk$xADz(2o2Tx_4n8hw7SoB{Tv?zEslcL7eJ#! z0@HIsi=%=Y%Y26`puKVa(>11p6@iBZq2oQ!<1y$1xCNc;(4HO$TwV)3U(i0Daev$k z&W)*#{;`=D@tYg5T%Pn1SAIXh>9YWI|L#QrfTR(4?58w4}(?)YR~l;*gBGl&s?T?1r?wsEmTFxZ?8Y{JM;S zvh-4*F|)3_FfO<#HM}S*r9LaRAtyCIr=Y4JrmP^nAwROQB(3>(d|7E}NmWB-T~%d$ zYhzVeT}@p}ePv5aOZxA=!kYey=7Gwd`R2}no`KSizRv2t#m@eb_R)o&h0XSfzkSu2 z{VkOP9nG^{l>^;$&sbGiIvsW!SS8ZrM=P3hvkjGvzrg=JDXFx=aYZ$H~t>2 z9zSf}d>*fk?rknVY>poPojBTCzu%vDJYD&CoqT)RI5{~vJik4^**Uv=zP&hlx;y&- zK0f}-C_X9DLmp_V$ zdtD-0n_q6Zipza$q@<;mRK0%mP(GhJjef^-B$6GmNva@Sm@IZb`Odiv@>Do3oS z2U2#VA%;@{kyKRU<+hOfYnGD!m=g32^9nM-l&tIuVgZVlG-34u>j7*BaFVdYk0e{4 zy}3+Mpen1S)SP9GN^WMWw3haVm=d#>tUpKjZkjU2jK#(}^Yh;vPrO8c0R+a{jMBUp zERHfpuFhwby=5%YCZBahL#5XgrseinB|bcdd1A_wwZCmp$aYrSlWtq93x7$&)`Z;e zzLgv_)2HP;v|Kpbtvwn~hbruDYK=^i)ESz6UWdjtZp_`!5$gpiB<$eUTVb7;WW=qH z8agbkq05Cxl!c>1jx=Bb^0NiK&UE637~!hyAaeM0j-G896{0gk^-R2f zXWPJ}FtRG!L^v(H6+9&uUcjFoCCWEp|7~dq`FPH)nC7cOP(|9Vbp^N{^Xtu=8G4>B zmmw@yWT*wLEh-q*nJ zFySJmSD3$~d8cchXGn)26?dVR8K(-T<47z?Z#&W$?8`#F*;WTthy zuKw@vD|MZh)W!u+g}T{p^Q4q8&iVyJEqF<0ih=_w)UP40G=n*ET)0&ckEtZL$NW%-EZ@=vALH4zP{UCesO!YC{et5w8%kN7O<$X zUx`TC0NWwUmx!(BwlmGmnXc28S50Ew2J?%I&+g6FJucv?W*4>pV)M|q`l@|>`O?ow z=_wMy$lCj1B!S||?{Stw^K~qNMB{8nTkl!W1zd-7+Cfh$Ou)k6-z%8(R}@=%{?5L4 zaw5JQk2sFf_k;#&J^_pj+51PDtpyVDw>WaEsJlf5xL1>a=jgl+OnpX0UY(EX0o~f? zyWkkL^gwFqWQKY}o9b0R`SkqO`!TChli{}k5l4Fj@DgiEKK_^m=E zTlyj%3*O|ArUcEU(E4lFj2&2WCM;9g{GDH{SCJ?QsnRuE`Xivvs7I#^L7B(6Ig)~_ zs7swvjnDOQnR;>aslPsjnK0R4x(x1&=rb;jE)y@)HD zVGHOS_1dU&vN>A~6{*wbnr)`DmPVmh#WBUFh`#+sU@9|AzNC@Gj<1K2A30%M_biV) zUeEJul!Hmo=wAnDFR&<$eIs5X>1#?o-XaM0@M>Da0E1F_lCWe_S$PezLDrr1aN1&9doQZSxww zZZEOBXySLUJ<$Pr# z0^{)2>}N0U587p9dKgRf({L@txme=FGmeB1h1Wf zpS<^I+l4SF`MSr8KX?P`OS3L1MY0}>n!jWl7&2r!54BqGm&eL4Ul(;5ONXnFMJ0c} z8uok!u>+6q0B1|?=SN)k=XuXzFhC@VX@cJt%+l=X@(@UAO_jxbn<#@@6k1NEih>pK zY3q93yK=np+y!?<;+N-eJ@aARW`fU8Z>e0(sQY~!QnR87rdzwYbq~@{KLs@Ny6ibL+u?R%W}}E3e8UIZH{-zB-8Z4^GqV>Y{r$2Oy`Q zt)LJ|oO^L8>P^6eMEqNSL{J-gV*n^0-~XdwOSyG_H~q}$et&(e={m{{^{rO%C`-*M zgGfq)QcNTLjv-wOjk+M!0N8d<7z=(5wtO6C8Up7L)KmX$kjkIqBtnl5)ZH(heh5bn zJ&(*4ygS7(sL$WT)$e*hUs8Dx_DBWLa&wrbnGHnA-cS3v677g0i?^R4SGA2JYbP%pqR&d43r0FN#tuaomONw! z9Y#&yNJ@a7%$eyApkqULIPRLmw5ryq;y%59J@xf9G%E_vI@e(vyMDSEb3Md;iMx@B z{Mk=o_C$}r*`UqpU4LAIaNT~@bJ_QG$ztT2((5Katx^)=VqrjU|cM>+=$<`#f^AMrKFM> zPmU#nP>*$Q#f=b1jMYcvkKrJUq%vub7D)=Corj}(M+hk@7f!r5(7~e=L54OCON*Az zE+AK{lV=l|c~hN8w9BBxM6k~x=Q{#gB93np>{P>7cF4dj*^~&_0x}Rj6R7$TgTBke zHwKZea_V3p6Jf4bf^Q|BofzrCdvw*P7pAq?vJ6Egl+4IdcT2U{dQEr!FD{Z~lXCeX z{fhXJEJ9{!v@=&+b++tkq>^-nS69GUE-P9(i#=pZJ0(Xw!u@>_Y+~Qh0xvh|bY1C) z6`p2E50Z^b!m}ctbAz#x<*mSIACH$kT}qLdcqBC-H}489BHa69TywzIJa+yX`Iqa~ z!l18+1qRqv90>+~z5#pK!ir;9!(ysDz7i9kjDmcyk4>GY==aEdRw_NHKiT^nDINtV&i}L|Rg#oZN~iVlg9< zgpY@hi%XD;>v3eq@@eHgOj6KBdk_zQr4tG`bmjQGPn6LbKS1m+MvI;;R;_P$|7@?t zLEoXuMHu2O;3WAa>rmmhKxQm1qMf)Z9Y}lQt2Sey4g}yI)Ve-9+&+nM3_j}_DH=giNWmA!4i z^PDg){o-ikKKbFTA@2KQDe$mD;`gvEKWDq;i{+-#@ZT~1R;%>z@F3J_u|4o^1GjX3 za;4{E9xIm%t(N<-(0lRTa&_?;xV-xpXb()fc7cN(hDF`vf4(*Xo-*EFFNt|6WbZg+ zKOf$Md|;(e&tF||N&jezKo|(!)o22K)MP*3g#=JLFHk!TI`CkCqbKICUc*mpFwd&n z`E|2>|6zO_(X$DP>OFGgZKJRYM`i#~6fZ_UKD-sf3oks6<)s|L9eT<9w=ahjRtOC2 zg4fi`SB5SQ+oy}%$W<@$R%-q8_jb26hu{VeDQ8PLAGFP!`^MISNq6!iI|tzQ^1e~& zg`&F}VtSNRhC4x_yF3l>nzdeUiDhbLCVBTsiotJJVd2#hfs1PUp_!2q%eYjzjDHQO zw{&+X(e9QnGm+9}PI;RKCwn-gB!9;glX3_~H74WNlbb8=h`Uh_gyb0R7au+`h^4~H zi&B)ANK6Q&Em5HKyZeEGJ_^8gDm=PCpsJF4IU5|t#5XKrrTp!h0e2S-UkcdiLU{zj z^UBu~Idd^7mRUEgNf1!=Fn-f%#;cWKrjyOronw5o`SnYdwf4w03YmL?WeuA3xj*W| zy#5@~GkeQUf9(#kFJgW>6w@om)^3%FV<^L7{~0_NPR5dcF*!v#_7ey|yt^4J4~6%y z*eShJ_OC5EX~whp+!AKc3YW3CLIFphpBFugyt_}#i33-;tZ@bZ zUdBw~3p$?-NHSz=oOIQc%wKo^*r_b@F@1SjH(L!r;EZ*3L>-UxC! z2+O3kMLa3Hb8MNWDfGhO@9!ty2%MQ$p`i1qc_3wPMs@9&vYw}E%0UU&i`KNxmo>y5 zKcA*DFKCzlZJs&MIw0Oo?gy7rG}_QfauI~fcLT4neueI=S1;A(nCAN0q@!!jtK}$5 z*0mqv#$KqC*NMI2D3tvbj$AQSf9gi@(8MAp8VF5_cOMy2jGPmzi|59m#fnWBxRWCo z_54+xK89<`WrBm0^I+m#oJ0m(?Ej_Fhju4P|GS7y8h}2jf3?nShN~Zp-9`1Oj`+Lb zj|jk)!OJDlTO)1#Vc)X%u3qd<@bLa(oToYHVN@PB*=i+vdFP5ZIC8K@g3Ao! znn+;|1L@$0`%4MzL-^@j`bU~ok?Svt7=JLNpk)05b7~#jiB8FG#6u%faT%(y@ug)B zQ7!~WdnJ#?HU&l|W6q4@nYx`AWW+RuSpvqy#O&w4{FX~223y2hR-iH?xx)-?H(8HL z1ar>wj`Qx<7`gvB*mqd{kXySf*o$4Y$X;&<5x0pXyc|Kn`e}0F2!2gY>2m!j#YOFD zAHmw1_*N$>R{vlSNBZCEBD>K(@^y|$4KG--UN&EpiTy?nae>5gWW{;rA^lQ=H)w$7 zWA6gW=k@998hy6ooY5G9C>Cgrly%S4R6J1bm8Lv7^nR`?5Jf>L2aQtSF)$6;#Obn1 zG*LcY(}-oy4wYBbn9NcC{pkCvJQ1&&o37WfCVGLQY4)?azuv7I zfFt=Tpgc`d|LmxvSJWHTEwf03VN4d7V3;=^)k3)JvQx3%MJ!ihsju&eKK)I~@#ws4k@ zNOXT*VM>NGhz=5)W>UiUC?fmYJEJ|dPuRr`%7!eW(MZXsg{V#U)HuLli;bLAcrt=G zm}y&WiNVD{aaPco(Dm#Ymc#Bh*g~NDui-1#5@T4|l;-lC2Y=Qb^r~DFrHmGMOX_!b zs(YZYUT@e*o4o~UZz6?Yzkw1eL{f3q)Yu}L zh>ScXI8eGRt_XIqDmy@vm@U`b~QJ z`szWeTdq{0Dg0PR_ zR@bbA!3AZ+jd&A7;AQ|(fIfDsvKC;?I|?aQl}TDg5v-!9 zWuqCa{l`Q@(+SoOy{uCo60gVg$B1X#hbjz>vqW;L1u4slTBmI=&w(h&Og$d6MZk?c zm4gq2iG|gmIzd~A`nBdCMPdn2X z-d2v=jAu;290IhcJ;rZdl}SY8$P^qUV_{%Ml7-6u9#o_Dk|p;MuBX~ZU4h`iu*#N4 zbs&oL`YSi$(_F5ajlPVS993gA+Sz1APoCeyudd#+r#bX>fZSG6!RKg(!RlZ{(&TF1 zU023sI`sQccxFTr1{?Zt(H(6n{UPb7ov;6QD^;k(^c5sb3@p;mi@n*#K{G{3W=de3WyU7tgE?viAF`ouK+3yB=ho*OJ~bz;IT+Yq++bm* znGr-Q2}hGGYztvdryQJ^qxvmLw(1@N^{oSYhl(Z22EDwEKoP7_o@ZGgA&$LRKvECk zr09cV-3pjEWB$^Mkgp(No6IxYiTED%vGWlS zptRX>#9SGi=5vFW3lsB&6#rX({{RDsXj<~EN({InLZuX_MP|S0l{x6{3;2NAg96kQ z06c~V z9vVw464FB}RN1>r^*72LvIL`g3yGmDTKoXHMN$$R1AA!9TU+gP4{-x3k>!0~@#0Zk zFcYcbt7vc%?kGALRfo6897Nm`rfcFT+kYp-aInDdG>TVInY?!=#1fal_&;GI`(6XC@K8LP`c=!)z*rB?9h z%t?-+;*fqBJ1V~vAVxAvAkt#lE&WaVC$DThA@B8n{w;ppesY7|FJs#sY%5I<9^8g63F}LCJZ_7zlO)#d zZUcw(LJKZKsOZqMIp%*3R`+{UE}o_3=9eBan{rZ6iX3Qtjp}f=ed(9xLt-Fpun`}g zi-#tw3THNGvCnj(Va_zlfLyl7kb*_pjH75YMjnv~z7(&^$Fo+Cp2d0~~*o~E(n?-5YfNlK72`veZhUd@qfrTokZY`<+aUq7VT5*=kF%UA^l`Q_yWUo zC%1lf6$TPb8Q)#|uS__SpWuUb-lUpQy>KA52lo{1OO>hST2izhg@?4Q=6L=_$#uvh zeAEaoL=KKoy(C>#1wKy+YxEk-7acxJ&+Ly$jxT$fYkPpnrsbdJp39D{G5O#21S=MK zJ14z%e2!f}?;Gtvu2g$_Xam;2kI# z``LHoEx~fZPCKCcWy}bdjHE}@1(aAfZ<`iVw+kt!N|}~r4=_RGGyX#)M8L$Nd_m+T z7O}z<51*5*G&WHz`he`eE;<)3iI{@PnHXThY_;x+S#{kFdUPYlq;}v}-QAL*6 z$W5Jq*OEwM8cnnIbv zRZ;UwN)4mN`eDHnfq9c6$rD2Fj8jb28hcAA17OhW$D{Mp4z(-2Hx#9!I)$X5%Qt0Nq4x2Z_}bHyBg=cq8i@fm$qH4Kg} z{}^P&Z288_FlgF%)u+hk?WT-$B~(*HYMbuDHB@Ob1Mz86B1`3>LA;kS(JE|0Qq!|} zCHp9w(1Aej!QsRFQ&YBB@bj zX2^RhJsrfr8!TU8UdgvE3j2v-R{JweM?U zkAwZ7wwl)wxSHNlDD1aA7w@zj2(3%jbj=+)3KnzTs+TeaNbEaq+BUT|T$dH}?De)? zfzjyElmqRw$u@Fa!obEh91Ac39r8qfG|#}a7#CIDVKuA{YX~pI4&}f!4a1-{-f3?JyQk_$g{tTF^LKtabLF!EP_C&fZC+h?#!sqIx!7oi1fmTKBK02zZd+Zp zRwd_V*8h?XxC<=EhwAz>4`$_#bR9M#P4Ts7l$}PnKd25v)zAbH?9i?bo}h*nk*j}E zn3bh8GcjkAfOHluFtK8Tp+%>i!z1^nR&ZsMjkMgJnwB>?#fCvDNHBCyNxpCZx*hjN zQa|?_(0)`+y_;2fKOM#TK8~bzd+y7{eSMkplZqAez8?{jiu>5j&Aco;VBLD!F)1b6 z>bP)uUv|GDY3=s8;M}y4f~~#!ig!%X^_XMRUi+iz@lnHXv+}9N%kyHSyJ<7d^{JXb z$8FMWIqos8y6f_vO~-Q8_jz;(;46_3&reHVSKGIpKCwMha}V47goHky;fc-JAk#u~ zeqT%9x0z!KQ%(LAzhmPh!KZYs*qB_acwFqdEN(giYHB4Vf&h*`d=y|x9D=!e=Vsss zglf_Culb^XTbT}R1F!iP#8$GhEp79YN^K8Ytqu2rpjkbe{w5FS>L-M7pnz6u#A_`< z+NHi9-i%U=OLNM6@Gcfvv%Lxinyl-jqrG>KIFFRY8Pb?*%uFp3x!5Wm0}s_aoj_hR zXW!~^j-A2wj#T6^=hE$kf=__!-C2`|i&HOF2&+mw5TEOJ<~9Esybn*N0Pn_rnSvCy zG&qq4mNxdBH}h{Rx{)I~kh{&ACF=^E-Rm}5`OKB%I?6YPt&og@6wCNuylO?tQn^qZ zC3v+OsgFq_7}9iVWR8v$q|ztbJ>db!np-9fM6K?~xgc90glSR2o#FC~`@U7-DT|{{oVFMwha0;~G z5~?agH46e;N;rRMzYMD+Yu0E~c>2i?CU~_7@h~nDDo!z(tU)xbT^6Smrbll$ zIb!W~=MUEA^siV-ay#sEelPG&XbxRFMkB(~9A1>v75{H!*)4opoz}55| zsqMYaBJO}v76od;InT;loF&96bS3e2122;>QsfG3yYW9cxVW5;ccmn?b_``tbpBRF z8v074$dL}1?yFHM(3+}D(#Rr&ad=6Nj{7>DdciDXY9IX$Y@i7v)Jl$`I_7F$eBIk+ z>AVB}RP)0-yENF$kFR$bPYGc5^zZ2$*&x2s)b1g6oNp*f>Csx$4}E-PZNZrj}Jtw}AKV?(V)Ozo)8;E5hRrhl4O-uP5}k3vNOlXcA%8S_mx9Mg8}- zp^&tj2@`7!hf6wo;;x2bgiqzyOSQp2yTsztS6B9>E#>)k#0qyF8*XPw28I@DWwgNW zddOq#{as|)^cr~ZN%{^YeN^M1ENwpu4A)Rbk*gUDOIs7=iH6RBd}W?-6=g8qTm|+N z&5WU-6DEY@Vg4^hdS|L3!5DQ?t0CA7Xu|uCo>nDp8Itj=W3$bC%_H^sm`61&7>CaP z)^0nkaG}L-Z?oOy^z`&Mo3mxR=N0(V9AnVm=B#^t2<7gO_40-`mBoAahxuI{>Zn*F zs6Z0FLDt+;6{3wR(suM)Iud(Z44;)fLHyiCOrDoO)Puy|ug zDzL?!=%3&3Qh|r2;atzZ@|)MoB)=;)wiJg6A8ILWojcLx*i=mE7Ga1Pj>B7u&gJ>` z5ueb%QlB^vW^WyBhc6-x5AzF$yTZUTW0b+HQWH}3>gQmg(}+RjrNwFqs=Hr(N!h2putE9FJ{M5_WzwV#bzxA{rtJts<7f+Mf)o$pYwnJj5oA%+C%*B z2XK1s3O3-{JD4SmY^7*nKH%{#G7b-$rM!uLkju61A?2Ax%JYFmzki5JV9%g@%>e1P zVhrODsgziXyCMz89dwLqVq&{L%4JG zO3eDN>~%FH>ITfe4Trl#49YoCJ{@^w%3df~+*=t6Xz>#srpkA_*I3 z7?&xR8FU2R|bo1w6M%D-o(sRP^=Y8Sut;oQFe)in)J3Y6p8dl?C5z9nZi z8U!hcmOQeCey+BI$4D!pAxIK0rXqFx8Cf}3I7OcCNaZI%B`u_8Y9lFiL*A<3_?mz=VEFjJu=sp)5|L5Bc^)LjL-H?JTp&{pYSJHSrTfKXK%2Z8~$% zKUUF7qwwU+1fvO24>|8urV2@2%Vd2Ue)_M$gotB&)d8&kYEFx(Ep)yiGSlnj;vmh+ z`!xPbueG75)0|Bj=B&S?*tns6UaOb1q$=$$<+r?d}?f3K!Yu-Ej8^hh@Pk%dV?xPdK7!v0oI9aP?Nz|r_=YO>t%cgMD z+wT9*m?UDnb=i8MQ+qG>%au*)Y417{c+yOI)`f089+v{GCFx8%56_r2CHTaJqqTC& zvkr2UT6osSO@Frd$wo(>h@Pf(pM-3nyTT(Y!rm@xi#$thGE%mDlIA&?=stOE&uY1q0F3Zz-;&Sl4wu3~Snxuc* z#FL6I!hW)pPm)Re-cVOQseYfk&AEW3jE^cq*z)e*_MV(~jXP@bhJQy{Y>xX@zMdrZ zJ}}q!oAedQLw!Lu`p+svp0*yDoj*V9i^m_=M-gYFwy7rB)Of$YaOF^Nd~3(T%{C>h z+OKDXo}I;;{Od0OM=HeUIy={1y7V=w#wDQ_G#JTQA?*qLc4q(6e%SO2N%F z?Z9#LImb@7Mo3vGsIFRP6)${+K`>U-#6{N0j_W-u%el?pE?I}!ma)buxr@wbZMki( z`ToFxC%Q}iKH8?Vum6gROrcmGSJQ(dnUinUrx-2x@N8*}a`m$dHx3x8h$wGk;W?cX z$F#T1s^yu0h?y>1;l|Z3{g~!&Tr#s}qUO8@jd#@IosRQWZuxocMdJB})YHzMyVrHyskr97yEL$IbIg-38_(`4 z&`K`eb6%u=i(tN0NJ3J@3$|Gga{v9|ZpqDke|M+*{F+3Mxz<}IOmW`wqd)sl$QmZ$ z>gP{`_n*Ej^88nG?jPB;twL^G^?uItrYhKroJeT1Ov*F=&QW{y&BcXBg(G5foIlRK z#B`tUj@eVOBSxCvW1fF~R?i=(cW*wk-L@y@>2eFr#J8xbh1OpV-*t9JLXzep%jzAc zidTj?&voJWzT)I%e~-2o=d$Fsidm}WKATZ-hBb0+g*gAWQ}<=#ckH(5n>p(X*T27i z^fy$``!D)b@qKJH_siHf```Zu?-OA6ZJnF#J z(ICvhFxkC81$-*W#vSR6i85F}a)5KA=)dALxv@l+?Ljq26aXs9eeeJP diff --git a/projects_2020-12.txt b/projects_2020-12.txt index 03f2a3d..09103a6 100644 --- a/projects_2020-12.txt +++ b/projects_2020-12.txt @@ -28,11 +28,11 @@ Eclipse Graphiti 0.17.0 Eclipse JGit: Java implementation of Git 5.10.0 Eclipse Jubula Functional Testing Tool 8.0.5 Eclipse JustJ 1.1 -Eclipse Linux Tools 8.0.0 +Eclipse Linux Tools 8.1.0 Eclipse LSP4E 0.17.0 Eclipse LSP4J 0.10.0 Eclipse Marketplace Client 1.9.0 -Eclipse Maven Integration 1.16.2 +Eclipse Maven Integration 1.17.1 Eclipse Maven Integration for Web Tools Platform 1.4.3 Eclipse MDT UML2 5.5.1 Eclipse MDT XSD (XML Schema Definition) 2.24.0 @@ -49,7 +49,7 @@ Eclipse Parallel Tools Platform (PTP) 9.4.0 Eclipse Passage 1.1.0 Eclipse PHP Development Tools 7.2 Eclipse Project 4.18.0 -Eclipse QVT Operational 2021-03 (3.10.3) +Eclipse QVT Operational 2020-06 (3.10.2) Eclipse QVTd (QVT Declarative) 2020-12 (0.24.0) Eclipse RCP Testing Tool 2.5.1 Eclipse RedDeer 3.2.0 @@ -64,7 +64,7 @@ Eclipse Trace Compass 6.2.0 Eclipse User Storage Service SDK 2.0.0 Eclipse VIATRA 2.5.0 Eclipse Web Tools Platform Project 3.20 (2020-12) -Eclipse Wild Web Developer 0.11.3 +Eclipse Wild Web Developer 0.11.4 Eclipse WindowBuilder 1.9.4 Eclipse Xpand 2.2.0 Eclipse Xtext 2.24.0 diff --git a/storyboard.txt b/storyboard.txt index ab58227..5337373 100644 --- a/storyboard.txt +++ b/storyboard.txt @@ -7,148 +7,13 @@ Set-up: - Hide right side view stacks -Reset: -- Restore workspace -- Delete Git repositories: sample_repo, sample_repo_upstream, tycho-demo -- Restore Git repositories: sample_repo, sample_repo_upstream +Git: +Rename branch to "main" +Add to config: +[user] + name = Jane + email = jane@example.com -[General (1/2)] -1. Point out: light grey background + square tabs -2. Window > Preferences: General > Keys - - Check "Through mouse click" - - Check "Through keyboard" instead -[Java] - 1. [Java 14] - 1. [New Java Project] - - Ctrl+3 + "new java pro" + Return - - "Eclipse 2020-06 Samples" - - Showing JRE list going up to JavaSE-14 + Return + no "module-info.java" - 2. [Make sure Java JRE/JDK has been installed] - - Go to: Window > Preferences: Java > Installed JREs - 3. [Switch expressions] - - New class "App" in "com.example" + "main" - - "switch" + Ctrl+Space + show all 4 templates - - var isDirMode = switch// + Ctrl+Space + choose first templates - - var isDirMode = switch (args[0]) { - case "dir", "d": { - yield true; - } - default: - yield false; - }; - - return true; // + Ctrl+1 -> yield true; - 4. [Enable preview features + Records] - - Right-click project + Configure > Enable preview features - - New Record wizard + "Data" - - Clear everything + new_record template + "boolean fileMode, String input" - - Project > Properties: Java Code Style > Formatter + filter "record" - - Enable/disable some settings - - show word "record" in text - 5. [Text blocks] - - syso + """ - hello - text - blocks - """ + Run + Select output in Console view - - text \ + Run + Select output in Console view - - Add trailing space -> error - - text \s + Run + Select output in Console view - 6. [instanceof] - - void foo(CharSequence chars) { - if (chars instanceof String s) { - var trimmed = s.trim(); - // ... - } - } - - ... else { syso s } -> error - - var length = chars instanceof String s ? s.trim().length() : chars.length(); - 2. [Clean-ups] - 1. [Manually vs. as Save Actions] - - Show: Source > Clean-ups - - ...but go to: Project > Properties: Java Editor > Save Actions - 2. [Use local variable type inference] - - Tab "Code Style" - - Select it in preview area + Toggling - - Select generic type + Toggling - 3. [Use lazy logical operators] - - Select it in preview area + 2x Toggling - 4. [Merge conditions of if/else if/else that have the same blocks] - - Tab "Unnecessary Code" - - Select it in preview area + 2x Toggling - 3. [Debugging] - 1. [Inspect synthetic variables] - - public static void main(String[] args) { - Stream.of("a", "b").filter(excluding("b")).forEach(s -> System.out.println(s.toUpperCase())); - } - private static Predicate excluding(String pattern) { - return s -> - !pattern.equals(s); - } - - Add breakpoint in line "!pattern.equals(s);" - - Debug + go to "ReferencePipeline" stack - - Select via double-click "predicate" -> parameter + show anonymous class - - Click "predicate" + inspect (Ctrl+I) - 2. [Use -XX:+ShowCodeDetailsInExceptionMessages] - - Inline "excluding()" + ", null" + Run -> NPE in Console view - - Go to: Window > Preferences: Java > Installed JREs + Click Edit... - - In "Default VM arguments" enter: -XX:+ShowCodeDetailsInExceptionMessages - - Run -> Highlight helpfull NPE message -[Git] - - Go to Git perspective - 1. [Tags filter] - - In Git Repositories view right-click in egit repository "Tags" node > Filter Tags... - - v5* - - v5*r? - - ?5*r? -> ^?5*r? - - ^?5*r$ - - #10 - 2. [clone from a Git bundle file] - - In Git Staging click "Clone" button - - Click "Local Bundle File..." + choose "tycho-demo.bundle" - - When finished, show/select it in the Git Repositories view - 3. [Git Staging view: "Push Head..."] - - Go to Git Staging view - - Switch repo by selecting "sample_repo" in Git Staging view - - Show "^3" and empty staging area + Click "Push HEAD..." - - "Preview + Push + Show result by hovering all 3 commits - 4. [Commit Viewer - Diff - (Quick) Outline] - - In Git Repositories view select "egit" repositor + switch to History view - - Open "aa86cae Update documentation for 5.8" in Commit Viewer + maximize editor/viewer - - Switch to "Diff" tab - - Ctrl+O + enter *.html - - Choose "5.8.html" + Return + Hover link "b/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.8/5.8.html" - - Switch to Java EE perspective and restore view stack with Outline view - - In Outline view toggle presentation - -[General (2/2)] - 1. [Ligatures] - - Close Commit Viewer - - Window > Preferences: Appearance > Colors and Fonts - - For Basic > Text Font choose "Fira Code Retina" - - -> - > -> - - // i != j && i <=2 - - !== |> #{ - 2. [New File dialog: create missing folders] - - Right-click project > New > File - - path/to/file.txt - 3. [Dark Theme] - - Window > Preferences: Appearance - - Point to "Use round tabs" checkbox - - Select "Dark" theme + Apply and Close - - File > Restart + wait - - In Problems view move scrollbar - - Point to main menu (which is dark now) - -[Web/Misc] - 1. [Wild Web Developer for JavaScript files] - - Help > About Eclipse IDE - - Create "sample.js" - - document.byid - - location.h - 2. [Linux: GTK 3.20+] - 3. [Donate] - - Help > Donate - - Maximize web browser