From 501153f9769e1a1a3a89fc5af580d1cc3d8e25b8 Mon Sep 17 00:00:00 2001 From: tjann7 Date: Thu, 30 Jan 2025 19:29:41 +0300 Subject: [PATCH 1/5] lab02 10/12.5 --- app_python/.dockerignore | 2 ++ app_python/DOCKER.md | 10 ++++++++++ app_python/Dockerfile | 22 ++++++++++++++++++++++ app_python/images/image_docker1.png | Bin 0 -> 77676 bytes app_python/images/image_docker2.png | Bin 0 -> 39769 bytes 5 files changed, 34 insertions(+) create mode 100644 app_python/.dockerignore create mode 100644 app_python/DOCKER.md create mode 100644 app_python/Dockerfile create mode 100644 app_python/images/image_docker1.png create mode 100644 app_python/images/image_docker2.png diff --git a/app_python/.dockerignore b/app_python/.dockerignore new file mode 100644 index 0000000000..2cadf79410 --- /dev/null +++ b/app_python/.dockerignore @@ -0,0 +1,2 @@ +*.md +*.png \ No newline at end of file diff --git a/app_python/DOCKER.md b/app_python/DOCKER.md new file mode 100644 index 0000000000..38e36e8b0e --- /dev/null +++ b/app_python/DOCKER.md @@ -0,0 +1,10 @@ +## 1. Best Practices + +1. Designating ENVironment variables via ENV +2. Designating PORT via EXPORT +3. Copying only essential files, not just "COPY . ." + +~~The rest points are in the precondition of the lab, but let's pretend we didn't know and implemented these best practices on our own~~ + +4. Explicit version designation (base image, python versions) +5. User added to avoid root access diff --git a/app_python/Dockerfile b/app_python/Dockerfile new file mode 100644 index 0000000000..6fca6d2132 --- /dev/null +++ b/app_python/Dockerfile @@ -0,0 +1,22 @@ +FROM python:3.13.1-alpine3.21 + +# Environment variables +ENV ADMIN_USER="mark" + +# Install the application dependencies +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +# Copy static file directory +COPY templates ./templates +# Copy python app file +COPY moscow_app.py ./ + +# Setup an app user so the container doesn't run as the root user +RUN adduser --system $ADMIN_USER +USER $ADMIN_USER + +# Explicitly specify port +EXPOSE 5000 + +CMD ["python", "moscow_app.py"] diff --git a/app_python/images/image_docker1.png b/app_python/images/image_docker1.png new file mode 100644 index 0000000000000000000000000000000000000000..368117f851abb572c5a6b2a87abf8bfa4e95d1a0 GIT binary patch literal 77676 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 literal 0 HcmV?d00001 diff --git a/app_python/images/image_docker2.png b/app_python/images/image_docker2.png new file mode 100644 index 0000000000000000000000000000000000000000..4fadeaaafbc2e8e44c5fc58088af00535186edbc GIT binary patch literal 39769 zcma&O1z1#T*FTI03qi4vkPwrQlui?sRB4bFkdW?}QBe^Pkd_vaF6m~ZOS-$ehmM)~ z);@Zk=Z)w6uD{p0Jb=KS+4s8F`qjNXp2$8td4lEy5fRbJ$B*tmBO)T6fscoeABDfQ z^epeg{|;NfR{AyH7lBAB=C2me`-bg=6vIS3@F|owCTCqwsiTNi5g@tXA+&Rp9N8oiloMR>T0^J!YYlEHQ8rB_! zEeN_IW>OyxX)n5p!|QTW8!5fhq=Bx*iBDKKt~0NuYQzlKgl=42*80?v5$&sWcO=i~ zeSC(*j50%r5zd0pB4CVK7h2YdsW7LDuP1|tto z;F&8D3Q}TKOA9F(W#7z(in=1bxp#Xo`09^muB@)D>FjSUIXF2fInqZ2jVyh}3`F*? zg#-snSXpsXQ&TI3aln1=r)K5ma?L)PyfBG7|8T2hsaHPPu62Ps=0?qpl`AvZZoRtx zZ6iI$Lr6q_mLBb9!>}yOg?AsjWHKo9s90(1WdF+G6Z$a%kK%b$(Z91+Bg} zV6VPA{cVF~Qu=OBj#zqz*qbuND@4yVov1=W=#O4uBzS8Fk9Yw%2T9X9c4fD(qIt_V!&Z2``TeM$_F_#$5RDkhuJmqj-&fHq%|v zgR+`VhjhBWj(mUnNpd37r`K&}EvVa0E(B{?I?hl-(ZqDj5hdm_6513S=W#0h)9BDH zs&%TG+Lb%XwR8i!Qj=x^_lM;yclBEb&-L^~-|rbD-QVR&J<@1CjYW%ciS(b1EGBhK z;P5Y=zF~SpdUs%d`J{enYJIfc;yO`H?ed}G$b}XTJ2f%>iy{u3rB0i=i@llp>2i82 z`-GBL@d&uagXi z?&VI`3oWD2b4Hua_0&7*IHFWb*Us}g<;U0jJf%XoXd8=Kv8rs%rucfre!wy{n!c{( zIZmy>XT=Xq=2TEQ1qFtR8dTiRG<=b?oZa{?YSy^OznIlO;s}8a6?t}EZX`)?nLzV; z(?KNID15zfbuOUkuX(|}HlLD_yd17} z&=k&p3ypUU6?Rd<@C>?p(MAJl-k5Pnwq?gI^x^PT%FrHI!MULXKESH3Kd;GBYsyNw#P|P zmXws#)zxX&`p}v7Wj)9}$eGT#N+)c0m5J$Nf38W#_s8e%-n&O~;zUJbqgP+H;kkVqV&J+*%h~k8Z@+Qer zYbP@4eU+ER23o%RulL=t!U#Wgp|Lgjww~_BwsqODjk5Ka!x$fq+NQ}|q-dHumGr|F zeiCPOA=1l_MlQd4^_N@nSWUvfXM5~lj_B{>c{VEe*uDkL>l}R4k?JQm$a(K6H&UpN z>tADAFeg#*t<}SPL359C$C0zU329?o=oaKGXK9AtFNnLf4uzvDCixZ|$+r1EEIzNR zuhdtebRV*gYM?h6t4hAf(lt*X|2R4v8D&YIR?hJ`mB&BhUfgoD3c z$H>1n-c>;hgksEQh_025jTNu27Zc9!b;}Ud?N2Rw<97JC#Yf%@pV~}8|6q1}*c@Y> z@@C-&JCzV`3wd}evEH^b(T_;!hLM_kO*|)mC25iBEnM%-ww9v(lF}7Tle?$bi0NNT zU`oRCfS@6nuEJN((AezO9R zj#GMf2w&sy5t|%-etu+BoUgmn)J=v*!kfNuxfwKttu+g;aOyXl7qXds9UdNjR?Kqz zK79Ohu+Z9ZDoFW}v@~p>`y}LKWH0tM=I%>KV7t}LxtzC5eHg?w7xQR%UjBq#(OX~{ z%guR_Q=6zooFLK|%%*p+vqmdqQ#bYw_3H~46t-VrVAVnfrn%hh*c@!3_35UL9Q2eo zIj7yCN<~Elm5>b+Y}S&!`4k@0-Y3=vSgSl&!zugaLBV+G(28H7w_?7syScfMoH}*% z5*OD~YL$GG9-l+RM{k#ZWf2w*&&lEG+T)Pfy`W4O$a}@QHPRs`o>nDnzZ_wuyf^K| z^#15cnko*=K}CV(L~p)1L%>C6+L(Q+|5GjMAU4KTNJ^`5ZR}GpR=vQ2@y?w) z@Lpr3r(*xvC{{CrsOv`>bDBD-`cA^QswtYeTDX8>&(bt2*T|!hqYy36H4}Pk+u>cC zcA|qj$H;TZMiOtgXqPqIf4rW$cf7-bZiucD=bafPV@qRJkk8e<5^D)#NkfM6rquT6 z*8I8N36qYh1!(fny78v;x8UkT3UK7**XGN7xI(j^cHQ!9oZ!| z#OQmuvjc@Oyb|J`jia(pIDhhpb&@&n*=Busf44lcpQa@@R)XMOr&f*Cdxz^q@nD`9gP^=}=MbqunB(g*(lL$2j5D4?MhAhu=qYinIon zlqS%2-`Xl;h`i%#tNgt~C_l9QP%A}={c@^{73D*1FS&aosfUV`#CrAogWjkNM^TY! zs81$@h9!MB=WyuJnz8Ni*6(3^;j0mXS$^MGaB9JG%wxY!_~4jRhS2WR#t74tKu7Yb z;!*WyPHST z{r7xJ%u#xMS^8vjLV-{@I-FFkb2g^^Igi(4b78z(f?ZNbnrpYDc7aXp`@8MMz5qe% z>C@-V5&vumVx1c-yoKA_)SGFJ+*le2NlawwPS;4OVwRR-9(k*5H0(G-=R+r4Q{#Ox z=*Ju4V_Bws-14jceE96dajY4F{B2#k2dQo5FYx71+$3otxv|I~!1ce|vf8ki%Lv zB?%eXWNXa5oxMH(FJF$+%ws-hV{MfPfLGNr_g&T_$25xVn9=B+G4}`EqIQc^;s>k5 z=LaL{1S~EcI&|oHkwpJH5)j$&J!PN6Ew`B@}>!MU7HdOw$zb2d|} z#WIZFbs&Cr!^vjYHj!GahU-^0pWVnoN^M@W*_K&x8E77H z$SS|!%q5PK*bNw&G!yhh8H+#vU|Zh1k4hcE%PxP=qHVW1N&PzArx+_}Sgi>Nl=HmE zZT|pem%gMfElW3R4UcQerZ}NSOfZ&B;Tg_I5ET)W5p2OLyI?-ELM41e+hvj7>Kljl z%P|?v5>-_>`8~?^Ov>jxS=BQmuiCq8x(4x`dm(^q0H07tq4tcB-u;ll^}Ert0;t)q zJqv=)TQvcU`~|d&?s?ye^2W3szNt&6uvyZm%q2s zAxF17*%T!@FosjhUG>k?>cOApgO+JB>7_j_1}~5=1R|YgB1va z+{Zam3IuAEU#4r8dKMQK#~&~VSiH`AHGu4u%aiBS$Shdp$0k+*Yc+&M2Fv)j5d-sA6x6Ok=p3HjAYWJD*HA5BJA50=%x&X*}Q1kVQ)LV$YR_ zmG^bu+lMdJQzuUmf8M@Fwl(^Y)28eq;2aw#(ZUhRl6+@Dg5^|2aV=5Nhh6kQNBZ!i zlo}Z~$$RCq`ClKcZ`JzSUJs&a$*-`=Tv@uSKF`&N6lY+Ik$d(l#uo4~5%;e+@D@RLa8YPO| zK;9N_KZr<>M9Hk>*M4kBv0u{*=^Qz z+sZhEg$L&BI$wHg6_~$2(U_D9i$DE&I*s^Qu0`&W2^&T|RQfs;>g}F%4G%A`iR}?| z0(6oW`ucufz9jxG51|x-|FRjoR#^mK+r(w!Cog>7-Bnx1xa?ZxnU6Goz2l~mse1%K z$;AE&rYC0!o7HDpjn{a(Yu_!_)vhcomi#sw%dF5np>>?`{+z<>=wMU;;hKWLk9Nrw zWd>l7yxeCN(Cas-+Hh%l@247r{XNnxHL&=L?-#;de`wTKI9)!I|G2b%Xtx-v>FBYB zmaB>icTYEREikq$S?K%9=d?|;yKmXCkJ)oS2*fNMv0nptT6Si5SX_LOe6v=U^}7qt zFA;OlAMA?h7SNI8d`w>gNq_FG8+Bn1{m}Y#m7^h$V7490wmyOXO!yeRdH*u|krisn zDEgk+bs{21{-M5}{jP^I8prmlr8iz-S6-eUX70*;`4MMxLQrb^bG8jRh!?e^D<1ea z*Bj2ARK2HkzL;a{omB5Hw&4 z2Fe?o37b2XN@Z#lU5V8#IQFwWIvPn_ql}Au7rRAo(2a-WqM6P2V@D%9)@NE`dloD$ zEo1CghI^OnWNx&OkdXA6@*Nx;6xc8mLXL&;y-JSQxpDQXcCH%9@#7W_a$O@M(ORf_ zw9{o~W)EmZ0z*E1rUuJ{g@+FxUM)YyU;&5=rU++v(~B1`MwgbF2>5MrnSJ%Pn-@rz zm-*RMc+JyY)Bj5AT;>kmWdGicWu@&bC@vNjQHlr-{!pzO1A-DDSF7M+HRWe9Zr1AMlS;f!L+-;Igyv*h`#@~7@#974y91_F{e0D% zLwBBZ9JzP9T9iG=e&=RQt(sr16^G-~_=8&IH?)MKy)A;#rg2Y}^Ck+&=3fsSbIZi} zc@F7Tw+?zm5DwnjPMk4K3Y{&TAI0}kEgJREUhmJU)~IsYApb-cHbF0T)cKjv9-qt) zkO%r)&TDk+QAL-KPgL$|E!W64>9~+%w<0SpxW*_<-Evsf1|+d|R<0(3ORU|$WP;?H zW@@Xwsn5W-m|eG<_LSJO?LSa>uXt?C=yGAE?Kv{K@Bqs2PdFF+?P?S^$->GESDumQ zelWp}wQu%fS9O%$HT#99Ho4dv&F$1D3)rYX;O+|TIb#`!b1n?J+J~>vcBZ}&WhN$b z+ORdz&F}jWCxBUf#&l!x#^CV0SK~)Bs%VpAJvV1dmM`_Y7P0{_d1*o1X#7$5G7#-1Rq?rdz*7tee`0JOBW;RG0to0 z(|WC5SATTbomUBK%wIT-fUeAL?%I#6UmB6Rh*J>F80s<<(aOu%r zH~aMQrVzTFj;+1*y==i-4WMe$Zos1h}acJDy6A0QzoAfWW_Wn z4IiZB%H?i!`H-{06_)yUT{S8{oRs1XaqGt4gC4i5xHx*CA`;xSpS1SNZI-y?hgN+} zRFar_9!P<~`r@P5XNI77`GFFa)r0@EUvh`SKVz^J*Ewq|o^HJ#u>Kgom@9Sb)o*7eGjVa!2NdhY20b;>VO} zK)r1(?E1N16e_fZ{o(L=lRoOe^~@v#e7)sX7mpVs22K?A7I9A--$4c}&~U{02LR{ll51 zH=@@)7Rl|$%2wkJtejh0jBv*F7`0uY6!ElLxyMr}Jx}mq4Jy~lL^n_5WiwO#CMH$SfU=A(WXfap7$l5?J!nQAJL+6tY<$mwDKCP3fqJlw*($n)t<)~!6 zAh{y(X>=)nBpz0~s=AuXbz=WfsqEb~d?}mz^ChPpj7{nqnF!(UV6s4r) z@ZcSUl5h2!+|(@j0!nQ~Wo1xk*~;POh7|(_)D9y@>BiYo=k4pjzw<{>;qTrZmcD)t z_=fy2rLU*wH_-GWgzZl$%wukDTASdM`En@ zawT5bTBOytGZ@HNQ_M7aKV%cSn2$xPAy$BM#kDShyT@(Q8Hpo4j0ltWw&SifoUon^g0BKN)i9w#i7YF`KqL3n9rTAYK4sFo1vgiAMK7C5^e;PW{M`!+afZ(tDyaDBf|N4=p zWEYF!ToYvwj1;@V(>TG=(1C?^aBxttSE9YC^5gZ=Kt3x0)|Hh9H#(|4-5jYNV|3z= zQ&gvX4P%YU{;l;Z#TO7CCHrbVQU+#+e^gX+l6-;#$gr#;zRlm`;`|~aq$MOIg3Rpu zbBsi=bypq)%SDNV78D3vmy05Mosq!-3TSG3$MFo zS6^P=ZQbMCjrPQ+SD+w4E=K5z-BSNr1u4f%Pr_`hFSl;hait7R8EI)U`ypG(H*ekq zMXjjQ30l3o^3X?N*X|JNVC|t8;lSEmAJEIG=vRE|6f^V9{-L4uL9EKj!WYqM&&qz^ zsz8~blg&M8>hAE;^lCnpx3u_*I&b}OTsLT1Q_nT7p6f{1oenn-)CU#TT4e@Iw<{pO z?rkodV_;~R?@ICT^!)1*xI+@&G>16#YRLAsSL6UDbA?K~9IVy40RR3(#r1Y$!{%Bk z8n>Wz_4@TJt0~FrGGX^KG)n`2eEoXK{gwOs_h&9#kQga*UEAKS)y@2&Q+X6PQJ`(S zY@{T}TLmbbke18Z5jnBlt7Bth2YU+{VGX08OFTF_p$3-PCs?xOvVAk-?$r9wTZTK6 z0dfM?)1R`M!GnPkCDqi_1myKYul7`)Y2PzbC;Jgs{*}^gdM`>21GwnaFiJ&*>LS0{ zcbJVlM(yu9I~AZqJ$Uird%Q(j`t!oO1_tq!S)g#7J%9fGQh%;d`*#v(Eg%byO-)rV z_GNo`dmqu>m~Dgqh=D(Ri;V@%%{Gxd7rW3JL(EaOa~Z0wQa5vTz#Ov%`;%$xTAcWQ zk;-w%Ek1tg)O9wtr939Wc!Tn9H!~)^VOX%GuI^`LB{3x>B{Zz%mBJQW?bf~l3*TWlsg<+R<8K`hK3+Cx7LdGK{{b)Eu4g6`zg^(HsYVQMWr)6Q$3e? zdAr8m-j4wV=^PDB1L(8AzCR8)4wB|<0+5kad@ zgx{I)%{FMFfr;8w?M10tWW(&_I_HUjc4In_C$pQ6!Z|fr%FD~|E*Gynl9a44_EchC-u-YJJfyZPGjKQ5}(N36XrDXjSY+${K8gGg`*VkZXvTm+bl8eJt zr9sr=bvN<*{Q1cu-7KicXU?6w2i}uGb|~n4@It&nAR&UDa20m>moHQxmO%@<%FiDH zGNKU+rp$H!ECoe17&4&0+|10(JSC?nptPZx_D>c-YUBksv)ekQmW$t5rF%z#rJjqc z>tku@lC%cQcPz#4HYA`Ncdmj>tL*vi{tBAloHUW4mg@;pA@*RsCEI51ncebWJ#?G3 zjg6|xN;j~lB4OcK7K)3CSnSiyl?G#5_qSIJS4YdCr+@bIy93L_J3_&31Mt(m<$~7{ zWo2bxaGW&WFw$j78tdvtp(f)b2?^0CD~Fj9iyx^EhKg)Ko{xVukk^^2DzCZ>7Mzol z5G?Lj_|i@FJV4sV%MP$o&*bIl+Upt`bfNxX2Yz`Ra6O1+#dzS@qsNaeKL!K_PFkFi zU@H+h!BCy2auYx~^$GS#Dzc*h2;lk;G-E${dBuY7MU*@>v#_8(sr!&IcY~Z>ByrL3 z_H80@!ojUq{W&qRkwOjHs!dCp_}@3^pi6PrbZN>K-Vi`-L{L=)K=sgYgX7?H%KUDxF5@Fl*ay#B+1uA@b23Fo21RRTaIEQis_lXN z3r0pOOk&XGc5vGxMm_0tpvQ%+M2sv?ar_L(mPu|M35u?Yl*p_LuS zjmLtnF)|)X>5{yC`*o!i8jXgVNf#WXfO`D+an8%OZ_;xKad7}|XF(YUV=6+x^6ma| zu`j&4m-G=M_5XS=<#g6FEg7()0m;&d$DE zE?QuRO;igm&-m(WM%zmphtzEYas18|VDdmDf_5G`!|XZqviFCMU#&}IU$H$$d3iYu zHZWA{VLj-UipMl;n*PV8el0)-51XO_MH87T}4vp>XI6yZ@Q_E$+_PUNu z4F4A{_@JHHqkrpAk^M?@re3Xp{W7hb=;nFb`OYzrG`ndvLt!90>`sNK!k7r*&@veP z`GyD_eqx@$k>#OcKp6-$rxmauifwxYT2)`JNl5&L%=L3HT!_w`IRn$>P^qRI*xbD2 z%_|#N%D=06yk*&kI-;ws22$*T+w4hI%a!btkd!r<43fe z5Ca3lQnshZiCh>L$gjY|SF@ z91K%l*}l7q&J2Vp*-BPp-Fv@r^!+Knaz~0nmtF2y3Ga%5fs3%a6co-w^XiIZTf1?| z&HVTGExTZw{|j_q?i~^QT`f>D_?!Q4;6DXh?g%3wl-EQ_(HucC&@0+lM$Gj4LHq@* zpRsIueys(K4`>nF{{#UDO5rP|Y6XAz!aTk zh(pt1>`0SQ$@Z{wRc-A#Dylkwy2k;iY%TT$g_%DU0;CFa8woPRTl`@kJFLlB<-1^_ zt!{4WgFy=bEYq-sp3i*vc`{FXd;6nDk1jDXzJXaC%&vi;WdWBRPNEjkZCWsNJ2SMR zVbddAK|vw#?8v}CI6}5xza~0+?wo3_F~tqp2qJBegAm&o$Q|>7`9PjG?7vkoyZ_<@ zpeJNIUj?Si?zk6+1GfGKq%@Q(q}ns}9=?71Hc_LPPbQ2935NlWhqT5QQRh7FCv>7t zJfcn;KZk}Qp|3$i16ui$cIJ|=exO=`Kwj6>WZUc0k0&Oh7x@C|I4--z-e*CjYIw2T z$#X~>H10|FmQ9$*tfeQ`h9xi^E>Y$E*S&3kdmH8FR}Kx{-OGy<%GqYAKM17rK*7?< z$rngCh90$}bBaOi*Xu*X4%4BADmgFDz~q5&Nd&M1Yy)eC#V!`G)>b|S3C`&1={e3P zCBSRv19)_Wmsio&IpDfX1u!Atc2-jj6cWDl-U!e=06jj6f5atVxYQZ(ju3jXGF&>> zl|l(^2izk+=ateB&}Vh|!l}V%gwh5@g7!7_ErV7dbBImKed|^zr_S5TD`RR~(QkYH zN>wspmb%z=fSX_-5FtXIL`Khg{f%fMZN6~c_kXgARa&b55stDcJ5jPf|Jl)T?lt1N z8h5ckszDZ-AaI!~Q@)Ngb$)#uC>&Tw6ZpZ<2CyS3A#oI7Rd-Grayx)KS?p~Xv1^vp z0UT;u$fX>KlL`U&&L|{A1LiAiPaqpg*pX~QIao&z507#HoWS3#tgYuDb3g>nF|tBc zH8uVb5x-!3aZ!;;?jdjO@#J;sFJA>m-gjaR`NFxvn;^J!^MV()@bka-S&-t~I}5-X z%6R<#2tjjs+!L%awKk1<#CR#;v%1EqKg<1x_bvu%K*6*@+W3y+`;05 z3Eq(P=@S{dM$vb{jL^_fBDl(wY+jdfwKnJJf7^hTf7^gL%xr2ow=;UIw-!~eEly){ zm(i+8Q*wVc?fqQ^09X|DJv|}N!C0g3-M#xrR@P2sX1v<#T20TKjcf-;$t{g`C%$kQ zYfW>_?QVznzM;;4!_AnR!1@5}d=3a8zOAVlb+1HSJj9NW`>ZkgPfz)XO~Q@{W-x*G zoMY7Sf%w=dSm1hKcCaIXh6)`NtHLg%6Wib2^$QF=r>+?>*h8$Tq+DI8jtyK1O!q9N_z0UdcJLd(cr>Ve5O=jjy8O^`J({y7AIdWRSAvp(j}TomCyUl+kcW zA@>5VX}2SbaQ;_!8N|9ywEXL}W);WMn?wuQvVfvYO3A(&O*n7|#L27!N?f&WCg+Q~ z)3Eq}yvJd#E)L|&sm{duijAA2_bL8G!PP?S zp6?P3xCQ<-O_M{(n*Y(&J{n(lTOYU&00FX_&onYX?N3$BK1xpRD_Q?gKS9e61XxMn z1Sv1nNiW>ghL0M=&COR>`qEFMueD%)MS9;y?|EVJnkez-^ zl&CYd-z0-VwN~{2QWSyA^6{%c0TF`qtz&L=eVujtC+(%nm*4jGst`GCEj~uz6zmG3 z3tn*wMt`KnKw-JAAbe!ALAIj(g@#{^jij-ecf$^}+F=ep1WE>t0eLMyf8I7|iP9MA zdv-uQ-=j*9KeK-Wr#{v8OdP$14Ouy6SzM$skPy693EQ~=urQPeFSr1R8Fl#RQI>_| zNQ?Cs;D!Jq$gLYafO!PG z3p7-qm@XS_4-w}eB7*EEx%dH+lvQ3FE&AMKP-(`2PZ)@-X1HZQ215OH5s~Mr7pSRK zUzCC;(UGFeQR73Gl4N?~+SRK>2ylSe7u3RUZEdXw0zeKR0$4Xt=61oBJM;y~o9e9q z@_I1tODpIPgK2bX>H!R0VY@|b;6-6r<-R%o|5LJz-#IU$fdEAaLqUl4Tw!71sj>fr z<<7&c{UfecjOn&v@S7Zf=z@glu2uIK|4$`Sab6I@yxtf2+hLA}@fh7THfDh=`(?0R z{(nTxAX4FGEG6i&&=Zgf9T{Qps;&U|`|;z)pI~`Ig+0sA6eSYdU%Yj#rMk=dap(Mq zDjslxQD@>AqFV;PzJl18V>UzsxeGuW&zJWsgYh8lB|9=iK9-WY0;m-{7jVW^K<0`R zvKH0%e;B-7!Uo3acy)qUS0}kKim2S5u8Bq2a>)6o)hGy$$7ebgI6eX@!2Aqv3Z1- zvs#f|z89`7X@TqlmoWsIerkcR9!R=$#@? zbt{16-1X7v>G*f#kiIpHa{K^&REIm%0pxuo|D92SJprWk>a}ZafH&PA&eA)K9)gLP zK|`3{L*A_^b{@dmE)jjD0e%Ky{G&l<|+ix91`!GAcs%!dI7;- z2Q9q4*xnpQL=~vTb3?`aFp@6w@hQpUVJkL*{0anxOryv~XTCG(0H`~n89@IUU09HU zUk+Eidh3?F^-xR;ntRrXye{-0bNP8es)i1b%ict}9TGXJ*>_T}sfKegn zvhyQ;Pg(vMF7Eqx0U6BYd1V>L1ugGve8S}|xis{>xPz|1e01ew!e>}iCzljBA%IH= zgYE|2c(byWYc+sqE*fuOXm4uvp0c9ZmJ&oZ<)c=7D<*nWafz0BXb@bcK)8n`X&Iya z4oRS2VZ5aF_S*ya{g@J#Vzl3u<9?nT+k`vRV@K>mau9Zdlr>0$rVmO}@ryI!Q#h23 zl9-y0crH%f1T*zYJU{kC=;>xtK6wnvl?bE@B%o~6m8|F|JOf>h6TE=SF!=x?7eTaB zHw>WP4Q}rC7@YxAzB1gFy1RX^RP6U15IC+13t!CcBRfLZ2C7*v90QOO$K_NO0rawU z=q$So{OS{Urf(pqjO=$CAv!>^rxux%oI$sE6mI!Ah*F0 zh}EsFcsMx}HjeC1&|S`6yeI`{XH0t10k1QS0V;k0uboyL6#-hnVX!NKR?H6)~FJ8zpo&p$6xjhJzO zs{YQ8!aM1FJDEt?Q_4G`8@Yl|-! zZ)W5kfPo9)6L;(bH5GaaMe%D;HSEs|zIOTs?q`#mr$YKwwVM~>npD!1$d0;AA7~U#p#(&RUeF)j~ z46x}hl$Dj~7xkvR@17`5-IPBw!Vvfk)sTfAaalhJ>ejR6@1UG|M5FPls@rx1WQr`q z6baVQ&xg%@>^01hOzRohC^X&?M4N`@NMY4dC)=P1OyjQa`W{=$&h19Lpa}+`+>{xz z#hr!4p%25XwgQO}q~rR}jQ60AJ~;udk6CB3qEzT6)g_1`GJ3-$Lt!@~TnS=_PfQaW zVb~yA2q=j4jg73fVqRX+QBliJ#*B=N5WhMgKz@FsF}7so(fMYS5a4B{RF!gAGDH$( zy@{TBOi0Tgz6@6f-9x^R#%VosR9Z)LP;De1bqa!z(>ItDc8+&K?##p2Hv!xuq&SZ; zxO}!<=tdT2%;eO2Iuk~q$L=ZiyvCgt9}PLF0`>XPg@HUtpVjaz`wogJ=(H(&lj4N8 z3kd}qtZraL&$LAMJSP}SCSyD$F*#;3#oy)$c8XD3@=^G-&)N7fgM4JvyLaQ)mH2xw z;4Z8ehZ*P4kLagGd+y-Bp5L@)P21mwifaYHBZk|M2Ni45!g^eG2W3%XmOlYn0` zaf6t@hx^~l!t;sY1XRZx{l?%-Ky70dd2n{M4lxJ7pb= zwWdH)C2$8Mn{H-i211(_a~+J})AaO+Y7r`6c^M9Az{NVi1HI;*qMQLa^*ZSNYXGg+ z>@gVpo(ZIw=eWrY%)J??sUJfC3&cp%(DvfUh<}?E!Sk*?4YGu?{bfBk7}BuzWJfIU z!tX?)y8x1^Dnkr8utys9AMq24`+x*E0F`n8wEI|6^4T<9D-B>WP?`LcPs8?yMN$?U zDQW@vnAM6mOJJ%=E2iQcW15`a`GkVKjKl*)C7i+skOu+URzf%6=|QU+$zVh_O)^zz z$9c_%OL{k1vhiICRcq?14ILN?78Al(JD0@G=$DBENYbn2yd2|UfMrO2iQu89s+;mm zz#(esoj<`KxL7>Y46z;FrIDo#+!KGO77E9P1h5ewET=0f5iT#SZ@r3sNhN+hl?|f<&J<~1MRPZc844Uz)m#|0_6ZtHylu| z73e$7QKC}MpVPwpV_A!gfi}Zw+{q*&BI5b3y87?A0EoXEZ|hrPo2A;7|;iP zaJZ=>L5^X{FQ&cfSYQevUz5xCcfjvDC+BH7IXO+oDGDNY5;5>;WWmr~!(w%T^Z`t& z9cz1Fm^0lH3KSVaR8UGcp?x$gMyVxsVY&~fy(QdJ2KiGy0tOd5vSh!DoeJCDH~7!W zkXy|j2RYkZNCFB}02v5(y#zoHH`bu)rP_)?qai#B&Ey2cmN6jYUK@_PDTB}1TdgEV-sLRd za|lo%KO2VHy`6@SoN56v1AJqqSJp@-@1!Q~;GZnOzw>#_MuEAgoOn6GffcA;Ft@-V zd_y>x5l32>_eolTA64tY{t8{& z_f+>=AR#qAKi>eN6wsP6IJyVOwUKe??@=*b3_?Zr8u1bFTeSbnvRo%hjKqZ4xmcu# zH}1+kZrH~q+PXYxUrXpN>*~)?+bHAXa-_JnENrBD;v*ynFZU+3AIaMo!I6tsfK#Gy)ARwv`M5rk>9qw4ufKI9hxE0t2 zw`nh@L32d?JCbuOyd(KSR+Gmc`p_n|zZzx-p`DXPO6)~v1*@mK`!V2JFMuV4RXT6Z zR|Dz>FP%~-GW}5ma67$RwNQR@deDWCtSb^*g*y@iZ|rhysBD5BbO%sCCFG+Z4bvho zCt3|i4(Jh7uorYnXec`@9vOKAW5DROFo{)595S$kNsvpZ-K>~m!N!7=`fbNfI zKtL#5U=>AnCj;KOyRU-@WZX{xB!;kI2w{2n_+01VQ7GI`(%&~8931=tPiX)@_lBrw zB=iO(_V_=JrCT!{%U!KFcr{qy2a+cQ*v>(I2XQ_jwQ z5bgj@HHaqQpn?>gTyk+73eR?XQj~q)y?b|dB`;+vqh##2_;sXI$-W2-ru8DYj6Pfh(X)|m08T85fU^hFLZK2~WgQ4T$dCp1SvIL7n#brYj9TeP zA=p0YoK71r;U@6TxQK+5t16(ki3GE*&0cD)aT zQV_{gp1FriKivnc6c8Dyp}S*Eh%R;Z^&FSnt|7cyro6)E#^Z44-rLxhRXvBiFaLGo zGJ7mn4a)6uCHaF7qhCMVzjN!3LJjqe%fq*SUU|yCcA@$s?K!SnnqwupXSqIl-hc4q z^h+al$$Jk`=ue$7U+0p`ZhNh}bX&0%Cr6b=Cl42g59Ov94~rnT&E7FDFYgyQ*aT;o zZr*(7=XXZJhqm5iHOWZCVHqt~tHpG_qPqGB^o7rjQ}7-4Av?Hoz@zco5Ug8Bmoq=k zk7WEnIudZiUX_-S;j)>1lG_+2juwODWx4Yx2@$M?c0A+E%uH-P7X*F^pZ*Ono zpq05f570^mOPwjZy1II^4aqk)b{O!`7{Oqs0GN39)hjm8p4z&*Kft34QUWpDNYn?v z+k*aL87wh1^)S%^2$uI1 z6)6z8tbclEZ9e~V*xKSVt56V>8)0p^OSkzw!4tnzZf8h_XfjQ$B$EUxSG0 zR2MH=%XW12^ca?!y?UisB--P|E?T|K^K(@A8b&Y7vM2jve0+SWYbOsOFOScAypW29 zCQEZ+VZmO#1`ZMuBQl1wXb9j}#LebF?|QWhDHL9fEh?f}T3P}<*-B@ry? zFZVEc6V8=@XTQ)EU^{F?e@{sQ$zIoJNm3FC1qB6y)N~9DYm4rLOJCQEoN|R{YuEfr#S}K{mQd2F78^!4i;-wH)Unu>F5rR>jBPxOsz>V)Q91mlTdhb?r?Ln&u0Jd za9M455%c)e)Db8tfB&<&-PX_;-hko)TKp45#W;(LnJS->latN(vnHNtY59WEuM0)+ zD+}79eRx`{`dU99(5bH-rpMF&>xR)f*(@w2C3O#Z1`^*c@PIG8CKpU!z2X8j0*oB1 zVHIgQ2+tD{si>=`oZrqs<49r6e(|;eR+zIh&4d*;^u{HGoJ2H(8Sua$Dc0* zL0-ijq#%%$kAY(&ASA@SqG$;Ass!X9eWyNF>vm6Fq=QGF94;vl8-T3*I3^aB z`2dG9Cm}raM+-~KH*Rjk5ccqd0QzC&^yfP9Mb=XZb56f|xu(6VQ&S<|)YOzt%_nM= zG8aMonlJhiY;!bzJvtMBCl3$LD6BrM#>2yn`GZm*1x7e4oaKA%ZX*Bt;u zOb>?s&cF!%!}PQP5>t%}?^_x!y$DXvM<1ULg@uBWQc`P>M>ffkn@1E{IBNI~mgZYr z+z~jsm0D}UtWE$6PaA)*iyT&s5^;PBrJOO8K5*gq;S(Ihvs5{+hKdw*G+nw^Ai^9f z5&h-M$Kc=#@Du7y<1M5yLfCGnIz6#bL+Cb!^y*Ot(kN_=6M@Q$)=g+6V zgoeg^|9*c=gW${>WkM(%hv#lUeE%q{Jn}|?i$gORi;Rw6Ao;tF9fwF@=l0u1R-u#O z3dQ!vMl-6|&nj5`N#xK{{>KG|0>9D;inyxi6|MzcV zyr22^zwUNK`VYIL>%@r67vyZ(&MH>7Z#rLg47u%82j$yfM*FU?gj8 z4;dH*1XLDw!3FWKrw0CY{KSd7uCAs1jvMhsMM4USig#EbkVZ(J`6u5p-#TyI+!8JB z3ueHVFJF*jqbk5Ejg5^haC^3|lsZ@;X!r@@j%PudVg-ZSXK&A`1P&%7rlj0^{FnrG zA2AW)*T4f!-a=%Km;?QB)&gS25X~%aXgC4e5Q0PHVDzOvqlevPVQ>EswEdL>g}#Tx zZp!;@TabLM1{y$-zCgbF=N5hx$`NWeGBc|I75WenNFr_!>3aVBIr5Ue$H!N6cV8e{ zg(n~VUDLqDSy)*!fw~g?EOA`t1UFDcO>G>S+)f5zj{~%XTT=wsdR0K(xZo_=qqt|_ z*3lrE?8;^X90H@t&CT6u)WTQXT%h_)eB04ckZ2U@`lX49o~At#n~_vdQW^)kjSLBI z?~~919T@IG-yoyrzCU#kNX?~t82pAy=T96Wf(iYr2z)3`f)==!fZ(-_jXl9WhVu%F zW2mjGmoNVXNe1}gTS#UVyqMESv4iJf0luLN1ZkO=n6&f60aqYC2Q0P@I3M7TD1D(E zIrvlV-!b!D9iLyldi9F{X(S>dNcAI226FBv%)t}~^3WL~urG2K92t*%P zhC9$Zqr_Z2AtbL0D6$ufRCqI-a8qXIa4Xl=pDz>^6ct?tH=wKhOl`7(syoQ4~)qH%Ztlp9Pm z*!()?<}JdtVC=$!caS1Oo~_gH&wBrV?Y#$3RO#9-+9qU_U=AQ+4rD}7vH@kr0HTtV zqzH;gPz1?HP(%<+NRS{Rpn!mq1c@S`fMjTFB#UIpse$hEeCq5yv-jQiKj*J=t8Se- zRZ}%(G1E3{t?zxG_X+R%-Ko~t6?NsB7xyj>Jn?4){fgTGV-!qHg(y$(^(hH(<{~82 z3K?`Z1q;;X;ukWvu-LDp#KFeKR^Hg?UFgFbo|3XcTwJ`Dr$wVI|J}RUfbW&&@k}b{ zRp3%~8Ji(D>KJ-jNs@`azWzBw!`T!9NWz~#|GjPcqOtKALqitI-QPDg#C^t9k|K8i zMEWcW0GTL!eI+5Xk8R=~2H@y|V7%PlC`-wKQbbC*?=V3j{7%2BOjlWw)b8=o(Ho#| zyu7^D`5po&zK!&3M7`B6(=U3NDQH+XZp>4Q)AE2X$}kO3DE8&cSrl{;=fp%YX!iH~ z{M;c~Ca^SX^-KbZUhExZ4&f8gwbCx@7gKKRsNPO-7dHrS8tovn=||&y#8aYpaL}ZKsB&W()qy z_mDGkzKED&c7(lS3GV;8B_4!M{(aMuEg{CTe(=o#iq3+fUdYQBn7><6G8ZPo7rLsD zSkRkp;{F>qfmv)yWLR2`cB^7qA35X*P zT}C11OdW$zd8f6&N!AEzh+qIA2q}AJj60F>ZwQMoC{kW8heFX4I^X+*wsQG$sljD>i!9^4jTspU7HJRt@>gt+N|F&)4o{N9YqRe)t zfE#rFeUru()W|s#{>&0G8Vj?ZN-0VjMa=G(>WM0=iji z2t7lgJbLt~B>5{3Jji#@CFP3YFg78UT#z9iKp&Ve!g1U1kRAl{4wuv!Q&aEC%H#IP z|7H~5@$o4{DY%V>6aMlgJ1XERw1Gsqe@9mdNlE8w`;kb%-N)>dQ_NlTvHi*#=+>j1 zNg+eO+WcL{5j}nV{nz?7WVT{fLKG(tHTi1rpIOh0O1k|i>0eiF(Z0G1=1RXhx?ATe z_R?R4*=-R|xba{AAof2A7Jfba>lF(B`oaFr5(^VkQ{53o1Em24$r~`u@%2z`p8%Q6foF5K^}v&N zqo-3Y?Y(?i^h9=wATB$q8)My%r*7T+%F;@koNm|IyDfM&Q% z9`gKrqX>JsLdDf`gGJq`uV23-28oOi*ya0Yx)Y45wmf|Fs1-KULP%D~D7vAu7-k}P zAvZm+A7AhZ?l$JZI;7{iySo=HUw#8(n-#wW)(s}4rWPV^x2#rEOUny)FFJ@{o!Q9; z1)p$^cv1oka0Rec(fP=h6M;<_uO)~3GnhL9*nD{94?<@f8XB_hi0|sys4hdDit&n^ z2`&4H<%Ldh2ie)#=|desfRt_S?7gX@XJ4&CNg)^F^l5I$f-dm1BXK^P3}u*FHR~77 zoehWjY6Am zFbZK2^yk$+w3DQv4YbQ#08REOE2H%c z%!#LClD-3JW}Un|rjtvTyijQL5rfz!B=mjMI&P+48678Guo!u~OgT_^XxIVN=r!`f z!opv&9JqlDT7w^CX3CEl(;IJQl}#wLxHxcv>y52tfzco?3N*rYYDG)ma6p4=X4%zRVSal5153EX1j zRpvvZOP3V(@1OIe*&UT~5h*^Fk>hZzHniH=GNm5LJJ6Q_&T)MTREcsjZz=LoW_La3JOFGMi!e}}f$);S*j>4EE#G%1CkZ6pps(B&AHeyxv9sGKEqyvd zDpc0)ri;t$XV0FIvqtjJgvks_n}5B%*l(kR#0p#|f2;t;syEN4Pd5NmDYVnyrYNh{ zD^jh)jSO=o zZs-ceXrG0^bprGir?^=-Q*g>Jkn!NE2 z1yn_Zb2WgS<@jf8`MB>H7 z#O?(LH}oAeg;(pWwnbxOW8A1#bssO~E)Yt(Vj;|*VfiH#TpA=3@;-cE1-1lum_Wit zqyEBuX3V|^jQEe^ie^rZWEA~cL+x-K{>j!^y|u7B4~J1~Pe2+7(r}F67=VDxC!nY~ z`;=_bOd6fh*;i&pphpIsJ|fwHSkl1Ah{DN}Cw-ifK!KqpSiW7o)DP9TBuH|p z-B|CLM|alBa-qaHEQx3L_4O?|npZuUccjW%6~ddS(~%)bMBEmn8Hf*& zleWO6<>2Jx#Hg9`<;xnJ=$zuhrmK!CdclrghB16?@nX;XfuW)9v0H(F>7*i{MzFB3 zXuu_lFLL|#ZTcpLX)+Ac!PP01-ygefGw4f{FF(jgr`y*gF^6Y% zU`~1YBFf$WSFSJi@;|sfz?mD=!C(+4D^{#v1uq;Buo^)JZ1XIT^X#B88A?Ka8!?>h z3tI#>sSt2Wvwt&naH)ra`IRg0&_b3!GBYyz?Ue>w*f9cvNJc|^;4^R>WZ*f;#aI6H z0yHDT1KtGTGJ=QAlwa3RgAd~qHzYL5+H_$Dx zJHZE?1~iYFWOs_L+>E;Bq}E{icX@p3!4oHzqGFQRZc^#nrt`&aj0kG(Ledd5jHF!Im2#hO57;Faj5;655FS>bd5wq zc7AuD6CmpVf^`pXTCyG^OKE8-;rhuEO_)?(J}m2)*p|1vEV&T`q^`s0@)M0v{;d1e z-C-#R0~dm^TbA%|P?>8teulqu5F3)-VOR$WBj6UChKjnnJKXaSPm@mvz#4HAV3Clp z38k&AXJfVBsx0dwR&SovWv_Vd$*wLD@`rWGTB4=AH$zva-|g zFJWLq>X&29?(5Uj_LS=&=ZF;xOLLxp38S{9jb+Ol85{Scz#`!}N{3JB)}1>BIx$zK zK{T09jhV>Uj@-JYgp&pK{oQG^%z3~i4}E>t!+AA1Xvk#D)M3IPdq)tL{BUju=(g=L ziBZoTC}0OJkgBpnX4!O5Hq(ix7)HI@M2s~2^t?*`jd^?FRwf2M8OP~W z6mxKx_?2?<^CRk;wN(DYT&8TS-hQb8scCfK$~HQziNyYtQJk2ZY{2mMzIAI4t}19w zkt<(+*Kt~7#KpOMJX@Yy&VD!69(>@Mh{lD<%mgrdc{~_j8G`IA7#7MQaU<}~iLFrj zrC;XcfFoYa&F%U6^$rAAR)hIIprW!EV%5_tGcZ?0_k|l{>~bSIfVTE}zhW?;btYD` zR~qyg!_V+Lh0?r?5x;G_U1@#q(R%+FXR`a<)|(@s%y|b?9uU7hX?xF`O@eW z%a(~0gXuDXQm|pyF7=qv7l(rxVGD0NzIVO8WX`&9VIGWikbNq82ASJoxoGL{=fsm$TYXK{J2X6eqrwIi zA8Pa%gbbD@hjE@^Da->1Pv*dT;V(}U)_Ri@^hX(Py0J0;L9bQ0TtUMxvn{4hMmbzH zX#&vtP+aV)u)!HZ1ZcsVsCPKUIuUK0`EFpC7Jn5ii#2M-@!D8?=YfdUaN3I+3DGiX%`1yeA#Y45lU zPF4fHAT^7VsZP!94qQ@IR4VnX;UzeuR$+;g_ZrD}r{ex#1a_0_#y1n1B~O~!Q$eZK zL8$wAsKihs7f{O{@8X;{ZyukvSlxOVnKcM!120}MGgF_WA3WM7elH}1Bkb6R4DUO4 zh$sZN>S4el7(Hi0Mr{_V+3Q`IVKAxtp% zhY0>~%ep}_(8Eg#CZGq~@XF(}KsN1dPp3kU0cf(PcSV&PO;6{L!e}K~+!C#;GIcV- zVZf+~;@|acU)Zs>T${p?*0`$iP#K%qmmG43ac~+L>)1squ#STRJ!ly8 z2SGo4e9?vSr%=!!KczQ#c^r0dkR`+~V5vwk*{eV(VGrs}Xm8&l&vZ|pi8RWH#)$4O zzh&|Vi35`T;lqdKk7S`;?cB9XEIv3W$Q+ws4E0RUpO3ndrS%IoC{KMSocx~L>!)}y zljBOEFzO5PBESxbbEiO74PfSis z5Kqs7;!s2fh}2bA2PX?BtP)}dZS9}=ckSARX;dG^XlM#*HoOmO%4+1&fS2R|#u3g% zsmMhvgi!J@fjzhEy14-pJCTL;^*55i6k8~Aa5%}pY_fHQXG>St=e~*?S`%YUA%w#^ z?Pw;66gmbIy$cs^f$$+BF}D1~nlxIs-7%G4U}UiN7&eYp{x&T9x110ASi2O- zY6KVxz;v=f6Fwzq2SFHp$@RvK8*0ThkJM%5e~dauiP-ml*aQ+?*?hEtQ9K_af-Nej z{b-H)5gXjMmP}n92@{$d(Xf~^dvF{qCXaiA`h&jdXk z3+o!^RF_d_w)FToO>YE@y9IdzG@`3!>G)K5lr`?&SIZ~KxoHr%vFX&F{0bXH@T;8pcz-i2N(ET1e@sQi*+-t?pPUK75bL&7)YJ-M7&yIoum{3S^!(+^ ze2kZ5!zaw|qkqUy8RJ_~r{Ll~Cuj!__A+2Kwy6;^9*~%94@N?6!E@_raH@C*LlM`d z(ai@)&2N776G3m@ytxhr=@T7@%-VF6)MPEd8|cKOiNKi0DL3(?o(^3$ zQHQ)vB007vegx7{c~up5J5J}sFmU7BpsHZ9m`}lsuMhL@Dy%uU?dfSJ`(tDT18G`J zwsOQPV^~96FC6bU0M(~)((XWBNmD=zaToLnA5G8<8oBSW#6*p zWvSDUc(yml8-NT(MW$?u3AQ&DvNT!)6xbn z7v(xiE%^{3A)yAAj@vZ%$R>IFR^L(HETVJ+vzR8{ns9U)Sw;+48A3@?FSUIWEn$D$ z1Ayz()A8xCJIM|Sl>wVh>JvDQnklkl2U)FX!yYGo$NlzHQz$$3N8w36H*@A?(cm!F z%vo8b9I}+N8)E~uhKfZ*NyO`ANrRQN;H03PDPFoH08Li}8%#i7tT=Gsfc4NXxdHPDs5qjp;?|pk)-^q^(SAkp>y@;k z_G>jKn5t@Wq1IVFHJ5)#H@g2K-6Wq1O<$H=27YH2g%}wy3SqdQ1efaY_3(mBCj1EW zZDMMOEVCuutOS%T5(`46AC&5GbBr-rcOV9Lg@z;V0gJ zRN}yMb70@T+3~LxHY}z*flHS-*kC&XP(Y7=-&3$Ru;4#QNEv1Rmd{_j$c3m|n4xs| zaGuM&g(67Oe)B29trIz4IXpaEL8IMspa?~7Czii*l;FA8jcOD`ii^kfPpuwoxcYZ zQ%v}YV7kp*ok2j(n;N(uQk(# zR6%U+Byx(!0RG{KdQ}8L^Q6BYkPb?Q=7|^5%mFcMZO4w=d)tLU+>$+M0IdPMvJ)f9 zLYV=)eu#`E=!}1(RDc5l0?&g0tx;SvGhKZ%gwDxJEC*m9!IZy!*)}{GEf4~PV-x%z zv?8!3p5-+1Ddt!j>f5t+=Y>V+!p*(CY~W}N(_kzY+ubj9RA2W=+jtp~;WQvFpD*IcC<#V`~5fyg0^paMoCnKM$RtLz@9x z#vroF+q63V-3-5bI8d2+(obTj?LHB<<`)rRYi~irB%MxHC}Pz(CJ2DXz7*x|6i#hy z>|Sow-}os_TRAk|zRkC*uU`=@T!EWzZ@zZbDpuI~BdA`OW)kAge><+NeP?XU3U6uH zBjneH)ztHJls13&ze#;ONFytKrMSbpNAKeL-a8b5zr}i>c@_f8TS<3@U9*s^VxF47 zXX$~6R@PXSf2PrjG&$5~ZquUp`dpQ#4n`%~{yBM4iS%<0Jzw7@2!XBo8lt^5T_Wi;QTqb`~C7ANhka zETYS_R>{{y+?jrZSt+rR`L}7cwewKJSlD3{zl7xEe5^Gs6%a$c#ZILGCZma&r^}?P zN8qxxPIms|vRyS_yJU$A;xQY^B)d0WL*SsQs&A3c?=Rxx3yBjKyZU|%vY+fL#;r0W z1{?%b&GKUoDJ%O->bsW>!sy_luwgHzn)9Ds=W`x}v@uMB&m0s9dr6&C}kwKO*qWzs`a4piiH8FSjFXzHmq z;JI92U?4zSMVswWn!C{Q6)Remo#;!AKZ9K)105u%S!+V$(L{mb?Pe0^i>4W|d= z-$HOc61WrFmN^Kc1k1*H-$Nu@cD-W|uSPh-zE=7%hG4?ZkT!v(6W5cI#ZO4+ge1cu z;0oynIhOi13s+wiHF@=^uQd6%39JGk1ShC{cv|wehT6OQeF}bu{P{wVAml( zNtL#{G+BaUbM8JMEQ~l08zZ#WE!vh*Iu2?N_KZE?i%UvMjvYV#bRaG(6N(9QCK&A> zHesmzA@WY%ur9xDJRH|X9aN*}t z2}Rut|9V~9_tX7XVwdW~bOf75rcy`;#66Ggb+C-E;h%sbH__QdLu>xcaagF;XfCLEa=(M`Jc*-l{Z?oxyQ3q>&gU5D0BQ+s9T=;tJ>p9&wK-?qraj-UtX zAm$RA5en<=y@cHRNov=k*$`c@h<&^}G2*AKuwrvytx|fI_4JB{OYRwmq~uq4)3y*s zjn$^1{I3aw^na?2{}xC1^Y8t;!|-p`#VP~=5JDnsHAp3-EaATl(%eO?r5H1ThD0PJ z3Sa}gixCpM95%SI0qd%2d_x(8y}2lcfdvu7DFBcR@$Mj8i6Aj;I^vBoUeELkV`U#+ zi!hI}`)cPREYzb=aLn;`m>j&X2r$eCyg$Z(Hmq|M!>;YqDUe|6d=gC1r1wQ7Bw4e<^ncwbYq+}73>yTEv@Yvl2kV6xDBa&nSF zL5zT`@&$f{ANF#5A#rn7LLoKLR8w2gGYW6&B5v;D3^n-cY;0N}Ia`l(F76M4P6h9V z8`9$o4Gj$;;_g3mXu)vXCz2*Wjl!ldvUdSKaM0<;tqqk`X0-Yqz*N|JW8Zo-?wXLJ zxiwi(mhOdy`k>rKki?qdlkh{67_e34K-^4q5A=Q(iGv`uuq1H=k#&w~(qx}$g(0`5Hq_dYUZzsmsP-}yJ;gv_HvLk&21s>}h4_X0$6?z(9%_P1uyl3k$!$XI+hV?MPv_a}y2_J>H#xd^WLgfMM5&8=N zqy=?{kJ^;%5KWUyFIaeEA8GWsQ?TV?WNt9rYOYe7wM8lD7TkMiNI8v-Yhn9*hg?vA z*i)Xb|2n^plxHQi;0Bav*1%w3I0@j(j*%R%U%!|vXZfN^{_5TeAM0cHvm--&w4khJ zcOOe;8n^wlU@FA8TBzbCkbGW?l(e+87mqaA$CFXC#6y8{9f~!v|HBi6!J3%d!CKkM zGURW-c!=8=78O+(NRKNTwD=LwJ#N#i3MrsJYs%Xu7=s>OP@q@-WN!&?ABh#0KKmIf zUQUt>?4^^nO=%9%RdVSm{m|55zumjx9(ocB92EPp>4t3FtGwLlfv^GD_>R?1VbReG zfQ1g=huF!85z4<0Gov@4yRnw8@{FI^>{ZmgMh#9Mw9ni>r&>6L|Qd!spBWTD1J@s!>T0VJ&H|-!av*m#! zPDiukZKr;j*|Ow#gXXiaysN58tPhTn9v&DtW}RuI{QoO)a480r(MZtGwVZN=xuEtp;2WKj%p-n%K+33jU0NgEe?DfRH_gRRe zB78qrM~)FWoTx{<>#!Y;YIti1-1PHPPgSfY9x2oYIFCg{L~=m5VDwQrd9r%z&#?$a z^eOBD7$|Zugy4(*b1cfmaIyT6Jhn1GSA6p76*kALO-M;GEGj5YR7Zp#k&gl*0IpdR zJ0!O)=9h)t9uS{684>kfzyIbsY>`6rOr@ui{QyQO(wm@=%UBPPb*QnYLm)pz6hgJSXP-R8PEXhfIW2G5Z2NTN=tjp<2H}0DLa^{^y z>&2gcsDq1Mc31r+i&Pn08e*ZOqm6AiE=cslk9HZapVf}q&x%10)KJ6LUAH#=&=nO{ zUN|M)71=g;nwGA)dOfXt@|AhD#E((rL(ffOAFT9*qVzB>s;A@UfYKRg@sIIh{BQom zza^voYDsjE+r83jg6D{jTkbh(YgSy~%FL$voO6X6{DV*ZmbjE(@AZjHnb9bpo0He> zi7>7{sYmXbzwKS749%f*vY#bKhJV>h&3PB3 z%{5!L*yag@oj-HaN=*Ny+9&tiFM}f1W-@c1I$vWYy*NB5QN zWfeLN*H?<)aR}*%$r&+UMKk8Ac)ei`i&$aK?x8069Z9LF;hBupj{F(!wedo8l8>H> zsk-3HIkGjI-Jk2}jE>-`aozWxJ)FsEax0yKH?ytGTsSjmwaA}4JTr2!iKP5~$LT`3 z;=QM(vYq1D*MV@#;4qkL#(uNQkGXQTn0``fQH2h5uJb7O^?O!M+1(4_ zF`MD(=r}BFl?K10|KrDPU`vQrfVzatUZdUeCFJS2%iMixwGHdd)9TuuCue8&cnmybjw*f zU;Xx)l^pXgaB{2lvS$_e6xRQpHEB+^c7|(hu+5jA;F~$-jm*8p9fgDSHFlKiEAxF9 z?V*J4+4UhijU_xgWB!av3gkNqWjNMJS=)DpI`4yz7QV?%>zth7@kMMq^F7^{BpEDk zPCXpKlw&bFm1`ZrIoFKi;8dQ}2VJ55l5O@|3HUeSET?p5=Ki z#V(6(ysE@@KFiwd`Lz1M-WlyfKFa4ICLn}>?GI_R{;1p%(F<~%E$3_D zGDsE{4)I8@nqw&KG3VfcW$R!0 zAKkZP$$hU)b8U+SX7ocsHf{RkwZ^x3WPH*+>e~75UnU!DEZ$i71>AWRo|Nf0->u?% z@Z4?hn}iA`$~c4HvG*xBL~TjvSoG5uZ1wjmbgpE9?-Sl?QI_|{CZ z_xIGUFh+I8rQ=ztYr@|Ib*466Is4|ER9JQ3cL1g`kSSV|B#zH;iFLC2oR8;m-w*~M38 ziHwDA$~u#JZN}z{JcX=@28o6I?RxB30^?9Nyy8dYdb*2lSZZ@jnd2Hu!o@(5+r^@{ ziyvf`jRi=Zji2$Jm?}&!(>LcUy5+19by2i9TBR^*sm_$hp|OOqyk#Z(AB%GgH)}q8 zqNMlnYLfeT>&TwNk!RM%7s#k9PDIQ;p6cZKP@TDC_$2$G-PZ%9S48Nt#tdEAA>8)+ zyn~k|txOUhjEiwD(GumJ8WQ(vviI6yPYE-VciZvVNW?9BcpL5Okz4QA8!i#>r*@6( z>rq=|eQwLDEwwMWl7dv+bTypscd~nBJFFVE&rIy2xmWP|yEsHFA3k@de*(|7^O;rJ z?_$1rZ=QZ2yqNy|_1A08@r|A-+oFbV8qHJ~-pQL7NIHFIsZ-lJ%Be={vWZo8-qQ7@ zJfUB7i$j|qUSs}I{UUsp2xo|iywCWdpexF2Dqc9&tk(2*FAaB_iSi6C=k@1SB zO_to0+Ck4!(JO`Yi~eFsy!7gdx_j0>>=yC#;a1gbo%Zo`#(mpp`Oxh6kk+294TqJd zxchzePOq?S4WyJWrQS~KcZ;7|cwOr9Zs+#I1R;BuO8FxLEdiY#Q?8+Oi?`WOPRWus zxEi~s?0>en&O35llBs1{8|W`nS!EpO=azNo_sTW)1(jPr^%ES}s?BsYz9i}Ps{Pnd ze@aG@k)}qJuw>yYlT)D$Y~n{X+S%Q*>{p&r+EVaYih9-L%9eup26NS$obPjOqF0)} z)6L|3yV=FW|9Kugb=-Q3?e6e0ldd(-?Y8RINGzRcj88bau&-S6U76tCZ29?O&%+Jb z-d!|3IyTLcWxqAo*XHg8z3w#qSKRRxrv?^mvb{Lx@cAVgj}G_hURzTCX1;@_5KVo> zQ#RJ6HuR&huP^Ejik8-F%@!6Acm`Vbu>F2r&EI>IIV&O!7V9u2H#Aw#=^GO$$=oU( z+VOPFvZMKRI<2QV)KoW8iV_$hgC5y$7RF@Evb@Aq^o*@{srbj6{%KQlY15~JWO@Q0 zOxAm(F%HqMkM+kL@R+WNDNU*I`)zrN;#;!?-xNEJRn3>WOj8NWD4o9exJXa?QmECzh{4^`XA`17%m8JwB)a4 zocK6jvLJ3p*_3CXSkdH@7YbQp7QN92M}$i@o)qB~-@0`4{ef|Meb@FphAw6D@vL~%vt4^Njq`2RJd;MjRa44mw%UsH#fX-l>@^mpzJ5`ac!#-7X9zC9%n}Yf4vfg@? z`+Zj^3*9rVz~24!o(3K-gPIEqw^)5_Oc99s!t>4k^h%nd1jz z;-)>5k?~!ayzKRSX%O+{fCzYnRH9n^cNta1AJ(s1%01sM1VxQ*9T`8o?&6}U7NwHm z(a!NB8z#;tN}Cw!-m#hpH0R?v^SRey21T`OiecWtnTW79GhAK^W3?Uvlzs%s)V?AG#pzm!0$?*)I_ zsD}>yo@=_iX7*@QQtAh3xw&t2u9;EH1+#r7TGgB!<9Yoi=;$x6vq#^GX;`Y4e>)fM zC&ek`rJWf>ZD?8lxN>m3KapHS6AYz9WC6zn`Q2B)(AGct7jhOJF>3n)zeR98mzv`X z{hLoaxeopTQR?_sANkO#^X;#N#KX^V6ns%R)cKh6thQ19ZnZxqj6H9eNe2e0H?}bp z`CqkdIaGV>f``@j(IY)RflJIw!}F$f#jhP1N(}DIuiA1xC8~_8<5}?V+7h=#SH6FP5SS89pax#TIKHFgTSl8kAI<%v`5e?5WCYRCPoOzz=qvUFg==Bl+Xb(-0;y!}bcsLbr?tZez~Sn37g`+9WrT-UwCFKJSbEj#qO z(?1?YRx=0M?$jlor{{eSb&)FQ(iFFPw520sY~FuTSm? z-GM4q^Y0JQme#SWOA96$IB0pQT;*`ElGrY9H+$;r#_ptwI#JiU(+9R`?k7Dpq`xGy zcKCJ6iyQt^N@sml$NA(SB!0zVHLI1h-d@YA_T1w2Z_Eq6RUZ!hc2;et z-gN7e_=&rnveYQ=gO4BFv597xav8q8b86y%SNO{ED1&>iN8?)#&9(fh*XzGGBY`zS zcNOITmDOxpPMoPirr;dP#)_%6j*i=(u_OpfI7dF^P|8mch&}wBQ-}7R(YDJibmoLh zO#dETsikoTRVwE%n(8tWZRET1QvPCK!p6%Vo_*?&F|id zR4uX8hT-R+7B|5^r81i`ZD7tW%|7L*h}9T9#Z3?xwU94XaDG% zys?bwCst;ux4_ESt5fXpD`_?hAIG!kA+)v83DI~yDuHrkVYJ#b6)YJFBl{+F+I zK{YLNev=FIv}$^&Q>du&@M}-A?S5Su_RVW@tg}0AG*{=oc)rwKKULvYwuRe=rShXZ zyp*;E=4IRK;^Jv8c01(CE^WygUZo*%=#*2*191gLSVC3a(&69deam{VE!BjKeCUu}KJ_JIT1Vb=aP-0V)%rd&ed+uf=Y#XR z(zz=cM*YGQ&#|!}dwPeD%n&P9M(DxALRO%H{hpM&_OnrDY=f35l*m67B6Uq>dz1Ff z(LWZx^qHBs$)mnn+^xJx_PT^D|75VuGnWsRF|R!zE7#jSzoYM~5b8M0sU0LQr879= z(AIy=sl9gbv+051I`#0RxVpNYwlAzuI1tryJ^DC3bVEfjY)n+~nK1XY-LCh4-1=K( z>D;f^1u;60%;x{5r+D^bO~6a0Q1)VXrPnb+OKq&gHramayRB^6Ie242e>pw(3U#DM z{Zn?xj*F~e{Q?I*t?_yq{a&hMGW#>+lG&p`rJ6~%H63wr-IZ?4cH1yFXnHP zQob}ZwX3zf!B3Iv+rE+24pu3~>FRB3=2d&`trJvfHRCOqXm809eDag}2%WXdUgPbe zebY`G@@PM?BJUw3CGVa8e65-My3DZLrkM9Xt Date: Thu, 30 Jan 2025 19:29:48 +0300 Subject: [PATCH 2/5] lab02 10/12.5 --- app_python/README.md | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/app_python/README.md b/app_python/README.md index d60952bac1..fe69ce0d81 100644 --- a/app_python/README.md +++ b/app_python/README.md @@ -1,19 +1,19 @@ ## Python Flask Moscow timezone Watch -### Repository preparation +## Repository preparation ```bash git clone https://github.com/tjann7/DevOps-Course.git cd DevOps-Course ``` -### Dependencies installation +## Dependencies installation ```bash pip install -r requirements.txt ``` -### Starting the app +## Starting the app In terminal of the project ('of the project' means being in the project directory) execute bash command: python .\app_python\moscow_app.py @@ -27,3 +27,37 @@ Resulting webpage should look like this: ![alt text](./images/image1.png) +## Docker + +Building the image: +```bash +docker build -t your_image_name . +``` + +Output should be similar to this: +![](images/image_docker1.png) + +Pulling the image: +```bash +docker pull tjann7/moscow_time +``` + +Running the image locally ~~if you don't like parameters, good luck finding container's address~~: +```bash +docker run --network="host" moscow_time +``` + +Result of running is as follows: + +![](images/image_docker2.png) + + +# ENDING + +To run distroless: + +```bash +docker build -f distroless.dockerfile -t dless . +docker run dless +``` + From 45a5a5f7a7a06ffb2396fc1b97f634a758dc7256 Mon Sep 17 00:00:00 2001 From: tjann7 Date: Thu, 30 Jan 2025 20:52:11 +0300 Subject: [PATCH 3/5] Lab02 10.5/12.5 --- app_go/.dockerignore | 2 ++ app_go/DOCKER.md | 10 ++++++++++ app_go/Dockerfile | 21 +++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 app_go/.dockerignore create mode 100644 app_go/DOCKER.md create mode 100644 app_go/Dockerfile diff --git a/app_go/.dockerignore b/app_go/.dockerignore new file mode 100644 index 0000000000..ecce1be801 --- /dev/null +++ b/app_go/.dockerignore @@ -0,0 +1,2 @@ +*.md +*.png diff --git a/app_go/DOCKER.md b/app_go/DOCKER.md new file mode 100644 index 0000000000..37f7ca0097 --- /dev/null +++ b/app_go/DOCKER.md @@ -0,0 +1,10 @@ +## 1. Best Practices + +1. Designating ENVironment variables via ENV +2. Designating PORT via EXPORT +3. Copying only essential files, not just "COPY . ." + +~~The rest points are in the precondition of the lab, but let's pretend we didn't know and implemented these best practices on our own~~ + +4. Explicit version designation (base image, golang versions) +5. User added to avoid root access diff --git a/app_go/Dockerfile b/app_go/Dockerfile new file mode 100644 index 0000000000..d303822fca --- /dev/null +++ b/app_go/Dockerfile @@ -0,0 +1,21 @@ +FROM golang:1.23.5-alpine3.21 + +# Environment variables +ENV ADMIN_USER="mark" + +# Copy static file directory +COPY static ./static +# Copy python app file +COPY main.go ./ + +# Setup an app user so the container doesn't run as the root user +RUN adduser --system $ADMIN_USER +USER $ADMIN_USER + +# Compile go application +RUN go build -o randomizer main.go + +# Explicitly specify port +EXPOSE 3000 + +CMD ["./randomizer"] From 4e01037b3d16981824fc8e2955de4612c175186d Mon Sep 17 00:00:00 2001 From: tjann7 Date: Thu, 30 Jan 2025 20:52:22 +0300 Subject: [PATCH 4/5] 10.5/12.5 LAb02 --- app_go/Dockerfile | 2 +- app_go/README.md | 17 +++++++++++++++++ app_python/Dockerfile | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app_go/Dockerfile b/app_go/Dockerfile index d303822fca..5995e7ea77 100644 --- a/app_go/Dockerfile +++ b/app_go/Dockerfile @@ -1,7 +1,7 @@ FROM golang:1.23.5-alpine3.21 # Environment variables -ENV ADMIN_USER="mark" +ENV ADMIN_USER="admin" # Copy static file directory COPY static ./static diff --git a/app_go/README.md b/app_go/README.md index eb6ebe5c29..ef360eee02 100644 --- a/app_go/README.md +++ b/app_go/README.md @@ -38,3 +38,20 @@ When trying to get the result with conditions unsatisfied, the button will get r ![](images/image2.png) +## Docker + +Building the image: +```bash +docker build -t your_image_name . +``` + +Pulling the image: +```bash +docker pull tjann7/go_random +``` + +Running the image locally ~~if you don't like parameters, good luck finding container's address~~: +```bash +docker run --network="host" go_random +``` + diff --git a/app_python/Dockerfile b/app_python/Dockerfile index 6fca6d2132..dea06ce36c 100644 --- a/app_python/Dockerfile +++ b/app_python/Dockerfile @@ -1,7 +1,7 @@ FROM python:3.13.1-alpine3.21 # Environment variables -ENV ADMIN_USER="mark" +ENV ADMIN_USER="admin" # Install the application dependencies COPY requirements.txt ./ From e8298e48ae59e055a0745d26b10cd6f15d6b9f3b Mon Sep 17 00:00:00 2001 From: tjann7 Date: Thu, 30 Jan 2025 21:11:54 +0300 Subject: [PATCH 5/5] dude --- app_go/distroless.dockerfile | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 app_go/distroless.dockerfile diff --git a/app_go/distroless.dockerfile b/app_go/distroless.dockerfile new file mode 100644 index 0000000000..597aea079f --- /dev/null +++ b/app_go/distroless.dockerfile @@ -0,0 +1,37 @@ +# FROM golang:1.23.5 as build + +# # Environment variables +# ENV ADMIN_USER="admin" + +# WORKDIR /go/src/app +# COPY . . + +# RUN go mod download +# RUN CGO_ENABLED=0 go build -o /go/bin/app + +# # The program will be compiled through this +# FROM gcr.io/distroless/static:nonroot +# COPY --from=build /go/bin/app . + +# # Explicitly specify port +# EXPOSE 3000 + +# CMD ["/app"] + +# In this image we build the binary +FROM golang:1.23 AS build + +WORKDIR /go/src/app +COPY . . + +RUN go mod download +RUN CGO_ENABLED=1 go build -o /go/bin/app + +# Now copy it into our base image. +# We run code in it. +FROM gcr.io/distroless/base-nossl:nonroot +COPY --from=build /go/bin/app / + +EXPOSE 8080 + +CMD ["/app"]