From 1a05cf34f6dfd84bca969eb02a28b458e3e3163b Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Thu, 14 Sep 2023 20:36:55 +0530 Subject: [PATCH 001/106] extended EntityJenkinsContent Table to support passing of columns from top level to modify table. Signed-off-by: Abhay-soni-developer --- .changeset/spicy-poets-sell.md | 5 +++++ plugins/jenkins/src/api/index.ts | 2 +- .../components/BuildsPage/lib/CITable/CITable.tsx | 11 +++++++++-- plugins/jenkins/src/components/Router.tsx | 15 ++++++++++++--- 4 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 .changeset/spicy-poets-sell.md diff --git a/.changeset/spicy-poets-sell.md b/.changeset/spicy-poets-sell.md new file mode 100644 index 0000000000..28ef965282 --- /dev/null +++ b/.changeset/spicy-poets-sell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-jenkins': minor +--- + +Extend EntityJenkinsContent to recieve columns as prop diff --git a/plugins/jenkins/src/api/index.ts b/plugins/jenkins/src/api/index.ts index af1829c0b4..32c98ae5a6 100644 --- a/plugins/jenkins/src/api/index.ts +++ b/plugins/jenkins/src/api/index.ts @@ -16,4 +16,4 @@ export { JenkinsClient, jenkinsApiRef } from './JenkinsApi'; -export type { JenkinsApi } from './JenkinsApi'; +export type { JenkinsApi, Project } from './JenkinsApi'; diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx b/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx index f82ce2e7ec..b0474b73da 100644 --- a/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx @@ -239,6 +239,7 @@ type Props = { total: number; pageSize: number; onChangePageSize: (pageSize: number) => void; + columns: TableColumn[]; }; export const CITableView = ({ @@ -249,6 +250,7 @@ export const CITableView = ({ projects, onChangePage, onChangePageSize, + columns, total, }: Props) => { const projectsInPage = projects?.slice( @@ -279,17 +281,22 @@ export const CITableView = ({ Projects } - columns={generatedColumns} + columns={columns && columns.length !== 0 ? columns : generatedColumns} /> ); }; -export const CITable = () => { +type CITableProps = { + columns?: TableColumn[]; +}; + +export const CITable = ({ columns }: CITableProps) => { const [tableProps, { setPage, retry, setPageSize }] = useBuilds(); return ( Boolean(entity.metadata.annotations?.[JENKINS_ANNOTATION]) || Boolean(entity.metadata.annotations?.[LEGACY_JENKINS_ANNOTATION]); -export const Router = () => { +type Props = { + columns?: TableColumn[]; +}; + +export const Router = (props: Props) => { const { entity } = useEntity(); if (!isJenkinsAvailable(entity)) { return ; } + const columns = props.columns; + return ( - } /> + } /> } /> ); From 78cfb4e2b2647adbc9a00ef1eb6fb82c4234256f Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Thu, 14 Sep 2023 21:45:48 +0530 Subject: [PATCH 002/106] modified readme Signed-off-by: Abhay-soni-developer --- plugins/jenkins/README.md | 29 +++++++++++++++++- .../jenkins/src/assets/dynamic-columns.png | Bin 0 -> 218507 bytes 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 plugins/jenkins/src/assets/dynamic-columns.png diff --git a/plugins/jenkins/README.md b/plugins/jenkins/README.md index 2a0ec451c8..d21fee2b8a 100644 --- a/plugins/jenkins/README.md +++ b/plugins/jenkins/README.md @@ -5,7 +5,7 @@ Website: [https://jenkins.io/](https://jenkins.io/) Last master build Folder results Build details - +Modify Table Columns ## Setup 1. If you have a standalone app (you didn't clone this repo), then do @@ -97,3 +97,30 @@ spec: - Only works with organization folder projects backed by GitHub - No pagination support currently, limited to 50 projects - don't run this on a Jenkins instance with lots of builds + +## Modify Columns of EntityJenkinsContent + +- now you can pass down column props to show the columns/metadata as per your use case. + +```tsx +export const generatedColumns: TableColumn[] = [ + { + title: 'Timestamp', + field: 'lastBuild.timestamp', + render: (row: Partial) => ( + <> + + {` + ${new Date(row.lastBuild?.timestamp).toLocaleDateString()} + ${new Date(row.lastBuild?.timestamp).toLocaleTimeString()} + `} + + + ), + }, +] + +// ... + +// ... +``` diff --git a/plugins/jenkins/src/assets/dynamic-columns.png b/plugins/jenkins/src/assets/dynamic-columns.png new file mode 100644 index 0000000000000000000000000000000000000000..1a8525740354a40436511a11b18e545442070fba GIT binary patch literal 218507 zcmeFZXFyZkwl+!;Q4q0ERH|U3i}Vg6ARwSX=tZf9-aAA@L^_BRsVat&K#&p$gkqsr zX@L-WfKY?f&_Zr__de%*_k8Ewn|psB{E_8aYql}xe8%&PF_Y-0x*800H|QuRC>S&! zKhme5INwe|aYpalS@NBm>q##uC@v@gRaKvAs;Y87^>TLry4X`tJdRE^rZq9>V97Oq zpQQZqv-bIh^E?u-K3p=RSh6&Hc!m4JHENX>D;8!8q{;WUu$X%$Ko+KFf`Ty(A}od< ze9NC3Pkwy`JM1JZ94_>NNHSY_Vz}P%U|I_JRrch2i~w40Ym<8k4Cg=HE&Mv5sYiLy zhmtvoGUu1jCDHtRUJ60gwW%)T3Pp0YG5c3D(kiJ;Euu|in(Eaf)$AVv(+jF0=P2sm z3tVBPQvR^HU_hs)e?j2)m0uJ$t!}lLdRg$bT=%NibGXXY^%}uIahv&~MmEi><=gFp zu?W+rs&FowyEpZ?&nU-VEO!q(zQx(RbP1!(cDY$URK1l^))X|@eGN6|QSr7sM7ZJ$ z)4h9_<~<9Dc}sg!x0UoB%>AM>N_FvkS>n@s-(AZ4ZlrcOU32Kqxb}PRByJvaPj{@| zROds#|9z%b!Kq#7`HyT$j(0f$+21|hG2Fb!vY@7ZZ!hkN%6&E)#KYgkuOIr!HwRr3 znPolG!sk-`?rsZz$mgApHY^4|^5);!hk+aM+Fn;P=!hfekm`qA2130FdapC6%GHv& zMX%TZ-f_@-VSh49+Qw9xCaX%?XqJeF(Z93Z|CvNlt7!Cr?_vUAG<|{fLJuqEz0h+F z{y*VASNEOKY77sN7c^455E?C$CHF*?mh~6dS6~x8P!Fr zmPC^6?ku~=ZGbYr#g8Uaa7xTw+f z3s)aprc-|~mkg7%)4afQ_KIrsk4NU?6oi(BjdKAzQN!0Ar*l=e_T2OW9xn38-?HHK zx$36F)P0r2G;i{oVJCvQwtY{O6~R2@^NZSptLS2?C&xI2^fc@@<5faL?gV$2ezQ;y z9r5m3Q_pl%;pcC>a>>ssgwc5}TU(C-a)6o_%s?2ZJ5e4LHxp9%HaKjz@8IU4{ODVf zOSI6>i#BVcnyc)7OwJTOB{a^>vfpg=yNpJXYD`S!YoBWTVFan_8D(}*72YVc zDiqmle0XfQBzNQ6o#=vS8dG$n&z&QlKT9q*M?7y$pgYhs6iWoP@qqpRRy``sTr(LcZ^9aB9Mr=QP<$hiQF}NKrdY@L( zL$UWeM*ubG(wU#iOz&vRpsvcbGXGpHP1)qXnjA$=F@&d1YyOtew1#_|bF0W3z<{bM#<0nnisd4zozS%1VFABF*-VvG_)1+WW8gY-Ka}7G87Zbni+Cbt8RQ8|II|9(6qzN&VB6 z3+H#wh)`uEJ!$88a`VHb&hv8TqRto2SS{bI=e-gw`^fnV?RYF-GyAO1?3Gz{8;*@L z<*|G3q?LJ+w>5Wfap^NftMcDUO+uyYCYe1>*Hrk*sMV=;N2^!shgPxHLvWzhycRMw zLBP@|2(taLM7R1@aB_aT{HFNkgH1m#v3;J}sH2ZxRLTqXp3d^ge5n24`@yUe*lF3x zW^ZpVX0JDY%|3jSecre8@IxQJ($nLjFU2;6KlL>Yl8XcZ=wh#j^J$%I{HacAJB0=M z^u^l6!$Sr`heM1IaexM(nqSYi+9}ehVcC8--N{ZuTcTj>4BQ6p1&?rI9X=T9STVZI zy575%yp{#R*8b&grFi=ZLJ;rv(av5FILJ3>WLt4*a3^Bhd&hWDYH>>JJHzS)n+pZk zTpmcf{+4>^{DyE2|8C$it@^m+BZjpLwhV=AZepwV+3!D)q!Ybzy;Mrpe#o)JcGW%G zwtj36;aPURr+MVj^NO*rEpsxKS-oFz{UiODMPk9*g3kq421^Ta3i5hNdaiUYd>sBb zAy$|n)-Bd!oK=%aFwZcFgJ-;WX6uQ0@6z$DyV}AT?Y2MJImX}N^cfH_Eat4>TvCHDmf>u8=f9nccQ^#og73E}ER$E3+s09yAPFOu}>Th(u_2Mh;@k~1; zS&H3|J>#O^K=o=|*;YQGVZ{m}hJGjWV?|^D?gfbz)}TKBJ3)`B@rG ze%0O!vc}TZzMt#PAiMp5K7sR2>z)1+b3udg3z8_;&*o5!u|K1Kd2nfPSyZG(od&p# z;VlbqX89XWRLb=AX&KB`5l%zIzwBWdwG}8(E&vy_z8fal8gv2Fy(^j+(j6kLXdYS@ zy41MTXdZ$jJ|Rkn0m2xGJ;cCcxud)Xt{-K(6}rb|-1@RzFbo5|;F<+ZC$exMAE(e7{69;ts2 ze;8&Mc~^OwFZbB?m%p$zj&EQCUgwK*c}MkZwFvNx@TD~Wt_D~1&DKY4hRyQP92|1I z)d~qLQlf7D_7(|eNm;9YO~g-XG^5`bv~It)FJ4y8(a9x)Bjec8K^ zO{jfVE9XtS^?q}CGj(%tE9*_>Pm33rTUbqlyS~w@YPY}OJFHShp5R%dV*Q!8X|VJ+ z=;70eAyLiho3V2$$?nh8`lI-w4KC^qXYgl_iT1dS%>wmeBVs{W33@nP_na59w)i+& zv5#Uky$>DiyPa}e6@!1Q=E~gk_Ui$6_v9QN$`=L-;2LuB#G3-c`(Mk@a}uv?YU_}# zgP3c5xE`6sIum;)R+behXw|f5&R4b_^3lLF5S@N|{5B56L0qY`rcHMcUb9$ebQ$!T z^_tmS5jZkhH7hQ!2$;_Y*cuO)6_g2E68(CbC2*aVT~cM>lGKtlE7o$DXG6=u{7REc z`=m!H&!;c2fp1=(^M~>E@##|g?vM$Ws#=$=LZR0}QZ;W~O3NxB{8Q@VMpbJayUlBB zO`>7Y$rs=9UD`%+e&$RdZT#VYU_;||$?=Agv!%&H+jvckH_&~0vehhVtkhT5*Z%Ok zVn-wHaFAfFbSdo94mbAs+RZN2)F@z-_Db>raEHi%W|)ZQi?`Hyp;Ov3*%Os0&4~^i z+J4z0x@OyzV2~gptvISb{=nm*&zE&OREI|CRrB?1Ek$3rP(kUI&)!m{>Zil?d*}-f~~kM2G((rA%BD~`|-pY;a3hmXNOfmSkh{mF9spRujT?#QolE|6Sc&zeZj30gA!^XA~|QE|uMvSV*w!tPmuRgfY+u#dh!wlDNH$mz&* ze_&z$bJG!Nc~K9)9(X%UVlSwJjVL8IRoCds@s1Ng5++UH2w<*lrPYJ>z0qU7rNO~I zgT|!Bl0&CM_`dmG4KiXsB7!F&gZGg6`*SrhG0K33s}xRj6ygDj`EeirVc!OgL@_P z%vx+y?0Xa6rWlUVlQd3M3=!C?C9>M9g_!Y(2B?u0#UpzYO$Qwv3V!nSISMMuD-_h^ zD@yV|iYOq(nZK?nDDIFyDJZBuQT@lA^X;Fg|Ks|M-pNBzQ0_zWD`$a*CO#%QPh@S~ zU4>uRx!c$a2e^8iyg(rzAWObqU)Z?&`Y7=5 zoHX>GfB)#G576PiT5|LL=dj2F6ghb!A}V}evfiTmR6BLCx~|FNj) ze-#xKy)X8E7X3dS{j;dN$cd%?56k^yTK>9Ao)<+rd6EB|V@0~x6eSiE6v`Buk5mi; zC|4)WXBf?gN*!}iUqG(DM%)yBMUT*SF@naMiklC9v5|zg7Q}D6+N6kw4!V#EG7B=m ztq|8M&jPQeWR41|SGL(*lJZdTPeCMPHy_QJIobKP zW$)uPM02aSAH(Rc8i!U{ODjc~mHs%)`Gc3=ZPJ?}e9n*4? z|Mv_19|o*4;FhYXeFu4!+;0)iF1kxv|WjD~~A%r(N#hy(b0D zvi@2Ju~q*cfPt50EYs52TiNY!ca39T5wG^oCHU`g#ZUWF4`uB{U2Mv!EvrmRf3Ds4 zJ_2+3-&g-vrOIvR$OYmmk*7wA|83zEo8*7z;WQZczgGHREBy_${Vy(^YH9p0dY=Z2 z|9@C%dvW^E_ammK1R7iCQd{Qcu#__x)~~CyHn(Urs6hT4T14eb-qFcqan#HY6I49e5L~nKL0D8Va<)-+ZA|`J4N~N&zu34n)u0fMUpg(VQ!Zo~MR?jm zr}UIz!-m7O)pwZu$2!{DqLjpCn!Xbm6~-1Hj!cN>_lK49-ZOq|a`kk);CbPzSL3>| z4b^bybBoI{+AF9ko_oe6vEFCq>CQW!lBhj8*S^-0_qy}>IJt+|_u9hIOM``Nt7z{p z@E-_Qb1CD{&P+~t@_Qy%!L%!htmCWg-%_;R6A%_PXeGzlVV(6gK@};Pvfrp)k)*9A@;kc z;?AE0&Q;y!9?2JYwYnr%0P!Rpr zL$bv=`y^N7uoaN*xn+boPUgS2xE`l-x+$#7enscCww;_Fg@x5FEY~}YGlqF+2wLpf z$jgANQamg&wS2b@0Bb&kob+0k&i#E|x(;T8ddRJs!8Vpt?97uOeN%jxb<@3@8vYq{Pb*L2-;p|OD7SVnoDT8dXR28p61!2Kz+~A z%>QnxznN3Zho6L)=bY-^w7b>M!3PWG9l=0=f%YJzpwp9&y~b(20x|o(BM@}Jt5aMj z#oq>Y9`RYf-oSW`Qz2+4_GD6}*FKytMv|q+)CTP-2X{{V@>3Pqc}-Of2&a^%jp{Ym zon?uQ)ylp!bt}&f8dGJw$QE&d+*ph|-%y$v-EY^4D#a0vI zC@(LJ^vin-&hO7M-a0;P zYGNiRZ9hg$T}pzoga|OgnGL>J9UuF*-Da%^`!t|jzAlq(KQnfVFO>i zJ2M6xv`LZNvllLs4Cni#k%1f^|k97;zmnZ{5@Jhn0^!@zo3?PzEpt3XF z{tLu(9T^efEU&P9(KWdDL2dec`hy;);OM%Gr)&Q(LfO2)q!i6%Rg|Awey&ZYHb9Fr z;qV6|{@uEx_T>ZtP(sg&QQCT1br}+<-k1YvTr2gks8gv6b7~R8$sL~#u3u4vzb6Cs z#TY{c*h^MN%G!@&{zmZv2eCWAyIfOtPQ$Y%bnW0yPoUON1A1VGu&c1Uu!WR7-4M>~ zRx2kqghmk84vK>;=-PU+1Fb6)!#bNc0Ew=cy4%7a5)%8Keo}vDZ*s8&3dOLc`<@bC z&aD!t_}ka^&aFeU&=5v%bcKELYmecv>H{HUw$VoKgnpKb~(ws!fr_z^g#FHeZO>De%hg3j%$3=eh0-@ zv90FEHJctlrAQn;)uB3q3R)|12;2ObHkv7$^$1l zM-f4q^3slB`Ijab-AG|pG-XG*)u;36++_b|mQJ_wMr(cs5vw8oX41{7o(EsI;)wQv zinLbPcWJqYc8j((_qT~Zfz~}o$LNF1B^@S79>uemX3wa3jIqVeJYwBZO1$=oY9vAq zTfv7*Pp~Adt>b&xRJLr1zhm$=X4543|?ckwp7ku$nVgo?*2RaHLmJlE1&Q)_0knLZ)$ z%ZaH}{@4S_CsUaZy~I|QJN3$SPDdKUg#~`k^S6U3OrN<50TQ%l5Lv7ueQ9qyJ@~E> zW*Bu6s)WaGgSM73cBb=1?H0dXOA^hIDshZILUOE=2#$3x*F!hm3co!P4 z6PhP&XHpM3j(wI+Lm`qGqB8yfTfOjh`EHR2*c&J;X>w7_R4Vvvz1euE2lzv;-}crtXQdFimUBvM11K_)F&O!J_jRaIXtCNA(7z9b9Y#NES#x z-nCk?%oJwRZj#2qfh5DycE%u|Qs*64u875-t zUCj-R5(W5SU^*|x-j7^YTRE@Ht5h|(ekjn=(a!9J*H7FhYV6|~Or`M^E}0`Muw#?` znSi|x8quJazkDF^7wzO)2z61xMqh`zhKo^=>v5sDGPYzu}4kF>s^y%^Ka z8`b=R_iWn|mN8a^cv!V`<8W-6Cf2w)Fb`4QVH>(UTWPy#dRJm;MCCLf^{JH1@Y2(~ zdu0ks3-L8rIbUU%*$#p!35wEhfivAfZg=*z?pPl`%Jw-*j(-d0cPq^C2^pqyk3WlF z(4|{o4oCPzGsS2N(O_?+<;>K6nYEBrY}6~Of{exZ^F!KmM1fQE9i>)HqMU&X^N_wN zeOz}N>xYYs?FAnij_Sp*p}5=|4MF%qr2%rbq(I1Ad)?5*1ykKHI=(()UX5z2URCHa zCuC+W_BRZ&RtSRZG5>8T{||&Z+*s|?xwZy=DG;;!*zNaxYC8zHd5vT-r|~E&^T@#Q zJlCPVn#r1mXA8hO0lme-@(bf@X_%mWv$pE1kzt&6TMU*@+5dzv4zKCAkg>#DYNT_D zFLF-S**t}YjhyZeW5$K89%LY&dpd^p5RV&riF=^dH;h(;FZYKSlqT1wy68`#hj)F$ zVK)-A^SZ*!+@QWn`Yqd#QZ|l_Xw|nZ=`6xM0v%vFH#O!OpJV3qCkcbPii%{4J22Lj z+B)pB{?XkXI`zKHfCj;I0uG}ChOpGZLYBL%wy}(==F(_pTwLKh4%Nv;8ZIthEie;Q^jnH$TY;$%exrQ9QmV$3Q`E@EH z;v*am<0MQB$5Y^F4*OX>{5r@n~OSf(0G^uKsLsY&%2pbT7oI9Q&N zpm^(eQ|E4LDM5a8t~@UcXj;F3=m#IOTA5z&vkRRs)ho;OJlOlCWl87>RSeshPAPxh zzuEr4&y(0TX)bHziv6)qkFBZ9OEA@|zocyhi)VJ0e59jObInV6>e|PTda`~#^-Ev# zXERizjO7}hO)UuRYz)O}v+aO$A}W#=rYS=+w~hV2dgBypq;msiQUhl9jb~Gtoi|@i zzxzS$6;-LLD0|jUsms;1_@T8|@a%qzs0ebm9+y5B-W(Cd7-zWS)~%w-V<|^-1cBS> zH({HaY%CRp0cR}goGgn4(8E3}Mq?sV0ro9pd+1QT<}EU`d!rpcC=O1-6&|cmd#&eJ zyqei}H<90~MXaXE4c0k6$o!%b>7a0VWPBH@o_<5Y>+$%` ze3$J`T|60v@Nw2kM}|uQ+Jlw7fd}9{QUQsFGsx=&Fl4{A6VA5z6wSpMD%`j^VcjNE z$a&S+(!+>d(#B)|n>t2B#GHBkU>hW{tSy(f|2+%)vr^A(z}lyT>}3=QYk6%s1VtmC zRMeKW$$NKF-#TXpwF@f=UFJ2uA5PGmw7~6BN+TbOAvr9x|$Nz1-?)4;S z$%ks79)G)ic%Gb%j+F{*?|bm}a+cmlv(>^Ku<36hK(h8tG9H-kXV@Um^)uhB{h~D6 zJK#{KZm(8Hi|ZEQa9>e>cD}3>x3+?fVqCV~xtyK~xDAzku7OJ{-Ptgck+}HT1?>xOZav! zpIsXN9Fd^(B*Bmp29_k^X=j(sLD#dYU0i`CVS)fZq(f`j?Cw-|^m^zn5eX=U)n=7+ z{(QSm?5?p@F_M5u2r0PJojKkp$IX(6TZdbnUZpa9*ZwxHN#>A`r$mScpL1Gx#}4qt z_aBL78SsxiWlEFY&rroKx}fsDfM;oy>InTIQa!rcb?0qkR8c29;deNdfKkc29}!t1 z%Y$hefxBo&>^t6smtB0VctZwL-rZiwY3j%|Owt}6 zIl<4c9P;9Jl9&iySlLvHQ8uURP`K}Cwf`A{;k)HO)#uhO&@S<$CbPgoL4>gd{M^D` zS{RTh0K=p$dji}iqh(ng23?Gtqc}(FNVcS90%&BJ9DCK>!IC!eB_pvhj^@Z01|f^q zBr!B*Gbxh>tC$A>JL^cpj&Afd)(al@ zNrhd*3>;Oh{T{GCo;e`7`jQ`|#io^Ygz85s#Q(i-|5UDg!0F&jte&u1u30-$d>QOl zK5GU<)`J^nO+r(@+=;DR_ZcWr2WnQ*{S~|UeN4sod-u00<9t`Hm4fA6OA(>5MuFc} zKdKF*@dqnqQ~uUf405i?W27xQ6M-+lQ~-^dGW06VN@K`E4V;9D zM-LSjT1@!V4Q=B1t7DzKTEgJIqHrhARZv=K!URJHcsVEs7&9EqReB7n%V)fy?;(NI zZMyC~n8;Rub@lt5K)r)jy3`o3rO@-Xsm{MFI-ik~g{`6qq0|%*Xm~WC)YN$ppH&I8 z0$ravIwati{e(E(1JaPtge8>FY|>1G%~Q#SKVs;if|ZJ3qv~zOIM6Z5a${bgw@m&+ zRDYxQNXZ?dnnqn%ALoSaR@%WAXuoXaInqj-7IqiPru~)R%aQxL^YhTGH}r?Q zu=tzQ2WhbW1_wt6LU24*kA1-=#uraetT)H-_EdcdI6vTmm9qKqD36qBBLfzD?aa(8RQFcUE7jM4_#e5 ziT1(twwn*$I+>H>&n7JIvo0H3Jg7yl6n-bW^qerfeIPT!Qm1BYHPVm0=t3J9&xF!0 z6}nklj<$Bf;R6zn=5+tG5kO*c1KZ%?vBhNM#dh%f-qcbJ79Y8L^p6UrjRFtxWt<7P zie=~2QsX|(jgO3tGLy%dw!E%|)pxv)$?%&Yl8QB$UTLiDI}t)q`JrW^IX;k^5d_Hf z7(=LHml^X|i{*Wtir-`6tmQxGfiiyv&abtB0^}7#jz4-DvMdX@lhSljGs9vFE5J|3 zXs3eI>tD$yy-h21ENv{l*_wv>W7hm-a7iV7XOcl`nQBB?)sZrPg)xsq+ zjB_WdA>ntV`|r#oi_1X*WM7p2(<@b_mYn6FS>7E%@lkv2tf0~q6LkPuJ82iIZFm9B z0#ra?z~!WseyDZWE=p%5%K}_PmtJ7*nxO~>f?;>=0+#OO!F=cT4Dw0eBCy3%#QR*P z@&@J)y_TAHFESbhuKF!$8Q4v3DG&ZJ=Px~aC|SC^j+4Ji=nMY5+)y{-6Dykk)=0sq zRE%iUJ=KWw-FSO7G0yhl^<3k}0$k~kZ=q|nO#paX3Fs1ib9-%rjLG9##z&A=6e_LY0&$E0nwqORp-*gOndA4Q(8;0#SRA1ANx$?OGNLeA9CDHe+soIdG7fU3>jizJ@!zPia(Q+4CXdQj zvffN`2Jg;?(2Xb%X@6%ITEjv-ENNZhRT3TOJDtxeYq zpzk2l`a|2550tg0iSn5sma7Ll(LKoPN!kD`zWt%uFa&0~DV3LSlD&F-v)0wTh8(^q zNNtZv8fPE}R@DR!Vu%ZsEoT8+9f|3wd*etTFUDeAuz21-x55IFuO7YM&Uhd21 zO$%?rMEU_&cGLZV3c0ni-e8>z6C39INLeMC!bYEc4E9J#rV;(Qco|bMtP_#sE@K-) z&JXUZ-61V$2A*^MG5hvPeoMJVB?Y>k)he3lfwOb4%?|-`@;7zOeTrBI`B5$|+&kN=E%$M1snr&Hp0V{@Rw($HtputmM$-O2qrEOtfdCHts$c-093cb8o% zvU!;`QXDf;0a(e*Cj1KKiWN&#;<3sDR6s8@gf39KConc)yYJv!`fy0*BxkDpzYV#+ zO#SYEyz#{-UaZKLrg~^ZL#HP5&eV1I4&MMlA5%%%S)FVsExe&e&bScOpZlwN{q#KS z(HNhNsFt{uE}Zt-0~mzbpHe|FUKqZm`tNs;0u}F@Em6Z6(mCtu?}X!F~{izt9OjCWk7y+7k->Y$Xdu zg+WpCeG0kjoPL{Zo4!G5hMKU_o3)$HeyBAj*~50E6=r!Pc;&0DIT@a$nw2(? z#^3(7f!h{~06elb9Sd7o-5Ze|Nsd-#)#jA7o!=}yXGV0c8Mqi(=J|Br)S>bc5jJHO zab&(S_@Sa$p$W0ET}Uok8;tq70jzXF{#iAceHZaoQYK9cxUQ)^gEV9o0niJ&Ls4$; z7)clc*(vs{I47`iINBKu=RVl|EzO@rP;nfvPN z1-U%tie7-%b2F8AX9DNMeL_M zg{&(TQ7)q&xRytd#$=xVG)`gr`{D?)IwSxn*JHIaS{b`ZJg>pY^ow?iWhPpN?b1VJXx*ib^)Tb4KJvi9{^Zm& z9>NUzT*mId{rQ&wGINz{qT6wETYFg5Uq|?9fBEx`&6wPFkidd_L1>dED6nmoS+0;n zcpU@;k`v3Rt*Q6{#IK9&?9`R_&Af#G%fW}v39k4*oI815-Ji)b-9lsRpi-OHo1G<6 zETZF_Mde)#v4&U_#`)j0|NHF3D3Z##;$tm~pwnLN(svbVvdn|6*VxUEnKXHN=ZAM0 zNp%Yk)o8W5cA*Z6fwW-K5p!K}y zVKGh{rz^kwO?oXZ+7m0}-)h@sG*29fyUx6HqnJ1`DAHm}pBIxJ#lcQ}mND@dt#36f ztV5GU6^6`ogC7NM(fhwvy4VLv1w%aDm9`L)=}(0rh4AL2;|G>#eVR%|xPkyOYc+A~ zSx)JuGThlHp}5-m2>a#8By(W<^IdDfb*CLax=iM^NPgzIvy6-8?D#)BZ6W~%M-ICN zHtBdcxPo$;9`#hkCqyz{?q`#8Jk*S@(A+SzmIwg z+g(!hbH?;V{K8nQX$!KD1uy9E3{$DG?bbpF>#@{RA~T6ysc_54xi{F|8oeslJ`Cqg z8Oqw~kLx@AjAfQw`Ddkw4B?w>#zyhlpDVxESnMOJ8vI(`o1_RS(ArbNlcR8eV6N>Q(Elc= zlVe)S&{HrVA29m;?d`*^_5P>}?%wxd2>kc39%BuG)~{2~i(UA*M>0|42&WO3o}GcJ zqBV3iY6O>Vo|Bqj)evTzqD@#gXt>~;5+3}SSLfqFj-DkG$!AaxJ5y-JMKS&@P&B=n=$i=B%@S7i+2jH9Y852ZEJNtmiuc1gMfiPp)n9y;US5cV)CvJ+)T!@1x%wf|M}ll!{#)*df}rT6g^ADHmipwO*! ziiN&n-6l~sz+}gNjMH;KG^)AWR9ct(%>;5HxrpVx0O3-Cz{p|f=i6W9W$u4sB! zGh{U>YUwtg;nOn#9OfTjkon|(gm(rZ<0Xt;-yG&=@L9-DLciiC zbi!**rD6B}+}~)AfV{=VXmbTkPs?+s@8$&pO)DvDnX1@8qv0*UlOWCF09ESES}Ij( zSkgB)-D&dox`6oKis&h_d`Y>Z6I0d-2mCOYNAR$xLt4Sh&hrM4g69^H?zEqdrLKJ6 zs&BH%&o)an*QxcjjHwBcA_I2E#APe)kGIO7lWKG?lfJKAs{r?Ogu^yHEEExuN=6Mw z7W5iy7n#?yU8<_ji?cce?{%afhjx8pM%7uX zRR78V*1h_kA!@t3QnN~y8UuIr?X6liLW5d3%I`3?r0Nx$x!xEa@E!Y>Twpl?P{y}U zD)8zA23fG|*6yUHJ~PY=7N_sd`2a|e`&u1bT(*f)@Hb2pSm&w_buQ_V9T10^9n!Oh z{`mu8ZP;iNGr!OdUea`Lz=cC_oD&wBI7q&~U#=t>12Y-%tE1%-VuwOtCU$3-Lam2p z3eaY7)S!(cQ?E3$nvqRZdb#4ec_6e;>*>_i_ale0Q0-m8rYHTih(fXiV52o!7n4(#`VUzICsx^kgMF9Meq4_uf0t^BG*LU4HL zrNszr(hS4kI$r)t@=wq8<3dtGkNI*Ja;suM>3F0|E3{0;%_oFl%$U9#8{g+RqD$Zq zMQrqqF7L2aUc#ibd>fF}kqh4bJggcCR*{pGbVZw?Q`ZSyVaHs-e$P^DD=UD2Ea(%d z{gM>yGA1mQWb|}D8tH5q#_%t~US8oRaK34Y30C0-yvAfij>qiI4ggvlps1al_$EC8 zU5LIdSlW(EcEg2lKfRuCavId=%)*qG z7=H1VT0JU#?StL?W)b)pX1pG@wrk;BXAcgpd}Zirv;hI{g4G0UeY+ z2_;Xq+cJya?H03zUCATu_F#cdOlyKp z)J&oVPb8Qv4I~n)4@Xonsnl*iQhN-u&Fh^o6ZoABnBW&^1xzC0eMe65D<7EWt~k&| z4C}zU3Llgn7C>iBrW;>*;KR#ORbnnXgXL&Ic2WkIaJXRO-lyT%Imo6wQ|Wgy|g&k)ogKV z)NK+H+v%IS1R}22NGK=VaxjKz6o|)M!EYJIVJDEW&bV3 zVi$T6W+~}7MnYVuD@Z842@UPn#){C;zxB)%;W<=G$eP9mCtG4c&$Fgb^Xw#Mwa1}< zVcF_OW$zipEQIftv0}lwj*o8eOJn{ceezpRQi`7vCJNU^@2+fvA|9(Cm>vtbud@%_ z2iQTljSZ7mln_A~rAPHBw?YccRrGd>cSWaps*sL|lFoKPiGyM%=A_ zrgd*g55(dgh{4RxT}_BpW#r(`N+J4Nm(= zYZ+gseDAd?ooP}dsqYIYuV8S8#aJ_S*o>}?Lq6oW#Xhb~<}G|;qi2JwUXpt&h@j-wx04OHCK)02_S(}mYYX&bajvL>vc^MfsjGh3VA%;8&Y z?BZ2s{*yIim#$7(W2F$>3 z6N303JoLX`jFQfr-NtN8SQvf!QoA0}Ipx&R2@kv+4Thpp{r@`E6wX04|D$Fo719Er zZ!Er513GGtyDnDni*q|S7{Bx_crBjoqpM~Vc1-sk|_K0 zU1Elr3=j2L;uKKKqDtOw8AtY7}+sgNmd)XQzWKz?9Ge)^L8wt@RVe6ahIf`69=)&sy`*&QoglkkS7G7YaQ|44 z8+@ZoVdfoTKChtJQzNd#4}osMVNH{wQm=fN z&oH)l>wQg5a%xj=XS1iv&HwlEC9xN!a+Q zL~?!7N9ASgVDQswBRP@jS7u4NV33Se&~o&(kfG**a^Kk8t{R;(GamE`8()&2u_VKy z6dobvcGwb89;h7}OOPjv62xk~=EkwNUaTQ=sRAZigM+;Wgs0vhl9Q-qA%v0g5Z^5& zWT;bc>ky$)F*sq6R|h<%4_!kmC=wgJZ3aA}+6vwFG)o}*=gW_dnCcFjxB|S{6>U5M z{ZrPMIuD<*^k(fgOf^rSm7bUl_R4J`0@lvk&K_`)e;=p;_hYom-Z{1q{CvFDF)mh| zVeJ|1I@+*WXtMoZuzlumrnulKR`+7BTeEVcfM?mF$KN1rbxw|fu8}=}Mp{|7?RNnO zE#Pu{=TLdLhh|(4ouFaX24Bys?dc;{?YQEA$iI#+$kB}5ND%0KLJo#{>(rRFud=O> zQ?hsYRXu@9J2j5MWIn|!G{4r)n zz1}?|3%Rwiy;YnNmlCl!f@@=@Dft}V%fsbu zNb%2+`lUQUPVcf(kx?*Wn^Qyt7(SS=UHOpK2&{#5GP_!FkeTVYi_j%rQbXe#^(5PGw zAMjUK2;P3DLJY<+4#^2niN5Go+4z1GSuR2UgXpqw)l+?!W4!${^%qA1{#lc2u%IPe z(!u^mGXU+cTg>4%JuNMLIQjSlTf@(WZ@w~L2D+IIFVw%8%S=H_9gw51!MxnYG7Zbe z4X) z{65JJngb`fs83|-9HOn=|JVM4vb+!e=kbSoZ%vxCs8T6wx38^Te~&yqSjjR>L>_H+ zS%YgPh#0@+R~9xv9p+j!J-gKDw@thUjGUa#MuNap2goJks$6)3jcU0;xp0As&S0_R zNDRLhV|SerXSRaeTLv~3(w`0Jtc0Ad$)COKMUV;BL*H{^fqbNnd@T3RRHK;!OePUF z+T;V+S$gJNIraXpq}kutVV5ynJkm*{JGTn-a`k}kaHqJ(@m$dCeu0=Dv!j2PgQ4u! zUcac*D5WVF!D_RGD!q*1MY%iOV|m}|TUHz`O3N6Zk~oR1lwzxB13tJkH!w!KvBjgB#&DgL)j+2CCp_kLJLc;q6Jl`HJ}V4+^3RPOLo3Ab?-+Ibvt+njWH!YNBv?jsB{unqASG*8JZ z3$p0_rbkNd{D0W{%D5==_FpMckWeXUMMWB=h6a^TQktPty1NlUq>=9K?rw+fp&N#w zyPI>fySmT+oM-pA=f!!oZ|1{ihMD`mua56^{rIm_w|0SuBHiF`ap9#Id}o+z$(G{! z5hCemrutbUXGd#QUFWek?HHaILF=9~F-4Y2Z=|!sY?~|s08_=oIpD*xUgBf1u4T*` zBNx3(<+&jUfF2X#%htXsF0XiaEs9vS9Rj%KL?(0`{&LMa%57kfA?t|>+NAz@03TW& z_kK5%f3p$QRQQ=q#e@<^!<`9S)97@$X*FPD2Jhvn#I@z_lRTB<_9f@pgo(#rh#$;0 zT%H$Mi8%XhLutHppdZr1M=V*510ggK0@oU-LdFdUMfR}j%-QNR>w*d$>3byHJmp3c z*fFfRIS%3pk0~f}c8CBt$p(!t?8=B^7)jOXxmTQ%ZpyAl3IFlMLOy6|B}MBnnq_y) z)P<+TzfUv`_-gP&UVfBvy@50Sfi^ev#V0}M)oHkNtm z=}J7hKnu+Ng~>_c)yo$#axAhzzg6=S?cI;=l^(7_OWURQZEaFhkj1$Vhn~Ba&rdf@~f^f5qmDZmLLr3T@_rqH zb^UyX(MULUyyp3qLjCh4-EGMkA3kN3qu#7(4p_OcbdSM#e4~9r?aQSG$;;(UCLnfF zwma%LpLyf>Ki$_DG<74$grF4LU=lBV-=FL)f| zjZH3DJQL+CnfZb_VC2H!8Ozc+=>fB}Dx?imoPcm;NN`Z($8wYnIc}EfpPr|y&q4dR zmDVbXOwm*K23*g#MqAb5tq1Eb6XOH^Dp&arW~(PW5OyzTmNft$rQQJJg2Q|JZ$@LB z6$I>PfhNsxr3C4#+;_tH<+ihUyrb5NiN+$=VFOG6#NYHWxjgb@xeW5uAWjZEPh(=Z z^>O8bT{ccdPWUHtsuTIV*UApF%wjx^S$6TJ=0#3s_-id#37SPh z`)i8?#Y(PtrH02q9S8TcFe1Ue*2ykqlUcyv^dJ+J)LAoE9bJ1q3Yj{LSrActR>i~V1>ilT4#;@2#~;dbvD9>gW)yIpn(1G3 zP!f}sUADrdE3s>7pHhz+8n)c9xVfq4c=Vc{*R>F93!Cao`($0Hpg*?v0ks)Xp2%4B_NJP-9ZI@phv`Q|%&>oiFNq^I8{}0XmOMAU?fT+Sj9>Ft>^Nn-P4QT;A;oK>PcZ2j2 z(_1l+dt_>U!!Un&6q6EfWe2`2)M9Ko~b$yAAPV2n~qiS@jz% z$M{EAI{Dm{Q?uEm6CGP^vAVEgy)!4}YJBZpWWSj`R%$Mt+BoTz3sxQ&v^jMdAS=o( zwcqc7icGTp8uQ5eWs#8=k9I#QoCQ?edhEZ`r1&-@_$Ug%?A)I)tL z(?IR>EVSwGMp2AKNrO`dBnVYB8RB$g1~I>+J;07aFdrZNxm{l*Gu3s_D7`%uUQZnE zq~oFC;g@=L12A_v3zBr=_r>VI4aV4Mo2l78P* z$zHPj{a_Vi7{n#)>7yN856JB8W+qJ+SA0^$Y)5mI$kgI& zjHh0uJk}nydOPV@ZEXmCL$9J^gJ%~L>UnyzPGU8gYRYzC5j{CSpI)3}HMR0^WO6U< z&On+w6>)}x^4DJ-p;mbdjGwom#=X|2S_z++5J0y%V9f=ibq*hq5#)^K>NC4Y*cvz< z`N{gm`}P>h>vVMrM%1Ly63Y_{JL^Y};(Vi-SfANB;}Qj0C201Lm%qAh#R|pUgb0X` zW=8Ngf%r&CV%)Stf^~0CW)-Sm1Fm#2a;dY>z=B7`9sNsS5X}~Jw)1>p2JkIBM5k|nIX-Asl)GIBi z6fK)yRBFCNd%#958Ao$V@q`&nh|ibdg#H~u=zsjI`s{s1hykY)UPy6}vH?5{ZnInr zmtBmHWGk@xYUPYj`{2v38nDv$z+O^WQ97(MAS~TS*u>S00hzx}AsR8wF)cOyLCe2S z1pt$4Lq|?tVVEKpSPAS}%4w4$8q1JKkUBmxp4{8~nBYjSJI$6e^y`}vz?A(d)-8Sp z@8s2S{l`au zQvI=^>a4lW@z`XYN=4HtTJ^BG1E1MpG`U!LO%$4z&iWX=@$%}p!B;GX6|&?XvsXWE zx%8c4{M*FFIL5kFewM7|1J_>)EXeuD@qe=z&yW|vVrA>@!-y6&JUM4~<}26e9e!zK z6B`($MzlC@Tvih;aZsD?zR(9p)0bt^M%>23T^%Ua`mr8#T z)c(E3UAZ1@A*uST88x01vB?zLB0%VmW*~UXgpe6c5mAW?(IJ8m0x{;V>5r5|iv;|O z*f#2p161yR*hoxPNOsx37dyW(HC^YpJ&nErXTPAYVd6BtF5%>~T;c{+J0qarNdE6H z?q~=|i_{?E|Ko%I_Rl}wTcJX{-F_I#y?XwSzLts2$d~`A<;So5(s$kCpQyVjON@uq zWBr%A|I45H_p$z@?!VmnPs#aL2!B%JU)}msNhJCHH5q?W<6o2UQ%L|9^RLPHNsWI^ z#-B>^ugUl+7J!lfCIfmL%J!{3ut=-TE0E{x1<7#IGE+C>n-!pXO~7IxW4B#*>|>9w zYB$daAl&dT($nkmtgMY?_O4pfXyh35i-ulBiO z)}_YI7yxx)S@y8VznofmxK_?{eX*};F*92VWgXGA0ai}WdtmXrSb}%d?)MUzWy=m) za*RNImaSrATrPIoAWDlV6oCgLWPS zgKY}i1h~BTc5S`$xt9kf$BQW|sMvh{`4&xh$*jw{XP6u~i{R+%?_@)J(Qo8Fd%0yh zkL7yu=8Z4>_G+U$QcJj!$s?D&kOUkyX`<*Vq=zcD)7BcZ&c}31CqU7LOdK@-S@Q(H z;Y0wmSqk-;rzxm?WmI=K0x_eI$gew^C~U#x#0lA|JD!>EX6mE$a!&q(OK4UCZbT~$ zr#+^GVB{tqWOusK{@17Wa<;7RPmUX|RR%x{V_Jb2CA}Pm^>NI%#44hQE>X#x%-(E2 zj$0X$mcU@P^Y*l?s9KKa#2j%>Roz(dWyp{8+AkfJQ_9m+<}d>md?F)0psK~6kr5aPVSc?end}d!$?- z+PZ^5cm%QBkJPJLV6Lc*6g?xs#Q{>RFKGp=JQ^`Jl6(1v4Ws|oR;aW%Rk(OvThbR& zFz~bP@$~%^NQ(|<;xRJYfg3DsWUfv{9N?E3Y;C^yPCrN&BH%W=resp}?3%*cKjsxW zZDFJKIG%j=56T|kAb=f19!KyN4{lV#0yOf5FF5I;za5<4Zo? zIe`V@H<@cQ3NyWt7aeOt_#`VBNE&y2pRs&MN(2QFy+gRa6LK~nH{)pHD1issuHE0e zRdqB2+nH}^>7Yy?wwW}pC_I`ltcbe!gie14i}%9p<(1OxnOwYmKEc3e%7*L9ZQtB; z?Fp{6%#`Rt8T_O_Zc;kC5oqT1>q1xDzjPZ<$4!sy2e2LlNG85cEV{y>)-_i*xSy!G z-h#zTdo`H1mLkhKx+(L6%;48<-ImO+g=@(5zhZ2+`lo7M zw-T9dw6avLY~ctyb}4B2vk-2XRHRHE01LC16w|K(A+xp`p)zn-7s|+-o^O2-gwAy` z=OOC>YX`qiX)>7hzWEmnhWZmtq9zHR)6~lAraJ6Ti!myLjeX~y z6~n{rS>F6Xz<~VjrV^i_RNB{%syfOVajHmsqg%_Xm_d_K&S2{>t=TLu{Qf{hMs(KC zUBzbn8TMykm~_xJ5$ci|K8z^T`r5D z?5I?&bC6Z8>E_z+4$-d5f9p;qkSGMyA=XD3cI4^bcBdm)$SmYFT%Ex?eC7r4RhV~1 z2OiLPRbo@z3G^*C@O&@dschLJy9v*RDLls&PhC(oYeLB>_sZtbV*Tc=Lv3#!sTIKf zI)TTz*{GyP&TvoMf4Q#Vc*fBlLeSM}2Uzoso#K=Exh39d>%zEUv~`F59yTP@z1~_Z z>gsV+u3o@Qvm8s8S#yg2R+n&p_l$3jm)~Nzv(g;4r+&qp((zD&YvABk6$DQyH%rCO z4_N=vU@vGZ9(RgSpgRxx$u$Z@VJryh}zPe-mf1Wp1Q$<7YQ$VnhL0eo5?uj}yYnt$%` z^y!=jR`U&ub^u#}?+dgom0GIT^Eo@#rcdrkUcWl>$bFXcNHta2lp=#8jutO`I8M|#Hnt;0(TV}CQv22Sq zdoHo^zf)W8{tMfJ_oBB)O>i_>^a@Lx(P*qzHovd)y7Vck%J*`DBnUxf>R(3sSeQqP zV&%>1_*-Xsl|@RVdQ%j{{rdDugVkfP(6^{Gn(P(iX*oX6ediWz%z<;%>;ZlR^EW#N zF{#+aP1JJGWW=cS3#yoHMn;-bWQphed37&H{7r0)oYgP_W0tQbPv{eb) z^W~#=%S=@PCf-`^QpWbLJc<2XQ2_o$K1GBZnZxnshCE`OkH#V8lE>0?3LB=b=Sl?Z z7TPbTv0QdMYJ*jYcYy;q9-C?td~rR4CfI-!z9c?fiw34qs%o3#bUx^d-%^kM3d&ER z35;!k?2A!ftvb86;`rnB3Ty*@PjfG?e1f{~OxmwKK6KsU4i^ZRko0}$g+)dRD)95n z9 zqWrKd;32YB!wLkV(YX6gHks?mhEO}L&(%btwv<6wc&4fN=DP)&W zXpMIp&^xE=Eg*uz<^F=rXEPvxkHW)?9Gd1y#N{M+!qrB^Op-+gw-i#*p#^l$W(=^( zF!fzw^*&F0RRX;sob{(LU**XUrthY;%iOq&!K(J~F!Q~}bFCUh(+SUq2_p69xeX=! zk&yRJ$&ENK_&iSSoHX_gP@4A$kBKt(B?9Y^%kL9+?|y@r$h3C1bq0w_=8w>jZy#B>JH%$S*S<56--9|I zw=y8#=2CtJO_LrpO4-O;XG30vy-cEvWX_E(lCn&~Jd{NG1h3b({9NL7mwG_n1h8ZV#Zcav2MgR&6Nee&VhpkZ+%d|`TXIg zsViqe?K>>LZlSb$2>MP<4M$}KFSB3B#KrTV#2r>qiyyCboUK#xh}n?clir?6W*+U-F;Xe~p5=)(7ZdMezr7NheL%!tg8O*c`46V{p;O8*F|?s^GBeECyiuuU60a}4A=TBtC648 zU~fOhF!1jB8VHi+joA8F?tAuPZAS0=yNJ4%mDIgLDrD==q!p@m#>vh68pK$~Q^n%c z&&HF){fraui^R=ywX=xa3o>lA{nBT3 z_GsQxAkL`lOnOA()+FG#A^me>#~{_F+p5%8qj*! z+Q{CT))us9`fjTH$mLDdyfcu8eyN-SsW~lzTB;D*-mmGcq2RaLJN*$NySJi%@aJr~ z!^7lN*#nh?iJ)dZO{NZcv%nbXhe!Mx!}*s4LM@c}T^->>eeQ(Z+jATs?(IZ=aFtmd zrPOuk=*8|sMxEc4R2#PR|BN6kzI*hIKYcf z`-MaS492?C&T_x#new?4jA%A<%*%=+fhGveiY~&c`f0*4uFf##gMP^mg6Uy)yVCx? zzAxxC2b-HRl&e}0ynKpEgV?=B#PsKzcf5#9UI@O#!mTcSpX_M}*6WDYO?ao4a~zBG zFwYcv+;b$mPQQ6HX^I8p(N;YW^CU&g01?X8?Op1OR(i z1)P(u`m2w$?Ru%Nb;zFdyz_v8dM%-`v<~`mxB(p(=?XtGk}AZhmUrmm!+M2bx+=?4 zo*PSLXieAJ-UWEX5xp&k&oRsf`AQEC^SPFzGr<?_zT>=M-9<1&%N8$3d?{y zM64f`nsK+BzIPyzFyl3+w@V+jVCE3f(j0`JD7zQCJzDI1qC)%}gJ(Kiiv8Wh)j{)D z9}LV-qHk!PAP%cw}12xA(K&{WVq z=yRswz9J#E?0$(G0}<%%b2%!xIF62CRc?nE;o&~y_)#1}vkJLoO{HJ)q)hG&$_}6r z3ASZ&hS41?@r{ht_P(Cggw=}k%DxU%YmtNb_%JIK=Tt-15fTqeP(n&T8d%3(ess9~ z0tj8A1TgbsiibCeB=D9%_!HV!D`Sfi$!&Nmy z)iqKmU+dP2DvOG({bV&KAN@q(wH}VB7uA|N)lkH@q{nzXG}?L;?OuksQ_#6q0;BQZ zvw_MDaNv~sdnDRZzYU<4Wsl#`{iYRZO;Sr8eNrG%qOSTK&+!yNGUt=>Fb=(Z)GU1e zG$#KfSS=4V<1_RfB_T#f@X5x$&~fqw>Fy;tWA22Q%+mQ1TSHV|um9+Qf~ep?eMcP% zAzk`x4uH^FjC%g=ZR7UchG+T_eZB4~R`jD`Ncb;9+@XH{H0+;lEIcXEI`s+9j^VFou^e-LMx{usEtP z#9~$-#=7$)328dE)v(a&+`hLAeN?SxqgaG=xrzObfB#^rU~GCIc zW>`Ifo6DF%jLcIJ;f)WKcr51HC@_L3Rti*;9HA##{E)}E%AoJBb22WEXB#TbCV@5fgk2M@*DCUpX8*4P=!Hq#`3_{&liy5 z34fywbxEzE+b7^RV4uvtd2>MWP6KpwwUeroCeb!^JNHDlNK^@8UhA$Iq@rP z;oYk&SB?d53LlN$H(99#VY2?a%!Fw?0k5Y?6VOdwf1jfv)UgP0^KpF7{_v5zs1cFp z9Qr4=JCfdyZe>j_q~C?*;I1uZ<|M1;DD%o2pIH(6ztNIJW~19#>3y({2ICkcA~IJl zA;X~MEW@iPceK8{}gBOoMSh)pn*{Pev&hy=as3G35*nt;H- zvevfIuE6g)-wl;jVai|D{S+$WwIeqvU-&my;g2>jbL7Z+2Y-DRs#!?PZ=#=zHeKGj zo?vH!8zIkAkrYh2{JDsqc$eyX=XX#TC?OCn6y;tJjjxqPBzjWmcl0z+0D5};yLAdR zC;h-5y8v3-_^Lq|Vdh1t{A$FtnYU>0!TGJX*i~V3L`aK+=xnMKKH+lG+QAfe{Lw0a z>b7qLhYBY9Vo>(Jg=FfJZ)oYIsR*vCcJce9S^^qQc}DH)`s8F#jYx2smpS`xur;=f zJbg|&6KBj zr2HS=a$U>HX#K!L{ln5rf4-I1xH=KvITab^`hJWNF<@}R+z8r9Q!u3qy_0ER<3>!A z^vSi+4Z)tAumyR2Ae&20m&rs5*JP`0uClUsjESE(z+V=|$oAw!gh+7&Jt*ah?sgkQ zCn(GBIQF*Q_cN-su)$n?ZQ>_)sOe;;n0TX_HIq~e%%I04npW{L8Sw) ztV^_AU*NayvimE}Rw8^q8a@->Wv6NoQs7 zHo(c|wa!wRvi`DqbAdn%i;IK`Ic8s;-lN?xso?_7 zu&-_sKzCvOFpAgrk3I*pyxaO$W(qoy<#-|5*o=Mr0(^FP@_MZle^#H6#Xx1wRL}LT zJ@#wroZN2-u(s7flOb4TK396v0qvL1BEx9M_L^?Q1rfmN$HyP;N7X``S*Tu;#Eq^16RXM*fW!M-zh!#~Eb36T= z(*5-P)V{B|{+=GX(Q+{!bf{5wiSz1jhZveP-j3Up7xvKZ19@bR())qISN^mnR#n7} z9j_z8iy!0qz@=DoZ4o*Hh3!db0~q>wt=LO~N znY0eDC|qo&7-ECpLj7AqrBoeO(|p8|%B;(Z*Rpfuh&KPMNh%>{CcIgI zRZK}u?W7Cr1FO&;x$MWxS~;qJm2cnuFKj{U)ay0z>!;U$JJj4Z! zsSn5{V;Uk~1~}pj@nb84>C^-KULgB~A%znGMFOmqfEc*tel+=tLj#dNZAlcgf7s&m zIDVGYfx(BHU^fOLX8ozYi)}KdijH37Hz(tsCFa&Wx5~oSq{8g?4&9tcKir&9C=6+F z;ZQp^aK^6F6Z8dqtk4Oy(XAX~B43A{EqjE(*D}Zew*Jgvj^j?jL3Gr5%DOLyqgpQ6IdA&A2?B@r70MV zU20FhMnMYc{z5Peefo(p(7;QQFHp75nLFVa=S*L`#ZIl66Sjw?qR*;z%^WgKRV`5UknTO_lpbT) zO-FQpJZw^IrCW8l^sa_Vr+N$XyI!9za2T9Do9}RW6p<*hom>uQ9;>rZTbQZEaLEf) z$M9vbQI+1zp!y|Clyp}2$grokA6WK%`i`L8_morQ!ezhRObBVQ@*`ixf<9}zUiUUS z#`QW$1FUrVw7tlWeyo>cJy-Gy!)G1t#il5tZ&U^JV3yfJVTM1fFW)js=Qs?+#tyVY zXz(I+36@cc>%Qeu*70b8=-{+VtA^9Nv4$heQP}>S1}e6U@wYj4!6Am!`Cqz5nT|AR6SUv=E@X-H*H1%Gh)=&$=3Q+!v$&$ zT;O8{*HaM+UxNwefx-#IDp0)}b}Z_MPAM;6xU>6uh$w|Sjr%-&+) zR5zhjg`R2vwX#vJGCbJZHddx*i=+Fky$-wpzKW0go(gFz?S;`OQy&*}{#KRXr(}-( z_^xG#!!^##%&q*_9vGi6Ky4|XqC3~~!?#|ociIfUqOEDGPTj+}g}AYX^0L*K=3}Za z%$|08|DepF54t5wDR2Zb$qZ$hzi%}$Fc{p&&rMXla8r7wk&`%LLDV0kw2HgfPq?l% zD9`eV;$WA=^!DWs9mb28@mo0Ds~ui4k42P@xz(hmPjcHIt!oz7G`|+EB53w zYVSweOj)_HcVgc3ar_KuYHuBDdN&Do0b2~4Zz^N~*=Mnh)j+j5+b(ZP#o+WTF|sfw z-i+Z(br8WxpFQ$28QhU8H-7&s0dbpIojQl=wrCPR>9Vr+E_^C|#GZIGA+~_TVI@h{ z@xexSbzH_W8UZ<*=av#;PbQZy9XDQH;IqP|Xo!sMIllZ}JOr>W@19BaHh#PP zCJf1^KHO`TSo+}+ac-158TNXgfFN+*w?(s~; z^pvT8dN!_RyS~P*YpV2gq@q3ywe)+iQvvjB093CS2v2NtX#2dkoW*5YQr-c7(cg&( zI2(oCn3nUz^E^|a+{7~b0KrKAoog3#w=6!yj+|TYrax~~1i{0d{w&KGFbq~L+a<<7 z#qf#RS}@OYs`YEzH|X+)-N6JZle{J-A+nz5{DHhzb`bWv%cxV8WIzHCJN%>Dy7Ku} z(StZ{{KS}HWF@v7T}O<#nRe-oa#Pa*hOgrTl9GE}Y)xxGmAYDCTTvewZbXlJG;`=U~d<&Z4; zpgfbfaqrqM7N-MKo6Kv4k13?3k`}^{mV9XP6^az!l4PKMa1rgybEeTX`@I+IPQ~XI zE=(C~_8Jo2FRKs!3f|)I+xO~Woy?8=f~FuPX)8~aP}BeIV*>58HTaIq_2leTc)(uO z5BLb9B8pyz3MQ?Hhis?y?O_wJwCT6| zCvzeW9~wrqW6PWZ2jC9SVNU>wRJl;$#(^6^p+a>L53PJTqr5!j9@9(At2xh>I#Y*N zJeD?D1e9==fF>sHZUvB}!lMq_vmc4nnZ&}Fe|isRcZ=g}<^8aN^MwZ>Q(;%vD!KV+ z#`xJ#q{TZ{ALC13;@=G%+)~nSAMU=zo*y-MtBP~0lH#V=u}g;&=qDk`jYN6953J8g>=0v zcInXKHj&9h2EMXr3%`>EKDgK-xC84pUG^QEM91+`nJ%M{`Yp@fGrs3xjR5vY@;V=-^ z%3vZsqWMazd4D3m{T$(bg8fpI`CdBjx4XXYHC|1Ae@!yL1^|w@8hy_2d+`~nSCUUG zD!7a3)XpbHoAoo|Mz%OQ{n>7?Tec!XBp8n@SE84I9-N^q`}9kGFr~aI&vMU3-wk}C z`&Ae1X*qyx^Au>2OQ$?B0w6Zjx@oEmTV%bnKneO_=di$)8!KMx3E~T&m);=HJmz;^ zpdgGNKNqEor{K6*R#RB|wM6cG3%iux?fEtnop#-TNy3Y`r_@ZM;|aF+p=~$?@SjgF)V-nvWBURJn~~ zdxe0g2jP=9)RE9B5HMgTHz2IfSC{9@?iNG5X4{|1clS&?ABfO?i16E{P|0YO+R}`1 zB-c;e>`!_#IW#`R8Bk~(YiQ=dM)#D|8^OY_VFB3It?IZLcD;m6dz^56k+E=Sr5az- zd*IS%G-KI|9%B@^kgE-rv==fdbhJk)+)tH^w#LF>ZH%rVd z$~6BX&}<@os-ov{=c&}h*w@C!VR^MW1r%ryh?-76rPZpo4_6pS@kLnD3zucGcXa}% zEvLLwUPbJ?2h2>p zi1Tc@9FS`=14lG~s_jCSM`+^5z4u9533;k7IzO?m2u0 zAz3pHxk^?%KxgZ?`z<9u$>|NZIJCRXxP1J1(0yLHcxh8Bpi+t3gs|#=q?=zcQJiTC z){WBHJ4-YuXfux`O1Bm>;*9#771(U_o`)ed0MqmnK_UI9eek=$xhjP_BjlF%anErO z+XFxg-nGkK0M1ix3TNK>6YJWvuts!1=nYQuPCB`gq9gxffBG7VSrPyUg2eb7Zu>uJvmk;I8;!~7^R`SwV5hl3R#_)AHi05jV6+b#WO!5oiFp0>qI z5MM+6lBbNWf!&|c*E~R**H|vnf6nVH&UQwz_N|xnni5F9$#3qO*)8Di=``RIevgos zQS|1*RPik~KWu%-sI_t_>8K?^N4R7LrOddWVCK_6k>3uz#13jTgqw&}_0l9vGF!~t zA63~5CTDtZ7qXAmo3&CFboMY`ZOqHU2<12}I*LDFGr6fBK#QswEsTFmh(m=3myzrT zQwYfowMl01<@yS^A0ek3n&97m$LPtZX`{`&fm5 zA95V@_|2Z5^{S>G&Lh)whN{JH)72QO4tMXQ#8f(XzBeo`3?pKb;(dsOCI{dZSgkb< z!`Z1+ed&g)*c2!>6{HGWn8oF{ zgZT&$9n8LZ_96NQp8|P_lj_OT_qi(23=s20zGyV1anBfbu{^;LZ;&>pH#w5y?6nBt zphF(Ai1mIX0xHi~pFa_M9-(Af$AT3=(U?!HC&$xTP`TiRwr zsQcWzVL3K17eE5wcD+L#yZx#r)pH}>>VB`7-PWii)gzy3TO;!)`U6ZSStULt(8r z3m9GgxW2YbKpr`H(5(jDhyo`#jWMyFTPr(39gevv6`d85h!(9c;^y6(Ki~ z0p^(PG@;r$qR`RRG@MUwm#>09AHNegbVnssxSu#YbH3fVj!f1+QCIgm@NR5Nc%Rta zw@=#h!LWd%@NvIUsI!79Y2IGP6QH;m?{c=fKXT}VIXIUA;%!3J_D}KcG4R}XFmbzB z5#lv~eK0-~Yzv+bh(X1f!AG!|R#ZT>j&v@;I|uq5##izByJ|V2o!giQ6a*y&gRjlj z1&NGtD)FdComDM5o~@?ZvsUae<340&2<`HN$~(dV2gbztai)$I_;`!KPSS#)WWuoy}p4- z-x-8eM7zy9Om@8d8Z!l;ob)VfHHnX1$HE;vW1z@m>Bm}~(EUl@HlTl~=F*|@qmb`* zYh0siTrr0wmxkfnx{pP2Jad15mz*-0NpZ(>**+3b!W>7)Sb%}Q0U`VL3sY(P$o&Tk zRG8ve#(qJ;Uwhr{-osgS;@o^r^y;_dP%H#VL5r9e2Um+>?lm*-adVWs#^UyaqnB(5!yhb z)pa8U>T7Cb=p8-8S-s%5G*3VEb>ez$(lykmWV$Wu&B5z+oA zXB=oFfXSd`5A%|$uweyGDVa61ymVO|x=q`RxZnLtv)8taElz(_KKSHOGz|^bMD^Mw zd)Fq1;T3GW%l1R~!Et^uC(NH$0^YA3m8YZ>NDB!>SQs&do$HsE1<)HxiAj(UEklPg z?)Qg|1P)K$F8)>&nCY8r62`&31~-^C%dE(aKbQalzrxv-U=JaaPZV9(7VmL#pn z8ll+VpY%ad)B^SH#0(G2=7GCxYyU{@LZxxGArn7dP6UKp{XX7z2>p#li?Wd3+ai-cho)!{gq z_~fJCOxyi`qU3)di+*(M{&Vi;<~?<4{1suhSe0CHI2qn-{g0IMM=#_Ddw!HAe`X5+ zjiiB?a6QX$|C{vOJg43>psE7aH?7M1mB;zXBn)%{@=?aHhyREerQd+GJFm22 zO70KK`72E0bN2!y)iAR2?mr?1_#Mz(lABO6$@vFLk;vBqP@Y8;{`nsfBkw7|WSUL7 z3fW)c(+?1k20(ejbc@&jh!}DY049eWg-`w*Yx&8Ozq#lBLV)rZ((Fn9h!`|?0Vcn9 z>@t@9ZyNDe@98N3l>dKFuk`KiR!m@54^s(y;6J%dV6yGO%4~yc%YF?1|AY9u>$mz7 z9qZ5-7ydJnCh}1r>INCU?a==fHTx;)U~zyt;gdQhh5zIkfolPBnY_sSH$47nbAAd0 z9VH-_U7N4iegg7--p1eDbK?CQx%^;3_>bf={2?HhaGNNi-`n=TYU#WIx%7X*?*EU7 z(RCx27B$@%zw9S}vvh9($_s|Z3jQM{h2NO{DwU<%Kj#d8g$2wv`#LDzi>Le|9e(3o zzr~H&pQ5+)_(ztG@IFBK`_D3d4wC*2Z-45n9{Y{iH;Jff`jyA|DN+7+0LpuRgZ_Nu zSH4{u3ox0kqH9Y1A4!zp4dwq;uivEA{a^L^PYdy{di{sq{i|O8Y4HB_UjO0a6aW8u zFKERS9-F?$wzI+8li6jp&pLQ94Bgyqxg_8Or}22oBAFRdM?{YlZk*fp{*U?l4is0TCyXuTEUan z5yP_a05+jO3<-ZbrrOJyFQ3M9QPSsqrM9X7~H1fwk_Jj{m zvgNZ$oR$G|&ab$R7BU&vrm>nMi(t)&mOZ3rI+MjKPL?(+b*{mi-t$qj(iAgjmfalE z3VO{v2|DSII&+NH%;b4e#HNEd&<(?Pg%X_bNS&|BcI3)|F5f|k5!qqyF>bk(xMeq%kh^47ksgm13(~&XpT}p&M187M)ao+joe? zgWsy-&TmLpqYyJ!8AIy86KgfDq9{4ZxoWVtIyOUwq1Z6(R>W4UUZxi7Vr(}T6>QI_ zUY&S)et=ek0e-eo2g$}j_2uT=+uV7rD>SYSaamnxE{vGH)0W_BXtz=&KRL$u7{Oj> zvqndue)|G*Gzxm;F=oe2;u`nC@L+sZbV?Nqc{_^}qWP9U-n>Yov( zinx>Z?fEgE^F~$EdkjfP`1vMz^Q#$@?IvOKCD+cXFV7z+&aKuf<&oA`Z&~2Naxj=- zOkm@x0O_B>)qiN)-cBl%IN+kDNYST_kMA_`zZm=O zaJK)pZM0~sXiKS@zbb0C)ZQJmHEXZfqxOuw6>Y65v4Ut7wTT@gRLvk&6HxS}+IhAygCb3q&nb`<&;l zG=uXeKX!MkQ~(*YQ)!e{mRF8p&QtG1YOx~^-+=foQCed`be_Q?j7_}DsML6OJ*|id zCEWz>vm@y4)+~;7c}O=%Jj*HK^4BT}o27lk$wRhr2HBnOyZV_`Rpx9tj%Tnx)wZ@5 zB0R~%krUS_6Nnc(@TFX0!JtH1BYle<7qmbr&r!JTB#rfZi16VE^n2ror$!+<@WTJ) zor}H=>2AXl2?>MkQTWMN?HV+3ZF;lZL)V#HJu5jBa^btjDTVe6R&W}H-ri}OxVt(= zPcMVWUPN}Joah#;rXqoj-<8`R(G`S>5r@5U!*vwWk3Oz`n)a@-M=}O7hRTuEa^TGu z!Q(yRZ=3tV?nrY?!Pf}QY>=^i80Y^sd)QEpE)$EL3)h9;8inn2GrZ^eMBRV$Onp-d zp=Dc|YeE`5KcDZ=ao4(@BWn3RoO$4$X|$6fvWUwRDNK&~UR2-p zoste|AjQrZ9p?~MbmOr3oJRPq5fmueIM5zU$PaYhSzkEz?&N5Czp1PACL!$fn0p=? zv5w4InLfYMjQ34kRWp#izC z_6w!>d0wR8uotnD+q+KnsSIc1y|#vUK=F;m)+2Mo8u4geBz7KP_H%B+EU^FbG9be- zi`OO~b%ZR`6*z^f&x%al{2xf`KW07i{6Cj3tt^l>mLHxSjV+Pg@JOutPKa;N&Ebi6 zLIC5w#g~ z^4`bww~08BOl_xDZYMxl-xIy*0&vyc0MbZnuv5zzZ%O=q{ zP{yRBKl{?YR4V_Zf%{ZiQrdIhqwUb+ z`bewvR3hSe;7WH$eOAmB@E)6}@z%dPYyKy~{C~LgzlDJJen!A^(;XyXUVO2PM3aSN z-fp92CA=LulDf>89j%&W71W&tWhD#6EdL4OB22p;)xOC*`5@u6-5;Ela-s?%4SWs2 z@GeV^j&-<*R3>hFWlUsQ-9NKQc;D^glbZvrew0c?Nk8vGO_-T{abYaK45jY~4EuN| zS|b5h_wwc&maOjO7_*NzaS2aYE7#|bUtF}KA|Dl|QWP1{Bq1-bbY&-V?k7Ik*c; zP=8uV){5a2^e-hMKND`(pY3#Y-|qI=i}OI4Nn`E?hdt!$E|$?5$h>3ig>rr@hWzj1 z!~Yz3|Gp*Ozn2s?bo~A8uz`s4GKe?{n2UP8E@%}ghq(teZY6D|MOWIIeX3W~G|t;u zOR#>Y+q2l1IcP1eeqVQ>;koqVYxC;AR-HvILwcj+GS#wb8?Tv-4>YK^3M0O8##chNo*c^M^|15CV&sGn}H`w0|M3t^Uk9PJo|%Uz!G zXy5;_^QNYQl+*I=>=E$z6@CE&YRm*w2FcB5vTAf#xFh;rPB!=c7)+-$Yp$yMJ&X3q z-3bdj8QFt0vz0=`a8DY9G56@u@3ZDWr1^_u&D)8t@sHYaDKxIB<@wuMRP63q`sF-N z%z{+hdiO%le$I-^9{EC( z{{M5XHd{AZ_WIaMQ)J}hIuTsx-mO-Z*^VngABc<1>+^YmRcr|urIZsJOP-B)Nw)PP ziuN5Zd*0oD;JL8S;i|)4Unkmpd`5;4ZxWuAke7x>N=54E{Ztp8VC>_4^B^Gj)h@&Q zNBv(>oxQVz_xp&sDv0|UA2|V4$_o2cbu>Ik&d*F5Py2Uvk z|B?RSwY;hz`bkr+pa6%knH{1PFQSrw!*CCk!sW=qIipp5c2>2H;PH{$dIwT+y|OpV zzE5W^vl&f%fJV2s1ZApKTelv#CI*pB$WoG z-QgcdRQx4OWa)-{md8J)2MeX@D}al>ofz;Do2c|Jf&W$Hd1!Ry21h@dJQAYh13`hW zb8zqVeS<%lQZ8U}-*uK1_A;z^-1-z#QyMD;8K<_tt^*EDF-xpgMM!>B!jxRi`7^M{ zLf7rWokD!fy{$m9{D+=Dar|qlKhs@0O3%7>!qN|lFVh%@)WmUJ84nh1>Cf%CKr`6k z7pD3zy?d9x+ru@lAEHj%jbtwT7Dw@LJc7OW& zhqS@;XeKI3HmR-r_mm;m#{pP*Gihj!bKYlH)+#L~%_@)S5Ue9rWO7EfQL2lHm0ehK zee$qLK}iMVb*7BnldQ&Y)@)&GMM&|wRk(s822KcBmjF%M1u(Ui>8J+I1s+5sRT;`lzsE`uiza#p98|+q}r3Y<*u2TALL%8#Uf_c8xSvuvo#P4D~CI_M4t8SHmn@-o$ zgE#(2J4tU#X*!~QkRjL^IZtBGlBwC+9T0hQ0HZAswX*m;)R`Lr6Jh%ERx3$MRvRy# z`2jbV=WBO3WLCFLF0IJdiIWr9 zUhlO=#x+WF@s1161tp=xO^~CzLRhLc#)&6!z5AsM@sm$&3pW!UUQd3X3$Qgy-zy1y5ZVzhC2}7_jo@){t4@a6E$`V z#FG?GK7>W4^F5qjqo={s!DpNkKXi2mu%cG3Dxa>@wfr$0Pl32xD&0wb&x)24~}$e1HCk zj6{~AozOa)+y#N(5Vx45mvxKz%L$Gv~&$T0UPp4`J2LoNUE4yt`p66tAb)x2@5 z`F=f5muj-+ZY!T`N1jv)A6oEis{|$6J#yK7&5HxG<%l`uvn%0?;>nfYPKx`7m>yp7 zB-}3$;4ra6#_i2Tsd_t`RcNT4Ns~M6K{|c%b^FUR+SRw}`+JX=f?Ba5h&T|`)0(xw zIi-u(xfH$ry|-B>TZ0sYuiICF|JCVsbXqwZv5 z+Bsj4BZvAP>e#%v-dGX0K@d8>-iMp`dX{AD-hSyndxwAj^skiDuN~YrOwp>dogTMV zz^CMKZGiq6{XXT3L$A*O>yBwIp@88Ro;&+ripv3L9UAzyIX{Fr&ct?QH`D z=wc@k63mwuHa#D`Be3b3uH~Mw@Upq;^sr}Fd!E)XBIA1x$Ad#a%CN=oAvjy{QOY@do8Z)e0dFlfTZ=RoOgGjJk?2`z#b@Sf{tB^@sT(xWj1&$Awx9$K@&mc(I6=MfK6 zkFvO)=4OCGp7&n<3BOf1T2lM!N4NMr0ka#+@ak3-M!OZcIEwLk+NxWf_4D$a*G7k( z3wF_#W=<+GI}gHYesy(UO*d3D46EV4oD@KCZm_%bzgnSCm`L?^d}I)LY|lQt5U}wkw~+AnT9Q?7wVWL(II$6Uz}L&uT3;Pms~t6`&6vvg zan=FUWQJHP@Ux4Wo2o>N;)kYERRsAr4fqb&DFK+OpE74c7bR0I+yPFot-e~99*c+n}ZUAyP3-3^T6LVrWKh{PfZ{yccE$z#1*O^V{;z| zfbUvY939)TTv5*vMC6$W3s23Gjez$e*rO$M3ejuFG8)s*un^qy@XZ8YqECMC6B-2x zX#Qajwx?PH!gS^1{VSMLS_ndtF2E@VkdsiT2n$)Q>446MAjsv9NcgD^m+DKF?$Hb< zHWj(EWbXlV^^oL2FP0}8_j6ma{qV~{-|PI4m4n-4S^m_D58a{M(HAMuhLM~plUdRF z-}ocLn>-XdC1B5ME5+ax0ik!LY>m z_27@}h~vc~-Gdz!jH7Ll#q6CZ6HGYzd16%NGK&Xx#I4p$p{ z%+9dOSVOF$t4+j5VP?gO#374xK2i7+fydd;qW`RRjlX# zatD9@%^k?|bm3Olt;5KDn@=e<`!9DM|3Tbn(}CE+Huu$eI4xofgn!#9`GMEX8ZymjBX(3016xpZ?t`9MBx*caui!@wnZjD2`GU}}2pf)#AtAT=#y~%~VWUmIUOobnY zDCauF%U1@l+%Q|G8Ye5 zmWMA958pL^|8UOwP0A(cXAfN7^<9p`hg;y1a`6gVMUy?6z>U z^$pfEl?x#Sl_}rkV&Oh1`zUu!o+ zm(;c#Azc;g05>II6I0)DiMhmI7Hx& zjHjJ_v8yZ<^5_#8mAe=IOV|@Pl?BJ5T6@~j<_fV|b`2Df>o+keaG77*C^2GV+N9^A zKUrlhO)ZoRPr>C2a4%yrG~D>s1up83{|loAGITS~JLwJwFV?m){i;3_lsQx6G4bst zZ!r;(s@X12dS+5QC1+3PD!dX*7C4xka(v>$LZ>~q_`qfxQql5lH_enBYTT#u>VN)} zkiO!%2D8lkpISZnSo^83RJ%U5x75huy3~0+1M|&ty~Nr26F>(ydLku}MII-Zv4PJR z_R0|8zx-(;M-e%2G}gb|#=5%Zarcm=&162Pn6I3sGi}D@6Yr!{f zN$Z3Lpg``|Q!E@7{Go1o)J%;uZkmE z#HeSrEb~XHX+&gzWg)1Ey@^_7O|tB0X+-5aiopAoZUJcO2)#`3=TC>QN)H zK?x?WrkNBxZ5$U1 zF_(2ki$3j$FI#nNk_kJHMXtiv|0<0M7za~41{ZNdr{hn7_jJDQTCy7gGwV81+;cOO zVavC0ZrrSEv4#|GA9U8cNAEU%^l|VQV^PgQR(4CGeFc-q92I#YSlGn^ap|1hlf3$N z*XDTTgyf7VO00-ec*YHK2Skit)G4=Js4k02R}G*NY|2+JkgQPA&*{Gq#Hps zx+R}~Y?!`;mnLQiJAXjcIOE;M<}$W^k1-47&$T8xSZAa_FfnBgV6iFG^Oax^dF#)( z$J7!P5+A(e)r*#eUm4A6`8q4|V>m zUmgtjf)vt_Zax0A&>z|hk;j{kz~7ABgAVrczY4xi>FcwxHC6FE9DFt}QN*OQ2L)+0 znrsoFCiL!3k4UlV0_`P8RwbL?yY?64p2t(8u`T-e%$F2QXBCHBIEf;ed zt}@3$Fv+O7F%ZA`MzJ2oi zQnFaPZd3ThkJXaH2nC_D`wDPKC!$K6o%(Bj=(eqTPJei)cbBtM?MQ(2WPxr7so>yj zF=-BCIgS-i^BXkoV&EAA zT&m1u{({)yGZ2;cP90xYm;(PtpvQ1hoO(Cl+UW-)iI)fY-a+;U-$dogF6kAOiar!V z%sdh*)Dal-tY2*mL%mC%l|D-JCji~$;=k#yFJ1KVz&V1>e-9 zjYzY)L#Fp!IT?~Uf6AaTZ6;2?<(34 z>IU_xGZOow-ftWQxe^pymI48KPp8f{@0KuC%Tts`b(DI%v;idu{;sP9l90su*vCe_#%#YpnfY3@c-=>hLeHyfn5 z-xW+2PFS{(e(W{VrFw2%riG504O!V8BhAn*cLD(qHuR!7x-+W@Z)$b9{+i4f6}?Ac zqYin6Et39XNKrvn_+dxm$l2*n71)nl|7Ok|f=`22F;miehbKlXHq>9sPEHOae@-;b z9iQY|v>08tx|{}?%mE?*s-&7Rwxt+9L4+6FHhsA3wd9-);O!oMDrapNKXNafbMlMY z{n%s)8P?x@q3wm9awzt{Rug`i`8Xhuq|4inx;t6vaHupp%tg|B{*JoIf3pJrWb_0v z*+ORv%zM=@&QJzlK7Ju|ciCC=5p2q^-yx;xHvcD=avJYxd))Jw<&24H=hCOz2z9Bs zNBuR}y|RP_j^&{rTT?U3xFktN>)bOOHK#(zVO6Dlx;b17Z|dkAYWbX4?1u94W~IOc zW#fBIDo-X3HwksYc-T19aY=U#_(=5c9WL)$mbFAYjfJ!-r#34H13D1yh}jlNZ6Wg(!4z*s_bj`)h5L!t5Cj? z#}*NX!4~S>Su%R@ZGQ4xpQ_rv6PbMle$gc5?!4->I^3OIBUQ@_e!8k{wwqC`O-uOQ zplmX$|Fv5h;dI|%kfw2iqGQp&v!Oh`%wY{)z|F$JN$_E0*DGCoiZ*08I(3e3DUDS} zKDKDOShXUk0V}fQP>b_*=oaC;$I(!)Gt4&L)10JX;wWmKb6c_Wx+38aIrL?{zrU@< zMsxG@g1IZ`D}ATI$0=8Ev4+Vt>&U*>P1|lptPcqN5U@vPYU3Jc$skE*lo&91(w}?& zfpt$;GNh&=yHV88*X>=$HTMx1{n{5X(Gf~Kh1dH(A*mOx8T7i{S)E^ZHn9u=CW&!X z-=IIjFOCSFhT@^cIgB4Qv-Vg~sH{9<_%h^WhnG30UQgb_PN93n`SQ$B+V$smeZDUx z-=p*mi6{^yK3b`e+ZmEOR{>LI35rtN^IDT%3| zD5T>Iow@#U=zi%n*7P-z#85Twua~&~1~!*ldfszTb}yftCH+l(HDE5hFOqA{Ma_3; zJ92(ggRecL+xOd5B(sF=Y)Rut--v}B7m+b1PVL`OQ7`H;^RwIH8$!qW%wJb8HOBPx za0$QAY7+gHqzbWzW< ztj`#x&`(A(Qh>e9Sl2Vn8dt^_^MO9jGCDod?lbQEp5h62Yud{p*4=VL{$F@nfN(Eg zK03oD)m2HL>Zr_lSIB_X)$*v84ZJQ`37c5M$_BF1(;IgQJPZ^V7XnQqhwDw?r;IU5;iIHB4 z1ZwBX$9n6Gw%6mzr8@fR&QscWzAYvF$`?yNeG5Cqu_V{XiXWZN>+`kn%jq4HA(&7( zcer#~r@w6iJ`i7{C$tmNkI|gYiafzG5*Ng7=8DQMv~O|*x+lh`QOE%@(o#w$OXz}! zvS!3}YqW96w|YOQN34IfpZ|n?+FjR+B^nT0%NqQ{7)qdX`EsdN2IX917!Y@p&!PMt z2RWL&XpZXC3}ZR9dyapkYwhQ{agmggGauopVRFle$Tn2jG|Xi`UI#VIP0>ioPXj)( z>zAFl`~B3oOcA7HG%l}lf;50q_n!m{fkbV^r9HM&N?oQV@l$pZl)my8_+%yivJ%zg z#I^?C)FRU3+MJrU*<}Hktcf=3NMA+vO{K`nb=Wr()`~6QTTn@=6nD=}RU0Ie-kK~( zXGC-SY^xM?fLtjCXCG`e8~7hVvYASK-i{J}{uh2ywIML;dFN3T-*Oqe+)qu^;AN8IQ zZHQVDvrv~rsmXEv2ui2C!*n+Eqtv23GmG%1J%TNP47ImKD5)9B+VSpSPGf;1 z=4Zv{89iGjlBHY|zcV#mGcaESrf{HjkJ^hsX}VJJs%jnutR{!w3#D<))Y^26WJX*g zT=Zpep#a)R)XL>zZ=-Fe47x33;U=UlfH>@^xV1hMP`+KZR}DoC%0q4wWG(Iv;jG_^ zT9}z8Xk{;}1A@X5e}>;zLFd`LYTj^}72ogg#c8I1{GmQZ3qhVd21SL}aBeH>$;zUh*(I zP~Z7lg^?xiBJ!APQ);Wxx#8c)X4Xksay~$1*UVov>X5n3Gx?L|oZGPU!%2eZC5S~K z`ggGKurRl-^iWtkil(WoEOiU?3Vg5~Dq-rYR4XLM1@RD zSKOSmk+jpfr(mPkBf^Z1%4wlxtmZ_T1S5guU!K#ts393TC}i?WyPN71JxNVH2(&KR2r2kcW0NVxTr^`U{8?Wg(~FBF_4b8p11%)W2)kcy<)5sc60P2_TpZV% z9WI-P5_@SnJ%F?>{)Ota#Ph)ln|1lUyn(^>Ma64PZR45S?SEFJo6eRA>W)0O9hxIg z^s6mnbY@mj{!zN&-`ZE^idAy>q-Vi8TteVXl##%1|67kL!@bcbwy}QKiGSc(>vu9I zDcAiKe}mv>!+x_$)`UxQ33R&T91h~kPK;s^n9G)7~gz=!0QBM?=)f3XVsgIons_-`ZlH1I?8xk zN24Bj?Y|L|^ECo?^bSRG*we3V4qghUtFph)sXSMIa{-uXFl0 zN|bLGew{V(%giN;EC1vBMJL*j30rGpU~H+PRlIEAVbSd2M>M+jas0hD=+5NJ@1`Tp zspCP|)DDkJP&=t`BoUYd(*BLCSgmMi!%yFG0lU{0;%0Sg(jy~GAM&CPPlSgzHq9L8 z#2cgS>Zn#SXAA3RJqimt39;H}uc7;A#q&)wS%%X`8|SyNv&W7k7tIiSuuF?DH_Nub zaS%C&99d0;uj4ghdyY)i5+qs97CmcHvR$oCCfVfh?@3b)e9-pH|s2QTjPIxb?~! zu-&GejG)M@WKSXc0Ag#t#NGR)BFUYb=f#E6=#02Y=aNYT8Ju?RBRXRKsfl!YM;F9UosJf>$CBVN zyuNN_p39e9jV038#DJ{JS_N&xnK(C2f>L2(=b5zjN=)4x3cN?YYN}S$#^?JMUlT*{ zK`%W;TOdt4&B?9WTz>81HRbkq>hL(b5yg=m?$dz2FSzQBdE%HGMdCbG{=qCDC=R8>Lu|6mVj*H<5r zW7-1MYy`k7f=l*6mAL*nNNL&M;G2J010Fm%>L2|l0UuL+Q##5Nt_>{s8nzieFLw`+ zhg#k3`#k-OyZI%P|6Hlj^4*uT4#MPF7>rx@DyZ>iPq0F(NuQ)RY>|AMQz7joXkJ*h zI_toL#S=XXyv0F7Gpq5he?t-;9M!cHeLahNRZkNb#}xRm+_ZSf2ao0;#8>$I-=sS}TBJAExu zDpYi@3{H|9UcF(?m;|L98Ae4lIa)P4M}(x7^u#IO zAY&sYz1E@xG{>@z>*j>uxP@e>H}uWYljijLMqjITGWCkW$ksQ z05?bJ;%<{P#v(C(0{ar$VRrK$0frxlgdi6w>U}(ztW_IeSx9(3=xp#GXd7Fua3f|xW4uH+z6S19cQGEitiQ` zyJh1{hl~-w6?(9EJC1WGrnpPlk;_n8hMMApU|5?@YL}9}bzFRXBt&kWq*Cj?0 zW#27fx+-5=quNS#LdvqCD?aeg>2pL=wpS~q9)_M!F{+WHW z*SHR<0zlBKfVss|0s$E&+wDO|-6`FytTBx(u9OrKuS~qm{NfwMlMW64?{cusb3ZZx zqb{Mob?>@I=}-V9s9Nc@!~~6&(18AI<@)(0Ku&Xfw1~vmdGYC4nwtG^9$&@$b_o52 zOm@s==ImnWVW-#Qy$siAl07$%Ig)lHQGSjabZs~IP`jq*E7Fz%c^5}#dIYP9hHEiD zUzV1yYR-s2R9Zbmz#CoD8xaT4WTPQdoG|t1R>$LC)drQwJ01ODY)?D5+nSVlLX3h^ z$k@=qvhd4D(`>x~iaN8~y|T{u{v8pn;anEC)7qsO@gr8%A(H+R=>q=UDgmd zG>zVsnI^OUyBHwnSVI&2+BeTgO+#Kc;=qM;9<2;W#IADq0Qc{#uEBb!+Vt=WQzrTsc`r3oo*+?`yj_RY~lhbZZn1i^B zYsHdag*#4T;Sn8{Qj^m(9GmX4_R6C3!IVFRp?3F;*qv<<@A#S=CxZ{)6K9dLe?Dnf zw~n|L-}(kSe)tU4skFIH?aeu36WOfg*fkz)4LV8klw_&&UVS1p z=X^jOi2g;8DL3+bi0cbb%<`L_gQ*ba>taI@ctVO`8D!a%Su$MJt_5%yW(DY;O4 zhF4GsbAB^%N?!n2wB9oBgg=sw-33ZN)KPmrq;p&}!f!l5<9JfC?R`mO#9J3M@+>-k zOuzwTwA!F>+IH!Hd-_vrmcP=R)sYn{@Mf#YA|zfVBv>Z!iJZiDWxcC2B-5u-pvNPI zQF+xZk%!pIRoCgVJk`lC`J10@F4O`KhmAjJsX55YMds5785-0&F%ly=6sKz<(`Y>c zRIGK(iUY)J1)jv1U1<#WY@Fr;sp+txPiM5kNNsY$swiMyiORJUVGC#r;t#9GUN%s_ z?@8ll>yg2mJXzJq?q}9Rw{_dScG|xArD(b0%934`Owih{gO`QhgoFzSCsyVPX>KT(5pgr<@wjW(b_v=! zn_~5#8-}jR$Me{J0bg{fGp%3u)7ZI-Y%wi8y|Wzr9{}KC5z-&<=HN%$^1U1_DV^@% zL22q%3?U}B6Zr)$tgEo4I^OL>gs+uVo@cJBc6mOiwS9&1it>j)J_19i zR;q)yp0aY3zNI%Q2z!g5DMcTmr*KSwhld69iUx&q`O+0fioyWQzq+-l^ zAs!?pr3Ig`W>fA3+-C!vsI&fCVLFvSZ&rmdbaR|K&9K!E;C+|4ZBX4yU`3!418K zL0SS8hAc+fX5jBbdTtB#3OiR$vpXC>U}dJrvx$Bf)XZ_ZCwJ)MF{;(^DapIJ)ueFo zDQV-AsO%`bg`A4A3P$cHic;hI1~wxMQ-~eIR$|LwohRzF{VsNnR}BnGq&PPi+(J|u zo4Z3?uNCOyn}W2X1F~kINn4Urh9Sjf9p}8UYwp%f+`B(Qm+zTTNJaX4=ap1g)iqqr z9LTprG{#F&Pt5}_>OKqjht9Z1{#81jmR%PL_859aC{yye5pIy#m!(qResQvruvQsr z71*6_o=J5{d}Hq3YVTI0^>ptSu+C%RaNLZs1bx##Oit`1_#E~f|JoNO-^>l8k_Ork z$f5-08!Jan$?_c<=#=GNlY&84VZEE3jT)Op?`OfnP@%2}9 zDhjEoIfTG5P~uAQre8?o$oipbX zF)?Mgy`&kYQ08Gk`WQ;~g@vkD9(=jNW2MLyk=>z!Re?xcanJcaEPHIoZ2y2`Cw;K8zT&n z=trM@YVD!1C-chq^7Z@>626VyAVC zwTWD#2YFOwmj_q3VifW{c(CRVwDyc0&fpU<#!PS4zK9n9(I-zZUoQS6 zP?yV)By5mBRM>~O`1-4@Q*hj5a< zGpdib@{ziwB4YAvH!A?auh>l_w3lzsF}v4H*(jl_8>g4;q^Ji4r*yh6xpL1S^D8`l zn#)_vUUCCJb$8jQHU8nWH+I#}vD?t#hH6=OVr&2ADTjYP-?2t_vAHLX)NWs`QUq8z zH**bDS9ctIoeAl$-pJfvPm>5g#ix2E5EJBfFgw-@9J60OzrMOvo0;NKS((qtScQ8v zx8-N*n5)}7%}&n5x(!`lYEzaD@o4;gMb~1YlqVPN$c-_OE%*Q6A^pkv%`v$fW23eL1C!p;;^ozf(r-? z$Eo5aLFmQCJ)GfwA2=2(k?jh3Nt`cpsG!T-B?kSP%O>8u9p zdHF{Y&pH`W*2($UzdZO?YaaPyp|owEO>;WvK(VGogi0cd=m!-_`{ip6y0bR|_0|8% zHvjeI6=zD2Ds=surGZ(}TrR_pQ~U_QELtq2x{E2F*}%Z5(9fOa!+Jv4>X1uI^ekz^ zrgSJ_%h)|s8n$?xe`HGQX(3g;1T(n`KYBe~#QeL|=62)!qtHAnlZWHE1sXDr3=QCZ zsr<*u6aKzZRt9SfoRubh<+b<3<%Lnzg^*h*gItzo-6tEt+OmF zn=yXBCx#%jNgU+O%GSkV*SN5;MfXzO5*$ntlNuObc``Qrs$C4ZT>6q=Pi>a}vpg-B zuybHXgX4n^8z(P&8Bh}k^|V(bZijs<5qX^0oaJ5Ns@Zaaq>zzV(FJ#{_fJNPQ2mo$ z^7w_>tv`+Oj~0ZD3`W_!~}`PCi_SCqzB zlo*jW$%+O*v`|ZNeNLqdWKN*8B-7q*1hB&=`r zuSQaB5NJZBOFVF%k|@24|1lwu^ChmnI?nhbl&T@!!+Ivsd9=aoHL#}SoYIjQHkavX z#Aaw+V62>a{Vq8a?gzXw)3=Z==Q5LW6oa8M^^LB=H$md*M_&`ETjdEim`<#?AVx>t4S|d4L0uX} zmv6cg0CUrp2P-yNa!>h`3r@Ua+REJHhj=($>J=J2%_Thx^=sk&Dm!z~wAbEwP*8Fc z?VH%?edR%8E2%Rc57?x@___1ipswoWm6_-&Tq%eTRuZ-DrqbBwGIg8`jsX*U= zq4rg$a(ZP;*Vu0nwT?lNwdbBw4RULWw!A|iAuefIiOO1~T`p86sexCuI(kGRYqAMW zFY#e=yZ6+^BRrIw`yleUz;)(rkcF!G7vZlI-E+ATx4vbh%t*LZY)8RNP#lfPk)ESR z2fRV|)=Gh9lx3c4kI%=5GFIa+b89n4k=?ZyJ@IAtcS!DnUx?P+j>>mr5Z57x`K?tZ z8YWFGZ6j-?TA7n7l0R~U>n%(-F|`rr4?$^1RjwzWE^LQGt8`5@*QGr@>K|@76m)X) zBLO=SCJ&x|^^(}duBblD=k8M?zx9uh%Ne34dx4z;EP5q2XKt`&srgw>j@Atx5D-88 zxMB+FL~S52`$h7gz}LZ`$imd%A!KNYo#~N| znR}*Hx%ABc!vAFFr|L?@DewPqEZVK?D1&I(CPB2^acf@JxyiYbT}J5H5z>j8+krU- z1OCfV^3?WUJ^sZKvJ}D*R=^(5;7tP_s=~Kz`u_{(7t2doslDc|&RLa+-=z39v<;Z4 zYJ92jQ{VffRmu3JAa&6L-d|VP-z{BQVP0IWDM7t_0jSE~X~N>*zvdnF&&%3v+xN>m zC8?DJRdv{u{pk?*g(=;!VZV8MDGGuof<m#VaS z)I8|N$$fog5cub@*3X#>mDS>HZHbCPE&tZWyVsKD3fTIbORmynmT4hbt)260N2|n> z(G5(mAfQ^@fuZ@XpLh)cS2~=A@l%|gz|>{?tS)iuJ`Qo?DO;c zuEP(m6-ct?nsbzUjCqeSN42>X$E!cH z;!~D1di&482?Z%?Wh2V6dw`ah8AzcKaM7hPCwfXuLP?UWr*g_x!>FZY>bseH!$kZH zA#3`~sF`E)<xD6DQ0qO}^_bhnsY43SFcbH++oDK3^MSp&pb8MpJXs$W#;68`REg3x+@QfAJn z9k;H2=Rz#eG$7qY{;TcLbw@a-X@M%o1+KSPfX8D95ApAg)0Fb9eJuF%EotUuy%!lQ z!0WCA#UXb}`!3{MOUxnYqn;Cg^vMo%M^O2&1iKe{>IN@0`(2XWOQ_`=kT7AA*Bg4t_D>*YDDJypZ zxschbgs~iL3TvpcT*9tPOEaPO`;=zRqxuOl)0bC}?l9|p`PwXM<~h$%fnd~xHRwhQ zSg4_ixO2#>TE_*QHBc*T-eWb@!oeb&9T!UQV2B-Pv%>Oi!7%^oRCZyg6-Lu8l-pOUJY;zC77PUtxZ5T*8YNpI~o-O}q*O!uBB3}d{_G>y8cMI#Y&83y?`}q91yGQ;J|I$1$W?Z>Um4U< z5}FbeM@hfe^O+Yar2bt#86rPO*m{+Y^V3QxR*y%e^P>$`(azBd{2lZC+V#D0Ql2QJ zot`Bl?e?}ckKOY`j+i2+zCaEMC8leym2{1iYN+^R6w)ZQal@3|#(L_Hx%`z!n+mng zH>K7~sLOG1Ocb+7<5(b>@m3T~_!S9K{>xj~b$oW;B#Nz8E6Uj>%bCU@tW}01l@Om_VmvM_6=HbHMJ;k~TlPmZcabVo z^K?yTQkvmPj8VlNR;5WTA_YXT<=u1kG7awfAH#un^X&+<28)Vj4aE38>z(bE(G$JU z8&>L$ZSSpftI&&oieI*0IXhI(UEhVw;_lD8#fuEdxbtUR|-O zwrp-L?+WquPzM#;&X;hm_=rQid`c7{vVl80I@=84Dl?m%*% zSI`n)zj>nPr^3 z7Sc>fepG0a(Nmf1>Z6}gdze7GKyQr1Ycc%Z$@2%mS|WVTAa~s+OC~H>{0nV?QT~Qe z5w@#!gNMn$9)`qq7lVH%7s*{~2zX>QS*xeG}V z>iKd>Oyg>16WCMtSo0?CW?eNXz{nnk$cO%W4^k4Y`C4>UDeeXSs)yLrPaR`RIRy%C^@3T7FIvNW)KJZrdl9oEm1{~9jf%UfL*(e3xfk`@b4LPbk+1tJ4>d@#g2%yN>Qz!;1n%x#j(*@d^DW9ou#>y&(De z;bb?`_1+2{-X)yNc>#z%+xTd$osNiS^(epIPdUjwPc;^BjeoIG7v?WkY1wvv5S(Nx_>tdR zdYTi;dt3mDiv`C2DC40-t9(I~5T(ANK} z>pFIse@4G;ZN0R?w*u8FRBbvnwVl`^8_o+)R(0CZ!2Oi+?GII{Wns#tOuOEIEalvO zH%Ujatd5@70AgL@z~9o;Y7z@kLo@y9R=tDB?W$Zx^4YkJ-h%P-qf>3n2yOIpUAoCj z6+l3VU0ZaikJi3eqGFvx%6ZMA$c2MFTDE%JvN5NyxBhusjcM;Fc&?hgoW#NI@)y-z zXTLzZ7C3{=mHfW_f|AbBY9IGmmOm8vikk9`cX z>Sds3r9Qo?0l>TEZASK#k|=z4{IRw0hSqS#kXayyVRmPnZSp?^iSljUgj8~Q%STWM zQqmEEISISj`4M-{(%?Aijl6T}{mlXfWzw~#3ImcgkC-`Oy9yruKb+Tl37>nnz-%x}bs;WQe;4NB{q&2Uh()&#iVtZE<6^5cs9u+j+}Qv1rS&};t_N|HE? zl;VE->omG)&!$5D+a|-|s~cUlUA?#5^g>p83pDUe`xAN1wW|Y~i-DNepz>Sc$v@L` zoLeG@U#bGDvx%Xq;yt;Jz;p4WhxK=2cJLKJ@>hm08S=NB&RQYG2K6MEhJFZ`f z;X{ggAD%7^e+JLapU`J(<`xbSiXU8MDCv{e1HH+4hLvCj2DDMf7eLoalbAE#5H?dL zkvCK8M%)EC(fOAmMYiGF5_mI1s-RdxpPXl7cJ?!@%CIt91MKEnT+N+uR0Ia*Aog~e zgm6CBi#ma|u7tfw56-^C>ZLk>x32!YDcuszYwd1-Dk6i0RjyUDlSnkWo4$-_|3!med^kgyl0`=!R8kW;P>R>pNN2%P9 z3xYA^g&)j^&}Ke5j*oX@%3-zVb!~|E5v{{H&nrh$7WLuTDrI8VmeaVO$j~g3a5lN? zvlqfjl=--v<6~02Y;HSa0Z+z|f9zKrK3n8zW*iN{saD0Gkuwtmr4bUA%A1}Opm~k8 zk*WuS1CI*FchaoVpz4{+ZYdoK&UbSDkpRBiU4xV0YHjPxpw3k2jI)grzu?uJ$w=5D z?|pz9z9}^gJ?WiK2m-}*JhutZ1q<`D7FGMIyoQ&%6M)}l47`sT(_e&VSO3W2B>vV~ zn*=bKMgrb<;P3(bPtK59rRwlS9mjUO>-& z;|)oc%d$eN%@`9GNc-=nl_hClv5<`r%*MGlGMflIw%vxM4yLY^2mP|mShdg#k(mH$ zo6dR+3K!Qku;`bZ#`GZj0o1173iW%nGT*oNEU-IiR`tm!!tIpV_rBQ#6R?Q1-HHSh zw6q|Tta$e3kTc!gJ={b{6}mQvjBrVM9M_=$>l1@E z4~rbFCBC`4d2C);aXEHc5NakQh8Mt5Cwj;11YZduUvw)d8?BYz$4))feTFAspXateqsn-?x<>8$Y=6 z@|J#OJZ^fpB}BECo<3UN3x?Zojni5MwB5J7Do2Z9hCA#(j+R;rOOt6cZEC3I=A2%< zv4hmxUu1BqBJSU{w}4Q-`O>Q$+lF$N1!WkpI8jydm= zXhG@?aGP9u<+DLZJnPsz4ApFWqcwteXZu1j?vQb=Ie|mQ-Q@=v%Ij4shI}iAW4R0VC=cHm+Ve0U;0FJ%P+alEh3x~{ z^OJha_vQZ75>tILm*W`v+K{DUfjUJw&g_+D=>gj&p?Xk$C~DKKY0bw(vt~h5Uh{H^ zBY4~`!iQuYOMQ1sVXDo5deNA0oDK=^PXA~+e_hX3geBZolM@3H>*Rg8r3omx>!-VX z)BZ2R=(mjaQ_jVJ74$J80ntw|ty5_crQ)*w@Z%r706NQN{qxB_WvixrHVX&7*8)S< z>iu!Oaj0$vEFB53*>iAm^3*qOrGe8Z<;6L#I~w?3ZHE131&sLbzKsvYZpj%bpAfq+ zYN!V*^W(lHn>XLHp?VlAi7iDA=Mr+KvZ=Q^#pa&}6o-gik~m|FHprpUFR415UuZDC z30PGlH(jpq!o^rZBovqBqvtU?lRW~s@D$f^zqX!3EbD^dHGEXQ_tQH3KsH`;!n?QJ zq01w+zs2z3E_V#`ZRwhgoR}~cQS|2c3d#3^lJ=q=Z0JxA#x^h++nB6!F&UczS4cst zBXAbTZs)QY)LZIq1v@T~k>!#m6GX~Y(VE=I_AZUZ!EJ8wECt+1%J>wG7H}TLg{X>)sy0 zOt%lq!%vM3Y@JfyYCOZTu~mISjt{auE5m!)++7%S_3WE4N85}38)lr^tN!#ub$0K0 zG>ojBbCQaSNM48v(cMoGH55_8?qN2&KT=_Jz@BZ?KcVbxK~bb<9ow;2-Zk%ZiOIHk zhL_H#ltj8$o?gM<5=p*)kAeZZYg@P|3c8_cX|SMVCGVkb*M?10u5eyYJwxpjzrYcuh5FWN%h~vYsPX-vBhRQBFuSEOYf%Bu5P3Bl{ z96d>J;S=3LzlPQWhB;ua^A15UqsBV0 z;VVhEnT6>R_j|wwM{P>eFA&j%BmJBVBFNNlgm})3#cG`)ag)g-FW8yL@C8Lxx=I}Y zQ>WhCrG1)TXmuon;PD#8FZKq1kTTqJW#<+y`y>P>xX5_-Z*n zqxFr8`yR!FKds>TI5mv|{kT7vfq6q3`9ntMo#P)9#4zTi$`HIp4~*bipt(3V59P&% zSbN-ofnqvb`2uO`H8O8-vm1BBJ@hyHEgH8W6>^!4CjYT|<0qL!F4Q*- zo}ZU4g|q93Fn4=EPs@-y6+6fvh$|^$M+w@=T2*|1t*-Hu>mLX#a_?qr6GERl#W|=c zbDBOelw&rW8E%C0Oe% zXHB71a!FyXW{BBx*_1wbK*h-2iJs(wSr+VU>4HvLS zZ7Q;&8aWY15TemhU)B+tgolE(Ty(|CUi}RGQ;o zOD5uOh6#AJ5R=DVWi*g|c}Yi0;==TtY?uN|RQDYN+a@Pk*V9w+K*P#KnkUz7Q1hxr zh4Z@HcW!kt2ef4~RSzb#Irvy-FFOsR;tY3PUT%fKJrm&ubjC99#kYL6^jLPEf@JTr zk#90*_nkNAJJB2)v-!qP`*OHJIrrJ33{$j8u+@c4xba2vWtTkdWQ_$v1Uw{`r%+ofEIty$IZvb#jK{b4-kl*^nBPy9#1Ibh_pXkWb;p#W+@q z3775FI1I?G?GlFb)hlOj9ydCVQLXi0cN6zWAnD8uLwKgY#7Ig(>UKf}knqA9ACap9 zUEorb4X(wPl@HLj%xdej) zM`%Y;-_^|e07IwMQmzT@)OGK9;)cL#S($y^B_W;OUW?JBq2YvQhj5vM(|MB1!yeZ2 zb{iDRU>vqVQ7}=WG2aOCwMM*4fdM4ItDG%K!P)Y)M6M4hOPHxQ3u;nqn=cQ{6E>Bo z){`d+wkGA%QC2({eaaHT&Z~&%YShs<1ZoI)O$lK)ff-lGL>Niz*e|IZ5=0l?+Q%?B zFi0A&#{=GI77Y|1X>;({aZ;X>87c8938UuU4Rz8S>H8`8k1(T^qlQlIZ zSTTCEUh3uCG^^`583n7>lSzUhnhi1jRRyswOqc$6S;+c}-rz5`Sz-tc_Pt%;rqkRW zwEveKC6wOhVuH3&!zj2H^bwaWXS5~#wPrS=*Co!C4J2P`L1mjf=?IfL<0VMLV0WY| z4%Zj-s5s*MWl^5LK$`}uV#o7oc03PRj0)lh1XPF2WaQUf2{<^##WnCv(z6d-b-A_u zQiPZfPNzcp-+B4Jl8o)WZEuv?JIFjTl^MhCv~Au+165SoX&f?7lE%M1Mc7_)O?MYdsl>)c5(?c{Zbrac&8=G-f|uV11~O8~N}>)yV*v zLUsQxbfO%S&mvfIp3xZZM4ZfgO&4U5FkR>+Z);?X5B;fleRziQ?P4;C=k39m-epFB zaD`9727fz=^(1v1=8Ay>H@5`exO7{)Fl9mXiTsv}_~Vy^&;7SA;z;^us1VYVwZHO> zljaZaD?F$cMUEPtRV^Sp?=#e_+d3Kiu?7AcYS@;+F~08DFw(c2{oCt*_3OvI+k}O| zJRUEzVyi;?L3P06%`v7fsh(RDop7ICiZ}8Rt>G#Co0|~^zaxe}f`@DFhN(jl{@?r=HC*eH|4t-2%a zQPO{i=9R2RI$Y=O2BoCn{<&fQ&rflx(~4(&D#0d-8o;yK^tdwl>;nDDU63Ul<5dmP zbYV>F48_eZ5Wj2}4|jL=t0*j6`ENYJ)myspa0tpDZ?HR2zr1dHAea5D{+SrHQRWzr z{u0j3ZbooN>>sQ1d*bNdy_5i4r=N|N0|<)SRp0T5*1)nfM|)+>|LG$VX1Mw4Y_{RH z^R4V^5m$9CfAz(s);GO9)Z(gWv1KKujNVDQ=`iJ0+X*t7*YHyuFWcGLgT2(22l0RT z`G5Hj?Cnnmx0kg3Aj19i?f>cHN%t5eICuuxaDU(L{#*0Q(2ku#(1VnY-%Z+IJ?KB( z2}{kx`sjXv3bH@o>)%;PKO(}r3<<{e6jwE9fAg8Jf=7j2A@1dV)xY&Pe~g2hP2#;? zV4F70e{iSw5@t7VNA`vC$V>k5HGk)x-KE$~HL6?Y4uAidu#@@U#rkt@|GQX!YQuju z>rb!nU(Nc{>i*XZ{%Mo{>$CoJp#Sw*f1;iL0*wEGcK-hgF#I5@+6rawI#iRwJpP0b zf9I+@rZqJvQLu#DQ^G!6@xJryWY=v_wql2 z$^K8V*i~{yr;znO8shh>SV*Dc!~gm)e;SW#IJmM{An#vUrKR~F4e6n=tEk}xIq6>op8xX8$evYa0 z|DRAWKkPxJ(f?%VjS}!}=1vl>7}wxaX~GKX^zFdulc@zWM71rr8bUzM{qba;6~>WB z_iwFD#x(+av!ZKYUJa_>-{&gsw~5qDB&4TFjHh&6$4wo`drcb~-|UJ_U+?nw6Q#Zo zE`P`vOv#r;-}0S|S?@VFTMb?XMG>#)o|h=x6vDY_RbMH_055eGsau~=?#B|bcIqG6 zW9o8bcY0-Ayw1nylSjtZ8a(EkP%nXYmxocOm&db_pE`c57xRJS$Ra|QC3kV`yoEYu zFK6EH{|rb-s|8-ZCJUW9i+=57$Sf>g@N2oefZLoo z$?HsdLkD=P3*do@(1FE+idm~|!{%5)bfhP9(dZgGyu7a4VwQgadMAkQO>K)Y>AET6 z70)hP)_`ucOnkQO!?{4Mn1!MNv5zMJ^GZ7k(V4S4kFGOc7z3+L8~K}~OYN~D{mY;v zfL)!3dB4I~9q5Tu5V2#?ThA67P6ODUce)sUSk(>B=DX3U;D%9S6I&k ze+A&>B>jCk4{KU|I)W2lZE1$oMYB#7^RrG}taY+FC2}iuSgp$KP+O~Y2412uGEP&h z?Q@6WLbc#tY*$%Uk?jIOS=?@j&5e~qd9Sn7GP4flmWOd~hzTS6I1xRbUo{u^pH(SD zK^)CQ&z6S<%-Vv}!!8WHsku&tD=s3$2Uu&4UU;eCPFC1Q{5!|>^~wSFI`{v>0e@A_ zP#KUj8`fX%*xt`WbtW+_V7`ahdA+4YPRB8IrMSA$ekrupwRLS&slK`S3~E`V6*cPy zYBBf~K=>x+bGo=VM$cEn%gJG?eU3$=L`_J%gar}*;r)eS7SDHF^GnOQy|vRe(thi7 z1&08pejS^68oq&}4QDOW@?~9GqdSGb3DFXjJOxvCNv~FH>rY#*Ny@)eAwPf4NQ`!e z|K&pu+&=}Z!S6lJjjlm0i;Gf5xvoLI4LOyylX9^%0e)^-Ed6VM($IG=?b7zp{B+b4 zlMqqJNpeEt7Yve1gbxZ&+RWEa5Iq!aZ`yA&9PFiF(9E;J&(f8&YwRLKQ<$FrHIjPn zj^jnysBRYa=Ubx5f5AHgaQg(F3Af}JA`!RTb`@I*3wjyvX7NdBPS@j$ z%=#vO^@UDNM2MI0hxnWcP929&1#y!WU#z-iq56w$dhf5p{mHG*+C}CNRm`vS4Gf|4 z)H5dy<;(&A&XQNiwPPoH&1RqYuzw>UdHC2;TR#4^mw$M$!>0E*K?bMp(MeSn*+~_q zaVmG?dZPh$TG+Oj%}JZ1p08gh6;kr-LZ#P|NIGGsny+y($mo=o8!Odaa@%!dC+% z)eG3}rQDqJ&Sr%@kK4)Jk4x4AYuBwOZS7G6w~^0Y(`doZvUI8W&sL2|!y3oIV!2s) zs>NTuXinBqVZO;s^QYexk}H1n>z>4%_Q_m6C)FOCQST?ut>zop+Mx$Py_BDmrq5JN zrGtZKP*RsaW9D3ei*Uv{9VqpX&@*_WCo$G6^3f|M?igSI)Xv!&neHlMr7|7em^}BW z6u8M|zF|KtCyCpbo1I(f=45rA%KlVq)L8!&yQfZGGpPwR-^W|54WrSk$=63cQ9M<} z)Nh)cCyBTvc^qWnujyK^-nfC9x8?+9Ichuo#4qaKd`-Vytz39|zVFsG$ct^z^lr@# z#ad^lqS>hiUx_A#n|j${JY3fxV>5A2=2#ha5*7f-<%}T>#^?pl%MiQS<=xl(eJ6D1 zhwzTI9WL#pb&k>!L%7ekISsU7N`+}Qp$)c5fXgY8eZ*6v>lJBl^Ed8J^jV^qZykn6 z<-N@#-L={;#Jr+C;8$_J#PInj%Dc;wji_HtF)bB)6_(&Z-*k8nZq-(k5Z1n(G?jm6 z)2^CqT355Gp1968kj+GEOaMbEHO7YzwYi`3-1$qz$5x=UU=jAIFLhbqABrzAij%Hr zXax4T$fAKolO1tiz@>L{9J5dc-u|$zTTLITsMBd}0z=c|Ok%lTFiXhtYuEBm~57DSznvMyq;W2@*%ZHyMDX<+@P^`@&jSMFy( zqM-3T+2212vZvm>+&9LY zlAhC{c)nhdJUXr_CjZO}|ML}@p5KqbE%MnZN~ZyrQTf%tJKxk{YR{Vt`#0}XeTh*Q zBYa)+Bstl!&a`nKa_7`BzV19bLjPF;m$KgK?zzAm;^rc^SGhcsMBKsG@&Sg?Rx@jr zoN&`*gIuK#gSrZdb z2CQn#v&J4e7qcd4_K8b^$&Iq)tRpT!_13*(VBU6kOcxiHwxPwCVKzfL-MgPjid655 zD@Ujfju)y;f?B!(4k=7Ru>2T1CyEkoMii@6zWQ^Md`&i5EQgD4ACLZx?0 z&P}glv`m|m)bEC14K3RlLm8SQGgdbX@v51|CDtHKv{y{`HKcoiPx0d~f|-CVs<65$9N zC1WFFl~7txX=fUA2~o9FkJGy9!V@=JlgKktzCeqqsyZD5HEp@*5!MLdP3A=(SutZ$ zxN)q+HwCEgPSlz)V#%*|U^vVBw|)u{Eqs%)m6$Nm2wS=eUqw=)@UaUGdqbzsbCa54 z7hr77$6hwJmk&Q5OPoW=tA&pQMmm-WMMh25Y2FJ*drnIIs}OE1xvO~eWW>i^7n)a6 zNsI%0R?7tdCgPl|!6B0c>C*>k1ge!WMrB20pMmYmnwxc|^7_3FABhQG<6J<`$6LwEp z5l;pRJ6QE=uq55R>Zmk@G8s~HPKWkmul$^IZ`BtT&R6YBoYTwF5N@xhtAqJOG{lKs z|KZ&KUu5f-`lR&rt?td0R8Gs|1>ZC)A$Ux19sp!KBKz~I+d7BZ7SqVJx_dEe^`k~u zip=0Wnq1O2Nn{0)b;^WAK&@!L(B<}IF1 z}pwV+)5=5w6t(yM}(be>tAZn%~)l+%!L>6`9VIM-#fGSB0avP*7Sdl8`s z9#+q#wJa86_hJ}z0Mu@$C=Dp0;D!#XHo5)!4{MHgY`oh1PO^#xvWw~zR=IXe7O?Go z&#iFDH$}5UX#6qSy?548k1FlHwGL+4?rWB&+V%yxHl0dSTA+T`+J$j!41c5;!B%QM zyjbDOUHdgSb=e+Z7wTB??W<)D&PpYHA+|}Z4bXBXLT%Idd||R!m1Fed2?Se^(VCTf zA%5&7!RQDXYw2z}7yo>-Ym>jLgNZJU{S}s=TYe}1LqTuC{Q1^xp2ZU<2&H9%rhST! z<{aeb!LymApMF^b@&J=BGm8fcYuHRKwx%PKbB#WNh?@jv)W1PkLMBoVf&;L=I?^h$ z@2a!v|HxYWv%PP;dvP*e~fbB7v~Rkxc*(yxC>9rXlzn#$YZKqaAcry*;O zS0RBT*je$@f3*J#ZleD_Ivyfl5-#Y!%&Vu}g+^^s;SX!xjTGzh2HHc*OY&*88sx&S z`Xdedlq|cNK7)cPWI_2ZRjaBKv9>njLIC5H;wwDGrw47ACL1LQkhgFaq=Kf+Az4ZL`#AROgt1%SKk_xDlNILXEaugn zWCpwMuuz-kzCXk^iO$ia590ksk)%#(bQ7Kx&{3wzp(Ueb;~qoaB;Um
zhm>Ic%igb3llghqT?TvgzS%O48DWfO`J)ydIm6QDq5P{RXs2CNE9kU?q|NYO(~Yd`eND;96>(p(c5C^O3`LnGqWh5Pvf}E z6QHk+U9sN|;`j^nBe8b#q?X8$z}?eh`fKHF#E0!`P(_wFz%F!ePWFDP(IFGrLR~EWifPgt8vxmI5{JaH0T)x` z(rK-f!MmD`pZebCZr?%1pRXuch@mIVIS_r=>J<#fY?E9firhf6FnUnK8L_k>&#l>D+D~Fm4$;kqPMzNnJI&CfEZ$e&+$?S%^%SNX-nSG8{_rEF0_<-xZpx3SbQxT-c7NnD>3mKYt#M@+JOp_*ooxDJaR+hbULJF>Q`eqcJbcM>KdkR_kB!W!beotS6 zCHq^k;nV#Qb0@94*~(TE>W8c=9P1yI zMrKmpB_M>p>E+#b(2p*fXS=OW-$76}ZD7$w!RkEltS#<)2(S92%V6Ze=2T{K%i_i~ zM9(7C-(~0dz`6(`hk|`YfsN_A#Uo9vCf}9HZ@*lS^xDNWSw)m3yMvdIdv*>vAobn^ zz?IizFdC?Q;YX!!p6Z|mPh>CInHn%4QMT_pzPQsRuTi+Zyk}0k8KRworkA-SeGaO4 zx46N)7C6>mZkYfLZr9DNL;SLUkYRfse1(x!&d+%^ksrlZ<$03lVVet8&uO{LoFo&s zBq579$!r{!?o+TC9dK8KbL-IFOBx*dd@;l zw7@vXB4hwKyyv>&pw$S?L^N&M=*jHG=z32vMI}AJr<%3KT7&tQUp{f^C zqN3dgQ(?Wn+IYp1fYlhV7~0))u||@GX|7OHTI{C_ij4Yf4LYP$Ym_oi3fye+>3QrViF=hm0$E^zY|P)O^K!8<7^>^@;dk+Kia2~p76$T% ze3N)b-cg3_?TixGNhpq3lCGH~4&$hD7Gu*+y%2p+)I@jl6Xj1l!OSYS#YfrnX*`iz zI+Wj~Uao717^i=*6a$!lb)E43rIT9^xy#_)2=NkEms_w)tDhN?NtKarcnH?&%wanD zf~RmI^PJJK24J~XOz4SsNxx#+kg78t(vVD7eD9ThJ35H%Y2rlH!FM92+T^%CkSygx zn58D>^o#Q#fv8dR*6`)MgU17D@&*i)Vlr29U9-~-Lbt3WGu;yE>hL9buuJ!5^zt#b zQ;hwk=9}RHyb$!@oOW%qIIPmc;_XD9YPKa$Ut z@xXAV(C@KPCdf`KEJdKJiX>N4-IJ%Tg*lc2kuz37 z;1N5x-D9oH#dNmJxE_9ZO2VTj+@g&S6T^s!ek=rQVUG+f_4ty65Lk{F1`_7Hk%A>4%- zv|7ygCH05R{D5>`LGwfC?qMc0b!dK=b1QMLJ|n^9rM9WvA^1g1k?zNwpU@+E_;`gF zhv3grg(U&Ql03c5m970?7eC z-nVpI<&BPcyT#LFN1kxJ87oUexvLBoldH&wRym5qeo{}rcN1%E{FHG^7WE0qt!gLc+;$uCcbKkpu&|B5A#L}U+Dh2u>)y`;n6TEdU}ex6wdr^T{ny_`CQL3}=pahD9<{aPOf zJjzwAJL0V=t7ldHYCkTWcSaLh@Ao_oy|9(qFvNqJ#`6fh`UUEFX2>i(g%~bQ}m!6s=RuDw&le0SWRF=8eBP|onw4+ie zyTeLfKK2bLYH$&Y0cuqa54^IyJT4jaK&+`=k_zK0#-Yc%@Kcj9@5b{|_!=d^lhG5B zP>;T;TPB;vHRPPhfvPT^HDT^MNJrRrq9EQmqM;%Nc@A$!1t86AZT04SwegE1tSOZ= zhmplT+^LJ`s@0&Rg>$WiNqq*)(_H|E;p9wiTzC|7$dT&j?fBBf--~(M2=K{r*!8F? zg>u&)NeY%Ta9KpWO1=qxmbHVC$afm|A%j(dP@M3&;RK2*kf4?$5fvlwzBR4ey((9+mWnBKK|kExD(H|)7J z?NWJ2{UfIC0jfJ5KZgjjYtB7KXSeI|<6ryu+$3~V8TLqvxxM!qERGigYc6g-Zs~cB zVTe`533@fy?wH}TyS(>(BKFZ=czdi(G!lRO!e;u#Sb=8AxkUtWs(4o=YNf;>+lH5Z z-b<3f{V;X@va^&SHL*nASqOANfcz1(P`h?+oBXCOkC8PJ3AU-XEI5)Oz?w|UNmb4G z7rWg7)OC)9;&QCdxKiHz7^=A8m!e8=x{t#vPA@p2n6fpwBk@=``)$lyh22|GUqCU1 zgkg`_Hgw~D3VlJ#RF%8s-(Da)b3sxRt-S<46)T7DwQu`)`OV&DeNIHU(nuKi3&ivx zUk@DdstY}=H3|MT_bDXP;F!QiOC^`Es4p-gpL{eTD_z+vIoN4jxO<`k9B9y**#F?W zEhF~>KCbh?Z>nfdKfV0Hk^Sm-aV}XJ%r1;Gg}O!lbq7bgWy$qqo^sY(%S+27eQc40 zw7Ds@2+Nl9FpW8dh}Daw8hSCiPKHRNR^m%+cc#zpe_+I7g?J3m&I^Oe*fRP7%78pQ zO}tr$aBVOx7@K}1UeN8DbpSx}My*(msF;~1=?i1v@JZ1;hn?*bJpVx_?Z_8~%mPXN=cAJEymqGc7CL-eanzF?P6XqVOf^BbAN*D%s~xy6xwxf&T_r`YTH; z3EXt_-Eo**$90s8p`yxm+>ps2QaU$=BS3T?E_4uN{PU- zwXERZ%t|-Ot@&|R_XmoxJ3DyCWduK|-^gh{RAk^^%5@In7YuN=QW4*fGf~S|l}^yG zl!O$1w?PQ3XXUxXAP>g2MR5f2FPEgLy|U(mz>`6*Hmz0%RhC*Gs{ktl;e!VCU3|r| z7Hp9E$`_uD_uIK=EypK?e=(LDm_o6}C`2PWcO1zq<-+k9wViE^{lo0;!|9{UkmVZq|5%l!*<W-N5`ESy4) zs~Yket$6xl9_W?g9zT8L^nXp1ECbukc!AwDo^XYpwK%bT8$?E4LNO>u*IZGswVB^B zlQfI@e66X3#Nl0itj&uyrEuYG2Bt{hLz}uzY%HOR%qI852ox_%HYb+n{di4XM7nQC zb^qB`vhuqstuKfP7wG6mf0z7D%JZ(RWntD&M@s^qJ?UD|rc5aj&pH=uyJ8bm#ABa9 zI!cmCt|J{AaLe}U025xWW$*MoJ=OK8C-YV3`AB?yVp-KiKNV~+oe%%;0;yF1K^ zRqNt{-A+9G^jIRgn@WiJLJFzlz<0$wrRlSrgL^tTkqOkHvvsVq;AH00|sIChu(NBElm7A7RQ+_lyB**uNDwjwt^_B6=5k^IBm4*iM8EnXu&TOuYl|V1MSJE8ME$5bt9GfqLAW423GUbd?V^Lb{btr;04}t*__kICyhoR;2y|?VL*Qwj`d#YOtbc!LV6LpKXyZ^WGuqQ z8a;~^f8sYgj>}qc9vTV=oE>K_sw!4|YI?EMwYfIFTQm@Pz@wjFyWLL2$C@Bti`hqY zX&`=)v6`{zthWpBU&7u`?NKeSOovVEv>~D7Kgb0+5HP51DAEO?wMl*lB9pUdXG|H zQ&z98HOFG|l+?#i>ZA^Yxx)jRC(tY!3g4zlc``LraJpX?4IOGT?L@V-i3=HcCT^4! zC=p!bMzv?t>5Qz8r>-BnKAty4XS4rh#C!cVnGMdT<-?(aR}2Y@WswiImbrj>2<(xC zpfPO6uIs5rl*LJu(9K(_zn-a1pDKnE!=wcUmg^OLZw|EQDaC=egJXp7`W_RC!>9`! z84m8z1(d|N?{tMivy8ihTSTJrz{B(By_%B1Iit8N|98uFUNl<0T3rq9-=9=XIcD3B z)~--g9H7_-$rbwUPv^Bke zY&s-;2!Of9FWqt!Kt7h`oC&GM&vx_tl^UfqjanMWO|s$|{Vq0r`N5(!4|v zAHRl*IO&_&?shkcTa|m5bi3E|He8Af31wps2$1)lEi_P{>H@IFkF2lwNu%ahv!(ij zYLuM5+h=Q>&jznFmMZT$_I$XxBo^x`ra^=ToO`~QJZw_GY@3Q%B3PNH7G!?VJ3{Li zZ{=znc+HTOuf$MvgR?xtI#kvvL0Ti%dA^~kcSL)=FeSnS|1#EdE*-DV;Z$++&UVLO zPQRh?Q-hE=4HR~f0}w)jM3~_lWR4nXVCf8Kq5RUf&rba+K|d&r<;YI@Te-l;UK~Qt z#x4QPLoM%;^REPr5I=_VnRcIa;3IY-~$5`)Y!=YRrM=z0$jJXZ?%7g)>BU-p`V z-h~jjM>k`&Ay0n?&IN?(9M^HTLIfsi%G*tM@qlu9zzb zxDT1N_e3!?<^Rax7eSUO$|jsP3JI;eL#3md@2D0B)?^(DxBI%Te=Zq9I6L_WD_p@> zcN|BZrv1b_U{}ORsz&2skzp(dJu#i+C!q8_tkk|meTI%}JfT{@a2Q|)`uf(+bWA;{ z!@;;_bl>ewVY8!-@2v5_Tz>s-t#7Nn=A_#Zmu!xvx{egRxPq?fQ*|*U>2#wEhJBgv?c#v7`?Ov+?!`@p*MZK?W<6A@#43tz_ zLP|h7r9?WU8&tZ696AI9q(eFdq`R3R73t0aW&o)nhLmQA_sf2cd;6So_H&;1{r&Y@ zYp=y0vy>TTK68KWxUTEI?-Hw`o8H6TocdMsypEl6h7vP|5J}<7ZWmBe>0P$2v#&yj5oy#r$A4FMGjHnYTQ!>zF420%!KXUrd6UY+!Nh*j3wV@MF zE7w8@nx?m9$_h{HdOBmUavO>Ygf%A7&0++%`D+N+G`{6VuaiG*m=?%*zWasOG+DtT zH>JFH!rBR=V)1e}Cfbg{a}O%M7W2iu`I)si^i!E*=uO`bU2LJeX?$h{{F_^_K7ZTr zXK?2YCxy6pRGd$0l0{0=QGdQJwmGxEr8N|IyLtr54V>uQKNs6r>fN*U)XB;wmJ%I{%~12bqGn<3SMZw8j- zdC?8k)~~nD;T1@r(6e8&scF``W_Zao^N69cMQaZjD>*O-ByL3)Eg9$EiBLil3LS_* zgi-9F(&L0|mo4GJgCa*|>!lA)C&6j`nvwgsdgind4SPOGwoDo0d-oG$U!AX#t-Bl* zO#pK}<&=w$#*I-iuD!Q2l6;!dSwA0a7vW^8b?GErfvx4dxAefW39WSdX%Fy$AwS*= z&3jGv3^0;9=Po<2{kSP|gj-EqYpg>1qbgwZFV zPaT_D&LeO|)MEBnh#R>@F5f^s9!kEI$)SpmQtn(+^Oz~T#3CRj8x;;^E~WUeTWaqv zy42?}YZtcswKyuYO0Px^BEs9T*aT<0qN(!cM~h?=@sr-tduDS# z;EmpVl*JiN=OF+5o{jYYYG!~xbro4OBELrX$izl=^dq$PPUjg@L>tcl!>bK1%|%Z(c@Oi~fr;Q8Z?28%6Z zRmXC+Zb~39ZN(kSkHL`A)_vuq$*&!{c6wfY1DRPTm8{KUlLsQ`;WwG|Va3HX7h7z4 zHKfqTKB%|Yk*Q{cCm?Y<=SEZR_PpZKr)B?^3=pdT&x{F!4!R4fmYyB$Wo7V{6SB|f zUT16Ccz;-ZX(tjSeX)Z8n^qClYm_hBSuWTmOi#2W9I>w;j&dC*RAt%IBJot1mdby$ z=5(g?Qh3c3pMk5AY-VCu>%In?+iOJn_iHYiLdQT;X&J*4dG`QrK@^0|5Pp)anZAl? zCyV=h631kJ#4Nd)=IdIOuR`wa!PqXEz=~GK_U^Qq znh$!7`y&;18m`F^&{v#br;U&w;%y0yy@JI;2cl>yFwL*vAIMnpI_!_itsDS#H^!UP+R<)@ z=G?h?$c(YCo?)lwXTsafB9<{8Yrc59*n(T#+OJrl!wVV26gEzq#aPy{=>}N>>=WQ{ z%-VUr3OTtWAE|m)kyzDT{zS?{fA)Vz-TYS>)y3%RwuekQ*;{Ey*nR;PCgG7Eq)LpB zH{JiS=gmKw`aqN{ffM9m#DeKy&mdR6CmvY7(Kx%Q0GqI|*D-4`cMT*>8L5_(Ty|J1 zH7>klY1?J0RB*khWARXNP!C&Bp%a76J2$#CpS_GH)rR^`56pHouVfkZHPCq9gO)s; z5B!k^mK*MWm6P{F5l?K9;l|8wEk_5L1DWEXHEF8Qn%Xtt$Y;@B=% z$}|Jy{qpuqwK~c0b}s8JB3P-)?AhW*cJVQjqdWYQnBR>VyLe`}oR7%Ne$$@1i@$3- zR6&toJkQbeC>67zPn~n7JhmazVCrSdR>^f=L~4#z7-sD3=FgZEnn%TeNXv5tTniQWSdqc-Q>}`Dnb#Q*^BTuH`+(S|#PX(yYr)CUyEnd*ZET}z z3xdH+r{!qihKc1G2pBW*}oV9oPit z>#E-?aj;kYkU_yD4gQ>0e3o*8-phcZgluS@PQ-pd$)b{7G$LPQrGG4-Q1ad=Yx26x zu%e8I92WR)UB26Cql5COka#?A#On>#-U{8GbM$pv&mLBMSmY=d*0#W>uNz!N(bHWP z9Wwak3~C#8`(HW6e=sqkTo`z*cPWJt?*r_Hrwaz^c2&m@*5g2AOL>Jfc=S;p__pG8 zLEW^H8&g$gxhLQ1Bzujq$;wT7<3HQ#6S5fyO>Hg}9m0gU8SKto*P+eG)rWosyn$hL zZxiQ18xFe6dXuxtA$WM!C!~(^&a$W_a%g6*A1_N;K z^4A~8v=zyzk#wdU;W&>#@ltZA+anf4zjX?RRW0F*wOozGX?6L%({T*5;=POW_(x{8 zdUBXYi+eCLhe_ypOGZkhH;Ft()e1NWbL7a(V@+jvcW9r; znJ^HpU>Pbo>l-+HeS^HhmtwZ?pG!GbRzxI-JgCRITT|+CP^d1QpVBBGRb!t+x#b9# z+mdwG7fjELG)Ql^d6p@LtQ@Z4q1(NWlF0tBV)r?=7w@4Z!ok=wNuzD7MCVJm_BMS} z8G-xd9Kcd(B5|)6o0gDwm^P<(GMeq;Nd3OCog!j}7@}Xfci3|h!>f}t$jl5+?-Z-& zq&mK}f#=7|X_J>x23I6ZvKLS7G&p9+RecrGcUfAAT9vgBk9(^E%tNbDIpN>^EyeaiSoFWF?I zMm;%NdL-zZqbib(*WFGOW+BU#v~GWFV^J8y>=b6IEA;|0Jzgh%Bw53}l4w%D?WduE zW3)YT%$CBTEv}gJQe9^pQ1|ga$cfM{3gjlslQ>dh1n22?jBcz14FDsmR-Zqm|0Y3M zDea`|HpN<(;qS)JbNbhSW|S^Q@U5ztnLr7LTg!NP@o*z5td@&&G<~y}jsS*k9Y`S& z^PU5CR*2Js;2NF!nTbt7e^b0_#@P5`{VJ$f6PsEUZ;I#Y%~;U0js~|zyY{kXw|J+L zFBrN*3NqLcK=_*B8Vy$rP-zYvRkB3WSPQVc6zb%j5p7W4sQZE17*T#bo?1KiIH#p5l(>GZlZ_u5p1-yJ&OwvVKrlC| z%AsbemEDufO5JE?#CtZ~{J+`3_SYdMB4q3Tc|-XX!?WdJ~ii7+61v9u%& z#Y%a6EF;9-NpB8gxIwuY3XD44x!+aDMqCH`zr4X8(Jyc(8{sS5Q4oRFn7^9gZ|o{C zMlPu5zC16+cm}IDr=cgNlp-JLBG$*LvMmn%kd*|s73AXz{G=>7FNMy|Al`k6^wwd6U!y|dMGr3 zG6-`JUYzOg4ZBB5cf9Pzul@vMCV{VYi;5c6NUJdSyMU%#1kZK1o!FnNzzuSV*TZP{ zF;r=4Z?|!wE}}^dHJBkn$qSkM;Lu2G50;PMRkqU{`2W{dxB(|bscT=O;3qdd)9U)CM?FvTQPJ5Gr$2!_a8|kb$gs`c@%;wm+q24v}|ZAb_nC z9@XFTHXX%6A4%Y&(jCo5SCvdqj-srAA)pe{tpvu|x4StM|B_NfWng<+ULFnh4!tNe z@|L-LUZ$BkhlNk>?|pqAca09JNWFQ1p29^2<2DB~?hI|ex}x6o;M;bN;-CG>S#m+w-v%_^hhLeSxMNYFx4fZ!2ZM}T0xb^XIjM2r8K46 znQtoqrNEE6p8;QWTilcMtG*q%`5IJ}K9uMm#*_wt#q5Qx9V818yg$q5R)2Zmn@aHc}33ho}Z(n_;Vs|1;sNj zV4q5!3&G5VLL5t|N(}C)=2^gJ3luQwIsqQ|;L*uSw2LI9`a$9LL~f?S<|__W{G5VU zANKC%fd{Lf4kzJnu~*zr;j}rsiXq+)! zIrxh>Cpt^6ZykmuLD*@c-*({*y5VS9c2F(+r%%M8z7{-&2afm{rGUZQM2i?{B(AeC zU~56Z%sOd@ZOmYU&5ekv@VdwgE!T@=Nx_>73ZElHqsPE6l`3wzt`q>0z@+OoID=Y` zqsOP7<8ogQRJ2prsw}v(R7$6;au8yYdV8kIzaz1GFTPNY)tS}#U=k#%NPo9XG5I)<|Y`zn3qM5H(S`DGeZW&-f3GSvzye*or<;k1d3q0x6 zmV(%Gi0FvZ{Ab8muElE!BkUsa^VhZv*n!_fz_JfWchrtO61(*7J2^kFD7w zKon5}GD6*VDOAWNiSV9*Cu(luE>~v3Jmlh!h{<7(?LMep3S62^*)S+pgQ8^Z<^N65 z9(8%k`qZmPj#6Ooq9c25bHAZ`;2|zquH}APN1jO7^uWcTvan17RSs%&Tkv#K4wuvW z@O=NfOPE@?5-yqWkFESq4IZpQ)2SvtM*G8AV&DXggNMw?4NK8S2>)cuxxJw$%A8`y z2Ul{1`_kOkg5gL*mu$ztUYR*v(*Xxm-t&`0#@SEaiqJ0Sw2;Gj01S0AuHE$X$HOx1 z&tFWSwYo3 zndYhl^0s4OsAf?9 zHch+I-G3N2*X3;cHcSORfg3YFWUs6<+T~O>&*P>ae|-)Bxy(zw7ie4}Jk3V8*K;Ze z*>uL9r;$;#*$0sugM=49*r}^518M?qe>`i&#F}sY>soantu{8;0j;8K40B zG6+}cDf`rIb~&xbIT8W$_j^0bgc!^x@}JqeQ+liJt-lGL`0-!(xZLdL~-1xz;^rjO>hnFZyDakx<}87yzx(ZpaTb+ z69NcYDU)-_&vTml=p2d&x+|~xjk^4J7VY>nV$X}|pzze<$NHtGx@_L5z5roHc=x^a zZYxC@XTs^9!pv8qx1`Au@>8@p7V3Al=xNq}WR;kgn#~IztvGN9J*UUUr3nZzc({h% zvq^fQ^qa5VkG>e4MN($9QCuO1YFP=19Lje$5pEHX?So9y?{%tvPDzi$6D?rX5sptk zzGKmmKHi&eVYO2NR)6&y(QYmr)CPo{&6XDV{&D&l1RPXVwKGTb@ zTr)!-k5}th;Ciq(_Nl~`FBcPgDn6j-FI_6o^Sd;?gHoUQ6qN>My~J!sYn55%me^9( zEoP3kA+16dqq<=gO3#^{1{lCWxaX?g094z@7*zK|oj*AjkW!LPs1EAZZ97%nwNmfF zCl*dqrMyJH-TO*EmxSA#PA2q#0zhw4>FXL(itUCP22a>e*ODf{N+KhGk9k#P-7g6n zj6GpKds{dA=n!jx)P{05mD-<>;SX=(OYmTIq|$dd^rx(w$_MYEpiza#EmdfP>lDdF z&#;nVJ=0_(hu*i_*n4rCVvmoSQbR=dU$5_Fc-jK_b=wt`>mjXyyTATrG8bGpT}(V9 zUpyzW7#?YI|6Oad-0Sw+m)s8TT_a)%V7$u*uh1=q#7lf&g^I zIqpZUOd3;eC}D>TK`iBquQ~G~{k5#1mgMk>mu2qll^}pumVu*;G)@(B;ID8LAd%{f zhSOtJ7|@%CSqz@CH6l4<^3 zrZI=Pf9ZLgDIb1#!5f&wu1ZwzD+1Oxbgb@ojw(EcS-t3kxB2jtj94b(ZZ|z!1JTir zZoAJ9*^*xAXo^Ps%l#=EX&d?0egxn)8hIzy4wdi%Rnekp+>pP&)XYw*m2Rz?J?B;c zsooQRW1hl|M+rh_>G=0Lbjs9r-wxzl9xL`6ac2VA^JL_$4MhF0yvUZs-pbYtBOG;o zV|%5)<#>#MQInO<>#%w4M#8uhE*cj-xXiz`hnteLnmyc-$X4=BYb%}92X4ufz-D5p z&T1ARSPWSkg}99c^-}^;6)!5UApYW)Ud&yyM(^xUq5l0;R$ZUwzKZy)j^r;Un^fU? z37Hlq)!G4L7M#M*`x~=3tyZU*`WdWb8($%*O`aqJa{%y#P{Q#OYxdGcoZlv_&`?Tl zqt=pL=$l7B>vQ&75&|LZ=E%bA9O3Zz+R>xO!|I=RWEbiios0J1bB4L|M#n&^OkWMJ zLpaFgIuA#v=iWrG^-Yx6b6`q5laYUbSAkdM5hOZ}lhd#L{NBKL2kmboMN|P~JEu;d zXtqGTHk|Z*mD3LZW9*Wf#IvFPU##b*_QrUF&5&N*v4$`j5M#{aGnEM1g zO1UMrODuB!MehoN1SD!*W-+`p+zZR+j2% zaSw`5ItsHU0b)0lm{Jr&vVf{OU2;v)<+ zqi?@a=W=&?(cBqrRKp0=UzRp6j2?D~GM)Lpo-{I{yqDm{+y`veNZpao7_GZJa=cPP zAd`bt^hE$xyflMHW5`)!@P%GSETnfLDVnD(+TfD(EZect1JK2B*eGq;!9=*bAeHef z+KALq)cw&BXih2oIOya`ZPmFJ+Sk|aq2g+$ll15(ZK#wVcL<#NhQs=!Xg%xZ;HP3#3AgB`|8UR$Vx7`4t>xHN2$GZM zy)XDkeN{@Bo*NWLc_{Nu=t|YQ&xcs|j1m>!(QyikuH9xxi7yiimjy=gfS(|QwW2Wq zE_?35B!?L&eZ$dUzv0au(cUE5&`falbYi&Lwr)a95W6sLLCyZ?Mw3FzmW`i@gUIG+ zPJr^wbj=nrGw<}Ov5n~(I62{`O#fon(M(6<*y25XErJ-lHbru}1z4 zdQM}6Jg5Bthojx1PHB@$oXFuUOp#2pNS1$Zy~HfZou{Taax}u)=)$(uj`Q^@reQn5 z&vb_to0iE=t`eT#PxBHK{k9>W*+fkef3n@GMTAW*KpNzOOn`eyQ6=d5732QP`TR6D zDjeU;#nI8CLlBIsXXH$E97v{-Q({Jar87PP^8pf%q6^Sm(@CM4@G)-@Q?8YHU$J>z0h2~{Bp45mygz@J!))Y%8qI* zW(tvr*-gYl-ph*qR3~&V(!Y%UO6$+R`~Gkl=oRTpx^!>bn1nFfJsiOy?1`1PoD+Dj zw`g#@@8P(-NC_qIhSPkrqqC9yf@30Euc<=%iT!ulA@SXNQvl%{JXEjoT$87<0g}2$ zXWw&>qn8bnv5ao7b4>syK*2&mm2gf$|2uSjgo$PSu)6%i4Dt3MKOhGlu3MLy94o>J zMn#~;5OFk@u?!kxsbe+j#@u^9eF?2Jl{UMYvFw;#&)5b}QVMw7g(JdoDm-A><5nve zH&iXwE=umk%hR8>@UN{I_o=^+7ER=)-k?L>UIb$ZMt7RspadLkVnDPYyIG@ zvpHhr&dDrquqwopaj*Zg8^|qSgf6Q#RDJ4bXF~D*3XF1hlq?(O`!Y0 zWHTba=RO|JO+|h6E%0HyWK!o4oG6yzzk86fp05r`eRP=7>o~qS!cBVRhl+>Xo3v}4 zv$bnYvy&REOVFMJ>Yb06<*f5!OGCy{yeTWf7pz7y6Tyge0tY`h)GLqCp!kD!rKNvS zk=1A+5i0?@4O*+v@~4?_Vm$Xa-#u(XO>O7Bn}#pDW0Dw?S+8Yp&8tJaVEc zl4Iop%~B_y^`SB+2EVHy!>kl#wnV`TT1Tj$lv%Tp_PWJFu?0uf>4$t?5&pI1??pdrvKajzUl_i&m0}b|v9$ z4l>1>*~n31h$gj{bq%97U6iVTR)EC!-7NR^E9!;IIh%dogTdgD&h zG~pfJ)Mvz%@iqx$K8cX;tB0n|3S|Nw-6U1xIItxW*k?t;1WToYSH#6yD-p6)&~b;Q zA5WqYHRtzuHPaF8*b91G`RTE?cVIyTOiCwVB{JD1!2^8@T_KoJWDpZNk##t_3q z!1-B9^X22^-+=Ao*ujef!2YbM8nn{U)O42jT~wj=+~@J)B?ASN8uyEiey+O49qrN} zz4}*~pK!4uaGpZKzE0+@P1Vfp+b=&SPOArASfA49W0DtU-TH^C6ve}gc>sBtYpkI5 znpojG(Ud0Mi`kVF$q*vC*LQB?t722BkR@rtWtJ2791U+R{n#6RWBv2u{d7ivY5)FE z)R*Sj)3)cOjS3>urP?zXycbz7aZ+-@MNrM9?|H0RZ)jswoj~ey3XZ3F((~eqXOFLa zc$=-TDPY=zu{U)z+6O2$^=Hu8PqbH{M7eEZHzKp)*DipUW_3)wqhz7f9(dQMf9doKdi{$OYqKT8IV>{%$16) zB3ZHoc520Y0n#XilYt>+dKI9LY`?3luiifu7AEb7n0GdlkZH8 zd>pPICXLGk%K}171G|guN90IKhu>O&mCkI9x=yjFGU{>?IwRjNeOIf>L0h#!_C$WO zM_X)uH!ZmV*0vqS#pWYC!E$MG;ehFoB+Y)^_dHTG+F@BfZf}6S$dEFsGELJ5xHj+K zcUEx-2hrigJDODwt$>-bBr38b*Ocg9r_?^P5`gXS%#!mD_m$gNsxtyz?xWo-g@z?r zCqT0gr^gxzeQc3lshVrtr{b}xt2Tz;zg7qh)q`XSt!U8OVRv$2Pgf#d&XVmH;{4m< zPh12H4|}=QDT5`r?DeTpg!?=e78cm#p=ujuS)J5`@M+4^$;He@kqs8~PjmYv<@?7& zDqQR{=o&6P$~}I;+ghKYj94v zBJDk9&VOhQCu4#E5j8=q586ogRW9(BH(D?)^}Lf9hl?#_e*;R~1VizRGTD;Cs6;*; zfXz-(mR(m1P$^<+PT`mXR-5x!)`e=8@LuI9(zJCZ@Q6?S!{o`39}#H{R~6j7^|l*1 zB$scdzuFO+{EVm$(xPu`CB&(r<{eWN1=T;Q&hM$&Nyt{ z%JX0PlZYizy1+Z3&9q%P>3S|@2z z0A`>5>fjeCWA{c*6sj0s(ZxpLr$>fsbUC+iQl`LKNVW^twWHxlQkxHCkDY_%2l*;X ztZI8hb_SYV-bH)p^Tij>zMg%^F)Oq?Z?37I<7qLv`w2S#1ZcVQJx>(fy?LN8{V{TR zQbuvWUdQl!sjhwiXMzBaF~bfer+6QBIgBgcd7+e8wN3h+3~{ktx#<7q=yDJX36KeQ zksn!NfhqyvILyA)0F<}Fbxqb+jn3%CZI6{Ap+Uyr`tTif2Y9astWJD zTvmHt>L?yELU#{XjICKcAl;G_*8)w<03%vQT45$Qe38jqU?otR8AS1Cn@T zhnWa_RYEblDsizLTS?yFcYFbEUOb4~(V(5rX~aXP%eg*aF)$bY%F`;N%l@!rJ{b4# z$|0b9MmE1l@4GJ)1k1VeGvW>00wyJ5+DrwwP>l)z-met$USBw1{R$~F@D^^k7>iW# zq#omtB%^t0pBzarVA9Do@xy$fLxLRB=s>2asd=W-B$Qi8ku`*P1uJ;z!!XHTr5{~o zn5ABpQI9x4xumnIumf(qJ4>|9$M%7avy3{Q%TMMZs4x}e@=J!zG(-SFxRoaR6~eS- z>b!X|$|Z971=u1iIKWPxRbSb!Upv9yAD#gLpgC5u;o4}(If5cLov>>83D0@OxX{G~ zFH%3{P<`OVaMsK7b!4rhNAh9+x`eJg`IWs$yBvCK-5ZBlIU`O8la~XTJ1bXPlwSaZdweRmwW!CRV&!VsGqK^DNy)TXA-#b*~vdo+5tm z-(Cu^^80b3TaQdr4~hcfO$|Lgjt7zRE|So|y0p>JRA73^hGy1{zjOz` zo4cDVRdP8~9jSZ(sSc>~)%}SUAcL;F!>Rq|P2=JfpKZ355%L^JC%Xuzsz~U5MoU1} zb0+%zs@CSb-nkT%Ny`-oG?XQsFnfb-Jm6|-aXs#$ zrjMcZT#Jtn4L!uJFNJq-l`cIb{kaFUAOlu;rLTp$cFKC;7tjFV2mEvm`;S}r`F(4Y zJ*U6-DcII1K+7VxR)I6ta1m%Y>Texxsh{tTvo<8^x|{M0zG+s%w48b!F3+6!?*QXp z-rKuYLj_TB{(xMA_saoV$w%`6I>}0Ma*kzoX||nQ9vBNx66(y?G@d((^f%Y-6RqRh z>t$8r*#?QS+G|t;*uy_!qesBI5f`QqB1Y@2Dn`NE#H`htwY`#+^v|rnK85A4WGW!4 zYYBUrT=y(W^_t#JZ3r^7vP7)eMOjRJ3WWO$oM@G6zk9&x^yk;~51;nO9{|L$vbUs- z16En+81UC6{AyhbRPfio@%#Y23$D%6UjUZ=(G7&e|6$&*%kJ+K2o%LK2k?Q)?kic- z$Z6ONKQhceUf`b!b5TXoh) zWJgtXnuto9pedVcu|1}JkT**+i?QN|L%B7MHKBseTO4@ero6KfJe2@{uDbf}dg|h9 z>dng#9>}9bTix2JJ@=vlgMwl>&^UHxjsJ&j{Jf$6l_>vwPqgB#c~a_@qhdlxONx2DnJOb-jn-r$=yuto}ewx=4?X?D(bTbfZWZGKS& zMHZ(A)jL#+0CbDxO>cB)QZv9IG#Q6aS@6sCxk|tTk=6|cfSb=MF(oR~vEA}sX09tX zteePHN+60j5d?UZk4VViy_|Xg zAuM5(rO@IE6$OobgCHr{?(qP$ON>QR3EU+a(8$}B*_OQ9xT3CsZRR~=9fM&h6_a{r zI}N5lq-kbKv_u2l#p?!TTD!k@>@meoEh-+37Sow7m!BAWT#&3CTzHf5yO3`vV!h*86!fv_jOLMK2 z4*f?_R$#>O&UW*)HjK<%%GUTz!PNU|Z-<5t8@&Nsy_lgKm^=Lw{{2^{^oM^^#-@r2 z4GEC_!-JK(V2_n(2;ZmaeyNbf1bLS>1PLIO{@gH0`r=9ArH5mpRo+dY(`O^KCSJjW!q*w@l5F!c|_V~l|>Yn4EH+=BDZWvk_6OyNrQ7tS+s40 z&)h5VzjV`WLG!SZctIk9t1s?>Q%XcP8W?Y55cBg-Tv3u&u;vge8_t}3y46*G>#B~T zbzDyz4pLqE2F=_&Ae6&o)Dx`9-!8&WHb9Swayp$oh1I?%6rh+ZfLIumCF8>s(i{5D z_-vx1k5TEcz{DFG@15cN&%^r@Nw@t380u zq;e!!Vc8+4e_wa#G*&a4O}ei?C|%1wor}FHRI#@Gj&A}pa&``{s=TTmU|&Iw%>qK z&*sX(w}$qzO!UiBvjy1tzJ|kOEeQ|#CJKbr z!^RTcPQG{Y)pdF3P!{lW7C_29?nlFuT^TEw3w$|6UZ>FJT&z!hT!6X3h{dLOz#MR&lS3#_dfw;TEv8P8LV4uGrlUK5@hwf z^1~umq8hu3p@Zg?tdmfIuc@%;!=99Q8P*)dnvS&E5ikT_>S@ko;p!rbiYn zLBJva=N6#RH&-q21Iq&nphm_{uCX8x*|dIuTFCQKv96)6&{FgQdOvVf5I56;aNaza zMTYG|GTX)MXL9FC__j)33-+&Ta7StpH+&8F>d^JcO(g&kR$;W~{-w6mbK?atmGwp6 zl3TC8<1E`#-NO2USGn&QRey;7N%#Ga{{Hg{A_V&3Plpdw7LvduGAAjHaI1w>libT} z%5UTgr~N*dy_#inWU*}l3L4Vf-W_8jG}m)t{7Y|fjW6zY}f1SBrX z&}G{QIwxQCc-kCT!f25^*(_R#^Avd|+mXq}fnh0xCEBm*UbjO(HM*bMit+2c>VdmH z&eW&2-`mUJzxLTy(5l;V4`A|r7eAE^c60F>HJ&LQXddlsjq=Ma>t=jbU0b_o2(?->0U$am56VrB_HTf!OYF~4Rp$F=QEZN_0r%}+wC>fDw? zE07Sexg=ot=6m8B%RsmigjH)rn2NO#5CYXdXJ$H1yS>0|&Tf|M?cAr&bZa;51}q&A za!Y+p&f6Oha4t|u~SX}7bG*gx;!zfYI0{`DJmR6~Pdh5N6vZz`o* z?^RzrgS6+W&0jsA-y~D3)5)#NpVGXUWvck_$9TvfRFx z%!@G%e6pt?2t!E8*R(rxZ4=|27cAWHwW` zuhX!5^l55xE!3~_y^0hCf}xO4F&yCf2&?;L9&a$@I^|S|`*E=`gpNOnK2>8+e&$%Q z>(`VX#3N%onl#OIi?RrSqgg_Eveoh~v~1wf{N$kOLr4K?Hup`rJK%=p0Y}|%qR*34 zpi*K9tuwkxmCxt)(GyQo%Jg#@`SW0z$Tkl)E-c>C&G=9tnJ%iT&iRR1{|`PW{WlDL zCBHud6T@$qvF=sU^ZRo3z}yrwyr!3=7Yc)3Z)d*DI+T^Kngbm=V!$FBqdbeaPc|b6 z6ES!y0WkCXqYhVkqQy6*Dh0lFOU2q8uu8kR7GShQ@k;$Y%P|xYDr2X|$MAyYhu}gZ z$BCxv2>TIsW*y^gfvofM;_NUH#ZjVCt};({)^)zUN|gm^pVH>%3oD5!cqyeNB$&Ob z_5+w{%D-X`f5wep{&jK%*xe3axyLB@Q}@)`EdNP72@mrQC znMRX9Qf>XJ?ejR|V|tB-^bWUR;B^?KZe0p0<6?57uS22OF7vt{yLDI$b&XE@h_B$x zSHhO$8_I|=09XH>+UpnLpe#+8J+D!ow>rh@1|Y;POJBkjQUbZvx$x4wb{FqxMjWo} z;x@Azv`*$ZhQ8CRu60wUH?2zr8xI|f9yaP!b9e-OeH}nR;1qHC5CB5iB-0er>xA-c zm3<=bv*&;Qv#$Q*g8kFy_Pqlrk@yJz_;1l`G2_kK%Qn*=N7hXRS!=xjYudWvK*G%I!8c(Hf5=Jn(9{uU`raGbfZ|w13+2C0dR5O)EHDb?%QE^$mr`Pb4ChG1}}5@pnQ03t{f-_{2DX1z&vM)S00ir^s1B*5M_1+4L&{tco=>E50A6LBo&EYzFM z{Z?HXPxXjAhzZvi&M^US23!C}KCsL8?feSg4w|KyPd%pavW*=sQkjZDMwSTn0d=Wg zb8oEBkdS?Ux8!IGHSKD{Rd;;1OXEg|0I1{b-fVvG*70`9F2d+WKA)Su@t-c`CfD)(6I0jJDZ@v`SQ_+MWBcUZ9zZP zDW?D-aG;u;zsapmpyWzw<@kktQ$6gF!nzu}?W|jAf!PhSXysz_H;%iz6SQz zvNOvTpoe!;qS6g&G|{O!ns>JsPo(NNDbG+}|;s&+)dGL|5 z_S@DLav1yM2F-RD2hj3y54i{ZaNdXi7?OvB*m+@^M9GjG>O8DFP(Y~h(au4<5e=%;#fv46EzOw zqyb*Hx8|rPs`C? zTL0rGqXJ|{43%YD579S%dEdT`)OMQy%?zmH`+k5^{1mEf)R-Am|NEi*dyDyjb&YK4 zN2mR3f?q!1jSsDFQ&Zz9a$<-cuSd-03y{KX5mUWomM1vy{jt4jFg#TaRa zGPU(p>nv}4)ToNF7%k7`&o!zdI8@a9<(K~Ip=jZ)-v=FteB3N{-CgJ|75DgGob^9r z;ibSnPbl}iuyjT8GbWO&4xqpI1pgH9{&B>jV$|<|<=Esb9XP)n`v2}BHohpZ-1+Z6 z`ai%ie;@Dva5#Thd!R3_T?PvTUo1t^W zE-rKR_vvuHVJnki$n0Qx)W5h8O8p)c)OI@t^ET~$`YqOP`n+3P7?&QFwWc1X9!_TT z-AKfC%4Ygj;rhDak>Zhjn(&bX*SJ;?ru4i2m!Ad6clR9ZU-aLN{tY|o|NiIO$KP%^ z?0)XI`G0(RIPmnp|N7r2|9^J^e_P$(H}3z%S^e#8{`T{K$GHES6Zrq^X+?AEZGuUu zui;Vs^7A3NHL1#{cdF%*=b*|IY2*2s>i-b-mQiiCTi0lDhfs>NSb!Fa6pFh$6e;dn zpcD%d+=3U16$%tD#oZI!3KS?%+#$HT6XZ*u_dMU;=e*C^dypUZxCeuTJJ+?=TyxEN zt%rLAt)SmUX;G4(rCeX!vS~bD$H{XE)c^V-2cpE38V6!U8#Dg>4hjM2WMy;gmjMDV z8HFcn3|SjCs&_bTca8W@l$NTvJ`Axq@w-?L&;wvi&a^6HfGx=dEghwon2s*F7lM;x>JtkwL^7=1ib{qA$M?5T1P z&91w*Dqp!tPu*hR$EdaM5Y55H0w-H`e%_L8g9BeZioFNmw4lG(S%%-gKf8atM*hby z6MbaSNzAccN-jDv;G+RKRCE|LKRkC9gZ9yCCij0y)_ELZgtyVRTyqKn)H+z)`^K0( zV2Sh&Z!+|@{uihyar0aPVss-?KF|91qJiLjk{|@jm1wtmwwoNz2k5yUh+9l{36{Qz zzeO3?7|sxdH+q%{xSfSGA9s1yGz@Sslh;WMm9>4>J|g=l;ds_O;W(I{V3kFf$v$^M z^*C1nO!6}$LDl)Yt!lR9#AtbWc&`=})PK%Iu<(I{uV>JdAv`uCu_Cki?R_^}B^h49 ze_e*p0lX-JnsO93qTTTX}$-!>nmwTUI7peKGySH#y10KogfJz52(V;OMashD+$_`r~HyGq|AtH(JSy ztp8G{u#2ERWp8G$>HXJ}lt7Jtd?kNwHpCMXKPi9R5*~w-UOuEP0kF|j6$*8N+ywj4 zBqW-U=A`4kz!i$jubBTLua^GVFFaQ8f}?Rpx>xmQ5w}gS&OPEV;9YV)B2=A|%=zT( zsUWpQT1S12<&yaf%rfAoKb9TZP)HLI6>&QECfDqE#oog0jRT_jwCHO`>+%C%9U{yX zt@qvtbEsi_4{Im?!u81LKpd*__n!Oz3s(SY6rrE8z0r05s?p%hOplh;AF2ZSPNIda zCN>sOiAhI4PnPIulsg$n&+-*McA>RqS5B-58&1+rbN9k{>*Z>l5cvX6X+Vf{t)4I0 zTNc?lnf)9+>h#MOvenm99WA`pN`(0p>R|*fGJ0E+ZcI8-t8j0mQR3^YU+dWPM!(r4 zrbLg?XYv=yoL;kkQy|JpG3J-`tz%7;0m8H@qp(3E^U0-!@>ZUrw|r(Z$!(Mjb9D>9 zzH{a@p?G;Qp2}?*V3DjuQ@FsNHqD-zhs; z$a1y%nmMOK5y7WK+Q;g#CFr$4%6oS8&aG_MNWgQJ>)LtVv>JKfbr*;3MJZ!6b4=gD z{`-dIZ;w4hov`55I^qnSbaTPK2v(AoOw&>MQx!=8hKxCw9aUZxl z_RhJ{|I9Mmyt-k<53$(IlwK5*x+P(&ydx04P@Md= zyr7h&UX?9Q5;3#K6)|hirdOlQ$fjqrxL6@oC4t)TibV(!i+c{_am7sU%x7N&a-U7# zBW4+0)WR|4d^gx?{1IY@^=coKhBKEwea2yVgZl&k7rh!eEGKjTY`-#U8f?Ca$>dlP z^{LVQZ8azCzEbPqLr|RbSu$1XtSpN$9~5oaXdWJk=J9i0J8eD9Mx#FX0{-Y?Kg)G( ztb{umdtMzeUsOBVvgGW1@Rp1ke^4 zX0_(&x4Tlr_^Jg6&SP_AI7m?7NHUlJ;C{D1>*Nx**+@Q!O$!oorrou*Z~kKS>+Ppi z>=d6XKc#T^?Rq^(v#*i9T5r!LhUH+G{`tRwJ0qk>igKa}bje{h%y|^#Capd2BtFP1 zNLUNq{<$p%X31;7$E|5t>e}$WvzLMaHHgdQLdmOaNr3w`@5Ta6PfM3R1zMot1y$T& z6Co~UP~^t&D^gxwigY1*oINH?sVT>W@8vXK^WJ?E>4`=m1jP3caGWPN_z)?2P}{da zEx$jRSQbJ}#>F4XxpV10*)0k5_$?wE`Up>5{4JKiC6$N;mCSF|WnT!j)_f{N6Vpf$ zeuR1%ZGqvU9CVRaD-d!us~LT04p^v{j~tEot*T&m2*K zYU$8hdpxu%N^SeVQ#>h@bbhO-4Lku5rRqZ`GukDcK)G2qmFn}WH`q+@&RPSka1syd zxG@&?qx9YQtb%3xD62n_8mNIP9&HLdyyxmmiv*}T)v+f19v=Tx{qBzNYmG}ygAUQx z);IMBf-h-B-RfciSaZPx38cMWm_Mtr>rO#$z9<*zZJF+@xJh8Dn%JYufa<(YPQRV( z*JP;hvliCOJM5T+`jEq1=^}T*HQ<)W#dB-MNO7B?+gG|pSDSYz3DI-p=#mh07nqzr zglhgE&SIi5Q?_bbOS`YE{GD0QmF29)>N~8dlJc_MRI3TzI&XVn1LH*;u|khKaR@KR zKr|s~a|u~Qr17PSgdVuo<>%@FW{%R85V1zPB>Of$Vz0k>c1p)RSQU75uCYF* z6+5+T$z*ji8r`Gv__7`VSfPSQOp1f)Pfn(YwN;xHWl^^o^zW5R(3V9Nf z7$xKG=Xv30TCb?u|c^P^2zJIXNh**8C{xMOX0_cW0n)9tK)^4^$J%|%utMzQ* zeS$k4n*UHBr6M_XV#{i=w|P|e>)-D$YitM6ZCn}mA7hqqnuVg+KD4)=*?B;DZ8L7C z1edy^QPJvjK<}rv^_m06q^FFnHA-gI9X0oMb-S$loPVpXGaVT5EoLOFu+hn~CS+&~&tQ}_vY!)5UD69PR( zvdx#z!qr#X+SE=7-GunDhlos85Byizl2fmt0hwE*AQ4yP(>PQ?0kZQcH_N5iRHq-b z_j6(G2m6RwO3wTTp;jg&qJ($?0)yvz+tm1{R_9q_yb+6pt;{NhQHqK)t1Xa?MnaFu zd&_&SDLtEq)~ABK&7rS-+XtYEgl$^+#)cD|mzppW1O5i(i3wb0_2b#{ARE@WU;%=x zsv-hxAJBs)R09Vo9fNmt{MuiJAS)8w5CnFb6508%EKoLo;Q9Jh>RCTID z=}ej=3R1CjHFhr#KRPBOg@e8Bm=cEE?{{8FYA#8ch3+E!yon~hTS{jkek5ZxXew8Np<3jFN|%m3AlMh!^4#tI40yYC3r zO~aB$#-pGMKdT4{r7=&OH4yD>hg0Uh#hi{-PD#QTruHY?LMe76C@RTK>7>g!ExEIrbcxl>3_yw4^d?GYiS-j2uib82+;0JscStmh zS>YXUK`(E*@!w%S^XO^K{sj#f0^7~91+Vrw>_{zh#B?duM)@@$GEA*18yC=VVGzle zm|>190^?mk(wmX>=&Vn6F@}bK8_}!f!yfZqQ>yS2z%qfBZhVQ4KNA4+$DeJ$`J1vL zqFXSsRdpP4B)oXvtxXkv4#)3UyW9C3+%c`!o6=CyvJwrN?J*P9_~lpJsVKnEfPs1M z+y{1sKWmFA@s+_HCsr-7`kZedeWKsy+pnT@VlUIKmXNv!02SZyIT zjPDxxD5$_r4jF7W*zTr5Csp{n&%%eTjFjgsYH^$FYaP^QhVs*xLxK+Hr#j@RY&;H% zh6X>evMjFpZ}mFk?G-;63+QY6v^qzi!l6hPBW(@~p@Y}D+YPL(I*>8mbzF~2b$eqQ zRUE6!RtEk)xG$kZM69Z}Vx$wYCLZY+$JaVEJqq&PMUA+*UlBkKz!azu&|DiDb1QR1 zX_;d6sQ>dfXB=;U7#BDw;d2sGzM8;a;-I{)F3x+7dHL1Wvk|qhpRX$J%zh-if85#L zG&@ODbDr3J)OPr!cjoccqIm|Mb7}kd(=KcFOaETjP4$k88X}R|dpYq!C-wr>MiAZT z5NPryYU}PdFY^!Q>7lME(*x0fI9&2=%Zxvv*~aJF#)F3B<}2@qO}9rf)bj&UpsUV@ zdmh_w(sfGm%w%6wX=0o$OGQPIZ)C5}A@l(iT}dU!S@qJ?^XEP{0t~`BO~( zWv!sva=$N^&!}H^2X6EVVe3|CC>DLUT}-c%)U*>Tw`kF1F_CWf!rUJpb&uw6JAzD848hhv)Hm7hDM~cPw!!>Z~^WI;eG^01a{f&6N0X@{uy# zn6s$vegQ#L0n2ti=Nc{5@#-R$63tyi6~`Blw!bXRe~dU^pJPyE*sXcnoA!R_Eo@Uy z5;%Vo8KNK`2T4y}S>x0t{?r5{e?568UhV_z+qF8 z^lQfpHg&hA>P%W zk(>OgQF?7^(EWh6eI1VJYF$JOLH(=^wZ>o@*vY3NaKgrl!U@FTsacbXqAccSOyVm3 z3H742hwOgn_%$9?2^vOgmxMjkt&33eU4;LENKQ_jUe9`RqVjP@M}3wo^|$3m?`gGy zvia3w?5)Ab7`FzM z{~=)i2~nIe)DeYWF7W(QXTWx z#6dtxkiCQf10~>#xkS}&n)ui85+u3y*-38boH@AqeOKhF5MMcC#o|N{)0ZtP-v0hN z-SO9s4irD1ayfi;(^)2_vOvX1e;Rjzv;5?zAODB)DM-2XwZ+M~CjT|;mqhy1H)m}x z1KD?=?BI5M+Z6wiM71F;6;u4L>niIZ9XAzOjU#iLv!s!f=HmnXltr^ZN1xpSoD=C` zcCm$pW<;Q3RY>UjCf!)~#l#PKVP|irFZo!SgGs1oAuk_ohH^WMZAx2vcRK^#o$pQd z7gQ+FVs)TUZNV$i_*;?O!zUrI26EXK_{@{=^SXlZP=m+ikX6MQT2a-Wmv>3NwU4CW zT>B%N>&F;_?VAj=M4VA=zn?e*yoHb>hL0l(09x&Rt4Ew3;$>^oK;URW-Z2@LSZ{gt3R?8j(A{l97PfW4Hh^ zC31riAxJuFyQO#7#q~5b2!Si$Hq(Aiwk^F%4PfRUue|^zcO%biW{r_F1@1^M5pR!( z5+c^!47z+C0$qXSUtyQC#h1_*Ro7Q4n`0zqTg1?gi>{r zZ?i@9EvcPQEcBIAfx@=%MvKqB;S@8C7!FxO!VjI7t9$a5LPf?{@e`yhxIV3RtcRDu z?`Q4xc&|7^r-|^LiR@^r+gk_@qWKTzo%r;d%`%^COWh$xWyHnzJjg`?Np{;WBh2En zduMRh(tBU(WCeHB@3$RUbe>A zx>p=5ar^}#|KmzN0w`RfHV_U6P->wk?172znNf5g+e|JpFm4Wm+J z1!<%;gIbtpXP0}z&a6Qo$?*yeC7KpGeJUHW9ok%OpF@bM%c}C-C*l4qSDmjeIy~rf zb3bQT-#FvzUG7bevhvh8m_^pAD72j2PVK<+5T~bCp(i(@4jHn(8)ex!wRjc8`HbZhGTqvvDfFFZ%^9X8R)Z#kemmCWqt!XG1763dCtQoRf3QlT9DrlpjiHpmPNqSBe11BLDHcp~?^)@$D!n!qk?)$?kJPk74TG8U@$&6t#KE{otgQ~j7DAuBy~9-v%JFsV~2<@YnG)zyfV zu59PUxpc_f-K1kkthtOD^0taxb8RIMAbNW(0_N`F^-YK@tSWA?DT+5DkXk5|F`SU8D4ngWu{7>+zS$S_AIMzyKO2 znysgKOCv|3s5!lq6N5ymNovJ`gumoVcJmB(?4a%qpZ;s%$cH}KBEim=;%j*AKQ5AR zLR=K;U8KH&gmS)kA)fpm>tw5LL6ZGC=by*EsE&6SQ-Y8`KYn=Qdz+g9q_|;PbPi-j zlK?&I-s0bKm2T>Q(2i>i)P|=!G{N4GdYoilnJA(47RL_?Z*e;)SGd4UKTC?Bs2G?q zmJbG6X<@c?lXa+qxvH|X017s#ombFyIGxcOe+opheso9P0rfNQD50_Nx+y;*G7zE~ zRq(7ElZwgS)IdOEY4&``_Jzva2L{eQhpyJxOCINBc>tsXgiWqNqVTQJyr}?r5MY$@ zSSrrqhJ|xXPF2TPlJ{J*?7}K)hR4e@->D=yz(+5r3%~(C1x8V#GCx;j{<}6GZ^|(N z$$4{G(Ka4%^?fS}ER$d_`uKzd`_V>mFjbD*vhR+J-q5e6yN-vmE|$z6NPh~J^3y+1 z51@uRv`f5^aVUMh`fikWAt^YGYM$#s_SVFo zV;PB{h0cSOxSBc zmmheS8ut)O3buCg%QvP3Y3nVAryNAb-l{E`22k^d^P$U*1C@;R+fDvMCHIb!Js8$0 z2l)X);xcV{GPc&p@-BcSg$V{{9pyv&68@4^D>3XfSD)yp(2h{3m4dzy_&7{`&~qy5 z_bKaSyz=nr`_AizSHkG+0cexy=M*fcMjh z0gmhLyA6mo;=Th%kGdwFYze|`Xy(*-@icjEf9M#zBH?p4*m2+T>psVZ)A*BMM=8-# zY4~je)RJMC^8Upih$KJ)ip+=;;?}!ydnoT%{wWSWxgO-^A8-f5GIDZa^;!A)e8H}= z1}f-cYQ00ImPwb|m(Oi>Y#-_^?r1uFjga#Gv{{LMJfTtO!Vl+qqsr~wyPiHX`5Ud;37O$nBBdxJ zo?o~^^FB2)w>|8>J8ZG7ya;Nj!z{u2mKhB~H>#1x&$Qn$ zpq3Bw9RZ`jdi4WADs*w5z%o9cEbas;4*Vr4u#%nUojM7GEkAcr-6^&eY_5<+y3oT)HeHZRQbeIV)7N6r>Qr0b6eH5BMxFk^1PQIFbr zqcaA>cw;->D3IfCttHr4<+%QDCLs#R@vR?*nW^IkT@$)gg^zUh( zHA<6MHx!FPU2O*^MXPm8K?)_g2Yw3LJ4uav^Q}EQRG}0k+s?!j{ba|)H60!Ay7P@U zjDj^SO0fW@yZnpTQp+Z%*0C4nQ8@826LQqOf)NjRxd97Boy144bbxB=$LS8int!&e z0xRl;P~Zh!jL%+A;`Z$K8NN}h&SMge`GL~uT1`gV#w$t9B#L-Zu{NJOfsTmn99!{O zAqPq=K4i$Qpe=BO^4qd>jkxOiq;=isVTmD#sFlgcyBqI7v%#;A;csJsuhqTgD-MMB zh;il8GJTQFoeBZMsWp$o!)(Vkobo9(s^D7u&0sv(0T(I>NbEI9VWL%pPuFLR(^QM0 zaJ!SWU(afWVDfC_J$0Lcd!PA1hzFr=R216uP|o)rv8!R90* z-{ywM2rNvy3t-;h3e69q)yp# zQw;bya_jJ!DwpmOMr(6?qg}c?i#A@Nk!Mu!4o)M%-XIsOpj~^+D?*wDBRGUVt!KR9tOd#52Zoz=q;XUfPn`cQGVk&^Q$ z#;%S_b{$F9ipU9S|+rGjJ z9+zy?!M1TgPJVWcGGLqlV#@wcrgK8&^AoIZa_()7OY0R?Tp2>krwVDE+z0PZw)Dgk zu(FpK_4|}{`}m4U`-V?NvnVtjulu7y=3T%up`L7Ys`=A$u#sxyh$bf&rHXxp8t*$& z-sWv>yCe?AZoIH8_xVLNvpFW!48rNqFWxGk#;+J`DLt%YTfBvN`I$sdV4FYu9@85@ z=I6ikvA11KnMD3xgGYB}o3pb1l``#?PfGEGu69tQa{9SFc(v-T$^aa0CAo#I0dIdBw-KES?2 zZ&vI15z38j9?B1LHy^zo5xxW;`4=GBweQ5e%QSZl<*%Y6_&>YrC;dmb1@B~(aGt+* zy?q&ncd93W&uib~qIol8Xc&>Ut1F-~gIqfjE`;=g8A~Vc`zzI#*(?_%)eC$-u4xr0 z@RPAkFktE|OIUQxU^U^d)Csckr$NhhF=#^S))(?A1bkW^JP%p$D-Dk0T+-kL zmlvR@uA(3p$hS>{_lH&Hh(c9>Eo0$rD)GcMIzJ0yO_*eX~8 z(gC=<^bj_Dk%@&IU>7ahHY`gypjC={Y>-{s*kxU=E=EHxgKg;mU(Sl$5yB^aY4n(h z!+_~kP{ivtN?zSoDxm?bfaCf}u_Xulv`vd=CBq#NH|3qnNF3bXHD$a(N;P`}TMGSd z6zw9rPp_)@?=7JJb7^h z-(8vl9jieBb^n}}+w{QelHZAiD>r|C@f!sCv|x)R{Z3BSrr}Orq^PTz0Q2iiwyMxV z9f$O|B0fq%O7a1Wiw#0e_2Yh&CvE6HM=agl{=+;lO?6CrQgp}>y;C`N9C0x-#C5Yk zbF!YmPXWc<-9mGQBb6Whu-j>&-^1Yb` zpIBeIyXZFEd}a!lFa3Bvz0n}XZ{!h%hkU@JyeI-?i<9}8Grb8can}}GzXB1$){7sI ziL8^L0JOxsMj<@xdblzPs5f6IW+@KrV~%kZ+83(Ga@^0g)}MPm!hImTc5iqhN2C>{89*+6aoK^Y-H>I~M^?>KR z#LWkCFPUl5J+Bd*wv> z<3N8K;A+RMGhl&CwTc12K%cX)fj@njg}vklx9ySY zYv`f*IX1f$M`06g2s=Q!#n&dSa;Jeb2tkov3MkvT!Ch0`1r`zPmRm11setFFDD|mS zU+LGp1F;&B`gQaE?Zh!JD2!xgtHtx#NwKk7 zJy&jAH^{zq!U+_6?p(U+M%3qDJ z2qp-k!qJ{e)?;6szD>n|OS86aM3x;TAsz=*T*JwjzuI1^#l>1_6}d0h1zU) zACo&qA_JZk5TAk4(8JzJYcsq$sgKS<0*c*qMsD1Zl4 ztX8ZB`ylGRy6$3GW5A60o?*esemB>0X+g$s=pHy>ix~GB+$0OUU2j5 zn*CLa6X%wYootS8Veqg*M;N5jrj?4W%V*&g;OP%xAU?%Iho6fc;%%||VxV99qpjd6 zo}}1-EXT&H0>X4T`naewJq#gvwJb%l;2Z`s!`-Ci5TcqShtH$0 zI>~=ZKL3sESk<&$7P^|ZD76N+Tgyg>Q}{yB_Fv*M(eOJ{O-hE`tPQHH7jcBGmOV8> z@_yNH+CSy+?Fr^H!>ie^l`<78C7@f>yNi^#fE0Sp*)5t!sw^phEx&Fet^%0nUYW0kAo|kM zralWV(U_5SwCvrPG7TJ7EE2!YYbvAcd(ykLDqlWNOv58WqHYj);OX-jpv0|QP3i2n_7<(%s(AU z0;Yw&e-{gc98zx@{#bE6@||P4_>a~-db&#gJMWoF^I)$TZ$0bpzSk$#d~|e@N7aY> z-m2djB%F=h=2zZEp*8>$mxCs4eo$%V*zGp%487%3*#2F@$aaLiX7C|Z=iy}vzdq1I zW?@IFJD#M^mSuTmnHE58?5`;3r9D=7L-fx45orwY!Nbt5f&_O50p+&4W?aRGoM|l! zl$k%eEu&?^)^MP!%&=pxV2@pz=8>Jt54>ki>1|l*L%f@6Qi&}F;6plEB^-S~WM0Q< zBR#U+^=~!0Es>(oeA^zDS=qNLoN#=3zFgFn^K;t4N5?UK;e!%hSmKxIg?s?>7x=hc z>sS@)&im`U&8Q7^hL_JSpV{Cxo1G)^#)g{!MyEr5a3pF_cl6+gXZ%u$`cOZo${exX zI5N`BN0s$^=TuqKxm35`0c{K{(7?Gev|$^*9CQM&gzWyIY0HBg`{G#i5mC!@yWie~O7U(Nt8R+x0=tK5 zRPm|hLnbuUbyt|QXJsDMa?=BMeitdxJ@#UbsX;tO_S)yj{-f?4M2B>0J9dWPtUT$& z*nz&XEO6TCx!ZMJec zoO|6c+QRuM2*ShID<0lWc7?9b*$AgyO9aH-oP8V?4Xy$0duon_HilCFGO4kucsgFJ zR~@JIN^?4mz3xvnBti`f!*+Bz#6m~Q;4_(&JntAweyW>db_W3-MBlGY5Lktlu~66t zY)q0du7B|`5B$nVQY6hDTE{OT3lz9?FmPH`nR<=ycX3s_`VFf$gpL#nW{a zza(xSGB1g-LGvRrsRF&85~Nh~Fx8sW*`w*^+1p?URnP)&YGa5fdt|b8z+;jALg7(c@7@p)2oQ#4e ztn$$^Tlhm4(Su)|{^H6P$xLY>pRhjlTm~#(- z7Wu%kbyTAdkG3Fs7fv^B3L?e~JajG;QC`0%2xR3u;JSRd9=Se+D4_4LV%PBtMtc@R zU^Id>#!!Ig02XSdjc@DsMPG)VZjAEOcR!cxjs@WMZ~;r@i;W^)oNoDX){n^0(l|%< z&}AAnI*0E~`{+fI{(7ar@pRW;;1Y+uRRFrogV#ZpZp2#1{Vc`A9`dATGVfSCmFuaL zYHmhGwPê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�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 literal 0 HcmV?d00001 From 768d521c794b3969efd69a84587ec8e5762c0d29 Mon Sep 17 00:00:00 2001 From: Ilya Katlinski Date: Fri, 15 Sep 2023 09:22:06 +0200 Subject: [PATCH 003/106] feat: add publish:gitlab project settings support Signed-off-by: Ilya Katlinski --- .../builtin/publish/gitlab.examples.ts | 21 ++++++++++ .../actions/builtin/publish/gitlab.test.ts | 41 +++++++++++++++++++ .../actions/builtin/publish/gitlab.ts | 15 ++++++- 3 files changed, 76 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts index ac259866e3..c010042701 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts @@ -68,4 +68,25 @@ export const examples: TemplateExample[] = [ ], }), }, + { + description: 'Initializes a git repository with additional settings.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gitlab', + name: 'Publish to GitLab', + input: { + repoUrl: 'gitlab.com?repo=project_name&owner=group_name', + settings: { + ci_config_path: '.gitlab-ci.yml', + visibility: 'public', + initialize_with_readme: true, + default_branch: 'main', + }, + }, + }, + ], + }), + }, ]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts index 994d1c580a..53b525a6bf 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts @@ -77,6 +77,26 @@ describe('publish:gitlab', () => { input: { repoUrl: 'gitlab.com?repo=repo&owner=owner', repoVisibility: 'private' as const, + settings: { + ci_config_path: '.gitlab-ci.yml', + }, + }, + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + const mockContextWithOptions = { + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + repoVisibility: 'private' as const, + topics: ['topic'], + settings: { + ci_config_path: '.gitlab-ci.yml', + visibility: 'internal', + topics: ['topic1', 'topic2'], + }, }, workspacePath: 'lol', logger: getVoidLogger(), @@ -162,6 +182,7 @@ describe('publish:gitlab', () => { namespace_id: 1234, name: 'repo', visibility: 'private', + ci_config_path: '.gitlab-ci.yml', }); }); @@ -179,6 +200,26 @@ describe('publish:gitlab', () => { namespace_id: 12345, name: 'repo', visibility: 'private', + ci_config_path: '.gitlab-ci.yml', + }); + }); + + it('should call the correct Gitlab APIs when using project options with override of visibility and topics', async () => { + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); + mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); + mockGitlabClient.Projects.create.mockResolvedValue({ + http_url_to_repo: 'http://mockurl.git', + }); + + await action.handler(mockContextWithOptions); + + expect(mockGitlabClient.Namespaces.show).toHaveBeenCalledWith('owner'); + expect(mockGitlabClient.Projects.create).toHaveBeenCalledWith({ + namespace_id: 1234, + name: 'repo', + visibility: 'internal', + topics: ['topic1', 'topic2'], + ci_config_path: '.gitlab-ci.yml', }); }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts index dbab7b11b8..302d006e05 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts @@ -38,6 +38,7 @@ export function createPublishGitlabAction(options: { return createTemplateAction<{ repoUrl: string; defaultBranch?: string; + /** @deprecated in favour of settings field */ repoVisibility?: 'private' | 'internal' | 'public'; sourcePath?: string; token?: string; @@ -45,7 +46,9 @@ export function createPublishGitlabAction(options: { gitAuthorName?: string; gitAuthorEmail?: string; setUserAsOwner?: boolean; + /** @deprecated in favour of settings field */ topics?: string[]; + settings?: Record; }>({ id: 'publish:gitlab', description: @@ -63,6 +66,7 @@ export function createPublishGitlabAction(options: { }, repoVisibility: { title: 'Repository Visibility', + description: `Sets the visibility of the repository. The default value is 'private'. (deprecated, use settings instead)`, type: 'string', enum: ['private', 'public', 'internal'], }, @@ -105,12 +109,19 @@ export function createPublishGitlabAction(options: { }, topics: { title: 'Topic labels', - description: 'Topic labels to apply on the repository.', + description: + 'Topic labels to apply on the repository. (deprecated, use settings instead)', type: 'array', items: { type: 'string', }, }, + settings: { + title: 'Project settings', + description: + 'Additional project settings, based on https://docs.gitlab.com/ee/api/projects.html#create-project attributes', + type: 'object', + }, }, }, output: { @@ -145,6 +156,7 @@ export function createPublishGitlabAction(options: { gitAuthorEmail, setUserAsOwner = false, topics = [], + settings = {}, } = ctx.input; const { owner, repo, host } = parseRepoUrl(repoUrl, integrations); @@ -191,6 +203,7 @@ export function createPublishGitlabAction(options: { name: repo, visibility: repoVisibility, ...(topics.length ? { topics } : {}), + ...(Object.keys(settings).length ? { ...settings } : {}), }); // When setUserAsOwner is true the input token is expected to come from an unprivileged user GitLab From ec8c69d9c38665488bc9aafa5e0f5d5efe0a03e1 Mon Sep 17 00:00:00 2001 From: Ilya Katlinski Date: Fri, 15 Sep 2023 10:13:59 +0200 Subject: [PATCH 004/106] feat: add publish:gitlab branches configuration support Signed-off-by: Ilya Katlinski --- .../src/scaffolder/actions/builtin/helpers.ts | 4 + .../builtin/publish/gitlab.examples.ts | 27 ++++++ .../actions/builtin/publish/gitlab.test.ts | 87 ++++++++++++++++++- .../actions/builtin/publish/gitlab.ts | 73 +++++++++++++++- 4 files changed, 187 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/helpers.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/helpers.ts index 5ac92128ca..1ea3a13687 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/helpers.ts @@ -251,3 +251,7 @@ export function getGitCommitMessage( export function entityRefToName(name: string): string { return name.replace(/^.*[:/]/g, ''); } + +export function printGitlabError(error: any): string { + return JSON.stringify({ code: error.code, message: error.description }); +} diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts index c010042701..a2f5a20745 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts @@ -89,4 +89,31 @@ export const examples: TemplateExample[] = [ ], }), }, + { + description: 'Initializes a git repository with branches settings', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gitlab', + name: 'Publish to GitLab', + input: { + repoUrl: 'gitlab.com?repo=project_name&owner=group_name', + branches: [ + { + name: 'dev', + create: true, + protected: true, + ref: 'master', + }, + { + name: 'master', + protected: true, + }, + ], + }, + }, + ], + }), + }, ]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts index 53b525a6bf..59d05eb226 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts @@ -45,6 +45,12 @@ const mockGitlabClient = { ProjectMembers: { add: jest.fn(), }, + Branches: { + create: jest.fn(), + }, + ProtectedBranches: { + protect: jest.fn(), + }, }; jest.mock('@gitbeaker/node', () => ({ Gitlab: class { @@ -87,7 +93,7 @@ describe('publish:gitlab', () => { output: jest.fn(), createTemporaryDirectory: jest.fn(), }; - const mockContextWithOptions = { + const mockContextWithSettings = { input: { repoUrl: 'gitlab.com?repo=repo&owner=owner', repoVisibility: 'private' as const, @@ -104,6 +110,33 @@ describe('publish:gitlab', () => { output: jest.fn(), createTemporaryDirectory: jest.fn(), }; + const mockContextWithBranches = { + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + repoVisibility: 'private' as const, + branches: [ + { + name: 'dev', + create: true, + ref: 'master', + protect: true, + }, + { + name: 'stage', + create: true, + }, + { + name: 'perf', + protect: true, + }, + ], + }, + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; beforeEach(() => { jest.resetAllMocks(); @@ -166,6 +199,8 @@ describe('publish:gitlab', () => { name: 'bob', visibility: 'private', }); + expect(mockGitlabClient.Branches.create).not.toHaveBeenCalled(); + expect(mockGitlabClient.ProtectedBranches.protect).not.toHaveBeenCalled(); }); it('should call the correct Gitlab APIs when the owner is an organization', async () => { @@ -184,6 +219,8 @@ describe('publish:gitlab', () => { visibility: 'private', ci_config_path: '.gitlab-ci.yml', }); + expect(mockGitlabClient.Branches.create).not.toHaveBeenCalled(); + expect(mockGitlabClient.ProtectedBranches.protect).not.toHaveBeenCalled(); }); it('should call the correct Gitlab APIs when the owner is not an organization', async () => { @@ -202,16 +239,18 @@ describe('publish:gitlab', () => { visibility: 'private', ci_config_path: '.gitlab-ci.yml', }); + expect(mockGitlabClient.Branches.create).not.toHaveBeenCalled(); + expect(mockGitlabClient.ProtectedBranches.protect).not.toHaveBeenCalled(); }); - it('should call the correct Gitlab APIs when using project options with override of visibility and topics', async () => { + it('should call the correct Gitlab APIs when using project settings with override of visibility and topics', async () => { mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); mockGitlabClient.Projects.create.mockResolvedValue({ http_url_to_repo: 'http://mockurl.git', }); - await action.handler(mockContextWithOptions); + await action.handler(mockContextWithSettings); expect(mockGitlabClient.Namespaces.show).toHaveBeenCalledWith('owner'); expect(mockGitlabClient.Projects.create).toHaveBeenCalledWith({ @@ -221,6 +260,48 @@ describe('publish:gitlab', () => { topics: ['topic1', 'topic2'], ci_config_path: '.gitlab-ci.yml', }); + expect(mockGitlabClient.Branches.create).not.toHaveBeenCalled(); + expect(mockGitlabClient.ProtectedBranches.protect).not.toHaveBeenCalled(); + }); + + it('should call the correct Gitlab APIs for branches and protectd branches when branch settings provided', async () => { + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); + mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); + mockGitlabClient.Projects.create.mockResolvedValue({ + id: 123456, + http_url_to_repo: 'http://mockurl.git', + }); + + await action.handler(mockContextWithBranches); + + expect(mockGitlabClient.Namespaces.show).toHaveBeenCalledWith('owner'); + expect(mockGitlabClient.Projects.create).toHaveBeenCalledWith({ + namespace_id: 1234, + name: 'repo', + visibility: 'private', + }); + expect(mockGitlabClient.Branches.create).toHaveBeenCalledTimes(2); + expect(mockGitlabClient.ProtectedBranches.protect).toHaveBeenCalledTimes(2); + + expect(mockGitlabClient.Branches.create).toHaveBeenCalledWith( + 123456, + 'dev', + 'master', + ); + expect(mockGitlabClient.Branches.create).toHaveBeenCalledWith( + 123456, + 'stage', + 'master', + ); + + expect(mockGitlabClient.ProtectedBranches.protect).toHaveBeenCalledWith( + 123456, + 'dev', + ); + expect(mockGitlabClient.ProtectedBranches.protect).toHaveBeenCalledWith( + 123456, + 'perf', + ); }); it('should call initRepoAndPush with the correct values', async () => { diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts index 302d006e05..68205d05e9 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts @@ -18,7 +18,7 @@ import { InputError } from '@backstage/errors'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; import { Gitlab } from '@gitbeaker/node'; -import { initRepoAndPush } from '../helpers'; +import { initRepoAndPush, printGitlabError } from '../helpers'; import { getRepoSourceDirectory, parseRepoUrl } from './util'; import { Config } from '@backstage/config'; import { examples } from './gitlab.examples'; @@ -49,6 +49,12 @@ export function createPublishGitlabAction(options: { /** @deprecated in favour of settings field */ topics?: string[]; settings?: Record; + branches?: Array<{ + name: string; + protect?: boolean; + create?: boolean; + ref?: string; + }>; }>({ id: 'publish:gitlab', description: @@ -122,6 +128,35 @@ export function createPublishGitlabAction(options: { 'Additional project settings, based on https://docs.gitlab.com/ee/api/projects.html#create-project attributes', type: 'object', }, + branches: { + title: 'Project branches settings', + type: 'array', + items: { + type: 'object', + required: ['name'], + properties: { + name: { + title: 'Branch name', + type: 'string', + }, + protect: { + title: 'Should branch be protected', + description: `Will mark branch as protected. The default value is 'false'`, + type: 'boolean', + }, + create: { + title: 'Should branch be created', + description: `If branch does not exist, it will be created from provided ref. The default value is 'false'`, + type: 'boolean', + }, + ref: { + title: 'Branch reference', + description: `Branch reference to create branch from. The default value is 'master'`, + type: 'string', + }, + }, + }, + }, }, }, output: { @@ -157,6 +192,7 @@ export function createPublishGitlabAction(options: { setUserAsOwner = false, topics = [], settings = {}, + branches = [], } = ctx.input; const { owner, repo, host } = parseRepoUrl(repoUrl, integrations); @@ -247,6 +283,41 @@ export function createPublishGitlabAction(options: { gitAuthorInfo, }); + if (branches) { + for (const branch of branches) { + const { + name, + protect = false, + create = false, + ref = 'master', + } = branch; + + if (create) { + try { + await client.Branches.create(projectId, name, ref); + } catch (e) { + throw new InputError( + `Branch creation failed for ${name}. ${printGitlabError(e)}`, + ); + } + ctx.logger.info( + `Branch ${name} created for ${projectId} with ref ${ref}`, + ); + } + + if (protect) { + try { + await client.ProtectedBranches.protect(projectId, name); + } catch (e) { + throw new InputError( + `Branch protection failed for ${name}. ${printGitlabError(e)}`, + ); + } + ctx.logger.info(`Branch ${name} protected for ${projectId}`); + } + } + } + ctx.output('commitHash', commitResult?.commitHash); ctx.output('remoteUrl', remoteUrl); ctx.output('repoContentsUrl', repoContentsUrl); From 3e3bf5311e7cef01a5a2609c79c2a410833c3d3b Mon Sep 17 00:00:00 2001 From: Ilya Katlinski Date: Fri, 15 Sep 2023 10:18:10 +0200 Subject: [PATCH 005/106] doc: generate api reports for scaffolder plugin Signed-off-by: Ilya Katlinski --- plugins/scaffolder-backend/api-report.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 17e13131cf..46960d4358 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -679,6 +679,15 @@ export function createPublishGitlabAction(options: { gitAuthorEmail?: string | undefined; setUserAsOwner?: boolean | undefined; topics?: string[] | undefined; + settings?: Record | undefined; + branches?: + | { + name: string; + protect?: boolean | undefined; + create?: boolean | undefined; + ref?: string | undefined; + }[] + | undefined; }, JsonObject >; From dea0aafda7f6aba3fe763bc99054af09744a157b Mon Sep 17 00:00:00 2001 From: Ilya Katlinski Date: Fri, 15 Sep 2023 10:23:26 +0200 Subject: [PATCH 006/106] doc: update changeset and bumped minor version Signed-off-by: Ilya Katlinski --- .changeset/khaki-tools-tease.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .changeset/khaki-tools-tease.md diff --git a/.changeset/khaki-tools-tease.md b/.changeset/khaki-tools-tease.md new file mode 100644 index 0000000000..c066aaf6e0 --- /dev/null +++ b/.changeset/khaki-tools-tease.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Updated publish:gitlab action properties to support project and branches level configuration. +Project level configuration is based on the Gitlab Project Create API available options. Is is available via `settings` property. +Branch level configuration allow to create additional branches and make them protected. It is available via `branches` property. + +Marked existed properties `repoVisibility` and `topics` as deprecated, as they are covered by `settings` property. From d7b1d040e9ba86b864fc8c2979f585ef629cf3ad Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Fri, 15 Sep 2023 14:00:37 +0530 Subject: [PATCH 007/106] changeset fix Signed-off-by: Abhay-soni-developer --- .changeset/spicy-poets-sell.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/spicy-poets-sell.md b/.changeset/spicy-poets-sell.md index 28ef965282..2f08c1bcf9 100644 --- a/.changeset/spicy-poets-sell.md +++ b/.changeset/spicy-poets-sell.md @@ -2,4 +2,4 @@ '@backstage/plugin-jenkins': minor --- -Extend EntityJenkinsContent to recieve columns as prop +Extend EntityJenkinsContent to receive columns as prop From 0f76f34081ae20b1711a72ad8d1aa94ca47e9cbb Mon Sep 17 00:00:00 2001 From: Ilya Katlinski Date: Fri, 15 Sep 2023 12:15:56 +0200 Subject: [PATCH 008/106] feat: add publish:gitlab variables configuration support Signed-off-by: Ilya Katlinski --- .changeset/khaki-tools-tease.md | 8 +- plugins/scaffolder-backend/api-report.md | 12 +++ .../builtin/publish/gitlab.examples.ts | 29 +++++++ .../actions/builtin/publish/gitlab.test.ts | 55 ++++++++++++ .../actions/builtin/publish/gitlab.ts | 85 +++++++++++++++++++ 5 files changed, 186 insertions(+), 3 deletions(-) diff --git a/.changeset/khaki-tools-tease.md b/.changeset/khaki-tools-tease.md index c066aaf6e0..a133a881bb 100644 --- a/.changeset/khaki-tools-tease.md +++ b/.changeset/khaki-tools-tease.md @@ -2,8 +2,10 @@ '@backstage/plugin-scaffolder-backend': minor --- -Updated publish:gitlab action properties to support project and branches level configuration. -Project level configuration is based on the Gitlab Project Create API available options. Is is available via `settings` property. -Branch level configuration allow to create additional branches and make them protected. It is available via `branches` property. +Updated publish:gitlab action properties to support additional Gitlab project settings: + +- general project settings provided by gitlab project create API (new `settings` property) +- branch level settings to create additional branches and make them protected (new `branches` property) +- project level environment variables settings (new `variables` property) Marked existed properties `repoVisibility` and `topics` as deprecated, as they are covered by `settings` property. diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 46960d4358..dae0cd536b 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -688,6 +688,18 @@ export function createPublishGitlabAction(options: { ref?: string | undefined; }[] | undefined; + variables?: + | { + key: string; + value: string; + description?: string | undefined; + variable_type?: string | undefined; + protected?: boolean | undefined; + masked?: boolean | undefined; + raw?: boolean | undefined; + environment_scope?: string | undefined; + }[] + | undefined; }, JsonObject >; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts index a2f5a20745..52ced84ac8 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts @@ -116,4 +116,33 @@ export const examples: TemplateExample[] = [ ], }), }, + { + description: 'Initializes a git repository with environment variables', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gitlab', + name: 'Publish to GitLab', + input: { + repoUrl: 'gitlab.com?repo=project_name&owner=group_name', + variables: [ + { + key: 'key1', + value: 'value1', + protected: true, + masked: false, + }, + { + key: 'key2', + value: 'value2', + protected: true, + masked: false, + }, + ], + }, + }, + ], + }), + }, ]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts index 59d05eb226..4a6019a48e 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts @@ -51,6 +51,9 @@ const mockGitlabClient = { ProtectedBranches: { protect: jest.fn(), }, + ProjectVariables: { + create: jest.fn(), + }, }; jest.mock('@gitbeaker/node', () => ({ Gitlab: class { @@ -137,6 +140,26 @@ describe('publish:gitlab', () => { output: jest.fn(), createTemporaryDirectory: jest.fn(), }; + const mockContextWithVariables = { + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + repoVisibility: 'private' as const, + variables: [ + { + key: 'key', + value: 'value', + description: 'description', + protected: true, + masked: true, + }, + ], + }, + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; beforeEach(() => { jest.resetAllMocks(); @@ -304,6 +327,38 @@ describe('publish:gitlab', () => { ); }); + it('should call the correct Gitlab APIs for variables when their configuration is provided', async () => { + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); + mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); + mockGitlabClient.Projects.create.mockResolvedValue({ + id: 123456, + http_url_to_repo: 'http://mockurl.git', + }); + + await action.handler(mockContextWithVariables); + + expect(mockGitlabClient.Namespaces.show).toHaveBeenCalledWith('owner'); + expect(mockGitlabClient.Projects.create).toHaveBeenCalledWith({ + namespace_id: 1234, + name: 'repo', + visibility: 'private', + }); + + expect(mockGitlabClient.ProjectVariables.create).toHaveBeenCalledWith( + 123456, + { + key: 'key', + value: 'value', + description: 'description', + variable_type: 'env_var', + protected: true, + masked: true, + raw: false, + environment_scope: '*', + }, + ); + }); + it('should call initRepoAndPush with the correct values', async () => { mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts index 68205d05e9..c715bffcd6 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts @@ -55,6 +55,16 @@ export function createPublishGitlabAction(options: { create?: boolean; ref?: string; }>; + variables?: Array<{ + key: string; + value: string; + description?: string; + variable_type?: string; + protected?: boolean; + masked?: boolean; + raw?: boolean; + environment_scope?: string; + }>; }>({ id: 'publish:gitlab', description: @@ -157,6 +167,55 @@ export function createPublishGitlabAction(options: { }, }, }, + variables: { + title: 'Project variables', + description: + 'Project variables settings based on Gitlab Project Environments API - https://docs.gitlab.com/ee/api/project_level_variables.html#create-a-variable', + type: 'array', + items: { + type: 'object', + required: ['key', 'value'], + properties: { + key: { + title: 'Variable key', + description: + 'The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed', + type: 'string', + }, + value: { + title: 'Variable value', + description: 'The value of a variable', + type: 'string', + }, + description: { + title: 'Variable description', + description: `The description of the variable. The default value is 'null'`, + type: 'string', + }, + variable_type: { + title: 'Variable type', + description: `The type of a variable. The default value is 'env_var'`, + type: 'string', + enum: ['env_var', 'file'], + }, + protected: { + title: 'Variable protection', + description: `Whether the variable is protected. The default value is 'false'`, + type: 'boolean', + }, + raw: { + title: 'Variable raw', + description: `Whether the variable is in raw format. The default value is 'false'`, + type: 'boolean', + }, + environment_scope: { + title: 'Variable environment scope', + description: `The environment_scope of the variable. The default value is '*'`, + type: 'string', + }, + }, + }, + }, }, }, output: { @@ -193,6 +252,7 @@ export function createPublishGitlabAction(options: { topics = [], settings = {}, branches = [], + variables = [], } = ctx.input; const { owner, repo, host } = parseRepoUrl(repoUrl, integrations); @@ -318,6 +378,31 @@ export function createPublishGitlabAction(options: { } } + if (variables) { + for (const variable of variables) { + const variableWithDefaults = Object.assign(variable, { + variable_type: variable.variable_type ?? 'env_var', + protected: variable.protected ?? false, + masked: variable.masked ?? false, + raw: variable.raw ?? false, + environment_scope: variable.environment_scope ?? '*', + }); + + try { + await client.ProjectVariables.create( + projectId, + variableWithDefaults, + ); + } catch (e) { + throw new InputError( + `Environment variable creation failed for ${ + variableWithDefaults.key + }. ${printGitlabError(e)}`, + ); + } + } + } + ctx.output('commitHash', commitResult?.commitHash); ctx.output('remoteUrl', remoteUrl); ctx.output('repoContentsUrl', repoContentsUrl); From 09cdef6eca2f138d196bfe55dcbd0f16f9268965 Mon Sep 17 00:00:00 2001 From: Ilya Katlinski Date: Fri, 15 Sep 2023 16:42:25 +0200 Subject: [PATCH 009/106] chore: add explicit replacements for deprecated properties Signed-off-by: Ilya Katlinski --- .../src/scaffolder/actions/builtin/publish/gitlab.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts index c715bffcd6..ee9be04a3d 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts @@ -38,7 +38,7 @@ export function createPublishGitlabAction(options: { return createTemplateAction<{ repoUrl: string; defaultBranch?: string; - /** @deprecated in favour of settings field */ + /** @deprecated in favour of settings.visibility field */ repoVisibility?: 'private' | 'internal' | 'public'; sourcePath?: string; token?: string; @@ -46,7 +46,7 @@ export function createPublishGitlabAction(options: { gitAuthorName?: string; gitAuthorEmail?: string; setUserAsOwner?: boolean; - /** @deprecated in favour of settings field */ + /** @deprecated in favour of settings.topics field */ topics?: string[]; settings?: Record; branches?: Array<{ @@ -82,7 +82,7 @@ export function createPublishGitlabAction(options: { }, repoVisibility: { title: 'Repository Visibility', - description: `Sets the visibility of the repository. The default value is 'private'. (deprecated, use settings instead)`, + description: `Sets the visibility of the repository. The default value is 'private'. (deprecated, use settings.visibility instead)`, type: 'string', enum: ['private', 'public', 'internal'], }, @@ -126,7 +126,7 @@ export function createPublishGitlabAction(options: { topics: { title: 'Topic labels', description: - 'Topic labels to apply on the repository. (deprecated, use settings instead)', + 'Topic labels to apply on the repository. (deprecated, use settings.topics instead)', type: 'array', items: { type: 'string', From 9ef04db9f09ff185b5151631eb49a137c8f29489 Mon Sep 17 00:00:00 2001 From: Ilya Katlinski Date: Fri, 15 Sep 2023 17:30:44 +0200 Subject: [PATCH 010/106] test: fix incosistent test failures with time Signed-off-by: Ilya Katlinski --- .../src/scaffolder/actions/builtin/debug/wait.examples.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.examples.test.ts index 595ae7c3b6..fc68b82d1e 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.examples.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.examples.test.ts @@ -56,6 +56,7 @@ describe('debug:wait examples', () => { const start = new Date().getTime(); await action.handler(context); const end = new Date().getTime(); - expect(end - start).toBeGreaterThanOrEqual(50); + expect(end - start).toBeGreaterThanOrEqual(45); + expect(end - start).toBeLessThanOrEqual(55); }); }); From f9f3f1e6291a99185e8ba929f5c394e752f84732 Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Tue, 19 Sep 2023 13:23:59 +0530 Subject: [PATCH 011/106] api:docs Signed-off-by: Abhay-soni-developer --- plugins/jenkins/api-report.md | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/plugins/jenkins/api-report.md b/plugins/jenkins/api-report.md index 0782f0abd2..215abf5f48 100644 --- a/plugins/jenkins/api-report.md +++ b/plugins/jenkins/api-report.md @@ -15,9 +15,12 @@ import { InfoCardVariants } from '@backstage/core-components'; import { JSX as JSX_2 } from 'react'; import { default as React_2 } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; +import { TableColumn } from '@backstage/core-components'; // @public (undocumented) -export const EntityJenkinsContent: () => JSX_2.Element; +export const EntityJenkinsContent: (props: { + columns?: TableColumn<{}>[] | undefined; +}) => JSX_2.Element; // @public (undocumented) export const EntityLatestJenkinsRunCard: (props: { @@ -45,7 +48,6 @@ export interface JenkinsApi { jobFullName: string; buildNumber: string; }): Promise; - // Warning: (ae-forgotten-export) The symbol "Project" needs to be exported by the entry point index.d.ts getProjects(options: { entity: CompoundEntityRef; filter: { @@ -118,8 +120,29 @@ export const LatestRunCard: (props: { // @public (undocumented) export const LEGACY_JENKINS_ANNOTATION = 'jenkins.io/github-folder'; +// Warning: (ae-missing-release-tag) "Project" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface Project { + // (undocumented) + displayName: string; + // (undocumented) + fullDisplayName: string; + // (undocumented) + fullName: string; + // (undocumented) + inQueue: string; + // (undocumented) + lastBuild: Build; + // (undocumented) + onRestartClick: () => Promise; + // (undocumented) + status: string; +} + +// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "Router" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const Router: () => React_2.JSX.Element; +export const Router: (props: Props) => React_2.JSX.Element; ``` From 26abd48a5d992df4b49f6e01480763a4b6d13076 Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Wed, 20 Sep 2023 17:09:30 +0530 Subject: [PATCH 012/106] api-report modified, scoped column type, exported ciTableColumns so we can easily reuse the columns Signed-off-by: Abhay-soni-developer --- plugins/jenkins/api-report.md | 7 ++++++- .../src/components/BuildsPage/lib/CITable/CITable.tsx | 10 +++++----- .../src/components/BuildsPage/lib/CITable/index.ts | 2 +- plugins/jenkins/src/components/Router.tsx | 3 ++- plugins/jenkins/src/index.ts | 1 + 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/plugins/jenkins/api-report.md b/plugins/jenkins/api-report.md index 215abf5f48..ca6feac780 100644 --- a/plugins/jenkins/api-report.md +++ b/plugins/jenkins/api-report.md @@ -17,9 +17,14 @@ import { default as React_2 } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; import { TableColumn } from '@backstage/core-components'; +// Warning: (ae-missing-release-tag) "ciTableColumns" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ciTableColumns: TableColumn[]; + // @public (undocumented) export const EntityJenkinsContent: (props: { - columns?: TableColumn<{}>[] | undefined; + columns?: TableColumn[] | undefined; }) => JSX_2.Element; // @public (undocumented) diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx b/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx index b0474b73da..2c3660c239 100644 --- a/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx @@ -82,7 +82,7 @@ const FailSkippedWidget = ({ return null; }; -const generatedColumns: TableColumn[] = [ +export const ciTableColumns: TableColumn[] = [ { title: 'Timestamp', defaultSort: 'desc', @@ -239,7 +239,7 @@ type Props = { total: number; pageSize: number; onChangePageSize: (pageSize: number) => void; - columns: TableColumn[]; + columns: TableColumn[]; }; export const CITableView = ({ @@ -281,13 +281,13 @@ export const CITableView = ({ Projects } - columns={columns && columns.length !== 0 ? columns : generatedColumns} + columns={columns && columns.length !== 0 ? columns : ciTableColumns} /> ); }; type CITableProps = { - columns?: TableColumn[]; + columns?: TableColumn[]; }; export const CITable = ({ columns }: CITableProps) => { @@ -296,7 +296,7 @@ export const CITable = ({ columns }: CITableProps) => { return ( [])} retry={retry} onChangePageSize={setPageSize} onChangePage={setPage} diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts b/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts index 3be4dae9ce..b5a7ac6337 100644 --- a/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { CITable } from './CITable'; +export { CITable, ciTableColumns } from './CITable'; diff --git a/plugins/jenkins/src/components/Router.tsx b/plugins/jenkins/src/components/Router.tsx index d4325b2542..58dd93b550 100644 --- a/plugins/jenkins/src/components/Router.tsx +++ b/plugins/jenkins/src/components/Router.tsx @@ -26,6 +26,7 @@ import { JENKINS_ANNOTATION, LEGACY_JENKINS_ANNOTATION } from '../constants'; import { buildRouteRef } from '../plugin'; import { CITable } from './BuildsPage/lib/CITable'; import { DetailedViewPage } from './BuildWithStepsPage/'; +import { Project } from '../api'; /** @public */ export const isJenkinsAvailable = (entity: Entity) => @@ -33,7 +34,7 @@ export const isJenkinsAvailable = (entity: Entity) => Boolean(entity.metadata.annotations?.[LEGACY_JENKINS_ANNOTATION]); type Props = { - columns?: TableColumn[]; + columns?: TableColumn[]; }; export const Router = (props: Props) => { diff --git a/plugins/jenkins/src/index.ts b/plugins/jenkins/src/index.ts index 7562026bdc..3a17a879be 100644 --- a/plugins/jenkins/src/index.ts +++ b/plugins/jenkins/src/index.ts @@ -34,3 +34,4 @@ export { } from './components/Router'; export { JENKINS_ANNOTATION, LEGACY_JENKINS_ANNOTATION } from './constants'; export * from './api'; +export { ciTableColumns } from './components/BuildsPage/lib/CITable'; From 198d93e66c9f12d158a4565874657660fffedb4b Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Thu, 21 Sep 2023 12:05:39 +0530 Subject: [PATCH 013/106] following the backstage agreed standard for exporting table columns Signed-off-by: Abhay-soni-developer --- .../BuildsPage/lib/CITable/CITable.tsx | 225 +--------------- .../BuildsPage/lib/CITable/columns.tsx | 251 ++++++++++++++++++ .../BuildsPage/lib/CITable/index.ts | 2 +- .../BuildsPage/lib/CITable/presets.ts | 28 ++ plugins/jenkins/src/index.ts | 1 - 5 files changed, 292 insertions(+), 215 deletions(-) create mode 100644 plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx create mode 100644 plugins/jenkins/src/components/BuildsPage/lib/CITable/presets.ts diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx b/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx index 2c3660c239..1f5d272c61 100644 --- a/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/CITable.tsx @@ -13,222 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Link, Progress, Table, TableColumn } from '@backstage/core-components'; -import { alertApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api'; -import { useEntityPermission } from '@backstage/plugin-catalog-react/alpha'; -import { Box, IconButton, Tooltip, Typography } from '@material-ui/core'; +import { Table, TableColumn } from '@backstage/core-components'; +import { Box, Typography } from '@material-ui/core'; import RetryIcon from '@material-ui/icons/Replay'; -import VisibilityIcon from '@material-ui/icons/Visibility'; -import { default as React, useState } from 'react'; +import { default as React } from 'react'; import { Project } from '../../../../api/JenkinsApi'; import JenkinsLogo from '../../../../assets/JenkinsLogo.svg'; -import { buildRouteRef } from '../../../../plugin'; import { useBuilds } from '../../../useBuilds'; -import { JenkinsRunStatus } from '../Status'; -import { jenkinsExecutePermission } from '@backstage/plugin-jenkins-common'; - -const FailCount = ({ count }: { count: number }): JSX.Element | null => { - if (count !== 0) { - return <>{count} failed; - } - return null; -}; - -const SkippedCount = ({ count }: { count: number }): JSX.Element | null => { - if (count !== 0) { - return <>{count} skipped; - } - return null; -}; - -const FailSkippedWidget = ({ - skipped, - failed, -}: { - skipped: number; - failed: number; -}): JSX.Element | null => { - if (skipped === 0 && failed === 0) { - return null; - } - - if (skipped !== 0 && failed !== 0) { - return ( - <> - {' '} - (, ) - - ); - } - - if (failed !== 0) { - return ( - <> - {' '} - () - - ); - } - - if (skipped !== 0) { - return ( - <> - {' '} - () - - ); - } - - return null; -}; - -export const ciTableColumns: TableColumn[] = [ - { - title: 'Timestamp', - defaultSort: 'desc', - hidden: true, - field: 'lastBuild.timestamp', - }, - { - title: 'Build', - field: 'fullName', - highlight: true, - render: (row: Partial) => { - const LinkWrapper = () => { - const routeLink = useRouteRef(buildRouteRef); - if (!row.fullName || !row.lastBuild?.number) { - return ( - <> - {row.fullName || - row.fullDisplayName || - row.displayName || - 'Unknown'} - - ); - } - - return ( - - {row.fullDisplayName} - - ); - }; - - return ; - }, - }, - { - title: 'Source', - field: 'lastBuild.source.branchName', - render: (row: Partial) => ( - <> - - - {row.lastBuild?.source?.branchName} - - - {row.lastBuild?.source?.commit?.hash} - - ), - }, - { - title: 'Status', - field: 'status', - render: (row: Partial) => { - return ( - - - - ); - }, - }, - { - title: 'Tests', - sorting: false, - render: (row: Partial) => { - return ( - <> - - {row.lastBuild?.tests && ( - - {row.lastBuild?.tests.passed} / {row.lastBuild?.tests.total}{' '} - passed - - - )} - - {!row.lastBuild?.tests && 'n/a'} - - - ); - }, - }, - { - title: 'Actions', - sorting: false, - render: (row: Partial) => { - const ActionWrapper = () => { - const [isLoadingRebuild, setIsLoadingRebuild] = useState(false); - const { allowed, loading } = useEntityPermission( - jenkinsExecutePermission, - ); - - const alertApi = useApi(alertApiRef); - - const onRebuild = async () => { - if (row.onRestartClick) { - setIsLoadingRebuild(true); - try { - await row.onRestartClick(); - alertApi.post({ - message: 'Jenkins re-build has successfully executed', - severity: 'success', - display: 'transient', - }); - } catch (e) { - alertApi.post({ - message: `Jenkins re-build has failed. Error: ${e.message}`, - severity: 'error', - }); - } finally { - setIsLoadingRebuild(false); - } - } - }; - - return ( -
- {row.lastBuild?.url && ( - - - - - - )} - {isLoadingRebuild && } - {!isLoadingRebuild && ( - - - - - - )} -
- ); - }; - return ; - }, - width: '10%', - }, -]; +import { columnFactories } from './columns'; +import { defaultCITableColumns } from './presets'; type Props = { loading: boolean; @@ -281,7 +74,9 @@ export const CITableView = ({ Projects } - columns={columns && columns.length !== 0 ? columns : ciTableColumns} + columns={ + columns && columns.length !== 0 ? columns : defaultCITableColumns + } /> ); }; @@ -303,3 +98,7 @@ export const CITable = ({ columns }: CITableProps) => { /> ); }; + +CITable.columns = columnFactories; + +CITable.defaultCITableColumns = defaultCITableColumns; diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx b/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx new file mode 100644 index 0000000000..6944f7cd92 --- /dev/null +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx @@ -0,0 +1,251 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Link, Progress, Table, TableColumn } from '@backstage/core-components'; +import { alertApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api'; +import { useEntityPermission } from '@backstage/plugin-catalog-react/alpha'; +import { Box, IconButton, Tooltip, Typography } from '@material-ui/core'; +import RetryIcon from '@material-ui/icons/Replay'; +import VisibilityIcon from '@material-ui/icons/Visibility'; +import { default as React, useState } from 'react'; +import { Project } from '../../../../api/JenkinsApi'; +import { buildRouteRef } from '../../../../plugin'; +import { JenkinsRunStatus } from '../Status'; +import { jenkinsExecutePermission } from '@backstage/plugin-jenkins-common'; + +const FailCount = ({ count }: { count: number }): JSX.Element | null => { + if (count !== 0) { + return <>{count} failed; + } + return null; +}; + +const SkippedCount = ({ count }: { count: number }): JSX.Element | null => { + if (count !== 0) { + return <>{count} skipped; + } + return null; +}; + +const FailSkippedWidget = ({ + skipped, + failed, +}: { + skipped: number; + failed: number; +}): JSX.Element | null => { + if (skipped === 0 && failed === 0) { + return null; + } + + if (skipped !== 0 && failed !== 0) { + return ( + <> + {' '} + (, ) + + ); + } + + if (failed !== 0) { + return ( + <> + {' '} + () + + ); + } + + if (skipped !== 0) { + return ( + <> + {' '} + () + + ); + } + + return null; +}; + +export const columnFactories = Object.freeze({ + createTimestampColumn(): TableColumn { + return { + title: 'Timestamp', + defaultSort: 'desc', + hidden: true, + field: 'lastBuild.timestamp', + }; + }, + + createBuildColumn(): TableColumn { + return { + title: 'Build', + field: 'fullName', + highlight: true, + render: (row: Partial) => { + const LinkWrapper = () => { + const routeLink = useRouteRef(buildRouteRef); + if (!row.fullName || !row.lastBuild?.number) { + return ( + <> + {row.fullName || + row.fullDisplayName || + row.displayName || + 'Unknown'} + + ); + } + + return ( + + {row.fullDisplayName} + + ); + }; + + return ; + }, + }; + }, + + createSourceColumn(): TableColumn { + return { + title: 'Source', + field: 'lastBuild.source.branchName', + render: (row: Partial) => ( + <> + + + {row.lastBuild?.source?.branchName} + + + + {row.lastBuild?.source?.commit?.hash} + + + ), + }; + }, + + createStatusColumn(): TableColumn { + return { + title: 'Status', + field: 'status', + render: (row: Partial) => { + return ( + + + + ); + }, + }; + }, + + createTestColumn(): TableColumn { + return { + title: 'Tests', + sorting: false, + render: (row: Partial) => { + return ( + <> + + {row.lastBuild?.tests && ( + + {row.lastBuild?.tests.passed} / {row.lastBuild?.tests.total}{' '} + passed + + + )} + + {!row.lastBuild?.tests && 'n/a'} + + + ); + }, + }; + }, + + createActionsColumn(): TableColumn { + return { + title: 'Actions', + sorting: false, + render: (row: Partial) => { + const ActionWrapper = () => { + const [isLoadingRebuild, setIsLoadingRebuild] = useState(false); + const { allowed, loading } = useEntityPermission( + jenkinsExecutePermission, + ); + + const alertApi = useApi(alertApiRef); + + const onRebuild = async () => { + if (row.onRestartClick) { + setIsLoadingRebuild(true); + try { + await row.onRestartClick(); + alertApi.post({ + message: 'Jenkins re-build has successfully executed', + severity: 'success', + display: 'transient', + }); + } catch (e) { + alertApi.post({ + message: `Jenkins re-build has failed. Error: ${e.message}`, + severity: 'error', + }); + } finally { + setIsLoadingRebuild(false); + } + } + }; + + return ( +
+ {row.lastBuild?.url && ( + + + + + + )} + {isLoadingRebuild && } + {!isLoadingRebuild && ( + + + + + + )} +
+ ); + }; + return ; + }, + width: '10%', + }; + }, +}); diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts b/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts index b5a7ac6337..3be4dae9ce 100644 --- a/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { CITable, ciTableColumns } from './CITable'; +export { CITable } from './CITable'; diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/presets.ts b/plugins/jenkins/src/components/BuildsPage/lib/CITable/presets.ts new file mode 100644 index 0000000000..7c0dda9970 --- /dev/null +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/presets.ts @@ -0,0 +1,28 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Project } from '../../../../api'; +import { columnFactories } from './columns'; +import { TableColumn } from '@backstage/core-components'; + +export const defaultCITableColumns: TableColumn[] = [ + columnFactories.createTimestampColumn(), + columnFactories.createSourceColumn(), + columnFactories.createBuildColumn(), + columnFactories.createTestColumn(), + columnFactories.createStatusColumn(), + columnFactories.createActionsColumn(), +]; diff --git a/plugins/jenkins/src/index.ts b/plugins/jenkins/src/index.ts index 3a17a879be..7562026bdc 100644 --- a/plugins/jenkins/src/index.ts +++ b/plugins/jenkins/src/index.ts @@ -34,4 +34,3 @@ export { } from './components/Router'; export { JENKINS_ANNOTATION, LEGACY_JENKINS_ANNOTATION } from './constants'; export * from './api'; -export { ciTableColumns } from './components/BuildsPage/lib/CITable'; From 18eaecffbffeefd4d8702e9c9c26eead99bf5a8f Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Thu, 21 Sep 2023 12:13:05 +0530 Subject: [PATCH 014/106] removed ununsed import Signed-off-by: Abhay-soni-developer --- .../jenkins/src/components/BuildsPage/lib/CITable/columns.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx b/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx index 6944f7cd92..733a60c1b2 100644 --- a/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Link, Progress, Table, TableColumn } from '@backstage/core-components'; +import { Link, Progress, TableColumn } from '@backstage/core-components'; import { alertApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api'; import { useEntityPermission } from '@backstage/plugin-catalog-react/alpha'; import { Box, IconButton, Tooltip, Typography } from '@material-ui/core'; From 66681d08f369e969b269e008475721fd83670e17 Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Thu, 21 Sep 2023 12:27:57 +0530 Subject: [PATCH 015/106] modified api report Signed-off-by: Abhay-soni-developer --- plugins/jenkins/api-report.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/plugins/jenkins/api-report.md b/plugins/jenkins/api-report.md index ca6feac780..c8df2edc1b 100644 --- a/plugins/jenkins/api-report.md +++ b/plugins/jenkins/api-report.md @@ -17,11 +17,6 @@ import { default as React_2 } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; import { TableColumn } from '@backstage/core-components'; -// Warning: (ae-missing-release-tag) "ciTableColumns" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -export const ciTableColumns: TableColumn[]; - // @public (undocumented) export const EntityJenkinsContent: (props: { columns?: TableColumn[] | undefined; From f0ee0bba59e6595de35fd5fbda8405c5927305f3 Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Thu, 21 Sep 2023 13:48:36 +0530 Subject: [PATCH 016/106] exported columns directly Signed-off-by: Abhay-soni-developer --- .../jenkins/src/components/BuildsPage/lib/CITable/index.ts | 2 ++ plugins/jenkins/src/index.ts | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts b/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts index 3be4dae9ce..cb00501bb9 100644 --- a/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/index.ts @@ -14,3 +14,5 @@ * limitations under the License. */ export { CITable } from './CITable'; +export { columnFactories as ciTableColumnFactories } from './columns'; +export { defaultCITableColumns } from './presets'; diff --git a/plugins/jenkins/src/index.ts b/plugins/jenkins/src/index.ts index 7562026bdc..d1f2b6d8c9 100644 --- a/plugins/jenkins/src/index.ts +++ b/plugins/jenkins/src/index.ts @@ -34,3 +34,7 @@ export { } from './components/Router'; export { JENKINS_ANNOTATION, LEGACY_JENKINS_ANNOTATION } from './constants'; export * from './api'; +export { + ciTableColumnFactories, + defaultCITableColumns, +} from './components/BuildsPage/lib/CITable'; From 32644250b4829fbf344dbe0b2fa79d2ffe5ad36e Mon Sep 17 00:00:00 2001 From: Abhay-soni-developer Date: Thu, 21 Sep 2023 14:47:01 +0530 Subject: [PATCH 017/106] api report modified Signed-off-by: Abhay-soni-developer --- plugins/jenkins/api-report.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/plugins/jenkins/api-report.md b/plugins/jenkins/api-report.md index c8df2edc1b..9ff6987fe0 100644 --- a/plugins/jenkins/api-report.md +++ b/plugins/jenkins/api-report.md @@ -17,6 +17,23 @@ import { default as React_2 } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; import { TableColumn } from '@backstage/core-components'; +// Warning: (ae-missing-release-tag) "columnFactories" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ciTableColumnFactories: Readonly<{ + createTimestampColumn(): TableColumn; + createBuildColumn(): TableColumn; + createSourceColumn(): TableColumn; + createStatusColumn(): TableColumn; + createTestColumn(): TableColumn; + createActionsColumn(): TableColumn; +}>; + +// Warning: (ae-missing-release-tag) "defaultCITableColumns" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const defaultCITableColumns: TableColumn[]; + // @public (undocumented) export const EntityJenkinsContent: (props: { columns?: TableColumn[] | undefined; From 2d8f7e82c1c2680c6e8608ca7dc277a7ffe1c766 Mon Sep 17 00:00:00 2001 From: Chris Date: Sat, 23 Sep 2023 15:17:47 +1000 Subject: [PATCH 018/106] auth-backend: migrate microsoft provider to separate module Signed-off-by: Chris Gemmell --- .changeset/swift-steaks-fetch.md | 6 + .../.eslintrc.js | 1 + .../README.md | 8 + .../api-report.md | 30 ++ .../catalog-info.yaml | 10 + .../config.d.ts | 34 ++ .../dev/index.ts | 26 + .../package.json | 45 ++ .../src/authenticator.ts | 74 +++ .../src/index.ts | 25 + .../src/module.test.ts | 81 ++++ .../src/module.ts | 48 ++ .../src/resolvers.ts | 77 +++ .../src/types.d.ts | 25 + plugins/auth-backend/config.d.ts | 12 - plugins/auth-backend/package.json | 1 + .../microsoft/__testUtils__/fake.test.ts | 90 ---- .../providers/microsoft/__testUtils__/fake.ts | 126 ----- .../src/providers/microsoft/provider.test.ts | 450 ------------------ .../src/providers/microsoft/provider.ts | 288 +---------- yarn.lock | 19 + 21 files changed, 523 insertions(+), 953 deletions(-) create mode 100644 .changeset/swift-steaks-fetch.md create mode 100644 plugins/auth-backend-module-microsoft-provider/.eslintrc.js create mode 100644 plugins/auth-backend-module-microsoft-provider/README.md create mode 100644 plugins/auth-backend-module-microsoft-provider/api-report.md create mode 100644 plugins/auth-backend-module-microsoft-provider/catalog-info.yaml create mode 100644 plugins/auth-backend-module-microsoft-provider/config.d.ts create mode 100644 plugins/auth-backend-module-microsoft-provider/dev/index.ts create mode 100644 plugins/auth-backend-module-microsoft-provider/package.json create mode 100644 plugins/auth-backend-module-microsoft-provider/src/authenticator.ts create mode 100644 plugins/auth-backend-module-microsoft-provider/src/index.ts create mode 100644 plugins/auth-backend-module-microsoft-provider/src/module.test.ts create mode 100644 plugins/auth-backend-module-microsoft-provider/src/module.ts create mode 100644 plugins/auth-backend-module-microsoft-provider/src/resolvers.ts create mode 100644 plugins/auth-backend-module-microsoft-provider/src/types.d.ts delete mode 100644 plugins/auth-backend/src/providers/microsoft/__testUtils__/fake.test.ts delete mode 100644 plugins/auth-backend/src/providers/microsoft/__testUtils__/fake.ts delete mode 100644 plugins/auth-backend/src/providers/microsoft/provider.test.ts diff --git a/.changeset/swift-steaks-fetch.md b/.changeset/swift-steaks-fetch.md new file mode 100644 index 0000000000..55a703ad59 --- /dev/null +++ b/.changeset/swift-steaks-fetch.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-auth-backend-module-microsoft-provider': minor +'@backstage/plugin-auth-backend': patch +--- + +Migrated the Microsoft auth provider to be implemented using the new `@backstage/plugin-auth-backend-module-microsoft-provider` module. diff --git a/plugins/auth-backend-module-microsoft-provider/.eslintrc.js b/plugins/auth-backend-module-microsoft-provider/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/auth-backend-module-microsoft-provider/README.md b/plugins/auth-backend-module-microsoft-provider/README.md new file mode 100644 index 0000000000..5154f1644b --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/README.md @@ -0,0 +1,8 @@ +# Auth Module: Microsoft Provider + +This module provides an Microsoft auth provider implementation for `@backstage/plugin-auth-backend`. + +## Links + +- [Repository](https://gitlab.com/backstage/backstage/tree/master/plugins/auth-backend-module-microsoft-provider) +- [Backstage Project Homepage](https://backstage.io) diff --git a/plugins/auth-backend-module-microsoft-provider/api-report.md b/plugins/auth-backend-module-microsoft-provider/api-report.md new file mode 100644 index 0000000000..010c680612 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/api-report.md @@ -0,0 +1,30 @@ +## API Report File for "@backstage/plugin-auth-backend-module-microsoft-provider" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; +import { OAuthAuthenticator } from '@backstage/plugin-auth-node'; +import { OAuthAuthenticatorResult } from '@backstage/plugin-auth-node'; +import { PassportOAuthAuthenticatorHelper } from '@backstage/plugin-auth-node'; +import { PassportProfile } from '@backstage/plugin-auth-node'; +import { SignInResolverFactory } from '@backstage/plugin-auth-node'; + +// @public (undocumented) +const authModuleMicrosoftProvider: () => BackendFeature; +export default authModuleMicrosoftProvider; + +// @public (undocumented) +export const microsoftAuthenticator: OAuthAuthenticator< + PassportOAuthAuthenticatorHelper, + PassportProfile +>; + +// @public +export namespace microsoftSignInResolvers { + const usernameMatchingUserEntityName: SignInResolverFactory< + OAuthAuthenticatorResult, + unknown + >; +} +``` diff --git a/plugins/auth-backend-module-microsoft-provider/catalog-info.yaml b/plugins/auth-backend-module-microsoft-provider/catalog-info.yaml new file mode 100644 index 0000000000..1742fc9ed6 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/catalog-info.yaml @@ -0,0 +1,10 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: backstage-plugin-auth-backend-module-microsoft-provider + title: '@backstage/plugin-auth-backend-module-microsoft-provider' + description: The microsoft-provider backend module for the auth plugin. +spec: + lifecycle: experimental + type: backstage-backend-plugin-module + owner: maintainers diff --git a/plugins/auth-backend-module-microsoft-provider/config.d.ts b/plugins/auth-backend-module-microsoft-provider/config.d.ts new file mode 100644 index 0000000000..5f1fa958e5 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/config.d.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export interface Config { + auth?: { + providers?: { + /** @visibility frontend */ + microsoft?: { + [authEnv: string]: { + clientId: string; + /** + * @visibility secret + */ + tenantId: string; + clientSecret: string; + callbackUrl?: string; + }; + }; + }; + }; +} diff --git a/plugins/auth-backend-module-microsoft-provider/dev/index.ts b/plugins/auth-backend-module-microsoft-provider/dev/index.ts new file mode 100644 index 0000000000..e701470af8 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/dev/index.ts @@ -0,0 +1,26 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createBackend } from '@backstage/backend-defaults'; +import authPlugin from '@backstage/plugin-auth-backend'; +import { authModuleMicrosoftProvider } from '../src'; + +const backend = createBackend(); + +backend.add(authPlugin); +backend.add(authModuleMicrosoftProvider); + +backend.start(); diff --git a/plugins/auth-backend-module-microsoft-provider/package.json b/plugins/auth-backend-module-microsoft-provider/package.json new file mode 100644 index 0000000000..8ba7630972 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/package.json @@ -0,0 +1,45 @@ +{ + "name": "@backstage/plugin-auth-backend-module-microsoft-provider", + "description": "The microsoft-provider backend module for the auth plugin.", + "version": "0.0.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "backend-plugin-module" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "express": "^4.18.2", + "passport": "^0.6.0", + "passport-microsoft": "^1.0.0" + }, + "devDependencies": { + "@backstage/backend-defaults": "workspace:^", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/plugin-auth-backend": "workspace:^", + "supertest": "^6.3.3" + }, + "configSchema": "config.d.ts", + "files": [ + "dist", + "config.d.ts" + ] +} diff --git a/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts b/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts new file mode 100644 index 0000000000..bf2d7fcaba --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts @@ -0,0 +1,74 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Strategy as MicrosoftStrategy } from 'passport-microsoft'; +import { + createOAuthAuthenticator, + PassportOAuthAuthenticatorHelper, + PassportOAuthDoneCallback, + PassportProfile, +} from '@backstage/plugin-auth-node'; + +/** @public */ +export const microsoftAuthenticator = createOAuthAuthenticator({ + defaultProfileTransform: + PassportOAuthAuthenticatorHelper.defaultProfileTransform, + initialize({ callbackUrl, config }) { + const clientId = config.getString('clientId'); + const clientSecret = config.getString('clientSecret'); + const tenantId = config.getString('tenantId'); + + return PassportOAuthAuthenticatorHelper.from( + new MicrosoftStrategy( + { + clientID: clientId, + clientSecret: clientSecret, + callbackURL: callbackUrl, + tenant: tenantId, + scope: ['user.read'], + }, + ( + accessToken: string, + refreshToken: string, + params: any, + fullProfile: PassportProfile, + done: PassportOAuthDoneCallback, + ) => { + done( + undefined, + { fullProfile, params, accessToken }, + { refreshToken }, + ); + }, + ), + ); + }, + + async start(input, helper) { + return helper.start(input, { + accessType: 'offline', + prompt: 'consent', + }); + }, + + async authenticate(input, helper) { + return helper.authenticate(input); + }, + + async refresh(input, helper) { + return helper.refresh(input); + }, +}); diff --git a/plugins/auth-backend-module-microsoft-provider/src/index.ts b/plugins/auth-backend-module-microsoft-provider/src/index.ts new file mode 100644 index 0000000000..ae4fbf5926 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/src/index.ts @@ -0,0 +1,25 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * The gitlab-provider backend module for the auth plugin. + * + * @packageDocumentation + */ + +export { microsoftAuthenticator } from './authenticator'; +export { authModuleMicrosoftProvider } from './module'; +export { microsoftSignInResolvers } from './resolvers'; diff --git a/plugins/auth-backend-module-microsoft-provider/src/module.test.ts b/plugins/auth-backend-module-microsoft-provider/src/module.test.ts new file mode 100644 index 0000000000..ee7ed8f7f3 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/src/module.test.ts @@ -0,0 +1,81 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; +import authPlugin from '@backstage/plugin-auth-backend'; +import { decodeOAuthState } from '@backstage/plugin-auth-node'; +import request from 'supertest'; +import { authModuleMicrosoftProvider } from './module'; + +describe('authModuleMicrosoftProvider', () => { + it('should start', async () => { + const { server } = await startTestBackend({ + features: [ + authPlugin, + authModuleMicrosoftProvider, + mockServices.rootConfig.factory({ + data: { + app: { + baseUrl: 'http://localhost:3000', + }, + auth: { + providers: { + microsoft: { + development: { + clientId: 'my-client-id', + clientSecret: 'my-client-secret', + tenantId: 'my-tenant-id', + }, + }, + }, + }, + }, + }), + ], + }); + + const agent = request.agent(server); + + const res = await agent.get('/api/auth/microsoft/start?env=development'); + + expect(res.status).toEqual(302); + + const nonceCookie = agent.jar.getCookie('microsoft-nonce', { + domain: 'localhost', + path: '/api/auth/microsoft/handler', + script: false, + secure: false, + }); + expect(nonceCookie).toBeDefined(); + + const startUrl = new URL(res.get('location')); + expect(startUrl.origin).toBe('https://login.microsoftonline.com'); + expect(startUrl.pathname).toBe('/my-tenant-id/oauth2/v2.0/authorize'); + expect(Object.fromEntries(startUrl.searchParams)).toEqual({ + prompt: 'consent', + response_type: 'code', + scope: 'user.read', + client_id: 'my-client-id', + redirect_uri: `http://localhost:${server.port()}/api/auth/microsoft/handler/frame`, + state: expect.any(String), + }); + + expect(decodeOAuthState(startUrl.searchParams.get('state')!)).toEqual({ + env: 'development', + nonce: decodeURIComponent(nonceCookie.value), + }); + }); +}); diff --git a/plugins/auth-backend-module-microsoft-provider/src/module.ts b/plugins/auth-backend-module-microsoft-provider/src/module.ts new file mode 100644 index 0000000000..4d5c5968a2 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/src/module.ts @@ -0,0 +1,48 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createBackendModule } from '@backstage/backend-plugin-api'; +import { + authProvidersExtensionPoint, + commonSignInResolvers, + createOAuthProviderFactory, +} from '@backstage/plugin-auth-node'; +import { microsoftAuthenticator } from './authenticator'; +import { microsoftSignInResolvers } from './resolvers'; + +/** @public */ +export const authModuleMicrosoftProvider = createBackendModule({ + pluginId: 'auth', + moduleId: 'microsoft-provider', + register(reg) { + reg.registerInit({ + deps: { + providers: authProvidersExtensionPoint, + }, + async init({ providers }) { + providers.registerProvider({ + providerId: 'microsoft', + factory: createOAuthProviderFactory({ + authenticator: microsoftAuthenticator, + signInResolverFactories: { + ...microsoftSignInResolvers, + ...commonSignInResolvers, + }, + }), + }); + }, + }); + }, +}); diff --git a/plugins/auth-backend-module-microsoft-provider/src/resolvers.ts b/plugins/auth-backend-module-microsoft-provider/src/resolvers.ts new file mode 100644 index 0000000000..e50340ca4e --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/src/resolvers.ts @@ -0,0 +1,77 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + createSignInResolverFactory, + OAuthAuthenticatorResult, + PassportProfile, + SignInInfo, +} from '@backstage/plugin-auth-node'; + +/** + * Available sign-in resolvers for the Microsoft auth provider. + * + * @public + */ +export namespace microsoftSignInResolvers { + /** + * Looks up the user by matching their Microsoft username to the entity name. + */ + export const commonByEmailLocalPartResolver = createSignInResolverFactory({ + create() { + return async ( + info: SignInInfo>, + ctx, + ) => { + const { profile } = info; + + if (!profile.email) { + throw new Error( + 'Login failed, user profile does not contain an email', + ); + } + const [localPart] = profile.email.split('@'); + + return ctx.signInWithCatalogUser({ + entityRef: { name: localPart }, + }); + }; + }, + }); + + export const commonByEmailResolver = createSignInResolverFactory({ + create() { + return async ( + info: SignInInfo>, + ctx, + ) => { + const { profile } = info; + + if (!profile.email) { + throw new Error( + 'Login failed, user profile does not contain an email', + ); + } + + return ctx.signInWithCatalogUser({ + filter: { + 'spec.profile.email': profile.email, + }, + }); + }; + }, + }); +} diff --git a/plugins/auth-backend-module-microsoft-provider/src/types.d.ts b/plugins/auth-backend-module-microsoft-provider/src/types.d.ts new file mode 100644 index 0000000000..ca6ae9ac40 --- /dev/null +++ b/plugins/auth-backend-module-microsoft-provider/src/types.d.ts @@ -0,0 +1,25 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +declare module 'passport-microsoft' { + import { Request } from 'express'; + import { StrategyCreated } from 'passport'; + + export class Strategy { + constructor(options: any, verify: any); + authenticate(this: StrategyCreated, req: Request, options?: any): any; + } +} diff --git a/plugins/auth-backend/config.d.ts b/plugins/auth-backend/config.d.ts index e719468ac1..f8953e1588 100644 --- a/plugins/auth-backend/config.d.ts +++ b/plugins/auth-backend/config.d.ts @@ -179,18 +179,6 @@ export interface Config { }; }; /** @visibility frontend */ - microsoft?: { - [authEnv: string]: { - clientId: string; - /** - * @visibility secret - */ - clientSecret: string; - tenantId: string; - callbackUrl?: string; - }; - }; - /** @visibility frontend */ onelogin?: { [authEnv: string]: { clientId: string; diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 98c5e0bd8a..c6d4a2b59c 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -42,6 +42,7 @@ "@backstage/plugin-auth-backend-module-github-provider": "workspace:^", "@backstage/plugin-auth-backend-module-gitlab-provider": "workspace:^", "@backstage/plugin-auth-backend-module-google-provider": "workspace:^", + "@backstage/plugin-auth-backend-module-microsoft-provider": "workspace:^", "@backstage/plugin-auth-backend-module-oauth2-provider": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", "@backstage/plugin-catalog-node": "workspace:^", diff --git a/plugins/auth-backend/src/providers/microsoft/__testUtils__/fake.test.ts b/plugins/auth-backend/src/providers/microsoft/__testUtils__/fake.test.ts deleted file mode 100644 index dee37f0f6b..0000000000 --- a/plugins/auth-backend/src/providers/microsoft/__testUtils__/fake.test.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2023 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { FakeMicrosoftAPI } from './fake'; - -describe('FakeMicrosoftAPI', () => { - const api = new FakeMicrosoftAPI(); - - describe('#token', () => { - it('exchanges auth codes', () => { - const { access_token } = api.token( - new URLSearchParams({ - grant_type: 'authorization_code', - code: api.generateAuthCode('User.Read'), - }), - ); - - expect(api.tokenHasScope(access_token, 'User.Read')).toBe(true); - }); - - it('supports scopes for the first requested audience only', () => { - const { access_token } = api.token( - new URLSearchParams({ - grant_type: 'authorization_code', - code: api.generateAuthCode('someaudience/somescope User.Read'), - }), - ); - - expect(api.tokenHasScope(access_token, 'User.Read')).toBe(false); - }); - - it('special openid scopes do not count towards the 1-audience limit', () => { - const { access_token } = api.token( - new URLSearchParams({ - grant_type: 'authorization_code', - code: api.generateAuthCode('openid offline_access User.Read'), - }), - ); - - expect(api.tokenHasScope(access_token, 'User.Read')).toBe(true); - }); - - it('refreshes tokens', () => { - const { access_token } = api.token( - new URLSearchParams({ - grant_type: 'refresh_token', - refresh_token: api.generateRefreshToken( - 'email openid profile User.Read', - ), - }), - ); - - expect( - api.tokenHasScope(access_token, 'email openid profile User.Read'), - ).toBe(true); - }); - it('requires `openid` scope for ID token', () => { - const { id_token } = api.token( - new URLSearchParams({ - grant_type: 'authorization_code', - code: api.generateAuthCode('User.Read'), - }), - ); - - expect(id_token).toBeUndefined(); - }); - it('requires `offline_access` scope for refresh token', () => { - const { refresh_token } = api.token( - new URLSearchParams({ - grant_type: 'authorization_code', - code: api.generateAuthCode('User.Read'), - }), - ); - - expect(refresh_token).toBeUndefined(); - }); - }); -}); diff --git a/plugins/auth-backend/src/providers/microsoft/__testUtils__/fake.ts b/plugins/auth-backend/src/providers/microsoft/__testUtils__/fake.ts deleted file mode 100644 index 9b3ca09c57..0000000000 --- a/plugins/auth-backend/src/providers/microsoft/__testUtils__/fake.ts +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2023 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { decodeJwt } from 'jose'; - -type Claims = { aud: string; scp: string }; - -export class FakeMicrosoftAPI { - generateAccessToken(scope: string): string { - return this.tokenWithClaims(this.allClaimsForScope(scope)).access_token; - } - generateAuthCode(scope: string): string { - return this.encodeClaims(this.allClaimsForScope(scope)); - } - generateRefreshToken(scope: string): string { - return this.encodeClaims(this.allClaimsForScope(scope)); - } - token(formData: URLSearchParams): { - access_token: string; - scope: string; - refresh_token?: string; - id_token?: string; - } { - const scopeParameter = formData.get('scope'); - const claims = - (scopeParameter && this.allClaimsForScope(scopeParameter)) ?? - formData.get('grant_type') === 'refresh_token' - ? this.decodeClaims(formData.get('refresh_token')!) - : this.decodeClaims(formData.get('code')!); - return { - ...this.tokenWithClaims(claims), - ...(this.hasScope(claims, 'offline_access') && { - refresh_token: this.encodeClaims(claims), - }), - ...(this.hasScope(claims, 'openid') && { - id_token: 'header.e30K.microsoft', - }), - }; - } - tokenHasScope(token: string, scope: string): boolean { - const { aud, scp } = decodeJwt(token); - return this.hasScope({ aud: aud as string, scp: scp as string }, scope); - } - private tokenWithClaims(claims: Claims): { - access_token: string; - scope: string; - } { - const filteredClaims = { - ...claims, - scp: claims.scp - .split(' ') - .filter(s => s !== 'offline_access') - .join(' '), - }; - return { - access_token: `header.${Buffer.from( - JSON.stringify(filteredClaims), - ).toString('base64')}.signature`, - scope: this.scopeFromClaims(filteredClaims), - }; - } - private allClaimsForScope(scope: string): Claims { - const scopes = scope.split(' ').map(this.parseScope); - const firstAudience = scopes - .map(({ aud }) => aud) - .find(aud => aud !== 'openid'); - return { - aud: firstAudience ?? '00000003-0000-0000-c000-000000000000', - scp: scopes - .filter(({ aud }) => aud === 'openid' || aud === firstAudience) - .map(({ scp }) => scp) - .join(' '), - }; - } - // auth codes and refresh tokens in this fake system are base64-encoded JSON - // strings of claims - private encodeClaims(claims: Claims): string { - return Buffer.from(JSON.stringify(claims)).toString('base64'); - } - private decodeClaims(encoded: string): Claims { - return JSON.parse(Buffer.from(encoded, 'base64').toString()); - } - private hasScope(claims: Claims, scope: string): boolean { - return this.scopeFromClaims(claims).includes(scope); - } - private parseScope(s: string): Claims { - if (s.includes('/')) { - const [aud, scp] = s.split('/'); - return { aud, scp }; - } - switch (s) { - case 'email': - case 'openid': - case 'offline_access': - case 'profile': { - return { aud: 'openid', scp: s }; - } - default: - return { aud: '00000003-0000-0000-c000-000000000000', scp: s }; - } - } - private scopeFromClaims(claims: Claims): string { - return claims.scp - .split(' ') - .map(this.parseScope) - .map(({ aud, scp }) => - aud === 'openid' || - claims.aud === '00000003-0000-0000-c000-000000000000' - ? scp - : `${claims.aud}/${scp}`, - ) - .join(' '); - } -} diff --git a/plugins/auth-backend/src/providers/microsoft/provider.test.ts b/plugins/auth-backend/src/providers/microsoft/provider.test.ts deleted file mode 100644 index 7bbfd085d6..0000000000 --- a/plugins/auth-backend/src/providers/microsoft/provider.test.ts +++ /dev/null @@ -1,450 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { microsoft } from './provider'; -import { getVoidLogger } from '@backstage/backend-common'; -import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; -import { rest } from 'msw'; -import { setupServer } from 'msw/node'; -import { AuthProviderRouteHandlers, AuthResolverContext } from '../types'; -import express from 'express'; -import crypto from 'crypto'; -import { FakeMicrosoftAPI } from './__testUtils__/fake'; - -describe('MicrosoftAuthProvider', () => { - const nonce = 'AAAAAAAAAAAAAAAAAAAAAA=='; // 16 bytes of zeros in base64 - const state = Buffer.from( - `nonce=${encodeURIComponent(nonce)}&env=development`, - ).toString('hex'); - const mockBackstageToken = `header.${Buffer.from( - JSON.stringify({ sub: 'user:default/mock' }), - 'utf8', - ).toString('base64')}.backstage`; - - const server = setupServer(); - const microsoftApi = new FakeMicrosoftAPI(); - let provider: AuthProviderRouteHandlers; - let response: jest.Mocked; - - setupRequestMockHandlers(server); - - beforeEach(() => { - provider = microsoft.create({ - signIn: { - resolver: microsoft.resolvers.emailMatchingUserEntityAnnotation(), - }, - })({ - providerId: 'microsoft', - baseUrl: 'http://backstage.test/api/auth', - appUrl: 'http://backstage.test', - isOriginAllowed: _ => true, - globalConfig: { - baseUrl: 'http://backstage.test/api/auth', - appUrl: 'http://backstage.test', - isOriginAllowed: _ => true, - }, - config: new ConfigReader({ - development: { - tenantId: 'tenantId', - clientId: 'clientId', - clientSecret: 'clientSecret', - }, - }), - logger: getVoidLogger(), - resolverContext: { - issueToken: jest.fn(), - findCatalogUser: jest.fn(), - signInWithCatalogUser: async _ => ({ - token: mockBackstageToken, - }), - } as AuthResolverContext, - }) as AuthProviderRouteHandlers; - - server.use( - rest.post( - 'https://login.microsoftonline.com/tenantId/oauth2/v2.0/token', - async (req, res, ctx) => { - return res( - ctx.json({ - ...microsoftApi.token(new URLSearchParams(await req.text())), - token_type: 'Bearer', - expires_in: 123, - ext_expires_in: 123, - }), - ); - }, - ), - rest.get('https://graph.microsoft.com/v1.0/me/', (req, res, ctx) => { - if ( - !microsoftApi.tokenHasScope( - req.headers.get('authorization')!.replace(/^Bearer /, ''), - 'User.Read', - ) - ) { - return res(ctx.status(403)); - } - return res( - ctx.json({ - id: 'conrad', - displayName: 'Conrad', - surname: 'Ribas', - givenName: 'Francisco', - mail: 'conrad@example.com', - }), - ); - }), - rest.get( - 'https://graph.microsoft.com/v1.0/me/photos/*', - async (req, res, ctx) => { - if ( - !microsoftApi.tokenHasScope( - req.headers.get('authorization')!.replace(/^Bearer /, ''), - 'User.Read', - ) - ) { - return res(ctx.status(403)); - } - const imageBuffer = new Uint8Array([104, 111, 119, 100, 121]).buffer; - return res( - ctx.set('Content-Length', imageBuffer.byteLength.toString()), - ctx.set('Content-Type', 'image/jpeg'), - ctx.body(imageBuffer), - ); - }, - ), - ); - response = { - cookie: jest.fn(), - end: jest.fn(), - json: jest.fn(), - setHeader: jest.fn(), - status: jest.fn(), - } as unknown as jest.Mocked; - response.status.mockReturnValue(response); - }); - - describe('#start', () => { - const randomBytes = jest.spyOn( - crypto, - 'randomBytes', - ) as unknown as jest.MockedFunction<(size: number) => Buffer>; - - afterEach(() => { - randomBytes.mockRestore(); - }); - - it('redirects to authorize URL', async () => { - randomBytes.mockReturnValue(Buffer.from(nonce, 'base64')); - - await provider.start( - { - query: { - env: 'development', - scope: 'email openid profile User.Read', - }, - } as unknown as express.Request, - response, - ); - - expect(response.setHeader).toHaveBeenCalledWith( - 'Location', - 'https://login.microsoftonline.com/tenantId/oauth2/v2.0/authorize' + - '?response_type=code' + - `&redirect_uri=${encodeURIComponent( - 'http://backstage.test/api/auth/microsoft/handler/frame', - )}` + - `&scope=${encodeURIComponent('email openid profile User.Read')}` + - `&state=${state}` + - '&client_id=clientId', - ); - }); - }); - - describe('#handle', () => { - it('returns provider info and profile with photo data', async () => { - await provider.frameHandler( - { - query: { - env: 'development', - code: microsoftApi.generateAuthCode( - 'email openid profile User.Read', - ), - state, - }, - cookies: { - 'microsoft-nonce': nonce, - }, - } as unknown as express.Request, - response, - ); - - expect(response.end).toHaveBeenCalledWith( - expect.stringContaining( - encodeURIComponent( - JSON.stringify({ - type: 'authorization_response', - response: { - providerInfo: { - accessToken: microsoftApi.generateAccessToken( - 'email openid profile User.Read', - ), - scope: 'email openid profile User.Read', - expiresInSeconds: 123, - idToken: 'header.e30K.microsoft', - }, - profile: { - email: 'conrad@example.com', - picture: 'data:image/jpeg;base64,aG93ZHk=', - displayName: 'Conrad', - }, - backstageIdentity: { - token: mockBackstageToken, - identity: { - type: 'user', - userEntityRef: 'user:default/mock', - ownershipEntityRefs: [], - }, - }, - }, - }), - ), - ), - ); - }); - - it('returns access token for non-microsoft graph scope', async () => { - await provider.frameHandler( - { - query: { - env: 'development', - code: microsoftApi.generateAuthCode('aks-audience/user.read'), - state, - }, - cookies: { - 'microsoft-nonce': nonce, - }, - } as unknown as express.Request, - response, - ); - - expect(response.end).toHaveBeenCalledWith( - expect.stringContaining( - encodeURIComponent( - JSON.stringify({ - type: 'authorization_response', - response: { - providerInfo: { - accessToken: microsoftApi.generateAccessToken( - 'aks-audience/user.read', - ), - scope: 'aks-audience/user.read', - expiresInSeconds: 123, - }, - profile: {}, - }, - }), - ), - ), - ); - }); - - it('sets refresh token', async () => { - await provider.frameHandler( - { - query: { - env: 'development', - code: microsoftApi.generateAuthCode( - 'email offline_access openid profile User.Read', - ), - state, - }, - cookies: { - 'microsoft-nonce': nonce, - }, - } as unknown as express.Request, - response, - ); - - expect(response.cookie).toHaveBeenCalledWith( - 'microsoft-refresh-token', - microsoftApi.generateRefreshToken( - 'email offline_access openid profile User.Read', - ), - { - domain: 'backstage.test', - httpOnly: true, - maxAge: 86400000000, - path: '/api/auth/microsoft', - sameSite: 'lax', - secure: false, - }, - ); - }); - - it('omits photo data when fetching it fails', async () => { - server.use( - rest.get('https://graph.microsoft.com/v1.0/me/photos/*', (_, res) => - res.networkError('remote hung up'), - ), - ); - - await provider.frameHandler( - { - query: { - env: 'development', - code: microsoftApi.generateAuthCode( - 'email openid profile User.Read', - ), - state, - }, - cookies: { - 'microsoft-nonce': nonce, - }, - } as unknown as express.Request, - response, - ); - - expect(response.end).toHaveBeenCalledWith( - expect.stringContaining( - encodeURIComponent( - JSON.stringify({ - type: 'authorization_response', - response: { - providerInfo: { - accessToken: microsoftApi.generateAccessToken( - 'email openid profile User.Read', - ), - scope: 'email openid profile User.Read', - expiresInSeconds: 123, - idToken: 'header.e30K.microsoft', - }, - profile: { - email: 'conrad@example.com', - displayName: 'Conrad', - }, - backstageIdentity: { - token: mockBackstageToken, - identity: { - type: 'user', - userEntityRef: 'user:default/mock', - ownershipEntityRefs: [], - }, - }, - }, - }), - ), - ), - ); - }); - }); - - describe('#refresh', () => { - it('returns provider info and profile with photo data', async () => { - await provider.refresh!( - { - query: { - env: 'development', - scope: 'email openid profile User.Read', - }, - header: jest.fn(_ => 'XMLHttpRequest'), - cookies: { - 'microsoft-refresh-token': microsoftApi.generateRefreshToken( - 'email openid profile User.Read', - ), - }, - get: jest.fn(), - } as unknown as express.Request, - response, - ); - - expect(response.json).toHaveBeenCalledWith( - expect.objectContaining({ - providerInfo: { - accessToken: microsoftApi.generateAccessToken( - 'email openid profile User.Read', - ), - scope: 'email openid profile User.Read', - expiresInSeconds: 123, - idToken: 'header.e30K.microsoft', - }, - profile: { - email: 'conrad@example.com', - picture: 'data:image/jpeg;base64,aG93ZHk=', - displayName: 'Conrad', - }, - }), - ); - }); - - it('returns access token for non-microsoft graph scope', async () => { - await provider.refresh!( - { - query: { - env: 'development', - scope: 'aks-audience/user.read', - }, - header: jest.fn(_ => 'XMLHttpRequest'), - cookies: { - 'microsoft-refresh-token': microsoftApi.generateRefreshToken( - 'aks-audience/user.read', - ), - }, - get: jest.fn(), - } as unknown as express.Request, - response, - ); - - expect(response.json).toHaveBeenCalledWith({ - providerInfo: { - accessToken: microsoftApi.generateAccessToken( - 'aks-audience/user.read', - ), - expiresInSeconds: 123, - scope: 'aks-audience/user.read', - }, - profile: {}, - }); - }); - - it('returns backstage identity', async () => { - await provider.refresh!( - { - query: { - env: 'development', - scope: 'email openid profile User.Read', - }, - header: jest.fn(_ => 'XMLHttpRequest'), - cookies: { - 'microsoft-refresh-token': microsoftApi.generateRefreshToken( - 'email openid profile User.Read', - ), - }, - get: jest.fn(), - } as unknown as express.Request, - response, - ); - - expect(response.json).toHaveBeenCalledWith( - expect.objectContaining({ - backstageIdentity: expect.objectContaining({ - token: mockBackstageToken, - }), - }), - ); - }); - }); -}); diff --git a/plugins/auth-backend/src/providers/microsoft/provider.ts b/plugins/auth-backend/src/providers/microsoft/provider.ts index 8fc8459f10..439db03311 100644 --- a/plugins/auth-backend/src/providers/microsoft/provider.ts +++ b/plugins/auth-backend/src/providers/microsoft/provider.ts @@ -14,218 +14,18 @@ * limitations under the License. */ -import express from 'express'; -import passport from 'passport'; -import { Strategy as MicrosoftStrategy } from 'passport-microsoft'; -import { - encodeState, - OAuthAdapter, - OAuthEnvironmentHandler, - OAuthHandlers, - OAuthProviderOptions, - OAuthRefreshRequest, - OAuthResponse, - OAuthResult, - OAuthStartRequest, -} from '../../lib/oauth'; -import { - executeFetchUserProfileStrategy, - executeFrameHandlerStrategy, - executeRedirectStrategy, - executeRefreshTokenStrategy, - makeProfileInfo, - PassportDoneCallback, -} from '../../lib/passport'; -import { - AuthHandler, - OAuthStartResponse, - SignInResolver, - AuthResolverContext, -} from '../types'; +import { SignInResolver, AuthHandler } from '../types'; +import { OAuthResult } from '../../lib/oauth'; import { createAuthProviderIntegration } from '../createAuthProviderIntegration'; +import { createOAuthProviderFactory } from '@backstage/plugin-auth-node'; import { - commonByEmailLocalPartResolver, - commonByEmailResolver, -} from '../resolvers'; -import { LoggerService } from '@backstage/backend-plugin-api'; -import fetch from 'node-fetch'; -import { decodeJwt } from 'jose'; -import { Profile as PassportProfile } from 'passport'; -import { BACKSTAGE_SESSION_EXPIRATION } from '../../lib/session'; - -type PrivateInfo = { - refreshToken: string; -}; - -type Options = OAuthProviderOptions & { - signInResolver?: SignInResolver; - authHandler: AuthHandler; - logger: LoggerService; - resolverContext: AuthResolverContext; - authorizationUrl?: string; - tokenUrl?: string; -}; - -export class MicrosoftAuthProvider implements OAuthHandlers { - private readonly _strategy: MicrosoftStrategy; - private readonly signInResolver?: SignInResolver; - private readonly authHandler: AuthHandler; - private readonly logger: LoggerService; - private readonly resolverContext: AuthResolverContext; - - constructor(options: Options) { - this.signInResolver = options.signInResolver; - this.authHandler = options.authHandler; - this.logger = options.logger; - this.resolverContext = options.resolverContext; - - this._strategy = new MicrosoftStrategy( - { - clientID: options.clientId, - clientSecret: options.clientSecret, - callbackURL: options.callbackUrl, - authorizationURL: options.authorizationUrl, - tokenURL: options.tokenUrl, - passReqToCallback: false, - skipUserProfile: ( - accessToken: string, - done: (err: unknown, skip: boolean) => void, - ) => { - done(null, this.skipUserProfile(accessToken)); - }, - }, - ( - accessToken: any, - refreshToken: any, - params: any, - fullProfile: passport.Profile, - done: PassportDoneCallback, - ) => { - done(undefined, { fullProfile, accessToken, params }, { refreshToken }); - }, - ); - } - - private skipUserProfile = (accessToken: string): boolean => { - const { aud, scp } = decodeJwt(accessToken); - const hasGraphReadScope = - aud === '00000003-0000-0000-c000-000000000000' && - (scp as string) - .split(' ') - .map(s => s.toLowerCase()) - .includes('user.read'); - return !hasGraphReadScope; - }; - - async start(req: OAuthStartRequest): Promise { - return await executeRedirectStrategy(req, this._strategy, { - scope: req.scope, - state: encodeState(req.state), - }); - } - - async handler(req: express.Request) { - const { result, privateInfo } = await executeFrameHandlerStrategy< - OAuthResult, - PrivateInfo - >(req, this._strategy); - - return { - response: await this.handleResult(result), - refreshToken: privateInfo.refreshToken, - }; - } - - async refresh(req: OAuthRefreshRequest) { - const { accessToken, refreshToken, params } = - await executeRefreshTokenStrategy( - this._strategy, - req.refreshToken, - req.scope, - ); - - return { - response: await this.handleResult({ - params, - accessToken, - ...(!this.skipUserProfile(accessToken) && { - fullProfile: await executeFetchUserProfileStrategy( - this._strategy, - accessToken, - ), - }), - }), - refreshToken, - }; - } - - private async handleResult(result: { - fullProfile?: PassportProfile; - params: { - id_token?: string; - scope: string; - expires_in: number; - }; - accessToken: string; - refreshToken?: string; - }): Promise { - let profile = {}; - if (result.fullProfile) { - const photo = await this.getUserPhoto(result.accessToken); - result.fullProfile.photos = photo ? [{ value: photo }] : undefined; - ({ profile } = await this.authHandler( - result as OAuthResult, - this.resolverContext, - )); - } - - const expiresInSeconds = - result.params.expires_in === undefined - ? BACKSTAGE_SESSION_EXPIRATION - : Math.min(result.params.expires_in, BACKSTAGE_SESSION_EXPIRATION); - - return { - providerInfo: { - accessToken: result.accessToken, - scope: result.params.scope, - expiresInSeconds, - ...{ idToken: result.params.id_token }, - }, - profile, - ...(result.fullProfile && - this.signInResolver && { - backstageIdentity: await this.signInResolver( - { result: result as OAuthResult, profile }, - this.resolverContext, - ), - }), - }; - } - - private async getUserPhoto(accessToken: string): Promise { - try { - const res = await fetch( - 'https://graph.microsoft.com/v1.0/me/photos/48x48/$value', - { - headers: { - Authorization: `Bearer ${accessToken}`, - }, - }, - ); - const data = await res.buffer(); - - return `data:image/jpeg;base64,${data.toString('base64')}`; - } catch (error) { - this.logger.warn( - `Could not retrieve user profile photo from Microsoft Graph API: ${error}`, - ); - return undefined; - } - } -} + adaptLegacyOAuthHandler, + adaptLegacyOAuthSignInResolver, +} from '../../lib/legacy'; +import { microsoftAuthenticator } from '@backstage/plugin-auth-backend-module-microsoft-provider'; /** - * Auth provider integration for Microsoft auth + * Auth provider integration for GitLab auth * * @public */ @@ -241,75 +41,13 @@ export const microsoft = createAuthProviderIntegration({ * Configure sign-in for this provider, without it the provider can not be used to sign users in. */ signIn?: { - /** - * Maps an auth result to a Backstage identity for the user. - */ resolver: SignInResolver; }; }) { - return ({ providerId, globalConfig, config, logger, resolverContext }) => - OAuthEnvironmentHandler.mapConfig(config, envConfig => { - const clientId = envConfig.getString('clientId'); - const clientSecret = envConfig.getString('clientSecret'); - const tenantId = envConfig.getString('tenantId'); - - const customCallbackUrl = envConfig.getOptionalString('callbackUrl'); - const callbackUrl = - customCallbackUrl || - `${globalConfig.baseUrl}/${providerId}/handler/frame`; - const authorizationUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize`; - const tokenUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`; - - const authHandler: AuthHandler = options?.authHandler - ? options.authHandler - : async ({ fullProfile, params }) => ({ - profile: makeProfileInfo(fullProfile ?? {}, params.id_token), - }); - - const provider = new MicrosoftAuthProvider({ - clientId, - clientSecret, - callbackUrl, - authorizationUrl, - tokenUrl, - authHandler, - signInResolver: options?.signIn?.resolver, - logger, - resolverContext, - }); - - return OAuthAdapter.fromConfig(globalConfig, provider, { - providerId, - callbackUrl, - }); - }); - }, - resolvers: { - /** - * Looks up the user by matching their email local part to the entity name. - */ - emailLocalPartMatchingUserEntityName: () => commonByEmailLocalPartResolver, - /** - * Looks up the user by matching their email to the entity email. - */ - emailMatchingUserEntityProfileEmail: () => commonByEmailResolver, - /** - * Looks up the user by matching their email to the `microsoft.com/email` annotation. - */ - emailMatchingUserEntityAnnotation(): SignInResolver { - return async (info, ctx) => { - const { profile } = info; - - if (!profile.email) { - throw new Error('Microsoft profile contained no email'); - } - - return ctx.signInWithCatalogUser({ - annotations: { - 'microsoft.com/email': profile.email, - }, - }); - }; - }, + return createOAuthProviderFactory({ + authenticator: microsoftAuthenticator, + profileTransform: adaptLegacyOAuthHandler(options?.authHandler), + signInResolver: adaptLegacyOAuthSignInResolver(options?.signIn?.resolver), + }); }, }); diff --git a/yarn.lock b/yarn.lock index 9217e59ffb..39c9fffc96 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4780,6 +4780,24 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-auth-backend-module-microsoft-provider@workspace:^, @backstage/plugin-auth-backend-module-microsoft-provider@workspace:plugins/auth-backend-module-microsoft-provider": + version: 0.0.0-use.local + resolution: "@backstage/plugin-auth-backend-module-microsoft-provider@workspace:plugins/auth-backend-module-microsoft-provider" + dependencies: + "@backstage/backend-common": "workspace:^" + "@backstage/backend-defaults": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/plugin-auth-backend": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + express: ^4.18.2 + passport: ^0.6.0 + passport-microsoft: ^1.0.0 + supertest: ^6.3.3 + languageName: unknown + linkType: soft + "@backstage/plugin-auth-backend-module-oauth2-provider@workspace:^, @backstage/plugin-auth-backend-module-oauth2-provider@workspace:plugins/auth-backend-module-oauth2-provider": version: 0.0.0-use.local resolution: "@backstage/plugin-auth-backend-module-oauth2-provider@workspace:plugins/auth-backend-module-oauth2-provider" @@ -4815,6 +4833,7 @@ __metadata: "@backstage/plugin-auth-backend-module-github-provider": "workspace:^" "@backstage/plugin-auth-backend-module-gitlab-provider": "workspace:^" "@backstage/plugin-auth-backend-module-google-provider": "workspace:^" + "@backstage/plugin-auth-backend-module-microsoft-provider": "workspace:^" "@backstage/plugin-auth-backend-module-oauth2-provider": "workspace:^" "@backstage/plugin-auth-node": "workspace:^" "@backstage/plugin-catalog-node": "workspace:^" From 2dfeb4b61265a831df403dbef9e8955a68233d17 Mon Sep 17 00:00:00 2001 From: Chris Gemmell Date: Sat, 23 Sep 2023 16:34:56 +1000 Subject: [PATCH 019/106] fixed Signed-off-by: Chris Gemmell --- .changeset/spotty-donkeys-give.md | 6 ++++ .../src/resolvers.ts | 34 +++---------------- .../src/providers/microsoft/provider.ts | 19 +++++++++-- 3 files changed, 28 insertions(+), 31 deletions(-) create mode 100644 .changeset/spotty-donkeys-give.md diff --git a/.changeset/spotty-donkeys-give.md b/.changeset/spotty-donkeys-give.md new file mode 100644 index 0000000000..92fa44fa37 --- /dev/null +++ b/.changeset/spotty-donkeys-give.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-auth-backend-module-microsoft-provider': minor +'@backstage/plugin-auth-backend': patch +--- + +Moved existing emailMatchingUserEntityAnnotation into `@backstage/plugin-auth-backend-module-microsoft-provider` and adapted SignInResolvers correctly" diff --git a/plugins/auth-backend-module-microsoft-provider/src/resolvers.ts b/plugins/auth-backend-module-microsoft-provider/src/resolvers.ts index e50340ca4e..7ef4a57175 100644 --- a/plugins/auth-backend-module-microsoft-provider/src/resolvers.ts +++ b/plugins/auth-backend-module-microsoft-provider/src/resolvers.ts @@ -15,8 +15,8 @@ */ import { - createSignInResolverFactory, OAuthAuthenticatorResult, + createSignInResolverFactory, PassportProfile, SignInInfo, } from '@backstage/plugin-auth-node'; @@ -30,7 +30,7 @@ export namespace microsoftSignInResolvers { /** * Looks up the user by matching their Microsoft username to the entity name. */ - export const commonByEmailLocalPartResolver = createSignInResolverFactory({ + export const emailMatchingUserEntityAnnotation = createSignInResolverFactory({ create() { return async ( info: SignInInfo>, @@ -39,36 +39,12 @@ export namespace microsoftSignInResolvers { const { profile } = info; if (!profile.email) { - throw new Error( - 'Login failed, user profile does not contain an email', - ); - } - const [localPart] = profile.email.split('@'); - - return ctx.signInWithCatalogUser({ - entityRef: { name: localPart }, - }); - }; - }, - }); - - export const commonByEmailResolver = createSignInResolverFactory({ - create() { - return async ( - info: SignInInfo>, - ctx, - ) => { - const { profile } = info; - - if (!profile.email) { - throw new Error( - 'Login failed, user profile does not contain an email', - ); + throw new Error('Microsoft profile contained no email'); } return ctx.signInWithCatalogUser({ - filter: { - 'spec.profile.email': profile.email, + annotations: { + 'microsoft.com/email': profile.email, }, }); }; diff --git a/plugins/auth-backend/src/providers/microsoft/provider.ts b/plugins/auth-backend/src/providers/microsoft/provider.ts index 439db03311..8947c7432b 100644 --- a/plugins/auth-backend/src/providers/microsoft/provider.ts +++ b/plugins/auth-backend/src/providers/microsoft/provider.ts @@ -17,12 +17,19 @@ import { SignInResolver, AuthHandler } from '../types'; import { OAuthResult } from '../../lib/oauth'; import { createAuthProviderIntegration } from '../createAuthProviderIntegration'; -import { createOAuthProviderFactory } from '@backstage/plugin-auth-node'; +import { + commonSignInResolvers, + createOAuthProviderFactory, +} from '@backstage/plugin-auth-node'; import { adaptLegacyOAuthHandler, adaptLegacyOAuthSignInResolver, + adaptOAuthSignInResolverToLegacy, } from '../../lib/legacy'; -import { microsoftAuthenticator } from '@backstage/plugin-auth-backend-module-microsoft-provider'; +import { + microsoftAuthenticator, + microsoftSignInResolvers, +} from '@backstage/plugin-auth-backend-module-microsoft-provider'; /** * Auth provider integration for GitLab auth @@ -50,4 +57,12 @@ export const microsoft = createAuthProviderIntegration({ signInResolver: adaptLegacyOAuthSignInResolver(options?.signIn?.resolver), }); }, + resolvers: adaptOAuthSignInResolverToLegacy({ + emailLocalPartMatchingUserEntityName: + commonSignInResolvers.emailLocalPartMatchingUserEntityName(), + emailMatchingUserEntityProfileEmail: + commonSignInResolvers.emailMatchingUserEntityProfileEmail(), + emailMatchingUserEntityAnnotation: + microsoftSignInResolvers.emailMatchingUserEntityAnnotation(), + }), }); From fae0735ee03778f9995e717f2c31d0ca4183b23b Mon Sep 17 00:00:00 2001 From: Matteo Silvestri Date: Mon, 25 Sep 2023 11:59:01 +0200 Subject: [PATCH 020/106] fix: use publicEmail in GitLab client client was using commitEmail that is visible only for self-managed GitLab admins. publicEmail is visible, but only if the user explicitly enable the corresponding setting on GitLab. Signed-off-by: Matteo Silvestri --- plugins/catalog-backend-module-gitlab/src/lib/client.ts | 4 ++-- plugins/catalog-backend-module-gitlab/src/lib/types.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/catalog-backend-module-gitlab/src/lib/client.ts b/plugins/catalog-backend-module-gitlab/src/lib/client.ts index 79ae328ce2..0b69ded359 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/client.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/client.ts @@ -205,7 +205,7 @@ export class GitLabClient { user { id username - commitEmail + publicEmail name state webUrl @@ -240,7 +240,7 @@ export class GitLabClient { const formattedUserResponse = { id: Number(userItem.user.id.replace(/^gid:\/\/gitlab\/User\//, '')), username: userItem.user.username, - email: userItem.user.commitEmail, + email: userItem.user.publicEmail, name: userItem.user.name, state: userItem.user.state, web_url: userItem.user.webUrl, diff --git a/plugins/catalog-backend-module-gitlab/src/lib/types.ts b/plugins/catalog-backend-module-gitlab/src/lib/types.ts index a339ac57e4..5a4082eec3 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/types.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/types.ts @@ -64,7 +64,7 @@ export type GitLabGroupMembersResponse = { user: { id: string; username: string; - commitEmail: string; + publicEmail: string; name: string; state: string; webUrl: string; From 4f70fdfc93aa4e081b97bcb4eb6cda88f8493ce0 Mon Sep 17 00:00:00 2001 From: Matteo Silvestri Date: Mon, 25 Sep 2023 16:17:19 +0200 Subject: [PATCH 021/106] fix gitlab client tests and add changeset Signed-off-by: Matteo Silvestri --- .changeset/flat-rules-rush.md | 7 +++++++ .../catalog-backend-module-gitlab/src/lib/client.test.ts | 8 ++++---- .../providers/GitlabOrgDiscoveryEntityProvider.test.ts | 4 ++-- 3 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 .changeset/flat-rules-rush.md diff --git a/.changeset/flat-rules-rush.md b/.changeset/flat-rules-rush.md new file mode 100644 index 0000000000..f9f5354595 --- /dev/null +++ b/.changeset/flat-rules-rush.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-backend-module-gitlab': patch +--- + +fix: use publicEmail in GitLab client + +client was using commitEmail that is visible only for self-managed GitLab admins. publicEmail is visible, but only if the user explicitly enable the corresponding setting on GitLab. diff --git a/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts b/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts index dda30fd86a..2bb1f713b5 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts @@ -413,7 +413,7 @@ describe('GitLabClient', () => { user: { id: 'gid://gitlab/User/1', username: 'user1', - commitEmail: 'user1@example.com', + publicEmail: 'user1@example.com', name: 'user1', state: 'active', webUrl: 'user1.com', @@ -517,7 +517,7 @@ describe('GitLabClient', () => { user: { id: 'gid://gitlab/User/1', username: 'user1', - commitEmail: 'user1@example.com', + publicEmail: 'user1@example.com', name: 'user1', state: 'active', webUrl: 'user1.com', @@ -530,7 +530,7 @@ describe('GitLabClient', () => { user: { id: 'gid://gitlab/User/2', username: 'user2', - commitEmail: 'user2@example.com', + publicEmail: 'user2@example.com', name: 'user2', state: 'active', webUrl: 'user2.com', @@ -764,7 +764,7 @@ describe('GitLabClient', () => { user: { id: 'gid://gitlab/User/1', username: 'user1', - commitEmail: 'user1@example.com', + publicEmail: 'user1@example.com', name: 'user1', state: 'active', webUrl: 'user1.com', diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts index ce00510140..1b1357c1bf 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts @@ -560,7 +560,7 @@ describe('GitlabOrgDiscoveryEntityProvider', () => { user: { id: 'gid://gitlab/User/12', username: 'testuser1', - commitEmail: 'testuser1@example.com', + publicEmail: 'testuser1@example.com', state: 'active', name: 'Test User 1', webUrl: 'https://gitlab.com/testuser1', @@ -571,7 +571,7 @@ describe('GitlabOrgDiscoveryEntityProvider', () => { user: { id: 'gid://gitlab/User/34', username: 'testuser2', - commitEmail: 'testuser2@example.com', + publicEmail: 'testuser2@example.com', state: 'active', name: 'Test User 2', webUrl: 'https://gitlab.com/testuser2', From 630ba351c1a0490fa1766ccd2cd6635171b89798 Mon Sep 17 00:00:00 2001 From: Chris Gemmell Date: Tue, 26 Sep 2023 08:47:24 +1000 Subject: [PATCH 022/106] Update .changeset/spotty-donkeys-give.md Co-authored-by: Johan Haals Signed-off-by: Chris Gemmell --- .changeset/spotty-donkeys-give.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/spotty-donkeys-give.md b/.changeset/spotty-donkeys-give.md index 92fa44fa37..fd035869ce 100644 --- a/.changeset/spotty-donkeys-give.md +++ b/.changeset/spotty-donkeys-give.md @@ -3,4 +3,4 @@ '@backstage/plugin-auth-backend': patch --- -Moved existing emailMatchingUserEntityAnnotation into `@backstage/plugin-auth-backend-module-microsoft-provider` and adapted SignInResolvers correctly" +Moved existing `emailMatchingUserEntityAnnotation` into `@backstage/plugin-auth-backend-module-microsoft-provider` and adapted SignInResolvers correctly From d26dc8ee43f7fe944cfc78d7bb33b8f3e6b834cf Mon Sep 17 00:00:00 2001 From: Chris Gemmell Date: Tue, 26 Sep 2023 08:47:41 +1000 Subject: [PATCH 023/106] Update .changeset/swift-steaks-fetch.md Co-authored-by: Johan Haals Signed-off-by: Chris Gemmell --- .changeset/swift-steaks-fetch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/swift-steaks-fetch.md b/.changeset/swift-steaks-fetch.md index 55a703ad59..80b23e7658 100644 --- a/.changeset/swift-steaks-fetch.md +++ b/.changeset/swift-steaks-fetch.md @@ -3,4 +3,4 @@ '@backstage/plugin-auth-backend': patch --- -Migrated the Microsoft auth provider to be implemented using the new `@backstage/plugin-auth-backend-module-microsoft-provider` module. +Migrated the Microsoft auth provider to new `@backstage/plugin-auth-backend-module-microsoft-provider` module package. From 930ac236d80f0221be5f0029aa18ec8c94726310 Mon Sep 17 00:00:00 2001 From: enaysaa Date: Thu, 14 Sep 2023 15:13:18 +0100 Subject: [PATCH 024/106] Migrate jenkins-backend plugin to new backend system Signed-off-by: enaysaa --- .changeset/olive-geese-rest.md | 5 ++ packages/backend-next/package.json | 1 + packages/backend-next/src/index.ts | 1 + plugins/jenkins-backend/README.md | 14 +++++ plugins/jenkins-backend/api-report.md | 5 ++ plugins/jenkins-backend/package.json | 2 + plugins/jenkins-backend/src/index.ts | 1 + plugins/jenkins-backend/src/plugin.test.tsx | 22 +++++++ plugins/jenkins-backend/src/plugin.ts | 64 +++++++++++++++++++++ yarn.lock | 3 + 10 files changed, 118 insertions(+) create mode 100644 .changeset/olive-geese-rest.md create mode 100644 plugins/jenkins-backend/src/plugin.test.tsx create mode 100644 plugins/jenkins-backend/src/plugin.ts diff --git a/.changeset/olive-geese-rest.md b/.changeset/olive-geese-rest.md new file mode 100644 index 0000000000..547fb828d8 --- /dev/null +++ b/.changeset/olive-geese-rest.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-jenkins-backend': patch +--- + +Added support for the [new backend system](https://backstage.io/docs/backend-system/) diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 9e2dc78bfd..bb5c20a32a 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -38,6 +38,7 @@ "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^", "@backstage/plugin-devtools-backend": "workspace:^", "@backstage/plugin-entity-feedback-backend": "workspace:^", + "@backstage/plugin-jenkins-backend": "workspace:^", "@backstage/plugin-kubernetes-backend": "workspace:^", "@backstage/plugin-lighthouse-backend": "workspace:^", "@backstage/plugin-linguist-backend": "workspace:^", diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index 9fda69635b..bc95dccc05 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -29,6 +29,7 @@ backend.add( backend.add(import('@backstage/plugin-catalog-backend/alpha')); backend.add(import('@backstage/plugin-devtools-backend')); backend.add(import('@backstage/plugin-entity-feedback-backend')); +backend.add(import('@backstage/plugin-jenkins-backend')); backend.add(import('@backstage/plugin-kubernetes-backend/alpha')); backend.add(import('@backstage/plugin-lighthouse-backend')); backend.add(import('@backstage/plugin-linguist-backend')); diff --git a/plugins/jenkins-backend/README.md b/plugins/jenkins-backend/README.md index 133b9f42e2..d6f8fa5472 100644 --- a/plugins/jenkins-backend/README.md +++ b/plugins/jenkins-backend/README.md @@ -8,6 +8,20 @@ This is the backend half of the 2 Jenkins plugins and is responsible for: - finding the appropriate job(s) on that instance for an entity - connecting to Jenkins and gathering data to present to the frontend +## New Backend System + +The jenkins backend plugin has support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: + +In your `packages/backend/src/index.ts` make the following changes: + +```diff + import { createBackend } from '@backstage/backend-defaults'; + const backend = createBackend(); + // ... other feature additions + backend.add(import('@backstage/plugin-jenkins-backend')); + backend.start(); +``` + ## Integrating into a backstage instance This plugin needs to be added to an existing backstage instance. diff --git a/plugins/jenkins-backend/api-report.md b/plugins/jenkins-backend/api-report.md index fd1365547d..28dafa70bf 100644 --- a/plugins/jenkins-backend/api-report.md +++ b/plugins/jenkins-backend/api-report.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { CompoundEntityRef } from '@backstage/catalog-model'; import { Config } from '@backstage/config'; @@ -79,6 +80,10 @@ export interface JenkinsInstanceConfig { username: string; } +// @public +const jenkinsPlugin: () => BackendFeature; +export default jenkinsPlugin; + // @public (undocumented) export interface RouterOptions { // (undocumented) diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 717d94733d..5cfad5de19 100644 --- a/plugins/jenkins-backend/package.json +++ b/plugins/jenkins-backend/package.json @@ -31,11 +31,13 @@ }, "dependencies": { "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/catalog-client": "workspace:^", "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", "@backstage/errors": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-catalog-node": "workspace:^", "@backstage/plugin-jenkins-common": "workspace:^", "@backstage/plugin-permission-common": "workspace:^", "@backstage/plugin-permission-node": "workspace:^", diff --git a/plugins/jenkins-backend/src/index.ts b/plugins/jenkins-backend/src/index.ts index c55335c52d..4d01566a60 100644 --- a/plugins/jenkins-backend/src/index.ts +++ b/plugins/jenkins-backend/src/index.ts @@ -21,3 +21,4 @@ */ export * from './service'; +export { jenkinsPlugin as default } from './plugin'; diff --git a/plugins/jenkins-backend/src/plugin.test.tsx b/plugins/jenkins-backend/src/plugin.test.tsx new file mode 100644 index 0000000000..22ef6de078 --- /dev/null +++ b/plugins/jenkins-backend/src/plugin.test.tsx @@ -0,0 +1,22 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { jenkinsPlugin } from './plugin'; + +describe('jenkins', () => { + it('should export the jenkins plugin', () => { + expect(jenkinsPlugin).toBeDefined(); + }); +}); diff --git a/plugins/jenkins-backend/src/plugin.ts b/plugins/jenkins-backend/src/plugin.ts new file mode 100644 index 0000000000..8da26d62aa --- /dev/null +++ b/plugins/jenkins-backend/src/plugin.ts @@ -0,0 +1,64 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { loggerToWinstonLogger } from '@backstage/backend-common'; +import { + createBackendPlugin, + coreServices, +} from '@backstage/backend-plugin-api'; +import { DefaultJenkinsInfoProvider } from './service/jenkinsInfoProvider'; +import { createRouter } from './service/router'; +import { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha'; + +/** + * Jenkins backend plugin + * + * @public + */ +export const jenkinsPlugin = createBackendPlugin({ + pluginId: 'jenkins', + register(env) { + env.registerInit({ + deps: { + logger: coreServices.logger, + permissions: coreServices.permissions, + httpRouter: coreServices.httpRouter, + config: coreServices.rootConfig, + catalogClient: catalogServiceRef, + }, + async init({ logger, permissions, httpRouter, config, catalogClient }) { + const winstonLogger = loggerToWinstonLogger(logger); + const jenkinsInfoProvider = DefaultJenkinsInfoProvider.fromConfig({ + config, + catalog: catalogClient, + }); + httpRouter.use( + await createRouter({ + permissions, + /** + * Logger for logging purposes + */ + logger: winstonLogger, + /** + * Info provider to be able to get all necessary information for the APIs + */ + jenkinsInfoProvider, + }), + ); + }, + }); + }, +}); diff --git a/yarn.lock b/yarn.lock index c1887a4ea0..e988afffbc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7455,12 +7455,14 @@ __metadata: resolution: "@backstage/plugin-jenkins-backend@workspace:plugins/jenkins-backend" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/catalog-client": "workspace:^" "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" "@backstage/errors": "workspace:^" "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-catalog-node": "workspace:^" "@backstage/plugin-jenkins-common": "workspace:^" "@backstage/plugin-permission-common": "workspace:^" "@backstage/plugin-permission-node": "workspace:^" @@ -25515,6 +25517,7 @@ __metadata: "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^" "@backstage/plugin-devtools-backend": "workspace:^" "@backstage/plugin-entity-feedback-backend": "workspace:^" + "@backstage/plugin-jenkins-backend": "workspace:^" "@backstage/plugin-kubernetes-backend": "workspace:^" "@backstage/plugin-lighthouse-backend": "workspace:^" "@backstage/plugin-linguist-backend": "workspace:^" From 17bf9fce0b1dddcf5a1e81647497b65db6aa4581 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Fri, 15 Sep 2023 14:03:22 -0500 Subject: [PATCH 025/106] docs: updated aroung other plugin types Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- docs/assets/plugins/create-plugin_types.png | Bin 0 -> 143712 bytes .../{ => plugins}/my-plugin_screenshot.png | Bin .../software-catalog/extending-the-model.md | 3 +++ docs/plugins/create-a-plugin.md | 14 +++++++++++--- docs/plugins/index.md | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 docs/assets/plugins/create-plugin_types.png rename docs/assets/{ => plugins}/my-plugin_screenshot.png (100%) diff --git a/docs/assets/plugins/create-plugin_types.png b/docs/assets/plugins/create-plugin_types.png new file mode 100644 index 0000000000000000000000000000000000000000..d10ae04442f6d0421578e977d83dc31cdb8a0476 GIT binary patch literal 143712 zcmZ^J1C%DqvTkGA?rGb$ZQHhO>u+OP)8@1>)10<#+qSL0{buj8?>*<;cVE@2m5~wg zWhA01sG2&e-z(s3?(= zi=&0LojC}IR8)#4l$PoUMvkruaXko_iil&d6ao=>D29*^id`s~5EU`S7j)j%pWCYg zU>t7hVm06{IdWiuU~-^`7KTTc{Ozt;^<&EI?J6;s68G8|yxgaejL$&8GQBCQ1tP(v0?|31 zij)V^1V2&``We39^LSn8+ur?li2lpjf-ehNd@aZfQpEx})C@85YJ*XjM^2~|s7j+TENR=dZbme>!bL_P|U`VMtv{!O_+*l}c=*(~()dNM2pYHuP$ee?6` z8T662FIX=5TLOZYnH8cIs%T_Szmo~o3;}2FyR#u5tO2;O`#?tXQ#W7d+SeT9RTw0g zC72(fx?e-d6LSmjAb9cve$rrK3m$?s1!WR=Azwl*lMzg@Gbd7xp!%3zDY6fM8=sq_i=nJS6roDtp?#;}_*ZJqbz{s2zZ0pK_ETwZ2NU;3SIb`TM1}2mI9l+#Q9p3B!Nf(a7B$A>0h#y zvQ1-{=7#x3wQu+c%MiQNsKy!|#32w}&|r{~{jLOqPVUa`;6fk%%AK8?{nVYfkpX9( z4wHl+K>Vw#E5WxP(Oih#28_+`Nd8CX>DP1lklih!d>KVjBRjWnpq=DwI|{5{O1e>( zd!C!Y6u05PgrOrrn2At|f^V2!?3yRZjZo7eEkab35K{wFjOdp^I6^LrFqfflx>1}^ zvq3R?%$@MpgUUU{rri_WIsllQ{80#lnhOdAx?=Gw1 zselnUD%YZ14Ds)e;=;GwR&aud*puc$%8i`r#@w~Nx$xrO3^p7f-0lE!g2fuiIgtU8 zxk6_`>3YdTsPlt=r#O9g!nrJF=;b9z_^DV=?$gteE;CN7K+Zr`MS4k*L)7?{5am^h zERlF5VPEnav9okok;*L2tir7GEV>Hj3AlEworDK@MB>~qi3?0iaC?Yfj9=JW@>@oM zcufgV$%M*p6m8UG6hr3g0cvsdZAO`VL-C99*I(T8EAtEUJg3&D`lq<;?CfytjtyMw z`Kxpd3pT#<&kJAsypF(!F$1YvGz%0 zP+rnVE6gg?t!k5Pl5f&fl$_FM)OM^jDBe`=Q1F-AlE^L0E$z|*TCLSl&h>4t`|!yh8{xre0a6^H24hM1#vlXB17(R7k$uu?GaJo>PTl!DxN0X=-dlD z{7#FWaV`wb4o(5w>o#7i*TsEPh@XeMJBdfN0|%4PKTuFeWhB^Qy)I6-M_nu3Iu0dV z;oP%M7LOlCH)iy=J2&4;pf*gChxpVSW{cRdrxL< z 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≪VaVX<__hEDB`v{R3((zsB7ZP;Yy5Ey> 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 Pu$zX8_RDG|>o5Nc{4@l~ literal 0 HcmV?d00001 diff --git a/docs/assets/my-plugin_screenshot.png b/docs/assets/plugins/my-plugin_screenshot.png similarity index 100% rename from docs/assets/my-plugin_screenshot.png rename to docs/assets/plugins/my-plugin_screenshot.png diff --git a/docs/features/software-catalog/extending-the-model.md b/docs/features/software-catalog/extending-the-model.md index 52ef565837..06140bdf75 100644 --- a/docs/features/software-catalog/extending-the-model.md +++ b/docs/features/software-catalog/extending-the-model.md @@ -447,6 +447,9 @@ want to have an isomorphic package that houses these types. Within the Backstage main repo the package naming pattern of `-common` is used for isomorphic packages, and you may choose to adopt this pattern as well. +You can generate an isomorphic plugin by running:`yarn new --select plugin-common` +or you can run `yarn new` and then select "plugin-common" from the list of options + There's at this point no existing templates for generating isomorphic plugins using the `@backstage/cli`. Perhaps the simplest wat to get started right now is to copy the contents of one of the existing packages in the main repository, diff --git a/docs/plugins/create-a-plugin.md b/docs/plugins/create-a-plugin.md index cbd789c757..cc8c2f1296 100644 --- a/docs/plugins/create-a-plugin.md +++ b/docs/plugins/create-a-plugin.md @@ -8,7 +8,7 @@ A Backstage Plugin adds functionality to Backstage. ## Create a Plugin -To create a new plugin, make sure you've run `yarn install` and installed +To create a new frontend plugin, make sure you've run `yarn install` and installed dependencies, then run the following on your command line (a shortcut to invoking the [`backstage-cli new --select plugin`](../local-dev/cli-commands.md#new)) @@ -18,7 +18,7 @@ from the root of your project. yarn new --select plugin ``` -![](../assets/getting-started/create-plugin_output.png) +![Example of output when creating a new plugin](../assets/getting-started/create-plugin_output.png) This will create a new Backstage Plugin based on the ID that was provided. It will be built and added to the Backstage App automatically. @@ -27,7 +27,7 @@ will be built and added to the Backstage App automatically. > should be able to see the default page for your new plugin directly by > navigating to `http://localhost:3000/my-plugin`. -![](../assets/my-plugin_screenshot.png) +![Example of new plugin running in browser](../assets/plugins/my-plugin_screenshot.png) You can also serve the plugin in isolation by running `yarn start` in the plugin directory. Or by using the yarn workspace command, for example: @@ -39,3 +39,11 @@ yarn workspace @backstage/plugin-my-plugin start # Also supports --check This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. It is only meant for local development, and the setup for it can be found inside the plugin's `dev/` directory. + +### Other Plugin Types + +There are other plugin types that you can chose from. To be able to select the type +when you create a new plugin just run: `yarn new`. You'll then be asked what type of +plugin you wish to create like this: + +![List of available plugin types to pick from](../assets/plugins/create-plugin_types.png) diff --git a/docs/plugins/index.md b/docs/plugins/index.md index a582556311..755c1b8a7d 100644 --- a/docs/plugins/index.md +++ b/docs/plugins/index.md @@ -12,7 +12,7 @@ development tool as a plugin in Backstage. By following strong [design guidelines](../dls/design.md) we ensure the overall user experience stays consistent between plugins. -![plugin](../assets/my-plugin_screenshot.png) +![plugin](../assets/plugins/my-plugin_screenshot.png) ## Creating a plugin From 9aa26f8c61542fa133e3da99158afb91a204bbb6 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Mon, 18 Sep 2023 13:34:03 -0500 Subject: [PATCH 026/106] Corrected image Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- docs/assets/plugins/create-plugin_types.png | Bin 143712 -> 145056 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/assets/plugins/create-plugin_types.png b/docs/assets/plugins/create-plugin_types.png index d10ae04442f6d0421578e977d83dc31cdb8a0476..ea45d1cdd130fa704d42517ec9e5fce0a4701bd3 100644 GIT binary patch delta 140862 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 {SLer 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

Zzn76}CRc17PB^4NO+cy@!qsGBtzPYTu-_Wn z7KLAPFnR#rUEPUVH!2(HyzM%+RT)nC-Lr4%Uvm(<99rjzxt>U;m>i)sIUV3Qqb#`F zx0|t|Cp;9V@T7^g#i{SSn5^?MNrByR8l@Xp|i_YN>zLUWm|Asqtm5HN_K#Jk`k8Vb^t;{?D zf5aMG`v*6BC#979gPXBImLBCV+l-a=4fp@D&5VE9<`o&0ynk#n4!CPgBKiA^+?un` zGx~RpuBOZNDcW{xy#tn}E*d!~k`;hqKTN>Q=>{PMP za5~ccIlWo4XNPP8HI_zx;6Z%0c8x_)(|7y3jnpZx1CPINwlBdT8w_-K9+{l=Ej^O2 zs2!<|QDs`3?hole5db)oE*<2umvO34Sx)&0a72Ls1l`AHG65kMndW7$TcvXL2|l@% z>y%u9w719z6o9AiFBahZGegkTF@nIC2wmHLqM**nMX~HwZ#1ER+f8y%Z5-qJ3Vl*`%n|wMJ4jojR_7KdCJvTP67tb& z-|vV?(gjdJwQk0v30ZAn@+bCj`hJA2GqYu;a(-8bcKpgvubXA~MIGc3&a?* z6T2vB`1DJ{MS^N-5@+!XHU(dj4>q! zB6;qkLG1OueW!54+izGqAtt~gx{*u9|taw+u(B5{nDBrQef{ihZXmL_~D zQV~OyR(?Lt%TCOhk=gOM!U!&%FE23=EhpDA*dv_%i2`oVcQwx9`AC9hWUL3ldzYR> zp+il`X&I=U9m4OSHK#)#MG|dBKKz)`NQ_59!((}CTEiG#w{(t4lJ<7d>n5*WI>fBl z$&p?AdlKknRRJ1~f7ymIP7;ge*i6d>e~$H zK1I2_7t^!6vejttv1G=mt>N_Piy@GK>H?ycZ9QKPXjrsSDW-GkhmUESomu3h&bc{h z4wUQtK@>Y~4Ha;ldSyw4-(hnT;JBAPA;vHz_<%Wk|L;+t5W+O7Y-0xaD5?+ZR&luF&Te7ax&tz2>jafE&W; zhxCWwpSQ8RzZn{r+}l7`Qd*rtLF=D;?~c)&+YbR3rzQh;)`7`Cl$AH!qG?;Ni;IFO zYz$(GVDUaD1cq@I5$jAk00V*j347>MEebeUfZ5rA{n9VXDJnvF>(8AYfiA7nY}KA_ zy<2NC5Aj`HG43|Hv&G9V61FB^0&O5p{3D#_4HdOR#WVi%)yKp1-MoJgxfI}6>}DMq zmZuQyyRmggd93u=9(^zW%pyj8bh3E4Z)n(mE1zJhMkcUne-{4LvZvVQ8i{u_?=mhM z|Dw4*FiNeP@{doRsU?57U}8UQ=zGlXh4B~;olH`}FeD?fcsX1BquhPCC1eGd*-23^@Y z1h??Tc1qZTP=z};9B>+`??q)v=t#zsata-a)JgIc(26908q;^gXayz9^|V>8c03M` zy50!hT6&zx#bzA1C~ZY~65e`5oRN$-B3Fo>%1tePWxhH877Y`_V!2@(69@=~JW|sG z&n{|SB_Ft;Cy|D6!<{TO{0IwQ-fzKf*P|3v3L-DJijBM1fN@?3Ckp0Hx>;LwB0IqH z_!l^iqZYw9bXKLDj&OR`Yho)fpdPI|+Z z9X#^_%?G~;K{SJ}-4v5-xG3CMsfo!nFaKM1nGv(QrKLlZicQ*0=52myY7Ikqp-t^L zoCsGOJiM+yqgBT4AkUcn6G%m){hg*n!EjLElod)TlY!))Ln&0s`gTDmQ;{}E^QaBT z+I@|E38s@Q1?bQ=(GZS5wp}L&TrcCLVCn7PX0_J8UDl429&}~i*)`V_pCXu!?T`AY z{e+<`O7D@>zWsHY;Jp~f!ArLpOQxakH&zTmBR>KQ$369*KohrHjsYP~geAF^hL>0X zxxg=4=r!c#RR-^)mXF!lcIIVTcLZkk&tcG+nFaUVg&YqRzcjYFskxUN+T02qZ-0cB zC`>N2xIoGEUm+hzXH!f1u{n%vznQpQlbbkS#$?Cx<7ulP9hMlM5G1&mz}jAZZ0DsE zan2y)VNI_`SW;{!2O2PNf*Ox1vFMIW;ssNCz3LoX90ZOm6aD>K8%_qf$ln;cBgaFGvi~5>ehHz6S_Iu)veAfKxW3R0+?6&!!D(yODOP^=|y?52i1HRky zC@5KwL9v=+)8Q12-HQ)q^gwEVVtQ%`;q5xhNl!k~k6)gQ3CE(gclWdbi15})A1t?= zy74AWKEDejf>V1rjilBmk_K%L<1K6BpX_g3CpJSLNzDTo<27A&)&Ib5J<2v5`=RU| z&aLYdP5H;d%6F*xN8(-%oR#^FuG*@(`-zZe&0SpB7AELsNFLZ@lt6Dr7!Ez!0fiVD z%~(b79Ue|1IR8mr4Kn9E-{nPZFfMdR?(X+lsJxF5u)eeAqcKu=$@*C|!EsH4YFNf_ zPg!8Q45ObjqFL>O zuPef|*50Ra>l@u&H33F@wt@k@awlYqGzM*(-aP{}jI<+m7nmOtg&j0W{p?hIk^Oc8 zrTmJmyFi2FKhqvV5<50BI49&gN~llsDB_v;<^*!KD&=}Vu;u5j+j_o37kturu}~;v zcM~C>G@}Y(nntV%w4hatHW|!A=zj02kOg0Tlu85LE5OiTa@f|2{}DLYhEShfWJBwl z&#Cs`R5hs`HF;+dBwa1{#bypi zh|}zqGtlx!!LZG*QsOy$h)HBZ2I;teHbPR_Gd#!;bsYac+?)5f^*)c_j<-X!rvekW zyaZ|QvrZVS-6wimMyBslo9)vx$&N}hB)>e&PrE$&ek5EbR;{$9!R?|R4dqkQW!98} z1UDNazWFvegdO{O3*dD2c6;}y0sZ}4J&--%$79+o`}~~)V@_5zE}4EUYDA-AAb{74%i#A*49n1c%bnOt-2LYc|u z5YILwNd0-?*7O9@wVgA9lKQyhRI@G?(MP(#yA=$0D|Z>@nf(}6&K|wg=0IYG9H5vm z$R`4qu&Ut&5=b7E8J-WD|AMET?TW0xH1LJDE?$0=x9hZhKzVw5-Zr$A*#{l4(5B%5 zoYCQGNY1sNUu<0ki46W;1u_+B0-r9H;!+r)E#tvk@1b{mGk;kdAQga^NxO zsT81ISmKi`?^~-t6Vh7K=t=GitjmsvqNv*7w{~&Cv8|ilMq@CMt%`d(y>Y@e4@iFo zYf{hs5cwGXn=2+cm2n%{!$9rs@o=_tTS^9%(SrejnUoX_5(e~ z+16Uv^`jJD|AO?xAxPi{M@<+jjPaV(3)M8Q9aFX9Mt)F9=jasWqd_eJ&TX!oe5BgW z6iz(oJ8}lby_Gk2w@LYf*7$!52RWShI8DiQSL$5Q)Y{^ff2Q9qfd&bqCX(hs8N647 z(Iu|1HL&Q>7KP4-koU5q+Ah>iYVVJldF~=6b{YAbT z1pmfmRzJ#ix1_O~vGGZ$7aEgk*)xDbj&=xpr*B?sm2P<3UhnNLq9AU5D8)@IM6s>t#@~TR-a{Kx~I`;c5J!f!MP2AlL&~gS?Wn-e%XJ^hx2S8 zf##fhfW2od7Z~1f$+Sweej;JZ9%0kQ;k0q8Mc=#bE7>d8 zi9}G={q(uuq-QktvnFmVpY=2hr$hQ|#HZqf5+3&xSe=lE!+P)_aUc`|z@!fO-4-(v5!YOIqO@3S=^_uXs^cIM52{P9xxs&wSv7%qjUC=pN;te8G& zOTQRlM^Ae>!3t&gj>j^;zDWpHPLYU|6GstLu<>zcbttu)zV@X=Hp9EVzj`YU$f)G- z8-(9uFNgot*}=4!r+S#7`?viQgss|y20Y6K^H*5n-sr747r9->F2DCAL+z^a0q*z@`nmo=M0J@?*InlfKxncJ|!!{BQmlAzl2-s_u3L$1|_D!zL9-AwjEj=f2LY`%S1{ahiN{^4i@?Xn% z-&v8rTKRc2HNTMo{?>smnuK{>G7%P}a-hDszFr+yBij&;iNVO^aVaSz`Fy=>Lbbhv zJaD16R=O!JZB*qeGOFkqTgXMtBlCk1o@RHb}v)PF_=x4M6$FPQ_1vbVGdYqC?k###D2mt z`TfSi^R96pOW8sy#xH*}KNZx4~MY_cQ(BElqzK!ePT|Bg%lDraq+GIdgh z^mmRA-W)Rpb&9Q0YmFzT71vq^7Kbh};FbOEGu+_>s&6m(X2G8SzE>ugly(`LmVTzQ zU43ghQQ^c)J{4jdkR5(v?lWYu$=Epv-DlP%p7isWV)2>b$0I@uW}OY^ zlIJQdk9Ui4ec)cr$5z#gm$JcyB1a2t71G`sB&z?y)xH5BUOLkG_)A|cu7Dq5G1h0H z*8$lQM}+R{<-4Y{XPL%=Z zn(xyaCSDO$B@zYQ)~86 z$PJcg&VUOOq2)Z!Pj&3D|8tKW+9&P)2meKzPc4IJ@t#B&d%7)WDfwxmhd=Nks0*4l z)w7wP%FGYqi50dXW-^xu!8jvn;-aOIs`Amk3B-uu03Y&U*%zYc zyWKkvn_7jLj896}2blVTSce`pGb^|Jo3K6(9PZxq&`0zDU+o$bPvj6vSK@$k=GxBQ zH$vMA-Ox&f)Ac>3t4H!ru#x&tr+H3gZHc_np+R3d5C2jgHjIM9miB@&l3uJbq?Ti{mxgjUcx`Enu9fyW?#izfFA4RV6!!C%5$ zi4|EOJ|x&);IYL8(mG+Fc?h;eMx3ItDLuN1N+o1i_TxG% zfWWrn68`*{E8uibnJyvN)Q@5vsQyLx2J76TYAf9#+0HNmQ%h3}Yvtg6deejoP`XES)(3A7D?HSo-s0xpU;CtWh@BD|| zO6tcN{{G8swO&IEG>#sle3396q0fQ|Fd`4jq zB_U7?5?ps{d*dA51CX8YlMInD1){z35k8kZrSMKDdO{mkvib6WVOu|-HS2t3c}st7 z^N`r@x{zremYq6Y-C@WE4a9}F+E=@k+c!}I1o$Ub@_l$Br{uUHj04&Vcn7yrJL9=s zP$X>RNC+d@CK`_-Ta>D`{B8FdWEN9Y{XoV7(rB|e8htL(IiC{ducn4ixf>g>MVII? z7X9RFOJlb+Jq1Sf<@1wB98ued6$LOKB$XC_j{d1!>M~CPZNq_JZ_1rL-a^D%abtUTbT63}|M5Kpd@mH5hLZUnshBiQmul{mDrem$cVW_b^&IFm6-G zqV#c&58Sop8v{R{1Q`^myf|cj{J9Zjr>chzLDo`-O_XydFBOpLS5hqPSiJq&v=*u& zb5T?MOR?VqAu)1V^z{!Qnr5Sih6R8_P`Rdr}=t2v@D4hzy&MD&e9%RQ_l) zD>Shpbk=RNt8sJpd2+oBtdOWPrJw1Az&@FkOa>bf4P`rxMH z3l&{i3D(vTq$mkC9hSr>H03wG4o*37fezXR3W)x&n{Tna?^jQ9E`Gft`~-Fq$QAlu zt1DEUFyT@>6YtTi$BWgKu=3<36)}05*kBifN$XK2_n)$l&xtIM9ui!xDPdQQ&M+z< zz_o0@uRa3w`p+Pg29NpD)?(tf##YUPgo8$8F7XL|NG!fV0>OZFZVU;xlLN@{s#cV% z=(QIG-$nP>B#N2w5w4?Oa*aGcG6l3Mx@&&9o+|HuF*eQ-8+Ev;GY?$Uy0t0bRym#f zXrmaQ?UBrn>fCxt;W+;}d$i{YgTn;7eZZp#)L#r1o3cKLyy3#W=)JxKOISb3SP=!j z!$niuxCX^8tBye7x*v42sG+VB4h}QxD&>oGF(iN27&FahkkOd7g^p^|H<6g8cXGGu z4S&R`Z!PQlN!q@X)pI4~3BN(yLy*DF5#4>zzy?;;UHd^5n{l%O+v3TKfh&JH!V72D^+`P_&)Q*5G?0~=!GE|vBZ1v_ot z99_2*+j_6(#q^V1nok!j;7e8CvPA{5?2L+BZ}2oU=^tya8dyu>-1*S-;PxG&i^TT0 zs*tRvuj6DIGfl%8+}u~;qQ3F#rt7mrK(QP;qPQ!5JTl?vvrbU%$ew0}NnnTux$le~ zv9At&>>-Dwbx7!1%s~NiJUNz~7=s4FadEKSTDqd}akLwWIt{R#+e>qhb;&i2^Imj`oQ8ENNRAYb@WZ@I}m zUlN^yH|fZc3zoJ;BfYB|_Kxfib($9u5DPSLWI#!ojDQxRG9 zI!S71gKp-NiLjuOkyoxJ3)EP(ydMk`JRrXe8MYx;9+NjfeS`9^O=eH#585{aWYpc9 zBQwX_F7Z~_Qd#>>n5mGDcWw0EOjSl8R^Lt@_Q@L6gMcV?MQK$C;*isjtZhmq;uyo*;*c-kjBm`236|2D^T;7yNG4Le?WM6MVA?DB z^LG`SZVfz%D5lQ>oUS30>((;N2YCN|_&Uqt(J$vXWko8g_nr*cc(Nd`3sN zx%%C*4xIOn=WzK2}w7bTR&Zur|Us6wt0R%b7zK{CJ2VcCcFSSP5iMb~@H0-xLm`q`$1mIYvaJLfMJ_ zdHv&Kg#p%bi&u;au}R?WupCo#lShv<|Jz|E_O;;g_~@I_7kpn_PwAL|@mrmaBtp3LZ>9kiy-uY5H;L9~ zPsj2&Uw(Y{l!jRt0I_t6K3z%N7+mz%WFt2H0NL_O_+~n|!3J~SBi6D8Mu!l-z19^} z1W?adw!ZVg=@g?_19b=Th*E~xkeaw->8!}@dowj`M`Z3cHr3l zHEAToUNGe8Vkkr~*v#nMe%d_iy$19y>(m0hF!gx$Z+Z^UXNe!MoBP=0OiMQw@VMu; zoyL{pkF+gnp3@-@ivVYB+8pMZTKx$$b}Ppd0%GhPU{Y`;W4N3P3;bEY&-~c$#{gX% z@EU704!#+jhm)Zww1)Ov+0ivR!SdM*rO2=KmOR(v#P&pC@b&K&nk{1sTvuQ|w++D4*}dNB9$!s0Gf( zr)8P0zJC%A*$mhK>%j`*3w~suKEm1ts92RUJO7f~vp+iJW(ktQXFeRwlt%wFWTPjg zk9ilEhJo=qoDC^nOW9Q=?biSLk8szu8BSMJYUhpt|7vvGAV}QrUieIX8_Qi#CO-r` zxKOsEW@ajlb)5V2G%?-sirO7czZSMSn@jaXqqOlh4Sp9(1pOX6visW{FP1@i%Qu!q zw7Ilc;&x_QVC~2_;xh2z2O{HA?(pWrSKG17lp>XlXM1HjBi}zgB~TC0cK14;Gv`eL z;eyPd2j^h^qF_FruBH#A*i&Iv^a%hzHfvzZg}9j8??NpJ~@zb`G zAwtmE!!rMCcX-+$hJ>A?myXZv1vF1}x!DW(he6jhUlyuV=G1W{q+pCiR5G89A&2+j zSsKlm_1SI$s%(3s^ZrD>oB$Q1ox_p?dk?F@;t{az+#BVpYKB$WOJl%xrHpx z#iU{K7!;P>w#Ng4R#yVo#v5Qp&RcZbq_-YeWaEudBhZmxh@7+QD1SG^^i1q@bBl*6 z$l-K1w#eubt9NG{v?Bp;=E^XhcR~+BAR0kNch?=ma+qw~-1FR?0&3^(TiYk}DCoun9IZVr8O&ulHx{RYJ@C9?M@d;F&ex>TqBp)BWkR&PRbbULUmPd1l#TEc~ zzLwiBfBXB<>1fW99R2-3Qoi-4n~T({<>$&GumS;p*p_ndR|8h>CE}e^qeyky*p+cm2)dy-K7I7>C3AA|r?m0Ql zqk+ugt!$-E+NU_)5eWloJmzquemgW!bR{% zG!iK_`df&1qguAW886Fh5RC6+J}szmFN72qvj&X#vE_GV5W_(F@X+!|*NO!OP=D$w z*qSxISMgBOJ4l6WJ}`_gM-y5W|9AqxPjockRNQduM*0uXEyaR?xJ>`!CQ|^Mo4cs< z*KUt1^p>w9$12W>F`w<0SGA8`i2IiHMOBRJ`Jh#}%!(GC&io9<3Tn4q^kVG529BmC z$+U*1e?^T9LZP@(5byB&z*PC?PYY>$>iVEBMBT8WXpLaL^%txF= zJ*OrC!&krgqb~7)xe&>7fSE@Ef@>t?BLg<~C7oc_UL^^xB#TEU?cX=>!66R5KLkyb zd$u$Mro{6+5cF0v_v5nEDB$*Gzaacg$*KWL-V!(E+-T7rB7^+HGFMkagh^rOG5!O& zBx9jE3NTl@p%V4n(7e;q)2H7{{q5_#p=PR7as#eQ+h1)VgRubbk7sU5S*v2FZDUsb zInxghS#fyb$rcM~(I+);tXFP9S(#x_$)fSVxjxp#*%Hd ztsig14>q)a);&6}jXFSKw8*+q(?=i6Pc`#JSB~tv>qhvbtV@ZQhm;q?q6s6E7G25< z49d!)s{+I5=>gK7Hso6m`|kmx-+bEg|C+a?)$re!o7G|5-iSf>;6YM)VRaie;Xe%K z#o{Wl*_D?*Xwn$dk*x-E@?yVAC3u=B#bI1k-wRF1>~I}Brm1*Uq$qIHDHrC?Hcd#2 z+Q6A8?RdIV`i)y*2&0$LWu?`Qp_@3kUX7R|Ep^Tg0@$bhj!rEuwEbzM|C|Az8=ji* z^1b8FXHuYEB2ttAv3~+5#3Wh1AL+J^Crs^ttJuS_pPw<{sx+V5Z-fj{-G5A-=uE?d zWqVYBt77$d(8|d!M(UE}38G{C&UNETmSgJ(h)*vNsfu_H$C;cw$uD8hFJ@F$!1Y_B zDx&ZnkC?*QlzZ%U4T;hMN5;K{ z7}iC)<;CuAp^KK99xGLA#_#R^W2})FlFCAf?4)67OfTqOqYHJn|2|r79@IW$-u;sO z-(eAj#DzS$72FgLi2X&eZ%IXm8OPc6*6o8;lr)$%Z#%e#kjLr|)Oh&`{;blaHYQW= zJlL)NMNr86U%WT&Uv8LMdX9rQL>k$BJ*%$j*Zqh^Ht_Jxm_@4C7z^=q^7y~IBvM3W z7`e=jSCJr4{I-+#$!ov$cMUTmPht%T@GN^zLcn}*sR27T%KZL|ZN|T(}JKx@&jof~PiJ#afP9sc(dgWo(kPc|Sj-f^b2S=oNNhe^) z)>Mrjuio4ia@9 zb!7+LqBrZjxRwAPw@*|S}2Lq@xwG_ z0e)#&1Pn*;Je8TZ^lObZ2|nu8Y>MpR<2xo1MLcx49IY&qHm)2k+IqJY9Qq%x5PIz7 z2nyPREk z_s@G?{ZgEicKn@on!@T0-hnnL3dO|ohHaL(7h!7W2N(jdUY)+jGnahn2EfU1d)|IW z#yqkco7l*zOtJ2=R=|2E!0@Y3+y1y|;nR!Vm^kcqzNmviMlH?`$!6I#j7-{S=y8QG1C3oA@pR`es~ zqBkF}*puWjmppeXo7W^ffSn2ub|v>q9nwuPsDVlvvYo*1X;tT^ifsPaOF`5WC%?M< zkB6QFu_Q%S3@g=|g=hDMUB_s)>V7G+q^z(yP)Iugad+&2JC!z%K%`|xfUX!m`lsOn zm4laWb?)X|($lN5YIACHP?dTMK1Yu36So$I2f_FpbQl3(f$ip?(7-OVXKM6VYt=`w z4xtUeydiqegYwmWoMqYhkiqb)&17h~UL_Oc;o{9Z&QsM`4iqUA-Yp32lo(2l-a3nP zeOG45WO1pvnbGIq-{Z6f`{Vj0a(@h8>D`<$TqbCWhV&4aJap;srZ|!bLX`5oXoRA- zCRnCUI!^$tYxXsr&TK@m{w|HnP;ewh_f3uWQ%=y5={>gAaS1+1XUq1)_elJ_5WDQb zC;*ep|ND?d^11SXPG>SAneXoxYgvOpwi4zIDk3wLX~9&aKT%jO_@CF*eS0)}kmtJY zmgs~X9|yDk^}HJVb~ki1uTB%R{IGKy3y0-S0{SVRWsEzpp@_-_PYSSZ!DA_rj?t86 zHU2%9uM1Qen!4ZJdBkAHZdLWJos|Jg5mWR?b8e0nRK-ns{w z6Q9DOaEHcnTXcj{URRljG0R0_pY1|f)!ubWd29{xWDD4)5VETKJuk@Nw^sO@bq}Pm zn?8->in1BcGdbgPH9+s!tDp@7b z$JI|WNi(hbc)}32T&N)-*5YaH*@E^NR9R>Mef!9K9Y%ndkm=sB+M0*hr&4|%HKtqH z5x2YCPCT51teR=!a@YnGU`Py5gPT+sXl+9j6RD=f+|IVxS%tV(QO2gzb|8A_nK@J&mV(IJ!`G9&-KMSzse}&+J%i(3HHRP{MGmkTW`fxofqGS+ne|B?*j_I>U zw{_1`eMU`#%;N3_-TJBf<<*SCK}*nL<@qxv-F}{CgbZtUKr29v}JGCGo5~W^6KPBzbC1%_TyE z&-{V=Gv$(l1wjAEkp!WA7Y^7QuLOQQPJA#B%n>P%+Y_vXDJtfU5Fnl5qR!bs@+3Tm z2?i#-{>Zezm26tN=iKIN5;jG-LcZ&6yT#JXy6IHTx#jl?Uetb8dGq@`q?KRjtq@Qm zhSc>LMbP#<xT(j*!E3-UaA23g<1538L|FRKmTHwo(k`XKxUoyXe6I%#>`3{u=r#E3 zR0lu2I0nF`@D#tVLkEH3hbpg(=L>oc8QB8_a)q zj2-=Wopx|(OT`-K=bh=iT$Q@iPWlV;4;Yv-jBMiX;c+a!b$9Tb z!K?3Q3V9^zQ@@{IJjpV3iuA{w-BqD9vVEZ!z$I|WeAY`C8>+PQbUTg~BI|e6ELci) zbsO{ZjqOHnxck>nRL?Gc&KZmWVZ#`({6D{cnl^hKGx&P!PU=@cG5`D)h7KLhU;Pmn z@pbRw5_X8Agou@{3fc+XNur{(w;al4pZg47wM3i0zIB@V-VPeGUg}kvm9SMB)v4nk zzg+`fB&DDtoEGM*THJ6m_ zY5R$zwK=5UUhAa}&;%;YRy>#>3H$wF^fPhgk-R@tJ)05a_4z@f^*oHWz0_CKOKkpf zha#X2sPGONM0D_JyUq*xO9ZcXD}ufoH+?K*Uei2*vcBrB1d!yS zmbi&6Z3dr66}PB&dhCmjY@ZI0mW6QexvX7>pIXmUzg?s2eoQNQBRQ;7r=}C+dHCcu zojQQJSD=RI)^plU<7|YBlLFdxW22gN{%NY%ym62ai%#QhoS5AM6$Dgon&t9#x~ME4 z>vV+z%9q@dO1O=a(Bj@_mgLfD0Ck#qpW(Wkgj9gxBYJ+#H+u<1!M=Tm;tZOW6zkL=s5?o-$IA$W8 z1ZVH?FG|mdhs$Y*DNEM43uw}1&)yMSJpTz5>%h;t-vOHjMdNajuNL{q01NDgdEX$% z$Y4nEB-dJUNwtP-klX0Hci-RIEd5${yYtX+x%0RjPNDvq-3i}CE-#UvvzdLJI~GfRTXF%WJs})$rN*LN}y+Ul08%Fl0}q;{oxPfEMpT^Ld)ew?87IuIpP2K-|2s9afR&1_H5 zO^9t>)m&~i-eg}5I;jSZj#9>t3)$1HSqx@AKIJ-bPLT?19x`^}P6hi%6~0>QHwuqE zX>^#CS6K1JW9fOOHbG4=@m@}?Ne0=MFK)t^N=g0GaE$7Qv+d!*f<%c@aj!&)=Zaus z3|C3#3=glC32Dw!AVBW1f+F+|zpHtO56}8t491MgkacK%T2P4%TPLXHL zBnol4pzRnTo(a&s_Y&~F5+W03DYvrHH%~m8D^CvbHTPK;2Ies%>iNi&t-0=utk>1c z_tyLs=Zz@DP>-pX%+I!da1+wzBv5~16nH&@@A$L1Nv+qX)U+jX^naL#d zs`}phx$mZVYd(+XGkHJpo>6|A9JQa;wV*c_iYCOY-9U_NEA_llUBaS`)3|z<%^C84 zlhB;-^Ytn4T0E^*dkZe_8E{?SXavx4p9J^%52sloKYFC5Sm-axbHZ?j4%b*_A~^k! zDIQ+e-)v{eg}D^ZrhO~v7xlbQBMmi|vB{M%)% z?c&Z1h^(*`+ZJ20Eaaj(br$R=UyJ-D8pYoP9<-$-W}fWUY_!rA>Z`L10 zN3M5)0FAxmPfK#eYK{Na!U3YsB}V2~zRbj#?$oyN}Vmmcp7iqHWi$4tmN|ro9)u((H+m$a9(%1M#a0L9^kS6b^VwUuwDHZ zth3l0NIXz+Tszqw(6?YPG}}LdH(v!|s7$2|Jv8e_VVcRm$FRTHcb%7S*xPb*TKPwx zjm42yXCE)}QbSkjnfpi7jgBTAFGe;zZDbr=U+4`s*9zJ)CZqD;mTM9>+LJwK&B2R| zgqKlynw3$R!i~=t3BVnq3%sa~FXW={FA>^jxy*+z6h|Zd;ju#K;|A#?%P+h8Fez%6 z@b0!5!ZcnH?~)xnqSk9{5;n3gbkmg|E zX7Yw`t1&U|H5XbqmGDrZI9XofwbxR@tIIAfzA&m!S@Vf;Ug8J!0P@UlIQ7Yy41Yh> zW-#K92H`u$p}y}j_9lzo{vtur?&}3n7!X*^M^pkuE8^dqtjW=YaL}oha3huMEf7XB zWB*q%9pI4@{8(6pgVB;ZMtbZ;7ad;XpEaRqqq{f}{jxqY_97`-oX~!?W7QpFIBYjX z&H)V>Masqe9VW9`O(G%@(S(wSUGt;WB3cJtI$0Gip!M}JaRBvX_|&fLv$6pu?$N~E z#!bxkF1_iB`U{h^rVw98nNt?}8|%p@M0EJ`2SDYT4!XVF&aV0P;irKdAi&l7Zl;0j z|JVM}Z`%Eu7wNgd{`(D1?I>pI-(~SS?&Y! zv7b!ENt0quRsl1Cv2KK=o{SzhZ^%JN=n$O4M7-O+Xep&68C_B0| zIhyu;4ugEnexNH4d`L<0=UixIw6B{DHpmR$=|wA^(iq4z&uXTi|B43+*uM#4r*R*- zm28VTXr?}uHSUCt@Y=?8_;~p@-gUE#aEjX?g1TXe{3EJPD=+DT4ZcyJzab9V0HkRk z3n73gAQL1Bj}C8!`l9r%)-H{cC>RJAlc4X5`seZ#tw-hb9FQzTVpGp|zu043R?c<1;E-u93pz zm4MQuk!mxN4VZt01$UGS1!v{lI0r@v z_3yN>Mp7zy2FP&|QWwii+vAtWydhP}jLfnux+-EqL%QfZXu&q|#aE~Uw-GP5SB8OX zogpg|thF}a&uરLgHPm&F@@)?C;%W5#6{S=*rnGmN?4UU1 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 Jr1U)e{{W~vGIRg{ delta 139551 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%0D`~AfUZceq82AtgcajUfc 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