[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Freeipa-devel] [PATCH] new look and feel



Patch to completely revamp the GUI look and feel. Contributed by Máirín Duffy.

rob
# HG changeset patch
# User Rob Crittenden <rcritten redhat com>
# Date 1193948132 14400
# Node ID 1e02ac653654f91bae88de1c6043c915a693eb28
# Parent  52c9372d1021d10213975802467a1188aabbc736
Update the UI look and feel

diff --git a/ipa-server/configure.ac b/ipa-server/configure.ac
--- a/ipa-server/configure.ac
+++ b/ipa-server/configure.ac
@@ -212,6 +212,8 @@ AC_CONFIG_FILES([
     ipa-gui/ipagui/static/Makefile
     ipa-gui/ipagui/static/css/Makefile
     ipa-gui/ipagui/static/images/Makefile
+    ipa-gui/ipagui/static/images/template/Makefile
+    ipa-gui/ipagui/static/images/branding/Makefile
     ipa-gui/ipagui/static/javascript/Makefile
     ipa-gui/ipagui/subcontrollers/Makefile
     ipa-gui/ipagui/templates/Makefile
diff --git a/ipa-server/ipa-gui/ipagui/static/css/style.css b/ipa-server/ipa-gui/ipagui/static/css/style.css
--- a/ipa-server/ipa-gui/ipagui/static/css/style.css
+++ b/ipa-server/ipa-gui/ipagui/static/css/style.css
@@ -1,272 +1,381 @@
+* 
+{
+  margin: 			0;
+  padding:			0;
+}
+
+html, body {
+  height:			100%;
+}
+
+body {
+  background-image:		url('/static/images/template/background.png');
+  background-repeat:		repeat-x;
+  background-color:		#f9f9f9;
+  margin:			0px;
+  padding:			0px;
+  padding-top:			8px;
+  min-width:			750px;
+}
+
+body, h1, h2, h3, h4, h5, p, ul, li, div, span {
+  font-family:			"Luxi Sans", "Gill Sans", "Verdana", "Helvetica", sans-serif;
+  font-size:			small;
+  color:			#444;
+}
+
+#head {
+  margin:			0px;
+  padding:			0px;
+  padding-left:			12px;
+} 
+
+#head h1 a {
+  display:			block;
+  text-indent:			-9999px;
+  height:			54px;
+  width:			350px;
+  overflow:			hidden;
+  float:			left;
+
+  background:			url('/static/images/branding/logo.png') no-repeat;
+}
+
+#searchbar {
+  float: 			right;
+  margin-right: 		24px;
+  margin-top: 			18px;
+}
+
+#navbar {
+  width: 			100%;
+  height: 			64px;
+  margin: 			0px;
+  clear:			both;
+
+  background-image:		url('/static/images/template/background-navbar.png');
+  background-repeat:		repeat-x;
+
+}
+
+#navbar ul {
+  margin:			0px;
+  padding:			0px;
+  padding-left:			10px;
+  list-style:			none;
+}
+
+#navbar li {
+  float:			left;
+  margin:			0px;
+  padding:			0px;
+  
+  font-size:			small;
+}
+
+#navbar a {
+  display:			block;
+  margin:			22px 15px;
+}
+
+#navbar .active {
+  background-image:		url('/static/images/template/background-navbar-active.png');
+  height:			70px;
+  width:			116px;
+
+  text-align:			center;
+}
+
+#login {
+  float:			right;
+  padding-top:			15px;
+  padding-right:		10px;
+}
+
+#content {
+  width:			100%;
+  min-height:			50%;
+
+  background-color:		#f9f9f9;
+  background-image:		url('/static/images/template/background-content.png');
+  background-repeat:		repeat-x;
+}
+
+#details {
+  height: 			100%;
+  margin:			0px 24px;
+  margin-right:			300px;
+  padding:			18px 18px;
+  padding-bottom: 		12%;
+  border-top:			1px solid #bbdc5f;
+  background-color:		white;
+  text-align:			left;
+}
+
+#details p {
+  margin-top:			1ex;
+  margin-bottom:		1ex;
+}
+
+#sidebar {
+  width:			250px;
+  text-align:			left;
+  
+  padding:			18px 13px;
+  margin-right:			24px;
+  float:			right;
+  height:			100%;
+
+  border:			1px solid #aaa;
+  background-color:		#ccc;
+  background-image:		url('/static/images/template/background-sidebar.png');
+  background-repeat:		repeat-y;
+}
+
+#sidebar h1, h2, h3 {
+  padding:			0px;
+  margin:			0px;
+}
+
+#sidebar h2 { font-size: 	medium; }
+#sidebar h3 { font-size: 	small; }
+
+#sidebar ul {
+  padding:			0px;
+  margin:			0px;
+  list-style:			none;
+  padding-bottom:		10px;
+}
+
+#sidebar ul, #sidebar li  {
+  margin-bottom:		6px;
+  font-size:			small;
+}
+
+#sidebar hr {
+  border-top:			1px solid #aaa;
+  border-bottom:		1px solid #ddd;
+  color:			#ddd;
+  margin-top:			20px !important;
+  margin-bottom:		20px !important;
+}
+
+input.text {
+  border:			1px solid #8e8e8e;
+  background-color:		#e5f1f4;
+  color:			#444444;
+}
+
+input.button {
+
+}
+
+#navbar-secondary li {
+  font-size:			medium;
+}
+
+#navbar-secondary .active a:link,
+#navbar-secondary .active a:visited,
+#navbar-secondary .active a:active,
+#navbar-secondary .active a,
+#navbar-secondary li
+{
+  color:			#555 !important;
+  text-decoration:		none; 
+  font-weight:			bold;
+}
+
+#details * {
+  color:			#444;
+}
+
+#details p,
+#details td,
+#details li {
+  font-size:			small;
+  color:			#555;
+}
+
+#details h1 {
+  color:			#7d7d5b;
+  font-size:			x-large;
+  height:			40px;
 /*
- * Quick mash-up of CSS for the TG quick start page.
- */
-
-html, body {
-  color: #000;
-  background:#fff;
-  margin: 0;
-  padding: 0;
-  font-family: sans-serif;
-}
-
-body {
-  min-width: 750px;
-}
-
-#page {
-  background:#ccc;   /* should be same as #sidebar */
-  margin:0 auto;
-  width:100%;
-  clear:both;
-}
-
-
-#header {
-  background:#fff;
-}
-
-#header #logo {
-  float:left;
-}
-
-#header #headerinfo {
-  text-align:right;
-  padding-right:10px;
-}
-
-#header #headerinfo #login {
-}
-
-#header #headerinfo #topsearch {
-  padding-top: 15px;
-}
-
-.searchtext {
-  background-color:#E5F1F4;
-  border:1px solid #8E8E8E;
-  color:#444444;
-}
-
-
-#nav {
-  background:#cc0000;
-  color:#fff;
-  min-height:3px;
-  max-height:3px;
-}
-
-#nav ul {
-  margin:0;
-  padding:0;
-  list-style:none;
-}
-
-#nav li {
-  display:inline;
-}
-
-#nav a:visited {
-  color:#fff;
-}
-#nav a:link {
-  color:#fff;
-}
-
-
-#main_content {
-  background:#fff;
-  float:right;
-  width:84%;
-  min-height:500px;
-  border-left: 1px solid #000;
-  padding: 10px;
-}
-
-#main_content h1,h2 {
-  margin-top: 0px;
-  margin-bottom: 5px;
-}
-
-
-#sidebar {
-  background:#ccc;  /* should be same as #page */
-  float:left;
-  width:11%;
-  padding: 5px;
-  font-size: medium;
-}
-
-#sidebar p {
-  line-height: 150%;
-}
-
-#sidebar h2 {
-  margin-top: 0;
-}
-
-#sidebar ul {
-  margin-left: 1.5em;
-  padding-left: 0;
-}
-
-#sidebar a:visited,
-#sidebar a:link {
-  color:#000;
-}
-
+ * padding-left:			48px;
+*/
+  padding-top:			6px;
+  vertical-align:		middle;
+}
+
+#details h1.user {
+  background-image:		url('/static/images/objects/object-user.png');
+  background-repeat:		no-repeat;
+  margin-bottom:		18px;
+}
+
+#details h2, #details table caption, h2.formsection {
+  color:			#999;
+  font-size:			large;
+  font-weight:			normal;
+
+  border-bottom:		1px solid #999;
+  margin-bottom:		10px;
+
+  text-align:			left;
+  width:			100%;
+}
+
+h2.formsection {
+  margin-top:			12px;
+}
+
+#details h3, table.formtable th {
+  font-size: 			small;
+  color:			black;
+}
+
+table.details {
+  margin-bottom:		18px;
+  width:			100%;
+}
+
+#details table.details th {
+  font-size:			small;
+  width:			150px;
+  padding:			4px 0px;
+  padding-right:		8px;
+  border-bottom:		1px dotted #ddd;
+}
+
+#details table.details th.even { background-color: white; }
+#details table.details th.odd { background-color: #eee; }
+
+#details table.details td {
+  padding-left:			8px;
+  padding-bottom:		3px;
+  border-bottom:		1px dotted #ddd;
+  width:			60%;
+}
+
+#details hr {
+  margin-top:			48px;
+  margin-bottom:		12px;
+  height:			1px;
+  border-color:			#bbb;
+  border-width:			0pt 0pt 1px;
+  padding:			0.5em;
+  border-style:			none none dashed;
+}
+
+input.submitbutton {
+  float:			right;
+}
+
+#alertbox {
+  width:			100%;
+  padding:			6px 0px;
+  margin-top:			12px;
+  margin-bottom:		18px;
+  vertical-align:		middle;
+
+  -moz-border-radius:		6px;
+  background-color:		#6995d5;
+  color:			white;
+}
+
+#alertbox h2 {
+  width:			auto;
+  padding:			0px 16px;
+  float:			left;
+  font-size:			medium;
+  text-transform:		uppercase;
+  color:			white;
+  font-weight:			bold;
+  border:			none;
+}
+
+#alertbox p {
+  padding:			0px 0px;
+  text-align:			center;
+  color:			white;
+  width:			auto;
+}
+
+td, th {
+  text-align:			left;
+}
 
 #footer {
-  background:#fff;
-  clear:both;
-  border-top: 1px solid #000;
-  padding-top: 10px;
-  text-align: center;
-  font-size: x-small;
-}
-
-#footer a:visited,
-#footer a:link {
-  color:#777;
-  text-decoration: none;
-}
-
-
-.formsection {
-  color: #888888;
-  width: 90%;
-  font-weight: bold;
-  border-bottom: 1px solid;
-  margin: 20px 0px 20px 0px;
-}
-
-.formtable {
-  width: 90%;
-}
-
-.formtable th {
-  width: 20%;
-  text-align: right;
-}
-
-.floatlist {
-  float: right;
-  width: 50%;
-}
-
-.floatheader {
-  color: #885555;
-  font-weight: bold;
-}
-
-.small {
-  font-size: small;
-}
-
-.xsmall {
-  font-size: x-small;
-}
-
-#status_block {
-  margin: 0 auto 0.5em auto;
-  padding: 15px 10px 15px 55px;
-  background: #ecc;
-  border: 1px solid #c99;
-  width: 450px;
-  font-size: 120%;
-  font-weight: bolder;
-}
-
-.warning_message {
-  font-size: 120%;
-  color: #ee0000;
-  font-weight: bolder;
-}
-
-.fielderror {
-  color: red;
-  font-weight: bold;
-}
-
-.requiredfield {
-  background: #eebbbb;
-}
-
-#resultstable,
-#resultstable th,
-#resultstable td {
-  border-collapse: collapse;
-  border-style: solid;
-  border-width: 1px;
-  margin: 0px;
-  padding: 5px;
-}
-
-#resultstable th {
-  background: #eee;
-}
-
-.deletebutton {
-}
-
-/*
- * Used for checkboxlist of aci attributes
- */
-ul.requiredfield {
-  background: #ffffff;
-}
-
-ul.checkboxlist {
-  padding: 0px;
-  margin: 0px;
+  text-align:			center;
+  margin-left:			auto;
+  margin-right:			auto;
+  width:			30%;
+  padding:			20px 20px;
+}
+
+table.formtable {
+  width: 			100%;
+}
+
+table.formtable th, table.formtable td {
+  vertical-align:		top;
+  padding-bottom:		10px;
+}
+
+table.formtable th {
+  width:			28%;
+}
+
+table.formtable td {
+}
+
+input.submitbutton, input.searchbutton, #source_searcharea input.searchbutton {
+  border:			1px outset #aaa;
+  padding: 			2px 1px;
+  margin-bottom:		2px;
+}
+
+table.formtable td input[type="text"], input#criteria {
+  border:			1px inset #dcdcdc;
+  font-size:			medium;
+  padding:			2px 1px;
+  background-color:		#f5faff;
+}
+
+table.formtable td select {
+  border:			1px inset #dcdcdc;
+  font-size:			small;
+  padding:			2px 1px;
+  background-color:		#f5faff;
+}
+
+p.empty-message {
+  font-size:			large;
+  font-style:			italic;
+  color:			#888 !important;
+}
+
+div.instructions {
+  padding:			2px 6px;
+  margin-top:			16px;
+  border-top:			1px solid #c0d5f1;
+  border-bottom:		1px solid #c0d5f1;
+  background-color:		#eef4fd;
+}
+
+div#search {
+  padding-top:			16px;
+  padding-bottom:		24px;
+}
+
+ul.checkboxlist li {
   list-style: none;
-}
-
-/*
- * TableKit css
- */
-
-.sortcol {
-  cursor: pointer;
-  padding-right: 20px !important;
-  background-repeat: no-repeat !important;
-  background-position: right center !important;
-}
-.sortasc {
-  background-image: url(/static/images/up.gif) !important;
-}
-.sortdesc {
-  background-image: url(/static/images/down.gif) !important;
-}
-.nosort {
-  cursor: default;
-}
-
-th.resize-handle-active {
-  cursor: e-resize;
-}
-
-div.resize-handle {
-  cursor: e-resize;
-  width: 2px;
-  border-right: 1px dashed #1E90FF;
-  position:absolute;
-  top:0;
-  left:0;
-}
-
-
-/*
- * Overrides for printing
- */
- media print {
-    #header  { display:none; }
-    #nav     { display:none; }
-    #sidebar { display:none; }
-    #footer  { display:none; }
-    #main_content { width: 95%; margin:0; padding:0; border-left-style: none; }
-
-    .submitbutton { display:none; }
-    .deletebutton { display:none; }
-}
-
+  margin: 8px 0px;
+}
+
+ul.checkboxlist li input {
+  background-color: 		yellow;
+  height:			1.1em;
+  width:			1.2em;
+  border:			1px solid red;
+}
diff --git a/ipa-server/ipa-gui/ipagui/static/images/Makefile.am b/ipa-server/ipa-gui/ipagui/static/images/Makefile.am
--- a/ipa-server/ipa-gui/ipagui/static/images/Makefile.am
+++ b/ipa-server/ipa-gui/ipagui/static/images/Makefile.am
@@ -1,4 +1,9 @@ NULL =
 NULL =
+
+SUBDIRS =			\
+        branding		\
+        template		\
+        $(NULL)
 
 appdir = $(IPA_DATA_DIR)/ipagui/static/images
 app_DATA = 			\
diff --git a/ipa-server/ipa-gui/ipagui/static/images/branding/Makefile.am b/ipa-server/ipa-gui/ipagui/static/images/branding/Makefile.am
new file mode 100644
--- /dev/null
+++ b/ipa-server/ipa-gui/ipagui/static/images/branding/Makefile.am
@@ -0,0 +1,14 @@
+NULL =
+
+appdir = $(IPA_DATA_DIR)/ipagui/static/images/branding
+app_DATA = 			\
+	logo.png		\
+	$(NULL)
+
+EXTRA_DIST =			\
+	$(app_DATA)		\
+	$(NULL)
+
+MAINTAINERCLEANFILES =		\
+	*~			\
+	Makefile.in
diff --git a/ipa-server/ipa-gui/ipagui/static/images/branding/logo.png b/ipa-server/ipa-gui/ipagui/static/images/branding/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..e966954b0fbed7f0c86e7aaa4e89da0b16f2ba21
GIT binary patch
literal 36347
zc${>%b8se3&@CKugN<$5wr$&X^2FSYZQIVqwr$(C`P|?8-uwOe%~VfMovNNX({-w=
zJ3>i85&;ee4g>@QL0U>o<v-v2pK&2W{dZnon_q!|z?NH!iYi%~nu36MZd|WuswG+D
zK;NBy_PC*dkv(B}C()1xKJ64sVWLZ&k%_?I<Faspk%ot}i6blbfl7vv6qSdY2&2)h
zL7OQljrJ>xiJLQYrSn_9UgdUgHG0+loC5XuZhc<CmB`9mJh97RLE;$EAiTI52S`b@
zhhXyq svQpRen*DPE!;0VS*5)3{D0HWWIWUf`YV}ztz10-OKd|^56rRK#4MN)A~V$
zTEK)z(ngQLh#EoS)9K|<!SX>t`p|+U#lZ6QK#WHGC%HlT<la&zK?12^5M4lpkig>0
zVf%#{K$1;C$ZYJK;^70;2tgtyq|xp`&_Y3kl9DKp!KkLd0ykPYK|lh79caSR`ehE_
z4<WwN)w+QXwm`3+{Zvnh_%K#l4pwS)tMnltVK*wl 9~e+oefYhkZ`%_-R%(?kQZB!
z>VsPaS3wXzUZL5(UHvQLz#TY{cFJry;gwcIXplf?xVa$MhkP)ceE3i!C=Da{*gdG7
zJ*0kQ(90n3h(2&oGf_~xza~^6aBJ{ IT-pms2nFS?|ruHFj*%AhXH&~m?S1}Mq`4V
zL6kp4V! $I$X;UT^CG{HS%YKNNFBl%QG&&Y=B2;}Bv}%`%y?BI)kpwRs0*QA!Pz1+
zq?+-}M*=J%Q^Wxzc}l-Z3gy(WmnCA9IWB f^83$t*g)kaALmHiFm?WN6phXiJn?xW
zbpKT-WSocm#l$QJr8 YFnd9WoyJ><JA4MOBDY+K=N;JUadyUB*K5NLpn9vyl4}5e0
z` qgQw+$H&IxTiHns#t`KlZ eNwiJ3je3jkhBh};a{zbG{?6dd$rnrj*D$(nr1hZl
z9`oMgj`i&o0!%nGU-Tb|CkhG7c(AVswy|JAlv6B|L^=f>a)g*yA?SSUnPN0CT*UB@
z&H?j*_5qi3=vxq(gbH~^!j^ObnLtInn!F7qLi~vIthB5dYy-x6=#}D0qU-qa5r&K4
zJCs*wmsmpanbH+if3n#GhYUhVl1suv_=AR=oSgoY4xJL6v|W`}%$jrkq=~8tVTFpC
zUnM+yWTy1CIKK$LWVfQ9Y|(s^b!?MVW_(N3ibSW7kH{y{3^FImE6Qo4<L^4m+uwwk
z0rHfK&1VWv&;R9+{hRC?>N^EOTSRw2oJ7K;QLKB2Is!HVQaZG_qPUk#u|cju{~_|I
z8ckV7cS1grR-FtWb 6A34cyd<Ne>He#9adZki;}p+USC*JAHgg<s !O`J}5UxvAZ)
z+%49v`w9D88e2|6cSM##y;ScccuGG*v0<V?p~1O<*PPdU)Ex5|?HKR);7I1E<LGA0
zFVS+mbG&TqHuW|opgK@>P7_9LOoJ=mNqIkoM0H*xp-8LHQ{+AfrLwpVtvI>PP0Cu#
zT3B0rU6fnCUE} F11&l>x 3x33QY=V3b%S_Ww%YDP0EG#GA5mMDk^P?`XG+UbQN`l
zSEYF+dqqqoeZ^&YSUF~;M}^= zSTeW1NKTbDE1R}b@p#Ics5=(LaT)4HJu2Z&!*63
zjAlU7V3UW{tIh1i*tzHV(Yf0h-$Kbb&spgu$K}on=~?}=%G1l`_LAf?{S)f*<+CGJ
zK2$1{G}I@;h{m3#R^48ml>xJ{6uTSC6w4J;HcKM&13L}d1-rL>wKbk~*QV#%TUA7e
zbft9ExTq?%s^g-_qW_}c^wTt##j{1L=7L5?-Bv?`<1wx)_# XN_{l3B7KT3tFC7$p
zkCu)$933zHX*F9-VGT|-#hRQuNN2R)I*#MDUH9-u)3YS5EN;OxY?h!Mg1xHUroE-+
zd3B`ja)Zr=!ZyQ5?YP52t~sH7z?}br HFvA!TNqhQ7GwZ{qlW#Qm$&lB6Hd548;uC
zsl%x_CT^NM!>Jy#CekX(sxl{aD{?DOE9K3_4eSm6%_9K !8^ez-+it?ZYMuwS8_L(
zfxW wj>b+_SD0_PfUWO^Z|=v%C!Fu+x00Y^FTa1BhHcGB-OV#}03(q9Cl1^VYysRK
zmJ9+4Vg*_No&|vh2FGAftI=5gGxN27rvJDfNz_f0MHEW(yg<3Yz97oD);PsDX 6ut
zYoJb?N{meWNgRb#lvI}#bETtZyVIRwf~1n`;)W*&z<pU;t*MpQ iPVW5t@!bS#&>d
zJbyi(XZmHDX^LUeZGvlZ%FU4Nmz}03>45IRFvC#Ga^uyd?`!^L_eXyqH ICaZ0KT0
zQ<^~<AnlmQpM;x)srscFTTE9LTH<~$)n&Cq-Ge3=BG{yCZaOnk&-S<JplRGK>#6(v
z5sXmS7Amoxp-6EItrS+01;E-nnLW`kTRHm?kDuwsBFPe#$C_A`*U9?omFu&! 2e+3
z8Sqc2#z?n+iK0wiJ}Y6mJ`1|l%8q)2rE%Hxa^61Ko_ezuGZRe%qi2(#rMp+E-O6_U
z$%9}QfEI-bA4%!Hc4PHL anhlTEwe)Q #D(9IWfoyj0xO #KnKc6EVND!BCZuZz}y
z)vDe6JqS(&viIP|A#7WcmYnvHrtJ0Y`n<wKJw>g1v(xxC#pdy1#4p(|<CDVH*Y?AP
z-ImryaFu*zyTYUP)<(% ZT(+cUT45p;9<~=#PP_&h$3_n;*RZu)rIwnL#==qS2EyC
zTh?mw&iG}&MI&ToVTDohO_CxG3LoF5(Z<$R(}wX h?j-;Bvu^1^S$UY&Mzl4M_!*r
zzhrdZ^W+{=P#oy?8ax}(pLCU!BWU}*H8*|6a4zia;&bAI>O=WS -d>|m4|cHdVTvd
ze3nL9wydz4mmr`jAcReYqa~2#;l8i8(XM%lI-`i>faU8+{55c0&{r YC4k9j=+f(E
zyk`A&W!^biR=1|d4M_28e$6~?&ix&gaC3>V+9^pd>Eocaeb#C1*BD^8yw=w?`1Y<_
z+sd&0(&2YKbHQusA$qfu6`q;iHQLSTBl!H21+9&gO5orZ9H91~b>RGrT0%M9d-1)&
zZq4mwF#)hSI?pUaD&t;c448boew3SM-Dtcxt(@Jon6^-yZJ*utt$!Jwnrupwt&0pu
z`|93rzPZc;I(?a%3HbV-#OzH!<e57j?-F=f{x~=h8|{z#?0l9CCn7x%#`>ED;QgSz
zoWHBQSRR~aGI|?+^nUpIHBIRnU}y`OfhItTVIcqiU4G)|<Ei#QK|r8DoUFizxCr}R
zd4%lo1Ks&R_+_xtNFhM>9L=0LN{`_ZQBXo?wKA}st38GF^lTWuAjMLVgUaa^cK&PK
zpiE>X#Xx}nv-7*llKw+rousr~|MOD+YZBwO0{;WLI|*C<e?1?Fl+0hY|2iBHX)$3n
z&yA~YK(^W_%Io(vD=Y6M6nxa=!OedQ<4-V= E=GpSPUX$nEwHyI(g~-(fzCboSB(A
zU%VykJhHi&?&f LpFQ<@JdCrjR9LO3t*vOOw0Q#$*hBgX61;={!Bvu>E+KNzJfQai
zQyAKHm2Db$o8|QI$%0z!T}yi12DIG(55yKW1o?r`KYfJ%6WJTxR1 ptg2LzCm6M>s
z_T31}PHd***~P#0-6#H;v?IMf0qD_synh~=5byo(`NKf3iza&BxUO3$=bmvu&g{=>
z&HrNng#PVCT+qdOmX_gs3t{V$pRjy73cpDhr--9*dKWvN)||d3&YmW~wL?_sCiQ7v
z6F2*Y<r8p{JEA!`M22AN#<_U8LXG+OS-QGv5zJGlu 3)Jr~CYWnF8 PfSEyxZ%ypR
zja(NK-A?z7ly#_O{c~Yee+_wsY)N)l25oPz^9<P)=yd`vz49ohQFs*Q@<u~e8v(it
zw}UThr86RiBV^0X$BDO(w~ A~F8Vjr+%L=PajVxOuZoU#{^wHId_LdxV68~QiZ=TW
z4+~I 6PMqojF_c8<&d16e2&>){|PDae=^+%^kV|nVN3Czd6KM(TGf>&yo|)JuHOv~
z=iCWAT~%hDZfiVq>ClqptBj+rR(6NWI?Pr0x~&wGm1!njkK5a2;F15e*o0c=EY;Q%
z<Z3*##7`0iO0+oHh~Z?VjN?W8<5xYNruHuwpI-2#d*4)x$x5x(_LHFyS5sI5n1-!9
zD%rQvp|)1j_BQV^$6YC2+P%GO?Ub)b>?{#j6CUw6?H*-rFMS5km;7J4dBi`OjIrKX
zYZ9EICwc}x@(Kd2y(^Dcja?_ZF99k108{PT^0wf|8B_bsp|E1HbIvS7`S#=%L3=L)
zNg4Rf VHAlW(iVD;GLzBpE078&X9;LM-sU+fnml)#+IHU(=0aiVl_ZI{5Jb4$tCwz
zm1D!l^8}n<ym}HBveY(pPi}TWZm0I<d5iB>e!_WHaH{5dV!wpp$o|&g<E~_3_o!x%
z0KJ~^L3DttyId!iJ?vI)auEpd`2JsI1H*xt1wTz8dt-H$%oc;!VRafM{z$eWioM}*
zq1cb!$>ZA_RY#lG^P~#|$pNT0*q9ezwGkdum&K+Xl9O*s -LJu|K`9YF)WXh-A{aD
zVXX;w)WCM>9RQ{qLb356aZNqQ$cF(#8_0aUE_EjlAWfc&=&IQ6rTQ*SGR+G_!~qAn
zM+tA jIpkqXwae~zUfzI@<n$M&eT8X^%s-F%U`nnHCdMlQ<R0Qmel7yJN%x&?R?pw
zPCZ^bT$MwM1Z)FC!`w&vuT)b<+fs}-6XBwCItr>y-d%!OTcTj(g8+`L|M%0t-R&VR
zmUDp- 9?WMrA=-8%%*gWuXRzbEL)Xsl3_i;u3BXFp&P>k<)wll%a1<_1oZ^c{odCU
z b;AWqA|vhP~0Lp_V}w?HfNGgqtyDu&lZvI&JeVZY_ohTFW~qxu~bd-n?ZS! O9)P
zJjkv?7Tq9Nl+hS7JVc)rt=`ZC70SQTuE!J+o|AN<vgjBClpNwc$<D<$L}9q!SCUT<
z72&!WhS^O_N;fgkenRCiFf~{INF$c5YPUA7<j!upyj!$%POYU1?xtzOw`Z l6*%9p
zw144*<?IGrO4PPR*x0#Bwr}(}8&z2BRMY<$dYt}mB?5|nIfU}Oh`E4Uy58BIIWPEz
zzs$V5{FAwR>aD*%zCV&JaUCu%{`$yRK|iD{$xW`OXIYQklpH 7hJGf02!9NoL<{Tn
z6Sc#RH{=ZqOEGRAkNKQ;+Az<sBJhuqU^gEQG+7-x-C1pHdgQ&}#pRL3D$tX|%RICF
zPw-7RvBa eXaMYE7GYdT>DNCugk!%pKpwRvm6>QNhZX*AUi>y3r-wMJ_f}Akf4h6#
zcYeXwYsdcKYHcUZ*}09W)4Sv9QRA!|--VfCozmyaD*H9%Hb^^+=VWZgAbFz8FufvQ
zouOve>M?fiGMswcb=$)0Ei#ba)c!z^xV!E^I_>qdy8ZEKyjW_#>3;KdJ^Ok#Um`mi
z3$(2T{#O74;DHaug^g)LX9yk}y)sf6P_i$C&%ig7 O^Yz{=plv-rSUhX1l?=31{n>
ztQg0UBgKufvX*m8+%r$QIJDR$T5Mv82CssxqRR^VinHoNPl8-bItsvB4Cc#M!a5HQ
zly_=NhD!#4 =kLPd5IEtp&q?MR?eZbB76hz3J+%1p{EW1nVy)@u)EWy%gAB_*{|!<
zGqo+WgG(Jl1>E41K|yD<fUln$uG|9R4W U-hNoX`>4OXEP;FWad|RQYn!X{$gyDPQ
zn1T&JC^6yDs^^Gs>e96RlH;Snz{ !?#HYw75hlL*inWQ;8*7l_X7I|OPFd+V XF$O
z8;LpYb>(g^x+1YSQTJ-?=BQ{`Z?#<Y=OvP~s<kT7j}Xm1rKYWU4fw4~W;pW8kl6x1
zSkAv9Bswq&9`Sh-A9 _1s!)pN?q$|vrDIKS@|n>hmqjz8qg$R N$Gc_l0o%tUVkLk
z8CO*0XRt8tW>Yx=?BEaBV^pq_d_1t9{8Lf;QpADO)!|9*MGyJv?9i&``ZrZRNryx&
zTkS?6gZVDSZ?B#40Z5+%MXsA{r- x{t`F7824%>(3oQT^tbaxVH8(#GL<HBjR`hW?
zS(Usn6#gm-zJl%SU)Sqp!2P2oZeJP5m44rqpq#k?-%NFQn{qyUt{sMWz5ckHr1=+$
zUZ=?xI&Y(p$I 3>uSTV+Z~A6sr-mMaZgOcC2-6nl6mV>SiLv_THBo)pD=65zu4G69
zV87Ux_-9A;bJ*2^eCd9<6~0j04n=Qwk~rPCHeL159`F#Cb28c ^RT?iE?^7qj>Zgy
z?r Dqzgs!tP_{&x%KH1r_FHX(tx%Pbg3)I#u2q}B8=9=xrRJ^ctLV$WFwM{uXgPuo
zm9?QIaj7W8ul&9YHitBZyeU^~+FsQ9LtZzSGf!iUpHqmE=nlP=A3Evvs(V}rBcpG&
zOBs33FoFHDj4M2k^jaj_`-uW4c`}`|k!!(y;3}|4YlNaZjc|2(Z`rIv?87o#=UXZ=
z0!nbCv7R_gqGz&g*yG!qDLhkTB9c!id!%R+i(9BNP 9bBy?X_&;<34k%m2wAt(&W&
zk*DQ8#!Kp6*nQp-#P6^iJGJHQp;NEDF55)?*8e<_QHJS(@x7S)4XlCs?B9eoCp`J9
z;w7_0hjW91V 9yyeRPHs6${{-|9+Y&y?=oT8}8vy1f7;=wH|kPPf_u3P78^t8WBC5
zur)Vhj>IKB;a4of_~><*A$+54V`IhV#E1TruynOVX!H5beg1I`M~pbf`$U_XKk<C@
zW3p$tZq)<hIe7GdWiREtCN7kAvvWgjbGxv4y$mu^W0$Eo5fW9-<LOJYDaS! E2}>P
ziDs23SJ>NGI?VS0r&8huc69ml7e#M!tcn`hsZ6Is*&u0v$dOQjC?tXomDvv;Jsn_*
zW(KL2{m6!H ^{a<n0<9?+vc+ezB&rJz0ZL&_~`Mv`cbp(s0Zk5lY+<*Ki<xcIC3me
zbW+!GQR_hMuD`TwRvu{9wfKD4>*=N0);A}{jq%s;meI9pvRGhFQKVtl%QQmK1iUy0
zsTPu1e8Hk_DnT?Vgp`lE5KVAd{Yu`%KKh!PU(ooIHZxmX=R=-59xB0Ggme6)J%d?+
z-&bB$m>t!(mcMf;_&DJ<#UrLGUMKSYPy?u&2|j{qF`Z|(Cg`2<XSc&I2i;idLylFM
z-f9uz?GW>(kZeaYRu_4O-qm|Lk$YyO3z-T_&we*;@qIaw(*&H;q|Gf_(ea#t{;G$&
z6uQ<8E-wVQAwnIx9tO(nXX+ Zw=6>8TE72LpV9VK7&Otx>Y;UrDN<}UxEEC|eD)bm
z+RZ2;<i%K}Z?Wr-ptu}NBR|E9x2}?1XudcIDWCW98{j{sKlCZ-Q!&W;3i#XqQ+#(2
z#8q<bg5;Znp+kN(YOo#ME+JfWc1Bf{nlOHr{Q1{qG-cr=DO*{3ZEXT%KZ2Kk7_T9T
z^NJeOcc{KZgJ)Ur*E7)GiGytd_qc{%o>AUZ&NQor>JBhx`L1heqiqG~mxlCqooCa>
ztpFh8=^Ba08}4lOW4jI<0RlwNC^XxZ8tM%56&dng(N{H<Q!LcEDuhYMsVYU*g#8Q>
zvn2S;nV_Zj1VEEbB6Vh=9?G|_)JnLi{9-a5;AO^ 068y(Ao{}yTgx~Pm7GK#Af)$A
z?Bd`mNm(x7OoccFAOj7>xN~Q!X5_RPIXBl1?zH#o#%rp^lY`IGKvyqpVF^G{$Rxpa
ziMuqf+I=%l1TWf8p!z$NqrLozdIpUd&0lgRpA|W6MGD`46k5Alad-$u1VS!bx7z`|
z>uPwuJ~r3e&#7HVQN7O69jq-ecxFA995!lYQ~Y3<5dPQh`oj?(sZ|WB%W%v3DMXnM
zOO&{K(&Diom~C>13{_n;d0Wzf^)u-=Z<&8uuv=CgZNSj8!Sh~%x(>l)BX;6>sZLc?
z(Vb|IGo<rCB=jfN6dqONRc`?vEl#4tR+i^Dy4<BT9|?aL8N1JIY(WX(Bsdo?L~WoY
z7XyD2`Ap^~KkIq;m`THbV)w!clc!~fB4=PgYqZ$!mrMjxj4lpwkPQ!!EY%de(tM;y
z^3wtf<c|5QT;kmel-!wc63k+c H7)He*Yvxs8EF>l&wW)7!k0b4#6s?jUPSe9w~3&
zeKdI86oA_6HC)>nd{lKY6HK;n*6bF``RC!rrD{=xhvhSlryB!j|7_s0Svj}r^UB-@
zmX= aYf*)|dTBgEp;o?u&qLtD6D={Yo#G&G?{B-ISrQ9_mJl7##Dh!32mmhTcKCe=
zYJrB$r$}FZY~`DU;+^h45$D7X{oixU #HO!2_C)>_T3snpC1FGnf6sVbt<izFA 8@
zVsR4>CypY$IBZt_?fRYbhJ`~yOVK7$4W#mh1x!kTK|!Eg&U+vL5XwNRLT l7DLP>g
zC~YQCospB!j54c0cn-P1j7pm-z32hr4T^xUf#}n)csGXJoc>_gnbuKUM_<Ld $;!3
zn$P9YW3UFZ7EABqw2W?(j P3AQxdg8?-0!8>G)lCLy;Y4Nbh2kEGwV3a<<HkSSvm_
zaviYvXbHG*oWg%&zx6rutxmEs%wF5YN6 Zxi<cr?c88-0-=4>I>wx~QW+o 78SWp;
zX45ghU(KXI<6L}N2%7Y=Pk)|N2E^lVZJ)JH+m|F^M-w%52IQO5Nm` e3Inx95e!g8
z(f7dLVM#Q|U>#NYQRKPh;<ilszdJrl|A_Z5tuz}ygWYwle`?jy6dM 2)yZzT7w*3L
zw5r`e`sEf8J5Uu>FJwQTS4mbb6|bN@;T^oHHXxxr(sfL|<Iqged9hd%B`Z*^U24Np
zEmqx)YBH!*YIQ`XJ+i`m1X~(7R4D|0Nl<XlsL*-2i_m%z<`Q _$RB%tQ8<cSZoO-f
zl!dc^Le^t%dKG$s!BPSK63KwJ-VcK$WEE)D-vvLjm2`Q-Rwi{6 StFP5_^^PwD&bo
z`rn?cUm)57_9sVQlT1!a Cf`#$#1fLQu0!NRV9CD@2&6F(E|0$iT*v6{5nQHmW)RV
zlHExwM7h j4MLZ9{DbnoXM_a@9!duWfc)43KQOjCbkp}feD8IbCVcx;qGbkW^bE$2
z_P2pjP6wgA(F%mIF;Z5QCK03n{Aj|$&i_(#&weA0eibtv`IWvPPnp|x2zme;#{Fv`
zEb0IcrqhaOCJ5%Vg$sV_B$*2`8-;Qhdk+Rv3)HL(yge{U581!8-zMdv4>Au+09n{m
z*^mrMC(AwfH&l|Va%f_*mfFBlpI)C bGOIlKn+Ig*sY88d4)Rb>dV{eaZ}I!gm~0!
zWb--$l*8;tiyp$&8J7&;<Zn4dU=S?`LE8ZwjktDl>+JeaAersLL 5HiAsrtF&@*nJ
z*CY7Rap&W%ZQr3qC&D>(zBf h88}C7Vxi|a`4tCV$V299IrFjcIo%!i6Z>~rN9{(b
zE0*4HN8uguNWk$XzuUF_>f-z%rhd?Bn#3MuRclsGZ&@#NF<ok2t2k2;* 61X1i>nB
z`i#b1)8H?4z1qfWf`-7BFVO95u|C~pDcS~OH|*JK_q4rY`P65%k$}|AF<1tz?&@`%
z!A9$1!ieDAVI0rFH#Y7SqZb+dZ<KHCEi2=Gk^XwGY?WL^`Flc^>dHZQ6_(~G089FI
zBY^H2eXu!hC!(SxUrI;$n9e<2uQE+zq7#x<t2)xka1JxvlDa(}Mq?jDDb5N?2nEnS
zjmsQ+xl{y$Pi^uu TBz1w2r&cx}2$fHi|n1`K(;EY-`yrF7oXC8$4%v x$||{Sh1K
zd?+-o*D&tqa_twx>+fRWScBkuP`!o<+zXz-Giq;<^Z{v7EpCMxV $j#OuuEmKKS%J
z1qnUy8<0+5TFg6m0AV4M0m#t-dVYd*&g2^f?Vb_iH>mt}Aq+^!`=_MIAD+MvF0#9B
zp2VL2rk#Vh-ui95Ej&wqFZMhwqOM?{F-U?cC-iaWKlkFqN C#g@xr&@6>o`!21<cM
zsgsB<A$m62q!-rx8?du^^773dI i^w$F6>50)n%?q!Q?wF)WO#t4p>G-reZ@;z$as
zzkZxv2XpR*xuI%n+V0m+&R1*!9ZNTwrVp{_=TNNnUyl5^8=PNCU-Q~K*0-nrXBfFv
z&VCTD5%6C+_(X7KoXTN%$Vr6oH|cyL%RKDb(|1<pVz`sbdlw0-n%iu<FAN)zB^L$r
zA1AjhDnHY#Hp}XMqj16L<Eu ?(fdcg u`osF0N=qhtm{g!>Zx)jP=_ZXMP4Sp*sMA
z0zk38VVMgvyS(rULd#7N`NsPc{A~B nlsYe!%=3A2huY2NSl7GM0HU0pu`~?-Ddfl
zewayPTbJ6<w(`M~E_0{@&v$_?*Et2A-KAUmMS;Wz4&5_fa&7BdqtEQvp^4TJcpn9o
zXVA)WdjWUr;S3(cvYmx9M__6<Y-(GL^{dz0*r)LFm<M0a{l$;4D_qu&K;*Uh4 CrG
z6_ S_4Wl+=;dh7ee<OotX$Ts5f)<_>8^kFn_%Ot;+<Q<*Js6 YtH`kS?(>xJqw+E*
z`31O&(%RD|X)_H!6!#H+k7!NS8%RO^WY6SyA6G* DewJEb{j=s2T4x*_1onHpuo^?
zCV8Pz1Yc;?crYUzl8y)m5GgVelI&2mf|)F&LRj;_>in3Qa^QLT=?SodJYa9NfJADS
zb6V0tD15&VDR83<1>~>y8VE7ZPtvs#IKGmZc+eQ-hq<po`~X^_sW0Y-m?!X`%k}&p
zpXD3!ZV6*a5}zEg(by{hScKRM4=8p?P|*BkqVuMwWAQVMbK!H4MQ5fP0<~d oLohe
ze%>j|X?D(cr$MV+#0lid;h=>vNl2UNrkLS8;evtj2qdjn4hMg)0X49&m3v3tZ`bMU
zh4uI8hvArBj~bN6A~3_Zqw7q+8mQ&D MfKL8WF-!V&7={ `7+-ERi3PWAZODIM`8o
z5K0#sHSAB?v{=A>#u=!)qL1UJVhBeM&Fjf?*7-8O{*887`<D^yPxr?y=WMw+t8!K$
zR *%};)6*c8cq!Lm~TViny7;WN}3z-yXz*C>Q7Z}>r2nsaf^W6Y1j*MXAW^nXiAMr
zdGh1v0eO p`j<j#qr<b+dGn$Q$92Sgk_-nrvqZ(?o0FDb(H}19z>Pu+>l|1nk5(~D
zYYBq1+im B2hl5BT}_}%ywX$1Wuvv(%!jDla{P<u5qDl^LAIoL9On+>6O)pDQ}fGk
zzJty|Vj5Flqut4m3o^s|0i1!0tsJPIvs6m*0fgU^LOJedZuU#Ii|d4z%CfuiB1^Q~
z*66lMa X5}Vl@cEUAB8ZhjWsW-ZbJOsy$!OO_^S(jk~&(ZD|LMn#xqf8)&S}#q(!i
zxPbM#Joh01g}wWXS=k}9Ul_~Z*3M78);up_zF`VyXz9V-Dq0}309hzyz!bb_ZfrHX
zJ1AK&nVjqss77P(yNy>U&k#6V L`fJT8)*s>t}mkjW(x6gbeL7v!qz;SioJbp~B(r
zV^Cba{W69Xcz&{mi);O vHQ5SEJbhVzJC#8Tpny3G#~Eg7hU<G3^gTkpx{q_tWz+l
zkyWULmD7sbP&?zX;_Z7=(=Y9pi}x%FrkaE5zpfHOYabpFw}gS7Bo0xuK&gV?Fnh3y
zo?sHFMG^B5p2M^T{TZy1u~(a~d6WF_QWK46_$^;;ejBxU#=!eQuQ>cLwlcrUZ<O$s
zru_5Wit>VjAf0lI%8-1H3V9pUe?bU#fvg3Rxz|2-oA1b?cm2>zNm3*z`1p{8)#XTS
z4N=m8WErZ!_;`4RHV}nuE dk!w14O!1G>k`jp?-hD)W`Ku1JO!Q)ZK2tUm(Jr(@fP
z6uzr}za;{h$IH{YcEj05aJzF|mi%tFuCH r9p>tWEw8=#U{vA5hdJ1Nyct{Uh<Q}f
zHcq}jtiCP%jK 3vQ*4!_pe@hKD7kADqm 4|-8X%Up<jSa%hG)drb&)ee}88wycq3#
zu=hG{<wYgvV_;b!UV$T$YDU-5W&;FdI?L@)P>}LNycMNR6vmFIN=u2I9KMdv>;0Q*
z(rn7^_V?qUp)c!Er$ DYkI6|PHL!=^`{l}uhX;yiPU_VqS}~1 7~32b&7VYu5B*U{
zAw^LgFKJhzOBY*p;^BE;z3gT8mlJ-&>CsP;Ws8-i2xk|Z_qHH?I)wIIkSngwFn($!
z?uZE>P?}54Fl7Mo0V_=%KS3x{tBBpruU~x9>@x8Wd|$h?t}=Og{_5c%CAw|!^UOZ9
zJy_seildCyg^<l ^56r>*<wtQwIDK8t}ayZceLV3(Ru StaDW`mH3pO3x?Dr_fu2o
zHXvx<d5_E^M#uX+uJ%YBl%}r u8S<#vF|BGLqhKe7m4$d)IP|0tTCb_q>TuPLV}{Y
znK3DffX%;$zCOGhcsH3QnS_|hBgP+Yc%3fUM8Ke^nvl7Hp`0L|Z;#0^1*$B5goX+H
zj{VdmmWe<?TkSv<Mw{18J&YBCxE{jH-~03Am8^(S_*=-i))cfa61_1?iaMcz=UIQp
z#|#t(PP{-kh(}0ajFVVD%>}Zww?-(=O;l?xN6RE)l4tIWWOQ=8>!%3<5O6xbu)XgS
z)n!KN6C#8Lw|ph${hfL<5Q%R4<64L{Ohv)tXERzx_*AVaC`nHPFKl?inEaaF(r4dN
zm3OJXi?(wgba&9W=z(&XChzfLlSAznv~wc-aT;@VZUCOLEj1iU 57E>-cVW1 Yw6a
zbuy4%#6)i8U9g 7^z&kTG-UU cDS>;Fc{k&njn(w`SG&#Tw1k>0NGa-8dP$}YrZUd
zTsAS~5wyQ7Q_RWikpgx}&@c?4rUm FC?2UYaZr6?jwMEf*UdVz{VqRD-JOYpQz2KE
zCW>KOcpHup5;ymRD>L(C(EYiO{zwBQ4aG76$za}Vp2gbm0kRAMZ9g&!FkN}4zKky{
z(lvcn`UpP;D&wLKPjvk=K)BAOe^taez#-i S&9oPC&u~u`XTy!5SL=nKt(X>4X9+5
z-u%m`6zEt!c8KvIZ}_>`dsK~Rr-m00y6NE-v>?o5oO0eeKgHW}YPBienA`5c;pB57
zZG2JVt+7YCk-$MA=stk3<Z?acz8^x(b4$8{NK{v2|G?VCrmc#OMvB}`oU46my>W1O
z+&Z~G?5&eNe_LJ1E)~2^trfc(r*bs+&Dz<I#0X^Q2zRWIk36HeI2e$W)R2rzp4n&&
z3(GC*!Z~^H_G#vCX^h#X(DQaG*n9?j)DOj<jg9TU)STdwjIC8Ds!2)}2zsd7HcQA4
zEmM`%{vNhhk2pxZxmu*r$+Yx~GuGL^sea5YtEatI#bGnw?KYmJz`%ov>kY^ze+11P
zT?x+~(0}2j;d1+g<2b8YUVX{RR?-} +SEhT4$XQk;qNca5Tidmtu8KPX15niuhwbn
z7*UCXshWcuV<m{AhhDEGY~`0?IF(C^mHf PO9mC?<H5i$D|KP*kKZm(o8lTuMHh!_
z`JOtx0m&?rO{|4mp5ZwJZl7Ojog&m(JB{3vZ;mO*awvG+vx}HgsN_J<K1|nxdf1CK
zrH;3 N~k6XHdFHLB>Xp%*R!7&`F0749U}h90?j8XTV5w`i}Srd``!knFO*tKD(D$r
z_&HddKTs{bjmz)V|6ApX%ehvNWF(6D7q0Kd?uFsjZ9=o;ZqQ#i#AftyVBhQh!RY<&
zC$)#V;_?O?2qWL!ngGjopJQ#^Oob8pmOz&C0+(erJLb>N5mJn0J8&V}z+q4yy!x|Y
z`kK2rU`DvR^Xp9~RKU~6R^Xs|jkLwychots2Am7wpPzn5(9V5g63FHr2wd}e2n$--
zTji+^driWMmD<g^1H1*JmP%#p_;Rw*hEb- b=XI9rvLNovCsbYaf;?fpkeIQjISv%
z{eZzF^LUx r~P*0^UjvpHQ1s`yUQSw#0K7|+UPl;QOrU)BvKb+AMBrL CM93QyxZ;
zmVmxLBKEMPa!+V}E8B}E%^9UZNxdy}O&HBL)k*6g3xLGt%+E#>iIDMS&acO(E{RO$
z pLe;$AmcSM*zZGlT1Bu*zs$1{% =sgaN7uOun%&_|_VHATKTu_v14v&+TKQE WPk
zAVKmbO<8gokNwmbTrQot>M)%Zk<*enEkqbRsg8nEejWd=3RH{XvAVkk(7Z{AN^&Yz
zQ-w---B4Vu?uPf;Hp>se5o;9XpWGf$>he>XWV>iva>X2rI~s$U_Hv)8+2!3FqS){{
zO4w^Rc>p!+5gTXQ ^+nrG%T3h(D7Y%4b&t-)t539DmKI8^o?BRPIcx(&S1tkg?>qx
zV0bVpprT)<`)JPt09oA0oNrk5dSz-wPOQ?_4%R=cRR4JB8QgH4ew-|8I);W|&X=Vr
z(jU^XtY^e?Dh8#z(~biyIyw5-*UiIRBbL+~-i(&ib(cgrDk*8Q-m*KZ(OdOLjaEZ5
zkxrftGafm_yETQ*KB!tP)yHu<`TW022Jt4D1wX%DHDUh!a`(!_7`|)e-KD>OB_V$B
z%eK4^ecQNPY<Pn9<$LvnI+9*;)V9g2?66DqLVcm^akoIh-EEEfC7V<V%FK(}<G#Wi
z=MwFt!Ax*3!?v;!fo{hxzhbbE2w9EZUr6OQ#BVSU7GMyCAABI5?>$R{{1_ts1cq3j
zdD-V8^Y9!X+6+Xw2<Pdip5#q^NN5<|9+T&*tE$7S`B&L3MDS}Ko+^UTJu_0dkd?wB
zDaW_iD*(KUv`de79!t?TP^4`iEM1IHiYGWjBwX #i3ZIZT`_?WTES*9_@PkCjL-+$
z$8>a%kAUzY<WtfOyJvTPYJJn|fVI;~Ru!jHp^&@hjRh7Qm4Y;szS=A$%;~`Q+AXpw
zDK%D*nJ1*K=j>U%_V)`*m4Mo>SwdxBt8~-&!y3}Ab8pfWr3uP8eLM` u@S!GJ<vEI
zGfLj|E7gep==FQ_9xf+O{sB~^t?z>fV$_U3L{(Vy606*oV~28XBkbYri>E)S(Ce6b
zH&>fKI$2&}qw%7(i<8`z`u+h7!0}n2Tx|gQ7 PUe6t!UUj5{CKWQZdJq`w!vwU7(&
zD2 N3Jf$))Gqn{PR3v<G1A9O1rbhyTd5C8=!Z)319X<gaHS?KG`D{!tL`={nfpitp
zci7!U)2|St3bBnd>$qk0S+^CcYFFWj(8t#7e3`r~_iO&RtTLjv1KWfxnfZZZqG?#I
zPc2NzB_Z#N=)!{UA4QSe7iHv=%(6x^=(q(3xX2Uw`2!WWkVPht6HGv0e<{`Nul}b_
zksbXXm5y{pYl`XL2B?^F>Cv+ZT+W#|rlYajlmpD${$u{**S12W y!9-j(&zn6U ~T
z7MPpYOSUZ<fRPEV^JK3toro!tq`T9~^H_H+T|imNE5$9zPM)B<!+7({btI`$nR3!v
zYE+&(#<#fO{rhw3K %74Od53%u0vY{{Row5A#>qRO(1TD<p<|f7C`<l0yn4i?3ruj
zY9|3ObaT&<bIAgrv<@<ktBmIqsbj)J1dCAyLJ27qx5ErduMQ_qHHLB^u1HYGSJr{=
zq){TjxZ14vfm{CXYd_%x*;{YYgOPcJu1n;&^D=fOb#2UsnJ|eV{Sngu_d~$9?NGde
zyJQ3Xr~l?cpK&p?nsMs;i0Q_bamphmmPYvbG;)4UEC0e&1%J(mK-`O2NcSQQ^KHks
zMvT(;pmvS(Jp()a?F8`Bddh_RH ca+2KgnigIrhg*wVllU$y+-{=VPz!SV7GH&==1
zL)wVxF>V9XL8Dofx#!ab1mP*-BBZ6 x6d(+djesAFP8%x)ANEi80(NLdUV-ZxPGz;
z^NyYcHTMwHyoA_8HcJ=EcYI-~XLau16$Ky0oxr(fm% nv#R4Ey5CpQ->>zqeRZ>4J
z1W87%PUUo^U|6+tVWrhb4@;J{5VXyS;~znQ=LkflQiQQG#iP%n)ncWs{|8#T0fC%%
zKT(fG^qC^wI2l=n6KUpD#zeTlQUQZfj_(mDw<1HlV8?W);Y<JU=y4|D0`8^db7sxt
zyqdo9Y7-YACa%k86Oz*;BE~jSgecmZMjKzL%A|5_bfdZgKAPd0(}UHUkd}k}x$ f7
z=9$puQW6j~wPVExpOO L^0A?PP3cV3{I@;&JcN4l`?&2cVQiDp?B8z_v0j}K9F9i*
z3Y;vgiB;{tOPn_4IJ*7Tzc@;97HKG>>W1x X>GYnlGU{@@#LjseUr5)U2jmO%NX;T
z&*_i#Oe?#*-Ml`Y#1P-eRurMUPeQmEPiH494GrB`&tEuAbIAbG26=iw*O<qx(@;hE
zdetk`m}9SNUHj~nSLc6gBw)dx&)hW1CDe=XoCXhnFqzrY%S$UWc5-QwU- Y7b8t#~
zR2!=d$%4fSAJZ n#Rcc9-Xhkfon;SOVsd=?eAA1D%~Vo8QaIF&mZjPC0V*`?cXi!(
z(MqHXR*_`65QSWS;4$>h{`UQWWHRpm(-)jtfBx)IK;x44DRlT0Bw;s_EntKi46Ek6
zEQ0=XTh-X!)t>SWhB_=YFS(_j(<V;8QE{m ZWRX)1vRP$HXpqImBNuDyP2{=bUnGi
ze+`enicg*L7-eJf7pq)f9e0_Io$=Upcfo(zH!b_}<+!lNxEnXLPJiSJPY r}*0uE`
zmwj=Bd;2QKP7+BC)pCg2xxlsKGyh>adPqW~*0P12!*yd-9;Xw!Q+Eru=ZP3MQ0`50
z0}lA7Kx4PO;D8R9<RgnENQ-_aQvjN{IZFhrYFsSVkf1e^olGe^NUtcDXG~i)xT3m(
zW2V6{MaytclJ43slXHsYcii9lG6_MOP(F7?PpbvuuicklX{BiQ7Yh4f?7MFDJ3h8u
z0T|ulP{{_Wg;H~5-&#sm1(A>wV hcVsZwz-shJ$cX1`;a&Lt3+XR+k MKxsrMB2?p
z sj=ucXM6jXXw}2_|Z1)s95$l<{43{d6!;G&8^4froJ+hOU#wok%$$~{hKXY2l)Q<
z9pQ(?vXI?r37YHN)E2IJ()sI6Rh10*V$965=OC*5$_p4s17e9iK_>?}W43Z2hv}I|
z8F`eIbxv*O<kC%pwFrd_>`Y>qbAN{73K7Dw{)l}vxZ*JaKO=K=W++r9%H*ol+wS{M
zhSTJI=1+&m<GUx n2)!5P!$ZLMs04H1q`RI$&$+{CQfV>Xr#9=_=hm+6|y~9O1Oso
zsSX614zp)iQA!a#uLUXXOt*So|22+Rx<}>e5Omz$X<cetZE!j3>!EUjX8eBpmtKN5
zw#B^8Z|)P>Y>w?p;i~ VYJGox>Nhm$W30q?zY<&}NfNEatrQzkDNd1~2w}ahUa2y&
zk!}=66{npm_(?VzCySMC^lp>-rb74ocTDWz&^Xp3tFjawTFV>s4msbbr;Y6ebQ3&P
zcKeCTr^ J;reI0WFEkM}%z?Lf;!vn+6W*|bX2;RI4$Ijk`g=7MB }x}8;8=)QeILx
z)*QkN_3D_!38hN2kR}7`(Q5(2Jb)~q_qP4^{gqvS!)B-H!Ic3j*Avi$wB*7DXSXxg
zasAL_OI~|=Nv0~QLc7-G{jB-ClvbHNi{6l!BjnRSJ>j<6^m?Y*^XhB!d6oWIZ|c *
zQiE&YH|H#;yQ=Y+oyP%i2N7&Q`xr&aVEbZS<*oDXsU^tlZaE+(uVCh2U56zJs3~x1
z<s)Y_*GFDv*<e3;*n5k5WzcMEd3{e4y+k^SDx$<GOJa=;xCl7xnb&U_uEr_%z7X)U
zmZanXz4e^+890~Y<oR95U|h(6)9ycv*rcqlhM8Y`M#ckLVH1u6_I4PHOC~S>A_o_8
z{%z5k*&V)%zo-G^GE%?}kBP2AX`QwIf&V })^u$^lZt3SXzpgILAO1V*1XsY3B~A5
z?4U`SNZh!oJO9<e$7lY8!^sb v?1Nh^=7Wjiqy<`&>olm9T{YuVg0XSJInPXPfk?6
zlhKZrztQaF;CRvG?Kf6GMV8M*v>0fq+9K{_U{=Z!GP E&*E6vnQm24T$VSynyJPrm
z>Ry6pwei+p>$nF#?p}{ZW_ +F9!FiP!(qhVz|GC?&DZj D8gam{OFg7Wau{)UWXl+
zUrRmAb<oU8xIoNfC;LBMu(inxD;c!$yX|V`9_>>%N6;15Dl&g}v!))0APL;2<|`c|
z+UXn&>#a eP{=-ty&R==0|j$+OdlC8BrM|sjN#d0y4rv`Q;Q`UX|9K}_8kT?ylBrS
zei3tVu`IQ&L*QkD>(h9J-&7Oj*Ajo`VUYNiu}W1D2A}^-T08<Q?QdTk#&1p&UwKlt
zXIVIFl%(EU_pQU4USGqyxU!p8>GyM3S>pI7hOM_WO`XdsG{nWC@|+{p51I*J9m1x3
z2EmCft$WQGtAxZ|`;lH<M4AW1F}H2{3P?yk_p8{s&)0W&sE= brY+g?nxK-G46KX9
zkdP;v^2EsJG;DU^DZ>{INK69)#DCb|rXRI0IWZAEcC0sD Es63=04qMnK0^u8JBT0
zR6C?l5wWREiz(a9^P^MHg=yZk1P=8lTB$u$P}??0Rd4;iR|aNKX?u0KaGJtOMN0t}
z>GLyGB->9hEK$*^<3x=URvEzz;KlJPU`PmA_Y0mX|FmD+*LR>KYL<A>?FDP54+y&w
zdllNVRW9UE#Kq~AFZ+$)R6=N8rwCrVBs_t4wfXm{!#3W_buoh _J_icgyz31WRu<_
zrzjW6TxzPR9>>@GLTW7aAKRyX&dYGOCVW2UAMsZII<)lY4~~ ~rRtk${~P5p!LJX{
zdBFKz(lHH~N?nqv KM2W)FL*0LiT$s)McrXORQ&>W>FfMFsmI$a4F1IZEo%;NUi*y
z){oAO9r!?4j8b$_?~LiT i&+azD22}NWDR+h+Ez~WBsZd6T+s2-=n!57j^lJ!FH(<
zkbKQ>HyizmIo1&DKz?u$AG_4_%DKsVbB42wWWAcLEp}b&C><_N>FzwA=%P)EJze;I
zLiotUW;HM0B7GICp^K81?|9J5D|K9sgCHOAkYCGFs$ML13=LRym_Q78?Y#-mRu!b!
zEts pk)fz3D)Re}0%?*{N=R|?UM&SyQ8Y<!t>lRCe^`Hds=<UFb_qq^#A>`ZEjbrE
zOpE;%kLRjj{$t%ik{*R!#**`c2#n&lCkIP_K&x6xCgt<y0Ktfawn!=lz{~-g`cN23
zns~bIWjrq?FB($07w<%!sS>m18(fS%yg{t zZtN{Z(u!G1R-y7i$$4-PV<QLJ>$w;
z?Vno<S-R#f%JFDwg^u^gq2dimmcTrB-fgh|8{``1hQE|O0cLgY(kSmF!6m8dnA&+0
zee$%qLq=Yf_4~p 8Gx?&a6SBV(*R0ijeev)hfDd)&>rZx`*B9?Qkf>?ab0lEimczP
zeNra`ld?Jn{*;d#^hHg pMVDD9KPAM7~=858;d1Nv0-QhApLN5fT2P|K6fZIo97I%
zYrjF&$v56XtflulZeJkPy-=GVi<WsG=Ytsn>4*>B_8Qk3rA`fT^X}xo(3R~8-(fD0
zHq4Yjt4?K9OirYPuc2vRIHQ&HU RNe$m=mvfmHLcx6?@)ijW?B{*hRy8vG4wjbD8!
z=#RNMeLwNsygm9JQZIu$fcnCmBXnKsuA2o<qL$6l;X19S#iu|mF0`W8V iTnQU!ql
zAF%^6EDMq1ED%gboG}_fZKPxFT~ac4WV(KqXMgy6^hD41!&4AI(DSS2f-r1(T^s)%
z55iYL*%+)|Ma`T)T*z5w>gyZrJ&)M+b&8b5{5vX+03<oj Yt!wrLfRh4so7WMUP92
zSQ+N8nu-+YNuw-V|Ev=;#so+5CR*dosd@;P=&l<{3ggOy<K6%dw}>v|p?WeFB}QX(
z1~%&jTJBx)se$TtRHwejt>>k>hO1CPAinO7AL>WWXYyPdufDBY_C^oo7t_-x%B}(A
z9*1VZ!gZ$nCHm9P`o;*3$ X?zW`ZKd{Hhu6fOg9P*cq0VfhOlo745}Ps6m!%Z31l%
zQh<1lTTd{uh#r`LmlvZ2?oR-1+D07itu6Ojz1~e)&quf4 i0@pOtSSmWUbcNJQ`h_
zk IyeTshx`^Pz5G{z*;DPD}Yh3C`=q6CCs~YRA%dIUEk_ap}TfGITE62{{hVN^paO
zhNvodD-UXJ shN^ljHqSH!IGx4)|dYp1NBbQZ#B2mcZ96)<@O%q_<aAu60gdVDh81
zW|E8HeXCuogtjBTeqGFRY*dKwbNHZw{;J)}%R{h3t;UZ*+9xcMKUFp}Wcbc!MC`nH
zPrN4cB(h)G5BFa&-ubAHKHi;sMBK6^Vn80+VFvT|8t9h{3dp*Y!|LVVax=Tto4_-o
zP$j~DC6`go3+4I#U>1=hg{(jh0>=QCZ)>vRE(QDCOc48054alxtPM3A_CoU%xoOfo
z$(I<<x$_Xxwev$hRio~5De(`G9nYk7fm9}gcqc$0 v-nAeI*D}DmPJ4ah5?OBWbR<
zKdN%G0^_{Y7RGOJ!Nei;Uk_IN&D0ys!Pq;xe1m*>*$;%y2eh+6ohGzjI(<_mC6=x^
zZyR1^7PlWrnKNz0O<AQH8~-qsgAa&m(QJZorqinp%ic?B>YvLOy{w~BZfw1C$JcnG
z0)BLl 3Rn^Idt$$nXRIRplTSxp)%R(py~}^i<l$SAQIP-_M28?9;oE1PdGv^<lAJ^
zCnee=AvV!IkDF+lc(rcL#!|ZYqAGuXvm9enOyI1lP$-9{l1ODk8e0LT6=G3iBG7!X
z#T_dXq#(Mv<kycdD|nynGIzKA6lucr7Y79FVxq(I=;PFH3|nN0We>*R_-4d_ktR=*
zD1<0@;N5B5D_pLXMvGV~Ll$6Gr8&zCQ5StQP^z$<SR(0DL2iT=+XRg<O^FgW_k =X
z)j!9P^7sy4N^Mq3UDi}Tr5ULOBd11F>g{H>OdVCPzHzcQR;>;W5#=OhkNog;(TCz0
z9+M_F&KoePGgk=CnpwlxX>@AKE>^0|j`1R<BB862NEY9paNl_%1}qZi?Lr0%jOPMW
zcqBreq|)S&sNo?dwRftTG4>5%(dMvsk9n({G!uCMPJ=P0b%{qybWHAGPS(Zk>pSD$
zlWmuCe1x8{Zon Qts>>;(53aSm$m#OMw(}4;TxBBnWL}949ydOb`~T>5VMF3H`5&}
zw~jvpVe0i1SLwnwAI)}vW{wF&5w^?Ve)*Zxnkr%KFRFBM`a8DGA`gjn #@d(Yel}~
zHIf&fIZB>SEcO9bAO8D})8^9&eV2G#;D 49yhNs~vWj$pQo_ZEa#2nJ9G|fulyH4m
zNxVY0%CYFyDVQ(;V}g_$Q6>z fCyDx;?lV*I=%LEGyU-M{VwaxdV16D%<iJ)EAG}c
z^v<Q<wZ9?d?V}?yG6Aw1 dONOHA#h}akbVxg4_{`W?Skj?O_hH8X|Rbfz9?tOjdU9
zk<YQ+-MuMN#Of?g$`c5aVWKR6P_KQ6xGRWh;Etm6JkdIBLI(7(aEn-<DX{mlf~am{
zv4az)jH}uU9Fseo(@0_v+C$d#5#1Hl`Bdg}&!9}ls+%wQ6i%^Z<9p=9pCx2i<fF&?
z?ZcA!W`A1JColWXH?h;DcAHz(C9TIYApUv3Vm9*Jz#Gy}sqVV?w}Rg*U-l -4vH)o
z5 E8c$CC2$r_;qJYJqgYw<;qBqmH|C2z0VDwy~Fm{*9nPOA6u9iiUvRDFpmBB{6dW
zGp44y)Bgb&K<B^t<?J_0-duRo>|9V<sQr8U*k5<2sa&r{M4h7`CTY{O&d*#;Thu#C
z;MJMz<Q}m_8<0c-^IZDIZHo(w+gt1UxuWM2F8o-an*a5{99gV4x5P$$d>^^`p9|)<
z2fTO)cTo|<VQq!U0^);aF^2%J)K5kx+(b2skcryqDOfnbH4 1}Hl7fp5-I7@%O#7*
z!}aRBD%kSX2M;fIrzlFEn?oK%Jno54%(=K!+i6I}Ubj#-5DT;)%->Ru+pNdQN7C;r
ztcZj3V1;aGv_&c#&#Az(h>_9WDOpVUUM~;xh)EQgQ^%SDJvzHfXAeCOb4-=B;@Zz*
z6q5YnEz6iEt}udb3}X|Gj40;2<*_u1p2^MH-;~%9or#Z)4_8|+5{b`pJ<B>nVRwW&
z2RcSTN|Tgm`!p~OaXIN&NHSlGG`p2Vqm4S_ID(INl2->kCu>|rTB;??r h@>DPu4$
z>N)Sl6woe<C*nDp=qO^uq+hb`{?8yg%F6O0NEf+8#*ijj3bV+^5>iRU#weDE`C<-!
z#(v{xV*!7ov9go2OCN;xMxUoIMiVW?bnzn)Nfgl_T8mnujQwhSj(BH$?#J8f{#2)B
z%`|%zAw;XcH$!pWv47`iOAa>U&;0E1GDtR+E%KBREpfw>M%1A;HRTvrhbykPpA5V7
z{>=5`52HFZ$=b4IyLLchTF~}i5Wq!(844;5K^X0l_9x{?^1Rni^-)vQ)TGY<i6hf>
zVu<3SSD18{Hhoe45S;WB)!*fn`Sk}<&+j5yiwQ&lH M9WaJ9M~weEV+BOo%MYC!&X
zlM|;Uj7|KWg^jPbxZd_($yeMeqjaSsYpLbs=VkSJ^zua1py<TtY~f?mezrfczYau9
zq77}Wy^~fZ-c0J5KSHmnhw7STA0;^sPK&hZo8(iFP35<84p&4=-VjMc!U*FnaF3I0
zLK%gP?(zw+4k-9{^kss~DQAK35?j=4glI+_iGYE`&_1_*bZ_E*zD}p_0;Z0ik?Jx*
zyRO+Z52lbn0=9IocJ*nX5`d1xhQfjwFY*XK;Vy(ZbK>_&50Y<s=X_G=NyDcTbKjP0
zjV?x1*>B}d*+ph6d5V#2Wv5#%6q~UF38Y|q-@>@BKB@;RuIZWeyH3wL!aClyg6kP{
z<7=apahIv8gPNg!s8ZZ0Dcj1vWlB?;xy<GQIu4v_lv=KasgcK%)odfihz-}=M!Mc`
z{Rb1N>t`<o1~-G^JIZ#fkR|S_$5xLlUS7c-Vvbf`E7K~g=tf&Q1VS9qgcoW1vFt~4
z#QYlDOAji2sN&Vz*UnD<SoZL0qw+sfgWtaOQB!OXcYto9ziA-QMjL6)3gW$S-3Y`Y
zo>7R*<jWWn^Qvf)$blf4yXqB66ccl_!c=kTXbsSVv6cEz`favq+{jcb)7SpvsD0G$
z%(~Z|KyFdry5<6&h%4sogo~0Cz`?! 6Ok)}zAvu;aELrWR^F%`;sBe;hehNtb>OPj
zQ40`-RZp#gsfOsoBXJTh^5H= CUAqV#3fp&`UrDt&5;nyfXb<bePd5hxYd(7a~MVw
z?~T5p$ty4?yQGxSJ7Kzc;NHumw%kj}WV1W3;92ff8E-uR<^JBYxZ?*N8FP$hj*m3f
z&TFfj!33GFX%UWWWY>a(nPQ-##R1U?v<0G^*o+W6MF;UO+??{?g1o7Z)+0dHl<j0m
z+=W V2^Tt$N-9r5H01yvNi;sl-LfA7Si#;ut6xel<IDnDn6_D)3!;hGC-wv5)dV#e
z+$OjWcMD9)=5x%usrQ(O*>QofCu7Ic_}BRHaC%?zE+%SH9ybbSJ!DLmnjGa(lLqYK
z0f-1OSIjb!eJXhm^L~?aee(%zZgo7>beuRU8i_`#(Z4JJD^{!^=2M$$ycP!GqJP2r
zy01Q5zr|##h?;y0eBdpHM=rTdZ!C9azsgDBD!OFuu7cEjRW<Vl(M%i=djU^%fjBU3
z%V|bOkHsmilCP!Qt3ORl63xV6+bDeT#W(%z|2H9hWuh^VfehrjeXPA?T3p}+BV3M?
z%QazC*YnG1e9K lfN)Ums;r91HB${#ca6cG>0$i?;xJmsIr=Q5QC8ohm*pazL^m;$
z^ci(5&`Mpz1&p Fcj_NR%gRIg_i_(Hn<^?A=ZI&J=pa Db{rft#m3K!FC9Ow!_Swd
zTy|Vp-l`)$M39}X0K7>5^$Kf7(;Vr+GNLr6P t}h9t097a%+V+iBqk0@iM+qRn&UR
zEPmz{PsCz!ksTc<LO7A~F(v6q*O#-H% H+W-dM*8$7pBXZDRt0vbD@w!S*b%dqQ&D
z2QYOoJu-do{e$sd-j<g7r`34%R(WJSf|ED+0h!26_IGzw8{?LdcslKPrGsVm2Ixy3
z4SsUr={5coDD(*>C`K_*?bWwx46JRoA<M=PHSWIW!<~;puQbyP?W1YO(?O!Ps4u<=
zJdF#A# 6@t5%xp&maUrvYz(N9xyi<#XQ?^S^FGEfMvTlnJn+}${ cAizEF#`IG~Bh
zV g1Z&7!ZVHBMn H$)RGY$JipJkC(AxndhhqC9>$aTpKzo|dA8HVaQZ)R>aCi1)Iv
zsGc-}Wx4j`$>SMKtxEID6tfN><wn!T AO6NOR1Q4&6I;zY$bq98H%kk68;Ff{}p>q
zu 5_0aB9o6)uyk|v|gG+Y(Qvei6Scq8&*=7OAb;fK&lo=aN1tXc|QcyjeN`(O}kgG
zVCqJU=Tx8FQC~8`nWEP;5|H;cKgyqWfc&R?uYKWoPn}$?1HYFMcozG@@iwJD(q*_2
z;ta-Nq^WC;6JW%uFYU*9A!>_!bY-`8QF|ha(q6R}R;?C Zd$BJ12I4xBnp84>1`--
zwcMj`0r^nBEPJAftinsY;~goaa1Vq-Ea4)WY%jl(1A$V1X{enWjb{2ZFx8L|=IOvb
zt`Q8}Wf)(B+G5mJn^V4XY3 ?fWpZka|He#>GL`-Z3K?SAYMv~9GFr%da-~lpR&!Ha
zFn u8!97~yjW-^aF&`p7#C=HaUec7^oWpEtcU63gFTNE0jm>uc^1t-J4+{noog2E3
zzCf>U_K}<9dU?;gFh#g51^_9flIGG#RZ+LpT;DzFfDt17JZf`F9Wj-1FUCP`2nW!S
z1agp+ayF$(%II3&j_(~O9IwlJiFTs9Xs6~7M?7)-wFBFyJ5fHZSpMWpW<tZnW>&C?
z6_}06Mnj{DHc5Bauj#_8gF2<^lLheMGG~C?%vL%4E*ce7cB8CyUj~(3vX6d3zkpem
zl{ 4|KBptsL@@A{Fk*mE(>?V7j1opRnUS2IzcbI1o#Yw)2&lKhscpvK^9(u;oa#Jz
zXu=2HyNw|Y8-cDR0P!jLJ{h?c#izgBNuR0&sgVd!9-=22aU|26Wwb)7?ph&ju(n#C
z$7H56G4U!E6p<eexL&t*asA FkFlOY>fBB}xm5Cj#MG;9VuTp4&9Fa<xcqMQhkB4T
zHgo-)X^`xd`h9$vLfMTH#yVqqt(NpPZmA0{5!i8%$~6%r@>AvJqrioMeX qVt-k;I
zq2ME1-5c48rX5X76i3r lpwHS!-gOeHwXl^MHNv7%96)rk4qTBG048r?h-xGrGU#C
zYmF;cxWsv4YpelmqKUbWs;6x-+LbQKI~AmARqHgS-^k3v0}t}g Y@Y_UeR1xFo|y3
zc+*54inm$`vxPT8sRf3e7L=w40mNiHo|y;|IYcKOV`$s?KrwBlR)9jXw9(J`hC b8
zBg9^o v@9a(R_*4Dw LWJ&@W +D<m&!$+;6`2bRk;Q^UAma$3DCWHQg47L6gTAYi6
zoZuR#g{L^E9mlMBX??T;NUfXbL{CbIePRti;l^v0FpK7H_01lMH_2YHM$rcHD^!*h
zS?VOj(MjKLe4Q3WxwH$Z6|J=}eXJJwEG7>jrPdWH=<yw)MG^|;b7rNoo1gpiG&ip4
z+hi`g53h_uD%r6cA$J<y&aa8n;>1POi%O;?+9abFs8PbK1ek1EVetisUZN|9e&POq
z2H8m-lM_MaHmd8}LGu$uv<3*3N(!kUa)@ZcMPXyTs%5-nz+cxlHtC1;5g-eiOwtEL
zHu{KMpvK`;6G3k!1N9kB51C8WldYT`83c^`^&~mUMS7|&;<*ek9>{}kUy2;WiL=^l
zrQ^f^k_lBQ;<?N(Gm+VS8pWNOql#N0ijju(?=9B<M&r$xIZbn#(-ec^6r&jRGk%EW
zNySDon|Z``j;pfV!AVn pB6NynL<pYrD$f}D&NRwa-+Me3RHu!SaXY9B3 X56jBId
zvpPe9DrkM62gwAzu*(zTh$EJJWJ8df`hUgMxs1}5F vs80SXWVG^ZI&xtfuiq!kZ&
z#A7sk yAbHV?Q$}DNA9-j0+Rg0aaA_yM(IAYLfcQROXj{_A~OxRGc!<7$)<uO=KfR
zq|#NrC0a!R7Lj1O1gf<0wQ(1K*?&)bhQFL5XMvip%~$TqF0v6LKKZ~DG;V0QHE+!~
z_^$R^dmt`8%dDI iBszUaL-5)dJjn7!1O~yU@)6R5=97wna HN8$Ke0N8+AsSl+UE
z-sP^6&^x=z{zbO4Vbx;_#QYGO?}3m0z<EM1_WaB3VvD~1V)EuP{VMIQI+D$IA78(F
zr7hq~d4RyA+|TlzHp?tkved{DQ~i>BU|caK7d`{LM`YN)W5yFMvQbUXmH9*8 ZsTY
zN4{BjY^lq#1J1Ri(1BEu XPMGD<Fs`4gok2*s&9+j;nm?E%ByT<|XFks<@nBRF`!M
zY#}!hz%EQ^;y8VbC&m}t_3jxxAm%_!K=Y!DqL=Pn9(&F?WaYrN1N VQ{JPryR*W{j
z69$R_BEa+!Z<=ZOO_#_5s-V^kL>UT_nHm`ls;S<RNC-B5#6vw~J5NL EiZ|(l+nbQ
zgeH^Kc*iqbgj1E%PP0N F-kaGs83m~r`CaM;+R&{oP`SF3I*|^N_uEAH8UIvA7#uv
zUS*Vp)Fs|<gF>9sHkblgt6daBMRrVDf~ZL-4~1D&MDhg-R0p{T&&+wf# NacR$zaw
z$EpL*Oi#oVi$Si44Ii&-L6k`;o%~h8RL+<5FS^#{3=KTZej^il x<KG(#LM$r7WgW
z(k X^x*JE*ex{<4Nj-5CM>nEX5r-eX=1y9__ R8XJk~yc`+@Va3itA qn7wuRCW6X
zA U1Pkpe9J%{}m6fgCCm^`jsc$b+&cc4LBgWc<J#CXh rh&5uLn4!YuVYy2F#1!Vx
z{?F^Hje13+3`mn{ggyn0Z^bULAJkZOF#+UU86*p-T1Erop>a}ux_jeS4Yh0{&*>+a
zqYuzy^c8w;kz1 2yHy+$aNr=5*e*7T(rI~o$M|gXS#b7&>|hKu7T 1PWmQ*IXV|Yc
z)DsUpK}}#P<I!!SZNqGXK V~kbJoR7Pti+sM7X|ny<y!BmVuUTE-f&LMl_-}A8mQk
z_N9$cgB=$fCdYzH%T+VO#Yl6;7+Y1O+9T7%KJif8XAU8}B!oWZ6Xr1US2qs33D?`M
z<Ie|+58|bGrB@@8NFqh<zv52+B}r5<ic$o#eo&9lQ^8g`ZBg1*bat^_?PRI-iuIuD
zYc$It%PPwZ5IyKiUo=d(<1WS+5o&@O6dJDL<reuviYri`(I6k_FXU~6JSOYQd*o#T
zzDxzaC6p<EP8d(XFd6<vlV8^tJwhIodr?|7wMV dSs71uejt)!6sC} lBv4yl1!iP
z`p|88=Wd+}Y}!O&4yfg-ggU}8PVgtU!DLcMp?t=L0~QvlrD`dUjIBmdqqe%5I5DYf
zQX}WUAZPv&`Gz|Sb{Nridz-h$#|-a_ERCBq 7kstGe(pf^~E;@;pgc;t(f^|XA^n%
z7N}OZCX_!`p<jis13o ~{vze&lg68j y2$2ve(#OLg*C+N^6gS<Zy+dvWjdiJC$F@
zw=7{TpZu~q{FNB)XO#Og>|JZzaKoKD)Sv-PX+gT {sJbkkC|ct0>Mnc&SI9D$~oIQ
zCpueJ4!RL>YwYcs#lJlM<Yb#upIxQ##fJMD{2h;*-#(+BNf|K$s36{$R^ckvYdg$w
zoEK)Lsd(I&jDa~LMU&#b=nlkTr#zv`gLZgvL<``xTx *n=!A!U$ndZ~z%Cky&e}kb
zX-1m!D4x_2C&UA~ialCQb3LBZ1Ov$~((hF$O1cY|lXO=zgQ _SL~j&{TooNeEz= y
zYEjx*(S p}dRjU1VWNYGAfC<QwsLVyqmxes_xWjdjys3h`&ge)`^KW%AHtV%)NPJy
z#pK*%%Gxs99(^B=%njU{CC{aN%G{I#sywbS!BMy #o?aj^B`$9n565u)V-Wm4OD&S
zOx(48=Kl5oN w}bx9`o3)b)Jk$QCt&OA)V=x^ylES`m>eQw|WzL}793w UxN2cwOy
z%i|y~%XM-mN;pM% sYx$W*BN42ib+)(2QzE^}nqz+sb3|5@@b6zuXOU68ps-prhKO
zc7Sn4cGinyG1|!KvLG(NKTQ4Tbal8p4yiC>q<kg^Brj)x*e`ZS<I{~HT4gO%Ja$eg
zU#Hx%vaJt4`Ppms;+dCLR!v`VDGUD`bs39g_PE*ee!2}m?4Ew($JgLi!tHCf4{+t&
zr8&W)AaA97Kjb wIm3&IRrOasU3Hm-{X2irw10KIQ{mMmW|V$g*<0(cY^FhJH(4hx
ziX`BGI-m~V;$d>1?Oyf9qp3r`7ZbmmdZT`;dX?(jO6{FaP5d>Ve~<6{0OhY#xK+6W
zmb56_nzUtbV%LcxM^}Si5C7Nx AzvIVg)WTR=M*CKwl_?K#ZoRY%i<p2he1=en wc
zNPF>x7zl(CN+=+RQExy_HH1+b$oDJy(pK)*Pasq$W54!HMbcRe5tBjGqB>QWDq0Yt
z7TXqlv9 pb-t7|~o<4ncQE*kdsZg~~{iEDA-GOI7R|=37#Bec0d<lMSd`-UE-`+KP
z{Mg~G`?kRGV~77PIa5h<E^{t;oAd3YutMdt%SQS=eR$<^sv~olhdX}w;iuXPZ{aRn
zQ-=vDl0>pIAwBJ?D4$M6UCZdNI)6p}Q~b%NU+~+EQf2&$Rx6E-##UOXrnID$b`Ezu
zadY26bNp~KjkPsMy_)(VXvM3LSEFBh*1D2BBju-*v^yuL31I)5vzFiP^-<n*Lu-H`
zc4#L}?Z_!6Xt&IJC_|XaZ|ucQ1o45)+|NkzvQov8Bq}mW)FME+;LZ Ojy8%i@_Qqz
zGmzqPx>4LQiRD^u;ivUukgQ}_9L-53vnXaNLw)vXmrOTkDw^Vk;z!bRYko*iTEnu8
zv3U&JGbFT!^W3AbSgrYL7YWiLwP(TyUCW|b=|fi9iv1+eR +BjafO0WdlF}Bj~IAz
z=Jm-Reunb)qI=Z?5(>`A+gk1?t7>CD5^ttP?9}K<u0P^&tJdAarm>VXjWo4#^k8YJ
zM`azh3S{O-<F)M=6;v>Xjm2pG?wRTs1 S4jtz4UAHwdZyI!Dwks>cMRmU7+%aa8Lp
zwxL8(?vS31y7-?m5d5EqK1asObzoG|k2vG82rp4mD?wvY(hW5m#9G3LGfv1Z`t6Lv
z#1en1?+n!UIbVb3W*%f3gdv)+PrL>-im~biNPqpAY>UGfXXMvE?Zp0rFe_W%6u;yK
zMn&0OHq?KNnIfuiSKM|C!2 qR2~atNpUCUd<;BGpb)RqW{N|@6bNbKK_2ylkbeYs8
z(pd7V`ny|f5xc>@z BRV7M@mnG3jL= LKOP&Zi7ms#$VbO2fgHN4`3i3tF9Pd8ox6
zFx$)y^IW*Q?cvNv&B3oyrY>1mut flOJ$ivPi0cYRmTK((TF|b5UA~JQV&3umQKBm
z-=&r2HTT!P67@<sN(GcWqnEWu+I{SQFA&5(J-w `tEr`_4qP02sq*C{FqRW9-hrrX
zo K5DyC3ZH-G3Px_|^Na-UP5zaQWF~0gy}?%0P-K-TggwNbHc<A ux2UfT2*@-sBq
zP|nsT(^)jm=%-NLs8A4YN;gG;aoboc|AG6Ue53D^jZk8Q_LDI~_=zU$6R(J)k*H2q
zG}%JF)7$VVIYQ<Jm+M`vbCu~dq&{`|*YSi3|BhZ8Z)Gi6+j=QJF8)+pwl;^g6QZ7I
z>DQaHY!dyk@>GQKG`e}N_qpce%(m>i0*&(D&42%0n%bZ?vxRyYSBgzUL&KCY9sG+I
zU|>)!V<q$_Z>Z<I<R$81hez)oWmDB77epS7^70qjCM`+3*R3|b_~BOSunOg|`pN5Z
z^v&pFQS0k$-t=s9%Pp;UCe6I{<Ak4Dzvi3rV|$M3_NUkVCPV#wa}bAFCC-C5FQh3e
ziiM(``8EEckH~Ah;UpsoBAIHWABap9vq=<h$<9$q7&;cL;;0r2^0-mg>CRbWgYlUo
zn4U7PNYiQ)A`2OhoJG;aKyg)Tj#-Qp9nIm?VhgoN<DO`S0IH<lJHnuh9DXWeEITE3
z;>}wch|40z^afuoUUV1z(6n4yDDQZJC(A byhSuwt-CPUXUbll<MGd(FZ)feb{r|3
zzsRJxkF3 Gwc78?Q@|FNP~K-HQ?Hh}8SGV^V{ev*=dfO&QKjLfU%ZQ<uc 15ob45n
zDx6Rw8zK16o&r>Kz31LYJIgVzKsnIm9F6ou<DADCG=>Xr*Kp9vYEfc6hE`H*AQt>`
zi1a^$;U&k(iy%LfYvh+8oFa?S3&*E`7tuy+5Pk458p<Uy3I(kA^ZN3koGCv8IZmIc
z4+4=SW(qG*&DC_(17uryO3#L7ERns8p}=8Q{v&?;`uNw#{EXFhVQXxw5MJ1VODPu_
z{e-p*p>M!>6b6P%x95kRN4)5hXH96qH_4${Jo9~Tp6oKYWFo2AlCmVO;Gg3apYEoa
z0ifokN4}jjovLx_XL#}O<?R<+AvG!0Kea35*q*&~wpMWB#PN_LA<%hsw{kt|g->I-
zdaG`}zfUu!(zQJNz<ZWJ($9%MCAQ439`AX)_)$mSpNl^&zOF=20#R!s!#{fe2L2AD
z=l%Ny8-PPl=3QyMbXRyQ!Zy9#04al0Go M}Evs#JT1#+@bo6x&g)Ut?cj ?N0VlGZ
zQAl5pGRn#%Sr-!>iRN>lC2!~jvI}nL2vy$*Hs1a^Te7X3sdq(at<@Z 7pV*(nIS+;
zexy3W*rr#Nhk^ExK0EwBi@<9+y5{Z%Vv;x^j+XpdJun^{PpT!#e!Stlc#I1!jA65-
zyk(oE?#+>w59UecSM#$k{kZ7Zf-14;mn&3Z>%YxFhCkEv%hT^ozrm{I`&PbL)6a9d
zWx4g3^_72!xGRJ(6~4ka5}9eeWQ55u`L6thxB+pu;(C;+5EzrSN7mA>KV5}Z>l4|(
zJGY5A13t-360R<S(oMe$?UMykHY8V)t8g>?jEmY=<Q76Ro0C8k)xyoOR1>W=S93B-
zw9(wmDY%Gwny1M sz}z}o8PcfY#~_lLdojJRi_14Sy+8#zl2qK8d>avagm|MEay&q
zaAUhxgJr^9b2sZW6rP%!ITgVb&D9Lgg{HZhbxsSL=4MuS2rtdeoXRU9G*`2ovn<nM
zO*Tv-UYny0M%OxMNm>_bn%Zg+Vm+m`IYO8BAb0yrX-T7@)Wsr?;tpXlvYHFNZcRbC
z#i**^q+{g1$Q8;9KE8?Cr&YmHs8-&zwAnawjm}*qb_XtUhyAR}EzHIiJ&#r!Lk`!E
zt9r=TZPBOH3tS)EeNZb?d9-(rKVGl27CX;Go6PG$D=(y&OJjYR%%iff5duB7?E;H;
z)s6AR|IaJ7JSC6o2_VnQ1Nugg7vuqXIHNoS`X&9Kegs!J)cDN!{BP?UU&`(B5Xkp(
zzdV#qM;-zhEcePoAmij4c?cm#%VF}+Kj$ZG&D-s--+=oux7KbKKMpc_8O ER&nC%>
z _;;yi Ycg$)n<;bAofQvwykqaV6tA#qP y5U@R9dtk)BFNZ?4i?%N 03xeLj*klQ
z-2A %yRGkoa*Yj}9~Sd&l-J!{Lvo$YomcBrp<wyz<?2w?$fLi|pU3O+3)xwAdQwjA
zmaFADDdlT<OWp>1l0DQOl=niSYvQV;x+N>g=dy(yz$Evbp4&X`|LgpHH{<)6lcPWn
z(CvDVb#?gUkH;g*=dAmF!Ta~``}nskm{#zs0=Z4sJ1^{Xu*1c_jVqLg^ Fkk=;!qV
z`o2H)Z$|k}-jk=~SzZ`{a*JH^>uVm_B||Sl_5J!GG#Q*h=b}6)4`Y`;(vZK0V*b0x
zOil`0FUl=)jQpm-DQTCHGAj3F87%k710Y|@8}gPtm+NcSA6 6}8zobXp{iV5Z2H!U
zipVHG{HNu&)xRzCZ6y^Sy&~#Cl#x_TpXAKt%ze&PAFS8c8-B<nFUzCyILI)0Up~mv
z>;0VfX&)-JSUhLj{I>I3xlR4+X8p~K+CQXc$eF^B6#8ajP#4NXbiLN~(Q1~QtWzMR
z*j2H?ZM6Gk>$ndyd`5XKwO)=Yli-#-(WwF!%iM;qIt~mHZAsxRN!UoH9dS666Mv3q
zN*j)lK}H^DQEJI3!|XUlf(REqv{v}byoTL*k?hPBuf<@5$f5N!y`n$2L=6Pr(iOxa
z3>=`=(h56}NIVCC8+4_#I>SkvBDdC7^XH}5t0juYXj)}$3uz!`^O|^^mT$z&)QP;w
z7m$5wd=(0KWcB_obTf_ZPB}OB03}ILxy-}K?(x#|w(l9JxT(~J*d=&pdzx!?^kn8R
zjwfk9GyY|*XVSebf#R&?iDy CJDhTZR+t@Ot;0{|=t%d7&tuD#9!<F8d-c3%aW;sl
zT3L D7;79brn86v(Lcs+(dTOU;Ny tlWE{gO!?X8AusbxA6j>JW!~g#7dhs(2b?Ri
zt?3W{#Vc^ra-_N2dV|$!ZR}bFA*P6_#-a3d=){4TDz=DCqKL6V_L4p60<8Q~#shHp
zJ0{v+f~k~gj7bAAMSLcD0mB%^C }KLZ1N_;2sb*(f0jb?&rokiy;^lYi|BW|`t7lI
za$hvwJHl^=FKFn(L3L2=_b5#a;k++y)4FKNbh^nc`*-#;wuLWS7rarpbFmZ7{Vys$
z+y2=08{X5s{*6Z4z`4YjXROeYrYx9te7bM<FxgptCi{09WUMj1GE$z5DLAgc^a8oh
zWl21ja3G=H5v!0QugIG^%6h<MxJ%bFhiqAG&1}tkgsNB-uM%_Q=LH_PXFA3T =%~n
z5$g`O>uw{jb Z<4+d6ZDDBh6FliwhRTlel%x^olCl`1o~OlE>xUTl4}oolUKZ;ppP
z40R6ku(!AGwI7J-Qs`}=kp(T6N)#+o;6TAahcXi7fB1!tW4WVY+E#E`?oz{LCT6Cx
zpZ!1xA%x&YF_l+kBDZnP2sJjMGCVW>26B;}tUFNJL+wXx7J*FT00)4YqPnQ2jvH0v
zNI3`#q+c=de+q%ib82}8gK%LmzPUByqKuVp^{S|K#%<%a$7pP%lFDb?<ROn9`&wVQ
zM7gZFJc-__u<|qv;9m(t`pvMewU)A$qKxB#Ba>tB%^jA^madkRyWg;a&1}urKEo~a
zwUJk5lbISE&6+dIo&c``Cl>cul7H#x2Mn$^sKvmJV9qk4c!_Ww(i#^o^gb9;etr<1
z(uvOlE*2Q8=h4deZ1gV?xXRpY_v?%26FZxqms*p5vuD`xi3KBaXB9b3_V6N6*OQ-h
znib)UJDN7I(nb4Cr;?tg1EMOG)onl$k0(;?QpHpiuE?&&9_MFNm8*=^jxfT-W${t_
zfmhOG>~Jh2J3o*_T?%kQbQC e5}#8KgM-Wis*_nA2jNRT0zh5ml$Z-*598H7QBT#x
zU!0(Yn2Zn)MIF(fP_3;f$9o*yXQ_HjQA+_+l&vF|{jENE^aO&4Gr1;|MK~YnV{9MD
zP7XZS$}RT;e$~SU;gxT#-zzN*A3c{IthcA=>s7DH<w}Bkl|uRz+y{=Yq<5B6G&cHC
z+$}R(oug&#><$uCUh&9xKF_tU#kZDNIunaiTm(JPn4<=orpJ^|70w;jR#{wHeOB#&
zd6#{)&*j%~Mjv%Tt#h_AI%l$KQ7NUF 8{FFoxDg|T*C1^Cg*>qG=C4xXEn{yv<qB0
zc&*Zn90+G;XMJY_;;BXzDudWBwu>z&L&yy>eVqS`t&5VcO4v(eg^<gy#=LF?@|p~l
z0 N-wQ_Tc9Ot#fskn*|wN-hO7#{6Xv`rpUm>I)yu|55koRJqGH-M%?}BJy(7gs5hn
z9;S^=YnRrc5>%lol|A2amh)WblO(Q+soLb{tKD9>e(yT=*uW~gtF@@{g<LxP(y)s|
zn}g^f%wh_dN1HF2>cUUo%=zwT0XZUbyvs4&wBl0CmFiczG|K8Y?Kt4rKhRIjQ!Uki
z((&q 3gcZpQ&_im^}_7h#>+ok4Y)e}nCI*IA%~yGvvK^oZ=)yfzdLVp|E-p7_k(B4
z!m +x(4_&5X-pH#DJ<C0o2TN%*W&i0u+*ovc1Z_U-fvQ^Sx}4R$))<Z_de76AQ)bT
z#qb2TQf}GYbhs9Hz3cV*P`-58ZDlJ!?a}oLHWZ~^zw7Ysn|G Qw@AB mM5)B<K=3+
zYQ|UQn ?h%WPN%jXBQ@_R5}EwXU*IGCwW%&t&*jR6YhsTxb)~E(pX 8Wef!zIB}AR
zj}#+6RwI{j*~r4L#!S0Kxvp_7gOOI=KFj`6?J{N<eU1J=EOVG6nn|n7BC~VjzhU(L
z5n{~I?_!pV)tUEZKAfq0g`LJhW3O?lWGVq<CNrOLjAI<vgWTNRQe7XOpPO jj{4c(
zhOXOX+i`u{NP7LZ_=?*XTP3O _>a+k&f*u<);ir<+}iqNBd5DF)cK~_JC?JWHCDt?
zu}^HzYPDrcEo%F$= E}i?xo#3J@!kdB9*z)i1wTH=WuS^U4LbxNA6zbKl59x^>o`}
zLg_9~EIyVmw5_g}Xi6K_x)puUEYz(3WQ+BE?Xljy%f6#|y>gVdetx %+Xq*BV!Muy
zqump#+Qzi7CpePJI3jZO)*s3FhSRiFt}{Yh3*nxUmiktGkJGLkwbP)8nCAMJ= gMS
zi~){fpjvQKT|+}*s6qH*!YR6t7boDPlV}LE!Gr?x^8p2FF=^;H*o23eMIgBlT5i!*
zRKjdpr#+_vg8Z1dkGtj}@)@J~OvR`h^ai7#%A xO706z_8i?Jr(r#ci?7~QXgN3qk
zsb?zLKXeE?p4){&4>~;CTxJR+c{>uz4F $qy!70KL7dpB{Y*CoiV#z8G?LInZfa}K
zv_bgDbJh~(Ml6ebZ MTtsMhCrJ3eZx?PEf&z?C^p`qlI*#})Gt$F;Qg&TZynMGH8p
zpYn1f#MY6!6B3T^(HykMGpPBZ+fG#IlEXvFx%_^LG<EFMi&H*_mc?2Jw>?ja?S-wj
z?KwxpQE^!8Wv;MrhW!}Ed83KZ^Ka|7UfarO843%!Ec|-$J#bXBd)i9 omk0gkgH{s
ztctFz#(4S3dG0qD>Q5*fTc}~dN{{C~Z1%9^qh6~>ZIN;{WnaFcs*-Y56#{;uv&b*<
z6fest6|SEBm?NTl<o(DB#Xsh =FXct`-y>Z-^Wji_lv%+?GW8WVMA&^Xcx2yOMRJN
z3ZqNlHz)6$dU<L_(_6wr`%3HBsh8 d!i|W+%}G#6B!QMoo1rZTY3$7I=;PeAzrv<^
z>wB$ OWv`W4Pu>uawE%cF83rl<ZQ!pMS^Fpy8q!|c+POYVo&V}_H*`wWwv9-fjzJ@
z%T+~HW=uBi1GB_|+;+XJ{#38Kt4rLS_! E6uuLk{2vy<ETDIb8jcujP7gJ5Ctx|LP
zED73GuzC^ynr~iuy%_LfeD_W=)W~dPt7xK$`luqz7qrIOE^TAXWAB6BYrMpPvr`*R
zc{ZtL=<35W53+AN1wP5K-`c)E^aU|&+;GR&(+HQ|dTzZOP=XQ^2kKLml3?gY7ULhB
zocN#g-|goC;gKI*BSP?$pX*=h%Ym+9r`UonD;NvqK;XYLL;Y*?U-;#cLCb&%#tg&h
z_w}L9hdUj~*Ql5rAg{;{S-#+&dY~SG>74ns`RIq%0q+Bz1 t_dy0gjleOnJD=NDp!
z*f#S20Hc-3#YQYy&IP;<n10ed>`<5pOMBy `g4(^g<-miQ&HBvalPXL;@UNM7OXD(
zeDTPx3K0nrc_TKyx?z6R>B>l#ZVWHrpKG9NC9S`?o$E*<T&jzirZ?J8ZVSXy6-bcB
zd$nJcSN`s2#Mhb^K`xaO-lSgFM;cpV+oVio+Pj}~*9~~<H*s<0e2Y9yZu_r)AKN_s
z>y&=&3P&A}t880U$CCQ9b4czGU+1GoFW(iq1YS<BQI9GSU$ADu(sC6kdKvwaqbE7|
zk(Fu&FdP%nlmwtkda0Ih6A7XUfdC>44FKrPV?c3-i?kQ3sfVjJS RRGsisxeEPTd$
zrZ7n?Vv`yqI$Jl;De7?CG)s0|3zpOKWbF* ^Q>lDanSQPtBQ)0aM*1v{SrtBGs1>t
zKg+P&8=s6Wa*0LJEm9g69e`O)(F*v?Bthh$l(4f`RU=fjrMDKZW#$VkE_QQkI)opz
z8Wty>w_1tnY*p7z+={3YTiG6YGdlWu!VqV*<mpyd?Q7F)uRzmk)lbY2c}*qd6>B7S
ztq*h6sgucZC{p$879B4yxaWun7E6D*1~uvT(jU(#k5V3MKy ^x85XQ^mrRgbX(_Ct
z62Tzc#8k192szhCkv-682W<OOeM ^wO^XJ`5mmtGk4e@u2FPy#7gllzWOjK_=4899
zX?$%=q9126qE~+-Y~QDCNqgfsQbZN87B05a=dShMoqJ0I?k2TKTAH-s%OJ*5i2=D@
zGK6fjEe>}$%A?84-);&! V0LMIa33s1^r+NyUt@))6j8 -85sX?`pYLo|ZkcO*e#*
zWW3F0C(#%ow^^3*k;lvfF^MoS{$+lbGu9U_Gv|~lo?QGwvDxP<KHL24`<D~`bPq~$
zy`=KV1C7^<TQ4-`H ?_&T!{(qCSI8y bKBg?;h?Lhds`2vQwsxs3gva<iLvrQh?q=
zK7V-ak$iNveVfPipA3IeIP9+aQrXqQ#Jb|R7$6RLPGSUu`8umfAFGehXJx;mo~vPM
zyT g25<~|OtHnJL6XP8ak$H6HBCGS)-&Bt}g}3FZSfg KjR|RofH!|GN7pd7KCY1{
zIn<ae^W!hq8!O~Kz)D#{NySUfBA5hYvhhHAAb=AD{B3`za% #^(2TK0X<1k_lFAq_
z_Yf*vIUtUx6Gkq1PkxStxBMT$z3I0HU2g-vw=-4FlDY6uql-Ffw5V$~>KjvyW7;<?
zR9 6ok#4x_ZYA%GY5cBH@rK-4L=ynj?LU0|Z$ m7=nj!Bz}s4`XxUfqq_)MRYnzT9
zaQHdqID!k7CYi-t(e5RCrZ|#QN^ZPS=Vqpxft62YnVIEvmL6}im QMX_D=QJ>bewi
zSEe$S1>%VIEgM{Rinro6-CXw|#U0hddS0zpaTKu(GFqx>1X&tt?~Jt+*ADR+%~i5>
z^}7a9-JNxvYb<f*O_r|LYiH@<eb_hYWpl6ZJ-)S`z2g&kIQ9qg>UP857mZn2=Wy|d
z!Czim?pn #D*C(FRxd(X?Q&RjjqlA!m0wj=+j)xz=W*j50FI1neqN*}tyEJpt|-XC
zG&B%Pv7=C`C+8?e11=CI&S+<Z8%~i!tmFvw#CEZi&TKbkshVEbNe#LFVXAL0Tzz{!
z*;(W=1nkdTCGRdsERp=J(+%FP{_w5$Hq37hL{1J=R7sw1&zG+dCe P=_lKZRJ6MDd
z*TfxVp|W+mIb0M=ENRVbc}mY4gTyHY7 r?66Spuak8|t2esPzRTIwZYXURdbKVkZI
z(Lw7jE}Q3Sdo*`Gcgb&hN*5JxZ6Q84<rn#kY~Fz;Pg9)Qp768Zk8$PM{I;_Fsj4MA
zGbH!r8 *UX{kQKcZurj?NUc;ajoRdwHRNR(AX>;* {}`G3>UA(MR6X)TlNcw7-_7R
zyX9+|0%PD$`TmTK>@~i^O`g=B=z+pdzS8sQHXwxJq=3vMFX=_K0ONujE+2}%z!(1t
ze?Rq@<@_=Is<IUjpU^LJ|0!R5xnxuDjPs>0+<7}Gacfemr1#y^oJXBA9Vs>TVMP+)
z87!;H=X5ME!1>higr^0d00xEV!YCvg=|V~IJtcrb6ebt&1{2<~f#&MwUY3i&k380T
z?C y4DXsF|O7kmyd!p#JAzOSm*=_r$Cd^&h-3`JU#FlvQ4P-mzU$f*)2)bRcO_8Eb
z?bzF+)<fUyFVSUuH+zriaaZE|#I=a)(Ytkgt%Qp4-VHoe36)E|&6+Il>NoVbT<N(s
z!g6(HKkpa;I4OdY#}wuU9e{9A83mkES9zCu+*;4IlXdy+yqO<lJ{#b qippO)vi~q
zw<By$kJ*8<&qN$jN`)!~g1_`TRs)P2hLciqsobMy(V}FOzCkwuA4Ms^odhD3w^(mD
zjH1Rw vD9*a=a|9FA$0HkbY4ARx`<0`c*v 2o+02nyH-}BS*@1B7Mzd`+JFHe_sSv
z&lZw%tk`w!^^LAK8aFeX+ngQsbGZ^&&yT7fh!~-1p0*J#0hXy2-wQ>H)Gsoz(Ap0T
zGyJlD_)p(|E#I Un>K+qT${;AuqIpbx?h8m<MR}1o9A!+zjuUfFS>0&+OZaSTDr7q
zc5c+uZO;xo%iC!fPF|Ce9o14bpi`Cz$8vimd%=4ClfId}V9N7TdCX$GkJ-M{Jkq4h
zx5aVuT~i_PttfB#R{4vZD$rD0nN=pDDXt=oE2 ^UiBl94Cb`+ztu@6%Jk|VF7|J|U
ztye!#+Pq)yBR8sb);aIi#4h8<<XzqoZnNBP?hDSAE6Y)rz4zvO-gghN-fl4=W<~sL
z&wkBgu3dg`G~dmvU3^cu)xVij!%<g1<u;aNk&|5X<`90Mwo)1w5S=mt$xWOj0n}1n
zs#TzVz=DoqE&a(uX1*dsOB3zIVuWdjW~Cg#R1{0Gae Zwl-HLuN+_CkBY$4FnE8P-
zCOgTd<>nSDhP6gtW2|)rpWC0v8J #QHGX8ScTKWzn;qss2*!)r<YkQIz4n%?NlV?#
z)_$VsJ#W()QA>SyvUE~2+bd^{TdCpeV EnGM`ux^@uRW)M!P6_vsg{i3Y)%XteUA^
z(vE4maYOhqLcOGdHi38Qjk&5w6RWjk^J`;-s9+?SFZmo3t8L#I(-T|RDmoq*-=#R@
z8IQi|G*Flgy#7xWO;i*P&D++)t+(5C*G9XRdbD-l?;h~1HJ7=>MG-2Z#R?(bwzCYi
zSS?#(gYo&x`ffd~n$<;~a$D{8-nHBD(<((p8KqM4VsM#a>Y4jFw^D91qDr~ev9_>U
zKV0V||IvD2n`Qf&?JeS4Cf!b$7$30BQpQ#;Px(t1Z$|WsI2d6m?{4jE{oFdCykRM4
zX<?~c_@)-2wbl-28o>e<u+W-~R<x#-ZIoOfugmk1hvjCuMlN|W!Q9$h((HY^fa`wO
zjjo68)Oaxc-o?A}!}8BseLk+wMx&K|t20}2D4C2HwNt*Js%fIu#^n*WNk6vx5R&?0
z-_vDaahfk#MmZkd47^tD%8An#zUeS- c3L0oLk;(&AruD^0p{0CW(0!k}ahyS1lz=
zU)3^cnY4NV6GWtl5|JKxS;AtLI3E~;jX}o1*q-`Uy|KRG<r!I1PLOYJ{gBnj8lL6b
z+tV*SxsY_>^_$du=L(!IILQ8s9{gI~WPT=&TPfu&4NON&jla{4cjjbMC;!UYB(0G)
z+5ENTuqDuPA$o~RCYJ-22C?aGVT(EX*JRv6ToYY4o=<T%+}pTa9G}b7##Bseqiqo_
z#D0-UUUIAHcGY_G<`1L?HiiAC`uWe`z0bRw_YTu!w>z%yTo2ywZFyuKt-qYOgc{W0
zy0V%cnLJE$lM PUEp)2j;lsUbBWw?BPxU;%*ZT`h$yThMf#%=Ct5LR(<ov6zKehjt
zJ%7Id-`&0^sB7A98fB_*d7b+Jx65wdjMsU}b3$@>bBtrG#410Rne_5+3f|pt 8G=w
zM!2Y0cSOYVaaO}+r}kD3b7^cEpth=$E)&#r;h{~jPEb)Qx2kR#X%sXnt4)^8su>Mb
zuq9r-REdl;*Hfvgo #BGEf*?7tuz~|iSdI%>#ma29krC^#u39;y_MZnE1po?-Z1L}
zpKnZ9l3fmK^Bp~^B*rHv=18p4_HIJ9q<yik%7>&rPiw6Q`DSs}GrsoN$`<-igVOkl
zsz57>q65LaAr{mQR;nL?8w{ij$N5OfGV2SaW%(?Ar)#Xo!+>0F6;t0kMzhEogdz`t
zOe3DVTxOWMscI+(*=ek%$ WN9feY;9jA}`sc8Vx2u|PXbH(?ihC<vB7Q#Z9bv6 Ri
z%LaU&F4uaH%gAxIL+TCNSiQ@|y%BfgDmc%_^wtN-_vmt=SYX~E+Nd;bt+rq5B;RO?
z395yDPaB0v9C23EI%+TZR)53SB38p`GHnrAweybRVw0N4P)7;*v+Eu4!LiDe+n7cX
z$Fa!BxH{2uohdKs-D`RJi7csSzgl==C3gI$ik5W8Hq2IyqAN-)Kd|Dqn47l2Hqo|B
zxGJl1RTg~3crjW`poL$oPq6P%qr{-(K?S}n!Y }mW!$`Bo>O=3f_a%muheI IjQdA
z2ZFgmFsbf8xvh6^%z#YUe0%%XHR^mmxo`H*Rxsh;<@eJ~9~&lZ4Bylez8W*E(J%)j
zdc-}9JptXS^r+Ueri(SQZe-oa+HOPSO?gw^G>=!gRc 7AJ0Su@fCw<6%@(uOY;`U!
zTc)f}+4$7fv)a!bK4Y%_qgNlF#lE{?cI>Ruvu44U`v%nb;u^ep9?|%+AzD1y|8~Za
z08321TG>X`xU5GMshsmnlfuTUzvlBn+QY{W!(poX)TPsYf*r>8h1=%9PyObKpDiYz
z<GqewJRa;GrDxVN>6t7JHAl +b4-WCda+)tSEsdC+AHmqe$4Nk-&?;|wi>&t?WnfB
zrhRLs9szx_OoEkXR%~D11=_xElia58KQPc4*f(Qe^#0t?W?Y-ht>6BtT;27(jyA??
za$4G1_nY$bH;L_+6k8m)tdeMw)HUULaxO7UUm_dnckx%3)P8k}6z %5HN2~+)?ZB=
z5;^FjO3vWxAKZ`rpP~PXFSZXj%Nolmmqjj9v_^pq1N#Q{#%_9TdTDw|l+O^K=0447
zGbH<<sspPSAAj%n A~f2sNt{4BUc*HDL&duw+mJ`-zK7Y%b<!&W?hrv8SVd ONYC7
zb`9v78#=x0{HV(<@!iA24-Y>)Ec$6zwX51yY|m}aZO?5ayPUE3Sqi9*X04IdSGHHl
zn!gCrhRHo ARZ!G<`vD tC~AIh#Y*YzG6T7wC}}fwL#rg#i^}c8tqw%i|Vchh#K5e
zhqU%aTS}|$YO1)Tj+(vHS2PrHrgGwzHkZnl8%BARTV1mBirks7NDk8Ty6iRwo5x<+
z>bKEL`NzFF=yA~fl-sCU2V)M#C#Sq?vn*~#Qi{D%p<7O=KQs1g2Jz$~8{mN(#dwQ9
zf>(SaW&#0}QaeC21F{fEQ50sZ*wJthhmBY0R3MmaYQ8$H`r^%J%)ka*6tm2^G0}-r
z>IMyoR7KQaFn2dSS7DCvZgnhIMcA`L0#Qv}Jh?x)plzWu=H`ItMTyg#>)tnTc6U58
zbbYKiBTf-anrVkQ!t_ 8ikIRX>-1>toeHC^zFga_g^JS7QCc2RkvaNgkwraIBb=wi
zF5#uV(Q_M}wF+vTbGQ6SmQ^)nLv6G3f(kbZ>DA;zCK(qT?!w}|K{ 0c3RwEHDx<$Y
zB})Cbe+ag0$<347 Z{L}qm_=fQ%&QO<KyB}6=JzqAvOZDnaht5G${Y}{Cjv$ ?X|J
zTI7i5Q7`lZ8xPJtFk7ujYnYatHbJdXFV$o93fzaed$ lExl83V<?NC%|NJchDZhfh
zHb`nxy5Vl7w+L-{30 ?<@Ox3(VHb@>W6{VlC*!d>JmA4!{9JBvo7-^t(B&<cm-BSb
zvAw7EK8LoA+thDUFylRcmeu5)TXe*&J!;O456`!(En$4Hyf?3OYp>n_LBQX5n3r d
zQLIF^KMgE(7u8)=r!j20wYl<^nKHrI(%I74GRcL)6ynb>W-3QH$^jkdKnF<bl+-b)
zJzKjc^&H&uBW&{AuxLY85JIdG0x~j${8M;Ddw6 ~g=)uY?5;TroDH09^)4WMg&)39
zZCZ`*YJN{ y>oSI*7e~zu>bGTIo0G$-&2j$vB(*bw#Z)UnEkfnh{FP6u~;k?L%`3O
zCuW`iUrijspnt!ce>0?zp3+922YGLozFoq=_|BMMOaR<*!wt0O+CA+a^qbZH= -vn
z)tHq<R{V~a?_O;8BxF$ Y+6ZHsVl6?w9dOjo*tZTIkh6Q;8!CfUKM*C^d<+)Y&Emh
z%vNej`lp{t(r>Eqh5{vmz6tsUMA>R1o;}HA4siR{G|!UPRMO;0no2ZR6FcxwN#_2P
zR-;r)%eSfnpBcJ&mC{s8j$59neX5aKZW*G2smBEKGNYt?rVPswwVX!E&0Jf>sqAW*
zWs4DPn3-dCRqNDbrA(U9na@>DZG-yWIG`r09L51<qmG{JG0(NJ*dWIF$GGQ_Ulr(>
zG(M$N%9NHav7aTJv=yj*CMD4(okl=WxySHUH$ H{ShxaQB^x1h$A#nUqDz_6g?s|?
z{D1A;XK)n9wgBLBdS+Iu91#*C2$2z4WPwG_8H;F=zyyIrGTEd 4gw6AByzM#A}13>
z=7K;1glr2Xgal%hR%x}nJ=5p@@cVaP)pM17FZO%;{hg_)Q*+LA^>k177<2Vcok}Vc
z*$0&kwFE*FJ4Z0kHj04=ss<+^3l_s-_#TR(EtJttI0wM0vqkXM^3LwRls3>IBS31;
z`jhWnu*6yqY2zP8=d3O`VJUzAr8R}$r}^B37CZ)(D4AWxXb9E(@hMuFmllY3n8JMd
zCAI@&#ay))`w3gKeLNn&kb>9}UW|9p6XMk2(gLvt9C#cw#whqgt;8MV=CT{-Y?F49
zALYqxw;8mqYHpsFg>>^&zf7OJKxMr+PlGe3`JShBWsc8#*>8h)|AA-01_18QOsxH#
z0&weO{QgyDfZ!p4LDO;ox^8Y}zr^p4U*G2MDbjgQH~;`!gZ2Obo?TpyR{I{{+d4yX
zGQ$7&H=W-L19nBuO(?|HP7C0JTM?`2G+WBH)RijAFQpe!qI`%g16Q#|b`WczpSUPT
zffJ-*iSn8<iHotyPZUWLAXxUL(KLf DIdfEkwhW#Dmn}8;kFVjg0-{sT1gRgp#!DL
z4&+E-)Jt|3ji>=tmsXKZoS_ 6wb)8$p^^y4R~QXCUhHwrX#;xNH`Co=)vd#V&Kf z
zS1L;# Y2|_q HDW<0Y1=mI(EX<79Ce>QDmAf 6>eQ=nCom|9sCY8s35$xazw0rt&H
zPgxvbs$DaxL>`a_06X9)JO+?fvYznJVpU}6A28wlTBV9K4(2`DS*}^Vt&eVJ=FKz?
zwzkO{YC2=-MVY)JTgl#HYshEEzz;pNaBP4Np+K9Dp)3|U -JBdZw-+0J21c+m9vBF
zrhJ+gvt5{jdwCVuj!{&uDy#{cBK75|@Q|H`E8K<r#4_frR$%#bSfs04!9_{3yT<F%
z3hk*$sO^m5g-+$&H2+Tn^4ofR5U=?PT}xLNig#;hn0>u6oKFvq%^&_4KI<Yd8ylPd
z45{#v<?gnwpw~I-cJN@@;uxr}Au5s{pR?C=jS6K4sVUikg<3)il+a9Yr&x%Bw=e_^
zuo{Y4C=A6*Gz6MLUu*;#{)h%lfThp|EMTOixD--pA?V?2SdVG61S6px)C4nR!wblU
zu9$*9!hEca&ZvWt(nop?X|P2pG=*CnX{XlCQc(?*a^4rZ>~l=g4NO|)lx F5!jgk5
z6|VxgkGIxQ-%%g8Ny1Y+q6{2fG0}6e<FDrW(i)|Y!#Ty<dR(0aw`Ca<!5uEpa(!#1
zGklXZPuE_)OY5%Z #lOgk2rhKP*m945^--t?f~O;t9|}^wUc%VLP;+*l9u6p*ey+9
zFWC-_vwGMH7N|era HF!@_wv {fwu1O_mC`F@XEAXz4vm=N;gJ)IrvB1IB<0cyT5j
zgjne cNale5uftTlq0#)a-OfNq8`^q CZIl_4eqgy5{azUOI<q6^yqG9%>#<7?S5N
z8)Hd#cU#uR{iP72)0t*9=Rjp~ 9*v}{o@5-V`KBzhfvUTgw_k7%Agt%h9dwKcl%d%
z+XmAqwB(IpF|O8)vX`y1rB70k)K8l&B}ty}gVbM6pjxn&KyD5S`jd-tTOg!TvLeBC
zT1Y*V{ZuF_&~!P9Jm HSD079G;$f8HA$+M34V71jP_c;g%9q6H7(~jOp*5w5$I47C
zm2SX%X+GVhF4RssL-urmTEO>IPwatVT1UrleKCC0J$1I%KhquubTyqZO)u};JE_34
z=w7*3a7oQ8Rj;|ZVSl?ej=7$xx;-jtN#I^&QjF4STJvnT#nrl6&5Ny`->1l62}=np
zeOBH +gLss>|vM`EpD)tECW`G0vrbI(Wt#;UhF>XQWwJoJOu}M4^;3QY wcG_Sh6Z
z Gxl^tIH<x3^;*XAxph1RRRN@<p(f>O_nWuzm|a;*hqChdn>9_1-=0dYz6k J*gPn
z;A^#9J)rJ3`D=#vQ?q6BTCt*VZRvLB=VD^hz`Es6XTX 2<w{X~2Y^iv*FS1m^^Ygq
z#>VFF=U+xo0y`}Kx?ns&eyfL_KmGun-2E!XLmTvTJ?H!*MYBxlm^2qtC6t 8Fr}K*
z8`~=1(Hpt876l<RO$mVn_z~VHhsgp5Xt%N*6fu*IE1!h3_!?w6McC1MI;u3KX;etd
z<Z)sbWx;8s0#&Bz6s+tNuc!+3mP3e(i)51b&`&gmI><{zOUfgedDAv=pK6L>a1Bpl
z2WyPS6DMz+E|1j mtI)QTaNR2?fFK(FL)+9pkz3Dnwk|KEBit%y%%KIWE^fjk=Di7
zwDg#IjC;dA J1OUSteT9CU9kX=`e<=VYnP$Kqz0xu3<k6QZFM%Uu>%$!(P}98}MpU
zcg(?9^(lMDV&Eumg*DM1{dgHPga)`?jgx-HY`n}7e}egvu-;J%FdK5!9T+HLg|B*B
zJwgnt K{S!skQW~7?rz(3Y{{=mG?bvmu=ohl^4dQo!c1&SsQY gcAYr(3?B{j4>`7
z8=Jqce`x|nWCY(P0-&pPmYdfB%#GU tDgtZH*ZY0xIkF!t=dg;P*}W!MR!Z;#`=Mu
z-F--xszbEI#dalz8N^~KTzN)Cpo$jqHH?NlsIEAPxxxTnDfg%~9HHmRNYRTjsYK2a
zDorIf<%yUr`qNWo937! I3q`sfo9RS%4RwuuG1pfU)-e2w2QT*N#st;=_ T>a57o{
zA;M`f<rlZnZ?x0cDiivpd-^FRx1-j({2p~w8)qAHQ!N9vy>JVj;|%9xY^9WlE%hVW
zT1;XLr?DrP4{5>&7vO5lQ*-ettAPf!84?bG>Z-&NaF^7b4`gH5V)(!fSPN$1c=aYb
zj=u^YJ{U(sUv`P-;ugG$TliRQ9h^m1enmG|DS}j9fg-gYY87?3DcNe2M{C_mE~^)D
zvQ|B9?YkFm%EfF;r+ab7*T4i<Q}b8-t3j!wck+y9Ujlq6&9>XR pG4ljg8G;!SC*?
z(SLsc77#PuCtZc^PTg=)-XKiE5W5zR*?38RS=UYKBk#8lq1l4upRp#JFU^vB2p4Rl
zIp~(c1u-4l%Bkdtui&k+S)3!In5~PaO>~v6$y0 gcuU^OLeT<3p`E;z9#CC)F1ynq
zQBTa2u88kMKRN_?B9B}|7v583h!gOj{It4B8!61id&~ByDg0vTj1Lj!z9QOs+-tHD
z&c 64-A>!pmY+Fql!~P^`ML9Dc^GQ~ha939XSHyw(i=-~C#K*tmVg=3LNOJ`u<fu|
zea}v#6GicI779fer G+)1X#wu2S-G7RF~mh`~`PfzrkzlnRJow!A+D+7x 5wUVY5J
z<vnyaFj LmeOA_l`p65l^sMe52RJkoWo28OBI6cNmUW~dNE-=PE#s5M#bg5jq>VWe
z^0~{w#>VEa==cBO#WMf7#SBpUbgomD4A)-`jIQ0B2)yX4Md iY)_0vtOG||MlJ(VP
zXu%>vUPxP%aoS0EO%t^^EgjooE*#SZ;0maU{k0VK3c~Q7NT+*v3w)F!N|(k$q-ZVm
zpxR*75=3P&gR1gi5rr0XhDsQW{!mdpg+pK;z9{G91YIHA)KCzNX3?f3OQI#&y2VPI
z6<;;p5LHZd9QJzT^O^clY^jo^J#y$KUBpoHP&DFIZ0X>~-eMoN)c!Rd!t)TRG{PW!
zLC^6%i^3~7U1YL_ERx;SYT(Z>7q9YY<^`k;<tZ?dc3~K=O*hz6shhPKJ;j>R6y9CU
zwYGw@>V KC!bfVN){qB4s%5vBpW8Dr)w!M+nA0(~b43m 6>_GWvD*jbB|eu1_xNqg
zoY>D 1U5D{e{Jk{pQ&FPWTyv6KEAI`4FITeaKz&~1^};fu60d)AU-cFP0x=AzfT_v
zT(kf+v~+Yyd#x?^q)2N!Oth{fq<7L1b2sfYWz$T{Ea=E?;%l=Gt3n=}u}o$07>l>e
z{V icvtH(3F$f!>(G-I_*#%rtOi;=;;^xBk0%09E8(pnS)S+x&NwH~kQ3KV^tQCb9
zEP}_Xf2E!sgW5Wa#Gw8d>QGDVP|_w}_o=#hjHyDIqs6DRvNc(>gTSIO-~~dqZvX%T
z#z{m$R85^|l<@(!M^|z$z9XgL9oScf(gGNTI`cT 3U^tkc^mV<686Cy0w<ucyvlrs
zlGz|;Fh8XdB~Q9;2~%s8=V{X{{qi2=w=P 3v-6@qJoHM}X0|=wHmd$W5mI?<({7Rk
z$KBmSrdSR`d9KgS!QIDy?zG$3*!-RRY134G^LmX=TnnHp^4PES1;{DMo8q1Z&8vT^
z(Ly_mgYAdejkE4yl Op7IZF-oVax%WC||KLBAyy54TKX+73<|uVh3D7nJI+YBQalS
zd 0PPQ@oCvz!O9t>p}A=(-ZYDZ)Mz2vYPp7J98FYt(~}?(i~mCh^p2fekm)umeL*o
zI!6tOe=#25*6fo%e5FETrBB<`ExGW(cS7x#?(gNsZmPYz-7+Ot sYomHYs=X{iI*y
z0L4dI$2_RBlte0QVg<Aq3h=g?q&5(vU<)3y&ZlInj;^S03Jzl)YoiS)6XwHjCuj#g
zZMie*<vxn7H8$e A_q7WQqMCH0AR<4ksoc7fi^Zaf5gA7390|G#oPzo0J1^{H>)ul
zT%CV?75Kb0e51RmI978+U+->CNA(k>h4LiHRZW!o!gMJIs<Sx&v=^qJrY314#1Y|b
ze$MZ5O>1j(D(hfbuHG~)F9xSZbS5CpV?=!;%t~~MJ9iBM%3NQs?)g8&q1#k-(zqu8
zj`M3*8m|X%IAqmlorJ+msff+2xZW+&{wzdE++K0mEuE1(bb-16 {umXLV8bS@Q4r8
za`+f+7FOc7^+&Y^MZU#@)Qdu-{b)_lwGp8f*T&7ZOoXeh$(LsZE`^ek6N#N;MgWMV
z<%_OV{M_lav9bBT;NRHSn=^+9AYdv$<~9JIAKbS%{R;3X|KblG+kyEvZ?ru34V-am
zrnUXp6?^O2*}sx!;V0x;Rp}!(;B&NZaUHcY?Jc}od{jiF3_3YyYBBU~xPMHYt%E O
z5MSD=^c+C`wljyjMEst3zG!+n0l=$A<w9RKfcjCm*f|?orhm$8P;wJaNK)k!RjXlv
z*Cp)lv>k)MUjI^rqm)xs?U>V>f~8+R&QKbNjruh8rbBNSQS2X(V4eeMWdV*Uk3Rtv
zPun_lRHx6KP8%B=n?Hfwp&65j0Q?_JG8lf_PkHIY2yg}HF*>dl1ObGG{$njP1?X2N
z in;A>OS<lI30k?`g;D+bN{?JzL+(7$g3&<RXc Dc(?;#+Y_RBQ-3=~1dRXyL=-dy
zkfx2S3AJl<?dkbx06<{9?t3%Ge(t+yV`KCG$v*+`&Bpyq90B_P0000<MNUMnLSTZn
C4-+l`

diff --git a/ipa-server/ipa-gui/ipagui/static/images/template/Makefile.am b/ipa-server/ipa-gui/ipagui/static/images/template/Makefile.am
new file mode 100644
--- /dev/null
+++ b/ipa-server/ipa-gui/ipagui/static/images/template/Makefile.am
@@ -0,0 +1,20 @@
+NULL =
+
+appdir = $(IPA_DATA_DIR)/ipagui/static/images/template
+app_DATA = 			\
+	background-content.png \
+	background-navbar-active_fullsize.png \
+	background-navbar-active.png \
+	background-navbar_fullsize.png \
+	background-navbar.png \
+	background.png \
+	background-sidebar.png \
+	$(NULL)
+
+EXTRA_DIST =			\
+	$(app_DATA)		\
+	$(NULL)
+
+MAINTAINERCLEANFILES =		\
+	*~			\
+	Makefile.in
diff --git a/ipa-server/ipa-gui/ipagui/static/images/template/background-content.png b/ipa-server/ipa-gui/ipagui/static/images/template/background-content.png
new file mode 100644
index 0000000000000000000000000000000000000000..082f10ae1c17d6a45bb58298e4f8768fd99f913b
GIT binary patch
literal 194
zc%17D N?(olHy`uVBq!ia0vp^tU!E)gAGWA V?9kQY^(zo*^7SP{WbZ0pxQQctjQh
z)n5l;MkkHg6+l7B64!{5;QX|b^2DN4hVt qz0ADq;^f4FRK5J7^x5xhq=1U-JzX3_
zB3j>GG~{A1;BgAn-TA+A^U~@|%u7DV%JVgyI}>#JrGjUmY1ezT9rB02ZSqXumTy$x
eXab{ut>QIK95ZIsc&!E+#o+1c=d#Wzp$PyA96I*^

diff --git a/ipa-server/ipa-gui/ipagui/static/images/template/background-navbar-active.png b/ipa-server/ipa-gui/ipagui/static/images/template/background-navbar-active.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b088501becdf7992c7826adb7d15bed196ebddc
GIT binary patch
literal 610
zc%17D N?(olHy`uVBq!ia0vp^B|vP?!3HD^S>JR3DVAa<&kznEsNqNf i_}TB8!3Q
zuY)k7lg8`{prB-lYeY$Kep*R+Vo qXd3m{BW?pu2a$-TMUVc&f>~}U&3=E9-JzX3_
zD(1Ysz0r%=QQ+9enRk6n6grk&a2L3L;FS6|+bu#zj;XaS<580c^w=ZK&FkWkrvI>~
zeE$9Q8zcK#?XAl #Z8Sr+U&QB$}HB*dADxy{l!8mZR=L7a(U^+6Knb6Yw6WnAy1o{
zPtJXFG;Z(iCA}-$I9Gl8_fakVZ}-;Mn;b)%ri7jNc`|ja^pdkB`}nVXy*zcd-V?o$
zD8;2yzP{<&wn!-D=e3Bajb*w2T2^&=O<1sT-rb8~A=C3_o-6h %b4&*bgE;tqIFU4
z<86XP^WDU>Y(;ecFWvt!`H9u0sjK2T%1&fXYMcDqD}83->|`tHlO<+RH+5y-%}>)e
zm}7TkpXRN3*L8T0ZMVL|b gEOF?Cr39<DaWg9aKBY^;YDBuI$xG&dy%APG+X;THe9
z;%tS}!6mEo<pYZ=&I;Xsl`X$s(p_&xNWqhBeb;-Gx3}&|JNf(JX{PuGIbz?Bd! Ec
zJRQH)q#G>tW6JOTC6CVqmR&quv!{7&Kxmw?X<cZ`lQv~>uw6Qh|8oxtRXA+~TPIw}
zfAo+r$o3D(+(MzfHVYlj^Z- 5>j{NE<zzivts!Lm_=M}BiQVl$CA(t`Y!(6?-D3oG
bza67rRGZ#Y`=SlN^uXZh>gTe~DWM4f`zr)V

diff --git a/ipa-server/ipa-gui/ipagui/static/images/template/background-navbar-active_fullsize.png b/ipa-server/ipa-gui/ipagui/static/images/template/background-navbar-active_fullsize.png
new file mode 100644
index 0000000000000000000000000000000000000000..756a1e61da701115cca87e19962f3cc20eb63d38
GIT binary patch
literal 634
zc%17D N?(olHy`uVBq!ia0vp^B|z-P!3HE{H8wN?DaPU;cPEB*=VV?2Ic!PZ?k)^q
z Y8vBJ&@uo Q5r1YQGM`j7}P}D}aLRC7!;n?AN&j7__vdCjLnTn)1uj#WAGf*4x?E
zeuo`IT;FeQXAouLieO4&4_Py#_JZQYix(U^Ig}nPR+;BM x$atoj=pmESI~4by@B!
zpT~Y%ZeIS?w%y#H4xF)y6%R5JjGA}l)$(!{kx2obMXq5+(yQ{EZf9M+E4p{$in}t8
zG`mB$pUM ^N;`3e_51qJcRDNAS$JxsIDT=vwy^B*o!QP87x!QJ(GeOO _1Fym58)u
zQMOk ^FKYGS)FnE!Q*%N&KIBF-FfY`Z&=yF+Zk(5`S?F}mwh8wYr8P*o7l$}y?o#M
zBCoP;GUL7S ~Y>qqUi4 Go9|nPCP!nHGEyYL{HFW-x=m7_o;2&G;8YFrwNJ=b(YAd
z9^M_&GOhN{2P=`ns41rxXKXiad=j9t-tMbKO3+Tvg`M1%^Uhz(+kN5Shhz1h`5O19
z8|<05Wahm?*N*+WBfmo~W<!_c#3C`h-|1 t5|_*|e7WXSGPi<=02c>qixPxlauVd?
zXwBi+b1_^_GhL<RrqC((y-$IfDps#|SQzq-D>TpfshGR-({+AN+w|nWequ^b>(^b`
zKQ*cS)YH||?z9B$^w}BkV# B#+ibrt`W-lb>Zy(?#>IVI)3~(67d8YqXaMc&f>2x>
zv0fFg`&*puaXyv5qat#{xe;i;qa%;2iikv4L(8G>LZ{ soER5=@ZZDmylh93bD+$6
PP^$5C^>bP0l+XkK)R+-0

diff --git a/ipa-server/ipa-gui/ipagui/static/images/template/background-navbar.png b/ipa-server/ipa-gui/ipagui/static/images/template/background-navbar.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c6a2de4031c868e92463f9c173295948f934b56
GIT binary patch
literal 253
zc%17D N?(olHy`uVBq!ia0vp^tUzqf!3HEX`k3^96icy_X9x!n)NrJ90QsB+9+AaB
z_18g|(Me-=1yE43#5JNMI6tkVJh3R1p}f3YFEcN I61K(RWH9NefB#WDWIY%PZ!4!
zi{7h~47nN%cw8q7 hjZ>@1u8a9T(p&k>%fZn+pbYEvm2ivV8qQo`zE_uKPGsE!9%b
zf4n0yrBXgV RzB`_jG}PYX;k|`p%e8GjCGwuG-%hzRqHb2wajkKc`YFW8Rm;$7Uw&
sUA4&1B__{)$5gqMvp<y^hyMA%B(EGWAs}l_EzlJVp00i_>zopr06k<`f&c&j

diff --git a/ipa-server/ipa-gui/ipagui/static/images/template/background-navbar_fullsize.png b/ipa-server/ipa-gui/ipagui/static/images/template/background-navbar_fullsize.png
new file mode 100644
index 0000000000000000000000000000000000000000..72a710634e8e4d8bc0969c11888bda08803b7836
GIT binary patch
literal 251
zc%17D N?(olHy`uVBq!ia0vp^tU&C>!3HE*7RRXrDaPU;cPEB*=VV?2Ic!PZ?k)^q
z Y8vBJ&@uo Q5r1YQGM`j7}P}D}aLRC7!;n?AN&j7_ mWwtL(K3RQc$IEGl9PX6=l
zu`IJyLec I4)K(q|Nq-h)RL6=7kKwf{r~?-8#^N2s#HvFoG2Ll;q-cQ2{XgGzyGA1
zCp^9P`}38uOCN+)6z}~{_Vm{IuW`9A^n?C3mbSBVb^dqw-8;0VNusIe|3(QbsrMxs
n&K>@W7IR!`5?$BKj9_K__{Hw{-_{3uAZL5J`njxgN xNA1Atre

diff --git a/ipa-server/ipa-gui/ipagui/static/images/template/background-sidebar.png b/ipa-server/ipa-gui/ipagui/static/images/template/background-sidebar.png
new file mode 100644
index 0000000000000000000000000000000000000000..4eaadbbce8bfea3c952682253cf50e7611acac1d
GIT binary patch
literal 170
zc%17D N?(olHy`uVBq!ia0vp^VL;5p!3HD`d1{LRDVAa<&kznEsNqQI0P;BtJR*yM
z>aT+^qm#z$3ZS55iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0xOo-U3d
z8WWRa_EdbVH#0M13kwSa;}SDrVd29X3bH+IQoRfe0{fX$y24uIfLa(lUHx3vIVCg!
E0E&t#^8f$<

diff --git a/ipa-server/ipa-gui/ipagui/static/images/template/background.png b/ipa-server/ipa-gui/ipagui/static/images/template/background.png
new file mode 100644
index 0000000000000000000000000000000000000000..96ead97f33fb1189bc4a1b30b498d98833c7cf4e
GIT binary patch
literal 184
zc%17D N?(olHy`uVBq!ia0vp^OhEjbgAGVJXuEy|QY^(zo*^7SP{WbZ0pxQQctjQh
z)n5l;MkkHg6+l7B64!{5;QX|b^2DN4hVt qz0ADq;^f4FRK5J7^x5xhq=1S{JzX3_
zJUWyAe0X co(%}p*fb;>dBoh jyXQ)2{h+VI~Gv#C!pl>gt9*?X1mMUpOT1RV^G 7
V`YEyf(`KLn44$rjF6*2UngEApHroII

diff --git a/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid b/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid
--- a/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid
@@ -7,7 +7,7 @@
 </head>
 <body>
 
-    <h2>Edit Delegation</h2>
+    <h1>Edit Delegation</h1>
 
     ${form.display(action=tg.url("/delegate/update"), value=delegate,
                    actionname='Update')}
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegateform.kid b/ipa-server/ipa-gui/ipagui/templates/delegateform.kid
--- a/ipa-server/ipa-gui/ipagui/templates/delegateform.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/delegateform.kid
@@ -59,32 +59,22 @@
 
   <form action="${action}" name="${name}" method="${method}" class="tableform">
 
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <th>
           <input type="submit" class="submitbutton" name="submit"
                  value="${actionname} Delegation"/>
-          <br/><br/>
-        </th>
-        <td>
           <input type="submit" class="submitbutton" name="submit"
                  value="Cancel ${actionname}"/>
-          <br/><br/>
-        </td>
-        <td py:if='actionname == "Update"'>
-          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
+        <span py:if='actionname == "Update"'>
           <input type="button" class="deletebutton"
                  value="Delete Delegation"
                  onclick="return confirmDelete();"
                  />
-          <br/><br/>
-        </td>
-      </tr>
-    </table>
+	</span>
 
     <div py:for="field in hidden_fields"
       py:replace="field.display(value_for(field), **params_for(field))" 
       />
+
+<h2>Delegation Details</h2>
 
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
@@ -114,13 +104,11 @@
                 py:content="tg.errors.get('source_group_dn')" />
           </div>
           <div id="source_searcharea" style="display:none">
-            <div>
               <input id="source_criteria" type="text"
                 onkeypress="return enterDoSearch(event, 'source');" />
-              <input type="button" value="Find"
+              <input class="searchbutton" type="button" value="Find"
                 onclick="return doSearch('source');"
               />
-            </div>
             <div id="source_searchresults">
             </div>
           </div>
@@ -156,7 +144,7 @@
             <div>
               <input id="dest_criteria" type="text"
                 onkeypress="return enterDoSearch(event, 'dest');" />
-              <input type="button" value="Find"
+              <input class="searchbutton" type="button" value="Find"
                 onclick="return doSearch('dest');"
               />
             </div>
@@ -167,28 +155,18 @@
       </tr>
     </table>
 
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <th>
-          <br/>
+<hr />
+
           <input type="submit" class="submitbutton" name="submit"
                  value="${actionname} Delegation"/>
-        </th>
-        <td>
-          <br/>
           <input type="submit" class="submitbutton" name="submit"
                  value="Cancel ${actionname}"/>
-        </td>
-        <td py:if='actionname == "Update"'>
-          <br/>
-          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
+        <span py:if='actionname == "Update"'>
           <input type="button" class="deletebutton"
                  value="Delete Delegation"
                  onclick="return confirmDelete();"
                  />
-        </td>
-      </tr>
-    </table>
+	</span>
 
   <script py:if="not value.get('source_group_dn')"
     type="text/javascript">
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid b/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid
--- a/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid
@@ -6,11 +6,12 @@
 
 <body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
       <div id="main_content">
-        <div id="status_block" py:if="value_of('tg_flash', None)"
-            py:content="XML(tg_flash)"></div>
+<div id="details">
+        <div id="alertbox" py:if="value_of('tg_flash', None)"><p py:content="XML(tg_flash)"></p></div>
 
         <div py:replace="[item.text]+item[:]"></div>
       </div>
+</div>
 </body>
 
 </html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid b/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid
--- a/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid
@@ -25,10 +25,9 @@ from ipagui.helpers import ipahelper
     method="post" action="${tg.url('/delegate/edit')}">
     <input type="hidden" id="edit_acistr" name="acistr" value="" />
   </form>
+  <h1>Delegations</h1>
 
-  <h2>Delegations</h2>
-
-  <table id="resultstable" class="sortable resizable">
+  <table id="resultstable" class="details sortable resizable">
     <thead>
     <tr>
       <th>${fields.name.label}</th>
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid b/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid
--- a/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid
@@ -6,11 +6,9 @@
 <title>Add Delegation</title>
 </head>
 <body>
-
-    <h2>Add Delegation</h2>
+    <h1>Add Delegation</h1>
 
     ${form.display(action=tg.url("/delegate/create"), value=delegate,
                    actionname='Add')}
-
 </body>
 </html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupedit.kid b/ipa-server/ipa-gui/ipagui/templates/groupedit.kid
--- a/ipa-server/ipa-gui/ipagui/templates/groupedit.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/groupedit.kid
@@ -6,16 +6,14 @@
     <title>Edit Group</title>
 </head>
 <body>
-  <div>
-    <div style="float:right">
-      <input type="checkbox" id="toggleprotected_checkbox"
+  <div id="details">
+          <h1>Edit Group</h1>
+<input type="checkbox" id="toggleprotected_checkbox"
           onclick="toggleProtectedFields(this);">
         <span class="small">edit protected fields</span>
       </input>
-    </div>
-    <h2>Edit Group</h2>
-  </div>
 
   ${form.display(action=tg.url('/group/update'), value=group, members=members)}
+</div>
 </body>
 </html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid b/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid
--- a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid
@@ -9,26 +9,15 @@
   <form action="${action}" name="${name}" method="${method}" class="tableform"
       onsubmit="preSubmit()" >
 
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <th>
           <input type="submit" class="submitbutton" name="submit"
               value="Update Group"/>
-        </th>
-        <td>
           <input type="submit" class="submitbutton" name="submit"
               value="Cancel Edit" />
-        </td>
-        <td>
-          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
           <input type="button" class="deletebutton"
                  value="Delete Group"
                  onclick="return confirmDelete();"
                  />
-          <br/><br/>
-        </td>
-      </tr>
-    </table>
+
 
 <?python
 from ipagui.helpers import ipahelper
@@ -73,7 +62,7 @@ from ipagui.helpers import ipahelper
       py:replace="field.display(value_for(field), **params_for(field))" 
       />
 
-    <div class="formsection">Group Details</div>
+    <h2 class="formsection">Group Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -120,7 +109,7 @@ from ipagui.helpers import ipahelper
     </table>
 
     <div>
-      <div class="formsection">Group Members</div>
+      <h2 class="formsection">Group Members</h2>
 
       <div class="floatlist">
         <div class="floatheader">To Remove:</div>
@@ -176,7 +165,7 @@ from ipagui.helpers import ipahelper
     </div>
 
     <div style="clear:both">
-      <div class="formsection">Add Members</div>
+      <h2 class="formsection">Add Members</h2>
 
       <div class="floatlist">
         <div class="floatheader">To Add:</div>
@@ -188,7 +177,7 @@ from ipagui.helpers import ipahelper
         <div id="search">
           <input id="criteria" type="text" name="criteria"
             onkeypress="return enterDoSearch(event);" />
-          <input type="button" value="Find"
+          <input class="searchbutton" type="button" value="Find"
             onclick="return doSearch();"
           />
         </div>
@@ -196,30 +185,15 @@ from ipagui.helpers import ipahelper
         </div>
       </div>
     </div>
-
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <th>
-          <br />
+<hr />
           <input type="submit" class="submitbutton" name="submit"
               value="Update Group"/>
-        </th>
-        <td>
-          <br />
           <input type="submit" class="submitbutton" name="submit"
               value="Cancel Edit" />
-        </td>
-        <td>
-          <br />
-          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
           <input type="button" class="deletebutton"
                  value="Delete Group"
                  onclick="return confirmDelete();"
                  />
-        </td>
-      </tr>
-    </table>
-
   </form>
 
   <script type="text/javascript">
diff --git a/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid b/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid
--- a/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid
@@ -6,8 +6,8 @@
 
 <body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
       <div id="main_content">
-        <div id="status_block" py:if="value_of('tg_flash', None)"
-            py:content="XML(tg_flash)"></div>
+        <div id="alertbox" py:if="value_of('tg_flash', None)">
+            <p py:content="XML(tg_flash)"></p></div>
 
         <div py:replace="[item.text]+item[:]"></div>
       </div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/grouplist.kid b/ipa-server/ipa-gui/ipagui/templates/grouplist.kid
--- a/ipa-server/ipa-gui/ipagui/templates/grouplist.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/grouplist.kid
@@ -6,6 +6,8 @@
 <title>Find Groups</title>
 </head>
 <body>
+<div id="details">
+    <h1>Find Groups</h1>
     <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
     <div id="search">
         <form action="${tg.url('/group/list')}" method="get">
@@ -18,7 +20,7 @@
     </div>
     <div py:if='(groups != None) and (len(groups) > 0)'>
         <h2>${len(groups)} results returned:</h2>
-        <table id="resultstable" class="sortable resizable">
+        <table id="resultstable" class="details sortable resizable">
           <thead>
             <tr>
                 <th>
@@ -44,7 +46,7 @@
     <div py:if='(groups != None) and (len(groups) == 0)'>
         <h2>No results found for "${criteria}"</h2>
     </div>
-    <div py:if='groups == None'>
+    <div class="instructions" py:if='groups == None'>
       <p>
         Search automatically looks across multiple fields.  If you want to find
         Joe in Finance, try typing "joe finance" into the search box.
@@ -61,5 +63,6 @@
         will allow you to resize the header.
       </p>
     </div>
+</div>
 </body>
 </html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupnew.kid b/ipa-server/ipa-gui/ipagui/templates/groupnew.kid
--- a/ipa-server/ipa-gui/ipagui/templates/groupnew.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/groupnew.kid
@@ -6,8 +6,10 @@
     <title>Add Group</title>
 </head>
 <body>
-    <h2>Add Group</h2>
+<div id="details">
+    <h1>Add Group</h1>
 
     ${form.display(action=tg.url('/group/create'), value=group)}
+</div>
 </body>
 </html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid b/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid
--- a/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid
@@ -3,13 +3,7 @@
   <form action="${action}" name="${name}" method="${method}" class="tableform"
       onsubmit="preSubmit()" >
 
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <td>
           <input type="submit" class="submitbutton" name="submit" value="Add Group"/>
-        </td>
-      </tr>
-    </table>
 
 <?python
 from ipagui.helpers import ipahelper
@@ -36,7 +30,7 @@ from ipagui.helpers import ipahelper
       py:replace="field.display(value_for(field), **params_for(field))" 
       />
 
-    <div class="formsection">Group Details</div>
+    <h2 class="formsection">Group Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -76,7 +70,7 @@ from ipagui.helpers import ipahelper
     </table>
 
     <div style="clear:both">
-      <div class="formsection">Add Members</div>
+      <h2 class="formsection">Add Members</h2>
 
       <div class="floatlist">
         <div class="floatheader">To Add:</div>
@@ -97,14 +91,9 @@ from ipagui.helpers import ipahelper
       </div>
     </div>
 
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <td>
-          <br />
-          <input type="submit" class="submitbutton" name="submit" value="Add Group"/>
-        </td>
-      </tr>
-    </table>
+<hr />
+
+ <input type="submit" class="submitbutton" name="submit" value="Add Group"/>
 
   </form>
 
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupshow.kid b/ipa-server/ipa-gui/ipagui/templates/groupshow.kid
--- a/ipa-server/ipa-gui/ipagui/templates/groupshow.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/groupshow.kid
@@ -9,13 +9,14 @@
 <?python
 edit_url = tg.url('/group/edit', cn=group.get('cn'))
 ?>
-    <h2>View Group</h2>
+<div id="details">
+    <h1>View Group</h1>
 
-    <input type="button"
+    <input class="submitbutton" type="button"
       onclick="document.location.href='${edit_url}'"
       value="Edit Group" />
 
-    <div class="formsection">Group Details</div>
+    <h2 class="formsection">Group Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
         <tr>
           <th>
@@ -39,7 +40,7 @@ edit_url = tg.url('/group/edit', cn=grou
         </tr>
     </table>
 
-    <div class="formsection">Group Members</div>
+    <h2 class="formsection">Group Members</h2>
     <div py:for="member in members">
       <?python
 
@@ -68,10 +69,10 @@ edit_url = tg.url('/group/edit', cn=grou
     </div>
 
     <br/>
-
-    <input type="button"
+<hr />
+    <input class="submitbutton" type="button"
       onclick="document.location.href='${edit_url}'"
       value="Edit Group" />
-
+</div>
 </body>
 </html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/master.kid b/ipa-server/ipa-gui/ipagui/templates/master.kid
--- a/ipa-server/ipa-gui/ipagui/templates/master.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/master.kid
@@ -16,26 +16,10 @@
 
 <body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
 
-    <div id="header">
-      <div id="logo">
-        <a href="${tg.url('/')}"><img 
-        src="${tg.url('/static/images/logo.png')}"
-        border="0" alt="homepage"
-        /></a>
-      </div>
+    <div id="head">
+      <h1><a href="${tg.url('/')}">Free IPA</a></h1>
       <div id="headerinfo">
-        <div id="login">
-    <div py:if="tg.config('identity.on') and not defined('logging_in')" id="pageLogin">
-        <span py:if="tg.identity.anonymous">
-            Kerberos login failed.
-        </span>
-        <span py:if="not tg.identity.anonymous">
-            Logged in as: ${tg.identity.user.display_name}
-        </span>
-    </div>
-
-        </div>
-        <div id="topsearch">
+        <div id="searchbar">
           <form action="${tg.url('/topsearch')}" method="post">
             <select name="searchtype">
                 <option>Users</option>
@@ -56,40 +40,60 @@
           </script>
         </div>
       </div>
+</div>
+      <div id="navbar">
+<!-- hiding the tabs
+        <ul>
+          <li><a href="#">Overview</a></li>
+          <li class="active"><a href="#">Users</a></li>
+          <li><a href="#">Groups</a></li>
+          <li><a href="#">Resources</a></li>
+          <li><a href="#">Policy</a></li>
+          <li><a href="#">Search</a></li>
+        </ul>
+-->
+  <div id="login">
+    <div py:if="tg.config('identity.on') and not defined('logging_in')" id="pageLogin">
+        <span py:if="tg.identity.anonymous">
+            Kerberos login failed.
+        </span>
+        <span py:if="not tg.identity.anonymous">
+            Logged in as: ${tg.identity.user.display_name}
+        </span>
     </div>
+        </div>
 
-    <div id="page">
-      <div id="nav"><!-- 
-      This used to have links.  Keeping around in case we move them back...
-      --></div>
 
+      </div>
+
+    <div id="content">
       <div id="sidebar">
         <h2>Tasks</h2>
-        <p>
-        <a href="${tg.url('/user/new')}">Add Person</a><br/>
-        <a href="${tg.url('/user/list')}">Find People</a><br/>
-        </p>
-        <p>
-        <a href="${tg.url('/group/new')}">Add Group</a><br/>
-        <a href="${tg.url('/group/list')}">Find Groups</a><br/>
-        </p>
-        <p>
-        <a href="${tg.url('/')}">Manage Policy</a><br/>
-        <a href="${tg.url('/')}">Self Service</a><br/>
-        </p>
-        <p>
-        <a href="${tg.url('/delegate/list')}">Delegations</a><br/>
-        </p>
+        <ul>
+        <li><a href="${tg.url('/user/new')}">Add Person</a></li>
+        <li><a href="${tg.url('/user/list')}">Find People</a></li>
+        </ul>
+        <ul>
+        <li><a href="${tg.url('/group/new')}">Add Group</a></li>
+        <li><a href="${tg.url('/group/list')}">Find Groups</a></li>
+        </ul>
+        <ul>
+        <li><a href="${tg.url('/')}">Manage Policy</a></li>
+        <li><a href="${tg.url('/')}">Self Service</a></li>
+        </ul>
+        <ul>
+        <li><a href="${tg.url('/delegate/list')}">Delegations</a></li>
+        </ul>
       </div>
 
       <div py:replace="[item.text]+item[:]"></div>
 
 
+    </div>
+
       <div id="footer">
         <a href="http://www.freeipa.com/"; target="_blank">Powered by FreeIPA</a>
       </div>
-    </div>
-
 </body>
 
 </html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/useredit.kid b/ipa-server/ipa-gui/ipagui/templates/useredit.kid
--- a/ipa-server/ipa-gui/ipagui/templates/useredit.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/useredit.kid
@@ -14,7 +14,7 @@
         <span class="small">edit protected fields</span>
       </input>
     </div>
-    <h2>Edit Person</h2>
+    <h1>Edit Person</h1>
   </div>
 
 <?python
diff --git a/ipa-server/ipa-gui/ipagui/templates/usereditform.kid b/ipa-server/ipa-gui/ipagui/templates/usereditform.kid
--- a/ipa-server/ipa-gui/ipagui/templates/usereditform.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/usereditform.kid
@@ -9,25 +9,14 @@
   <form action="${action}" name="${name}" method="${method}" class="tableform"
     onsubmit="preSubmit()">
 
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <th>
           <input type="submit" class="submitbutton" name="submit"
               value="Update Person"/>
-        </th>
-        <td>
           <input type="submit" class="submitbutton" name="submit"
               value="Cancel Edit" />
-        </td>
-        <td>
-          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
-          <input type="button" class="deletebutton"
+          <input type="button" class="submitbutton"
                  value="Delete Person"
                  onclick="return confirmDelete();"
                  />
-        </td>
-      </tr>
-    </table>
 
 <?python
 from ipagui.helpers import ipahelper
@@ -38,7 +27,7 @@ from ipagui.helpers import ipahelper
   <script type="text/javascript" charset="utf-8"
     src="${tg.url('/static/javascript/dynamicselect.js')}"></script>
 
-  <?python 
+  <?python
   searchurl = tg.url('/user/edit_search')
   selectSearchurl = tg.url('/user/user_select_search')
   ?>
@@ -110,7 +99,7 @@ from ipagui.helpers import ipahelper
     py:replace="field.display(value_for(field), **params_for(field))" 
     />
 
-    <div class="formsection">Identity Details</div>
+    <h2 class="formsection">Identity Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -190,7 +179,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Account Details</div>
+    <h2 class="formsection">Account Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -359,7 +348,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Contact Details</div>
+    <h2 class="formsection">Contact Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -434,7 +423,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Mailing Address</div>
+    <h2 class="formsection">Mailing Address</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -497,7 +486,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Employee Information</div>
+    <h2 class="formsection">Employee Information</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -606,7 +595,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Misc Information</div>
+    <h2 class="formsection">Misc Information</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -633,7 +622,7 @@ from ipagui.helpers import ipahelper
     </table>
 
     <div py:if='len(custom_fields) &gt; 0'>
-      <div class="formsection" >Custom Fields</div>
+      <h2 class="formsection" >Custom Fields</h2>
       <table class="formtable" cellpadding="2" cellspacing="0" border="0">
         <tr py:for='custom_field in custom_fields'>
           <th>
@@ -651,7 +640,7 @@ from ipagui.helpers import ipahelper
 
 
     <div>
-      <div class="formsection">Groups</div>
+      <h2 class="formsection">Groups</h2>
 
       <div class="floatlist">
         <div class="floatheader">To Remove:</div>
@@ -701,7 +690,7 @@ from ipagui.helpers import ipahelper
     </div>
 
     <div style="clear:both">
-      <div class="formsection">Add Groups</div>
+      <h2 class="formsection">Add Groups</h2>
 
       <div class="floatlist">
         <div class="floatheader">To Add:</div>
@@ -722,28 +711,16 @@ from ipagui.helpers import ipahelper
       </div>
     </div>
 
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <th>
-          <br />
+    <hr/>
+
           <input type="submit" class="submitbutton" name="submit"
               value="Update Person"/>
-        </th>
-        <td>
-          <br />
           <input type="submit" class="submitbutton" name="submit"
               value="Cancel Edit" />
-        </td>
-        <td>
-          <br />
-          &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
-          <input type="button" class="deletebutton"
+          <input type="button" class="submitbutton"
                  value="Delete Person"
                  onclick="return confirmDelete();"
                  />
-        </td>
-      </tr>
-    </table>
 
   </form>
 
diff --git a/ipa-server/ipa-gui/ipagui/templates/userlayout.kid b/ipa-server/ipa-gui/ipagui/templates/userlayout.kid
--- a/ipa-server/ipa-gui/ipagui/templates/userlayout.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/userlayout.kid
@@ -6,8 +6,9 @@
 
 <body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
       <div id="main_content">
-        <div id="status_block" py:if="value_of('tg_flash', None)"
-            py:content="XML(tg_flash)"></div>
+       <div id="details">
+        <div id="alertbox" py:if="value_of('tg_flash', None)">
+         <p py:content="XML(tg_flash)"></p></div>
 
         <div py:replace="[item.text]+item[:]"></div>
       </div>
@@ -17,6 +18,7 @@
           <a href="${tg.url('/user/new')}">Add Person</a><br/>
           <a href="${tg.url('/user/list')}">Find People</a><br/>
       </div> -->
+      </div>
 </body>
 
 </html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/userlist.kid b/ipa-server/ipa-gui/ipagui/templates/userlist.kid
--- a/ipa-server/ipa-gui/ipagui/templates/userlist.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/userlist.kid
@@ -6,11 +6,12 @@
 <title>Find People</title>
 </head>
 <body>
+    <h1>Find People</h1>
     <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
     <div id="search">
         <form action="${tg.url('/user/list')}" method="get">
             <input id="uid" type="text" name="uid" value="${uid}" />
-            <input type="submit" value="Find People"/>
+            <input class="searchbutton" type="submit" value="Find People"/>
         </form>
         <script type="text/javascript">
             document.getElementById("uid").focus();
@@ -18,7 +19,7 @@
     </div>
     <div py:if='(users != None) and (len(users) > 0)'>
         <h2>${len(users)} results returned:</h2>
-        <table id="resultstable" class="sortable resizable">
+        <table id="resultstable" class="details sortable resizable">
           <thead>
             <tr>
                 <th>
@@ -55,10 +56,11 @@
           </tbody>
         </table>
     </div>
-    <div py:if='(users != None) and (len(users) == 0)'>
-        <h2>No results found for "${uid}"</h2>
+    <div id="alertbox" py:if='(users != None) and (len(users) == 0)'>
+        <p id="alertbox">No results found for "${uid}"</p>
     </div>
-    <div py:if='users == None'>
+
+    <div class="instructions" py:if='users == None'>
       <p>
         Search automatically looks across multiple fields.  If you want to find
         Joe in Finance, try typing "joe finance" into the search box.
diff --git a/ipa-server/ipa-gui/ipagui/templates/usernew.kid b/ipa-server/ipa-gui/ipagui/templates/usernew.kid
--- a/ipa-server/ipa-gui/ipagui/templates/usernew.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/usernew.kid
@@ -6,7 +6,7 @@
     <title>Add Person</title>
 </head>
 <body>
-    <h2>Add Person</h2>
+    <h1>Add Person</h1>
 
     ${form.display(action=tg.url("/user/create"), value=user)}
 </body>
diff --git a/ipa-server/ipa-gui/ipagui/templates/usernewform.kid b/ipa-server/ipa-gui/ipagui/templates/usernewform.kid
--- a/ipa-server/ipa-gui/ipagui/templates/usernewform.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/usernewform.kid
@@ -2,14 +2,8 @@
   class="simpleroster">
   <form action="${action}" name="${name}" method="${method}" class="tableform"
     onsubmit="preSubmit()">
-
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <td>
-          <input type="submit" class="submitbutton" name="submit" value="Add Person"/>
-        </td>
-      </tr>
-    </table>
+        
+<input type="submit" class="submitbutton" name="submit" value="Add Person"/>
 
 <?python
 from ipagui.helpers import ipahelper
@@ -20,7 +14,7 @@ from ipagui.helpers import ipahelper
   <script type="text/javascript" charset="utf-8"
     src="${tg.url('/static/javascript/dynamicselect.js')}"></script>
 
-  <?python 
+  <?python
   searchurl = tg.url('/user/edit_search')
   selectSearchurl = tg.url('/user/user_select_search')
   ?>
@@ -44,7 +38,6 @@ from ipagui.helpers import ipahelper
           info.name + " "));
       }
     }
-
     function doSelectSearch(which_select) {
       $(which_select + '_searchresults').update("Searching...");
       new Ajax.Updater(which_select + '_searchresults',
@@ -61,7 +54,7 @@ from ipagui.helpers import ipahelper
     py:replace="field.display(value_for(field), **params_for(field))" 
     />
 
-    <div class="formsection">Identity Details</div>
+    <h2 class="formsection">Identity Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -209,7 +202,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Account Details</div>
+    <h2 class="formsection">Account Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -328,7 +321,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Contact Details</div>
+    <h2 class="formsection">Contact Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -403,7 +396,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Mailing Address</div>
+    <h2 class="formsection">Mailing Address</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -466,7 +459,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Employee Information</div>
+    <h2 class="formsection">Employee Information</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -575,7 +568,7 @@ from ipagui.helpers import ipahelper
       </tr>
     </table>
 
-    <div class="formsection">Misc Information</div>
+    <h2 class="formsection">Misc Information</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
       <tr>
         <th>
@@ -619,7 +612,8 @@ from ipagui.helpers import ipahelper
     </div>
 
     <div style="clear:both">
-      <div class="formsection">Add Groups</div>
+      <h2 class="formsection">Add Groups</h2>
+
 
       <div class="floatlist">
         <div class="floatheader">To Add:</div>
@@ -631,7 +625,7 @@ from ipagui.helpers import ipahelper
         <div id="search">
           <input id="criteria" type="text" name="criteria"
             onkeypress="return enterDoSearch(event);" />
-          <input type="button" value="Find"
+          <input class="searchbutton" type="button" value="Find"
             onclick="return doSearch();"
           />
         </div>
@@ -640,14 +634,8 @@ from ipagui.helpers import ipahelper
       </div>
     </div>
 
-    <table class="formtable" cellpadding="2" cellspacing="0" border="0">
-      <tr>
-        <td>
-          <br />
-          <input type="submit" class="submitbutton" name="submit" value="Add Person"/>
-        </td>
-      </tr>
-    </table>
+<hr />
+<input type="submit" class="submitbutton" name="submit" value="Add Person"/>
 
   </form>
 
diff --git a/ipa-server/ipa-gui/ipagui/templates/usershow.kid b/ipa-server/ipa-gui/ipagui/templates/usershow.kid
--- a/ipa-server/ipa-gui/ipagui/templates/usershow.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/usershow.kid
@@ -9,9 +9,9 @@
 <?python
 edit_url = tg.url('/user/edit', uid=user.get('uid'))
 ?>
-    <h2>View Person</h2>
-
-    <input type="button"
+    <h1>View Person</h1>
+
+    <input class="submitbutton" type="button"
       onclick="document.location.href='${edit_url}'"
       value="Edit Person" />
 
@@ -26,14 +26,14 @@ else:
     days_suffix = ""
 ?>
 
-    <div py:if='pw_expires_soon' class="warning_message">
+    <div id="alertbox" py:if='pw_expires_soon' class="warning_message">
         Password will expire in ${pw_expires_days} day${days_suffix}
     </div>
-    <div py:if='pw_is_expired' class="warning_message">
+    <div id="alertbox" py:if='pw_is_expired' class="warning_message">
         Password has expired
     </div>
 
-    <div class="formsection">Identity Details</div>
+    <h2 class="formsection">Identity Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
         <tr>
           <th>
@@ -73,7 +73,7 @@ else:
         </tr>
     </table>
 
-    <div class="formsection">Account Details</div>
+    <h2 class="formsection">Account Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
         <tr>
           <th>
@@ -119,7 +119,7 @@ else:
         </tr>
     </table>
 
-    <div class="formsection">Contact Details</div>
+    <h2 class="formsection">Contact Details</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
         <tr>
           <th>
@@ -160,7 +160,7 @@ else:
         </tr>
     </table>
 
-    <div class="formsection">Mailing Address</div>
+    <h2 class="formsection">Mailing Address</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
         <tr>
           <th>
@@ -194,7 +194,7 @@ else:
         </tr>
     </table>
 
-    <div class="formsection">Employee Information</div>
+    <h2 class="formsection">Employee Information</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
         <tr>
           <th>
@@ -240,7 +240,7 @@ else:
         </tr>
     </table>
 
-    <div class="formsection">Misc Information</div>
+    <h2 class="formsection">Misc Information</h2>
     <table class="formtable" cellpadding="2" cellspacing="0" border="0">
         <tr>
           <th>
@@ -274,7 +274,7 @@ else:
       </table>
     </div>
 
-    <div class="formsection" py:if='len(user_reports) &gt; 0'>Direct Reports</div>
+    <h2 class="formsection" py:if='len(user_reports) &gt; 0'>Direct Reports</h2>
     <ol py:if="len(user_reports) &gt; 0">
       <li py:for="report in user_reports">
         <a href="${tg.url('/user/show', uid=report.uid)}"
@@ -282,16 +282,15 @@ else:
       </li>
     </ol>
 
-    <div class="formsection">Groups</div>
+    <h2 class="formsection">Groups</h2>
     <div py:for="group in user_groups">
       <a href="${tg.url('/group/show', cn=group.cn)}">${group.cn}</a>
     </div>
 
     <br/>
-
-    <input type="button"
+<hr />
+    <input class="submitbutton" type="button"
       onclick="document.location.href='${edit_url}'"
       value="Edit Person" />
-
 </body>
 </html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/welcome.kid b/ipa-server/ipa-gui/ipagui/templates/welcome.kid
--- a/ipa-server/ipa-gui/ipagui/templates/welcome.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/welcome.kid
@@ -6,9 +6,9 @@
 <title>Welcome</title>
 </head>
 <body>
-    <div id="main_content">
-        <div id="status_block" py:if="value_of('tg_flash', None)"
-            py:content="XML(tg_flash)"></div>
+    <div id="details">
+        <div id="alertbox" py:if="value_of('tg_flash', None)">
+            <p py:content="XML(tg_flash)"></p></div>
         <h1>Welcome to Free IPA</h1>
 
         <noscript>
@@ -19,8 +19,7 @@
         </noscript>
 
         <p>
-          IPA is used to manage Identity, Policy, and Auditing for your
-          organization.
+IPA is used to manage Identity, Policy, and Auditing for your organization.
         </p>
         <p>
           To get started, you can use the search box in the top right to find

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]