From a4ecffeec941ac2bb20d9247abd4b22b7b3e81da Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Wed, 3 Nov 2021 20:31:37 +0000 Subject: [PATCH] start populating Midpoint doc. This is a work in progress (end of session) commit. --- .../attachments/main-proj-architecture.dot | 19 +++++ .../attachments/main-proj-architecture.png | Bin 0 -> 24627 bytes midpoint/rtr-midpoint.md | 76 ++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 midpoint/attachments/main-proj-architecture.dot create mode 100644 midpoint/attachments/main-proj-architecture.png diff --git a/midpoint/attachments/main-proj-architecture.dot b/midpoint/attachments/main-proj-architecture.dot new file mode 100644 index 0000000..5518528 --- /dev/null +++ b/midpoint/attachments/main-proj-architecture.dot @@ -0,0 +1,19 @@ +digraph overview { + node [fontname = Arial]; + l1 -> server; + l2 -> server; + server -> r1; + server -> r2; + r1 -> server; + r2 -> server; + l1 [label = "Light Meter 1", color = lightblue, style = filled]; + l2 [label = "Light Meter 2", color = orange, style = filled]; + r1 [label = "Relay 1", color = lightblue, style = filled]; + r2 [label = "Relay 2", color = orange, style = filled ]; + subgraph cluster0 { + style = filled; + color = lightgrey; + server; + } + server [label = "Midpoint (Server)", style = filled, color = white]; +} diff --git a/midpoint/attachments/main-proj-architecture.png b/midpoint/attachments/main-proj-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..d8366e4c7ad846d55bc1c3d51eda8407d2c58469 GIT binary patch literal 24627 zcmXuL1zeTe^F0hAA&nv(BA|eh(jC$r0@5uY-5nAN2v?Bq5|9>se&Z2;TfJX(#vk`J}QF74+C>z}tTb{Rx+sU64WhTtrKObHD z#LuMhy;)5%KkQAKyXxl)#}|JTEkk$T&@}Dm2qxYAu$OAQxqDJPR*B7u~XY>mG}N-UpYoimwYh3@`; zCNJJGqx9a}Z0N&q!_ro-OsGt0O-}bs%0~6IJT)gnS$`)w6dGINQo^mkEwF0C8rW^oW%k{)dZHXNa1585hM{|{Dg2I(WRMaHzob~%*kb<3eA!s$ zIMcZm7YT=U~trU29x|=-|Wh_0l$g8?WiYO_J z`Le`3I{stxCp4Qq`1g?G+R7ULal~F;R{Bd~6ksC91ys22KKsIs)oE7w*`hke`dhT! zH{+^FnVLzqWLpwj?&sCp?~56tZoNUy1CBAz{zr1Ud_`#OXpH^Epv5E<~m~QdH z38~~xx$the-yRMGjz*{YkWgoBxx24$nvqD2gMH^1M#+`t&x!r->NcQo?A zWH4(awu$JYa*QL&{r^N4*=2-qx}ValD9f~9|Hz9UT1T?YW1JFXs_9TAR5{*!W860J z_(iOGq+k_I@My>&8a`EtpJrA1h^~iEd+P`@_kE7%O6^L$Q$Cb%t&Vwp==A~AT>Y2-6oO|#JuRdKPM>@y+S^5^?f!yne#Jq zC_t)+tUmXAa9wohE1nhd6)jC6^UI$Fs|KZYWEp2vg7))74f7WDVdNVYrTONcEHrih zkV%SR&@@fT4>It!tB83qKMcD1fO$yE(HdYt=CvSmja6zJ`j&iQlIWz32GjDm;?)i_ zLy~*ukHYHF9`$gW2fT=bv*X#1eC1Z=_8=<=Pp z`hxpd29aiybLkwZqxKV|R0~L!rTfZ}n9wfNEgGj&k=9n*Cs6TQw61B1!>wmyh9jlQ zl08Kw3-~asMQ{kth{k89?dQK*JX`x5nJTZ)Wmee}??x*9IZ3x{+`8Z)kqlf*T+Y-Y zqPz%?N_ikaUgYas2<1gb6Lt=J!2rjPy%4Vfi4w8hU8_xDl$Lah#Q|N$X-=Kgnvwgm zniOl2p8hB&J?N@@e~Z%BiE-a1TTlA?dyBxY;jYEHZEG!-Od8Z=6r-{|VhoULd4Vkr;im)G{Yx{PGw76@c-2G_@& zzvxg~9`e8BWd8jJ(|&$jO_8EGTA^N2$nlGsJ^4P-?vM6zbdofcVoDmB)Mu}- zPiAK`v^3jiiCaDDwq2DI2=T(H@CPjgIny!fTi=bcBnD=LD=(e*5l-0Zt39_QL`CL& zPTf1R64dmx*d*%x%s}gxht|InIqkz5R9)t&QA<`OI!`Z3;zUqtCQ&a->7AIla{fkM z4oINa`Yll4xow8~8>y78;NCV;ejfT2lvYnieudVcc48A))o4js*Z+&JKT zYn-=w?M;9HRSHiuzI)oWF3)`dBbl%rbuk*I!PcNxKZNFbUMxJa*+V5AkGNh~F3X?q zb@iy?TYjiG=|DKFXkGVC<*!%Ww@c2{<~+aMvqyJH^b#6Uk#zqn%Gh(UnQfim<@KSm z%M(pwu$;n|Tjtc@+$^yi!OL7AIgFO}TjOI_@6)VKZRkF^&t@Nh6R~=*QA;e_NSg4b zuG7$`muIgqLvKY3a(J-i(#!?)j$A z!l~R%Ds|3V4p?7!AL`OqDzZ3+%x3@W#AAQ@FxLp-bM@zS^uGsm(Jp5dDUyD&d1&jhSBI;p|)?Us)sP_gMwx z%=~L;@y-6;73iNk{1|r2MeavgxO(9An&&K^DwMc^aPG8a=3a#R=RLF(gQEC>$US%U z+=Yjjh56-;H4051qBhZFU(on+KPNAl6%#xph@G}#m>+ifJFAV`qB*w1>+I>B}^-9tF*1hhN zY8E;7+S;48b$z~=BR8#NzTE0i&1>d-=kIFQ*>c%Y;dH7+abf&y_pK9MoK*Be`%rYcNFENBco#I=+WgMl%QGEKN>#flUyT`FvV5ppoB&uS`fGoCoET2WNf)QDJ)Vg~nNGM@hcX(Cd zCRx4m!)`6XwdljfM3;F}(b@ncsQs z%`-NJ2ecVc-UPw(SKT5Q*tp#%+CTlcKjZmn_vlCF?0HPn2kIA4{#+cEH~KKPv{#se z=Cw0wVlD5`KD0fj+k)DX8Z4b6R`hRw^*^@lx7vP4YL!(V?Z1fk@QnR&%2>@DY1I`e zJTM5@7sa@zBBF(%YUrLVVfq2Pk5uX#mUaa?+IJWIy-_a9Q?lM!Ts)qDwvu@#!44%& z-FDB7Ze{&|9skxVed{ZIBx%;dlC7zO@%E`}V@rj8*C?!!Ca&EpT|%r&!(Oh~MUI72 z4e{gw9Kn;Z+HS6O}!iy<7TA|4Nr;VMo$|C3iGZv;UdrI3n z-#@NBy-xUxEFq()uspgjN5XqJr%|GQ7Iisp$t6fQm1f(M@F_ZdwU>jhc~9&9V(Ca; zS5C1mFHin1PuJ)8_wEmg>>+>e2uel43A8s?&#(_=CQA6 zUb1)q4|{G@Lk*u>~lV<)4+WeM{`yo~Zq^ z(u}F2RWvr_ndx-F9-COPICEx~vpz1)(1sXF>TndR5e9UdJU?WW@e zMLRuVXUu?2_Z1&CwH$*WiXQQvIO+U>8<7p_g42MCL@fW5+4I2oV66{}Yu}%J*f?O| zPKlc#*Bp7%(V`dM;-WL=Ycs&w$jy5h^3z1kK8a;5hFg2Eejz%#ZnfYN(~U;v#T3TL zv%K_V*)FlSzfzwK@i^qxa5)X}+o%bxRs6yqTd!EOWKRkIWIj}#HMywYC~fPgYir%( zdPQ5>lksb`X(yO0p_i(IaBP}a`5Soyi;ih zv8a~2MLg)u&TYo^r8@CC`u!qqk$D~#nVOtrI&K?ndDPAAiSfVp&`)EMV`a8>`S$K0 zJ+~OMe5P3>7Wt2lmGflpt<<&mp1Zt$Q`?!&Oew>kqmksosHq(ZUWM^jJ!*T4oUEm| zjAW?)L<&|z^UYdIMQDU^&{pr?a+{Oc?l4%YF|Yl5zbPJ(%2N_jxTO`KS%bfyK|LD# zL-WM=V*N@8ox!cR)c!xG+LVm`vsIpAjT|B*t%2J()0wd&7Aihs+LDGdi=B596o0G3 zf&^-Y=WoypR3=>ad!w_p@?|-d{~Ji(0Qyp{^ZXpOmWn)!!PPg(L`dX1r}5vymuI_b z)Q%3DI{mJt@eiM(P`?}CX)T;Hnjx^%r?!rD*ROW6@Tq@od%hmFz4e@%>)8{A1a4{7 z&D9Wm>mu);nkOtKr_QJ^ZcRE{VtP9HZpf~x$nN;`c5F%Vd=Xz^vbixft`^+x&~@C_ zzEIDq{yOxvkGP@9Xvu)H_7?fKR$*`HSkK=EPa$?8s=n_weGTOI4TNL#i{gzH`qFc% zHm8!X?Q|0KixTQa)j!pLK@HNB_*7)^rJ-O@jgqGSy`?H~VZ!^@Qx$8*hRW|yMTqTE zlJdz=6`Sn!sSD%OP3L;>meYOjSbuCbN&L6Zc~On~KBF{f-guK=%L`Mj=8?kdugPae zl*VmX24=HlC@;Ue*8MhT`(~m2$p2@)R~2>pS%&{h6&cH@m9gDI>G3w@H@bO4)}E)| z-7oec1~_)V?YeBA@oGkdoM5e)R1)ptanR{0j_GpvlAVc6N4xze9AD-Yo;_H&MO&PD z#HCXbrK#_H?~cVLm7w*V5kuN5alPrko9OrwU4b zI68eYP9(8pZEYcM=XI#d)1s%S;qPv{>OjZ3sz9=I5Rb3Ectn(QidM??YlSHR%}>h% zKYwYY+{>ZhFXb~om%6LwL^nQcic#e3Ckh$ui>$({4OZ$Hm^k^SEnV#9B(J&Lr2;yIH7tc%QbdZqR5-^&vubp2|xHf@bj!lJp0UZ=%2OBKtIBtpXOSp=+I$JEMOu-bQ3y z`j451XP^3AEpD{9HVl8BtG_VsIcPE6GPHHm&y#h^2vU1Xy_2uL_RqI#PJ{@vxarhfqTB^@RM1oTboI zUlkFoFYeOv!0B#PGT>8^%FTR;A!$=>U5&!8>3MqCwj;jNs#c<>^qEo^rFo(>YD4wY zF(3N){W0vgMJgc`3@!uvD$x>5{P><6axFNlaUNCCE%X`O6>e1B+4k<;miS+tW;r#u z_ZB)VzO$`2*K@udk3PuoU(!nlQYAk_ohSZ3PPL=(6&%#%sSb*z)rBkBjU*b+U8u88Ba>o*#&s z*Yq#@zPWl#+kC{fg_TaZEh9j{8xdI{o_TMVsBbYubflh5gMZ zA3N5D)@jQ5t8`JbaQ5_?Go4NH5=$r=<9{*dNT&acF`@Y}*Loc%e(xxmZd#$A_1!gV zAbner?$UkgmqW;I1!u~&XTF1L0{61!D~D0^6u6zvr8qPjT6g=}9K)0|88G=H#a+x8 zxb*2oy|Lm6dAaZ1oWD$K8H_N6D~JviSaGgU2czHSpGq*0guHN2>B@y2`n?hCV)J8n z43Cd~Htde&!;psGsH!b`_+F9!9V036BTLVMXA+pLC7>ficOf~1bm!fs=0i{Fph<-!T1Pcw)@HjR--ak1zc+4S%Dq8h*7(j9&6n~JiJl|jCs zvWUis##Ke6hrTI{?wYPD-QdF7X*!R)E$+bF*AW+sU7DL*KDlH0@QcTrSJ57XU17Z@Mztvto)GD%@jC{~yt5XK3{=UXjvX+4S(dHd zh?f4aAs}VrNolTy10y|3Wnby6Cau}vbeAe2D$QN5l2B`!8;yIXPdNtX>u`BzLpO-@ z4DJ#82NaQy#V6&2JUP%O6f#oZEB`_EwdqOGS;)S(oSaxU>G=*_O7XM|kE2juN1w|J zZkkj_wXn17OtNZyjH+<)5F`}UHoupsWR0xuQ{>;wMW+WGd|&9jMh|T!YOH5J3BHu|67CY6c_agO{#Ty0S4p!k3_w00^xVa%zkx#F1V+R zc_&aQN2T9T`9gH8oc0PQHh%3BReLH1Pjy@5j)N&N9aXnY*4CJSI(3Rs_HkyxEqYXh zwGr0`ACl}z(J#38G0r#oc=MEKyWyM>ksdio=h#>^!-{k%w*7zVo*c!`JPWyGd%YJx zC`mJ#`Nbz7&vg~iBAqB&%=^X zIg?5xu^zoJaFR4d>X?%%VHdUZ{ZLE&BSqAMGngw-blmx`7frM2e4TM6mKw9>a4+}C zj0tV08O@kUyV-XEML97?GBqo^rniKssDX-R)E?c+MKpgi={qu?!dICx=jJUliVhz3 zPO;yNGQy}|-#l93q`SpseAAk2o~{vzJ9wvBO)yG+RT4Y;8dq{iLd6xsHZ$4PK_8<| z-WRX5WOnGBrP+So)0p_3OGG4gQJPB;e8tHbiyE?~oiS;*{ATRPo*wZpv;RQ$ONXK% zvgDQTkk|(s+h-Bo9ie+`L#FGM=Nnab*SYSlyC8i3bh>`qM@l{^+)!-Hs|13l)vhXWKMt&7OIW?5h?JbUOD4oM_m)zyZ8lk17ku_?`m(I(9x z&7sVZg37YD4^g3`R5p}3#(?PYRAHh;q6I0n+k2mu&*z+#>kGFRzpfm#_N}LHzK z)5AZb+jCr@z55|3sMtxgyNqaq=z+p_Tmm;`eEzWw{tIHkz+SMvnoyy-;xG(#+HA-> z?!C~_mUG2wtg7_8_WF0cAyH<~lqlja%&-5onM!`TV{@!%W3ENS_wv+yce?Jd@j(Ai z+@yCzg=hkczIKBfbCG7rV%XF4R%_;x1I4fg?K&s=>whPv>w{UnDLl%_HUH7#Om|sL zRWrZ+Q*7Lq%!N(Hi4h^WiX*RgbbU5AQe$tJ?zu|Z{BQFaXETRS8J*Vhtr6q=!h329 zcyqB~OM0{Kr3pupAhYbExzE{*J2ojtu$F;m2y4sLeM#X_mWMJZtn^h@BcWVx|CIY) zy8S!Zda9_mX!i3XDK;g4EW7DXHrGuJ<(}wT0;~Bi9}*Ku{*>r;^`{AJjO62yl9Hy! z(;cwgUe4Wm++3`Y3b;L2&r>+4q6kZgMl<+rIac^kx7x<|Y&pgExUWa+4nR-`RF0PaQIJz(I@Py9;v35RMu>Au-FO5(lHW4M-Qv!co~F-^S9ph*;;>Ej>LQ1j;=0mxGBb88*ao=!?|`Y zc1CPW)s*Ga%gT{h&6|I0*lSKH(XDaXndCAtHT@EH2|7G7Kf^DXUOv9uX+_TKY z_CDStoJMT57C+x=yP4mScDs4(fogsTWa#L&Rb zs6qrI&RbSNAy++LX}ZyK1QvSHYCKEMZDTZ6_{wGb?-0B~^^(kkG*7cc$7ZG;@r?Yg zn=keBQelmUkA#HMq^UfEccyA89hamgzrS5WtcDh+@uPaBg(9p*&f1#EcB*;>?gatm zDCXtG-{f^-GS}>D^S3rtbvKPB4FiTGXCTjQQ-L1f2-R8?_$ zoo;szks}f2k*Ag#yNI5Qc+~c;NRd8{sLc9k9 z-t#n$>6HnbkmYxs$r}5Cm7WA4=C2B$KYc1+ zA9HXF!{ZCTgU4@nNc1St`3`V~0!esQm8;f9?SCcq9+$E}uZ{yUKiB8t5V5ZiYS8xA z)+T}d%TY?>hp38%4T5x2c3vN(q4GO7M(k3x&4hTJ(+UF4Ol43K2tSmUvvJ!^%e05$ zZ2bL33rT)bMVGN$Gv}8B!OCep`T=ka|Ni|&2srAOWVN}icTrKlS&uQ1@z^PJMN#rO zEq}!aC7AJET4GocgR37ul{O-HG=|bKWB{e!Fh|DB5^cj-C zl*di!lWK6=IbZ&)>{P5wF=CV@DHvf<0dz}i~gQp1*AD^lUeP7~waME32en*X2#R9X%_{!?c7U!R3U{>V_4 z1iJ9Qbz0?~=S16X0zzKL^M@-vyf?YC9!ofnX=zDcSYSh1FN)k=;E_c(ZZJPb3krmS zh*f8Ims;g zQ(wQ^3`cL6>4$KMUXzqB8e3dj>zZ#1dfn{92QbGZ77{ZY)hpip(ju$&zu@4zL@av0 zAY0_6q|mrin59WeG<%@P`gkqAdsU>#4q!>K_A#4*AzWNW1|tX^&*Il7n&8k-FB$U< zF^jBa(L4hFPiVV-!y_XXa5#zVrf6YdVHh;2EoDmiIsUgdji-}usWe~nBErG@w3kR2 z_5_2bK;!FuW#J3D|AbCS{QUf=Gs1LCIJM$F#U;Ls^1Wr%>d8u z!cVz1UiOrU>G#NetX`-Ro+o2k1mc-v*54*<5Lv#K?i~er)q^Y08Nj(uA%o%$weB2t z9dab9tmS5sPweo4vS3^Ay$5>nPU@-Fyv2BSD?S{f!b z2hxS=JPsZs0dkpid?4VopB1c;NT@}&n&*S36(y^^9JJ(IKk=&4DLMKwWSP2078%-? z!t(-{QWT}Y&kX+?*_GdMX`wr|C0g&>rfj%_@gYAyEwsNM$ycT}@VhYIZN9XFJ>gF2 zyV&)3U84C$NOlOeAjq{YA5(_zwL@ZsQocmlxB!k${s>2GAec!{o=)*|4RA(r1KZO|z3@kQaEYIGm*4}yv>7b$E1wK$Mm?W{uLnS3+iBx6rfNK|;j z!NI|nq(EQzTFprY<;)Qh6&V>BFp)oUatMo~EWV16`!Kbf6YjCCryaM?N=Jk|3sg=?)p|gX9yo3KcJ<>pIe=W zEK*5bSzg|G!c=o{25x0SDA_hQm(kiP`tIF33|w5d)6>ru%!~}L2M8jiBve%J0|Nv5 zSBN4)Vq*!1hlgbp72`s8QQ(6d*k~wOSy^|{(I3G5hReUamY-Po90msBaGFx@f`Y<6exzeykZ}`A zh}EH3s{-tmi(`5zDd~8$s<^ncWbW}L5tuzT)LB(v30K$GUmWFsQ}Cxng+F|D|KUSP zJv|B@``K9LLlbebTJj<5?;3>~VIMwxxX-gY)8Ov>@7M|nYJ#+=Xh4rs0;{0~5CSB@ zf9pB0$0+5-?P!2Cp2tJdN7DndP2PN-hjai-Eb+#MM@8+F2=wjv`E$6!Tz;(r3R(qJ zdZl#1uo=62sYo)Htv``)Y2pSd_oGf?LlwvsV2!UAFWnTL5yQ$nJb2-T@$82tqES+b zvZ~Uw*m!sY+-ozP)mW0F?;E zc4WB(Nro@Z2G|QsQvwnI$O63fA4n9nuWIyp${7a5_2EGY23}zxa~y!yE6Y3LR=>(u zqU4*XOaYB{m+4jEOH0dwF5Q{eq`VG~Ha0ejb-puo)k{VYse%mJZMnUn*m|Or`pbDh zD8Y6j5Cwf5w7UC@D={d_M+V25$(|P&{fS z5Niec4crjAZ-6shIUrEuSbRFH@+(Ib5>>w?{Er{uTX^ zjEiY}?kO#85Nq@KJ7M2{yy$nFpQF19eww<6jlJBCCt?O9nh< zH0!>PhC{YoF$i#qYX;d2g(U7zy&?&FS{U zG^EJXzo+RQ@4&L)eZMK>x=9EDX9~X(yxMQarV>o-NnjOdXU46zpX>8D01pFdy-o_xyF_ki?%cWaQcf=1 z`8u9i_wFM&6TAc1KP=Hye%If1%|IZtAvgN>hK7c+O*+FDf%o;BH@NQ+c{Ldz{jlWZ z-$Gt2shM?(uhc2Y217u+Y&^nwt^Z!b3=0{TH62u}j_%J-(^jA`y#y5-B9%h`f!!ca z8MWgNrcA#%QH116Y3Yc}%tyxGw1e@*719M?BlYhrhc5lK2eEEC6U(Tc+Lg}`ZaJJA z21l2xU1 zR>*`65mb?EAhZ+J7dtg`n4-n{4b{IcfBjA{^kYQ&_IA8f(4Sn{0lXKV+rI0AF6#97 zE!*Na=6!K|sGehZCTO@6ABHT=fIRh^M-VY*TaDyhc!m2PF3Uzy@ckH37EuHao7$sW zWhn-pl5;HHy?c(;p<;^p6e50tP@c_u;^7=rl~Q@zpi~rSm8DneL2cV>Ji>KrNQ33B z6m}W0v6*yWthuKtNrQs7va(`n$M-~h3KWXIa19Au>8W!1a?{x?Eu_@vr^<&HYZ)U= z-tO5sIeaeb_?dZRb`upL$S7zI143tJBYYOUBnnR+$S1J$<(*OAo}(iHFV$gTv} zAq)wGD+Fd=(b(_*L~eeaA1occx*ZU?y_*RU$MuYe1sZ zsY1955=0V94Z5|=V;;ywCp|XG30hRjN`4j=7UhwGS4Bh!18lJ)j3iRZZD+C*)`oB_ z0iss{t@_d5O;y|W9EkoUkaxcd%@lrCC&cOxnXiz-9f^uX#Af{CE~1cur$NeNN1;>l zhxyWBo_DskwszW|1TT|8F6u~1jSYzW9ee-t>>*18q`r95Pe)H50>YVqntGr$5asCA zoDDZhtwMLtzxjc{oEM*poPZ0Hdb^slU3AkAY@NA%VP}0#Bpi6nTX zsXZun?tF-hqz82k4ilTzFkL*0zMO^zArk1LJTPhaP7ekp@P@J_vDVzRNQo7bIkNyQ zl~4@JjgTP*z!f8Fy$GmgKrGt8J}mG}=hSU{Bc;`RNGtg*zTKPo)<7S~8YmRukeNgE zu5YbJ3!=;F$BMMj9VU`ie}rIN=&Tm#7HKlSAz9s?sO0+%8qW|(qg0R2a57x(i(H&u z-Y5>(tWY4=e(gI9<|&dR#l*yP_4}iS=5GMldX>t0L&dLO zAbcheaw*KVEC6AU2rCT!P-Ok!S!{ZmFILHss63YmsC@RtezdoPF{D(zgWPWu{`c=+ zpDpJQT7hLHnmB+Hhpj)%Z|vn&Ob-wx8{p)*cKIV|N}Axxgtx%N!lI(`0HY9UW_fwp z#$4q3SRFW_exB-Vf2LT_{@K|Zs5|{{aB-)<;{`xYAp098HbH9)3{{ZhBfuf=LY{&@ zSVom8tx8Dcz0Iy!tSzRaqf@HCr4Q^jiNhQdJk^D0X{rT)4Mbf5-o`xsJ`@EF+o(H+ zo`T=y1H$ZmU1@PJs;)egEBgQd7Ev*Homa8->s^dt)fBuA0pCo!IDG%PfS0*3UFRGf zRRg<))Oge{-~$A#E`AH#Pq0awyw5CjZ@QmmsK5b2&WghgllWbkD&GuPAWGj4L&)chS$jft2WV%4Drp22Kb6<<-GK1r$8iJiNU+ktk)IQ=#s%`NoFNQ*2Y&%4 zz=np!eFtS8o~F%+ZLr#Q$|sIh7O1iib6b8iO{_S=w}nk?s;3urm=^_EF9mA=n*Cg5 z1`)2GyF1>NHA%tlBO^>kU<;4ILvyUI0R1-)3pX3g6a#bk>go!x+pJpm7H&kErqrct z-y{haLjJxY;Iu3wd_Eua_%;eucrE~l&+YYDv0hyaFoybR3&2v~;b0sxr(|(i4hDcf z!R~kEp;>0o2PG?Yt5DyY4Jpx=Ea8Y`ZFov>F= z7#KbPZ(Y&OaNYl!!ej4racFKmUYgeakpi9#!QuNX5Wb+@fVhL6w!Vpr+FmHxMW z@Z!qw@(T_QUjG|GkTziSqysc8dj%4RJ8X_J0tf$YJ@)wd^IqGo#VB7yWWYgIg5`3b zbb(z2gGNS4sXtykiF(;clTZ68j^O7XQBovCL{jjn#(H{#R6@67QDrA6@lXH|-2^!J z{i;-x6(|d9V0^Cril#Mij^gia$n<|Z-0J*Dn)W#ptOKlGqLjYXF?Pr9IZmtLV1z}% zGv_lhq81(p<(u7oS5Nrn-1NVcnk9Q$7M3V1VwPVm4|!;Crg3uf^PQpQt)VnmxHy45 zK1n)qN}s2cCTC*u7(CPCs#ueyod1Lo-h^cTJ|mMjMzJQMU9be|hH6Z0@)J$0LO6d` zP!Q<7Ld}wJrTin0BI(Bmbgy-1z+;oVnTnx_r6~UVn!ygixquj|Lhu8_n(tMPm-&qu zW&8vH>qA6@^C?qYE%gRVXTXfz8tfXdtcVXEFrZR`qh=uF7yeRBgMxV*geRcY21SgR znh!!H2IE810^y%qS~5T_rvdmlOm_Z|g5Vq^@<&80i` z5(0$_qVtz#UB^?$)XJzMej1v#6+*w5MQM1WDcGovOK3cH(~lrjfS8F(NPJ0>Z%i)E zOG{3cQ&YR&-Q69MZfvkfl^f{&2|5D6hY)!R29weYckBix9Q{REinWYB3tD>m&Wo75 z9U+k7_kpp!n2`gQr6C9%6_rnSEr8QS_FMG#xE)Kq+`K#s@;cQ;eR!idY%zFS{ZV3| zLx4*C&nU=y@|&nWx7^GY-;8S;Zu(KmG->nWY7cw@x!2+acv-MHqLi2XY;2zb0+0Zy zFtD*-=BNsc$*Cty_wQKPa;Kz8+5VpcGF@aY`9H1$-002av-bb+!_voR@b|nxb%l5nh_Zp)IdM_-TnP>pT6&zS3MorAK*qttZp)~nfi?;U;|#*=b9#EZZJksO028kv>{S2RRKtyY5bNuT z>Zr<_)u=yJ?TM7EpS$S<`eTiu8zctm3=CN_GqYvwdm+g8l7Z-AJ{PlSv#V(sb#M4nj8IeH{vBN%4IKT^ zwO>i3G{6Xi{jjJs{;u;)`#Bi3Q1vtDV}3jWH{R&b^sojH8?eoilMLJ>Kq}M>zkiHS z%b)V|lSN7eWiu$X5B!@rm>D{3f#?DXg`nVk{BaE7i^Es;tZ!>x>ba=>&S^l?EkQf>>60fvttJm?vcT{`V__t);Z7OBaNnEl zg9d9N7zQBDp8yG)n?ksEi0&Vx)JJljDBxp+I_lsydH|KMnyzIB9>ANI%v}V zb{9(N`w44DEbE(22^g`ErJyw#VyJ@JTK#X1sDWO*;kNm!l35SIgXjd3wm`oE0t?}V z!ZLmX(+JO1eB6x(raJvkXjJxqen)gKfGP}Vr9pCli0+5_9N0q50G%9?CIdq=MKDv> zK&P5R0iNKOT6qtecUfkka%u-rZT+tQvD;2^CPgqaYC=HC1tXXcbWQRUlEgu(9lcru z0hbTvGlj4ZuWnwbL0LX9K)VrcAnL*RK8M{;Q47bxAp!t#e(r7--wT!vqCE+vu~xqD zWekqhe2mE&pt?dDe;l!aMr&_0r|FGj6U z9_#|0;Tphw4z%5FYyy;cF9(o*G2U|1*_-r&501Hc6WRknA@oC4!KVihhslNiz?*B(Eq(bINAOt%dfFwT zV~>~;I6rH-RfJ~Up0+RmBEs_mf^nzL{R^>pE!T}N!ueT%ZksWv6VFhoibbZ6izI9| zfF+!e1-!X(bPVG4L`Z=2{iF_bl1tE)aoL+q19yeZdA0Wrp51o{YG7f~YHBe((Wi($ zFZ9P|=y}kIS@beNe_~S$r$U!_tw;&9A2F+ei=Y2)-P+$4e-RLZpr@w!2EOL*gL-4q zD&4jso$cTcez_>M?bh&r&9q1|t`6`iFq_ig^umCy+>=xd)+~A$fb>#E=0o{}jh)7J zG7KSTth?}kgS_{N^IwYOx%&uEzaxfT9;CNkt%Dd46a!dCBkvcv-z;yx1jeaR>QFwbCOS5j&iYR=BXsSV-FBxLH^<9Zq0<0eJK!vxk=D)tcVQqdB0_P{7I zx(*R?A0c*m-L|!>S3oA+56}Jptv#Xy4cQ53Vs`j~PLU?TMq_u~9DQv22BI=sJOpzQ zI`QHdG*A>g*3#UA+l=tR+bb2wU5x--kV!`a z{x_e27(RILK)t{gT9U8?X(uNRa2;u&iO|PHZyxIkP$4OWf$(_#Hn_8bVT4$0$fOd~ zcz`lI+sP{9ws)v@&{hh@2iGO2<>p@mn7~B;jF-Wtv6`%6^!;~i3==GNnv9G&#h5f(Q9Rw5WY z1Vlud1-6NO77+JAV28kP%mtOE)?>#&>?|3~0dRr&KrYwSVg=*6uxk+b!A8+oCj880BHTNQ= zXyMt_b9cZd!-MY0H;X!+|(AH%olq7)C_H5VPjEo*ju3SI?KlhkLT~-`Ur7tES#Y)ZJoe`)rJo%?0hNF!bd2xSln&js zxa-%@y zB%Xo?WUL^{mb(5UwwCfnH#Roz%@E0e@ePDhW;v101b0npS$6RzXek6T5@#4Fng$cSH<$ zKqV5-Z!tGB8w67ViVlpZ=tfs)H3kAkI`7Ym{eMsVj-tg@P7V{I=kwQ)n5)MU3^7;i z=D!KSdH)6V%#bdK6b#X|fs8jdR~N$evzd8BIwhKbm389w(0gb1zwu$wt8E2ueOJmg zM(w}+J!HDs0cbgfKwbk!F^;aTw433F_P;i4MM|tEdejor=BICfn+IQG<-)q6X$WO! zfk44nLzqF?8;}zrc3fSZodlGWieUW%tt&}+<&_TTiD=E9?#&HA2Sa~-2VpXAPuG2h zqNWBa0-CF37| zF&yZaVe7>RyvL(ng(8P=5hOYG5EBMoC)Um2`>R>aX7-QQ!n^^PkG~M7K8@dHP_I3PzDzK z4GeT1rc+9Yl}Eo5SXtA3PhTf&xx-vq+0NCL;q86s{4D}{@5Vl5qy#P31J0@*Qhx$e zr?$4X9|Hr*slvYXgHu8(Kfq#23;6GjP=S=&%b({(z{nV!h&7xNyDFrm)UXBo{ z0(Ri2E5byS@-YA%lsumYFtL^dqaYY1nkju9Tx5}m!nQm88uW5?>y(15ECDb~e29^U zz^1OVeLsSs{{aM-yE3VA;EFieyM14oB(H;NdId?(@hDl!0`z=yxmFj^dNlo=l$F!^TsyT1O{F3tGfiq z$fSh$q=bnCIkjvo40BzNcr%xf{2phsJ^Ec6h-`9wJ^KYSvryuQ1sTchO4(^BsWltxDF`;U^5jZui+ub!TsT&G%#X9zD) z$jG<7b;ao`qJX8*H6I>vB`It|7wPTH9H8VY*_cs8r(?)E5-m6$tJCoHck73cK&8h` zF~8aVH#fQNGRFG1ucs%+`)n7KJfKQFCi}{bjD^J$V0Na^5BOD~XWjs10TL`pM{9|c z%bF12gBfz$uBu3f%Q~_;cGeIvsrTgb*B@>$N(UZ2c!lNwDE*3*GEH;#e@ah}5L1Y$(zYP444&m?e=Gbqn3#3b!2{x4l_KIXO9@w7A=H z`#E8$D2i_ATj*`7-NVFu{Nlxf$_c$KKSIeYAjtnODHqo0D2mM1^~=$@a=~Q12HkSy3r)xUe{7Y%UqAQ^x9&u{d1V zT?#HmMZU(bY|MaLNJwhIgttB*Dk_3Ny`B)09`5DEd2U`~LLHW1t#f|@~45`?vbkd`3%M@rxZf+pbJ z#Nw36wmHZva*^k7l5clncPXfVL|HtxQjcFzUREY6{`Ee?pMDPAW%;=!Nh%fVlH*B| zM2JyOcz}_x00UWRr|5fg7iP|!$%F|L>dhv9=KT5dj2%0c<;$0o`p1EM_4cEXyBBiz zL+(DXod;C~Ndn0zc2b;_j3cg(f&z#N zG!h#eK&VNJ{jM{r3o^Gu#t(35D=WU+#NR%%uyeYO@DKyY9uVoPMbd%J0J1~84o-rY z-q7S0h#w$E>l&Uw6L5E8b;?|@6p>*m;-aMpSyj<_P^{gFBmt_Bm_UP$_~1a|f&+*R z4#0TL_wtPt%NaPo3eK;FjCI02qBn^VwW?BRheA8V*Desqw~&f2;;KuyU=oKw{O=** z_h1b3u5FDMO~C6Ln@i?gft|E`J2`eovCv7VzB-z!Cv;NDIZDI^n`jwPHMYqe5pAVvZgX?ttV6q1jMP%p?&VR3>33y$w zxnvGz7Lb;2L!xm^MtTDY(Cc)xiw>quWH7oqM#cCH)^o7;|KQXY#cmRZw=HUzNP5r* zLC5Fex@SNa;BAW<3Yvh|21SJvITj9O7NDq&eLB)}ND`P025yQABQCfB{iju&aP)21 z|02k)vN&mtYeT08a}soaPeiY1)PyGBHIY~3WXJg&EDl){ZZ}ZkBTo!9(_axCn-R8YEzMZGsfH2_##?9@GEgCDqGTWNG~Yzwkdvx zig2gw$;jhyR-w1e5x5HBhdbfiw`k(+VN@BAVb@qVFwNW6_#|2qi_35+Dx1=>$Srbe z|5d%r;miVLMWtg*sP~L;Szuj1$l0s8OuWs$m&C=i^K0I=#HY{%{4#c5$R*ESzv6xB z@Ilg!9jUNgr`KZ+4k58+YvPkyTvgvcZ&-(-Ds<~R;2N#GI&v;$u=|I#47mScxAgyO zb|E1qJuSk$;Z9Lu>%)+}w_c-6_MCwOX%)BYbr5ETc1@vm+|~8HYLAGR8gkRM*;rRj zU4p%5AhQ5k#zLR=;(Y2C6%NgY(00&jWPNwuV9^A;n8R6xq!$#``^bCCs^u*E@ZDMwlr6=av}6#7pU2{=&TaB(E7z^!hRiF4=E`i9P>uVvXq=J|81`1AvI{&x-Uy*Po1bLYF! zg8IW&Sisv8|H9s_8woJGd33C*>`u>PKuQcATkn&981}skxG&+<*U!MsEz4fJWH_4z zZ?1;ryJ6HvqKz*zV>!IP4xSwZFQ!6}30CfbhyMwGcpVPC2KAq5Sb=Si!H`2`84&## z?Gpg@X5=HeIb&d0R5a1?3FWrMCN`&Cmu`%^>o#_-`wp9>5Oc6^=Y`n5b`_t#I*sg% zbRuKouof1$^>`{^ak@B}YoS$Suv?E+%I@*S5fJVZ@R(3&cEt@>ix}wD2HH=6Z+?OT zJB0dh!TAr?Lzfotk3W@dySpn)7z|Utf{jPuj*j(wP*oPyh>pDnZJ(;=&Kn+nABB=* zcXH8MgyN-XOTFGed{PTkMZspVly1+?xWGr#Co_Im z*(Vt{=r;b`uNxEZy_3arW>aLd0>Jt?>lvU`NoHJQF;lf(4t*$iap;er4Nfcc6HJr+(m3e$0=&2sEX6@qAN~MC-+VFNDpt&1rJp&) zgw%no|7tPUck9WmL+&9vBb}F@c!0G_7F5~S*45uK<&jjo(C`(jr{wc zZ}Q&MNdP1yw_xYG@7VCo(sKK%io())Z(*|(5)fE*VciLHKH}A-t7+AtQ$3u0?QzNq zm#iKL?L7U3$Yt#%PGrEQBajdQO^X*H9=iZtC&MQj;I`{vcrQ4Y4Fg^gqu{DovK{(N zhePM!zV0yMHsR8kz6?fxEZVe=6QljluNWIBD*Sz!xC;oXevaR}P}1^k9!W~IX~owZ`DthAYnRi(#dB$F`+gNJr<0K{OfP-! z{i&0%6z22lzgLmmwmks%KlLm#M?cE^zrVoExBs4qCb1QcvGC1V#3VLn)|V?W1&Vv` z2ggm|xd(=@W#uACH2*?I9&b*fZsxvVGSd6r=vv zhS%-9mhTqlFtnSSCNWFU8R6^_QNqoS@oNEh$_hoYXDXw7xA?OP+ajW4=yAuL40>c_ z>4-MxQU?3CZ>I0iVWr{?U@#iF`-#!)-LiolYgaSyp~oupH~Ia~Q5237s4C^wu)*1~HO;b})RuAC~QgCo8$GuACrh5?>j>b6o=L zI4)c?Q6ccyZSc}pu|bP3t)L=znX!-&LVFA^R6MAH?_Z zYXP^pJXhB0g%20f_QtNLsHFXRgpX&wNc!2++;nTda_)%VjvoWyz>cj<9)5SZKAc6u zg>dfFiAs;rG^G_;7t&e1@Dt9RJkEu)r#XG(5IL7J08kWhzJ2expC#|U!NzaDqV)}( zDY9AFv351L4jEcO{Cx?V)6L1FtiQRp|I1iC5qh=}7p4Qh!PB3?@eH`LQ<->!aDM>& zcnEsGT)q!`@%8LzdgaGxmjJ(I!#m%@k@IlkqKMZ{&lT^Nor>oKJTNGj;4o1Suzj~4O#S3b zCZrDJ?TLROC?u3FefkTV973eynkA9c_PPrFwC&uLwl{XE^cdeQ`jq)IUIZYiZ99_N zUeBp9mqE_Y`XbLP3X z|H}vogpzbGx3&|a*YyQ>WFCYE!Jy*#;gXwVu0@P+r7YeCZ#)dkc8TK3kJX~;nX1B+r6Q!TS6lezuXT@KziOQB zjeu$h__crs8uVT}c1U;x<6fJ~lt)sT``mcmUb%s=sAwW%#6)Jxj-41WX==HBWS0|{ z(^+Zkbw=75KAb+8me=3Fl#jk3G@>jG=fRy@E405o^#SHg8ppw1+t{+|TN08}xUS31 z^?a7~OQ6BcbMEGZn%lUEs1W%4Nipg8*n1*|Iwnj^W`Y=%zy7E4`#5FcJFje7;N(RS zwbCU8)=VltBL4AE#rBW)fk)@ThQsjXc4!k1ziV5)&8jL!-5>q{5A}jiMnQnFPN#is zn6GllY9qq0qfp!~2sO~YYj^G%K7#z5Z064plZVOe+7l5S!{+}i$96@G^?yG5h~YQ2 zX7kGB75X}N>IABy(BqCf%ZazGuz-U*wgI5XWnou62M)#@63WIEU$b}HM*7|3+oNxQ zAa`GI&50D}MDz;1+ril1i}1VgpNnmsl7w%3(N@U6BD(YKH4yTIc<)M%rVAIz(5~gh zJKqLB9v07CmwBY_?Jj)Y3%9_34+ytPP0U&$#CvpqSUASR;tdd#?BN6Y9)2z0dPyR} z_TymC1|Z&-&;uV?r(&yjN}gQ<@Vm7mR}(wPfUgmcm;Bce+Gq@MP&w=;QpTQuZ?0<|7Z;Yo}MfG z=6aoo)Bnq-V#I&>-{ny@^^VR2@%`O+fQErz3phYhxEaZdap30Q5JpX%1;G0+J%`6r1)j8M-3z$6oZbts@ zMqYVx1Rc8H!h|^=0kC(=hI0Gdp86oFqR_ENFPbDYb^pm;1B$AW=!s>CDG!U%US1+J z5dQhNc>d(a!WTWVuL$`&p96zlgANnn>Cc6q{QKuBANeLkz-Obyh`aa85I+X~_`2|Q ze>GmTS-ZddK9AofM(zEshvw1M+qwRr@XyPNSWf@$+KPV%+&L$#I3UUQ?;72W-xqYS zyA;-(yy%k!id9u5{mdyGb~~|&%?Jt&t8pKf)5*o(&f;`BNK9#s!C3Vj#)$)anRwq_ zJpGS%xpl}rRkrgs5)$EoMs828K~?GlTRMEx!Y2z9tEyPkV{?l5?%E`2bht#eK!;02 zrBs)jWcNw9c?v8XD;5j+ERq2tJHws3YHr)OS>xA}m>~S%ZKHxYnq_foE|jZ5k|dh8 zXjyZ^%P<&?G)<`@Ea3|N^XZ3#MnuxH5|@lGp`vnQtcOAy%n4$>`k`4qmjhgqplu!J zSxp8Z+_mAYHNszBnM=l}P-W=)rnjx|3H)Bb0oq1|a4Oe|Ls31GZ^MhIs>+N}50jsr z#fgLacy!_vi~+t|5nhKx)389IJ(*7S`blv711QRB^o5I66$Z_QOZo8ADVRN6ER*+H zbVg{F3Ne+e;rB!Q-Ukj~&`I=6jKrIhSDvE8-=Ck8%{~7+mOqa8vzINZ8XXW|kmwv+ zv+Jl{F@(Tv%kYoigLup=fJuLVzxwjcn9cx!ad30>`Stw?zxRP(&Z%50zhroBF^5L= z=p~7MEt(Kk|4F55$MFwfr|(|i{0d1YqJ#$S5(OPJKr3ooo|K3nuJ_n7GL5Q`Bq83t znnig}ya8H|f=<)%hmp8XBk6^B_gSfl_Z4UYeg)S>hj3$T7!ullTW=r%MoGtQNzueq zmdDi7bbJB2%_;UZXuk-LBN@OD3U_RPxW3-D#^=ynC{=K-z|K$UxyUL$7oE~rktB&= zqmEvQQG|GN z#RZVH5&1PC836^_j)hKt2cs5DPzy8xuPYgrA`WF1kYjh2-ui3Q9;x_4YZhjveRPQL z`MT>$`Wo0f1+sSwpRHDCw{A#AK!)T8;f9wWw2ikdYDj1Tezjy+ia4BENVeU9PC|37 z)PPt(q>>b7rd?Dc5bi5U|4vj&&)OkY3u>;F>d_fRy|`z;+*wHXgU~DMnK|Vv0dX@(FEKb*jzH_3hbQCx07dgph`l} zd@*HheV~)Xx#@HgalrvJ4-F(fII!VOOu7r}Zz7KT^g_t_srU+KXuNI~ok>LN=mQ|( zPDp+T5{G~x*xQyhHZ%cuHx60hqSe7gOA!|=cI+-itnzHYe)AH+mVnRz0|~)_#0Cct zZ8oCw)fjGHp(qP7)5VY$ZJHB#6+ax5YNLqK+_?RFaTnH2Rh%) zblC{d1l-eDoHE%q2ibNfnbsom9WGQ=#6wHPE*D?H)q$MNU`ddt-lPHd9r<{97FG&QO z^h5+02{joA4KNU9G7xMs_@6J^)5vznI|TWMA@3mM9)#RIU_DBTC@K!ctjgC4U{N032} zQ5#kJAgU<$W;qMiG~rjbrGp~}99dw$Bp#jlVub7}E@3Yhm5H(5TsC=V3@u*u7zqJQ zARtyeH$_2EQwU0e;3NoYF1Bm