From 557c394716842e042661635acb7e9bbf6c2ed5ca Mon Sep 17 00:00:00 2001 From: Jaromil Date: Mon, 12 Nov 2018 10:08:51 +0100 Subject: [PATCH] initiali import --- config.zsh | 38 ++++++++ views/abstract.txt | 1 + views/auto/references.el | 10 ++ views/ecqv.png | Bin 0 -> 88541 bytes views/implicit_certificate.md | 133 +++++++++++++++++++++++++ views/index.txt | 6 ++ views/introduction.md | 25 +++++ views/references.bib | 41 ++++++++ views/template.tex | 177 ++++++++++++++++++++++++++++++++++ 9 files changed, 431 insertions(+) create mode 100644 config.zsh create mode 100644 views/abstract.txt create mode 100644 views/auto/references.el create mode 100644 views/ecqv.png create mode 100644 views/implicit_certificate.md create mode 100644 views/index.txt create mode 100644 views/introduction.md create mode 100644 views/references.bib create mode 100644 views/template.tex diff --git a/config.zsh b/config.zsh new file mode 100644 index 0000000..e08af85 --- /dev/null +++ b/config.zsh @@ -0,0 +1,38 @@ +# Writedown +# generic configuration defaults for rendered files +# to render, put the writedown directory here +# see: https://github.com/dyne/writedown + +WRITEDOWN_TITLE="D3.6 Smart Rules implementation, Evaluation of Prototypes and integration" +WRITEDOWN_AUTHOR="Denis Roio" +WRITEDOWN_AFFILIATION="Dyne.org Foundation" +WRITEDOWN_DATE="November 2018" +WRITEDOWN_TAGS="[language, DSL, crypto, integration, smart-contract]" + +# number for each section +WRITEDOWN_NRSEC=yes +# table of contents +WRITEDOWN_TOC=yes +# bibliographic citation style (see writedown/citstyle) +WRITEDOWN_CITSTYLE=harvard-kings-college-london +# font size +WRITEDOWN_FONTSIZE=14pt +# bibtex file for bibliographic sources +# WRITEDOWN_BIB=./views/references.bib +# latex template (header and footer) +#WRITEDOWN_LATEX_TEMPLATE=/usr/share/pandoc/data/templates/latex.tex + +WRITEDOWN_INPUT=gfm + +# different formats as supported by pandoc. +# to activate uncomment and fill, then use dash (-) as first argument +# i.e: ./writedown/render - +# WRITEDOWN_OUTPUT_FORMAT=epub +# WRITEDOWN_OUTPUT_EXTENSION=epub + +# default pandoc base command +# WRITEDOWN_PANDOC="pandoc --smart --standalone -f markdown + +# Experimental features are commented below + +# WRITEDOWN_ZOTERO="no" diff --git a/views/abstract.txt b/views/abstract.txt new file mode 100644 index 0000000..1b37687 --- /dev/null +++ b/views/abstract.txt @@ -0,0 +1 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. diff --git a/views/auto/references.el b/views/auto/references.el new file mode 100644 index 0000000..db503d1 --- /dev/null +++ b/views/auto/references.el @@ -0,0 +1,10 @@ +(TeX-add-style-hook + "references" + (lambda () + (LaTeX-add-bibitems + "Ascott_1990" + "Diakopoulos_2016" + "Sassen_sovereignty" + "standing2014Monico")) + :bibtex) + diff --git a/views/ecqv.png b/views/ecqv.png new file mode 100644 index 0000000000000000000000000000000000000000..5110fdc79e517168fd7bb1dd44c48c604cc58779 GIT binary patch literal 88541 zcmeFZWmuML)CEWif+9!=NGlBj(*4qcN_U5nQj*dypdultfG8aTA|2ADgh@zBhXMi; z(mnfC@aQ?;%&(bi=9=sKqvt3-&;8u7_u6Z(b>CA}Ryc`AiHC-Uc2e<@tU4MRwhbB@ z<_InZ{K<0EDS!A4(?wcQ6BieEa9m{!4UG;>QC3RR(|CT^BY{L~U}KzdI^p~@dNc>! zrPG*Fgv|(bLUd=O+?6qgnb6Z%lMj6m2qJVNP1$C87PWil6yLH5D;$@(vr*n#cU^SY z$cQ?tYUe$zk7bT>qEq5XbJb45PR7>Y=)U{jw%guES}Z~Y8v0+qG#Jt4?J(xk1)yQz z{{2fPS`ntiiGTeeE}bbOV!lD?uJ?cb0x=)Z{-1~7>K-Q)E&Mc2^Y5qQ5{i!T{`aNY z7)=DZt`&Fx^Pnbz%@co*4+anrgLpdES70za{om&|m7~oOOnC28i2wW5byy+Po2Mrv z{{836oQQe4y6NQ3bN?FG*yVtJBp3a{zyF+Y6h`~MulQ%S{=YU+&)EtcN9%05GL7o} z#I?MoCUNP;Wav&Fu&>cK*<)dlR^0rmw7vSRR@`@Owx<++PVrGoZGgkG%a7aks@!fb ze60*T+K5=JPUEj`>y=n?8rN)=OYT!i`qikWN}r_U^ZfEa;VGZZg#K2SilkAU&z5nm z*H%y3eo2;go<8i((P|IJBJ<{5uh>_(bcBlNz0|Vm@h>MXjSYK@evG0IlE!>;@%p!FzrKrMyi9ic7>V}GP-RK=rE-U1*USFJ*Wbr-nMjDoFsmfx>Xoo{ zq~r)V49)E0>KvVFWEB35&&AKI+LHu_oMc+>Q%mlxYV6@C?yP?|@!wl(rSYC`x<`C9 zUch&?Q=vUU*rIf2_C-P6N}H%$7};9+*+)!Q)yEJj)WSELMy*&Q(J&s6m<~&wFSB94 zkF~lu8Y#J-?XP-@Rzl3YDP(VF<7`m<*H{CREFD66kA)$v98FgBj7xaY_Jc1O85!*d zN^N#Gm$&cgdGK0(=+8H*w(ZH$%2pj;s9w}2q`yx^!FG56WevwBn!{x768L^E>$_l5 zXP7P@!JO=)t`_v+32(LgH5mOVv890h%Tw`=bzAc#?V1RaCsd;DSLl!J?DhDw#<1(O zg-~+n7LK)vE|wl}FcKl?USSxY(Nw6Q<-3arKTZOF2Orpyvg(*aB>LvTxz_SgzZchW z$%3>35dNAeetX+_`emOcY8UGd>aM+gNEYdYe-tHgV;XX_UWmBOmRhtD02ij8kDJ<%Lecg3cI%T08iap@Y+pFK<;(BE1L^bW{)}UZpA} z;_k9KeIF?M`u_3R`cc1~@4ZM&or=?pN;7?G>GDKEV=KXjo9zM7r7Kr_mKt#$J$h8O zgLrYg)c8}H(f3@R{jKRTwni40LHlw&68HKtmuY2t7w&?y?>UFVoUzfds2Cb1tnOaH z8V=Dzo;)j%AmKYeZX6md-D}Z1B8g3@|MG^7QF!%H9aa7#sR5rmFx54<2qu- z$0N=P+{nI$BgAkN3C79d#JykMq@7h|ZpNtF-<~_`SktK-_HMMh=9WuLcipi)kFZ3A z@QVWvx4u3$u^pCbOAwA=&lN2!P*B8Dmka2Z$|>x!raI1oWg4z6iWWoFx&LM@#iZ!i z4!_3fqm^+YRh^KbKDd@JEMfT}&TDP<^9HL%W;h=EXXFH~K(e}wNJo*!;)v4I6n=sh zjV6K{vuY=h-KXhBrEK4JIT+&3B+I)DOHH;!h-Xs%z%80GT(5H;0)2PBuN*H zG2NC}eXze1!5PbM*E|2|S(r)887^bPuX_W9OXGKG**+r)v^#=AspkjEE=v|#HFCM* zog=)3I^rVt;1nVb+(jh9lVU2t_Z+`8>Vvi|+C|@Q&@ls3vJ|5X7F2 z&zFiEn{bZ?yoR;DFf8h|YMs6(U_W5}B%|I}*l)MO~l3**w34?En5^rtub>i6BoUty;gPbYa_2+)V1 zk-m#tdGl-W%6y&g&WPt^gy5)8*KT028;<)BOHcqYBv&CbvKg5hcr2eAA!LOY@!NL4 z@hc7*uJ*8-Og5P#G1rJvqyM#45JK3i$y6GdS9tVU)Y5`YSWkcSJ4w!M3j0Bz`uVHv zNQO!4W0OSYI0D~T?jUmT3mHUuvH}R2avRzu4|279T9$V4u%hPaEG3CgocJ}b%*TD! zKU?+X8}WK|*ZF$;^HP(avV0%=aVk!`z%;D+-+Fss>pybDV*~6yk?n&n}5si%o4q3f>*=XiSM)d zaAMfBZrZ;w^hgQI5X0RdQI*7K1ayNdA8AEYc-rZzyK0%O){8X%+AN&CQ2zdcCl8Mf zU;w=n>;O`BZF0%!_T+l`2uib<&d?xEgO@eCKi;$I)4LODyR#|4K5Qb84pG#?-IX)_ z_UT#6q93EEY9^+=#CbIaTBbudhx?*odu=Wz{;hQy!NbY<$JLL?18-d0%%;w;(CsSgwj{q>O}E@uxv z*W3u9KocjEYgFy7dv|Aj(9!B$^m8~@3webL4a33gxI!8MhWFYM&UlfoVW2aMcHF^! zNG-d!%8T}EU{qXVl%lwEkIC+yqNS1W+1y;7jKNd$S8rg+G&MFGMovodyK?7ahfp`I zt@3Uz9gllUaC5rtyJK;Xgzt86fkk)tQ3}2^){!ccDf56q4ukuNuuG=EIoH|lx7(kQ zm^exBzZR|cdz)P!_ajvp@aUpKVb0Wvk~1yzOd;*GER}}P+3Q!w2Sv+RwxAKU``7-`ktU_Z!gf&ON5nXW`_Im%G2w#t=5)NSq z1Nxpuj%iKjIGa{Z|NIst5YjmR&GEbTv03CtAeOKY@k}Y^gB7Nyjn4LKh=#*A-*b{t zLmXaz%5QgvfZA3~zMMpq8xK~EGPD{uBOlFvr%9EoO?;5gV(rGNN@ncA zXATvfqbh;U6g?3$=7N#Py=HX>k;QaMrNS%C)4DG~AcZoBRNbJw|S|THUgj0SLF!n`cnJ zIf3tT@7a#V08Z+r^qmtFG(JmG8`TRs5R4sOkz!G?KwX7=B>mW23UQ!2J8BW}CFqpI zB_*XF0vUi7t~Rea7WU$851pLJJDvZ#5s?k>qlO9#Hf840a479_ClCjBa^>iMee9IOEH4St3}> zyqYXecKPfO`xiV6++YK`h-JxcCqbD#+@`F6{X8wERQOlcn;+u^3jnbL_`XjioaV1V zs#-CA=j^dlG`TX7T^WkR$r9m|hfywpE-E1*cL+Uf0}O`7p0GLitq$16NiZP!0-ND`P{d1~^X3saGu9=^^(y zjEpmSGgAumcvaPCyhM zMwwlo@}*0cZr`yvja0=y&%~4@jD5SiVG;0n8vB4Hn>lo-CDQPjXg^@LNbqe%oA=dWosKZ_$3jJO&Qc8qZ}2>#`M{ zs{Chsi-Jn5+8qX8a%xUy(V&(9sd_vbz!Ux;YL}U?#=CH(i=0ygXW& zYFPgF(+{z_G;Cl7tgF2L8SZmg?=K`e4RbJHXYR(d{z$P59;)+!Yely<`lig`j4Z z#e#S>bAax*{f)Uq^45nvd}6|A1G)-`2$3R*g2A(E`{lT4g~{iLsig$ja`;6K<~B7%M;C6%85C& zl!6XaZ=a-a?qC4D1M@T0Ut}TZFqECumMCgmXuP;hgqk1 z973Iuq1ZF(@qJ)zz^))s$k`k~kip9voflkhd#jfz@X=hy@Ci=4@oMJ6@97A5gw#&YN_)NYJG{-hRiN-=wV=XoEs{(T7;M5mzD zD*5mAY2X2jxA|Vvu*TE5Ih3?Y6BafQ8(+lo>CBr^Htk#?@AVsWgt)o^k*W=@V!wdG zuYFMzRPS>P@Z@tYW;fOxK@Nyfc56-W>8>vm>R$9ccmze<D0D0&(AuTjs*lly{4 z48zee4=97JlCIH~?bU)XiyaZb(is*D@Kw6p>@`ctHWpaNb8#>;)K_v(8*h9UH)GJi*| z5G{x{{%yI%=h<}9{5C3POg|T2r}bTZK!D2unL$HET&vd0ZQ6%PK9WYn}>5z=jN_eX}u5F0A*3j^p4<`_#mH0d_m^4c+B< zq--396;TaR4dKo^V|yE;^}v~)G4WZR?Rl{=#l8QBaZXZ}8|sGyw*BHSEd!*kcnvn}O2j0<3XoYd$_ASeb4gt#q-Pd<(R4fl;-# zqY1^qX8J{u0mS?I_C(RF<`EHw&NUbJFK-_B?yO&jy${q%Res)-{(c@79vek}tD2*8 zj?(2*7~Vq@tiJfQ&Xe+ac1zlsrj3Dk#Zl3n@sTS9?6+EhtVMB!u5QCsZY`(a8EWD4 zu?7yy0>MEzr)J z4iC03yB$qaif#jtP|iTQLy(>I9c0NBw9Q*s=tzA%))-_Y$piIMJhxe(acy{5=*5{e z?>ABOmgip;L_VI~0=})AqWR*kSBJ9McjV$oZ8gt@Jk!2&q2bX`onDUR*w&*z^$gj8 zpHVDX3ba44;FJZ4wycv>NGOe@cbvoJaAspDL_30KBU}C0jtAz?xy(hm3DStZmHTrU za4XTg$@UdypUxw^iAgSAA`;?$2kc)iApU%2Au=vwF;-SZlkxS%(NPv&pG~Ll0Ua?U zNX%hhsGd$y32|F~Am7XVdSd$)@C-<70?nY}QM;a?=8e~lK88RgXReXpMT@QXTgXG1 z$HgH%vFHHI!NsL^5sj<3!OO}YK<%-G+wK=-7k++R)5U* z`9M9?!g4T^9{F_it50HCmv@pV?R(EqDkmgRT&wb2lW+$-3T!3_4Wj zS$=#fL92O9_Ih+k5ir%Pc#m1sq^)Gw9)8L*5M=z)_bS+FK56N*3?3HK5`>AT?AoPK zO>x%WQ=aPyFD{MpDG0%Ef3M%sQ>Zvt2^0v>a{P;C4RY{s>Ms+{_1caIL1Da2@VmeeT zru!-goG{P15lD~W1_PCodEw1&_I}R|${jBCQlpBBma~qf)?o&J97#Gtebn&Q_)as< z#(w~|)|Rw9cGT{2{Y^r)@tV3P$&&tlQ0C_jf7A?XJE$Q=W7X8BS}+HrFPB&xRUknEmY zK)bA~k(S0gTjOj5DT|1BlLh*PKl3}{1PVbq7GqA@t&qGZTg&qUhL3Nf+Wq@LwMW4g zy^zaP_(RqzKc>|Rh`D#pIu!0#%-9c^>s73kur9D!BoI8*ybYOfWlk#oHmRT*gFNZW z{=$?Xa>&Vf7vFiM_}~cGWyYmrMbD1`pWI6<4%`rF#{d!%(9=X6Jk09|*KXaJzv`c0 znSlPrC6m1J39bYh#Jw=9F8oY&oXXQ(hGtF&lHnJ50y z-sWWFi!ba2HRdHXCe6|F4Z2R_d9U?7pi!Sqy-MrXqhfX!w}M7>w&=1x zhlT8eRYh(MBwKl!I{8e%vB*fLzvG5tfDev8Z|v7Oe60;$+_F}KM~UYY2oi^_+qMCt ztA7dQ^*HJ2-71jWljB$$#ZF|AEg_@t(E;roU*_D>`yzt$nmv?jac6mQbPD!&7VGEI zwhNkZ^>3%f5KOj4j>6B)_2#)qA}Gw8GKI+ zl-XrbJsS7p9-G3TNol7RoRW^ePc8cNwT_b7GorPZt&Mf3p}Y4Ff@;{pSf&x}IEIy| zUvNu3FbKGtthmB2U#=Okn$*?YGAihJ7qkT9sgC8dz#+5SiTJVoLz{I1^D_VR_tzPm zm~OM(w}41>3r;F}`^rGkzu;^^w7yFxbZjSq;3uFK$#_k&YWMLef0-FQsfrf&Bh}3h z@~I=XW+A7I7e1FLNV4NkSta{gYRDv`FQZ_>SIPZNi(2lxYmEW%_?`hu?uA}!wkMTn z-$S3zlPXbSr7FKmu#C5vgWF-KA}iT%z+%g~a;8s#MgN$b8aXc2#Q%x^O`S`YD?(VYXvqjT$Pv#ru1AYwJoV_hTV2vKQr(>Q>%aq5} zU*Vh{YEvWP_G+`lZ_lfl00^*8wcZ}zyR%K|{o>R)H|LY^$dPD!h5iSA$zLCH8d%02 z?5?y&1UzWZ(nQS3hBqMndg*V=51scpb!^D60h8|$^$>u_k(Ot~e6E*|OSlC-SCfB2 zu&UT$^?LA}n)7f$q^f3ki1Hujj*toIY2sm8vyR^<{uy}z7dZ{Yd%sS=~s9s?POrS40A#nzH zP!D_Q$hl}d(FnGi8Da!2M3`PKZI75E6SFj#3UM&Kl|EvNAtr;dd&ZXiFN@IZCi|dN1QL@4i`cEz7Hfs5Sa^}-4+IZX%7nOkien#tfyh&}g3$%y+;V5%F6ej` zurntZCrkm|4P_{F11e&>`xaXY78YNyvUR_xa2E{b{*1KS^IGou6mY?)>Po!8)%cZo z0s9>y~ox>h6~MPnh9KMp2gD75Gr`oMwzHpA)y3kn+&*B}1|f?4~_B~bgFlGsFeBWhwi z=GROmr0-LcQ2#jz7#IgT()<{l!X@|Mu(NNZYTMa~zbvN#CP0hpt(QX2L-f9kd-7Y5 zg6>oDD@o3|b$hKGK>uK8W3gcIMlClJ$OUhdGYI$);Lf zXoYKBYqIdd-+0yO$p}x6cqE(O|b4E{)c$Mb_*jsc0QX=Uz*RD zl)kZ8TyE5?vA!{_eXL0-hV9n;oizFuw?2-0N?Iuifi&+$rzaq9KzTDwK9Wzng6Z03 zbua0U;S)*%$rhMs_njb4!q=0<2GhXz12OXs9lD9}5U%5*` zNpkoWx=4KT$YF~b#Z?fNV0;n9ZS1xk3{>xc8g&Pt&MX`tU=0;%=n?FkD^D)k@FTU=SxD4h-uQg^@rA2T`4qDxt6rJ_TawtBLca(( zV_JLaW4ul)t?m4~2HGiyW5%`e88U)y-M8EFPSlX$NK(LL6p9=DdE#2IC-%Zy2$c)k zE~-97qqa|Zbf)x#R4W<0xL&N2Hl?sN`Ab|yW&p{BD!eiW!}x0`7s6Mh5bR95r&|UteU7B zPoFcje~K^dR3RSFEG{zF5S`3XJQgh^ZzV{2LhH;rEdDsnfyAcm(oTM2|6zV}@tx!? za@)Bl|CrLBn1W6SwTHKs`TiLBPdHn20a)2ytGMMqHpS1mB20j?cWl@5sE>3+&mncs z0P{P?`(g9wPmanoTxDSG{^wBv!MjFb>GLOmM!f`!8D1_Vne-pdyBF0p-#)=B@yAF1 zd|e=_zn?&>@-M22j&Kgnkh$+2il5zxf7n?xj7FfgaoZxZ{y5M-VOEG6%t(>M>+n-Y z<3B`S$T1*vv8G$Q{yo~JDwq-7WV4okYd8^3r~|w*Y4h*Vnj684{O@x7KeZf)ZCzSZ zy2)x#xj~KTBk_b@=1!^2@w!ddVgnRwe-~ix%`a~{(-qdr{l3F*fEDK@k}1EwbR3m% znfd@-)Wy#wRuJ}PT>xSM!#G@I(F)OSuuK8k%k#k9Kzas3e5!kf)&39s2YVNZpV8@k zb4;am;?Y?_hwkd+#C|EzN6oOuJJC`=ZrS$kFQT>T(n1!zJ+x(K`p*Y0zTtl4`Y&kNq=zRB9NEB z9McLp(Rr`WpOV~l0#1`e^it<>UxDrQ@9}YQ6{d|Cw_`P@Kn1GBX9gw4gM|y<{|+xw z_=Q&VjAofvo;($>w>1<8DHoBbYK`f;Xjc9ENyV$Q_3Z8)0IE#Yg`C|Udf=1@puN*WW6lUOP@kHQMf{K{qGo@1+i{PFyfSD&eB{W5 zeUGRDR?6;z?vlQ!pxAMiu;3!a4E1M967@YBno_#?D7`G~sal_{o6r|QDH`vbJUiex z1*N4Rp3VzxPEho$(`KCiD{qWZLF_c1mVUky?ycmmTJPsu@OA$nf?Cu)?)oZrS^EzX zr!%^hH=jLZnyqpX;IMuq4QDJO9}ZHyd)lS^N%aX#djqHLkfG22$dG>mB3+;}mS!zl z2%_5>+A6((3>KV2H3a&+D#wi)_&hHCB+@sAJ(9I$vfp#+m(F}H$=ay%uGM&XLvPsS zO-Rl9!?S)EJr+l}8a)R}*=uUS9V!qhx?fChIwdR{3iuu;% zviZzPH|)hgUWzzATU1n(YK4W z>#sFLYC?J)yM+e>-n5)FJlT4d6n?*YYfVgta`^>xj5KB&Vb=*yaN>MQsj{6X zSgM#oSQ*b?*Fhu4sLIuOnCA4Q%K}MimQ7Ykw^~@TwJ?F%FIkS7W}wvU%DgH*I(ei} z{slt`Poh4i{UL>Dwq8jlfaE+IRDa~=&EgU6WbcK_jS=s5mk6TzoCf5}nNhE~yzNib z{s;R+j-!jmPz9`I6vPsVwQddQu=s&)G87tb5EVc!y)_&ldCKR`^9>>e`}3bm?0Rz6Kz`2J*a#G}vHzZ% z9HCfu9OdI!pvL|8ebTSj-b@y|b&=m|Tp^z35jBfJDg$;XB~Ux^)6_E=K~Un^cm%aw zT}`(=2y2VudF_)8dhC6jrD@_@D^prk!KSujdVjC18+L!}V&f?PXQ|M&6#$u{KATG; zwchp6DFV9P9D1AE>iVN>D0NTUJxX#J2wIPX1*myZ>4!w-s*)1Kw5QHYX*k#iT+pe| zEBFj#%<@5JeWIklapM{B>~n0#@1^dIqeO$OrrKd*!Rg`;H=fv=ypBldWd=14E z%Py2-RHxm+z<0^6Bza2!A}~QlJ91HXuqln&yJtcI7uiJc+(uPwYjk&_&e;jy`<#8+ z7%Q_;{sB;oE*J!UkKPqMT4qs{30uHlf~J6(3sq?O%zr&bw31@+#|&1bnY1@-Jb$k^u|x}9!CwXN@TKwt@Hc=I?FE_A&7xPRc!G`t5D@3$vbNuTTe z>+j30R`k3&_w>RY!q010LP>;K#a^NqSG&q!fkJD{kUJ?Pk@?M~7v-w;qgOj8OAKZI zp-bVv61W;DB3P&2gj2KdjU}0Ml$8<~a{Gz9&O|-Y=eq9Zznf2dGMY+FQkUZzH?1ZP z%Ggqrq+4s9)Rs+3bxz?v$>TI;FPlY>!WUoer*gx6VD#wR)VrAXRyfgL%|Q2{l<=JH z&HDF2w}m@fZ|n+cGtY^+v9*GbV6KD)?~igGz+oF4&!xw=I*;RmsFwG_mQQ=%`y4fO zJFFoUglk@3xWZuz@PW?q>Kw|9f=vm%$<9xwx;|I! z6EciCy*_Da0LQS*p>Hpr>}uSZh%UzA_fCIkNg#-Vns%LI_j>USCQI#%&Q|*nnPn>X!GybUnbFx{dMSIQJgx%ruoKvD*96U75B02+b>%c7%I)o`U}k*>-S!^ zI$-$}sU%B)Pv*y*bFIzUES=2$=W31FDowUEOi|k{Rtm4CC3elw}^9Xj556rMn z0r~Uy)(+l!)ZKOf>5lngawxY?* zZ2x%ACAl+SLQ)je!2mjr2z`Xvys?@Kz~aKaaqIVQAt8qUaJL-t`xyQAZdC_~OJnj6 z(7QWDP**JKsZP~Eeo;BQsa0*v6d~YKrwA4d0U}h-GBQxc70%sFgU3A^+^t3`0N5dwbmR}QW- z6Y#GDPgbtgo3)dY%{+eRrfgEALF0C+qaxDlTgD)^sAIHI0+3(}5FQ5`rGM zHGmKFC(JV3!pnmM&h5TU75)<*gk&IUS_xM5p|kb@#T_f|gHz<>Bjd}xC=D{>px`Nu zOFZn6Vn0HNs5{)KbxlY1z}y8i*v3Q{7o|>VG{Pii&MFz7LR0?5#&?pEt*s9B@**4Q zucX6E8--}`d02WMaC5UyZ(PHv>MyZU*~^o?C(r&g462;9xjrtrbTjGR3#UF#O-4%Q zPf6@=PU@H0vMQvn$5fosYemegbfwARC-MmYN|i6dcUtf^aQ+3dWp5)4r$syTj(asi zZDrIVxo>??Z+vEr@um8zO<&c1Z!!?RTBFR>?a#y~3D zDJwiOLB9cD1x$N=wBGYPzE8ONLE!S3Rf9?H?GpXm3b)xStUOn8$Z7g&u83A~%>rYi z7nfY`XR4dB*)D-BZy(Ma6txFXr@V_{&#L>j8VV~`w9w!y{r88eu|>5^Ze**8#J%w_ zD7cRbs1w+GDLSr<(|w_seUA-%iR=^fDgekb$c5^zqFj(*{Zmm=DrO<}E=S3u^B6pa zobMVp*G4FBopXKjOd=cPKkiqbTE|AB73-UnSVqLsTc-w3V4#G1u6EL-N*#4~Q2c?o zNoM)D6ZK!nHbew=@_1r#=GAyM|D^lmVjc?#ZkGqxMsu{->+fTh=5zZk1X4-5e7y8$ zQBS9ZH6cDKRnZCi?KzW}pTWYwDrl0{Zo30Oe?6QWmrMI4EHpogV_|z~ok`vfM_8UY*6h!sJU|0zuV4?R=r1bM)P}WQT6eiT zZz!5!Gxli2VnyPd^z;c1W5q&DokRZlCfr~xpty8z9mE2cK|PR_PUSk3QoLL(;0~s{ zRGGVMHvUiuxK3Dj?htjA1yOZ%y&wA%%F?Z2zlkBgC#)K}4-k9qL_HJ|+E8^03+pMI zx&Sn@WF$F{w7)_canZ=JH~*pQ)UU$ZgJ(c7^b*K`2w-A97t6gTeD|1Z6v}L9vElO5 z(tZq}qFwpG^4F|>f`W&EQ`!43NCzJV>0yf?&8}{S^KYaBhEd>F2yL7P{==+R!Mw@# z`E;T*&VK8hr}M*ij@fbqA1ZTNsJOZ?x%O+$$;T|b_wmHX=}KuY(2F2%= z(2Zc#{&#WyTDbq)76-K;$komsqr=ri%;JHJ*cWWQfE3?vwk88M$WnYX1;GbOJ0RLj zz^-Ok?eVuF&ksbu&<2U-&{Jm&qH0Fw|-oATtj)4b&Jd?E?!&G4wyUI`T@SM z3)b^ke!2_-8b(R*Jtyul19w>q7U0^3vkYExT!2Y|$_01Jye%Jy3!qs}CFa>tkhoSOx6|x}M;<>xCFBH%)XN>1KVVL}l&~DvK=`;$d$8Gxc}fg~aB*iHDjE%n z8uHl#xotk37q13$HMkopwNb?~RBv@4*u=XKP9^-~vsLoR+~Y}LUir0dA=FEU%4<48 zB;-Xar($!wV)@yVJoszD*U26kr>Hq9Au2-4U=HGC6gnYRPf z2PuA8_fFXFi7W#Ncb;#>ud^6{gU(0^ddo@&RQV<1lyZ?>C;tYNctRLB%*qL>y_o#Y z;I+Or^Og27%C5zDz2g*D?droH7d_cq+>UlwgEV*mu?fKMh8q16M^tol#+Q&PtL0A) z5|t2enXW$d%x9^10WgApod#CA-{2}rK&k@j@y#VO$L5NoNygQMQopcaob1;WCt;Hi za64>=L$#)=k=@z_3IIjvP$9$G^r=NXBh4 zz*)B>XuG*JoeXSv4l!Xa`-%Dd&XaOjz*B$8yVKMpJK4+IE@tsdQ1yF`6kxN_=v5q= zx^&QeBOIATmu@*oZwheC;I<_DZ7bH6hM2(Oae+Zho8r2-Y8_^Q%*3&yY+wqS=!S=P z<9|J|;y6$%p#CVSx?#oq3OMw65*NFs4Q!yq#>2>lJB;t4prs8p&I$4*sLG$gB@7Hx_rNnGX6%?%Uw`vVAR$vZ3ZBO&<;m4Jir1e97k5s2fh9+Y@g>RlbIR zrh(+(zpaFx@fVA|>A? zWv`wD9X^YGX*LD1+7@td;s9dte6D?nTLy*M+qZ9D-#rDr<8)eelEXxVBu81>Ph4e^ z`Dr%6tq%Zo%~>oT2VGT@QoaV|A~dgB=ngx+CBP$L0r(gU@YM~X0BpjW1%{nioQj(u z5``g_0vQObd$xcJPOw@X95d*wKr?wAFbBy!-C8exB&LVr;e|0joAMJ@`4p_ErAOdm zL7zRl*-90$xW3IaYE{&*ea-h$#wP~Q!mILw_H+uWvxTeH{784f884{plYsOD9Z0p6 zdUrDzomN32gdQS&8?RF5Xk7?HXkj-l^Y(?4p!PW(76yv$w&gKyV~Ers z?B@r|Rji0T?dHKv{f>zH`n%{86c;@?(p%jK0zVOY)y%D=0Y5Fi5A~02Pk`Sg=hICf zlZbdn+NUaVj8QaOBkO+o)T_rcod#is3WqVb73CV7@9y~J{AI>NX_Oh2qM;d+qs+6~ zFWHO@WY7<&&qja^q`{w=Nc0$aPD}{Q^RslqnwX-BI_pk`VNTsbQ(*7K$TXH-Rpei^ zL^d@w0pm+vPuYnxcMS&!^nshdq=(2&;C~2{SK6|F&KCv=RKpvPKEZCEg^3&Pi*6|g zLVQpKS;OTl-fOdKZ_Y(}+Mzm@AeoF`NCFiI^svCnYSO247fAH0i6T93`gEad0p4m) z!+ljq0i`wvJ1R9#xo6czp{!c{beW5yen8Q^5c)U|sVmws4sT8gQ9-UQ3*V6cr4&Fk zU<|xWIUiW-y;1iqGhW1fUKeDtAS$eFXFrMb+Xs#FYPsB3FdunNJ+Xq5ouxrO?`Y8B z9t5n2!e<;Fh zPv8;twf3Z8bGo6!9EjW`x@0kbH#`}g_s}IE&5+`QzP)aI9NX1S zU}$g(MA|5q?oQ;Umik!+NWH1ADM=kXXHxINxwH?TycU1ahSOTO_z$W zJr`7-8KW+BiwbD9Z+U2ahj5*41Pk8p$lK=m^AD)#3*n<6A#3L8^Z%$-W0Iq$c|J@= z6R&NKZLe$EiBzCERQVE?g9RyM@VV94&(r*z2`*nzOk5L!n;ta3Nx_9WB-E<3#=dJ> zeFO>O-Y9SOyU9(M0TOUJX>H4=|4LJIV^=_|EaGB3L;5qAap14c^{H6#=q5~(BO6uX zxTO>XW^?ZX7|E%GzS1r5l7w1|fm$9yWCQ}o8sjhzr=bjzBv;9deg$T_Xw)qtmz9)I z7p=evV$;dbb-L3QaN;^<_fa`o!~kW8w&g?TzX?*n@-*l_sDoQ$^nXoJ$SEZ70?n-m z3dUcl))`eiM;j{D?Fy&e{q?0nnsiVngSW#Q zZpv^Q$&i5?h7R)>9SIZ<(y5oIfBj_BivSE9aKpiEM?N(e+z!8T$j`e|#*7n9?Jy4L`{8D9ya~d^^kx&vftAW7z^@0#DB&e>TC20*uL&=|TEyxV* zX!?P;#}qt$;cyNDk};qOX9tu&WGKtFgm2U7B!{62$wCO%5|LavZS->hAps2_NRZh2 z@(ASm+c)Mw1Pmo^jqA6ErK>VYZi^%0 z99pd=&mabGt@W8qIu3>ZGRGm~P=?qNjrR>dKYjOfN8c1U@`_3p5R9M!blcy(<+wKY zpc+8dRBHnGwVE};s85<)wfvsWpbEq-{t_sJt>mDw8k zh-@&p0DGwfg0KJ60R{w2VnO#1bq~dDZqUN%!#QeQizGPYGybK=nJ`9N=8k4md%+B; zGmguou3`i2S7tzxlU$+=vM|4NxKM;r$gCuS=GRRu zNOEH6Zhr+u0;pi2)wNH4mh$zH5mqBW9N&lhXwx|%QC&lT>HsZm#xM(5Nl`Qv@ z8AJ}Ds0Q{0!-_(iE+z~d7C;fjX>R-EX9sAQDmy+U983~7tf$7Ly{V|5q0J{-)> zsBQHjZoG*54AI}n5Or2VsF6_kpoA3Q!flBv28W`kg~jLtHP~a6%=-Fz^Z*a{9&lM8U&0Yp%>vt_gGLdrTFfk6lPhW zXSgKXW;ORZDx59uuJMFcyMXKq^c7InxP$AEvIRzz=E?0U&JWLec1Ofs{s}~TmU!-} zqb#b%S!mnCmVN*##)MXs8fbmM4p@SI=$8W!E5$cLe@Zv^Wx3)sSiW_-KAHxd0sZOH zo$lYKpr2H?)cS#1DVXTolT#CzktnaQm?t;DAkdC10;@qlCDZ|Ge--S?I{{W;wN5gs z2n{#`_lbET$1fgDE}<cN0&D4B}y4e@HMH5hDPuhJ57svp!xAZ&3 z>qT4;oYtq~hz{difD9JOa9tqM^90vX_mZ-5uh(6$bF> zkk6^itmPqi*7tE12wiw#D|8z;ETi-J(Hvr$k5!EW`1a*00?_A0arP^is! zJNkeqyB{oW(j0TVKW|$?(qXCZmk`NniG}_Xj2TVAc70{u6q3EjY4sN;Tq|VY{+PwO z9S6CSAg{3Kkz4qcw8j)6Y%`PQ|EAyZF|)NH3SoJ-4}q_Sw3r3NR1<4 z+y>2rjh@uI)4RV&mH>O$sxP0j{5GOv(Wh|Sdl!?9Cw4(Z7ygX`t#8KUF<6o<(1U9g z7>kEw?hAk+0$QD@+s;7Xp#>`Ez~`Y>lUEVRpFn!(0!1h`9*H#+(@-iKVz2V_{&)fi zQEyHUD0cr=Y7eoc2FzvoCQqUe74$ai@b+6)-G{LNcxI@`VGs5eStvB)!<|!knzupU zmZwuN0t$AFg;9@D->ds1>d3V~7~A@Tn9?6D?C(lEIw#xn3#bTpPvcn&uwf(<_bEQvtB%?6WUkg#ii znE41Z19Xdk=aT7lzU~<4?VUwp?j?X7x4|pdqaNkWFvbK8&M4(K>(=3FHFYkfkX15zNiIKQ03(s5cQ8ml-3G0S?92MnJ7^e0q(Jxl23zP@ z6B=}K#X)fGK^|)MKhu0}Zi$7~j)Fxm7U=Y>9Ro+2NQ647f=DL2$&T$E_gs4C z=MUEshb`X4%>TUBn2~XQFXtK_*c6o1%%BDBS{J08()~P2DJSdp@o`;rqK9g#_o@Th z2({EPSE{7tTG|Ji$BcD#R?WK9p<$`|Si9Pj<26{hLnz>g^YF%;IMU2fvBBj|H6ZJ8 zQ@%T5qtXb-RdVYKv2O(JkA;QNdK0(()h-q2lrNRv{K{JK{pBFa!>~7YkC?fXL;AXA zzk%Y{5r5#@qiLmV&O{&kv`aH+a4TO_7IlLwzfP_-aVXLGPpPSJBi3sFYg+I-!_5;_ zq`DPK@rJ9C!BCWV2%JFFD*9BQDP(k>iWT;_buYT{dQH%iv(+u+N9KTv+ z$(0YhUT@*1IZud*d-?Bwpnn(c+XKp6KlX>02F?%G#=5>i{~^>JoOSlSrz|IqZTx^= zYIWg?y^2c@7#6NqOd!zvf`qkmb)ASWS=W&YqTMJE|D4YVgPx2e*w;M@FAGUl#41bXLSyC6j{1E!2Gt&=t25Yf*mB&p`+rEoTncFVJ zcF(+X-?Ij|o*}y_xKIpkG;|?L5awFNJ1ptVWf3MXX1zU6W`c8R%JK(LDn4)%n$pz* zqhkYE_EfjXcLPuYc-UBQozwZv9I@V%5w<6R4th6qJETq=lH?u7PDZXdb&g{k-Y+2n zcZyYl3Fg*(p0Yikdx7gr2iWj|(|{{$ft@TmeqHErZ;WxEGm3JPEoJHM-ZTUxULI>fnslq*?}ts#C&WF0zS2m7tG z*JV(iTys2d`X;#>v)oLjo>!`uywT51@Eu?EGkRnt4eM-?sL07~U1S=|!~0+O-m(1U zQBE@gXL6@R(CSf}gNoC%#&K@$GxU+3&1AcW&nbal!PPze7Hl;=qIpH4z}m#KbwznW8mHk zX+}lyqkx1^La#Ny1*)KEUga1UU-7fNmf<7+2YYWBRdu^{57TT?O1isCK#=b4kXE`x zDd{c&DGBK=QAAQfX;2ygK@kz@l134*-nGxU@jmg4|HpTXXN>2IV-JD-%WGY0%{Av- zBfzN`O89YVb-L4ZAg_+ygwp+sr~WlL>{)Akz-)P51ic0D$a^?P0O|jsnQ=B!XKdVo z)ER3#i#wh|sxpT-I0@FkY?ALq&~7-<893LpdaOl7Bu!}fdO)`1Pm`tdY3ecHBA-X} z%Myj@oG}w*+UM!x6F!HAM3>qs!6r=vdkkZAw$V9)2G*!uCxIqebLn&&wqU&RmD!bD zW9svxj@Ie#*86e)CMzBfK$-x_o4BXMK?$_qB^kFW{4k= zjSO~|3t)B@VdPqBc0R4 z@=z8Cg*L@!=tP5=d6NXvokt_4_~u6N9Z26W_miFa2s0>O-%gKl>(3CGI5CzKU?!E+ z`xi0s^yQz$&jKHR9naf=H1FX+$vMZq*V_D z{wveA+cWjYq-_7VX#cY>E=fiKJYOOXj=Mikl-=pEo^2?Z%RfuKHB+|;mX_o6M7LJy zf~2!kQthyn`-u?gUB4qMZ5|f5{)GdhMEH}7gVx21!FA`EiC>U6(j=v$_8rYFxHzkH z_CTJ!z1!_aP^=o|9DU7oKd1pO7{9&RmC?U?x2E9&{nlEU`iVOx+-jJ=R z_HqcgG3&0jIfmb)${?c#f=aPft9z?hOU7>>-kAXtlBZQ zQmlUge|(Uznair0;A11sma-KNUYn>ryQK46OMSm^0>wru=Eosu;i{ow(_7%YQFf={ z0)lfkx1U<`asPv?MWArbZax+Ej1{D+Dj??qH@Ipf&UEp><&V-ZE;algdSKn_J7ye` zdIe|m^J=I-fxX-!RuUfbR1@Q^b6??P+IQGom1|m!TsY}pWpmewBtY-WV@%=4h$zb+ z3JV&U;C*|ZyYk4!jY-KzD$wO>Vb9(yZbSKpE*BzD)59J+1>AKX;eo=wUdkxeB~R#d zgOM3}krLVYt-x3^T0l1QU|VVrZ1%d6Pz*!{XuJ-94W}4;IT4tZ)J{sf@ndqBvA!5+@jskNVdhOoV6;e@X);Q__GO z4}+M%gp_l-RG2ygfD#B5fH6$s5Y}pMiOa2;LGJx*l5MLA@sh$PS{@jcnaToRr17kh zhVaAzW5rZexLUF7ngGWlEFfeex(k?}t)~eU>G@7a)D(V528L!6p`yA{2TIU9_rdK2 z8XYuLz@i@6Q2Bi@kYyyI)USecNMAQm>G(R(M0vq3F_HB#fPyeM1N}UTqM(%!|J5{6 zFuZ!=766pKX3J8@Vis?4Pn*Zx5vru-Ctx9RLIRIBdZ_+ru85@3W*KZ8ZM49UPUkMd z=2H-;^4l*m)r?0NzwD)C8L2%|(#aRM5!(u#bBX@0=#5a)0{pe_feYgNmdSO=MnFRV z@YhfNm5^xw{Cuz%Fgz*5AU?jaY?F9Do%Sqm2+K8;UGbWvDDwi+&W5m%_BoUn|2+M^ z`tW2~kDmt5ptkl*>>e**{)gH&Ug6@jm&W=AHrgVYTAA_X#hRk$=Zp8xu^FFZPOA8Q z+x)Nj8;EE#IM3{eYWhFF`xns6i4@JQlB#|C&o4tX0v02PZuno{rH>Tm4soRJ{wMlM zBf1%!S!V#e9n`Wzrs371k%e8aY=CczfN}*4qh6Jw)tOENo+k||Lb&zknFKjjLDGm3;5?vM8)U<_aw%VE~EcC-3%mS>=38?`@dZUT-5)M59C+a zc7b2Mk@DNRcX6n_w&a%*h#TXUY*9!Zr!G!hyhysRg&VmW`J6kO2=isQ*$6YclGO+f zOLq4FcdT)u+ni|VYp3?k!0$UA-+fAXg>@rCVQ{`a3BFR~Z!759W23;g}-fBla08panoks|`1v;X`) z#t2-}aX&qqu7_FwejxZu5pT3J!rW7=D07m(I06S1fV~trN6~z^hMnob(IXn4 zPsJd|9*ryKH4uHg$2KR-ax?piOp_kkkM7StUQfO(pBB*tasM53`LsTuT8a~sTimFRWjTYthS(ki z0TrlJ7u`SCzSsrx%l28Ha$orrCD0hsOQH;c{Q*it0Mo&st+q6=yHoefAsy3NNHEJ*q;Aw3dB-&umi z8mTR`y10^KAw$E&1EB9IlFtM8HpGLwVd(ddby;|Z``8S@C?jsQtyr7T#tVO>_KYm$ z2{@B=M`0t~-vO(6CI9xxHQ8Wnv!64$WhpXeg+M?6)O3HF(R)IfVo}>4`n!gS#c>#{ z;|S#2jHYCKz9<+Ygc13kuc*R)e!jLDx1)jK59TwtTmZH&0Ti9&dAAEp;F6_}XB5(& za*z(#C)aC81zQIMV?*5${Q2=S|G)vJJMdbtO;n{{?Wm=ORzMp(&c+p%6e$uX6UDcL zHkOxwOfHYJ+X!AdE#t}2`W{qspo;W=KPLUn()@&R-_v;jW19yRr<~)u!qq?%4UO}K z5%G$3AL>c$+q6aO;)JR19kQ&zYKty9MRHf1gn``!PsmqleXY2Nq(?sV; z6_;dyCaj(#z7zzJVG`$j~+kezOn@G7PbArm$m)22W@Dr7#g-6heJHK zUhF)T$LT;fp!d4?RtJv_-*48X3VI4+-5Kxn z?t&FzEPC8WFgZmg^*hKWY`YZP8_HGC$xo1Op_`lc#7S{gYFgKFm3uL8wbx)tNS`c3 zRa0I8ho?`s-&uv7^fKV8uRZ;?F~K5I3kqk?qD)7S|ra>!$>Zv)+^}O#*!?)l&&jN5;7mK-oD?1 z=Z!hpv>>@WdpAv(Zt{V#3L1$T>?VvkDY}1RwcIi(r|3Z;m8IXu+cxy3+WoZNTFbAi zE8KW911cSYK=Dhn(T%6@RDrV^g#1Cc9vNptTDc;dumlO(2_XbznwVD`5y%(T#Xtz) zeL7>idiz-x2CE)DyezApjqvfWT?F!z>iBPS14PT~t!2c$)j#TK#?yJ|AEbX9;&~z> zr#k)IQCPsd=r?%3(15Nj+YNjVIJd7h2fUl?+74B_JV4{qWs#tI9hSBXbSo~sk?z5L z@KW%4SNOiwu_P{5R*ZjIW9&eC`3Erxbg6R_(BA0$u_};vqhSyN_eThnqhcSnfoAdAvRnJ|$1h-d7)?G&utZ1h zP~!zA5fDWM%F3)DrpFSE`;8L?9%ufE>TIN()id1yfX8(*X4@E50Z@VVO*li!-pLO7TA4$1s{#R18K}G&he`U7M?FJ4i8+sKpp9&QUsdz1|ligamXAH6epRw9AzAD zUJXE@Zr9uFApAPv*_{utBmaOmO&Xpz(k~gfcM=!ZO@jd98~!Z%fc$r?qH}R99E9Ep zSEI!%l0w*dnR*zsMTLPxVP|iOoSBT7&Jg6L*CWK4_x53h{<3Jp_;g8ehg@|~*L&fd->|t$ zB%?18nm@Z)P+d~S?`XjnYS%Nu+?4zY=^5+OX zay`(^Hh3eI3k@9Dc)Ls|PJ4{Wrsx(NW+3nAg*NCQcvwjt(e-jEwns5Wxy4p#Uvg5t z7mh)F53W%qx|;h>x~G>f*JM{;TzBeyVGAkSg@Ee^APE=_3=$AA>gSV&#>$5;c!V;E zMGScdcvJoQ_2D%pg{22rSJ^Ir=niZ3WtFMiQo}I6MF*wmq3gj-SpWl zJ2a={^gCUxP8gBAy%kN6UmcBONOb@kzm3b~d4HDLXr9^@=I#(ZM@Na(Zw?}`+)T!Whi#lqN0=P*F3)nK|vJC0nDy^?9r-xLN3z;Wt%qFw_l?=``K8qN8;GX`4(8R`SgL z?%+$pHAub)LcedmeN2gyMTXFiF7sLnJ_rjm$ z7S-g8?V`ZhY zK$>UEaFlWSL(;9l=t=tPRYE^*KoStNU9YNdj0?$ClCs<#Z*#2Vf*keJy^jda_RCl;5p!*HsUaL1!O0Pineq+`l)}P_&%*Zv;43 zef1bxPwS_Q5xmKIN(A^vRrrX6E?Kq|(NLIam0RhDcv=qU{eL|(p zDZ({oZe2ApL~+f8pznVuqw$_H zhl0;nF7hV?QmQHb<|zZ5Gq?1xo@kmA#2Y$49F2y2Jt$N@-e?@9_g{zr@OK?#{m4D1 zS8j@Hp;Cnw*K>{z%DRQFh{Ymt=Y%zJdmT!5fzBUZ&gw@!mp$r{o5DXKwg!LaqUsBqMq8RFD5EUtXdQEwl2aqc=Ppp5aGZUk(G&|;9KYvyMvL-w#~1WL`8v}#Ah(dO++)1#6fqeB+Ez)N-!)a{KOV&hpIlQ@-vEH} zEp1Cf1i5wm$P|g`s&%Bt5LZ=n9cH1y<$LybGKO10OjBk*K_OG2^AfTbVFcNT2Df4s zWHNt%30z{v@tMp&@pDRi*k83V`3x6?CdHyxPwhrot zV@HSM1DNDLNYWS+__rXhX3=4a)8A&4pf7(QhWS6HRxUX9^Af7}{bz4Vctw+3FPzAK zh1wnONnM{We<+greIJUHSZqLO6W&p+5kJnU)LK&(U>rys8+fj|56<35dQ5e8*U-b4 zo#uL;7%P0fL~Dw|Xq`1s#d`+Yy-MtER$^7yjaG%hIAA$G%XKdt`=N6n-jg{vJIz$h z2R$<)Y_i@}?yyLS5ZR3jd4JzEZiR4jbdaDgz$}Dckh^$!!JV2B$5$b%UbZJC60dtn zZjm7(<+Lf^@xU;g)T{I}&7&FAV+3j3)jMZiP<4$3#|t5&i1T@PLtc)V$fW~6vE1WU^9Q%6YsK34`M zdv8!EH1=YjW3|3vd5xJ3Lh4QsB>+C5(k2MNgxGrmCQ??zLJOLcL`zs$$OH|CBYzzH zKpxdT=e~S_*$-g>PhbeSHA*~nz5iEoTU?6+EDv-yr&_4`zCB|YLcK0&6GYlL+A4kZ zt>^A@c)9G@S7&u_7OedjWA-zaym4%$m^ZEitZ}o(7CT?iZVdEu_($I(@%XPR50+hB z@&5$?aEpe{SPb}Ar?%-+{-?tVeEsjiJHUQk|xCklfYUJDQNUINk$P^NVYrCMPw zT8U=!$+}L9i+M}ry@-}vp(p8&Ag4p260+@+$EH*AK`9nIxoYN+so=fL;xWjUMU*Y* zv!T}}D7o9hQkxHneGvxjyz$Koi_0F+E$swf2kF2s{;(5XwYqI=DUYMbSc}@(1w$p!b|9pZUquTbKq6y&S96L-RiQj0B@)~%#$l9<{vqP{bk(_M2qB6U)=N!klzpp8{lN40rK-d-#nwDE{Gz5fWR3>-Xr;zkujV<4q3G< zG+DS`16wP_0{x-vyZho%vn#rD-N0bVvCvf7&4pJum+|`JzT6os4yHc=PJ>ylKw|fK z8Bqv`;adXtVMUeAN&77yNUp#B@r>0SH%mkAR|Sb7AiU1INI2^oozJiHGnwK-t)*Wf ze+4Ob{4gVq;zB}qf$wZJ$R%zklnrL_{bpC)4Tnn*MS`&GA^qn|=NxiE#hH>p{Y*FY zi(W$U@7L)(5&nPv6>LMDs$NSr@XzoxOXPGXDJ6 z`Cl8QLq*{_>38G5&teCOmwXRe!T;|soMr_aJNFBn#ebj0ceqvmcUk|u&+v@@*FG(G z?JpP3xd8v~*Z6d3@Z9SHu-yBtnG;*W$$l6>ll#X1xx@&O zQj~{4WdaF!uD1@sBQF$__SZ7sw=a1v^#R%71h)O!Gke!yG;icwB2gLTDvmz^XX{Q^ z*sr4^m~pZLbezJ|53gYlemZ5K>0bYm94xhdzqPnkFu0g)muv=g5lq*;D(hicjgdfd z0?06IYd^t{^ypeB6uY4#J*DkKq}gCn2eeWcM#KS=VCo)Vjnp!Po|HVGMElc>X-E)8 zPFR78+R7PiW>MVGRIL^zWi8jOcJA0dru8ssrsv%@~z zsu2dZ?Lnea0C93=ww(l1@;7k+?H8Ba=gIRBI&Cg61JlG}B?$f2QK zXn5t@Ga|MWRzCXs=1a@jfJpU(4bFB+kc6Jl`EhKbm>mK4?DfT~mJxf!Fvz2Zcn|#$ zW_N`hn^aPCizeDZJ%;0;m8M&5dvxU<}9`=g2iu8hw&)oMGqSI=>~F>|I4; zfd0uYCtecdJNf?gL0R(F`$mp1Q>WU~q|5V294E`l_dV<>LEwUi*snrL7|!74b+DCH zcQ%K>bSfpiFenDWOqES#6JSD0${TT zf<|xRwG=`%fW(p@&t}UD4ws-k_;rjRBY?W1Agi(L6``eom8cG8x zG{B{Iyse@Ie?PFR9ID3PYYy5tq(6c39R%kN-7w8)gzkZ4swfh*c-(Qe1zE`x+pYeM ziLw9-kYPl3Rt~C(HAWx`4^;o&DvHf9>OA5E76jCi7vk6%i=T~a$-szLfLoX35jQd0 z@MBo>8Vb-AX&Imxk~btY=dk;__enOF99FCKgmLH5m?RR2+c<<_Uu6%1@yO$<`jO-y zw)+8N66;;3u#Wf?PXXkkKaN}W`yqovoh`L~B=6rBM~stZ98AXNu28zqUY?H=VN~M= z{#DBr+V3kSZBIU)7+BfFTn(kvYgYv{Mz#jh%deijMjTMS0O)*H(Y?_ zh?EQW)YHUVfTT`5l2GtnMBTKB#WY$1XfBA^k~3*^h}~>7_#6pW9!59UfP%x+O!-~& zQUZ_l?P=o~Sv7v(cPp=2)XB;9S8ZMhJ5ekXNasv3)RBmZ#w^7e(i`KD{-S{XULA+p z_q_uJVQ&;lQ3weGN%W&bL{JcrwQZa`hL8ZH7j^cAT3W?R&AbN9ikFC=l%RkIeaAp> z^%v7oqt1>f$LF3p=bLqeqi(qU0=(>B;eq#t0;gVhu|qlQOO@>y;adH_UYLkn79>sY%kIa#$)yuC#3w7a$IX*k#EP7z zu@|rCX=1;6=9!u>ph$`wMzWk}1?8RBtU*utpA*6gHA zB#-9tDb5Y0mM8fxMz+o~c!TqH##u&xO9CEv8)^n3vU8ajr9!gE*{LRsdn%NPHG;1g zVenos&!>4wc*Sqm(g>%5wCqWQE1EyeU0)ZCh!)y8V=`4OSrIz7Bh9GX3~2T(@I9OB z3AwzPWyq0sM!02PW>tCq;x;RUD_D|^TsTId81Q7erhW;peuFIrJFC2tby1Z*fOX(q zC6(T!xvRFgxkFz$Z|h3hW|it`d!UXf3fVX9{ZATwYYU>3FfnpyxZ^A1O&%CVAM$8W zQqw?=tcy)adD{N8GC1MerB`$dmFf?s(?oe(aYync8pS$A5Hs%~R;vfKLU$pL#Icc5 z^FJc#FjLpXB};wsw~EcjH9X%EYA;PmKDa0QB5JRAilx8Q%?Rb)B(Mw7?nJlCfK%^s zMIteEM^s?4WO2CK1FnJQu%yr^u4h+02w1b&YXPBkXsf6om%JXgQMl}vKzv`wdG&c4 z)V%cyu00mHlBl$tC))e@YcdaG?gL36(uL@{0bY7_wFG48)jJ--=UH)+2ijayzwwUE zJu(*omP+d3Iuh)M4jvqlSICZdHV5hxBev=^9qXeM1aR(ufF0#t(2VB9C`e#ZZX@`3 zPhsynf#`7B&gv${Rtv;_=A6nJ7wZ@}Gr2+7Dk+Q>?WNYT?G7J4HnDRw*H&-Zj0>@z zpu}CGJ|XkCr%mP2^N|*O8GnLB#?Z!m{ta^KYbW!f;pQ zOP!Et;4!ea3WS{?4HIA_YH|MJ!$-9m(nqFs(v8c|hzok7ec2{#X`mQGQABA|)8;8` zhooy=9&>v{JqtyFTh-ukDelY|$V_&`GL$u$QgY7=pRGcg<4I|Ru0(p(ybMSF=bAaW zOfPesM<$X)fO}ezv$a3xhs_;2u}{HA5G3sOk#Hmj^?J6t=~D;%g!q>~J#gqw zUj(OXi`f)I({g7_at~=63ZxH((i-5sc{FeuyE*Zv=P@d=mxQMXu5x`U;6`NScGY;L@3 z2Om@}*EPT&W8?#Izs7)I&!>A=i=FM-(o(C*FRrCSzVHb95lKITF$prLp>}j!zgXFS zRr{>ul)9WEfNk?d1`}1!3&JZK#lmNkY|;0LHuSB(-JkvJ$9LPNR`X9nF-46^7`l9F zATm$wnPy6nEsZaq*aa_PUNx259bcV?b}Xwyaa`FVE+l-Qjv*xN-Rhn1&F*W$OH*Qq z#>Jy7GBaFd_6hV%wkjkoC#ER8YAhAzn3f$pc;DWdVA{10CAt4=cS*V^X(U&q`w^sF z6*;UqA23odmM;}vvWJTP0Zq|;tu~?IB_z5UCg3s)nyLpvRE|V{k=*MQI`s1S6E3irx#wdJr>4XHh zH3{u^5119l4-8~P^X>S{dA+!Ef%q;Y^}60gYRENR!q@`LhYsbc-k~;KK)fDYQ-`iM$O{(+B*Nd+Yv(~ z*@89-wBelLujug8FK8wP-&ndMbP_N1dg?Wf)EfDk5A8Q79u{W=F}@gB^CMVPP#ckG zT_v-fX>8TRHcp!5b@ID(8Ron7o)p$<7LIe0mEyy%)B60`bEGO$$tKe~3c>@lHX6`p zm*sL^5(<}93Ncpu9zee_CjCRjeRJ+YO%B~OPLwow-_8ns}dpt3Ic*qK;6(s^UdEnn(p zyY#f5-Yv=9z;lr00U>JSv-;eg8Kt~ib=_D=k{2SMDKcGNnrWoP##d?)z3)`{Gtpr{ z!oBWWq<%CdA!4>ZVtGzHfaRbB+9gPr&wRn0nUbC`{YF&M4UmkjmJ228sPaGTiyLjz zNFDdn5f(b3qI(hf=6X%wHmdFHF#1dNAfRW6d#Qc^)`PZwEU)xJ&n&NQK#4WweS&Xv z_T-X`FQwO7!x8MX{;?A;d^Qc7sdIKH_fM#8n}YXG7{f!7qZmuJ8E)~)qsG+m+G49Y zmYiYv5kNi2J{;x)#I;NOWr80@(){ZwGWa38XglKQiD?zO!Y*P%kt3WjjrfXIeG#eA zuGwwlrmSF^FCTY{|42!T&C0uSg)maVEAr6%X?L2I&WFJlrQ_MHk4waqDg_0knxJ}e zkil$`UFe-X_@Ycf$=Vti6@SmE`+||p820@Xk`8=f0pVt1btMBVhKh0N;9L{Hxewdu z11K`hw!_J)+JpmWHfK7+ez&Czx!GTvF*!rlF-jRVZHGfY=-aTmqq<~mf}mJ4q>K8b zj)D^}fzykrcd~iX=Mc)k?o)k76*4WGEUU8fOlz7$ZnV+)tIbW(-RQW=wFQcT{62$X z{;Lx7sMJUb<355k+4;!BP?~R|uupLK`Fu+8HLqA9#>TOovendQmeD)W8%!i#>pCmor947}m#GgF*%GQHJZVjwvs4uBvnZwTR820h<+P_0~|Lni6 zFL6JKiJ*QdcK3!lcAUfUa)$rimRV9><-t4r`+IL6TZqIiTia!kHN8K%jV*WDC<=MMtThO+7V8pdf|ZL=&HGT zlC`cdO>W<=%NJ^kR$Mp|^Y#(f@PEA_@{#Kz&Sdwj*%w7)3$|#Rgu-6?+5_gbtb6Y> z1fAQZ8%%85cUnH5Ga-N`C#1V0alBys(tk z+IAO{eSMOvUF?RB$TXq>@mAF7dw}R0wan2v!x*uw&-iv!XpRPIx+aqCw%eC)lamC# zOe>|OQxzh7WVeEMfCzZe@0Ym!%@Q@S%X!z)m}FIrp&(kVt`-E?PjZSfw4}Sg%2le= z9+vXm5FrfH3Qb*_H!>O6s@->c)_D8g&0qUFC&$FO-lM!@ zHaN(o`ZBHW;o`WcCcUO)6Onk=r_~iPQrfYPLD3(*21e>HIUy}Phqq(0m{ih^s>0#~ z1u~cmCEHE6869S%s1;~sLL*jqLu%-_S*9F4TPz7Pod-t}1o{#(Na-CiDG}*Rnc?Wa zp<5*|##b5qM&Tua^@UKTyCvf*T%?rr$~2;yX{<4+8xg;me@ZGoA*#@Qvht2y$yktc znty4$yoji$OIAXTUqqYyL`I)f<5PVu zdKb6?W)V36*BY<4iioGwb1gq$A)iFP&Q%c2PRxHIxm#@+C7|H;TQ2TIl>VuirXL1V z3pT=EX??=2G=@Utay_nCak_?kd8*QSDw!A$j}Rn~-(XrT$65$4#>3$?Dj4`^d4qe4 zH`@1R!@$LX4{7i3+F}GaD6nAkJnE5M=8In$=p#u1Uyjia1<6bTD5OHST(n3?6;$6^ zzv_?f=uS*@U_8=cxy8a@pm2L>Bf!Bx>=hmFnLe`=y)4<~#PX?p>%_KjL}PiwljzVI zfLH=PT5qZfu&TEV0pUiz2W^^wv)cnW`HObcBF;n+=45rnYk0N%+&5SFN^>5izYtR> z>xj}4KO^+Ib`g5e=fLYSY1}Hl{%CVdMJ3<U}W}f zA`LI=qeF!s&0W-YJVeqEvShyLJKIz&wq#RBPsxw)kh{7c#y$TMfLS^*VA!*EG_)e- zc&vfATg)Oa!laS^<^~!@UA!lra#>k4DJ_*EKD^%prxwyUd;P+fqe!xC zzO=m=eo@+%q}(oB{|->u$d5Fx*lWhdzAQRgZA>MSesPskicc}K+*T?rE4B+6Uu99= z7U4n+3ACmAbM73hNzJR_3DJGc1IoN$%D^yx40Q#>ydv610Bxz`az z-qy;meGZ^eGl!3My$?Of%Om@o!EtPZYNW`Tm1qBT?rUGTjn-R*`nlG2TTNbHy$!}I z&jgNr_f720v(J3dLbv+($N}%i_gp<~WrfgmkD9r)J5|hvF>*&0 zrvkNMjY!wiMfaF)4yaHid%!lQAAn@L9YGjI??@* zRck~a+{y7&_fgh(Y*t`O&uomx$dd{iHi$ha4|9ywuK1?CFwGnq-S;T%l?ICzl};Op z+7e@N919!Csq`FzW}fy?i5=JjwtaD(0R9Ju5GUXJ#{6NVzK8!P$!cKuzN0OluF8LO zK=?=)Ul)0}{fc(*5=WadLQK~<=`2-j(F=wwp*~nR-goE~O89OQG&W*U0 zEWwS}Kg-AIx9#z-2Rm)1|JbB_mMN{xP;>9aBuGSJT=85YDNxdWX|ns(M3eiHGF(Gk zP^WsTxPrLa?(xEY-X|@(ep0HG|5c0Ua`rS}-;}GDLa;?h?u&wRij?h%4Ofo7k^8>y zLG99QZf;9ew9%iXi1oikPq}yz&I;GFE84^fXktaIgro63()7b*Gi%UN*A+Sv zzr&iHb99_`#YCCX;xaXNOTy&q2=8~$R!9pdoMXcZ(VJp?V&A5cp-E7R!jI!CWhg`W zJNsKeroEWgGsF|NtD*bU*k#1ua62iskWQ9ZmlEw(w5ViwyG_;^rEgs`A-h@7wN8Qw z+KlHTZmM=oQce>AnSHOscX;bfUmZd(NBeE+X+{bb(*+wVTED8jY@Wd?mJOyWEZ;;C*FyV;hOq0;S~@g`SZ(t`g5rXzmEi-reI5b`5?``c#IS>y}KbHv*Mc zxzpQAGWNcnS?r_BxHwZz-}kn>-`AS|0X~dkOUm22Q>9y<3USaWJxyQG%8elojab-?9Et4w9P>OVuqx=;@dLQvwIWu zlW+V+GFL3uLrHA^A^UV{``&zLMuJsi0P`z>Z zfg~eCx@b-!dWxw-)|;WiWzm9S%F-`ar6trJND8m5Ul^S4yAO3y9`RB(nH~azUAHG% zT#LOwqO&!f4%?YAQKBz8o#@^pqTvKRn-Q`LI_v_o%JKRn8T zc}9ri(3c7*z-1mcwaDbGBgWPAurxRy+-EeLWZ93Mj`{7CZE5hWk|MckS4%vpMEL>Y zD|Jtf*fc*0v!SVGTZv%zOz(`NGdI_(X5bF)h_g3{VWJD1q_n&(A!0*Y!_gf`RAdri z6n_YoQ};jI)wlzBpirGdRYul!Q@ zqp?T&x7r?4iZXme(P2X4Yn80@El!;Rfe&rsQs$0_nG z+IPNwze3*2EYg%tX3|gZPTp?XAB2M)b)?5blPZ?zEk*ybSz~vn2LP_N&NfBfEQ-0U z2BgW^?!wP68D0<+YpG9^ofGmG|1mO6dP`&=L3JQ=3P1!2;Y_G9YRJ`Y{8 zt&0k)W?oDY<2qEAc2_j-b8T`(tTH7Ryhm#+Pu)(#;yXZ1f~k^XtAw~T*7_gQ=&ep(}7YihT&!z zu$l>wp}pg#p4NMy;^7Kdut#7R=cFL{bahcm9%MTT!K7sr7w^7v#~O8sEGgCD7e+MG zoWwHavAFSe^qnY?;=fF`Zw(@GoK8KpuU^edUo952X;Dat{BX}t_!gsaiS^g<+Pz|W z-}j>D>MK19jC~3ZYK9xKlWAO6!bOohxMhtl_NoFBtn3UnZR*~%G_UAc+xgTMoxutplFS&dNBhPq8N8edRa zr;RH4xgYPHt)C^kSQD2|4962&#{}jia{UO&c38w2zM(RR$gp!&(J@88&^d`F+0%=| z*WvkM7eJz_n29Zu*>ZjV$$|Vbi#m&r;{4!<7gLOp!_#X(kz9PtX}%o}oIsJ6gyXMw z(1TStO%%4VHYP_{hZYz&rXNvA_FRa^>FWEblrMYDx#j*qGE++Bl!KVP44bx$d^TG+ z^>58ctq_^qD2J>sAIs~`fg|9Gl@Tp0BpW)6wZv^#gwjyN+nuIQgzJ+-epPglJ zcpN$>BJUKDoOw%}1Hc4rbkZ|>@8P{WM+B3N@o;ANBW9VptWs8ZwXy|E9uRzL@lIA2N}o1(zXI()4qq-a z-fvtsN~|#9_UfYw^P@$Lt7u1D&#RXi{XT!CTM@2T{<6?-C5qlkJYxZJX?vdE8R zI4&HvLMw^yNq7>;11_`-5=O09+SFnG7d2cQDg}txWx@O{)|gjp1Q_qIjIlJd$-6En zWQ20MnX3gDKE3KDGc`qd$q}E6sf5$fkiXR|v0|^->_&R}-weRfG?bFgxx%g~3A|A& zlw|aTSB7truiR_Zb-yR)PExGFIZdvTOncgUL005FJ}?2;h^ORNG~(K#mP{66?~>|> z+vK@F9pp(JAE>~eL)C9;Q;v*%6=L-GRBtVvo6^!dJs@6vng6kwTjRWZBQy{HPXAmB zP+|^%yA+)l?!4tuZILbHH)cb4uTz_#Qv~zaHKbtdNg=|+8@pS0W#zI%1PZsjL2kx{ zVUW+{ntc+P^A3R48mRs7oh+-r%i&`l$OlW2lHAppeou4?5Ag*n62VCD)5#HznY=(? zrl7g=Xs@_px8`%&ANFIj!gUZx16#9#QP%HJzp~KPKI46r=}(}`NP_p+&BjNW@mDV3 zl(QpCRPahl&QpSJK+$tUMa*i6+0HPC@*Wb*@2H6EQZ6L>pogwENzJ(!Oj2S9`~2Ri zQo&6&@|0nOo@NkJ;`d_K*sm-#d&Qy0vzh0imNCK=?yyu=m*=BTz-WEG7)#^z+ia&# z?P~g6yUV(0mhnTPNv3;BsC~J`+I1NKbFTv9;FS|ht4svW^<4|A_;Ah-VIZh>LJp(T zwtT@9VbHwheKdM`S#sgk95hbFYyxlpQu`!d(22tTw`3pL>EXPCqQ9FV$hzBES_ zOE8C(oql$aItJxxmtJbjPT3EQGR_;_8f{J`n73**)BoIaB<91db{&*Xj7}wBcU?|m zZ=rnC(Dck*Ov(=^$bAR`k%DBPK-p!2cO#gR{!%Sj1eM0H!UwIPyDyj zL&62cp-AfO|NYVb-H7wI>3`!JQ9%ME)mNaJ{W&bqnK7$>nuf3hmIKHtP1LQ(fK|?| z0n~2ggNK%XubSdjBLA)GDllK01VOXJ`j;mgLpMMF2T65X%@yQPlf?TL0(2Y|e*iX+ znC5kXGWZMhL&ztG-iN+Dkm(t`zXH?{Q#Fg;58!Pu3r-Lqs|!t$K6Y+-iX;PEp7ZF1 z@YDfTmLP<`30@FZpnCv;?-7VM9JpkG>4LPsh)tPk6Bz-n6;l0+{DyIPY|$qIVts4~CZKR*Au2Le#Gu za1n1l9|4RN^bY$#GV1_FEpU5m@%Wnbz^efcPH6Pev!5>06gd>glWH5-i$F=ZQ5@Pp ze|Eg{0@?zkogTw{&+7IIrGt_wh0s_|f%NbRcrAh7c0p@!?T)^V^w%k%^fg0=H6lu^ ze|MX=1e*~}$2-5%`@S3=i=b-clV>q})2n|P>A>$NL>*b?GOP>+qGVCXG1dAOQks@+ z@%?z`g2YNH*hSpDr%b-cS$OGGd>tu2h8(w&r86JQBC=BylG;^MF zAQ`IzExO|%NKb() z;3^al;U7^}r1@GXD6Df-p7g(wi;EKmP+{H*gLckVtULbpJ^ zBrY$Qt?u46EC>^Su=qxk8lya8)+zwvcRfg} z#!XqL!K~u^w(7B?q7f;)zWvs$>cKLK`u4u*$#qbp33yNWd=x*D1p%`ds48Q{2_ZqC zXQuF=O%0JF{0&38@FWPc$>J%2Mo24xvBoSKY)VzXXTl}ff zY?I7lG%1W3(`3e+)Z%@D|Be7Tr5XCZR$zDX;IIxnKi4h}-(Xc>Dy*-vH!yNi#Nhm_ z=6A?$s-XBK`Og)28cm;IIPbMPxiyn2@%bM{fShK?;Z2lhMiyZjy$AVTV+b**%b{hmfX2k@#x(Dr z3ugtf`xiRB?Ql1WyS~U_I0{TCtURuxOaI^|mR)ZlFEFm{g6Q(04CYj(Elhwj0!T-( z*M?Y|c!6mv^*AOvhH_P3e-?++zmKmFNn8;XMzX!_)r%lCyT}YjRJd*o-U)x+xO_RF z`DIkPz`qG96Tg>1a|fc&)^DCkqHj4n(rDwsq9f-8tKyNwdcLBOaUgo7ZB54LG?;3Jq9>kSQX^hs5IkT2=1w7)TYfsZ$ zZ}T?KbVH;^PUebzZ*r#f3urkG#o+XLAN5WUm96bd$d4^zu@Zf^Sdc1foDiXM7!Z97 zw12&^)E9hUN5jGIGr$uDu66T1Z?q|Yiwkph6SbrGguzp&)GgAKiT zYxe2MwN9ie0qAC{4S{pm;Qj-;KMef?2=2VM&}MD}ebDM8?-p?QSGlTfpZGsa;mdWT z?&Io{^+5U>iC7J#FM3GYQ_X>wM1`wAd{wDuM-MK~!W@?|`XN-?1b&L-TPLuGxr5Fi zu>ph|AK`$nfddYnFavj|fJ`>We-#)dpiA_IqZPoE#PQD`o(Ty1V~Y=70}~c7+Tac* zf;wOiC`h_iDwa5dgm`reJ4198IOaVcyudR{q}!AbL}~WKCk0CXevP0bXaV0ByKMpn znfyF7VO3VwaNkJcp=>NM`=$z^ErctlqI&alk0zOKbH7QkzOT#vmKYV;Z|(cKbXWaN zg%p(~mQ6A2igY6( z4bmbd(kLiWf;0#s0xBV;2ucV7B7FPDQO|kacfP;B`DUJ(GiMyc`~Jms?Q8F~)?T~( zL&{R~S28_{1AJ1%u1PfFMUH3FeB|Iu7%N0(gp5t32RM_7Gm1Y8hzFK8}=A^~O)PwKPKxivMsl(TJe+wXt7x+p*GVL1&laLiD20Jj+~rQ%VJUc4_324 zy|$)^k}v;2v4}6qVwJB*WGv7%jjLE9M8@5M)|4WG`y9Go%sPRzh+YIm4$b1-#nmVz z5*&CSrcZev=VQ+|lR}F(cjJV8CvSh?c!>_f0rc%0^I3*5!3L{?x`LY_7ykG=Ovv+M zm^p&IQ>S9p0;&vko@qcX?dkCu<%FAv>5Z)34@8Ps{GE?uG7IqtQSw!!;agSRWa_fR z4ZpYsp-)9?^A`k_CWg)~-ivD}+OodUpZ;Xvlyw|SMc3rx6GklFd&bn7ZIrGsbO9Vy zKncdpJ`ySs%6CkbMgng!-)0{-3NLvN<0!Xxk+=;zf0V;_OGSzo zZc{7=ngk<7jsJC8<5r&oy*e%nH*;G6P(xQ@OAjDlzutHf9$Z76xA zq#bbzgY7CWcv%HV|BV4;U<-ic2^R?K7JBy6#v~U>NnHPSr z>;*{~7$YZv7<_#v%`h@G9I9kITi(lGp{j0v?uGj*nub&MCIp(YVhLyoenrkE#Z4#A z5~)oLhx~h_`By@z-C=f;HWU%JRL$g&wnccB3aw1mHe-gQ!4U1GVv zXQ$ZHvcTDUZivkd-LOdTPTET`6_M<^!@N4Jsmq1bn723gQY%7uiE0U#h_u$N)$^Wk zTfCJB^XcaHmG4Ch;fEz+ryh!|+M-AjujL5-S)E_1vkn-Yd@!Eq-NL;wFmfb1& zdHX;&j&E%eOkSxQY{led;Dw6trvN>o_NEN^Y@aZJ_q|#Op zoi}b4c+O~>%`s!K;$_m}vyDp-3F4IFDpOlQmVd*L1iB<3o6oa~9Q2EPBEYGiq#z$o zs8>6aVc}L@R88$K)}@b%+yZfgoeL&&tyPZ#V*@}8#br5&HkAqYdptOrvBVBvg6&k` zjZf?Ms!93{=iejvD5D*$mne_PNa8irdbl}k7+$zOYMht`DRph5Ddf%Pi>aB=Cm*=l z3CPn3x@dpC?1E=9w)I&S?8h=H!oR0Xa)6aU((>j)Ps&K*B_5;T?fnhCA{_8w;p)fo z+C749AzNKA(9Xh$wd#si$a_Gcrqm=8a(zb3?evzG=FQqk1q~KvTTB1vC(6f=2E;7i zST$NV39D~Vtu_aDKyOM#_#|NkKO4T})qkJ&6joXI>1?6(Cby7T9x^qiTY)}t^iF;r zpN|t-G40;Ib};d>RhGV@>-tL^%a*%a%}%9UQ^YU*A+grFE_cVJqb-_`*mVK8Rxikm z4FvAqL}&cGO-)7}f}Q6Rog7P3AljdyEcKmrj#bhDQJbD}D2O~}+ zw^!(H8u#%;NBxp~)F@LR@c>h-Xd#n720y`AM;U0{>rJA9htJ5iXS7rfp=LljzYryc z?O_gWhIdh(sNXBBZjwwlya*utYanL7Of!_I8E?SWMDzN#TyoDNJ0@;` zu=8TfqF?HYM07Wa__WJ?u|fi~&xrEF7qx@BT^k1VSGZN8!z?--ou14N<%QVv1CgHf zIoW8#pS*xaiX}l@!@+2H_HSaZ7fiSs&3kG>m+D)J6v!Ne)VB3%-9jg$Y>|u`y;J= z*3j0KS$+xp@ZfNYYix$rk)2PYVb6%bYk39^Z^T%@R=-Mok>|E>;r-8fsMDwKuFQgq zJ|h{)oj zQ`wvPUga#DKVYovc0wb3TCy@}C*2l7xT>9YStcpr8Pz_UH>HBtgGVA-2TMU#X@GxU ziM&U_x*pa`7%+NRKXf{I31kSK7$-Lvs<&T)dWs$yHKPT zNK#fvgAJ&LZFB-AGnq0eD-+&=o=s>Ri-cYB4}oeN44F=A{W(&5scLN}Haa@!r9{(> zg##_u=BQ;0?-ls4@`Zz5wfAg%815;~LX;L*5~6faoZgg%R)<}uIq)u9OSMAA%>y|kh9sz-0**71} zdEl+%Z$Z)a1qfIbQ;g(AdK;&0!VYY6bIfRionW;-4on{WX23z%Oe4PqTVJsDca&h3 zgTfpStM{U@dql(27-v6t%4hMc|&V2?k5 z-4+JSdXaq%)k6o{jA=&T-g(b++2#-m5svdH0m4LlFHY@DQUax}>wIr4J(`!mR8A5a zkskwHbVCn|MhqN;u-TdBIOhmr_@to;$UB+`uN9{k>CQA4Q9i=G0!>xdMLyWvPhXL; z5sV(}QCu!yUcsh16GPfZpU@u!=pr@MY3^6;F*idOf)mE2B;YJHC$q&aZdW$3ITTI& zqXp=qM4TosSJvWO;Qgrn5vS+9ii)4o!Rx>Zm4YY&LWOsLA|}j+0ROGJxO$4;HZ`@I zq@UZ2G?av!Y6|#UMPI~F3UG!mOvVY1vj1k(?cYGBuVU9M{8R|MHBc@&#oiw1DAAxS z$MkujEVJ)o`x_DZ$+05_8vxco|7*O#MQgGn#eRl|xxSutIO^y&HxKnU5@&^PZt~1w z7f7RfuYp^yM@gD2kUIiQcw2Z+uDnZUytP>CBx$3THw%E)G+=)(HS8|*^pl*D-auQ& zB3Y!SA!-OjDa-b-xh^Rls=x%n8M`@bEin;P*#5WF-_r!|5NrceOnj zy`@OG4$N6ePvhoQLmDM}j)Aow2_bPTq7m#%0i=X84-jV&{W+zZCWvLNBWY$>*&~ss zQ~%aj>ILi=;U&JL;FasHxFqbtV_378td(A@F#jEEL%9WT83~loQT@$%{dNt78*)=W zRjBM%+n_NPO9$HTAC-Brp!*1LI|T3R2w`h*bVVY1O$V_#5j-CLi1W)=dR#->f|aQP zIGVW12K2voDpt5Ab1BkdSH-rRCp?REWrn+MJSDG53SfE(^#diriM84I8ej1SBA*q6j}f`RBd=U-%L)>6~#sADV7&&1C)8OvwJvl^yrwAalFL z3crEOXL+Vei9~V{CM!Sc)XW}9QsxdnPv}4$ejb92?jiOfepByHvBJCLR1!>HPv*nU zu+6e4)F*-gOe$8TUlMt$-QOT2k1-SmZNd^HTh#0K#n3L#?a4@xsH^r`qEJ;S@6K?G z$xB9N?$1h-itY2+Gow#&MBub7SI3Eu@EB~pf?N3BNzgX6SD0b=TGOj!+1 zf`2pD>}<4V79x$&Rxsssh}Y?o;s=|8OD@0_J_)yVq7m~l9)3iewZnAprp%D7v=6D* zgwSiR=PF-Q%jq=YaVn@BR6-Xummk-tv1fYiV4l-omTiQ0?m`dYG&{2X{vU`6IU~u? zs~Bw9zt;59e?wX)`SV}ewE86I#3;D2vg^fFgmm$s`edT}l6MYM-9z=!@5TxFNX|(} ze2iu*EA3UGZPtr>d1zptYCrU2{#p=7B{o8+c70TowL z+A++1p90?rFzL|6m~p}Ouy*3RR%lsHGXQ2!f*29c(gj*8>Guy(=ZDp+k`{e>Fi%M* zo#CA%tSVY8iUo)5^u2^F0n+t158uMt)WUxW-KTH3OfK+;(6d0gtSa8=`saI*=SqTJ zWn%@F08MTz)#p8I=Mv<;LUuq@R!Qu_L$r{%x!I{WqwP2IRXq9_0M{UB98o z0$GHQ{oj8CU6=p+AWjzI|1TeeOBEJOyRQXE7uh&N*U*OoW&ph$GI!2>Ge|T4T??7; z;NWomzdJM-t3qWCsFGE%dH}Dnfp-9t8_JXU35>&h+u?T23ldA0!U#>%ad)Wz_yoQ~NFSEl4hMlU z$n+YzewIToV0FA4Nf7(E@}<4z+LNWu<&z*~9pXg;sNv@9h8EColV7II(S5->W(YJn zVgRO1XQhdja|1y^)&0=tZyZL2sIqNI27YM4$pN&71g=hFwZ9**ngK*>!cx5x9jDGuv=mw*lU4 zPZR~Oo$33Z?$GDATOnS*43{3#|K}`ae>I5(Q$k-i`#Nj)fYHGs*f=ZRjv`^Q*xmP~ z?t~~#R@DX!3+e3*D8RR`B7+!!8)mq7m4EdoP>={Uk?`yrka1S8pHe$pea-3ZHUpQ_ z>tG`b10$S44WuvxhH*4tFYRMuT09Fx@(g${GUDFzc={Q96fEuv8(U~0aqqzgFM7dvBc=66crJa5Y-zyF6G)2=|b*<`+e(jt8c@&!L8^GsA zF&DRHOg2VD<6h8||cPQ_mmBy$Ry!vtq4lkiIVPi4*j!)mIC z>!g)_+(<*9p{+Yi3jc=o0t0+$a2irLjeZzk(G)GxFGemd=es<}>O&QH2m_OFXFH(7 zu?arnE)GAwnIQ9DtymMyy$oCqcjR5L1Ybq{~+`;B(M1))DXGudmbJ zD!w{`SN^o0_u(2y)%iWI@!O~%q^sZ}Y^-UFiI3#u;Mk=eyukLK1)I$l{P_q*M@G4x zz1@kibU=IV@JXx{bKu^*(9PErW&IUE$!~#Cr$3lKR`-7*u}DS3mO>0zkxhdP9Wk)Q z&K87?Fy!|wr}^)ZR;Grr<0QHA)mwe4EX5A@2Jy>y23#znaVyHl;~3~3mXnC($pggl zDndzJmSXgSFB(~?KzS*#z1{nD^rNjB@1up`0T>%C0RCp> zUfVrkW*={no#DGLht+g0HHd zE8s$cr$KSeaLoqX$@QmzkTa?&uj>Uy$asm)*mKWowg*N7A_GHKhdS?`(X#p4Uvc4I zD6GsA1118z0IcJ*{~}q%!Oq%LO7`Mi+@*tRFm3?jL;MtbFud3YX2fb&cncn-;`}cd zrQiZxX|Ad*5QVk@;Kh{y7L)mP$?p7b){%oRgg2&8+h(R93~}HGHw9$$Gt!rhSnpdY zB^6Zcp1zyw4Y_hXW9+(T{g614+`%KIc_Fac<+t(aeqx;w7|?3Z2+jn_YFaJP1|fYm zAU;X3ZV_^jL1YV7SVHji$aR9D7T(ID!3tQdskX?_mksp3p#mbDI)4Ht9I&72H=41v zZU*mOz%s%TS?H*tBWnv8?DEXdGmvLm29MOt8_<9)k059Qhve1*oY@e<1+*A^jz3cE zyyl+aBCvv`e0_o`59KnLb?I|E>CF6H!hjSso;8ssSbhf_m!=*%R9D_Yx z$_4%2C-Oh}SlLAk==VDpl#mY$qC=_g^H~U4BUS*zUHF>w4zw$^hB(CZSAi{*2GsDq zZzPl9OU)WHeU(<>l3|Ei1Fv3vzgTnk;Kw(;IW&rwT?arN5fmX#p|_U7pjRhTuh0(H z><*aLbzTaliTv_$`tg;x&pWW8xymY*)N*DK1qqN4_P#JbO~R%ft%%=?Isgu$YbI;K zSGqZ!OJfg6AZZWtT=E1=45;p~(%>&bo#=b8c%zhvOVM6#fEYy~_C>(awM*e+#VlQ>KRDY=dLu7I4L0 z;hUy3{15vIpnVamN}yyYVY?BrFcv}=&mFUpT4ycz!2xAc^Z8G41A?`A6SNn^%sGLtca%7mrU=c6*_R>k&KoZz)dR zl+`y5Eg(|6H(MQVHP3? z4M-C0-qVjNRgUx8k+&um+j_hpsD#f#K5xmYS@!{~T2RWYw2Qrz9QrP)uXH&=_byU0 zd3D*zyF(`$gUrpVPJX6O080?%&Kq)Q%+m8Nc!ka7bReK9E{L(r7ha8h{I70;J|9gL z%yB`fMpLoxD@_!P9c>z!(Q|F@D zZqu%)jD!$=mIMuvggFe{k?{UtZdbO1%GkPr;I&ma1kLsyqpfff*lb{-V~iqdGDwN& zo@G-LsaT26lQ|bQYr3^y8>LH7GGc)Zbiej&`-{TM}2;%T??2kHH5aoz(RvaQmCuAN(uv^cqcuGAYs z$7O66&`(dMO}8O;jvxLklPCKT8>1=p)qIPo3HtC7e|WI1aZCP?)!#_vo(lA#Z0d4I3dlqEQqwBpC(b znLVaWou}Gto9$JL71Qv)mADuUMsfLe&sAyN7I2g6ycBB{J}l{Pr9!mH5u6{qvSs?V zRPS`EJ*`c+gDZ-rVDwm#L!_m}UzMT!Qd?kz7=p=Txv$*52?t+PBWV*EmKP)9=141N zfY@P@h=7c44@lem3wl%WX$ewz2U&6gr7bD!ccd#x`dTph;vIH;ixLJR-N&dnbGd+2WN&Y4wV}3|Lg*_h;K|;eoUgrilyZ@4B?Dn8ynts>*c*JU#meN<5iGt9+JGci*#zo`Z@TWtB#{JyHVq+ z@riqJvm-N{XxV)5LoXrkle@2N4#{pXmQD2)p5I^JvntDzmqfFZk+59;es9*hzsu{F z6^A*0_>w(lJ)sK60QC)!w0&k6>3jWYeo#8vfG?Pw*8iDuSPPJ*<8&J7&;a(uo+`lk zdr^b)Ol#rYNm52z_cP6sH-1b`aBIseo6)z6zN>E_Bkl;i4IMoA_ly0zT33Dv6fv{Q z`JWAsJ~h+uy+bO5e0dWb0;8GxA5Oe<(t(8HzZ!k{b#l~Q+U>K$o{)6U|A16P`tlg9 z5Ah{c^_<~{TyG1LE>w=i10jCn7T;ov5ymLw+EHgsdW8~jn;Gw=+zXxxTR@GEjpRu4 z5FHxdl#H(m0-0S7|9$GW8okba^cc9LQHx^9WBD{TGdy?sMBOKAM29897DEx6%G9h+ zBZ|z)sT;*YvP!-lgE$WcBj-#p1bXE$AA8SuGdv*shI7+PJgty8U)|}vUP#R#0>OD_U0}^^`YH~ahGs>ub@Sd)J6@@46n^dfaS>rCoPXUrMiHb zQp)MUpBI&>m8|{Of{F}oC=ZP)68TEK^b=XLfDu(gxxf!Dw}uV>5zvRwb9jNgl}!9J zr&@D}&5psCU`KEDXqwo|h9-&Nfp?*tgKxFdQp;bE1$(O$0^^w>T>g0N^l!mG*oh3ry@SoLhNUQO;|7q1rr?E~oiMxaF7a7v`Ii9e zLHVms0Tz%9YkhZqqoB?#d_WSds*(QPRg?oNg)EPp*MAJG3nuU#vZ)!3aULex&sgO9 zIW9-#o~DW##ICA-!ONDOhuUtOupnGWZy-tDAdJ_$*5|drMAJ()rpGC*i|dA4A{Qc9 zoV5$#C9~oNK1Noem*s|$ac03)@(*#b*ywe-ovRY|f>)_^=AR$;%-qJcGRR4MmoZ7E zMS6>-17|nE4xO?)fy#i-3{8s?>y9d=KBd@oO5s`?l}ay)!+ zbOV3peJj5;y`AH;8Rb8jo16PHcTkqrA8;!=_4v95x5n8gn-W<0)w z`_Q6&Qo+P8KmLL|IyR-ge8?)PdXD=gCVqiyXEaurD;#bHWSY0@r>D&v#zrzueWRlj z>0eS3%MYT<5(MR4rIigwP>EpK)R#NMb*#CYzQg{wgJWFHD9PO{qon6f%S?-Jia%Wz zC#1en){usauKF3qeCS!CHc=D{S>EkJX;`G}=oD~8!SS89&QC;`4$yQn|e|er2+DG}?|Lre3s&K04b`#~2D> zE!Ouk)s1qah7l5ESt2sIZ_-WR2F?8+S)JS-{BN&X-Y~iCyfO=&!wt9AESkr!P_!aG zoI7lB3YjhK(%7cnvjF!azP2D3>Yv^UwWX`-aW$dcxoaa>-TYqCvU^fW^T8BAoDEBK za>yKm9J`A}DRZ$U5y0e6A?4!+RJJ}3bTJ{&3`DsRs@TpP!ot{4if zrV$KG1Cha{Mh+~xJu??l<^Zr>A!u?A1Qnte3`q*7 zk7jZQxOoYUh$SXAmPwh1{NrF`wCPdGRiUkz_t8unE{+7xiq{i9ePf-t_v(Y|K=?%l zNvbQaGas9+c9h*Ky258TaHF^a`wo-wwI5SAkhKUes|*7@nJL`yojE6d#y4R^ger80 zZ=Qc|i;*KX(TM-_#jJZwk<<}aW>o9KgnV=X_))EpqgDpf&uw^nvEpqG2VzoZ$@QaO zx2Ouf@CYp==5BO*!+YgcQTcLAEoP)YC?z~s8!(a;YMerDimdNs-Xv@-s-JgU-Rxpp zEG=-dF0C14&-P0a^>x^FtIr{xeSU`bIx-LL?%Ndc6fP01ffwc6Ty`*Nr>HYVt{z)S z=_N@~TU=f7pbai@wkEBBH?C&-^H*!!?isrsO6P>*S&fWY*G-r!S<&rrO~%c|O@6P- z3PaQ|#=@2it<!zn zwR3oecyX>@DNCPJ_|9^EpdpoeN|xg*OBUWjt`k?)od3ZRxWt z#eN2>Fkk(w_mJY?vqek3%3>R9eBYmE91QV0=&xfI%DBgOxJdqFCN+pv9t%(&8GcWf z7spq~=nv(wh)SHI|1#%dT>686;jS|c&H(I<%SZFBUNW_=@pZF%+SBj^?=rRerR*ko zwksN^Ov{67!+6&v?maqLs=*j0Y^3}`38L>>YDzy|S`P@dhIOTpNb{(N#N=*o?)O^} zCYGHKizYi@Mz|tIi+0*JS>D;>fE8`VA2>>?iRG>s=6O0M(ziZ}5OBU(Nn7SOvZr5` zpy>4%i@cv@8Y-mi_)eN$DLsT+RL+vC#t?P(wZk5-E+Qe44*cnxFo=i-IPZn$5Efe0 z{h;u$@v>~aLjQt~s#A&G#X&S-FVUzq`A$4coc4yIb9>G`P@`g4`-h!(4;u%WYh>S0-Gx;1$I{{Dz9 zQO;-HG1fIe3j?(Dh!{6QWURVr`L0c4BVWV!vNx^0D-bnd;oysT2MzeRk7k77@ zQ`pC;hQ3v9n_2~%c9~3kNfW}E&buB1xt1jcg~6UQeK(Zh zDJqGdMctL@-3TpjI6b|PvoJcVVoqMYfg4qkx#Qc8j;nkv*<*X$NN>nLj`V`vW3Az2 z>M}!Q;ZJ*uTmD)2N+=5(t5yx%V#URKUUN3SjV_x3D(LHgP4ZEeYK%q=jW2H+Tm>bD z^Pn8$XI=GooX0q&@Eki=K6OnU5xt3qfunNfs(-Wq6f8T`RJR;9<~kbU=@$5c_1xJ9 z&Y{`LDyk2k)?wqy+k!@g;&`TT&kt7QoQD~Uce8LhjjxNBYFF@AKIWcn!8DW%Ul;w@ zL*fMTV|uzJdUdMaheV=|$!@5NtmxSs>1Lt7@W9?XXZ%32b1(z={DhS}X0HW@0pP-VQ?aPaiz-Z8 zHl^;2!nNlbgRWdHTOj2irWcEzRCAF&)vbyTAjK|Nrh`z{<@)_Q%)afx=pdEW%T*l? zmRu{Z?c=3z@IIK6lJ{Ey)Nm(#pF&wbl8<>%4aMEQ73fCzlhUv<==f;xrE_FA z3;}qFlQpmS_ysD6tN9eDhdXs*uB&{}nY0Y)X6iDJw%&Yf#Cb*Sm7g@tui=3Ymu9YZIp(q@P#R@tyg!{6ZQx&#O6?@;APPAlPsIzGR6>5#~x|0-dH3;wbL;%H%C^0|v4ZWcghEM94Zbks zP^8^S{Ur&ZYaCUO5Ff5h=7j*0^0PI2p_?qWC?8AK7daT#3`IBrsU<>RX3U2=?DGJD zJ8Z{_Z?GDD>q=cyJj1$91_J8RNBpVISkT!s@I>Rs8LWzEvj>lw*>UM?UjMvvoOLVt zfnuH?6b6n>!?!xWGE|-_8WOwn2}drRkZ!+TIy~&qc3x(lMvhc!PI1CdKhko;#|K}_ z-YiX?<0?9pA^-i4fxiwo&ISvi|IE~ntS9QlufF>AJspKd#{r4#TW41v1X`Of8_u zJU5(lN8=m&Wt*!ROX=ECFOy;>%sJ<`uUsE1);JtU*K5iWA#rL}88jN4<(yPl3pTJD z)Y{@#T~$k-r*O5KoB$tzt|7LvSkDj8WOM$Mx@dB;T_l5WHt`e%bPrC#vKJrzK=*9R zKgaDgH79KcC63Saq;-+TcEr2Cb=!BgxTJ(yU=NRhq9%I*0uyHOoMyitizm}Iq;~XzhOZs)G-@3mSL_=21 z;-jE{Y9sSD$$7%xfO3Mg)4{Z4-%ACDw;37%BgOjJmXMVITq z#t@LaY%hZWqv3A^K}+}p{y|QrfP+@hslU$SV6p+xfn@j1lr5E>Ow$*SqXY1rsa2<) zZq#^VoAE1tqd;fp%k;gbv>^WG84a6FRhQlO7SrERhEl&E0jsn0+VaSSEzziTv=?8Q zCExWa-j?Nao_0xM!rEuf%Vrg>5bytx=~y3}bEVfjcn6H2Ktwa>(Q7`5K`hwrL8hH6 z0rq9YU|1ihG&4G>pyYN-@ZVeErM3|`e`)TF?{Yv_Ki5sp!IbuI2)^v0Bd%~Aq*54h zhele-wjqr_DpyX$p$rMV*khSe&t7EpC(uCaNWGPQPYkh=jQ?bf*yzhlLh^PU{v2{d^*tKRYJ~W#HEH%GC3WVU57E9hEhIEt zCRTr?ZW`2yySAKEj+2n0FO@M*?|i{B!b2?<9G&{cSi@ zykR0sK1@V#^;0zi3>2Rr+{pdCI`=%tgLQTCM#y$M9n?nz$BvBdTyhuaO~8B*lze=F z&4^{vFL+W76j=j)G?xYs_T32KOnEBa`&X|MLV#%0@yv%3Vf!cV|K|o#rD!ROeP(@FQ7{rlc$UT4pD( zu20wqy#h5b0lU^IB$sU2jz*r z!nCNfjQ!s$K-R~28l=BZS3OSuyUTu;*)34${O`X&%GW=!e>|;S@!C#cq~hKH z062l+oCm~sQRiW#voQOd=S=JEpY{ooB``Oquo3p#HeiQ9H(d&ef1>gG!}L#K3`>u2=ISEO-m00RxQ-FKK9=rU0`1+Ce7ShgM5G0WTA?=wS3LtG3l!&UU}kt02ClT(kFOsPS#sbc^b;~H zOTy$GSy^7#=XJIoD;NKKjs*l*V=cWYUF30uSdiM3V~CO<+I-;2h4e379aX89egn*t z_5>z@*kot~GMb9TGh=B==E3imOT}TcR#5cx#mke|J>Jyb9)bxz(FV*u;1LJ;#Es!n zq$`;FwNP!C|Ms#BFkbHy+zBNaoc`>wvNKRNTzm83pXDKMPmrWD2Xf;=Y=oE_p#CTp zv4_z|GGTpdT_PfmZyT;A04Rk47@z_h*vi4gy6X3(oaLO8B|JM(D4TGCodjY)o9P17 z#n2Vn3i&NE-R0t`rXyG!tP%4_)z|b~FJE?kAt-RCrY@)emh~&Vr9c=iIY|fT5D79G2w0z@P7o061M_$UzgyeA0R2Keo1h|04!T=< z|4`uB+8Fp4>~F6iMr#15QaDc$B_CITVPfih6fBfANYQ`2IDI&nls+5w&k7&U2tG!Y zRfD48B)@+pd9Z@$d)C2m@iEr-Vv2W?;mm0-OOaJmLFXdG($*s{L6%B-lA%yq5cw?F_Qn z5A}l04`6b02dvokZ&_t>(CV3fAo?^A-~}^2FZfQ8pTS1RARS=k4T|aWe<%?nEfI$m zV}ZNKoGb7w#K=DHzvbXW8a{2&;G$q`2MnuidRH(yW~PT1m^o~s2H8Hr6f6o-(8An> zuC3H9n8r1VyfqL3`0x&jptLu7-*+P4;u|dW2wuh zVd|6RM^1yRVupG@HXa6Og4L0*huGqfh51gN^m+^iF*IMS&$h{3WjqG63o}f`4UXoW zBkSKgrNXEH|Cq9DIQ^a5KhZ0eeC`+>+2kd(d@zm!6i`&YJLL)JLWJmw&+j}qee)B` z7RH7~Tbb0aKyPR$q%#nNgo3Dzuqu8+_NROQ7v$St{tiC2ebSF zp52^7Aq3)`2P`}Xr5j+cPx0+1Y=KBM65JRyq1+Hh5^10GWyG8h#74|4ILSPS$VP)B zYoOg7uc-=plEn+PwOf-O=<5AWr{tFiB|s7MvzPkh>8EPV!H@?QFZuP#^_8}Or+QZR zsxo~y6i;2e7qn+PQE3kJzJOl; zTFmz+`@cT5_-{9n$q8LXX$k8_s4JI{VrsFNG1kIbbExjB|8r^AkV~r?aIZPJw9nX` z7yNeFxNpB{d)teYjzc(d?pcvvW4Mm0|M&T z<%ha-kQp|7jo!S*nLJ&{VB(s3rRl?jsfRni&td}Orr=v*rZ;e>q)(23I>L>Jd})mL zB~biFF4_LX6v627XQpNoN(&wji;3u4pbZ=-4wFdJ=lrQJSHT{xJ6XcQZZ&A^AIwVB zv76*N;Pp(~hPfJYEYDeI zUU+W@p8Sh!?7wX7=3TzZx7LQ`EbNbyzJMALk=_)S_>gjQGC635x~!peS1kTPP(s`& zVMoV5ce-~HE;V`DlQLH)qrG9~*08nUPl>umY;;(4G+MWI^@0v4?$IO%qg>m<#yj1~ zHOPBFImFd}iL}46e)zntq9cJLLWd29M1Mizr+M(oMfeXMmo=R{( zWejQxok4~&i%7)e1>2u@g%9tFw~)p??Bre96M*3I?mOoZPTJ|WP@E!q@YGlbtidPU z2n2)ZdQ7m$Xq}v&9)f5C++vW{GKKwO5x#&=6OR~hU+Y>U9r@+{57JCys|f1xkyyk1 zPI3C)SY}fH-4CagLcp!3MtUBwHyz&m^D->8!F?oSTQ~JjqD06v65|+teKI;Zk14s^ zd-oxSS@{TN435>I$qr|V0YUc#?OFO-#Opl7gbN&KK>viyI7DO~#!fKv4TMp%p!wNv z$^ZQB2#$6f;NO1Bx~Xq}^0Itwz9l9ByK z2NVmEpzMwNAB1#~;jurgpWx=ZklSCretvuvq zjZ5h5(fQoK`|1sdSiKM%6NxpanpJHjNVF7M(OrxJMOiNREFe;GKpLq z-hAA4+;13cbms8r%&n|Xdnyqo^V($TNmn}B6|}F!{S&YCuOYS9Q-S)9lXV`? z*Pa?^$|&Z;Mt`^q(nXFR0dU?LehYxD76@Vjhr8M`OMfqj7&5wl-z+9RG9C?Ke%;Oo z<2=2+@WBZV4NeveOQ9M{R<~{-tV}+a3UvmG+mh}r#;WD@%lw3Qx zs`1C|5a+t7@j(z}Kgf=8wq$eY+-#0dKM#WS2=_3)Xian{QkaMY>%e*7=tR8q?QgFy z{8Nb}vD>V*Ur_vKn>1k{0%b@b-@}aTCYo_O$=yttQn&@xLme~%C(jBmDwK8O?qvPW zbmop}gs#uM`&-idEpDc;2K|zBdVEiwQX_kNY#1m@9;fH^Ivf0xb)aL@s{&8?LgE(9 z$?H+2&Xfz1y~l<);NE>VzyAA1p((=)KTGnmk!gt9(0^5vi82Kns=RDdbC$~@9RZn@wi7C8K6z+#^R zL7YGQ5$u92yw~d$e#fx_`EEi!<4yjCkbizaDIh;L2N~*Z1ZePIro+UIkh=NccT^vL z5`39@_1W?5o5)9(U_**M1Bo$+97&~Iz%xTf?%}D@-)T8PssX^>j$Mr>Sxd-Ea;SVx zL+opT*5*Sfq`+2c9JZ=ua(VzPB*>@>hl{5XcPXerx>{7q!aKu7v(H|p-mVz88{Y<# zlP6#&+N*h^2!lRFv$mHtj&fJI;TWdATEPt(<&XXi%q&P?E@pF&Jc%zn*vKe(>*qJq z>Quk*mbQc86awt{%yc~cv(~s_*{W>%*Pi@-H$jaqvW9K~J@Iqri&|Aza)a;D;XV|s z4u(p0S9G$)=I{B(QS;l)uo`ax4+o9`7BF6OJ`T5h1$Hzt<}mg&*&6my9As*0wZu0j-8~OBa++49R-JCl4ST|i8IA7%8 zyg`8Q>{}wI)sY2y@-feXw@LbS*NA`bx<6k=S>}d>xc{)ne_^tIWH+pJ&HVk<-+vQQ zK@HpKZ;AY$59EFZ8A%<*EzI9v`uC$M{tv;#pR3X@Sc6ye|8iNtczw7n{wGEM^EDxL z$b*!sJ@@y+fBy|s?*Eep|N9I7dn5n*M*b`xWS_brWa|Get^cvF|96l4f4oQb#4ui$ z>dC>(;+2v7{Nm5I2aBgQ{YXV>pkzUYw#GGMYcb#4Sw%*8i}>5VZ}OJj zgZ>2(yDmJ{UgTLIts~H;4k&V@B@vwn(x`qBAd=W-`yFeo6_Fh@j)00EJnqfEQ?-+e zU!-(NUV7m(9LKN!0)r@#3z8S-;T(W7LcguT5Mbg{@19=!0)hqrZYq$;toa}JIZv~+ z008){?O2v(>jm_76)oI(>NjbNTZB(^_Q{kJ11lkipS|h}fH^xqlF3%|v|%Vk}u8v+O={LS-OOR}mn{b%ci}%vs_t#Kkc?0A}g`d9Z1MbJ-F7-|oNk zWT7BcWCJC0il~>o#>;twk74j?pS(ZS?tI)4hU*E$05&cOw1wH0@RLf|?4T3wjlh&q z?GVhohzMFt93q=B^bpLzXRmdo(te^ZjE{`PAPE)V(|ncDMy=tFnf}6H^9a@s8wmGc z+i3a+fInHHX>5=M`5Y7}T6WT7`H)7wT!#)eZ;O2Z2~@i2ZCrk3K<5*11WtAGIgcNt z+g5h~#`_Z>OwXAXNpohTePvukLoKtA^tMf+YjXWCD`C>qU3#U8fEm}8 zX@b_g=r&5P=8V6&C49Sl1mrqp8zgRrC+NO=6X`UWC@JtE;rgw>v+hsk>^-Sr>>AeroBALx-Z+=>7L|=FyYA zzHm`&I?F&)WIxC({qHUS_yLkf`|7h+_b5`Bx)?J!Ii?`VhlNlR+#VlZc7?|6SEo ztgxCC&lf4)Gnnrq0q68nRyk{t8m-9uPnbkbMp7rGgf2|-n7uN|0k_M~`u2`VUPNhc zos2SOi!I9zX4Y9bpm}hba{oiz1HFVpVOG}h)mY`6U51qS`hukZn|AhdkVl`s`bq&> zgLOI*+bym>=126XS-Y3KIO2V5Tl+|shweeQ-AF`6iT)XJy&(c@{}ON`=<(bT5j zzq}Qk9pD*>&OO9Kd8Dh9Be_HB9`w8_$qeS?>0Qp)T4bb0>XqAv2Q#i)_?}BehQt`thq{$OnZII^%wPd_C zbcA!uy9AHyF;jSy`5qjaiUJy7c2hR!9s8i=$jwdV46Qdwu)y*b$^U)^|_H0qVDz?4EyP*!Xp zF#q~Mk?@zNQ@;jRE@de(mQ_&{2Pp+|lcXYeKMo*{ZC5Np6LbRoR2z)Pt%^6wWI7!q z=1sVahX6(~8R6o{H1p98hCD-UECd`J zofJ82uiOKbXG&Hz5CcZ3cfL+E>0S*N+%sgida_{#DSva_eRw<}iR_>S!t zB}7$U_N8{p#(%w|(IvmEh;t~xZrw>lX^qyYF?t&ejg@{P97injPYZ>*Cl74bCTk7W zmg@!t2%YggIZS&aqYdi90$$532c%;Vh0O zzwl*hCeg~VzV7J2JZoK$;Qo^^d^M?F40Lx$#@6hKBNYmjP(G3CX z*nVV*)hB0SH)*xb&WpZb1g}5nx$N>k%IX*8gxxjpVk$>zN;|DfZdg6DbN?j?(9vg0 zFe9Ep`!w~YCrv547I{_cftzNs`8GgN+RwwI(Qxs*!i~THfZCPP^Xcc3jdw0ixceCD zT}e0gfzJdn0{5~A`;cYK0r!e2S@A`7O%?hG7e}lV`Uw~=!b%fUEfa$2!@;i0h=L)! zeOx_*+;lTu;pTB2#<|AmiT~pWJ_`qtS#UFst&^-)qfyW9)z!tmlv7e`LaH9Ngikx4 zW-Z2L325JXtsTLzCee(hF-qf+;cG=7tFmAg$grJk#~gK)$V#`1t6Hs*?gMJhA@q8j%*ipJGrZDW2=D*k4kts~pU&UiLbMBw!$~?}_>_o4+3Hjm zo7(YF+!QWLgK}^161m1*y#CjjVBSos&!)2ggr5dZ4;-}Yw}xVz?`KGU*F7ZUKOu(x z0IO+y8&R4bR+tU(^WI`Zd85W3nZT_(sJ=J<;^t#W>%V?@7WJ)<_*F4Mvx;3^SY`@d z(WC+_NqL^i;}O3Z1-rF^214pdf)EWXu{&qkiY1AD^{!%a(jem>v5XR=w|YY`aqH4q zR_&~tUC^=5;APHq@~D10Q(2>!^EUXJnD+ew_Ou@D>!dnYP>kvH644&h2(eLy97_J! zBu&z>Of~eZ!)#`MB)li*bA@8T%nB1ED@+D*5s5GP)SUJEbFRG9WpJ-ifN=)29*@8b z+GI4B!`*=r&qkl#xf9!C6enKTo>=8^dfNUt;;yq|a_X{P(Uv)9m_s>|LOTe{DLg0^ z2`D;}9+^!@(R9%!J=dPn+v)}4^7%dY1fkLA9vg${r!02ik4ykCl z0k*4WzFh}qzg~I)BpB*W;oKO>4;;qIxpQ$7PapIC&tMoqIDTs_SbMK9igvp84Tf9_ zM}qP0p{Ayr**uf^*0M@1=5ke!xk*PP*=XtV-u+p-Y$n6a+Q+Qbn&i*YZWC`mP466J z+e2*m1470p(cgK6PpfCB_oKD0Zc_{Mhbr92dDb;zMf!&NBKc`)tIqJawe7Rqs_kXL ziv`fj!_7&)GR6Nt(+>gtZ?$1AI8v89`tZ!=pTDsg(towlq)!}etu3OrGHaF69 zXY-539U96SGBiR8u+vX#Xo+}6VPu0F^@_-lh5G+#@2$V8TD!1e>F(}LBO$FIDJ7*K zpt41fZWIwvLTLn~K|)FaDM1=B=ng>?6i_Ki*+@wvd~^9cM>*dZ??3Rq&-vkuGd#lH zYpr|T_ncSFl@oZ%p^L?F;X5*%BUn2mP@B`tQ5(2PJn@g0-Ainz6Y`G%P9Ve$gShzGL~IU+K^nA`W=J*agV$`--2Kc;IdMy9gu2RVxn) z)$&w!YH<$pwIYBb``*u79`fGXBiP4}4ZGh0s^k23%S};2AKr@A9RJ2Mi5PQ$lw)M| z0xlqN7w097?@~&RG(i+$vq}u69Osg?JOm41_?Zu-qqQ}@HYHKwUH!p(v=h}&#r9y6 zGmklK`|$q2d8;M<+t6T3vWhJAG^Ov@m$o)LMq^`v!25BqSBim`U%_3($-238g9+9gETEy~RIfV$5(!G7) z!TJSWTUf4lqA2g_4BCQ=ylZT2uo4cSlsINb)HH22omRlHDgEhpY~MFio+G}or)(#>gcW&fLl`YEaWmz1qp&yrtBI@L z3s0dlChxC>u^w*0F>@Upe!fXNhZaSI2`eMGactsKd;6d~fePPqgz==a@#Z~>A?i$X zL)FkPNIqj8O9}AY!d!%s%n}bLWj^R?KBDBkM9SMzpjZk;{MFhdJ{Uc6@)g_dv+<2* zzIQ6!s|Z5qoY!4zgy{1jrh@1f@lPZF-Hv?6JvcS+>iei^5q<)NlF6EFMx{!vVW)2#i%{d863x(jH2@t%YaGUj%i#0uziRvf*8uMrww1dc(3#~VAahK0P1_n% zNIfCX;v0)co&-9&^29IDfRW*``>vds6}3Kol_(#&u*?D`hq*a^>G($C$xv4@pB+RA z1~Z7wFJgzFof^f`I8v_0R=N6HS}RN#Z59VuhkUVoAR>@-1LLm)6XthUT=qr%c1S9Z z#b*kvzQC2~eADRq=#zipHd=cPC32<8JfT@2KHfNGhpJeQvjOMECUlj1|0wEyZ#r~BupQ%s8VJ8cB9@R!1_{L}%t{%lhZuGc2nFq|1Ark=%up!5E75DY zN8GE_f7@-178&YLIt2+V!iG56{Jd8Kdm&Agu0lnvgDDTxpFcpmQwI|{AQ6goiKYpk z?6Ro`oe+5#RauBy(J*4WnWYVO#gPcYC({;e?>*Fq31-(*uBcAMiD`(SJeALiNoG+= zTw4gg8e1N}z^S#xwKNXOrLJvdPkhCEI|^1;ksb2qwNu2IVGel00pX5TSDK*9s(>E3 z{3%xekEg5ds|&PFor_LNBU}adNlBj6K!cU`4o8x_lPQi~5UBEEok z<$X=le`R|AslD`{VsB(F`(HPKw7!(Sw~rr)^L(HLLqqmWki6R*XbY9Jc3975cc7`W z7RbzxD`o{knAB)7TC#lzk7u&q=vHC$`qwmGoZiEHmwm3!97>W?ym`vB{$Fr=t;X$h zqNwlB14(^4jXZdb)(j9nV{<*P&6hl6 zc#XyxtDc*7)(coIKBHNW?uzY&q(8kCevOiq6AR1b0CHQpXCF+HPu!i@lg%3M%GD&s znc^O3PD=M!d-F!n+G|?GlC-}cq!irNjg_$ioF5_{!r+DrlCO0rL%O^k6f`>IXS54- z>n4F-mwFbpCJnJ)xkHo}CbzrD3B`GybA*qxYlj{)Og>@y{=9GJGeMGnVJ7NCQWp2_ zs7n`6v9w^^>(%=+719dVNbR)@%Am|XW$EL%_Ys#HL?hayflYqz6R7o3=bL`syR6Y>>&xlH`jtJ|dxJ65F(uz!TC=VXOcnb!B!y>>19&;7Mz7rX#QqaVih`c(K(;*&=}i1!Y>uNMPGpl6SwJ3jP+OpK!o4IZnQ{d z8*p*PV#RA2r0Y^+RdKro?N%c3OUwV!dS)cBDo6n zTkK&Bzc1_oQ@VE>AT@dTbUEn#0JnYaom`=C>;sKTJYEuAFb|c(jkbM~;Z)bSP3O&^ z+yc}O<=QC5s}?%!6`z*TM_W02wE*va2s{6|;pG9?M2MsvCb7dMO<>@$k<0H zR9y5|Ax$Y|jZpg;KZO=s?@fCutY^)1k+-8+J%=qOWjJ~bD;fFBRLFcq>^_CI(#Bk*F#1kl zPKFI70GW?T?j^lGO=_vwB9sHOrejyt*?DgIl(G#RIsH75i8DtpwV`CGDwO!qIH~!{TAOEj%_^?go{nUpYDpi zLpy@Uz2ThB4c#W!g-&Ez3Tv#)%)cwiAw-<~YWEra6^OpP`hIVfr*MRf$tyIKFqbj6 zF_u#mI<1oQ*A&99=CiF8Q2o~&N87Hf2o6Y=W#BrXz|r&t8R1*r4e8`j&d~rW*|ihI z<9&&GD>L#uP?~SRISyNJ_22!rHP$WOOK!`9wx6?ey(MjX?V;{`uQ~=zG{i)izgAmg zpgd!qpt?TT%TOuwX1R}x03~=&9&~pSM{nUOnu~#9`>*Qx=$xTCR!}o#b+N0TYF#c>O zZk?w%zD;jda1`ov6L}4TgOgRCt#N1ReW8f7*S%(I5^y z9M%F;7Dv7!Z2=zEI@_R%=q~9Q#KJL+Z7p~J{+g#+FY$&eECA`S^TER*n8~ZTcjTv- zP2s{2XNd~)BJopF{Dvl**@3J5H zUB8<(Z6T0Dy!XD6b_B=&eb80&!KHol9-RB5-1#r~`nU@Cf9*vFm!m~E(y_valm}f| zypVPFUv(c~o$p~^5Gcv7{_7?B@0sBQzv}<+wcyjMGC$`1>oNeWDj|X`rkZ`j>nIeA zl$Qb}@ag}%kbm8;|EHcv;~`ZFyk<~P%J?1lnlh^+arrIxDQ+a1_!$0K_5oL@fr-_r zTc{M!M`I(6EFc4~Jr+0bD{Wss_s#t+pmXvNP=a`aA<)7lo&L_{zd!tl(jE~v4YdX( z{^CT;slZhtEZ=_eHGmdm4p~L_OzWBsX;NT^1@TKS~MefS*{4U_j_@YDL1>Z){d5&mcmP^Z@+lJC@4cf-Q( zRe#^#0B;&GPs(Q<$j<>eCRsj@7>eHsd~Bl^yn@UM8gqPBLjCP3kei%gWpL)wo4%k+ zRQKQR10O&+U@A!Zht10~Hb%Rk&qC%mYPoO*>O0(+g$t~Mxp~wbvVhGCsrFs^3$7WZ zHU`e6-#Y(L`la}z&wvHxnSsD>vsV!T{2iK~+-H9Uid1P0lkcmUp!&S=={XzD0K`ao zgN&9EVOnY$Y%hD9>Q6gWs*`-e_s2c(WEkB4c=4CLR+ODcJJd7C%p}B21Qi#F-QL#n zIAoAUc=v))Ny_PCWMdPEBI|(ZG&1_^9QkLCU3%#bWm5p}vKqmMft8R8{leid}`Hgb@T?p1#G%36ftYP$?=o@7$#gjiE9Ck#Hrz(4@6YD_>`xKTq55HZU~(|Cvq)FcG?`aqR3;v3NEJQ`n~JjS`>dDt3d2II95(( zGOkWsVWZqy>m}4y~-x7 z0ZGEy@6SB_42affCmWuAD-3&t472ZzcmRnyQ&bU#mhwDaLx-hqgn*W99j?o=q8txw=?_ge#jao> zvYa<#8q^mmj=$!;Mn)##bxoJBA?BWgMsf|rp@K`KkN$9y55!7^$jmu9=08C|ZUu0C zZbZL&;_rhIDb@5CJ%l2I?BO<4ITRdSImAE{lkj~u#L;3JS+s_D;t3{@&8E#n4;&vm zZ59uph!f-m?>AY5v_Xkl4Hv!zjW);BpfVHRC4};O6LknIAEF}x^9dVxu3#5(>Fu$i z4+=crdJE+JIS09|312cAqJhUC!#|XI3~wMvQ=-t4ZG=CBVZTvR0ap4^gDy$6jjZ1dOg_~ahP0hulLESX7eV|iSu z`nJ#tA@_4Qio|aE<4c;$ft3qM=S4C_1};GSbA^aE%^J;9-p*Y@+tA^= z!A9hnROGlf2uE0F0rf@dTV*uUU?B7wgMJ{YgvQH+5%HWYATk|9j9;^8C1WZ`b~;d8 zw%R6!?J6u7+;0ak9{6yh)Q{Jo@gB|O;ubhAH1;1nKE^!>TYijEP_XQ_$~~wM)wOs> zngaS@hu1@VKDYX0?H~%7S}Q~FJX^Ann` zvd`+8cHPyJnZyk=tV(a-U4e0jVlES+#A9ZCv(Bpf*tq8ql=b=5l=!eH>v@Jvkk+pQb(I$ZX z?G!VliYd;$9tW*U{X3PzjGQKdrS8dyJe7B4pd=C_F9u9`V~0sTkP;s|;umxs`0FF>9p3Pw~8NBRyVLyGtY#ZY^Y|65ohJ zoGMF>Qy!hZwT><|N)Jm~39Hli z_Rm141d5>~V;sE~fV|!`R8f(2iYBI1o}_M$UKK6R{d>M-0M*M$sz7gU-P~b}jSElJ zd}`XOeL8*W+MGpzySj+6dH2u5D-Dg<$N;H;nE4m`jppByOsnhJ?@-YL?<4KA0uwFZi}9_7;u zyh<==W7|rH-7qgbc-8fL$&R;PSnv)ul0^C9yr4f_&P~NNNvfbvEUX8e{11sLIl+wh z88Ig{kj3{IWQHG;Z-ai=VA-sZ>Pins(z|f?s|5j>yv@yH5n2m8E7oX&8;YEawic~# zOu-6zylekK%8ba-UZp(fupS2l{2bhr_smJ(fe1bKlVuy-<>{Q;+nrg=a;R-7Fm@h1 z(R0JSM|Ia+xT$Oj_7E#dy84S6bQ0%wfsU}HWDou2>tpBKU%kKb*pOwXPjz@!+r_pb_! zVD)@O^Yj~@6{>4#rR=V<9|+{MDafVr;omskeK**=8;-=b(;==o;3<*bZ*=#@ZwHb* zZr;XfhR`C!pjwbrEvNi?pJU6)LrdQ(yE|F5GK9(N72?%DN>e`k>eE=C_^`bvD59}6M1r}EyKd2_{Eweu)vtjylj#;H$`O} zy*hOHnvEdkx{Rz`%DIHm@Zt%Sax5>!jNidJ$B)bfri35tV*wyj3~ulfiyS%mk6!?3 zJ1e2_!`mis-?r>>_r4UKf0w1X@!?}-sauMI8p0D$n9e=pw#paqk_$=)95tao#g|U6 z*cA-f0Az?9c2f`(#+J^*c@Wk9%3(Qk2KB6#DPg_zaPR`n3)_3r*D#e=Gd~^wVPG6- z1-^66WUL2El6TW=7NpslPH$G7)7JJ>?o&$ovF>$JoC@`9=5RH}kJ8Y*bK4F zqjtx~&r}?fc%~H5pa#J4+t&Q-y|vUw=1daS8YsGJg`?{rOnOiRIZWH;?AOoP2Sw63 zq)|l$o76aKd4^(a7{~Gtj-$%4SGiB{Fxidvw4AXF3?}r#L7!8Vk8U8&Zte{yjA?%r z)A~)Tdi8APbYfcvIbeP@G+IPmrByMMw!SOLTKfwpv4~R3(mxwF3&MJy6(qM+> zjOLzwZh`ehLaWLuJ6Xna_?*fuu_@Iv#n(HHWR_MVzGq0x$f4{GQpByYJ7V6&yW!?; z96vB077Ex<6n|#9dv|-ixmMu=?{o>FO=n1IA*mOu3X_C1-^0l|;{23@goU;FJ5|Y8 zvb5Pj`)6#Kbqa!qbVr2HARtibvRq@c{@yy6PZDJ@M8qlkLx)zvXPvsA+Lrj7jg8^{ zGvU7^x_&?QhT^h+|8>$A%}P0vZ^vz$eTUh^JepK$#rBgU-6siVr|lm3a1e{pq)`+V z>pj0e(i}NHOnjn5%<4)!ZLD%!9BGj1Y!tt@h7!$dP94^U8E#p709p7+KIQ28IEZQ~ z42#vZFqqT#&h?5nefPf7X`D#$weZ|I`DT{ppB`&xY(?q&Kod4JpqzYCOn6%66Q4+W zxZy=Cn|Z$H5lYLbSL*4rZO3VtV~5>#x%N*k1%~C?S$|ZPQE72n%*e!j$Uz zCVZAg_B?9qDXy+-^V~H#Ru_m^?5N$%GgZFhZsO4rz2!E5CFMim*YVTK05b zu-D1>PIM%8IJfmCF%ed&u&7J=>2JwIi{9DA#H$e4{Xy}3>fns5TAqqzlCfoY`cnA& z5Vbu+*Dhdw*-edy12fXM&I!iW(4gC53)%T5f(=s-cC~#hewI!0YMHbjPPJf3`c1lw47O%;h9& z0vqqf0vbdXruzbpZke`B?$qvF_AICwWf=Jd61-m?A%MT@KYngSz;p7!T9?QCJ5HA^ zNqXWBU$y2kXH;(|_KMnJ{OKe}*}nN@oc~-Tcv|y({ktppwA1@2saUoQ{dDq)AO^=HdI%^FYn*<2D&# z539fp3`+6QpF%m{Gy{kP&PWx{@S-|QMlT2KA6je$W6lJmA9lwG`a$Bs_SPlRDnYItppmZfH#u9L200%Z4|WP8LguIM^Y6CU zVp%hV#c$@Y4N%m2m*9us+MTE;u&ojD~DW`PDuO3VKr7XoX3#a9!DHfV6To zz3y3(Njpmd`725D7M|(YeHs~>?Zj)SypjM@76-=s;rF~Q0lEY^*CSr$TjhDn|0VkL zm40gqZq>f~(5rDBCT5SC#pIFkx07%4%Z+@^34a$En`2EdV9xF0!fMT$W`pmR_l#KP z9taPvfiwp1YRXJJWTGxW&(&{$TA*>9P4EL}`OZJuf`WY3I?|0x z1Ku00seWjr)R8F8^Su?{rvV&!8i(6QefzOB&iO}dc%$zX@67Y%U9gVO&aLY{^7?ED z>wf}KNqW}IXXiwWzuu2YbqjZG=1u70g}iU@>1DDiI@@NYQFa?zOjXbL?DWa6>uRvw zv~}um#vvJ{xo;p|YN^y#rlT^fbz<)#)EZ9jt5yU&D}e&#F=YwufW*$*zY{w(L85EB zY<*i`%^4Uq^)arEHL-`Gsi@wienm2#jZq0U&c==dwyOI}MvNkM<2YQ}ahjIV1q!{M zlP^0LyQpkQZ6d@%*DQ#Y3p07`+KERcJ-!=V@3fi8ssI`|1^%mJ{b~Dcr8#SU2Nt5P; za{~uR7I|@cc-wYlf6h&7KyL?XND4Q^CPPY8TUN`S+B>FhpM`}UUmkclgE%$+ckrfk z46E$g@8r##*h3GnQud?Y|G5!R9pVPOie^(5yR%|`(1W=~FUem|qnl|**iEn$Yp?K# zy4OC5Y>38+fK;-or^YVwl;#zH1w(BsFPbFQKgl-x0qUS2n>nfDySk4?x3TXjgX5v;(CHlQkLGw&lGh)TCm zJ9wTZZiO$cwpeCa({1?|euLK@#0#_hlC?Jer(yonyaH;=40@&=2HEhBD%iK8gDXM1 zFc0V6RHAtvb#SZI%}__u_;0iib~GfMqwC||k9O;(_POCmyc!sUIZff{ajlqk@&`N; z=9-?M%(hB%KZ$E2^G_7#RKtZ&V%9S`iy&#uG}eN5qW8S8S9w_r_RvY|?A8@p3*ko! zo{eZ~1EjNOFuP+>8&SsKw+oD055*+maj|eID$Q4*@M(^N9yg*83(!CA+k9tJVjBIk zlrr6K59h`P!6fMXUQltzR*hzf7}Z8lY^#QnS_E^r>^JdZN*YZ&qtCnvKh^{kHrw^& zpVtoFNT%>_VU;cdc$PtnF{h&OE9lZ;4k=G5Qr59&510RNDP`S!Fx+8$-_^@Fjpk|6 z9RTIDY`WW@${I3)`aw-y(&a=#r5F7luPSZ9S*!y(v$=+p-M)qmrr^pc|NX$;;}b03 zAYyc7AbZs@lDYb(s(0G;N3|{r*ulNa1RenJ@E$f1QxCwt5TbtlQx_#$C#T9BJB&v7U^~k|X)rBqTRaA%Hn0hhw2F{auf(5zod4u$o{nqKv&Z+lNkzFZS}mkw z6!tQ=L}XzCkYyd%TqyI)Z2p3ww1n8_wzIrRQ*-4d!?!e@`&=LR1xhZU#66U3cCI5R zxTL>DYg%IbN}}O;qR;ddqq3uVicfbB*|z~C>&m~NNRg*tLO~FYie(85pO0KMhE@$f z^Z}YZy=%zV%y!hXb26)jCv|5SmGCKrqPb93RH*WHib>xCHH<$Ig9ArVN)XTTu_&x1 zfI3Wd6+%pVI=n6&gZ;v4pHr|nw8E^-r@572jLDXR^7cfX$m!aBdEGK?e( zm(g`uRcBOJZ@&n|U_Ts@v$#ZZYp?QDJ#&8rPrw{k&Y3>_E7FRlWL2qOxl&Hw1VDgA zrXXPK=O5=6xO8M7)p7lfZ$LMO?TUI{V|V%x z$M{JXEeY?~-oWEq!W()fjX_ZY%GVh-xhx#$9^^Aa9OjijB=c{r2JL63X*5s6X|JB) z*Wxaw!E~K>4#DQdtJD3niov_=4)VJpEAx((xbG^3ae(xH<1b54U3fxeUK?L{*5cz` zf@?3H>+>p{%iI|G2LcYjMkTkB=1vjm^qu8T|13clVq)`y=fygqrISCqV>=BF5m`nL{eU* zR$bru8<@6tKt4sC8cTWEgrKEey*sI;zWXnvUX&*V;$kuaha+Ci1H^AN9sv6PD#&~& zhb(gV9^A`d1k@r?ho|T0pl)T-AvG+yE@R2rAdND&pQ|e?oWvOU@`SA<fb7Gy7NKfes^K())A>5gqXKlm{0-<>rY`b06xI{m%Y(J!U4zvL2_^_-SecwdutHC zhZ|O8_G}+~y0yHA`CDodquvEyNTNjJ+QJ(S>6eh+xdX{8h*_S9rWnyggAf8q9fBA( z$n+w+@n*FhwCkrJs1&hS=_q76!pwG%YC}n%1zA45awkBd&;v{(un{9*_iiDVD+Z6b zxM=Zx%lgBOcRh+ZM_yZ5@P=CROtoyNGnh(&RT#+Yrw|bd(=(|#gL2>d#?%3w3FdfB z!cgqwt8U>mloEj_2g4DD6e(6gz5%&lAUgKGM}8Yo2!J76BNr@1lZ2+aq+w_t#7qdv z1esc(fz6gmQKT6%Web@ z14!YL3#}Dcw|J5o~Q?qL64j<80Rbc7U@q*6 z@-rDfY+uGP`NyLKk6bwfL|K|YVtc@O`8bGt7qYGqOFaGs#DwY=?%u#5Wv?&Od-(?v zN^VLOBVBb&NIM&kL~g0duN8_4!X@xNwFGW)2 zcCblnI2$r<%{hyzTM0(h*tnR~Kh(>VPjyi=){b2c@p`!RtN%ey^O5yC7z4DzVM8gu zZi*|&71s7(CH(|(kn=#cy4i9Qxg3VFJBCf}WGRWrRlWe=WCaIxD}rDy?#vsK5v&|z zoI?7pxYYG{d?Cu3sIUevH7v6AU!up}>Ks`b1vH2sad932=8e28YPa*1eieEwe%z_Y zLYyR|1I9ky!usgE%wQ@F8eeS3m3V66=`=_KU!PQPY=rOvgXVUl zdl%~uAC8}``A>%4@6$0r18TRGYx@8TY=iloo2ZH}T*=F-EuB_c7xAZ9&hHuV9@t?81QB zV*6Wx@{Dt}@>mBng8@u?AYSMiJJ6Ox!Zs!HY)&)+Nul=Hn7a9Z!TBClWyTJlocY;M zgvK%IV~+xPQIuDXqv)m2%YM~c(M$iG^n_f%V-?)=+hvVNxL|1DJC0m=<2#cfB#UWc ztz@70o?jCvu8F^@{`=J!2dNc@bH`-p_@W=LA(=5NT!kxd)snKCt)@ z>plcwF;rrC@ycxjU=R&uzrLiLG$h+e&6+wsHYRI0lzu0t7RwB_4c2O@SmV zpt3+YzMErBu+bX3D)7E>1xpnoRw`J@esIE)@&Il~dGJPZj$mj-2Yhpopad8MjL;wB`)Zn?=1xdd|ku2Nv@}QJ1az-<^ z9E+CFaz)Fbitf5B!<)=n43Yo;`0Voq^AOqV0OfA& zKInz`x@m6hl1hey(#9!JA925Y`|?%d$Q=-fHAOfR*c-<|P{$gnS<)Y?`1*2QB{IDm zHu`3?CDwpHKPx9aB5mqVm7IgDZNksWZs~FRfYo$qrePw(ha>_K8Pp*dfrEpj!YxE9 z=VN51!gO!knEgOv13-L9e_+rFMzvmCEfVSW3MYmsyMfG z4J<1|5F{{M?eqyw_lgucO8EP1IBt13E1ah`E~1=o!bDj}@24otCzflDB2M9Gs$=ZB ze-$5sXh@&Yy&ubP5A}^3g9GV(<~e!BHgY8NIFir95-%65`cz+=I+k+rPg&Z{_&$$k zuus`iGOSGXR@KKqz6z?y1IidAZ8_YJ3kk|NVfqRKZ;UR*OYo0{uVElPGqp%t{vKek zq4rcabkf(7jxc7*0qNKq>~fmAuEx5U3B;6MoVu0S^$Vnn#QEFLGf%ownrd2go@RS-$s6sGyMo9ls@HFLz*gRf!pn_Q94tpzUOTV$j4J)b--En?&p z;NZ)`A3TF~nbcbr*vH8;xA^N%k`c4JUcaJ8-ycksLKW}Yp;MwPyB;REm zue77+d3oFuZ1ZK|${rnX?+KiR#I_sHY?x|vqSr`%Zf)JaZy`UjYlL~(_%R%gXs&@& zNXrZfCamsfO~pLkJssuo5gt-cQAA%Vl}ijm4K}*Y+hgg4`xukrC%tr;@>c4YxDMr5yJ zy<(p{_bq?1@MDn4i|bLnRKwGI*W@{ARKqB#WKdVmHivv~kV{GzBe?HODDEdcEyQa| zc$Z;Jz#uhtID1hl>53}J5e4C6Sne<3`oQNux-i07VDcz z5(D*WzStDe!9HKeH-5O{EL=~>Brt679D-w2k8{PnRnsSRfx=@!((*;wIv zaBRwdM_B*2btkSOnr4@qpy3_aJELX7{PxYRWs8@mN%1zHu5-4gr~d03*f^g$hrR~+ zKIt-V09=LrM`fc}4AvwZQ_P3vok%9S0;}fV`|1wbzPAB@Gv~uImo5a z_Pu`yyN%S^WNP9~D2pyJ%!k=Wd7CT$?&Pxj$Gyekd zbrhRi&C**`99GMPJcZl8yu0}PreEa{XGOPobejp+5E05!S>~A`1GnhXq!Yh#P0Fxn z@ZC_=_mrEB61`Uc2ID-p3j2Ba$w^SG&kTa%=QIiFyry0}TV!t^bF8ZMWc%3RihS=o zqGxmE&3sjjz-s()%v=h|#)Js54<6i+6$F?Lo0aCm#|36B<~63qF%$02E}>tb4eCD|q?_d1oF z`N@0x6^Aux(Y<{|548l|4exPeMm6NE^ni+z>9A_Lr})G^w5{vO#+X7ai$MQimTg0~ zw06hS{YUw~WkibM0FL0 zEFcYPS4^$#Tjq~emme^+42-I8XWiXo(xMq&EZ+@`gNX&p$oR=r>l%KWyCx-Y3u~Rv zc6Bapr}AW=+sCgjQ%`eW%XsbJ${74g=~!Qri48 zD_^a^4U>n!sgL?p;)=7xOJ81okR};&KWail89bg1GMm1*`Q5UWe3&egZ>7r{JVsAM zpjpP(VGN_CW$7&6;c^&m=6irk4&9ynJv&YuG^w$anTT@OlZJ*Y3DO&nz|_m-y7?ka z?)HhBlr>@n_c|@)eSp)r{~B>F(8Zj&5)3tM+7PQL4uO$%3D&@U*O1X2Hk(t-&-(;@ zGM^}pHSS%5bk`g8lebme6nb&AQQ@vEa{5(gLX@QD*hn|_zHR)2mSW*aP(h=>L64jh ztD-^efFW@C7WhIF--R>&s{0WN8!W1{WfhOy{V^7E} zz8ulz-@n1V9@3L`w_~|;*wT`aB56G%56zy>5NpzB$~{D<36>2VY`qdCi>z@B_*SO@An1fDy6-zhz0!yLRS|dw5q`~?$*kYE zl;mAI>AIJz4R1u?SIqmT@%R9#Mc;L}T+wKw{e>72Ah34dGQI$NdMxrJ^|aLSsJ!_%}nyUW(l+IOSJNA3f*! zp`TXJV87?;@lkB*)*|QKL)8xv8FF%a<;6=7LrA)3lk||EfrwMS!Z}_vXPp?7xu1b4 zYxU*0^aII{uJk`5sG-$InIZjeiRSZmg2NCJhI**XF;5ytF|lL^v8v>prA>%*#AERi z{${Qw<|i_|AvN5TUd}vBhYnv1;OxcX&)&g}xVOrl^^ndB=iI!9Z)8(TT)7)`>@65~ zQoYWgLZ$A3YS%^(OO7v5fx3yRJ;}!ILo|hz-BShEQb)3{uxG`}qV{*hCirit_e#=i zaZY$ZhmlOjht~y|^{}+7@)=nNJvqro+!8+aPFcH;bp&_zzk z$vf@&d>-3=#@le%CPHYX0AqF3-ZcjXem5D1Q8<{MM(X(ICT{U>e}de554wx)O${3# zstPMtk|g;KF~_+6P85vB;0W9R>(C8^Q!T!9|3I&(s92WW%d_5hmz9Ab#* z%kVqil|Q)o;9&VMm?vd+1&B*#83As`+3ikDvDjj!-qu@`d!5eO-nFYysn~DEpzY^= zsrh;=Tc$If=6!VReudM7KYuC^7XS>I(92AmZhM3Cf%lT3&ynF$0SHttuI-o1>BA+o zvJ1uj8-?0o!(YKkLG;SM)39R@mH? zm0|Xfw}%6LjI9;9%PHnw_(BoYIN(c~Y1pTN<#5Bs#o~1o05J#927G_@(cd@Q`KHRY zIlyr?mnXJ|%dJ|_Rs?j~nMaa7QJ4IsNe)^GgB#B@X;TMJJ(vggL-U=yU9MlhekIPC z2&D1VB=N+tyd>3HI~(2pUFc4YIF{VA1n*d=a`EQ+GJ3`bU=aE6RMnCOl)Kgr?Et3f z$vWZaBf9Ig0nf(af0n>}XT-u6{7C38L zAFEkfO`g!Dv@=cP`SMxaJIKm_gGXNDtZ<9%gxa8g;=$sl(z)A;$JcKx(Fwmx@y{62 zQs~@j*a#H5{QT;hJFB3^8s-b)$*~Y6-4wUbppd2N^dI)H!`XwEfwAOgRQ71Syc3M^37wPstd4vg8Y{c z$KL7u3p!SXyg&2CV%;j+jyo_z)aI+dkja^Vx~q*_exl3D97xXmKdG*?un3PkemvSp zBL5e~fwg7dn_ucucm(_TebO9rXRYkz&O)I^4 zv@1aVN-P3S`tFV<9jSJHm*TPT The ECQV implicit certificate scheme is intended as a general purpose certificate scheme for applications within computer and communications systems. It is particularly well suited for application environments where resources such as bandwidth, computing power and storage are limited. ECQV provides a more efficient alternative to traditional certificates. + +The ECQV is identifiable as a simple yet important building block within DECODE, as it permits the efficient creation of certiciates that contain only the public reconstruction data instead of the subject’s public key and the CA’s signature, also resulting into a smaller payload than traditional certificates. + +ECQV relates well to those DECODE pilots in need to authenticate participants according to signed credentials, where the issuance of a public key is subject to the verification of certain conditions by a Certificate Authority (CA) capable of verifying and signing those conditions. This scenarios applies well to the pilot experimentations ongoing in Amsterdam for the DECODE project, where a certificate (and a keypair) is issued based on attributes that are certified by the municipal register and then used for authentication procedures operated by third parties and based on those attributes. + +The limit of this implementation is the lack of decentralization, a problem that will be solved by the Coconut [cit] implementation in Zencode language, which is still a work in progress. + +## Differences with traditional certificates + +To justify the implementation and adoption of ECQV in place of traditional certificates, here are quickly listed three salient characteristcs, closely referring to the documentation offered by the SEC4-1.0 document. + +With traditional certificates, when an entity U requests a traditional certificate for a public key, U should prove to the CA it knows the corresponding private key. This is to prevent U from choosing an arbitrary public key, that may already belong to another user, and have it certified. This situation is clearly undesirable (and may even lead to security problems). With implicit certificates this proof is unnecessary, as there is no public key before the certificate is issued. Further, U has no control over the final value of his public key, due to the CA’s contribution, making it impossible for U to cause the confusion described above. + +Unlike traditional certificates, an implicit certificate does not contain a digital signature. In fact, one could simply choose an arbitrary identity I and a random value to form a certificate. Together with the public key of a CA, this generates a public key for the entity identified by I. However, if one constructs an implicit certificate in such a way, i.e., without interacting with the CA, it is infeasible to compute the private key that corresponds to the public key generated by the certificate. + +Another difference between traditional certificates and implicit certificates is that when presented with a valid traditional certificate, one knows that the certificate belongs to someone. A valid certificate containing the certificate data string IU is a proof that the CA signed this certificate for U , and also that U knows the private key corresponding to the public key included in the certificate. One does not have this guarantee with implicit certificates, satisfying certain privacy conditions made evident by the GDPR. + +## Zencode Implementation + +This section will demonstrate the Zencode implementation in four +steps, covering all the transformations into a human-readable language +from the mathematical formula to the implementation capable of being +executed in the Zenroom VM without any external dependency. + +The first step is the mathematical formula for ECQV as explained in +the SEC4 document. + +![Mathematical formulation of the ECQV implicit certificate scheme](ecqv.png) + +The second step is the implementation of this formula into the machine +language executed by the Zenroom VM (a dialect of LUA). + +```lua +-- Zenroom 0.8.0 +-- setup +random = RNG.new() +order = ECP.order() +G = ECP.generator() +-- make a request for certification +ku = INT.new(random, order) +Ru = G * ku +-- keypair for CA +dCA = INT.new(random, order) -- private +QCA = G * dCA -- public (known to Alice) +-- from here the CA has received the request +k = INT.new(random, order) +kG = G * k +-- public key reconstruction data +Pu = Ru + kG +declaration = { public = Pu:octet(), + requester = str("Alice"), + statement = str("I am stuck in Wonderland.") } +declhash = sha256(OCTET.serialize(declaration)) +hash = INT.new(declhash, order) +-- private key reconstruction data +r = (hash * k + dCA) % order +-- verified by the requester, receiving r,Certu +du = (r + hash * ku) % order +Qu = Pu * hash + QCA +assert(Qu == G * du) +``` + +The third step is the improvement of the previous implementation using +meaningful variable and function names. + + +```lua +-- Zenroom 0.8.1 +-- setup +random = RNG.new() +order = ECP.order() +G = ECP.generator() +-- typical EC key generation on G1 +function keygen(rng,modulo) + local key = INT.new(rng,modulo) + return { private = key, + public = key * G } +end +-- generate the certification request +certreq = keygen(random,order) +-- certreq.private is preserved in a safe place +-- certreq.public is sent to the CA along with a declaration +declaration = { requester = str("Alice"), + statement = str("I am stuck in Wonderland") } +-- Requester sends to CA --> +-- ... once upon a time ... +-- --> CA receives from Requester +-- keypair for CA (known to everyone as the Mad Hatter) +CA = keygen(random,order) +-- from here the CA has received the request +certkey = keygen(random,order) +-- certkey.private is sent to requester +-- certkey.public is broadcasted +-- public key reconstruction data +certpub = certreq.public + certkey.public +-- the certification is serialized (could use ASN-1 or X509) +certification = { public = certpub, + requester = declaration.requester, + statement = declaration.statement, + certifier = str("Mad Hatter") } +CERT = sha256(OCTET.serialize(certification)) +CERThash = INT.new(CERT, order) +-- private key reconstruction data +certpriv = (CERThash * certkey.private + CA.private) % order +-- CA sends to Requester certpriv and CERThash +-- eventually CA broadcasts certpub and CERThash +-- ... on the other side of the mirror ... +-- Alice has received from the CA the certpriv and CERT +-- which can be used to create a new CERTprivate key +CERTprivate = (certpriv + CERThash * certreq.private) % order +-- Anyone may receive the certpub and CERThash and, knowing the CA +-- public key, can recover the same CERTpublic key from them +CERTpublic = certpub * CERThash + CA.public +-- As a proof here we generate the public key in a standard way, +-- multiplying it by the curve generator point, then check equality +assert(CERTpublic == G * CERTprivate) +print "Certified keypair:" +I.print({ private = CERTprivate:octet():base64(), + public = CERTpublic:octet():base64() }) +``` + +At last, the implementation in Zencode follows + +``` +-- Zenroom 0.8.1 +``` + + diff --git a/views/index.txt b/views/index.txt new file mode 100644 index 0000000..9f66e09 --- /dev/null +++ b/views/index.txt @@ -0,0 +1,6 @@ +introduction.md +# bdd.md +# asymmetric_crypto.md +# elgamal_vote_tally.md +implicit_certificate.md +# conclusion.md diff --git a/views/introduction.md b/views/introduction.md new file mode 100644 index 0000000..b77c7a0 --- /dev/null +++ b/views/introduction.md @@ -0,0 +1,25 @@ +# Introduction + +This deliverable consists of the implementation of smart-rules effectively executing cryptographic operation and data transformations using a human readable language modeled according to the taxonomy expressed in DECODE's deliverable D3.5 "Initial definition of Smart Rules and Taxonomy". + +Since DECODE project's inception, reaching this point of development has been my personal ambition and it is perhaps the most important practical realization of a solution for some of the techno-political implications I've illustrated in my Ph.D thesis "Algorithmic Sovereignty". + +## For the awareness of algorithms + +The goal of this task is ultimately that of realizing a simple, non-technical, human-readable language for smart-rules that are actually executed in a verifiable and provable manner within the Zenroom controlled execution environment. + +To articulate the importance of this quest and the relevance of the results presented, which I believe to be unique in the landscape of blockchain smart-contract languages, is important to remind us of the condition in which most people find themselves when participating in the regime of truth that is built by algorithms. + +As the demand and production of well-connected vessels for the digital dimension has boomed, machine-readable code today functions as a literature informing the architecture in which human interactions happens. The telematic condition is realised by an integrated datawork continuously engaging the observer as a participant. Such a “Gesamtdatenwerk” [@Ascott_1990] may seem an abstract architecture, yet it can be deeply binding under legal, ethical and moral circumstances. + +The comprehension of algorithms, the awareness of the way decisions are formulated, the implications of their execution, is not just a technical condition, but a political one, for which access to information cannot be just considered a feature, but a civil right. It is important to understand this in relation to the "classical" application of algorithms executed in a centralized manner, but even more in relation to distributed computing scenarios posed by blockchain technologies, which theorize a future in which rules and contracts are executed without requiring any human agency. + +The legal implications with regards to standing rights and liabilities are out of the scope here, while the focus is on ways humans, even when lacking technical literacy, can be made aware of what an algorithm does. Is it possible to establish the ground for a shared language that informs digital architects about their choices and inhabitants about the digital territory? Going past assumptions about the strong role algorithms have in governance and accountability [@Diakopoulos_2016], how can we inform digital citizens about their condition? + +When describing the virtualisation of economic activity in the global context, Saskia Sassen describes the need we are observing as that of an analytical vocabulary: + +> The third component in the new geography of power is the growing importance of electronic space. There is much to be said on this issue. Here, I can isolate one particular matter: the distinctive challenge that the virtualization of a growing number of economic activities presents not only to the existing state regulatory apparatus, but also to private-sector institutions increasingly dependent on the new technologies. Taken to its extreme, this may signal a control crisis in the making, one for which we lack an analytical vocabulary. [@Sassen_sovereignty] + +The analysis of legal texts and regulations here shifts into an entirely new domain; it has to refer to conditions that only algorithms can help build or destroy. Thus, referring to this theoretical framework, the research and development of a free and open source language that is intellegible to humans becomes of crucial importance and, from an ethical standing point, DECODE as many other projects in the same space cannot be exempted from addressing it. + +When we consider algorithms as contracts regulating relationships (between humans, between humans and nature and, nowadays more increasingly, between different contexts of nature itself) then we should adopt a representation that is close to how the human mind works and that is directly connected to the language adopted. In this thesis I interpret algorithms as the systemic product of complex relationships between contracts and relevant choices made by standing actors [@standing2014Monico]. The ability to verify which algorithms are in place for a certain result to be visualised, to understand and communicate what these algorithms do, to describe and experiment their repercussions on reality is in fact conditioning the very choices standing actors will make. diff --git a/views/references.bib b/views/references.bib new file mode 100644 index 0000000..68ac3cb --- /dev/null +++ b/views/references.bib @@ -0,0 +1,41 @@ + @Article{Ascott_1990, + author = {Ascott, Roy}, + title = {Is There Love in the Telematic Embrace?}, + year = 1990, + volume = 49, + number = 3, + pages = 241, + issn = {0004-3249}, + journal = {Art Journal}, + publisher = {JSTOR} + } + + @Article{Diakopoulos_2016, + author = {Diakopoulos, Nicholas}, + title = {Accountability in algorithmic decision making}, + year = 2016, + volume = 59, + number = 2, + month = {Jan}, + pages = {56–62}, + issn = {0001-0782}, + journal = {Commun. ACM}, + publisher = {Association for Computing Machinery (ACM)} + } + + + @Book{Sassen_sovereignty, + author = {Saskia Sassen}, + title = {Losing Control? Sovereignty in an Age of Globalization}, + year = 1996, + publisher = {Columbia University Press} + } + + + @article{standing2014Monico, + title={Premesse per una costituzione ibrida.: la macchina, la bambina automatica e il bosco}, + year={2014}, + author={Monico, Francesco}, + publisher={Il Saggiatore}, + journal={Aut/Aut, La condizione postumana} + } diff --git a/views/template.tex b/views/template.tex new file mode 100644 index 0000000..9387e0f --- /dev/null +++ b/views/template.tex @@ -0,0 +1,177 @@ +\documentclass[a4paper]{extarticle} +\usepackage{lmodern} +$if(fontsize)$ +\usepackage[$fontsize$]{extsizes} +$endif$ +\usepackage{fullpage} +\usepackage{longtable} +\usepackage{booktabs} +\usepackage{amssymb,amsmath} +\usepackage{ifxetex,ifluatex} +\usepackage{fixltx2e} % provides \textsubscript +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + \usepackage[T1]{fontenc} + \usepackage[utf8x]{inputenc} +\else % if luatex or xelatex + \ifxetex + \usepackage{mathspec} + \else + \usepackage{fontspec} + \fi + \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase} +\fi +% use upquote if available, for straight quotes in verbatim environments +\IfFileExists{upquote.sty}{\usepackage{upquote}}{} +% use microtype if available +\IfFileExists{microtype.sty}{% +\usepackage{microtype} +\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts +}{} +\usepackage{hyperref} +\hypersetup{unicode=true, + pdftitle={$title$}, + pdfauthor={$author$}, + $if(keywords)$ + pdfkeywords={$for(keywords)$$keywords$$sep$; $endfor$}, + $endif$ + pdfborder={0 0 0}, + breaklinks=true} +\urlstyle{same} % don't use monospace font for urls +\usepackage{xcolor} +$if(listings)$ +\usepackage{listings} +\lstset{ + basicstyle=\ttfamily, +% numbers=left, + numberstyle=\footnotesize, + stepnumber=2, + numbersep=5pt, + backgroundcolor=\color{black!10}, + showspaces=false, + showstringspaces=false, + showtabs=false, + tabsize=2, + captionpos=b, + breaklines=true, + breakatwhitespace=true, + breakautoindent=true, + linewidth=\textwidth +} +$endif$ +\usepackage{color} +\usepackage{fancyvrb} +\newcommand{\VerbBar}{|} +\newcommand{\VERB}{\Verb[commandchars=\\\{\}]} +\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} +% Add ',fontsize=\small' for more characters per line +\newenvironment{Shaded}{}{} +\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} +\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}} +\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} +\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} +\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} +\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{{#1}}} +\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} +\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} +\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} +\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} +\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{{#1}}} +\newcommand{\ImportTok}[1]{{#1}} +\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}} +\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{{#1}}}} +\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} +\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} +\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}} +\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}} +\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{{#1}}} +\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} +\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{{#1}}} +\newcommand{\BuiltInTok}[1]{{#1}} +\newcommand{\ExtensionTok}[1]{{#1}} +\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{{#1}}} +\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{{#1}}} +\newcommand{\RegionMarkerTok}[1]{{#1}} +\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} +\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} +\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} +\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} +\newcommand{\NormalTok}[1]{{#1}} +\usepackage{graphicx,grffile} +\makeatletter +\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} +\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} +\makeatother +% Scale images if necessary, so that they will not overflow the page +% margins by default, and it is still possible to overwrite the defaults +% using explicit options in \includegraphics[width, height, ...]{} +\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} +\IfFileExists{parskip.sty}{% +\usepackage{parskip} +}{% else +\setlength{\parindent}{0pt} +\setlength{\parskip}{6pt plus 2pt minus 1pt} +} + +% previously included by writedown in options.sty +\setlength{\parindent}{1.25em} +\setlength{\parskip}{.2em} +\usepackage{etoolbox} +\AtBeginEnvironment{quote}{\parskip 1em} + +\setlength{\emergencystretch}{3em} % prevent overfull lines +\providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} +\setcounter{secnumdepth}{0} +% Redefines (sub)paragraphs to behave more like sections +\ifx\paragraph\undefined\else +\let\oldparagraph\paragraph +\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} +\fi +\ifx\subparagraph\undefined\else +\let\oldsubparagraph\subparagraph +\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} +\fi +% END OF CONFIG ------------------------------------------ + +% START OF CONTENT ------------------------------------------ + +\title{$title$} +$if(subtitle)$ +\providecommand{\subtitle}[1]{} +\subtitle{$subtitle$} +$endif$ +$if(author)$ +\author{$for(author)$$author$$sep$ \and $endfor$} +$endif$ +$if(institute)$ +\providecommand{\institute}[1]{} +\institute{$for(institute)$$institute$$sep$ \and $endfor$} +$endif$ +\date{$date$} +$if(logo)$ +\logo{\includegraphics{$logo$}} +$endif$ + +\begin{document} + +\maketitle + +\begin{abstract} +$abstract$ +\end{abstract} + +\providecommand{\keywords}[1]{\textbf{\textit{Keywords---}} #1} +$if(keywords)$ + \keywords{$for(keywords)$$keywords$$sep$; $endfor$} +$endif$ + +\pagebreak[4] +{ +\setcounter{tocdepth}{3} +\tableofcontents +} +\pagebreak[4] + +$body$ + +\end{document}