From de3b2b9ea0ed0029a71a45419d7a5ee521231f38 Mon Sep 17 00:00:00 2001 From: Immanuel Kunz Date: Tue, 25 Jul 2023 09:16:17 +0200 Subject: [PATCH] UI improvements (#461) * add public certificates route * move state history into button, add disclaimer * some minor UI adjustments * fix state tree link * add import * adjust footer * remove login button --- src/app.html | 15 +++--- src/lib/CertificateCard.svelte | 52 ++++++++++++-------- src/lib/EmptyCloudService.svelte | 2 +- src/lib/Navigation.svelte | 10 ++-- src/routes/+layout.svelte | 2 +- src/routes/public/certificates/+page.svelte | 8 ++- static/aiseclogo.png | Bin 0 -> 21770 bytes static/eu-flag.jpg | Bin 0 -> 2883 bytes 8 files changed, 51 insertions(+), 38 deletions(-) create mode 100644 static/aiseclogo.png create mode 100644 static/eu-flag.jpg diff --git a/src/app.html b/src/app.html index 5e8670d..c0e2859 100644 --- a/src/app.html +++ b/src/app.html @@ -13,16 +13,17 @@ \ No newline at end of file diff --git a/src/lib/CertificateCard.svelte b/src/lib/CertificateCard.svelte index 9cdcb6f..8375929 100644 --- a/src/lib/CertificateCard.svelte +++ b/src/lib/CertificateCard.svelte @@ -1,8 +1,14 @@ @@ -31,7 +37,14 @@ export let certificate: Certificate;


- State History + + + +
+ + + Modal title + @@ -42,23 +55,22 @@ export let certificate: Certificate; - {#each certificate.states as state} - - - - - - - {#if state.state == 'new'} - {:else} - - {/if} - - {/each} + {#each certificate.states as state} + + + + + + {#if state.state == 'new'} + {:else} + + {/if} + + {/each}
{state.state} - {#if state.state == 'continued'}minor{/if} - {#if state.state == 'suspended'}major{/if} - {state.timestamp}{state.treeId}
{state.state} + {#if state.state == 'continued'}minor{/if} + {#if state.state == 'suspended'}major{/if} + {state.timestamp}{state.treeId}
- - +
+
diff --git a/src/lib/EmptyCloudService.svelte b/src/lib/EmptyCloudService.svelte index 2b7ad8d..2db2d4d 100644 --- a/src/lib/EmptyCloudService.svelte +++ b/src/lib/EmptyCloudService.svelte @@ -31,7 +31,7 @@ function discard() {
-
diff --git a/src/lib/Navigation.svelte b/src/lib/Navigation.svelte index a4946a2..f8c9d0e 100644 --- a/src/lib/Navigation.svelte +++ b/src/lib/Navigation.svelte @@ -88,12 +88,6 @@ let loggedIn = localStorage.token ? true : false; {/if} - - {#if !loggedIn} - - Login - - {/if} Help @@ -116,6 +110,8 @@ let loggedIn = localStorage.token ? true : false; \ No newline at end of file diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index a05b627..72317fc 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -55,7 +55,7 @@ function getVersionMessage(): string { - diff --git a/src/routes/public/certificates/+page.svelte b/src/routes/public/certificates/+page.svelte index f300fb5..39e8a98 100644 --- a/src/routes/public/certificates/+page.svelte +++ b/src/routes/public/certificates/+page.svelte @@ -1,5 +1,5 @@

Certificates

+ +

Disclaimer: This site only shows example certificates that are used for research purposes. + They do not represent valid certifications.

+
-{#if certificates.length > 0} +{#if certificates} {#each certificates as certificate, i} diff --git a/static/aiseclogo.png b/static/aiseclogo.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff6cfba0fc20e31848ad0060f6d0658d0c019b5 GIT binary patch literal 21770 zcmeFZcT|&G*Ds2S2%$ryNCzn*y?3N52t+zc@14*~C;|zfQdC5w2sm$e`CP1Bi%3cnJTV2`x|!CL$u~a5u3Cw9vn);OOfu zV(;YZ;4BjA4FyIM5h1$%G@V(6@br#$D-VvCqn`~mATaj z3^^_IA)Fe%{?42-B4WahVq!9!vhpJ0GE%bAl0uvkViMw_ViKa_(!%263epk^;*y-d z|8N7`{GD7Bj5M`>^8)^+%^>-B&mzS3((2$T221W=6g!u&8 zhYI@y@cf~m=^Wtb?+y)g_x0fyM!ze?;b#kPwmN6wtSKboU`BaphlAoHgwOot3!>b`ur@j3!|sCZ`}Kp&%)H75J~1 z*y&JxUnh5$u>Tw?A!Z^jrXVe+ATItNLjk98vJbTXe;w@PsNmx3?`;pL?Cx#v>MRQN zapmUx8%PBWUoT&OfH5GQq>HSuw6vI$gT0)L zy^Nea!S7F8N#VMC0AS>>-;reO?DzYVmpkW)_bAvq5~4zx+mYZ7&Q9FFAG`lIc>Hg1 z{yjg$%^4v2zi^UM?g73ofg$$(&T6gzc7Lq%zi>m*|4IA+`{4hz@RBlO;^JbmPQp@- zj`qS*4sue$ax(HV!uE2~vht43@(wO?a(|TnFTzWih|4NS$tXzu?cx7t!vBWG(aqk+ z)fq^$qTK)I>iqBd=Bb?jsm^~Bh5sMaF?aWI@(l?9;^uVHe^Ex1kX=u`O!U7x;K{px zWn#dTCy#*iPWbrux&r*=@0H2f2f)c6Sa;OLi7-S&`nVgKY9^s$xXI>}t38=~GcCm7 z{_e^8j=1w@CW(SBG@V8I%n${3U7~Ok`Yr|M5{u__)$+U@Ped#66({{Xom#dAmK>Gjxg;TSX4qF522nN&B-8@(zA=%+6H>%CTCqZHN-q zOFL54y&nl3-T8imXDrS1gokl7AVpSnd%{OPO@U=7DdG(9@fi)WvV#juSe)(D;V7yE z2ovz}E*b6r)xlwG$D6Ci69)&>t=|@&0}P3n;E++whq>LKM~nj%#|PeD#{TvEI*c&V zy#%-k15J@tu+FVpI1FziqK;^aNk-3c;fywRp*y!d!D8>=C$a=5k7f}3?O+| zjTFI_5?B(eLENp1PmP8hRsUO*297G!POfSDEpBd^tOqoE>3Q{^6bT56kpc*>kFI|? z6jeFjNV_&AXhx%R_rUP@2)%lE@Ne4VsiXm_5gS8=`>i{n1)A_vQ>>E#Y>#A<8>{~F zNv{UnLW`A`TjA*F-$bHWtBPfNH8gS4F!S@r`{?N?&|}!X(7&AEE7=j&@G5Mzj6R}S za5p}A4vqrEB>Ju8!QCc^jmOpMui@)Pf1N`;Jaks7oJS_n`8L)t>&sFbnPt<|V4 zcjwh+magQwf4!knTT4A$uP8Jui8YSc&O7XG?R1^~2X&;>`<@jnDNl1*fQ|BeskZ_aR}4k7SZz(jQZXdMf^9 z*hhHU?54=Q$&u%AGo*Gr5Cc>8SvnG(d-qv9*nBq)2wGC83oL)A64D$=o-GFkJ>ju1 zXhz8oVyXTGkiQ`LrvjC=4TW}Ep+c34*QN(E^4|YUzaFIN#!?bG{kjB}L24U78aq9z zWN?DdwQzNNoqHuQ6>&39Sh|``MC(!?0-mD$ugOgLGEm!+m;mzFily@*Wznp&*taa0 ze+^h@jQ4p0U$9W%!gKEWmq#Bg6=iHRg5pHG|8dV0k#57C)?E_`WCc`ehf_{PFXB~; znMx}S$#1hgg^c?7l13DfPw3Rc>0)Q}?j>5Bne3MDMu+lHFo4bhK!^z;E9aW&$TZ^H zGVV%wP-8=n*6a6gpJ&5fDk=7*Xp;RW%#^5O5(F>!(H1Z|40)HULE-Oc;X9_>vx8#4 z-J%kX`l9?ILXEgu!;50a>fnG>JO4m)ut3~l$UhGgl3>L254wgG>`>yo$gz`30t)S2kMl|S-k2y={sB8QtwB80hnO^uQ>GQW8td3|)tVL_? zCXCUnlyOR#abT?&X7>{>Hbo|U|1_^0-+r3w;(5U$ibU-B6z@GtVmM0E?{pT=(BQ=E z+>`!^nhh#RW0JO!tM+=gDV4q#&yYTy3#VXC?8Y92mi>dnpeubH={X)~5@$d^9Syqk zm1otP;Jc4W^WQp_&fppkMY6jonMrhDw%(z&e}_JFY^c?o%T6NWF^xt-uEx`^iD(tg zJKEP&H@m{t_wo<({>gu#yKAy%TU+{=0)=CsWHA>??*C?m9s0WO{xlWo2}~Yenn?${ z$8L(A#n#oXRQ^^ku?UXJ7;2%-vB?N$5`?lE!G~zAbiUosQlCNgX;_)v(iuBpm{}Ccb?-JS=S`o);I$r=L2pKm)F0iBY#S3Ssit_}*=O!r zOdmENyA4(yK|S%K&odY_6aL{eL^54< zH)LKa^Ch{Ycv~ERucldFtUElz0Gh5Rn|R_ugas2PxE)u?rof7P)<{oGYm?a_Os{`0 z=~j%M>f2r^Lxnm8C_YXI9Ob&@Tl|^0o}D%+g_*d}=3<1kZ0P%jQIZKFq9&OHdeFI| z{XEjRfO7tZp!AvT3;Uc0hlho2qCY@i>CA|ASSYO|xJpdh0ZbnzmQ=*5}DFfXMEC zkq+er%g&Gx&D6-}K$w``q~5!>JMqMQ9)!YC<6k48#4RJpRp%OCkrFLWl^12k#O)cM zNokwrhxzWwJi>1(PFw!)A)w=Vf{w|tkw51|T`Y9^+_auR#1$Nk4sq&8c7x^5>~dCh zt2m2H#o!xoy*1_?wI_ui{0cTlvp-mCW>2g!|D$>Q!kzn6@VV;7`_O5P=sMZu<|jdk zJl$=Ekuw!4W&Qf5JMxA4b2c7%U|_Cp{>1wEduL>ch$;p!aMZQwLtQVy5U<`~C@+TU z_!n-K8XaeI71mcut+cJ}hwh90{?>iMGy6jUsF&w;>xLu?^c>OJ?NA;t$^MG@w*DR* z1x+Q?oobc0Z7dUCQ|A;5y$=dYBvlNs6=t`G76;$2JZRq*pJ|DvsrK89>YubE;si5* zG`1ppi;Fr2hlr8T^pY5!yZWXVcEZ9E>CDo)dw&oF9lH{Xr^=hYi$98?IK0zPO>|8_ z2pnIGPqV}X!MAR4g3DJEA>zI2FF`UDTFJ91Tv#`qC)aLR>hh>>u=l!!W|AQgD5AT7 zi5gVDnMy@}(usl8Ef2L7$=thIW&mVJXm9#g+Nqto_S}q22x0vqMZ|F7A0zh2NfC%Q z_dL&GD=*2t2aVG$65DdDTjo<5-*4zt&dWGc3mN?jL_`BRr?Jg@VS|wdMDDI*Mag=` zVR5VtZC6 zIU5C|gm$j8N3@GVEKu@4%D$k^j8qy_w+Ey`D6-SO=_($7-JP9%DRxHAp(beYVKX-Q zI~?_gve72j5(q1D!JGk(isPWAm^Wjr>*ACHBzeEZZXZ+$;35QU3E-%~AA`H^A(Ol|a}v7+9&8nABH#DUyO;RgInjB*$R&SP)C-m~Hi=MsnN>fc7cUHwqN{g3=z3##v!`z42!pZD>y4y(5FykY?9j55Y}T;YNasIBo* zqy+S-d4c6-wf)sGM;By)t&W}G96M5M&F$E)l#3=R*kD7>%DT=NhlIjYXkSGEC1aj? ztI_*;j~bHpdY~+A=*}RPkMvt#-(Z4HtI}Kp{KS}f2XGZStUk<~NW$ojzyVOuXAuh0 zE6^mnn#=29JWVM9ufqz0a~wqoTaJRU>nlS>e7H!@HtXRTZGb|O{0c4T9PbvJ{+;8H z6~SxTx>N`rJE0=>HBVmh*^LoaV%xH)!?%L68AK|DrlX?pA0!hy)KI|X?%L@HP&7@2 zl+q6hzbhwldi4?_7yBje7$ci!b|%9FG+R$v=_nmwaMh%cjwE4MiP`J&&bP=z)S*{f zwg49gGzXprV9a1fzUm!saP<1wtA8B6*$0K`+sK++xgYOV(M(1@oKKcQIq{+WwhFc?I)&P6sYuYOhXbYK%s_1yZ-a zN?EtcF=Mwz^4nUE=Wj}uQ8O<}g3E)>SH7Y70dJ@M+KufkE1Qi9^A3W(#gLzQcP2#s z94i2k*mfO&GFZ~}^RI_RI_j9+jcq;3nXGd&4=gBI?RTD-pTn|~U~da@s~AqG`cB@d zh;TW#qD~?Q)R~;^gsD#?Tov5HK754%N+PRz#m~;{e%ZMs6VvD{4TVqoP1PfkP%{#` zT1~YIa_<=_eGg#gRwPK|xY+M&6m+AWpC__RfdRSsN&p{H?E4}Bv)QpWEg)S z8y+)7K6K^|OgWxKiJ?ztnZuX#5?EFwPbiSc6J5LSmkMDLa2|AOA+Fz_vo%b(QhH>{ zQkN?xH)2Ga(JW{ zql^m>zPLWMICH^F`hS@5S_Yg#B<{g=mF!j&6KmepZX;U1_lH|%jh)&_)Dv+e6V4P+ z3V))zU_#(QdUJXr$Rt+4#bk&IJ@rw}@)R*S&C0x`tt9leP3D6O(SRA4&#}g_5^;9^ z#!|vIHc1ho(ZdD(>Sjv!Vo*%ZEF2qd?fApDlqjmiO0zqB=zm~xp9~=y6a#Ff(;w4Z zOlV*K=08QW);!cs>#|e%=G)!Iq%$dMR74LQ2qB@HDVZs%*7aO{7_gd``iwi^BKtZs zS)TajT7_Ms#TSLsu5H#`MBSVhh^~the7T@Mvp<7#&H(f94k>H<82V^#nz){xEKZ}8 z2whM70ag;1ABjJhot=}GoDp%n>-g{-(Mu*m?l79aIj{H7uMkReb|ge|FV=0uA~L($ zA}o8OCiO3cl~1*r)=Mois0VrUXX?*{i2rwJ#L-wV<-9P_d~&|0UU+V!c_?MQwNr3e zrO()^Y(eIKV8aYXfRjgYDRPEcWm;XCVFc3L2J?+0Pmaqm;<2@8# zH0R^=NaN=EVu7YXdL*m`aQ(r2^u^Wn&KpV^BokWHfREh#Aj^>&i5H3V)Il5Lr@@+aZ;HR9hHKpMlj(oez1~|WuiablL{^5k zp=Ly8tLKk8+l5Qw@KZNMQdlbT0sdAScCPX$@zr%n^wts-JNd+o$(V!Lh*y&_!~susXv_R zqST1`w6VabvGllAlO5WhU>bHh^f7?ivW73-$(2|(57s~b1Ew2IHOA?eeT&rp^^X=NzvVTPwv6tP z7$?6o>xqu@SwiIX?;iBW&eV2|G>+|epT*`I#trI3Z*v?6)3ku%8t;cUMpnEg`1Pjs zHn(p1#O-7GmYls^-;=5Vipqd0eq(=2Z=ggY>@KnM0hCY!$SMS8KW+}LdCa?WZv}ZJ z0^xQKt;RyKD$yzm@2IeC)gvo=j3Wn8AyDZE6fT3lAf?q%A5*eQ{ydc`yftE93+S?5 zKti>3h)Z}8?HLX2ykDQS0C2#^tIk;EwaThb-LXEu1QcDB5V^^hL3i%ZgwzNweZART zPg&@4UYP@U1AT;qs@bolmb(|xPdv_zJBymZ1}Begji9$1Q0p4oww&aMB{IZSSo|Pw zt0H+;YKp`*J;;@TM2FMz@$2L}>P3(4m|xhjzOa|;PfKg2N}i7(RC#N=X~W;1O;4pt zJt_&)f=bh?0y5Nnht%ywZOs&|sW@QdndapMHv3}r)~d2XnXDFTO1Nj}Kp7k$S)PL* z_Oq_8)^5j7@ezSDvRo-n{OFH68{qq?MZ{-*lO=s3sj#)Y z-j=Rc>2}lHPC)6CsOjV6NBueololJUiFV|-&!`!_$r+=uy{B!;M>`f;6CtC~hRO@U z8ucSo0D6FDqx9s4$V2~vgnomTc)vm?0MBwF1(agQRtE#tb^|_s#b*e1-;Tq~<4u$A zXv6_or>LS9QdbJ8D_X5^WykSj=kpN*0LM9a`>l$1nvo;l*nTC_QPh52i!89xDCFsN zpP=8KuAIFMcqRjg`hd=0?<@nz)jn^W*cNy+s0{XLsW4VKuZV7sM5{^qvuU(%C(YH|)hmqa zsCfTV&urJL+iUrXl6O|U3YKYS1U3+QAVl`hvb$qpR6a1OtVgmQLAFm02d_YiTWkfa zt_e(Rce?5y^LTE23c==A3(e;PHFoN#({irFS^0Yn?FC-kA%MlW2A8J%Y1ic)hjx=y z3DN@!ZPE=o|5CU%KA5c97Zne<4#r9YUbW{-pudF6MCZbh&>Xvw^vA&dw{RMGX^AGN+QHa3_msAdr zE3J>oHtQ3gjGhfHfUhefNcPJW=JhNDcIF4x?nTU6XYofri?VFZ6pWNhG$(ja5zIiE z!9tM@AO^D)zJzfqvWF(3ZFMJS^f+OCi!-F&jzht{{FGZ<~AfdU)O4pzEB}w}oPc}Y%4}v35%0OB3 z>Zwrdz~e;{TeAz(Z!W=JOEB#`eNgA9A%E)LQ+jeG?KKcNJ)M)kA4KB%yY8c~^SN=W zd2xLCrUu5ONVvrp3czrC%Bjgi+t!+m!V*8}je+&^8^Nt>6JiT|*h6TMi!?vL{+4X4 zBd&?*Xn;rJX9nd`BZd>4lw05dIc*?Bb3FYY1r5&)y zMGH*qzIjXC%@_AZkqn#PHzAS;+3gyb^C_~;uBMZH^nmB=@*Q)mibZYhh(9ft*`u9J z{7Ei?wu)kmpNayhHD$1fq?C|j4R+4Ykx-pizL3O3aeK(({WJSpyU#2+BFDGnJf>`x zB^FqW2Xv|%6W}Occns}}r%hoKK^C_^^Z93Nr)IU)CbqRWX2#p}YQd?t;!gA3T~Q3* z7gLFIH5EO!?dQx+@XBe9!`@}gkyz$Gk3wANP{%~5W3(x^TFMAHMkbZT!X0RDRP-Cv zE9^c30we6g>raHBAV=U~WO;mGQ1-P=SCNwk%vS?xK#ac6Z*ee3&qoE`(7uRMmV8xG z5j{LYwXM}FWY6Iagu&54V*0BBU-pn&vw)=6j)sjWt72h^L+zNW4w_X{t}%UU|;c7KNhQT5-nI?*>&vQ{_Z$^7Zzsy4>kf;<^mH@?f!x@ zO}3Y!IV6w!$H@S2B5e&-z$sZZ1b%E!o-&bi(-tWBShKNa4^rNungbNNHS5s!88}}A zu&B$+SmRpCfM()Y;`*&wOgcGT*X^EFc|>=qd}-S~RXVKG3xz&YamNX2t5i>MLzxUw z0z%ZvN1X|hCdr#-@)8}7P8(O2HvDRsqRcT#j*u)dXW<2Tyk?9bi-VOrD=va?cVyRD zBsNq2+OyF}FDEoU5U9guxZ_`s0*Sz%?nMONAvmb@`vLE4r_8!?mB9Cgyz>3Hz98Ess0eRF zjM8YvId#liB-90MoYXm2!QrZ$Gg5kJDW6nJeQ&>49LR>t*nDF$gl91$>#UOQgyzbl zhGva2subAlFl4`B(h;#o>U|k3!Vhk_>Ew;;pZnQLCqwF9g|}-YymVx( z8rvB*9Xsbev#s&-A*_`%kti(jc9%M4Rs%D}Di}`2L6B{zr91eAbl*aKl*i`^imc?& z7D7l-BG>8<`>WZOy5cVgFic3>yw$`OW|r*`%L?-^OiCW5X-5C6i@aUspye z2kp%+$B5e1)(k2G32=T)XNUtdVj{ZBjl#vqNV61pbt^kxiZ30(U$0M$S-La{UoIc{tu}WdV9iZTj-ygI*qG{E zwo;!nTlb|qZ_y~O4w+}J`&1V}t<&0tm!|Vqb2bDq85Iv6p@aJO7V3K}f{;+}tyod+ z36UWBdYJhSD$86@dv8tnFNO1D6kXshym>gYk!-`!tse<*PJD&F1kIdn55`4@^ooH+_$UT1GpU^76oMbGGT-~Y);S&a0^P2>)9LYDrpNiLO7=n| z)PpV^9m?RrCh3t@AaCr4gcgfh4rk^>7u$uJVWd^4cLVU*sZUu!I(D~#V5O;NcmeK26$Qnm1@EPmq901%f$C2v^$Fb#h$^9C2bS|O292A` zV|D?u5PS=m{drcBCy6RF<;s!fuKUXXdLR)11x(ucXlBHVrF(hDo@Qj@&QmW%xhk1| zS_OO?QpvuyYl&Z$aL)^J!EuA5n!UHl##}Po?<6U2%O!{U%;!(HUJcPgplCm9onW#g zCKt!~<_j$rik7Fg%;GW=ROQZx*qq2xNU30kP`QxJs$NPvxFPjRxk@ka5ZH2Hax^fe zBs=PhA-yiKXf+1g7tTlh%U2^A8R$t}Wmc4&hxyboBN`HDG}hanwO*Nlev$E4X6igU zsM`a5Nl(-2eZ3ZL@^QzEz?`3KIl;J z4qFiG-aeuCU7vs&zqx|Y8d&W=tAUB++vzO5(Rh1T>d{j4U}XQ-my@rz$BYDW4oA5= zZC?mW_@+50J3cr&pFbC6`Os4UxKF@NwgYdUE1zoNujEh&O@{728X%GU6Av4eB{TAM zUV>uTZIY^s@YA|3l`-_=#|4h6x9+0K zdxua`Z5*2_sz>YSL}$!{K_gb&v)r*Oq@sFMadU~#om`^e1%+nYsGTj15uUW)F<`-Y z^N9YalN5UyFn$INNK~?sr)vR$FgvWRBcTnV@8dWhVTC>0-` z_qL0-WLK!-$evqP>$@Hv4)6@B#6SQK{?aSnl_e&!V= zyYgF)KTCB1G_v95eqW50Lx1j=>C^U?2aWjxU90&`aOLRloWanOo#ZxC7hEeOC{&(dz2*pEf;#Dh=0zW4fsj zg%Iu+?|^=o+;sJ&kcE%ZD@f8D4qEK3>%y)lwTMzmO<~~zw&h(qIU!pQBG*LbU=ETs zJJ+=VP3G_p>6O+p={7qZjORV+MzT_1MgmHEqU6B{6-7sq(CQd8FVKWA{`^4EOn|lB z0msWN65}@SOtu2DT`e0@++3WgOJzS)=UQpK`8!qHpEF@^%;SqSLg5$jEm!G6z zwShFxQr-WdPTX@oVe3Sdx@}+QE5cy;6sQWpQ02%qtKE!|%c^ORP|LQ+sv>8lp`>Hi zl@SA5lgm>-jSnB|3*>A*cp8L354hR3WTi5IK{^Wz(OI_mEhLGhz(GmVRO8+> z6A(;T)o|O+)(1nK7p*u>e9-DAh_W|wo3M`Gi$@tECK$6XO=mMFpcD@~7m!fh2cm+X zFN<(-fd}VRM)f6#h31qSWjF?;z`4C$ej_isRz9jNjOvuGw8)0Cg$F@d*A>|>?l>d= zl;CwPxlHJm6ZOikQs`FBdM+Z@ZbyqxMSgl&#&2c%GqFTQ*`UhyB8WdbgHjC=5{I?-Urj2I4`HACLNT8oHc6fVkwew&(jQ#8-}d(L zK#xK~Iqln&s$Vj(iy}X+bH6Pw1)6_#6Oi4Bh!%x6n~sWWLArZ%Dlj9TEY7lVqTK~W zI%MUV?=R$9FNhBb?XhJr0fWr(D|!*WIj@Gx)iE4nT+TNbe5zlIg9pob4l;bBqo2(d z&t!EF4ls9`k)FgKXfIP+cfDB3puRkbaw7@CYI}GjbZb>tM{g)@8#j+QXou93$#~TRw?&*l-To?XRCvN z?dtKnu3zjYX0Kbh#{XqW%r|Z(ZT;1$k1b5mfbehr>VkwmuJPrkp%77~zEN>F^+5(^ z2y{T~?bp}}xY;dZSdLv5Bq&mS{6oBxE_I(0+YcEu!bb~I`iXUcPqrztatxuqq=+qM z>3G!DGur6@DjS>^91o88*K2GeG4@QhrDDncpqk;oB43)kx5!@9dN^LA)I+!ziTmyU zmFfD9@OFMjz0+9R!0QVv_r;ozEn0*MMYIH2{Uj+<+8*jjGpzLvrnmIUlO;X@-1LF?~(wNCTrND(?XSN2Hg zv@OFJ+JZ`1&WnqT+0pumTr&``au#SBG6W$qO#~u-JqDA6sHgyUA2qUTv>KDP_8Knb z4^|P7_X7N6qRWsYwc79Hi6scD<|HF z0`3>yT_6h%>*j-l4TGkWzP1op<{s{I`Gc-_<`cX^XYC(CM)4*Br5rS%C4K~|Yid3} zJppA*8rKLfb4<5g@C=R*@08q9aXiQ^FNy20s7W~)xb}TozE5}DnDcZp(CQ)V4=hwU!NZ16{U+Ii=>)IR(U0HqIq}Pt^#Py@mir7>wV#E<1#Ow4ec+JBdWuw z-u+fc2?+_!UOTkelB+#D3p0vo#9s#p%W&vVaT=4y<$u*EeH!`x8B5Pry@EwOa4i_Z zB#N0D_j&$}Q`pAKaNye2y9iWnDn%cn^({3KY(l8w` zI|T?)h({2qW89S~Zb@*R9lUZLp?cim%T8tKShHerBAc8hsmMnH6h%P}Pb(+=EqEh( zg)d)H1k-{HTUr@Gjk1KQ2#j2lSjR`({CpN@c4xF8ufM@|v}QG+JF>g!aR^FE14A0e z!}{Fl8DjxEJK)whX@W;o{B2Psw?;O4L#uZKA8KL|D87S=x3_u+7=SP$Sal5yY@Z4o zKYzsuf(>AYAyY+!E_2K!r~5$tUU#^a*NS_K3NB6m`Y(c3-lPn}%(Vl$0!n4~dPhgB z1iVfH91FF*%znW{Uevv1nvsk7(CODw>pCl;IS%uAcqP8wPxCMQ!u@ellWxFWR)>K5 zICt(6EX@OEe>?Eb?7|Q6zZj47kHUa-cw!UahGANj&+1O6ihXwOW*U%{M+?5abBRrh z;?F7ec~}(ReoKUF@Q{|aKjoXtZ~45q1ptbv!!AX9v7Tp;5DN}&unYsiV%4MwFcHb&mF{=vfGqz%gSkH-V^T=4*a&cQnOSJWTR2dkK|K& zp-;B6_!}x}SNM^YEjGWkb)^US((Ob)=N9EOYjIvOg?ftmFw*XXrfOxcU z!hIL&>GRWvhrapm?u@MM^K!K8>DmENObZ6V$WljamWXjdJ`xiqE9u+vBT`ok48 zRP`1PLqcsoNUKV_lOYJDfI7x$M~ftKrs;8&+v45BmwEm3Hca@#hU2rV@W+=fqh`d< z4NNSOgnWA@Y&M+IT&!TmvjfN-_0*qM-JV_zS(&l+a%IU{%{$HEVo(`!4S9E|+3hnu zXi1V#+de_A$@p>Xn)Fym1^rAci;~EOacQY4Nb+nNd}vX7#Y)nBf0Wd`k*U!{vvhXl zP1YXo`o%KPa8gh$(4 zAAgy}WX=M@M&alq$vA%-F93vaW!{YI+#*MhL37nu1~=0zC+WK%jn8fpsPEyUkEc7n zcFdFq#pRp42fjmb=}@wJ6=zI5>zH>^Id0PhC;uW-A@|6(EfoxjqNF*VZ$@nLw;n*Bd8`fB_&}KyA*s__KSFGG zq7t+PRE8dNo#u2sxi9Z7DUvE&{48?Cd=JhHe zwNGEWt(rL*S@o5jPy+{_ZT)|5mHlI86i%|1`SmL?y^%GZ2&K`Y6V{ z3iCD*?OPe^@)0-eR2G?^-4vM6p_~HOWHiQ)R@{5|&E@n&Zd4DD3a|UApAY2-R5==} z-Yz5fqMiqTumyHZTr)y~A3eIJZwig83`P9xl(|t8v%XEw+vfshzgz7(l8SVKAXWF{IvRl2wjm!&H$u;&%-MeYc~P)@^&si@g45 zoK-#W&}n<;MzO1hG$sr)rl=;MDBPFc;P;N|b9DR*cg3;$!5hZ!-m!IR?3` zXJiQ5st<34T{4N`CA5RmTOJERd?QK;rq+PL&H!;PHv*B%2wz(2uQ=3IBtu9>kK_ih zMN=PG2Iu9H89Tchd=6ZjV|Z%@XL=lJ$fTw?-^~+ zt#T;qFxP%5W$RO(=neS=6*X2^yoIIzB%SPlrpZU8a+j(j>(pJwB*S1&ZNXGVdA>T=uHEGB*^Id(nY|_ z)qa*U&lswagW`ZYpYwnbAYBqR`40``Lb2zeOzm7O#LTXaFL(B zTWZfXKisVe`S9wHyXyVU2P0L>ZVROi*y>jm#S)cPxLd2;Z5u>e+`AYce0DpjFN=ghoO7cnt!8YK))#qa^E58bQf5p#T*w(uKYOWLvY#)b)?7dIJJT z5tL9kVMQDBa!HZ?1_>?eA#8~36Ck6bbAuboi{%4kn`xb`as2H-jykw9v+U{YUA*6* z;d`0Ui;o}JJOH)*inK>>aib?{WR>x(>%hq|t0J(2V4q^Me6XGSlYfczfvodWC3+By z|2qdrCoDk)H6u{?@P!XF54&bF>J8k9W&)xt6j(kcD%VX5X;(|Y(%fYbTEd3mL^T*X zjEjj~n#N{5z2XVc%7E`uIb&bWNiEi!C)xEU=^Rq?-yCEw* zFSABWdc1#kgBEmWeQR6Oir^an(PZUc4LYw}itZ z@MqL`F!r9{-aNqgMs2ezP423}Zu8_ZUZwP#{J-;U-Rmlye3`?URqn&@FS~$6nIJER zJom)%Rf?3nv|jdDULw{ycXP&ZQEHDL9w<;#*JULUPt7SDPX}W+T6!Mh*O>jz0 zPf`+kI8WdEkw}&HrIvx0s(*HJovF%WqED$QL#)wXZGk;^wKqC!PIMQJGNwZ05Bl0( z^)Mc$WUn^S+y$H?){ttHUu?Y5eq=C-I+_$n5teKEJj&7K2I=|d!Rx+WM9ZzVvZ>5k@_@N(eq z29MiccA>WJVs*Vjtd`D!lb)3E`FYQrNAv#V?!_*49FxP<-2DR;U%@MkTwsG=N;oC; z+Q{|U=Mabht3C8<8&0pc0oa4>#RF(+Cg%RKBCMW-weFkK*iO-lnA!E*iwee+nt~MZ zc@iss`(TY@>UN~R+biM0XrICFVGBj6D!q}mRB_p|y>VguP7I(OHj=_}mWdr*><*!Z z=;?KkJ9S3->Yvv6!A9o$oPlY69F;w5StFJ1A1CSk0K*bMm)T}|*=#njsjHi#ySxFc z&Tn@bZoS}rAU3Lq8HC6!PHi(2D6{ek5^nh?2Y1dzjI`p@peu@miql9Z5^f>{8N!hF@ zkp@#e)J`xR&?KN3gAJ4D)+cm4H>XMp^~FiF&TqU*GVQ>=avb>6QUc`0*^HYr7~!(- zl>%S#bR9V=ak=Dt+aagcTSBON_W2sHGuC8cy_)RUxo!f0y_WMvDxS~>miZtq9*_(o zPf$!~H^{x(m_Hvm>?kIwJg4$k&+#2u9!Q9Ry}q=^=Bv%$Mf-cnTNUVhnGiS!#1l`Bq-MrRy+T>djTX|YvqwU{nl(Cwu-WGyj=Ig-H-8Y zSLYOo?uL^f`+~J*TN2V$vB4kfdJYXg@F`&|YU1`a4AXXvVXIzQ_lDhxXA&NU21&n? zqpDM1|21Vv7E=_FbQCD-70c(yK*ivl+ z=CE?Xjx=@b_0vaA6#`$tob&T& zP>fIt#-XiTB36^a`X!^N7;!bgfyv6m7v)OtR;g!8ID+82FDYN_i}fux$*>JNOMZ6E zsli2ib@{nPProQcw|e!y=~*~xI-;`^D%^e$8{~t&N|?m6=x*u}+PmEJh7vJ;4Vodx zX}t|)SI6MTJeNh!OjXy$5`K8W&LNy?D<$*!onR!C1>_@1Mx2p3sX7#o%8Vde<8I~z zhP1t>pfM4aP^c|c#{|^BhUQ$Y8yfUAmq?&QIM>#)eov@R47(P$S>kNx{$1r^4%|y(D^f%mO>c@&~d(S zuzuKfxCVj3JtnTU+fLAw9zfW*ssJ1YIDUJJExMn)1H2`={&JGobD_;YyFKg`u-Bj_ z%M16I>q$VJzW}Vwgy}_0MWyZXaT_=3K(!@s*ff*K(brbx!XTC|k?~{L7xwj54xfXt zzT7dOGJ{6!i4S+(#nntUL8+Bmsezj^uuDsQgx_Ewk_gd(T5QG#kZE94;!uY?XMFBR zhEI~fu{Sj^UrZm$4_7U(A6?q-OOM1Wy0EFtH61c1aJ8}$rgA!-D|3h(;99SL1w!Bj z2K-j!+pMfFyjMP&a4y=>p+99@Z<~?$}FKXCD`WIo?^-^K3H8<}sbNMAU^trzGA$3cj&-(T|Uta{t#(icy71wCfUjb19;1#AEMstN1%GfIiRAd?5)Y2ou zI3}xvHzXw`c~v4;)@}kfG!Q7$1XLmWSxg$`)bIB*D+kNi{sy=`+29?4oYiJipkC>y zX|`DSP2kDhg_0HbZaTV>N9a2ON)arEyx^%V8dBd)?Gs4=EvAOZRV(z!?oEEc+T0e1 z5L!FR(iNBpij#K+en<=uLg$N=VPpnuf$8CZw$e_O21bjztIG@gXEmen;Ug zJsF~Lm_BzY85jsa)Yv`|_BuV8tph!I-TNUo*hczLp%yFNx2aO10A4}nuHEuI`RNjY z7YA(*ud={M`&@Y5wgX4yco*idh_ zNWC8lf~TZ96uuh;)Hw=7c#M0j@nCAKe*R`(%7>$IP@Y_ey^}w-j0BEtWIlReMs)T1 z>8CvVUJ=wBW0zv#)c;kM=2+$fI#2gS*8D;=ck<8bsMP=1KAzLjIjT0MbOaJxz^Pp z$Gy03cfB7efOCT=F5(4*#aVWv2)exuzms}`!i++>!E@y`{5)G+^%gKv3hblW@nX(n zv9tp?A6VO=A%NOc?0Btlbq!X1K#yky7zezx5|6Mpa}dAALg;A`hP?bNPHY{r+ib|z zQ5_bKt74wn@RIzXlNYX1=%Im;>1RCoHH?Q9RL&rUp=}(O(m2&u_UwtX%`%$Gyo1+6 zl=BRMp0CkKy1Vx7|0&_>qmsPBxaBd595_d{rpP=iXRT%Pn3|?E$v!;CaEHWIk}e}e z11thl#5@&hAJg1&I#HBLou)Q2O{GYsvNII?N)!@geW2p&#}LG{+Qq*$6Su3c@_wk;e1)Z6?r-0iRvu<6D3353?yJybC+|$ z&GX|1*94TnxJ+qw_xmMj@?DoyJ6>e6fmkc5l&#B@Zy}?+0@JxJU7H8@ehv&}TroBE z94oa@=dgqaDJtmx7J5F-rKaPm>2-F>SXErm*mm)>O4BZ2&LxRs#6~Ee1 za8Jp4X)ahjzTP9}eaWThsQRs$!x(t>md1tR?d0Nu~xQpRdw z&}a?4D3o-ML}VQ1d%hCUV%nzr?4L-j5$6X8(yhycx+gij@3gSxdtUtQgO}T(W+l&a zvm|9?j*JDT+QI!J!RkbK9(5lSxO7@%EoZ~TNjw?IZW{!ZNh+O?tlIUc^j^V8^r$ zYcvwlnejm~SnMZoHa-vtFH{>Izq|(bom7zXqw$V!@fS#Kd|d|@GAjxjMDWs@A$&GI zbVblEMKQ`Nz>!mBh3Zc$LRj#KTBRTkIkg*wBmUgQPUC*RVj+-nV0jLvry&Mvu6X*$ zj^%Pa(p&Em>B8vHGOgT$VnSS)I~igSX;S7}r%J%xvuH|ej6GjYgR8-ega-Bd@WX6F z$yoftOq*V~4a1D$sP>(H%~xOkuT38ao@ujxb@NO02VlGOO(DZMZGGDew5ivs$qnd5 z9e4#1Q`WR>Y=L;IhjFO*N^k&6ig_HVp^7V)?IW;$h1zu==Wzj9PsP(_?-f!R;fe2! zAS)&;m}7GU_eWZDu#Y@@;bd^TF{a_J0-YKKddhIL{N2mVZ`*Z_LP>F(Pi6*)rVVIomJU-MZy> z_UP^PruRzypPMkU*U>75?IGR1bpt_RUAi!=LsYtxE4lt^D(MeG?%eE&kyu;6ZhfP8 z@@^ZKr>C?}h4Y@cK2Jcy4oK~-J1}uV*wgI#+;P@9v%TD*{Mwolli0{ht%+^Qw!)Y) z1cdDAQLH?fx;?ps2>3QK!n4VAKD>a0{&6iDBvHVi=CP){LHBz0*lm=_nxiiO432SL zEovF40rJLf)HOH14=(w~*8}9&-!Qs;j((=gQ_|Hl#meMGKmc0H^$kJMMDa9Ub7Fw` z#$%a-Mt;EB_p{ZJW%eZ`ocq7;pX>91RieAo~6py^#g}Y*X4$Cw+-;u zNZdmDDpx8crqY2@rVUF%3y1`kuO~((eN5gsP<(ux1J4fU#G+Gy=jZ}Q<(XkZVMD4h z8CWzz^N@4?Z-eLtZ<~O<4v8ON)?3{UVx4edqs!&bs@0jHLPRdd-RN&h$|;DOS5Ezm zvee`J)e71WI%3~Q|Eli05|g}fg{`72u4K%d)Qm@g_)PP%%UO6+rRrJ*_nqMq?eL7q z__8UHAf3yhEa>qKOX(Fm@5=DoW1JYQM|c$2U-EN1^$YwZTyRUC{1zwt188S=F!a#g Jx{%n5{{v?C2pIqX literal 0 HcmV?d00001 diff --git a/static/eu-flag.jpg b/static/eu-flag.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7353f62c0b8a14c43bb43c4341105f429b2bd47d GIT binary patch literal 2883 zcmbW2eLR%u8poe8#>kL{LCVY7h~jLDk)qg52sGt8+rmdb1^gpHz1 zOIT&{PBkGZGUIi;jF${z-n`5Vqj}EE+5PPC*}u*?*K=Q=&+|O@{oJ4H``p*>y1+qj z9N6OK?CK0aAQ0du*#&^ZfFl4^P>>IqDar;+83t2SgsH&cO3JD#s;UST1VU}I#ul~B z$ju1E7VRxaO_Y|Fma4kWR&CT)4U`s2z6k^>`$iGA2?pDQQbVYr{$~SU0!U@x9FPfx z>;M#y5GWD?z5xsY00NUmD-ZY&gDA*iRDvsSQbEWTP`3aI5GYhZ5h{;bwmL~R4=5sG z8ei@ER!P${5WXWCWqI|^LuI2QRj;(Xdicgx=VGpHQqk7gs=IBciRrH0W@zjEHU|#c zIv#a$b~)zicH-nIZ`|oKK0(3fLoS4dU5t&pd<7q$ka+!v8!4$jrltR!c{eLN=U#4J zQSqb4C6p(>mOgu4O?^>QTUY;@_NKM1{cXoPI-|F*e_(KkIWal)X_`GVJNH?zxU{?? z6p2^Y-A;epYbJ1nm%qmJBp zSoLa?k(C!;>s(BaincL&Vy8fk_HVNP4(!_hMfNAyf4G={Dik6+JSY-y0K^69yDC3J z7r!Y=-v#{PTNkn?@7ygv`y1U_&F73JhQVFYxouPL^LokFbX}pI^rNB5Ay>ZWxWvA= z#BbFw=tU#p35V5zJ%|+AfxvIP=TeCO`AeOf9FeMepW6#a7uHs6r&7ue5JKBW57h4} zYO?xiS5dkm%F_w>tM8fYjX+QTqp7TlU-O!*8Q*{zsEj~&){ZmKJdQ)bC-$<7hj&Q{27$;25njR>Eaq?pn}EulIp!yI!b^AoyKi*}#3M86d4W}p zwec=vl=TtT*s6tCKglh=6!lvytt+Qxy={g@LfKq96kQa4jl1@4yZPNb9AoE@6-7`) zY7v?DB-wD{c zSV&)3vNVTgF)gi#p}#lpd3fmWJGpP?h|mYKQe#1KVR1N)nNkQ_{xw{yzc4aqPo~`h zHdB(tHKeA#0s;8CMT7wl+iQ_Lj1SHB7JB!02yukqVg z^smH|AdsKGI0pjIN^isMsg&yl1}Ez%7S*SSTy~1_WCI31VVF*Io#1VmM~2~gUOgIi zjGb;O=GBhP7MhA=8_JK_O-P@|)Dpty!=6@T@@Te~E`z{7ag2#2JrlF1v&YMHy9{+^ z)(V38E1_*xcinnDof0o>^>ji38-2X4@`1f_a^DG}9-nAy{6fTBk6}gSnlub%?;p0G zu8|N#vJ-e65!W#4<>J2G{N}*Xv5p8tGfOgAA7Dtd5Ws0oXBMc3?WfN9`krl~`?mbt z9Aoqa1cWvV@^IP&o1rG%b(X*MwR!l9ENm7*fL1*G(z{ibXv`;i(x%e0;d#>>&e%hI zDF)pI0ufC~OBm^JpHeaEe)xPSgK{K~^4+2tmg%0G=7jPt33Ngox0)qiZ=qgpf87Ed ziVrzW)%V|2lF!k>;;WWt{r2xT0|Ip-X(Ioy+vJpIa{-sj4Ig4B@h;m%C6I;_-4E{( zow`GBYnxo@`CY#hnSRLzL^FXQZTRg(Z=B@$_S3`uR5?pQjL`xf1cJD@H{&ty$wu!> zJ2y|MI-8H>i0Via-B+53Ay(=Jq-$_pClqejKzZY@mEA-7*Y^sD1quRoS|wui$UB7l z4}`*nnj!Q@5YThrJJk7sKs%Xf%bP06EPl-&oh65%S)ufaTGn|>Qm1YUOP<-Mgo6Hh z9%6l;0G?jWNnB%iG-T+TdPo^b!fwf@v9v0O7LhC`UYbwFUZR*}1i2q-Z!;^mxMB$c zIt^n8_mW7cxt2LQ{TCo=vT$Qv{-ahq=fAfhs^{5M|pPa!$%#y zMOJHVeDR#Z$_O4@5m;M3CGY<*bZwQTZyq0*%9ap{M=oJ(hcAr00D-7vk#w5KM^W|4iEILG zm4pn;R=1>lz!(&$>jywjFhAxrhQ_C!s2{MN=QuBU*7mV$b6K34%I2_^;l%Ejv2%V{ znuGdmvzZ_}r)ZwU>`*GU^r4yj^y89omqhausX2>NNTtvUp<;t6mtM4MWku!X?Qzd; zE?^OJb3*j70D?>uc3fiCr^)zCcouu`?A0S@`;54fW?sV=huZlRr4n;B+_q_cp|vX2 zXtz&QR1iL%j(*nir(HwxyP71}Zpx9l zDve>1$Q}f`7fCSUYN`L|MSKk|XW;oon^^nR$cjQjr%e7HLyx9!A9%?k!)Bu{5>-d&ha zuKJSGMS8|tYP=5uCLq9Dcw*yOUnTrL!nGW8a5`KcOH3S7O#F%m8PpW*x=?#3C ztc@~nXWxCE-U|XG_lca9d8rG<-Lld}?U1po5#_ZlPGRcZZ~CT1L}qd^h=sVv5={G` zv~$K`h{&?*U@b;TrSGm^-d;ARf57H_KP9)@xI9{x@q_O-q`i`T`mP7P8(zpYVXGm- NhskBU(G9_&e*rBkg&hC@ literal 0 HcmV?d00001