From 3f79d977e4a42cda5ee011e2724e59e794a8b84f Mon Sep 17 00:00:00 2001
From: Alfredo Chissotti <20033498@studenti.uniupo.it>
Date: Sat, 17 Sep 2022 11:00:08 +0200
Subject: [PATCH] altro che non e' stato caricato prima

---
 CloudAppManagerSimple/.gitignore              |   1 +
 ScenariMicroservizio/res/CONF/zona.json       |   2 +-
 WebServer/bin/code/Helper.class               | Bin 2291 -> 4819 bytes
 WebServer/bin/code/Home.class                 | Bin 4670 -> 1336 bytes
 WebServer/bin/code/ImageRes.class             | Bin 2869 -> 2717 bytes
 WebServer/bin/code/ObtainToken.class          | Bin 4494 -> 2096 bytes
 WebServer/bin/code/Resources.class            | Bin 4224 -> 4213 bytes
 WebServer/bin/code/Server$1.class             | Bin 1371 -> 1371 bytes
 WebServer/bin/code/Server.class               | Bin 3939 -> 3637 bytes
 WebServer/src/code/Helper.java                | 108 +++++++++++---
 WebServer/src/code/Home.java                  | 129 ++--------------
 WebServer/src/code/ImageRes.java              |  35 +++--
 WebServer/src/code/ObtainToken.java           | 139 ++++--------------
 WebServer/src/code/Resources.java             |   2 +-
 WebServer/src/code/Server.java                |  25 ++--
 antifurto/bin/code/SubscribeCallback.class    | Bin 9191 -> 9008 bytes
 .../Domain/bin/code/DeleteHandler.class       | Bin 3273 -> 2072 bytes
 domainManager/Domain/bin/code/Domain.class    | Bin 4476 -> 3700 bytes
 domainManager/Domain/bin/code/Helper.class    | Bin 3325 -> 7170 bytes
 .../Domain/bin/code/InstallHandler.class      | Bin 5240 -> 4090 bytes
 .../Domain/bin/code/PriviledgesHandler.class  | Bin 1826 -> 1826 bytes
 .../Domain/bin/code/ServicesHandler.class     | Bin 1951 -> 1965 bytes
 .../Domain/bin/code/StartHandler.class        | Bin 2824 -> 1960 bytes
 .../Domain/bin/code/StopHandler.class         | Bin 2833 -> 1957 bytes
 .../Domain/bin/code/TokenHandler.class        | Bin 5520 -> 5525 bytes
 domainManager/Domain/bin/db/DBC.class         | Bin 12074 -> 12038 bytes
 keycloak-19.0.1/data/h2/keycloakdb.trace.db   |  31 ++++
 27 files changed, 187 insertions(+), 285 deletions(-)
 create mode 100644 CloudAppManagerSimple/.gitignore

diff --git a/CloudAppManagerSimple/.gitignore b/CloudAppManagerSimple/.gitignore
new file mode 100644
index 0000000..11415f6
--- /dev/null
+++ b/CloudAppManagerSimple/.gitignore
@@ -0,0 +1 @@
+cloudapp*
diff --git a/ScenariMicroservizio/res/CONF/zona.json b/ScenariMicroservizio/res/CONF/zona.json
index bc770da..7a6bdfb 100644
--- a/ScenariMicroservizio/res/CONF/zona.json
+++ b/ScenariMicroservizio/res/CONF/zona.json
@@ -1,3 +1,3 @@
 {"attiva-scenari":"IN0",
 "learn-trigger":"IN4",
-"luce-antifurto":"OUT1"}
+"luce-antifurto":"OUT0"}
diff --git a/WebServer/bin/code/Helper.class b/WebServer/bin/code/Helper.class
index 6bd7d5b6b5b7978e5a12b325d22e6157c128e468..3300cb13fbfd27a0e2c9a4a3da8df66e7e5040bf 100644
GIT binary patch
literal 4819
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
PpJ}Di;w=7(zoYVhbwZvY

literal 2291
zcma);&sP&y6vw|00u#nT5z!(FLPSUc8qwCa1`$F*f<UODP_(~><dFoEnK(01IXy1B
z@9B?CH(k1M(RLAg>N&1^`nU97Xzlk+0tQXbfdw=3-o5v8@4Mgo;IDuGcnM$%4|KGk
zRYSl)8`=fBcFc!ntY})fSZZrWW;}uR$%0kzrUY8Uk@XG)(V;;%a0JEy^YpIk$r7#X
z3Y|_a`GE>{Y}F}PUfOe{S&Hj8iennO3>-(dz=<X{0$N#l6fFh`*P{68Fhs%1#UtxF
zdT>(1DFg4I_h1UXi9j$Xy~M63U4cM2axbBy4`(!-HPDX%f#Hl@in$dlW=SuW_q?(z
zorltiEvVPI$C*5<m(0$UR`!l`%eLjp1!-ob!+>q!<f6)<4}%7V5E3{>+MZd$&h85I
zh9mpsrz&2#^1A+ET+lFLU=(42p1t}Tjfi;U6g(!-7QUBIs9{76jH&LlWs0^dgSaSg
zYR++N#~mzKgI-<^I`Tn9y53L_F&6lBs3cw2%*oL8P;<M`lOQIT`znnFE!!L1wkuYa
z?pFo+8{OY9P=4?6Y?h^$x3j*dSuEO*r1E`VV5rfziBaf@YTt(jt|QJc>_pjg<eHt#
zS+*l*O_y~yZF^F~4OabHo;5urD%;!A(J_fu9n+Z6kT5Wdj~c|4wDuc7Jy3^PU&=`x
z^SGs9!9Ws=d-lH6X7i?FW<2RoN}gQ<skCP6ZEe(}LN6Iu#tJ9JESISnf$?U-eM`%=
z+~XQn_vjp#WQq!uWv^gcI#Re}Agwxo%pZ!hXJ+oNF*m8OpQy~&DWg5PHRh$^Q%1F&
zTx`d+t=M8ZwNe{s9UHi-roCIkXFSmZCi`p+UkDt@*jX7{kj1h(ioh(tn8{MXk}H+c
zmUPz4ts+;9#z7H?Hz|JUFeAs=7SQ)o;IQdiCMVEWwm>9&_$Wr1x?Zupd8KOJ5hY))
zT$rhe)vv84J^7f|)o8Pv-_%+>a#x_!@4>QJt`{Fvf~t)@6Wkl<2F=Brh(@3zlb4zM
zsw@AaccS#PU2!sUzMu~INUaT*6oL27=e)MnPY}En(9Yjq@~fXu!Dn0aImEAg5%`L~
z)i%(H4w%@YqcXjN09yGR`3+jMiq5g)_><2QFTbhc^jH<=mdDj+73asRh`f%~$7nzo
zG+yC7=*DTBU^+dxfRo5@CqPz;q%35ebhl25lGM#$o!ys~qQ}Lzgw$x{kfuK0q79G(
z^s>x8{=qrJx3es=pR@r)aP9zcyE*Z)B3@C%9}Z6pkvL4^1rkTd8|7P=#K-|+t~v2t
zMZBhnKOUYqPU0mJV<cWCae~Av<Xt^L%%i~bRsEab=_&~vjgs-fPtXES5omqJm6nE{
zU&9Vp+R$Q5Q**eFV%`0FngzHu{sNPm&oQ;kCfwYdZ21{o<7dA69dlLO-gx@z@23c^
zT&&___HFGK`UZLEAvU-MskJB0)f<$;6!&JhdlTn*6^|m}!y^d%Ljw(yuW(BJt1&J3
z4!mLv^`&;erBr|kmSEKroTobd`d(mTlXBkN2s~S2eM-qX&*@%0g>Ju$Tl8JvY7zz(
QeJnM9TceeL?Vm~cKM=wWy#N3J

diff --git a/WebServer/bin/code/Home.class b/WebServer/bin/code/Home.class
index 6c09f94b09cb75af9bab8e792360c2f0e093960d..f3684190f0f55f28da72773e5c8c571f7d4ed731 100644
GIT binary patch
delta 668
zcmZ8f-EI;=6#fPlmo7`8OQ<X@tv{$O1y);s0sCV`TcyRcCbfx)ZeYY!Sjg_$&?|3z
zfo3m^z6CL9QDftki9Uso-~*`fER9}xG3U&g@0{~}XJ!u5eM$QE`@<oCc~tkLcVXGE
zH}w|ZbS%Sc?0wBh5~3KDaU2O(^DktBNHR!<S?AsSQ>WGR;Bgr#OfW<m+_|SW_;TBH
zxarvLcmMRmAWkp{Pjq9DdP>G=Bp5<Aw|2Nywyd@#;tWIVnZBcIFC3$(Em@YnTQO`$
zLK^-crWl4C-gPvOFN6$cL}X>;kazDhjRcA~FXIAc-Pf#?y2v2cjs)bK-42&<8COJH
zm2nLP_Xm5dMNyJ*9rFysHaF`V-0rkZn^&JR6sIZ!9ZlVAXh(NYbbCy7ANfb3i=?C0
zu5)dr-Qpr{xOwqaVU;2Je+gYsxm)8M$DqC<Du1Ul+S+RMAL53C>Pwu&0(@Xtq9^ct
z0LREKQ<Ngl$Oke9U_II}+$8J4K!|J^x2VKR{RBUq1KTs7A+BZjF|?jj!hJ;EBAD$X
z-c!^*#tMQed_h<hlu3f#co6aTJ|ew+fU|{w8c@!?$FvVy)In3`)WAM2ZK(ovD0=+9
z0e=C*w2zR`C?t#^28BLH3<<<BiBaS!nx$wCNt7@~8pp9g!#uzQZd0WK|1Ts&h$2>g
UCJ`qm;0^%-jdYjR+JI{P4>Nd$&Hw-a

literal 4670
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
Xe{VnEv7hfUI#RX*@8i$-3j+TG3DC0;

diff --git a/WebServer/bin/code/ImageRes.class b/WebServer/bin/code/ImageRes.class
index dbea630fa79283942da8b0301e7d631ba032c7a8..c13d555803e889f009199779747dd92ec6f25b9e 100644
GIT binary patch
delta 1063
zcmYjQYjYD-7=BKY-IFYbPAR0YYLS*((k2a3s*>WR#TL-Cl@=(m6im}?x@EH)x*MP(
z7NMxz!Q%zFeCLxxoH3Mk#!t>L`oX{8C;x?mzPk=H&g{Hr&wI}EoacScd4Fzx7}tJ(
zzWfV-xACy1-DRtV>5dl4#;7-E+9mlTOKsYWq(D157#holH{(nVIbN@2IcJP1hGZfq
zZ>ulsZvWZhOu;T0J;@^)(&*&K2<*UX@-LPj?h@GL6NpNoWDtD7soGN<uQRNjEu1c7
zs-9_OdgtZ}^EuP?G;|{z#cqa}StdZHVwYB-2YWc)5+w8;`83p}_6qc2uZ%?YwDc2m
z(Xl<l_R`*b#n7-1`#BB>ypIp$MC5pwV^Fq*+w`1I{2@b_C^d{=l;e=VVH}YYVY`^a
zQGq;E24&i+x-%Mb7#BE(35Hdk(>L!Kfk=i(B01jYFP{+jH~<ta$EAZeV^W|9a;CvG
z?5PpMtvI%844-7^NR0OdW;OrctS0h)TA+j(xnJpTnWa(!OH3y-U|Pgz!V*wWW{Arg
zTPu8jN8kula7zBBWVg64TqMYWVY&yS;+c*eLlvhv&Ip{vyxgvKH%x2z6z4fU6Iei5
z&Z=$fb9qBuWM9c1exl)~hFiGJamQElwS2^XUGoit*4de<R3|O7$fEd8UWv9xeqh)t
zS4Y>&KcbE7zWg(qj;9d<!v(4(Orrvo;zijSYi_+nIe!K;Qe4Dk+IbORA=(+E?4mpx
zYhAd9Xle<GT6?;VR94ZIXF+0TZ3W%=CwL>P>T1)QPmv8_ELF$5P4DSy9Rp)4$kFmp
zmg`E>u+Eooa7^cQ1mUA>)c-%O`_zRRofU$wW(4aft|OIkitF(bHY{KZbR_6EiC5^=
zw$KaQh~0P<S+rs=+Av5ro2Olq*a{2Va0=VW*96WJ;u3Yo7XfAHIg%WlV*`DEqmkoF
zT%nZ+l|DzuQ$P5|Q05$!uh5w2ScXB@F}MOVpL&9mL+K^h*@zx_JoFR1)G|H+>Nv+9
z6Oc$rrcdP8v61GWR-;ZMZ+D=X$aU<bBDzT6u0T>8>>o<f`%nKT3XBs$7*`1z!Zlo{
Zu>mb1+#r4##BcFEB{iDg#XUTL{x7{&)^Gp-

delta 1234
zcmZuwTUQ%Z6#h;olM{v`($G+b%0-HrKp-ubs)2%`f~9iNwt`q|8<J^A4Kq_R;o>b-
zsa9&O^r&ssYQ5GsTh}rmtkva%Yw7BnPyPdcgb&s|>Eg|`X6=3UIeUNm`}Uc0E%<Y_
zcIV%X+W`9T!!7L!6Xi*3)=tbBM~p>B{>UQbVYG0x3PjK*qn@eSsK9RQVGwpAZH!sY
zkd-%64B^noYJan@Cp^K?DX)8K8akl(v6rDNGfSCK+f0|^F+9!@6X-#&{L9n1w@;uS
zPcYn{Hk?C7&bG{)F<_;Z7-~Y{kyDBJL^NYX$McSzcMdyqMq;*yV?f?fn)J8}KgggE
zu!g5_fMZzTAfA@0*Q||WRA3A~2K8h%pPSJT$1?)Y;*h-H-QnjrBJdn0WTn#E_&kY8
zTBc)|PMfo28ya4~QH~b{j^QPS`qlm#xvcCjXy7;@kiaxURn9O|TZ|7FiIg#yqh6um
zgW(AcDHt3lT{dZk?f)mk%{@ABFE=A_s>C#zwQ|&b7qSAg?u;vE4QIwm(UjxaY=yO8
zqyltRmVk}ZlB<Kg)KhH14`s4cJcqo1ig|`$=-vRc2{Rp~;bqJ;-Htn|MS&%}BG0L@
z=GREd7QpcM;9}CSos4Cc;SCfx&Ir7Tx8&bycZH?lEZ*UGSKu7xW!TrmR^*6p*}KZH
zYqfu8In~ZkClW5@pT6T2S2cW!&p1AJ*<O=<{I|L<8LHc(?WJ$Qm`>Ps)Xq<5GfC#h
zSF+0A!oHP#{ub}|G;|sF*UJ^ZD1_kw!+WG#A+N$m_B=&(<QaLjWew~WEg0S>>mCE!
z$X>t)R7$C=8D40#d%5*j@X<&SWkuW<s0sv&*fB<7UCgU{1C8rwx{A{+ZAFA)s;>SH
z9$81BeG?s1Yv_vkbYGzR7d-00B-QMT@lC|(V1LZ7tAQtV|2l>yb$<~ft{IP&QPSbS
zr0y$XYBI77f9Pem&lYi9=Q_1d>b!`V8>JR6yX-wB_7e!wI!H3Bu^lz2ML|b1xmN6?
zXZHZQNcTR}(<L@w6pfg`gE)aE817#~nTvP`Z{uOC;1OIz2$vAXCscirU>l&^B>*2s
znBzkZ&QVkPE&>1Gn1YWe$xD-amDtd8r`35BK%qi}fKclOOki{qb5oHuIAd+=Sa3&o
zbL=O)9@(JAC}Nr2q(Z`lUIKD2rJiD-o$PK@Vh@Sypwmv$)kR#pOYDMRcWF~8v2%HW
kaRO*l@G;eTNX2FH6|}lS_+OOlb$m^G8pYq>JKTW&AAGz1hyVZp

diff --git a/WebServer/bin/code/ObtainToken.class b/WebServer/bin/code/ObtainToken.class
index cebfebf5f5c5a64fbcf426c8d9f7ccfdaa558342..f258decf5d5f4e59bd514dc2d781544c5545e6f0 100644
GIT binary patch
delta 1053
zcmXw2-&Yey6#gc^X0w?fMyW(wMCDWrKT@?=8qgXcVk`k0pa`|4TQY{#WH;<C2t^w`
z>Z=d#i}bnY^r1eOa};TNPW#peebVFq;Xh#2yNf)`%>8EW{qDWr%-lQls9AmX_OE{c
zoWiY!dXdG2Zck`cIpJ8kQFaa1->RY=odQRYVh}a0EXPdethr>kW8t2<ia5FjdeF+y
zT$WBzE-p#iDM)9*EGbAc1V?g{9>r0CV;)6w)juPWY^7peljQX|L)?-j-IDW8?}AgU
zc>X5@zCb_24r0APS%*x+k%nV4eA+pBMO)U=70qyCd|zQeL54~znN>|UY@a~EAVcV~
zru$T<1itc8$82dWODkttrllauz&nP=3)%dbiXjYh<OI&Te*_P-okO1EyujBOrGmGU
zmD3+oc@><fk1<3#in;7)!3(}1@Qo)y*pgbMs$hb`Itnv$#oTbdm>Zg$n=0l#zbS!l
zJ-^s?yHl3Vagkw{pJd6=E9tCdX{)2U?WmYWP{DT$QAe&gX-}CLzQ+$7b76rWp}Dic
zwCY{Kyg&)kT?-Aimr08GEv<T-)tXeH;|j-BfeNY&ZTF+C?(5LVUQ?ikMTRC@8l|GN
zYo=k#@v962?jqZLKf2E~!y>{#f*<tIEoF_Zx&JGDdw$t2S2xr7@!ZP1tU0=AxcO*%
z2?wAc00xUj05J%9TOJO>p?Qf=ig18dHT4uM)%66tL5N|Q<|YJbZbk?@5k-P_uVIC}
zDURKxGnGzXx@)mx^>|C<S18?^INa#oKv#w*d7^g{`?oefYp{&c5?)6<aeNbf8Rd8E
zXo;*tO?>IYr1Br)NhL8r5$it9$p*pGsmI_OIJ1F~L}AMw_w3@9JxO*(`5V(SPwSY;
zM3d3P?4P(4z%-TcQ{r+mx`Bo1q*s;U^%U@XvhXq4ACUrksQy;!E{Xlvi(cCA$0ry>
z8%~mLLpX>64$(vEKoN&Ag-*=Uw=0oiI=bk#dQhjR+eqV%hNE~uAL=(8$3yht2~OZ&
z`Y_Ll@&y*LN-2*Z@{X7}hr;nQN1S6f$2rD;H@@`-I|;{{Lby)uAyWGWjk;g?&G(Re
B-KPKm

literal 4494
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

diff --git a/WebServer/bin/code/Resources.class b/WebServer/bin/code/Resources.class
index ff670eb776da0489f96d95e76f6dfdefcd67c103..44be854e054a76e300164cafb98b46eb4538e98b 100644
GIT binary patch
delta 35
rcmZor{Hm~F5hE{8W^r(0ZfbBzQD$EH=5>ryIheWh^fm`^>9GL-=_d=P

delta 46
ycmeyW(4e?s5hD+Ga(-?>Vo_>HYDLNB^^8+F_{H?}^}wh+H7T*6V6!`y9vc9DT@L&J

diff --git a/WebServer/bin/code/Server$1.class b/WebServer/bin/code/Server$1.class
index 8a95613b4cd86c2f97bbaee3d062e54c890f425c..38daa28edacff85231424be273ee315ca437e914 100644
GIT binary patch
delta 63
zcmcc3b(?ELHw&ZX<Q|qxT{{L=273lB1_uUy21f>Q1}6r223H1E1~&$625$yE1`h^(
S22Tca1}_F{2A|1Ftd;<jF$$mn

delta 63
zcmcc3b(?ELHw&Y~<Q|qxT~`KH1~&#S26qO21`h^t22Tcg1|J4h244nkh9Cw#27d;9
Sh5!b0hCl{uhTzFctd;<tjtct#

diff --git a/WebServer/bin/code/Server.class b/WebServer/bin/code/Server.class
index ba08391345eca2b494140003a57e34b886273b5b..ab3199cc984e3081670a07b24a4cff0f4914811a 100644
GIT binary patch
delta 1678
zcmY*Z>30)V6#u<ul9^0~woIYz(2dQ~g=E+&5TGmtY-w5ALQ8-G({yOlrb)<BC@y6Y
zcg6DD6~Pr0MT?RYq6iA2ATA&L3pmH`e(@Z?sCQC&Je_mqy?1~2ckjFJ-uLdk(o4ni
z?SHOZ1yGCMhGl)92#H~mKip;NjpkroFl_XRkQrPVsMU-Pm{AD|LxIPmM-rXEfM4%3
z2mKb&(;EwiBxEy8{a+a|qDFr#qmm&aSAiXq`7oQy^7vI&R;*&G1?4jc6%CbbG76!I
zn5Liz#r$tJFr}2iwza8M#&paOF;l@T%;v|kc1<g1aP|j`h!Kk&=#o)^N)c5Gsxf!C
zd1|FA9<J*#qN}4(W6<(lxwB4!hkR{lBwzC|U&I2-*FrwSwt>~~psl!MF+&bT9t?DQ
z=uEMAIBLpRgr!!1-r<n~7lk(u%N49ZEx%<eFIvSQwkAT`YvwJLu?BS_)>=N-F_iI@
zLK&YUc%?OXNI^XsctEIhHKIwxMvJqFpAz;ejo4x-n;D8Kc(bigu`;j*tqQhc8+Y3m
zN{wh&upK_$V_!UJI(Az0T@39NJ9(|3@tgMAqTS;a8!ON3`7%1N*9zL;rH+|WA^Zxu
zVDfrLgSVR@Pw$QCMk3y0hT;Lg5f6kzx`+TncBaTJW-OeD`puY(9@wmc1Qqln#P2xv
z*F}hBna9okNYIFzF<nBG!LIvb)-rA_qlAhW7>}x<-{>~Usf+|{5(fE@n6Ev|pz1Nx
zpNN`WdQZ6Dyzk&qenBi48nSkopcQe1%AJX?p4c)DTfQD=kj8l;o?yt$FgAC_jX-E?
zxX%p9IF6^RR6I=^Ry1YQ;}?5bWt)U&8JI5PdAuOvgn}0_Oh75WE|u_3X)WcBD|iVn
z^9xc<Ng-ZU@ERO+$XMKn#+`TrZ;E(J!703b(plp;qu?F9%a=J9x!%VIB0f}b7G8eH
zIlWxON0j+qW5CdZMyOj~chGM}tkkPuI3wd6K2h)~&t+5iY4UWDPV4dTKb$SXWwPUw
z<vhMw&S78iJ#ryGDzC`?R>pU@A>yXB=lA@se1rYKPrBUfHoxYoXLq?%sS<u+DCLS$
zN(pr|g~NS`2xh>EEPC(^8ZO{7nm;Eg3nTQ?!Qi0r3qne0W;ENYQeYz)gD+{c)Ic6N
zxr8K{5S9H!W-`qy(hz;BOP!QLPSa%9D9Ng?IE5*;p-~iUQcFfr<`vWjl9=PQtL{<g
zUPl^>eCmTKEb)q(LlZT763f(;qgd^gG>H(B*IV)iuTyhsjwCi~f+i)=qB)ajV@d3A
zr_tflgcSB9(dkzArP1R{p*M-XcDEWHlZNh#`zI)4X(WhxV2pZjg6_}+>5&P{$I>`V
zc1OqTj-_$jSDnI>W8yOt#8Et##7Xy160cmu>%~`a8kDy8&LZC{i~%2K08L2Z{0QZ?
zgq5>Ox(!*dvVD}g9_Ux7Y`K_8MVW)ysG=rUjRlxXjmVAl)RQ)1KH8{Nb)be``Vz#k
z6i2WHC(ulHvjs!vsi9oPHryiG?`X$8>M4K1N44C+a;Tx?qk~PuZdQ&?+I|nK#$L7<
z23w9OQWQb~vi>E7AYxR6$VBQ2G@Mg$g_Hutou=_?T4&)ZzPXQe;2N#637d7DD7RpZ
UKjIF7DuEp|Ti;Lk8NWjN51A`}{r~^~

delta 1967
zcmZuxYgANK6#mXUxOeVcQLliG$U_7L1g?mLf@p@6BZw)cpr~AiD+~-X<DD6evZk`E
zOiMgjX{9|Zd)PzGft<25D^q)DX76|Z`q5hb>Q}YzAi1b!%{u4oy}$jPefQpHAD!@X
zrgY}dW5)r^!B2gX8WkZj*o%V!BP>CJQ-CaE1d<s>b!i(k)u;J8)W)#k^>;8N>FXn!
zFT{|VUw_5AxUEa~gsTcxN*IOF0u&izkiszf3dHRX>m9nmAO<xfq?34=gX@-2g>DDZ
zFjl}g87_=xaC!pmy4t848%!6Q85;w03z)!9h-py?>By9kg(QZNL5eKg7}h-9%M8t<
z3z*0-BH>@B_ty9VTDOQv43kRKlEi<b-lheEYB18~^Lo^7z1L%6O1eS;zlc1BiT@9z
zu(h600wzhw#uOQL<oE3>VugL@va$+LWGad&+I)AxatSJ?2`H5@9c2tTyecW3=dq@g
zat7<N`bG&Am?>bEj7n7TKGsrO&EV+qYC$a&+SqOuVy=v<F^_T)4%BpN#yrE&dQJ9%
zRW%}Nh-P6O(bVEv0oR!{3mDRPi7kz<v6Qlfe1~O1c0HwsKHBH)D538Rg#(5z!Hotp
z(#4d2u31u?6l*P($XJR-{;Oqj`V9<1W5nN7K5dqS6=)LBY|^h}$l~X1<M@2*JaGkD
zWUR&-zTH~jY=tJE&BS>432Up^3f(lW;{~>CLUzjVqKhxFm663KqX&Mz%~l~+AZWtY
z^Ru>=Eb6Ginhn-Gw^V|Gh#BVwhKziEo{i_NcAKc;Mj5@hiTmvC%1sPo)UJ@KMZ%rB
zKkW5rVQ;{%3b>UaIne=2^-v&Uc=V8jTVOSda=VN>u$lj6U(fF1TGE*4-PHW5Clpde
z+-n{UJwy!m4aMW`(K>XZk+2n35%*J5t0CPJG4yt|Gti@(_lwxUpbS?JGVc73-lP}t
zAO$#xFCO9%@DO!CBI*UiD`A&;-)?#^L&O3e<=H~2xCf7$iP_7mg|W&L^e$8hPvL0+
z`(-?XXZbpzo$~aYjOXzJzaW%ns5mI&CG)Y^Lt)JbJMao#6>vz#VI1MPVtLY088P(p
zwc-rt>o_JLF5?X>=6l6#y8?!z{135QIY}Ke{B7_u$5QqI-{Qz)=lDU#IEOgf<MaBx
z;W_-IV{Y=N5-#F10hdhn&-qB{6#J52l#1Ec+~QoozT<VyLfa1vnY_W78KvP;9|&|u
zf|y9dz(NDcLa%_v0i9epj<+a~w-eeEu+rI%BwF7gO$P0Zc6(tz*daPFoTAk<gC>Oo
z@8UfoBdDd6+#CdGDLii5kE}xLbVZ24u^TDTLfiBKj68zW0}$({#*h(5cC(VB<o087
zeH;bNhmqQksn!9MEK+6+;Hm~?b_{bWZOSzRm|tm+!`-aZ^<z<GlFRN&a@k_IURgGP
z<&}a<APvc@OnGgk=n`G_7}|?nba#hKjG>#wq6ielVKf)_BOJrVBIV{dZfWjEG=|$&
z6e)KOleP?#?ulb7A-4@8w-2*DFih$jhU9VVBEN?deo^I-IQBG8?Z;z-Jo|=;19&oq
z14S{sco;8JCXV4XP*n#GAgy6Y^JYR*OsP9W=^jm$%b@gEvs$)*c1xltJCRF8$subl
z*{2X951E*ZoG9{9f&x_2T7yz7q{+DiWoW?+=rk>Tn289gunDuV8FR6drsH0kPY2P2
zV`#={timNi|3Wk6cdVh(uVu+-Wf{;|5j?C6?W_VitA&@sS;ySyU^JZADjFy6Q%KQt
z*j5WjxBbQPU=?s$K(;^wgON_b8A8~opUy(WhyOHQR-(fIVYG9A8t31wmq{)kk)s74
l<CDt-2F}wdnRFM(`HRH*6}|ydppeoaqxt(5-{VKP{syEo&0zol

diff --git a/WebServer/src/code/Helper.java b/WebServer/src/code/Helper.java
index fb2dee8..2d1d155 100644
--- a/WebServer/src/code/Helper.java
+++ b/WebServer/src/code/Helper.java
@@ -1,5 +1,8 @@
 package code;
 
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -12,45 +15,51 @@ import com.sun.net.httpserver.HttpsExchange;
 
 public class Helper {
 
-	public static void sendResponse(String response, HttpsExchange exchange) throws IOException {
-		System.out.println(response);
-		exchange.sendResponseHeaders(200, response.getBytes().length);
+	private static void sendResponse(HttpsExchange exchange, byte[] bytes, int code) throws IOException{
+		exchange.sendResponseHeaders(code, bytes.length);
 		OutputStream os = exchange.getResponseBody();
-		os.write(response.getBytes());
+		os.write(bytes);
 		os.close();
 	}
 
+	private static void sendResponse(HttpsExchange exchange, String response, int code) throws IOException{
+		sendResponse(exchange,response.getBytes(),code);
+	}
+
+	public static void sendResponseOk(String response, HttpsExchange exchange) throws IOException {
+		System.out.println(response);
+		sendResponse(exchange, response, 200);
+	}
+
+	public static void sendResponseOk(byte[] response, HttpsExchange exchange) throws IOException {
+		sendResponse(exchange, response, 200);
+	}
+
 	public static void badRequest(HttpsExchange exchange) throws IOException {
 		System.out.println("Errors in the request!");
-//		exchange.getResponseHeaders().remove("content-type");
 		String response = "{\"message\":\"Errors in the request!\"}";
-		exchange.sendResponseHeaders(400, response.getBytes().length);
-		OutputStream os = exchange.getResponseBody();
-		os.write(response.getBytes());
-		os.close();
+		sendResponse(exchange, response, 400);
 	}
 
 	public static void pageNotFound(HttpsExchange exchange) throws IOException {
 		System.out.println("Page not found!");
-//		exchange.getResponseHeaders().remove("content-type");
 		String response = "{\"message\":\"Page not found!\"}";
-		exchange.sendResponseHeaders(404, response.getBytes().length);
-		OutputStream os = exchange.getResponseBody();
-		os.write(response.getBytes());
-		os.close();
+		sendResponse(exchange, response, 404);
 	}
 
 	public static void methodNotAllowed(HttpsExchange exchange) throws IOException {
 		System.out.println("Method not allowed!");
-//		exchange.getResponseHeaders().remove("content-type");
 		String response = "{\"message\":\"Method not allowed!\"}";
-		exchange.sendResponseHeaders(405, response.getBytes().length);
-		OutputStream os = exchange.getResponseBody();
-		os.write(response.getBytes());
-		os.close();
+		sendResponse(exchange, response, 405);
+	}
+
+	public static void serverError(HttpsExchange exchange) throws IOException{
+		System.out.println("Server error!");
+		String response = "{\"message\":\"Server error!\"}";
+		sendResponse(exchange, response, 500);
 	}
 
-	public static boolean compareText(String a, String b){
+	public static boolean isSameString(String a, String b){
 		return a.compareToIgnoreCase(b) == 0;
 	}
 
@@ -74,4 +83,63 @@ public class Helper {
 			return false;
 		}
 	}
+
+	public static String getExtension(String file) {
+        int i = file.length() - 1;
+        while (i > 0 && file.charAt(i) != '.' && file.charAt(i) != '/')
+            i--;
+        if (file.charAt(i) == '.')
+            return file.substring(i + 1);
+        else
+            return "";
+    }
+
+	public static String getPageContents(String fileName){
+        String line;
+        String page = Server.CLIENT_PATH+(fileName.startsWith("/") ? fileName : "/"+fileName);
+
+        StringBuilder answer = new StringBuilder();
+        if (Helper.getExtension(page).length() == 0)
+            page += ".html";
+
+        BufferedReader bufferedReader = null;
+        try {
+            FileReader fileReader = new FileReader(page);
+
+            bufferedReader = new BufferedReader(fileReader);
+            boolean isComment = false;
+            while ((line = bufferedReader.readLine()) != null) {
+            	line = line.trim();
+
+            	if(line.startsWith("<!--") && line.endsWith("-->")) {
+            		continue;
+            	}
+            	if(line.startsWith("<!--")) {
+            		isComment = true;
+            		continue;
+            	}
+            	if(line.endsWith("-->")) {
+            		isComment = false;
+            		continue;
+            	}
+
+            	if(!isComment && line.length()>0)
+                	answer.append(line).append("\n");
+            }
+        } catch (FileNotFoundException ex) {
+            System.out.println("Unable to open file '" + page + "'");
+            return "fail";
+        } catch (IOException ex) {
+            System.out.println("Error reading file '" + page + "'");
+            return "fail";
+        } finally {
+            try{
+                if(bufferedReader != null)
+                    bufferedReader.close();
+            } catch (IOException ex){
+                System.out.println("Error closing bufferedReader");
+            }
+        }
+        return answer.toString();
+    }
 }
diff --git a/WebServer/src/code/Home.java b/WebServer/src/code/Home.java
index 7fe310e..14d55e4 100644
--- a/WebServer/src/code/Home.java
+++ b/WebServer/src/code/Home.java
@@ -1,16 +1,9 @@
 package code;
 
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
 import java.io.IOException;
-import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.json.JSONException;
-import org.json.JSONObject;
-
 import com.sun.net.httpserver.HttpExchange;
 import com.sun.net.httpserver.HttpHandler;
 import com.sun.net.httpserver.HttpsExchange;
@@ -21,121 +14,19 @@ public class Home implements HttpHandler {
     public void handle(HttpExchange ex) throws IOException {
         HttpsExchange exchange = (HttpsExchange) ex;
         String requestMethod = exchange.getRequestMethod();
-        if (Helper.compareText(requestMethod, "GET")) {
-            List<String> strlist = new ArrayList<>();
-            String response = null;
-            response = getHomePage();
-            strlist.add("text/html");
-            if(response != null && !Helper.compareText(response, "fail")){
-                exchange.getResponseHeaders().put("content-type", strlist);
-                exchange.sendResponseHeaders(200, response.getBytes().length);
-                OutputStream os = exchange.getResponseBody();
-                os.write(response.getBytes());
-                os.close();
-            } else {
-                exchange.sendResponseHeaders(500, response.getBytes().length);
-                OutputStream os = exchange.getResponseBody();
-                os.write(response.getBytes());
-                os.close();
-            }
-        } else {
+        if (!Helper.isSameString(requestMethod, "GET")) {
             Helper.methodNotAllowed(exchange);
+            return;
         }
-    }
-
-    private static String getHomePage() {
-        String line;
-//        String pageIDString = pageid.toString();
-        String page = Server.CLIENT_PATH+"/index.html";// + pageIDString.substring(0, pageIDString.length() - 1) + ".txt";// entro nella cartella
-        // html e leggo il file
-        // txt
-
-        StringBuilder answer = new StringBuilder();
-        if (getExtension(page).length() == 0)
-            page += ".html";
-
-        BufferedReader bufferedReader = null;
-        try {
-            FileReader fileReader = new FileReader(page);
-
-            bufferedReader = new BufferedReader(fileReader);
-            boolean isComment = false;
-            while ((line = bufferedReader.readLine()) != null) {
-            	line = line.trim();
-
-            	if(line.startsWith("<!--") && line.endsWith("-->")) {
-            		continue;
-            	}
-            	if(line.startsWith("<!--")) {
-            		isComment = true;
-            		continue;
-            	}
-            	if(line.endsWith("-->")) {
-            		isComment = false;
-            		continue;
-            	}
-
-            	if(!isComment && line.length()>0)
-                	answer.append(line).append("\n");
-            }
-        } catch (FileNotFoundException ex) {
-            System.out.println("Unable to open file '" + page + "'");
-            return "fail";
-        } catch (IOException ex) {
-            System.out.println("Error reading file '" + page + "'");
-            return "fail";
-        } finally {
-            try{
-                if(bufferedReader != null)
-                    bufferedReader.close();
-            } catch (IOException ex){
-                System.out.println("Error closing bufferedReader");
-            }
-        }
-        return answer.toString();
-    }
-
-    private static String getKeycloak(){
-        String page = Server.CLIENT_PATH+"/keycloak.json";
-        BufferedReader bufferedReader = null;
-        StringBuilder answer = new StringBuilder();
-        try {
-            FileReader fileReader = new FileReader(page);
-            bufferedReader = new BufferedReader(fileReader);
-            String line;
-            while ((line = bufferedReader.readLine()) != null) {
-                answer.append(line.trim());
-            }
-
-            JSONObject js = new JSONObject(answer.toString());
-            return js.toString();
-        } catch (FileNotFoundException ex) {
-            System.out.println("Unable to open file '" + page + "'");
-            return "fail";
-        } catch (IOException ex) {
-            System.out.println("Error reading file '" + page + "'");
-            return "fail";
-        } catch (JSONException e) {
-            System.out.println("The file doesn't contain a JSON '" + page + "'");
-            return "fail";
-        } finally {
-            try{
-                if(bufferedReader != null)
-                    bufferedReader.close();
-            } catch (IOException ex){
-                System.out.println("Error closing bufferedReader");
-            }
+        String response = Helper.getPageContents("index.html");
+        if(response == null || Helper.isSameString(response, "fail")){
+            Helper.serverError(exchange);
+            return;
         }
-    }
-
-    private static String getExtension(String file) {
-        int i = file.length() - 1;
-        while (i > 0 && file.charAt(i) != '.' && file.charAt(i) != '/')
-            i--;
-        if (file.charAt(i) == '.')
-            return file.substring(i + 1);
-        else
-            return "";
+        List<String> strlist = new ArrayList<>();
+        strlist.add("text/html");
+        exchange.getResponseHeaders().put("content-type", strlist);
+        Helper.sendResponseOk(response, exchange);
     }
 
 }
\ No newline at end of file
diff --git a/WebServer/src/code/ImageRes.java b/WebServer/src/code/ImageRes.java
index 122d268..827aa3d 100644
--- a/WebServer/src/code/ImageRes.java
+++ b/WebServer/src/code/ImageRes.java
@@ -4,15 +4,14 @@ import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
-import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
 
 import javax.imageio.ImageIO;
 
 import com.sun.net.httpserver.HttpExchange;
-import com.sun.net.httpserver.HttpsExchange;
 import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpsExchange;
 
 public class ImageRes implements HttpHandler {
 
@@ -22,24 +21,24 @@ public class ImageRes implements HttpHandler {
 		String requestURI = exchange.getRequestURI().toASCIIString().replace("/secured/home/", "/");
 
 		String requestMethod = exchange.getRequestMethod();
-		if (Helper.compareText(requestMethod, "GET")) {
-			BufferedImage image = getLocalImage(requestURI);
-			if (image == null)
-				Helper.pageNotFound(exchange);
-			List<String> strlist = new ArrayList<>();
-			strlist.add("image/png");
-			OutputStream os = exchange.getResponseBody();
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			ImageIO.write(image, "png", baos);
-			baos.flush();
-			byte[] imageInByte = baos.toByteArray();
-            exchange.getResponseHeaders().put("content-type", strlist);
-            exchange.sendResponseHeaders(200, imageInByte.length);
-			os.write(imageInByte);
-			os.close();
-		} else {
+		if (!Helper.isSameString(requestMethod, "GET")) {
 			Helper.methodNotAllowed(exchange);
+			return;
+		}
+		BufferedImage image = getLocalImage(requestURI);
+		if (image == null){
+			Helper.pageNotFound(exchange);
+			return;
 		}
+		List<String> strlist = new ArrayList<>();
+		strlist.add("image/png");
+		exchange.getResponseHeaders().put("content-type", strlist);
+		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		ImageIO.write(image, "png", baos);
+		baos.flush();
+		byte[] imageInByte = baos.toByteArray();
+		baos.close();
+		Helper.sendResponseOk(imageInByte, exchange);
 	}
 
 	private BufferedImage getLocalImage(String uri) {
diff --git a/WebServer/src/code/ObtainToken.java b/WebServer/src/code/ObtainToken.java
index a22b4c1..6b0d097 100644
--- a/WebServer/src/code/ObtainToken.java
+++ b/WebServer/src/code/ObtainToken.java
@@ -1,29 +1,13 @@
 package code;
 
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
 import java.net.URI;
-import java.net.URL;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
 import java.util.ArrayList;
-
 import java.util.List;
 
-import javax.net.ssl.HttpsURLConnection;
-
-import org.apache.commons.codec.binary.Base64;
-
 import com.sun.net.httpserver.HttpExchange;
-import com.sun.net.httpserver.HttpsExchange;
 import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpsExchange;
 
 public class ObtainToken implements HttpHandler{
 
@@ -38,45 +22,38 @@ public class ObtainToken implements HttpHandler{
         HttpsExchange exchange = (HttpsExchange) ex;
         URI requestURI = exchange.getRequestURI();
         String stringURI = requestURI.toString();
-        boolean wantsRedirectPage = Helper.compareText(stringURI,URI.create("/").toString());
-        boolean wantsToken = Helper.compareText(stringURI,URI.create("/secured").toString());
+        boolean wantsRedirectPage = Helper.isSameString(stringURI,URI.create("/").toString());
+        boolean wantsToken = Helper.isSameString(stringURI,URI.create("/secured").toString());
 
         if(!wantsRedirectPage && !wantsToken) {
-            String error = "Invalid URI";
-            OutputStream os = exchange.getResponseBody();
-            exchange.sendResponseHeaders(400, error.getBytes().length);
-            os.write(error.getBytes());
-            os.close();
+            Helper.pageNotFound(exchange);
             return;
         }
 
         String requestMethod = exchange.getRequestMethod();
-        if (Helper.compareText(requestMethod, "GET")) {
-					// get the html page
-		            List<String> strlist = new ArrayList<>();
-		            String response = null;
-		            if(wantsRedirectPage)
-		            	response = getRedirectPage("/redirect.html");
-		            if(wantsToken)
-		            	response = getRedirectPage("/domains.html");
-		            strlist.add("text/html");
-
-		            if(response != null && !Helper.compareText(response, "fail")){
-		            	response = response.replace("$DOMAIN", kcs.authServer())
-		            			.replace("$REALM", kcs.realm())
-		            			.replace("$MY_REDIRECT_URI", kcs.redirectUri());
-
-		                exchange.getResponseHeaders().put("content-type", strlist);
-		                exchange.sendResponseHeaders(200, response.getBytes().length);
-		                OutputStream os = exchange.getResponseBody();
-		                os.write(response.getBytes());
-		                os.close();
-		            } else {
-		                exchange.sendResponseHeaders(500, response.getBytes().length);
-		                OutputStream os = exchange.getResponseBody();
-		                os.write(response.getBytes());
-		                os.close();
-		            }
+        if (!Helper.isSameString(requestMethod, "GET")) {
+            Helper.methodNotAllowed(exchange);
+            return;
+        }
+        // get the html page
+        String response = null;
+        if(wantsRedirectPage)
+        response = Helper.getPageContents("redirect.html");
+        else if(wantsToken)
+        response = Helper.getPageContents("domains.html");
+
+        if(response == null || Helper.isSameString(response, "fail")){
+            Helper.serverError(exchange);
+            return;
+        }
+        response = response.replace("$DOMAIN", kcs.authServer())
+        .replace("$REALM", kcs.realm())
+        .replace("$MY_REDIRECT_URI", kcs.redirectUri());
+
+        List<String> strlist = new ArrayList<>();
+        strlist.add("text/html");
+        exchange.getResponseHeaders().put("content-type", strlist);
+        Helper.sendResponseOk(response, exchange);
 
 //        	if(wantsToken) {
         		// NON FUNZIONA PERCHE' LA
@@ -133,72 +110,14 @@ public class ObtainToken implements HttpHandler{
 //        	String answer = response.replace(remoteHOST,localHOST);
 
 //        	}
-        } else {
-            Helper.methodNotAllowed(exchange);
-        }
     }
 
 
 
-	private static String getRedirectPage(String fileName) {
-        String line;
-        String page = Server.CLIENT_PATH+fileName;
-
-        StringBuilder answer = new StringBuilder();
-        if (getExtension(page).length() == 0)
-            page += ".html";
-
-        BufferedReader bufferedReader = null;
-        try {
-            FileReader fileReader = new FileReader(page);
-
-            bufferedReader = new BufferedReader(fileReader);
-            boolean isComment = false;
-            while ((line = bufferedReader.readLine()) != null) {
-            	line = line.trim();
-
-            	if(line.startsWith("<!--") && line.endsWith("-->")) {
-            		continue;
-            	}
-            	if(line.startsWith("<!--")) {
-            		isComment = true;
-            		continue;
-            	}
-            	if(line.endsWith("-->")) {
-            		isComment = false;
-            		continue;
-            	}
-
-            	if(!isComment && line.length()>0)
-                	answer.append(line).append("\n");
-            }
-        } catch (FileNotFoundException ex) {
-            System.out.println("Unable to open file '" + page + "'");
-            return "fail";
-        } catch (IOException ex) {
-            System.out.println("Error reading file '" + page + "'");
-            return "fail";
-        } finally {
-            try{
-                if(bufferedReader != null)
-                    bufferedReader.close();
-            } catch (IOException ex){
-                System.out.println("Error closing bufferedReader");
-            }
-        }
-        return answer.toString();
-    }
 
 
-    private static String getExtension(String file) {
-        int i = file.length() - 1;
-        while (i > 0 && file.charAt(i) != '.' && file.charAt(i) != '/')
-            i--;
-        if (file.charAt(i) == '.')
-            return file.substring(i + 1);
-        else
-            return "";
-    }
+
+
 
 //
 //    private String createRandomString() {
diff --git a/WebServer/src/code/Resources.java b/WebServer/src/code/Resources.java
index c2029e3..016b080 100644
--- a/WebServer/src/code/Resources.java
+++ b/WebServer/src/code/Resources.java
@@ -22,7 +22,7 @@ public class Resources implements HttpHandler {
 		String requestURI = exchange.getRequestURI().toASCIIString().replace("/secured/home/","/");
 
         String requestMethod = exchange.getRequestMethod();
-        if (Helper.compareText(requestMethod, "GET")) {
+        if (Helper.isSameString(requestMethod, "GET")) {
             String response = getLocalPage(requestURI);
             if(response.equals("fail")){
                 //nel caso in cui non ci sia il file (perche non stato scaricato), allora creo un file fittizzio per non far crashare tutto il resto
diff --git a/WebServer/src/code/Server.java b/WebServer/src/code/Server.java
index 651a807..9a8d59b 100644
--- a/WebServer/src/code/Server.java
+++ b/WebServer/src/code/Server.java
@@ -1,8 +1,10 @@
 package code;
 
 import java.io.FileInputStream;
-import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.InetSocketAddress;
 import java.security.KeyStore;
+import java.util.concurrent.Executors;
 
 import javax.net.ssl.KeyManagerFactory;
 import javax.net.ssl.SSLContext;
@@ -13,32 +15,23 @@ import javax.net.ssl.TrustManagerFactory;
 import com.sun.net.httpserver.HttpsConfigurator;
 import com.sun.net.httpserver.HttpsParameters;
 import com.sun.net.httpserver.HttpsServer;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.security.KeyStore;
-import java.util.concurrent.Executors;
-
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLEngine;
-import javax.net.ssl.SSLParameters;
-import javax.net.ssl.TrustManagerFactory;
 
 public class Server {
 
 //    private static int port = 443;
-    private static int port = 3000;
-	public final static String CLIENT_PATH = "./../../webapp/public";
+    // private static int port = 3000;
+	public final static String CLIENT_PATH = "../public";
 
     public static void main(String[] args) throws IOException {
-        if (args.length > 1 && args[0].equals("-port"))
+        /*if (args.length > 1 && args[0].equals("-port"))
             try {
                 port = Integer.parseInt(args[1]);
             } catch (Exception e) {
                 e.printStackTrace();
-            }
+            }*/
         KeyCloak kcs = new KeyCloak(CLIENT_PATH + "/keycloak.json", CLIENT_PATH + "/params.json");
-        HttpsServer server = HttpsServer.create(new InetSocketAddress(port), 0);
+        int port = 3000;
+        HttpsServer server = HttpsServer.create(new InetSocketAddress(port), 0);//port gets set here
         // HttpServer server = HttpServer.create(new InetSocketAddress(port), 0);
 
         // initialise the HTTPS server
diff --git a/antifurto/bin/code/SubscribeCallback.class b/antifurto/bin/code/SubscribeCallback.class
index 9e7e7ad2166edd8170626d1b67594375f7cf196d..2d35aaaa9b9d777cda775ec555b8757af8b06e07 100644
GIT binary patch
delta 1607
zcmZuwT~L%|6n>svU^iG7*dJj9mIWrqKxT=tw9*{%2N+$bK$%L2AD2awU0fD4EI})=
zFiYPoNi#7lvp-N;&6*}>s%gBiZW?E->$vN}ro4!x^S!J|jx*o)yz`y&oadbLp7Tvs
zj;&6;bmPL;03PP&<Ece<Ybr|FXk(Ll)b2@Ywy{NZ+KaN<h_pygtg9zh*Aodx3{ud>
zcJ-Crlixu&!;#Klt@c-hW1HH0qA|_cY~wR3Gd<tdX=9iX!W;_5)PT8AHKnJyx7rvr
zj49DzXQVf1VT>qI8RjB2l752Esg)Vu^97Zbxz4^fl`r!Z3x{l2&wVPK`K@O^;Rvj%
ztE;H2tgiJ19;>hSE%VXJ*VP(F!F>mbjP_`x(@%fP&4R3agUD`+gxhCZ{oTQEcO)9L
z@=Z13aPzP_=O{>dn{dY>>Y~$KbCgJrcD2opvGN!(C!rte+7$6i;^TyUwyC<t$`f*J
zG4c9ul15d9GnenHCTBiRsh!R|o>oT%KNh=7U3Oaesk-9Ka}c)ba5xxUv8AQEJJ@aE
zxLW8cPC83?mEYx6+g%QJt0C9D$vq%@)kRksx2bEcyDi)KthRXFhr}}BuI%rV>E4f&
zX%r&G0;`2PXhEJlNkD+p;=SE$A{#6y&vl8?^W16Z3Ckm|NnVZ{z-@vlpkRf3^>Y9w
zgJ${yX0d}4C63i`R1Kf)n|nsssx<pY_Njle7dUrGOp?U-rJ~b@hBUCm)8sc4=OS5f
z2<g~|VjROG7{gkO(`X_Irs6D#8Ic&trM~lA72V_W>dFjn7Lu~2&}czu8by#6tp-fa
z=goAxCG-eZ>CmE_0SO(=@%xO>Wbki<HPKMsjY(<robIbv{gG2P->A$keF0acvR~lE
zueu^L=oM-&wrSPs+@C~sUS4gXp?Vig*D+|Je|8Bb3?|4!c~K$X$eSs_0@K#psx_fm
zN-!D?ct?eL&Aa%&tJ^JEM-xIz^AC&n=lq9sRuP&)84GXgW>@0Q%6&_P9PwrSPpUnU
zXxO(%yqA4h{kJa7gdH=9WVUXZfy{@kUn2CxIa~^qIJqp2@Gu@Ip1_>*c+xoHIC%m4
zfjBp4KW#OJxirqF6RgsNzgYaOcZeS<pC!;5za_Bo4g#SW0rgFRJK0DWQU?lh)n5gU
zjMkZIhT{0WVWHv3E-Z3xNqo&cPlp(@<Lpv3g_Zq_xESTI(l}-QdcXT*(qM&HSHQuQ
zSin_sx2v&)m8jwxJkGV~U;tgL!FJYSFY9oS^*F_K7~^`JX9IrVQ@Fwn_>GPDlg%`<
zg$}mT!!{OhqvYGf#SHdy3ENr05CiNG%4WS_nMj^OmF)EL<<}9GUAkx1I-B{TteJ@~
zagUrG$mF2>ORs8tP2&NLO5-7oZ)qIXctqnn8sB|TA0ryy(|A(j2O2-r_>sm>_?e_j
Ml~iLq!wGo)1-*n|vj6}9

delta 1829
zcmZuxTX0iV6x}POO^l(Br0+IuQl^X)O2FZvwq+=_l#aHAwt%3Prr|cEwD*?erYHz)
z6~#V8@rY7E6a^9R(EtW4h(F>eKRSN+!G|CI@aKo)3?DGyK8FaQI=Oe<+`ZObd!Kzy
zGP&}4gZ=95smnyP43}f}S?SB2ltpW8=m2GI@kcx%-PFS2sA(Eu%}$l*bihxwOh)xc
zv?~$_hq|<OqdydoWWa&VqBVWiyl&9LM%3(&nr%@-H*DAf%8+(RL7C9wz*aGyUJ&d9
zxpbpXYf(wHx*6(@hD}a1KzTCpe@JPt&4I9NCpV&*&Hv4}QxK*DQ4D}mf|@CYQp(&d
zT|HXBtdiUd4!kJ2w6NA^3}{yD6!SBF#4F-P#t#@3mowL<ziG!?*l)$#4q68xyjkBD
z8~{0+>f73C8yXs0JWXrb+dVZN*zlgXo#n-Z@Hlf89|GkE487Y2pa0+0_#&Df;W^sy
z0S|CGYr}`4$LYmUG43qf`Uwv#+#g6zx8XQwW_Q@=<7luyWcaw|2~c`+sIl3GlRSNs
z*?XeXJj8_Pelr99Ue(JNBFj~Zuf#%^8!^Ug`@J^Liau8{z80e{ca;t2L7vu7KpTjf
zevckC2K*kmhEOmX_U{N8y7q(zAV;IFYvH<He<Y$ste66oi>9pdG%GHFO89GuNX>R)
zhse)fnEDa{yF_#L0_+xp+2z(j45`TJ>;oLB&1sl3%tvzxrQM-2O0$y9ikD#}H(xV|
znsA5NL|DXfa^~;Bt1_RX1$<lhMoa>BGo}$3Yx(Up>?I3!o&7uK3R7Y#?`I5)(fmhT
zud`qV3w&JeluY36uH<+4WO^>8GLBIOjZ+03p%pYqPg4xC!x?0$$m5)&oWsVVwcr~2
zRu;Cg?{H!9J>L=59HM%qnJgS)&B7v|M>?buZjuh!fV3E)>)if%)$J}ZR3rx!D{?ud
zG=)&Y<N$3~KED<H!sLnKmNH2`M3x)0*9zZk<s}z0!s5LNalSju;xYH#qE@nOv(ohk
zrJY<<uHl;d7)u9BmL_#?p<@Z7pGpog+f`bns<P27T7a@?{SPO`@m*>4TscA~4~npu
zY*<2hSV|Rm?13)36QyT+77gClSFygDa#2HNSoVN^=iO#_r`y<>w+G`FDY)T0U2Qr;
zi{{4Z_bEI_6sPLBF4V+HpP&^?xbQrOD$dc&3$#%_;&gn9_OTF~ln{>QdKs^bqbnh+
zOb9Aipd~p4r#p=$IccKCTl_d@^d@EK(=!eyW%S0mcA|8@X!Mq4YIhqPi_@R$=dqL6
z>7C_@B;Il_z{$b<IJS$Jw_&gYetMM0C7*nN)UhAsGe@Z9XdMszN%Eqe2fvb*qk&do
z6|F`ib)t!S&`c4u&<Ix3eypJhw9-keqqA5~m+%bziVbuP8|e=`OMhV#fKFt>k5X(#
zB{Wo{dk}R9;wk>O??4|@A#|Y!Tlupcy%>Y8ek?hZdW$-(6ue2R__{$lAJ;ia8=HbL
zJ}efD;|+f5<itKc#_uS6SK&d0?<+j4@QB2Ae577JR(MR|rwTt)cuL{t3cpl1sql=#
Ta|+|Qz(ws`@Ecsjw^Z;CDF3cg

diff --git a/domainManager/Domain/bin/code/DeleteHandler.class b/domainManager/Domain/bin/code/DeleteHandler.class
index 6e3d62164834c094b4f1c82658e2c41d27bd5236..0dd90e2686f440a857af2a509f6c9ba0234802d8 100644
GIT binary patch
delta 1001
zcmZXT&vR2%6vsa|FUftR&$bj2Nq?YJiw$W>K}%^Ow50_b>@R3VtEhzJ5mM9lY7*S2
zbkGqux?rx%DC5R)p)0kUm=VXV=-$152&m_!E}U`Zy?cIr&;8ze&bhxOKkttH{?|{x
z0H>+%#3t2#n|?)jWqEZihRs2TCwS5<s!=<^pu<x<ZSJW%7c@r{`}|rtvr+fG%=y*j
zrRA#|Zm|&~#fU?MQAK=sVWaR)AyX}Q<;-fMR`JTY)FqpYB3kk{3l%RwA9Fa)v*vba
zqGOyBnhA%KOqvIw345HJ!}FXn+M4d1Vp=ofaE4i-Hpi@e=DIbsf1I-p=K{KD$*s=$
zo0@s^mDQ`xo1d+|Jqs*qmK>JNpVpD%HWw7S;?*04YBffJRfjcRlB3pLue9ja>xHtr
z=Fe9B8>Pb5mg0;FMGl)WD{5|s<DIz}FY}6K-QiVUGdIHna+I#J+qme~w|uYe&iW-+
zVGXD9!RD_!yuq7_<bM$7YX0V|?|D+Hitj1Lh8N7OaBn`B`hTqgwt~Y|qKa6lQZMf2
zX-bNoqEKb#+^XAf=L=q`>ee*Z6oaN;^_eyMn%Xq??Osc>WjgJI`NJNH7YU(orP+au
z5S6uTy7nZtuZu6RV6UtdHUv=y^#hg+0eqisq8CSc9&6HdkB;<S9<+$>jP&%0<BPzd
z?gkEl4YWA4lx{J!o(=!nj@$_%_ergf{z$s#Xp^yQBpGS(TsE4FwjtZ<vjCF}x5#F7
zQYRx#PPchfJ2^nleM3i(*W|^Wo|VxS7k8~oC!#_4vgAqZN;)15wvyY-P~;<C_*dpB
z@m|~Bm3iLhgSIVlTa>(9IVi(T8F+|Gc^;>e1EM9RmHpx!;4lYyhC^f+Vp6PWv1S-y
zg`?7{lUx>Wk*rXi;w^bmH<%LAX`z}EvUy=S%f~XTpUAO3<z4Pd^h;s9@-^Fh%Pqd+
zLrH`j`XLETclRTbBIJ9-U|Xp^<bY=CZ!{52QDg7MWkqQgG@fh_mNxqGzb$%*+CLKc
B&7}YU

literal 3273
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

diff --git a/domainManager/Domain/bin/code/Domain.class b/domainManager/Domain/bin/code/Domain.class
index 4eaaa810bd027dd436456bb3b41b6ae53c2b05e5..562e1ec451c47c50594506a54f6d68ba8cbaeffa 100644
GIT binary patch
literal 3700
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

literal 4476
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
L@E`n_W=p&VCIZ&n

diff --git a/domainManager/Domain/bin/code/Helper.class b/domainManager/Domain/bin/code/Helper.class
index b760e60058e082a379063c67cc5ebeba2914bd45..46540e3d67e5e65421b6127e28359c2ac99e119c 100644
GIT binary patch
literal 7170
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

delta 1705
zcmZuxTTl~M82(POo3q(nBCG^hsF!F7umOTWDUJ1lRs}>rQ7l!o5u!$ELJ3;6m#BEF
zt@UzxqqeoRR-Zb9FA-#lI@766UpmwGK6Ki?_Q9u)qox0@sAJnn=A8dO=l}oneg9<-
z*FP}TAOF5S0bnsMpH;&-DinA*R2>?0G2!0Ed?Fyt_UAG%OND{y9Qiu@C}5Z=Zn=v@
zQmSV~;#a9i+>pFxF@v#c#rn$G?QI>jwzaQsYHRIK@C;c5*i7M;%WD<P(J>d#GE7g$
zlfCQW>HbtQ9dC@sdgB9W2D!YcxuR1=5M><YIx1j^EpnNnpi)N_s>LZetkqy1M?^<0
z=8M~MMW_aKI-Y}v+<W>`>9~sL5#?B@;{_~Y(0Wq6@o;0juRlH@9>}XH*b*H}iDSE`
zpkx_CPQ#wTovDGuf!JUom9&|@sAC0IibI~T)`%vKW?Nq^#yue=h&4J|(I)=%1oPH1
zxHnaI+ju*4tj7jX%I9kv@e)Uuj+e1X^zs<%7C-P%@mAuzE4DWlPNc$3Z7cTm#QW{%
zIAY>EW@;*W(903mv0dC_mYZXzxXa7fE>Wz^(srOvhm2Pl{Gx{EOPw4ku|z3Ykc3;o
zfDI$qtzgg=7Ll-*SZz=A#jE2<VxLIvP_YmDIS%M}18<6xO5p72koGn*90zqABA}y6
zKpVmlj-xt`;kfu+sn>__j!pa|L$F+&_m)O9G~zwG1&(vP|A^0?!9-uUVPGJ(za^0#
zRB;M!4MRAq;~a#@cpF4>PAFG>%$UktQQkrgG*=kDb1r-?F8i8Y_)6UM9TKrzGlKvX
z&_#_2ctAyU)(=RVK^mi7wyuF)C4u3?DI-wTymr0G(KfvViQIrzD+}IQW#kysvdF74
z3JufQON<$`SKfwhmE>bq7J;jkS(HX4D=&jPrZjPsj>tC@l}*`{vIv`U77Of0UCyI*
z$RXKJ=n6<GB&mq-nS{NVy0!!sX*HOMg_wl~%%;Qzum*GR5qT+K_hE5@{4r?~(b(dE
z|HJ{G0ZoY8NdUJ>*eL3sP*t7dQlb|8m+!FS3zSZ|daXR%3H^_A1wC&)<@_nm69hYJ
z-%=2n-ba+EFE$#oSneLfDi>}dn9H+hX$cwaS*%-AIpMhgnT=G+k=9VvC^|=?lAWb(
zY=qtq5%YQ2Jhg9`+FzmIcDd#d0MIZOp_+0NMj2U$5Fw9Rd!&)6#{wr!0k|I6-+>^<
zXOom5i9>m)(F(?CV!ZeQ7wAO-&u-AJQ{+Fa+sGNmjxHl{4ZClQBiVHg{VkU9nuENx
zYNAeZ*U5g_FI~h~m0ylTJ*LM<(`}Tqs3MLP`Z9Y)@%kv<iYg|bkS-z5<Wj_Vbm$G4
z$`}s2FpRB^c*2FKYO1%;IE+G5y@|%CW@@H)4DY(I@e1nfyWlXY$8n0loOW)>Ecnpi
zi77=hwK1H@xNSF|tx}LPq#cpjmC2Q%5hD07joYc&s8H}x*B4OV&!F#kEtZhBl-33;
zqhBMIqZ2F9jaAr<X6(gk97GFFP%ECMuh=l!Xj0m#?rU)!>+n4~@Dn!R=M1_1LIHn6
zms5((@cJgH%RNs1ho~U*XEckGR6zCV!^b7EtAzafsNrzkL&P-+^}hlBq6vC51z+N#
OL+@*N8R4>-e)A6oV?Y`J

diff --git a/domainManager/Domain/bin/code/InstallHandler.class b/domainManager/Domain/bin/code/InstallHandler.class
index 7d419ee23fccca0ce55ad7a04b3e34741c423673..362d0ab92405a8e4bf54550f3ff2196b0157237d 100644
GIT binary patch
literal 4090
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
Y4oY2DhQAVZC2W*`<Ny0yd+?9{0T-zxLjV8(

literal 5240
zcma)A349dQ9sb^Ali5sO4i<t8$RQ{sgs^}WWTQw3D$#IAKn!?v*&ULF%}&^zASo(U
z@xF@MTGVPiO2ivmH-V_2R*m=3)}FSdhdtD`+LkI6((ldgCL5B9Klts;{NMk+UtT%1
z`xyXpM1=tjIXXNNxyTbJSsUCC^hblSM*rf~YpswYkatof7IEeX<dl`4ZNQ6s9fm{!
zq`-ub-Rw`a#{4nM@i#e6OTvn8u;Ts&d_8qzsEK?mGHtY+rPlgZE8#4(oF+RgFs!V+
zu1{3G6OY6itGp-@(Cro{V#g8&N-#u+Phu#B^;0Z`EijbATY_<GnO)l$v*T7xFhOCZ
zWdj+P*BTg(qjZdrFfme~AY_Lv{{k!8V#Ni#2`d(^vEvDW^0K-wVNz9X$`eORjK&y&
zqCNxX+2J;UqcY}2Y=3R6rPZO%R<OCsz&ISEW4y!!9P3&@HELrCCm4+`2*$!uR~@2;
zQ+%k7>!rik4B|Uw;6#Z@C=(bGYO+G>mf7p9*y)zDoG}rY{pAcBgtHfu1w2a@*DupC
zg*w~uM*rG`9rK@2zj#q9NeonAs>&e$|MCCXUQA~uh3)2GB&M*Bm-q@!5Xh(JGVz=^
zSmXu<)4(j8sAIN709A_VYXAIsHGCnf`F69wxIy_SG`pFpY**<xSzvfSJD9ANn|C@+
zp$)Fn6YHb?`m^eKj|@~}o{k!c`KnZg_T_Icia>D-Q<)|O8Gv{&WGQV=lQ><uCO;Bm
zER>Q8S}Sn|&SYk%pw-Pvxr7rB3QQWrf`N`Gr&kvW<hGJ2%cTN~C6?eU0ZC7&;8e%s
zK_+9_Al%C9`kC)yGCS+RATO6V8!H5S15xPZs1<8;n%r){s;WnW#7e9ZC`=2@w2cvE
zwTB5wov_N!V?HURRf%69@m0{|JoblRloi;oe$yo7E4>JjC~ikBFIeQF+KWa$mMcd_
zB-ScNrro<d5zI#v%{pQdHd^}kj<$qjF-LN&IE$jRx4M?3qLwbw3dAK6s=;|3JC&XW
zTCqXLg%TT8C{w{_S!NNkce%lj#=Q8N+g0KlA|WfG<Dv{fs}qU(U1!%Z)CM*oNBMBG
zs)nyC+v&5uv`R^4SZ3ieiOaEtUQQ)TJ=-i<3semf+kqU?O#4eG-%Yqu;woHC_Xoq_
z>S$EJOfz(GYwT#0Gl1>5s(hu6YuQ>{?cBo!!9>%-V2goklo6Y7gT#%viFQXED;{)g
z`geGy4Y~xiX?Rruw&G?Tw@BQIZ!*vNcxF)O%BEmqk+qTYhht}@qPR`s+t|h|h`HeY
z6Qnn{?jS*BWu;23??~K*yICNKmS}{G2CJ&_RRg`HEV@VHUX_*{6fuWAD{-dPrr`HW
zd=J|xgV`?7uVZC$HH%>yqzE67*ntO0$YCIGVs_ZlSOe*@bD@{jCOj<hh|(>GF;m$?
z?^htli=FgMldaOK0^e8SesIM6=+(Jjsi&b{BpC<RsY*33Iw`R=9#Pr2TcS&KZ`E>_
zFLm3%(@Nkohc%nQ*{7O~j=k(uZs^tWuzYEq7taZdR$D~C@1H(n*3@bIH$8Ctv}rT^
zjDVVv2KHd8`guX(MZCnxYqwaj8aozCrK!NkOv<I1_MNfqzs&PqiE2lo)IJ0Q-FQ{v
zHC5jwiNjVFFW#WKM0Tv0Q@O0Ig&ui}c)=DXS171z#GQ(Y$vYB1QVq%1$7D&IipHHb
zFMdL|Rfp8HQK&za_!)lAJR|CSdvUAdriZ6&rCKn$@k@zc;XRfekJE}Si!@ud${`P%
zg^TnXiQg)uB3E26oW{`cJAo0dx$IN(gHABTo?V5jh~oYSi9h0f&Mby8`;256FOo9*
zggs*){;VebU;0|b;W$dGefU7)L*+^1!Z;hkyf(+;jM|64N&H<+&)hZ9)<lznd@S*a
z3kgN-1m|Tp{w48mHGq^}ORYo;w?V6h3!9Gru%~1!n%BB!jTN`TOSvssaUGvgqs&>>
z&Xqb=Z2v3qd1hP7LNM?t4k?p*l-;Q+q)AyARm!6MLJ&!4Y~_7ODds%ag(st$yF8~_
zcS=P=<ft0mFLWuq?oeR>!gZ0D#S>vjQ6M;J@|a0nLj|T}_lEQc$nFH$tQn8}_?X6t
zVkt_L7maWv5lYpAA$($}E`~`_s=V1dva&2wGnKj+;wUjf7bb_E;C7s~+0--zxy7(?
ztKn2LP>m{G9GxLhPFvi&3K?P)<|)(Tx)>)g{tMRX-p$veqRhA}-z;ivUTwvf1y@H2
z$>U9e%dy*DzJL*hyH^edgrm}3!Z@K^9=e!BJqPLbbXl*?TtAF@yEPuNPKzjMLu>o3
z=2KOA;TZ1l8iW|j3ser6$;ji^G5i|MFTrQ-<PM0Pd=X+ie|gN`5&W7Uj)kUB^JbIG
z2WX#EB%v>y;wwy|_;wUj3_*7%N_S2scvKQ&7gcoPxQ2k|C3PgWs-r2sa)qny7J=L@
zR5Vm}pfZqa=K7{3F(Z&?=5=CbKsWUlU6NZANjnPEK@xL!_QN~X^eFTN1lA?7D4^%e
z^p<)}J&C3F!ZP(zZxZJO^38nTxr(<zbR&uLw;`_`a|vBds4wh73Qfah)s9J-gEiR)
zP3<Up0_)8DB-SV4Z1IZrp4%w5P096kVN*i~E)L}9%rr_3lVYjBSkqfdahC)N%zQJ?
zEa=3gNnEjFi$T)&x^N9CuA@%mcs)@HcHtWW+ptQ#eM?|3N&?c9zT1<yGf-$2=FA8b
znT4JifnsV}l*D(p!IyfwZ!b0lO4>0zqeY2=n<YuKuP{r@;v^ng(cW`U7wReT(Lh1Y
zOj#<^I<}|?bl@>c@RmxYY*7}|Vnuv?pu{XmD_5o7(#j1n3w@89Ly~x61>c@jI=OEh
zW>F`0xgP~4)8Z)#e|C$c(bp?~nFZ>o9Y#8$UD(s$d$t45r@nu<7u_oQDoI}9<8|Mg
zNxaRMAE#eDNxW<7Lxx_R#4pm%Uw2_&gNpj^JMgD~*YujXZj}D2jQmLb{6n4ob7p=Q
z_BV9lQy2L_2M%@!1dJ|`)6gMu>1`t^@)`mKFQUkl)KlbB^^X*^ko2OcqBLJ+BRn`6
zAvEHo^m7huZKgIGndeEY5!Q`Zg9g^k7*@(S6tV0|F`k#)GK|Gkl*5l{{5KsZ@ESOa
zoM!Wm72y464p!h4oQt`XQH?O6jl8c#a4KRrjrV~iT;R{b#aM<dyyo0M?Avh;?xU=S
zd67wC6?T!j8|UF2oX_!e0X{&GU3LYBM_A<Y_ECg2>}~5<%TY0%@3UZwxx8nbhxODs
zE~4zBakPqyut8jhjpA0ciMy~#Z09{-2QCp$V6)i6b-x>zinno@cn_D01K6T@aD`Tc
zE45L$N}GVIwTalQO~JL=Ox#58+@MwAMr|(c)6T^G+H!2y&PBUs;Q=j%9h!p&wTtkO
zwgnGsH{((5PCTaFgU7Y)cv5==N$ojwYOi9K_AYj7`|y<ZKAzS-!1LP2ctIRTU+=)k
z&oNv_$w7?dFaLjz89FNF>8REZVVn!A7Y9*BAU{To_zcDY<Q~E>9rZe`JAmU3qFBc@
zI=1$pM)4q(H^t2TRdg=0!cQS8h?tnd0Uhk)Ne>JZ9FZ6}sIclq53_-PCpx06dXduH
zmAw_{VRjULDLR0L_CO+UAUepkI<E)U4$f<jj&2?Mh_oL%XCbAQ9ud=Zii=x}+`~jN
zRAnp*4~NMpP9gpkDLs4c;8!kBrl!krQAJV=X*gNC8zq%T-`pvNr^@j|)j2$-Cn-i(
zCdHV?IhwpIsPT%MJFLb)CzqEAeU$_1HJ-i6vU{C!-eA$arILlE=Q&6O8q~vr^e7d%
WYNYMcG62_LLPx3bSWYrcO#UB(fJ2l3

diff --git a/domainManager/Domain/bin/code/PriviledgesHandler.class b/domainManager/Domain/bin/code/PriviledgesHandler.class
index fbbf9e14f5bfeb3fdfdb593dc81ba637f67f0e3b..c8289ab2d59f7f2b1ea2b06b30d53620333d3765 100644
GIT binary patch
delta 102
zcmZ3)w}@|pGovsEgA5}Bb9!nC7lRms91nv$gTiEA#(>Go7*{dMYz}1dW|q?tlHSI^
zKa+u5Taa<;4hGSU+B+CzBmItp1tw13#d?HO3aC$-L5)FXaywfZo4_9i0d|JTpV{;Q
DfvXpF

delta 103
zcmZ3)w}@|pGb0xlgBXJh4}&a&+~hFE08S1D1x5zu^wg5c%NSQNDr^p9@@AIP-oYRp
z>35ugTU(HE;tmGUjXFZ|+Zgy~f(52d-o<)^Q<_1ZL54w%L3VOGTN>LR1_5>kfytlQ
F^Z}7n7li--

diff --git a/domainManager/Domain/bin/code/ServicesHandler.class b/domainManager/Domain/bin/code/ServicesHandler.class
index e2272c0dc4eec585dd87c5711b7d282d8e28c8c6..9359e456161d6d383c093f0628b1521f90e8864b 100644
GIT binary patch
delta 438
zcmXAk+bgV57{-6=o0)GJCd15xnNj0>nwjlPefwhM5F>-+aDgJSqa0Fhq}(ao*sXSP
zrIg%kMM|S6SNsvK{2}c94z<?vKF_<}x93^s{%ilumI~%kp>PcjOy(1z%11RdW>-!4
z>lEbEK%=I~N8G%rYCGxU2hGN9b(Xd&?B&h%#np`h+Ud}A`skwDj9aO@Q!D23zT=X8
zcrwqPXgV2)-4i^cAYQEgWC`EKvsAu*$=^8{sCC?ld+HsJa_q3@g-A|iNjN&J11%4<
zSv(VRY*TK}?eB2FA%lF^G^bo}Ng9g<aXg|*uoMqvk|08ms9?EZj2bG4Q%OQtJGD5}
z@smbU(jAcQ5J@uf$!VHdmWg#b*rr>YQtZ(qzWp4|(91D>oXEIgSnNk6z?ekHaK$Kp
znc$8o9+_uJqO9TlAgXE5go+A3zp79<|0IT2GposyXS1P8%&ZQm9E*flkzF^6UvgK4
HTde&D#eqs(

delta 407
zcmXAkOD}^#6o#Mqs^4gpMm23(3w1Bm)?M<2U?Jj?NXkaq1#t^eEUXFLNNmV#q=|^c
zP9(%7wX@;}_zQl8#N~)&F7KRo=6UDb_%HmoJId=NO3X(+4W^(n{w4)pT4>e8eYBYm
z)o3StbdWTaR$n-+u$Q;<i|bnzbkVKp@zG14nYV^L<qRlX<70F8XI7od^NveM@MvD#
zwWEm=b#GK8s?}+U$X%e(DeHKm*>Nk!j<{cm{+&v+J368Rsb@MZUI;pNGSL4-O_8i=
zvUBx$_Bddi|9yfJikvfn#eyUq5;K=}ct1vi^wTD5JI$nMl`qB_kjkJ`#z-(rnjD?1
zND~|4=Ed1%Na&-&AEv+vM{@I6vQC6wWLk12xnPPbX1FH9gAkS^bra7QwVD=9u<Dz*
p4iOY7<A)?3O;%Gbw%OMqv#A5>PesF@_*s?bWhmBUu8X$V_yr*EN8<nh

diff --git a/domainManager/Domain/bin/code/StartHandler.class b/domainManager/Domain/bin/code/StartHandler.class
index 8b8f30ad200657d363580ec938022d219a85a9ea..f3d977cb61865363d16759f6dff3c00320ca35cc 100644
GIT binary patch
delta 1017
zcmZvb+ix316vls(*q+5%NE)yu6YfphIF8x0(1zGtnx+YH>cnlF2Ew&ldvP6{UE^H}
z6`(vIB-EFxS{13ld;6Lf*D4aPMf^<xde*6`R#e(OGxMD@-+bqsnV-|Qhm(K*d-qS^
zUEJN|ta{Gi1x4&^rMjNP;3bonc_my?c_YnhCI=Z0Z>sC(G?R*Fy-vg0@;%pDu2xnn
z7q^^RkR;2LNu0bQHBsKOFWXkjb{keT=rr9%F}q=4DH3&W+itp1^ih*zyb=C1Ff(+V
z6Pg*5x0ns@4U~q8ysdf16m9Q?V}r$$bHdqY^uKCZ)pO;AZ);9FXnL+@UXgxG&O=|4
z1r{~$n=FOD3{FlPEGy!EV0T1pnzG3Xt3vEMZhgh^eY@eTd-E;t>$=@;D^7)XVuyG3
z6LFouS_*>p`L*)A=em-voLx+E7AeS@NtJcQ^L>R+3{?y_oM6rI+n(z?^IqLi3{GTA
zk&X?M5BN}#c_d=7<8Aj3+U%dCn0`>vC$bl_|1Wo>?IV+qNhp%_reE8ao#Z&5ntaCR
zp`FN%ZD?%8ftm=CK1pGgY`5NWI+|K|MPJKkzLakF^J;olsq(P4p<#@tE---NqTHcq
zjFS*s59f^Zjw4vKf)TM_(2$5as3wCvCFt+DE_!8Z^yx0czcQ3Nz+XL5yHlfM0^E!M
zbt3{K?8P3huI73i+APHG^*z@k&mUwr^LNONzTRcJ5YNPVyje(O5}A0H!cL!4^#gA)
z6yaS??~a!8J<jZ}DkpR%(c^r<h<uy5lor-ZTxdSo6|r+%qQ%Jv<0(O+lw8Kd9+Xta
zd4@xzI4ljEke8B`*(68EV=>LnEJtPYG1)#NeJDzUPh-n<yu>0+%0gWdvSobE5QzO=
z?2laLD&KI8E8O5ae&Yv;M;H=&q%|WW{~!$+k#CP9V*e9Wam@vdu@8$yX%_Y}=xE-Q
P-7%^Emi#T553qe7f{f$c

literal 2824
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
V%KwQAMOUsLQ3(BnO6TFzzX1X;<X->)

diff --git a/domainManager/Domain/bin/code/StopHandler.class b/domainManager/Domain/bin/code/StopHandler.class
index 540eb8102388d19bc07bccb7f71471e420e78db5..8351a5751d9822951b145032539933e8e5cc1bcc 100644
GIT binary patch
delta 865
zcmYk4OK%fb6vuzp9?x~{5ecE5;)FmU1>%_0lokw52qY#zAS8yQX;Wy6Yfn?tWX5EI
zV1dMf9UBx~v7l6_o2pWG-WaQuT6Kj~p?-yak?=S}kU)3t|GZ!K%)0w)SL)vvfBXfE
z;kQy_Dq&S-=jP3nDkfd_I1KQSd8|h4eGdB>H2<qgTr*@wW82d?4mczjR%Fa>{r(3F
zNeT+P9;{Rweu^BQI2__rb1zm*ALfXr=x~%{=2>hiJ;JEwxFc0hm=EJ4YTR6j_wFq#
z++cO7a4ih{!nwKGnaNu<uesI;B;6#ZHD?^onn&@WLXvX|D_jejDO{!<E-)i~gq~l&
z;Dupz$(s+#%fXF$wb@imNPpYRf7UkhB4(QtR%XjciV7DsmmKDpH$|&oYIiMpYnQyR
z8Tg@B4(gsFKA4+|3M@E$!Iz5cJ07Q3gOzgN`(7<-P;qc@+LWwb^N(_ORrt!`GPWXB
zZ-li?uM~&*+Tk0%HJ9yN|AMBf=&nhj!ki3pw(8fHy;V(3vB&(a`^>t&E|2}Asc6^4
zk^|FMiJ|yTmKD(iwqRYPexXWeV(1B~C5*xojLgt2_&rM!BCe`IocBcgv$>vh?;Pmq
zYt!|RbbhOP&>_>xx9RV&dnVsu?_$Y%`r5J{S^gxqIQ)cs&&O>JmJ(U3!)GNsYiAQ}
zN<Y2z`;By@ZgZ;DGd0}d{H8Q}L}%>|pO=!6Z84wGlJrhC5$|xNCB2RF1IwIzLnlNN
zP2kff=*p<u*+P~Ky&~;kmyEoRo$^NxP!R5za3>j*=wVswA=%X^RgO!}F&dnb%;S=4
zf{-$6a&B{jyWFgDk6Ya5F%S5KNBk}UP{iKA)pU11Co4q04fYGZl&%t*tD5AdS`ej~
U+(1WcLxL@N?Q3$Eg^#iF3IU#}QUCw|

literal 2833
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

diff --git a/domainManager/Domain/bin/code/TokenHandler.class b/domainManager/Domain/bin/code/TokenHandler.class
index 718e2795a9e48b79ab61d1d3b1b4b946e71532f7..fa4439d5c6d8d68152dc33388dcc0e31d2eb33c1 100644
GIT binary patch
delta 2077
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
W91QU#dk1gQCs}OsX#t&$$bSH%w);Q;

delta 2019
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
G!TcXu9`T0&

diff --git a/domainManager/Domain/bin/db/DBC.class b/domainManager/Domain/bin/db/DBC.class
index 1ca59c91ec55cd7a1f421831f492869fb3195d70..b85887cf5868415af7029bff73b88112a0242292 100644
GIT binary patch
literal 12038
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

literal 12074
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
WQ3;=^-_P+!wz+uyCBDMf@cacjZj6`!

diff --git a/keycloak-19.0.1/data/h2/keycloakdb.trace.db b/keycloak-19.0.1/data/h2/keycloakdb.trace.db
index 9926b8b..7917fcf 100644
--- a/keycloak-19.0.1/data/h2/keycloakdb.trace.db
+++ b/keycloak-19.0.1/data/h2/keycloakdb.trace.db
@@ -1810,3 +1810,34 @@ org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic c
 	at io.quarkus.runtime.Application.stop(Application.java:203)
 	at io.quarkus.runtime.Application.stop(Application.java:155)
 	at io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread.run(ApplicationLifecycleManager.java:420)
+2022-09-17 10:59:21 jdbc[3]: exception
+org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
+	at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
+	at org.h2.message.DbException.get(DbException.java:179)
+	at org.h2.message.DbException.get(DbException.java:155)
+	at org.h2.message.DbException.get(DbException.java:144)
+	at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
+	at org.h2.jdbcx.JdbcXAConnection$PooledJdbcConnection.checkClosed(JdbcXAConnection.java:470)
+	at org.h2.jdbc.JdbcConnection.checkClosedForWrite(JdbcConnection.java:1512)
+	at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:516)
+	at org.h2.jdbcx.JdbcXAConnection$PooledJdbcConnection.close(JdbcXAConnection.java:450)
+	at org.h2.jdbcx.JdbcXAConnection.close(JdbcXAConnection.java:78)
+	at io.agroal.pool.ConnectionHandler.closeConnection(ConnectionHandler.java:185)
+	at io.agroal.pool.ConnectionPool$DestroyConnectionTask.run(ConnectionPool.java:768)
+	at io.agroal.pool.ConnectionPool.close(ConnectionPool.java:189)
+	at io.agroal.pool.DataSource.close(DataSource.java:79)
+	at io.quarkus.agroal.runtime.DataSources.stop(DataSources.java:381)
+	at io.quarkus.agroal.runtime.DataSources_Bean.destroy(Unknown Source)
+	at io.quarkus.agroal.runtime.DataSources_Bean.destroy(Unknown Source)
+	at io.quarkus.arc.impl.AbstractInstanceHandle.destroyInternal(AbstractInstanceHandle.java:80)
+	at io.quarkus.arc.impl.ContextInstanceHandleImpl.destroy(ContextInstanceHandleImpl.java:20)
+	at io.quarkus.arc.impl.AbstractSharedContext.destroy(AbstractSharedContext.java:94)
+	at io.quarkus.arc.impl.ArcContainerImpl.shutdown(ArcContainerImpl.java:369)
+	at io.quarkus.arc.Arc.shutdown(Arc.java:52)
+	at io.quarkus.arc.runtime.ArcRecorder$1.run(ArcRecorder.java:44)
+	at io.quarkus.runtime.StartupContext.runAllInReverseOrder(StartupContext.java:84)
+	at io.quarkus.runtime.StartupContext.close(StartupContext.java:73)
+	at io.quarkus.runner.ApplicationImpl.doStop(Unknown Source)
+	at io.quarkus.runtime.Application.stop(Application.java:203)
+	at io.quarkus.runtime.Application.stop(Application.java:155)
+	at io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread.run(ApplicationLifecycleManager.java:420)
-- 
GitLab