From 76ad8d62bd6b75a35e3cf4f432ca4613b019ae94 Mon Sep 17 00:00:00 2001 From: Dennis Schwerdel Date: Wed, 14 Apr 2021 20:22:51 +0200 Subject: [PATCH] Initial version --- .dockerignore | 4 ++++ .gitignore | 2 ++ CHANGELOG | 2 ++ CloudronManifest.json | 27 +++++++++++++++++++++++++++ DESCRIPTION.md | 3 +++ Dockerfile | 21 +++++++++++++++++++++ README.md | 24 ++++++++++++++++++++++++ config.yaml | 4 ++++ logo.png | Bin 0 -> 56591 bytes start.sh | 30 ++++++++++++++++++++++++++++++ 10 files changed, 117 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 CHANGELOG create mode 100644 CloudronManifest.json create mode 100644 DESCRIPTION.md create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 config.yaml create mode 100644 logo.png create mode 100755 start.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6bbcb32 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +test/* +.git/* +screenshots/* + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d570088 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ + diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..55629eb --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,2 @@ +[0.1.0] +* First version diff --git a/CloudronManifest.json b/CloudronManifest.json new file mode 100644 index 0000000..13cf59d --- /dev/null +++ b/CloudronManifest.json @@ -0,0 +1,27 @@ +{ + "id": "com.coder.codeserver.cloudronapp", + "title": "VS Code", + "author": "Dennis Schwerdel", + "description": "file://DESCRIPTION.md", + "tagline": "Visual Studio Code in the browser", + "tags": [ + ], + "version": "3.9.3", + "healthCheckPath": "/healthz", + "httpPort": 8080, + "manifestVersion": 1, + "website": "https://github.com/cdr/code-server", + "contactEmail": "support@cloudron.io", + "icon": "logo.png", + "addons": { + "localstorage": {} + }, + "capabilities": [ + ], + "minBoxVersion": "1.8.1", + "tcpPorts": {}, + "udpPorts": {}, + "mediaLinks": [ + ], + "changelog": "file://CHANGELOG" +} diff --git a/DESCRIPTION.md b/DESCRIPTION.md new file mode 100644 index 0000000..1206058 --- /dev/null +++ b/DESCRIPTION.md @@ -0,0 +1,3 @@ +### VS Code + +Run VS Code on any machine anywhere and access it in the browser. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9488564 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM cloudron/base:3.0.0 +MAINTAINER Dennis Schwerdel + +ENV VERSION=3.9.3 + +RUN mkdir -p /app/code + +WORKDIR /app/code + +RUN curl -fsSL https://code-server.dev/install.sh | sh -s -- --version ${VERSION} +ADD config.yaml /app/code/default-config.yaml + +RUN mv /home/cloudron /app/code/default-home \ + && ln -s /app/data /home/cloudron +WORKDIR /app/data +ENV HOME=/app/data + +ADD start.sh /app/code/start.sh + +CMD [ "/app/code/start.sh" ] + diff --git a/README.md b/README.md new file mode 100644 index 0000000..c3febbd --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# VS Code Cloudron App + +This repository contains the Cloudron app package source for VS Code. + +## Installation + +[![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=com.coder.code-server.cloudronapp) + +or using the [Cloudron command line tooling](https://cloudron.io/references/cli.html) + +``` +cloudron install --appstore-id com.coder.code-server.cloudronapp +``` + +## Building + +The app package can be built using the [Cloudron command line tooling](https://cloudron.io/references/cli.html). + +``` +cd vscode-app + +cloudron build +cloudron install +``` diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..0f538d1 --- /dev/null +++ b/config.yaml @@ -0,0 +1,4 @@ +bind-addr: 0.0.0.0:8080 +auth: password +password: %PASSWORD% +cert: false diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bfe3d9e9950e501796e8905bdc4f37b51783b10c GIT binary patch literal 56591 zcmZU)cRbb6A3y%KLXx)ZD>ni+f9@WM^b67ung{P08My%O!hX z`{Hu%_kH#Gd_Ujc<5z#ACjcP#1pt^| zBvtDwfWJ8POjGS1KqCK5tIPTf&IB~>-7$DIwmRYc#bEBBX_L^=vG+^3j#=g2oqG*o zr-w#V-i@SRhiZqgvJFL-dDE;WeDAft@S*97{2NBLCwE{={-ap$Wmz1KN#eDQowu#G zmvLVGb1J@ z)|{1<5#G_#F(RqRW5wUv_QBS)>FUAJ>jYKHC-L2w{m{wbAKx>Jw{mlYG-G2Fw=ljr zjL4I%7I~XH{CLupJVuCBqbB^;3$vVa8tvoevEv**iB0OE#3!ES+MVOo)xpDUhPM## z-^zBEKJ`)p6y(*&5!wCMG{?p8OGE{JX;M;YNM2p_p+|+NULDlf+(P%@S!b-L4(Z2! zZ?^=zyfcN8?&QpSOCOq2RR5c* zrvS3@0pPLM$i?=vt3!1QyGte}&3t1Ej#j8;Im^L$Z8n#~^<5**;o56l@Jo=B*&FEs zCAL*;R5RTzt+;@ixxF*@-#5=Pj&wC?n-XgS=9pFH`nv^eMW{|ThuxPZ?lv5EwY7^> z>c`etiYYZkSd|v#9R-GJG828b{j>bLEoe^&M@G9JO%5f;CR^_RFe|`9&F4ob-ql)+ zQWUNtb;3BJij>`xBCJDhwF|Yc#kMD3H%d@T*|}9EUOd~{5_`+Y3~JG=&UU{YYFRg% zI2k>G=rdxc_$SDSfiR!vf7Yue;7YDOeNA#-kw>17P7ge~xtRZ%rJHZ8@I?y!IcuR7FP)o147zk4~|?AwX26y{ciF^V}%U zvgqiWr?d_)9q^C!M(@7K;nf9=cAuiJ?%RN+=ev+1)AczF3*ba>jN{ifQ9Qg^V+XAo zUve`^EgpNX?Pzoh{j4+fY=Cam@AFjWPN<=`Y0KkV;^xQyZCVbtJa{hn*kwfi2C%=x z6+5SA7#`5JBrf9;h}@EMU8)|;4X9XNA=oc1UPm%Peu+HCaP2`Wd z9?8oB`ybog1#0k5=5|<6uaa0H8lIuVu^7jpqo;rJ_&EoE@xNi$hWWYcQ-WKds{2!j z^HXCvIS0hU917>eF=GE@Bat9!#ZI%FJC`dQ!!NG3zLQs(YpI&RpKgguX+9%2wc)@* zNOg#*Qb={2V-ESRL}Z?Zc;20yDag&q@x_k34)JpOK7-5Qh$_sv7ggdph?HUPNc`*O z*GseckN&;0(qC8lg-`<1`)vE-WTl>E}${iYkn zmgz9_GO?|ic6a!6ak*(Aa{crBwSdK4kPul&#NdL}B!1hE-4ixE%}$n#dc!=Tz%HQP z_CWb-tC+JBHc^ol#`_e;%YQ`zBYE6;jEPD4`s*pY<#P-(es?d3z2s?sCc0qXuWQh= z+d{A5Jl#KXIM(~(U9E31WS}pfiT@}sF+zU{P>-7P%6_uQdB1xl+em5@uHi7#IoAV7} zADhAHZiLbChRKSI7zJ4=0K~S-f3c2}jdk}O&swSSMQrRj$OB5CwZ*;4;75PT{ca(x z@BSCWRM{$`{YxE2nd4llNjt7G_y4UYuRyT#TsAVeWlUI;CNFR79(1sKME%dUQJdRPgqW|U&CEhn3`aS=&Km$0 zHNF(TT(qK8JnleWRTzR2x-8jlNZMG-NOXbD`@aE@WWs?DEz!-;l!tmVsW+_@grxq0 zKBZMDkrt0otvt4+0{DXo+%~iLhYej;7l`QrKH9&RAKi>4y7>2^qhy zf^=1RFX$>|R)MLt6iD7V#;XOZ*uc-vpoT+ImkJ+m9$$7O?ew5gqf%;8u#>Zo3J+2b z{_>U8PX+!>oSi)j+=|QK3 zmuJQK#oNOl^3tw(vaftH!*dq@+*uxar^To+Z~ZvRw%IlVE=Jg0^87Vb_n>ZEF(A0` zTcvMgTddeM;KRJlrwiaN5SB}qFIUZbC+?#}>@9y-DUVa|fbm4WWTsp@I@B*j6*xjY z$x@8&%{S6p$H}?2R6OlJT+&qXIkfEz_}MNF*mLlZ*@)QhB$>?|RJQq!aup*|{K5;? z_}1+|EK!bxRm znBZMW%aJhEdy~A0(R4sx@%Etqu)p5?mkmtVXl2!`Ya)7oF-J(p@?ld6HH1tv?2SBO zljc}zU{FXRtp6~6T~7vxK>adr5>TvwWQ2ty*X)01b{0Al_xjt*6}*U#Q$+u1`a;nG zY5V9eTTU%Qh;GFq+iuudpxhZd!vnM|_v#!3dh4`W@y%X!9@8W4B^07-QLB;JH+}Yy zMD7hftQfhGWe7w}IHql#3Y~?GWjgUaDud>k*RK{c zR&Wx9@BAlQ$h_DIVIocK2D!Ktz2*n(MS&M~*4Yc+17*G>2v|C3Pc-f38k!aF=>*kY zZ~ZE$Zs`ahQH$euX{WN%-)SS{W&X8GYm5kevEWBiH%N-kA$Wn(ES7s z#GiLV*w3GGeFuaG`!Yi4U|SrxXtIa|#h>+E<^M&8Tr0SOIS)h` z$oS>;ZNuGPlzl61uq+8!t6njz^_feRbhY>p3^6%J0znOA-Av9yrD;r%F!7{?os0O` zkXrktJloNbv0*z#Iuct&S7@h&;T#ShcC(uoR4k03%DZf`l+saO2WN-AD(o+48Nr>g z9L)??5j1_S&%!IGN~Q`@V5Z=xu^#2gmnx%bH8#K-#0VsnJKy{@FSqI}ajXg*1D@2Z zRY(FOzUX4#9ixh`=`tb9li6sg8%k&Ng@n)!}CVWc0;X7 z9ak%`Ec(?vRiOp@XI)l~-7_+7=Bh!@mfo;=WtL(w!N9~R_k2~-gf=xXi&J?)+K=E8 z(S{_`1=t6Aq#XH;jBPdHLI$L_(8b>>M@pSdMVWx=Uqb{N6BipiXJf;V>XJ)bjoqD! zK;O_2LUkTJ`s(6M_WdHnCOcQmoo`RbXdS2?k8WPT6=gKxt5A7gBqx$386nF8KqU6T zY8Fu0CpG}@;AVdzI$goxJg&Djomr?T+K5YH@=HZ^WOKl+nda zIZ6Wdc62@GDSmokTL z3q`J0i@j$HtqsSu=z?g~{sMKh!Jv>i+V_vE)FqC?$Z7noNXW^F&vIL?4y)n2364Ld z?3!gBeV7Dwu6+SOU2DD?Gb};;5ip03%NLN_F@FP`WMfFS`TqW!(wN;{5nAVkkr7wL z2VGR>!YN>%3HN{=&ydKr=d9BC<~4`jD*d_s$7bm#rB}zP%RQ_TnHdrOB$SeHwUha&P zvq>excuwW@`k);%e`sd==4>vftryG^);VK&pJPES=vY4YzId1y#E@3@IPp41HP34J)C5y=CQ%|-tq|1F*C#6&FV+(0s8KQ-bvl_Cw7&le7Q4u<={o+?lXvW>c}qs zJ&0x?yCY5CQQrE)9?%b%R#M7#6+q8WKdY)bCmDKkINucB zI>v^F2SLD5@Q;0o0289uTT}V?u9X()l@ns@3LtS%r5{TfV%#FhTtR6Hf ztRr?J?yH=={5tUjg6KgJN1u~Ft<+AkTKWE2Pz>qCn;OC^F7jJeOI@^{-NVFF$*Ne} zq2_j1CRPRl_`^w_WA#~ahL;QivNAMT&cn#Z1Es68K~NS`y%kelfwwb z#HVTEkTR}R=c~o}qg@p3frG!VDDJzZw|Q5U`X5@Bm;2ig9-i&Afq)2vK7YGb`t1x* zZ7U^A0b6d<+P2c@&(W^rDw23$gDxVyx9u<~+(90r;{i!*9q^tX3 zQg?_NXxXS#P-I{@%T>F8au}sejxmoKTF@6tWk!j$hBLc?3*UO~?D$Aa?5|;>z8$Pb zWdPdpI7d?*%B%B-P2X{q=`ufxlHViOoUpZXk=mC2e#!^>=)Cl6t)I@5PqoiPNDTd* zIGec6I3oQpMC$Tw7o3R;LKS!d2jlx-Is`Epz~hCMBJ^wrN$yQ-^N@@ReY3T;o}TEb zT-;{pmiM3c*zQwz_u@4M{VJ+2Jy8n*?1j!ep$4YIC%sCuQLAOU?e+EF{SLGL7`#2< zRAcd1Gc!u4Fq@#$B12zm>}N`aybiqxK>pCMrwh#uy5=7TH1K8MwJcOrP7*-`Za)Y=>)*>~AsyxduG$5CB7{Ms0y%W)W&7rf zb99CZE%sKTFyX|o;C~VH_3>7>X0=G+4U?&sGn!#))?-(Jw~o^w492Ku#CTe|7;pam z!{(A$iu})l1~8V;1_~~(y;IFJ+ENgt1S8waOU>$hk9OOo3e4S>4xt=d_0tD=aS$?h zKMg-~9b3P2$j32gn6&P;kX@sPrMo!zF)oL3#n7_+@cr>5@4xC5mL&IdJ}Ai0HxPIK zz9x1LRo0XMRuJ#Dd?)8U9gQsO_70^<0+(eCc$KQiaSgV7Fd7nmeR%(k>xR#do27H| zmE{3N)iaZGdz10z$S>^=@Uy$P{}{IR|KG5Y1uu6(!UIfk3`dVbPH96x7d&I)u%2{c z(Gt`9?fpzL{gxIkA_o80qSHPns;_Ji_$P+0(oIAb^Vzfd7#j{xNKpV$#;OT7(~ZJ^ zrPHn<8cXv6yG1kH5np30M+~mlTYz2)M7#|S4p|8t_tBwoT42uJ{?3zZ>H5o(J9YsW zSx>#*Mre@*B1Ty6h9PD$qvCB+(eC=K9{sG}=}z*v+_!^NM}_Sx9dOx2ndXckp71-s zIZwKC!V0&k0VJv^ZN^CuyA{Vc*^y|t+o&S>AL9}gn5dBQ)Nn${wX_+qYHkR`{q$bjHO)P#y}p3 z(J6pwa|o}qppd`wagIoUc>tazG5a5d-(K#`FdXLR7noaHA7;8-CaXH)#+xt$GmB%x z%>fMTFq1j{L?hCR)=W(JVZwh*F2suK z=#`&#I>}0d#UKzs0>H;MDLn_9i8s5BMno^GUT({rHOHrK$o2*~U>Dy`zxcfFbsS&S zcU1-sF$y4v=E8d`RNr#b9NSP{mGyDz9wHn9?gGx90gMZRqnc!)BFBo_x18bNAZrIoC?0aN)` z2*Tb}y_^pYc{I0|6tTvxEGZ{*!#?~hn@NvS2mmYAz#FsFReQ@n@A+_?Y4bovKK+)+ zj5yefxo2|{b}o$lDT$p8FfCv5z6}|KF@CW)HF37?y4^I5 z&x5@d9k#goh7U+*kRnjfcak>u-=wVMI$pV&&TWvM%=pSqi^ATeMvDTF3zfD`>NLHd zVuC+tHhKj02#~zYP1cS&ojw_Q&j-H;V@<^Kb7asL$uQD%DJ~XT;jsB8w?aXtEQCB0 zaC6+U;#xD&=gmJ5@$*P<#!I^ES&FGw;x0kcWKglS?&a!Hpa}@`YB|$ ztsvB*g8ps1#_W!o-de5*9==uMG?TBE4wo+U=nCP9E0Id@ICjb}`rMpp>V_E647W_&2 z3ddH)wA;a1G8stgRijYJrFy3I?V#10H%^hgtH+0(=h1*v!N?EW2^&Y!4;-fT>c3># z`0?AdnS{7)q9s*%S0*bphz(%FG!!wO*w7W}yn5?3PXhXS>xtlC9cE-)jB|9fWEh>d z&$$D@K%yIRgCcX-s7!|nExp%rL~ySxO6)KniC@N74MAE8ByEO{^2$tEl}b50ZVY}X zNrSjlV7#i1!G1l}`5(6gZcZd)vh2cJk5$>>CWrNQh6dDVlA+`9_0-wAL4lv~z9udoai5c1U>J;!@u6pJkQaZR-f^ zVvL>JwMfg@zTk2XlmIAnW?7s0@z-oCE6i-^uMN`EU+#t&^}oY75MAj2WVxnyO&|P< z7igz01k2B!8$R(YRr3CiYj)Poov7hg!cmVJPx$~XI&vWSIj;vD$ULvzxhFopmu9*2 zDhU?Dvs$%~?pDqNhnYTU%34;C`X}{(s|QXqPQn6kug*A+!kpvwLP2ux2uMrk+~1g$vz$`V z5Y9QTM)C8kb^t96pv?xS1ZyU0r|ino)zrlL!~J41o;|tsP}lvu?n4r@Y>B_acYzzQ zA1h6i!kQ&f0~oVV09br=M{UeNkJvqptFL|89;n}b;*EOQ2WVGpXFY6@$>7=@Dx|$K zl7kZI%(h){1_(I}gC_i@SmdQJ9WyYLbnGxGKi~FqGQ9k%a_VYB% z!b;82ft=jz*VGAfDUm2U;bCf^y-F43t(51z`Va{AK%?Rk$vK%d0!e zbns64t}I9@0F!4AAkm_oHfTxQnTFR>3{{URe2>)&oUV#en@g85#=CfB9V4xut zn8Xh7K;fv|X70~zY}JZcW!vokoN(n&h^PJfS8=~P3rv^D7dUdf)Gh6-(=6o}HyabS z)ZV@fQ4?+?NFx9_t#8}uj(?T@((tEOR~9P-0D2<1VfgVpqJ#f+4x{QSqQhkoC%igv zvNhdFu`S8BF0EYdp)d%#Dzb}?;{fdyR&dMtVpL?HZ>rcV z_7DC9qrQyz%t?IGGuD=np=x`35L97|M1_QV)>ot5gBe;VKbe&eMOIv25 zDv|(TF4WEw%C5Ng&Vsr7d4H>d3_ZvlOgyaK6^nX~KK_b2lk>WuSp%Rrxw8A7 zzu1Gbz*I@(YUiXFnccLHJX~MARka}!YI>~Tp^b@mXyO%1!ij%Yg11n}6XG#nUQLd- zulRjs9_SJmq5^t!Z)vh((F-UgmF;fuJTTY=DzB$_1c^L>!a!Hw6z=C?WGfTw-%;>Tob*fUvPo*w63In0&kkmhOF$2YF7U zG3X*X_&WH+e#4~`-CWVCLIezX#|(nqGc|oi0CufyOFhtgVn#z-L8PQ?rT7d;j=Dy( z;+F1HjX=C(vvGR1YOq+o`I9lUv(>X7iY3RX<<+gRuKX3yc7U?=y7celUgO(hC3|(v zSm!0*lPoK+@Fm`Z)^K1S?Hy8f5tIq9TpS-Gi`;5XiX9XiPUd$?t+{*uNnD#RJX>^G z8`MMVH?>%sxmCrbJ7hWm4K-~90^Rq1>Y0X*0TmFTbxR}g)Q(~q;ed(h8hL`i+6TfU zG&{35-W3FU;Ea%JyT@%D{`-n#i9>9(YwgxmJe3w~ln4M2H9DjV93xUZu)qDu!57vh zJ6j;Df=xTV8UtQsz2P*8J+1nnvY=|R=!F0KO;=Zrlax6bN9LdByrv6JpdPg){5S)N z7{8_Qz!r=B1I?>9wb5L2Ml_S7UBt`Gj)Xa-#RAz9O73k((B0J~6-yMCCUg!vTeU?_ z3{PXOHfzDw<#GRvGN#voOmMK+gdUEY$Mu9Ajg>~UUlRWK3jC{cB2_l1yO`ZuEgYjS zH9#*0Pq-8ofAF+0>H_Y9RjE8EQB?JtGn(sPXS#X8-vSy#M~Gq%8~-O&){Ng+K?S;K zE=xXH1hXK>YoE-sd0P0RAvm+9U>f+#BOQEg9=Bqb|I3pks{Sfy5{kF;+-(ryv(aS) zfbzIh7Y*gTBrWpJ7seXlP?=n;9h$q9tfmp&1kL54l5PR$@#pUEcb&g8Dz`a}hfnC_ zzTyL%S*af4+`r7}dddL|#UFy3`D`wEL5-i0ZQz3k7`3_&ZEXgFR9SUE+CNwX1mKTP z^zSE4LZnRkAGbBpsIsbpzq3zFTJ3nv8sGqeD{!V}vyy~eOLg)4cTv6%L79vRw_6Dy zeqjSog7ydbph*IDeXgwQ84C#Gfw7wtd{yurmIvTcV7l!ozDpJ*{G>iMT8+FjTB3r_ z$an7{S&!$WuTLBkvv(=%3Q!WDoxnmUfwk zk?O|ADi1|h|0}+Kiju8BqXIbEw_a_1A+M90AYb+DAZ!tfS9_1ZkVJ15doz{X+(^^s za9gOEh`k)7B;Kb^CUW6L%|sPhq-p(0`%}%wpH}=BY_u$MUJKhL5S`?RQVDe(rCSx( zj|R0Fq@P@?QwH>2+n6MQ#Ru>*%*r;P*u%|v=9ng0fx=1D14cGCNI3peAz4Nsf_b$wiRq53^+QC1M7&hMo0 zdQQK|nAV2l=;2SPVf{0_BMpfc!o^&F3a>tg&S!lcKgvpdkKHbeDfzzG9(zxrdU6 z@hdpDQN)mJGtOR(A>p*Hn?bQ;al*h6AZnl&Ux&8SuEWDM6v@YtWeB0?aPOuKdUUw@ zAAdV>(hCVM@U;S1*c2I7{+G|UXY1{{=7>*T#PWUu6Jvz&2^aTf(`v9a6D!^YSr^nf zGXHS#9O_$*Rld%|h1fhPeQmMSVuyAOtv?2hkvTp0veB9HQZW#F=m z*fac-WTbp&Tl{}~>941z?rQt&Du7iRnc9!xpFw#eIoQF9%*C;e(X#)4jBVn(Ssv3mAE7R1Y`44)H8` zGDSq-^Zy24dw0tg_Bx_}Er5DHkxP`^R2SamG<8x|HYmK-lY3Y7JD{qqxwhQya#Uv!LLJZo5J^#x2IQp|1B$6T*xC%Y*CD6K-t|vg za<=nH$(oLASMD#XN=8&`tuU8)r6^jBdBf$8+DiS*FS>YKZ^Ml4)hC{n9ppw*zq%|z z#*UC|?P`3wTSnR5GjiM@ivkuUw^)D=%iHyVevT#s5`b(>8jC;W7gE+3IzbRVf^Bc&WQn#UWq?Hz)homlI?uOs2*qTAGdOd$Pz*=7yZDckHUa96+jw+9JCT1l$00 z_7@8^YSPrJI=nXI4Pf9P?7|o+Om^WQa9+sm0q1|l+{bX`_yVT4t0#uOc#C|E3*#4S z8sqo>^_#odOidJ734e3FMGC|J->61&hHNUy;7cHr^;IJ&Qoq{{Lk`7B_hWGtK*|Pz z;a7FrQsSn6=hnKbY*YL_(7a$q5O7gidLk)kVZNZ?binfv@dQvj04N2}EgQt4t7X-F z=%4C=WF8jplamaLR(86}n^t;YKbGYr;q}asGc=4=W`A84ZnVD^&TFI32)XmcQ22Hx z2j=E)@yKryf+Q|gr)#^a_uxPI9#d>KHfWS7GD@mTTA+% z@7RyeF!Wj6gfBqDio(EB0f1md!BPV$CG&N$%t`<8E`28y^!iI=6au+_k?V`;k0Rmy zDr;48rjMXIk*cl~$-9%oSf9)6hGrdE66(Asn(vz@VXJr?DI54MkT-#lw-C^-TsS^{ zUfWQ}I|oAQ|L9n5Dopk>o8Q-iD6#)p!F9#U zB;t%QOD>L<2JrYpR%6cm2H{Z)Ou;+@Y&ko9^3M| zXHt)!{M9cDg@wL_E`yj)nkh9EueT^+tJ=2`R%EuJ~I<^r#qFYjOV$L@J0)THR5kHcnO0D3+1zCi$FKC{C;oKyNG)Z1`~CKjXk zNY#hKO}yL+!R(X=AIJY@B0UD5U-CVB3;O4`gYLXt>IIoF*@))=xk*KC_~(h@{ggUl zQarNF3P_)$G4U17L3bw)Sp{)so2fyTLs=zttBk-0?0N5cO#ZlQeS{6DG~|hiPyk*( zFcS=WT`e88MzM~1?6pOb;KNT_gMj0v<3y5$K^K++*~0GG&0p7E%g7MY0r`)wK!BfK zd$qXsy1bnvJHF5`bcOWA9qEAyqs<}zikQws^KL99a^pG{>ix>o|H*5VivbmctauoJ zB(eHq;Qk5+$6PTIvRGX1jLab8Wt+Id!|p*5`@g>+a3-MKd#Y}G&%u5NVXqPYzm=)R zR(5_K1!fN6nr-SRdCt?Pn1=)Kt*tAm)vqLL&I9FRI4~>hfN!iCqbh-uw~ds*k+nhZ z(R#}Igsn-e=c{i@r<$)Kl%3}!a{~|?JW+R79|74;lbA_@3d9;J6#JWo+$#rA4}q!7 zGeQ`Trs0d@va*)Ov1O*$pl92Q6 z1S4{`P8E;PM+7fZstUKA!;Y|Mc9ohfdGO8gw_CNfv?#du%;uuGUbap)Z~tY6Jr^BP zs;KpLyxA?Kdztpq8*+@3cbn*Kt3jI?7vwBFN3*cRpDR|8+5zyGc^D#_+Jl{R$>3L1JF^| zdAkD|#lwKu=bdO?pYip2Mb&k}!4GIxov{`JMFj74EQkl2qS`XZRSaO-yQ;zJiD&lL zevDm+^3oh+HIAL@>S$FgC!n@f1&ohXXT~xp!p;Enn4|6_`5)C?Xk$GDh{7;dr-6tB zV;WfBmzw%;gouXME$jrF*LevvB83f_Rv-bf;jg%_m^5j#iE+$;cq{uvsBO`K(n4?n5( zdd1fcJxhiqGyO3R>)~2&F=Cx0F>ineKpGfuY5hG9Sgn)RsdXOjsfo4CJRFI%5lA;h zH|T^{Zht~MjMI-AP{YQhNfl`C1QBaAKX`Ks^1ph6PYqa=oxyAig|EPyuhmV07og%7axs8C)5T_tgeW0V0Yn)B0w-H+*Er6( zL;2i@f$CKgDNm30l%`i2hHJeNWZZa>`_I-qR%*PdmG_jR!8n>0gB7;n%oZI=QOr`h z(O&&}0{dQPB(|@(`tpNL=zh|j80am3wK6tk0~%PIprCuG{Ly=ItPFVueCVZZlEGf* z0rQEDe-BC>xNQ>)clx;E8Wqs$;+k3-5>i)<^X_O(`Bm>afRHXs2nH5U&v05s3>6kF zAe^i+!L)G_zpgO=Q2_RP0L363Ku|8`P*BoYLU|HhuCw>JdcL0rI7oSPl5Xcu;+-q39@ppyjhBZUuEE)Zs3P73 zvn9=@&_Zh$Lyue(eG&J!x!}T@Rqp~-YsHTC4#ZJ^SwMBz$$*) z)&L^I)|(DS6jwcl<7%oWd?xR+cDby-VqsyKIphfF>T57M+NLY2rbM27(PNIojTtjP z7ED(nBd0Xyr~(rB%ay^{mFD?aIGiHK*Zc*~DG55|#GTQ4*k~ zvd*~p5Dt+u3Myc04tO?_#kW%@-87a?7>E~++vWGNIV!qk!eTOdk>R@ei-$kzmpw^M z85TK|X=TH^b$!HBos{ho=KOov0J z{zLysFZs+e!oZO;o7L>d9-iu~LQx^#& zKg8ZTAPCtRB97f92LaGZxE2Np%TV!RFHqfbg&5ZYF7IbtfKvsCEJ}K*fd@O_H8Wy{ z;q7WCoAhyQz>uVfhL{@KphBxpJ&Ybw=H&3=!V1bK-Ib81^8nAy;6S`+s%khddfZ*- zV^V0TR2^r`2dF#Hb|3vPN-o@#2Md(NtDe}OZH$&8SM{JP3Cw>av>xuI?Y!b&o&zu^7ApfoT|%5B zu1>CvK%`3iPKSI;52#KM29+K>UXP3NEoqMmvJt2=EhI9n`!+9#*bg+C2~wiMj$IQ= zy#1B!vr(L&Z#-+~db#TP$HtBsdVnBh@s&^+P$Nq{=^l>L0_ix?;SF!!!=TvcZeh&_ zEV5PlUZlAYTy?4^ZvEMPAYx~)YVG(poATFgGTa6}n#|ZMMEhHuIiT&i zXGROa6*ks@ZUL_eLfB+XapJu7%Xk>)w$>c4OXabrL1qzP4I z6=Gmv3Wcv#=&Y{7*O(m1%$)|BI*gCx+t&gf-_N^v`5OmqdPc~bfWXwzxv=ik{x71k z2Gr`ppl2-PAe}9yJULEy>v%sc#OxHXf0XKoRp7cz5dot>7BzL4Nh!xV%GK~o+RV+S zh;A`=3$Gt+W7HlpLIjNAlUwT(cbdmRTn{NOMDtqk0>rY)Qxl$8K%$)VqY)|rT~hp zcpnW6)YTs3N_P!_xDgDFywme<9n*tjQSfThLYDaS5up)7EA!n{Bc;Rb_EI+;xJnP5@d>Gg)Y`BI$WQNdxn zCG=M7$30<=W4#G64IbI+$N|0asmA6@$iFJCvo-KVj|7ASzkK185swJM^G-vnigNa; z2uLTQ*KyQKV~!uh4d+Zfu}^l}F1PRH1k4XJm1ltHYphxUxayCw^LMXiGPwad)!Db7 zQ&NfuNR2F^b;KX^gLC}nsHVr>%3Fw>F=4TkZ(0SLE)b~@RInT_Nz&3^=Egn_8lbEK z@R|X)x9YpqDz~=kCHr1@(LA0h&l~6b?FF}4FkR@5cwa2RdoJiYR?_>4Gh~gHr-We; z{2+-=HcTq!kv3*$YE;bu%d-m#@D~k`zJB~XwX}3xgm2eY8lo3#JvZxJV?7MFIJ~_u z;^3c6cMiH&wVkhfx&G$`4RSZ2Q8f_yu*PAcX){KLxNIRh%LTi3>i=u(FjH%5>s9fc z4<2Y7VhI|4PM;DfT!CA|aZKS&8D5#wB1dkk=HzYr7cH--1Ug#mPuvB=@)bG%%Sc@& zKhKo*7$S3mRO2F@6ysowcRq2Z0TFd64FX%hEbMvfY|^Zb))r8G*p8KZ^GT~6s#bFP zr_S)iy6ZJlnx9@F_j8}S2qK&&I`wor(7Vt>6|kG9r|V|LUr2d-{u^QmJU2@&4$$zJA`K+=V!d5=F<+tj^uUME z1Xa?v%k6PHx$wPj;b7EnJOhAL6;9M@Y4TRPC(E3wntP4eJAW?@e8U434-&6HXfVLh zc-3)L+ZFm0vln`a3K;7aRRy0NxLTq&|M>5^>q=gx=+TwiN$k^A(d;vy=yVht(v42DoU=|5Kr_zHsVBJm>of~>LAN9|Jcyg3w*qQ(VT!0&5>>vnALXI7$buYB?& z`Ys9pm3dZ?_9s|bZkfM344LOL=jORd*r3QV!~3T)q>kxm(F4y0kL(NuH_n4Ka-*tt zIxgsPJDRO8z7vWZ7~-b*`2(Z0^4Ubj`ZcQVhG=y#W^H}KaUdY|O!eR7n|was>3X~f zoqjy%U#D-0i4nk1XU_#b>@^sM))I4@RaYieGRU@g3gB7ach4FhuT_aHWtdYjD&h6M zlS+XPtMvGr`)(%lW%@N3TLKA#UFkPodVI~w3v4*`C=t_~T?KQMvUmQL2=~_daD#^Q zlnU947hz3}Og@f55u>kc^77o={-R_@d}`7_BaXiWT4PHhsb+FCL-gw5ojw={x!3e@ z3l0msN?{%&{-Sg1oIUK6Qm7=0`OwNb*DXa%jHL>sgNn^uS8G|x;T-MEj zTk9XOua9h8WC84HL7oPOpmnzE^69L^03UiVT=r1>{7yh0yo-q?#-gqZ8tjuQ{IStUi|f`Lv9A=5j2??8E*?=#r-NLxGN#$X>l_GyZZwNR>62ZhSqkk9o(qx9Gc0}Zqw|wzD)&M?_^Pt$AZz|B z^1~xxDa;FPV1vbjJ-t|t1RX9gul5N6lYsFt&2_S>VQqGV7lKS_xs3V=9?*soE=+)3kTP1hVr8D!W#8 z$J%a(`J`TvA)(I_QC5`dLVrRZuu&ofO2*;r63dpwFU9!oiP2M21z<2z+@=I|>oU`!dH-npI^dNrpq(Uxc0+(2Z7wOY& z`;T~7GO{voEqk^+8vqqz_@7fIkbGb!oDwo=P2lQ1a6-Qz)M7>!19n zVUcd3!p35zv7V=Gl#3m|=li*LT6R@wISwCwKNU6j1&-}8fSy5e>eN(JuL z+fae-ZFi8+1iP4NYph3K+q4q}y$XG2JJcFYh!niY50vES2>*&=xWTNa;p=;t;vXh6 zL#U7ImV0o^<0G%wU$CcVL}R9DBk>l5I2eOL0@k#|cK2tsT^A_@H0cE337$|t-tJz- zg)&fY<^Nzaw>R!E;Hd0!_^Mh$Aut%y3)XOJy@N^w`IGyNd);0k!8aWXFgrgT)ExF= zEI{XSphPOJ?|<)^YYkA=lgqf*+W5%J4$2T=NVGDp6Zt z!noJXR_ZwHD#)e3xnbh{k(&fW2?4i9CsLya;>0NQRBfB;0|UI)x9a0a{@(`P^GUoe za3Z?;5*8>hwKvH%C~W6B>rraHpb*!{M#sS?FovQS053Ey@i$-c{f|hJTg}9T?-{mj z;?y@L*NZ$>5jQ$Xoj8jNx97R0&8`6FBr$HK8O8PXzx^jUQCR^dYG4L62X1c!AD9$K zboWQojzsdA9K2I3n4IgP;hN?2a1arE^GeAKU%QknPZiebV+N!#`ZYv&TWO5mnPWOW zx}M$g^%@W*1}sWRkPKNEzbU|8v6z?;m=v~*Gzn(=0|6ksJNXiM&17fZqui|^gB2{@ zmQRs>#jFhP=EJw%fOluGJ}_;rr%p~p?XumcD(#xt+gX);jy?z^%HZ(NTqLI(E5YZ% zb=Gyq?}b)wfkCRbh$Fq2m6Xi3T|Z&eZE2_p^6`jNtbA>%i&Pg`e1q{Ei>ABhO7F^i zM@_v#b$ly(1Qw2f< z6DB8Gsy`G1z3nX>O2s&OX;KgF4LXEbpR$Lh=}M>2_rm<+vB<9nw8$Ia=OL4E(XO2L zwwWL{ltAte%wSZp07H)yXLybG-!I4WOx2rpli%adOTpA+7Yo7(L9-;RIuF?#xW*zZ%8hPM~@Rqw9jUyQ9;a#kGvsp%g0H7aR9 z!{LB4#ZKfmnUb=}O*`P)0@Ik6NgaM*IbPoayt&i+W^}N`Rm1!sh1UVXNAZkDo}Vyc z-d*eV->~0vXRrF8lZvvu4ov32H!$Ys-zacg1#c`Nd{jW(+yS(WqR}vcKi`rh8sslJ zb?7Y|J)3#$gTpqWAJa_Dv7$_F`2p8vWK?5zU!(KP=O*%r4cRte_7W`O%_hUYcQo>k zHn=Y=%3zzS(S^ijE|ShWv|H_f|eaN=v&;MyU%{` z?7u*>IHO@yjuHYzEK(;R(yVN37Ltors=P&(eD=(1^cYKOsUZQ5yxXW;FH09zePMxs`i`iclssh@mHT(PYog%ec08vvdiz<6 zC^L9v_Cc%1t0R^bcaVrv`g=yvO*bMKP(QG+e${Jt5Y_bXbee~a-9k!PyKMKZ8!~f4 z+y+!a@x~I;9;1CnOdQQxnV>7gzek$aek};F|FhHD4WjaWQDEa`J7|bF`CqJbq?Yf$t(A0C&(MamdZr7LUlwjbe6a^A9 zhYb`1%=dXq%|>aCy$|paiAo9CUzKH9_=zh&;n;QawS3EKCN*UIVcz1VXNIHpA zcONARvf;lc__SGp2Jwp;h&`hjMd5ahhsSCl;$xP`8vGz{rZE~BU54*;4R@rA$MNoh zHy1tCk1aRqB>%`BuW%_j(}SLPg%YrmK#BpIzn!bxYna$}$3Uv%;TF2VNk;U4ZIbD%e2U<9N9* zJBhEG#a-kxG2rzHtvXoC4OH#^l+6Y7?H-crzkV;Ra0~M z?BvWbw+a_l@S^}lYcs1yzdU}dyedc!fVDd{>zd@_bl5;UfhmfWfqH`NP{2;v0Mo}G zpPN+CD7uUsgo#YHLJ#96ven(ch=FzC%U+DgNSMcEP&TnXRNT1v=cIrPrX;@-Yp~J) zz>gFp9-e}TTHD%ijp14*^H<5R8x-_gDRRHK-K!hXe$_*cycmp73`Q8Q)G=Cq1bC&L z=1&3q&O%a8Z&otE*X07RQ_y-ua%1cCh2Af@lUlDra_oMNAUS z!n~fIqXphBFv$|Ps;4$3nNp582R{f|eYrz{5{whg$v6XhcE7t#E(cGqqRG(hZymCD zeFj@8KgqHB${gzCOyo1nr$o*V9w@gP#z^dBf${b#Ef8D!UJUry4rYm!lHrC=r;dmd z?I5;R_ZwT7$E*3U1%3)0a3oA#eFHw~nZI0A%)LMLK5s^CMMVE*HXYEY1nj>C*AwrR zk5BmS)gVTkEo)JM53C)!WyJS}Dwv$;4z8%TxgJ=F0H^|3OVKAsN`B`mTw}X|HP{&d zBXc|U)3gG77;jjUs)DoJ-zjs?S-vT=mYzyk{`jG|VnTwt6l;!am`8Nyh zeE>i3&6Lv?7RIJl&t`69vSF#@Q-v;4mwC9I^E-L2)n>^cH$9Jw6Bg(qx^8!-Y8@ zYJSQ{zd2MoL>6iV6*hjeSVJS>L)9?PH?+tw?9+CwjAiFrQ>}4X~CE4 z<~ovcljlh}=GPr~V*ou(jr38uTZ6?Caqd8?K<5lLdvf238DF!vTk+{KF3w>^OXJUp+htZAL?Nk_kW)a!H&&{y zSjIu@(-@|tEeX(TgwFyJo;l7awEkJhfsHi^H$*_{$L&^4XMDaiIJ(rE1m5Ikgnu4# zF0xj=H;{J`{8W!yRS$gP(>C^qQQ40vwK@!Ras_H2YL+@RjUD#$>6HKv7%RcBnrCHvoQV$y*g+r3HR1G#%=l{HoYihmjnh(t#&S zF;;O`mrUr1;cND6ng=s&cisE}l_QeFJ2 zZNatK{Gjn3g`k$3e!?BgXLkw_`~Qcmw+@Ty`@%=h41<*5h$1DWAku=Q)Bw^V3Ift7 zA&s>37=Qr?L#Kd*ba$#qiXaUGjFQsbF?SE2@9*B<^V~mq9_E~V_F3y)?|S!I>y&c< z>z@*b+B-M!KQI;VN}-$|)0LYPp3FPH(CHsnW0W$rBi5C0`->7^!?$v6Y*c>~D;&pD z0|h(q>gPTKTt(uV^ukT)+Z}**vYtNH5E$`0oazcGv3kJ3Dsn*7D4;ffJpJa-bCoZX zK_d}A>{M*&Xot(Q=V>Z7au_#h(Sy)&6eDSe?{j;<4xZs}OVjsLow}bGB`qMLMu{dc z1s_>i9A$5accV9bCNdiWFj8rxXIZ%HhrN;2I;;fP_h2QxB549pRtN| zg9c*FTC7j&(bMrd0tHT}W4qn&Cyp0<_jpt_wU}804NW?7@@^hYXBl!%@NvcEx)Zui zd={qiN5ejMFm1iZ%D49QSwnfCL@Q5;cy$zSHFFjwsV~tLfcZ;!{qzTox+C0ZJ*>NgSNw zhXX7owzXx`K(hlx4VvUnBQq`On|cCL*oW+iwT!GhhTizM8C9pRPd($z&=Ql#wbm^p zv-15*cRS~Va{+sfU{BTO0{$&=XP2;mY1*p#oJ)_+{B>)(AfMDvOV?e3)Ic)g5R zqfY_5W~uC?prXKz$158gz4`8VV{F(HQnU2)FavVrLrqwd9`-7 zpv4;9(!W{drEOK?DfxWQ3v=TEH!%4<(R%HJUre$^DSIyNTB7)-Pa?ekGW_`U8%{lK zBJ&5{|3$rhe4mWqz;{%7D~T+3UQXLtC2jH#s`!F)1TF1-E=V?BdeCEV08rT5vv5{b zdVLAy9jVhfOX7KHLDA9Lj^AR(cK3Q!kCe2ER+lR>O^C|~yO zaSXmZ1rlWVzEOek6V=}@qhl`JF-f`rHGk|IFKqPNl`@lSV#J*!V=UB~|1p}}=@VTg z7V4zH@rv0r5)Ahp5XXNbU)Y~;ul=hH*31FqDEv>+QUvho^6lIbQ;F8bI1Ft6oq9}N z>a!-2pz+-wvLd!>j@M*kqzio(c(MN+RBa?hdo>bgsmNiMElJn4k-c+B)+rvCiX1_& zDcof?^~R|-{a(%y1zTxxaGoWNrEq*pKxo&AiyrM@`Rv)J(yaqA{al^mCmNUvV+DHy+Zah7H53JIlA6Hlxu#GEYNX zxh#o_3*4%*O^c*27!S_f1U29IVKW^r2*%5y*8 znlcx}_~Swx@1uAxtHPQv10o@U*erR?Q>0lU?!2j5aTogzZ$Y5fB14E7_o zKunO5!wMSO!fEYm=Ue)>TNHgksVCR98`Dz3xYNG4vfDUJXp(v^Jr1`w2>z_W` zTH&8)=#8J63?DZ%4R88#>7N)f_px+zSpc~%U)MkEK;2Ur3~33!cPyuEF#5pLtowC# zQ947;LUF(#|0Qh*9i=^%!UbUsyuP2R6P+$PD~+M_VZzZdDKhnYFwTJCt;JZ)2b`K@ zBU@tup_`p$Zgv0=>jz9-6Z|hRFKE3S+rZ)S*6%tksDHq$VSOjJ48aM+56$Rdo|q z{*InVq>Xs$kOK4yVqMr*xbN=lKFu6`;a&>hzG#5;YOB(2Rx0YveM~mqek>7ww8Gm`E9=lh90|qO?fCfa2TG@|P*eSHAB;e$GHXlf_(Nyst z>MV8#n)kM1li3&a)y}6%IL1aBia&3`5}oe{D2rvpbnx>CGy`2MiBB_TeNR*O1oXVy`LFA$@ z&t!BS!cB#gwFDd+9v`!{85*r6KXAr(G{stO@Df9Aeqf+fSJ9Zy{hR-iS@lJtm{H>K z`tc-tcc$v2Cj<_cVC1(s%m&J{kG!Sn!AO9$-KH#&S4dWqY=qmP)=O%jh_?(Qi<@#b z&m9eG$VPL-!63j8RQfvYS_Oo5c6?NaZggH?O%ncCS3KXo!LoC5l4Q4yn?0@^TPe-< zEYWCvs?Jbu-p}xLcmQxJUWAz%gsdVoG?J{2g;zXZTU?0D1CP&2ZS3JV|D>v6nDctw znli@Yi5O)4uBhbiN`=70kt<)4aTzvRbImDAMmZ*WVwq>e<5{`WEC+vz9$9fd>6#s{ z=^?gQ4dOvS$^1wc`0V7Lj*5QHCRLH%E1<41BdbrTzk+2Vh_)eOZB=xiNS&c;73!TL zF~Rb8+%(;KMJ8&*-LZxHb=zKG>3zL|LuF0a_e{7s1ETm5YxvtmqO>);+{FupK2twk za$%qd<@Y(Lu&|zp=R;V*&cNd%dh^LAo{+U_Eq0=9o8CWg^XPcwxXR^KV|4;`Z>JY5 zjv7j(35&>Oc&%w~w8E$X*u6E6o*wQchvH|rtZ(h|W7U9X-~u}Sra5g7I%XXkF5(KG zSVp7UCHJmWYLY^3wS>fLsh%@>+_O*dzoZ3S`Tnz9Vk?95+7x|EmpfM-F)D94^-+l~ zxv)Ln#i~N|jWmV})@^JRIBH^OqV_qSI`xX9UP&UgnW7{|^ZUl2jl*4{7D1PXG-P0*Js=ywr%tw{@vC>A2Pq-87D3D;5_JdI{ zLadjG2L5Iu=H2FDL=XfTB8xwVJ1qAdHtQR%O8$)n=iv~$J1}&dX~pnukDG2G?6P&F zsJv2&%*i?xo6(3s2rIHuu$^_|RaVu+XV|xKGds5C$|~%b*rp&E>>gGgx}-sg9+;zi zBkJU6J(9EdGSUQ>;!;3|*4+0x0xjy zQB8B;1-oXA(sovZ=82&@fh%;{y7Nb~Sw5OlI+`ID!0`@B?HnLi$3a9*Rd(uoF?SiL zScRA*I8rN+tYcQ9%GzgDKf#6uM;@swi+*XtL!yQBMv`0QG(fsSLB*ki z!%X`9#c3V^sw^c~=x&RPYM?^KH#tN61dTR)Y_PZV5vv@8`8~vjKjjgfaGiSRy)JbB z#d$*L`qfH8wLRyL@A!)`F&~BjcKfm5GfawJ?Kl%oKvSWB_CmhG?XZF*884v95Ke2J z{=Gy?9Ps62xC7%AGC{)n)Mixc(?umCjOTR&2`$qzUQ`3LZ3Umda^5xMs z=6Hu-xUyPItT8$3rXK3!fNR{NTPVZeXysZp6v9;7b045{9s*$AROB?6g+$_rbK4_3 zT8hX4$M@jnAko*#C0^NM=n094IVM$T%sJQ*X7a0Si-#(SS@@lcN!IV zn8gp2^skU`f;Lk2iTJ3XiNlWY@?}RBb%yp;VkC{^O`XEnV|Q%R-5_b3WSRqYn=(#1 zdv9u4JxSA??@6q^wwA9Y#~ni^8S-xiJgFHw2>a0i`(436l;*TVw3{~A +P*;4i{ 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 QqkVym9ale>bxsLQ06#|`Y5)KL literal 0 HcmV?d00001 diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..32e8bc2 --- /dev/null +++ b/start.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +set -eu + +mkdir -p /app/data/vscode/{config,data} /app/data/{.config,.local/share} + +for file in $(ls /app/code/default-home -A); do + if ! [ -f /app/data/$file ]; then + cp -a /app/code/default-home/$file /app/data/$file + fi +done + +if ! [ -e /app/data/.config/code-server ]; then + ln -s /app/data/vscode/config /app/data/.config/code-server +fi +if ! [ -e /app/data/.local/share/code-server ]; then + ln -s /app/data/vscode/data /app/data/.local/share/code-server +fi +if ! [ -f /app/data/vscode/config/config.yaml ]; then + cp /app/code/default-config.yaml /app/data/vscode/config/config.yaml + PASSWORD=$(dd if=/dev/urandom bs=1 count=12 2>/dev/null | base64) + sed -i "s/%PASSWORD%/${PASSWORD}/g" /app/data/vscode/config/config.yaml + echo "Generated random password: ${PASSWORD}" +fi + +chown -R cloudron: /app/data + +grep -e '^password' --color=never /app/data/vscode/config/config.yaml + +exec sudo -u cloudron code-server