From 3a48c531073bcd3f235923a9ab0e13ea3428f3d4 Mon Sep 17 00:00:00 2001
From: SebastianEbert <sebastian.ebert@tu-dresden.de>
Date: Thu, 19 May 2022 18:26:20 +0200
Subject: [PATCH] fixed configuration reader, fixed flattening of topics

---
 gradle/wrapper/gradle-wrapper.jar             | Bin 58910 -> 55627 bytes
 gradle/wrapper/gradle-wrapper.properties      |   2 +-
 src/main/config/config.json                   |   6 ++
 .../tudresden/inf/st/pnml/flatter/Main.java   |  99 +++++++++++++++++-
 .../st/pnml/flatter/config/ConfigReader.java  |   1 +
 .../flatter/template/TemplateConstants.java   |   5 +-
 .../pnml/flatter/template/TopicTemplates.java |  19 ++--
 .../flatter/transform/ChannelFlatter.java     |  96 ++++++++++++++---
 .../templates/TopicSubDispatcherTemplate.pnml |   2 +
 9 files changed, 203 insertions(+), 27 deletions(-)
 create mode 100644 src/main/config/config.json

diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 62d4c053550b91381bbd28b1afc82d634bf73a8a..d9b7505b1096bc428abaa017cb79c9d2da247111 100644
GIT binary patch
delta 24986
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
B2y*}c

delta 28169
zcmX@TiFw``W`_W8W)?061`ZAe1_nn45MTlk3=9mM3=9mut|5-Po_=on%nYasb2r-A
zIxsLW*iW?cb=7JSR}~XkBKEQ9V-X{oLXcrF6ImD-81jqKF$@E%nOx5(CW>wiMCNC_
zoGiM`RMpGNb}}+BNHQ}p=uc)$5StuxS)^XYP%k+rvADQ5=ycv?2NB!LJ4y|gwR~}{
zoZ=AgnVEgitb;XlqJy4JP-){0pErs#Pf5Bz=KLcfZKkmC0rL-yBO8S|Ibur;i{*>Y
zUETTp-1+$X^$ZnVdl^3O*xa$3@!i9H{l4=2H72ZL^D-CTEpCijU90y%_W4So9g^9L
z@Ab6T+oqmR(NA6`_`LJXxusWAZG5Zp7H~Iym}+=RE`5`R$l>FKdA|eipE3!)sIKj<
zoVr-N@*UUl2O(LPOD|caZl7PG;h@$jW!bnktVYrPl*jXn-g8%;Q#rNdrF(4p)|chC
z-fI|N4NG_#uQ64^a!trTcOi~lKX0h5a^cE}QG2o?Wn=wo;mIkLj@MQeHQRjsXmCV1
zr}e`|jSY60FAXLqPv)6oYjdmKf7#cKvPtZ_ncixf>jnH@{3Z9jlj@uUx9<B+<-I7R
zyP^E(uAGO>W|=mkKcb8_TN+>c_U6T_&C0?b+AnQnDBpQ&R}OE+p~v-)KK<DFtinRx
z?fMJXElp*0|D}&ie-&f-U~hmbf5F^x3&sn27lVvn1%KkaxOLMV$K-d~S@Y9h1iI$?
zDFj!&yz8{M>ifo?sjH4;9gR6`wYL5CjRU+@jDc}S59XsLv`j{w)$*(i3@Tic^%G3%
zZwCv9OZ=BDzPUlC!%(ZUX`_=TgRuVAunl3o8W&h~8FRPX(mScRCa>&e+TsgY@7M0N
z`QEtwALlpK8%A3%PcK_mKl$+&>)oE7NqY{Qxw-lN*YC0B|Ly+%HEdY?!_$pH*eLEW
zE2p^gj41}H$x`o6eQ=y=pqv=y#xp%7=2*4SvkCR0$M^IIh^53F3@zLv@8lP-uC*Zc
z5W7&2k<t#uWEpeSnj4*QH7btWiGepxbuU)n(@XR`R>!E&wx}hQE%lVi&bfwLie^ri
zY+7CtT<&N5L+GS7&%d6~2Rye!?>^Z)^^(%|=UZKyH4?9$%04D~_S(_v-WTQ5N;gdm
z(cL{m?^e{o`Ufv}Z`-!%(AzJTr;ASU?LCvRYi6m*?T6nioEPY<<6-W6{Yv+3-!wCm
z%`?tfZOaooZrhc&RR0B=eEG+WvWYfta+J>~RO_j)6-s=W7nb(o!;Z_dd|!N?_VPpM
zao*^yTbR_7u3R?QIXP}duylmePL~z2LWld<?(2E(5c?zfPA8hRzAd7;;p}vtdF7Yn
z`c=x!)$?+f&fDX$`eyLq<(~Vxi>B_kUA%Tjl2A#J*~VGVwfpjBrgCmyVdcFmGGJ@h
z%=l;9q~q%ssg|xi8PKC!$d&o~YdY(fqn~&AUeK-XjY(VEHTQXwXJ=OU=_v*a5*V7f
z{2t4mIuvG6EPDB(_n-P3Ji_&otCK_?Eqi)|_f-4g$LEat<4d$f)+cxS&!5}<I&E&u
zg_FzoMF@&La&CUQP{jHCw8`Gx+d0;@+~(q$!Xor(^K(npr3})RTsmt!end3#o?5wh
zL6bGtyRKx0)k4=qYMT5-?;Nf@rMI>G)azv-ve~DYHH8*EFs|`is}<E0bUP@NwLboV
zH*5UE>{m;wE*ZClK3lYpYu~{H*_gFbCfy-Cj8CFj?>}s8djGLu*&EUJoCh6E@*k8B
zU(nVv_+q!dKJ(MI2;Qe}GUvKQsd!I|y_B)ZUv1vptH(ZmeHE5}@mc4+t8U?I8XJ;z
z&-hNf@3N^dWBIY!udPBShs>WC()w}QsVmmX^+8Yk%GSR55cIjqLnT_hB-?hvsnoO2
z)Q-+xlfP-#^5+?y7E+(g_U9D$3f-By{>GtzzqXg2TwBcbA@yC#EuD=Kk67PX@$9<3
z?MA}xE8A}7C~c|wcz(~4Df9e3xxUt4F}r-t?LA9%vur<1+O}fiiWQZH`aJB>*J6IB
zaefNDC6oGna(!9v!eD)Koo#&06;6>g+h?7f8Re;C^Kq`%wm0rF3-~J-9-U`bn<h7R
z{pILc^LpkrKIGjH|8f(ra|v5)k_e}js6T@z&*jO9EQ?iKPrYGL`NjUO-|o=1o6i3i
zlnd{Rx$*u#bK{(RliwT%c|Gd$l%^;Lxt}Xv!L_r?FG(Y`BzHl5^_l-1w-^7@s#^5#
zL!Z{6<i-qzJ(HIxTgF#}Z|l07d@y4|rI`DR+VfXe{MY}o&bjYbz4H{uhHtwU1ix5P
ztnYZYo$t%S`E?dO%6&Yp>x2H77Ye9$?RC0%Uzu0%&JuA4U5i3%m$Dhv-j5Afr4DHI
zT{!E$?c7EFMafTmRZmG<_|@;3{p7LloCPg=L%pXSxAxp)xX5M0Th3pqN9H|hYnjl}
z;Zo+ebB5%-W%FIWyj^+qQTn2vFDh$<H{L0zc+d82rE=((waE=~e_y|lzIo)|9kxfI
zGBYIqO2;nl|GVEo>Z@$+3AtTMMKe1DB?2twhOE@Mnl-^;Ip;S+CM~DF$#)cX6*{q{
zYuXe&XXBbAzl?!jSc1`p<r~X!4vUj1clKHMzhq8%^u9c}^*>r2oDul1b`b*u!zBg=
z24!$vx&5-h<YlSL#1S>W!g9mq)+`JRH`o~%96@RXT=L8Fa`F>XR9sTi5=(PRCZ8^s
zt6v&=H&{AU<p13qGw#!DK^_`Ywl!=sW${`Swq?oM+{TOyji~_wYptd~G0WNg=205+
zU+G^Dg5!TJ^7o6cdD+8pb>=tUbgR0(FM7_s`0?QQ55vdx4=UcN)|7Br$WA`Fv;6$d
z=YQ&+C+Exk`TWtA;rs(#;le!u{bF+_Bn5Q!cs@$0m-U-z(JL-J;eg~y%j`!oZBhn3
zg3OW3`ZGHoJv}i~az%fqjN4L+{Dd<HSeYO52p-p--g^GR#P5HKcD?yLN%@kuU3`Q<
zoz?mt$+lgS3S4HgH$8k&#@@bH_4>z(my6y{tqolH<gJ%N%+p=v2gSR$g|E$-BUl%>
zgOT~P;6KmXTbt`I^E{utTcASc#5~Qm4->+b*7;W678PIhdGn$9Pd4*q&iWiT(K`6f
z_NT?Zl6=qJa5+EUu;b8bzYW1DY}(H+Sv~pS<vQW;%DWY^zxp#mX1T0P(`K<*5!Uu>
zN3@t~+q9H_TJcXZ!&zQ>3-3JhV#S%050*~iIdI{}hM9^{Ut+kVp0w6S^F3R!X)({U
zssc$vFOH+x$u$e76*?7_UXMO_deMVaOVt(X*Ed9Uhu&8|z1Vj0x$F<yrl0HWkJ0aH
zJ@73i>7v_I-7wi%licrw#AKB_KVZERxm@!0k{#=exZ|eQY}%G08QXtZpHcVCaaZoO
zH?kM<z7_kn@bIC)FT$(qnAb<laHv0cC{bqPi@lZC4lHT)o?&F5tGhlZa{I!w8~ih6
zwQ8#ty<+>e=Z1mT5lQCtkrlGjb@w!$X1kYi;!pp&;7hYB9&ZkJow(}qZ;8ie7pSJT
z-zu+(ez7#_wcg>4w-hu@r1bYI+*`-BUBk#WnkW5grlrKp_7|c|_sdS3RCM22+4WKT
zO8w82yw#6yF&1^@i}zTlwU-^qyzP}+bng4KDUQpo?Z}jPT%@t3vM%;qfS!7~$L#GZ
zb7gm5;fXDgKIT}naABk$Pi+0!qKpjQlRFoh`h5Fq;qXbp_Uxp%#isM37`?yhDNlJ7
z-8SvgG{Jp~_gHyub5j3l`LnLEs;1Me#?>QUSnfsr@;?`QonP(h)s9(KCS>VSJ?pI0
zz26-d#3kOW+W%AU+Y-B$Z<1$1!m}$_txnF~E})va!t#?~PiE#n5yPEdCVkX<r8HrU
z$<bE|Jd^HUNd2#ySnGbX*5AW^0l)ntmb#!fK}Tj@FuTF~NK-|0x8s)yrc289zKW55
zTbl7Pf_vr5zpLs4>jD<f>7BXq+&j@L$9>ZC9Q<EwFKC(3D*UV3Lcvn~OXv(2>#`qu
zQcg4cR7+Mp$~EDAHDAH%^1Ag4KK_$swR2!u8ztqxpzq1~kSp;k4EH~hs8jwuzvNMQ
z$_IA057WJ#T1?DV`IPAuqTcPPK0mDYWZshLp`M0YCwpdUt+dKu4tvfM!8=9#uE5qk
zY8u)vW&5XYc_%&Be2>Mfb$d5=*{;s`m$3M&py=E8vQf2r+Qg0*bLqOAS^E5QMbO{R
zm!3A;q-Ol%Ms44{p88u?a&mN<cYV~F)!URlDJtXz?moIcBg@Bwx6{*9MWgd!W`_FP
zS*gos`sw}+|E1(2EcE59eCnRfA~_2*ckx>rf1g+UZfCLa{<?Z=mJb5{vOWpd9Hlm!
zJqwyqULeh_sk3ZD%C>SDoyY5%S!|@W&E6UI?B`hIus_A4qE)vo#q}EN;ip*wo!jf@
z-j!W=@8jGFN_nBzDs~(VO*r>AA;`Sh?5Ww5JFnN4mIS+4ttiwLb^cW<!Wqh0xm%Yb
zc$L@H57J%NogbEq=5KBJ6n`>L#49e|N<ScNMi$3j$1m$bzBa}vD7U$;5BPh+zR+Ii
zmOP)<?H%VgJm}Tg6J-_~U9H--le>ZE+_E<->Ssmp`@EkyIppFG59MahOFIq-A5IB=
z9kwy`SM7bVQ^%T3x<0%V`mg4<gU8_Hq~5D0zTYQme!6i?xb4yZST*N&S8mKaa^}P`
z$xViaPXZ6$f3tP#jno+i#etJ1>^i>TO(?rU6l>t(7z_EN3Nw};{a4=Hl$d#8)1@a_
zzM6h&lj0J0*B_c7AC$B^NzKM~k?)zyt340ba7Ls}SRn48K0j<0<FT-BiM0!RTXp^(
zfBZmk-GMXeYzK~(Mom7Ucwc@0!WAc<?pOYJ&{r<ujBNQ^<|X?cU9y{VetD7J#Rla`
ze;uFCS1B}6m}@^xErBh#_T}>}QMK_oJJ#PZT=4$%o4h2eWp}$i>KN}3o4#$uSEhA`
z4)QXeUiJ^I5}Ts@{>(*w1_mny1_nh?1vNSA3Sa%&NX`oB<E3@|3>&=*Dmf-;IBwF3
zP(ONkQt6~kNfQ^Tc<gbRFhwzP()0t9T3C`E9(8ILzCBU+W?|CLj=A2MlgxZy%WP9t
z71WsNIb}=dr5)~7OI}Xg_Hv?J=InXvs#O#JN$NN>v}7!g|H--8IRD<B@6TlapII08
z_oQ~b+9KaSb@lpd7u^3GG-F?E<GuIY&#V{yWN!U;!CUT^vf+>9gI{B({yXAb?^VC-
z!uLH(F3zuhssBQM@0ZM9+81l$Km6I6@$Z<o^~-$GU)HU450)PN@;xrf<^O}F(_hLT
z{lf41*<b7L=IL=u>H}ZIAN_pa<@5VRmA)qbA1<B#qE!E{`rqjp|900iRsDBg`v2>t
z{ujr&{<<v9)W2#xb@GqZs;g3-8R^%y#cJ)|8*@(1Bf&L5q&2ivd(W1c`_^s}_g^Q{
zyR2wxMHsiIDcAKwIdKY7^E1S{(k5nzbuaTX@fL|&wITj#YTT<wQaLTtSJ%v*-uIDf
zYJPa-(o>9%dzs~)hQ>)fxvI7PWBsM;6>Cqu7KzjM_^Op3u+wp&H<x+U&d%APd4fh!
zqWgj$_G;w^{nVRkzIu=A)3t|=<vRT?n_9l&&a$H2r>sNwML&(z+V85f$Nk}5u5yFS
zgD!_QSUs-NN?kG|?46<8*OEK;lIM9I@wL5`KQnpSM6c50LE9MJ)Z{(V&%gD%{n+hL
zeV=Q|ZI+E`E50Y>-+y>d_;4)q!i0GJ8@v2pE&qCL$2^H_-kV`MhS$!8T+LJq+BR=P
z``3zF0XrwJ+?1U0{@%Jq;e`(->Z$SV>Uh<;a##I={QC~!8YPR0?NfHU97%{xkI&B!
zf39FMM}p^D$yZ+9c`rE2%GsS`XWSG%^yuqWpMQ<@>+V*285vYQdUj*RjpLv4E=y(0
zZvK*SC&M=R<;f+9Tgy&+MyyJ>v)W(6C+<rduePYMu+P?$mj5#JRG){vYfd?TE<!2o
zebTEH^N%;}yf@qXroovf?@SgOY+7bL&7kVCuyUK}ivA<K59^H=9d9qyRy)RbF}MG?
zz!TBWGkJv1R_fOOj@<S;ZF^z#5ucu8$1Y7XwBEhscI?-tm0BsUCkESAUAoyTReD9q
z@YUub;kLV0CITf}j-0u+cjFF4Q;jMUEg$DB(alP%i``E3smjD&J(@j{AvRsvEyyRS
zFxM~LAW=HZsXy7#Dm7yFaUS*6f)6Ktd9lKychh1G1J#N1Bn(<6)=%A*`TAp?vSC`k
zxQEdqOCfm&m14<jnaf(aSa|m}#(Hy~edngA+S6gcC1y0`o}sa<k@9k$Y6G*x8JX7k
zHa}t{jITa5zcGE=<V@*AgD;#u(~mAlE37k{p)n^U=+_Fvl%wfC*YA#fXv<ZuxhMQ#
zE!X>Siy7&ChIj3>4W!eo>+4+w6-)FIU#EBH_;DMScEq*M>vBy?Kh`#>asF$SiA?uA
z>Uy3C26C&p`8qu4m}j&t@12)RitgIg`V$u~y|AY2%!bX~Yvc~gnF~HjWv!WJDAm60
z+8dc4rp`vsE2h4=pmprjzKN3~Sl(qh-oBJx`ZCN$ZHJh6foPS7QJ!|fmlJF1ozguI
za&>;VTg0U3yhxY9#^qAsU9+}N^CCj6qK@94HqYB5CuFif)v+xbq~j-AMDqD`zw-9_
zz;$cG#E!1Ti;b)c7|ITw37PlIFgQ|Uok4Kxk-K3mu8(<VW@;yOB(b_YnXtn3#Kjj(
zwwkk+n^d*jTX(T?lWEnIgvj4E8rz=no~w88c+xDjxB1@6i>_5%f)d-`rg#S_Ouw<`
z&|RtT7fP2+`?=+et$XW(xYpk$@18qL@fUbJc9gsHg89oDx9KmtjvcO%$e5{pk&n~F
zZOeuUjUufKVHT=S?rYE5aLoP33b*(LtEFlu$F+*LK0IrbBX$4y@dCSZ$-9po|Jicv
zd$-$j!TMfho>>PMbM<H1oHOk8=h|(5aJj&P83zot=Wgj;aj39YUE*W(jP{xPYK$H~
zIhV;X=VEYUQ>*TwH!X*j9rLVnNbY7lw!~nKZ?V(k%SwFO_ZgT11vhWrs4UxkIx2F)
zWuByjD@N)}Qu7~fUS!!G#NYF(AZ?3oLV9Y}ABDYIIaS*AuXb%nGpUnS`=NNzMrY5b
zju(4lO`dPomTS#_e$b}jM9)NK3+4qI5{e$iWqKSiWA?o3CCRvO@;*QF!mXm2GcNs*
z{o}WcyS<$M3tRPf*0!J|_uuU7znO&`nU4xc8Td<wIrtyAsj1w=Y+=wm$;tEG6t0B8
zg!w-04kE1yN8K(p)h}1QAaC9<KPgg+Eu8IAW$Qw*kR<`>Q5)H14}44Mz3@UR_WBPd
z`(+;=|Iw?6$l1lJ^jKF`sL!;n>3;8#IgF7qeVae{JpTS+vfm-`b+MD<1Lv~dbTpRE
zbN5%gqE!?4c=?aaANd&t`Jc;r=RZvE{!!#DKJ7sKvW5loaxJX|^Cjy$RTt@2mqc$r
zugWW9_hF6AL2(tu1LtO4YwT`o?Xe1*k+1q^7T284n~y&q(VfPn;$uC*OMSB16&L0O
zbD2fh_;|h_c)u^_<u;3@+NY$CXBck0@0dUF$@{B6EE!pZ`l9`;AFQ!dW-rO!bhuNp
zD`{EOru0Vfy-J((9#;Om74rI4Nd1Dk+*PsvZU<br`lGT={=piSODx}?yf4#!#(c4N
z$KN|MwH?_%6}+3W>tVw0rTXlx2~#u@^w+$8x99_ZU-Yw?Z&XVPPbyD)`QZO;*{GOU
zuFW51UTjz=)XEsAv-SMR$<=Y@o|?wL=YRe6%vW+-@e9Qy*69sOcAAU5R$SE;*t~At
z*?QTJ#^Pz`kF3l%<8?Cox8RhixnBRDS{9qTi@5#0)4gl|zAt}6&V(lK?mTorced*0
z7g28xuVd?BzqI4-d5f&t&fBps%O|l$ygO0MCv@lN>*h;*nvwm_US9p+75Gj^v%veK
zYt$VnMX`-ri@(?X;GCYeUG=`usn`8w9f`StyH2jus(-NgLrq>x&E8W%N2AMhMCVvq
za<BjLm#O{JG#wqswmQzRh|pJ3J$udn@$BT*-1(XLeO{T>RZG6iL(5t>=gng0<GA@W
zea(#CB|#6G7kt_Bf0`@H_J^Tz*-C}Rs`qvsNnu(v`~H=`cP)S1PXB0q{r%4$q1N>?
zOwP>rshlyPZ?(gNdgqCS&J9bO{?!?$rdR)EC|JI{yC&eG^%S!shKj3d)-Ub%J@LEb
zldtOg7_SfixA{c8b!2?`@yeQ-6FXmeT#M+eQCiVjH~Gl7oLmvd#r1l#KPNG%cg7SR
zSzFue@Jxi`__MfG?=&|)dojnfHR#!%Wx9K>%FGe;o@3^(SZD2J@%TmkpUf%s8-@8^
zTcmfd&n;bAreP;_C+xmuJXhD68I{?eduCm0$veMk)sbiUGw-}DVPCtzz)*EX)1N6y
z(tk|^r(VpAa!Y@aQ&+?Hn4SAr{?Q+~tdH9b>ULzj5!R1?@%zZ{={0t*Y(8?eE*IY;
z{=#ref3k_o(<jF^FIqTp_AK?z^&a(x?<e)7W<+}~wSLL@MQT&em%OU}KdYh@MK`|T
z3{BmnK4s^UE_GSa^A4>)`1Y(zoODV`YW<|u3x8_ul>YN>b;vyf*LelWmsK>wJz1TP
z_WZl;DLDVY!moNK?)qHa(kgZ_%pzZU?b5fGmYt0}SvmXK)7&Wa?a^x0&zJfxQeRWt
z+*L2`d3={$rtU?h`QN2N?=5+ydFhaiXXy16Q8yk<+7@#9>)Q`U{h~Z}FUiy0eeUAl
zEl-}dD%d%ncXGY9TW{xvWtz^WlB;a*C~Vu6kk%i$bGPDl=D&WL<`ZHk-4Ev7JAK~d
zU0E+GtK`G>$=8}|9KZPA!EfeklgcOMx6R%?-S+8N_LKV47Y>=77t!VNzxc>N<ht*r
zNpbttoxN}0;q9&auJZHYr_|i8`){M)g&UR3zP~r2Hn%OWe4h5-cRZ}OPKjT+EPmB2
zwCCN8S8H#CMQ&VsD*j!#@fNK;TNk}aPKjB3RWj<cV$>hYsMpcc7k&*6k^h!EV@aEI
z>C|p*y%)E&Uaxwxc~$+oEJ0Jh5S#ykmkgfn{qRRMN-gu)wpDHV6K-)t#Xc>~`WCP`
zzEpSJiGb7Gm(M4jdYXOq!rXtKW-s}5+IY*xpK4!C(=#q}Z`toF$hAD9xMI?_AKTJ0
zX5V;TcAxKy(UoW6YAgS`Mf+wdb_qOMzq62a-uh+lFJzyvu(`=^zyH|jr^fZO+2xmh
z&G>%sv17_T#)491|LO_-d#|*_+;aJQVv=*m69(BO0=FDRei_{LZ`XACeo4d4OxAIx
zoNMcy_BED`9QXX?7YqKfu~??zwf>SsPRHf%8BP26JAN>#zHI-(u%_$c>k^@BM=E)J
zKd^ZfaI01d+a8G4JZh~F`Q$wNMD^J(>V+$Atyo}CQrn@YczDu<e~AvRtY79Xo9}#{
zyI1oUM_Fj+PL(x3G(r>g?=PCaJl>&guixsIkH2&;;@hb^z5j*f&yF}V`O_8FU;Ya1
zOklRoK3&QE*Jv+;erU09?IgR_HzKB=ZiiU%riOB@4aivTG(YTxG1uM|7reRluDM{y
z8kbaWJ|S(^tLIOXPHx?mCv{9)^=Cun<r~QtRV;(oT!;;9wX^PJTBm#T!JkIfvnFPh
z+On)yS9Gm+<6CFLV$c00bKau458HU|p3NwG_+9MJyMy`Wb+VJMRPL<q+I48(-rmVu
z-nZ#|W>CoU7yMwub4qy&*9A4E81{p!H@xn@{9L8pIH>-)C3}<2kzGw!Qy*ndZg$eQ
zl-R$T(dyfGv-;*c;WY={ZcJIoJl$imYoUPa#V4=Ng$D4yTE_U?F@IYf1Fvzy4Ay7d
z7rsi|`E8+7*)&bTmZ{;-ZpO97?MK(ybi6&)d_(V)g5#+TRo1><33X9&GO6~9yj;ox
z@6G?3u*>cG=6_Et>Zep06bt6PJ{?f+Klyz?8(WRy_30S~&dz&%_az$Iy*Xy_=F?qi
zrj2Lso|(a){=y@A=l!?($5SlcWPOo6d!aVL;*+RVnWVOV$JFoQ>%Z*YDN;T=y3Jes
zMQ6oS#TS1yemvIr+Ag^GabLgG14*ZyD>c?H)mSYia-DC=F~v8v463H}eNB}ts>O1y
zN`Fe_Z8nI=tY=_~c@XCt?{c2^RM0P>T1i2f_WsRVK3i1fT?oG*&2Xbe)OMn>_~(85
zH2!w2=1=;f{blurz=|CcPc2(`PxZ0{>lf2N=HtsJ+P<^lWbr&YY5iqi^~w5)Dor~t
znl}k=Ixg;b`*z9XFec0C)<2s*=hjE-Zc@25=j`;;C-fc{*(JYvV)$2y>4#8Gy`<^)
z$OBKOHu>C~vAu5bnY25b6F!<h+3Lis@;AyZSgW(%$M@2`<Qad|J{V;`FJI`Q^33qQ
zhR&OBy`I^}Tet3$xMjBe{gR3)zx_JfkBhGlO>LO?|6Rb1UiV6k9uv-1+qy3z`_)Cl
z>ZP3@M)?a%EwwD^Rnt4aYhFz2T*(NF&fix}?>t?%m@Dp}qM_>dZT8s{Hk<SFHO5b$
zcu}C^{)Fn!4`=-F-Dz&W>f81wUsW2keu-5*ov>N7Au~Bu@^9ajKf4<;56wOAy6n&V
zQqf}V0*j9SAL1RwD(ksW2ahTzuPlGcg&4%%Jfq?-8!~@>{Vpb?LGGE!X6DN|85nrQ
z7#Os`V+d_cQuP%g$3_3K&)u^8s?tK?w;6WH4(fp|nrz)^ikzMW3Jy$41r1NPc(9jm
zPs;C~WMS*4dUVOH&db8qvO#{EL>2a0?EU`g%ROhI<0tKRFTXsM_2udB3wO>n&;J+x
ze6OTj<)4Sz3}KzDT=Nzt8P8kkbaeBR4>^{1);_S*(o)&UbUyS$y$$R6?~hsQ_5=u>
zTU{X-_vX0wpNf@D)gf2Bjzz^x=++PZShUCKpmyk)l9TI$K4#s~PJBQ4aQ2fAQKH`;
zmvY6uKQ8^JVlh{vxn{-YuGWg~F4l_GP1{#S=rF!J&deqE<?&msLlx~^<&R=Ny}nyi
z(JyoF^>J5wy_GAD{C@K1ua;eX1OKWM2@yv*<bpmLxQW(y9848`UFdo=cE_vZ?N8hK
ze|!vNm7hFcetP%(fRCOvtGMPLOBb<Gvb5J$^!z7dr{Au>;)l|{C67-3=xSQO>PFvs
z&NHuW+`c51X}@Xx^4j+k&%K-b)_qs`_p;LWLL4rBFP48@wqu@5#;c8MBZ?B54_v7a
zGoHEW>yo|k{mXe915SS1_U+!Zbsp8xe9QGtZ%U63ug>qYTHg@0X=PHfj^t)@?kTO(
z-?)E7ovrg)-Falvv2`VnW+Z-nb^K9V$fcfFAOG$Wo%~tnVmkk^ASQ36Wu_NQ5?=l-
zT>P?UDL=1dSa7?s?Spe=uQsamep3CRZD3rp;!1sr`>s4*f%WH-BOT5v<zLrr%$ly8
zW|rH1ly_Yif25lD+Zhuli7*~D^4+cLcCSnEu9xJWh#BkCP2{q(OocgZZ|e8nefvRR
zg;AE8zpzJMMD(78&tp!R3GFUk^ob$r_%=aj!}d24kDn`Ens|Bs_Wn1QgIqV1Ow5kI
z)pvCEv6q+p>cz9=r@l22-m+OKkB`SA^?8-6;v=1+c;9K4>aKMx%bonEd(RJkks{CS
z+voR6t+V9XckaQ9zkiSB3GC2}k(h93X3yGJUPV*m0*>4ZkU4j2jnhw~Wv$*f{uHJy
zy`no^(DQKKt?k>pvzv;Zi3?PpQ_cOGb58D4%O|1S={KdW2d^}%fBeJDc<!70?K;Q*
zt+d@HXS*|4zNjefpgBuet9oBn=c;J6tuNgaL#oeg5jDN@WnN^_zA%qQA7=gzv(G+8
zd9VITeOu&ySa{;K1m&d<HC|l5;IiE5u=z*bU;BRq7`3Yve~{$b<X3!i+H%evH4`Ei
zJiPs*ujzf(54nB*^MaY4F27W7cvvjrZ@r8)ul)gj(?1;cVIPEf`yVYov*@Gqm6glc
zBwcvz51$wP<8)a6qc*Rhjq70nzf6n9<yt?sw%vcQovGO7%&SRHE##g*EE7K$@O0{>
zh5NO?JdpUGcULaQb7>FD=3|p;_D?@7&+^K4#`aBNOLP2|?4MDv&awW;e3mVLY!=mf
zzB?!S_^IEae~|~{P5y}1U;a=od8hutthV|`Ql}5kJ;R+n(INEUwEBnli|!|L{agI7
z@K5+c1;ryGu2V7(sh<)JT*&GAW2V2kh2xhi6@G7g)!#-OI-x5RACl!XHR?xSaHVeu
zr*A^>>Ulo1%2wQ8Fp;y(KxFFkypDfdvgT_8uGOn6Ui*2W@U&0Mq8!iTU#1AIil4J8
zK5#<&-Q#`|fziUju3JUI7k6aNS|Q5ldL=W->e3n$bGrw#W;AAZ%~;tPnPg@h#3E|w
zE?lfyIPVO<6U+K)jiqOP>U2If`V_PHskPs=vlVx2HtSa!ojiQQ_L{s{tF+qXDOzWA
zURa&KR>|B^|1M_b?2dL#qZP}e)-;wJ^0+0ua@ygke?L{^DC8Piici0?BPcmVU!&aW
zQ_9+pIWsG7&v|sf$u{A}&$mh6B6e%!F7n!ToI7W(OXxZ0MAn-Z0!+kbyi;|%XML%x
zdyPb6fgwxnhJr`$yrnA?_(aN`whOG$%v?A*>v=1i_}3Yi5-RHNU(V`Iom}>#?LZuB
z=^E|Ibz)Qe-5ZiD!Y+Jqj>~+kd1&p;dD(HQ*C!TtKM!4YgSA&~!qMDSlO;u_hi|r8
z_UuUcvP(ybf}*xp$lRR~{_L60u8m*x_NZ#7++2FvdRm&Kb7AZ~@iihpueYm<#_FH>
zbuxEpc-FC%errp8mtQnHZBqZ*b@t1B3}Stn^OHQ*&Zu3taz^^$h?o2H+F#54j4OQa
zTJvhkg1+@a`QN@?i}=|gaxzx6SloAeg}a%E*k=yz8M#)jdpm;Ttka)cuP(n}bpAy3
z;>WU*`{un^@G$0fZ*ZoqAN$!8&&z+`Y-?*yd2rGH1<#$ga`)_?Y&@=AWNh=ztKRoc
z-_(?6Cy%|6F<TX6mS9o3|H2YO?$0whWi^%tW!^rsZ{HlBsY@R13l55ZDgJHlM!6>|
z4exHe*lm~i_FU;o)ya>abT@US&%YBVzO}FEdiW6&|7GnJdpYHEZuHMq{6C%LgJK6q
znNxyzdT_we%JO?Lk88^B?P>dLTlqQj!{^!N^`(7#mzaDE|FC^ep+vBrrOt1QFpDDs
z--@rqu*n<{{t?}2C!->6-d(*SL^LzpJwPndis`-|-_zZ0ffvnrmfjTqlKQ}2;LFr_
zx77H^1*?{y7r#(tG-H<ISBsr)la_maY7D$ml)hl6O@!X}Ypk`sl0NzCBo6kZsjiq1
zW!N<{WoG@<gKv169M_%6{Ko$Gw7WsL-!s#2J?Vpg(o9#F^(8sRZzvLJN`A1+Aw$Bv
zKPfT(f_+bP+r|u$Zq6+#&A$paZ&yCBab6tX<qK>f$(m`2lFyPYuO+ZrZJcy(&(yw%
zv(L{)N$lWF-zewrZ2az++nn?sy#(%c3$7O4o$y*t=FnWf`ZsPrZLECC!<3qp|IBjY
zoZe9)kviqGLWzv>bvYG5SNqtyDKTt)#xiVk?HU|4rj)X;?`xMl{`txy7C)i4OkcZ|
z4;HA%S~98a|M~5No2Azp%}YjBMIsOP9dkHrAmzScirtw>)1FN{CL82?v>|teGyAj)
zHJMj@#JR+#HheC<Vp#7rRe#@_16yxyS(Wr>+Rp!aVyf5s_B>ft^oPmmhGoYzo%=fO
z4|%42&Uam)xxuJ8x_#p+iFMZed0~8g>o4luSzI#r%5L)oX&bDXO(oZyeXvcIKOrkc
z<n`}qe2>4a7P%;MW5U5>zYU^=m}l2a-?(%AnvLl!(QSptL#<XkRm>6HAyI#F)m5{e
zZ{2)Fypz*q%`QgE^3=~<d|QZ({m-hzQ!FbIW&JPO%v)e^cxUIW(tz`RY>}_-oj7o{
z;C|+uhim$*&p(pc`hH1h`bU+zv&pM=uJ(TxuUk_sx~7_ED%U%%QcaOnr`*%8J+M>f
zZ(!|hT*b5PZuiT)CzdZyEC^m@+obpMSkR_D0pEkyG+Lh7T3D`EP;@~wip{V+>Bpk8
zU6J!egKfLsx~yNgBJqtz-?@`EJ6`F`Nzn3MxBNdpYE$snBZ+6L7#J9CGcYhHftz+Z
z*Z3!2?Oi91XdYVTh&&48U|?tyf~nciCr}?zStC*|`v2di<2sWWF9kS>XUvYuDb|0e
z)pFR$$uL()L9vBp$=o-5vlTZRzkZ|BSQU`F)_w2msa5kMT$kR+ak_Zyw?p>c{EK00
z-ECjXe+zc4%}+DGc~?i%aQ^v!=gR-y`@Qe`Z{Kr&pD%1@Tyx0&St7Ge-lRKwCP>eo
zEn?o+Q!lneRc4~#p^lctMkz}wi+bF*w|`K27k@@u|KYQxcVwPF<CEmv<Kt!?ckb-m
z&jsRf2N&;7-6OO<X;S#<3f^~|54ZaK+9eQoe$zdL$GsK8>-X%G`Tj`P=SSGQeQRX`
z_w1E1+|xY!qQJYyPs>kLh~Lvqp0L*Af$g0=;fH=ZRn&9H*K<5<R;=-G6Sg}eEuWaF
zu2K_n%<7K*WlnpwhmVE)yneJe92LA8kr)wpRpP>A^OtRE8x}m?Q03D5BCO@PH0!CE
zYRi_-F}o`kF=h76UkSG^>TbSnwrqya+0HLz+l4Qu`iN~k<6LEvyV^%R;CAB8j~;iz
zlH0^2H(pH%+N@j~cYjvBzt^9KNv5{WuU2h+U3H1G(aV44!dV|Z_yuPaCUICfS7jab
zYJ9qM%a+-i?xsA;ZZDa=YqRTvb+c}AaL*0Mnr8i4RX%Ik)veX6f7XWe?Af=$*?jA|
zlB9sm-&Zutw4dVRI~{lRTIIahFP}A8r<7e*`PeqgE7N3e*0jlMGL||2_7tjjUAbu4
zHj5oy?<Q{L%e<J#Ilm;;e|?NfhULwlOH_QygidP8{7m8zcU*il*z0zAp1su7NjD`<
zb6%CZmeXIeZ)N7jklCh5Qq!cAk1-yK^0HmBRW#YRa7{{knTs(;f5{Inf2+6B6ZsaY
z9t>?=XFcuA&h@)G%7PbKZxeX`N6x*MufBYh=XBRY%T?w~`oIurom%B}D6{c&@wpP^
zUBw?Zh^5~BT=iwgN~_G-S90fiPDp1+bvMbqJ?o`Q)XB~@>soA!`loJNJnQ+An4DQN
zdK@<2?U4%WT5x5hrE{3iq2;1B9fqv83nw@E-dK~sZGQf6FW0uD*-c?vG;cKWoIDl2
zG(l!}J<Bu^=aT3s^Q2j86PVIPY+5#pTvyAEIGA3sk9mIR2Lm<Hn!efRKi?An;K~|*
zXu4<(Yy8v?rmXSDEm`j$Fjuu%^dPz-<luHg&4<=p`?}wAvdo&a>aE5PyE+HArwk6e
zR!2VMSN-F0uz%)j^&cx+=4<}2tXufNrf%hf@Cu)UkAKu}ZMwhV-+d*&8JU-P&L)-}
zlCQk8sej@E^$*sZ`@=u5{|P)e`N!lY`^Wk&F-$XBR)lHi9$DpkdZpj&?XOQ}c`e8~
zzR1snvt^g5Y3fW}m9Oh-9_)Yko@?HrB?m5LzAs(w>+YWs>~u4{q-E}#Cr>x4YG>*n
z>p3uWbCcVHU*0|!V=mNhUfO-CEYT|9;>@^=aucnXX>&hM$_|`2eOg?M=0dZq>{XAS
ztvk>*Y3jC=-Z_EuYfNKQo*y?&pMGljw@(g>DyPr7(6zbXms!G1wW$-2%@Rs2KNckR
z?1)5>PQK@ZTeE^v_wT5i{(9v$nF}$+EAv>tPDy|6w5j-Y!YQLmecQZC+fLLQW|^#7
z`eIR(XLxAMx$uC8hR*_KZqAw=nR_@Vi`(+2iRHb}GtpMlmR5Er&uo7)FIm%l@#;Iv
zZ<hUI-PrB-?7~kI(~0R{v##x_JU5G5apQ^>KBu5b>1+=x3pJMnG&CFPX^5OjRlVYW
zKV0a3=-zF9+Y5akGB4crBX^4RwOQ$<8TBtE$|FAR;J(IGkgh-D<^kD#D-60?5|1wT
zjXu3Bch>IAx0dZWdpzdOE{o7GGu^Z6L~`qahYBqk-!<=lkNC1l$Ln-W$GYmW&D}H7
z?c|((g*;rn>g4_NqArUjwp|ICUN$9b_WhFGa~RDxF!mN3CM+oVsTV4{w`$UVxl`4b
z&bC~ys^6CSUG>JK{vY0&m6oj15eJX`|1J5pYY}tlBpp*f&M>>!CC^^D?o-~Qz1&;+
zp=!wG>3-ZN>{zt5erU1;>{q>gx%tG~m%dNFebFhZt}?%9zNo*>`a{j5yyX`ePALS|
z$HxAZaEU!Eaq5-S@dvB9e;<Fao}2xczzS~m;{t1>+rKc>2TpsKmeqWOf6WoyD`6L<
zJRR6~F_a&f^}_L>KhrH`+kMf33AU-9B3pjFmUD?@`+UynoxJ-_^I)SH@jDx4@rd<Z
z-aS36Rx-w{>+4s^kiJDT#aQ&Kq`TD$D$@_Mi1jPE#9m!_Il}3$sANlLUFLlCEuZW>
z{t18hZFc#NePe3u>3VlVo7J4Bm-}RVZ2ub>n8XyG=Bd42sp%NcI<-YStM;DFj;Og&
z&vyQ!;+yYFVsB61T*0Irb?5GLt}QHw8jW}OC5X(fEZMu@dFl$)h$TzfrnEGd_?(}$
zW>G-_)7Dz`f7Uan%A8oB*IaeY-Tqe2iM%P5S<?OwwoP-G_=2PJi%!bJ`l;G`SL$2m
z>IKX=zO74Fsde>ojzf)eWbHn=+p@OsKW|G}nXTKqT5UtyqmA3n&z)n{UHaE%SCWjm
zk5fmplH#N<hVRP_OU>66{%;R#zS{EMv}O6$7Yq4+*P2MH>^aVPU%BPe<Cgc<oOjhZ
z?=R=P+b^_FUiplz=ZZS1w@I9NVz289yKl7dZIq3Dq)^t)@@>+xyu`)sclvD~$y6Ox
zzM+0@alB0<<42Ki-Sv+eb~HrC`p7r={F<I<{!O6CKgjRvq%!-H>yF1sv3g#r`!X??
z(XCYMx9Ow8FPGOH=-4s6DBJ#{ocQ+#43TdRUtT1nf5354ksR;3Ck&a)B8$F%%TxAW
zQNQI9&rharo*bSp>e#rS-S;T7bUO5aRcD&ORDo)?we6}Vf4SNJ^>PF{Dx2AJT7_(!
zdP(oyQdy-usiq=}=C8}W($+r`Oz}5RZM&s7J??nocKNo4?^F{OO?I2QWgFwYc=NU2
z9RA6pHdb!%Oj4;~VqlPDV_=wUm>@oRLmx-IXI^nhVor{8Mrv|4WEaEKDY5>-jv{UM
zGq=a?y6dD{r?9BTJ6bE6YnH%K3C|uiSA7HD4|x%7n>PGCk+=Gva{i7BE{iT6@z(zn
zc+7aSceEF;iSPL{H|Ku0e1CK1UHkg_KTH9Kl$i^kq(=A!Xq@=quuR*kt0=~Ff`jLA
zsru%?uRr!_$C+g{C2pxXa=-X=W`w>>xXm(d_B(~Q=iLz7cYgI2CE+y%m3y<^Zn0S&
zw=}eBN7uoc(C^WAO1Ja1)~>m<>%+E~cfSv%-#8N&^86I<`YcwpHT-h<X07S1Q(EJs
zu3p?G^*bbG&6_JnUzg?jSLFYkw>ri&=Uv#2=O=9T)UUXH&gXUA?QNQgH%`oZUohj<
zM|HounYO7j-Z%4Pta3_=Zs!Y?S=RLMhv-8~_P!hG9cjhyC4#JV^W^hCr`?!xFjSp;
z^-(2f#p=`@DXw;6yBj94<nS=Qu$M|-V9I$*Myli=i|YAXLA9kush4hKZn2F%vFR@J
zHYG*1yhqbI17qrq6O~dAIb1p-^6phcdc>|p%EH1sbPqeXm0Z6)d#`fhb_uor{eiPX
z4)W{`<gEIrbi#w(<g|yiiJFFb`2u0Dn^q>X7?1fMDUbXo{pGxush^?V`wg5i%Xdny
zImCO^AZ2nhN2OVVL1~}Bj?NQo&WH3;1Er3y_~TLcQzU9%LD!4v^?Yj1st1-W+$gDX
zL&xpr9H(<EMm~@D7NiNCyW(Rey-?ov=Y})IQcw4W{L|iY|H4-P3yaiC6mLB)-FQ4(
zi{<{}dY*|-jHk&RGzsOc2s_a|@$C)I`16l#=SZZfwjU{;v0p*W_%DCXh6=`R<|7wZ
zcfKz#+oS!j??mdODMI?CX1l}n&gcoV|DF?S*uLdf?XMKU7PD9KsHyfz8B@Vx5e5c5
zT?PgPa1(n&AA3C{sjiLWtO>b#)n0w`p2P~B&K83lJ`V-$M0cj7$pR`8OsYD(S6+F4
zn$&Yf=>8r<&e$z$MYpb98<ll2Y;Ej|rnM_nGPG{pii)0|m7BeG_g(SbwYTc(miqpG
zzHjD9l}e5uzkjs;zPJ1Po#OMK?4Qr8e%}6n=X(i3-G}?xGwb!Adj~6=mAvFLaan=P
ztd*BUPCnnFFty0z@k_Z!^KB%SD4d_Lapt8nT%U66f@c*>c>dvzg6xCMOJ*)FES#|H
zL(RhY1%;js-pwWA(=%h_mb{D+T(Wy-P?gxJ=&5^jFI5yyI3&aMNhnTgiB+81{L@P#
z70;gfSkiNz?}JwF>ePzT3HA3*XD|6YhhhEH=Q|zi*srtf2y=Vo@~hM-LVk%-ocx2&
zPj)&!Zc|wMq*rRb{F2ZJzPY`ZawaYF{E;(lWi-<tzn3>x6>dIun`w{j0qZ5n=@YVk
z#$MXO^0M;Y(vNw)_jT8cv%IXS^Pgb$sZ}aoWXah>waU_rc~kq%GQ+a&$SrxBQ=fH5
z@QL5MNoqn%=3Xi;oKRM*aiIE%<kYm(3CS}21xhFG)||B1W}&HdlhN<w=ODoq?vL*&
zly-*h-jQ#!_gwYT%Js+Ia|iXzUQ)SVpw8j(X_I|69@8$w9g?5IDKC_2FSEq_2yg7A
zJqN=x{s{K2Pq`%h$n$oG+v{Ctw%NWi&WkFo4^*CMGTCQg>DSlU+syNJ7sNV$-nN!^
z>+S8PIeEJZyw7gq^<nK5m!2*a8mN3P@@h`>#ER!x%Q#CpABt};m$*1Z@<FZ7zl=qj
zFK?NVW}>#{+$z7*8U3?DZKqwln;R9{n<Ze({I+vmg-PNT<FjSTIT6$4ribq0-MyMk
z=~&d_LzVUGZnx;}G?`&?_f2m1vPl!Y&wib_BJ%RJG_}dIdv+{LSzYuvp#BhN!t;3H
zPWLxkeco$Ua__wtHF<J(?5^gM(bF@`XR4XHJxUAKx|S7nn}?^1T`1SBq&?B~iS^x=
zTX!pcxZ`tus%*UTuY}pDQrmXwP1-UuY-iSn%aw-~%1%5tCAI#>M3<V<m5;x8Eb_`x
zT9<KJHeJg$HSEF)+0)SzuT81R-@eF4SoT}t<#o6AZDmwx-Klam_SmGS+OvWUm;G6>
zVxL}mz~j{y?po}coq5x9txf(Joi%Gto_ehm7PcaBZt2z^>pZsC9G-Td^QP|QNmB8=
z+Y>hEindl3v&@S&n&iDQ`b)jRk*914t4*(7RNQdpcI@dVFO8}%$~Wd)Uumi|WI3tR
z?szH3J5q4>`YhoKoEhu7OJ;dW@3E0(YCiO474OG)Q+lWRD63t(c8mSJ^tOX0d~akq
zXDsWTxGKz3sV{F^?>5`nJ$bFhz3VUjSS(c=`MBTEckh)gO0u;(#qP}VV2FI)Uw^4;
z&82k}o{vl7^75KETz4i!q^sRt<FWm5a(?xZrfrjD|4H<RnYvApY~p*(+bO|gUYc^?
zOKEzOnoZWDSre1i$FBW&y#1<A`+6a5&2zDFMqwK#YxSMDmehCo0n6gEev*N#QwvYJ
zoXRo|b?7m#-hI~Wc22l*<BDd_6;fr#gV)u+vUBA2P=71ux$2^F#1hL(lICxwv>p|o
z+j3nZn?b|#^1An|-*OBeh+Xb-o#ffcaO6QoUVw@J1`FNW?;B3#+|QDF>u2P9>uu+h
zxkpz=Rn;EqlH9hIV^5%p{fC!%u1e<(pNVNJX6`f-?X;S+q4SbtGH1#W89~0;n*(=S
zy{<Q1T(8)tx;DhTXP&pwLB^n1B{Abi9rm&=oZ7ObQt{lA-6mNp7v>~ixEdU^i#tno
zl5ZPBe#~x3Q`NgsdfylqPV-s$mNn>+_JwP#r8>d~?2@-f&-=jePU^3ep5M{$ZVNun
zTvs^lHRF8A?Q8d~5uVa$xRon%O`My`+JnqDWfTuiO59X$xjf!z@rEvrO<hGZt{x9I
zG@gCS)=MXUx90EeZRV4;x{s}U=P=2B;YW4GtJ_@4<NcN;MMXTCb?{DV@dCEZl_E22
z0u2){1T34oJ>#O%GQaC<^)~DOt5;jS=bq~&ooQ(&H;9~e;rh;NuH5=s>!y|F;f$RI
zQN_P{ie9haSud*oytMvO&g6$%gDOJj@vV<NJo)^zlkaU>PcEOG`MGL3-}+5nVUe}B
zJWlW~|CkxpEk1YKt{Jj9VUqVcJAGL91)M0U>XEztviwW+T)748rByTIF21b(vcWI>
zf_up?f!c`Wby62zO6}w0o*#BqYx275FST|>E!WPRf6V;FAI*E~KQI63)?06{EYDuD
zuQUJJ&&@T)StqtT{7y>zW;r+iVe~?$b!{ErpYfVb)u<`i*K6Ou;JoZv&ZL5dbv4%Y
zj?eW!O)vRp6u<nl<3FyV{%XlZAHz%kN!7<bcdltacmF}YSMl<5?LXb-zF#ChQ_sr(
zr1Uvm(L>x_lerJQ<usP;Q-5Qi6?VI${>WjsJ^U$R+pf1P+1&c@*OxfyZNd-vQa)|C
z*_~^7OFVAQ($~=)TFDVR&aM?-9Q}OvPr14M1^dr2*RWq^RToj(TPEbKa%kgr^~Q7V
zKjV7eU#^_6|LB&FPo%nE^LWolE9KvPhUxk5pELaCFTY({*C2o8=WPSc^0yN<sb5-F
zRBdsw{-K%aox}q>-xha0KKfCt;r3Luv@fl@d%VvUtj;`kc$?tsX-W!rgg5RM6FYwO
z<$<o&w|a-&lH0_0T>Hm;=x!L3@Y{U`UtUb!D$^0ROmUZiEnjonQYJ3<NddQoULSn=
z)<`ucLO^#ed!ydgn5wEBhrNy@$lvx-Ju2*HxGg}0`?*;Cj>IeJS06q~DYTg!a5yOT
z)P&1(zotg-@>>%Y$2hy7SL@p`o)>>)_X&PIYp`$IvPWeqX=$$oICr%Ni1MW0mpX0q
zONI6IpV+Fv=kGrrwyKZ6C)ddQlC`rlAzNi$UvlCH<`72pRSVn}SQl%3*jjp2NTbq5
zd%FJhpY0u{1(hMskJn2){N2J(x2ihzxJc2>J#!7`)*tcbTD*M8&yO5SH%*;?&cEAr
zPm+J<ruiu++`<a1{)e1M+g~cU{NwqOy0-dtpEpmk?mqTx#um;~uY^`+?Cz48va{o$
z&s^zua(X3)WjR+{>HK^yE@i*`^XEqrx)Wn0+>b8*$ZfU%gns6qP3P8sSY2=Re^Pzx
zL%HR4SAJgqBR#kN^nPd0S5bm5zoh@$d#+x<{olm@Q#O8>vB~%Ob(ODwBk$N0ZxJ@@
zU-5j|(`66uC~o{8e?+$a>Pz`A{&W8yi)Z5UpYvy?*qkKUmQ9w%ItP0u6`p)4f6Uk}
zeBG(4$(hHZWg3bLCq?@`E4XznRkdo)<NNhTCSK*q`eOLe@KB)TR=vw2+k-;pGAwzc
zmzgnP`Rs#t@>~O$%4dD^c&k2rO5Z-QnPy!Y&le?nb-upp^dqG#eb<MQb&dC~&GkB{
zvGHo9#_D??SiJ>GZoZzXeXnex*`=)IYvxq5zBIq2zD4T#=4ppm%fcH3+0A#a;yc8-
z!!72E#nXBw5gC5gscaw3GIrc}`fI@#mFw1V3)aMb*t&aLNM29S-M4MJTg9zpPW-&J
zs8glt&)b(BAEr$?RT}i~gwD!!_Q!8`@*dvq(5lM2PU6#Jo2!}SnmMOuC0Sc?o!3|?
z?LB|5#VU)9WqD5+ttU=&?pAr7eAmox?LWS)$}1*cmPp%uJgWXi=%1Xk`y#Tw6~`R4
z`ucgUx#Ugm*HsTr8j79%byN3EwlJr(VnRv2lj5};>1n!hGgO|&EuPr5SYv~k)Qg#K
z>$Ht!R3mGrEjd4B@d^J}@%@#YuLMsPs_Jc<(#`Yy-=UL!rfW~Sn551YdcSztlVjaC
zU#I*jEXv$^Z)evjc9!ES1nWK5oxZYd!}5!KE^|viRXgh#N*=l*`O!sYYvz@SX<418
zTRXejmPAAyIa_+=!`lhhl3jAH$ll-y$$6IYY0(@O(@$chvwlBqSyO)OL%^?T-c`&(
zTYFz=WuMJdtUS{?W625MnYRzmnZ>(%mKTrkrB02{wnfneRpF=ShAs;TT7Dy#tNzNF
z(C8N}*F}oHPI@5|>HTfttUk+``QE!4(r49sd9OQHP*j$2GvbL}L3Qyr_Z4#*uWHRU
zRjZnCjrU~zOw*#wnClk=8q?lC>l04c<#^XgO_pb8-04=YqP?b{oN|JuPrNf_!<k<z
zB%7lJxF0`GTR-=o%-i`nOcxXMo^xH4zx_C-zNo!zqUp0wtF^+f3tq2QZ`!b){dTu!
zafbd>p^5!YUl@1w%+Na?E>}B&>&ZFB_pC*X3+IJjvirKHYu&NWJQw1e<z0Up*2MDh
z#o0Wc%6nnQCP%JqB0cAqyR&)NI|-jU)juIDtgz)z>QwiPM~Pbx9lz+OZhvd%49R7h
zC1NQv+&9;+l*s@5GOA~arOiv>FP=(Y)r>Y)39tNgW%h}uj_*rLY^z*mEf!JXJ-_wo
zUz1GXStor{zh7|K^CZ05`CgsYif<<$_hi}sQg8XwY_fEz&J+HhTBo$xS8SNS%+ABL
zyl>KG5vys9#jGi7mq>0An4}+6lvfaT`qa*8c?<j<mE_kh`dj}cvw-uG(JsMnUlZ~q
zYuobL(u@~8Pk&jwV3xP>OR+saUxuCemh>!lM)Ttxi}~;O?qhKKChlYHwa~ZOWbe|N
zhBTAPu!_&>m$x%r-RG2lZ>`B@qbIMI&(z-2dM~=|UzFgdO0I=Z)-*fsU-f4BO?J=q
z-%fj<`0wCqKR5EN?2>}h4E1MMeya@o!Tne9{l?pwfp)yDds_c3mACLJUcGg~HUIR=
z{KX#??>}+<Ym%RSLOu4V_4*H=4=z+s+4-~F>4ayA*<5bM^Gl_^e$m+cc7f9t*?`r;
zB7zRjlXg__&-Dz9axj!I>Z=r6yHF)9GNk`Gn^&Ol*9(5HmWI7roX4=G{~otP{XY2(
zuUk9y!`0q5cycpL*1sU0I7gtOu5%wxaM|O(3Os8s>P7j*A6&5`ul}0p@0Y6$Ob&6`
z#xGv4eRKU1=MwgmyhWd1NI!UV^i}rD*(K^fI3uP{G-KIT*ZVCiWXZ)?sk>*T?mB-_
zI~%wD;=}{>8uIt0T7O!cy}sg|?<|8uQ~#ROPiT84Q1Q#<pHany>mil;x(QYe!CYQ@
zz6WP^FJJUiW2)@ZPu7M(jc1Cr+qB&IE8i_`tz_xon$;h4^}FMi43UXEI{Si8D(su#
z|M)^3OI18)?{~!q>(~U=FT5&Y%P)49r#hxZU{~17)hcIht#Lj$<?8Lg8)p15dW))G
z+TD0#6H#9$usH6Q*s;>oNXgyu$w|9CpIG`O_V)SO`+ZK>E0|WvU}cf^Q*oMz`_)i8
zAJbG(<}FKZMQbYV`l1%avqkTA<c64Fu4(4mD=uzawDV~A%{xq2x(;34=NNTU=o9aS
zoBT589-Y5fX+LfE#AC`YmL0gDxXW{4n&!N8X5*~~PHfdmssH<f@6z^#^ZBo6zqGEH
z{3Uq$R%cn;B|%H}c<y+%a{K#L8|>Ch()iEKQ*8Q2&UQ{|&AhIMz0F&=0>gDPGruxM
zH6Nd)ma%tB(45MgR^gu3eYZ3FSRM(fbDXzysB-n#J^k9ViNZDdVLfH<t{?m_z*EOA
z@|Vq*xj~%y&}xM!-FxQs3@wt+^_JC$vPo%7zxe&7pa#RqO<j3D);0|@A3fW%rg-kW
z-xrm+rcX}i@bo#&a?G%|uED;oGmZO#?M=p~NuJC5AN^1MvSV}ZfrdKOU(Pqo&e=NL
zJKP*{B`EGgALFW<M|_(@Za>;T|5cO?>+1(!o2q`utc$;I<M7<FvWEGSMNxggVa6zX
z59w&Omw&{5=E*GZWxf*9yJw%|wtGy{zka`*t9!MveWk_{(VWsGRgsK$%b(3X(Vz4v
z*OxtW+2JzwxQ)RwOUu6ocbB{o;&0s;p3%HTTIPOifusFi_k<32``8=);<9aKtsEOx
zXY8)J*P!y~K!LcgYqk6uTaMp%`{#bHm(Y-7VcG9{wINbBVXLsgE{=$s%=s~H_6Po`
zAAA|e@*?@e$;l7CSv34%`PM6+7+=A4;ICoYKbOia(gk-r@4n#d@%$j#{7-YuHP_7!
zrIOcTyrN%b22^jn_w!5eFUgu>-i-MR=P%B;xB1OuyZXSt05N9%l^fg~xq1FNHSQHy
zQB|+U{jG|NrENo=!sFyWS2IIaU;HeUdu2kv3yZUE^BE4#_I7dFBCBGp-g598Yn5TF
zOUXm;q^zpO!YNVj7j3J{%Gc31_`Op3efN{ka-U>Q9V=@T`Yze=uXx7y$OC^ZQ+rnO
zwQrHK@?A1L<V@EIMyINIYC=y=zSn*k+J8u3()+M!^{Wk{JKUeEoxc?+dV}xz6itV)
zGf_+~d=tXAU7LO4xn)T!yW$TakLkSKCgDfFdvEx2I^u`uk!!0z9MzwgR^PhzooJL(
z{Ry`O!xeEyXNWVM3%)&tz4%%4r|VvgQzPxyEV-{?-@zn&;&cA26&Ld>ugy-Fq`qH#
zsdvlr4Le*eeQmx{uX@z+h~uZDn-0I3D67^qU4yyIP(AGt`wEXKt0(lcTzS1bujSC?
z<`T|FC$c0B%^XfLZVJ?G-E(Ow*H88rL7gk-HJcplTsLpRw*v<k`k!31_mX5l{z8UN
z8>j0XIG68e)t&Q|=a71k&%48VTlBLJs5SJy(3kit?Yr#1<GMQ8V?WvJd%pWywf~!b
z&+$Lg^7`iM0;&-^cm?@{zu2kFIeo)9e8co_4=Z)&UEk<0S*`uXsQ(`8<^O_WyBT(0
zo&UnLqQ)qz$39utv*vnwZ>{ZL)4i8t`6XGtTz`0aA-9skf4-G_PKmN*{$F-dYHy!~
zwO^>z(Y6U;TV>{)=GbLg)f}KBQ&~Ux*i+tvulMP6as^6CH9fCcoR-vi#%_~r(jR8E
zf^UL1vsl+1{duE^+4t#+7irtpe7NT$tgRKg_j-B33sZ(-vrWP0Kg6x@ir||t|9G(7
zYm>?93!`TGe73MpKd*l-YLUdZea?}KBtp++XPqz4(&1N#cKN^j)w;u4$3FFW=a!r=
ztk-&yxKN$_!P>`}3tt<0>#UtRH94Q3C;VF7)+0QsPB#=An`H$}e)->$l#<a+buUYw
zE0fT4c`m~`rLYjYljq;9DQ!QH*n6__P2tQp_FGTJIh>vuGuJPoF7(XK^JPMl>{m~{
zf03)^&xgI-^6wX3ej@y!Fw;1{u~bEuEg@}AvQ2wJtfl4hRSwgF8RpE{q{d)vo$A}r
ztabT$RE<r-<7ek=zNg;1HFy5$LiG)Ygew-!HoP(SJ7<q$rGx2<#@FAq&r}x_-SB?z
z{Kil5`F+ND&8PD3)H9-vdTth6wFr3)sh8J!^<G8>hWAVi3>K3a6T~N<yUsKD?HbAY
zz}sGj9RzG=FX>(TQS5y=t9+Iy^HFox31W^KS{hCJa&Irq>-D_3tgC)$f?&-D=06&R
zWzk1gDeOCQX68)e;<WE?|2`FUU_2eU#9(e?vt({s?3vvW2?g1krpBC7J6y2yV1A{-
z;|C6HNz22vJdaMeH+7=VH;HM*e|`UE{GD@9^H{y<L4%-a6D_jthqPEdo;ty(&T`$S
z4|B9v7V5uL3Ey<oAT3KZYI(}ixhE`=KJYE}SdnxhTGvtc_S1-~&AT3L4PYtnGN0|l
zs&2FM*79GxyusP_Z5Md!VpZaUpUt^==hye>%~#ylFA!|JykqUEMcjY(sYcIwuGs9#
z&s<=;<l(M}q<W1%@p7DoT269Tn;&~QhX}J-FOM&Lx;`^vslU&~^HCqRvUSzycI@GG
z`?V>BoijF|-M3EVKhL!LFAki_FH5kOT9ux`7wNgpaZ5Ij@)3d5uw5pHk{dd|RHP~G
zy|C!U@rrz3hq&uOKh-1n=O4bTw(^X_`r8+zPZ)gEzWL8@-~U#voWx5vG<zmpUv4!+
zId&%6`j9QpODfFS85kz=F)*k>qfMxOYS_zq>8ql)$=*_xHgSt?aGI3`%yCHZ+%}8B
zclL}aH;g(DY>Lgl!kOT9$z`6)EW^zzWtrZYmz};(TbKFLDSTJA*b<TLOHOb9=c~K_
zp0)9`97XXT3%<Xr-u3=Y@$~ZNe}BI<zt2>_^?y=<{WWU?F5g3;F_S&CJ_bB<6i@u{
zjjdjPo?xQagbnAc#k|WT_|9Kf?bvbf_H3J+&L2Bknk&K%seka~oS)PhXd`}XxvEY7
zd5;qhH|yLL`Di)MUO$mT|HFqx9r_(Vk|g3M6^O+1J=R|HCsc0VF^Bl{m(ogcT#sk#
z)M@wRw||u7ynpojj3a9e_Q@aP|M5XrP@mhvAo<DE`k<)IIl-qbx23&cdeXCQ^|KJq
zjXGC_3Vs|q^z+M^FSkBD`f}*j(VcI;+<J7$DeYTR!-+GYPj^ky(yTJv>cLR;aZSTI
zP3P@7uG_<>Oj^wKVqW}=>XNFgm36CjXK1xf+Lg2Nnd{;+QgS_MOXMzkX*ss2nZ#~B
z&zaHRyN-jyN0K$D{`Jg@C8gIipNABCo}3!8?fjE)k>JN$_e*ZLZkl9klsx0;lyt4q
z!y#s7A;zZbZ@hkfa<x(BtdtiHIqNgGT?-C*yZ2*6_tryIcV?fwtsQmIQ1qIu^{;hd
z{ri<4$ZY<TC&H+k7$qela87fY)#?I;!>mnTkN90SIKg{4y7LeF+M1X3leQ@)=zTl)
zW-q^ebV^*wnM<xmqtrW-UU+`ry5Z8Ng7C<#I!jk9+qx+0CR3ZOs`pvzWoh|KH|_qf
z_BSE#^s`qvyKOWb6y$%GFZ9cQc9qxOPVuy<qnKE(YQ662oFA>1l2@fZ-et8nbM>yL
zZMF+`Ulh`?a%xL@5#A(zSn$4Z?AH3=)7&#_oen&VHS_+u=-x%O54>8;g7zW`g6~vR
z&-$J?@sBYpri0=63_d-nzM0{ble_BuBYQt{N(xta9Fv?Q`cYXj^H0RF$rWD5w4SBf
zbm`oEd-sG<T~m0<lfVVh_s%3;y6DAvb;`%!Yd<CH{2V<`{$O3N_Q6|nf6~j)JxUL*
z)c@A6I`(60$NdvObnDa~eK&e$;4f}ByDs2}e99j|QOWfW{f++hTxb2V^UbN2nX|5R
zN!|_X_Ib-2Hp5|R=2aG%oIpk<HtF5meR<ibrPt>>2e$=lxs)F6TNixL&9wIL#>H_b
zdyK#37R_$i|G-!B_K(#)`#0Xcoul_FFOU00?z_45M)wZMt`gp_d1-Fx3jRKEli(xw
zQ~xvzn>N-5-7IRI(-|b{W~%+_#r2ZMY#-m|S{P5?z3SOp+vx7PmGdk5zt7-1?lznI
zYeF#doRaMI`qwr+m_7Aoz0&z*C976#{9f|+Z_wkkG-+!)ne10*bsNI=>~?v3=J5-C
z8@}&bZ1(TIeE)8}l2>L|(aC_0T^X9;S5kw83zmF6oA2UtZ?D>&|Ce{}SvRS0|Afj#
zHAVj!-roLo=#KrKcj6trMgO@irCE=v?MQg@NoBW~){kpW8+*22mOs74Ct=Uk^aUF?
zZ^@G~-x0q{@bwaN#)<kXW*3J`Y+^0{wEu8Xk+tvl0G-RX^y-!VBn8&bFPt*zYRmJ`
z?>8@cS98~#-gI@7_>s!X3wmxw{}zZ`Xnsz^_Fh97&x2+QUPk#vq0*1G{QI!3bW+_F
zV^6-za$5tW&R=|0H;Z*v^GB(c>oHgRFKArk;Zbf-u9%^6Gx$)Y&!saA!FC6fmz>-s
z#C$|Jf5F<uOTJqgG#1LZvb)7Baju`Yt^bJ7<s_j@pWid`C#z0;Hv6NC=vz~kO&?Qu
z58nI{v8e6B%mZdeLjP&UI3G7#a#hMIQ#Jge=*wk^3J%Vqwx(a^alU&YcVn^i&Bd?1
zP99r$!HjPm9}Bya>6g$~_jr_Cl6n3Fyj#d1@7A<v!V$G&G3WKF=DePFcgc+yg?_6K
zI`x0cX9ZL}P;d^io~wI#`zsUIw5~7mi#b?0-H-8jDqdRheug}EcNpU=|0A6VzjMEY
z7p`bKyqP!N=2x=ZU$0;;|4A2v_4e*y4_;n=XsOZ;A>q`j^2BRPuOExontxz*NuPh8
z`@3DejXIJtb9^Ul-M!s#i<CmpVN;oxwsA*or@k?(?_1~QrV)Pp-HsFPnlA$nWw*Sy
z>7D#SWqY;eL**%-l2hjXv~^JAxcK@1;s}M`b43=p>Rh~;tfHTM^lRFlb9FNPyWiNm
z6>&KEsaWU!VfzpnzjSg;O>HMf;O_4W7fu)S2@!hh9C|0b@I7~N*N%C%Zk@9gwIfR=
z-sj(~`g-2l=-2g!Rj<$TkedFHCGykTf9$beY#y_B<bSWUIys|RWV!H7mF3Uw6(3Hq
ziS*=SpSMow+J?Fg8@5VG75mgr8>jE-5hzlQZZ2hOjyQZdMY*F+BhT<;$=(^>yH77=
zK2$F#I5FAk%Z-mO_qZ6y>?lzZTCY^d{qV=@jMXYip5<3hZ&x-dOOSqSx<qS^?fx}N
z@(YTJvR^+rx7DI_dFKz|lrNr2A4QgC@gDCCdtA5t^^wZ~uRE3W?*9GqUv#@icf|$W
z;9mzW^;R*+{%1yQFSXR4eSL_9fuV+zfx!SYOT5`_+hZ0H#45~Hwk!EJFflOLvrpDf
zkepn9Luzxu?k!Bn+jjK!1#%*-+q{z6%`MNsz#t1gzv}o2waGe+GWAcH&`t;e9~KEB
z7#J8d85kJSixN|EQgzFV5(^4ai*ySTixP8FOHzw;^AdAYi}ebM@(WUnN-|T6neiCJ
z&j2~I5@MKsa!w}f_)3J2HeX<DL~(yK%W@WE|L}13Fe3S9^ZiG^BpDeP(wP_-G$%V+
z%5FZxrGu;>IF0Kn6B`3VI=Ha{QlP^lguJn7vWL(^Bm-4M)2h9h85s6+GB8+AcC=KP
z%yUL+a-A?|y{7F3-GBgr_Z^}Ob+@nzZfJ0t+AYH6==tIPw%FHBH&t)D*09b$6n?;^
z*(>SK@{con3eV*=CPi<P5c)so^qD#N`z)=EtLy&#`y_fmAxy<Y`I3ioh!eMxP?E%#
zB#!SEZI<u2&#qwUGwfrRc`USN#uSBzipQ1vG}-!pdg-z(;;FyudG~~CQQMre+7o@^
zdR4xx)r~x@7U~;0t+y%Z$jPdht0Bdc61QEy`6r*-dyekL?(b_2cL-O7C1waVEuFh|
zOOnmx%axP1sDAC46F-?Z^i8+Z_64U43STW<DPg=S&>+10lB);X{XNSx-IVmjxws;G
zEsA(T4lT6UJ2Uw-S9q{oJ*V^Jb!%sBN?f+hH}txN5YO6gx5`|-CU1!QqGtZ&dXb8L
z_RbTlGFL?D#p%5)PK#^vm3ft-tgg3?r+?p^yqm%+CtV0~y_tFc-ZnwTNz>0fTeK&)
zmaFeL&+O-uSkG-dw#KJ$Z)caHTAO2=gYI*QC84#)PiPpg@|fReG@G$7+-^(#!zTW^
zEk!mT6WKP)6x*G7tm!=c@>PQ#OQFhjxmmx~g(=EgtzKEPqbs}VhLY;0#m%i+A7rnJ
z{54gZG1nm^YH74%wkMBf+r#=*8>5mo+4{Xb)mCJ*EUW9_W^vx9`-;Wp&SKdn_;lu+
zlNzl~2_{~VRw2%bUv8%EN?!GoBXsJD4fVoITF>Vs8GV^j))P|Yd~!y6y0@#$=_}j)
zTE1-yT5s82q?2p4RqVZ!Z|(Z9E%N8SS1Z-~GwYe{_+M)HaPxvi-E}W?zr0Sb+n*7>
zWmU6xiT(xuiDkuG)-S#(&Qsf>Ey4AE@jKhMu^G!ZM!vYA^XjI|o*X$@mDdWgHy;bF
zW4P8;|BLUW#Jb7m(qCowD%>&gXR$x<mGj+)^eekR@XlNM?|p_fLp=Y)Wr`=hUEER5
zkolM4-q(N`+xGo)cD+2$HS9u$a6*pY+8oZeI;{-R8&|O8s=J4%6>#5maa@yk`IIYT
zyWj!YLoXFGnQ!Q`SlHAx-i%h6t+e*Q!>})JEUNk&l8nPt*Zr8N-Dk&?eoZUmsD7AY
zk@~ys_YX-NNS(F(WUjI8W-HI4=4Z3>ILldE_BZ++F<|<*uS=2d<BcxC(vL>niMQS!
zVmj-&{R=y48MpbC*h}O-VNbWO@E>LdhEi?@1{-kx`zI+^UvxV};9uX`Cp$J>vRdXT
zt?+<txo1sharW#RnckD)I;F+$u+1r&EP8dt#-)8am-jLCABdhJIYY$g!oTK+vK1l{
z-#qe?uKPVPnEUYj&NnwV|9-pNcJ<%S^W*E74cgm{{E|Pi@Om4yZ8$M;vSMPSo7nWj
zJDOI@$akIPI=(7kx0-YPvC=+i#XC=Ss6IBcn`GEf+P9}i!_0z9rd;yZ-29%Znzlrp
z{F_sKj)rYtUFEh~YNqMxu;8<A_awe558b`)w&kTbGoQmd4;2(&ivL^68@}i6qUp15
zrA)ZCCU@?`DFQhrS*dsTEuXeprSqAt@7lao+Z4a~E>wA7#IyDlzi#yY#2fXc%Wr6y
z=Nf5j_YK~DeO1=pb(3!`(mzoV?ktiSVIA<+$uC`phk06LNyu$Yn=+o$Pkyu{UWl&V
z_u_(LboAt(?yt6IEn78fs?WuZyqhPzp5pV<`TYi8iKbPtf>%m!EY45g`O9U}_78j+
z(HXbXs!I3dS8Qlq<#hRY;LRs5ISz4b-Bw@hUi+plrcdecIq8$y{{_<S-r=^HD|mQ~
z#50LUd+#Jq=ngx4O(WgKiLd;H5BEFKIY&F166ZYJaeRWE*z!l8YFTIhnDW?|RW--(
z$e$k}9~kBv>-?<RmH%$WHQ~+PY4dE~cpS9s;S7m4RN*h*kQ6Rudbebq{namNa&xk0
z^_Ui`)W@psoiV*(W9P?TM@*cbC`58Ub>H=@pk}RuYh=Y03B8|fTk1R<4&UW(iPaJl
z{~ulWf_1|4qNkl%uirNCS<kTkm%ZHm+5C0xYJJO(Y`7Qf`s!=o$yLi<eyyr0Y?HfQ
z!~eeW)aR=OJy~sCjT$_;Osld)?<QK@=em4)N_cs+D?3O1G?u21aRNDo0`ni5mF<6h
z?3A>I?ON8|;eN{Nl@}KIt&9xroVHZYLSE+VmAaR5uZqHd{60K?%eVav^*jIXU*Ro#
zTr25{HE-bQqe_B-doo2`9Ig}@?D5?ly@mhM8kI@*iW5ARl?nc7{KmM)`LSo=v1b>L
ziwUHOf6zPG_Oj=Tp;!I3hwD~Mo7D4=c}{-RUv8ONlhxG|yiSVTcD?WR$em^0V*9Vg
z6%6`<r@WLey`S;*i26SF68<7h&)Wq}U#6y4OK7<Id+mP|qB%p)&OJrES^t}W?o#(9
z;Zgav#mqth_m!t7c(WLH2TnUI5$)C$>(&>$bX&pI)_o5eZ?&&WVw%iSAGu~(hN#1g
zx**OaC!T4nQ|!&m@-ohw(71o%;|Uf{%as+F(q}Ie^9WxwbN8K%%<q1+CYn9B@~hDL
z-DkP=Kzht^na_IFNn0DZ-(BDN;?|Cq@0oF~9s3fd9pYB-`@BQt*AtydSNP6z1Wy!j
znZJkaB5Qgf`=a^h9wlow=x6*3n)IKa6|K<FkXz1#)DEh76LjtZ8v}!y;ABT_^~qd{
zGWBO8UX}}oiu~Vec6P~SM(>GQu7xfyCY3ZcS%+o2uG!+cR!m!u=i~&wCB~&`mzt#C
z?e6IE2rO_e6t@Xl^PuVu|Npk<Kg=sEUhOrWyd;+?^XHT4-|yWi|Nd3A{?F&H+Zm!h
zw)RxrQC-Yf?!Cj^P19_Ou*>6AW&Of9p*=5pc6mD08#OU<w)ME)&{@nB{bNd3!UiTa
z9XF{-f!)<VFHd`LYQ?bv7G<NP8(PWI?;g+ooqDH-UE<?G4!NWg-?;8HwO3ZU99mrS
zS0dg%u2FqM?4ij%zoxV-SG7@I5aGNoapvB2xidUD&kLr!W#OnTo3$*je2K~Ni?WT=
z^iKP2Q_0nxc&R@6k>=v1hoxk$oN<|+_{uzU+v3~Z>X+g*1-_|r=veWt^mo1?`cY;B
zL#MiuVdDgkQ!?SjrJU!5x2|{6XJ(nz{o0CgeyHrVpv-NXHf3)%TeEdZtn$@MsTO*7
zr+%063@*NGW*BGlv})=9xtGqQcqf!gZ;sBK(RN#{U_o75oc6nw^^f{y&iu$*%e0VB
z+wt1mqZ+m^5BBb=UA@iFb;2q=?R86kncRNxo<X9Bou?@DtJGyF!`iiKmH$6I;u29)
zJ%4iA%{=wX&AVQ5#YE44f3Iz3o7tk&pP^4T3(s)v_^5mLRzSktoW9ny-L}8NriTbd
zMA;|L+&p<#b@Q_)I+|<qcN{jZ@6%`xvZ`Kr#@q5#%xT#RZ?`(G)NqcoFrHuea<cea
z1#Oi*3W@D4;;ePQ|38l@e3Kd%H!Uaj)M=x*sLIH5r@7W0&MZ)9{~ncTy)Hh#AYt|A
zf?1ZbA~Bs)_q-9AF?;p9vfJ0T6?T5U>dmEhG?i;nM%aa>rCie%h8`@6S@ghdjbMGp
z+^D%eLTheGU2k5Y$G>iNP|5mVu|aF2A6;3=>0KUjxhORJ_M+9ZR;EqbJ~Jv<ukw1{
zoi)cjH&6e_wR*ev!PPf(H*C5a^7Wu%dGs_N*^4rzC$_cqw#*AKkK86@-})krbG_z`
z=0Mii7a<$OvqkpwnF`$#*s)~A_T9Y47sh=0+*<F$7j<w?Q^B=L`NFpw&$$G${{FbE
zWxL3p-g1#W-FLb89@w(JFIKs=>$2wc1yZLsm0c0Mdu{pIKMHmM9~7hi3);<lQo27z
zq~;Lcf06l~KVlqo!)&<t9&R|WH2sD!Yt-_{vy(fXi8Pp=U7^cia&E~o)~w~%SFPZE
zzG}_otGQ>l=G065ILaNhAWv%T+4nM63Nm?v*RY$u+CN=<hRW;R%fv)@r!z4p#Vyo4
zawd4!%o28+$hlWOtMBLGSfeTwyuvssLoDQCM~45>H51=VSujyc@|@PX`<ItZ&0l`t
zSLXMh#+iFXqioh$pL>+5JuQg;-Hew$nlDbSbbFf0VY}@_=1iNNyXzYscb{LiC$V<b
zL{EOn<2(9OgEW3MeUA^Vb^gb_K}~wKPw`BF%^efZK78eQWab?;wo47qK2$fk%(_=r
zR_k0Bwc)aG=bgoliW^twYTIr(_rPSfacA}Vb1a+H7(0$!V_*9)XQ{4b><y!TubRE~
zTS&b)?jyOX;>g97UCZZezr5gcS^ccidw#_NA^s(L2Sqt9dp(}45H6Ua{`ZIG;=N{C
zeT!78c$WTk7qn{Hl<|h+(8XiQ6BhZp3v`}SPxzVG?=HQTTahtI|I`t=kgn^7{(Bmw
zHu8&i{Ebk$cjRiz=0neWvI}${%#8?sI5*<D(EB5|rd6q5Gk5teyF>57JKaf#B5W_#
z8=k1%_&`GI*Xk)3%x7GUm-;L8@ZNfZ-x}wB>6x{iI`ehTpKPn?M~?-DHkBU9c&GR%
z;#Fjz^Sy=&@ktgAv-bB#6$<1&axUrWx8Yt@`!bTdY6I8x$$6_^$~c{5<$hViY{i^w
zUU7@r+hd+d+h%ve`KtYsiw(LWj|bd6A7}UcLQ1`A+UB2+ibJ}c1CEN%OE{V?!V&lO
zA=lJ~FD0Bywq82tG11|c`pp|Hl73A^JxYwq2l-j&$7MXZEpX6pL%w^Uxnt=4iO<DK
zRJytApGLX`W$&ul#QJ5P)Zxl|iOw$^j<G&ZZ`!n>AmG@^*Dvy9)OUNnv9XHL_+Tsc
z^~kJa1s4z2*Z==?Q%7$3oKp|y&OW&MZDK3O)^`u~*I(Lb^ZZKKCYeVT&${vjgzpE3
z)E}^Y<lfUUe}ng*p1_aXdneT$F8pX+Csh9+yztQH@F_K$x<753{V1mE@spi$r$Wx1
z7jERgy@5HqFn9thw?N<AC+gSFst4*loVGu(Sg5PqV!u#G#&))c^|xGnG;b=nC-?e(
zc6L|f^XI&wJ&!5ZF3jv{${jJ0-kyC6GE&xXcex#V8+Y-;O8N2$Jwj`~|G3wwcAhu!
z$b$tF--TbOEA05cs^Eg({k>=Q898~rQ{eq)e&pb0#h>=5wV}$9eT$YdF)(~#V_>j>
z_OUnnXgoyeN1JQ^M&aA&u`wg}t9=YVGa~anjXxpRu<4G4o2D=^FjTNkcGT9L++fT$
zS?7Yl=1FEVP)s$k^g`ixSQ{`Sb*=>#+p>!ZF)-w4f@TgJEtNNavU?>c`d9Cpt=!x_
zb9eOYKfZbYoWG)P_B)=O{4qcg*+DXa%pAyk%}6N}5BSEMLh*oN+*w9`$W<JFZ`dyq
zWnf?sp19Eh|5%4AVyq)MCzHT92P2aRGh*ZdG+F|?or4p^0b>D%x8SQl;J1Hh2Y93E
z%Y|M4!N9;E0@ec|mNaTkwm2bEkHZSk1t1WGAS-4=qaEFFkP4WixIr8+2I<%j)d3xh
z!KqOQ6mDQ$AOfWG)nvv52`yAlpj;sWQV7LM8f6(LH>Qe$ZWJ+r-6(=?S0?;k3I+yU
zs74UAq*0j}s##tgDHt-4&tL~BgyJQQy&RJpQ&n})El^l)h&YfPsu)BqX)NHJ+?XoI
zj&v+LhGy`o%1jIlJ}e9jCLmo<yrhwf52Sf=Q<?;ZCX^F)p&CHclEzYj$rm$}F*H;*
z`Yc+=z`$^dfq}sgq!NmkG`1>CZcLS(e7Rf<LzALq4aYV%28I?M1_ooO1`xHRu~ZQp
zaJwrMFf>hg)1p(!#K6$Tf*#s68j}l~q$k&3l|&A0l!JairbF?PMhET5g-tpb7NBe&
zhbjh9OB(e}CvWUk!O(!RmmH)LikCD>noZu=D>k|InlQ49khgrHrkC}0Q1$F~o)}xe
z&{GA<9vrBZAZkftnIqVkv)2TXt^Kgy>RUb&1A_@G0|RIX6{Hq~mo$clfkRvBI*NLf
z*=>+QC|=UY90^wcU=3zcMVVWLY5-A78lOc$HStcqb)B0VDL+j9a9x6BNn>KtWW#Mn
z0_fhH>~{ksTbMrCakoB3*t`E(!7s|mz#t>Sz@P!L2#S|9=44HF+$}RXVjth+_cvIP
z0|I3X8LA#cEonSnJo&^4&3atLB4{KTq!5IcG^&@7Fs_X5E07Vef(<mT4B|5|fQqMr
zlF1txh0)5Vt9R_z*)TCM1hb-NulXgD51zC@_TKg8t(zlQ7#QAgF)&y|%mtH68nwzN
zA3P~J+47VoO7Q2N0tN8x>dB76GLy|X#WADc3|K{BEm*}FE`E$?KpCY5+Xf+)G+wL&
zYtrH2!O-;QZP)sx3=9lU8PMZSymhjpu(C1q1}F5eQ$Zf$hS&opmozf9O?DKv#jt3p
zq|4$(ObiTa?C9mpvd+nl!WxqW#Cb6^p$z1K&4&<68fW%^TsQfjq%>woF`fm5<@*U>
z6%J>$kRt}s%V%J)g%}1VmozSzJbB_-7nDeO05<6KEU-cH=M<0)3SsfKTgAk{aD)xr
zpi^@vUp%Kdx&NFrvicdS56<jnVqjRs#=u|>wh}@tX*|DR^2Kv@$ZDUYInP+m$iT3e
znSsFqq6|zfX}rG}Y<B#4F%*Y3oCo>%&Qh>sgE0?gm^=ilxUmAN0@U&nMKQwX0?3Ht
ztHFNlzJO}}8nC4FI<VyH3(CljMQM+Loe3e9G=^@R>?o`x2HBB_o`5FjUIbaV{_y0x
z7nLTjzKB{H9Ry46IX(IAMPp>kV#<y=)i5$Ja5FP7SV8OolS>*OoSPgSV}p@`xXxSH
zf;9YLVqmZYD}@kC8n;}SJpYot268zAZ{snbm(J~%CRd+OOF=3yLB_xe4^WE_#0TLe
fjW;jB%Ow2mzW{GmHjoxG1~Z0NLJSOYmq9!LVsWm`

diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a4b4429..19869d6 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
diff --git a/src/main/config/config.json b/src/main/config/config.json
new file mode 100644
index 0000000..f2afe7e
--- /dev/null
+++ b/src/main/config/config.json
@@ -0,0 +1,6 @@
+{
+  "tina" : "-R -s 1 -c 0 -t 0 -b 0 -m 0 -v -PNML -bcg",
+  "pathto" : "",
+  "sift" : "",
+  "struct" : ""
+}
\ No newline at end of file
diff --git a/src/main/java/de/tudresden/inf/st/pnml/flatter/Main.java b/src/main/java/de/tudresden/inf/st/pnml/flatter/Main.java
index 0e38ad4..40db411 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/flatter/Main.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/flatter/Main.java
@@ -3,6 +3,7 @@ package de.tudresden.inf.st.pnml.flatter;
 import de.tudresden.inf.st.pnml.flatter.config.ConfigReader;
 import de.tudresden.inf.st.pnml.flatter.transform.ChannelFlatter;
 import de.tudresden.inf.st.pnml.flatter.transform.ReferenceFlatter;
+import de.tudresden.inf.st.pnml.jastadd.model.*;
 import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -28,7 +29,8 @@ public class Main {
         }*/
 
         // parse the global not flatted petri net
-        pnmlPath = "pnml-relast-flatter/src/main/resources/minimal.pnml";
+        pnmlPath = "../pnml-relast-nets/src/main/resources/topicTestNets/structureTestNets/topic-structure-correct-3.pnml";
+        configPath = "src/main/config/config.json";
         PetriNet petriNet = PnmlParser.parsePnml(pnmlPath).get(0);
 
         // read config for analyzer from file
@@ -46,10 +48,12 @@ public class Main {
         // flat topic publishers / subscribers to instance based semantics
         logger.info("[FLATTER] Breaking down topic channels.");
         PetriNet topicFlattedPetriNet = ChannelFlatter.flatTopicChannels(petriNet);
+        printNet(topicFlattedPetriNet);
+
 
         // flat service clients / servers to instance based semantics
         logger.info("[FLATTER] Breaking down service channels.");
-        PetriNet serviceFlattedPetriNet = ChannelFlatter.flatTopicChannels(topicFlattedPetriNet);
+       // PetriNet serviceFlattedPetriNet = ChannelFlatter.flatServiceChannels(topicFlattedPetriNet);
 
         // flat input signals
 
@@ -60,8 +64,8 @@ public class Main {
         // TODO
 
         //  convert and add inhibitor arcs
-        NdrioProxy ndrioProxy = new NdrioProxy();
-        ndrioProxy.pnml2net(pnmlPath, "pnml-relast-flatter/src/main/resources/minimal.net");
+      //  NdrioProxy ndrioProxy = new NdrioProxy();
+    //    ndrioProxy.pnml2net(pnmlPath, "pnml-relast-flatter/src/main/resources/minimal.net");
 
         // insert into tina
 
@@ -84,4 +88,91 @@ public class Main {
         // TODO
 
     }
+
+    public static void printNet(PetriNet petriNet) {
+
+        logger.error("--------------- STRUCTURE ---------------");
+        logger.error("----------------- PLACES ----------------");
+
+        for (Place p : petriNet.allPlaces()) {
+            //logger.error("id: " + p.getId());
+            logger.error("Place " + p.asOutputSignalPlace().getId() + " -- " + p.asOutputSignalPlace().getStaticPlaceInformation().getSubNet());
+        }
+
+        logger.error("-------------- TRANSITIONS --------------");
+
+        for (Transition t : petriNet.allTransitions()) {
+
+            if (t.asInputSignalTransition().getStaticTransitionInformation().isServiceTransitionInformation()) {
+                logger.error("--- Transition: " + t.getId() + " subnet: " + t.asInputSignalTransition().getStaticTransitionInformation().getSubNet()
+                        + " service: " + t.asInputSignalTransition().getStaticTransitionInformation().asServiceTransitionInformation().getServiceName() + " ---------");
+            } else if(t.asInputSignalTransition().getStaticTransitionInformation().isTopicTransitionInformation()){
+                logger.error("--- Transition: " + t.getId() + " subnet: " + t.asInputSignalTransition().getStaticTransitionInformation().getSubNet()
+                        + " topic: " + t.asInputSignalTransition().getStaticTransitionInformation().asTopicTransitionInformation().getTopic() + " ---------");
+            }else{
+                logger.error("--- Transition: " + t.getId());
+            }
+
+            if(t.asInputSignalTransition().getInputSignalClause() != null && t.asInputSignalTransition().getInputSignalClause().getNumChild() > 0){
+      //          logger.error("------ Clause: " + t.asInputSignalTransition().getInputSignalClause().printExp());
+            }
+
+            for (Place p : t.asInputSignalTransition().incomingPlaces()) {
+
+                logger.error("------ Inputplace:  " + p.getId() + " subnet: " + p.asOutputSignalPlace().getStaticPlaceInformation().getSubNet() + " ---------");
+            }
+
+            for (Place p : t.asInputSignalTransition().outgoingPlaces()) {
+
+                logger.error("------ Outputplace: " + p.getId() + " subnet: " + p.asOutputSignalPlace().getStaticPlaceInformation().getSubNet() + " ---------");
+            }
+        }
+
+        logger.error("----------------- REF PLACES -----------------");
+
+        for (RefPlace rp : petriNet.allRefPlaces()){
+            logger.error("--- RefPlace: " + rp.getId());
+        }
+
+        logger.error("----------------- REF TRANSITIONS -----------------");
+
+        for (RefTransition rt : petriNet.allRefTransitions()){
+            logger.error("--- RefTransition: " + rt.getId());
+        }
+
+        logger.error("----------------- ARCS -----------------");
+
+        for (Arc a : petriNet.allArcs()) {
+            logger.error("Arc: " + a.getId() + " -- source: " + a.getSource().getId() + " -- target: " + a.getTarget().getId());
+        }
+
+        logger.error("--------------- T SIGNALS (STATIC)---------------");
+
+        for (Transition t : petriNet.allTransitions()) {
+            InputSignalTransition ist = t.asInputSignalTransition();
+
+            if (ist != null && ist.getStaticInputSignalBindingList() != null) {
+                ist.getStaticInputSignalBindingList().forEach(inputSignalBinding -> logger.error(" (" + t.getName().getText() + ") Signal: " + inputSignalBinding.getInputSignalID()));
+            }
+        }
+
+        logger.error("--------------- T SIGNALS (MUTUAL)---------------");
+
+        for (Transition t : petriNet.allTransitions()) {
+            InputSignalTransition ist = t.asInputSignalTransition();
+
+            if (ist != null && ist.getMutualInputSignalBindingList() != null) {
+                ist.getMutualInputSignalBindingList().forEach(inputSignalBinding -> logger.error(" (" + t.getName().getText() + ") Signal: " + inputSignalBinding.getInputSignalID()));
+            }
+        }
+
+   //     logger.error("--------------- TOOL SPECIFIC ---------------");
+
+        for (Transition t : petriNet.allTransitions()) {
+            InputSignalTransition ist = t.asInputSignalTransition();
+            if(ist != null && ist.getNumToolspecific() > 0) {
+       //         logger.error("ToolSpecific: (" + ist.getName().getText() + ") " + ist.getToolspecific(0).getFormattedXMLBuffer().toString());
+            }
+        }
+    }
 }
diff --git a/src/main/java/de/tudresden/inf/st/pnml/flatter/config/ConfigReader.java b/src/main/java/de/tudresden/inf/st/pnml/flatter/config/ConfigReader.java
index 45e899c..3933f30 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/flatter/config/ConfigReader.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/flatter/config/ConfigReader.java
@@ -49,6 +49,7 @@ public class ConfigReader {
     public String[] getTinaConfigParams(){
 
         Gson gson = new Gson();
+        System.out.println("Content " + getConfigFileContent());
         FlatterConfig fc = gson.fromJson(getConfigFileContent(), FlatterConfig.class);
         return fc.tina.split(" ");
     }
diff --git a/src/main/java/de/tudresden/inf/st/pnml/flatter/template/TemplateConstants.java b/src/main/java/de/tudresden/inf/st/pnml/flatter/template/TemplateConstants.java
index aaa209d..62eba79 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/flatter/template/TemplateConstants.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/flatter/template/TemplateConstants.java
@@ -7,11 +7,13 @@ public final class TemplateConstants {
     public static final String PUBLISHER_CONNECTOR_PLACE = "PublisherConnectorPlace";
     public static final String PUBLISHER_INPUT_TRANSITION = "PublisherInputTransition";
     public static final String PUBLISHER_OVERFLOW_TRANSITION = "PublisherOverflowTransition";
-    public static final String PUBLISHER_OUTPUT_TRANSITION = "PublisherOverflowTransition";
+    public static final String PUBLISHER_OUTPUT_TRANSITION = "PublisherOutputTransition";
 
     // topic dispatcher
     public static final String DISPATCHER_INPUT_TRANSITION = "DispatcherInputTransition";
     public static final String DISPATCHER_OUTPUT_TRANSITION = "DispatcherOutputTransition";
+    public static final String DISPATCHER_INPUT_PLACE = "DispatcherInputPlace";
+    public static final String DISPATCHER_OVERFLOW_TRANSITION = "DispatcherOverflowTransition";
 
     // topic callback
     public static final String CALLBACK_INPUT_PLACE = "CallbackInputPlace";
@@ -26,4 +28,5 @@ public final class TemplateConstants {
     // channel elements
     public static final String CHANNEL_CONNECTOR_PLACE = "ChannelConnectorPlace";
     public static final String CHANNEL_CONNECTOR_TRANSITION = "ChannelConnectorTransition";
+
 }
diff --git a/src/main/java/de/tudresden/inf/st/pnml/flatter/template/TopicTemplates.java b/src/main/java/de/tudresden/inf/st/pnml/flatter/template/TopicTemplates.java
index 59b19ea..e77d7e9 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/flatter/template/TopicTemplates.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/flatter/template/TopicTemplates.java
@@ -1,5 +1,6 @@
 package de.tudresden.inf.st.pnml.flatter.template;
 
+import de.tudresden.inf.st.pnml.jastadd.model.Name;
 import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
 import de.tudresden.inf.st.pnml.jastadd.model.PnObject;
 import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser;
@@ -8,12 +9,14 @@ public class TopicTemplates extends PnmlTemplate {
 
     public static PetriNet getTopicPublisherPetriNet(String idSuffix){
 
-        PetriNet templateNet = PnmlParser.parsePnml(homeDirectory + "/src/main/resources/TopicPublisherTemplate.pnml").get(0);
+        PetriNet templateNet = PnmlParser.parsePnml(homeDirectory + "/src/main/resources/templates/TopicPublisherTemplate.pnml").get(0);
 
         for(PnObject po : templateNet.allObjects()){
             if(!po.getId().equals(TemplateConstants.PUBLISHER_TEMPLATE_PAGE)){
                 po.setId(po.getId() + "-" + idSuffix);
-                po.getName().setText(po.getName().getText() + "-" + idSuffix);
+                Name name = new Name();
+                name.setText(po.getId() + "-" + idSuffix);
+                po.setName(name);
             }
         }
 
@@ -22,12 +25,14 @@ public class TopicTemplates extends PnmlTemplate {
 
     public static PetriNet getTopicDispatcherPetriNet(String idSuffix){
 
-        PetriNet templateNet = PnmlParser.parsePnml(homeDirectory + "/src/main/resources/TopicSubDispatcherTemplate.pnml").get(0);
+        PetriNet templateNet = PnmlParser.parsePnml(homeDirectory + "/src/main/resources/templates/TopicSubDispatcherTemplate.pnml").get(0);
 
         for(PnObject po : templateNet.allObjects()){
             if(!po.getId().equals(TemplateConstants.DISPATCHER_TEMPLATE_PAGE)){
                 po.setId(po.getId() + "-" + idSuffix);
-                po.getName().setText(po.getName().getText() + "-" + idSuffix);
+                Name name = new Name();
+                name.setText(po.getId() + "-" + idSuffix);
+                po.setName(name);
             }
         }
 
@@ -36,12 +41,14 @@ public class TopicTemplates extends PnmlTemplate {
 
     public static PetriNet getTopicCallbackQueuePetriNet(String idSuffix){
 
-        PetriNet templateNet = PnmlParser.parsePnml(homeDirectory + "/src/main/resources/TopicSubCallbackQueueTemplate.pnml").get(0);
+        PetriNet templateNet = PnmlParser.parsePnml(homeDirectory + "/src/main/resources/templates/TopicSubCallbackQueueTemplate.pnml").get(0);
 
         for(PnObject po : templateNet.allObjects()){
             if(!po.getId().equals(TemplateConstants.CALLBACK_QUEUE_TEMPLATE_PAGE)){
                 po.setId(po.getId() + "-" + idSuffix);
-                po.getName().setText(po.getName().getText() + "-" + idSuffix);
+                Name name = new Name();
+                name.setText(po.getId() + "-" + idSuffix);
+                po.setName(name);
             }
         }
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/flatter/transform/ChannelFlatter.java b/src/main/java/de/tudresden/inf/st/pnml/flatter/transform/ChannelFlatter.java
index acd23b3..b4b3a0a 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/flatter/transform/ChannelFlatter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/flatter/transform/ChannelFlatter.java
@@ -1,5 +1,6 @@
 package de.tudresden.inf.st.pnml.flatter.transform;
 
+import de.tudresden.inf.st.pnml.base.constants.PnmlConstants;
 import de.tudresden.inf.st.pnml.flatter.template.TemplateConstants;
 import de.tudresden.inf.st.pnml.flatter.template.TopicTemplates;
 import de.tudresden.inf.st.pnml.jastadd.model.*;
@@ -22,6 +23,8 @@ public class ChannelFlatter {
         int channelCount = 0;
 
         List<Transition> topicTransitions = new ArrayList<>();
+        List<Arc> arcsToRemove = new ArrayList<>();
+        List<Transition> transitionsToRemove = new ArrayList<>();
 
         // process topic transitions
         for(Transition t : petriNet.allTransitions()){
@@ -61,13 +64,17 @@ public class ChannelFlatter {
                 for (Map.Entry<String, Place> entry : inputMapping.entrySet()) {
 
                     // include the template publisher
-                    PetriNet publisherPetriNet = TopicTemplates.getTopicPublisherPetriNet("-" + publisherCount);
+                    PetriNet publisherPetriNet = TopicTemplates.getTopicPublisherPetriNet(String.valueOf(publisherCount));
                     includeTemplateInstance(petriNet, publisherPetriNet, entry.getKey(), entry.getValue().asOutputSignalPlace().getStaticPlaceInformation().getLocation());
 
                     // connect the publisher inputs
                     Arc inputArc = new Arc();
                     Arc overFlowArc = new Arc();
                     Arc outArc = new Arc();
+                    inputArc.setId("pub-inputArc-" + publisherCount);
+                    overFlowArc.setId("pub-overFlowArc-" + publisherCount);
+                    outArc.setId("pub-outArc-" + publisherCount);
+
 
                     inputArc.setSource(entry.getValue());
                     inputArc.setTarget((Node) getPnObjectByID(petriNet, TemplateConstants.PUBLISHER_INPUT_TRANSITION + "-" + publisherCount));
@@ -92,12 +99,13 @@ public class ChannelFlatter {
                 for (Map.Entry<String, List<Place>> entry : outputMapping.entrySet()) {
 
                     // include dispatcher queues
-                    PetriNet dispatcherNet = TopicTemplates.getTopicDispatcherPetriNet("-" + dispatcherCount);
+                    PetriNet dispatcherNet = TopicTemplates.getTopicDispatcherPetriNet(String.valueOf(dispatcherCount));
                     includeTemplateInstance(petriNet, dispatcherNet, entry.getKey(), entry.getValue().get(0).asOutputSignalPlace().getStaticPlaceInformation().getLocation());
 
                     Arc channelToDispatcherArc = new Arc();
+                    channelToDispatcherArc.setId("channelToDispatcherArc-" + dispatcherCount);
                     channelToDispatcherArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.CHANNEL_CONNECTOR_TRANSITION + "-" + channelCount));
-                    channelToDispatcherArc.setTarget((Node) getPnObjectByID(petriNet, TemplateConstants.DISPATCHER_INPUT_TRANSITION + "-" + dispatcherCount));
+                    channelToDispatcherArc.setTarget((Node) getPnObjectByID(petriNet, TemplateConstants.DISPATCHER_INPUT_PLACE + "-" + dispatcherCount));
                     topPage.addObject(channelToDispatcherArc);
 
                     petriNet.flushTreeCache();
@@ -105,15 +113,19 @@ public class ChannelFlatter {
                     // include subscriber queues
                     for(Place p : entry.getValue()){
 
-                        PetriNet subscriberNet = TopicTemplates.getTopicCallbackQueuePetriNet("-" + callbackCount);
+                        PetriNet subscriberNet = TopicTemplates.getTopicCallbackQueuePetriNet(String.valueOf(callbackCount));
                         includeTemplateInstance(petriNet, subscriberNet, entry.getKey(), p.asOutputSignalPlace().getStaticPlaceInformation().getLocation());
 
                         Arc callbackInputArc = new Arc();
                         Arc callbackOverFlowArc = new Arc();
                         Arc callbackOutArc = new Arc();
 
+                        callbackInputArc.setId("callbackInputArc-" + dispatcherCount);
+                        callbackOverFlowArc.setId("callbackOverFlowArc-" + dispatcherCount);
+                        callbackOutArc.setId("callbackOutArc-" + dispatcherCount);
+
                         callbackInputArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.DISPATCHER_OUTPUT_TRANSITION + "-" + dispatcherCount));
-                        callbackOverFlowArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.DISPATCHER_OUTPUT_TRANSITION + "-" + dispatcherCount));
+                        callbackOverFlowArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_INPUT_PLACE + "-" + dispatcherCount));
 
                         callbackInputArc.setTarget((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_INPUT_PLACE + "-" + callbackCount));
                         callbackOverFlowArc.setTarget((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_OVERFLOW_TRANSITION + "-" + callbackCount));
@@ -129,22 +141,45 @@ public class ChannelFlatter {
 
                 petriNet.flushTreeCache();
 
-                // clean up old channel
-
-                // TODO
+                // objects to be cleaned up
+                arcsToRemove.addAll(t.getInArcs());
+                arcsToRemove.addAll(t.getOutArcs());
+                transitionsToRemove.add(t);
 
             }
 
             channelCount++;
         }
 
-        return null;
+        // clean up old channel data
+        for(Arc a : arcsToRemove){
+            a.removeSelf();
+        }
+
+        for(Transition t : transitionsToRemove){
+            t.removeSelf();
+        }
+
+        petriNet.flushTreeCache();
+
+        return petriNet;
     }
 
     private static void insertChannelElements(PetriNet petriNet, int channelCount) {
 
-        Place channelPlace = new Place();
-        Transition channelTransition = new Transition();
+        OutputSignalPlace channelPlace = new OutputSignalPlace();
+        PlaceInformation newPi = new PlaceInformation();
+        newPi.setLocation("channel");
+        newPi.setSubNet("channel");
+        newPi.setType(PnmlConstants.PLACE_TYPE_DISCRETE);
+        channelPlace.setMutualPlaceInformation(newPi);
+
+        InputSignalTransition channelTransition = new InputSignalTransition();
+        TransitionInformation newTi = new DefaultTransitionInformation();
+        newTi.setLocation("channel");
+        newTi.setSubNet("channel");
+        newTi.setType(PnmlConstants.TRANSITION_TYPE_DISCRETE);
+        channelTransition.setMutualTransitionInformation(newTi);
 
         channelPlace.setId(TemplateConstants.CHANNEL_CONNECTOR_PLACE + "-" + channelCount);
         channelTransition.setId(TemplateConstants.CHANNEL_CONNECTOR_TRANSITION + "-" + channelCount);
@@ -153,6 +188,12 @@ public class ChannelFlatter {
         topPage.addObject(channelPlace);
         topPage.addObject(channelTransition);
 
+        Arc channelArc = new Arc();
+        channelArc.setId("ChannelArc-" + channelCount);
+        channelArc.setTarget(channelTransition);
+        channelArc.setSource(channelPlace);
+        topPage.addObject(channelArc);
+
         petriNet.flushTreeCache();
     }
 
@@ -168,22 +209,47 @@ public class ChannelFlatter {
 
         // include places, transitions
         for(Transition t : templateInstance.allTransitions()){
-            t.asInputSignalTransition().getMutualTransitionInformation().setSubNet(subnet);
-            t.asInputSignalTransition().getMutualTransitionInformation().setLocation(location);
+
+            System.out.println("Adding: " + t.getId());
+
+            TransitionInformation newTi = new DefaultTransitionInformation();
+            newTi.setLocation(location);
+            newTi.setSubNet(subnet);
+            newTi.setType(t.asInputSignalTransition().getStaticTransitionInformation().getType());
+            t.asInputSignalTransition().setMutualTransitionInformation(newTi);
+
             topPage.addObject(t);
         }
 
         for(Place p : templateInstance.allPlaces()){
-            p.asOutputSignalPlace().getMutualPlaceInformation().setSubNet(subnet);
-            p.asOutputSignalPlace().getMutualPlaceInformation().setLocation(location);
+
+            PlaceInformation newPi = new PlaceInformation();
+            newPi.setLocation(location);
+            newPi.setSubNet(subnet);
+            newPi.setType(p.asOutputSignalPlace().getStaticPlaceInformation().getType());
+            p.asOutputSignalPlace().setMutualPlaceInformation(newPi);
+
             topPage.addObject(p);
         }
 
+        petriNet.flushTreeCache();
+
         // connect elements by arcs
         for(Arc a : templateInstance.allArcs()){
             Arc newArc = new Arc();
+            newArc.setId("arc-" + a.getSource().getId() + "-" + a.getTarget().getId());
+            System.out.println("Target: " + a.getTarget().getId());
             newArc.setTarget((Node) getPnObjectByID(petriNet, a.getTarget().getId()));
             newArc.setSource((Node) getPnObjectByID(petriNet, a.getSource().getId()));
+
+            if(a.getNumToolspecific() > 0) {
+                ToolInfo ti = new ToolInfo();
+                ti.setFormattedXMLBuffer(a.getToolspecific(0).getFormattedXMLBuffer());
+                ti.setTool(a.getToolspecific(0).getTool());
+                ti.setVersion(a.getToolspecific(0).getVersion());
+                newArc.addToolspecific(ti);
+            }
+
             topPage.addObject(newArc);
         }
 
diff --git a/src/main/resources/templates/TopicSubDispatcherTemplate.pnml b/src/main/resources/templates/TopicSubDispatcherTemplate.pnml
index 5bf5679..e060187 100644
--- a/src/main/resources/templates/TopicSubDispatcherTemplate.pnml
+++ b/src/main/resources/templates/TopicSubDispatcherTemplate.pnml
@@ -142,6 +142,8 @@
             </arc>
             <arc id="arc-6" source="DispatcherInputPlace" target="DispatcherInputTransition">
             </arc>
+            <arc id="arc-7" source="DispatcherInputPlace" target="DispatcherOverflowTransition">
+            </arc>
         </page>
     </net>
 </pnml>
-- 
GitLab