From 0e740143f38c9224830249097e1c5598bbe2a0e1 Mon Sep 17 00:00:00 2001
From: Michal Cikatricis <xcikatr@mail.muni.cz>
Date: Tue, 1 Jun 2021 17:30:34 +0200
Subject: [PATCH] WIP: group management

---
 .../DesignTimeBuild/.dtbcache.v2              | Bin 272 -> 73135 bytes
 .vs/TournamentManager/v16/.suo                | Bin 33280 -> 44032 bytes
 TournamentManager.csproj.user                 |   3 +
 ...mentManager.csproj.CoreCompileInputs.cache |   2 +-
 ...rnamentManager.csproj.FileListAbsolute.txt |   2 +
 ...amentManager.csproj.GenerateResource.cache | Bin 2076 -> 2219 bytes
 ...amentManager.csprojAssemblyReference.cache | Bin 424 -> 424 bytes
 .../net5.0-windows/TournamentManager.dll      | Bin 33280 -> 37376 bytes
 .../net5.0-windows/TournamentManager.pdb      | Bin 20112 -> 21512 bytes
 ...mentManager.src.CalculateControl.resources | Bin 0 -> 180 bytes
 ...rnamentManager.src.ExportControl.resources | Bin 0 -> 180 bytes
 .../net5.0-windows/ref/TournamentManager.dll  | Bin 8704 -> 9728 bytes
 ...TournamentManager.csproj.nuget.dgspec.json |   2 +-
 obj/TournamentManager.csproj.nuget.g.props    |   5 +-
 obj/project.assets.json                       |   2 +-
 obj/project.nuget.cache                       |   2 +-
 obj/rider.project.restore.info                |   2 +-
 src/CalculateControl.Designer.cs              | 126 ++++++++++++++++++
 src/CalculateControl.cs                       |  47 +++++++
 src/CalculateControl.resx                     |  60 +++++++++
 src/CalculateGroupsEventArgs.cs               |  12 ++
 src/CbItemSelectedEventArgs.cs                |  12 ++
 src/Group.cs                                  |   6 +-
 src/GroupControl.Designer.cs                  | 103 +++++++-------
 src/GroupControl.cs                           |  69 ++++++++++
 src/GroupControl.resx                         |  62 +--------
 src/ManageTournamentForm.Designer.cs          |  60 +++------
 src/ManageTournamentForm.cs                   |  37 ++++-
 src/Match.cs                                  |  10 ++
 29 files changed, 470 insertions(+), 154 deletions(-)
 create mode 100644 obj/Debug/net5.0-windows/TournamentManager.src.CalculateControl.resources
 create mode 100644 obj/Debug/net5.0-windows/TournamentManager.src.ExportControl.resources
 create mode 100644 src/CalculateControl.Designer.cs
 create mode 100644 src/CalculateControl.cs
 create mode 100644 src/CalculateControl.resx
 create mode 100644 src/CalculateGroupsEventArgs.cs
 create mode 100644 src/CbItemSelectedEventArgs.cs
 create mode 100644 src/Match.cs

diff --git a/.vs/TournamentManager/DesignTimeBuild/.dtbcache.v2 b/.vs/TournamentManager/DesignTimeBuild/.dtbcache.v2
index 7ea6d93c7cf94b40bf6de3e00371a34c2d9b775f..e5076c70ac9cda529afde7927fc1dff71499ceb4 100644
GIT binary patch
literal 73135
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
P5BeJDhTTp&@4Wv5;qg^L

delta 124
zcmZ3#n`HtM6C1-sCVxj0b4zn`gH)rWRMR9QGqc1*OVbq7B#X3E^F(vQG()2_bED)$
zgG7@QL!+d`RMQmWWCIfm0|QIr)MU#vQ*(xh$sd>;CfEOvP-A3(01(XzW%B{)4-8Eo
P7(Xz5VE(|;(9i$?`Vk-B

diff --git a/.vs/TournamentManager/v16/.suo b/.vs/TournamentManager/v16/.suo
index 2aa9fa15e9c58f4b1ad0d70da046d7c428c48a90..99bee51a68bf15ba9fd68d62c8344795d85ad1c2 100644
GIT binary patch
literal 44032
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
Bih%$C

delta 3730
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

diff --git a/TournamentManager.csproj.user b/TournamentManager.csproj.user
index bb8a556..d81df0b 100644
--- a/TournamentManager.csproj.user
+++ b/TournamentManager.csproj.user
@@ -4,6 +4,9 @@
     <ShowAllFiles>false</ShowAllFiles>
   </PropertyGroup>
   <ItemGroup>
+    <Compile Update="src\CalculateControl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Update="src\ExportControl.cs">
       <SubType>UserControl</SubType>
     </Compile>
diff --git a/obj/Debug/net5.0-windows/TournamentManager.csproj.CoreCompileInputs.cache b/obj/Debug/net5.0-windows/TournamentManager.csproj.CoreCompileInputs.cache
index ba67ddc..de3e3dc 100644
--- a/obj/Debug/net5.0-windows/TournamentManager.csproj.CoreCompileInputs.cache
+++ b/obj/Debug/net5.0-windows/TournamentManager.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-6e5ca88c712bf3b5a92f367155b7ffc624cd7a70
+6dbd88745d59fa151ec2b15eaaf1ea837c62dd6e
diff --git a/obj/Debug/net5.0-windows/TournamentManager.csproj.FileListAbsolute.txt b/obj/Debug/net5.0-windows/TournamentManager.csproj.FileListAbsolute.txt
index 9cbe3b1..66ce1be 100644
--- a/obj/Debug/net5.0-windows/TournamentManager.csproj.FileListAbsolute.txt
+++ b/obj/Debug/net5.0-windows/TournamentManager.csproj.FileListAbsolute.txt
@@ -51,3 +51,5 @@ C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0
 C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.pdb
 C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.genruntimeconfig.cache
 C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.src.GroupControl.resources
+C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.src.ExportControl.resources
+C:\Users\micha\School\RiderProjects\c-sharp-semestral-project-1\obj\Debug\net5.0-windows\TournamentManager.src.CalculateControl.resources
diff --git a/obj/Debug/net5.0-windows/TournamentManager.csproj.GenerateResource.cache b/obj/Debug/net5.0-windows/TournamentManager.csproj.GenerateResource.cache
index f2447ad0d2ed0b89a8b9586784d6572d2b64271a..e254cb66747a75cdef819599c1502b7666335de9 100644
GIT binary patch
delta 1000
zcmZY7KWtJ#90zcY2h>N!_C%;q{z!$kD7Gb{NE&0bEu>XyNJDgJG=ySO3p{*K)4_-i
z{ux}%)uqwJwTqL3yCxbPbTcvCoE(hN7)^}v_dUEQ=?%Z!<MZzB_wLKX{!RYmmX%!=
zx2>6DZi~g@=%wOon&ri*QnkEVEww6BM!jVk)iJZuTyyLscI8XU^{i>sIzPF@bL&uh
z7l8-s&KRYo>~gh|HO#*+^bz@+Wpi=1)-cQ#uxrnLaxa$7tiijCt8H_pvD)aO-9#MA
z@|F6knA4ohEgso?x?>MPkU+e)4l<8;s)Ykyxec|jy}JSNMf0Zjsu$4Re5v+d`#wo@
z&UW&PqqY$?C@$E-EFiAiLM$kR7IF0Npfzss!Zy$KLp0ULP{vUv1h;$bA(|!yV_tE}
zexscP;NlxMzdP))_jef!(-U6O52N7Lue^0${T+nuqbF%cXrjBQ+=+ksu@!<vl%-(^
z<!8Hae?1HvQkH=sm8HqKS1jBH?pHVoL?p?L!o5pTSX9|@7$W)lD`Bokizzz+LngUR
z&DA+@SlLM!{$AscN6&qfjgBZwTiS%k?BBvsg)=nKJyfRi>#2nZnu#mR!4Pa_BRQ<g
zFFc@Z7B)cTjrE=DgFNt{vePi+t*p&hLZQ4iB>rIKWx4Ye2vA=4S(@m6Dyd?i@4RdV
zxk@X*2C3L%#bQG?gSe$Fzyegh#p2gA+02BpB27|ykm}arMW@W3<L`jMkv#@S&=?%;
dVepK2){_vQd!kWvg~8DR2FH0A9GheG{sA_t#3TR!

delta 767
zcmZY7K}#D!6bJB~-A%|ES9dkGaZR#Kny9f_3Dtv$NQsS9NkAkh)QiMbf+o>TEj<)+
zYV|5Fy+}{JdTBp^;-!Zc3bo)tC<PCmdKJ`5@x9Se#DV-XlOJ#2>`ZpdPsW$`GFyNT
z@{re*B+2WCGdac@!BQ-y!=PfbCRkIfU^AjwbqjM@r@Wr2xTUAAQ+?|-U{8rL6LPA>
zTHu!&mA$QSj8y?(s+DP@s!Vak$<3FX+o}inb6d6G&fTYnNP2d@SkAbW>mETUs$Hxd
zwp5#0@KufUbcp(V)p666@@u!UlHwaOeAE#?T8JVHXKF5BXgH@~G+cd4o)DBg+qFJi
zYJQB3<iGR3k)ut<!noq4{bY?87qzLax=j`lmLk(J7KSH&FmAT6XJkzn=ezr}i*c%Z
zge(5cL7ZrGlH)syUbkz6QGvXnaf4*BJ4Ubdart}UYBP_84dX;>!8n}ycHJ;8Y=o>8
zV=P-An2ypj6T(KN8e#yKL))oNjlV^wz~?y8==Offzx6--WV(c<$><7ity|a&GP=XH
zgN8T%!_+V-Y@95JF^~^6&*Em580!)ElCT}algQ^+`DUI7n<TR^P7}#@3g1kxuq+w<
jANoIc&zz8%bgMK>I#C*6`a&@3i?cMm^7U#|Lc@Ov&dG~N

diff --git a/obj/Debug/net5.0-windows/TournamentManager.csprojAssemblyReference.cache b/obj/Debug/net5.0-windows/TournamentManager.csprojAssemblyReference.cache
index 480d75008485368cdf5c5f62d4027881bfeccf9f..548aebadef402014a6cfe8edc074acecb859d308 100644
GIT binary patch
delta 14
VcmZ3%yn=ayKO<9``{Y2zZ~!8L1VR7+

delta 14
VcmZ3%yn=ayKO@sR$H{?=;Q%BQ1cU$p

diff --git a/obj/Debug/net5.0-windows/TournamentManager.dll b/obj/Debug/net5.0-windows/TournamentManager.dll
index 00178bf05622154bc9922fe8a7df38df28008ccd..78fa5521844df9e3162bd1306b99a113c2fc37ea 100644
GIT binary patch
literal 37376
zcmeHwdte;Zb@!dw)oAs8OE!M&_{n0~@*CUWmn_>L@LR&h#9*(awY?zi%CjrmLJ^S?
z;sz25d`T!FFOoo-XA=^dkWyM4k~ActDQW4~(j?$EFPfx;yqc%^e!p{PW@lECp?~zR
zkCpfCJ?EZt?z!ild+wP#v+JGL-K8Q*sVLqrzpT_F_~dJ|lou|>&|Dq=t7`Rd*;8{K
zF?KvPr~7z1XAe5rV@`6w?oDPg*}UD8vYnxfozB=>cX!zX*}ha;RaN<XSM;83O6@Qr
z>gFFrKIZlIyqc>jjAcr_1(=w|{`|xEwDEo%Z)#`b!_<1CCi?SJDMRqAnd-=!m8zA0
zg-;hG0bcKe+}*4^uGIY{tQ5VTSE>@I_dKXncTv*?LEBed$YOx63^26iQ>XKQe{%)}
z+GMO4Pw-_cb)?P7IlVxNZjYm4;e9*af!Agjq|Hh7XF*6^)$@2$)?Ii9UYnKL5&)(8
zEsUQp>Sn4ERrxw}+96g{s9OE+Q)*eMki4p5wmAao=%Tr1WK=5PYFHLgm*5jKQ)iA~
zLZjtYMQJ2ar&M{q2KY+z^~A<X6Ci0Vw@Oz&x99?V4X?--RsR5fn4r#V94&)rGtmep
zpb`}{;Vo|jZo!h4g}02Ma^AWD$XpXB7L2i_+#Ip-k!=RXO0=M?s5cVR@EPwt81KtY
zM=b&AtqClh*2-9RCJ@RTiTg|~@k&h<CYT){h)+fU$-3Kr0Hc|h#g4#K?)9;#VOfb<
z0V|=o4g@e8Ou4vZ?Hu6D+{FMZW9A438O=hQ^3koR0Rgvg5m;|TR1<+gmM@94v>MH$
z+cjE-JqPIQToj3UDBNKcBV{OIWDbkEe6*920_rcIAcU7z^SlK$EGk)^z*1`+h0{@&
z8Pr9zy;>t+P8YF5BQEk0S7`*iMpM+Q1Y8TFXl^yE(JR=>nXxb%bg2bPA`4q%W;6?b
zDp!jZ!enp<OTms&H5)dAVz6VuV7Ih_FuNE<xwUwPazHZZtU=KnUzS(`^um^kwLera
zcEP3vp2`?`Iws@!tnd`fUK^N$=JN*TpsH-~H09(bVQw9E9g_B5JS#9Giy_9JiAIWP
zX^7TEDd^886ST}65f^KNpyu<@hLXAx(mpvEZM3<fRh7bU4a-dRIjAo$JzaXpOCbe@
z;OvADoShJY?iWJPK|=^mc?eMtL~|CK0DGX>e82|KlwGb{xa53*mhb_N(*@iyU}_QJ
zFyE2I73K*1Ali670>fjbtI-J&*%cJ4%t&G-D~mAp67}CzdgxeStAHH^LDbBxW|iY`
zs~n?C0D4p}B>^>e31}6U0DF>GMG*98Ib<^jXDc5?i1P>#xV$PNlvhP)@~VhWUKJq<
z)wPts;kzAke%vaTnp>sC-QEypP!%?s(5=$6Zj~lC6YC%scH;0`vX>PA=l5_Q#EZ@C
zEz@(C1D{=AXpFC(o!da%#sbcX8)`7Ssep(diZ|spld8RdY|d^e0L~J!xDH3F+wgBS
zGbEa5XIntD(9v__Eg|W|PxGX6-b7e@aY!2R&h-IlLO6*u;-`DkIQ7192ux`lHpV;R
zZJ|zu<3ylSq1shs9U?CZ_UODJU>&-guL1#21-p2D*r<oTFQkPq-5t<^i1=kiRwQzU
zrv-tQEFzz`T%89esD!<Uty~AX*OQ@MiFZB~=v4?OF*xzFypFk){LvEdMmxb9*%(j9
zyF;A{$Js!qLX{{oIFYl1Jv!eEjE+m#SAoEkDzGu$9X}mXK{)<3pn_0sC{jU?Wu6Yg
z^TU7+j2*rX1UwxkOgbCw7r7|HlP*mE9Z-Xa_!UKyF356E4MP5`i+~!luuOHUJL`;S
zo=y{{hK=zG`!IIfkZFWz7Dc+jf(ZLoDj&~nhC6xjLJRQJ61L?5O^9g81~fq~f<)TN
zAsZ^sBKM(RGSK=aBrv7AY>dyc-v>QH>I&1QfVx7MFPcd~R(iS$&(46Z4D!Aj1g2Dj
zjq%IuFBPjHOzD6cLU^D^4MA3UY6#D%fEwIjd^HG6sRkS4tL*<QRzsNX45%T5*B7ZF
z$ZAgw;dyUB4Q_6}8U&_PgN^YXySCVegz57EHH2_!ks5-m@zfBWF9+1%#_Fp<U`jRE
z2v@$eSPfx%I-mv-_8AzhND~oI>uDlv&jmE$zTT2WqDz-0AfeQLPqFpc<h&f{PiQ~K
z{=%Cf@$ovZKjsQr;*W|YvdL+R6c(e<P9l-`c!MXADTkI=U2GFJIm-hQg?18&#K#*w
ziOgKI#8t%-+2m{rNEF&hBoZHQ@+2|=nsP?jXd^>b6XTQc9S(FSw3Eaq;^TfoBWx$g
zwp7m}5q^9kfcR8e9G{q)P0Qk%i8D{YcLM^=+0H_X{cfuJ#o`$x9WG3-DiAuO0p+E6
zNs)U9vc)qLb3$JS0=^Ced>shbe?O@XY%1tL$hkY9gESZGAV@!9v%%x*K)~05fUg4q
z+kk^iv;&(8IuLR`8qh(ScNEz{kY1XHWcT^aC<fbeSHqZz9b(az#7_B4?81k8#kM<$
z;W)A(46Pf+aQ4F(x@s81<q*bj$%Qdo)?o}oNf^U07sfPCz;I&-({RTMW4OJBG2HsY
z7-lSC43nxbre*?$X=Rv(xo;T5{5y<cejmp0n#IL9e~YP3Y?67g57Iy0!YHyCh(x<!
zn-hEVtnKB;qR-SA=bLffV#=9_djUNMO#&}iVl8z3gWj_bs6{ycN}w+}|B}khIDuLO
zjG5@7G#o&{HaMP$j9x;z1{|(Etca0wh{e<sZc?7@M$vLUio>1R%DgCX4Vj(qqo43;
zMC+(ILP5FxASk!82k?R5ff=!K*P@<)V4P3|g}gjb$Xc`I4j8~#(5$7IBfcWeB~h5`
zI*9sU;&l{=DS`SeS|jLhs#fS<xUS}4L)X<r6t1feL56!>z0L$9U+!fn<lusHH3&x8
zy?d>^gjMg_lO*;}z!JYIlz9<<(e#U^=dK5L_6GK0ju7btvqvK0R~Id8BK^oLEUPhM
zFESJ1M`i*rE*v+UIa1qrMSMv}B_b!NM5J>$<!c8NJKKxlfJIu7(2u$_fuDU4Kxg%#
z&WOCI`J(2~_=yZ%Y76Vd@tRQTOr#%Mg{7-7{tE{>dn*+m&}-+g7~PG1loMWo98efT
zYq}WUPKhHT#krnNr%mLXDyUPmGS5V^NzhO5)*c|`43EpP4c*9clnM|_J%m(dt6VS0
zZ=P!=`q($Tbq3A`nN(v3t}}BfU`JPi$IKmNbrq|Pqj1x}nzm(8jI1H@yoLDeItaoB
zk0OQryoE?^<&Hr}_BgvTN7iY2#C(gwE$-o1u$m#822puytChVGl?s=<bYv@-oOi+~
zr6ag}iOSl{?i5BVdlN{PJoViQYjLTi7u~lP8E{xrjjJ_}s0s`VXIfE(aG}?%uN)$p
zmFow40^`OZ{NiTiybHY)#hZC9gN!wc`M0tIV1jlWe71~wxHg0^-oB{=Is+1%azZK=
zXf&Gzm>on>(YmZOdjgd_7|lv|jIqKPV-v<$s>k@%@79+N!Kn-!o0gWjLsjlrXR7tr
zD#TemRs>!J@pZW)P_7)^BQRSn=M5-?@M^ZMv!dBcfZ}O-Yc>aMM&AT2y@7J_tn(H;
z&9x6?wPuGvwvgw8CI;x*QcG?=AHg`yR+>TD;pl<*NXH4qM<OPTkJ}Jb<z?nhQmIR+
zR1QdMR2)rX*9vwAvEoh|dzoP2tJdh{QWXj73)Kx$g#oS6jjWDPdKMBmm6Yk#Daoso
z->rKQS=e@g&2@m?S_0AW%6MfcN)hSQl@y{M5t3EgAAu)@!V;VOu&jYo1<}p|O2Gp5
z9B+EOIn)&m<iLP_pe4fIk6!HCio0TyA8TdkdOS3z8=%A@@k;xz$P3f?$C)H|l7W7R
zkRioSgvLXBsFUWbJ01}+6c`WtogQxp^+TNV-atP@$avz{hWa7ix0}qJ9t^#}8w}C*
z?HEeY{1ERv9q2>|e@&y^2S*I`!zO>*AmEROfb;#pc-ZyKqWK}tkNVz*O{DX3pnoFl
zA5+nhQ0K(^gA}LKgQO>WgCyF1D|P<_bq`J&o17U|!8wHXSEPNgc${qV(*6+w{y0U-
zQc7|CkV{I;Y9D~8P>*bKIs!cktyuP%;vU)LpY9UydlV@L0zGoPO+}U^&dCP4BEtR|
zjhGD?k$BIDudvU*4f~kA7U`M@NQAa}D&^YT-TY~oForG>#?a}*7_M;_<GdZ}d)q(j
zo`rQB*rS&{MKot!KzpDI=xNe`n=&l=c|<l9H%h@8mcWuGES?pSZ6?^rtyLOvgNSJa
zk`bLoNCk+^9>T4->4Tp~fCQUzl)P}x=%O3U#Azzd)Sn15Ix6ix!wtwPa1DX1qEXW&
zmO)Fk2sw$QC6nwWBoFN+L=^TC>|9>1{Y%WCyxd$Hd!m<M<4OZnShIZe8mS^4mXGc)
z5F98FT+6B#`YB_|Qxi5ehhwtPKNj#zBJ8h1t@yf-X9}-(<RDy62b_QiKP4xCjB5!j
z6*|o2p!}4Xz?6!zu{pjzv|NQDc$12Vc=2r*BK?pqEWZe-Nn83S69jPZAMS-nr?j*X
zhJ<QQ(Uky^exT*7OgR!Z+H>LBVY3TQJkX8MO=5Q9{ZJ=dtI6d?HzItq6M)&<ip@?}
z@y$+PN@dw-^A3EGQG_XY2aJgL$)ZD2BK;UCEC&Os(o22Q6R_`_*b(v0aKJ1?#EY#@
zq<53+!a>pveq;y-HmVoK(0XAECpnCvKZP-Lbr<8@4ZXcHjQ`}=4(Z6;&J}MKT_!QG
z90YSAu&k88GV$7-RH1l6#3b<~qV~Gs1m_v+q|XZ*$N6kP;c9Fo_B{|ViOvX<jic9v
zl)Y4x1^GmMNf^?Xh)MK~DqK+NmmBF`$1ZfxJ5;FlNOd*i-wlN-wmUCY9w}6lQe8vZ
zURJ%RNXfqQ5h%U`PMq`2fa4Kik3qd6Cnw(9phu{sFP1=ad{HQ75$8M?5KBZnS0q!5
z*&<Um!r}Td3D`^NOJTXhJAVwwC1S#YB+`#kw4MD+4k#>&cxOhe5b%hIUm9-=MSmjw
zFhtwOPZ!A{(peXfBUHt5i1cFwC(aK{1iZkss=XyQ40CwTEU?Y~GIb9>4j??iErE#m
zj3V8M^uoo6upFS8ZV08z_(~9%N(r_#ho74e@?cyfBEGh$e<EjkJEyQ*ALyTcI#ri!
zvlki|_thb{5}x288WEWOS)n;2(!V7yEWz8aM0i`rT%{i8(fOVW9i5XQ9Q-(zFoxC*
zV>sbq3|%RVp`V5^ToGXm*PV-TZi4x|K>O#kj?SScKPg^ej^GqWAK)(9i0f!V5k317
z*iwKCQ5c!CoRu)HA%A6VSf_F~qf%};Z|1y>5NVl-*V92qQTV485!G5{TG?BGORN<+
zyU<@B<R>7eHTwoM;CNz^m`NQ%F_VZ%VrE1heuG-bSoNVSN8_fCIK(PMJmQ;+u0n`&
z9_1J|K@-;$_82V~zWpf7p2tcL=dH^zAf3&PX=Zk3pCNPj*pqnY$v`he#CwXIlSn^L
z6PE9g#a)!T6^Clnk^u4=%tk1kgulM>{T}j$9f`y79O=jC(sQIAaU@$N+5ODKUh2VX
zhU4IsV@s)E9`!S{IKaa*v^SzL@C<DW&(6%(6N_hPK{D|f+G4&2^pn3JUsSypQ(wvc
z8b@z}=)xV0E9r2!j7bv<b8V-&u(GVgW@#BY!3NQClrCwGkW$~GP?l3u2J4SQfr{qJ
z*4EP4eO0i01{CtZZJC_u#@m{+Zv;v6ec3nRW1)(*Tw56{{nPY{Z<-@n&^Bjp1zs&$
zq|9mly@*ovQRrO7b>!Wla3v#CEpIw+;$Utqn(ly}a<hYaIkTXTOEw2&i8r&raJ)Mn
z@L)@|USrCzve@yh#2K{e<HNw+nWd0ZbXsZ$`l3;U+r5z@Vi)bh*g0|Xq^iY7xc!)L
z1;$b$V=443_l265;jvFKm^&;y_KA_zLKIEYqD_MU5wg@Iv4GPWiUmXzVgW*<cm22|
z3T60m&m#Ll=;lvU#KjIs6$zm=DlVWOW~5GT+!$nagv{QNB3X)#6s36=`gRAon`&sT
z2}g>g4IL>GVgHf~?7G}$FnUi25$`8c8aP#u>vYj4mudtD<flahX2$1-_C(^GQ{-@i
z8xi)uv(s>JBi`?n02a$OSVsr9KhfQZ1$LqCI+#0LqA}dzP|rk$jvI;4!|e+Vmv}$s
z5%3R@M8tao!{tmBAI}lz{NKO`iLfPZtq=7>yx$Ke+W9@W5HB~kH-{evWg|{dUxW{Z
zh9pc?<ppCBVgC)t;)zgK#QQ0xaLppuQf);dyc|Q^9;QZ64~6j&y5E!vveDjxNt~#o
z@Le3xQD`U8k$69M6|TzzIuhaQNB}x^6zK@lU0|!RV<z-l1|`Kb;gdK@3~xX*N*Kf0
z4`a9%T#P-9(&g|{md;zmv`#06;GM>??wMS#qCEvK_D<uxGdIkkw{KO;zLiH`fqiS5
z-nWRwzEwHdzE#X8`_@!^`^^!`av%DSWU(V7nDUBp2<SrMg)3>`8F^0vFS|}eZ!_`@
z0gT9v!4Z|f7-}R2*DI%&hS-Z%xoy;d{0p;H-ke(mRN`vk;&`zgPQ|l4(502VO-!ey
zv;?HMM7OgUvU$I51!UGzkBHki2aO9V_LkzIe}w)<_%$}Bz_%1CTcg-rRZRGc@6pp7
zp}0>(A@1XNz>E9q;Sut3gFOxA#&U#DuX>tQ?*f=4e)uGSyVc?QKtwukrzg4blL%RQ
zMe&n(KYp@5@9JejbYUa<xg-=?gyW$=KSapMLs4iU-j8C!bvEGVx)s5MyAS~^+ufM$
z(19aOP|&XEL3lRWpNAcb6cnbf2NV>-dq^0LeZ>2*Pq>~7C`g1KR|r5sY$zcG;i(sh
zEAHVHdBf3x!wq9NCoabMDU|S%T0Tk>zd?tkcCnQg29V9-qDE)4QsFZ(xU>mml-F_b
zAfv>UIG>3z)nVA6PS)KBaXG9(tGu;Jl}<Zv;BgjQ{&e8NDEn4f1^TL}s%**gSdvws
zWI_meiEh^42AYLd_72g>eQw1}2&nJhA{_8$F~0{SeQlZ0*P1E%+UWOnA^EM4FL|7N
z?}P&ntvw<NYcG&<-Bwt8YoPont^&OUhigGpR}qU#z{1)iiRXoV#gF^5QEueLZwxIH
zVVYA>SdK#YYkJ{LGM`=!MZCWph3j&1Efvd-5aD|v0eIm77$~$%sQ8o$vQZSYUqa_0
z9fdELB?#>#Iuh?MW#I~D3A)u?$^@X}wZ%HpqW&=r0Z-w(iY>}UdyIy<IHavG1rLja
zu$3#s4q23Ve_adL-hxFhykzY~a1Z-d$P|g;RDhzw%a(%;V>m_LLLNu2-WLD%f(Atg
z$rvctCPItCK3u0-5`T)RUzoU)4$z#qiyzJxz|KoO3tyeQn;0wmfAFE#s9w4a7B6G0
z+(jrVN;TD@Ha@##jlr6X6z<)$&qSh$w}bnZai9ZV*hF}+a_>OHf-$xvu;^PC&8;yK
z_W&1UcW?UP8ZwGY$;D`0+~nQtBeF#!d6Q3V>ADK(9}J2Yk`Z-sRok+*mCIHx#{~^n
za6ig_Xi;h&th;`iQfpc7$~)=Iu^cJ#SP1`80o*lRY6s3RuwScrS6tHxcT<M|M`M7u
z^k;iWj2Gt5I1v9_Ss8fL?~IkI83<Gv`ygIHKZOfafr-c1NFv|Wh5hAw+Yx+1tUTBQ
zbMiSCkwKB=ct`Puaq!wusYhn1@5Y8}Ew!wS<x{0cYim>%;m=YHu_wwb)lzm{wWS`2
zu}n&Ni<IZ3{6i`6okF=7Wx4u7<pT|tdTWhSWvS1UQs!GA(^BV9R;zn!F0L$B->-O}
zp<JD7X8E;hmfzGRFqV41LEbN^?WUzZWU>CXMwZt!uskHKk5@TZ{f|~X&`__UH8ae5
z^=$PF(0{3<vAS9PxA6YFx)Hh^Xl|^&NPSDi(C@#9{1?!Ak+K_VqL$iJ`z(5Vq=b@>
zi{vN78og4_m9m%0a%y!W>Xw?`#PXZv#9!Vd+5$gY-4pp(S+BYU>FHec$&%I@OMOQ)
z{}v=8cY>al+AlI+Zl;7!l(66D%GmlPv4d))9ex7Ja<x#(kHC@()i0WUTeeUwv{?RI
z<8R9rsTY7*r0y&GEv)@}i}cG-E>cY<F-uDxX!wQdhbET#i}D#}n|id2R{9UI&wHw!
zs*6;<hGYLWY;uuWU(Na-o1TT77)DyITBIBmTm2L^uU9n|ZM(T@hKU}bTbtU9Ug$-Y
za9Vm8|7w+0)l;)hLvXIfmY$kXH3$C2wlioONB*p#1vNc2Csdnil(x4^+cI^LK<moc
zwh5Nx<J#Y_D5YIpENwS8v2CjhwKw$C45^)v${s#g#<tyf{*-*r3g2$ESlVu{Oq%P|
zJ{Ou+Md+YfE^Y6Yw(Ha?fsP8)r`8BG49anJTx}HS%hKkkPJuozZNvB-fH6E$cQv3B
z>J9jod}L0o+5)?rP-E(lilFTjY;*$a_lPp785ZM{>Q>bw(3PbcI;!@MJzbM9_K!U;
zWulh#pGtkX)bFfLU||0l9Vju>6BQ>=_BRfpJg<gPj$5NB-zDXsLCifR<0yYtM*N2b
z^ED~&7yQ$WZwCI~1oIOqe<9`Xq%1Khp{(ULly(axTyC<wx`ySS3-1ffY<;4f<>s2(
zN-S%Ec}L0qu`gHMh4L?ISbm_9<ynK}PALs_7wGSeCX6}i=5mfmk3#Enhv=_I^mOzc
zpnN3y-jcmze}EnKjy1pzd&g*pIqK@h50}hQGaEkz8ZDv2cm(woRga;3r_`UTJd670
zrQTwE8TF^7{_j$j7*7IIUh)*m@#w$!`hTVI9JD=9cCN%yZ?Y1GrQR*&oz33|=I3R1
zploTm3*~~+7f{Y^A<YJp<xc21N8J=X2i>m17(JW3yX5<j`5;P9+j_B~9_g)RwBh^9
zI3s%QUSCR#9+xiX!NP`GV6gn8lxGai#VRSa9L;-5T4_&9U0V86U(Tj-(l0G%FKq$)
zKil+kpGMnITkl{a`#NQk{>K$8PgnjLbJ60@f}wUre&_S97y2h;T-_LpH@}=~Z!Ck&
zl%r)*=e=Xc;RBZ{!#rQotUj(xs~P)LIlhheKC8vrV>7y(i5+R0VHxULfyQIGCL2(n
z+xCHqjA5$xxX@n%il~3m(6octccSXka}-|Vs=s2I5mo;+S3|o2S?V_~^rgt(Vc(oT
zpKWK<Z!0Z8KN9Fms<L#W5mWX8&3C5B!mc`RrH1AqGMA}60-cH7QT_z9zgD-!?k}$e
zl+<m|r53yLn9E09D%ECW><T*_d#F~Y1sYfEp+-G+sqW#hT5Q#*=L9+vo8Pz+&zt|y
zg_bpL0Q55#x~2X~t4{sKg>J9k2gq1MDL*ilnAcnNs!X6WVwXnM=tH%L!@m^hRy7it
zW;Cg5*XrKiWgfFy)blR%>qyp`t~N{lGp@c1Xofl>kRHP<b+6mTG0avkY}8WLtCQAj
zwGdbLoXz{1UT?)!n+yGU(^~+oaiJet@3d^S$%S6B-fzuOS87PKo~!nTpzB=9C#;WI
zb5)NEU2i>s-Qz}|@>6JgqYqhXzItm2`j9~5Y7=H<zWT5WRRdb6J|U1EUqXG)ZR7YZ
zQQzy35s7A(s6Pm#DKAm0w(7Bya*?`QAZ__Y>JtKK%0=pX0m@djvr}7XJAA2CT_@0Z
z>;QbJRo$rDq`$@LR^6uJ&~vf+nhQN)PBYrn^8)D}mZ@o16?9py?zvj`@avK%umiqN
zpz&A<JZZW5hzmX5^f_yVdftWp5ztCCZHMro_gd_gX9XHpOVRsk^$i#LLHRVe-1tu2
z-;2;?ox0bBo<iPpx%!DfTC>a5d|o_YZPH5X)scPDL#!q8*VcM<uL~^$v_U;3(5-4m
z<crou^&h%TEU`)bUPEekQ!Vm_+Ab~gJapNtX1dS~&~uC0<3e{<SjZwCaG|csui|j{
zdje_AwyT-AB=I!6LiO#}nsJ3+q51_Hmlb}68q#fImn+pfbenoT`okm~&{AlZtJM*K
zbPqe#y>1)FzDq5`nTJw$t8Z7Wi|kUjYiQcxT0-{-q`haCdcQz#!kYaij&;7_LVv0L
z)!L(;2~h4;-*wyGhV{3X;&F{YDMyhBY3M7)o!BL0sA&6&aeK*ktpYSw@*_)z<MWBi
zLV0IN);j1*xxM5?>vcXvzQcg9Ka>@hufx%esc^#qt-<;a1oOk@0zH3O;+1H${Cbgj
zTzEe_fh*X{RQ2NCWhlP>CoJmx?<m9i1f^*S!BXoMqzTqF<wW~T9CeT@Sf40CTlIZY
z>S;p%XCfTS4je!kDk$N?{c1|ij;U6(kav}odcNM?Nc?<}`5oBbRKytS$|jb<R;~Zx
z2I33#h$2_i=PFTmV2?eB?{3$j#8nr{a>QFkp5;;^dq=%p%1$ZwN_kMqq?BnX$5C2X
zR|jjG)CuEY?F{u0N=uC!k6Me=7mS{gOHn_7E2<MhS&8zfI;&1M^s9eWzi4()uBkbN
z6M#EQM%0tWtkPRi{;~O9b=Ejo@*pzG@0EO9{Z@UZ{$X{_xV-rZ^^odCHgQ&URefEZ
zQ{O3jLcL(LlztO(4%Yq?C?Bo=H%RzR)Az7~+1Hasr1?B(8cXYpVe~T1Fw8dOl!n>Y
z&}x*Kw>K{{=9u?4pMw0Y&9#u9jcf$wGtGud8kMEkiA-h?9}xXND&<2`enHB!Ql2x)
znsF6woGROBEH@9<USXUwUTo?zI#It4_0sAiD6haSu-C=hP<9NMx1*PbR7=f9<DmJM
zD2E~KDCGRIJOds60-BsvjaDAzryE&+V}qg6kT7CgVt%n<9A#_CTOjAAhC7X6^9|-Z
zQEzG9h;lykG0ZPujE2mJVLnoR3fFFHnjSF9fT>kw#y#~PH)cwYPZ}jHkHRLmH2$M8
zZa!)~3oefOHuUv8q@An!5ioZ_XG7|Dn;WesApe%e7mas;24fdH%$IVplpg^8D6)Y!
znRVtWb#<+6u2&B?tuPN7E1Lff`vY57sW+Hg&ArC*>isDHtl^OPTjT259?(48^mX-;
z(bkeN4fE@b!{(C)9w`9*fwD2PT}ISy&~7hCU$prd^Q>rcoAIHVTFlx<s_rqLH0PJU
z$Gpwh18v6*r{tsNIpect1{S!d{_7(7AI-DI8_aJ5|3O&WFyGwx1M{4Ds_`f0S@qAL
zJZBuksL#TOqmgsQPFmHV%yZ__(&-Vyu;3vtnHx%0L|!uAU%w9Jj~X|i{O9T|XkFOU
z8F|t;RI)p=L&p20abM$+$O{Jjwi;{l-bgia;iphmsz0EtRq<#wJa-SuX}E5R;iu}}
zhVpIdZj^Vadr-bZy&L7d>VA~(Q4fOharH5jUy|~x!WA>fRcVlGv(&euUah`r%qgi>
z-!R5e|AVoo#8x*!avO5zRi$k>XWW2thB}0Do=Tx?RqsZ*5@$_q$Sxj3*`dCM@@m0%
zN%=bU3^2VYH;c3*QjSUaq#9BGReDb9=TuI8ztk|;qhYW<CiVNJd|b*SCR@j(ykE)>
zN%^>xPe}Q^l+h?9+fmZbm-=R@ACYoQ%KN2MCDNl?vR_;3XWf#Rb5cK7!usQ-q<>z@
zb8bnziiw;U`!(FUNRzr<#@5YJe!wl+dRFRZ%UB;PC(Zp*9;tW}>PD5wtYT}s)Z3*#
zUQPUXwcu-5Z?9n;`MUaR6*oGJ_ZYu2t}>6CcbcCvAA>i(WWH>cMQS2;WKo1W5pJ;H
zJ`1)ZoMvo5`E1i6l)EBFfH&ZI{QbcQzI9oGtEf`=T^Tsa;Q<w(I@R<C>~as38#p~#
z)mVb^PwQ(?e!OWq%3oOvP=3c+iZW@D=5<0@CUtVfAlZaW_QKvGc$+BUi@<SbVM`VI
zHn0jxfbYb4TCKVYr3vpZ1-=QTi4)i|)LT%RxaO!peI82ehH}!i0HulZsT!1*$cWcq
z1cq9R(!{A!6Y85#n#jRgP`?J{b?VpZGg#+k<}`DWxyC#giH>o<48D4h@nF04U!##v
zz#d`TnTS543)4MUUraX|>60VjFx|7*qr>t>Bfp~Qi~9W-^0s1JE3^ya?u<N)6Ui`c
zH1g#Mx}1r?Fz$;Z?yb|mLCX5qaezLE3hQ?R&mZ<<{U@kD@7DhSntS0=#J>ymJyBi%
zThPQXK;kb!{c*S61PxA0zNFN4)HxH)nBx}A)iikL0z{M5h-Yi?-l<-~bM7yx&#I@4
z&#F!4_tlX3f_y$`E>Mr){X4VOI8BFE>R@&#fBf+BWorG#b%zfxUwIg{w%&Z!+1TTO
zJ^4)6P|rX*f4HMR-FuTXtRmfR7r!Uz<kP+B!DJ>c6sbPaTuPEjcm=<)_weDZ>D*v{
za=4>Enaiyu@s-I;Uw<kfZC`32ds0h7v#a3pu!74~=eEqyK*~w>^rwz2SG#+1Dd!}C
zj%<H_syCm`W`OpHFfu?p(z!f7`jb7W{^hDS+21?VpUi_JlXtSf9CNZmgFe*T6VPe7
z%7;Or-I6`M+_U8h)tSk!T%ooPWqOaSQ2UepL#gheL1?!^_qalZB(4ZcT%mi1L|4R0
z&9zeXW(Rt*z_0WvR(gG|(lo3578kMFN37Nqm+Fr-`eQAvs;leN`kmRnq5jlH)s?<E
zwOw@$=klq6w$9z^Bu8-gu(~3Z-`#T~Ou99hPeSRA{-GWS==Deo2G6x!k;<f;bg$~p
z4mp|RKq`~pnam`QrJOeYFf80+M>g4~+WY!cvaj!OfwSXyGIK1|rzZG9&TAokH-3fI
zgE<{=;UJ16T`5j}s;@KCmpbjy_V#oo;ZOyoa+A|hKw!>uuuS@B8frP>k(0OW&P>X3
zEQN)0Jk@&>*mHsU)T@X7lXCF8xE{;44E<TNZ_hdd$$TC+?>wyQr@ONG?P+*C$@I`C
z8gW}+8YY>DcNf}Z6WKMG>P;v6;SzmnJuTgxMK`I9Hyu8_CE0ru^w^$G^-G%{1$JS=
zClYiI4^D#Z>diWnpbJyPJ|_y>nauYdPvs_QNDcI)oJksXrA`IrXCmY7!NF_>embFL
zAeBF!)y8ih%4fR}E>dual<G?5uS_31zI8AyV9If_&dyXW2REl@@1rNHj_kl-(n)PQ
z-7B80whm)Cq<cFvC$l%D)V2&9RBBsN$I=<M?(}q}PVYoFN^09v1FU-?46dL$89cK&
zx`pcO!b;-|3AAr0lTQz%Xl%WPxNHe+cd`R6hAvr{O7Y4faI2FY+?qX=>B<kIhwX@q
zx`xq62+|PcaIQsyREVK__&~tqf`cu*y+Yu8&-S#F%e(c?%;1n$@6v%oA=sq4F(S`7
z-2u|DJ?TtJu}h9m?H<G?z;G`REGVCOHjzdgO*GZDEkpTyHnSy(U&`p{&!W^OO{s2Y
z7+M3dFLe^0lu}#LPX0L6P#sQ+AKg7}K-r3wc8r+7F#TY$?IgU(r`S2vkAWw11x#<x
zw*K@$Iz#@gsh*)@h>lyF>?xVmt~}9Q-R<4S(Pv+K9{1~ehJd0!!N86LSkMHTv=Dkh
zfqa7CLQ{J#hqcl_+?~z`Il7Y$%(Wdqg`PT<b#5xqcMV~MIOuVA*B<PaM-hk$jhbsB
z-s^-;u^-mN^c0x9#?B0d$=oITr=&uhJDNT=r02LGM7Gv#{VDD-bfa9MN!v=~?o0J2
zPfIP(?)AUN!Oqv4FEDxy6p+je7aCmW6MR11lkQLF1Ff=Aa&y!1R683Yr&M;PGwFe$
z0dB4WODrMK+j9le4Zi_76ow)oM8TxPyN@3AykENmqApynuaBSZKJ9AO=9-T!-C6yV
zhw77HK~%nHAB<4o+Ug`v5yaZbaEi7fkl^`KjBg;Dae=Pm*;8(n>0B!5^d46de<g9r
zAJ@yv-E<g8^uU7%nm?aDnc9&>^c0fA_~rK^l&oYwU+@Kmw*ocD4oJEql{toLZx5H|
zPK2oAsy#QH>Fr4N_xE6HVqT{!Zn~lKSDkP$lP%1Y+fp!h0inlRfIE_z-c)}9mbuFn
z;C(6C<URS^aSM&XJes}hc!HhDCDA#Oj!cqDi?W(45Mp$bn~O}*%IuTDFxjtmFwK?j
zM0d|)bS}rOtKUNv@~~Xnq|F0*kJL<siScr~zJ7>u=e-lzV`pyH5Kx_9bC{iY8MaDK
zz+l!wNw^Zjy15M;GLugt+B+WN8f5uiUH2ZaPtI!@keqX}7MUiG44d^fWd6K<(N_R!
z+i7a-LA+e>>R6iCW<Uvse#J3ik)@IY3PFVbe?(|8&<37uJ9oDUwWQUG=`TU1b0USI
zO8`BZf^7v!f5$M;xu!{FhNQwvAGJRvD)}-yj$=E^V2P$PI`SZ*qw1z6xPa*F#V;GR
z4-UdfB_s+JmnI#?)7J|qes&>^RHR)TOCjM*9~~~ZjJqegtzKA49d$3lWDaq4Rbari
z8m}e-h;2-vI+BCZ739NlbYM^QA%RM1yeruaU2Qs6seQ@5bXKn%1=Yo-+*kAziO~fN
z4M#9r(+;%AI>Q2`$-^bwo$Tq#<JX?t@a&moM>=yt=J+52p&NXpn(x_>?oA;$>>6SQ
z3K_Waa3)>=O=UMp7j%M#CwJ&>;_#viJOxv%t{Tduvy_}a4FBJs&J88|B@<&N4l|<7
z&!)tb%1xp);O8+K)SFabacDFn)&wN7Dc#zESbGe%(vX*u!g@?I-3xI-a)yAChV@K`
zP2^Z6n?o9u^H83XaYMywa4<V3Va41;v+=sIZ9*Wy{~waWjxjYyaaegphG5uvMdB$V
z&jmRrgqsUebKIeD^orEM*m6N)1|To)T##_Gm~=q~D!tPUQUOApjUwUT29lFy<X*^$
zQ+su|5>?CL@`%}Nz|nJbGs*H;k)svgm%M<m$3a%jWW#TvcgeM#>|1RU2@a$)eMr39
z7*lh>_9<eVtkrf0&(8){N;vVCRs>!Q;slnd9;~~GXn>nT&K>t@?}AGsk70!)E6{)&
z??O6y8=~g-FH5)LIw`{(J1}(b5DX}J=C=!BKfhZ-X)drQ=+K#CnxIn}b@&+5Qg@d0
zRkhaEt%nY=a_aD4;nFULz*v0J!s9DF3oyxP?5H^o0(%ZFFPZ$iyMfBerr@R#sw3H#
z%Iic8VNd$!=?He({wq_s_?9+?EG6S2rA~;DKO_f_Bh*}zVPgv0403to?ENVo744Jg
z3{TveI-10#nGT%09S`hmXDW#-fo+@)odLTDM&J+vVTgnsJy_cTmk`eI!GjE;2-OJ{
z^%;xrslw?UNeGV*P@9e+hsl7XhyK;5c%^qlRfOG>O@o|z^I{%m&E-`m^BO&HY!o?M
z0`%=j4&y)=SH3wMsk*?Plyej_<U%`fBD;(K2^7_!B}J%Iz=fj*qI60G>(b$g=ygAX
zIj`!3ORrp^{aW!V1JiU`i%a&%xt(<4CzL$Nljbm{kk`PW^znpF9+BxNs>4rxm9RBA
zto6?Jq1K&kcN~1SXNJ-4?QE+3Sjw;Gdv-}ugyWU`u-Y~-i1KEho3GxEXWX$BtGu%D
zR7_G0s1$0wsAce%6?~82QfM0lJdDTPw}Hn&tE1G?E;WSD%&X;{*9B>((Z_Lc<nWn?
z92-yPvfmuayi&`zh*o*f*tjo@Lt1IQ5J!hgbxgDx2Hz`;LG&Os`@IJDn`}kR2GDa4
zu>GnJkM8$FDmCj@%av-G%vP5HkHxDBZJrfX1My+&1SPJ(cR0eWkk#M_4=uD4efOhp
zRp!^~C~=>RG!2U%3u(9#l-jnC6VQAWz784Wp~i(?w#%5^o~lAnLl5kZJR0-cBX+^e
zRE42}eOBX#Tic-#tyw%5VSO$||C7ycm}-qu(`m^(<|8ZK)sGszFHDC=B`Z2$C+Zk(
z!K0D!9pLGOP8lib;X@b+XVf8e6OQmFXsc$>%9Ho4s@UfBr{aXdeFS?@b=rda(4Xts
z6@hvKd-uGXpIBKfLEKImIah(!)T2EJc}cFldF}AhKD7<w%LC?`MND+LxIXcn8ADC)
z1pXviX~90skME(Ecr_a>T#KY}M0y{zv0*Lhjg?T*rfx)?Goea$D?F$uUQfw`pvo6y
zmU%MObgl_{u!q?Weh2nfvvvV{3i7*w2}Td<uOc>XIPZ}Wa`t=i9(2cMgNt6kxWH0t
zok6RPTa%9>2fAa>lq2CtGbnq}GvgWK4JB$XQw_(UA$1zWf7X}9D#W^vYb)Doa-Gx+
z`WGWqVFvVk!1@#9Vbx#E^-P`hYMESWPN|gx0lKNEie`I4e~1dx!~I?1k5J7hj5aI>
zqn;oMaioDOyC1e2LaC$jL^?!*mTj=yAnfPBE?xvr!e1Ga!~7Hay(FmZWd7lMksF^1
z<AKfQOw`cE6Qtgpf}(-)x&L%w&Tq!7Ar8o@D^PhYs!6ZkJu=#1eAneD{?xq5`Y57_
zFF+4^XXEaXhOg1@w9UL8w@ql7O#iTj)Qq5Qi`r@!JqqJcvj|V_Ihf%Kw8BegF}6+4
zd*N0{F4+(3s;Yt}81eK1RHXIltK7(9!@4?RFcu~79Csn=T%ukdf^{UOei9%3y-G*M
zUdBx9RRL&Tr>uAFlU`&h(xfWbqpBNG%hYH<2L&17Nb2cpON0_lkXIxTZFQ`f%zxp7
z3pg(Yx+$pE1vRE^=*0uD46_3rZ|G6|z%Vj1j&iSq{CV^@Z~aX%R^%SIp#(lJ|4}vC
z+jjt$WXvz~Yp!+a_j)HqWUC56(>+?RH-D8b-358tK8yy%@tpe$_lRB@5qiCVS7KzY
zj@zIgqqZvZYp#ymUkA`5XFyejpq0VMGP!5tS`NHAddu!PUE8Dswxuu8>U!@|O+g&@
zRPJbM>11<hOD^X{d<WJziG8IF-lghxf-i%)^X;|Z)ksjY+Q7dQ??S1wgCwwc41V^H
zKYpfbMaMfguKq#G@UIst{$DIHY^+8JDs^=PtEIY)<*e#hX{3Gw|L`nT{n%Okud>#N
z%vQCt@zs*q_~j6zenVYpq^Uj?iN%`g(?)gOz^s`S0l36AjhWL*Y*jyYE{d@Ypu<?q
zHXF<a)nL@r8V1>BD_us)jcW8@%<>ST$;_BC>c?KF8~Z7q`I=RYs#O|^nf3D_s~T?;
z@0n3$#HuYjV#M$w{ck}>Sz2=a*dL*7U1e!g{jgbAY1Y>orq>Bk_|YglR%TY$#w==F
zKNKsqO#QN|VH&f#N=56&o~f>`8!xLHucEcgNU32~*iq<QH$JOwe2xWV{rGf_IR-hf
z>i7cvaR~=fzd-}bNl;m-fz|qB9ZfVY1odMtmBRF6Z#GS78+*pG)vWrl+hE~g%*1VG
z9h5gcyNT{4n2E95EETE7t3(;qv#Rmfqu4^r#}BWYXsRd$-`Imj{rvj*FvZw=QFA{V
zNmxI=7vT6cK$qE=6p%J35|AZo<H;}pP-4Exxu4Hb;c39qDAf8SWR5+AVbqNul)+rj
za_o~OrDpxLriCZTF{_y12>O{-Ju3oU_&^LZCg!t1Huhyxc*bM40bAFPr$IjxgfnN&
zq&FVoA3Hu&RT_nX#3&edDJ0^f8h$maI#M@2fZ2)7jFw{lWY}~LQ~dczJ^m=+2wG>F
zoW+?Xr4dxiAh8ym!szgx@u6xWwhDr?v7>$(8_c?K{QpeKfIx#VtUk^mk3EBj4>==n
zK8qHLRkzf-bL4wCXKJ>A|I0X59sBgA!*8g2ru?$l=Wjl=fBLHDZ;O3nq~YbKmV9UL
zDu&Dd>E(A@_^R=hu5{-z&|mn1d)Z{yV;8zYU&i3iVEAe;x62DB22q|nL=6@u3qHUX
zB{GVK1l7sO1M~lO;@|c^+ofg(1Fx<Z!f(Vvw6f|q;Jp*?y?9@P_d&d`$2)0Sv4~Yy
zN#7Z}8w<;;%#;dOsaI)?TJ>We01p`Iuf%&j-mA*V_?K9hLRdHUm>Hu$8}DU!50L3B
z2oK@C8Sf)_cbB@JT8U3TfJdxZh<8e_Z7C5hv1A!|bV#6n<ybhbsy=dN0Xee_5w3ph
zopodHDwS|L_E8;H6I}K6^D88_XniZSC=F1U)?S3^D%7d7$zNS(gCEOZ$|F)H&|uci
ztVWMqf7P)V7Ik$DVEx!r^<z)Zl(07TRHcoG@zl)v1aZ*>1{g`G>aqlb97p8WW>yH!
z)dzJ~i3F608F&ntFZ@ilp}NiH12~D@mCg8f@bC-+4%-dTmC~ElYC}zH+qJE`15bkC
zuH<6(5rz#XSGVCO!@8>*{fAN9M@D%AK;ioyb%nd6`VIvy?aK{SBDWdvrGIp=9KVHu
zKaCdvxe&fh?VhHuVG|V5uO>cRjV$~qA4#%uDV$pNDfxe{{{Cw({tc<_#=GCYwdvk^
zYQw>&+=SYPCv{TJVtXKmhuZqnJ&SE`DEvtd{4KUSa7;Ypq&8$yL%8AGzu4Y0)Pviw
zSEq)%@jO^&L(iHu$<@89FI~QF<*L-Owd>|h>`Xu4<@Je^ZR+g3_Ox&1zlQ<y{hHpd
z*<1VOYku<Dx_m93ycWOz_xBxcMahSDJ*teId$=|I3En?@5N}r87x&Tzyf4Q4)Q9nY
zi`(FS;43kq*S@Z;UGv`ji7$3-_^Xc3-1ppL)(5}(M#|{8>=2&>%N@ca)yI>Ex_Xai
zv;BwmrLhg;c`QC%lsnYBBzHXN3@*XbuBjY1-6ey%Y02_KxY>M2vV}vLR37QZl2iIg
zfI|~9i?+c&96epxzGC&I%GG4v&s|M0+RNws;^DQs4sHI>L*vWu`3gqly`E>?_Mq_R
zw*qwdy)5KE+fJwCu`S6UQmHmRP^Vun<6v}inEf@#wE({%Cq^FQ?~m<KYRqkLKbVK&
zch4rllVFTR=%wk8PiUePrS8Xt*Ikd}chdAXs03FV!70Du>Fr^Z+i<V33wK6$<8<pV
zK6k0@sPpw$^u_bMwWQy~XqobJ9e{W_r!j2PudVnnAeDEnyi-D+ryj+L8(;H<s~fF6
zWz6AJke8V5eHo$nbaW64(ST08+r{(rW0OeQAvDWyx~BhD;j9(eG48b0gO}%fJR4;n
z!x)jib42lzox25343U)MULR$6+Hb`LFdh*RU3h1_pzEuVwG5XR1zGzciw6M(8Ty2f
zr-X7+h`yUaPm2Z5ehVXb<v!bRYTA!Ke3uUw2nHnb0-h(xw8|jtL8~6a**Q*Dm5q0|
z^ts!`)8eG|#!ra%-Cm9D3VrK&*aMka=rbfIzlBk}8d(Z9!Fdc;NKi(x1q=4$nxU=R
zVPBp%^A2#o+~1s<N89|<PbkIz;KzHt_~_rR-*kGQ-#)3o1F&H(uEplscw7?StjZkQ
zF!!47?Mv3qwR3rV2M~{-XHpyH4yST+H*KscuPR@kbib-#LqsOGVJ^NJa#;@F{~1W;
zmLT#w*<AK$ehD5hx-6L+Xgj%lu04><q>m!pdlz8RAB5SqFRZf<Ptf48j*w2gN}FqE
zaDlmD?#|)BGqP>T!NIvpwS>Ggl*{vJ(O0R@in+pvzHv=C<e*O%2F6L97=oUuK0K9n
z5)Zu{OXXgr)Rmr88?S;KY$3fve1LXG>SU_l?q|7SZZfC8Tjb2Ohtlo6cwiD{Jc{Si
zQtqHc$kIu)@l;<L(tZ6>-v}UBzto!{`6VT9*8dkj@7KR|`Aa+$@!ISEKMVXnUyY^;

literal 33280
zcmeHwdwg71b?!cAW{yUqhozA$*|D8Denz%z`TYuZVp+BmC4R+HOcD(CNE*wNNOR;f
zBio8lkRYTah2TK*fRK`uhLTbqp%6%0An7lG2CjLu&|6v_36C~Fxj@USmtURxeQTd{
z=A4o2q<`Fd|0v_kp1syyYwfkxUVH7woKg1ObXLWbQgOUrdP%8I;ghc&QeM26M00)S
zFY49DtIsX`l(F~R!rl}4qCMg|gKl=%?#~tqPRZ`e+3sk;&KK-m2YT#bXCT*6SC?Ai
zi9Wbnsl7%_HQ(^q_x;|USBq4Qu|}ygz$7*HjrZZx#`|Hsshy1vQ|pbI=+95}Jl??b
zWvXLuR;oe%D}Q>RCQ%)bdw}(a@n6D2hCiNCsuu9ddzI=9<6o|B2dWEY67ba_o{m!P
zObPH?PN6`X*y`yGNM5#5$2#1i+Yd-|dl(f9?_2Q>y>`GM9d2&O0U>o&PvK2jlX!<-
zJCxcP0;SqVzv4yROqEb^7<uAVN*RE=(c945A#NtWkZFe3rRI1QMq|YyGd3X=&@`=y
zspa^D%tmt@0~$|RHC3@Tj7+LD3;0^|^~5Ht+Cb8tvZ~g9XT?SM(l5&wS6=}?T+nDX
zPgFy++13OmpxSEa!rNTnmab}DcH0Ol=dHa!7Mnq_bdoJ8bKJ&<GaDGItp#OG+GuOV
zXQuzg%z!fowKhm^Z^P7SuT47hfKcXmCSYpK)M~0I!KERB%uEDxeS)um(QKQ~juxQs
z`&iMmCZX2BOK5Hc0o(>xu1suM2%K32sa2aa$6;jLL1(FnZKwf(u<#JuHKLvf=$l#<
zYi&1LCa%zEF&jn7S%{)-5em<&N~D+)MHUx>e4>+*Lh56tr`qE1lX>2P8dh-`5eTXF
zi5<FAc+XR=OCw;mhuEbNmjnm|FzrFqXo|FIYlFO1v6gnjnz)j!92pCv!H`<IDz>aW
zX~rGIUrMc52A3fmECoNt)ur$m6oVhj4!aG3mvY)sq^y<mlnas(cQcBX%$l~9Krd^p
z+43(6&My13%u|~r53HEZ^XI}-c6)<49sn)p4U9ou^~yQQEzZE)KIR1^{k?KQXhc>*
zOfVA76w}%iZ;VsW{WA$#V~$IRt%9JI^YNxcV}i8L%|sh-scBbL@JG`cQ#}Fo<z<d@
zxU|U~kOD_=bRr0jP6Wa5iy#=F5d?=kg1{t?w>YbH5A;+3*Z^ibYjg{zTmaA$0YE!F
zz_S6PiVTPGj;*XQ$C(zI&&S|+jC4KBAi`NovC53Ktz%^cY)`0P*J;x+!PWyi0fM+$
z+`uaB@T#=YBLF?B8%aRTJpy{gBS7Z!tBqw^nrs#~kqz0(CqP>AtH?)w6-mjjA}{$>
zBqmf5uBi!{?{&=a@v0m<uS$=5y&-L&Dr|J2SEXycDqU{2ZGl|)iRQODTg!m^TZ9i%
z#g5L_xy8$YcV1O)%xt{0h$NJ9ka&D<H)E&~=ZZ2Sb0jmnh{>CBc9fAV4pK?LvWhHT
zz|reA;#<v+h$h<I9TF{cjND9XL^|<veCZrF5tdmQkw(1x+K@CMoIx7#bA4$X`oK8^
zF6bOKX1X#Rkxqr<WT;c2+F#)vA}<N|=)NK39fn+>0s&tIyK;Qks7*f<(L$K+328w@
z=JE<J5;@P;f<UW-?92fZ{zs>&guKXB&I8@+sYtKHyB`VlDugpQocINP$DB%mwFG=?
zr$r+hGx<z!q*LK|I@GC9wN*Hr$V<aLx?c`i$0;1BK;VKZurbq{ITKMqIKB~5L8!J@
zs36E{UkBm&myiz39f1x6d>y6@Iveeua#BPGU6_6yQiF)hRTYCS$ds=Jp<vWSz$~*o
zO?9g`>da`qPSb{ljhPzzC|28uYlLY5MS97C2>W&_pNY(9Ex=bx*w%(LA)?g@X@b27
zHqurR`-_ybTgN36ZQw!z7gU#xnFaPALXU{L!gOUwT_G%0jHDoIeO-lTUr1Lb`9KW<
z7gU3dnak~GD%B9Cd`Jx;e07Byf~@n^5T4T^HMqb8Y7n@f8f?sLuzyskhA_Q7q=pc_
zwn7a-*86G*&qE<KxVQys5V)WkY|Ql84V5t@OrH#?A%v?d)DYw>Uk%}THlzj@)<6vc
z7gU3d2<1(cY6#O;LuwFV-@#ChE`1`P!Pi9Cz7x`f>w2rRM~5r{Nu~CCD!tDp_oYyO
zLi+^!i!O%5XBz$fxL42;U#yhKCU<tMJQ;;{28qOHntX}ea%hS5l|EsUyEY_IXlIZ}
ze5To#$eoLpxS>)ao7^iy5`}gKiNt4S`x3bUy5NYi(Z&v0P0vrlcQn+U(9V#bh|dHY
z8euz0whldxL<ISX0P+(~&(ZwEt=SysD$PM42m=Bw&ei1>`$4Mv*OenkIvh;9%Y^Pk
zNO@^qRS_P7Z1o+*Jz<~&fj|cWfer-hFU_a}o60&6a_<T0AkCFJ2r}5P+29FuAQ0$4
zAkcw;Z6H9V`+-em9SFIPg>;bSy%l~Cq`%F>X7~9WC`LMq*T9)=*NR75+xE(5+dh1F
zC${}z4DE0t7<xB~;pj&(4Am%x(;<rCl#60Gt)m#Gk|>60E{bWHhT*~xrQwPd#c+9z
zVz~52G2F34G2B!|G2GZiG4<0h-1|mpxc`n~xWA8LcxLf1?q@O7ZCA*+*f%mh-oh+$
zB@k^p1l!VfK#$r%eysS|EaQAj42MFw6Y&nv2nT&fvUHWT%>5pt=Q^NP;QkBu5&Hg1
zD!1YWY6UQ6+aXHB1q6J9>xtOJa?&-esZt+T#K=9wO6rNANI5+yTF=LExpS#9FKO!~
zv-<<|6TOXSpD@QMsCYdHQkHWVA4nb;5v%xW)Y~8!H&kIEFHIM+#cX}sR$Rm_ZPC)q
z@jwxGc^vM#5u*O6?IsGukU;%btr7G$RXg-ApQ~wX<XlZe`CR=P$neh9TTL+X<sCyI
z2M5j#AednH-dTAStNz)OB=*08C38(==SBP_b1#`&JOXa#wd}(jC(;e?9*M|YTQRYT
z3^KE@Y=p&rW+o!Y%mm<E1a34lQ`<~UW>rKbBB!ZDr28t$*8wPgwpStmE3_hEkag*T
zVD~`)ouwn45qU|=B`p#AiHsbzh4r$`tjN}x$RM{0OHbMUizhmJ7Zo4YbLVy9bT9W&
zPILy+peTmk^e};++K!48_q7Z<?IQPdS)GcRc}L7S2Ks5yngvqs@Nf;?)<=me=Hb5Y
zNyH6S)kd?}58T9B^pDB8jvv9~L~7;TA%c)2jdbXZH0D3?!gJn2;<Snb>?KF(=J+N}
zj}&VaF;y*RGwD4B=QxN`?d_H`h)Rt|UNycAOzyp~u4;TcsxrxVbpl4qIRVmD=e}KI
zt*o;2?D-}pk}?o{raGlIe@N8;#QjuUVb1IM7wCs2!z$(>p$+!pLVab6a^HoHDssnS
zk3r0JFqW2cGnk+t?RToF3Oc3lhR{cnIV$el0utO<LMrB2+(Apq8AeglzNX44pi%;%
zS?igZESs5}W@eQ(^KZVLt{O$QG;jr4Rqa`;R%l!2t8F(Z<V<ZV(xQT1jYTY@RtnuC
zSz4{<4Jd?EX|`{*<XYR}&3L;r0&OOW(9$=Q<7b_>kl#K3Kvuisf@~S@`b-$;`BF=6
zIUj?aW;@*=?FiaXu4C*(avc#f<hqzTivW_BS%f~RiS<;fh^%Q%NUUk>M!{ZAtVEQ?
zB9=glsc21XVRf9$4yqg}viNlpdUZcx3h6$OdSeQ=k&Ea|ZKgJoM2K`76XoPYglu~4
z4<I-qS%XbM*3>|$EZSX4DIFR?`{rg^B3%*Z?hbWDgnbyj*mqWT#ik$?in-bzddSNk
z;)P7D{TJlLv<hw;N$zGt{SYB0Wll!yAwJSci&N6-i-^&XJ?wXGrYX`7aqdH*euxlz
zGB-r}AwKY%jF&cs1M3?@w0##$sTd#P-LHl^5yD^5Y0o0IBK@!_$m#?Fdqm0)LiVuh
z`4!_socmI!D<bS4v#Yx*yJC}X(#xzDZ^bOIx0wERE3#xzujm3n&qpx~G!Ns>v&u^Z
z>wdWDVAMM}iHjD;1GF17;H@Mp{w*f?$(tRp&k|TxkCh8zlCi>#Ow`hd?+wbU3wC|G
z(ZJo`9)7;gY#U|taGOVj8K02$U^#jn7M^R^5PUDW1YOI%sB%9=vPh00qMT!pas2(%
z$+%82*iXUK)Wo&yKv(yctB0hDNtK#FG5~>8;T2TjyVL}By?*sNsUl`m6Fsc@S%s2=
zQx}2E6`AVDgdo!0&0*22_&5>vy-=`XqeHwOJ>yg}kV^pHx<$ki=UyKYON72fiQZ~x
zNuAIf*^VX$VhPw;jC6%);@x6Mv=H7oU1Q>dsYMss3#LmW-n}OzjR<%tswI*BnR1*%
zV8509MQtYD{YXd@5z|Bw8GI+eAq+N*1pLd54V7O3u+jc!cDg>|XkiL}O+!RxUZy#c
zWrz&E0uYvS)U!joozW9$LEwT~u(72gf`lRbRR|H8EfpFNIp4pX5SG6SX~3YpV5e-f
zU(KOA95G#(!p8<7yo)|s7_pxC;Cl$+3g0;s;h!8Xo)*15GZ~`kj`l<`^l=o!agSmc
zR8b5gHj3f&h+;SoJ&gMTT<D*We*_2FlQ3RPZ`&b5Td@ycXO15xJN9C!6<1)w5sK+B
zKrU>axE^ph)wSzXC;KVvb(kj`Rq+%mDa-vWhwn6zmf3a&pUxPHV22k|?RBQ*+zMRV
zGLf?%{q;hA8^p9b<7mKEZic-Yb%^9qB4)^=G5OLTY9V{;+(>J@BkHSJ^|K)HEfotV
zaqilxa^54to@A6or@k=zflC0#jpZ;%e<ksHm;t-koqY$HqsKks-77=A5RvK2EQrJ>
zk-?ruSbE6f%}(9gRqhB1U=JQS*}kH<rJ!gm(HuXPvgp!}r59<*&Wi*R*3TQjD^Cwe
z1>>ln9jf8EZ5$U6;b(`MdCo9jPb{7t0?G7ehbsBfu(xzkzPNe_Lto4OnkR5uf$_%t
zL2#LEn;39d(s3ISH{mX<oK_K2(rSZGc|6RrLA0D;NSfoM)K@dga^FnvPe4{pOKp35
zRr1|+V8I?pKWJ3#979v4qs6%mpDpip-hhu~D%pBNZL;d_{JJlj<2W2+t(*j2tyrPV
zIl&!Fm3j<1*Kr>CH#45(RUn>y-oznh3z~vU9_r=36Z&{$HptqhSil7TrU$&1YQJ8a
z<t(M0Z$zs;YK3m49)+BWlcgQ%i%t=4?*d80t~dnSIdJlXj>XF}IcxF^hAVEB5L?8d
z!YlV-Eo<<&i#W_P3y-_NvIdBvYg)BykRT$Snjsf(SR=WBh;l9f<nO6gmG@LdU?+}%
z(A!f{5$`m|gRoh=3^q(i2<V46sFRmBj<GsUX8){4mWs2QH19(%o{>o8OaeqtJF5{H
zIja$2|H8loyD5?ch!6Hx8Yq?Jy3a8ty^KJEf^8Ck`I#k=m6162C*-(7iy*@OE<24T
zH{yd%31G6Uhj(;xdy{4s4`_2GL_BkehPh*ro{5Z{<A~7a4n)i)KFE0lf^(0EXiApN
zWv7+r9^%}6B=RgI!j`<XEz%G1K|dU5_awNGFL!jdL?41-BaWs&MNmgf5~eqWx+22<
z49GHVk*<gj_M5`>&X5&E_}dH#d$@XC;A)&Y7(xuc3o6J)d#8bAewvQL_fSYjp`AfT
z;)9K>a6KN<k%&M?0?=`7g^m|rYV4#5{nkK9aZMXy3U+xLCrXSiKy*qJ!_kjoI2SyO
zJ%`e{71WNuU8K98g$e#8B<ub>(X$8}FS=I8m<IeqrQ-fWuUqx9ZVjNX&@->I^}0nY
z)-5bG)7Py^K3TUe#CO;nr!4Pb$C!hi4U#E0UOAx48?R2mGxHt?ULJ3a>19Tqj6}$L
zIXI@U6Hv1x2d9<$4LagVw8|A*6ZT&VVSG!`2C8kVaM50zbT7oSHq@o%yjfhQrL=~m
zctm%wS@v*og;3@b+<0csYeb)^r8U=8;bBLl{$|AWW_%A<emb+ZJ&x5?C1>0N(jAe!
zPeeKIqccD6Z$m`L%S-ljn3v0OiR)KSu<CCINfM+_0=T7*Ua%4AR#%s^3lTE)D)J}s
zLH=Za{vl>sc3~s>SsqC(!f{!sA0q7gU{6JAAwI}r!nK)P-g=;0y&WO}Oxx`k?Z{Iz
zbU|6WiU$DMXn&IZMimsM&X9saID>-32f0tUt`8|lM37eqK*4Pl3SK;~co~Ge(d<BT
zqZp2fhjII%gukifSBRO{>9n*%0^3gm*v;MyCfUtOh2I6<0!(>Fc{L{wc9eP2aqol7
z#XD#|lT2I@bI?k)*Qu&G=M8*~hvQEd4o1%J$t=*PqPpr;&tpo~fwB#Q1$k{dS$_*?
zmRZi7qLcT1o!KU!zU#(;lNakjUu&lIwfO>ltql6QnEZCgPsrTm^R_fRGWUom&%Mx|
z>(27r!;U*OF$6+y?hQ*7TZz;}fmMI*k;IR}fyz4$HrnroGMSqr(?po=4@IF6{)&XR
zL{?zpgXt(-kB6d=h#(3HAPRTGL6K=f#V@EJ8%06;=jc45qws}y2|_!Aj>HF3S-8Tx
z1l{UQWdhJ~Po<9ZXmDRcz*qQerAOIlPtsABMYI*B@U4*$wsVHq5swld%xmHLeA%NH
zpR)D}gok}QWa>E=*$PlpblTF`D27AiPvl>hC$d|e3Q}Li{RRx>+}zJk#&c`iU7TBO
zzt5@F()Lz<xU0d=A-C|8k+%_JId|hj&rv;fn=C#dYZbAMV=2{CD>{nT0-PLyR^<!j
zkHz9`ZwL2nCxH(AP-P$4&!S=JBwO0*uy<IoXqM6T4&cJ<-mP{KL^w*eqjlwM|2CV*
zR*mE>w%XZq4Yq%9C|<RApW4u|repn@^=q-Ta|Xj<>f<;wFTM?qhwfity{F{n3xg1)
z)X$bHbub0o^*w6G2L1c0#aCV54QHr>fag@9ZRe2FM`FA%e#Wa8JW*X;1K@uf>s1R7
zsNy0)LA;_+)(_zgyV$HChQ62Is>SeW;SI6!#b6Sj<cA9KbFnx+;TXJ{YP40B`cc*Q
z>n*h{$?_N0SL<h~acnCrb$QiONlPtG{-V}WU#w#J7AYT<G9~!MQXdh@9+W9{Tg?NF
zmikrQa?pRnqRfv#rlpcqU#+iKvHJf^rPN=h9%xLdGtDgb*0H=!%HzOTYRn+-GwQqn
z-4d)HPP6Q8WZ5OHr)!tjBCu*7XiTe8-3vxq9YNWm{#Jb(@*R=$Lr7>*&5fUrS?W*g
zzXZv3BJKSad8@10*F&gV>U$#pbJfHrnuz}#@Rz9lu|G-nt2uBOj`WH9>MXTH=;uOC
zO1&VKZWn#-Yo;6{!Ct<ZWb13hx?eQXy7xiPl=>FvQ)(FHBK5weUnLi*;RMS^)4xhC
zQ||(1nR<8fSMXtnMat8O2O5{De=>-<J^n!B|5O$<vDBm0FBmJ-r;@ZiCsu!_jy8T1
zwzsIiuVwv1O<#h91Z+&HW?hO;UVsnN>Tu!(`1aQ|FBmEHG3d5J-3$4QiocbhV8k2P
zTYj<TT-{cw^I@?MHlM4TPzw=1Y};OYu5Jo@VGW(FJ6Cs7b*N@(yGGhN5V7QIvdFhp
zEs(ZdO{CoBK^q&-)s3p%@GoV)H_5iE&<FVz3g1=u#UtB})yy@ws%t!Gn?Sv4skE)B
zooi018`MgH?vl1XwOOEowB_;hzDay(ZUQ=~9Q=MSwy*&cOsSJ<1X5#YI}Q6!Vus<?
z6!?!~%6v$b)Iov9F{udks>74p>K7S@C$E+Aol@Q)<$I)DUbhI!-xxofFx0zJH=*2=
zejUnRt3H%}lQ@p@c`2_ki1~5+W|Tik5<e-JKbG>Bf`2ew0RDr5`IwYXO8JzOUzGCU
zW*0P{Y^H>NH&{MV$MU4`PD<-vRFmd|b#B74er%jd9G-lA?HJ0r^(=2mvwYBCxj{-p
zje&k^e37wGovfxs+6t}D*F=9>blv12tiEpYHYsWQLNz-*0bWhN!ngzVAJ+UnN=NE{
zT=RC+?~(d>_0B+_v+4WMdw=r&gr&ZaScLfeu9VA~9|Y#7$x|pl+&qTz2J5{jpKK=0
zFAbKTl71J*?@ugLCUo{~{8{`#$o$_ZeSPkR2Mkqfu>3tKkBP_TNvX$3kIQw^N_#Dp
zx84^>*i=p5uB_&`{Bx}ApSzkq5YT9=wY`he>}$12`lnMY_t*Rx{PxDcV}`O~9}Rdd
zp?{l<-LYf=7HR);EPN}fnkh%i)T3||W3)+q-uQT;MSW0x3S|nvO|{ey66X>JZO-gF
zk}I0N3a%Rjno4eO`g=eFUfb!^3By$H@t}7Aim9(@XwEap-f{KOg$l1JwKJ7A;_81b
z($G>smimncy*~CdR+%MB*mj5dObxQWdQqTf)Rop2BdP4An(ttfg=bY3uh-CG_02@J
zIw;T`$=j<x4ef8xZOQwq8vtc>8+2*F!#$H8A9bmfbyZ=#U=Q``43|Ub$sT5@PjAxD
zQAE=$^&Nrk5Q`eriviSt{PNUhQr@oC$I?clTCzp+U1$C<(WL&&gFYPld1AJzm9>9L
z-3O>utrST2K35HRZS4ILrEnyqF5A>^5|^m$0_oo8sXZD>rmXXcd1}80{c+;cYMweA
zP{yozst`aHvgYXsbXFkU`vUbh0%_YXRl9ex_dAl?;m=FeA%Uin`{B<^RiADXPh`~V
zb(>1SpBeSn9yD&IF`NHEAl<`a)qs7n@7*QpZf;}P1GHYE?h|M#xi`@O=wS~UX-Zj3
z)jxR9n*c3S4LAdUPe$`H^`t;kYBqXrQ_pzNx2n@v<;JiRXMcYJT~?~I9&|g_+79)7
zfwX2FYW`K4lAd3!ZotNontj=9uvV+H9`quhHR@S`ZpYVfEx2m?C*3BVSf~D7LuzhQ
z1MXLnd$r78LYMWb*@HGf&yDJ856Y!1tTgZOpyf65t<CD20%^^*s^)!V%`R6*a34m^
z80D9%0fD9@$}d;Lx=sA@D)m;~rVgP$M34v3FIT7=4pNHlVTU>^kRJC=)z-tdd(=B?
z7sWc&8#OfN3-yHV7D&fnr@CLDH(}LYY;~$<Jm?c@mDQ!rg(!EazxUeSib$5B#BP&P
zj$!TQE2chYd_Qi<_Y)fWPJEpuLn3Wok8iWOJxa}YO^EO332~TEeka~#@id{OkdJ#^
zL*0a}Y_$9wc0;DZ6)f=K`u7BLTXUJ-t-ct|pH6EHOS@1#+{>pD)MPpK2!_&lt?k8m
zr&}~#&sQ!%`vDIxRd~afU;_U(91l$ONW4<di}zc$)Kt%jSHCEw_V8=dlsP6czXng5
ziWozsn^=ZhwI)5-XZqvCI@TF*#RINt^$dOt(}>bib5W-7_Ys)&*GjonO2jHK-BMmB
z<&9EirOZn?h0?+-c&2_fP86(n8>Y2HO&OnzuR*;(xdgjC;%iYJQ%|d*#^dT6>aOM?
zlz)VMXs!Bwd=xvCgVt>*|DgFD>Q3Xs@%O5C8SRNj)qkk>H+)z<X8gG6)9P_G4=dl(
z_*(?esu$EhCV?@ov7UpRXX?KM%8xXB9TGm!^li*E_H~c(=S{x>%~e*7F@|2!#&gEA
z*v~v?+|anx_^Pq6d4=&qV{`LK$o~a0(c|i}*cM>An+?@zT#4W3{T$^M;}OySF)1IH
z@<}P5)_CJd<if{{Hzl_i{{atl8jl(8ZQ5rvn$OhtqW+oMn^4}3Y(3Y*+?>n;vjV+5
zuHIO;#aL+C^;@7Jb%v$YC!oV|X!5jrO`?GE)->y<8V$7;5=M=m8&5QjqnwPt5ps?;
z-f482o6WbQ{`saYD8B}Mo-;lK8x0we=Zue3pTu6@X!=8=8kh!EZQRxHs4-u9yvKM?
z^C#ewtJCL<Zqu~B20~hW9s2r5NPD36yTF`<&W6-)G~bMMi1a@+UJwr~kunSVV_1=1
zWyZ{v>WTWaxj_vyEitzm-)(vtYcpF{s?FvmbFJ~k+N)9ie&c@gY2%6dUeF9QJ*%F?
z=o~YjGww~_V%}qXE&UtN_a|L*p;)odps#)?eNCY+OI>Hw!<L^LM{D0;-f1qZezSR<
zaX)nHHa;JJhxwRsi+KX}-qrANk@;8VoyKPKS>SJiZ=W*`q`z!FVs@s#Za%H<2IXT$
z5jNh5i2Vs@{u4el49a}O?6b_6VQfV_JZ`=tJ}>sT`Obz#C_k27hVq8GcC`L1y)Jf-
z@pyboY?oMik1>$$jy-NLO6xK2regKjr9FYNR{a2FgG$Eh5vN;G&QUkVlj<#M6y;mh
zttii`H=z6joJW)D0d*(J_o%x;`6=~Ilz%1VQ^NJ4aQ&-r*#;#nF>VFTTZ~kqUcJ@0
zne@iigspA?O$T;$ud_OEk1>dHp1K3&V)b^E?dn;S>(w_=zDoTI$}Zeebf{|u-y`K~
z)Jwqhque3Vj!8Kw<qKX}RI{oKgMAqW>yuJ{SjwlQ>@wMUOv-*KCu77sCFS!{8VQk*
z5D8L$SjwlQd|sCpX;c-<9Z8nQq<q9H$@{d_pH8xFSC50ns1eCE#B@r%Q|eQ-#81@<
zzK-?II@agmMEiuAYiu{}Gk$7pGjB4_m=BomH@{&1qxquwZ{}~z>R3~ZSs#DE0Xt#d
z481GG4dPu*+%8zLUf>NxfQg-W4CnX+C@qXX?~Xc~4q`QXuo}-3;?Cnnlpjd2en>C}
zrOwtQI8E?S3Z=#HHc=+AKZ^suT3RTZdL)3yy*cn(P@33>R-w$Ge-kJ98qh35X<~Nq
zR$&!N6IRYby$fZp`kDGO<F`i2oNq2ScgEtATuH*Ob9Hj79-xlL{vGRK6z9bBO@}mi
zl*eO#ha0ab-SODG+UdA2@*)j(lwZejM>HLGA2f;5or!IlhC3d6a$3Jm>=%L~KdpOc
zmj26Atp5h}5mZ>;ggXD63+r*zpZDrtMEwB_Hu3$aAC#3Dw<(aCl-&VF5%n~D+k{bQ
z#<<LecNgQZvR>V-HsXD)`Z50U(~q$VeBO8*x&1q8(EOf!-fb>ckKp}1bFq<SNZsg+
zmQEa9yGCuhV(ZbPYu6t|t)su>xL5S~U|*@wGuk(tFCFa~%J<(Q4I4;zz{4NRx}|)7
zek5Bc2}N#zG#g1W1Meo{ujoH|bXUGOGL#+b8p;-nn~A(STNoJ1g`^$I4Lhf_H1cQ#
z*G3gwtGag=Mu&55wr?nRY^^%bSIoJm2y{6^L%IG^-YEd>6Tvb-L)pIE&{{R<I-?_9
zPNC#FfcpDFU9VN8C@8c$oil5Fm#tIXh0^+UYR_n)|JXV$a$Qu&x~PzKx<d%@xYlc~
z^{U?)?sI@&A5g6KyV;;=ypN3<+N3`=>yIt;jjnE0+x9sFqeHnXR8Ria+#c04RxIU)
zJGu|3Q`w=>+|i>@scUGok3--$mK{~>xGGo3x%qz8>x{aE>~OA7+LtY42Xk%*|5z7>
zbFY&fP@Mw<DmyT6w9MIcB3l^D4X9~jSoB*+-;2Kt=EL+aLNAOWNl%W0mK*3U4CK!E
zwEcZOSp-5^sp8CZ6c8H3B7BiQo`+hlMAFP{2MRN?4CWB<CvyF_fV~*1UpVR+5IGlr
ztITKFU0@t)_C1a}oGq2`#e$FZ0&l-l+LK45l1!UE-HE#g@^Hy?yf;B+8pxiJTz@`0
zgdiAD+vw?D2i@eZxaH{4o!S0dpvRtkZb;gK*}ESDKAoU<Y-A>E5Fivjooj#YbjYpK
z+J|$c6OQ&w=V;04>CX=3Fj_g)lPg`FA3U*ZBrjmjbscwKu2@72GVBg9%v6^%Jd$;D
zyU+AX*r{D(h}C?5cj1(COHS=BAbO;>GdGwocy+h0CwFEax=~WwlN)B;&kGnQ)y<6L
z6gg(<&}gBQAI{Ns9n$KmT#3*g*BSOOjF7TtB}gj3U9K~-%Q;=>DUCtq9%LF_gZ?t#
zHAFddy-1J>F&wP`2)R;lu-;F(0+;&s<lSP)t9KVhM*Vt^p2uoewv_9IMSiS!2GW&%
z`9e;yOWLOnj3AdXYYGIP$!Cd8J4Z_;r?4|y#0U&ID7C|Ks@ENZhCm$3oyzfZXWlKH
zV3(@P&GDnR&zsA;5affzgiH$N>F!fVI041J(IFU_EtWC6a($zNNJcwd=d_GdPl=*>
zdOLehpr3)x627|Y8)dhM5IE44d<L3OlNQ2JE|X6aTyE+t7IVXWLu0-9QkbJR>%wJw
z@Yf)7ryci}GJVhJ$cW>j#{)eFhq9&PnD^yI%{3kGcfvtG3=hKnWhTF|yFg(wHrb&I
zQX#Dz&kv63F)Rzw4iV-<xuNVCsTIrZekTWAtRMZQ=?xT+EsT{Lya*C}Dc_eL%9lc|
zvfOaN&^bzCn@f^Z_T>xt;nCp$mK5MOVh@2RkTy7K?7;Eke$47YM(RTF3=HtoTi!fX
zIy|SarPtA4<EjCf)I^o~4#Da&*Dg1Enjj*+K*#SwzQpfXVbHKs@PM8Z&S|g8y-Y6a
z_Mebdy>vpRjK5rQ;%ghdBrXVgx|Bba+v^~|3FavNm}Lb@W?m$lilFjhCyXQPfTVkK
zg+WyN`#8P!A*Gy9oyD<2e^+*Bs1KQ4p(|bSR%^X&)9W=iaOFYqS^~q$a96g_pBpN}
zhjOw6`s`ef%8lXOA%*KHj|IRZ(K`s8JY<6?x@fLY7SK)JN_~M=Znl`4vO{Vw_i)mk
z=<0{Ufxeruf8g3N<fF>Flw!w>&BG&3fjb>xD*N5v`3wv}l)o*(ZmPSue-x;0u(@2j
zvD1_-q{>gjTou}3BCrajEOM>u(_fFRs$bWgh1^l}TZUx=HdBj?icf~caW~Z9CfrkJ
zZ@w7RVII;t+CVa-s5GWWE<3C+-v^PzBEj4ZBYo#}ALtNj*+(kw{s?k6BT~5H2%z;Z
zJ5P{|S169oHBGKCDi!Y7)#03|6v*s4fhDD&_Q6FuNg%_b>Mj1*9e4NRH`tvcBZxxD
zUP8sG#fT6CIwd$1wp97!W94D@mL9Lw&l$Pn-tj;N21kH015Oc)q7Y&?_aR-`5$Vd4
z;N_1FoiNm)>_FbpQO@myxQ8iQdt3Y`;I6z2*^WCV5a(5Iwy&pzUv&5PNxb;3-<vO-
z6tiwb+VLj5R7-t(^Zhx@(EX#seK{9?z-HN<zGuIXBV?J?n;2JhGh8Gr#h(~m42!yE
zw2;S-$Eh8n^l-j7njMne3OA4N3)+GmhxkT$8x0Kv>%Ru|8W0L$jb<8|hQy9Tw{{`F
z4Z=+t@;7R59JgZLnU9bhS5eZZzUz>(2MbOS+lQi$^4AEiSBPM@2ggKsu{hmrJnD2z
zo89;`#6@K33v-0$`pXhuaJpZVbJ`rgC^gLpPuPnRb5{G4`J#j~P4tU0P>p@w%nuRj
zEf>~brrjdPlqwXld*{|H6mil<)ueKm$Jk&{{V90R&EtXsD{auiVJ>I&j_Cxi&KCx-
zi|k-RDu&xHkUeD5bh>yhEEKZQovXAWYr%+<m@h?{yk0ie05fY*X4Ssz8UJ*kk<67?
zGd194n23)4`l0!QQ`0VN>I>X3hD`S_K7f*E*?N#OO9v!*6+;PCC#z!g(xRx2j+9Rq
zY^*$c^SVO&7KWa|B2%PlNW(bcaDVD$PvuAw^_EW6l^w{H^xgwmMSQ^XG8Uhqt8+N<
zNgFeQ5^YJTHv#G@H#>3yGx_=g8*@m@*ok7tIh5n&!68Y0h@)M(<5`>-bY42(`e1h_
zcSl$%*+wVp?VN{Tf{P$9%SqVPhq)FSXyJ^WX~l#JR5w)Ar|uyBbP$ZXTm@z06C8yk
zqWr6g3hY5A4{~b9QzM*LEU9iT=-NDF+ah+Y1ADV$xWL1)tB5Nw4>*`}k7FD>XdiCS
z_VW+2({%bvgh~ZmIMWgp-n6N1MBVyzI`kCxzwr4P&6VwwYZ;Lh?1*?#Bh67vdEG{I
z=;JO%5*Kb*$rXF$r{2Zx%8qIEoB`B&ole)qXJ=sy?fxpDItOz>z0|i~7Jb}rl*ZKV
z;SrR#;x<#MjeAsHVco*BUN)Wt%c^0OL#-dR0{%II?-N`OZ6kokl&aYc9v7{yQmcE^
zC_W3Xly`9tq@6(@C%{p}X9;p_rTZwNt)$f2ouX9<G`89Wx{_#cF^(>eYEZNq1K-Qo
zAbOCR_Fj)~S8YYjhS75$utRD9kB$yODm5Fz_pz#VCSP3+JOTp0c=7${dr>tJAN5XH
z;yOG(9BqZHCRcdqp?&Ck2z{&Spw>u<hs4r6JU$rFa6KrsZy_h7`3C$HC(J{Q%f0Lo
zo4uauB2ZHw{9X_X`ou37nL27*hRXigh(8Y0361E@%CU&*gU66sXByuq6&_ETOHY>I
zS4X022sK7uln#$7)pWs6)GFG7N0Typ!P5_&3Q{t{M_~y^)Ft(7T+vR`R?VZAXYO0o
zvCZ#KWe7$42=|~GwFeKOKQFRtLiHy0?ngI2F|%63xP4+dXMxt#r@ayKvYdO1I}xP=
zcqXL)&$z(xv&-Y+{2byJBXhffKZRC$Z~)^IMCfwAW}}63ku<JIAAmMCyhXh+6KXot
z&8TxERN?@>G0{;^$s?dDm1S1@GSytp2}ZDw*#mwT{#Oh31A7|sdw~gO59+UCwo<1L
ziiI5ge!NFK+iY+#3YZsIYOM=s)p=`XD~g~Sgr>BFmKIR<qi5zb<{L`XQKp&(p&@k|
z!8dUZW+CQ%Mtj-Dv$6DgrA}%d<BJ)pJOX+=;QeXxFzYYle5THNw#+QGsMPx55Z#5S
zDn@%+f5-}Rqy1eKSg7Wet&Pfo)yu<NGmTR)nzI<QA*l-p&#W)xUZfSiS-=@JGw;P)
zAvtjvxk}ZQHNgy@TZW<*s*Trp@ocN(7=6YmXFwZ%Zdi`><?8hjSkHgzC$lohka|A$
zbEYCghM>jW5@n2gY(>0&Dm1AJ_oy1j)fzPs(m_E+bpHDK+A=Rh6Rc)g%yAvzGmRGF
zX(`90Om_jQtznJn8_tJec!q0|j&jEC5HQRKoW0DjkiR(p^0s2d!`(Uf{8d-Y(m8T3
za9L)W>Y(O%m#c}+-<VHz5ooSY>w7kc$<_NIPy1*3jHTvW({s?A7NOURL?tZqbleR}
z<_c9E)I1%T)rZj|M?lp@p!MN-G;?I*JOEyuGbCrv)jsKhZy8I}QD;mwJB(u{XC76n
zXBtaeb`XA^ap8?q$YvdgF4edXd<BeM;IE~xM1oq-0shr^mrK1SWr5}EE7vT!{OqYe
z-}S(W_y6q&1|R&b;@{m(BB2`zR2mxz)=PDFvMQF|&VP6UB0c%2{;#&dh+V20F2$n~
zm*RKQMtXZ=Rcv-T7fU8*r}IXA<M4v{H6b`*o5uV(30tKnpN+$=VRV&D+Gdm4q?(Lb
z4TeFsOYw|8%UH^&M-RpVA3;qP%ugyKJ$bHi@~c(KSWu6uRTWE`X&bWY@iy_EA6G`Q
z-m+sx5--w!3v`sFC8sA}fVPdbRkPD$W@D|HZZJ&06Qb~Y8ax1E);A<AYMdTTR#~Qg
zS@m#=Szo8(jgwE-*Edf7q;c}+^phE@GRzt~4xJmPjK-;i1!Q{iKWTFka^TOYYW-11
zL(<zdFq;ImwHlbKKNiqMQws^CC%;|=*H69~kC;)$<dc@I7NjTdgonp45_g)7P~P<Y
zCb}mu5|ejY_&F0^31!qTsIP)z^o5qcJfTc9)l`9R@?Iltr){`m@@=R|pHpiAPHhBO
zZDTM%(xga0(zuNWGsJOe+vJ$rw5CbbRK=mrLy$H32-I(!;=@zvsqHK$A4*i2>Aj|f
zzwwUI#K6YT&w}~|G4NvSEwoNPW(w(4(x#Q^scw+XNBevXIXrNX|JdKbx~e$*AwGba
zRS<-adW6w}`dH)CJ`6^3e!L39B~~&P%z8@b<v&X3MeBT%gEl`=6+^We5*yGde2ie3
zy1t%>ErOu)cckaA!EBs*EgxNhKs>97B0V`pODCVi6G9vS`j?}UtZ!}bh9n4R4$P$n
z{s&db`s7EiJo<*luct0ge)85Mhv#m1{?6q87;k#%+^TO~w}F}Qzk0swh#pH`?kKg0
zIsM`%x-~Ox_%C(@TvK_5csV6f<s)gFnJ8|sFj?@qoj8$kJP)K!&76b(Z|^KS{%Z@;
z{BVxd^>U_-Sx8P+dOP0x@V*Z3>+!x3@7Lm;HLYaKYOH1K$P|oQ>B)Q00Bm|2-fPf0
zAMcfT53})6AP?fb0q<VCudedKt`?s`@{L&wkgJrQpHd>#VcIciR7qN!e3wpdOE?Q<
zW;f0!roNH$4l_;4UMZKL!EBgcUu{dM*C&&hKlMp~>B+~_lb--1C&c5mHYVre^V3U+
zi?^ZsSevRxrEz}Jzyo%C;eX#{s9v+>)wucE?-cNyLryO5@C7KYEDg|AF&xxJL(S>f
zzq_}~adY@$WTp50=k`+@JMafZdh45m@29<ot>giL7CfI_{-Q?T=i=~{GE_n?W${y4
zbg&k`l*K=d7XbSPL#4bs$<1tnBKq}le0=E(Km82hd+;6#zGU(4%sX(|B)8{>@HKtT
zU1<*&`yF>E-?!5CmF7=#@o%Nwg$uY*H@Cfz8^!loLo4lrqkZ_!=i1y@FCOnGZ13B=
zIlHlc<EFJ+*Kf$J*|K%<^v?9t8-Aa-GvvhaUk5vP@jvSPJH3DB@8R6<;-nuw_}#qx
z@0(AU8eg1!_M9^I9b~HfJ-jFH#hX8>_Fl~GO?Y31ch!A(pYa;J4?L6{c^&H6)pK;^
zdmsGrwjb^L<nqP!W3RJzQAXG0NBH1F@d%#SJCQxo(|^KohK?M{V_Cq%2>jl?c%*+-
z@kG`gS%pWhaz!oztMI?xWz(v)NAR`M5m~2>6mlgjbgNG5Z}N^zThls525>=eb?3T`
zo0O-?w@!PS(AtxK_)GWO-&*(CJ3i66;V>-nUn8vBJ{0}*|F5zdizi^+-Dh(0%z~_F
zxm*Vy7tybmmMVLPSO49||6dRAR}M0$lXLKS5TPB_hdVBX-!)9flWvkl<fZ9xKQ<Xb
zixj0E#vc9b!}xn4+^c)9hS&zwc&B$1<!*fM(SvVk4&ct?C_eYAJ^KIFtUew8>3Lpr
z>o=KMR|<cnOkQ!68sj1Gu}g4=akql!GQ3+k-m)FXJq%w<6uElQ%Dbl`?uyFaL<oWU
zXnX_{-+)fMdFP$-;0%)X3e6hax#)iza07>ZAo@>(m$yE=gJvINut?uxQ~pf1G2we8
zY(Me617-Ny@4^`jUp|X2{FctU&whon)?g!DmUS4icxEii(Dz2XJCge&^xXn_dMtb+
zShnEh_3yx4+7SNXR~`6eh5?DZ7v#Mny)puS(5r*EQ7wVS7CYGI0S`})liIhR5WfR>
zCB7^7t;gXYWIE7iRPF=IR=g5f3O>Qn9Wx{>qtb(A|8dUH*PZY$Zz1_@)R27Fa$z3r
z^N+qyDgFs&|Mk<q{Oq<X&kPUQr}P7`+ZW-~vB<`API!vHFt~lu^}TymZCPX&OZc4#
zp42Slwl5mX6&GE3MO~^cwJqyCr)xt*p}2h!o_oH$*na|#c^6k<rE#62bG)<)k1kxE
zEe>~_TD!;|&KB~=vAp;P5a|!XY&#IvJ%DfR@f~wSC!SIk*#$h2vVGCMvCso)9odnQ
zMXR-hk~>-~@d>Y2sL#4Z!iT<#x&BcXeR?o3Ztf(WdBG#ac#7o|9+DZ%6<?v$^}bXa
zud*C0S^cAYlx=VBRBp%~V!3@$wx}PKcNf{C`Obbk=>#_($8#(>&nOYHdIoKL)mKM!
k-?ln%0tmLP_D2YRjPd`;>#Y8pPq*U>+TXqY`+4C10N{Z};s5{u

diff --git a/obj/Debug/net5.0-windows/TournamentManager.pdb b/obj/Debug/net5.0-windows/TournamentManager.pdb
index 9efe8c8148972fe962870c784266434fa82bb499..4821a48d2ebe34c5fa11a61df2481eae986fafe0 100644
GIT binary patch
delta 4150
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
W<_9G8!clJ<btjAI3zo}sEdK#@C!yv5

delta 2884
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

diff --git a/obj/Debug/net5.0-windows/TournamentManager.src.CalculateControl.resources b/obj/Debug/net5.0-windows/TournamentManager.src.CalculateControl.resources
new file mode 100644
index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279
GIT binary patch
literal 180
zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY<Q6CA7v*Fo=_rJy
z78Pga=h>R*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J
onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh

literal 0
HcmV?d00001

diff --git a/obj/Debug/net5.0-windows/TournamentManager.src.ExportControl.resources b/obj/Debug/net5.0-windows/TournamentManager.src.ExportControl.resources
new file mode 100644
index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279
GIT binary patch
literal 180
zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY<Q6CA7v*Fo=_rJy
z78Pga=h>R*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J
onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh

literal 0
HcmV?d00001

diff --git a/obj/Debug/net5.0-windows/ref/TournamentManager.dll b/obj/Debug/net5.0-windows/ref/TournamentManager.dll
index 7c4f2845e90bf8100d890eb42e7dc3e796fc884e..83052901726b04117b977803cd68016e9b3efa9a 100644
GIT binary patch
delta 3704
zcmZu!ZERE58Gg_4{cxP%*v|I{!6qJ<!cr$;Ev#iY1lqbS4Jb4lLM(Bz3-#*QA#o72
zW!J0>QPfq9uBK6`P$qt?s@O!E@?%xEb*!q?t<$<m-G?T%nbvkcKm(>pYhfLG&U<|w
zr<$$%-1m9E&pqefb8l&D>A`1Dto$hd<L9XSTcDLxE0RR5Py}4%KSt(W8VNo>LNufl
zV?<~5xmZJ8iKq^|1Vg72lk1$_Vkq#hW~fp)TAf$KTG8daFIJ2AydiIh&|%*|{KaSM
zQm1d8S^a5o)8KqqyDHl0T_jMy`*29oX;+G99nuISz0=uYB<y48r2AV$*Kq!i33<3U
zoz3r`QBhYSL>kWB4-eBd$RQ=)`*3=zGBzNS4}43mFs?X$5{bXM;#E-tfo_O?Qk5Xa
zai~GZaNLFCi#U|Np2+5;%0b1b!;hmD2lBHMYH$-o?`bNC$e_IMWy7GqFdmX;jC%T=
zq4Ymw%{dv=47%j|KsRVT<8`UzAj{7%KFyjxOIx|Vj(`Al=pCj(Ta1Hn-78grJ*JX(
zl0u8IpMHQc7xjaBfG)8AxVWSTX@K?r)i1&GEmL6~$L{5*VQ%YdEMF8V+b*f_0eR5I
zsmQL6X$N&Ry2A=Ea`g|<LweHK<T4EYZ)VciO(y=zb`rL|6fCnQBWa|;0&M$!*%o59
zQFCn#B#`9~LS+eJN(9*<I*X)f3NsDSCrERE+Nq5L4GwIlP7eH#1KVji+dk7?r%jMu
zHm1951>1sU7Grj~?Agui2yA<)i&iOS(`t6@qBU$hUpC%OB@v=LSQ@T<<co#qG_FgT
z!PdwuM*So)re9&5K7|`>J+n1fNQ!Nsk<y5<S&Wn{#-ohWj3*iG>-uJ47~iHXaC%MO
z1{^XJW=(}TQg|Pu0D7JUGY$PMUs@P+P9OvQi17n+JLEoX3-DuPFld?F3A}15pHrl;
z1BJajBevL%M0<b+wa5{12hGwR(TuAx3JlPG=r4$(*pb3;>A3$n^AM)cV{_V(Ds~=B
zdbZY6SinAy(E!$&$KE7eJ}F#gtEA)F388te2n^wdb4$3cx@Yqbnopx4ul$hty(+d~
zydcbq?TYbYg?%he(ksI6*|@cU%WOK%1<RC<QI~j4)RtY{^2@wH|9SHlB3NNRG2f|T
z*TtVieZ_WD{1t1Y+$a|e|6gVw_y0y*78Rr47AF=N0<SG$1|Cb*Nj>H^>M=DW0}HhJ
z8hXsNHF-9h=fb1M{hKir%}Yvn%q`)u<Nhf$+EV2iB9FPAt)9*Qd-}I%tFX&p?PYe1
zY*TzDIy@uy-RUtpVTQ<KZqntRjn_<<#}F67ZCX9v6;(EaqMu`GG5gfi+lEg@6$5=s
z3}HE~tg!pBku0*5Xpm~3C<h|$3l+~H(Joh4*!?0V*HoB_b2pq%v6TpNF@fg=?jsHB
zUyw_x%^_?jlKzPOP|z&9u3?SF@}fUisU&sqAd++i=;d@ht8vHD40a{hO?{y%xY~6b
ztw`F)))Pn}NofQfWvsTkjW)A>QTCCF(kf9pWvGTu8MeTaU#-?QU;vLDCHDeDw2^Uu
zG0nJ>aW`XzG0S*>@hPA|*MUvgTr}+RL2TyZz&e@(hUisbBYgyHrDi-2q7<`niqk4!
zg4P1pQ4*M>F9Fxnmw|Uv447h{9LrOXqcj8T!JERk?7>a>D6oT00=rqimK@0a^fvG=
zS^y5xW#9w!32>P8dw_NiO_0ymLyrPeoOF!wZF-y<d<!h6geo@1SYkZO_@Pifnp8L@
zl~0NBEaN%GHyD4(81*Ti6yqD3lB2fHD#isyiCK+ceu?I_0bq?70~5HQ>IKe+-CoDO
zVB&JtVCn)GyLwwXZT28!pVki?Htz&pGg82xnrYxIu?zTju^0HHP(Fj~SroP+D$I}c
z5=ni07C8H{8Z>Bb<I<|E<iY|4O~`d<K+rOv<R%2>wia>|bONt_%OJPm9Z%wIA`I+?
zm!ws&OS&BoE3JeD{B`uc_)Fp@<Cmbas)K%p6~9y$rw**`rMeDEvQDLL#tT{tzs^L6
zoK5wKO&dm&boW;_j*j;BkM>e}TYh%Zn$C>ptg&8tFgsJkX?J0^_{eB)AKf#XpBU?-
zkxXvZ+BG|svz%w@6U*+kibLbyv?hvMGsTQ^vHsV!>0xU+o5^J#%ZximLdPQet>WnL
zL}A*ZnX)v0E3`v|Imfn~HEHFG4`n8;8E0GMJ$-woIPr+n*6?%xU?w*)o68iP-!|;g
zw;h@)Ogphgt6?@@%uZT8l_JG#!Fi%F)?BT~r}O&?lm$4?H@?%VI^ew44ENy4PAJsq
zJkb<iGkkcaXifGE7IHa^BwNVO5XV@P<JNRJhGpkW({Qgc4NXlI@@Sm%RR}&1tjr|7
z5e5tSqIIZ96MS~AHg(_j`Ogs2qC)t6Q4%_Ya9Gix5|__!XzmjYQJ)b`YDTzpR5K!_
z@A!<!F6Z%<<#t^8L<W?*M0C&}rKX4_BJmn%T**^)R#cs4REkJ8JZa$E895M8L9;Rv
zkHl*^%#~GO_=xoTIglkSO5v!A3WlSq^8UyeH;~X(rq-IMjFi3`Da~~nFhX<-B<i9X
zNM|IWOj?2>abE(xCd$2fLT5l}%EckNB@-y=+-!NdrAc7bVm<H6PR|sL84H*58{p1M
ttzD5f%inKm!N0HM)Lg7tzB@Ai&(==iB;~sKVEYYSUb}<8_vVu3{{W`sOeX*U

delta 2757
zcmZXWX>3$g7>3{PE@!3#OlPK@u0x&DqN5ZAAsQlT3j`>rKugg^2*rjd3Y7|IjmsS)
zHZIXfZVbjmB^ofU2*o8vjT&RDB!=h@jWOCkYN94C@s9+f@A+<TJL<IOx!?OOXS?U#
zner9o6_4IO=dO1?IEu;71m<9dEC6chNJY-3-UBaeN`Kq~th0^*;E;cywPt1+m`VK-
z1BI~F=?ME}U8-0^S0`I-cwFX5Q}~UXBgHY}oR-WbzrC3H<CZncj{miASKT|eJwBH8
zevu}eVF&iJn$3Zajh(<XIY8Ly#o>BW3d%{K?QY;_UQZd?y?bxjF?9VNTlID|;PKkl
z*NgXPXRN)duX_crr>O6DsF&@$`8sO*p_Hp<pO7jVI4z4%M+eQ>Y<ad;w)t%BY-u+3
z7od@b&9{x?Bf&O<%@$gpodB@gv)X1<yMOuycPbY<-}}{QWSPNg^=x&Hx(0*pWz6~2
zv3yziiSh#VuU7jp%?w6(N#U@!))+kK|Lz$yI(C2oW9>Dt+@M^<$r>zVP6{2q&0nfH
z_leEPIF<?J?ds2azw6w$>%@f%60Z15Z^XY;ZQ+Vu3(Sb$&ow7BX#5d>3%4dxTd2CJ
zQW~q7jLm>8JR-I(%|F}eVfNCE?4&ADZ9@~PHTIlqV@=3u-3hI0LXE~A_kt&IDeq4t
zN4-epHTWmh7PO#2)iI5=pjlPPk7BJTO9nqO*3HazxUCu7!Szlm#_VD5=AEAlhtuB9
z9ofa_;A~aj3AfbB^RTJ>l)pqam0wnlE8kLnrd&@NGlZqgxyZkqJg6Kp*1iUoT}mP2
z%)Mqg{fFG;Vz5Wp1MX5DGplHS?k<(U;7xX6FfMD!_l-@u6_$e)LoSw8>}UzeGFc}V
zVH<j-4(H-(GKH=5mu07{@3c32H2IX-&ASw<4sTzDT1Dl=v7ljshs}*8PVx}N>O;IQ
zcSx*8lYhBo@#0L@W%z7FLqwT=Ma=N1P7be`vD%L_*e{8xy1))mRgr4Ant0w%%0n`(
z)=7C<vC~KYr3_zK(*sVcXlhfj<X2q8tm({vtB+-r8mrM{CkISVr*gfqiZZL?Sn^dI
z<WY;KJx-OKRQvHAo|If1)7`F#6&^N0hG#!2j5@82gSy@MSm`FlD$1;@h#A!XN7-}W
zVw82yO1%|SAIW^46Z^u8R7su>WLmb!F=?I*Muml`)cNv;v`ndzyeq{iW$WxKRq%v6
z&2hDVQbu-$51(Mzx9`=%lm5WE2Ki(<c$*YNssAso>^dqgSL9a?b3I?j4(c`9#vvV8
zk6=_;8Rb+0hF5AJnwPa**fMXbtO^sp@a<-wltwbe$IjXd$qbe#yOiC^4a$DyHsucG
zu<`-Y@FaOShYXU~%*#wXL}u^`S&MJU24p0OBAUr|6v-0ik{vjYT!0J6#aK)()tpYv
z*{Sw!+C}Uk&*xX!7i0}4$Y%UawyA#}lFs>96yP#mE<qo;90TN9>>_*Bf30#5BlO%v
zc50^s%87_#hk;|cTsf$OYdr(Xva;w|kHZ^L%{>RM^18_22W+GiZij;^Zv8C&N=WnN
zk<l;WXUw?0kKU)`8}b?1E7tzTwOpaLjV4*`u*TJ^@S5amJ$ee-bAr7(95|s_Rb-w!
z<Dg*^2Xy%LPz|qa4@u=`geR5%Q=dE@(S%B03)b?)fZuKoH`(y!rP+0L*p)5G#o>+F
z=2`tW@7sIB)`b^h<-Vc8@JO~4ex3a!JdwL+th?qa36IyF4DZdq8}`)ogvaYPhx6*|
z!~Xh{;jWs-u&?2)@acvPVOwMC*}#8)V!<nlB;6v!r;*KCIX2XIp#%ljWINclyC%1T
zZFR!rb5}aa^h{nixXENb*C%P$%uahn<chXD*JaBc_Leq9M+&)Z3}p+}PG<|6u~FIX
z+i*jo=;VfT`=ZEjRMMU*db#03F4xY0S7Og@327SHLil>~v9Mey<bLg$+D@c;X?GrI
bt#i)wjD1un$XL4NwC@xa>5s<)3ljeTLO7aa

diff --git a/obj/TournamentManager.csproj.nuget.dgspec.json b/obj/TournamentManager.csproj.nuget.dgspec.json
index e77d8e9..8193c42 100644
--- a/obj/TournamentManager.csproj.nuget.dgspec.json
+++ b/obj/TournamentManager.csproj.nuget.dgspec.json
@@ -22,7 +22,7 @@
           "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
         ],
         "originalTargetFrameworks": [
-          "net5.0-windows"
+          "net5.0-windows7.0"
         ],
         "sources": {
           "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
diff --git a/obj/TournamentManager.csproj.nuget.g.props b/obj/TournamentManager.csproj.nuget.g.props
index 4411bfa..fd44c97 100644
--- a/obj/TournamentManager.csproj.nuget.g.props
+++ b/obj/TournamentManager.csproj.nuget.g.props
@@ -7,10 +7,11 @@
     <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
     <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\micha\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
     <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
-    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.8.0</NuGetToolVersion>
+    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.9.1</NuGetToolVersion>
   </PropertyGroup>
   <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
-    <SourceRoot Include="$([MSBuild]::EnsureTrailingSlash($(NuGetPackageFolders)))" />
+    <SourceRoot Include="C:\Users\micha\.nuget\packages\" />
+    <SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
   </ItemGroup>
   <PropertyGroup>
     <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
diff --git a/obj/project.assets.json b/obj/project.assets.json
index 9e36234..ee56346 100644
--- a/obj/project.assets.json
+++ b/obj/project.assets.json
@@ -74,7 +74,7 @@
         "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
       ],
       "originalTargetFrameworks": [
-        "net5.0-windows"
+        "net5.0-windows7.0"
       ],
       "sources": {
         "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache
index b2ac104..f18c7ee 100644
--- a/obj/project.nuget.cache
+++ b/obj/project.nuget.cache
@@ -1,6 +1,6 @@
 {
   "version": 2,
-  "dgSpecHash": "H71bVF2tvvTKiX1pmF6aHb9K3KX+isneTQJ5VfOpVIgT/zpQhwsdigl9to5pbHKJjGW9eAmRAA+cQgirv1ofvA==",
+  "dgSpecHash": "umcWTwWm5FWSLXrCLi1hAiSKMk34e+8HmDyYsi0ix1KwxZS3E/m1Qv9UliO6bACM5E/u5fBHvrSo9PIkJD0wTA==",
   "success": true,
   "projectFilePath": "C:\\Users\\micha\\School\\RiderProjects\\c-sharp-semestral-project-1\\TournamentManager.csproj",
   "expectedPackageFiles": [
diff --git a/obj/rider.project.restore.info b/obj/rider.project.restore.info
index f365a93..c114ea2 100644
--- a/obj/rider.project.restore.info
+++ b/obj/rider.project.restore.info
@@ -1 +1 @@
-16225451119597750
\ No newline at end of file
+16225471957581258
\ No newline at end of file
diff --git a/src/CalculateControl.Designer.cs b/src/CalculateControl.Designer.cs
new file mode 100644
index 0000000..e7c195f
--- /dev/null
+++ b/src/CalculateControl.Designer.cs
@@ -0,0 +1,126 @@
+
+namespace TournamentManager.src
+{
+    partial class CalculateControl
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.btnGroups = new System.Windows.Forms.Button();
+            this.label1 = new System.Windows.Forms.Label();
+            this.cbGroupSize = new System.Windows.Forms.ComboBox();
+            this.btnPlayOff = new System.Windows.Forms.Button();
+            this.label2 = new System.Windows.Forms.Label();
+            this.cbEliminate = new System.Windows.Forms.ComboBox();
+            this.SuspendLayout();
+            // 
+            // btnGroups
+            // 
+            this.btnGroups.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+            this.btnGroups.Location = new System.Drawing.Point(0, 0);
+            this.btnGroups.Name = "btnGroups";
+            this.btnGroups.Size = new System.Drawing.Size(200, 57);
+            this.btnGroups.TabIndex = 0;
+            this.btnGroups.Text = "Calculate Groups";
+            this.btnGroups.UseVisualStyleBackColor = true;
+            this.btnGroups.Click += new System.EventHandler(this.btnGroups_Click);
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+            this.label1.Location = new System.Drawing.Point(0, 60);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(78, 21);
+            this.label1.TabIndex = 1;
+            this.label1.Text = "Max Size:";
+            // 
+            // cbGroupSize
+            // 
+            this.cbGroupSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbGroupSize.FormattingEnabled = true;
+            this.cbGroupSize.Location = new System.Drawing.Point(84, 60);
+            this.cbGroupSize.Name = "cbGroupSize";
+            this.cbGroupSize.Size = new System.Drawing.Size(80, 23);
+            this.cbGroupSize.TabIndex = 2;
+            // 
+            // btnPlayOff
+            // 
+            this.btnPlayOff.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+            this.btnPlayOff.Location = new System.Drawing.Point(290, 0);
+            this.btnPlayOff.Name = "btnPlayOff";
+            this.btnPlayOff.Size = new System.Drawing.Size(200, 57);
+            this.btnPlayOff.TabIndex = 3;
+            this.btnPlayOff.Text = "Calculate PlayOff";
+            this.btnPlayOff.UseVisualStyleBackColor = true;
+            this.btnPlayOff.Click += new System.EventHandler(this.btnPlayOff_Click);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+            this.label2.Location = new System.Drawing.Point(286, 60);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(118, 21);
+            this.label2.TabIndex = 4;
+            this.label2.Text = "% to eliminate:";
+            // 
+            // cbEliminate
+            // 
+            this.cbEliminate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbEliminate.FormattingEnabled = true;
+            this.cbEliminate.Location = new System.Drawing.Point(410, 60);
+            this.cbEliminate.Name = "cbEliminate";
+            this.cbEliminate.Size = new System.Drawing.Size(80, 23);
+            this.cbEliminate.TabIndex = 5;
+            // 
+            // CalculateControl
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.cbEliminate);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.btnPlayOff);
+            this.Controls.Add(this.cbGroupSize);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.btnGroups);
+            this.Name = "CalculateControl";
+            this.Size = new System.Drawing.Size(490, 92);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btnGroups;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.ComboBox cbGroupSize;
+        private System.Windows.Forms.Button btnPlayOff;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.ComboBox cbEliminate;
+    }
+}
diff --git a/src/CalculateControl.cs b/src/CalculateControl.cs
new file mode 100644
index 0000000..f8f1bd7
--- /dev/null
+++ b/src/CalculateControl.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace TournamentManager.src
+{
+    public partial class CalculateControl : UserControl
+    {
+        public event CalculateGroupsEventArgsDelegate CalculateGroups;
+
+        public delegate void CalculateGroupsEventArgsDelegate(object sender, CalculateGroupsEventArgs e);
+        protected void OnCalculateGroups(CalculateGroupsEventArgs args) => CalculateGroups?.Invoke(this, args);
+        
+        public CalculateControl()
+        {
+            InitializeComponent();
+            Func<int, int, int, IEnumerable<string> > createRange = (x, y, z) =>
+                Enumerable.Range(x, y).Select(n => (n*z).ToString());
+            cbGroupSize.Items.AddRange( (string[])createRange(4, 4, 1)
+                .ToArray() );
+            cbEliminate.Items.AddRange( (string[])createRange(0, 5, 10)
+                .ToArray() );
+        }
+
+        private void btnGroups_Click(object sender, EventArgs e)
+        {
+            if (cbGroupSize.SelectedItem == null)
+            {
+                //TODO: throw some message
+                return;
+            }
+            OnCalculateGroups(new CalculateGroupsEventArgs(int.Parse(cbGroupSize.SelectedItem.ToString()!)));
+        }
+
+        private void btnPlayOff_Click(object sender, EventArgs e)
+        {
+            //TODO: Calculate playoff
+        }
+    }
+}
diff --git a/src/CalculateControl.resx b/src/CalculateControl.resx
new file mode 100644
index 0000000..f298a7b
--- /dev/null
+++ b/src/CalculateControl.resx
@@ -0,0 +1,60 @@
+<root>
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/src/CalculateGroupsEventArgs.cs b/src/CalculateGroupsEventArgs.cs
new file mode 100644
index 0000000..2a16a29
--- /dev/null
+++ b/src/CalculateGroupsEventArgs.cs
@@ -0,0 +1,12 @@
+namespace TournamentManager
+{
+    public class CalculateGroupsEventArgs
+    {
+        public int GroupSize { get; }
+
+        public CalculateGroupsEventArgs(int groupSize)
+        {
+            GroupSize = groupSize;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/CbItemSelectedEventArgs.cs b/src/CbItemSelectedEventArgs.cs
new file mode 100644
index 0000000..2340e71
--- /dev/null
+++ b/src/CbItemSelectedEventArgs.cs
@@ -0,0 +1,12 @@
+namespace TournamentManager
+{
+    public class CbItemSelectedEventArgs
+    {
+        public string ItemName { get; }
+
+        public CbItemSelectedEventArgs(string itemName)
+        {
+            ItemName = itemName;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Group.cs b/src/Group.cs
index e3b61bb..a3d1c75 100644
--- a/src/Group.cs
+++ b/src/Group.cs
@@ -1,9 +1,13 @@
-using System.Runtime.Serialization;
+using System.Collections.Generic;
+using System.Runtime.Serialization;
 
 namespace TournamentManager
 {
     public class Group : ISerializable
     {
+        public List<Participant> Members { get; set; }
+        public List<Match> Matches { get; set; }
+        
         public void GetObjectData(SerializationInfo info, StreamingContext context)
         {
             throw new System.NotImplementedException();
diff --git a/src/GroupControl.Designer.cs b/src/GroupControl.Designer.cs
index 3e4cc76..4816a30 100644
--- a/src/GroupControl.Designer.cs
+++ b/src/GroupControl.Designer.cs
@@ -30,10 +30,10 @@ namespace TournamentManager.src
         private void InitializeComponent()
         {
             this.cbGroup = new System.Windows.Forms.ComboBox();
-            this.cbParticipant1 = new System.Windows.Forms.ComboBox();
-            this.cbParticipant2 = new System.Windows.Forms.ComboBox();
-            this.tbParticipant2 = new System.Windows.Forms.TextBox();
-            this.tbParticipant1 = new System.Windows.Forms.TextBox();
+            this.cbFirstOpponent = new System.Windows.Forms.ComboBox();
+            this.cbSecondOpponent = new System.Windows.Forms.ComboBox();
+            this.tbSecondOpponentScore = new System.Windows.Forms.TextBox();
+            this.tbFirstOpponentScore = new System.Windows.Forms.TextBox();
             this.label1 = new System.Windows.Forms.Label();
             this.label2 = new System.Windows.Forms.Label();
             this.btnSubmit = new System.Windows.Forms.Button();
@@ -42,46 +42,55 @@ namespace TournamentManager.src
             // cbGroup
             // 
             this.cbGroup.FormattingEnabled = true;
-            this.cbGroup.Location = new System.Drawing.Point(53, 8);
+            this.cbGroup.Location = new System.Drawing.Point(62, 9);
+            this.cbGroup.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
             this.cbGroup.Name = "cbGroup";
-            this.cbGroup.Size = new System.Drawing.Size(128, 21);
+            this.cbGroup.Size = new System.Drawing.Size(149, 23);
             this.cbGroup.TabIndex = 0;
+            this.cbGroup.SelectedIndexChanged += new System.EventHandler(this.cbGroup_SelectedIndexChanged);
             // 
-            // cbParticipant1
+            // cbFirstOpponent
             // 
-            this.cbParticipant1.FormattingEnabled = true;
-            this.cbParticipant1.Location = new System.Drawing.Point(0, 42);
-            this.cbParticipant1.Name = "cbParticipant1";
-            this.cbParticipant1.Size = new System.Drawing.Size(115, 21);
-            this.cbParticipant1.TabIndex = 1;
+            this.cbFirstOpponent.FormattingEnabled = true;
+            this.cbFirstOpponent.Location = new System.Drawing.Point(0, 48);
+            this.cbFirstOpponent.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.cbFirstOpponent.Name = "cbFirstOpponent";
+            this.cbFirstOpponent.Size = new System.Drawing.Size(134, 23);
+            this.cbFirstOpponent.TabIndex = 1;
+            this.cbFirstOpponent.SelectedIndexChanged += new System.EventHandler(this.cbFirstOpponent_SelectedIndexChanged);
             // 
-            // cbParticipant2
+            // cbSecondOpponent
             // 
-            this.cbParticipant2.FormattingEnabled = true;
-            this.cbParticipant2.Location = new System.Drawing.Point(303, 42);
-            this.cbParticipant2.Name = "cbParticipant2";
-            this.cbParticipant2.Size = new System.Drawing.Size(118, 21);
-            this.cbParticipant2.TabIndex = 2;
+            this.cbSecondOpponent.FormattingEnabled = true;
+            this.cbSecondOpponent.Location = new System.Drawing.Point(354, 48);
+            this.cbSecondOpponent.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.cbSecondOpponent.Name = "cbSecondOpponent";
+            this.cbSecondOpponent.Size = new System.Drawing.Size(137, 23);
+            this.cbSecondOpponent.TabIndex = 2;
+            this.cbSecondOpponent.SelectedIndexChanged += new System.EventHandler(this.cbSecondOpponent_SelectedIndexChanged);
             // 
-            // tbParticipant2
+            // tbSecondOpponentScore
             // 
-            this.tbParticipant2.Location = new System.Drawing.Point(244, 42);
-            this.tbParticipant2.Name = "tbParticipant2";
-            this.tbParticipant2.Size = new System.Drawing.Size(54, 20);
-            this.tbParticipant2.TabIndex = 3;
+            this.tbSecondOpponentScore.Location = new System.Drawing.Point(285, 48);
+            this.tbSecondOpponentScore.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.tbSecondOpponentScore.Name = "tbSecondOpponentScore";
+            this.tbSecondOpponentScore.Size = new System.Drawing.Size(62, 23);
+            this.tbSecondOpponentScore.TabIndex = 3;
             // 
-            // tbParticipant1
+            // tbFirstOpponentScore
             // 
-            this.tbParticipant1.Location = new System.Drawing.Point(120, 42);
-            this.tbParticipant1.Name = "tbParticipant1";
-            this.tbParticipant1.Size = new System.Drawing.Size(54, 20);
-            this.tbParticipant1.TabIndex = 4;
+            this.tbFirstOpponentScore.Location = new System.Drawing.Point(140, 48);
+            this.tbFirstOpponentScore.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.tbFirstOpponentScore.Name = "tbFirstOpponentScore";
+            this.tbFirstOpponentScore.Size = new System.Drawing.Size(62, 23);
+            this.tbFirstOpponentScore.TabIndex = 4;
             // 
             // label1
             // 
             this.label1.AutoSize = true;
-            this.label1.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold);
-            this.label1.Location = new System.Drawing.Point(197, 44);
+            this.label1.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+            this.label1.Location = new System.Drawing.Point(230, 51);
+            this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label1.Name = "label1";
             this.label1.Size = new System.Drawing.Size(27, 20);
             this.label1.TabIndex = 5;
@@ -90,8 +99,9 @@ namespace TournamentManager.src
             // label2
             // 
             this.label2.AutoSize = true;
-            this.label2.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold);
-            this.label2.Location = new System.Drawing.Point(0, 8);
+            this.label2.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+            this.label2.Location = new System.Drawing.Point(0, 9);
+            this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label2.Name = "label2";
             this.label2.Size = new System.Drawing.Size(56, 20);
             this.label2.TabIndex = 6;
@@ -99,42 +109,45 @@ namespace TournamentManager.src
             // 
             // btnSubmit
             // 
-            this.btnSubmit.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold);
-            this.btnSubmit.Location = new System.Drawing.Point(294, 75);
+            this.btnSubmit.Font = new System.Drawing.Font("Segoe UI Semibold", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+            this.btnSubmit.Location = new System.Drawing.Point(343, 87);
+            this.btnSubmit.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
             this.btnSubmit.Name = "btnSubmit";
-            this.btnSubmit.Size = new System.Drawing.Size(118, 29);
+            this.btnSubmit.Size = new System.Drawing.Size(138, 33);
             this.btnSubmit.TabIndex = 7;
             this.btnSubmit.Text = "Submit";
             this.btnSubmit.UseVisualStyleBackColor = true;
             // 
             // GroupControl
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.Controls.Add(this.btnSubmit);
             this.Controls.Add(this.label2);
             this.Controls.Add(this.label1);
-            this.Controls.Add(this.tbParticipant1);
-            this.Controls.Add(this.tbParticipant2);
-            this.Controls.Add(this.cbParticipant2);
-            this.Controls.Add(this.cbParticipant1);
+            this.Controls.Add(this.tbFirstOpponentScore);
+            this.Controls.Add(this.tbSecondOpponentScore);
+            this.Controls.Add(this.cbSecondOpponent);
+            this.Controls.Add(this.cbFirstOpponent);
             this.Controls.Add(this.cbGroup);
+            this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
             this.Name = "GroupControl";
-            this.Size = new System.Drawing.Size(423, 111);
+            this.Size = new System.Drawing.Size(493, 128);
             this.ResumeLayout(false);
             this.PerformLayout();
+
         }
 
         #endregion
 
         private System.Windows.Forms.ComboBox cbGroup;
-        private System.Windows.Forms.ComboBox cbParticipant1;
+        private System.Windows.Forms.ComboBox cbFirstOpponent;
         private System.Windows.Forms.ComboBox comboBox3;
-        private System.Windows.Forms.TextBox tbParticipant2;
-        private System.Windows.Forms.TextBox tbParticipant1;
+        private System.Windows.Forms.TextBox tbSecondOpponentScore;
+        private System.Windows.Forms.TextBox tbFirstOpponentScore;
         private System.Windows.Forms.Label label1;
         private System.Windows.Forms.Label label2;
-        private System.Windows.Forms.ComboBox cbParticipant2;
+        private System.Windows.Forms.ComboBox cbSecondOpponent;
         private System.Windows.Forms.Button btnSubmit;
     }
 }
diff --git a/src/GroupControl.cs b/src/GroupControl.cs
index ac6f144..2a785a3 100644
--- a/src/GroupControl.cs
+++ b/src/GroupControl.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Collections.ObjectModel;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
@@ -7,14 +8,82 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
+using System.Windows.Forms.VisualStyles;
 
 namespace TournamentManager.src
 {
     public partial class GroupControl : UserControl
     {
+        public delegate void CbItemSelectedDelegate(object sender, CbItemSelectedEventArgs e);
+
+        public event CbItemSelectedDelegate CbGroupItemSelected;
+        public event CbItemSelectedDelegate CbFirstOpponentSelected;
+        public event CbItemSelectedDelegate CbSecondOpponentSelected;
+
+        protected void OnGroupSelected(CbItemSelectedEventArgs e) => CbGroupItemSelected?.Invoke(this, e);
+        protected void OnFirstOpponentSelected(CbItemSelectedEventArgs e) =>
+            CbFirstOpponentSelected?.Invoke(this, e);
+        protected void OnSecondOpponentSelected(CbItemSelectedEventArgs e) =>
+            CbSecondOpponentSelected?.Invoke(this, e);
+        
         public GroupControl()
         {
             InitializeComponent();
         }
+
+        public void AddGroups(int groupCount)
+        {
+            for (int i = 0; i < groupCount; i++)
+            {
+                cbGroup.Items.Add($"Group {i + 1}");
+            }
+        }
+
+        public void AddToFirstOpponentList(string[] itemNames)
+        {
+            cbFirstOpponent.Items.AddRange((string[])itemNames);
+        }
+
+        public void AddToSecondOpponentList(string[] itemNames)
+        {
+            cbFirstOpponent.Items.AddRange((string[])itemNames);
+        }
+
+        private void cbGroup_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            ClearComboBox(ref cbFirstOpponent);
+            ClearComboBox(ref cbSecondOpponent);
+            ClearTextBoxes();
+            OnGroupSelected(new CbItemSelectedEventArgs(cbGroup.SelectedItem.ToString()));
+        }
+
+        private void cbFirstOpponent_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            ClearComboBox(ref cbSecondOpponent);
+            ClearTextBoxes();
+            OnFirstOpponentSelected(new CbItemSelectedEventArgs(cbFirstOpponent.SelectedItem.ToString()));
+        }
+
+        private void cbSecondOpponent_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            ClearTextBoxes();
+            OnSecondOpponentSelected(new CbItemSelectedEventArgs(cbSecondOpponent.SelectedItem.ToString()));
+        }
+
+        #region HelperFunctions
+
+        private void ClearComboBox(ref ComboBox comboBox)
+        {
+            comboBox.Items.Clear();
+            comboBox.Text = String.Empty;
+        }
+
+        private void ClearTextBoxes()
+        {
+            tbFirstOpponentScore.Clear();
+            tbSecondOpponentScore.Clear();
+        }
+
+        #endregion
     }
 }
diff --git a/src/GroupControl.resx b/src/GroupControl.resx
index 1af7de1..f298a7b 100644
--- a/src/GroupControl.resx
+++ b/src/GroupControl.resx
@@ -1,64 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
+<root>
   <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
     <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
     <xsd:element name="root" msdata:IsDataSet="true">
diff --git a/src/ManageTournamentForm.Designer.cs b/src/ManageTournamentForm.Designer.cs
index be8cb40..5fad2fd 100644
--- a/src/ManageTournamentForm.Designer.cs
+++ b/src/ManageTournamentForm.Designer.cs
@@ -36,11 +36,10 @@ namespace TournamentManager
             this.groupBox2 = new System.Windows.Forms.GroupBox();
             this.manageParticipantsControl = new TournamentManager.src.ManageParticipantsControl();
             this.groupBox3 = new System.Windows.Forms.GroupBox();
-            this.groupControl1 = new TournamentManager.src.GroupControl();
+            this.groupControl = new TournamentManager.src.GroupControl();
             this.groupBox4 = new System.Windows.Forms.GroupBox();
+            this.calculateControl = new TournamentManager.src.CalculateControl();
             this.groupBox5 = new System.Windows.Forms.GroupBox();
-            this.btnGroups = new System.Windows.Forms.Button();
-            this.btnPlayOff = new System.Windows.Forms.Button();
             this.groupBox1.SuspendLayout();
             this.groupBox2.SuspendLayout();
             this.groupBox3.SuspendLayout();
@@ -83,7 +82,7 @@ namespace TournamentManager
             // 
             // groupBox3
             // 
-            this.groupBox3.Controls.Add(this.groupControl1);
+            this.groupBox3.Controls.Add(this.groupControl);
             this.groupBox3.Location = new System.Drawing.Point(394, 12);
             this.groupBox3.Name = "groupBox3";
             this.groupBox3.Size = new System.Drawing.Size(502, 154);
@@ -91,54 +90,40 @@ namespace TournamentManager
             this.groupBox3.TabStop = false;
             this.groupBox3.Text = "Manage Group";
             // 
-            // groupControl1
+            // groupControl
             // 
-            this.groupControl1.Location = new System.Drawing.Point(6, 22);
-            this.groupControl1.Name = "groupControl1";
-            this.groupControl1.Size = new System.Drawing.Size(491, 123);
-            this.groupControl1.TabIndex = 0;
+            this.groupControl.Location = new System.Drawing.Point(6, 22);
+            this.groupControl.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.groupControl.Name = "groupControl";
+            this.groupControl.Size = new System.Drawing.Size(491, 123);
+            this.groupControl.TabIndex = 0;
             // 
             // groupBox4
             // 
-            this.groupBox4.Controls.Add(this.btnPlayOff);
-            this.groupBox4.Controls.Add(this.btnGroups);
+            this.groupBox4.Controls.Add(this.calculateControl);
             this.groupBox4.Location = new System.Drawing.Point(395, 172);
             this.groupBox4.Name = "groupBox4";
-            this.groupBox4.Size = new System.Drawing.Size(501, 93);
+            this.groupBox4.Size = new System.Drawing.Size(501, 138);
             this.groupBox4.TabIndex = 3;
             this.groupBox4.TabStop = false;
             this.groupBox4.Text = "Calculate";
             // 
+            // calculateControl
+            // 
+            this.calculateControl.Location = new System.Drawing.Point(5, 22);
+            this.calculateControl.Name = "calculateControl";
+            this.calculateControl.Size = new System.Drawing.Size(491, 111);
+            this.calculateControl.TabIndex = 0;
+            // 
             // groupBox5
             // 
-            this.groupBox5.Location = new System.Drawing.Point(394, 271);
+            this.groupBox5.Location = new System.Drawing.Point(394, 316);
             this.groupBox5.Name = "groupBox5";
-            this.groupBox5.Size = new System.Drawing.Size(502, 285);
+            this.groupBox5.Size = new System.Drawing.Size(502, 240);
             this.groupBox5.TabIndex = 4;
             this.groupBox5.TabStop = false;
             this.groupBox5.Text = "Export Data";
             // 
-            // btnGroups
-            // 
-            this.btnGroups.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
-            this.btnGroups.Location = new System.Drawing.Point(6, 22);
-            this.btnGroups.Name = "btnGroups";
-            this.btnGroups.Size = new System.Drawing.Size(194, 56);
-            this.btnGroups.TabIndex = 0;
-            this.btnGroups.Text = "Calculate Groups";
-            this.btnGroups.UseVisualStyleBackColor = true;
-            this.btnGroups.Click += new System.EventHandler(this.btnGroups_Click);
-            // 
-            // btnPlayOff
-            // 
-            this.btnPlayOff.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
-            this.btnPlayOff.Location = new System.Drawing.Point(301, 22);
-            this.btnPlayOff.Name = "btnPlayOff";
-            this.btnPlayOff.Size = new System.Drawing.Size(194, 56);
-            this.btnPlayOff.TabIndex = 1;
-            this.btnPlayOff.Text = "Calculate Play Off";
-            this.btnPlayOff.UseVisualStyleBackColor = true;
-            // 
             // ManageTournamentForm
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
@@ -166,10 +151,9 @@ namespace TournamentManager
         private System.Windows.Forms.GroupBox groupBox2;
         private src.ManageParticipantsControl manageParticipantsControl;
         private System.Windows.Forms.GroupBox groupBox3;
-        private src.GroupControl groupControl1;
+        private src.GroupControl groupControl;
         private System.Windows.Forms.GroupBox groupBox4;
-        private System.Windows.Forms.Button btnPlayOff;
-        private System.Windows.Forms.Button btnGroups;
         private System.Windows.Forms.GroupBox groupBox5;
+        private src.CalculateControl calculateControl;
     }
 }
\ No newline at end of file
diff --git a/src/ManageTournamentForm.cs b/src/ManageTournamentForm.cs
index 41d8e5d..807adbb 100644
--- a/src/ManageTournamentForm.cs
+++ b/src/ManageTournamentForm.cs
@@ -12,7 +12,8 @@ namespace TournamentManager
         private const string RemoveParticipantError = "Participant with this name is already signed in competition";
         private const string EditParticipantError = "Participant with this name is already signed in competition";
         private const string ErrorCaption = "Error";
-        private readonly ObservableCollection<Participant> _participants = new ();
+        private readonly ObservableCollection<Participant> _participants = new();
+        private readonly ObservableCollection<Group> _groups = new();
         
         public ManageTournamentForm(string path)
         {
@@ -20,6 +21,8 @@ namespace TournamentManager
             enterantCntrl.SubmitParticipantClick += OnSubmitParticipantClicked;
             _participants.CollectionChanged += HandleParticipantsChanged;
             manageParticipantsControl.ParticipantsModified += HandleParticipantRemoved;
+            calculateControl.CalculateGroups += HandleCalculateGroups;
+            groupControl.CbGroupItemSelected += HandleGroupItemSelected;
             foreach (var p in _participants)
             {
                 manageParticipantsControl.CbAddParticipant($"{p.FirstName} {p.Surname}");
@@ -71,9 +74,39 @@ namespace TournamentManager
             
         }
 
-        private void btnGroups_Click(object sender, EventArgs e)
+        private void HandleCalculateGroups(object sender, CalculateGroupsEventArgs e)
         {
+            var numberOfGroups = (_participants.Count - 1) / e.GroupSize + 1;
+            var groupIndex = 0;
+            var orderedParticipants = _participants.OrderBy(x => x.Rating);
 
+            groupControl.AddGroups(numberOfGroups);
+            
+            for (int i = 0; i < numberOfGroups; i++)
+            {
+                _groups.Add(new Group());
+            }
+
+            foreach (var participant in orderedParticipants)
+            {
+               
+                if (groupIndex >= numberOfGroups)
+                {
+                    groupIndex = 0;
+                }
+                _groups[groupIndex].Members.Add(participant);
+
+            }
+        }
+
+        private void HandleGroupItemSelected(object sender, CbItemSelectedEventArgs e)
+        {
+            if (!int.TryParse(e.ItemName.Split(" ")[1], out var result))
+            {
+                return;
+            }
+            groupControl.AddToFirstOpponentList(_groups[result - 1].Members
+                .Select(x => $"{x.FirstName} {x.Surname}").ToArray());
         }
     }
 }
\ No newline at end of file
diff --git a/src/Match.cs b/src/Match.cs
new file mode 100644
index 0000000..44f2140
--- /dev/null
+++ b/src/Match.cs
@@ -0,0 +1,10 @@
+using System;
+
+namespace TournamentManager
+{
+    public class Match
+    {
+        public Tuple<Participant, Participant> Opponent { get; set; }
+        public (int first, int second) Score { get; set; }
+    }
+}
\ No newline at end of file
-- 
GitLab