From 6a5e5d693aa353ee01c7f6e355c662f5da4f04b4 Mon Sep 17 00:00:00 2001 From: Sheng Chen Date: Tue, 30 Apr 2019 10:06:44 +0800 Subject: [PATCH] docs: Update the readme page (#681) --- README.md | 105 +++++++++++++++++++++++++++++++-------- demo/configuration.png | Bin 0 -> 16576 bytes demo/report_navigate.png | Bin 0 -> 15874 bytes demo/run_codelens.png | Bin 0 -> 16323 bytes demo/run_explorer.png | Bin 0 -> 29876 bytes demo/status_bar.png | Bin 0 -> 9527 bytes 6 files changed, 85 insertions(+), 20 deletions(-) create mode 100644 demo/configuration.png create mode 100644 demo/report_navigate.png create mode 100644 demo/run_codelens.png create mode 100644 demo/run_explorer.png create mode 100644 demo/status_bar.png diff --git a/README.md b/README.md index 324d4419..0bb0237c 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,24 @@ # Java Test Runner -[![Travis CI](https://travis-ci.org/Microsoft/vscode-java-test.svg?branch=master)](https://travis-ci.org/Microsoft/vscode-java-test) -[![Total alerts](https://img.shields.io/lgtm/alerts/g/Microsoft/vscode-java-test.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Microsoft/vscode-java-test/alerts/) -[![Gitter](https://badges.gitter.im/Microsoft/vscode-java-test.svg)](https://gitter.im/Microsoft/vscode-java-test) +> Run and debug Java test cases in Visual Studio Code + +

+ +

+

+ + + + + + + + + + + + +

## Overview @@ -14,23 +30,78 @@ A lightweight extension to run and debug Java test cases in Visual Studio Code. The [Java Test Runner](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-test) works with [Language Support for Java by Red Hat](https://marketplace.visualstudio.com/items?itemName=redhat.java) and [Debugger for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug) to provide the following features: -- Run test cases -- Debug test cases +- Run/Debug test cases +- Customize test configurations - View test report - View tests in Test Explorer +- Show test logs -## Usage + +## Requirements + +- JDK (version 1.8.0 or later) +- VS Code (version 1.23.0 or later) +- [Language Support for Java by Red Hat](https://marketplace.visualstudio.com/items?itemName=redhat.java) +- [Debugger for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug) + +## Quickstart ![Run/debug JUnit test](demo/demo.gif) -## Available commands +## Features + +### Run/Debug Test Cases +

+ Run Code Lens +

+ +- The extension will generate `Run Test` and `Debug Test` shortcuts (also known as Code Lens) above the class and method definition. Simply click on them will start running or debugging the target test cases. + +> Note: If you cannot see the Code Lens in your editor, please refer to this [issue comment](https://github.com/Microsoft/vscode-java-test/issues/470#issuecomment-444681714) as a workaround. + +--- + +### Test Explorer + +

+ Run Explorer +

+ +- The Test Explorer is the place to show all the test cases in your project. You can also run/debug your test cases from here. +- Click the node in the Test Explorer will navigate to the location of the source code. + +> Note: If the Test Explorer is empty, please refer to this [issue comment](https://github.com/Microsoft/vscode-java-test/issues/470#issuecomment-444681714) as a workaround. -You can find the following commands in the Command Palette (**F1** / **Ctrl + Shift + P**): -- `Java: Show Test Output`: Open the test output window. -- `Java: Open Test Runner Log`: Open the log file. -- `Java: Cancel Test Job`: Cancel the currently being executed test task. +--- -## Supported VSCode settings +### Customize Test Configurations +

+ Customize Test Configurations +

+ +- Sometimes you may want to customize the configuration for running the test cases. To achieve this, you can add it into your workspace settings under the section: `java.test.config`. + +> Note: More details can be found [here](https://github.com/Microsoft/vscode-java-test/wiki/Run-with-Configuration). + +--- + +### View Test Report + +

+ Status Bar +

+ +- After running/debugging the test cases, the status bar will show the final results. Simply click on it to show the Test Report. +- You can also click the ✔️ or ❌ mark in Code Lens to open the Test Report. + +

+ Status Bar +

+ +- You can navigate to the source location of the target test case by clicking the navigate button. + + +## Settings | Setting Name | Description | Default Value | |---|---|---| @@ -39,14 +110,8 @@ You can find the following commands in the Command Palette (**F1** / | `java.test.config` | Specify the configuration for the test cases to run with. [More details](https://aka.ms/java-test-config). | `{}` | | `java.test.defaultConfig` | Specify the name of the default test configuration. | `""` | -## Requirements - -- JDK (version 1.8.0 or later) -- VS Code (version 1.23.0 or later) -- [Language Support for Java by Red Hat](https://marketplace.visualstudio.com/items?itemName=redhat.java) -- [Debugger for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug) +## Contributing and Feedback -## Contribuing and Feedback If you are interested in providing feedback or contributing directly to the code base, please check the document [Contributing to Java Test Runner](https://github.com/Microsoft/vscode-java-test/blob/master/CONTRIBUTING.md), which covers the following parts: - [Questions and Feedback](https://github.com/Microsoft/vscode-java-test/blob/master/CONTRIBUTING.md#questions-and-feedback) - [Reporting Issues](https://github.com/Microsoft/vscode-java-test/blob/master/CONTRIBUTING.md#reporting-issues) @@ -56,6 +121,6 @@ If you are interested in providing feedback or contributing directly to the code This extension is licensed under [MIT License](LICENSE.txt). -## Data/Telemetry +## Telemetry This extension collects telemetry data to help improve our products. Please read [Microsoft privacy statement](https://privacy.microsoft.com/en-us/privacystatement) to learn more. If you opt out to send telemetry data to Microsoft, please set below configuration in settings.json: `telemetry.enableTelemetry = false`. Learn more in our [FAQ](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting). diff --git a/demo/configuration.png b/demo/configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..c9e9a64133783ad32bca37a65d4933423349245a GIT binary patch literal 16576 zcmd6Pbx@V<*DfG}w40V@(+vWGw6HhbAYE<{q(w^UX44%ap)`^kq#HLO2uKJ>r-Zb0 zo(J)Lf9H>LX3m*8-<)se8OMQpo_jrataYtxU5hYvRXIFt3TzY<6g&lah$adO8VvaV z#61k)U-{ISX%rMX6a~l=?bjw-8F;ZzJKr8(CkTz9%VTJu_u}?gxs9RgCqqrFBHp7< zydsSsN=g;X*Zjd+M9$Z^VS`&7RM!>s)QzF6$WMPxdlb)qeofuHxeYA8MQ))FF6`^Q zk7w4AlAR!xy!NZ<`)Ybi?cif?iL+Vf?Jdt8-;X88dhc_W>$B;4$*k4KGb-|@Ba@RN zIYmX*&$P5gx>3_tFZmf)rhb&5VhITOzDKp{XG=iAibcT^p!3&4iH`8az}U6Z8flxn zJU`x%|NMciXegD>oK#Ry@bY_GTU%sqjaLS`HX1SCECHhw8t~vLn_=?q@&KbvNxJDY zkzJ7woVom3F?dV;>0fO;zyBVdgc{?>gi1(*&A_o3`6_Svg{Kc7z>6~wQQWQ4ulBJ9ULDX=) zF~|?vo3Dfq`91tc6)6?gpI`c^pkugg&9z>uA>mXYB13JI zlNJ@3Wj&iL6llrOcq~8gO~BI=(bkrN93$04W@7S+mn$LWx)`NEwqIRWOB4Vr{m?Z* z6ZO8=9ArXK)S^ej$FrV0Z?zqtF%a_7NrCwNI`jXoq@0=AymyMA@yqtR*J8Z9FJ(UW zXA%u$pg=j@kxhR#DOL)P=!H#(jEZ?zfu*nLAHwib5k4U`Y3;jZo5SmU zc3aBwjzl`cd?{uprc5ufYsLUY5y>5$1cS`+0BGSAzJR(D9PzoG1 zPCKd0efA9|f#d~mS>v{dT!;2!{(3OrTS%v+Rah0VCeaGR+Qp}Rt z^?{m9IhSb*m9D9Gb@_FQi3b+#X^$M$n^?)~tDWm;Oj@sRMW6(YhZ7$bt`F;g?zl)-nkkmlHoX%>zQzGJvSB*5+ZA0 zecA!RBt~fJ2JA5Wxl%8P(Tbp(lykzg2`mI1v(2raB`-dM(nStU;6t(WJD=ySwpa^h zipw+GOKWLVmsugU9YI)khwc-CeIOd1yVYhxo|AArUSqcN)5{%S(^xVmbmv( zci5lFU`G??F-&DSWvI{+MmsN}TkmlPB+mu&-NmGBOKEYTF)$qLn5<^W@C}f}A;S+m zS#9&5TgtjVWyPoUVF5i?S6rqHBA$7(ngMK;98Mf~FKx2L2&9z-!|hFTFtVOpV=f7w za2^z2jTk7}a{Ub|$MogtV$OW2ons-*2z4n>FVxe9Y;u^MhL`(EI%zax5Fkwwu#i3e5_mr5GR4+s$1W&e51Vy?nl`@JVCDx&71o$?mJm z^9*~|UJzegT4Is(P%XRu!=!rqsYi2eL>h6`^Amx;@nn$}8+@s%#9I)^#&+Wleja(S zSD1FLe8vVN!U*(^&m2RiL~kM275ecYPL8IXtY!D^7+i3}6l37stw~_?NC;;Ud29L> zM{atL2OHlxE1O1+rFCZ7D3&%Un7JE7)mU;EUycb?zA_nWRiLL7axi)dQHG2+G&Y)N zrHOf;35bY@&|L{_5ir246%f?7tDZy1ONeMX25ALb&osDxC}j(XNOXsA)}fX(%?|or z{r)ya?lffy2}@0l5edz@+_ai}{7W-ov3cX?rxjTw@?@ueHM7SX*>ZJQE|dFI#fKHf z{AnWj)@BeEd06VS{&i2B`|fgrw0De8jECDzDZl*^{Ng!c*{@Pg&4qy!>R@r*q zTR=&E6$?IllgoT}s*w61$8B2etW6yme{awAukT<1d`GsrDe-0u^;D#BV~3TBiOUe( z<_~9z>wO+a;cmLTQ!Iz;`_t0klZFz41n*))ad~UaUww-;fuR8n!;?g%qc0B1;VL@k4F{kTe=G z0uBZ3k4{b+u=b`@8?~N&FZY7(E7%&?5OWpH8NAK_>);e4`EH$?b^;LH0$LnstISGu zraKgzh`L$cHkGFd$&8Hy-ccp-GVYHP9Hj(;c5`VV^!Eq2{wH!O?A!R9gw6`n;a2j- z4F~Jc{_4@ciRdU;%W{6;WZJ2aowwkz-C7jX+n+K5P-KtvOB67n(5KDR+uc?LAjgIU zy?r_c^lR7Ch145V;fHPqmI75-3vSqP5+g(m)m20P45o7izU^yVrHq0fxXaW3&(HkO z7qQfluS1t*fhj2s+-_rvItyTzYh~;s)j+W2(#My|w`=3}CPH>=ge@1BAL*02?L4Sq+e+r6;W?5l)MT z5*G*I&oHw*c=e}G@2jeac6_hT5l&08R1#hj;YpeduoUmhf|JPuhG@Ui zec5gbK91zDz*`JN=buJzmH~HlaWOmDT{t-`_l+9Lkuzk6r7UdI`rwgW9oO!W&3WWk zOaK6`e&@0JUt22z{GNix0LV}^C_yPME`I;IwX`$}Y}skw@#J>jZZ`Bu8#_pgMIO{= zUjKvT&(;GQ4WKh%DT*~pK;|~XD3tGRPZTg5@@LH`?t&T*94-!u$re|3uI_G68*KUs z!Z3LMT{`);*^I+dWfh-a*Ym@Y6#fK9k};0HSE|H)2Q#8!;4U@de`mr%l||ydIAws5 zE%j*mhLnqSz*AABAKd~~U;)&DV}$E~Ire|H3&6+N+S_+Fz4`reOy4RP!)NUqy_GM* z2EY#=6|%;e|3pAK|1$=&B>0c$6tLwvwv*TG5n@y~y!q%~d6|OiG$&g$NBvdIcyyI) z|5z&Je{&ox)uFgAg7sZGj59mD1e5wO90M5i z%U=u%%yQ(gX0tS@j-!L<4o&5^`2m+YSpY3_0FT}EWajNY=$kvKu7L|X5n4RM@wbJ z%xF%>@*M(EJM~{HjKiNxw&0C)%JyE0A};uq5Q0@LKR`F@texrS3LYC93(>E#B$030 z>!MuS-j3#qbv%K2??fDacQxP332g}+w6CXF+E74>If<=*Ek~mz3|+mq*>nsRYc4_? z@7pJ|?#lFsw;yEoy@(zcp9tg#)oOd#@x=ky98Nl5(66@UuJA$$Xl0d@ za708!ofeT;2L}g`#cX&z2tNycH;0aN+K!39ADm1vGy1gr87dm6Vsz)xi$WsA^iKV+ zipo{R`7nG=6MJ5r+w&TMrN;ylQQg|wN)>hjH#9VSo0}_#DuA@0n;u42NJ3>v6Mvp1 z#TnqDCgyU~9Z7(SM_t)qY>w!U0BlxBk0wYD0~^-^Zh=KH|J?dDNXhB*Y;zj?0oj4#F{=D}A;<{>FN>gi(2iE}&G#vX9U9StrHZpc2J3oytm`SvAIfj z1;{D%&`U`9^y^yPcT5hBj%3Sl8DKw!>BKpDwe(l0Qiv*UsY4MJ6FtgKStj1Z9YrJTNXGF z4K!3*i;C*&w9QEu<0jO=NCR^Z9lof=wYT6vX$N63PNA`*xzGzW`4qX3(f*)QoX(!Ppoh)a>vQls|kk6TRXKi#!z*3yGVE&MUN$_e=DNoViLLao%OBVvdfD>KHgDg{_lT)m94LT&)Sk zHW2{6=-e}NQd9gW#RmIXtE*>nu+Clze-Z~DFYhvTjyW9(Fu?kvhCDD=Zf9g4PG;43 zeo)%MNg~Yl8b{TH=6AD};cEuZ4>)_B8a2JR7_3r#AA@d6jA_Dg1YVFE{R>3)SG5}Eldfkka>Skh%peL263 z7+5MD+9<5tydX0>3V*2X6KCRhyJ9uNyIISgt~27oe7anjDdsvgiSViW0@}``O=aA9 z`T6<@CIq~=4u|jKN&}?2?wQ5P$U_o-CVhZIC5?+-4cqN4e9*|c5~yGL2fV%?x(8hB zyp96++l1l?{LP;-OQIj;>8|LbZN|g-1ob-&15<#|(h~;wTa=R0P#+dm`Z`Iy#TKJ5 z@yaL0g!gtRS5^5pj*~*>sZa1S1@*1>n`nS<^0^5(cD6dmQIGtGBgzxD z+Z7C>zrMQ!l(p*vlw#|fIQhs1dl)f%_YLxjysosC0)wgdq#`QVo983r^-^u-VJe~?LyyD`KV$A>ba675#($6BUP7Uy-WQ^`&@Ou z&rVav7E6C;+Ii}F+9sZ}Nd|1bMQ2yLIkMK)Ppqt1Fz_g}=|JuiwRWRDRw|S1uwDFq zH-hjZH{0^NpgL-X*CMXR~erD zKL52OKc?;;EyuvEl>q*UHTH$ksVp7-bjhc8r|a1u<2Q2j5<&#sD>h3O)pRK}HMQk% zb)-r6TYjs}26I=iWk26zr$QHS^4zoW1|HRAX4xFXV)9#ZTDV9UpG)S1-#h2b8Ge&f5&HXB#tL%M{0KbUyK1IA0Xo2p{fAhkT6+qV7mIcI;+&{1rNv=Uo{;GrIN8 zkZGr2Q@E0a@P*w?Fj~#>l>qWZh8ziEJ{&0Lp7ToYkKB}l}Z4{ zPrs+f1uHErO%-ya@$mFSIL@`mqZ1=0Nf7HYsKlDdR{(^c&wlN*KrdFY=H__WyhZ`x zyA%`#+cwOPIZ^AMP*`S;6Ermq6Nx?OABLGJAmf3&Pn`kdt%gb0~pTlpZo_%bs+FCU{_4!;n6+V`Qe47U-0aV%2BEbSJ zI)7$U8KRZok9K7SQLgn4;sz(HBKJ8O26y?3T%Oax{Cg5k7Bhe6vuj)1AT3nVo`XZo z`qN~?9}@HFc3iBFOoL&>2rmhd%_MXixKuxU;`g8=tv-t^s8|;?Qoy4GLd>Yzyb98i zJ37cWI1NgJr$#owSto2$z54Vv@x-X#{wz|U)JkZ1VKh4YoEdh;s_Ovm8nr0(B7dw( z*c0XV9XvKY9eEdrR5)Q(E8)!Z{j63(`@Of*h&chlddkdEy#AMJ6^bOkJSjuE@|iQH zWWuP{GbIwCM^5MPH_+n^t)LGL9}|a{W)apS?n7I{-=*&|_&`Y)>X8M^fe#J5cIlc9 zj{ZoVvFt=!t)GYoku_G25<@1jpwSVdGs|+ zuuo{Y+4ER7pYgejEOJ8-%&arP(UlUxwNd{lsx4c3!MlNi&z*pm&HPFY`o&OBj|C>R ztV0^ihFPoqvKG0!RYE(NNl!=jAYAWYB+15xSIqKp#-a{L(`~erdU{K6G);)8D8bNB z3jQnF`DK-XGuh`VVP<2+@1EvTi3zHrJtj!*&Pv+3ko9c4hqYU}Cznb<#vKA=x5<`m z4UdQs1~>fXyPXJzSoSDg^LvNunr~FC@`MUY`CdDHKD?4y9F1PltFyDER*BT2_n!nP z2!1^t$`QXu(O*#5-dQTp^}mhQHz@~uGi@%AOimSp13v~v^uQ1bHm zK{tW6Dr(q#DHS)i(i#Ij+`4ovV~W2{nWPaezqjHg>_Nhk{wt5ixPi2`pB(LA2f07U zdDr||{i5aSUy7h`qD^)k;iQZq|8KHPkp{fi?9@JyhO*njFY%vD^8E*Z{=iM1`~Nqb zF}9bVe$Hc?My%rS;k1jK=m2Rqk+BnAG&%2JSA|Bc4TE*O5uSx%dw+#v_Qw7;Emk0|M{ug&819~IO>b&FD-#x>N#zVigssF4v#&G z2EE<2(u4C8Xa;Fq=W@h3c2~N{f~fn^eM@6W+7W}{7|95y$`~-JEwm&r?`}p$2D!kC z`!)7cA>QXl&@##x;mTcj&TXFAk%Y0+Bp;r-L&HsDR(2s0ALk7w6^m`&@YUn+8ay31 zM9S?=RBQ1vY9gn3><_2=?(=Lt$o&4^U=^I-Qx;PutmSfpB#4(o3JjLnV6RU0#&>Bs zcX}zIC5d^1i{fM9dY+!5%xamNU*o`}&7(ke{Qg|C#Kz?dCpft?l%t414$18`M8@Q@ zYzdQeoAm@`&L)n^xSEz@f%^6`N5aShFbiee+5N6?1~Z+dDW4!iU^fWkcqmdrhBTa< z3PBs{J^5w>61iGq=^{k#ZVqrpH8rr=rZ*E+Rs`HlyV7FU7r!InP)>V$cq&={W0QUX zQ+qi1JVIJ=4-i0Ej1TpF>7upncf(-mSwDoL#ll5ksdRf)<2 zKmp-RYX%?s)XxTzI7=uaRA^@dp(&qUtDJum_r!M-y(T3^z-%fexKp`ZY^IY-j{5U? zkFwO9hs(EPn8O8+ooXL(BRiUB%LPGvL!;DpnhN#!m>#^LKBZx4aJ%PRYZT=)D=4!> z5Y5I;LSbgI*{#GcSK_$q@!`OhS9-+=b1kzOBPUZYU|nWq_>1S~#!TkQr_uL%f0L^H z$y)ax+YcSD{FMLkc!KITl#B_62>5vqC6VWw89Fz)x0YruOMacJ{p_V-J<7p0ahBBr(vS=zB+hq&;1h048Bvi`c7*n~)`HacEp>#!R#v%f# z*mwh6iR`Z3fhsXMwsl4Xd?9do9Xkl8Qk0qL3SosRa&mH#Za5xb+#$Zcty(NyaJ_?v zbeR*sg1|)Y)r&m=T0Mpxe7E{Pc== zfkQsMdplRll(q9975p8FAl>JhOuf>UM$UVmW&%4-FU~(3S^6ZL1Oa~$yd&On&!{yJ z60WIXGm7?mk*rQqdWj72l9pzR@f77f2bH^TL2n@W2r-q3ab(v?PSnPs?B|90&WtRx zCbTK1-!#XjpW~<~EnUK!0w5=2@17GQ&WQL-NBd3}FUgNYT{X(2R6O({ z*~}twWzX6RwdW%mcJI={(@vltSapIt>8tlUd(RaL&Q9 zh|YPw&Wn~pT|Rd3vWz#OR@OGQkA~+pzVEXJQ?qbz&1w2+9CX@xSpV5NTJACxiP}34 zG?Hv`kC*MHBe@0JR$4EJA}M5ve-#I$MCUyWm#-fgpE^B{(L0ZoUw;58cx=wtKRl?E zgWtyvB8scH1?_!dAsWbd$3BB7c)bQ~T>QSKOUkFVD0mwPvGA^IQSSWd6D@u8Jg~}T ziez4L(_P40FewR03!U2pDG*nV1Zr_Mxep`M*komgU=HniAg!@+6})q%;`?91-zJ=K zUsr>3AD%90R+D!2#F9(%QY2Qm`ke)f4Y#U6g<3)s}V3AxJooSctl|% zdU@xbhr+iWg&-=DvW%Z$!)7*vwUfOkgbc7DO{%xd(Hs0=_PhwG=$Jauhzli8xb#)G zA5XkqwHg{v34>V_Tw#6V*Do1I$8vt1aJ_vM!zyq-1QyLX9jGDc3rhHjCb?&mp3bvD zbyJUGCj|Yr8MY`*Zj84P`L0xNt(g!vl!*)BBsRvKg|T(YH+C?DC5 zl}seTC%Xd9;rewkdW%+ykQdzDVV+rCyOgr#BP2HoYlOcF4{Z49LzM@hq;PqaE~Svk z6iU~35~Dn_SM(`lpomB}HnO4GFmBc3FY;!#5zE@fy#@DjG{e&lzj6x}m3#g+tt7vD zjzzjOqW8c94&F;HHn^j!9kTVZlYu>n*f^1At`(KVs;*kQZi7PE=ea2FIM;0Swh&mb zXiPb{uF!P8Y+l7yp{n|c9&@!b9wh7&+W>sjqNya8I0gcWFvua-kB)+?_?zMft}h5^ zC?e$9R$0aq1Yu9lk?%|hyjQ0G4_K)?8wemb+P^wpIsc&e7Xb+PEPE&yQ?-3URFNEaE+)k>xh-=&NHsP0>a$; ze8!2Y=P3S0OFa?{xk_SwAIESvvI7tSo8l$+k4fU<;9mx@eGoL%LK5j0c}UW(8$zSU z?gnNhl3K6fm^zf+pU|Xt!a?sJBVOQpf&5sJB(oRMybG}?49u>8N?I3=y|`PO!Rp5P z3*jRAE0l>XzeWj^whT{ozns^hTO3d0;vBYHqMxN$CZX~j{^g|6QYc83(#~9(bRV%h zhQA$|ZBw>bQ*=*BK8PxKBR61QI~-1evl;qc&vvEU(|MJ&L`HE$wrOxq)oAH1ZetDk z7RNM>f}s|xTKL&^mhfK0SzuC+X03kt_*kPs8EHt%Tyb%J+*S zGLE^B!(7(a9aY8#XgU#klM1|o`VmE6J{23j+sYnxTi~L$arXKCz}2a>PP3+@a3J-$ zN_@k3iVx$F-C7!TQMjE^+RV#e#RZXISX-Xn(b5!e^9stCJ12%Y?8h8Hyxz%wB%5VN zm4G@dVoy;m>a(?(<~Y}pTjEsZIKMrs17ee#d)W+^Kg2&DprL_sdgfbuDpxhje{5-j z>t(*9EufI276J+joMnHJ^O(~JJQ0RrT`dwqnwjQ7D0QboYvk=Aodq$X*ViDzdiE8; zUJE{lXIYTEBF*dUI}w+dk=i~mS1)LIYWw0OtN1N!|67xik^$s34>()@f#v_yYXk&< z+F$$r)PK9-3Uo4$ZhiGegl;f>sn1^X1A~b8k}qa$qk`LzTPnt{N~sU#^_M zBH|yZC9W<$#>ArSDEYN&ZlF|8DIyzV;2^e<&UG^ULdp5|_&fKC3Ko{_6nh^q#+;Mb zY_&6xB479!$2hdjoD_2S2!dfrGsY69>N{R~4UH9nq7{@rXFt->Q8=KRfCQww#rs^d zoB&!P3n^iaF5Jr%D`qiuXG}a7{ikcB+`=zgxuU`@EvT1~3fS!8cB{;qf+v8O@^jM#~ zH%gz0Iy-q*YetC@9M~TC8{bIi`VJDP3Q0V*lSTusba<)(L$Wq4vt{RKZg9~T0opns z)5#|&Z@;6Y<5_w+#41?HeATLT!ZYbH>^fW|DYGy~Z;JU|iA|(cw4AKCtPVqNIFhGG zB_lkQnB=hUe5uL`Hl{S?bUeh!`qXQNh$L&-NPvi=f?8Y zZAPtfdykLVoEE^irN>ya)aE$P(B~*H=P`dCQc}_GBPz{Ve0JB7`|Js$95NCktAP*7 zDaiha(H{jkYMgZ<{r&xV6=tXy1T>LlW!wkHzkWSog$c65(qhczlfBqfPcd{SLKOC1 zO-8m2c=B|NylZ;&VeZE}nre3NPw#~kQ-1CB*6OQJl25uZ@ekx$LK+CrB3-h2T$r@C ze%nv8WkULmkkhtwta=Y0ve;gX@^$s{LQ96-Y0Bl$03>dJL@pZ`8UhkKv71^E>8=*i z<|$I3NE)$b)1c0x-`+SI5gQDKwXdbHxDHJ9DJUeL7vVIuz5*s!s4cv6FLz4Qcfktx z!}RtrBr@QYR$V?=W?+mwGx5}BC^iP(nNR$^davBr|LqI%+h@7vmv;&o`jx5a*7U6KyZOT7;*VFxFtzv3** zn8sATU^Z%$11f(hK;=yj3J_Sfwze`r%K6A)8V+!1T1Yf>n_4}|Sd)XFd1@*c!_lZ1 z0|`-NEiX*YNlFBZhvi1tK}tmW9|;Ri`to1LKXkRJ3;^-vlDi|3ht*cZd>oEy_~GcV z8;bKG*PG=Y&`r%#H4ucLh=x;}-qdVo^bKpj7?}ajc&!z%=o(nOJ4GCg0h}aGwo}3Q|b>!|E)KL|gR* zZyE+Z?dCa_tJVCX2`PPm;%?>Zgt`-^JSSK2H78<28;PDhPfD<2XR2{R*!73Ac{M;F ze}R(*qr4|r&2ok#@!VRQL8s2-VvH0qKDz7nv&gO(H2I2Qw;@ZZjbO#7ZL_9wKV5(qaUxXCkbU}!wk&!q3(U- zn%4SUQ%X8i#WU0*#Tj0Ab+!;#Hscn$`-gj(R|%H+#PBo8MZWgjWB&b491X|QPfe!{ zRI=usT>N}35DwVy8UGhY|?H9jc3*#Al2gNnqOa zL6s{|ZGRmFe;og4;X7=!mqly4IAETbMBv=x+z6ZjKK znqPV`;4-n-53IxfxFrVNj`2pwQC+>T7{L>*BC`R=;{iokZsUxCarDa(w|9wM&NIZB zM2|f#ZKhpGzBS|P(QOoe3*G+FxQpP@HK#hevx7%_u{CNb&Uo(j{N-?8rRh-C3D(h_ zp2@O#;&cz82mSk+;68I(X#i~)= zW75OQVwyq*fclg3aIQ>(UY>6TI60HVFy8O-hJHUfa!dEUIu-W05DrTGl4U zz?oT<#TeNzQxA>$4~y40ADpK|hFwke=+SgL!pmhyWZ0g~?x>zY%F_uvFT+zKX;f@M z1C*?q$C^IdJLf}h`iLVpF^|L#Id{LDrjo*?RBYp{2i}uo9RbY0w|8ozCNr4S4nTKK zE_hinJPZ1E5>^t-tzcRQphw}i^}MITZ3&&4nwnhPL*Qt8#!y}boBo}kE$N~~Bv>Z` z%$!wnklS~bn(kIB4XG>= zop3H8&?e(;S?o-hdh=H9RXF%3SpkWoYJ0!doNAZ(ZK4UXiMv@8?IL^iPt27HHr%qsqA*=+X1mr7f_m|g70JXjufcn6coteB!hL{ zfthnuf_vf_)M!8Zye&JxiZL(`u7F!>1}|E&<>QQeFM>jm7ehRP4f!THy;y+uR2 z)TS;Q48tP8?YSHrJ?|TLoY(p|me5&U+!NXu4^Fm`erQ}c>JyyFDsZ0v#VA2ckt z6XjsmdGyC;jtTB3$lL>{>?znH0-U@;-QObrp8iH!@#;LBh((onI5ykQ^xkAw6s6P2 z?z63IUa(Fhi0?J@{B;@GXYL37TPC39s&8yiPVK4{g^3?sMPD>)Q{_{RBCjGeV>-_o z#6OSTds|YVNCd(mTWxeTWDDP85K@Z*@x4`z^2mOuT4Q$~(Se17SJX+14@Axu`+_zy52(}V4XfNsW866%%(so{0nixbX>=e_(f~nR+%V=yu>`X z0Y7U2+S+gmt8LY!2N55ek$)QR-m|B*852(U4yq-fz(z{%iWX&wL%oT|b3_~~j)<~o z&N_1+#GBWRxHDO<1!@}aX_I^+qdJ}+LgNzCnr^aPBsxuCBFW1m8MOKv4q5Rn7qp}X zC^`rZu83<)X|B~&^gKs-?q*|XQ~7m$cS{339)cUYs`)2Fb{6UJ{{?7XWASbTuX2>X z5I2d8W@Fk}O`m!Q>7i$%ECC=pG>l8{N??SUKuVA@bIue3jeyD$e$yyZC-{dJvG5yh z$e;X_V|ncT3xgX&yAThMqVm8vQi?{Od|^%Tx-Oz#kZCRVtiaTbCOh}Msp6O5b0i7Q z$)P0yZ8`k!?f)ODMgD8GDF3^+`)fNyo{c#l&-<6AEaZz$I@P=~$w58(nx^BZyw9nC z!em#OW;v~;+Z=Lt_3-u!p{n?NIv2TjBEk?JDH_GBlkqJvli{*%+GAjI|Fkq2ESEa=fFgR1AQO zd`Iv7&b+f>Syvr<1o=k+W~ckkQa3@^@Bzyn%TJVWwg!-MJ}(1(Tldv9BOf+yo-~1`bV=!$i>CAwz&y0 zHKhdv4{R`0G@!2a$#m4)cDEl|tGg32j-|3~{%Y`2=5Z)b0eLM6IGI5y1ODt7!^=&{ zH~Lsh5W0Ckv&mPKhRxOOkIJL%EV^_4iCmua^11x`hv+3_H^EFfT^M9+Y`nHJem(RY z^7RNlaaeZ|#+2$a%?wB(Q!7dNF6)XpV5e0F0B8^j5U5mze$Dtb1rS4CnEULE>aI5g zSK5nII(bkP&=E8{Y4WMyo7nxQPUv?4L$lOA8|$hZq#c^CHj^!^t1O!4FtxqeK}!6I zkk;Kx)d`rKzwmV){bIiZBv|dS@P6;<(!M*p8x4q)AsG{v-kprOli^MiY<;31>~aT{ z<`3{X6jt#(Q8{#4gRGJ)ef*tGU;2(~+I^?>$vTHAL%tR=Qcq>V zjw@SKuDXhxwM^6yO+Qu0LHt%-?y*uyH~AKr;zrvVMJcqnyYM*<4&;Yy0Aqj52TknI zT`a`CXheV^v^r@@wAp-L&4g)a<#fcWI_L5h4L<1(`Z z0G31LwdsDvX{0mE0IuQU?Uq4vRcbQ;Y9G8HkWzR^7$Ca){vLi;%c3PlkMA&573pWz zD6Lp!K!7QX_6YR^`aIK!1A>27&VHyV#VztgD?gv-l9K^_phGgOeUg23j-`o0Ue}`| z--0=#=*39F3KS{Lrk|-jWb62Oib^t9-l+ zo}n!7o=3uW0u}`g)!2AlP}5Te-?FKvcyy1!ma!k7=7ik`Re>f@JmvR-C^(#2LZB9h=AQ#iT*^5J>}8X zRLZ@ZBpZr{z^`F;s1QC2_e0Y4|Ou%$+N{qIW20UGMlTjuG~9rw2>WLs~18yyz$w@ z>-5+gf#W2KO0)B|dY66zNkQVZ>M2Q4IY-6K`m7|dx_T>W3smX&%^l$fr z0H^U6Jy=EaHA@lZtyTZrQ&KcUvmz@YkWbX=H&!$`zOnz074?7>5*tK(JnS{ZZ9=%BeNFZ7aFtB4AM5Trv(3RC zh(a64mG!ACq!V85~i6#{aj0>LLAnLWMd+ zISvtw;uHUc2~Py{r=)EYaj2Fq?4OxQWA8}J7q;?8UY5gZhT%^Ak7`*8de7@@zCF-3 zP!}7DM0@Dw$%Jzv3bZ3;KeG`}jf@Wy;S1O6i0atlVBc3*ywRKAJZ*k$+$eKH3VIe0 z<*n(d$;AdmszAnL#ZY(<@aF*>Z~iU-uGX)Px|q~(6XW#i(hCbDT$MA zSS0-JoPgWrgc2qO1}Q!+F5H=I@b}e&_(S5{*F~4FtS%E10q*??;=$izW1%=t?6(_(>-%_cZiybJT?Y71`-kywxWWJ1`-l781X)h_89T2 zkPtPGghY#^C?lomY6MS3PtcsGs@4{uuGylt`C#%9jEr z2mjutI-cIa^!!VnmMo^wimnV9+R(=%LRncR<1FN>NP_;n(7tg=>8X29RINIXbMcoG zU%!pLG8T)9QcI}_e!t&z_I^^&N?VT3+x`4!lMhoY+2>w!9Q+vSgt#;abRW!;&NYVbGiSw3*v%rFJ|IT_TQa(b z>c8?}q<{AyvRVyz77E2;)txAWq9}a${d`MqE$r&*y5;q{J`>By&0XK#v20t6{g>6( z=;Pz#lu6rTUxt(s^87KXH8}gXw?alex;bxRGT-UxDb@?Eb5WCh#Xpq$q)mterVa46 z_0z6&+5Su&30;%J*9`zJkjc@Xpfl_AtI(0y?xhF(8mQU z*WEst;oTP9e6?MBvI>*Wv79O{?;M#^RNmK%NrHuyG$ZTF=n?bxUUkPS_Fvn4E4km} z`8_Oy3~j}!&u#Gy2rG4Fn7zDM@r{*|s%E%UfV1$I8U^L#rKhTBrbHxTA3s;saAlAd z{9tV@{znLeaVyN zH-JJsfFNdX=X3e`TEo#+=yhCi3%vWCIhdd7Q5CfCa=W3k(AVO(kR?0u719Cv70;_v zoUFjD4Mt;JW#u~2$*oCjtT3UczhzBJgG>m%R9h7*LQ{jW3-L7t z=Qjt@G!HP!ZfXxXF?hcJkt9n3QlL&7nl6$UIOXBrcD{{)(=*bKpLaBSJikwyQ$*bj zFOJ~Qb@MpnO+1*TtTUUWDAS9xDEDSJQs;a-eThOgbFMIBTacO~od*x8rl{aJS|o9_ z=xby)Zx4==VJ)8!AOx4i96tW7ng?iWjIg&t+bm>N=hQI(m77fwhncnQnBq=ZLU4?_ zZ2iHMba6DEbFh3pF^O{O{rk(A!d*J!C`?uuc;!duA3o^;`p`ClGoMHi2IBU6@4dvH zG#-pH9qWf&LCky1*9N2wtp&#SX6!?xfjSUaqwjCs7IcFVdzJBejKI3r>Tt7DBgJoT z#>`uB#K0>a$E&#x<3;E4^DZe$XF_hSi?K1Y#sgtLMNi1L z)f*zhUH2LlCX|Hs9?vvgbH)@4a9vGp(kOJijF)YW0MbT9IN>CwD(hsiN*cX;3hSt)eDCe;KKe9Rm{gx?<64c9cV%-+-4Nd>#u-joMwWbCSTx%L^ zY(#_ZH5)KJoOaz)5_F@G=Y8^N{$OJv=1Q$F><32Kl&bgm%qN!Bs-c`!`uG0-7uUTQ zWkV9zN}RQ88Z$mU05YFzDk5f>%AQBSjrkI$dHeOt_0NoUJrmO13PZDSQK-xGD3%T9 zTRkR;M7N>=gPZybFWeZbxbwEqD7`=`pQa_EBY0|5@5JdyU*Kq+^p~DY#dtv2Gb2K9 zCE@Q?Rr5qHlaA$#B25yunS=-bI&)N^U3}apl6SXkpm0+Dz^bp# zBjrg%0WmQH%;|Yx1WBOIAqkDmA9ISqV}mo@dzEL^pT=pKKTNFRUbJ)$(86wrj4m*4 zU_7ToDqgT^5EIP|bV;at!@~7-*qm@h2`IPv$H{auO9D3l;A$jZuCl-+GL>;Puw(z@ zI(RCogRn*M{$Odgu6V%G!oJE!zUx%>9jY;(F95bXKNIXf^M8)mvpfL_@Z2K;xdWHf zk$v;J%>~6G{F}jjb&mEpiS$zsuBd^#T2b)D_Xe&XheY1JS0~WV4k2Znf3_DhVq;uV z8RLC&98ZfXQFC&^iNEuDb^Jz^bis4E1ZC51W$-y)8_h3%1P+ZIVSB*xsKFj)dG@V~ z(AGl)$x5<6+~6aZ1?mV;ZtajH@ppuvNqCoAel4`q-ACsU8NV0~9&=DUzuKUe(`@NZ z2Tps7UubMkmI*$c-e{2y$A;IHoZF%4a_Tk7RL^JWn@5r2I&t)pgBky9;HMAnVCsuo zqdxRLKUi+fV8kE)<6tzO`c8weYA>>v;8vpt@-1^iI%T>4^qG*SKp=tU*X7srftsPLSuuC0E6b3o$%LTAe>&GemXXmQTAWZ2K56>5)A{b>K zO)P)&PNeVwREUgPHEx&%U=y&Pl>etO>#xQZ4E@u%7-hWeRulg)4NsE13Yh-K?Bn~- zp4QyTyuoLSd^CfiCo_3-V(0+;V~%_LCF=vGgDk)P_A1nd_DiGdAKkxxy+3LlhhbPs zQTxVqG3k1|q<{VQ+^{C~%N0pi^wcwbP319s#(66gRa|TLb*8Go=|66asf<^5*b z#{WR8Uv92Q2Mz~?^M(C;tOMigRK5AkZrm)oVQ9;RFg&C{%s-Y7KVJ~}Ae6(PwsiUJ zODIuz^rOF8qDk+II1KtVC)LBxLtQj0*S`#1aX8LPiXPE9}t;6*2QDc-;9{A;I> z%cpuV{m})5M+jZe#Ck{}_2(%1|1lx#Hh4QdOL0dAx{DZY#e5aX7`km;hiJ3!T~cY3|$X{$=|={YolT;Ms5&@$3Yt-aZD z$M|}@F{cQ;@+CXZnjXnzxSA`(THIGZ**8sHmZ&~$jmvrz9G`+}=Uv-CjX?!v6@awFMdz3(&Q*9N^OnScTa zP|&0mN%#kpzOl+<%J6;XS$^$?JpLJy4aH(wv)6TBvR(6bRZ(tkZdRP(*8tM4)$67E z=JCnNJ_Ikgb(?7(v+w3D;tkgdE509PVR%o~E;j_|h?{BW1Ef>Csotk-QhAf&y*IFLOP8(!zK!L&M2OYTQM0(_L zCj@W2n{ohigx_)i{XSF-Ot5H3NPwl%bB1F}UNSCibRwlh-cAaJ+k~Lq5azUKvGe&c z4-MT?6JLY(3(iJRBnx=Me)DLRjrI_ggx#X(<$23}st4FN`Of(MD&B60hbLO(m9g>u z=U`r~5+e>(@ynceh%F~|0G^1`7Onqd?4uoN>Na^AF9uw(6SV@DYK?_?SVH#*I7c=epSvCm;AiBUem z{6LPDfTSRbvR>fI2!qx*Ha$v>2!7E@wH!Wo-@NxV+#-ylx`!u;$1F(n?qaoh_4KsF zX8|+bBwXVD#scYCN4A1)4i{@d0h`obSo?)Nb=e|TTxfTy-lzNm<`v_EJ=+&Re(D&+z{+F zxn-;;IX-Z6UXI)!e)=i6G$^(3exk(t)pwD7Q9JLIbtpm({M?kbHIE!2y&oBmHYM(b z<7oiSq5~1Aj%3FG$0x~yeZe%|Tc2mL<#D5445f)VI-=R~6EqJx08~(=3n@I53{v*Y zy#k!Mi=CaF7n2V3rPYO|k7p`LteGK?Ade>nraN$y(nRYbf*%@0i_A26yyx=4cf%i&N84eQI#O00bW z-x$((q?vs;Y06U7@z)_pxL>+Es}a*j6TxZTZ#<5)`m*;4b*>A1=gX6@oJ%~n8c^kN zG9vG>i|L4EbNKa3+8eW}O1Nn?XwyOy__)D&Bhkveac?-AEG~d~&li>YV6q*t4s0U( zjTPO<@U}*`^M&{Nhfv;0%VI)Ew<2@u+6>VrOx*c7yB7G&`WQ*YI*e&&wSGwaTIpx)DvoafMJ$O$wlN^_V%eMhSz}Rv zGKRC{{0H3Ge6P`(ht7>^kFko#ajA?+0qg;W?-vB7jBIfQRY>(c4^ksJge12lY1_D0 z9`Zb1aoPF$rSECWrScH>0%FIcsqr|jaOb&_J)one@%ktrT`{e6K>U@Q0>ZMK@3(h4 zWjwSVlHmB@_5)PP_|@>)?o>$xVC-lljvLQ1lJ&yWvz00xVI$`BNp{Gfywq=;%2=2E ztFzKcMLcOk%X)uEgy+`b;MHrbl&qVGn~AoPrZ|b4-buAeTd%IxtVm*|IP|eD-fq!! zVcU>5wgDXRoaI)Qc^&hbT9aUUohh9)>_ru*1VF5;`o?mOs+ldl2IXf6}6$j zPRA@ov#06)?mA6KI&q8dDzwfwm;}mmn_w2{hRm4eYh7aYtv@K$) zadyd`BO^Ag@vFIvYVvDjNMh5Zq2P!o--Ieuw(2}zb&72Ra7I_CnvzFi1J={vRPvCn~xjlEc#yl%qT$`)+j zwh>u>IPx@!+sCA_jOT}U_~*ASNf1nzjpVPhK2QZBFX>>M(+xmz=NQ`t(yXlmKX$RO z3n_EuizX(^d*|a$(hM%^^w91M**p-QeA2w@YD8L0n`j5+^|C*1G)_$?eI#O8BJscH+=Gx((6N5}-=k0=>wd%2SoiV4ZI5?8nY4SoltMc9R$ zx|34#I}1e`ctCnuNgtt?V^XF@>mhEww+CE4mti&Mt-Ha&csDe-T~`^zmIQ;B>&&pM zNFXI+{l2LWh!9z+^!wSIoy1U=Z;0{zz$KBBkAb~r-!1_jcu3;jlenwT`wd9mWVq!p z!mcu@HqW#Z#BI0@Kz5zwWe!9hQ4B{XL?AC^rXBpuspyj_*44?gC(W%5?`}`0YVg6+ z*6&0g33A;cG;u6?C2gf6*dvpEVIGJ)xUZy&U(B#cgQUU z-jI7+f82&1q}TBXjf)QQWj&#{{OrY}KAd*+b+Z8{Q@T$=uC$HO|qu7FB{Bw2Xp>0UN)b57^ zf$Knb?rvJ*gM$o5+1)DXxjf)hnLL>{NJ)BSIs7y-IEyyZx_F&o&-Vp%JIO!74<2yN zw9^fVo$+y`uMm@c6Qyi#5*#|Q8sTD+y2|mE@iajy??A|xyrzo}grWY$5 zBT-8X;Xm+>^{0Di{4RFKzC>--wGu#sEDS*d^VSDeEfLuFd0p!LJSEskTW`YQgM>y% zl>|XIr5!lOjfM%Tr1S&K;RPHChK^{D!6#cIiv$@Mpq8?VO{xH-v>YC*(%vP9evX(( zj5hyAjltx8fdF4rLb;)VhLC5}-V{;AY?XKv{5z%Hy^Jt^##X{l%b~$6j$XAw+bP)O zFH?QCj0tgEbZ5Dy0j?p+Wt-$fEG1LPxDUNS>^;PZwgcVtmdt|JGxT#C)`s3^g4UFN z8+DUr?xhG2CpxuV>_CoQGiMdY4!1Ez9j@10O&9t>>UumoKZ}4`6OH|}XZIoc9`NWZ z0N-DyGsrH;eiehK!uV>~Br<+UH2e)o)*fE5`}=8AR4(O59v^0dxsyqmU_T;(jrp$8 zu)BwLK+vYEj-&_wBl@0IlJz?Ww8DI6CMFnU)i@tefsNe9hwY$KE{?@t+zkRbu-v_6 zdKHY$Gnegu^@0%wQI#LIOez69Bw1^*ZYBw5V3GhCpdEJ-fnAPVq5=MGGG4_)g}N1u z0j5w6b|u&PWjT3$p6=ypIUx)>3Xo;Zg3Iw8U%L6NAknxs6fj09Olr>#Oq>JwsRDhb=0^?E4%ze1i1ro)>{lhGV>*Yyl7GHiU z_|Z484kIYv^*3MN95BD{Wjx2PegrWY zs)qK>ob90mGPQM|P(S9t(uXD@vp~$G#mGS)wxsg$SFj=Y2hc73k3EX*LO-JA_}KFn zm8NXAdMspWA1$(KTaTWOiEVgxQg-VrOtUu5nkf){l%SCMD~FRuWJtESQbwLv3bTg z$BE7EIvT=LWIQp@m1kMGET5qEX{n~ZEn0d!5$(0cvvH7jaJ&c9u#XTVYM+! zvKpBwY-i6k$>1=67btl_78A`4%(J*ypy`&2znYZ^n9fm*EuR)zVU%>m7uLQ==)KyA z)rto2#gYx)aPlRNC{1=R)5@bz(Bpq88@A^V-`K5vlXCh6w9NPt_*fdV1ao#P9x41N zlmj+!!^kI0TKqa7#d|- z+_Hi`6#rIE;i@|b1(+EEtDPEPYOQSa+j7hwVJ%Y6oL9d?m z?!$x0QsSe@gA9|6Pat+WD}ZyRXQ648Skh)5H7=>Sh&&-W{NN0TtFV-#0Sszhokp%Q z-Vo(Awp5_gl~@{P=t4nX-Kx0!i07KzdsXa4%E(XFNpI;syyD(i z3y!3jwVSOHs&22MHaPB?HxPJFhIM*@a~uIqC9o9do-N>lC3vW5Mv?AJxvxmc`2e{O z+FmFD3a;|X?kp`S8%!cGsWoDrWo|!4BU!b^x@LU9r@KV>0da{k->%`3qmq6XsEyC1 zxXnY5L~bf>a(T+NbDK-7ZNKwE25RWg%cwhe`;N-^fj{c%*OEcRIa4yw8rjKnK)YgP z<--Su^<-0?ul5~upd3;aLL?-rreC=L1EfJjX+o|N0KX1YIbvHLW^zHN`KbGj1nZPp zl`hU|fb?}VZFmF#KD^3yGGQ6eH5|_nkZ{?R(hMrHx~83fi3PMI=RJ94ETy$^wvm&@ zRoQ=%pVZsQ(*4~-(rr4UjAv!&U^1aw+vKhl^IPUu?(Eg1lB;Lp8`#8n;X>intmKsv z2~PpWu4=vyR2CmiMEdq}+C7Bif~= z65IkpS)s#n1E}H5)4R#u8*>Guj?)0Ieo~7>`LTRdwZH^nOBR}`EYU^|+wb&-QSRn) zz;5j|HW>F3JVn~DWg2#RfiWej^c#v;1l$N|Anw+x zo%FY%PNc|Y%J(M|-_XC^=t!a7%bFPeJV?ViMld*!)G4jpT1KmxB?gZ~ z6loeKcY-&nTM_}b97!1Frb*&yqC9DaVJ-li01?_75;q`5{VBDVgj)X%^>K1!B7Jr& zOOHj#A`s3;`~-$Re*)m{1b}xK?Wt}sV{k|+-4seLuiv@+XmS@S12%X^qEH$JlYq1R zw6W`~uh99Pc^^-RUdzdffO4yYiC5g#g0?fG6Ixt7&`UaZM}YQS^sj+IRp>nVsABEV z4zmXxh46<3v?|`gn?Kr6cWJWtFoJ2LNM}C;1JKxAf85}tbvhS6RBfY5P8GXLU;|)~ z(u-B#+ID$54bqF{lN&j`dty=E{9Sj-ccSMofJ3?=Y#VP(uokDjvkRRoC$i3nVyd{a zjOfx8HV`a)JufpJaRx5&{qh(OSk$z0`ll4)_}$laBRg}p(p!oPsLca}nUSao zLYU6b#rSZ~aBxFd#;TZ1B!I|}ISNaHY{Wg)42_E`l1FM5ZI;xDw6VZP$OU!rjO9FD z&qTI}iw8(t)eb6_ZWlay{$m4Lw-e4cg7Ml>lVX0$QH4htMv3`p4c-c}TKL%cSBAdMV|K<3#3sP}&*QTUpp zuZD90sV4kpQ(m+uQ9vZ~uhfg!h*b|tO<9L9UvbnqjJfP3> z`unv45&~%!!u=I7%D6$%V1`B42E#-czW*4yI-~vAd-zRaFRu|x%j^HvNxl?28`+MBTbFCm2FP56BGmWw}9>9Cc1$;T*#mYK_% z_df1z9AQYDvC)`U6XX~~sNksRGYG{m_0S~qjU%YRpDB28y?d%}le@9PHEY~3^Fs^e z8Kj}XN%*GbJwiP~uxwi&=pX(2fqx)sD(@xm)AnnfIG-1z znAumdh-&PwGvzAJP9j%OQaU){BXs`35g0 zs3)b7Uo#Ioe6OYx6Ul2zyo2jEO1*h|UwK>I;-_y^F<7kOu@^zNtNo(C?@=?T@G|}U zd7cZ!SFt->3w?@h%v>F$1mZi?z4;yEMy1expf2yQq;~AdtS#4 z!3Mwh*zX<|NOwl`C&XnL+F#+lUxcxW^i`cb3w6LPVa4^0yWi1G3neJ5+IZTFSymc+ zz;iFGN1ZIlK_XmE(`SfVt`omd@6r$FLZ?%(P)`kxh{0KS|4|^yh)_4c_GZnw*JqoXzBX4I6a=q=!pA}YGy`%&=bzcOY*Qq; zi6Lvy!89?E`V;v;P^ixRG%$Pws991JJps_fl&tYWh+ zy~Fusbfv>6548gsK0Js7m!fkHLLxyu$DNZK=fMVQ_JypkzSg&brWW<8>%`G9ZdQ4WC0Gx8YkaeahNdqzB+2 z5ZvYn56p5L#-&xs3w6;~Dpn`GDnjRzXNMFz-EChawGZBX_Z%+W{Ai2@qqLhNow3a0@xUfdr^7r)pH&u~|0H4y2D~f_ zK;`pNL+{@&r%^Mc=J6={2G_hs`F=&4<5B8u<-X#7cECTlNek3c!Fwzhg26)w&AIjX z*`#XOcmdAgL37u0vCTN^T05^a@kx&YI93f>lo~FwL^SQf1RP;ER}deXDmxuX=5QgS zJ0b7JWB6$4L26Ut)da=HOesmj3z^#4H+)t1Z{uv3R;8`y>`Lol6)*B<8x5wW?LN*< zO&c+#9z3DWY9z#CLdrtpnac=5mm%8Rpy=h4h94=_Z`6yc+uXy;_r6#dScNis7}dd2 z!eZH!Xe_+4yyvI`iZT_t!bymfXhQ*fVqi4owCcGU2h;wIIBbVG5!@bZyG0Hcg=2pr zn%)xQrd|SjF`Js>+4|boy59=~Piqg$`{TSC_XmeJQ-h7@r9FPmeY0aJAk0+cdj^&# zyg6zxz`f!O4!nH_f4=(;-d21{b&~PwAV(n|Ndh>TIR*GCcJz#k$G9UVG14&S_~8Dd zGoLp-M?pNpIPyIhp9s90oV?D3E54IO(k>xS0XB*^?W;cETu>uC(< z1l2d3Qp*^+JGGZ?WL%BQp8NQ&!%E%&q++%5+te4+GeC(3Y|iX8X4uW53f8e`Qu`x# zNUW<}R3NM5Qp$1Mx!{)tPJu?f5~}CbQK9yO62~H5J;Tx8>h1>0J5UPr-PgHH{A@j3r8__M>H++TK`xQZA#_IAw0iS}?Cj8E!;i=B1`TeKQch1kgWYR1mFkQhBYA&1-ku%Gy`O9d z#i(%zWP+pO#KYU3?T%#2ubG+dHT4Y9Th8gk7Y&Qy;(jU~dpOFS>JN%d#7S*3dwHT0 z=E4dy^4!ja7^o)LnD~J-+%s%|nTj4S(fgD&q7s%UUR$Oqsj=YxG;378?ETSM=UD}k zj(xTbv`$MtY^1cGHmxf)SIeq)S7=88srAUa$+&48VJah5C+u#!36YlYxqh)pKhUu1 zEmU$U7MvhIVDauIAmh?WhdnAmw`P$2xwXdr)YEa7BRx_(vu$LLio zZqeTB^{$siswZT^!LBPSrP8=D6mJ`QMVNxpkMN*uFeTiHB0GuYCd03aw*W}X;y%XZ z+4pW&Dh=Pf%s~|aswTkNxSMJ(v^lt{UKQQ?a-9%dd}%Ys9Y2UeAscViU!AHB3D#BB z`6jEA9D2EL+IwZWATW0pJKIqbm-jlpiY98BDEppI#Mb@fUCxZ@@lC8}fR0*uvztaE zyl>+A9i?B847|6<=-Jeqx3?+(Sah*Jd?_{NBi zj0t7{$LwbwZqBm3dVwZI@uYa{c;vw9nv!zCy5{Gi;be*3Tj!$Q370ncL-W@Se!mEy5kyM~j?@a3{opm;tfenf+w=pp~flXil6Hm!t z)%p>}MG^fwq3Z#fp3QV0CN}M&H#IGv)CUF&uz-X+KKDqHE-mvad!Cd#ogMIh4 zPDJXoYaJNP@UG}kccx`ilFM#@&|u-2^QprS?b^79*3NLwrP?>#`{I=0(p8RkLm|xJ zJx#6a7`7X`c$l*tFT{NOc6Muz)koJ`@6V2!1v$Ou?njew$~#*ta-^fg%m?W=6>eK?}e`*d-h+rEfRqDN_*e~EIU91h6wwu`?V9Z2MTx7=!w|3nFzN!fr^ zNpp#Eu{9SdsM>fI?mm#7!|T|tNt$pwD%cPie_;0I{5^cKDuO~h^aCi>)E26tq5&EZ z&3a&4(U}`&8eMC@9ug4osu_d@uR6ZltJ`}%`Se;B5goWBI1$txeilmcy|=&TFs}#2 zfO)qdnpezFFCz$JqM=GwnR#C)tYImY!RkyzIQ~uU^+2fmh z&uUpc@pNY8p&KQ=IKulcL?fr=m}MFVR#b?~?q_-0fidFTZpBY{xzt7k5lB8ZyyVPA zuXGXDxhFQFGZgsw;Mw99T?k0(PROCus$v{f|b@?0~tiBFTZ&|ko5b6ZRi zcXt~4>gd0B_g^V@ueMst_5Z!QBa+PH?s&kMf5D6=pAaBGAP#$j?4P8{XzyPj!2jcf zkkQTc^~_KEh#sA@kNLDNUSPX>|HUH^FLe0UMlC9n0s^v)v-i9hWqx?&NPh|*#C-9( zsb5|_*EP#RVNyzsxuyej#eaiBgfR#?DgRN zc*W>&S!h4XeHJ(cz)2Jml|P2 zv@ndH*5b~aj!{t8Ec@ngjl-&Up-Q^^8gh9`AyUu^H@O*zL>N|ES(` zNm@;4M3a`g@|)-oXR~!ZF5(%z=>hU7T4T9=K-au_UN{-Yu`-vQ%J|7gMN6Hr<7djz za(G|utfTAExi&y)w*8-#Gc_!-fG@ML@I*Xog&WCTqk2k5^14;I7M=EQ9>Z&RNQ-v( z_iJR+FVB^I;!Nqd8r5oq2kM5+1Rfy4SeQ#yiVWalV(R+D5`b4)je4c?N;OblcKL|lZ;WCg=A0$+A5M~x0M`LO4|eQ_~B&TK}U z)~L&!2}Wth-x0`uaSQ@u`b<*B$B%iqG$smms`-Fphx6{9t;=ll_FhbV=0g%$s4z;>kY@a&kfy!ukrT}6A>-0R-KQSs)xxfj>!0*3Ni3^8{u zLZSVUci)s3m`7;ht1xKv&Xa)?rXA+fn8#0BJ}kR?R5(-BiSmnxZg0g_$5EGQ6cbPW zv4ZFX3WL2@G40{#@0*cBvjGJkq|8bFQK4_~l6nCNn^j3m(N~TQqk=CH@SY$Y1o!v; zgVCyq11GPrimI(XbZ*HI89xVVb@~teF8{0aL0%^S!_y7P-4T{JNZo|uk6x-Gtgf5i zi(XqoFe@3Fp#Sgb9|4hoU8>hit+A(b=NDzCzwO3wkmQROVUYP+bwn1E&-|9Xk=UtR*6r9t|Sml*yZHj;!E;m5p%f9Zv={uail$M+ArMC9D52D(3D|8D-b|;E?9qQcM^3vb3z2xn;}J-b4A9o17F$ zrdYSj>?rYB2H4K-?hr|gzQ&@ZVALN+`T^xhVC$oZh=>~ZU!|ML9CZFqa^LTv{uhZ) ztp$kh{v(1fp{bm7=XsTF5aNG7Yhw8BKNS>QoO%wmJqtBtq-)9lWK>S`*DW(d^CGuc zLm)S~)vTL%V_XO(Si3X?!4RB3G$dsK){O15t}rYf!RIp6g;354f`7ZKc_V+}7Zg;f zOdjc?w+ty`OKdg1i!sCety>>ZW;uMdW!K2#(T-1{iG~ZFm7R4rWH~M(52oM!5tQ#J zK>{OP%?dO$- literal 0 HcmV?d00001 diff --git a/demo/run_codelens.png b/demo/run_codelens.png new file mode 100644 index 0000000000000000000000000000000000000000..95215d8df424dfd17026adb6c1e4b20975f8fb93 GIT binary patch literal 16323 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 b@><|d@yAYV2T$bd`Y2Lj@}kAUZ$JJY^Mm*- literal 0 HcmV?d00001 diff --git a/demo/run_explorer.png b/demo/run_explorer.png new file mode 100644 index 0000000000000000000000000000000000000000..b5666a1f24817ede6a56ce749554bf1eb2ff6c6b GIT binary patch literal 29876 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 literal 0 HcmV?d00001 diff --git a/demo/status_bar.png b/demo/status_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..ff826bd04e43ca1af5e2277c1bd71de808be8836 GIT binary patch literal 9527 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 QA4E~