From b5b62e2b0735649380d38da05061178ce49530ae Mon Sep 17 00:00:00 2001 From: Lorenzo Iovino Date: Wed, 14 Jun 2017 03:10:13 +0200 Subject: [PATCH] Added Highscore page, Menu and Registration --- .idea/workspace.xml | 499 +++++++++++++----- Client/resources/images/back.png | Bin 0 -> 860 bytes Client/resources/images/logout.png | Bin 0 -> 2917 bytes Client/resources/images/scores.png | Bin 0 -> 3011 bytes .../texttwist/client/constants/Palette.java | 2 +- .../texttwist/client/pages/Highscores.java | 80 +++ .../src/com/texttwist/client/pages/Home.java | 17 +- .../texttwist/client/pages/MatchRequests.java | 12 + .../texttwist/client/pages/MatchSetup.java | 12 + .../src/com/texttwist/client/pages/Menu.java | 96 ++++ .../src/com/texttwist/client/pages/Page.java | 27 +- .../com/texttwist/client/pages/Register.java | 48 ++ .../src/com/texttwist/client/ui/TTButton.java | 24 +- .../texttwist/client/ui/TTCircleCounter.java | 35 ++ .../src/com/texttwist/client/ui/TTImage.java | 5 +- .../com/texttwist/client/ui/TTImageBtn.java | 32 ++ .../com/texttwist/client/ui/TTLabelBtn.java | 2 +- .../com/texttwist/client/ui/TTScrollList.java | 31 ++ .../texttwist/client/constants/Palette.class | Bin 1155 -> 1226 bytes .../texttwist/client/pages/Highscores$1.class | Bin 0 -> 996 bytes .../texttwist/client/pages/Highscores.class | Bin 0 -> 2697 bytes .../com/texttwist/client/pages/Home$1.class | Bin 1098 -> 960 bytes .../com/texttwist/client/pages/Home$2.class | Bin 0 -> 964 bytes .../com/texttwist/client/pages/Home.class | Bin 2633 -> 2809 bytes .../client/pages/MatchRequests.class | Bin 0 -> 400 bytes .../texttwist/client/pages/MatchSetup.class | Bin 0 -> 391 bytes .../com/texttwist/client/pages/Menu$1.class | Bin 0 -> 966 bytes .../com/texttwist/client/pages/Menu$2.class | Bin 0 -> 969 bytes .../com/texttwist/client/pages/Menu$3.class | Bin 0 -> 966 bytes .../com/texttwist/client/pages/Menu$4.class | Bin 0 -> 960 bytes .../com/texttwist/client/pages/Menu$5.class | Bin 0 -> 960 bytes .../com/texttwist/client/pages/Menu.class | Bin 0 -> 2410 bytes .../com/texttwist/client/pages/Page.class | Bin 1898 -> 3065 bytes .../texttwist/client/pages/Register$1.class | Bin 0 -> 984 bytes .../texttwist/client/pages/Register$2.class | Bin 0 -> 984 bytes .../com/texttwist/client/pages/Register.class | Bin 682 -> 2624 bytes .../com/texttwist/client/ui/TTButton$1.class | Bin 0 -> 1485 bytes .../com/texttwist/client/ui/TTButton.class | Bin 1244 -> 1817 bytes .../texttwist/client/ui/TTCircleCounter.class | Bin 0 -> 1554 bytes .../com/texttwist/client/ui/TTImage.class | Bin 986 -> 986 bytes .../texttwist/client/ui/TTImageBtn$1.class | Bin 0 -> 1351 bytes .../com/texttwist/client/ui/TTImageBtn.class | Bin 0 -> 1292 bytes .../com/texttwist/client/ui/TTLabelBtn.class | Bin 1565 -> 1535 bytes .../texttwist/client/ui/TTScrollList.class | Bin 0 -> 1510 bytes out/production/Client/images/back.png | Bin 0 -> 860 bytes out/production/Client/images/logout.png | Bin 0 -> 2917 bytes out/production/Client/images/scores.png | Bin 0 -> 3011 bytes 47 files changed, 763 insertions(+), 159 deletions(-) create mode 100644 Client/resources/images/back.png create mode 100644 Client/resources/images/logout.png create mode 100644 Client/resources/images/scores.png create mode 100644 Client/src/com/texttwist/client/pages/Highscores.java create mode 100644 Client/src/com/texttwist/client/pages/MatchRequests.java create mode 100644 Client/src/com/texttwist/client/pages/MatchSetup.java create mode 100644 Client/src/com/texttwist/client/pages/Menu.java create mode 100644 Client/src/com/texttwist/client/ui/TTCircleCounter.java create mode 100644 Client/src/com/texttwist/client/ui/TTImageBtn.java create mode 100644 Client/src/com/texttwist/client/ui/TTScrollList.java create mode 100644 out/production/Client/com/texttwist/client/pages/Highscores$1.class create mode 100644 out/production/Client/com/texttwist/client/pages/Highscores.class create mode 100644 out/production/Client/com/texttwist/client/pages/Home$2.class create mode 100644 out/production/Client/com/texttwist/client/pages/MatchRequests.class create mode 100644 out/production/Client/com/texttwist/client/pages/MatchSetup.class create mode 100644 out/production/Client/com/texttwist/client/pages/Menu$1.class create mode 100644 out/production/Client/com/texttwist/client/pages/Menu$2.class create mode 100644 out/production/Client/com/texttwist/client/pages/Menu$3.class create mode 100644 out/production/Client/com/texttwist/client/pages/Menu$4.class create mode 100644 out/production/Client/com/texttwist/client/pages/Menu$5.class create mode 100644 out/production/Client/com/texttwist/client/pages/Menu.class create mode 100644 out/production/Client/com/texttwist/client/pages/Register$1.class create mode 100644 out/production/Client/com/texttwist/client/pages/Register$2.class create mode 100644 out/production/Client/com/texttwist/client/ui/TTButton$1.class create mode 100644 out/production/Client/com/texttwist/client/ui/TTCircleCounter.class create mode 100644 out/production/Client/com/texttwist/client/ui/TTImageBtn$1.class create mode 100644 out/production/Client/com/texttwist/client/ui/TTImageBtn.class create mode 100644 out/production/Client/com/texttwist/client/ui/TTScrollList.class create mode 100644 out/production/Client/images/back.png create mode 100644 out/production/Client/images/logout.png create mode 100644 out/production/Client/images/scores.png diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 79d964b..50d38ac 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,7 +1,32 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + - + com.texttwist.client.* @@ -21,8 +46,8 @@ - - + + @@ -33,18 +58,8 @@ - - - - - - - - - - - - + + @@ -52,59 +67,85 @@ - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -145,19 +186,26 @@ @@ -189,8 +237,6 @@ - - @@ -370,6 +416,10 @@ @@ -388,14 +438,12 @@ - - + + @@ -407,18 +455,19 @@ - - + - - - + - - + + + + + + @@ -857,12 +906,13 @@ - @@ -878,8 +928,8 @@ - - + + @@ -917,6 +967,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1067,14 +1197,6 @@ - - - - - - - - @@ -1083,28 +1205,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -1115,40 +1215,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -1157,18 +1227,81 @@ - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1177,20 +1310,94 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Client/resources/images/back.png b/Client/resources/images/back.png new file mode 100644 index 0000000000000000000000000000000000000000..44521633886ba9cc6cfc30974a07432b53268ff2 GIT binary patch literal 860 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 P00000NkvXXu0mjfjBJU* literal 0 HcmV?d00001 diff --git a/Client/resources/images/scores.png b/Client/resources/images/scores.png new file mode 100644 index 0000000000000000000000000000000000000000..d07dfe809580ec2d9b938878b11d6d865396f2b1 GIT binary patch literal 3011 zcmV;!3q16RP)U#VtdBx zc*P6YEH)UM&1S~-7~6Q?jTf-Tc*n*pW(kWSKnNiTga$%Lnx-mMn@W}Xtx_vhRjali z`l)KwB~letZKbqoKUGyDHBzf40^-y2zvDNy(F1JH%$qmNJJL@VkKUWP_uc=y_nf;S zMS?}i^4B;a6LO!iEKJQVOVX#DQgLP$)fE%u5F?_2gm8XLr3W=hmM7W zFOMG)d4RZPDyqot6&7eiW-SX7V?o{Egx18^L^p^QL$AV(L~FHf^$%0N-7bWs$npLv(3B@qiyZhZl7*&_yWIqwhCBq>J}#xm2GU6G{EIHeJ1g=xmFo(A%F zcj%B1*QS(IZ>yy!H$`bIGl$t#6;Tx>sH$kK5P9iUrrFSZt#Nm?=EVPpQ|{F*Glg+Y z{EidayU9D!ZdRvV4@9n*Bu|d932|lEY%hpHSr&5Jz+j4mUh3=>PO;g$!Nnl2XtkQR zZWF?aQE;e0ELD>Jf`=QaR>X)0kuJ-h);f~sW*b_>z~B8Nr^Gt% zmGbqYr&r9q(J3mAj;5)SGJ3VUpKk6y7;x~t$I9IN8!q;V+H|k+7rYdgy86WPWS{Y0 zc)*cn7-tdFC(NTosz255y*`Q>wg!Nj_0QGO$OuJ=;O1ZomLxsh<*ZT{E zg<*&Jm8B3?784Ox!2FScbNTsBoBhF2mz!?&4~29wU9g08qt8PufmNYm|fu!R|R#g&85i_r(wcMkfbm0oS8c2 zxi)P4#2gkS%JToJlN>Z#-x3mkN{?XsSl~=ey*ve#4TH!4B`E$8Bw>M;vK#n+Fb9y zn%6($cA0)?fga2CfY@ zpA7FT@rg^3eHU1K6VWFN;-^hay*SxRC(dlnE zU6r^lFe1cFm*p=Gl{m#g8rTm0o=yhLh7rQL%oRP5zeRAgtWx(He+jj)0K|nE6y#;9 zypm$)#idBnZ#iAIxDfgIj#A8xikdsKw?V8KH=~pOB#aOi&b4~Icfd=ZNB0_kF@vx) zATH?ORBhwpmTTEQ*H0KRH?=J;Ud-B?HS&8JMhMFY%p@$~(6i5l{LEC>am%G>;`%Vv zyHfb6hOlz3NL4w6-a>~<%jlS^l8%?}2`dhlxGZ4>0UT5ZcL*)lOm#ih;tO#_%koFh z5*J2!#RRLiBqS_RRIUu0SmZ0`otB*Ef=Rx>=tQPX0|BQZO>SE!v%k( zv(FM%kkC%ZIosIE;!?fhlBAFF9F7#Pl$ILp%*domtVGshtf+ibI_Tv>6E|^(ZK-*kx+JvK(GHEtnA2x!Pv2s7r`&`&jw4_@MxUj~z@A55* zE8`z_sZqXxMbG9!vC>rUK8x@W7Qi9|O&68Tiwmt7mfYywYY{%e0vM9I!|u&2=QA-n#w#vK`s+GL;(#&0!n)Yh z=4+i=GS-OCaIhF26h3ouL~)HB?8oo3@S+I|k#0}k1{yBf_Ds-2OzbFG7T95gA(>|( zhMmgX&t!UcIbZK2&(>|eajsZJ`Fp^Hb-u1yhzMvCwHS1Tp9NvLZB~o*G$1TQUswv= zlD=kHG^b@yQ(F46XiQC89w}+mkes?As*;iyujdM^un_8F9XvoZi0{POCC%sB#}Dka zp70$G2sVgnG2)GG=HAHUvcM+SXK`n6oCBvGnyqi9iyYD27xx+3sW z6eKx?bO{;tB+4 zwSp!re8&lQHMOqE6k(ac zOIXH(y6s+bh@fe_xjZkbRP?jJHRFk2n}3q?-snwp9SJ~ELM(F zQGGoJUhd0P8FE)3GI)15b-;yad_*{DTt`tjH5k$Qs#n=5U_NS`i;(VW{;>S}wB?!7C;5>^CpR!phcg^1u&VJ1WyYQW!tJo3^K zRs?}MMGIAFj}>Cl@a|}G1#EFAc%rZ_G_=vh#&(P6klFfHns!#u#LnF`$$~mlga5fh z|Jv1p$a9IXlGP~M%ps_Sg+CM~Imj`;dq)V%!XmIp^ncx9Vc;V7>Nx-a002ovPDHLk FV1gGmu~7g3 literal 0 HcmV?d00001 diff --git a/Client/src/com/texttwist/client/constants/Palette.java b/Client/src/com/texttwist/client/constants/Palette.java index bf9e87e..843f287 100644 --- a/Client/src/com/texttwist/client/constants/Palette.java +++ b/Client/src/com/texttwist/client/constants/Palette.java @@ -15,7 +15,7 @@ public class Palette { public static Color registerLblBtn_color = new Color(95,0,0); public static Color registerLblBtn_onmouseover_color = new Color(95,0,0, 127); public static Color registerLblBtn_onmouseclick_color = new Color(53,66,32); - + public static Color scrollPanel_backgroundColor = new Color(220,229,207); public static Font button_font = new Font("DK Trained Monkey", Font.BOLD, 30); diff --git a/Client/src/com/texttwist/client/pages/Highscores.java b/Client/src/com/texttwist/client/pages/Highscores.java new file mode 100644 index 0000000..f2a1965 --- /dev/null +++ b/Client/src/com/texttwist/client/pages/Highscores.java @@ -0,0 +1,80 @@ +package com.texttwist.client.pages; + +import com.texttwist.client.constants.Palette; +import com.texttwist.client.ui.*; + +import javax.swing.*; +import javax.swing.event.ListDataListener; +import java.awt.*; +import java.io.IOException; +import java.util.concurrent.Callable; + +/** + * Created by loke on 14/06/2017. + */ +public class Highscores extends Page{ + + public TTContainer highscoreContainer; + Highscores(JFrame window) throws IOException { + super(window); + createUIComponents(); + window.setVisible(true); + } + + private DefaultListModel fetchHighscores(){ + DefaultListModel highscoreList = new DefaultListModel(); + highscoreList.addElement("USA"); + highscoreList.addElement("India"); + highscoreList.addElement("Vietnam"); + highscoreList.addElement("Canada"); + highscoreList.addElement("Denmark"); + highscoreList.addElement("France"); + + highscoreList.addElement("France"); + highscoreList.addElement("Great Britain"); + highscoreList.addElement("Japan"); + + highscoreList.addElement("France"); + highscoreList.addElement("Great Britain"); + highscoreList.addElement("Japan"); + + highscoreList.addElement("France"); + highscoreList.addElement("Great Britain"); + highscoreList.addElement("Japan"); + highscoreList.addElement("Great Britain"); + highscoreList.addElement("Japan"); + return highscoreList; + } + @Override + public void createUIComponents() throws IOException { + addLogo(root); + highscoreContainer = new TTContainer( + null, + new Dimension(1150,220), + Palette.root_backgroundColor, + -1, + root); + + TTLabel title = new TTLabel( + new Point(200,0), + new Dimension(350,50), + "Highscores", + new Font(Palette.inputBox_font.getFontName(), Font.ITALIC, 38), + null, + highscoreContainer); + + TTScrollList highscoreList = new TTScrollList( + new Point(0, 60), + new Dimension(575, 142), + fetchHighscores(), + highscoreContainer); + addBack(root, + new Callable() { + @Override + public Object call() throws Exception { + return new Menu(Page.window); + } + }); + + } +} diff --git a/Client/src/com/texttwist/client/pages/Home.java b/Client/src/com/texttwist/client/pages/Home.java index a0c05b3..19eb91c 100644 --- a/Client/src/com/texttwist/client/pages/Home.java +++ b/Client/src/com/texttwist/client/pages/Home.java @@ -20,7 +20,6 @@ public class Home extends Page { @Override public void createUIComponents(){ addLogo(root); - loginDataContainer = new TTContainer( null, new Dimension(1150,250), @@ -33,15 +32,25 @@ public class Home extends Page { new Dimension(210,50), "Username", loginDataContainer); + TTPasswordField passwordField = new TTPasswordField( new Point(290,60), new Dimension(210,50), loginDataContainer); + TTButton loginBtn = new TTButton( new Point(70,120), new Dimension(430,50), "Go!", + new Callable() { + @Override + public Object call() throws Exception { + //TODO CHIAMA API PER LOGIN E SE TUTTO OKEY MANDA A PAGINA DEL MENU + return new Menu(Page.window); + } + }, loginDataContainer); + TTLabel registerText = new TTLabel( new Point(70,200), new Dimension(350,50), @@ -49,18 +58,20 @@ public class Home extends Page { new Font(Palette.inputBox_font.getFontName(), Font.ITALIC, 24), null, loginDataContainer); + TTLabelBtn registerField = new TTLabelBtn( new Point(360, 200), new Dimension(210, 50), "Register!", new Font(Palette.inputBox_font.getFontName(), Font.BOLD, 34), null, - new Callable() { + new Callable() { @Override - public Page call() throws Exception { + public Object call() throws Exception { return new Register(Page.window); } }, loginDataContainer); + } } diff --git a/Client/src/com/texttwist/client/pages/MatchRequests.java b/Client/src/com/texttwist/client/pages/MatchRequests.java new file mode 100644 index 0000000..7d46ad4 --- /dev/null +++ b/Client/src/com/texttwist/client/pages/MatchRequests.java @@ -0,0 +1,12 @@ +package com.texttwist.client.pages; + +import javax.swing.*; + +/** + * Created by loke on 14/06/2017. + */ +public class MatchRequests extends Page{ + public MatchRequests(JFrame window){ + super(window); + } +} diff --git a/Client/src/com/texttwist/client/pages/MatchSetup.java b/Client/src/com/texttwist/client/pages/MatchSetup.java new file mode 100644 index 0000000..f4eaacf --- /dev/null +++ b/Client/src/com/texttwist/client/pages/MatchSetup.java @@ -0,0 +1,12 @@ +package com.texttwist.client.pages; + +import javax.swing.*; + +/** + * Created by loke on 14/06/2017. + */ +public class MatchSetup extends Page { + public MatchSetup(JFrame window){ + super(window); + } +} diff --git a/Client/src/com/texttwist/client/pages/Menu.java b/Client/src/com/texttwist/client/pages/Menu.java new file mode 100644 index 0000000..bb20daa --- /dev/null +++ b/Client/src/com/texttwist/client/pages/Menu.java @@ -0,0 +1,96 @@ +package com.texttwist.client.pages; +import com.texttwist.client.constants.Palette; +import com.texttwist.client.ui.*; + +import javax.swing.*; +import java.awt.*; +import java.io.IOException; +import java.util.concurrent.Callable; + +/** + * Created by loke on 14/06/2017. + */ +public class Menu extends Page{ + + private TTContainer menuBar; + + public Menu(JFrame window) throws IOException { + super(window); + createUIComponents(); + window.setVisible(true); + + } + + @Override + public void createUIComponents() throws IOException { + addLogo(root); + menuBar = new TTContainer( + null, + new Dimension(1150,220), + Palette.root_backgroundColor, + -1, + root); + TTButton newMatch = new TTButton( + new Point(25,30), + new Dimension(250,75), + "New Match!", + new Callable() { + @Override + public Object call() throws Exception { + + //TODO CHIAMA API PER REGISTRAZIONE E SE TUTTO OKEY MANDA A PAGINA LOGIN + return new MatchSetup(window); + } + }, + menuBar); + TTButton matchRequests = new TTButton( + new Point(290,30), + new Dimension(250,75), + "In pending", + new Callable() { + @Override + public Object call() throws Exception { + //TODO CHIAMA API PER REGISTRAZIONE E SE TUTTO OKEY MANDA A PAGINA LOGIN + return new MatchRequests(window); + } + }, + menuBar); + TTCircleCounter circleCounter = new TTCircleCounter( + new Point(290,30), + new Dimension(25,25), + menuBar.getGraphics(), + menuBar); + + TTButton highscores = new TTButton( + new Point(25, 115), + new Dimension(250, 75), + "Highscores", + new Callable() { + @Override + public Object call() throws Exception { + return new Highscores(Page.window); + } + }, + menuBar); + + TTButton logout = new TTButton( + new Point(290, 115), + new Dimension(250, 75), + "Logout", + new Callable() { + @Override + public Object call() throws Exception { + return new Home(Page.window); + } + }, + menuBar); + addBack(root, + new Callable() { + @Override + public Object call() throws Exception { + return new Home(Page.window); + } + }); + + } +} diff --git a/Client/src/com/texttwist/client/pages/Page.java b/Client/src/com/texttwist/client/pages/Page.java index ce81c18..9eaa553 100644 --- a/Client/src/com/texttwist/client/pages/Page.java +++ b/Client/src/com/texttwist/client/pages/Page.java @@ -3,11 +3,14 @@ package com.texttwist.client.pages; import com.texttwist.client.constants.Palette; import com.texttwist.client.ui.TTContainer; import com.texttwist.client.ui.TTImage; +import com.texttwist.client.ui.TTImageBtn; +import com.texttwist.client.ui.TTLabel; import javax.swing.*; import java.awt.*; import java.io.File; import java.io.IOException; +import java.util.concurrent.Callable; /** * Created by loke on 13/06/2017. @@ -31,10 +34,9 @@ public class Page { BoxLayout.Y_AXIS, null); window.add(root); - } - public void createUIComponents(){} + public void createUIComponents() throws IOException {} public void addLogo(TTContainer parent) { TTContainer container = new TTContainer( @@ -54,4 +56,25 @@ public class Page { e.printStackTrace(); } } + + public void addBack(TTContainer parent, Callable clickHandler) { + try { + TTImageBtn back = new TTImageBtn( + new Point(0, 800), + new Dimension(0, 0), + new ImageIcon(new File("./Client/resources/images/back.png").getCanonicalPath()), + clickHandler, + parent); + TTLabel registerText = new TTLabel( + new Point(55,775), + new Dimension(350,0), + "Back", + new Font(Palette.inputBox_font.getFontName(), Font.ITALIC, 24), + null, + parent); + } catch (IOException e) { + e.printStackTrace(); + } + } + } diff --git a/Client/src/com/texttwist/client/pages/Register.java b/Client/src/com/texttwist/client/pages/Register.java index 5aa5f3c..01b2692 100644 --- a/Client/src/com/texttwist/client/pages/Register.java +++ b/Client/src/com/texttwist/client/pages/Register.java @@ -1,12 +1,18 @@ package com.texttwist.client.pages; +import com.texttwist.client.constants.Palette; +import com.texttwist.client.ui.*; + import javax.swing.*; +import java.awt.*; +import java.util.concurrent.Callable; /** * Created by loke on 13/06/2017. */ public class Register extends Page { + private TTContainer registerDataContainer; public Register(JFrame window) { super(window); createUIComponents(); @@ -16,6 +22,48 @@ public class Register extends Page { @Override public void createUIComponents() { addLogo(root); + registerDataContainer = new TTContainer( + null, + new Dimension(1150,220), + Palette.root_backgroundColor, + -1, + root); + TTLabel registerText = new TTLabel( + new Point(70,35), + new Dimension(400,40), + "

Insert your datas and press Register!

", + new Font(Palette.inputBox_font.getFontName(), Font.ITALIC, 12), + null, + registerDataContainer); + TTInputField usernameField = new TTInputField( + new Point(70,90), + new Dimension(210,50), + "Username", + registerDataContainer); + TTPasswordField passwordField = new TTPasswordField( + new Point(290,90), + new Dimension(210,50), + registerDataContainer); + TTButton register = new TTButton( + new Point(70,150), + new Dimension(430,50), + "Register!", + new Callable() { + @Override + public Object call() throws Exception { + + //TODO CHIAMA API PER REGISTRAZIONE E SE TUTTO OKEY MANDA A PAGINA LOGIN + return new Home(window); + } + }, + registerDataContainer); + addBack(root, + new Callable() { + @Override + public Object call() throws Exception { + return new Home(Page.window); + } + }); } } diff --git a/Client/src/com/texttwist/client/ui/TTButton.java b/Client/src/com/texttwist/client/ui/TTButton.java index 1db3e5f..8d2729a 100644 --- a/Client/src/com/texttwist/client/ui/TTButton.java +++ b/Client/src/com/texttwist/client/ui/TTButton.java @@ -1,18 +1,20 @@ package com.texttwist.client.ui; import com.texttwist.client.constants.Palette; +import com.texttwist.client.pages.Page; import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.util.concurrent.Callable; /** * Created by loke on 13/06/2017. */ public class TTButton extends JButton{ - public TTButton(Point position, Dimension dimension, String caption, JPanel parent) { + public TTButton(Point position, Dimension dimension, String caption, Callable clickHandler, JPanel parent) { super(); setBackground(Palette.button_backgroundColor); @@ -22,7 +24,25 @@ public class TTButton extends JButton{ setPreferredSize(dimension); setText(caption); - parent.add(this); + addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + super.mouseClicked(e); + setForeground(Palette.registerLblBtn_onmouseclick_color); + } + @Override + public void mouseReleased(MouseEvent e) { + super.mouseClicked(e); + setForeground(Palette.registerLblBtn_color); + try { + clickHandler.call(); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + }); + + parent.add(this); } } diff --git a/Client/src/com/texttwist/client/ui/TTCircleCounter.java b/Client/src/com/texttwist/client/ui/TTCircleCounter.java new file mode 100644 index 0000000..0b3f891 --- /dev/null +++ b/Client/src/com/texttwist/client/ui/TTCircleCounter.java @@ -0,0 +1,35 @@ +package com.texttwist.client.ui; + +import javax.swing.*; +import java.awt.*; +import java.awt.geom.Ellipse2D; +import java.util.Random; + +/** + * Created by loke on 14/06/2017. + */ +public class TTCircleCounter extends JComponent{ + + private Point position; + private Dimension dimension; + + public TTCircleCounter(Point position, Dimension dimension, Graphics g, TTContainer parent){ + this.position=position; + this.dimension=dimension; + + Graphics2D g2d = (Graphics2D)g; + Ellipse2D.Double circle = new Ellipse2D.Double(position.x, position.y, dimension.width, dimension.height); + g2d.fill(circle); + g2d.setColor(Color.RED); + + parent.add(this); + } + + public void paintComponent(Graphics g) { + super.paintComponent(g); + Graphics2D g2d = (Graphics2D)g; + Ellipse2D.Double circle = new Ellipse2D.Double(position.x, position.y, dimension.width, dimension.height); + g2d.setColor(Color.RED); + g2d.fill(circle); + } +} diff --git a/Client/src/com/texttwist/client/ui/TTImage.java b/Client/src/com/texttwist/client/ui/TTImage.java index 655a473..3746b68 100644 --- a/Client/src/com/texttwist/client/ui/TTImage.java +++ b/Client/src/com/texttwist/client/ui/TTImage.java @@ -14,11 +14,8 @@ import java.io.IOException; */ public class TTImage extends JLabel{ - public TTImage(Point position, Dimension dimension, ImageIcon image , JPanel parent) throws IOException { + public TTImage(Point position, Dimension dimension, ImageIcon image, JPanel parent) throws IOException { super(); - - //setBackground(Palette.inputBox_backgroundColor); - //setFont(Palette.inputBox_font); setBounds(position.x,position.y,dimension.width, dimension.height); setPreferredSize(dimension); setIcon(image); diff --git a/Client/src/com/texttwist/client/ui/TTImageBtn.java b/Client/src/com/texttwist/client/ui/TTImageBtn.java new file mode 100644 index 0000000..39b92f2 --- /dev/null +++ b/Client/src/com/texttwist/client/ui/TTImageBtn.java @@ -0,0 +1,32 @@ +package com.texttwist.client.ui; + +import com.texttwist.client.constants.Palette; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.util.concurrent.Callable; + +/** + * Created by loke on 14/06/2017. + */ +public class TTImageBtn extends TTImage { + public TTImageBtn(Point position, Dimension dimension, ImageIcon image, Callable clickHandler, JPanel parent) throws IOException { + super(position,dimension,image,parent); + + addMouseListener(new MouseAdapter() { + @Override + public void mouseReleased(MouseEvent e) { + super.mouseClicked(e); + setForeground(Palette.registerLblBtn_color); + try { + clickHandler.call(); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + }); + } +} diff --git a/Client/src/com/texttwist/client/ui/TTLabelBtn.java b/Client/src/com/texttwist/client/ui/TTLabelBtn.java index a47acdf..e2120ae 100644 --- a/Client/src/com/texttwist/client/ui/TTLabelBtn.java +++ b/Client/src/com/texttwist/client/ui/TTLabelBtn.java @@ -15,7 +15,7 @@ import java.util.concurrent.Callable; */ public class TTLabelBtn extends TTLabel{ - public TTLabelBtn(Point position, Dimension dimension, String caption, Font font, Color fontColor, Callable clickHandler, JPanel parent) { + public TTLabelBtn(Point position, Dimension dimension, String caption, Font font, Color fontColor, Callable clickHandler, JPanel parent) { super(position, dimension, caption, font, fontColor, parent); setForeground(Palette.registerLblBtn_color); diff --git a/Client/src/com/texttwist/client/ui/TTScrollList.java b/Client/src/com/texttwist/client/ui/TTScrollList.java new file mode 100644 index 0000000..88d7f29 --- /dev/null +++ b/Client/src/com/texttwist/client/ui/TTScrollList.java @@ -0,0 +1,31 @@ +package com.texttwist.client.ui; + +import com.texttwist.client.constants.Palette; + +import javax.swing.*; +import java.awt.*; + +/** + * Created by loke on 14/06/2017. + */ +public class TTScrollList extends JList { + + public TTScrollList(Point position, Dimension dimension, ListModel listModel, JPanel parent){ + super(listModel); + setBackground(Palette.scrollPanel_backgroundColor); + setFont(Palette.inputBox_font); + setBounds(position.x, position.y, dimension.width, dimension.height); + // setPreferredSize(dimension); + setForeground(Palette.fontColor); + + JScrollPane scrollPane = new JScrollPane(); + scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + scrollPane.setBounds(position.x, position.y, dimension.width, dimension.height); + // scrollPane.setMinimumSize(dimension); + scrollPane.setBackground(Palette.scrollPanel_backgroundColor); + scrollPane.setViewportView(this); + + parent.add(scrollPane); + } +} diff --git a/out/production/Client/com/texttwist/client/constants/Palette.class b/out/production/Client/com/texttwist/client/constants/Palette.class index a6bfa74c2047960683b059633d3b8284251e3382..7084f7151d7428b01b987f8698873d01bfb6322d 100644 GIT binary patch delta 532 zcmYk3OD_Xa7>3_7Ei=;}2N!3+%=B9f{aH&v$0ddEd#IYrU>l>fg_=0CHFlpbeuc#sW}~)e*rsV}dcM zVoF0U02R}`p3yMNo@3-0^L%Q7r$xpRW0|p{VpT;!AmTdC+4hdLdwk$J=O=q5$97zC zd-c%~JKc31+upEF_U->0ye;vVHjxx)Im%-)IbNL6Hzatq?S#T z40ItT5G=TdmYpct)Mua@F#|okGtMxvW}ug+1f!49kC=C(*p&#~0uY4G@igh&AWbFG zlrK%8(v&Mr(b5zwP1({EFHH?(1%mpM!~t4Okp;OSQ-gS-A+I1s;@bp$fuGt3X)=Cy zA&ntgX~_H~e4&w^09Eh7cQ>k(LwFD2GlaJqd{u;Bpq9g$za?ISUPUWc2-z@(pttEC QY!2g|{*u5jy-_go1IbHARR910 delta 442 zcmX|+%`O8`7>3_-3^QkXBGT4iP@ST!`We;wssGm61y~LX!6Z!@VJYGY7#CpS1{#Yd z7A~NBJC`Ej`;NrsdA@Jv%riNC^`K7sKkpv^>S(#hV$sHu3yEcg3|1H+W7S60!I}#j zHQwtE*4Z13O~w{~)!=EHvBTK4v1eod@%%fv7q8_21%ctq=q3uI+w1VC9k)9g0S+`q z;c1L9#^EK$ve*c4s4)RwAl2+#L~*_qM`u?WlkhdB_~bMrKvN^f(+ndIKk3T&E<;xV zTqrKnq&RL&ePc=+Q_q-^##A+?rZHuWsZ5p-^veQqmbMyMkOwP0h^~1(M|4q@Bo7wd zW}YVfcM3(6Xme2hFMMH$o&Yb&=fIP1pQIgYB-ev_Lz;U6+^fJ%o~=?UOZx)t5|v+y CVJ?0E diff --git a/out/production/Client/com/texttwist/client/pages/Highscores$1.class b/out/production/Client/com/texttwist/client/pages/Highscores$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9cd2af9295eb3b1af4ddf477210977b8d1607ef2 GIT binary patch literal 996 zcma)5U2oGc6g^%`L(@RZHa5P-26U|LU||wGG4-YDv_S_*gGxN6u9bR9?J99-e-0qmfd${i+hX)R-4z?XU zWGI+{OsY>9b~;=SeIq8ujAdec9!a5$KMF#T_(w7vBwWWLc}^||Qc2TfXw(+;sdpLj zE!`Ik<&IS1RXXg6_-)XO2wCoE9z@+Bme&3a=51LF-my|5Zbd@XBhWvBv^##B)IqQewPjf{M*6;I>X zYSW?&w&sJ24o#cmRHrc)hti(1Jd<$G)B)&use@e)kMP*i_o#<+=(GIQeTK^4nlNl+(ErZJurhP`BOb%{LMf@sJQjfw?~Yq~ zIMRybqkiUU_GZjGz MHCnmED$q>dFJ@@`CjbBd literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/pages/Highscores.class b/out/production/Client/com/texttwist/client/pages/Highscores.class new file mode 100644 index 0000000000000000000000000000000000000000..123eb840bfe639d6fc13bc0cf7d58197520f718f GIT binary patch literal 2697 zcmb7GYf}?f7=AVcH>`_5M7#@#VhF9N*0#1FR>H;5aH(M0Se2e^maw|nO*b3CUhHkg zkNw#Gjn-+&Of%EZo&JXYiT(kn&)Gl%3|K1TIcMK<-t)fC^IlH=dinbw0IuPC4VRGA zFo+2albBL5ts#ut5v1fi6Tt@&q$8M(U@n6B2o@svu#Ly>NS#F$ODgVah$7R5kMOaE zE@b8QJr$p*xUb;^G7&sb@lftBYdDQh$`QC_p0LSkmh6Gd}mD5D^pbn~Wyjx=wcs}yslwP@qk&8)nJ3T&Jw!G5uIE zePgwGg@V4=&<@oJb465aKTX`Tbls+r_6A2%s^HvzDfH~b_O!Hx@9HZxM}ysjElA;_ z?~%!oF`ADWo+*6uZYt>(ORmF6kfN5DWVh9~d`V{i-h>4KON(59V(=Ab77fp}ZHbQd zv_-e#8RnEFZ|-PvbyaT(}~Sf1~4De8)mQkj{R9 z>vu1(>J%IeAX#oAHQy+yO;UGOJ*g<0e#RgdLD;766HvD_wwx2j zB~%-V^^i;n;mOMqiFQt9nv}{_WuB|z4`3&qxo4!7<@N^zaSj885x2* z2RFB+-R!peT^ipf6?W%;;DOAbaYk0b^ge34p0YZ$if`EorixMVJo(-wg>B2niFcx( zZ|EgH@CyIfBe-hefA&Iz@H$uXoI{*D;=@%a@ePEA!y9P%g`yBHbByxw2aci@-Dtxx z96=8fl=Rfq@CL5%ix=Q3-lUOhT!%To#eFsbuB4fl{E}u$HH5QOw5Ernhc=)NMIJ1GXt(}8aoKvXRQ$=sOhQ2_nrE_#kDRi?7KTs=PMSuO+`PsmW z8V0fyUf96JX6Vlo07y!NfgK{KSrW61alQzXc#diO$n23c^wr^P(y&Yt#&DC6pYu21 Yb-Yj5+mqrJHA1{4##!U30nYsQFLlq#0ssI2 literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/pages/Home$1.class b/out/production/Client/com/texttwist/client/pages/Home$1.class index a487eb19b8bbe374cb70591cab222c3fdbcd1cb5..6db43c0b8683ee67aff143c57804c96598bde960 100644 GIT binary patch delta 396 zcmZ8cO-sW-5PiF?*=7?pYOEjCYW-|eYgFn<5HGzc9z5k3ODHW8MN{$SPY}t!@T7ti z6vT5c`ak>+;_UVyxUe(x-n@A`+s}OnumAJ<4xkR-gn^=jz=FV{i4vA1GFTQ^5m*&i zyZ689Zn<*U39m!{ER0+J@o6V&CVLFBanp=0lJe;=;IQ zq5gq?VmvJ-COVV3_s+TJoICR>2Qh2#_51>06IB%w3mRfrlvq-c!?FeiD;nWdi8YD5 zM4@MXD7k#0_m-_4+OAU*(DttDPOIx(G&>TeKr&z0Z`fD1b#6CZ>)@>6)VrjqC!X81 zyO(W8;Iv;B)!ut1>|69(qLL`;SVu{RhPVzLC4n6K>0`(BI$ftNQPyFh;`cUmBr$pa zDOBM}zLwSyhT%*34~0j^2+>hiI|y+Dnpu2+FrN^*<1K_S#wa z6J&4{d!zj$C42L$+748D;1K^&rKk%NnKE{%n)X#hEF%7#i1~=z>% diff --git a/out/production/Client/com/texttwist/client/pages/Home$2.class b/out/production/Client/com/texttwist/client/pages/Home$2.class new file mode 100644 index 0000000000000000000000000000000000000000..3b42f43211494a4c04aaa46d308fc4dcbeab9f12 GIT binary patch literal 964 zcmah|Yj4vq6g_TBL({;@Ha1>k8w=2Ou%HP(G4)I7V5mIApb{V5)XF@ic9l4^KMRo1 zB#`(4{3yhAikQTpjTFcC_}qujz4`I;>vsST5mZpdO&1Q<9c)yviCZp;*mB@Ixb5H$ zL)je3)PKOR*$wqDFk)iNSf(ZjV=0sgMm!Q}@JtWIVHtdV!E$_#KEOvFs;~r0>wSR*pTMC1Bpp;13F;7!L=GMGS{w`HkqHr<8a=p<# z<{x+va}@=z`o|(Pbn12{p%@vdRqEg_L*-CLikmEK+LXao zyLZ;1Wpfb!Eyz4U1$EKaa+Uv4mwhv#}o0 zzhgbB-%x!28Ko1P`$%R1r@@})!EAC{#5CAt+Ls7fp>;LqU%}P|Q_8rj9W5r6k z6-jy&+u4zC&`w+KlI)i3QAm38*~>mfgg)EeFG))dC<^FxIjHbBBsr{zazxVaa#V6m z5#zX`loOJS%Sp*8JLR+@!5LL+;(#K~pyaH}ImvlNjTKaJK{6z{I5(9FC48DZ*3mAx z$gni;&We(^PVg`yLM%vz>=FjO%WvKhkF5qgOM|Poaloz5W&H z)Zb-`eioV6Pvm4>(!3*t%rPDoP~&12M%aX4wNAO!qFE2P<*jQBqs(xjh!)nGY*8z1 zh9~UCmJebI`|OAc{oI`_4Txp@EM@*{mSibU2gG$(eqy2`Adz{=vNtTxD~@MbA##k$ z4kw^06Ht(eis2|9vlIr%OqBWJwk&Q*^?#vLTx*2^HTH_y+<>}{ygB16M6-#$@nT)O zl+#EhY4b0P7&JY`20qZiH#+%4kBHNUU9dA}eR07wUs!LL!iZ+s$R;y(nsGK8W!PwY f*uqvEqZXu$HqZ38EnMEkDw9i0U1PHSV!8AWH`H{p delta 688 zcmYL{Sx-|z7>1u|Pnpx!qtEb*8*11s%R-g^k-Tx3QJg=m+U6${R+FIUzkSCprPNhxVsjK3AD-{kH5 zp-;u+(YUe(<_yo5mFFYfLMYKZqla~}Ywt7<=%tUahzD6u4o~EY4QwPLKz}*;fFwea JD@j`Z{sEV_X^{W` diff --git a/out/production/Client/com/texttwist/client/pages/MatchRequests.class b/out/production/Client/com/texttwist/client/pages/MatchRequests.class new file mode 100644 index 0000000000000000000000000000000000000000..018e41dcb801f48840cfd685965adc6d87974dae GIT binary patch literal 400 zcma)2u};G<6ucKg0-;c-5R8be6bUbEMO~0Opnwpd?yhUKMoA2@L;71xNDO=cABA`c zEJz6PEIs?q=XWQ+f4sf{I7KhP3c4}2W9$&3GgBBpBJB6md-)`n!qujji;Hn7b3Hto z5W;gi(}Zqn3Vl`OQ(fN4X~s-1wMu3aS(*lalc8T2M;N5a=ECcx_qB0esLbfXiw8N^ zPFzZ_7B~8_($2dfhhWQ@tqHroWgsNCwknk#o7VNm>ysvQ2O(Ao{r_4L4*rl{b4DB@ z;BRV*c=34d5u*|F0q@b^_yzRLrvNecq-7J_*yVX;Zs@%ah>2AK;G? zUsl13h%fMxnM~dcdH;BQ18|9Mf)%7OwqxuNqAODx*C*_sWRLPmE=1j$aw={Hl`M4c zbVLZR?L-sO%#`}BDaN{bkmH=0Zf2FtN3t>=f0Ln`nVN8%DO(7q7tXb&c0%Pwmrl&( zRM+BGIyD<=*UWpIfc+-6CG7qdfRGGrQz<<#-ZK4pdg0@C5Mq^Z^e;2Q!5_MNj)p@7 z{5!sg7tiJ%G3qlP@E)C=zkr_k6d>lFEZKy08(3q!_oc!*-}s7{?<{9+G77Nu3CWOO AK>z>% literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/pages/Menu$1.class b/out/production/Client/com/texttwist/client/pages/Menu$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2cc42820d11df4b96f0e51df3559bcc0071b8bcc GIT binary patch literal 966 zcmah|U2hUW6g>mT%CcH)YwK5SYZnEoU7P5W4KIWyHB?Pd5+8?U0@ExrWOr8hS!!aM zXyOm>M;Y%d#wJ!_lbxM==G>1t_wJ9MU%vx*hM;bT|97+$DRY z@ee$RxEcnp`)49Fbn3Qep_mw{RpQ_gL#Zo=ikmd1Qredt=16K}6oguZX&hT6T9m<7 zdvw{MX>)XS8i(Ro+WVEPUJb;Cd*d!BAbKJvZT~ zD@;0Zu->?>ewPD%I_aCRQ^_jVJn0FcRPl)3zt8#F>EhMMm-H1FnDpkqyggaok3RbCD zMQQMJ^p@cfdX08XvMu5^_P>BN&XN0+ajw%^Bo0u;3auM+7AjaJi}+bIMvOJA)0vI+ zocoBcbxPvU{wzR3 zlR)AJ@S_mdDPj_XHc}kl<8wcJ?#+*%U%vx*jG%-fZo6=>>0qmbZQOB@$Bu)lgS!sy zF%->ECDlg^+Z_>&0wbr!OjKe55h|%oFy;f91V>V*&xpLQv@%VGs=tt3>oOEtQC~7F zb(EGb(os*wZ+I^xWVsUw9(H-Gto<7-*isn0L#<`p3VD)9GIthbsy3*y0)-11R{dJ% zgn!^c$n_w2**lTK(5c&=3OP0^(usrn45ec=(A=akmC`=%Fhf$K!azh?q;YJOXi)}R z?f!X(rp<92rLm9)%HFSJ1>3Wg(Cyn=gi)gO;7FQb)OX-}sG;tm1lL0ubq0T)_S}f! zYxzEviJ|g$Jv_ie>$gWuo99O*R2vMHzXf5~$e{mSkYVM_<&SaMqFs}0i@5dOFJSdk)MQk3YN(tein@pV+E^p zW@9~}AIN%?zajtbGYY4;@R7_M&VoJ7g4yJ@h*_|!v@Z~{M(cXUzlQ7C_XcieXSc9{ NE3|WoRirOHzX03@@Vfv2 literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/pages/Menu$3.class b/out/production/Client/com/texttwist/client/pages/Menu$3.class new file mode 100644 index 0000000000000000000000000000000000000000..b8c89feee9411af04cdcaf19f588a2a868c61793 GIT binary patch literal 966 zcmah|U2oGc6g_TBL({;@Ha5P-Hr7Gg!Gbh+V(LrjV5l2NgGxN6u9bR9?J99-e-eM?okO|469x8Ikv;lBUT}t<7cEy9|Yv?hA&6 zj#T0}9ri^0Ht0o!EOs;xqHYjNYySodwiE{MP$?0&q992GnOpNRRrjc}0)>khmTUFS zY49QNqd)xs0hECn~go}}pS|tu1FqBSYr~;G5R7(4z!xTx4jC`&YPvh7s(V`5t z+Wm_TO`GFHr!f}?(%!FR1>3ci(CyobM>>%zJQ8N0`wnUz>S%Zz$58oO4TiN0`rqvsmd;)N$i}cfCmHpW$09J|-C;`) zM_Q3&)V+Mo&cQ6_H#A^0S!1dCdQ2V6)SdVV0ipluAP$Ct)LpIp3$J&vK@;wP;WAjI zVil#q&(T|kN9YyWHOaP!+t~R6);L4%Q^vVUYmqp>b1cxhGG(EHMY4#WMPtNR!ZMxN zSWoHiu^#1b$iM%L!Wk}oBr}KeU@x*@Hn}Zg8tgjl3xurDx|;EC;AZx{h1=QL9jxIR L?Ob9N=}XTq;#cpZ literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/pages/Menu$4.class b/out/production/Client/com/texttwist/client/pages/Menu$4.class new file mode 100644 index 0000000000000000000000000000000000000000..0d70a8551ad03cc5232f02ae0d2b1a6b52b1531f GIT binary patch literal 960 zcmah|U2oGc6g_TBL(;&?Ha5P-HWr}mVBw)WG4-YD#83y53YB*io+EwDv{wzR3 zlR)AJ@S_mdDPj_XE>axd<8wcJ?#+*%U%vxrB6Ly4eGd*c9c;PS#sd#U>^KMeTGt74+XWBb0jk|4kN9iEJ>^qZOUM) z-M{G2vN?J>OCoU~?fqOU*q*I~Zr@Q+tW&8*N5Y)wp@W)_IvPG)cs?pmf*bMfu&u`vtw=2D zTd`&*V9~{nX|!mjrcw>{lzNxzItx<*M&YZ2gpUR3x?cMiUhiXzX4?V7Rj_K+YDpts zptk~_&}+17k!=yLvHJzAafZUDoO7MlGI4-oEYZ3)XQ7H^vWTBYW5ig&DxKL_&*{Ih z9+ht>zWJA#1d*=lol^oqzA(Zhm$T8@NF`k62~; G((?n=9R*u*^#MQpjKxw!A* z0Yk|g%e3}{VY3_QQE0@}n2AhH7{yX36OQ>%q~U>3*)t;VN+nH;p%z@ouJ;(6wjKzE zg|1ZMWj5-Ibe2S7PulyHtzbL061sgyMX^q$8XgF9tOqUvA9XZ*l;QcPpuw;{NBie` zBwTF!c!bB6zC*p5L${f0O@`{?M38NY~ZiUwFNT4VrBi441*GRjVb9 ze1YByd_u3#u0^&*yvFtyu*NA0pK{JsT1&(M-eQ5)l^F|FERse1JQ^d$5|-)A#%j`k zV?8S0P<;0p&M7W^B(s3CVDIx_Hn}Zg7VJ9h9YR)UUCsG7a5Mkj!tMO*4%Tpub{?@x H^rhz)$u8|f literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/pages/Menu.class b/out/production/Client/com/texttwist/client/pages/Menu.class new file mode 100644 index 0000000000000000000000000000000000000000..42746f8b5ec3970719e7c5068e5027e396ff7afb GIT binary patch literal 2410 zcmb7GTT|Oc6#mv2WP|{72`Lc5HN==UYA*B=5=wD^I5CC>;?!wVD&(!LM3!7hu6gQH zencPo*7we|)8d(WrjL2ZZ^$p{L#JmYW4nnV#53sZp8d{czq4nTm;e6tH-H-`$(Y4$ z88cXs@flXTY4o|6u1QEpxFbWtdN($(DWeN_#d1=@Jqh<^^kO}Nl!PrAQKV%k*p6UF z!WS}zk(Tg4nC!|J!CnLpC1hlbAsxXZ317;X5Rj~lNntvJ#}dAh@HK;yv@Gr_fU8;)-Bgk82gPV_CD;v~@uC0}yE z$QNAQc0>ibOgnFvJ<{&lWk=^5hG42&?D&e{SHWe(6kNk~3EwE#$F~YJ%quv6&MpnQ9tvoAu22%tnQjohXgugYv>r|9f zy(n)5-#A0oOA0L543lkBZ!&W_Vuw0`VaVs+u+`*tNl@{9DNOS#FOAI@pb;0T5e(*N47;5*d@=L`rHY-Y;x~kT;@BZVQO^g z?RpL!+X^ML;SZ-8jN3*!;hwI66Z`09A1w*Hc;9P8>x#?py zakKvpNr@J3n4Xy(aT?aBN(`GP@bua%5afB{eit&BrZ;DnoxK?NsqA}fMBo}D5 zO)^BXKfYK6iytAh7(PPBZ$2pAC841krK0crsIlvXD3eXv^p)1R3kg@~e9|!QNipcNi4vEz&~Y~tE0DS81Y@VqAAQM zxfYNkoDY!irH}p6s{48pqcw~Px8rrUH^awh;r9*rg&HOV{NgdZ)2E__NuixO!gQ1K zIAmgRj5r&oB26Ph+&;%m{DRx~6{~oK6zjnwHcqdQsKrXaZM_y5yrBPhmWco7_z54; zC`48kKE@~LAlp@ZO1dz47$BcZ=xnK32+QOzgj<*+8K<>LlHxZJ2+At>4cBEfkpBTC CY>L7F literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/pages/Page.class b/out/production/Client/com/texttwist/client/pages/Page.class index 036b3c844eadb4652222b8dcf448e923f46684a8..e06d95951d8d0fdf86c13898339ce4e2afd23689 100644 GIT binary patch literal 3065 zcmb_eYgZFj6y28uhm27I3O=x?_==!REw;7>X(5V6LqwjXR_&0CVRSMRClkOv?EC$_ z{R#c7ZDFlut^R=ih5nF!YrF4E5&{d*wc532?#!Hf?m1`gbMBe@$KSvG4&Xe#S8)(JtTGkX4XVaR7#b`z^?;=)!^mvjq8w-GJY(7Omdui;Wi8XNJ*{kNQ&UOD_H@%W+=Rf6CDYD1O9Fe-5A;QSSu0VH z*RGGcdclzMgQjhILjwEan<<>0p~s|?GXz@GG?^(E<_&jBpSLJ!Pdi!Nn$cZTepiKI zZ^0}H9Nj#=qMkQO+Bir0ZqK@g?itgmq*Ew5Hsj~QP+a;{uPkScqGvibMT(xwrJcMZ z5RY$eb^~l_K`_7$AChJ|TIy!qpafmiU3wFUWNTCj?3(oS?87m==mYWTX0CIA`w>nF zTzxV3f!DHUS{m(V%dT{$C3VY^JSBWi=Y506w}F!?kfjmNX1q~mH~a9KZs#n+6*&AH z2LhezGxNAu%g(^|O9z8#OJ|APoPS_sy~GgxM<&g@t$SscoZkLFIM~#WpZ7_p>}HKo zQ`T2R)=9rC+bH@l5XEWqDsZDH!BbFxbQ&o8%ynbzkGiyb4_F1zZSj&hqt@fE&~;+r7iZ)MouZDnk&O$fw% zD-9)CP1gEW#=PbYPj)`;wQ=2M`Ek&$?Q zuby)CELnc^pWSF%_G&*1n?$k8w2Nhrt>E5$7MA=uuB&y@x05usD`Yxb_*8#^!qnk&n)tlhy9&`e z+xIh?`c@EHL70zb-aC3LQ06LVnTy3^dsh*uK%EPPRulEc%A;$0!5TsL>g?$ICd!F9za=$=^C&!2suE zkbS&`yw}X{@CB!Q6VYI@YT`TL?a}Iw(yfS{1D)1>LZS^ z3fg?2p_p35S=Xtcol|?}+Q~r23OZM@@60OpXMRFU=Ija%KBb#3WN?daLq7g)o)SUA zyNDynKr(oPvllRd*D-^Oe&D?fX@d6!%0e=@It#PZj{7zTsT(H`3C@$Ne`qA6U{Jv& zUJwd~B-l6cR=|~LCfm)_wJYcf(6oh)G^VW%<zAXTouu6ONOd z^4X*hQ6mj=E$1DU8DCiQ%(~@*<)Y2x4DxQqTVef?k4P}FX0~d4MlN_SsFFE zN=W_zEB=g!*_Wt0OsRZ)y{Q@u3dyT65MX?*ve=u@8VV`VuUO8y;^noy!ur)9*g?cj zwJ4|ib}Q@A$TKB&jWPpb?2;bT8DyVUpLtEAv7d@p6m~$<`1wI0z{_{Efq}L}@^ACM zguxD}!h87@zj))xeR>z9m*)soMrbg>JYzH&XHhTZeGJKIQ}ZB)bRX2t4M$51OTnmm dlEcaZskD8sOC+=$wH(ujv5Z9GjcPYw>@R#QM*#o; diff --git a/out/production/Client/com/texttwist/client/pages/Register$1.class b/out/production/Client/com/texttwist/client/pages/Register$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b9ffb3e819575d994d61f7bb359c4297dcc62ea8 GIT binary patch literal 984 zcma)5Yj4vq6g_TBL(`0vZEU>82J2Yb!NLScNKE}wbz-PI#Gn!%-PFoFrFNCLv_A`w z&?J!f0sJV$b;_8;plYPpzQ^Z2e6IcD=hyE59w8{9h+8fktT|XO;WqBL$YaAn)xoBN zy9`BhB-82xhRt@U`+*T-V@5JHK^RM+OfcY)NP{;bB1|Mt$ze|_X&MZ^Ka)qT!%%4I zo?w`7OC??o`(2T|<=vQ&g|-fP+~J9|_HVFYOJeX2loClZ=4mR(+?pj@b(bnEP{^2J z$*;AK`3D}vTt&gF?y(3B?YgaTC_d3aWhP)oYr}V2{JS?4nnQMVUk!? znv}s-ym#KAVRIbnVG@dcY0o%!D&CH*hE!;&FxIJ5(Fw>%p*^LH|1+!{V9CAK@4_W=Kfg4HLnQcz4j$ z{ee~_9Q85p+Z!?MfUoJw(LEbU)zc&DW2W&qNC}97=lcoo3(|PS{}*2CV4d!~1BQ!W zm5SAro82J2Yb!Gb3E#Hf&}P7IZY7*yh;n_8Kt)UFbj_GbYS zngkL*fFFgpP8pLJRE-qd_xRk0&$WO2{Q4chLj)xham$5+H3#b@+{PUjd2BeSI@ok@ zm!W8mWLkZ|u-OiEKQLl!%t)pt2xBRf2?jh8Y4Aowgo)%aIqXR#O@qPrXY#0Z7z$0@ z6Abfhsl>}+zblfryc-j;(AFW3J3Nur{tXsvNeteBQX*-_JWU0eTeD=V?ox#X3K=sj z`L*^j|Gm`kL54=gL8w(YOcJX~ zlQP(f_s%;sY>q=cOhU0Q?HT7z#oMvfkP0mo#yXWMdLhh_?m6&1)KK?Og6pA-I>XwO zUOdx%;b7atJ>0kS9qQc_`f2v+E<@#SJs4Iq=zr&9SUhw2BOJrV3<;^bVIsH@?+%)} zKhTPVqdw++dn2YD@HJgIx@RM)dU`~C%rqVcDFIRNd_UoRK^m|4|H5k>tka!$z;F?) zQn8xSQ^?U@hDYcetr}!o#I0|C0jr-N_bKCCqOnLE;0fkwT%NE{!2(&t&!RD6EMkfF zY^+E0o~%dt8}jczqi})?AIZ$&EZEa5m`!erm;}2*>jELmG_GX)tGJfU*Ks4;yNOj? Mrj<*qBF*&u0%PU(KL7v# literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/pages/Register.class b/out/production/Client/com/texttwist/client/pages/Register.class index 029982a6d159c5964463b6c52be2a1a851a086dc..fafafcd371a5cd2abfe49fcbcf36994da470bd9b 100644 GIT binary patch literal 2624 zcmbtWTUQ%Z6#h;KOc(}8DD);uxRi#V9gFqWM63j0|iS8GAa}-_v1sXsOZCOdHj)rtb#i#2C*E$#|m=td{sph zYjU`&LPK7`ClTCJF@|*o8!9ehQ^8gQpDOrF#W)HoE@NB4=PD-TVhUdAa3xoCD!MQZgxIHZy=a++E%chHZ)~*1QVe}* z(>BE-!-YidA%DydbZ_6Z%le%amsgC`+!jMPI~u+M?d)P!LlG3s^chl4 zj7mj1-xvC_Sut$SbZn{CQ1C!Q8GCYJYPf<~hKcSPeM%XI+S>AtX;T_f={-@g7SnqR zi&>l47V&Q=oOp@K(~EPv6tB95=fzuLO{R5{q(Oox+_t(Es$~ri@koP(ige0%(_xtD z?$lAvi1y89t|hk0aJ4(EBV$thYle7t@gP$S{p}#A-cJESkNF) z>z3M1_1)4HNag9~HIv_Y$En~vLu{Fz>0jz_V%xv;uH#TP6<#XkoHDVVNSso;M;%3C zdlT8L{LY>jVbQTY!Ra3Bd2Sg(kXNJ9*v>95J}SFT%`Rme%b^|?^;?2ps{Rh$jr&2D z^7s6LOC8Cy%lX(|fXklQ^+8kK`X%RJ=KjdQfROY0DQhm-Slu;d{^^Wj7E{NxKJX&gbA#u$2O){k=-!YJlx=X?Oe zt9Xr8qyX2TlTs$%g+MvmhDtc#pJei9klNm41APV7fKrHszm4IqIwH@|ACjkasJ~#K z0j7Jj+X=JS8j&=uo{?jMR18|p1>+4VTb5{Lfkzip8iA{e`DEa@lgS-?hXuSr3_d}L{{6j4 mJU_)PyoI;XL%0~;!Ml``5N?u%5K@?-?+DE%=qrEY!RJ4nTPW^ATu1;%ky1eL!9!&YNFh4*p8876ZJcP0iB5)EsQ;vv*WOJXW{ zU9VE_>)I7B>EiQy`vKfB^El2tN0gp(E;4nOdpmGkIfnJud$Y2mL7OblCwGhj*W3hd z83!gzn>u+m^XA9Rn=HLwF;>`#4HkoPQZM%;Z}oPooqQRq&bPSLrPHS zm=jgdr2LD;i7Z`JPf)YJ=Kz0*pF#FmRd0x!{&RiI=Q^c`yr7IW4?M%EoTc~$Gy53; diff --git a/out/production/Client/com/texttwist/client/ui/TTButton$1.class b/out/production/Client/com/texttwist/client/ui/TTButton$1.class new file mode 100644 index 0000000000000000000000000000000000000000..86e69bab06b481e326ae2e5405fc7be0766a1352 GIT binary patch literal 1485 zcmah}Yf}?R6g?dxBVl6V3tbTmF=z?c%hN-ItfeMZ>FK_G@44r``s1g6{{wIX%^?iqvRmo}_?U7_V+hlj zDPR&;-0tcy0$lSjTfh*md-&PI4T18u)U{AY;mb$Tw6#hEF0@|AZ5ecIq=PUvVJAtH zu|ZR6E!VV~7Z|h~QChnuP;G_rW?wL4L20|GhKP86)JE_AGojnlpznaJK1cu?=J z-pBXUQ-ORlZYzOOD>CYj&gPm*Rvj;a6RkLu`l(DJckT-Fj;nzG*cg>GwM`f-FXVpd(Ps5dTtI$qX{5W(7{~ zn`mj)gT>uYZP_TxTye$9@a2-+%3@*Z1PUv0CkfTV$OT;dlI5$eVob@R33Z%CW_?N7 zjkxXMrjO&e<)ehMk0Oq_5CXa<(aUkf>>eidLA0q%>JrqGwH2E%>aOIwotqi# z2I&rUgD1<jJi@= zk@pxpL_C%`9LEt{pnatWxqN_JrpNOc^4J0LE8;rx)gEMz$n=r>2S)||evP9`Gw)H@ zqh*Pl&huRy$f6jBN6Q+0PV(k5?;5Q6;8W_Nt5A0gd5n{ni=cYIrrKpwq0~d} cnTLrym8(4FaFMW}*(5IE40i=OALf_8&&#xIy#N3J literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/ui/TTButton.class b/out/production/Client/com/texttwist/client/ui/TTButton.class index ff630c349b6c020a2b3668423b8da86c2b25c4dc..4a57da6bd7c16bb342b860a5e52668f228cc44ad 100644 GIT binary patch delta 813 zcmaKq-A)rh6vzKl3Y)DHLD1H!*wTWw)w1%TRa@&vK>=GpTZ$-tOt+h6aow8j7ULB@ zf}38M$U_(tOw{-Q-g;}|3+O8t&rokngx%!7zjMx<|D4UtclFJ|t*^g7egQCzdH{!! zRxu7OfFYcdG$CnH(v+lW73Xn5N=C&+T#|BG7P3-uQm!b-2hfkJGPoANb=*);P%y*5 z=WW|?3YKWKj21&*&a_R}pJ%YVMlP(iUDML^rmeRf$FNVO51=N|VaV=SD>W!_@xGxo+7Kc0*gLZ5Xg~+bD9Bu*k6_bIVvzaEIeA z${ZDx6|8VnWw0vc9@aSS;{nGy9x}wdU(wL$1V<2$I3DAP0>M#(&Jd;2`!U~J=9@`) zKVvKV|8zE4Wf&0kda2oN8AY?@8gx_)BZ+RGc;RZsraYB@7IZ%MEJlXt+Q^5|8$<{` z9Hr<7deKMUQYY!pY^6S-e=QaEf55;F4uyMDI~ZJjN97)bNmB@r4#H1X2XKTaNcj-b zWHm{Y!EwyeB`iY2F_j7CAe*F5ay#ouJd1z?a#+=5yN1_%jmMjtm?o|1zT*(+5#0rXHMsx) diff --git a/out/production/Client/com/texttwist/client/ui/TTCircleCounter.class b/out/production/Client/com/texttwist/client/ui/TTCircleCounter.class new file mode 100644 index 0000000000000000000000000000000000000000..d669387bc3c307a6e6bbd119df19515dfc258889 GIT binary patch literal 1554 zcmaJ>?QRoC6g}gwjkilkLI^c20Sc7FcG$*13o%UqJA_b^0tp~~p~YV8sW!Wocip5< zkca3~fI=d*Qq|x5;E@n##$?wBh%Milxik0PbIx4P+xP$c2jB`Gn;1tak1>>$nKN+7 zz)yM1qoT~^JkMNJ=4TUG{9+=5Yk6G9f|^xL+`z9Y!=iyD12+Xmx<5ALqpCo@B{y9^)Z3HEcKyK1Be@&Wm(ilY^O@wpAU;_q0f}#==X5)=8CDz3 zVAGD=?I_xkVPrQw>H3k~m-fa+E$|~p`fjf}`$Qm93tFzg(FQ$h{mmC{Z^L=v(KFEq znvVCx=}EQz=*&bN84AoEmR|Ono?8q0e#8<2qAhUj3kb=w>-309;KE_)VzdJ3cBLh7 z{PSd$x)QCaD|1p0`kI2Z>XT;8bHdOi>N81T+oe3qo+rDZTdAKP1Te>Fm&!!7V6z+e z8rsy*1;pYi-OTl%-)p*eq|$1Vst(h>q%PgU6mD6Vz%dJxI8GJfRyfF1sT;U0Fdc7v z5to6Qg*uik+`+Pe6$^LOVpW+b+_Uf-8V2rLSi|oY9^j#YM;6wxVc{ZX1TG%Z3&W@d zrWBBEJKU0f+rBp>LwZJWKJgWt)Ggl8UCLYE=5Lk1zt~CfX56v@*)7?MI=rloE8875 zfiY9(N4Mll>3NiENc#1T({**fCY5S|7xdT^kCyA7{Li$XcR3Qeyh(j#IMrZV)j4;F zE(cx5{7#EaR~!Np>r$OfIx2DEEZ>lEJ}fDIdHZ_C2GAol#t8^~%hfxWFgV^V?n4wy zZ;&dM-yl8rKQas1f02Dw+C^@M#@H$EVnmtz&OXeATp?S??ctk3_BE_M94Taqdl-HC zN>?b*{)jy77+`dSDHfb&>eHwY#&tqiBnU;LI4Bp>SmN1ff-!Mb15GjFhz6P_ TrCCO#7;}N6$x~U_IFI}XCBScK literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/ui/TTImage.class b/out/production/Client/com/texttwist/client/ui/TTImage.class index 42a9a99ca08014d6fc45dcabae1409af00dc3109..9537221d6e8d978a26c56acd53aa2520446cf946 100644 GIT binary patch delta 29 kcmcb`ev5rWHM5{Fg9L*JgDit6gA#){gC>LI+TeI37^B? z7=h>yAHat)-q|*SMu8@snLB&#y=U${Ge3TQ`wn0pPkIr@4LwZ6(TAIQ$oFCrg*dKb zst?n+Wndi(y_N+aJMFf&oEZn;yc`GDMwni=h`jb7p}63TuNS* zVu7JsZ8|}2mLXTNy@sX4o>IF`pezccp)JR%R8||jE}kh@;};#*QA-Rf`SUoOk$-Z7 zAy)Kif+10IT=A;as0zQLxiMTSc{Z0D+;_Cy*^Ftv4Cboq3co0M5C}3S&cP)&NA&v} zUMmo9gcLjwHHOiAn<3v-me|n;E^ENDUM^^M5kZw5Y=b0s>(=s~Et<;lbTJsQOrH{f z@~tawZfqN$I- z?AbvWKAfoRn&(hCj|=tOX$UvaH4OLmtYDYUYlSjfC7pJl|CQ|@UN6_UD`eQLXkNF> z40~ME7eTjp;-73OOQ5)`0&9&+p%nFEz!!B=zVJ&`Nn(F*d(xxRCXaa+^^R6iAk>OS zaNldWlp=NFtZj_ukvaA5k?={~lG5fU+Zn=!y{>KvTTzZg)2E_^@~QaT78s|;ppPDh zNHVEa0MJa5&^z=`;v(qE(5gswl;%WX>Hw@TeSk>e2+{ozn4+zOkBxU0YhC2a2b^>M#Q%8suzJPs3*CD!T75NH-;q52%l&25TyH6eo@*AONDM}fD zQ5ZB1p^M_{FZ$aEt|EgpuFbM)uFpZGyQ%6MnP9u literal 0 HcmV?d00001 diff --git a/out/production/Client/com/texttwist/client/ui/TTImageBtn.class b/out/production/Client/com/texttwist/client/ui/TTImageBtn.class new file mode 100644 index 0000000000000000000000000000000000000000..06e1f2ac37d6e04b7ca4e3d61a4b99e18fd2534e GIT binary patch literal 1292 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 P00000NkvXXu0mjfjBJU* literal 0 HcmV?d00001 diff --git a/out/production/Client/images/scores.png b/out/production/Client/images/scores.png new file mode 100644 index 0000000000000000000000000000000000000000..d07dfe809580ec2d9b938878b11d6d865396f2b1 GIT binary patch literal 3011 zcmV;!3q16RP)U#VtdBx zc*P6YEH)UM&1S~-7~6Q?jTf-Tc*n*pW(kWSKnNiTga$%Lnx-mMn@W}Xtx_vhRjali z`l)KwB~letZKbqoKUGyDHBzf40^-y2zvDNy(F1JH%$qmNJJL@VkKUWP_uc=y_nf;S zMS?}i^4B;a6LO!iEKJQVOVX#DQgLP$)fE%u5F?_2gm8XLr3W=hmM7W zFOMG)d4RZPDyqot6&7eiW-SX7V?o{Egx18^L^p^QL$AV(L~FHf^$%0N-7bWs$npLv(3B@qiyZhZl7*&_yWIqwhCBq>J}#xm2GU6G{EIHeJ1g=xmFo(A%F zcj%B1*QS(IZ>yy!H$`bIGl$t#6;Tx>sH$kK5P9iUrrFSZt#Nm?=EVPpQ|{F*Glg+Y z{EidayU9D!ZdRvV4@9n*Bu|d932|lEY%hpHSr&5Jz+j4mUh3=>PO;g$!Nnl2XtkQR zZWF?aQE;e0ELD>Jf`=QaR>X)0kuJ-h);f~sW*b_>z~B8Nr^Gt% zmGbqYr&r9q(J3mAj;5)SGJ3VUpKk6y7;x~t$I9IN8!q;V+H|k+7rYdgy86WPWS{Y0 zc)*cn7-tdFC(NTosz255y*`Q>wg!Nj_0QGO$OuJ=;O1ZomLxsh<*ZT{E zg<*&Jm8B3?784Ox!2FScbNTsBoBhF2mz!?&4~29wU9g08qt8PufmNYm|fu!R|R#g&85i_r(wcMkfbm0oS8c2 zxi)P4#2gkS%JToJlN>Z#-x3mkN{?XsSl~=ey*ve#4TH!4B`E$8Bw>M;vK#n+Fb9y zn%6($cA0)?fga2CfY@ zpA7FT@rg^3eHU1K6VWFN;-^hay*SxRC(dlnE zU6r^lFe1cFm*p=Gl{m#g8rTm0o=yhLh7rQL%oRP5zeRAgtWx(He+jj)0K|nE6y#;9 zypm$)#idBnZ#iAIxDfgIj#A8xikdsKw?V8KH=~pOB#aOi&b4~Icfd=ZNB0_kF@vx) zATH?ORBhwpmTTEQ*H0KRH?=J;Ud-B?HS&8JMhMFY%p@$~(6i5l{LEC>am%G>;`%Vv zyHfb6hOlz3NL4w6-a>~<%jlS^l8%?}2`dhlxGZ4>0UT5ZcL*)lOm#ih;tO#_%koFh z5*J2!#RRLiBqS_RRIUu0SmZ0`otB*Ef=Rx>=tQPX0|BQZO>SE!v%k( zv(FM%kkC%ZIosIE;!?fhlBAFF9F7#Pl$ILp%*domtVGshtf+ibI_Tv>6E|^(ZK-*kx+JvK(GHEtnA2x!Pv2s7r`&`&jw4_@MxUj~z@A55* zE8`z_sZqXxMbG9!vC>rUK8x@W7Qi9|O&68Tiwmt7mfYywYY{%e0vM9I!|u&2=QA-n#w#vK`s+GL;(#&0!n)Yh z=4+i=GS-OCaIhF26h3ouL~)HB?8oo3@S+I|k#0}k1{yBf_Ds-2OzbFG7T95gA(>|( zhMmgX&t!UcIbZK2&(>|eajsZJ`Fp^Hb-u1yhzMvCwHS1Tp9NvLZB~o*G$1TQUswv= zlD=kHG^b@yQ(F46XiQC89w}+mkes?As*;iyujdM^un_8F9XvoZi0{POCC%sB#}Dka zp70$G2sVgnG2)GG=HAHUvcM+SXK`n6oCBvGnyqi9iyYD27xx+3sW z6eKx?bO{;tB+4 zwSp!re8&lQHMOqE6k(ac zOIXH(y6s+bh@fe_xjZkbRP?jJHRFk2n}3q?-snwp9SJ~ELM(F zQGGoJUhd0P8FE)3GI)15b-;yad_*{DTt`tjH5k$Qs#n=5U_NS`i;(VW{;>S}wB?!7C;5>^CpR!phcg^1u&VJ1WyYQW!tJo3^K zRs?}MMGIAFj}>Cl@a|}G1#EFAc%rZ_G_=vh#&(P6klFfHns!#u#LnF`$$~mlga5fh z|Jv1p$a9IXlGP~M%ps_Sg+CM~Imj`;dq)V%!XmIp^ncx9Vc;V7>Nx-a002ovPDHLk FV1gGmu~7g3 literal 0 HcmV?d00001