From 6f3e2985a4b19781d843c38c74772aa4d35641de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sun, 6 Nov 2016 12:14:39 +0200 Subject: [PATCH 1/4] Create presentation template --- presentation.html | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 presentation.html diff --git a/presentation.html b/presentation.html new file mode 100644 index 00000000..b19c85a8 --- /dev/null +++ b/presentation.html @@ -0,0 +1,45 @@ + + + + Title + + + + + + + + + From 4c24d99414e55fa8cf8fe3c068317f323350f762 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 12 Nov 2016 22:44:08 +0200 Subject: [PATCH 2/4] Work on Hexagonal Architecture presentation --- hexagonal/README.md | 4 +- hexagonal/etc/hexagon.png | Bin 0 -> 51788 bytes hexagonal/etc/layers.png | Bin 0 -> 15887 bytes hexagonal/etc/presentation.html | 95 ++++++++++++++++++++++++++++++++ presentation.html | 45 --------------- 5 files changed, 97 insertions(+), 47 deletions(-) create mode 100644 hexagonal/etc/hexagon.png create mode 100644 hexagonal/etc/layers.png create mode 100644 hexagonal/etc/presentation.html delete mode 100644 presentation.html diff --git a/hexagonal/README.md b/hexagonal/README.md index 33c2ba9c..30f70f54 100644 --- a/hexagonal/README.md +++ b/hexagonal/README.md @@ -23,8 +23,8 @@ Allow an application to equally be driven by users, programs, automated test or ## Applicability Use Hexagonal Architecture pattern when -* it is important that the application is fully testable -* you use Domain Driven Design methodology and/or Microservices architectural style +* When the application needs to be independent of any frameworks +* When it is important that the application highly maintainable and fully testable ## Real world examples diff --git a/hexagonal/etc/hexagon.png b/hexagonal/etc/hexagon.png new file mode 100644 index 0000000000000000000000000000000000000000..e2d14e91dd692d888f85998087c881c559191900 GIT binary patch literal 51788 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 literal 0 HcmV?d00001 diff --git a/hexagonal/etc/layers.png b/hexagonal/etc/layers.png new file mode 100644 index 0000000000000000000000000000000000000000..cb5a9c90bbe953ff87197bfb1834c34fac450f3c GIT binary patch literal 15887 zcmb8Wb8uzN7dCq06WgBHww;NMiEZ1qGZWjI*mh=OPCT(~1m|tJqm}7%q6QJHz+y;m3=Yd)BGjj zK>d06z9dD!t~gC6(O^nOHb&@xl0(?!$UiOdvCL0fV*BITat2s$jLO{%Zf<}fe(G+F zI>{IRO{PYB5mSr?646bHOlGw3)IG6Fhl8xXdKr$JysOr~L7FO#_xepEpnzV%)@&)j zo<2a@Gd6`Ew*1iZNa+*LMaGs9hh0&cJO&>YD!eLr&a_71*h|4{c+uEqCsjzR){l-h zzcm0RpK^<7n+oUsT%fPtUFdJEht835TB>ZJs=Y!@h`Gc7`!FsnovP7dpJjoZHt<20 z&Z}#VEo2f&<%r@dZf&Zuey2BtoVYy^J^~U>v^ou|Lb_)(W(oLev5ab`>ASKG?18Rw zhDx=}E;yK&FcO`WLCk~yEM(K(fxX`h@TZ!u{JJp*49Tm&zEQ%>8ANR>*odUx-|9um zL5M^~`6YAQPd@9VkLrMs`|@AjEPoY=gKGDQAJQt)r29ByJ@K-sr8Dr zz_!!A$jcm2gw2SOfLj$iOdoujb2{8MtdM7clV`mOK5=$l%JaEg3b5<8wVM2oAuL=vbj&t2H+Vw>1Q0^6$s&8<15i0(Hk-5z8XD(jc9Lcn?-|VA^(W^-ffnep~m@zWsv$1o*Vr3%b z(s(-0QqG=bO|L@}o^~SOaE}#t6Jidt!y5 zw=k3hUMSdng*dEo%_0gffFyh$yKxCBU7S|ldSuF7t?~V((IP~4n|U%Ivq(R#Eb^Km z_Ik94EFqQOJ98H0Ot^&?J>pAChy*d_G7O4F5zomB2h7i(fEJN-L0Fh%h&hM`2rLVj zhirpiWRmb`fd*^~_YNY;!e;9*Ml{Oc3rNvuh18_u@o1|)Mq(h-&X+LU-ZEz+BP98; zxOPbY*Uj&|6&`;#Y*x$)Z{)4%m{TX75AsY%p*X-a^9|rP1ogav;|;-Y7n11$YfmJL zn#;k#GjRbhTmE_+C*;~9H!X`czGo#26bZ0d1^L-2`)JXMWonFp+tJ-oU?8EgN+94{ zST_)vN+=qo{rHlWqzbhOnX};=V7q<28dJ}n2+|R zB4)6r^1opA@wTYxEq?Q&f4&=(f8ik)AQ$ju_x3!xsVxQO3oOIaMm{s7JzJS7lKIRz z%v}zq1&mV#YIjOqF%f3nQSK^c^;x3h5C(|2_YIu)CD8?7PzEB&d(Yk>%LgdmML!ky7?biQfr;W|Cg#t*0fhgeWI6=FpK5*!LY;pP^iyaTjynvYzNBRxN)C7jKD3Ij?Cb|icy5&z?!a5gjZpNUjYgd z7j$v}JA8M_%fv!;83EZQpIbrO7jKw3mATo2uvFMm;YIb{TUR;{hET;o zY{s0(z8AB#E!9Ez$y}>Yp~Z6%M=g?z&98lNzqLX+YN7&X@Vasxd}rX#4Xh&YmFu7C zeu;a&`WWvfIT+cQ#Hq6_?V796uXnGbxCug!A`=y=|2lAVO(uOA;E;QHF|pOVhZ*?f ziSV8rV7A>^vs|qqZJ2AUH#*i>@9>7%;NVZpNQJ7X#t0GghiJwR+qtQreycNNGiLlN zoM$A!>^n!YcjUUj$Ct(yesjU$`P4?SNwbcc2If^ht0c@+H9t6A5SV z2iE&h?w$`)Ax_xvzD{H=Z^NSr>*57!#brR#&pA}4*n9m8uv*lNr?DS zh^sv_XuY+YF@GAl3>TU_W?hu9Ly38jn^oc-^zueB+p`kyNT8%Xd869#DU0?SWGw5F^7-MfBSbCII0Pr!s0jMmb5G>gU@S3rD^}oe5 zN-=Ja7u@oI#Xj8-=6>49NA&#}ggQ;2KirI)Cw?{HUhSPr9XA;|uEG&=gnmIdjTgN1 z2HI@^J4{uZZ?2;&0&IOlYB)xU?W$@DGaqE>Qi`jV<<<7SZzJYCT#jm>2bEqgrxtLlMK+%kuRd_yrjA`So1_aLAP976DH za+Lny1~Jy}UAF0R70H19b2;BZ>M?t$i)DQF@cjaZ^O`}yU!)oQ>b$9WeeKEp(f6WW z&f5a%z%EU{&ihnQD@LBH$Z`=SNhvOj;EOhWypgtDWv@f!}!y4D{&t`PTha)pN!VW-pcvmp0D)jcraMn}trJC#62Ro%dN9OCk=*!|X z*CE->-46u%6_$`z*{ae0AubEh40E$bSab7+yY%~@w1#{YtyU@UDDoh6ao(Dzqb@Rz_*pd{dFZF+9wk2gNRtAD%$m%M zhi@iaz(z#0(&4q*2f{i`4K>Sh)j#jGIyyVCZVBFoP;k3#5olawB+PX5gYG>O41zN0 z?GIG$zM7(XciL(t)8aMa@a}zu3s?02b)~zv0vdcn%G{F~gvLdMp^=icC)aN`As7?y zmOLjM$b*G>WyU8y@XTqbfXTxdUj?2s{fTq<%?ukd24a zgm#LwFLC#h;)amly$E0eghm9wdr2IA^3*|otH!G3z>CgA48ES6YFDCFUv9d??h<-t z2!UaKf2T-qwg@aN!)XTI2nrVZB(pLog_TMx#ab-`irw^=rz=Pz4=4w_yBPR}+g262=C*xXw+3%B9;GhQ^m+{hw-_iR; zRU4rTj0>mS7Xb&bXL9NO0=zBFOn>?+@$^`AO;-k{WprIq~VBfxBO?1Sd10 zEIEwV?{9j-VOLSpXHm%w|xd18(DKh54 z_zQ&B3L1noN2K*nj^oyH5skna4o~qwKgadDA?NlG)ir-N9Jwkm=OZ*}5ZUhZ2aEm&C7h!zN zV7ES>D`fz7succ2Dc z>u!|x4u6&~MCdd@e%w8ugDmi%xj^~Qa3Ctyhja<5bYxTIK z7R>x%<0{yM5!gD}j?EZMGa6Z)MtJPWYsT&5y!f>~ndcHhs~ZdOPj7@GD@7V30~oH2 z$zS(g%+>#GuE(|43zZ4v^A=dlOC2(Jjv$&o;vj-2n)!PjE3tnzE_?c+Q z+CB+~F*Nk>)eGtJXI~GVF*rUtg>;875K)#EZ2rEmTrU;mq+g8}S~}mg0U+uuakLHF z@}9hgz+bOD`Z#(Xenr6f3(s_a+PAM$G}?a%abWm+=)-cZl&JRby1VRp=^)_gPUX8h z;>`KE!qv@f-x+exfGT0;PEq^i&DBCV8;cf;nZQSxVq9K8F+_P!Rj1gIwpo&6)ji_~nGNDvT8UrO4^DLy30b>9}h1DRN_cnlQs^rLH;6 zc!tUkmEa&Dl5NS8x5e>&@mFm>*YB*Q*S(M1)|LULFf43~d8(A`VJnbJgrXmgmMO^W-3cF*y^H0ul|HeY4 zl|uqs$yKDi5Pl3bLvnwP$IUc===*!S^SPWL7`+fT>~VBNxlR?0EybL3HRE@ze?^Fr zfwHBp} z5p-@(eoS@TYIscbT$<#9D>apBj9pk`KrII#4Qjpx=HJvBt0KbwdwUYdv2fwLds#{# zNj@b(8;mgae^5Czu;h#5{YZ*0IJdJMcD()?q9U?`r`OXr>#PdB{{yE1#`fYElmKL8 zCeQZQ88iSxkk*(QRdYzH^Y7e@I*TQH@qKh*&ohy;m~|vgO^+wf*QB{bP?;eKJPU+c z3p(X0x`icSq=3d(WDE=GhIo4qu_80r-~26wZ*Mioa7=S-m2ut|m&HN}?3*I`28a{EI9O~{GBJ(>U!>FMKc3U(b}A_d zR@WQ)2)^`FJqst9AMgz#p926Q3Dz)bw3rv~*a;x^_`($&1xr$FE^q7)Z|)DDVs)eS z+k~{!tn{x69cEj=r-(8nii}gk|FIh@I#8x!D5MZbLj9vK@F#Ug{=_WQ9WRu34*0R+ zzJGP}w-WJzcky{5VI^vx0*?RduGC1tEdY&}JcBYYFcA>VMEQ@8ty&1X_lcedN|uQ3 zgzS9*k}TwDd|H)&+NFkzJPQn41#4CbD~6$gf;HU!91$&1@8g<*;pALo2QNk?i32dW zLQ1>brTD~uC_g616buX&t1aByr4mEac41C{7SfiMmjBP4ERBEo%sJT@;I)rej+9z` zjKHt1+`_7J7)GVP6DE%b7~j!1ZpGYb96_>O0ASRU)>=;+sPM= z!e7PgPr!Gk8bxI{4AVi~-)A>_3ZD9jVlH!smTogvxBH6HWcAHK>bNgG?CI%q$lF}I z-c}3Wj$D0fOSi{nPwsy&44?F$Fdd-`h8`!WRW6ZTm&{rwRgH&9R?w(0$quMc*A^d+ zxfoO}esSovPFlfP5~J@lW9Ve>Fjm0DR4yyrTUbHzVLqp$GRuLn zAaAL>eXUd6c6PZ6&6;TZO)Ky_l8c`>?WfSUAB41NHJ(}|aXCX^{)|CytthqLZ)^*V zH6NX2ADyJt{28Bqd=ddFgjI^7FM1zbbO{V9Sw8hHjAPy@Ek7GlRdZc?7=!B4xG}~C z6lg>8Y-W9UAkQXgbk=_%&s~b9P!X5(ORazIutI60e40<6x&zN4l}Ku! zsS!R=te+a%9}?@^PJO)6u<^K$^E+DJUiY6U*($Z)E>lEz@Iw{V4Q&k7wr2Zv@RYJj z=|_&C-$skZ;Ts3Q1y3o{LMwuKyQGQ)JUBQrCMKPHQeJEt6}%K>3xeH?HJS`Xw8op% zkQ<@Kn=BR!IXc4*1iwTe0%L z*$S43AY3*X&Pp~F7}_ij?St*jqNFV@mf@6DM+fhiK!W()rkOwLr3lBC2h0-Vt90Z> zAb~t*z`|^!a?;mgqz%K*$?h{fQ9}kN_Qz|P_v|+#wV)Rkvn8wBM}_ptt{fMjZSinx z-uCndwuf1nIF?V|eGV<#W~2}tNsKi-8N8|;yOc)s_k`ptj-KfrcvfAN*O;~EDh zXyyqsn)k1Od59c}+$BYM%TQjpba=A|ewgQ(Fj)jRH!ZZmM7XS81vwAYqJtq;HLzlxE(B}0psg#B&p=YxXn`_qY<-F+gQk)mX(KXxX5)Fjim z=~FhL5X>m0x7wjTc4)>32DQr2>=w4LQL@~T8Is2H%-sQl?Gs+zJVf-s>d^RFLT@3! z);@E*5O&h zMXWWuVOyD+*kQPl|DAKX+MAIZw2Bvj_%&uMP0+ zS;>wh+v2alB|G5ls@d=*VtAm9UT z(L@7onIi>Y7cXBFgUp1cYt53s5vwsbbK{stFLJyb5ov>VWq$yC8{{jOf2Ij{{-=Na zLpVQxbBQ;k(GWiZgWDo+k~!iA$9H zOX~7a`@ah1UOm^Y6N(-11Q-$%;mjl74891FXJc>|#3aZwGWl(2-e z;GCthTW6{gh>Tf<@G=iZ1!F$~&yYnlw#KWNk&eSE9sMVgM#g*?2!i1h23iZiYu0{a zA1W-sM64d;Z7Os%6{-w;pFtNcoD~FoQeGk1O2TuqBZ|YfHzmrt_XVE|umAA_iJ&Z9 z5Sbcs*{J)X{|jGAG^mlC9mF>i5?upSMm5NBaAn@kFNf`EKMTxwkO=0Mlk%oo|g8A82EaA!} zAv|BX{*x#{6+9AH@uXIY3ESfLvk0A}*8-Jdd~{(yPZ)Oc$1~VY3oQPt{A1$G57Ji^ z*fZI?_RX7VaG8!Ch*2*8Ak8@MtD4!sAOC($Xw)>5qOT56y!8xQ8z6{bsb@*#M_d(*vxOcYv(=5!9(h^B>Tp1%P>Ju;)xuOwWJ}0;rGxpuj=8z7k(wVZcsJ9;*c40$4F0FAA`_Nue|# z{r%oGh+)d>79qOHXXUd2f;a5o(Ag@p$~pp*Sqz~lTCGXs2H zoG(;ScvqxdK<>y96DQfT5f){@I^n$FdDPQu#gp^)WgGe@N);A@=s60pFS8R_LqiHd zO-zzUz3I1rg{t$2>&6z7#}8S{`9ex8|7U3XVG5(0x6LaO7D7I*SdquHOwtDhv{L$~ zoXsqOYmT$`L%3AmM=srL!kHdB!rZcN-yw*ZENnl_xqrySjox^7&w=}VwolAMKeg|U zoQq3SaB{z`4T1lC8dQ{GG3$4bmLBU{el!?p+h!u;o@wl3vpRPEnAk7(gna4THL~VB zJ0nlO)^=cbAh7j(Na#MScfA)}Ue+4ioJOQUZZvdY8eVFI{z5(jzxh+(cfIkmJl;H_ zi(mkuhK9zI)41}_RYx3^3PkG&Z!#JRbT{jlovd~TosQqiue89R;@735w=K%9ftQm( z;V>E!J|C)u%1=2cOtBS^f6qInC7zyjq~r9FEU0{*I9?&GaN(%!t3$<&Lk^fG`$~Ry zDy@GTj>GRn%8TspEvq#dTfTU*p7eja)8U>v%Ne+2f%w=AVMp+36lnQy!h?|VOBf~g z*d58yn|{;|g-7)uNz&RK=&1lAUF~@ha%06E=RNE}Zxk#_v)f>V#=Mr{Zhbm$6Q^?& zcqHw2b6xRxa=zeXr6P;9PQ5hNy&&jB83f>{m%|U+xx1ubc5L=Mg6qb|OAQIJpGPfzpE;f6DXYg0s3`*L1J za&Q1)dGYhWlTrVkYh-#gsQtVCui}J`8w+O_m+Qp{n>w?7M_FtxYXd0KMAuK~WOVy| zbig>5w?ja#AIK-_N-RI(O33oL!t15uKJXS7HGq~pM2M#^WN)=hp7U9~>}&}DjZE@D z?QwUL4=$g2-v{BYl}<#iGumb>h4=?A$U4ddfcNbi@1sF9GPIj`@AhWFU)5&EyVh%9 zFN%#gpy&o@NZYhZ@aA>}=j~=SHIJ>H+ns|EZ&Y->(|BKhG~Q#WD+H*pT5O?^&SM+Twyf#iozB9oX(lii|LwU&cnP=?5X66G#Zowi|HRr&V$dX|aK^%OutUv+%MPizbw|(t43|!>lYKOj9`m7gzUw-J% z-1Z%J7cf5BTQNi-a?x7i<4q34k`|=)|>e#Nar1=YuR|s2=?|3;E!Bq+)<<^ zOD1QpId!%#_|O8z=XRSusQO+7sEhOjq4|q>MP5ZDy30Z(TG^)_>Cx#~urur0QLnJa zKzo7FpRS6Y(HUn_6s^QgT+<@CDdCANs`skGymp+%56EH7&4?!)$I|eDO-dGvqI#V~ z@HesBXl?DhJG&KYb#K4Kmb-TJy6(Mo*aNIM86}3roLqR$&h6TD2?d=9K^~ie4fIp= zPmlYP6>q%DwB6=T2X=X97lCMiJhCV>ZM;=Z%;Ggsl`c?ERjYXTVX)oTQm<6S;o0(N zoZXEPaZP3rJ|Pkfnr4A272#s%ES8JRDAQjhoZJ_f=0_VJ0-#VESF4-^s~|iCjS%w6!1N=hqmhRudeH`um8kyAsokt8AwGe zr8ySra$L%XHa&yO<3VoSfN|cNg&mzfUi~dKk^VXvUeyRe8FvvZ9DuxV$qb@SPMcf$ zqR@)JfDAV?YK=D`=UkgEZFgWanr8|jV)6#a{M-I@<*)bF4@=KzWwsgE8R6_{i)_k8YhJ57n4kq!Zur=v8T}UoYi62?;?J6O^s~!z)=tOSQ4ht1qv7XHCnZ-Kt zKKWy~gmfdOrFvs|(7j3W|CpMZRVDhGk>=ePov*yva6`wf1ZwYgf`V)f|KCB?d=vuHLAxTA=)mJ1%Y))7)) zw7c!9n?be(0`|>uq68hX;Xt-fow0^cEYT_|e9zy6>BEnxie3HT*y#?DiW$SLBe!&c z9vHkowLwOC@1crPuA&f}0d`PwI&auhy3vEVaYc1*hdc-b!@zuabH$_nOOK0QaF`Z9 z)5Ph`kB&&e!GOLd#SY__GCi*kB%|G#pGE-2i#$`$iy|7nt6?do-EoOd`P9ev;Gieh zgUjU>YicGcHq|IRhTcA*wUK=J@fq-!nVQ2L{y7~W7dCEy|KkU6y*n>DDP(o`j|iR9 z+XRF7+bvY^yFg;me8FkHI=A07C*yfm=$0_@*|HmvgKr&{3*|!}wn@j;8`q~hUdV{; z&`;REEM^mQ|NLlv47>HPlqhXi=lrhh%k9NS8Rw7dLdBwD`sqA-`uDQlYM(1bh8xm>1l7$kL0i#CeBcW zw3sR`^s5J(YL@qTO(PRKL^}l}bNYAUmNze~V_X?eA6}yYn4GJNK=*YmzutZB#Wz>9 zX0dM1CWNfPPj7GH@@AfN=0nA^RpOu)2GKf4XQuV8oY)H42Se%JmhiWXBm%y3%^n;+ zue>~(8q1X1V#zq)d{`saG`+^)p`6!xaKbe$My>rj+$ATpCaUt!M zjtB!oa}awu^;I$P_FbyRc=4v!h^{%Px0ddLqIgh)wtq-DXZHG-*|+h6x<~g7du|Rh zyURS`5}MA2?(CfkjxF_kpR}MrglHY2a{Dxz7z>HKyL!*%GR3Tgfrb=mG|FQe^`&yw zDqm3K>H)qq2{MlScX}cVDW741yKrtwe47sHGk!lpSUm}=kQTgpwZoy!|AjNEBDEOp+D)7h`JQ6++>3PsHbfFSCV7lqH_fYO9r_cnlMNF}BO0BzR1=soHGAw|@Xg=AAVKVyOU zjHXBm7>aV&L*~QiLZcp;4cuO|c^h`J&PtpDk@4Ih(q+A(&>j0C^A32Ln+ZvSNO7M`bLN0k0gDCFlu zcWO0}M-Ala>h_a<{t7A#YR^_vUA8U#}KeDS1Q_DQKV1nQkm-qoPu zA#!pms(oT8(rhTuer#xdzHoB%2{ooE;@69>7gfXM)HF1>qobpg3J@tgB;=t};9qp4 zTM})Jn(M;;IByHlu;7l;(3ArEh)DZgv6Lv{)(fps|0yy`_K+7Nn_?OooZveCrJKM~ zW%BKj?b*7P7Rm08=E#>(C=%>I-Tw)$I~PM@jG70%Xvxaa+a*``*2y>DK}DzhMl}@1 z&NHghh1gjl2@>U-J$4A||K*<9z#~{;^-vfkuJi}689~5*i5DPox12DtGfOEEu!l^B ziY!H`$6YFgBT;7y-JJZ?|~_W-V{uKPhKFDP0n8yeQqRns`6*^j4fX zJ|{*;!(?()ONF)hbnrpU;JU%qj^gF!>^^Tosgk2Z^qzx}T1wORnde&$7>th&tZk_K zehOJry&NKdn^Tl9v|%jdtM;jpJujGxOCHk&k5g|7hmbz8jd`SO&oYT9ib3-?n?wnd zu1TvREvzAmtjdJ8^<(0FLcTBG!i2gwMu$lyJQ8?)$v3R!VKmIb=ZIaMb$et~mnny*94 z{;E0qLH#j0g)v8s_Plu$G5Z$Bc9zWhBz&?p`DqTFlhS{K9_wR8YGi}e#qWi-5KXR+ ztU>HvuZSN-R?O<>HLS;)AStndwcB@NDyg-}=(i$@FH2ig{t6CqDuDq0jZ{pPs`hwg zr0dQHql3R_Zwgi3+(N`?21#!V(gySjbE=5T4aRtI+ehhK^f*UrwJ{+pSKPHr35_QG z^nQ|+NUk=K#I|1Q1F)r}xGDGpIF0*Q?Zg-NTF>8>HK*<5H(?iIh%akR*C-L(Z8Du% z>Epziwld!IH0TKLtFH*4z?6QBkrI{@-l3waVk!F||1X056H}f4e~YRA3t;l7b=2TW z6nppzhBYc=w9d@RC6T>&Le*XkymDZjv8Q7<)DDDk<6QO@Umu74)N)@u*{yZ+9l|~s zqqH)7E%#sE(RM!2$HRGUNbR}4Pfl>Z6D91_+!!0EZ4B@0tP4104ZnOb93P{DRV+{l z?g8$@zT2*E4%|M!Q_PL>3vk$%IpIg!e6L5sIaIH+dp5%kvs1q3y7&Fsz@(t6(t}A# z2R_fL*i(~rh2577aIJL* zvx)?T5>ZJ}a0gB6jo&(b1?1ZvcMm~B8yk*>dEXO0IyGoe8a@Ek$$Mh!j8Qp+1nsTb zZ(z1^Jh;!Acf&99ZFyn-G)M+4@jL#qorAGWL@?p9Ex7vC`Ald&eB94ZqSg+`R0cwf z78j(XVSDn4WYsD`6QPhuU)_yGb8WGQW^r0~R>#l8lyB(mnX1x0_!?m(40haq6jKG~ zu#^SJjA&OQcMNjO-eWKsUq5 zl}6L28IGbM86B~0g(odRyb9tYmC-=G+t1eVr?g@f%DX4VjqmGIZzP`+e;#0&e<9=8 zV1R=e$N-H{tQq!$dxPGJU*_?+&y<(B{e&ppcI5?s9JsXyi?ay0fh9qi+{7_lsivwZ z{-ALG;$Au8PQviP$Y{4YQZ({}kr)I3#{s*m#bVMUrIXf3{AtM168z`sk7YK%-FBJ^ z(BgUJ(Yy47CmNCPOWnlsH+kaM`~omUMEW(P;$OdZ=W6-n(1m}om{bjmnyVXF7QSdE zKzW>4oE%2$1E*wUhT8L5uikaTbNZl>4ez9yAY}wmfQTOg!*wWln65g;8+ z_ZkKUF?8cAuw;=z3|S0cBGjcv$|Z9Zr^i-1OtgzUz*{u6TFI=xf{!F08_k)tdW zibNvfuMpr08v`r*W%Z~pa(6ChEx{lAVd0)e( z{Oju)4SpApMo2nZvL=5=aXM1^cm*Ip&Rly5LYel*Y&O-I^~39sw_$NW#Y?_))6L&pqzs+ukTTic5Y#=oS038sXBkP~h#q0Cwg z^M^~Ov_axr&D76cuOsxe)xPi}u|N{?>deLQ`lc9YnMqw3^(7NX@ek>f>}&=kB_#(h z&RgK3_OVT$zy?yPTCq06$(4>!k{gXJ+AX_X@LNB>kSwg>KdPwCQZu8dzTS(-6U}8$ zn?a;9{K|#Lt~WkHLGbT^m}}Ux6tH6bwp0TZ_AM?1H3@j-DAmd9mROivcCBEUZomXZg7gywiTc zlRO20aHpmdfjsY1#4ptjd&TgTxG4H=<5q!7>xm&Q9@JM!|m;jN@d~1$FRp=Q)bbFAYH#94m_Uk`T%(C zo<<`9t1V$MoiOdKdm9=VR(%kfUuF)gFmYC%B_@cM^Ok((dw;Qbze~m*-=LY_pN{W) zy(#L{A60{K;}M1s#iSXpSJfJNZ!RI6cM*7CpIb~x)|TOb#Zu3FT8J^Yl{id*6)ycg_MS8qO@ zi22i5qYm%XV`NZGJeNl=5fHkY4`K6Xhg{eJvWTltJ%wxFJRwqi6LZseFNVp`|I_~s z(froqy#MWQz;-9;rD5N^9gESayWII-_^F47w~xa$|9+28f&nICzsRXLd}ps--$%yP z>D-81hAfl$$n9{hg1F5N#Ch+>;G%BA0Q;Sm^QViv!R6~&>aO)RmTs1~jdYEYGc)fK zG4UJ$n@j+>^`f}r`Rbo^Vk>^lKO>DWWJNO;!!ohH*IpAoMNADpWcY;~NE?38hAQTP z^Wo!n_1Z&lCU|a=EJf6gu?pt$6{#*-; zBirDLy-nCFIse-LwTK*$F!IT6pagmYb8Ff!(>Zj~fC0XsoWJWc~%-(5s88yNVuS+PwGZH$~P`P`!NW!2#Ho@4*y zamHvtgYCh8>N9Cd%ormj{SL| zCc(nJ2CcZBq2irLgh%uwyzo&|qJ@o#|FKqXw>!)JI74G_%h$8UCbxK95M{!#EBIfq zdwaSrgw0pa;;c)OroSanv&Q@{8|x22&=oor9D3lDN;)(m{=o2`lyxC^x6h+U6W*P+ zF9}$bUX|WAt}hD}1OF|cGh>ajClwlXsmn@+nklengVMCO_B zeggzHSz-QS`Ryh!RS^(xsnqGdU&-(l`5vYoSPxtYf@_4B<#PB!$H(`X(+6^lRuvZL z(8;wv28Wn3+kaeL{BMVPA^=S>Vt1hM+0n&GGAG}V7kH*TVyHavWfXf9dzev3gb&4! z4@-OH#ur)GlQg!s6&t+E&+<&ngczRim0zTqEHC;@hN7Nsw$*`5);=20)wOlG|8*7* zqguqFqmWB4>EG6)rr;*P#hF9M|IlqYWpqO_PsDLIHiM7}LkG{&(y0K%sNks+HRgx|l2Jf88@NU_PqOD|H$K{J(JwkxLV@t#e*^ z#ubCT8#Q(VDEUtb>IU3>yPqbmLYfKWhHj#hGhg*RFX_w@joWo=9?-O$C)4xHdb8?Z8 z>Z$@C!T6+0-rAJIBuzZ4f;GxQMCm?qb+-Ji^m`3W%n&o|o;P&PY;7#4=SIfhSaoO) zeWFq@&r0S*cZG5kVA?gt1E$p~yjJC!Wj-?=bKWOQK^ifllnza(Z?*P^ir>dbKl6_7 z$~(QXz9>}AnJwb6DH`n0>T3CTMcfgY>eMu{y`nkmg2jCd*jk*3xx4-%|3xi*xfCi* zo22hmboI1yL==k}b~O^d`v-Kgu6hxths zvIGWJjZG#CpTVR!wdnS_|NbC=w^Oom$)BS6cO23sk(s`lCmg8->VAmZPr0G&Pm12- zF!Rc49VpMD*x_fy(7Uz$6>3$lWSVNFQ-JbAVbi@VB2$39kYOXe12yY9AD$r#?Lf0Wy_ zUNOH$z0r;Hv0b!`c0mp9%$BqCGWm9dE`|=xCY71pv)*f~<nMAz z`FLSh(Us0&S};vmi8)QDCrj0L!9J96^A9%+j-ib!TDB5B2_e&$3FnisD}WAq1HMWq Kh}Vc32LC_vUU`lH literal 0 HcmV?d00001 diff --git a/hexagonal/etc/presentation.html b/hexagonal/etc/presentation.html new file mode 100644 index 00000000..46e26c55 --- /dev/null +++ b/hexagonal/etc/presentation.html @@ -0,0 +1,95 @@ + + + + Title + + + + + + + + + + diff --git a/presentation.html b/presentation.html deleted file mode 100644 index b19c85a8..00000000 --- a/presentation.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - Title - - - - - - - - - From c850295aab8510779b60faa837697b9478f1eda0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sun, 13 Nov 2016 11:23:22 +0200 Subject: [PATCH 3/4] Add new diagram --- hexagonal/etc/hexagon.png | Bin 51788 -> 0 bytes hexagonal/etc/ports_and_adapters.png | Bin 0 -> 34860 bytes hexagonal/etc/ports_and_adapters.xml | 1 + hexagonal/etc/presentation.html | 24 ++++++++++++++++-------- 4 files changed, 17 insertions(+), 8 deletions(-) delete mode 100644 hexagonal/etc/hexagon.png create mode 100644 hexagonal/etc/ports_and_adapters.png create mode 100644 hexagonal/etc/ports_and_adapters.xml diff --git a/hexagonal/etc/hexagon.png b/hexagonal/etc/hexagon.png deleted file mode 100644 index e2d14e91dd692d888f85998087c881c559191900..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51788 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 diff --git a/hexagonal/etc/ports_and_adapters.png b/hexagonal/etc/ports_and_adapters.png new file mode 100644 index 0000000000000000000000000000000000000000..d285045dea68721c586bbfae5d303265f738eea0 GIT binary patch literal 34860 zcmagFbyQSgxHk$T!XO|F-QC?tcXyW{-5tu%NVl|fcXvw&N+{jZ4Bbde+|4=PiSMqv z*8R)1aAx*?>v?|lMyjdEqP-z}0|y6(CNC$Y0S5FlfqF0m2rn`YbcaVK<&(qmJylY8+mtlrF2i4A zBK>rWJ>pK87dQ|MK~X-}@RZye+dt)d&55=@l;ab_kW$K|yM!j#UePDiU(Lc-t48UH zsdcpPT3pMC_Q%3iSXkHp?Caj1Jtm`&Ut4eVyN5AS=_E!UGl#)>vby8$__af8?m24- z**`v+ac1wr>{OiOzqQ0MDDhWo-`t>SGd4=m6SU9u=y_o-6d_;%@5Y>$9$NjLY9PZgS zz{2E|&>Q1&!fFI3!XUFf6}fDR`q9nU>1b!;wDxcZ^~QG^o3H+56!+l;Bj)ty^hmVg z*1Wkx>!?=onCxF2oU_WbmVJ$Gh$QRGjAWx{oGTk!;g7Wfp*kjkRbr_xI7WA!31eM6 zI?C%M{S5T@xN?%8cAk)dP}ow_uerWr&{#Ve*j)K_gtMWwTO*mJ3x?DoISfbZy}MD{ zJZ!AeIFZU)p=dbLNZ+Hw%p{@)%Is%P*TWq*;2TE6)iNs=A!wy;!0pT>%15ByBG2Sk z{k0ix%axdN`D9S{Mq-&TZDkjGx@5Jo+4mf@YvnvYId6G~woId3F!*V!BBK*bhF4aZ z?uuxmq54NSet!TimQ={2ie~pAJ4gsR{-_nNrA(2$vNB2bwj*8bNK)b7gW#)Xv+B(a z#H&n_R&u8r;nsILSAGKd+6yVH<&PMS@j7P-ClF8AEWw^MERk=7ryVJ8Gqmtk3CZ=$ zPts09eS=EfWq#yRTL_So=DeI5Y(|XF7-uBa5%u3u`a8Jm?AI zBpW?G!O-DTNbfv^BOy!~lh&xVUuSlbdcUbOee}Q@77w}OXYroLzgvmF45YwI_dUe!_`*DEaK=V@U65@~s*2^{+K&LApxlKgFt8CgE4gPM3Ercv~CO1Um?Wj*K=fk_)9)jiluetUDQprHG9V4 zaFV$}$O$K?p-CptB=Iqe-+gH#O+lF8XT|GjAwg(bXxTz#BEG7~JA2)C6LyiI@uel{ z%_<5^qKg}G)M%j%L1_%o5tP`Cj)LbgxBAyvL6l!rzqjppo5C~owfT#hwJp6 znY0W)gSX`=1V#K?LQDl^W$Os^l%UV#h0oT#Oc#!n@1Ox#6-KC*9Wury_W( zo!5kn%RK?lB3|sE7&xk4@c;Q|?@iDfr3(+w90ydYGYpXV&$z)Z=wEys88HaLj~IgB zcK2Pz20Z6};Pb^)z0|cHFuQq6&ircJWpvp5x_zK&O zZ*lyC{U?df3;{nV5n__~Qx%CSPZA-O)hH@A;E4bNfe19kDQj?nC@3hru4Z-5e-JsB z=_}90LfBD&-%lUpXiV4%5!2C0ZR0g;v_e~IwzpO(X{=@xGa1hj#%DJP1Y?zHl_$R8 zHp9V(|0^9RpL3TZY*?d-K&z4!;d66hy3rph(ER1Mh9Ia=HeO~h3g`Sc-&&cG_FOz< zf(Hc5kzbcXRy&0YYzX3Uyo7_t`aZC-va&sW{JH`mC^;E>rpAaUlh0Y^@6K=S0-VY| z@K-Y6Tfa_!Et-)~O;j85UG7c3g2`_H|A7gAK^-0*Za!V2T%r|xV}EE-idrk9*5VJV_+LR;Nwfef^%6AuRt*; zrE1OmGY_Kjzrj*jIk{5?(ZuY65sPV69cZhySeL0)>cKSWqvuI>aX_J=p__z9|4w^kfl>Y*`N*r|19n*Hz$ui8 z#Wa15i;KI&706?Sz#RdXB!osvSosT#0Rkra`_tJ3F+S>HF1l>cC0%3uBUKVOl6FHNiWF7RxR&WDoQI2X`vTFOw1{e zFK9s>o`+^*S^ORM($qwH%z7zc3{wJ8e<3q7Gp+Jm!W8ej?X*FkoXwwJL&0!^{8Np0 zhqXN;jX}sooWor3dtEeCCiEb(fCrAv&CRoERZ#-Q&+{C>R$OnMHxBOU5#38?6>(Z_ z4_nAAb-lZOU1ah8=gKlF3=h^fGDVo;NW6ZahUU-O3|S`yk28u?)JY@LEU&D%Ucltz z`jQ|HQIqz|Z5&RkT?|{SBT-g~rOc~cL{uj1AYczj0xK`o5L#PX+vny*L6wJyQ1iZ> zGLc;+TOic?>R`j8-;}tci-cg&_ROOSSvUN^rO7=sJN6Yb3$wbKUf|I(YLRs*ISmzr zZ;Gw2Zw#5`K?1UORYjH-Yp?A5>@4p12R8L*?bl2k{jWrK0y=;`__ESrBl7h=nl&vHQGKSf9b_OI*kGM@^hBIZi27w9 z_=cVoHu=ZZ3QeZzSxuM2+nb8a&M)pNj4Mf~S;V#qj|$FYB2V0AA`f2V;Y{*J@XITV zqW}6F?dMr&cBb&^v)QGSHLaNq)1yboB+(uHF{<)a$IF~rSI|Y?SRyEhuaAp956qNn zLP$t{>v4cO!~#c(j-ppSfAst}Fj0s!@ ztErFePnT{Lrx_>uFr|)z=|A^Q`EjXzZ#HcoDZ;P7Ptk49z>MWvQsU7HshHc3^(}j| zY&Np@GJZS1DLuAEnZSc^62XtCKzrk|CtmP+Bp0jq>LE4`WQ{e}{8h$M>fhgMy*4ZD zkOM4$8M-(>-xSf9(#6Of+?j`rm=gl&F#`FGKXWcb4HV>u$G2f{fP*k=Q#$a`EWWJL zXMO7^nzy-wp{4Xak-W0VQj25s_i*&@{r#ZS)Ku`BH~l`R-E^CQibQvJcX~iaL_{Zj zm??j$#45QWv1IN=P$Ro6Wk>uZAufFH`8T!dwkmFtPzo7FrL{5GVYv;m^)p^pNht+dW=h8`V)eq?OLBG>>dQ&G@2y2eMVXB{wBD~_stbNPA>Olg{&q)ORaJHN zc(b-O{~-WpAX*4IJUmP@MwNIoDND8i^!@_u8KCB}S}^N3NDbw3T1K^97}cA-F5444 zmTtgfGmiP4$+ra*tIZozprIgeILwqmu1{8&=KTNu=G%NeoUcv8b}M&H)#85@!ZFMR z$8FpX9t!%eRx=!6JDkrnYJo5k-D|z!obT+uU8}s7&5kXoOTtv!QIVxuBwL}5IgIl5 z?T_cjwdcsHr=uf>4e>&8l21Ut4r4KF5t6#tYfjvO3{y3<*iO?@1b6v+kSMu&!|JK} zWjTT(BO^b{O^rvip%K5sh{k1+u(6?M)TyGM!#t-_CH0#e`t>U$Iy(C7K;O_%@pUw8 zelwB5Dvz8NiU|5SiVx2Kk&~0dAYq9k=KtK=E5;z*$Sfm<1FoYRZ!`b0^j!;c*xkcp z;6uP;D6iuZ_>?e#aVfLL+J2^tBErB`l@v1m@@9p%-P@ySC|mKQ!chQx4fbD4hyft( z8#7%swZNevIW-9+vCr zrxIEZV{@rtBniC=+5##@G8mOi<5%y>UKKv|sF9-AoN$3o0OP)IZO&vNB zuaehX#Gc>9Fx^62QBwp9ebS<> z@PE8-^S-Kxm}jDdO3M`&6`Aw~!tX6LSKdC#4V=Y`KC!H+xY817FmoaL3D$;&_x6p-_4ztBKF|Q0FExZ*FZ3YBSMj{>tLV zDnc?EUH#@~SXC%a7RWHUHLLppr`}6S;Bcm#%1JoFBQZ^Ngo0;G__*TfhyU|KvwXjx6XBU@`9K%OcMDQ>Z0U-^dlI^QGLUrVkZxK$$1>Pc`+uw3U_2oyH4u}5=$%siH z(Cc{(L_jESzaqU*0yT%##FgAa&0u(!nj?z#{qj#qbz8p(V{D!&geq_4Sl6^bS27|> zq2{*#4qp0NarV2OF|b?=TnaH59X&wpwXxYb(CF2KK?(EMRFqb)4CYU0Y}pJCv^$^s zbHU|*i26jTwc{nB*fT(bjz3lyn|+y+WM6MDwno{&C?Ac6*Ep|>MVbM~<1V#+wAlFd z@e!5#NFVL@W2eIABo+EZr*X z_J2(fe&Ga>3VV}NQzML{*~Hc*jY5w8^p)WYNA*Q_HJ}I+q0eR`)$S1hSV8TuvG%`V zlSeq5wp}T%Fi=9JiWO2ktjUN5z{#(JPJ5n7?dPiCX~-t?@VkFc+Pkowl0K{iuWu8p z;c}R%NZ2ut(UFFCXA5`m66aOocgc!R0Hgd%!6c;qA4uvJe)ISj9{k07HG5LKh3kPuAxcBk_f3yKr1*`(Gj5y>CO0x`?zp8 zP-!-*TUV!es!mQ$3XmL{?Pfh3OBrH2{T~Gg`J7?^dYhqvCVyjDzbMZg^9y@jF?#1TT9~~`hUs<(HTiI<65;_+i4$U0M^Lid+XAj zVdK_WCVTQDmS_;kts9jV>di0TBH0X9<8mf+-yPGgj;q3_BBuk{+SMWBT&!coto0%?fyk`k`l2BbPW#Eegu!hxmfed7_S0)L}!3qetn^JC<&`z zQt|K9;}J+9X`CQcNt6Al;@i93TtL0(6MLB)F>&#rp^|JKdt88+&wuz@u7$_q zn3J1}Zf|eDu(b51nT44dK|b$Y`ozS9Te?I8__;3_Db1clHT5n01+S%*mD%~`;1sf7 z6m^YsIrvvsWEci8Q~BS`v;o;>AQH>)iG zNt)p_hr*>q>`fI%)9v32hCI3w0EG&$4mE z5NXe0O$FC@By`e&&#zGsAk>t27#QSsMvw#mkUZwrpz=Ad#sE)^mI@T{yUzn2b$}qT zWuTlZV&prd-)xs6&z!$YDJ1kBVfLl`5CE#oj_^b9HTWqc1qIf*s)(GHK}0Z+lAPq&g@e{Ha#7iEPYsQUg=s@Zvt z)J2qq+ON4l_*WCn_PSlqPyf6_CM|f?%aehPha6u)h=^nQ@#DuIztXv8^WGlzg6Us| zI7qRJb`=4LQAK5~QpT?o5Z6udLB$DOx3{-Q98j%-Fd^Tb=cmpxJQ)t?pgbu={Nh19 zh7@`Xj0Y_Wr%>Fpp8lKjRFQlb!$>8mtIsi76_g-Y_cNrF!>H4~?<@ zZA@SRFf>hUr&Xm|FhD*u2Pgo2NTrsR(M;EtIzCyi$G@B0-b46gYl~|0=;85^j0(!< zw2YD7%+1Eg_@=h!spB@SCJ-o>tTn#J$HzGJqr|-VH)7#$Nwj3M_Jex?l&8IA#2s!O zk*e7Ga; zi=di*zR|euC3H^IY_Qnf!*o;1?@C@ai(-T;VQ z30*HO66s}d-x(TX6RChYXE14{h(d}w96O)hdka&_YWF3oN8WEsNDLL!Zyy?G3rtC& zsnBW&Dz&FU@Zv8B%0=l~c}LW`cUz7~f>ZFclj+QTCB*N-De8Gtm~N)7;#Z_zwo8!j$KvAph$cYG9Qc7=H3KnwXg#lh6lHt6BA zgoV{MISmU++^5ClSPl<+b`QmWjP%&^HQr ztNleLdU}lcrswx{B$xl>DENpk?LymWWk@(;D_`f|H_!4`;*fi?FvK;-)N4)xk;5Gj6xFtkcL`ZA@nRiy?d^-xbV@K}g+xb)(1@l>+jK?n#4 zGMv^vZI9q2gt#8eFw9iysz(3p72pC{N(9Oqr<-ib$MlN+Z`G^!iw$Z}_RlTx4@L&_ z;o+6%^`7z!=?e|d%mTdUxF2@dKOQXvQAmbG*c;H%(J5ytv7E+{2!?qc&e<-#)yaW) z5dypZ_Ra)hBm(YAuGqkYPBn*l>rGAxF2Yc7>v=EEB`R`AQgF6~U9qJF74s%{N9zR- zN<1kIi<;1%^}b-5?-R+N0Z77Z0PDV-QY_Ju^Nw&(1UkWa}wKN->19X&8VpRnTrWrko$agNNZ`dI)_)Wz7mJ` zIiCi5%Lf-*O`bae9E`VUXgH_v&dz>D%9^5v3eUq^0{s;Nffn5i~OydeAmC%K|jdECPF53546EZ^(Uo zZimkP{6S&OBf7MM6D;Lj3YUWjO2oG@`IK7iaUD`GYzt6JDrQvQ6fbCg;EZDHd1xR< z!9E?7Bm%1~Qz!fd2ziQp4sTpcGdB*1xY3*uMlmw;1!;CdeYO%eOzHmZX;;Df(dtv3 z)7~ik({-JGX~|igl%KaiecohDs<8!R3+Fmz1HFZkzl~mgzr+@xdK5HU0w+6G4<*{%#VqQAulb_`i_x4UsSQCH0LsZ3lhXaw|@J`n9_`9P_3ymTl z%e29TAN$6&GC6rgZX}3L$ke<&q&=`UBHl^+6h%qXpExm2L|mk{w-o|L8o_aA^- zQ4QFx3IOfCKr;O8gnPiwG;+A>-o?ivtL4wKIHF!1xBZi2I3Ic6)-}~hiJQVVxO08U z$^M)iBeg8ogMcJR*K~#=oj2d8Az32;#bMOyef)Q$U5dwa>46Y67F%n7CvS?NAQpIN zlYTM@6bR8XK=O$+YYvMGcy@im(=9wQJJ~^Vo4;64Q z3i>#U^yCPl1qk>~-hbcO<7rF#g#L6Qe&+U;zA+BDygs6nAT(+YXR>(% z&dBHbD=g)%UTs#27Fr?jR!7DW>>}+uofCmAWqm&-xi^`gU*vhNAQ^hF6M7o;gU-2$ z-q9|yR#DsqZS|oCWed;%c#eTSHrWMrHyRFG0Xl&0d(p+4~4l{U_Xq$crR4EQ5_MKiG4{`*zUrdr(`o&B+?h zSc-5AFWZ$9X54_I4Ab+N&Bk-qTTsQ#S1W|Sii!+;DMp`@i->);j8U$ zKKn`UFE#w%>i1We?O!9nqsrXsWvmS~8gXNtXenh2;Riv=?$MNo ztD@Br9NqwyQ?_Z!Fft_eERQ^$R!O##&?v{Qh_$x0EkD{A?IKE%U&QNteSC180Hrfg z{pH<+yjPHU!Kid$5ny4l2uwS3U4t46l^D)S`T8#22j6^4F7EP9V%;Qzs-&Bu@0ygz zg?V{m7SkF`MF6L=zaa3=m{Pp?ErvE9w#}GiMi169-nLWVUbW$xRfAL*{G?XZ{;6(d z3G7+|#vGfsFP@+F<#y3i6E5zErFq7ymf}Tv-9&L;H(Ffhcd@!YjJhD$ZXFf=q9Deq z({*vW(a!vKe`y;Ci%vyKMg|d=&G@}lcN1rV*||S|7n~7ccgfcgLzTynpz&{&(F;OA zsSxH(bQ+*m)p)1>b?!y7q5%wXDh1gyHC%XxBo@-y_iWwv+h-oQrp@L*-=Y$5N;R>% zyCt%2X)TtP!B(z~mP72zbuqLg+m#OgN3Sn`jTn5z9tLX$OkHe5EId4D z%KFbNzz{FAZ2$X}`*=#vkrLp&mX)&l!7+~K?Pdy$c=`CGwK0o|k^#a*AJ7ML8Sh_! zeS`n)M)*Zp-oks}wZ(rEm6O1GH)>4k3iFxh9-t2SeB8Nk9H1@Ql2O1tvDl^*?STV~ z@-mHK#GINGjP>mZM1R))KQy0yEl#@2FSrUp{3L=c!c88p={@W;NPZs>eDFDzA5kD_ z)N4YrOwt_An|dl6ew(L6^uIg;&Y=JH2oi=Fw+9FnFKUdt8SRV#DR?Jn3LDd9Z-N5g zGZLQEr~gAEooS&X!d6{aROIL&d3pJQy~C50P6#nE^Ej;)dCJht{}&jO<}hQ#%t}uQ zPHtkRrY+ralXydX>{#!5^}g%oKDwdhETi*;x=YyT1@bu1K|Dnu|IuM{eaF>YCEgoz z8YON_m#Y4}`@0*YAD<=zt=zg_$eu#Y~k{Jb9V}J)lv$ zLJN7#?JNJ!Lq z>}w;B%KO8I59+)T zLVj8j^gKK`ECx-zfSnOidNK(W5fLHZ?G1W`D*M zVH8|uv7d1y37MJEe5+os{)Z{E!2T>QBGY|uvYmFhIWd~4(%0;wTUlO4^%q%4vS#<_ zQd0%14TG(%tpPPxQ`L&W3MCHSq%l+IR}v-2FZ+JE6GV?N!fr1yQ`(|KWY@(hdjd9e+tJW zORF@W?V;~X*VJPBe6?7z`BCy|lFEyknI(A?pY?xS657gSEPLkR!kFXMHGd-5WMfMU zE_JM&x|UWlIrI`$gXh&nPWSym<>s!(Z=d}s8VH?2j+M90i_9;Ankah)s4W3v7jnEt z^{o00FbXyL^oTi(NJ`M{X~44~hKQZM{6KWX5+L~_Ecybrh^eLJ>x20Rz*mXlfekCF zsIa<{CJ0gH!V-##iUA+SXoy_+^XJd(mLu5W%#lTyw#D6Yyo24CcU=L`-^h#o?k^#y zq8Br#E1kMkG@J_0d?m?%V6(kS)s>_GS!j2s3qvEKO=NL!aL}qK_MR2M_ak9y9Uw2# z4^%hiy!b3l96Pwq>N(k9%A=1;Ys5#|_Bn?lDDk?X*tppgQaah4QtQxxMJ{b2z(j{W zK2xdg#7W{Q0^c%+i=JS6!HkN}F6O0nDI|gtfZ~_Q6ySJ&5|Y2ru0Uoa8Sw?5Gos25 z@T9+Tn1_*j3wvK;w%>iLZ56GUhI4oXZ z3>VHTWXMv-4-pr82uV3jSs2^h@hz7~ofXGjNetwx=eSx0h zK)euCnnE%?J>A9C6=Ez*`6CR_0$;Kg9-(lLAVLl^gs`_H6-=GU>{h$yUK6@$b5}Iy zaS415qfd={3j>C}!yHXzTpQ#_>8qW#G?bK-17vF5=+`iUPyIi zfVi+3%wyDzIb68;C;3cfm_RzX#*V@16hJYQ6cJ#(bMZ*L%YT{R4}f_-pnX^vTq7la z0@y`lU0UsKmXkG8qoaym^ATDJep2kihq6-DZFKQNj`DvaVCoO67u%zu55Q@Blg%(0 zV(}|mP!~h+fqYkL6NF61mr6_;OtI{Zf z<#Q;?&Iwn@#he-Mi#0D9l=#9JOd?Xd&D=0(+q>dDlHDNFm9leYBW;kf4?W*NsxkX5 zObr$fkZTz{3+l~k-J&Y4X!Bg ze1*w}Qjbm&gD!UpEKs~PHM)@E8>sTaZ(9OtMA#_lPQQt}hCILb(-B+yV$kqo-8Nk* z?J+XZiT3fFHR_7-K5et33nX;*==_(zb55+Rm>df8EKFp8374#OVh88|)zy9!kdQ?q zOsU*v+TE=Oe*B0!)K>_}(@6rD89%&1GeHhR{$eHAJ( z@bhPMrH(=gIi^C(L^Cs#&Xxp?u~+q4otbiQ6S7~WSsE81PCX@WEFy`NBqW)z<(VP7 zp8aVR;w0nsRblI&6znZyW4m?}`B zNT^yc34cJB{C?#GgG zXQ&U_JdT{2k8JPw1~`Jg>HabB=L!t=`UolfhvLwFVp3*t|fdx4MF%(ae(-$ZDnBK3P}p6Xw4LO42d(dF2?_Ff9{`) z%Qx%>vXpu{E8!&s4{?CTxkc!{r+rZ*(<~%up^3di5>21siVLU7P@^JkW-C&3W^`h6 z4CCHQKU5Pp*>BcHm@Q;-t8M{h9R* z$_43>rKv3%O65ph%^oU~Am75$zuvh%ypJmIbq$`WTBVex-c-|CR7dI(vgcY-JESxo zH8nL2CI-|VcR~6t^|f(uH$NJVv3&kg|3@^YQoi9hzsZCaszAm1+h6ITs4t<|1_Ay} zNwIiyv{y1&(0}nu?U2@oPNA;P0%q@{RQvz1@p9^5pOj=tSWT&0tO`W-cPVLkl)dd7 z(KdD51!YF5)HT$H7kf(U={?k**_fJ=zPUJ|5aq*aznS`y=0~*n$$7(AhLXAJ*z`j) z$B}SGenaK?Jq|&cC8x6ZUOcA2n^ZQHov5b|UHaXV;f6Bs*qN;sH@kZ?CU99yifbR< z0W|JomVPkgSTw{MCzsQ%_{kO!Ndsh5r@s6rcjSeGSBNg9OwkHVYDj$<$i5T!uWt0P2$Tud!+^)%jrgBwZ;TtE)DJ;q_xIIL?I3%X0N8ux5{$+ZLE9B5Yyp>KL ztWTP3R9sh_Zl}fHhdYIdyCqCC7u%lN49KTpH~~|hOjpmo$rI{7@-t)rjvMix5h!^B zzIgB16X90UY{IS(AdqFpxoBeq>@~D}c?3WfM?UH*XTZqQ@>OUJIIM0}s_$mKCKe4q zm$`OCW>Q2MJQ`-BAJ|-bYc}R{Jko6a@m_lQ8+KTgVd=)+B3R`F&D4BXgOy-AJuB0X z$d<1#!G8;zQ5!8p@pn$0dzCgR1bwF>R!K9v{iRy;iR^czjELEo{!iAclA2WbV*NNC z`Dc2z?s;x48S6&=YaxZ{1bJgyaQR<=`W*=2%_*26lo9YYcjZ%N38Biack@H=xypPk zM$cBBTHXGW3KuCATr?yl_?ogbI7#;nb~3!L;9;2-V4z$1=8xLC6`!v$OWrnnf^IL^ z>K4g|lm6ttBGNTCx4|JHYZ(S?PpxE~!(btAQ@S*&h1Oto4sYyWy#JG8bFF<6HL^P4 z8lK*n9{W$~oc0R7g54NM5Ci!~nM*~O={ryfC7IqvT+vr;m%p~56+B7-MjsCk z{HZ?(!o_z4uWK~QrUwC!Cgr?TUhedN;E>ooaeA2jm>#R^MLD?V7-t;p1HD;4CDp2l z!~efk5J+(8JYkm71-3ss%~G6vj+9sf{uL#=>!y^t@I&Y6H_h5a!bv5^`3UK{gqxEe z`_jFS#9p_}X;%gJ~)Oh*pHCbp)LpZh@;yH@1Fg0C3}BHI%Dk>7q)vDv`8*GtD1{y1%# zSb9x&JABUp%uIXzoTbz{kXw53(BxXabaG1)Xir^o^Uxw#(2~iT&4Ai;oZsp?U(Hb~ zMvBHH4^WknUa}soWC&gHt1+d|U4A!|*&c4h^ZCooy7nzFIp(k}GZWCVh4l0d3L9cy zy(g*Y8!zSsEx%Iyl{0Jp!Qo;@BjLafC}I%#94kA7nh!m!T^E24CKdW`xprV?x9{I* zARJH8$z&mtOgt$|u*YAl@|G!5+xZp>ek-1eSt#lC*vRY&*CmWgbIaxNVa=uT-rZd4;cxA~QeTAugs_{|0QjdElLJ zbAoLo1v`=JjGjLbbSO~oo`A`?)R_Z@%>uU1P|V3E)rpm@)!} zZZ0r1K7dmcm6W{rvcT9Lc1VTOLP&mMP1148UH_hQj+ZE;&eHOqfqB|15xYIs! zoI#&!Sz@uvPD_eoDxK@A9wUF}Eu3>zjmXLJ4?eRG5r~)|Ty13oDQ?y(ngZEYs+ah2 z=y#Wx9PhXkvom@jlk1~JayB^`-<*ZxCI+IU70|3t@k&_ZJ7rad=*;mC629dezyq{y#*s@6R#W-OVZ9 z`qb*phJi4C+zFaxlZyW2K2R(Z@gp-FpF`i^Fq17UYgriRBV6|U0r+GzFj6XJW~JvJ z4WSiMfJDU@ADY6*2CCGl?gwr?xSXx`U9fK7ZA-12TzWbPxx5yZ1koH@Dt6m_r&KBQ zVfxVIaNFaC##aykccHnlzgC`=Q4w$-+eQ+Y!X-rX?e0rM3HkJatYRi1K!-5Rf5i0V zi3c~?!r52b0w~7z{#Fkvkylrz_C8vT7<5&>O(6;rjQ<(@t)r=iEmAgK$jk6LSNbRI z>Sm?QOV=%$j$U7bd1{sAyn1OzYfbqKa?9#a-K-O!1u34n-EIB3Z?O=*qHR`pj6L*IN0KjYxxDrIpM%k#A9bRXm>e1w9cAk^ zlFQBp@jiUbK6a?H1S3eybM`sb9Y4XCA?;6RH|0#!tEy2_U-7M ztb8=5l~XPeL=r62{TbdJW-zGC7j3P^beGfm&zSRe&4+Xs8;x9XX7UFrTxgs{x zC1|wD8Pw6fxCWdct@v`&?_sxqg(6On-${v;kdyvOlucLblY2;|Ce4CwLug9zYd~jC z_z@Thn?KSpCij_4{{i`gnguyO7<=t^49=9u6P&o;2IfM^&r>Ass+n1<*9v z?OtKL%fU=}I4>=y+yB2r7Y{v&LK$g;qPCjP_wu;}HiV_Sv@(^>_tKca5ie(^mW5(l zbO5p3+oQ(uGa!VRF=6m`xkJCvs=!C;`RVaD7F>&gEATQ5Z~2|+aX^3>HwavXBCSNB zPVr6EVXNHEns$<+;G%lHs;qFMKqOhBNV#X%CqC}2mfe27 z^^=O0R%YC)!I2U02y>#|25U12{_h(ADSnXgWP~6ff=vuCiUy-Q9GK$aYr zo`HNpBW?&bE{tkt{rwE`BYf&yiiI|Gy*G%GH>PF@N*~>8U)zls5D+kN$`1IP%YY%D zL}Z%E#{Uxee+5mXKU2Nn}zG? zJw9<)PO$k^OT$6=0RM!cGfV+7kg(XgnkI zluj_^!n|F@G*)CbLI?w4PEO83lPy*bbcf(v82T{eBTLQ3$A_n*qf_u~VP;l99(>6~ z2?fGxXqD1-lMDvN_tN8^^1*MgFKpGTX}|y*24)2hwULehVrw z(B}`}4>v4Jt+pDp{0b@x5sP4?S~acmIfDep;Uwj8B4|8N1>nqUnOAq(h?0cdg*;=I zm_zB}g@RxSjjgQ#ff80$v~S5oVt{%dQ8@{i^(Y|Otx!B;jQLin3;)L}UDs}ffttKL zxP*j+q49A%>iDM~0Or+)MR84gazgqxspD%5ZF38{<-Mu__cC-2j>OU$1SnK%7E zM_-8tHM=t2Q_95t!(?ckevSO_P}n-zXz24xzwJ%w`1^tLq}_>sp%}hGp48uN=i_f} zJ>R*xT}%`j3jWIGM@~(h;>}j=Xu{%+3v#*kGsZ+!!0ONGn!-pt^}L1+hqEX?Apwz^ z2Wp!)@aEB621KbjAt9kU%TZi4HEy)1Q6fGk;tr2}$_O$@!~NCa z*1>FL|92g!i=ppw1fAS_BPm^;9^Lv`u@^2cP6rSYc^;F;&~5R z`UriMrV?&?RhxOf_=~JA;7>fbY(G}}@af0y2R58F!3EtPqqQnBa-Ajk|E`%5_YA0E zbIpE%)qE9*Lu6mZIiQK8M(rW4O2+N$o5P5dKwwF1-7DP|gPpcBRmhshZU!R~ckobi zGR1K;l|@{6Aksmd4lQa}&|?n+xTF|gte8d#q`0W{UsO7&C?Mq&$*-@kPx&#f0Y<-- z7O_s`+(ohZKz|)y@kcWeF-7SmcbDGh(X6=I1%Q|6!?lg?;n9B4a-_pWzdl?LYY36y z_|dXaB?xse^3JM###rvSW%}a&O546EaX_gjO!)k9x!miio$iC*5927=>5r0MydCNG z6f$Ho$G&q|KCr)!?Fp)j?X16xf4#XI9HuHcZGB+A>GPaCP2s#gzxEVjl!>cYaQG_m z(-oY_VPr+KajMoyQV4_ivL&BHA(6|+Y8iADb35RGF9g+hU=UP>%?$qol=)D+*hCsq z5~6%WhG*dar}E)kWwkZXN@*cGKDN)rkNa(EK0K=|?N z!|irW5?wQ0t^PmV^SQG$cC&?~dO634u(T^@SXq#GGi293kN6_Uls=@#lw`@ZJk8f?tF_cv3bV zG?3k)m-u{_2alqDn>U%;CxtHpw5N~gyPFe}(+iI`-_wUZaO}+;V`=-Y&Xh96?U#MDM(Av2`BK(%;STtv#X!p@G;>vc(%n8!bQc%{K#>__L?RQRd2Wb-M$(oaF7)We*4Hr!3~b7Plc36BV-Z{7fL2Gr7Fe= zKzG@U2VwC$lxE``uF9)b@~?dP{kRQyovCwva_w%i+byF~uPKCPXR}!O3m|3-w)B1; zv?rs4a^H;Vi<&KtoB@x1WoNSAAFtM(ky$j}yzF_A98sN&jX{F^r_Hr6V!AjZ0|?#I zyySEdM!Le8!Bs|`Iy32oi8MmV(qgOyy(DaK?SjTb(i16upyqZW%R|*1A^m~#3loH7 zF#zyk(*GrGpb#4dJ1#Xrq=SJ{9r#|?f4NiV+iG)`L;jIZ(XEr#p&O7=D7dCUml0!l z0iL1Ur&K7Q{B;EN9D493&b$CQBVm*5cl^9&<*X@d7-(a=;4?&X-~?>N=}r@6O| z%4%ENhXFxAM5IgU4oN{N>FzEGX+#<+K|qjh5Kus*TR;IRr8^}Aqy+@&wvg{$y3g7B zyub5)-|x?F562$Q(C1le&AH~h=N;E|-Gl9EeYN<{;$kRS4Xj!-6FHSn7&N@|4Xf=J zyW{Dzb(#M8D3oa0uVNH4e*)yDYO5vaEVLP^e-o#L9rj=O>Lt|DHHuNLnrvp;L!$eH zq??OH+FJLL=KHF+)byA>Y*y#jwKAa#Uu<=UaeoR_K9&ghpFcuH=o&nCWFdIpr`U^8lWrauP;ocSQVY%> zWYYPB55V*bzc`KfkMbOaAcn@5nE>vnBB&Ge)n>x+3s_V5) z!lzj@m88JSWWDSqz8|)bS5SZ;1M`O;op4~HC5^AGt#wQ9;P)5ik$DTR8wMLj>~T|} z?$h1-lSEitHnVALK2wzM>z37Tw{v$|G0K+Pc|WJ%d~z?OSJgjZt3+4AbM)G$)#P)9 zQ}-v%5vznZ8M?erFhM{O9<;L&8Xu*9-~BT9EVf1W@vPX8Y*x|>nd?hmzZ@?fJms~z zpsA%*=~ek!iHG5T=K9gVH-oLcJxY-RHIo8c~Z*0CF0K2MW; z<>&VsGO>&IGoG$qJ1Sfn#fUN4>WIwmG;#DDkoW~VW^r>f3P`|DAJsYJDB@pc*a0vc ziDlqYlb7u|)QD#cuD_smZZBmX^16RufcSZ43Qz$7>B;uGM65RL4-O+LqJ>h4}0emN7+jh28cC?`7 zx`u{Nz_+~esNh9Gz@5XtNGbO6cdfKTOc@s!EIiLOVOJr+(mO_mxRvXGAoZ(Csdd*2r_C7_i?(yT$S6o-NjLmI6 zp#VLUh=_znSn%BX6svrXe0%hvl5>TdB+ff^bRSWpU+0GRBL0S6s^2L57xc29P-Z6V z7iza!NWnv9sao}|dP)~z6m}agfd>bHG4`z{)y+lvl_5B!2r+@7ch3x6IU1rqt>*#w zKlplnU^Y^EmYcgBQq1%QRgNrikzkD7e0K=mI4cgnf*?8mDL(k4?OnbDzi zlLgiI1=**0|E!_${9QxaYZrYrdTpV%WqlXd2jl*w#~;?U`m;0z{zob@wM=$%JSdIi z(Cc%CrsoDdgbGw^yTYwfKOU%$lmLrT4~PH`BRTqb3AN9V-HU-f)>rU707#qGtV52rk*V^K|Cnzhp;|0$fJ%%|Ix zjv&VuM+Nl~}J$sbt7MXp^_eQ+D% znHOhzWwTW5PtLO5upa1cwfx+pwVD>(nigQ_DwVAk8fu#}sGDrzWjzU2NGo!A-}vZ_1ocuuazN{h*trs`|4LNXdv9e~mqF4kc$d)D@S<03d_6k_Ub z4BpyIR=*jV><>wUMR_(xn6e_7`bvmMNW^FyJHn0eU*vSXg=F9E$;rcAox{_hXl$}aEl^k!Hy zF|%vO+0K_QhS`pW5jcH)s-2+G74YNc?(SVYN?}q19wal(g9BP%J)=oLiHO>FL8;d$i7TI$M`AV z@#YcXd9fem3U>|^_dAKbS2I_m>4R*{&GnTtNccopRk>KLiDw=dzOcs~O=+(4@VJ%m z@@jzGtOR4{yy$w*7~OGaQ`_sNdT?N}YOq(IY5%u+$VuNpOwMw3G$g!pf4w6|_8j`t*=a&~4}v z88<#_%`?=pFypq}+S=%H7XC#B)zu)QtzTCAbHwxVC6kosPdZ6CZ`TvuI{V27pdx-p z?2?x@Q2yU9e0UcyPtU*9-Edh#M<@XZ>&W=CH}EDzAbt*ujm3;-yN>Hd@6C=k^vIX^ zmQ1;Qk+P1wTQseb9 z%V_T5nO~`Ko#xuF?S`F*9Xo_+^mV=9d0b-RBcSkNWpHqw*;!cja|uUx5sGNi=oIsYH`#$K9IgMbC;9`*Ve6sHXn=x8o{jqWL|Y2jk70oiE2FL+XDcCf zX8O)wl!QY+00HKeVq;+;^tQ0NEVfl3u>=i|j8{B=PCfVFKtnyxZ8Pet^Ol(lZzP(ahQR5b5kBt1u)ZS#5Pd`DvgwLC%P#!R{xBDYfPUW{~_esc7r_r0pX` z{9zY$EsoSCK@K?vS+_e-eJ_`+#O%)A(XD~ zzN$(kRxgxycZNB7iQy%Sf6VGg_1%#Zpi0JxuWwZ5$#QD$Tk4{;yz4rS@ zSXB4d6rVJ@N~49F#SbFMw-4`T8$9J8^WEX$vL|ut)`PFy@^Tay7#Pl;o}^@C!T>7f z2+DiOtTy+&i`0A?2S@37=__&~Y5}(njf-pFFNzqSdHd&Gff!8x)i?C~i+1Oo1lLz6 z%QyT`@}u8fH{Ha&b)8Z7{lI7fqf+|-9z^RnSn}``h6!RT>b&T;tw^F57R(k0=!SIR zomYcE&!Ys&?nknEh0^I%S37#96U8~XdWM#r@48q z;ELR4r)}=T$Ngzc#GLJVhnmENV%F#z5&$!`ncSuPyt*1O=}_OaK3SPFF=pd8K!n<( zK$Xn)V)-$mVd4a`cZ$|og6HGwfOh6`TR|^_m|d6X7IP~x71g!!>&z-ogAvkZ`#X&p ziuhagj-1;sd=E=|CHD(gE_&mI2NR&?rQW2wOGGWd_fUEQL7v{(SETbkq`3VlfjPE3 zxW_FeKAu+O;oT4A#MmSd-k-P9P6$m1qhow@nI~6Y^nGG^MEFlgvCpi@4bI4ClDxVb zEoMoG6BZraVPncA9ld%wlIP*4AmX#!@)5Xy`&xrbn#&~dhq;GYZ)$JHhszK32R=_> zFK)QmI$lJu$vzeFwsK5KkdGac)y_a(S+#2=nCQmz$84#J#>z*rOBDxRB5O+ao5BKn z=l%9rgweF}mGM=vzF!>#0h0@835kt#TqN<=_nk+GneoMX3mGM4J|x3vHVCF()VnSJ zas-_KmTR#I*I1q&nVM@;lFJ?-L5Ej$cl|ouE9qZri8SMS*>9vRLhIs1 zL??Rqj>+SEMZM>Ww530!$lY0aLKe)A!_6ieduNv}rt^+-N_}gj^qlX79WOZARs>e4 z@qAsG{3F9;R844uzIf3#7c37_$FdRq2i-Hm`?x!Y8S^*-r94q(O|}54$aGUdY?8pG zeH|3Q!Jx+8dH1#&cowS@d#z(b%vRa&PUd`<@IIblz5iW_4x-UPaI|<>1R=@~4oBo# z`?yYqc@5}XzpuCA?v@!)s!)C>msh2R_`dOo;knpM=;Oz|1ov~8(SKJ5o=nIsPFF1&P13v6@%9 zN2xy9iikkyDM%IPViZd#m|tAx$t^K23Y{P%%M6ayo>Ypio?9jknN;W0E^g|DrGSt} zU*ErDt-9a+^H1O)gf_F%*BjO3P4I`{#DIH?_HmJF%ZhY8>?8(zJvN?hEg1y^O=k18 z7ewI%nW~I~`jNis>DN1)wN4lzwL*e~LmgT_UJkCV_0W&93OMy_4~-PHpxn@VB8DaO zABaTi-&Z#oiw>FIVZFI5-#YB0Va{klk}PtUb5rKSr$gFMks=cl6GQbh4@-0^#J7G- zeZh^<+uid2&`F`U=gh>T3IGHlg}=~6t&9tvS~3s6x2Rsv>lM-{j-_tgAgaa1T&l^gd#Lw&M+y_vl4Jh5 z5%P8`G+ZcbRlvk+5kn&}p~_x`C%5tG&(#z{Tm6y;R+<;9(|Sv!O_iJ51Bb}imMT4D zdPorBxh1cG`qbsD`U35tWFW4>D~&?J=I5CZHq*tLO!ll`9dDUwM^SYw$ov(z?`c0R z93dkl%vmhR`B|(*LVJ6JO31zNXC$K`tq#HYjwQ}HXNs4{+D!Rz{bx5fv1E@gCFS~O zYTuA|=dfnZcbu)y4!c#Ix7>ndi-;*uh>0?JpIxE)Cx{Q7>vI6_b9)e9S#p$pk?kSl ze(%PD#6_y=qJxu@t}g0_#?}Ug&*eLMi?q?b_mywv%C}CsF0(B;tz_LMeAuBpAH#v2q`F$$^MhHgt;DET#{R^7B1TOTa1XniGhg-Q0D|uPR6k~h6)#K+t z{PKYaMmUuxra6c#|^4WcZ74qzzO`D8tAc+*mG0}u$6Yi)g>%+b65 zZxDXZpNc9q#l-&MVXsr%`J$#2{Nz^!271yg4jVH|Cqc$vC|YONibSn}P|E_~UO&*| z7xT^u(eR~Ea*m#!=_fte_@H*Eezx!kum1|RfGHOiR>BF`%*e?{P&wP^xHkJy!sA(? z`W86-#lA)=b~O0wf63_a=227u1?l;dP3=*#8_qOn=g#4N3Fh(tMHRLAkpNQc5ot-L z>R}!4uC}M2Op`Y zSd=5jd&60Q5>$-es`(s46TXj9FpnRWRDbE=6LnoJLiJW3O22uom-}-I)*5yoCd13H zwXN9(Qh?%J#?ZJat0pR^!s9h&Z4Xd9Tku^8MKEGzU#@T1+DF*6LNBWw@v`25IK zJGEn-3M#*w{6(!~xybHjgRVll7Z+s3eZ)*<7kCo7;z0YiIS~-~{V_$~N7;@X?3z?F zHE*Q-5c7$xyMA(D^#ds~6LF(iNsDt$dFF4b8Oat#XXYQpkjkEGM(Yg@xM?|*f{m4# zYXm8r^< ?wgl~rLJ<;Zx^H*X&n_Le=^Qw(AsFao7~!Ce8Q6=l)CEk*5Tw9?5t1B zf%q(#XofGt)TSPd)o%iaaizlWnN}<)FT{KbUn8VoXh7Ylm3yI;h*Vajj+?yBeZuFi zjS=Xi?<9B~fgCECS2phPqQ9Q`sL6S1mn_uyZ`ZrHug2AVPLZ-rHB9)DI9U6CGuoz=-dg<=W~k!xErGosO$Hacvvu(q-!CW{HBL;uA{_Q z@j)clTlG-MQVjYm6nHm8C~39BTz}+!5$YKt@2g`|nE7Lr;+#OT-qc@ZIq$mc`e*dU z8Eh?Y6F5sbIOD)#^p{@A&9$QCxp_5(P;w?_JPo7!Vq#pSa<`)d_@_Ylq(aiJ4s1N46Us9cjlrO%&zHj3eItu`XTFQKCMEQ zLdL8&i8YJ;J>VIh&7irhtFdDagAkqgI6p7ICRxRn0sJ(|e_^*gDj*zLAxq~LwvHYl zIOtsph>9;l49TBnZXb=$PfoKkld52H6IE;d5CY`i0zeIpfN|F3G~kpKH-YEwiR1!@ z9{mZIX$%0J%mAs)^eR1!$!h$)2WRX)A{qWOwa7&VKuJ7z+OaNP71ECWQmGmhK!-do zy7gRp`sKBWGD@GrwLnm6Vs{icD#*Lh2*@sjy{4lo+C-79=gX}jIQUdlmwGwCrl#`2 zTIv6GICbCPa+ZG$q)$zFxpLv=ku5Tcd9JvTr$2oKHO8= zovbv%|1zj>5%}?bC^dKlDqKB|WG4m5mzK`v=h6Z`yXT*s32QdU)2pcS%G+|#u9_MR zkCl&UG8MCy-Q(b!$ZskfS-->bKEm(X3mrvf8AC}%#`P#s#p>)A+Js{S+0yM3wucXA zhkjDu2@@bWNx$(`M z*->ij)R=%R852p#AR$lfV+|qC?euj5%jAFuetzR(F0Nv^4)ZNIh&t=|%p1stY{cY% z)KJ_&EX=g`tY2Njxd@RB>o)+(_k!FXHyE4^fuQ)rfXC<#ocqfhQU(|x5`&$_!4;}^ z;2I@vZJqyg`O4L+xCY})Hg)?!LPG)~B3D3v_5*HcX>PLO9Awnp56qd{h`cBI?<*@` z)O~3Zy}WFBS0F$mG2jxq1N*-8!pib8jevkIX6dm2M7pS;k##{7g_V_cZR%BlVKA-o z>$hHFWfRhoH?Op?|4*;nygUOY4P6}m z8#l-R)_0{IV~o4l*lo3cL?qg0dO}1$k}S9Tm3;Pvke>N-8!J)xlv2%4=+qt$SQ zQ-8|CLrwe4az_ZN4Aht;RmFPA5`zWFcIP!2m%qK9_Q3i*>E;SM_I3F8vhWCoBLg^P zKzxlFDy}y%)n1xlh_9}N1P9Xqc~*{Vg6Fo^+u<}N=D5t{#}=e93lAKb%9mG`Qhri; zb>}ejrtAmD+USgxYGVfaw-joQoMlEQJuK`Vg1UR@xmL7z&1C}`g%C;pJJ6=0@@SXr zUs!-JZbO2v(Qs#~ckR*Nh-p55ym@kU=`{@UV*aiCmN50MjyQ7V^&D!sk*L+K= zx(@6jqbeo^tL8~4)0C*VeYg};_!CqWnib$$s%XofPMDfg7%O(#RZG=wKkmGqDV=2+ z);7y1%1-3R3Zp5J;q?s(Qdd-XECBQq-cMuiyR%NXx-fq^nFv4pl}WY2HT zIhDoP>t*2G!w`syN54Rr)ot-`I65H1^oeH6#|Jm4I5!T(LwND-c7EMIik$SeygH43 zByDl_h9uw2udUdi&kXN7@VD8M4MOZ@hdj^G*=fm=Y&B1;$%EG z$kQe$H~ZxIBX%DC&FUZJZ^t<+9UUjjPbb*yZUZ+Oq$WyL*_V(jJVdTQ`}+#62E7f1 z+KU~m-$+^cTAe5e$7MKFf|dYu0hnOq8D_=S z4@Z&7Os=x3)ZhAAr7T=cDg0h=F+9tp-sbMd#p|}jlk1)zOV+k02d++5&Kol3f#(@; zWu?}3gsvpG|AsYLYZ@*&fzUHVsx^pja$(Ac_OUGa2A&Qitiu)M) z^9CGL;bS9q_h3jv&;n~BV^_1T>HsILblAF69&L~ytK01f&GUE6s0~dVR@dgb8b0S} zwUOd(5I=i+dU@zNWk;Pi1wpORyYb5z<@xoVJ27ysSwL>B{`(6T0%vBJiA&Z8K=bbe z1VMS`Tkiv=8)lU)neFYK`pEYDVEu44_kc z)PA%xPuw?0>5`X{i(Xoi;4P8?lnh^{u^i7<#a<625~eQX7PAEciof5 z1J(EwI9wK;9{!+2l;}0{6wP}Q7;Ps?$t|rW<7lNSK-gO6^e)JX%=zw!{#81X1JXcz zYAV*lv-wMTDL;T=6^#Jsk#O8lgK0?Qa99d~@c!CQd6#8e=lXTS^eh6R7nYCL?@qJ> z%##OXgW>NnfLku<;J^XKpU3yu0cb``kYYiCN5FMQsfm3MPa zVc{a630%U@>Sm{U*)Vroe^~(|3-a(@>v<{MAo2+!PMDgsV4&X+xK^<_fJ;=Y$qnWj zQ0F)j5)$@dhw#krUU5mi1yDH@nR?fn^g?$cL z_74t5D$J#-W3@r?pWAI!`RFqY+YDMqcmc&S?#YvUCazcr+#pFBeDRjjbxm{zcJCOE z2)po{;j%q$ucTe){(y68EA#zbHa|$r@1%UYBr+hkEgL{LByuYGw&1D2z2ca?#2sPe zMRw4`ixe@zBk~3n^QP~b30A)t6_eCY`sQ=8v(>9C6+}*E+`_`cH3-A{l2~)Z&Y*m? z&APwrhW`-bwJ;EQe!`U0UCv<3oO3_4G*MX2;Q_dqniJ6g8gmKn$^}(d(b!2 z0Hw0xAqYqwA%(K4mO?5zwR4S6ct(!Db@ANtNn70Wud=!JYlO4Y`Q7%HIC$DL&aaui zE5zHFcA2Hz1ne;Xqclb#?B0;V)orT?A>|5t1A=kC@`{~+fz}Dymb=i)WB~*j`Bn#> zg+jzKtF;`ipY-UBRhW+SQl&+g_E8y>I*>Lg)2dkuY(_Pu-y4(xqv_2{<-Htl^c;@r z1qjvbZSO;IPam@D-<8>XF&=)9TAs3VBxLud_{p2rj4qRjoq%En)zL51U9PH}ur^S; zz<%HC+^Q+K5Gj)OnMo>-ZgAT(TNa#_L;Mh)6t$yeSyo#bFQjj6NwSDb-l6 zi}<#1?r6BD(s;6mx3Jr|W7DTS0YYcT7voPQ1gvgs84wH_`Ev zD?O3-HMPL+VnC}HHskY+1|zjO)_qHpOpf}v;-}j47f8&*77~kRLD3y( zC@)sO^h8twygy5;KvglSC;Os7xRG;@{S+uG;qwx)M_#j(Qa8|GAL=m{ovM)`QAJw1 zxGoQY0UbkMff8@wmbxX&Bq&&v72lh!Kk}2wytvo98^+N}#@G3c^XBGp)w0;1*BCte zy$m~Uo}~4KROpy(7)K2_CXc6DEkqd1SixvNQT(vgLelS_f+a-bJ_Ss-B zMfO^CL{*I5f$5!o?>6_e|MruS%W@~6Sb}CqgL*nntkgLqS=io?YmFrKzr@}W^K&q`(uSEUd0-(gb-_Fg3^%*5|K(Vm;~YEX>^0t{T|sa z-W|2z=LXk=-*SwqZgs{Ss(8^Arfl0y-uJ>a#JDf%Ts{Bz#KY76941`RTA`$01KP`V zh?2bL*yFoIz)cBW=-)%uo(vq8Y8$_KKygm8?qTXg+}5;H^{T$H zFH|BlBKs_HSPnRpdwNHky1J6qK)367cDd8b?x%bFX+5 zY+EHb8I3Yu>xQA2J_*o1oG7>^^@&1F=(?QR>cW=rTZ~z$^A$k_2TtTa$_4{=xTy&U zvIW9G@us#iW<46+K^)BId4>Brgx{)uQhTT6fO?~%@jI8RsQ%IF1Hu*EtT+Gm7!y+b zL(W%IxSdtdjk;~h9vgMNxw$`fxIS75#@{1f@b`eQVL(GkBxkYkJhh$}Qzk2Y7N#^O z(=yt7#Te8>a*H|>m{v;OtvSJ%`%bH$3{9@NmS=Q*n;E^4=th)jMJ;>qbZcCIRRp^^ z)s*wt$l?a|Eq`Oqs;^Mh)Tnj5ZIS*S2YWK=j|cyJ+Tj(DoduL?T?PiA|G>pIODik# z&tr6%xm79u7w-EzBhfxS(IYipnap2N9gnVjAiI1y>yNjXg@}(ck_vS_@Vs{*uynOqrK0UpD_s~On1D1S6SvUJ-pO3Xpa=ht+!1NA;&<_m#%>c4=uj zxf~!95_zdsaP;PAhB!{YW?jw=fO#ce!JpHT2BRT^zS4ZJKs7@%k`wZt=ZcOG=uioU zQv%9lGP9Cj7^U5+@z~H!7xq*&opyAX{qTVlL?!Jr=|4x1C$1?ZGD);oADWuP;J^7u zmzqo5FkJaC67yP+OMgz&^MoBtgIxiSFWSD3%r+F7Y0zp&z0bSkQxXiPH$$8|?){vX zW3JLdZeXk7m4r?0D;FC9pK4B4Rt1&B_yaqoB$gK`l+%o;1T4}4bg{F6=p4!m^Jl*V zfvFY=C!)a{;?9ur@y@Xf%EQyyV}Z`<)~A_Q~c|wQudAd%m z`M8BmuYA)adbIGmsWk&VBR#gtIia?O#)GJ;KM@WV?poL?>Q(-T_o4&oqQ1H+>~Y>h zfZMr0BwMA!V5SMP%%pO$jV^HMG9pU~$&E_ek?bWA>qy_cpxSTFB8C&|ffuZ(CQ1iV zUYfQK(r*ki6*5!&s2%GsZy=`-a3E`JYCrue)zo2Pbq^6snyAZ9wr zb=pOm0_z?QOxUTRVClSFTjb@NSQ_Z;1u6GT%?R&w8&MDWM@ zc+Pcr+5d@!uv^BT5`SVndF#;%+~dp^<;E+S{i0-_w5-2+*s%w zv$oX6CObdRgZuE%F2H^+us-wwoAA|JnYRLH%b31w_g%O&`25z(d_2(j)yU{?jYOAk zzK+CGZ5bvC;(}-(f65Dz373j;Cyx^9yr_3FV^wiY`7gHQJKbt`8<2Hzq{?FJvFc4~ z0dZ^GPik_owcf!@cbQ0_Im#{o@a4;cVd#gp6waLK{Az-@?5424e0%ujC)-20Pt))I z5#?~o3pN4v<#!fHNUsi@e#dD=fk^aH2^biK_njmLbq+LWVIYQN=3pa`Zrt>&`<657 zwy0N`Pb*c8(Qnx;u<@Sf@UB4TZEm5l7^ssj0C}z%LX#^#nRv*_AO|Od@RQflAi@Ft zXE4D|V}flG)G?Mt=R1iEx7BEPmj7c(l*MsM(CGu-b93b%c6jyU_in|8hqu5`;?vVN zYwlUL$u}#)6qP1%b}FKE(8MJq1VM_l*!)!lF+0g8g^hV3P8Xv3>s04s38)@lXF9VM z6Z=?;McB|U*k6!#1rmG;DujTlle4ugOp~S@n3@gxpuk8)ub1^k5X11+;rNNF1 zpalQfEyuEo6<)>}ee+H4O>FqYfTF%!Ng9WO{pKoadAUbJQk4Y!?Ik$+-B2i~X;BHd z1yQ#XZMJ`M3&AmL0mm?TTbc=6`XWO!A=kxV6+QTRJ|pa+=`n6@_=*kI?xvy5+MWS? z_M`!i=8}OWC4Apsj%I7jaZ`Rim^sL2UDf9Ag}c5Tc?rHCpH&F+7oiw&0xv~BrnxG~ zQ=_Og2kQ`Lg!A~{+r@Nb024P61;#@U-@fvq(*}OZAtAoH`d6YN1X3nXyVCtuIDWY~ zGd_OY^q7tK^m?t@BV@1(7vTu{>)}QTCq3^l3sA?%^$Cgci}vXb7SH~j9?AdQjG_>L zz6pzC$p5BIq(bw3^tb=c%S_~EGZQz8l2hVS4C4=+6Pk=+rc_2_FoR|a-V@z~ISi-- z&I$jkm+{$B_3I57!CM%?;ffM+@G#NQxE%^m>4$F!meV)C#4q;7B)M6yHMQQ|Jsr!- z*q7z@=xzEVJxkZdc-V_N@IzynOn-PlV_ESUy>I)Iq}@&T@pT&QTe=Q3ypoS3rZh8m zSr!9-KKu6ONlIk;-Ony!C;WrUS3+#2LPr{{eH{~*s!B(Aup##Zo(ORY*$y*2GbNhl zl+uu5TP2R1vzQ>E9wgRY-ysz`b_(3j6IuLZKzyBjTq4Vqo88kf(L*2@eG{=SVs+L^ z@FWr9S?=ray9Wkjil9}dv!D|!9vajGI0E>b9LdOGyf|21K0Zre5?D;%HsUmnGGfEJ z`+NH_ESyJY(;3(2SH

=xDiV8LRId~5=fj?m3Tb$7#A0^SD8XKRK6dVwM;`;mf zl#t82e?Hmfhb{1sA44>tT!tDvTlVCf&c(Wb_^S+5raos*RR_r?#gc|(5 zg;BBSu==*awT!(QjC{O+Z~HzM8@dVZ0@*4N2YEdGr||o{(XIuUqSs8rRaQy}DH|fL z|9*qa2m1;?51yY%>+7dZNm)HWR&Dd5;W09o1T1WUz&g1D8fZX%l+vJH^h5sHOcAYg zIgOX|V#M#Ik?H^44hf6kT=&qyI#fb~?>t3Zd35?{WS`>%+GKj4e{>#K5>P?2c?u4g zFmx4I1XKKb4g%P5&9m4dKQ>>jjTXdyUxY~&N7H43?Y*+e1Frye0Q(S`$C zCq>3o!4JPxDu``?O>L`U2JJ%;j}d~g*8(cO$WP2z;0sbNqsR)H!Uj>>*72WqiE>H8<<-t?D;N;{~P0Ne8*#s55@N0IP*h=K`stW*jl!N@#UhKo4Qf?pl<&ojZ zB1<$uzz@t$YGy#Xk?*HYTxh&91t14;lm^aQl#0|CiarZP(PdwoJqZb*H`T^5FN9}W21U4S6qahel(725k1 zE+D^v*nvq2^?Qi#fL9@(#FNb1%M=i8N9yj_Y5_UV8!Lb(>px%5_kq9*+x%DOr)ixV`gN; z$NxW9e+9U|9*(d&kUaDMTvxfdxeGwM>V&k#_5Z%EVAX`;b%DBs)pvbzIMPtCXJS!g zsD8i#M!_bc+l4G^Hh8N@pSwEvo49~HSk(qXeit)g7FDW4 z@{~xm%M8aazuR78;Nv5NPIh52F|trwu7pl;o(@bOrD2I6Tb&to-vz8GCgJ746u`1i zPEKOZ_X|hJ(9qGL0U(UXrz5-bnL;xatc=Zgo0ulZ9t7Pe!cQ4u~d zamNcIPc{CJa%de4kcLz?Ys`Qx;Dz4W)|UJ=?wdv9AuY|p6&dBOj*j(D0lKgnIS^Z) zU}rJRV0IPF-``(eMP=oR$W<*Sw?oTwp8<|~wP~0iUi>)tDF&PtQ7PygvI}?*zn(*M z5+Y^pH97Z8`P{T#G(`^Zc-u+(m$L*5(e=- zbLIElQ)GjOl4!bguq5&vcytLWXiy{YED~e~JDu}M2`UH>LuD0NnGk@1t^R;4k>6F| zF<(<$Kr%8GR->q7bPoA|rMA@E_*XpX>mlf+5XucHPTeVGFq1$dqV8mf{x3rqR($Xi zbb$~kh(GkU{h=8*q*rbn4lS_ACGUbQ0f180zRn9tj4ML!SkNv?u-(&~+0aEm#90W= z&f#b{yBuxpQeppK*)obnu>H#Q=nO#(ZmQLQ5o3of^|wmSd(>LPD72yyuHB{piz^2a#7K!A7pNuVz|iHDm8GEtlcUZ)Qm?I@^TC1Up@qhEyr6(n z$QBP_tgO8~o8!!zz(i)XC6K)Rx}2z{o+FD}AaqeCQ|s$jZtORV@V07|*(qhvR%x@6 zzp@zjfZ~gkynI;kgvaJ2KH%(N?;y5p{P{c-K917DYM@wr2U=d)LVG5Hd;3UIpXJ3d zfVVAxQCv(wN`Vq8)Vn5PD$=+5MJ;xZM zts3;|wEblQ#EvH|kXD~a2n2^d>pQw%xwv${WTPoUAof@St9YNy&d}vP8I-WX`k(w&^aMhkk(pYZyYs-HNza1 zT=;~L!P%l9DX8;Y0b?J^Qk_*+ed&sCb<;C01mVE}orusCJTTS#R ziDElRsrU}YLoSYeND6U#?_27mvA=P3bpnt35jEJ&Cga_?Jt1!`s^tsv)i)e8+V|>#IZfUSQ0_g*WWJ< zB5p}*4O+_z$?7Bq^5YdS8hiXu?NdwJ6M)b>j*Z336=G?t#BkeZaD)Fzv-IAHM0gLJ z`)^*kb}4519=g>8q4&#!?T9ikS7um{MUNu!t_qXXo#-7d4y#3S=$twrhnufE5V4T( z?Ln2M03Dqq?rd-I2Pm$UEPepIP08YHkYZ-84tGw(AcwkL3{|;%t)2B?yF!A+xhMhhnJaUf>BmS!m|-<w-?L;fq2(jaHg}^1OJh$9goe3<^qQS+Pa5DM!w=ZUjqm5!X;Rk zn*=a#^#qsqc>cgn*1vQOcK$iE^V<1;U(<{+)(>%^xY6ikqr_EJFM*B5J+LE{18Jq* z{ry&ObGF`F)+EA_9)_;p!%oLC2QKi!6;%BHkzid&y6N?|ufe*TZq_5G(3}Cwqt5OA zlmG!YIVyR5@;3{x`yJrdD3fG(wC)`pfh=$8)6d;{st5R6!=d;Mpe38(k$rz0o)zIQUCw| literal 0 HcmV?d00001 diff --git a/hexagonal/etc/ports_and_adapters.xml b/hexagonal/etc/ports_and_adapters.xml new file mode 100644 index 00000000..0e64414b --- /dev/null +++ b/hexagonal/etc/ports_and_adapters.xml @@ -0,0 +1 @@ +7Zpdk6I4FIZ/jbdbJAHEyx7nY/diqrqqd2tnLiOJSDUSK6ZHe3/9BkmUfFiDDqBM2TcNBwLxOe85nBOYoPl6/4XjzeorI7SYwIDsJ+jjBEKA4kj+qyzvtWUag9qQ8Zyok06Gl/w/qoyBsr7lhG6NEwVjhcg3pjFlZUlTYdgw52xnnrZkhXnXDc6oY3hJceFa/82JWNXWJApO9j9pnq30nUGgjixw+ppx9laq+00gWh7+6sNrrK+lzt+uMGG7hgl9mqA5Z0zUW+v9nBYVW42tHvf5zNHjvDktRZsBqB7wAxdvVM/4MC/xrlnIKW6qzRXd44yVE/RhQ3m+poLyk/X5ZPqwW+WCvmxwWo3aSYFI20qsC7kH5Ka6I+WC7s/OGhxZSI1RJi/N3+UpagBMFD4lL6D3dydnIa2lVcNRMFZGrASSHa99giQ3FCc/MzhKZmgaGcyOKBrMAPQwO2r7V5iFDrM549ThJgfJEKc/B7LMi2LOCsYP46oYg2kq7VvB2SttHCHxIo7ibhCGATARJshBqDNfk2AXoot+Lrpr4RFMk6UXXpwmdLHsCF5s6W/qwkMe+aEO4MW/GzwEPQmvJ3jT0cMDMxNeGA0GLxk7PDQ1H7VDKm82fnh2zoODwdPlz3jphdCUHoyGkx5oUeRdTS+iCQl99BK4QHFHxUoUWfQ89V5v9Fq0FXdOz9ZeMCC9Nk/ckjxVfa7cK1lJTWJ0n4tvje3vcjuotks5k2/Nne/6rJJ8zqsJHQ7Vd6PE6ZEtenJG7I2n1KhQBeYZFU0duJAbECMPRG3jtMAi/2HOwkdW3eGZ5XJ+Z7vECFjOqWevRjWbZOtCCJkXCu2Cvv7NzoUOjj7+7Ha+b1MwXOz7P6IefQwfPr7Qx33WNYNkR5s60nXuANkR9lnXDEIPWc8WNBvu2aJn+8v5JfDkF/V0Ac2nS3e5J/Hkntkj91yWe7S7O/U/OO/9/nzfWC5/+L6d70dfldsrOSEcbiXHs4R9ZeTUGdEXO41E2mX0TD3Rc1+Vue2gq6Mn6S963BX4Z8bF1hGBlLcwPW/GhFJGM4CUCRd5VsrdVDrz8FaoCpY8xcWTOrDOCSnOBWcH8YVmoYHzGDgNWYS+12pdxJe7SP/PVlKQZ1Q0ltVvtVEfXrRSojD3/w4NALvudd9hAN97x7ALQO6ywN90WwUDzqiS903h2CvFiZucZ32xcdvmv6RqMi6zFCtvjuZY4et851lN6g2N221+xAIv8Pb28RQHJhcwG04yOrU1uHxl6au0kLvBYz3dYOTi6S3doPF2irpKNAqe2I96mIIHWJ6Mr20XgF059dcuoD5axWEEoOsRQwDThwAuFECbfvE+Ox5dlxkCSB4CuFAAXbW8vpcRvldRHT4CfAK46WrhKAXQ5quzOxUAdAWAbrpkOEoBuE35E8Eb2Y//XuseVh+CPP1ZR+secvf0dXftkdMn9OjT/w== \ No newline at end of file diff --git a/hexagonal/etc/presentation.html b/hexagonal/etc/presentation.html index 46e26c55..74361ad2 100644 --- a/hexagonal/etc/presentation.html +++ b/hexagonal/etc/presentation.html @@ -60,29 +60,37 @@ --- -# Diagram +# Concepts -.center[![Alt text](hexagon.png)] +* Ports are interfaces +* The ports that drive the application are called primary ports +* The ports that are driven by the application are called secondary ports --- # Concepts -* Ports are interfaces -* Adapters are implementations -* Driver ports vs driven ports +* Adapters are interface implementations +* Typically different adapters for testing and production are provided + +--- + +# Diagram + +.center[![Alt text](ports_and_adapters.png)] --- # Real world examples -* [Apache Isis](https://isis.apache.org/) +* [Apache Isis](https://isis.apache.org/) builds generic UI and REST API directly from the underlying domain objects --- -# Implementation example +# Tutorials -* http://java-design-patterns.com/patterns/hexagonal/ +* Blog http://java-design-patterns.com/blog/build-maintainable-systems-with-hexagonal-architecture/ +* Source code http://java-design-patterns.com/patterns/hexagonal/