From 645c960f6111f4820c78c76f209479c3f369a8ac Mon Sep 17 00:00:00 2001
From: Martin Holst Swende <martin@swende.se>
Date: Thu, 15 Jan 2015 15:16:34 +0100
Subject: [PATCH 1/1] Implemented new FPGA mode for iclass tag simulation.
 Reduces arm-side size of transfer/memory by a factor of 8. Makes for easier
 arm-side encoding of messages, for when we start needing to do that on the
 fly instead of using precalculated messages

---
 armsrc/apps.h      |   2 +
 armsrc/iclass.c    | 136 +++++++++++++++++++++++++++------------------
 fpga/fpga_hf.bit   | Bin 42175 -> 42175 bytes
 fpga/hi_simulate.v |  39 +++++++++++--
 4 files changed, 118 insertions(+), 59 deletions(-)

diff --git a/armsrc/apps.h b/armsrc/apps.h
index ea70144e..6a3fa186 100644
--- a/armsrc/apps.h
+++ b/armsrc/apps.h
@@ -134,6 +134,8 @@ void SetAdcMuxFor(uint32_t whichGpio);
 #define FPGA_HF_SIMULATOR_MODULATE_BPSK				(1<<0)
 #define FPGA_HF_SIMULATOR_MODULATE_212K				(2<<0)
 #define FPGA_HF_SIMULATOR_MODULATE_424K				(4<<0)
+#define FPGA_HF_SIMULATOR_MODULATE_424K_8BIT		0x5//101
+
 // Options for ISO14443A
 #define FPGA_HF_ISO14443A_SNIFFER				(0<<0)
 #define FPGA_HF_ISO14443A_TAGSIM_LISTEN				(1<<0)
diff --git a/armsrc/iclass.c b/armsrc/iclass.c
index 64abc84a..329e1765 100644
--- a/armsrc/iclass.c
+++ b/armsrc/iclass.c
@@ -857,57 +857,93 @@ static int GetIClassCommandFromReader(uint8_t *received, int *len, int maxLen)
     }
 }
 
+static uint8_t encode4Bits(const uint8_t b)
+{
+	uint8_t c = b & 0xF;
+	// OTA, the least significant bits first
+	//         The columns are
+	//               1 - Bit value to send
+	//               2 - Reversed (big-endian)
+	//               3 - Encoded
+	//               4 - Hex values
+
+	switch(c){
+	//                          1       2         3         4
+	  case 15: return 0x55; // 1111 -> 1111 -> 01010101 -> 0x55
+	  case 14: return 0x95; // 1110 -> 0111 -> 10010101 -> 0x95
+	  case 13: return 0x65; // 1101 -> 1011 -> 01100101 -> 0x65
+	  case 12: return 0xa5; // 1100 -> 0011 -> 10100101 -> 0xa5
+	  case 11: return 0x59; // 1011 -> 1101 -> 01011001 -> 0x59
+	  case 10: return 0x99; // 1010 -> 0101 -> 10011001 -> 0x99
+	  case 9:  return 0x69; // 1001 -> 1001 -> 01101001 -> 0x69
+	  case 8:  return 0xa9; // 1000 -> 0001 -> 10101001 -> 0xa9
+	  case 7:  return 0x56; // 0111 -> 1110 -> 01010110 -> 0x56
+	  case 6:  return 0x96; // 0110 -> 0110 -> 10010110 -> 0x96
+	  case 5:  return 0x66; // 0101 -> 1010 -> 01100110 -> 0x66
+	  case 4:  return 0xa6; // 0100 -> 0010 -> 10100110 -> 0xa6
+	  case 3:  return 0x5a; // 0011 -> 1100 -> 01011010 -> 0x5a
+	  case 2:  return 0x9a; // 0010 -> 0100 -> 10011010 -> 0x9a
+	  case 1:  return 0x6a; // 0001 -> 1000 -> 01101010 -> 0x6a
+	  default: return 0xaa; // 0000 -> 0000 -> 10101010 -> 0xaa
+
+	}
+}
 
 //-----------------------------------------------------------------------------
 // Prepare tag messages
 //-----------------------------------------------------------------------------
 static void CodeIClassTagAnswer(const uint8_t *cmd, int len)
 {
-	//So far a dummy implementation, not used
-	//int lastProxToAirDuration =0;
+
+	/*
+	 * SOF comprises 3 parts;
+	 * * An unmodulated time of 56.64 us
+	 * * 24 pulses of 423.75 KHz (fc/32)
+	 * * A logic 1, which starts with an unmodulated time of 18.88us
+	 *   followed by 8 pulses of 423.75kHz (fc/32)
+	 *
+	 *
+	 * EOF comprises 3 parts:
+	 * - A logic 0 (which starts with 8 pulses of fc/32 followed by an unmodulated
+	 *   time of 18.88us.
+	 * - 24 pulses of fc/32
+	 * - An unmodulated time of 56.64 us
+	 *
+	 *
+	 * A logic 0 starts with 8 pulses of fc/32
+	 * followed by an unmodulated time of 256/fc (~18,88us).
+	 *
+	 * A logic 0 starts with unmodulated time of 256/fc (~18,88us) followed by
+	 * 8 pulses of fc/32 (also 18.88us)
+	 *
+	 * The mode FPGA_HF_SIMULATOR_MODULATE_424K_8BIT which we use to simulate tag,
+	 * works like this.
+	 * - A 1-bit input to the FPGA becomes 8 pulses on 423.5kHz (fc/32) (18.88us).
+	 * - A 0-bit inptu to the FPGA becomes an unmodulated time of 18.88us
+	 *
+	 * In thist mode the SOF can be written as 00011101 = 0x1D
+	 * The EOF can be written as 10111000 = 0xb8
+	 * A logic 1 is 01
+	 * A logic 0 is 10
+	 *
+	 * */
+
 	int i;
 
 	ToSendReset();
 
 	// Send SOF
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0xff;//Proxtoair duration starts here
-	ToSend[++ToSendMax] = 0xff;
-	ToSend[++ToSendMax] = 0xff;
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0xff;
+	ToSend[++ToSendMax] = 0x1D;
 
 	for(i = 0; i < len; i++) {
-		int j;
 		uint8_t b = cmd[i];
-
-		// Data bits
-		for(j = 0; j < 8; j++) {
-			if(b & 1) {
-				ToSend[++ToSendMax] = 0x00;
-				ToSend[++ToSendMax] = 0xff;
-			} else {
-				ToSend[++ToSendMax] = 0xff;
-				ToSend[++ToSendMax] = 0x00;
-			}
-			b >>= 1;
-		}
+		ToSend[++ToSendMax] = encode4Bits(b & 0xF); //Least significant half
+		ToSend[++ToSendMax] = encode4Bits((b >>4) & 0xF);//Most significant half
 	}
 
 	// Send EOF
-	ToSend[++ToSendMax] = 0xff;
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0xff;
-	ToSend[++ToSendMax] = 0xff;
-	ToSend[++ToSendMax] = 0xff;	
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0x00;
-
+	ToSend[++ToSendMax] = 0xB8;
 	//lastProxToAirDuration  = 8*ToSendMax - 3*8 - 3*8;//Not counting zeroes in the beginning or end
-
 	// Convert from last byte pos to length
 	ToSendMax++;
 }
@@ -920,18 +956,9 @@ static void CodeIClassTagSOF()
 
 	ToSendReset();
 	// Send SOF
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0xff;
-	ToSend[++ToSendMax] = 0xff;
-	ToSend[++ToSendMax] = 0xff;
-	ToSend[++ToSendMax] = 0x00;
-	ToSend[++ToSendMax] = 0xff;
-
+	ToSend[++ToSendMax] = 0x1D;
 //	lastProxToAirDuration  = 8*ToSendMax - 3*8;//Not counting zeroes in the beginning
 
-	
 	// Convert from last byte pos to length
 	ToSendMax++;
 }
@@ -984,6 +1011,7 @@ void SimulateIClass(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain
 			memcpy(csn_crc, datain+(i*8), 8);
 			if(doIClassSimulation(csn_crc,1,mac_responses+i*8))
 			{
+				cmd_send(CMD_ACK,CMD_SIMULATE_TAG_ICLASS,i,0,mac_responses,i*8);
 				return; // Button pressed
 			}
 		}
@@ -1036,23 +1064,23 @@ int doIClassSimulation(uint8_t csn[], int breakAfterMacReceived, uint8_t *reader
 	int trace_data_size = 0;
 	//uint8_t sof = 0x0f;
 
-	// Respond SOF -- takes 8 bytes
+	// Respond SOF -- takes 1 bytes
 	uint8_t *resp1 = (((uint8_t *)BigBuf) + FREE_BUFFER_OFFSET);
 	int resp1Len;
 
 	// Anticollision CSN (rotated CSN)
-	// 176: Takes 16 bytes for SOF/EOF and 10 * 16 = 160 bytes (2 bytes/bit)
-	uint8_t *resp2 = (((uint8_t *)BigBuf) + FREE_BUFFER_OFFSET + 10);
+	// 22: Takes 2 bytes for SOF/EOF and 10 * 2 = 20 bytes (2 bytes/byte)
+	uint8_t *resp2 = (((uint8_t *)BigBuf) + FREE_BUFFER_OFFSET + 2);
 	int resp2Len;
 
 	// CSN
-	// 176: Takes 16 bytes for SOF/EOF and 10 * 16 = 160 bytes (2 bytes/bit)
-	uint8_t *resp3 = (((uint8_t *)BigBuf) + FREE_BUFFER_OFFSET + 190);
+	// 22: Takes 2 bytes for SOF/EOF and 10 * 2 = 20 bytes (2 bytes/byte)
+	uint8_t *resp3 = (((uint8_t *)BigBuf) + FREE_BUFFER_OFFSET + 30);
 	int resp3Len;
 
 	// e-Purse
-	// 144: Takes 16 bytes for SOF/EOF and 8 * 16 = 128 bytes (2 bytes/bit)
-	uint8_t *resp4 = (((uint8_t *)BigBuf) + FREE_BUFFER_OFFSET + 370);
+	// 18: Takes 2 bytes for SOF/EOF and 8 * 2 = 16 bytes (2 bytes/byte)
+	uint8_t *resp4 = (((uint8_t *)BigBuf) + FREE_BUFFER_OFFSET + 60);
 	int resp4Len;
 
 	// + 1720..
@@ -1195,7 +1223,7 @@ int doIClassSimulation(uint8_t csn[], int breakAfterMacReceived, uint8_t *reader
 		A legit tag has about 380us.
 		**/
 		if(modulated_response_size > 0) {
-			SendIClassAnswer(modulated_response, modulated_response_size, timeout);
+			SendIClassAnswer(modulated_response, modulated_response_size, 1);
 			t2r_time = GetCountSspClk();
 		}
 
@@ -1232,7 +1260,8 @@ static int SendIClassAnswer(uint8_t *resp, int respLen, int delay)
 	int i = 0, d=0;//, u = 0, d = 0;
 	uint8_t b = 0;
 
-	FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_SIMULATOR|FPGA_HF_SIMULATOR_MODULATE_424K);
+	//FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_SIMULATOR|FPGA_HF_SIMULATOR_MODULATE_424K);
+	FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_SIMULATOR|FPGA_HF_SIMULATOR_MODULATE_424K_8BIT);
 
 	AT91C_BASE_SSC->SSC_THR = 0x00;
 	FpgaSetupSsc();
@@ -1256,7 +1285,8 @@ static int SendIClassAnswer(uint8_t *resp, int respLen, int delay)
 			AT91C_BASE_SSC->SSC_THR = b;
 		}
 
-		if (i > respLen +4) break;
+//		if (i > respLen +4) break;
+		if (i > respLen +1) break;
 	}
 
 	return 0;
diff --git a/fpga/fpga_hf.bit b/fpga/fpga_hf.bit
index 5389428c5539eb60eee9f27b6956ca950aa79b15..8b0c7a3788ef438c94eaed81346a08f24927f954 100644
GIT binary patch
literal 42175
zcmeIbeRLevl`p#MR7oy(x71}>;%SH>rIsO$X~}Jg5XT6)EE`4vPpl-&3^yxlZbN+Y
zd}lF<$mGrQ<mDzuEdjFS;Kq1noWyr-+n9`!ac0`GgUv@w*~pIkfl(NeF~lK_BZwe|
zG~glf_xtTr)z#g$!=1a<d+WWm2Jr{m)koFmYwzFw?Y++tO^+75|A@4^XyzAs|M$E8
z^NKID^xkvV=l{#{)-Qg3Io(a6w!dso{?)znl1chJh1-(zJ~}r!Z|=O0(sG(UuWiA+
zk1t5xNdJXsOYa5zeE(a2{DmY*jfkctwG{u~Olr19a$!r7T>dxtpHEK`o|pcuCCQ;4
zn*DjIv-t7v`7xyW;NQ{4)_>0{yvG^!Kk>e8r24e({n{A+3vHbDd6A($`=v!GYNTq?
zB!nxeT2hwcbi1r`DYtM`_1Uc|(AQ`oMO^*sbU`l6N2m1X=~daDkB;d{>g5+n>vj3K
z(Q4PMOSjT@WUCv_i3u8_m>bRt+emVo!K%Zl?UW!hBbE{bH=K-3Xpd0b4cj87srR@I
z|D-)mt;y+|M1r0qeoyQzyl0LZZW2i&#qXhpSL7MDGaGqHzlY9HryI@b`{_6G2{$@C
z-7?gB@>-6j>`ocorJto=(n2>{(9VhrnUA^ANqq`K#gAicl|xS3U?dYx6yGyj9HJ37
znhjfq&27f2u9d4?n@r2=&z^9uF5!)9OS%mk2tWC%E_!IX{Sz}OBL299LEj<U4bKs~
zu*L9WYa#lZ!KSQvr?{GS%9eb1rRb#pA)E5y6=KkPPq%40&pSDpNQNWyE_JxkZMs4K
zLP_*TU*~Nc=c--SZ|TEEw19D4;BmbjKHK$M3qoG+sZQ~C4OdMJzH21i?!0!QIIamg
z)Yr!End7Zj_l%A9PHK{7uQ*0Ksl^Sm@BlTr;gneC&9h5?PfyF{thrLWT<r6E^uT>h
z`43GBC=-8Icl~qpM8;k|D8%97*q^ieEsT8=-lNuivf=x5-kFz49A7+1PY@O*tDh39
z<%q;uEbzXooAU0Ixw|eZ^}I1foy0<yFFX$w#*b;e<s8Vit%zjw*>s9Jok*sAHXUH$
z+q&?+OVSr;)mSVQ%FJ9&*hoF*`nqdql>=d;u*u^0G*%h3%7{5w)7fZ~=rQZBtU((H
z>qWJ<7N$|9_c^v3suxRW8zs20L4BSelo_F2HFwjP9I+#Vi*1d&8j-rKxk?DP>T2CL
zT=i=@=Pn$N9@8hd&woDm+x<V={G(wApY4CGy4UN^1f8RHXYseaaV=2;Jm9qTMC$cw
zZ@uPQW0<-ag$FQ-UDO(nuMWjF56aE)_*kgc8@pLGimqmz57ncq+o;7cd(!oEA2oHG
zpBBQ?uf~S0@^LNZglDAH*wIEb(0z83gErOPT4d`VHBY&1PIP0~n`aXf?i`>tOt>ER
z^eawV>20U8JG#LemlMtCuc<|WaM07QxV1@)rAAC+K+jWgerSx^2$m$|=~vu{I}fIs
zGoh^Dz0oSote8WqDJIRlSnaJvyy}lAEp0hH>Fu$+IbYOLzqIqFEkZ^8y4oI~rdQN9
z#(o|*zanPY4>(QZc+ar^9`g$Oh@6+NS*gEFzmp5IiOKK+IwH4c6L;!!JpD4SdQ?t9
z^=co}mG1CfofM~e(`NL&o_;x1=jlAGpLwpolVA^1(WCl%^ehXLy6dgi@Qh4qhto7_
z7Q{x@FDKk1PNwc-Atm1M=9y?C?eKJP7Pq0WBgScfg*%1o=~t>Ac9`sw@u$QZ=vOO+
zN$i2Oh42UBfVb|$(67@nxi2!+&o)!p!z1F5gkbCbcS$-yrw4auqPc$0CM?V8Cv0Ur
zvsfLaUz#;V=XsS2dI#GU8Og&`9-(#_84uGE)uzw*k~QMSQgJqePtsgorYZU^T`$dX
zVLKM@XIZsEJ}F}bGba+plSZp!X6hzr6+z>G1-^cv-3ZyPnG7kL$@(=x-=jFU@%4+$
z71%ay&eDRO(9l)Zue`T^GCJu!{9W0r3iK6vnu_+2=DK=;&H}CGj_Z@vz1+sF@=Rsq
z9bT`2n;5?WAS-z5C9QMr(<|prnC}6<(D{6LR~-aug&^|YJOjUGZx;zS4m+<s$*`5H
z9xEEX<3;@1%D?4?k|Lo!X$o$0f^JekCJNrVI}P3vL~?q9PSXN6y3^Zi3}oX){MxEa
zcTFyg&Sx0EuqfY9KvsrdU5Bik>%GUh(T)0>)_af5V;`&Pq_x!S(!Xs^P&?rG_6~7E
z^$-C4j<**1s-@JAwSay_XdVHV=Mjv#mT>hX7FW%)tzAtI$fo@CmB6nb$?NjrZt+Xa
z2eL8mJ>6!+dB#e*ElC~tH4XTc)W<v^OX|;i`sG~p6kV_ujy}lv^*aI_yVJbY!2riS
z{Ti-1A<rZ`$D-Ry({jS`f&L9|y?|ft&KWH)g?l$E{MrNEIcEAm_PjUGz%Lg)oD6@p
z?qzM~pu*gjrQhd55x=~VhGAPY<&%)W6P|>mc-~w0$%bJpQ>R=8Qve`?Dah-S#%WCf
z*=g^)y2&*P)B)I93|nU^{5r0T-ZTkkDamVLTCd3iTH7L6QH2E+Hgm7{UD5!48PJsV
z=~p#4R8III@mmQXb80gpU&OE3(5B5!cScOu{84y)^+ZMq8L{8jFQbO~9osSM1%pDu
z30uApvc%p1zr<Kyo1GYhTJ3^<G3Kg1LwL*6FW?ujV0TY+Bl>)fI-Te^cYe4N{n5+t
zi_u{g<MQj=Mh(zWjrV)&HQ#a#3H<7o9)3|+ioCf?!j4IC#2Y)~S0C9<H$!cy&$jCP
z-XeYth(3%RJ|yE8#*RrS3j4ja$Tm#CD`<1#8OAT^^+&S9fR0W2_@%LabvW3fC+L)o
zk8=IID6QNkz^|;sXoWSki_`K-Q8;MWSW=2tUGJ=RV-j9&T;Ugl*Bu5j2nW5jVEpRO
z!Xug=(rkZ^9VzP9K~KN3+AMm&g!k3E+4B4`C;bag=mj!5{9VIl9sL;i6^%F7Ilq%P
z=c68wDd7#lO~|}zIDN+6?M6rX^K?e*beHYWUssj{w#COUs=7dj-S+&lqxw6vOfH;=
zKC3UJ=j6xm!Z3O3H9TV@-ETFG0#AQJ|H}U1z53^zfA*ft@#Y!$<-ogep?WXCb!>5O
z-&frM;Tntry|KAJcKu<tEqkC%qx3L<Km76PPtYT<Hh5xs>ptADm6X?=(<h8WqSFlz
z=-1J61cR2-ulK%75>{ss5N$wzRSjpY)F-8H69W9o0|#L$CjkK$LhUY0%1OLO8BceK
z(!o9>H4D4WojxF5ftqi2Yja{BETkeV`67PJp<O9F`P=FVm`YF>Dc*F3{5IZNn1-Mn
zTM5Frp7e%uLiBrf!`CmWS;1=MLYpRxGX~smiOqJ%187%Qb`|(#0j=B`SAPMR`(gLN
z-kHZd$G%X)uLA6GJ9|w@=NCMjF&#jbZ=Z}zVWho0&(b<hgED5DgV3*47$Eebm7eZx
zK50Ht!mlxc`bm=n^*zL0wPEnLqw{7m9pKlnJxH;%iH7znv(+6MVd7)QT%dV?UvJa1
z)^;oMlkhy}7d;Dky_&EnBW|J$zcS*KyqV^1(2uhYqR-*;@&XHm5`KM;_E1|UV&T_c
zblTj=01WIiVgcS$;$LxEWy2d>SB-H2$k4G9G(;aALw^GPwS>~}d%Nv9bJGyG4ez=*
z#wF$#@vEBd&)6w*1@P;B*)%c#PVusMKwgsvyD_~r1%A<9u&oHD#a6;K`eCfsd>05?
z=jj*ltLr>19G#oj&pK~;xO_|~B36c9uhBDdK`Js|PtZY$apm+^>@)U_hq0dn{2HJK
z;4p!IMbP;s*Sr_L-_9PTaV7i$=3d7={4?|!?(WybOZLv}HIpEZW%%WfG=cZT+<1q0
zj<!psUnTq!2bV06i7omHafC)>B!PLJk~c~?w*h{^@=w2lqH^dJ<1AxAnz6v@z>^Yw
zv4vDt^fmcC2pCtwE|6km0e&qnTH{}vt6)xjLmf*&D8sKGS#zE6PsB<3foc;<;J1`j
z5Adtr`l07G|CAmj@UIMmLelOw%kc}N=(MAQnAH=q)589-snFF%iTg_U^(vimI(wq)
z^<QI;b$)v8I@tNM$<8IP^8tRnCf}58cSm08zmX0|HJp<eX}bfY4)E(0XRs$m=74A-
zC`b~DHVN&<6W|wl_zwKq1pGn|tEkVhKWo;d0ltoU65!VsY-8Yih8V<S0IAr7QyhB{
zzg`23j-(R6FL8iIoX7@r{uH%2i8A~ekZ)5*chqVgrMG!e*69=Uwgp5h$1k82<CktL
zAZwA~COjEoM>@bShAo9(^TD^EXdaNk0+iv`Qg27ikFAmY*kgX6gYAYmRKl;F4zS=W
z;5!^fz@`PMNkaH?3BRtUcjdNxbbk0jD9H9a%-7X)LFV$2uVV$(k9n2n_d-+dfk}b6
z08gPaPNzG!48P7hDh#zUd?R2B_HZTM^PD@6Ul{N&MY~)eQ9b(8G8(=Y{rOkm7Zk0?
zznqPh?=h-2Znz*ioPO?nukiU7<CpIZ&Zhou*vuP5lpcnDfdz~iYTX&X{H`YGP!|0;
z8E%!&QO=1J%K6tBK-*e19DiK)8A}Z?z%O{hHh%pb_{PuC&2FU7&%SYc9`7mQ7u^GT
z(&`@CHSO2(=U_V^nC#Er=*DxRh+i5kHhs~(Jttm+scd!sASX_k+bPC2Ghf87i0AGm
z#Q<<Q;ZBDGjFE2PH4X5qxCC&q7`AG-^A|`Nv;e=(!YxFf$MtaqTdhH0s)S$KdHSuh
zFdyBkpQqo=Ug&^-T@6pBJzIuf#8E!5Eg|2cU71!J_?2ix{7{<Z{EHs3<8FAS>T1II
z5EB+yKZ!mU@oUCbHRSLPI>CX&RCs*|u>uS4DZ{VB^cz~>Mz?6#S_2FJ5_{|;_923W
zEW@v-Y-QD9=jnU~`t<^Y3&zv39KZgFe$Gpo(Rl;3bw#$oW*(w8i5HF=HgD*$ssydg
zD(@meZ`^rf3g%+c8X_Sp`Pak7J??i1!-46}P0xzM)%_&a!AGj#UoH6$b=O@@-<8*7
zoBpdfPitk<W?(^)e^CU{!VWh|dc=I!Np{uPz^`X0C*kD={A(j!FtJ|w@Yk4#Evdx-
zO^lSsHC~<KK7)S=<&TZ%3FF-q{HXOhHnume0KYsn4=2;J=<nEZ{gmhsYZ1+W#+Bh$
zf3_))Xa>hTA#{uXjUJG9Wh?MY43Q1Bs*PYDLZEcb0N9Ph*h~0D2l?BF`{Q)_XnQ8Q
z^^uzZtnC-$7sHmo66B2CFnVFeFFdKhuLBvxwVu#t!#8gGd^E=f){7_x_;m}da??(D
zBl8O<wmiIEAb#k^dMoftuIfSzEt5tYYqJxshrwUv#Cp&sz%N7#Vfpcq0ku+s0)-x+
zgRft^;2(}j*yq78_=Rk<v2Zrx8zYn`<6ooVlnYkE{Ogpnum@Y~Bx{_5T^HcjNqQFO
zfG1n<5!`qtVh1ScM9T0hF9vBd0{id}pP)IQU7<LhAo^a(zYKJ>5jJ5P&F&rQf$@Zg
z@2Ea2KeMsH!>{lRo*$aC1iZ4oTeZR1i}*FF_*XPDbBpn|^H|TcjQ$Y@R_;&0zqZiZ
zCe#W(f6=L!FccB1z^|i>UuivWtz-dyCN}%_3jF%G`5?t)_@AIwyQw(?+Qsq1W(Kl=
ze|6jI1h&@vYM3}_zY|vRLxLxqM4KMo^I5H4+^_hTI7W{-O#(oM_#wZijDKBCFEf5I
z?JBUq@x#M%UMjLu5BS#rGelP(=|90jA6zW>S^(&|CH!hY{BWQ>4>$fiT>uV7@6;K{
zlsydaYdt;2Y|BA^5F~WMJ*#hEVCDW4@ryRnV?e878#la1SoRvTDOHYNqh^k>P%GHX
z+_>EnHsQz)vX@fAuc|@x5cGu2`)Rjr6hf;wB$0`Lzgps7Jg(?d+@@PC+zAt?$F{DB
zUv!f8(@hBJz*L@x`&7g6LogR7QV8(N_<|U8L8<ObpP&&L`!d#R68(WAloLh#s%oX7
zS;+VRw&;n$SYFSFQCM|l!vp*>VEM783|k10I@pJ!c(R$-G{CRrup6-Rpk2mk8gakr
z#SftuIX%Fyljt?<A@>=A6Ll9CJfWb!Uaj`LTXmj(DckckQwa0^RxZr1o#KVdw!3Sl
z`U{%Z#(ImxhH0SHYxIv&g$>^#WKWKTrog{!-eY4`huOp(P*D3Y&F0Rpq3zc2GwAbi
zEy-=%24J_zBgOpuBS2hD!c8>C4VB^73FBYnh+DHuo3I&x*5(udEpRceAb$9i1@kV~
zp4CrUK0P^0@4AXp`}waP3$WGG>DKPRn!>z$8-RISZ5jV!U!rvo=y_PfCi438B<XHV
zp~$}`5kK56Rm^j*c*GkQp1@HICF^|tmD5z(E4zAS-M`pOyTU80IjN)~il*i8*qML5
zgW=S+>0>ZV>)oNGz7+Apq+6RT<6m@^K0HuU(2pX1h|Pw)9$jc$I2wJs48Q1%#Bg@O
zoIWE*_F#(w=(BA{YetIsuQ9|ocG5>B(8_{ZZE_(TqwPufhx0_8q531~?`gN{s<@K=
z4qXLoai2GxnErnWwOXA2;_WwEhRw7I`k(SPB##|yT4$(M96vlyH_GVNut_g5kSUvx
zZIdn8a4G)<9b8D!KK*Sr7Ytj#FHZ>Khn}fi_AMQOME3bJFrHHyVsTcG|1y?){A(k8
zwil@^J_c+m=D##H-CuOV<KiSSM}x05p?)irDdoSwwy32C)A9l#R^aK^HaoGztSiRn
zch#hdJ)EL35%js^%34{<e@$SSI#W?gA1&GWvsP<&_@NShacFU&vus>HDV{Bk>zvIA
zKD}B?@!ptkafnhy3-d4+zQ9jHQuz6=?kcb?)z!LDOH%@D!Zu4K?}Vpcj9+T(>+2?*
z(%9{U!(%Vv7v^~!)4Lwi8_e^mzD{RpChX_GR%l!3lt7yiwDC!CAe7>VYJMUE{dqA~
zTGKYFrE>nYdk|@_VR4imq*e|aPSS3+b!GUqlyZZK6yi3A!STUC*ywTgBvgi9vw#Jy
z1#=0u@%<dH<Nf@Yyvqd^1o6YG>7=|lmH4l~ul<N0h8f7->q}0xmf_b{j&-}y%~&rb
z<g^pe%H88oqP?DfNU(>$gFOuYC%u!-OW@a(z8gY&;UfOk^-(w61KOoPs#j;U+T_+$
z;MYzQ(ZVHwTK))q<~CXGa|QpJjr<e*C>}D~OmifyvK3|g>uq_X1DCHFeI9YqRgA)J
zXL}gn7c2met8ekE{<vTh-eGUKgkOlnArITNY)n7dbc8{Hxy*Um?w0UN8u!2+0-K~b
zE)SA&>;X~~gOLgFOJkb}j9UjRSY6fzF|<zy_!U8$6>iw-8WrA}!a4B=xOWC`d7_$o
z&}Y~&#1HWvbe`?lX;R|~@C(+@!><CpR_yb8LUlgKe;v(u@k31Bv)BMN?}U?_RN{pT
z;)icIW0}}I^PA!y5kHLO&G%p~&e)atuQyO>V_T*z$Qh!zJAGc7VCU6_Eb_00;adm$
z5Qogx4%<T}%wSH$7(o~~{P-cwI7-icqW#l}z2Rm$;LOj|jE8UXRtLCT%zx#;(ZKq@
z-G7SC)q|cqq)*asy#bc$H|#x)xg~RLJxizT&hc6+d>w#HP1JZ1b6aQ#!|BdFd^>HE
ztrO<A5YO~ux$ls})6Ds=G}+$^&l0Y?&AsO<bLv6Fd>{+>SEq)sVb<&xpS6CNZpoW>
zZoY#4LAF4N;IgatFn&D)w2Ib+5tA`H#%k-r5%DYDV`cp7De+;h)^M9o8s{LaJqCaN
zm)^L>i~MVnCSk53JNi?I?X(rbJM@m?xB~vQ0e#*i<GrCq09n&ss0=a)p5h1mYd1YA
z;SJ6g|5@81uPFe(BJ_ajvk2mcM@VJTKQ2B=xv|;rn2(FODL;-K@UK<&8*(HY*@Cg2
zr^hnUZ205wtl;~V#Sf2DVO{49QQ5x<v}=JCmCcvKuNR$Us<s{$3JIG0GA?*HK(!8l
zEZ|?unQf&)8^oj3XUFbPM9eqTlVtIFHCD~0|L!z*hsLWP?OJ6)(bi*4{WeFuwJ?op
zFqch>V1EYi5&T0CG12EJAPe}{-PK3?+OoA{`ep;POGeFbv*R1;ApiAK;}qhDwd?hN
zGtU_v4hlK`P5MctfPcM5FUs~*WJCA{+DA7pYCWo73-DC{9mEeOtwCdRU(0={MqvCh
z*RDn&ahQROg8bL3^pKP78Rq;KN=;H%T4Gued`s~|hq>qUjMySpIf$=v5sN?efPeiM
z-#*fl*f5Q0S4VGcX7TJ|e<rJXc@E>W1)kMYUD3AaXcoHDJvXC|8a|NiC0n)O`i<$G
zR%@Sbi!rB-YSO50@qLmYe)w@`^(W>IhPEQo{-6!IlrJU14)R+#NA^kNA`{6u)ggnV
zw8y63AR?A;H+=qOYgf^L)<PkQeVm|Z?sVSIJLxYN6ny=Po3&!U>}aa()~}#_a$CM;
zEX-cz&CJLS3iVxxABy=Y?92h(W$<-s;ru%nq_PP<esTQ<@?Uo3FlbjI{oyRkV28W_
zM1wG1%6|<Qo1FL}{SMk;BYxOBXV#*p={oLDiGSIDYc&~W3N-oAP|IErvCpwGavLAN
zQt%JgS+;?E(X9kRl>(4O<aQWO*y5v}e>mLmPsBVo(T8m_DLYcI^EcDeZ28OZ>si2f
z2O&g|cX(WIsDhk$k$+id#n>L?iQc$=2Rl@w5jm~HLx)1ZzvxR+zOva4ZJqgfdsn)3
zrTO~ed+=S#J_q~@IcN@XXVTx*kSudRMidKR8=lu3o@kQ{4Y^vZmsq0Z;6s|kg&dl~
zg1u@f&}cawg7sgMLtFw|YfnTX&aY572mYmWIeQg{4R5BXqZg2OSm;ax=4w7+3GnL-
zoyB@VPuoGa7dA%r>PdRm*j^q#v<?Gh>@l+qCT_@1nD7y1+idx3%HoHp)@riTjdt3U
z{bu4$Qx}6!G$c)!e<{6i8@AeygN?#lo((-sID;eLXbfc21N?FtUWcEVa}rkAz~1Z>
ziFA0gxNmRU82pVA|AMJpC=~_1AQsMsFY(pEGi>=Q@?Sp(T19gG2(MY4pIfReo{*=U
z1qJmUn`e>ZhioqBe!%fyrZo>o@wYtEd`)@%hMBPwbe$m(S9B6NGm>_J%W>u)0e)Sn
zEdTVC)m+HYl0|&}CFqXgUuF39JatHf4NdB&j?sjs@3Y^rk^d^guU!uN>b3CILBv2<
zJRj+19#?>0Z^5dMI0*Z^#`81C0UYrhwT;zaKYRMsJ!1pnHi#CcoTCg|qlh1lLHHg6
zS%6=EkFNT(3w?eC`1LbN<H>bp`L8j|PmGwFLP$)6JK!6qy|D-QH7pJ~ZJA|T7QfE0
zh4^9r8GAn^*MBqH9OS=HHDoRnQMbP^8~HDRKJUp)(T!9YKlHOO?CQ6TMR(|`F3ycq
z;FrIDCJYvUUmp>xM67pCMwI8j=n=<c{`Dh@^@NoT*Tfz1viM;G{m^OZG4BvRHGb&W
zw}snQ8`)Lym@}s=e(1o&wGpy8F4kfs9$l@^863-2#t%`IC&9lq=t}tW=(qdd8$L$>
zva<N$gmb`Z>oGWf$b}R5Xf{17w>ubDfM3VcG8>DVgI!Q)i3vv_(HIoqDP{4)38d<-
zL$zVLKKp1Km}`k@^C1VZ9ZNjp=@<By_Ncrr)p)145zYzbr!H;Kw}jHT0KX>ab-5sA
zZqTn4uV>p<MmZ7oVyZHJH~>U@tZQy2yqsPXyT@QE-^#vDySeif{0p!pXW9dYQ*FuU
z8tg*=nLvCsz^^zhu*C*5OL19i#|DS8;y3bV*qP=0tDBOPwc-?Nf(wyF4TCs>J!X$X
zzk>K-BmIz?2)oyU<8hY*$Kx2{2dF<R<6l>Tf3@4@nBIozotKTS>_1}c@0*vMRmQ)D
z*;G<3vl0m7AegV($LT4F0S5f*G#!!f-Z_4FUM^(X^`3ZH-puweh#ziXwb~!PH+{^0
z%xsYWsTZC5trjcPD~@|Sm*`ul@c>oi7~^A^gfy3@$Kjfxae!ZT{TNI^0#$I;NBTx2
zY)f3YW?Cjhs1!eJ_yLXOJ2Aa*c2BvTKZ^|OubT($4hcI};$PyF-D+Yu7?<7A1N?eR
zf?%Q|5l@nA>ooAM6Kqm|jdV_1=tRc#Y6nEjjuZm?GQLJX(&kdQfC$Ww1aRkX#Yaq#
zEF1B$0KZ!3`;2I^Ist0d8bhu&PH1C-jFj;&-vfz&b|nC4SDIMU1Yumhe@Hb;=?w!V
zG;&&k&{bA6+dQasQX*H1ANu?YX3&7aN9VNyTYff-0e-y)^@P8{WgEy>^1>lsDHRqZ
zJ$on-Kiq}-jj;`(#Fn9SYyS4((6uzwr}$S;KR*g5HAc{;h*U1R4ZqhHVgY{96ZNr}
zxvtBnIa>i_Ln!0`MEUjePQzRB9OaVG?u1~vv}~(x&><K789?2I!oj@u6g(n~Vhj}c
z8??|}mUrIky3hzeYOqwl@dNrXrX~6?XsLqrt*{%19OMV<OZ6KGWV_(y&O$6#(ZKoo
za_}z{ay(p&A2R=vnEBf+v{8#<r<aI+7jXciRKL+l_sbR=xulmZRl>JI{1vSkY|6*G
zg&FWK=NY^wYRo*`qw44FX-gzCvPg9)ez?I>tMe26><r~*q^2PPT!;9fTf#4tgx$SB
z!jhcOIBAPA+G~saYfcfrHq!Pw;8#!Gu_~2BW+xD}yY7d25%){+e&+i5o$|UY_c`(p
z;EX8szY&P0fUK8nZqp6@LV9R?=o-KlkA28yCm8~g6rc9|!^wsx=ycaj1E_17<b5ck
zc|8sb1mUglSH15-{k&5^+2Jzj)z52Q{Lty7nt}dx-glYS1eS@-`y;d2wm=wSp~G2P
z9zQe`Y%wIM`nsZEu20(<cUkc-)rNf})dm873(9y={4mR*#VRi-*NAZ;I@fhk{7|-`
z&z%3_jU+WrPIWd#R+r+3X9;O9jt%<d<>ND6FwY_8IrmfL@xwE+!(EzbW?aU&da)q^
z(05~pS9|M)_@Two!niA3Vqr+a6rg^?0)F}NL#{vkp)=Pp?-Zk&7f2MN7$9;bR!~1b
zV+;K#KDWy}DkgaBi~QIrFm8QUby@sS>u}a^cvki2e|%=b0+9!v7UPF;Z3~^M;w32d
zc|$)|$9&2`te}Kn_LTg(9dThHeOl^G6!0r#*jNg1tLxar0j*+_h%L9ua9&?QPZ)Ue
zC~D&!uMJ1z?{TLm#bN7V-ddbD&-El+(=67{qyEs?Npts1?}@#9-`{Z<VJh}H+JVL>
zq>p>=88)w`-}SZRTUP47%>JvqnQ7P6^lyVV=Oc|c>B3)y`opct6x2d@l(04z-bzz8
zlxRmee(jeZWwhe_7wq9*qgeO^$D_{bW%zYJqi|2`7$_C|!~auk6b~?3mGQ3)HrfoJ
zEK0S(M|EFw9;LtFVvitxcwi7noxuuv`i1%pL_8cd2|@hupV;kLvW8&mlpTA#|BLn;
z8T2_@hF^4QaDf9;37Y_$3FClqNeC7A^{ha)>tJ(-_M8`j>p&p~?CR8vV*Q4(6pRBq
zY73~)&l#l5D<g1REBKcdC$8l~jbenp!yoN}o&WZX);-}7Y+6Unvk@n0*c!Z)h<F%_
zi+z|tc1evZz%S&NJ^wHWAMux}J_qr`qrj$xv@DOYtFDgg$G|Wco0<ds@|S5!pOU{E
zSU4REXVGE)EiSfKc)|FEx)k^c;x|q|wT=U7ug54_Q@0P6>JR-TNQ%iSbk&0UMBQxp
z;k}pmS20?6f`*L5akPokkk)!|sEmL4aFf#~ou30!Be})b%7cBV(B4tbzkC)sWrBZU
zIQj)T|41~u?DZ0Ud3zNrI0@BjtAo38jdP%<^NzKDgZJ1x&&<F4=p_i|VC-&lSGv|3
z@<v(~KV;JlwPItQC6G{}K9JC`5CQ+X+VCsSJ=z8S^`V~o2U@lO6vn(Y<@lk3t)$Ln
z^Kk5QI?*2IYfiMjRKM|5k<m|a{l@xeVW#haROY{Um6OPJA+N{p`Sqr;bep|&u$ccs
z{XF!YwW+R={sAEixO}6O7Fij$LlyYdk_YVy0k)d*%o#)X^&z5or$`p@tGK2ifqZ2Q
z*=8tO|2R&=b(H776l`Vn1@a(`WE0uuH|U7dz9#Z!+4(OY0$}Ta1vc>OxT6Z`@6#{J
ze?j#aw%}$wq$fNBn`thKA9}DA0yc@wPJAN^gnZL_=#Ir}%JIX;=~~7nE<0rEk;W4f
z#(cflU(_#!Ru1CxEZDcffEd|r@x*N)EWUnu`7dUOpNUa{l5zNlF*%j(WFi*C4}A#8
z=;yd>p83}a^0Qq*{4gl3SL6B=V%<t`D)7r-*h1NcO}nx&JG?puL5oqhTaI5oY#H=J
zlWPV9swkyeFA?xBo(&%RY>ev>v<clvKeC#afQ^>pmvRsEYaPsUH~7~zbjm?QaeW1T
zd2J>dPla(1jKOXmb)=%R%J8eWrcG>QOaR&2bl8Mf>GqfLFUGHMDuhDB?$#U(+8aHq
zomP1}NV~TdarlQyzfhNpWK7~@JSm<N{W9U+enTwaUmPvOeoi55xPw}3(-F_x15S$=
zT7tlt!|Sf_i(zX8U<>EJ@{w-+2<=b*w=AB#A-G9^UvT+U{RXjlw@w*A>c1`F7w5mW
z^Lsk!tOPxoLLvQG`Hkh#!+L;U8yyu1<o<BS(4Su{*;(H*P>x?4@e!hhDRC9|nc|KZ
zryn{k8Wt|VFV-)ly=;Wno}|P{*ux_dgykoo!~uS>9YeG*3v~cCjYHpGiG%egqZ`{x
z{EL(;o7LaKqI6)>a#4iroQw`b;{yJrY$js?$`1F|y864ka1Pchz^{8edzkGyK~HJT
zWEScWk4j?&5odFheo4<}?m;T^1iM%iQiU8=YgXR`9dy(@8(2z$&9sF#K$E&$_779x
zAim+{zhK9*YAurVplnt(C!EkP;#ZAt{m^HWu|3VO<(>b6KOf-NX|>#l?kXU2Ymm6?
zem2vdU%Fy(8UF%)*%-xJ#*;EJ-ZCO0nIStnW^NW)&krBGg}ZtW+j$leFHN@)Nmv!L
z_nLM(;9o!B`LV-1<R>*8G}skN2*e>>Z0wxpAA)~5XV|;QVO(bbwKco-sQrv=n@D8!
z68~a5Pk=2R;LYxr3i|o(3u3Mt<)WGt&!J=efY*J6|DI0wk8(K3%yoJZevi#<6n>ep
zKCeH7deIz=-jIg=Jc>eThubj!+9tP*7sutU%0bak=<A@*e*K2M=xTaeUSk6bxCEjl
zZ@yl4we>*euDm%}&cEKK8yI&EI}BtsNj)MC^&nCj>#y_lOP&9sn=F4^z~#JNaK6F(
zD<2-OPH}%we~6e>GLLP1Lb)pt64pWO%kG-;^UKh$P1M~hJm1eOaQ;iX%k55;_}Aaj
zk7P5$mfz=<=|7_f+@|9=1rXrZ5gYnNFez$HU30hi5)HZb6tbK_{l*Yzmzq`fu{&jC
zqWP<7oFvU)w^r0|Fon_cCUcp&$mHWCyZK3gUvJWZEY{uQ1syQ&8uDM7ifajPk4a;>
zKsIMF>@&v?`TTMh>JJeltXU7sAK(|-q__<|uC?~W*CSbmn#u9<^UJg0XC{DOfOV)<
zPrSbNJ_N5~J=52h*Khc=0#r!ruoF_3<YH<fq_^rlycQd-nxKF4?L0$mFV4DtozB5{
zLJ07StK}EEKr01yUyWG6uLFF3xtxC~+J$OErd_Q`KEIqEOvmi_!P5EV{pf1zB0w$o
z`JQeQ=a+5N7P3%@UoMy?#!iVvCNNGu;Gjmar-Waq`A46N{bAu6_V9a_W)>IEFKgd*
zU@Ck4wO}F^=Fabia1nl)yrv4sB2u@B6JY?dfPc*a|7sb5t(!DFBBuX2`RA8Io_+zp
zoE*YytX~=%y*TO*fnRn$9xvlxCPM(wf%h|LS0Vj58{--`mzVh06^I|UWL5nk&VOYS
zEA$2Ca}wv5r%L>53r(dE8Srcige*I^*tF5y;vjx_p3b`S@LN9riX5GJqxr0CPa#4@
zo<Gm$zjm15U-$a@74H!@kgD@sR5!=7V?_TQuyx&jxQ<E(WoVJ;q5B$}1^h$u{6nsv
zACd74U<>-CC1l8qEoKH}VFgWZ&vX6!6fMXpeMeXKw07vrVh3fekjRGp?~=r@b;Y{k
zxZJAk*Kd`l7vYp>wuE0uNjUA<NTHc+W`|7V_4#zf#6jkQPD>QV^`Sm0C&34meTJ5r
z`Otjvpfgw26mT3Tz%RfS*Sx`ogMXQsYEA|rzJZ{(x2C2622Hl~#${l=&_+nKnNA_0
zvFfP$jVS|mgV*9owi|@~qwWW=O6QkV*`bUoJFlV6fhpBlLPl)7gkLYC?693R4jfJ1
zln0P~4g71n5gEscuwMQu7yN6r#IfZ}>^x!{S27W6aRzO~J~xQ0w-#J~_>YDvp@ECe
z;EOmwR+=_J<6?cbdQZbvl%vG<D!kw_iJ=@Ek3lOYuwFSYHfS|){rpHCdT~O<4`J{-
z2>F6cBp;?Aen{s9?mckP=L>X`ivhA#@04>>CH&gzpvL1ER`9U)8~U=V7WWmD|3?D+
zI;yqO>J6=K?PhVdX^1wv7}r^QmHmBLlhwcMtwp|SnS8`a6v9`FBNhspd0fx+ZKh#o
z*ec>zLE~dzE&0%$zyjtn`pWxXUUYxvd#UM-qT92p%)k6<jl=Ya6(40FqvP6qWcosN
z)jU1K_=WhPTU*eNIlqIz3x|l}(@U^A<I_^yhVe^Pp-BBr8^;RV=zKVez~wy{SIA$B
z85@Nv({jXN`2f|pQ2eXK1B93--@jq=dr*I9JRtuf1%~*t>z8f(8P1-7h{cQg#r21X
zTF1lLbg-sNjqhmoME5nt_i+6o(q6lwTl6vEmu;+|mz*}4m|R?jUuPZQm+RX)gn~EG
zB;%LcAK=%7Ksj6r7V=tofWGcTzpW!EmrXh__yK+`p;cY2Uk+#HTwATm5>SXJA9rI;
zO-4_Z<Ja6J;h%wnc%=)~6N?^qnw>Z}NKwBGSeq6nd`Fk6g>V?iv>(QsZkzt;bXOHm
z5ANSc@wm9pF&e~i$7r^BFHL1f;%g2D_*FBiupqiY|2I#_=)cZ>oQYUQKkn_-4ONU^
zH#$*wX1%5A4>{O)ZV>Uq4X7wn`Zb?$tbm#+JO~u#ge>x3IKS+~_(a%)o*m=*!ynN#
zE}|JhpZCF0M6{<~)D`*HR<vopE!@asHxv<@Fg+3~zU$dlKEJH`1D?wh?x3suMEMDE
zZ*Oq@A&z~eP;V2IZE(zUw=>t$U-I@?+{)51yG<~Di81;*DIhD*d;*XK_%)waJF$#D
zmVQGbMIyr!;tjlIGYq4Co0?|C7?)56hA*6~M(B*~#_Tk_COhuJzJ$Cr&Ca+ognTY<
z<CC0tazSd2HSH9e4#SV~^=p`}pr6WZ`RLc0e<pqmWsI(z_A*`QyD1MK3khX=&4xin
zE1X}(kd*)~lf8+bWQ+XEsd~?NQ+}AEh3}Edr*L8Rg@N|GF{xWc{Mz8CZhQsxt3RfX
zbH~Q%RR@8Nl<+adqV>pEqO13!&EI(ffDBdl@#RJRN^$<H8<lGF1(%m2KA)_1aZiQq
zVqA^hx(_$3p-JxHjz=cMcQ{{=1Lef|K{v8Be7(2FGV~^g?m3;u<AP1tp}#_>mUO!R
z+ysqF@k~qPzkb0c<+L_|Sll;U43Ldy(!D1e)|S}ZX2AH8P}OU@V*4E>Y}7X)@)iTX
z&{F|^$#03)<FMfqNVRZiF@55$$5k6FV-LTF@ymmN>WMlZ3tR-fajwk{LFM>IqW<tj
z{5s4spZ`(<*B>JAl3h&RdS$P|=~oqAYd(ptqVwa;IXa0aYxBjk9$Y_<Fz?aG)XZ`5
z3%MO-^9sn?^NE69!M|EYxqjYUWyZ!sAY$lzEDsb;dh?9?H<)&f&EYuPx9n8rN*4NI
z@NtVso2K*>^&1MZK{?-oZMi!OVG{3|!^9`Ze|fa4HmC2GFOIbzhmh|&M7!KbK{rbH
z#p9|e=s0d;b+~g2`f<A8;KGVzIN)Dfd5i90e79e>+HAaMRKm_<#=`ZUo-+UX4rrI1
z6Ti0m+?ZRF6R+~P-0->b{1>iv!6@h!dSnd6<jL3`tTMR(vLgQiet~vPm@BKFrw8Su
zx#{<c=N+#)BHiKHOvbP6)ZwC9qg(!pZWxTt)A!hiD94PfjDP)-m+5V7O8m~bNdmuc
zSl$D&GX8~ejVE~BpIPoZFo$rNz}j3{{E&8v#9{b;N9jEd)Uy-#Q&u9J3-Iiim;Y*+
z2(1)9r*Gbu-P8yoX8S;v@@y327rVrBlGO*~c8T~Q;v4i(21X_q3i4mx{TsDe{S56j
z+p`JWAH|lRo!e6WOS$ONnO{sfov1(5LE;!4q+XW);%rwWqmNoYw@1E^$mrj7l!1My
zgkQ^5d@K%rVW1H4%X2c~HQNKSIku+s!iyim(?grh-*P~cRWTlXKg18q@QZ2Jbifv^
za_pXvb?vCf$S$s*w`&mU6i2l-J0bPW_8|AUKfo{WuT#{D5<dN>bgFM56P6c%O#p?5
zOZ<!5bS{r%no&P*eJq7>sV7eKB_uADUU>EMiP>@Zh}K|s&ion)y-@dW43zknqKZz4
z``kyfzidL#5c9-sQ6>D^!nDf?VeGUjG)GN>nlS)$bvb^i8$$Nk2jtEaCfs9W=zPGx
zws4=>D|ppDW$(UyZANGOQegLzXAc>_U{@KfkpD6lP_5KofyR&Ung;mA=a*ZhofW6(
zLG6(YLKc(YU(GU{50&^As(BNxo2)zF42^$(4-ANlT!{@uE8}0FT`jzyj{(2z!R}tM
z*T$g_8SW|ZudC_T64|bm`p@V{-^X{MZ2o!rrJR>VmV6En13!NLYpg1#k5<Fr(=s*=
z@N#*tmhmsxLoVAmPp@tRVL1htn9qMjr@{e#ZG?UyY>58Ie@!+^^k-c1`7iV*;9qD1
zjYFFkw0~}E%9y>?M;ECxm<~J;oBQLPUuN5a(|PL#P?((*hd~gsGHk~J{9-!>{*JE7
zH&SgGrTEVcw#g_Cf_ZBy$+MZ!9G!@rUb1@tAH6DIB_!6OB7WHEMqo2TN6dCRQqc0S
zEjXv?=(9Z=-e=qc`#jg}&eiQVzWa&mg(6u`Q%nM_{P>21%~Z52heXsWO%bs-@r2u?
z%lH@Djj<&5>Sl_|I15O=$Z!S!^2RlDLclB&2FP3(;{p-$;v3nk7-3-#3s9@`h97W)
zW6y>$h#wZRhwXNg%MK-SWO*FWK23+yH!%?l@atEI8pS4%z-@Jq9&*D^F#wrhWV=Ge
z_+eF^`s?8_Hd(gWFCsYfinTy-vWtVvLHsa_n#9eZlN_c?F?Pq^BoySkAIcTuhtyC2
z`<sV|z5WN{kPCmKpuZ(>j@8AY1o6Wx{m#HBvWwwwNDMHiUnm{~3-BvThwQd)oVSY0
zLn-y^Kd`W--h0&k8LQG9oYxzHm-`VOAk2FgQ0BYnShB>w9FhasT*wg9sNV&_oG-pP
zdmBaegp(m3zfxMA=pSrOnJZUcdG`Y-+X$~rBO|uAC4c)$_=gVf)ozmr)f%!k7B=V^
zE9(Nk*2s75jy>i0m1B17M8}~rSh&$?Z^M^Zs4W~_dvB?J1LlI@rDXI32H5FdRRE8}
zO(Sl98GdEJwotE?f*<oh9I&;r3yLq42OH$SMrf^UMm$e++7IMf^3zw=@tN!E@<S_Q
zLHy7qNw(-Vgn%o;(<1h{Lwgko4dRE)zi`jVrf{4NAMKRiwDqHOr0@h*r#ybh#ej1i
zeOxeXg`rk;Q&g=%ze@azqgX3&+u>{)%XV^s!EECI)j81(;S&E6h!&>I4Pv&1dtexw
zaD%0@*$H1+9zXo1@d(&fr~{3?Hnb`|#|f{C1^6}Fi}vslU}@lLL<=<@eKPJK>gdNe
zcGYwd&M(`MLDaL2Nt8w5AT#Xq0=CaV{P0!rw$stGtX|(oXKw*vSr3Qm!tjmGvYsM-
zZK&FB|739F?wZE_{lE(Z?v6qkeIi!mU)C!$xCqr616{As8mc7|Kt?_h^ZAzv9``rY
z>`d<wFQD@Yrd<=-CJh$_l<GGcwuo;IHaq5c*Gc+j1Z{Bt#`N#aP(<wh5`Mi%NvCFm
zJ|PaE)Fc7Un0eh**i?pJ{<RyUbjng6z1H<2Iv>sS2lX2{<Ain-Epcb&v=e|W0NE=U
zj<_z9+Cf9<SG>vuTE!$_E3PSFvv^T_vZqykG9?ardJ(VchFy!3Np+I4Fc;?hD-L*t
z95<ki^5?T!2dy>n(Uj;Q9I<!J-fPdA_X9yfy#Pd|U&H2=G$B8}DZT<8(dNGPsRYh{
znLiu2nKM~$2v$MHFL6eIMf!03d^9)n1g&J75a5?nb(-E9xVa_LJ@eCaOu`-l$eic;
z+Vj&^>Sgi6`>d9I=Dlfz<pEMdJ>uBdT1yr72mEW0zDsjg;mANQ{VltW06Ps89V`I4
zxIZi4A0m$3g{7>ezC7GQtNQS`+{5R;LS^y8SC(}4M7|aNq<qm<w(c$Z#D+Q-cEkU!
z3{8sD`HoF<v$z)Ew4+Sin*sps-U8>JlKfrLItKcGlMC4D%yKQn8g~9sx#!~Yq9A^_
z!oo6vKc$=OK^wrD6R%O8U>Fe_4ER@U$eFX)%v`xutkUk`Hov9EXQRysFwWucG7S@U
z-sW}BBH)IYuq6%~k5HBkh_7GFzYd87d*V5LD;+|AfL}Q82|E_el;Vd|=;70}%+-78
zY!${nuDt-PW}$>%UfK&@3c_>%$u-Ei;I|e!Sh#}cAA0p0a}S3%h=tawyJIK2hsAOB
z4^y1itKeUI!`WEG>Fc%$6j%~&!E(^&<CXjiBTZPVR>ur8o6g(2%+@a8yMO-6X<%Oh
zOJJb>@L6|zJh4T8#hF6g1wd-NjDK;Pqu~=cK-!Uw=E1*EZ<7Mp1^A`-mm7INKWrUH
zwWT6>4<SC^gNYjV^h@Qx*x%ULb>1GjKlTD9ob5);!J@q5tp(@5*q1;x6gJ!5tTf>x
ziGJ3(vif<&zqs1)Wx6lhlvPP3@Glm|y!RCAHzG~?;q-w}QYJWl$cP3;_B?hpe!Tn_
zRwuvsES<HH_5yx6DCF3JaaHoKvB-}86H?VVzzw5AvMq~o1@-gF_dAH&b&h49)~<8W
zRc7?qQ5E&`;EX5CZ-|$jop6!SRWANleJ*(VRpejheB>scTolh??EZTy?%#l>$jI=_
zG4s5$y+4u-#X|>ay95zC?b%G!A7W>A&|H*QL+CX5pb7*yR2BHe9)4oI{+fB9JGX-I
ztLXFZ_4XL@Uy4nbkBQfeRSqs1<w6C&Vj)i!&tZ{&VFf3;7~0HC=mv$Iz^460{W4VA
z3$QgxeNNVaP*3VcDXUoD>(y^`*f7h-4IB-z6H>Q}eJ-!xFgkm$&&+(4&W+;!jrG&~
z8>KQu{AxtFhQ}4j%sgp4mmaw*l7XI{!xQM~{&N1+N)gH1?>DOKP$j|u^yT*-f-`bg
zxzDj)*aVM}g}Kj)$9d<M0om)sgax2ye4i-J&wg($y!fGlE#OyPg$=zPqCb<KeyRFH
z>Tqf^;KFY&?i^jlefIfRfL~c&O7wYVUW|3afA;1_aq0lSJpKi>dV?NZas%@(?+G$u
z0e<=V#ne76?LoE2SmR(f0{oiATxJZr_gFk_&UPWFCvLb5zx=X|m5=PFQ8{lm^oySW
zzsl<8l}-4`Ts||4aOkICQhaMuRzI)o;X8_d@kJa;03%}{bG`NA{1@sWxf`gB?`d*t
zSU?Z=qCanV^Gw8TJdQ?uM~7<6PteBo^vmO4uq}odwVr&)?wStU!q#RAV;}SOymx=p
zLKo-1&{f%1fSRA6ciH-t*Ux)4b3Hyf?d;B#kE?=z!M2>x&&t#0ND3x}*^Rmg(Osf2
z&f{OL?(G9z6V`4yXE>beI>FouL__2Q{8Ic2cTG>w6EZe7loQ-$vuab+FR%b!LEfSx
zhH`g#TyXxAMg8*XH_)GKGuP6zIcvSOP(;JkdsvqP{)O|fNUS{V`hCW4mGLjE7h##+
z0e<~bZf}etM<!uBDKcJ;UpoQ7gZGCzL2vCl!vlMNWj_ArxE~->iC-}%zAdfp8p_}z
zDHoa9do<JPs=zO$R^VTp2t(Oe>Tx6&LYZ_0ekI+dKgB)mKc_Y;df(zV5EsP?{<IRm
zFbWQJqAq0#4*X787cw{RjczE%FO>O>Mb@jbjm}KuZ~9-i4&rv)$olg7ji>XtOL<<X
z(+0nI0Y>kHv0CD!f2JaSXxjy|9;rISa%Y?Iu2GU^g3S2piuhqu%KWN=fR<EzMQlIa
z*O#zS3t@U|>fu+i3*R0Q&sZIUfUQyC;ts%sU0J^Y&*2^Y7pV(OFkcbpFhJP(*URzi
z-6U4o(!sx|b53MfZ=uuiPB$@J5kHKxrx%)qum%)l9_+KyCa$|k@!sJ0;nT9|c=)KO
zl?WSh+2NJ+L)nrquixNZ2bP`m#y*bw4{K@r9f=p<oRsme_n7s+rN^reiq7H4@X+<v
z=?wmYK)#%RP0?-+8}3m?4+lu|V+bV9jE<J`FTnAN#QKN1oS^fy=&pWN*pA-F2E81=
zj>cAYgLc6_xAx%t7fv&!TT@uC3j6|Wfl`6~f3XX9{KAHVgP1=l$FIi`HZ<#Ri?9QX
zvct`z*-i15+v1<Ds6Ui#WDd@Z!3ROv;rI39@^rRiIPpeB{h|AG3dfcKTbimrM1Q<O
z#GrlyHzLwJioUGh;L$D*3))xUFD#Vfmy9*(51KaIr&floJZ+#@eSDxCzmOBBaDAg;
z_8D*s8wKN6+%acV;#aI2$FVVXqjemRJrRG%1F~}b(%SCA{ZX@pAD%_$Q%^Vm)-wFU
zdI^+mjPgYs2XWcUYdvS|4yT-d0l!S|{1?xU#rS1SHMKF&m*Lk_$m?+#0CD~cW%IzV
zv1S>cD95iS$L+%OM!rgp?#aVhg7uRFqo{E$$1l72xLJ+s^uc!u<~?E-?xSWPTNm&z
z+<)k9J6-d+u%I8yj?IbrLwJ(@C`S}a{EN=4K%Qt2?h~BkLEP(zxaf)nj0F|(L)gQk
z`W52G8I)}t)jKuZzmWxymGQ5gJ)2x}&uYHgaMNJ?Q({*APP=)~EL6r1n_aVqV<1}7
z^MBBr{v2)7nq;U~IOX_-N)<Ck7&|WEw**&<WhrE)yG!`>E{%*uy2Av0Z_C&02!Ap8
zcz2sqJJA2<o-V8Sp@VU)hl`GJQSJRR*GOC>)iYh{S&x75`L8o_`()(s+N1{lm5ROr
zgMZkW=S18R|GI~s6!w^TEYuA9+&Uw?27$7{C2i|kHk9!%deYkLnsQytMw=yJJDs3)
zCW4=$#J?gyw3rJWB)IwsLf9|@B4*QcETP8cC%Atjk;QKf!C694Xo8N?h!e?{_!pb^
zn_Zw4(kL3tAQwEGrJGm?;)lR5yWNhy+h53@mF+q2B6`o?DC1vGkE5*jz1Xj4S6{3T
z_iyk;^s1u1f`8c>(nEV`7i}KfkOYwVepCg1Z6-!@(6`uL;6(x><v^mSz^}Fxb`;JN
zWs^=KhjICFzcT)X*y$3qDL5$Pm_$k|h?JJ`FRc4fe1!9HJy_g|_t-pz%)b!bErbi=
zT6@GrQnFC$PX+(7Gw>V?!clYXYA~)TFTTO|&+}>Jp}z)x?QmQ2C`9xa8H5V{m8?V9
zkO-HtbNxn8QD4r#%!RjtcHxg5SO7B5M^gUAcy)^V%=H^*?9N@0k;NES--x?*1Ul%?
zPdWdxTK1a%hnSUo%m9#mC9V8JH(bfTvU7(O?b<Dy3gNGUJo={qD*0C)E^&>!J<C8Q
z7|}2Z7xS-lBpbe-&ga{AAQXdz<JkK}{HxQRt7w;_Ty*ANN+^pT@+l;^`mGW+Glk<w
zvx`1|IexJ>n7M7X`MA^i`}r3lias@4qJYfjXchbmM}YbMLr#PtfTIKl9^+n5zZCxh
zenrihF&+*fkjVT?^|_pXE$Uc=`w!nlAtG#ox(LzZR%Q6*GZ)Y<9KcDG@yc@iD#F$-
zsJSZT@+#`f@r(JF@@b!xiZhn=xq^Q&Y=L&!%)bJDT8>{{4*^>lzE8L`&t>?9J}(C&
zJ7Jwlcdmf5bb0=T`H?su$M<XfUj7x^2(~qczH0%$ejop`3)oQ+N;?VOY=M52<CjEs
z>956yX^X($Px<m?`PaL0-UPB#wKm@$l{kz0H!jD&c5jG2*8e7Nt#Jr}?o{BHVq53I
z<F*x+PA%@F%keMN|1j;k-(hYQnx*_hJh_N}aT^;K!Z;XL(58}q^(eJ^nBdr#jlF_@
z;YMhrQD_|DwMYR5t*Gy1_~o5eJ|QN1I!9saf^k*yuN63c*vb3QO%#A%es-ynf8}7}
zaP~w3fO0wz&9l#y{LA7t4s5uKJ_j~DU%|hK*HnYk#p7C9v>U#DdHf4yQHACNe7|;Q
zO+gRFRms25Mn_s1XRgcbVHtk$nc0M^<Jt|oooRBC4pU1$!Z+<Jz2N%8C*0N>aDP;@
zgSZWwuNWZ#!53B(JU@Z!4@azohB!8kNAaJC!uc=a;3s_bcQo%ksNZ<PY!#+V^L_7k
zGZx?mC!AjnWsCSlh##JJZmy5q62779u%+(ziy`BK%wx86e-zj0b=vTwUPIVWnfF5a
zJT7dn$uBO$uhULvePlp4KsMU;EzNzt#yN$>#d|EnW-MU*LVh{foranZ-WkiAPqZ;E
zLy5kR!@Lf+@#BY6aYUp=zuYorj)WqEIa`g(=U;ivLo0J-7hlA2O&*|7heP+uQS9{I
z<HrxjK)XzO#=g;o5J8m}Dmv^^{l->Ow?=Q%C!I5r-9m8lGX`P>b~*pz`wtOD0Dc)t
zKt`;u&0QPR&-49<%+{64j8L;1N5}&H&n6cqas2uX)E@$^nz*Z1(_^0SvV9)}R3zH4
zq4@FQhw42M;_J)cZ#>72qKi~e8UH#>n-ML<^<3wj5sC7lGjzlOBTH4D|LPzP8`@{R
zzn=p9>b)4hU{ZRJ|1yyFYIE4G+KM22yOjT0&e1TH|HA$O$=V3q;Uw1({6ov)K6~-Q
zxjp819hWrQi_C|*P-AbZiu&rJezE0mapK5-3AAy5ak#!Ij*9=X{8tKFs}uRJaEuNE
z$gpi<5{Wrj>{9*<R^7XQ9#}BBoB#e73W^vVteHN3ZKwilWf!i9H0n3X11^tCNBuko
z2y}R@EPm*;TIPM2d0DV+1gn{d#VG6+@k`x*XyJxNtE-Ccvzu<iMI2WU*2@X^i03{1
z^5chYH((373D{NCb<1zcW+yyey1&;$BA#B%^9b-Xe2qBZjBtN^{8INHQb*U^Bw$Nj
z<cmO}tukU6y{vwN?<c8c{6ZQ9=f4)S-B@VCH!kB}Pf&9fr)(NwKw>!m)jY>mg@_l$
z5ABno`G{0(ce4dE*|n7Vjl>J#kBLhBa?M`RsG)G(iaWv*IRB-Eol^db@1Ji<)vna9
z1Z>TF1?RtRqy2q1+qi(YoPW_%&f3S|VkuW7_aV#%iu#s)x5&Tv{wTixaM?Niv~yU(
zvB&u@<JkdR^7E`dULHT(G#dU(ag^2)1V<d(jEdjU5`Hxj#}79-ID>gq8!(#)ZC=p$
z4gnNT`uLSn^-=JnlJIheTxAarnf(q3i&eZoY8Pzg8Tf3<pFcF-wg)!hRT^{ghg2%g
zF9XroMITf7Wo%K@LJVTBX23L)tQTB=2(;qZ4$4uue9;YSv1d89<Kk8UuZ^nTXzfK-
zXp+`|ICmGoQ&#u2x}V&U_Tw9V{YD;tDsd89bTgT`TjR8P1`ge4L?wQyae;rqZcxmi
zJ_*0qF8YVae;H@E%s4j_m#1MP;XW%BP;x(voSojoefHyr6dl)(8Vt2_nTR2`MYWau
z3lI<~^taK4<iY|HVPIsJ@UJK3+`T5)F+JVZI)+48aH6?_e<eoa$@Bniw-aONYT&CE
z`4{e=SG6li@dHi4Iv;}b@x6k70j+Z3tf>y=$&xQo#=kBA(Xd{<SX}&#l^4M)eP5ys
zzt~H`UrULj#At+zW`PCXZ;hAmi|cL70$oR6!Y0vol=@S_zf_HoMvt)RHcI2F;9o8I
z?!QI|?jIx|0JVHThZYtp_*aL!H3>ZZ6(wC5^TUW^ceo&8<@}2l?uDCyuwf%`Io}_Q
zYrHzeYpVDcb&e%Q^x5)^jX+|$G_G>~#r0YrMZ5*q_PXIOr!ULD&_l#LKP(x@!k;bm
zxq^SGG%mZu%5MqQ^m%X37ytej%zGR>Wkg0Fh3;IIf3dIriu5VW<@gu#lmyJXRM$a#
zyX5m%@GnFHGh(jfvhcxOifE|%go^l~YQxk60d0?rs5bk{@vBI?IFQJJdY|2t^DjdF
zOVKVl0{wz1xD5Z|b5a|ThsE7KDVU3Zr(DFp6m0or>Oq@}_?J(+Vg%uR@?Q+TE1Xb8
zpL=<4c=*L-8#vazjZ)5>;@EFT?$7hp%kp2>fP*~Yd~)5)pg)!T3n;9==J2A_JX9Lj
zCHXJi#<Z~g3Fc>U1%7$7%iuqxLYrY2)rsbd@C)8xl0(zlY`B^w{VK;VSbnBm_D=hn
z!-J@wFY=v9Z%w`P%N-MuPW@{8LVjl+f41`F%kr<z!`JT!zb?<LSnv|;d|(qU=3i&^
z8>>)un2($VVYw{-a>E6L<sY!s{Qw*3*Njb<<6j*%mrlWW{vQ720>4be(D=`$q}Ra6
zz|I5FJpC%>zoLck9N-SF+uc#(DL&Wp>JMQ_a{8N|iNi%4gt|(8Qpvwy=k+$J(q4RE
z>azTc-BcT98Tvk0vWJ!Y3+okX^4i>A)~2XmY%bKAs=x2xhN-ls75s~F2m9xDw9PGF
zi%S0G!XA#(H(=*cDjD?I=U=pMk>2YZvp#0j><I*opM1o)%ALn*L9}m4)xFy1oIkZ1
zMgyVYUYf;E+<6KsNea!D-F6*{S1u8xtzJWtv=rTmlNwbr5UNsi2c9$(+wAME`m**p
z`KNZn7=&5AK<Y{HyY@MhqTmlp7X{4|ihb@jVwx$tY+Q}%3zF|N;U}`#=C-P?zMkwI
z@rF=Q5Sr81le;5PMa6MNw9n8VyA8>zrJm3W;ZMnNXCw_L7#BGxA23LxqQKYAoBZ!Z
zew%$MY|=E@5`45IRN>EaNpq3^UHhD>l=h$KPcR#p76?v*oVHx+R!@q3cJvhD#5Yon
zRKgWhGl<DNN{``5u}zne?2FioO$(Mk5TtrioI^=)%y4LsQ(=M7W_V9*Qa@PJq+Dvx
zG>yGQ;hCy7S3PlUOSRe8Rh8<y)BY2)Azc*ut5R+^Kas_8bybeLnkOLHr)Hw8&#Asf
z`&M&C+F+rJg&X>&+qZVl2->8o?$rK-{#Z7Y1g%l);wMgVy{ffEvL{vFSXCx`%6mek
zaglUzOw<q>3!i4eke{%vZll;{->v$m<O`{fHrA8`@u@!br1)L?Zmqhv?{ld?ZEV;d
z2-Ey0uD=$y+^XLzkEK4=ShL?3s`hLC6L*F;&$nFWJ;uFq>0O^`Y;b3I`bFXrwMt`A
zO#2Gckl1JHr&_y9-kG|hvFiRnsPdmkzsW65Rj>9r`crCfmGBuQ&{Flp|E^oQC?y;1
zYEw%qL2XzE>xCz>*yk?8#*;47N-IGv9I1t~N^Pp3P4*pTgJ2=~$B_o;*Pc802^Ghs
zYd!8A$%aVP;xa+rVK<mnj^Af!QWsfDeOZ8_%`jQf_(`$JEnR}7RNR$?tQ|)}M)VEx
zlj3(_>?!R|U%z}|TJecLu6>SPp<k?M(62H2D+t9eBO|FrXffdrk9tB6UoCE`CqWxl
zE2mt)#%VU%s3(4-Ds7&#w0CB`v5$ow7OLh^xAQ5>aEtG0u3E9@v&lbM)9^@{;C?n)
zzotPJ+YolG=?H>_g&>7Z8M+p+F!jW5WG=aTMx(s7X~rN6#;qEJR72xHb<>Q}dv58O
zafk88T7$EsXGXme9DdS(C&lkFo4UNS^MTOKPx|>Zeeoxx3F+WcOT!Z=z9d9K@->%6
zu?a==&(I6*N0T*6l`t<ked)}ZRipgGDK;_#EYOOeFwGa-Vw>j1?)}!hfi-veLgcPy
z%W><H18bU!O=#hTWf%VC!pRHgE){|{{~jUn^YD$&yqVj64-0#rEf<1cZ|_+8+{|}J
z55KL1_HrR;bJN#9`OAlQPP}=Fg>@gB_~xmbR(9{7xozUaUk7b8(Tl$!_Yq_Io{NO~
z>29%+5y0^!LeNHB#%?I2ZZu@^Jw%tm(;~w9jZA~#_z&$FW0wf-|MWeu8^tze5sm{~
z_Jx!cw3%bv)>oHZGCbo_!GDeEM(8tC?^Y$XrI!ef2TedWx)_)JCyoZ~<R8-w)W*{m
z=ub%q+88N#7q`+3d8y#Fu{1}dXaikK)8!>XT74Bcw_FyNJ%IM@yo06z9A7G^7dhx)
z5@?P{F8-3}MS`oEsPC%4(_77Y4_INSrDuB`Am>H?NXbKy-g|nqE(ON{F5k)q-+!~;
z#<|5YdbE1Fg=SnTba~&^P1UqWS}CJZyHxPLin@Vu6}TJ#Gz7nm13bM1my1svA5*kj
zjeGlMrT(yS#{NqL*L#tp-74;t8&e-?oW9=|w4zYdubxYBxk>^3T|oT3{v2KwmwiuI
z`rn1I-z6JU)s5Qymk53vx+P_-L>&JQ<&69#LUC_ky((}y0BFW#|GThW6}TJ#G=yRs
z>_ex|vX`KA<`RL5<I<_etxr}(w8fVQj{jX3;WFSDxa=df*M#?B1ug@QNfe(Hze{s2
zRjc5M|6T8=U(#=bIh?Q6(qd`lFA@AX>>+5rgF6Kb9NM{9a5eQJhv5A?ksiIC_FW?E
zEq>QxBekb7d23`w|0RO-=TLK~!kh>npgjZQeV5kFa6C}N<qAO-zsrN;TeKOM5sK?o
z=8KiDdAiI;qKj}j0O%4fJGcCi{u$?m@sHk6bE)7I$JKoa1O%YqdVMBhIIb(=a)q#{
z*yR6FT&{%UB0&GQ;JYq`<KmNZL7NI(4ggvSK^rkZn<(xeesqZtw1J0;t#o<p2^tMh
z6FY4dsXzPc@cARrM1v55CjXxID0h#OHDv;CyLRk0@23pVDt91n&Y(@%ufu<=c%lC$
zvm6>L-qddMmgXOmLIYwG4LftJONF3Kk$9CGc;EJWui=iB<|mjaUnsuEqG?I(F#RRX
zasxrlJf7_J5aY7%c_4|I|4Za>{4ewLu~JnH_NAR*e$W#CzGwml_=yv|1%#yd!qWeB
z&p#kC?9#*cmpVG$=ksXveLnnu>!XDiE?jW=<(CS<S6=#2@Z|ruZ7x;e;7QQue~%8n
z&tCmsdk<5$3f1$qGT3A9tII{bC^rQczp&Kia=YH!<w2WERXBJOw0R$04%)oW{1n?<
zPM3>H{eHS!v=aV%==YE6{dGCeZhyfpr^~@wexS>jGX?+O>U*#_zgI|-t?@QVQr9Pb
zZ=(-B_+SP;n1K&w;DZ_XU<N*zfe&WjKky7Fe+do~{3Yi<@HBid^bcm>gBkc>20oa9
y4`$$l8Tb!61Bl`yqq8%gB#HkMqWaGCf6r9-?W>ZM<==xZ#qZfuN=x}K`M&{afFh#+

literal 42175
zcmeIb4|H7BbuYZ<+>yA_9eJ*0nWum;S0mXOn~^k@iE$hu9m|F);Km{$39paUHzqXC
zO-U+9SD)MFwMQcv%QoPNaT_Of^9_#EDukwE*#R3IxE8{dje!Z}OC6wOa1}=olPKVT
zY>fT=_PH~6W@N+bx7PQq?^~;=Yn7d=<9pA)y?^_+_dZ8d6`u6|k0`K)W__{uf2{fM
zYrojsd&inD{K4%lU-`oAbQ@K-eRXmCPw!k5kJA^(YKt$ry46|Iy6EF{J5{wUTGqB?
znbSspK(wp(JboVh=4ZbcClw%~OX7h9|JRHMoB*lL<~X_hzbXIwsyN|!@qY*6B&mm*
zzCg7$KYpK|pwhqi53~sw@AC@pvG*SFA81qiL2ZI5{o4<2<9(}Ee!z=@`giASN>Dvj
zQb2iv3Zw&f(0^0HrF7@0;zn-8IXbU8DKutuu#gLP8<*01YH=>K)`(Ltw^8=5=rPqo
zX2$pm3$B$i?x4p+#5L0*9gK6E!HT1_hhhmcB|<EqjTX?x5s`p?k30JzdW>3}=#aoa
zC%k8S@(%S_Fmf30$pjPp9-4iU-lg_*sNRU7O@|xaVYJ{$#*L*7JE-523ml;H)S<$Y
z##soRE(DBXIXa&+rZ80eNc$o6E_I|s+xlbp=XlRvyzprj_&pA{8LMb^(2clxU=x1}
z{fUbhZKf7!?GkO+K={d3e2Ry&-CU}NgK^mq{+0*0Q!K?6!;ce~OOL4Lw7E`bA!i*E
z9rO*=oU<l`>Ak1h4AEQE?#6Z-o)ET;Q1V~!B<%FpdK*X9@VGjuIIbUCXX%e^3@~S9
zD--;!p^9G#j6z`)JW&`<Mvtq_4G$R$z4hvzxq~)Pv$A@{%k&5}yAbBkzlsLeN{FrA
zJiGL5+JHV=>%=SQ{Jfm?HT3zPR71{ME1*pLt?s&`)K4w9TaM6+>spVC8TKAK;^N6x
zZ`~(m5780oOod-HCg==zY}|^{>uPu>)?%6Wt!~QE6m^(kWoUs|kjJPa5LPRmhYI7z
zv~Q==)R73Kj3yQ&3&BrP+gb=C-nUfncG{2rnDyejEcBS$#5~$4BfSuEWb=FKE1LAL
zs)xH+h;f?=@qmm#s6FJZg&7ReZv1NDUU3f#(zHd89-uS}BifA6zM2I0*_ojXhXo3e
z<<JDRQH%n=GW5D{zhV?!?d+{NW{h*6zts9-|4-6?J=FQ7@QeK?Dto>DoWifJl%XDs
z>oAYYHs;Y`JH8y_s`S=tshy*J)S^sP?a&Y_$Y6COIjD9nj2@|;;f>v_7%g_SFW7v8
z`RQbxT2Bq#5QL{+^|N>J*kv@8Y@+Y+xNa78_WDSJG<!s)w-)KTUEI}`p>0Oc>(6%G
zu{LO~5%u&dO5CQsE1bd}<FyEHGfv3UqGK(d9P#ukYNu%mJ0?_^pH<4@8N>XzMzyD3
z(cm(Alv-2ftH~h<7~qgt2qB`PIZ^GcMYN(zLch}HLxLO#IVc)5PC2d_MH@ZOPGAmi
z<D@w$QY>W6$>f~qBeKyoZx_-0d(2vTM|C=(bw;g(kdCc2evi(n-A-uAS}1ra$h_hq
zs7wpBW{g)^cUXz^rX?uRh^Jq&;zfE6|2%Zec-w|OOoWdaOX!(_&KxYH>#f%i^y^=#
znWDYo1@4cuvf^r54@EPjc-@<4qV24MgeSTUSu$xm1N`I`m|utclYoBRPchrPT8z>j
zbj%70hg1rd))r&lx({JZpQiRq=m2!b(|4<dEr1(yjQqD0y}`fQ7k+3~p-sOw4mk`k
z=jm6#KBY}%=*9l4Sx_N1mCptiQ)tqnm2vJ*U+~KcW-w#cMZOEe*s9E&v5)Q!UPYLB
zN7~#*RcO<_GrBF}u+5Y(_~W#ZVCNM&FS(5gW#QqN8KDALQ&y`1w25*X;prEdchI|{
zMQMFU=XoRLXbiX=OBv+pSNaMz@7Ge;HFW2x)ipBWEL+H|F;S`Yi}C9$Ee-|W1b$)R
za^Xp%od=i;PZ^WmdTIPx7pXT-C1Kvx{G62$EevEiYoEw@^UU})9CVJ>FP<NQ(Yu4O
zAT$%5XW_V~UyNUSWMmZMVwjlk;yrob$cRaA-6imA%58H(87t($jqZ=ohB{k<Urn97
z56=pXU%jyNT9_=sFPPId70%3xDR144n1nEfy_)s(Ypeoa4@4gLZ<C_c!>>uvDSu5E
zS4O<)twpY46=edEfz6q&-^HTn;mn}L6q~f-k*R`y&83WLaI8NQzwbPvzMKOn%%y)&
z&Bq~(dGGP?D}KycWUbObhHiu;BU(6aJn!k3yy5`8N1f96jiG_eT|IfZKQ14?Fh6F;
zkF7m`t-`np!t3680l(~rgUzE>Z&EA1YxQ<P2x=gE-kWE}FJSI*>(6WRn7g!g?o2%4
z&QE&!#rXA@iXGR>q{p7A&O0Y@@w~V0j9+KcYzhEdj9*sT@C4}28Sh(p{L-*RQ-O}W
zKpi%K%*U^BjG}FPb;_8p*v`XLY6E*agfje!eA-HN%~u=Q%}9wR6T&(OW%w1rud17%
zGG3d4P>NsDxyh;%71Rg)f=?23`l4DW#V<ANgiXW28lukwRx~;GfbP7HU+A;j(F+&r
zMBdJC)<DLc_wkFLbV`|;b+y;#+r}X}t(I_`L*9D%_(dYZKt|R*7|y<)2w6%z>&<fk
zzv|J|G-IwcQ#>_uH#KqRN6PVQ5YwW84AU|m*e`fC#364j(zDSY+0h$ISxve>@I|?Y
zx<3<n{0i)%)2WW`)wceXUW=3T8|oNApG)zJ+U<7L=mf`t`8CxOrHmt<enl&y^k|@U
zC%n^-k8A>dS!wY)yq%U5gd?6_M4?~UT3f5)wE@_T7@Lb{*{Y91IO6G7n(@nNR#m-F
zs}1yJ>}T<!llRajy!Q;5a~Z$VRqMX6g#KAwn+vZqUZH<g*Crsm?&+7tubVp5jE6T*
z6;x(Iyem4674eH;56`=c)1lM-d4GP&I8V>@b)E`M8AbdGK0yuJ2fr%n7{9nbKW4OY
zYkG|by?G|ufnPOHeSCgF2jNVjjWl};_~k&qfYfLM_etwl9KYg8sEUh0Z{3GrGtZmD
z6q>v$ukVw_IPeRWKU2gnpq0};0865Q%*Al<1j-1($1iP3dRI*v8o%6duMtr{^PGQo
zrN*YdpvI;w?DNM8_OOaJi<VQc0J#EwX^XAUW`WW^e+G*7x73p4Hr`s8L2V_J884cP
zAdgF7P4oIiHFv;bcfgLqeahQ0hhAdE&lqkAeg%MElR%=pd1v8T_mas{{L=i(HR5y>
zhPftdTt+`rkL0jkrTC><9CMH&G^iq`xm|o*{?koYy=|7^*PcL35k*W=<cKO;n7i&@
z*fcg+hF=(R5-1#X@Gb%DHsyDmg)U~J1i#*;PCN8tYZ2XR@2RUfXf33d#1a?lRf=E0
z<<{*+R-9HHPI%BbL+4e8+ggTSn3fdW-34@z+Uyy^h+^HBdhc=APXK;}9y8z;Zmo>c
zMkhk%Cb)B(=^E}&34UQ~Nz<tgQj&H~Mcb=Qti_OP#zhH!J)*!p|4>xY-JmcaVwZ^x
zsd+4v;a9sGazNikMDIu_ZkXa}d*3L868yq4jke~Dvt8$?bu@h1m=foie@z<M$^`d$
zs6y||L};n;_w*#SxuGFrfqdF&JBoEL;#cqyiY<qx1feo;WfP*_>F;hBfufb;7x(ZL
z+Q5BY3wL)zx?!RmzgVp>QuawSm9AdduN)WquoS<bDY0F~gcy-+>Y;HfPGf2qh;|`<
z-Jb*aK5mEIepgJ{+US+wmv;3%bK17HdYh5M<h4oI%rgAakTeea9O)h0?)iRfpUdzI
zZGJ3H(U0u!$m*;Z5B8B~!wdSw{0nY#4}9YvQbSL5j~I3Pu1<GrEZ}MO`4_g<ahg(X
z=^0~i+Q(M5)d6!$@C$wJ0X_LSodzh}TW3s;o{e{`M4!v>t7GkqW5)dSGee6LA@H5#
zVW&-orsG$gxn4BTpp4k20%uadFKEg%{Hg|i0dt)mvrY_PTnTAjfL~B6#%{sBG5lU9
z!a^y2QAc7%%9<}W(y#=O?GlF-3q~n^QF}K+1f%LVqFsjLE54|HLlCCnmtH~Ur)}&%
z1IP%Lwj95xr4MKYAfv`~G)+rs6GapdtsK8xOUE}<^r%V6km#pfZnPY~fDSkQ3Bm}E
z$OW$1Bid<0eBKy#co}{Hww79R=`FP{7c#9YlmD!)nFJ#%#V^vHFe}j#H$2>b)OlAf
zbD=wV{-yCtY406CraBX#UFYbz(Z#Qp;g<(ncY5)SmF7+2W#DPUsCj3Re=&Y(XnUCj
zStXN4<pvwdSdL#FWCO_HYgH`~zY?rp&^VueJ%q0MeeQ5;(%c_sj~gq;FX}kB1+Zmv
z;~4`Ue(|`<@yosPO#?vYbh_YQXT>jRG20e*WuAX&{Bo^*l_%l2wydl9fj9|FS>j%R
zUwFc8L`%ZljW*v2A|{iWhF`7~zm&&yhpe&%GtDMEDaEhH&{g~^ZO|ml`&sd87&P>`
z6u%f@v*`1CF!<<dp0JeT7hN+JngmULjutU&>4gLTf+5lzjrrF#X5*x}kLCwAXCpbl
z7Dp68#P)$R>ajEbTD&Nh9gNooEBeWCFN;UG^V*>*#t+RsYz8yXFUyR$^%?O-;4zxd
zqlkNci=2592z!mI`In2~%*enAgpcIHyC{txR?X#^Kh<;2b0L0P0O(@;ke=|+s)^1d
zIu32g^!v_9Ht4X8Li|uZG1fRX*t_C(dTdoJ7d(K;^qh(!eyx^!6qs+kvQq6)v7B{n
z*U{h}3h`PL@ymW>Js@CR?dKd&m~nF*aZs+Axl9qi<Q`fIv|14if_9CD7a2!AA_n~8
z-VibWIv>D#-N}0lKn5bF1s-X(GQn*$ekIzDZP{(a=r^j(t;yg$Ixbp@U-XFC0R9F4
z@L{_FD%16{VE?cjzxJf&jo-Mm@=|ma@xyiE41i4cxrBf1(Yvm)Qtrv_a;u?MiM*3s
zhF?qi!fC+z8Cn9^T5;Mu!oFV_eofLoW?PJ3%cx2V9uf2L3lPB3LL2@VhI2dY{J0Kq
z!DjmS^+nnrj3i8OtI$sg4ns<e(odoICHNHp^-#yzVmCP(6@qDB*BGbUl=CmSma*XL
zh!vRiX!CU@HH-y3%^rRMw#>m54vi%X@eO#4)9}mf=-ILj@r~16+Pt5|C^TUy#jkWc
z5z3;?GqhONcmS>2l<}`f9bhYG50Qo~@Gk-pE5olnD;){68fW~HunAs7QTJKvY5h!&
zA4ZmA>?i4ariQI?$q~hA{EONctw!l^HpBhlnb-aC@r!Nd0T(lWLY}6_B}@u)G~K4i
zzvN`K2U|4B)6xfg=Rhmw$LC*H$wyaewE8&x%52?f4FPUAkZ9$K_|-*wDB(nbUn)bf
zDa(Yd({{r_n;u?^bik&EsUg|j9;u`6A_Qkip+Uh#Jlw~xTJx>cqC{w&bs4?Q{Ogwf
zSHQ?1tS#c#14CyLKlrcOs_WtGEZF&U5x?FP&!iT|5kEXbUt=JfF!Drf!tnXmHlSyN
z2^h`N5AEh`m8_ma-(dYp6!9xX8v+f|=@G|hFFQ*d!`FzG5c&9_Q#T5?P_O9-?Y3jG
zik;j0Ddr+R@8ee*>d>ZO-p3tGuZ!u8d5D%S@~_wEOyF_S%QV&9!E1Vw{(>8)i}-a0
z40`co_&3;x2*J5w1_e!Oaz*_5BX=L{vyQ6mb6a|D+?&kX!*r2<IkZnj`e3og<-Wld
z7tTqsO~F4T8t!uxETl_VQ`fQ!Sl|@&i)z-g+jG$Cv%uEMb4Kp7k6&4I^+#@aGBC+~
zmf(zjpC>Byp6B@C&-yxFMYQl7opb(|6PmEv<<HW4fM3R>7ng9o{1>CuujtWKi&MQ*
zG`m}%ZF-~*@3Ar9m!A1Jw%;&)C1IxT4prX|e*>d9j<6<v^7$_hbFqyR)oHBPW}Y$T
zUy|GOAb$9g#$`Hbo*9cJLTRI&{>8)PY*6p#T;M<ft<IW{x)@gu>y;;%dHm{uAz)WT
zPYdE&a#ec8N&02sJq~|stU`xyC-C)?P%G$rEP0l;c>O8oUpxvPSM-)>G<lT1Lur08
z>FHM{kPpEzmw7nVm;je~MfR%(1_jq!(?b3WD9o_6bj);&qh0^r6lYw1QE+!W{IWYo
zv0l7PpKy^>IxEkcS2ADr@#|M?-gDT`C+UpJxR{@_^pdGZn&)3*UVPq#r}r`|zH26G
z5liv#>qT##6+P-OT510Eu-lj$M4#y!>2mxUad=JP4IZV;LFakXsXc1uSJ}s}N9jlq
z{EJfw=iJ4Eu^folix=Qm-m(F|9GJKPs8#-nk6*Bm0c|0*sazS_K5Lu~ieXubU$=8u
ztOwSZ`BzNV>=5H15t>_-^DnfiM4KSu^IwOZ&$lVXFAuF40^s)o3uK?;$TIx0_j%SB
zT~)xZwDBZ?50>HA%dqP0+{1BtM|QefzV+nK)oFVMKPli>fKeD*l-t0EWZ*bK|3-RT
zCHQsBLn{xqK)VhS16dKjx+@sAVp5>1y3YWzr+~TnK5Jd({MR=<v>FfYZ^-8+zUR%4
z&%b`Iy@DCspVP8khFJJ15Dh)d<Ja22cNwi*-De0ZwUN;V|6=?L^Al*ZW2!%g`57+5
zFO$(K4HGv(kJB}r|C*q?!N2gNoPRat^~<TnW;;nqIKX(~<CnJlbUE+mVf9gowAagM
zgM99E{>9P4SAbuO(xG)Lezx<FTEv0Ga{l${f=zJ4TjA5fIIxu{<6qZ0+Kqo(?M{SF
z1HYbCooo+%{Mx}tWPAE$HpuGbz^0#g`t>>`v@+8U2W@0t2f-QFRL;TJwGZif{<DrB
zVokMv4XdbIO_307WrH8D^zrKlY{yiTZPc5zOqnU89TVf}yXW&O(iDdB<EnHK5a7nT
zP0r&N0UIVI(3uWT!d#rA#eFk=1H1Yx?EyLz@Jo5|LxMfL0}JPjn>&!-0bgeOTpm9(
z3pVp$wUZ3_Z3_4mVh@C{f~)vFu1T=-`86$xA7WhSb0h2+%<^2vn1gY7{41dCyqEvd
z^#ET(pPz8UZX<Ud;0ylc#k$>!=jp6k<bWpEB7WGJ2v4jy%V0+UXrF(b2m*5*GqrU-
zZOXQ|Gt%PMa-V8xfF*H)8k+_yM&U6!)O}f3Q$S$}Hfy8Dqp<z@jhTNB?B3}h{5W4A
z9zFtp>?G|oTZENL=J^-R{xwbJkpD_qmCl&kkwtRhEKT)v)P?`rBCpTDFRTXgU!2!F
zSJ&yz$Z{JFByKOse>sQEWp;?&ON4#i1gs--B-?Ccu5EAsaQ<shIwt(p6V9<fWYS7U
z&SDgBfK$c#jo%fjYwbs(De<I}s&{O-M(_`VX*Zg#_Ukt~Xh3}-jm+%x^ljCUw$?_N
ze}R#$6=oj4x<gTymfEXm#VBPdJ{q=X9SyuiaYPi2+9H0PqRs)#{3&|Je&Pk-GIpK)
zSEJ$AiuiSsMgnaO7?(?f)N$;;E8}eN-C$b|fy9NL?r{Ca06n10p4wxc%1H4Fm@hVx
zBWk@p&-t%=RHK7F|AaR50k*n}eJ<8-G^rlv*kDu~qNE#hZ;U0`H}>9B;jo@g%-%=O
z%EhVJc>ihntl2RLe|3V+h+!4WS$_S-t76J|oK~y;SGxdP_3+hmp409cK7O6(I{ZLe
zH*98;e60rSo-%HS71egt=U=}=eQIZ7b4px7%&qc3wxpDQRm7Z)pdOoTaQyE(E%I_W
ziu7@6lvWm_klbf8*aR#{C#*Wegh9J{uti7dhcr)GHx>LtuHW#`sya#&eH{vYzKuOb
zvfN_)@a5opfgeev_)pOrvLg|G9-Hm7L_`r8G0#7&hhO&$J;CTuNB7d=9tbDWhk0Dt
z()`yZq`rVw4#SoM^PcnYYp@tU95;bqISe_3&N~U+=RRtZR&BD7|N87h8qGIvt8Ox{
zQaio*`5w(@p@3hg-#Dn?Cu}!@?&0pXMEIM=c<?Yi%srg&^dd?R(P^hcuHI^#FacZL
zXgmt<eHpho0wu>!)PBG@M$3R!vvS}HFhmM#%JUOemS4YNIrmYcg33(M-My{bG>~!q
z1`J3wzXk89_+8pMmfot(MZb(4wBlVyZQf(Bet!K%oHm#b^jUXRX6YZ8%iKxKzZ%@?
zbp`#3nwL5MI<P1m{)-ha(t4&{e{Q^jK*w&zooY|N%qza9-XfUy-RSC1VLr6M&wIIf
z{E`)Kg0(G9<6q_L0X*R^MuBKqFCH~C6J;cJLuzxcu+2+E^Yzx9jkls>f96*A7WvmU
z`9rf|oAn!EbK1+bCV_DqXu+uI#}B!FV>hMytVP10KG;=jKMekN2td{$j(K)<Xm+2R
zBIIGuT300jTZ!<b!F6cM+|asyzkcIYI&F5O!^6geiQ(7~7}1vT0Db&=lb%T~Rv~0q
z08EP|gczJ;VBDlZE42;p3;vPB)=HU~$kWk{Zlkl*uTLnc-$>BLNaO*;&|atS^+kHS
z{WclwUX42@wh<!sDvEFo6HEd?YeeHU6%~5j$!wy-fwn$$BS){%utafSo>yip5(WGc
zs0UE1dmFRx{jQWn{ssK1=;ar=74OnX7kqilSWHJ13K8A@Q}l1@V>ztXWFdZdQnMs;
z7;wDVY3VZ4krU?TNF-NNlK&b5GC70Y&fTU;nz5i+4_o(jv&lv0{rZi29QK5P4oz^0
zQ5%-2<TuZEtC)W!xIc3CYxF8*WX!G#3gq$0RL0x%(!r}a-dmFY0tzdb_bG<swXLrk
zS$ST5g4e>2AAXPh7JrLUcq{5RIL;R0_c;75#;<&o27d1<#^vgT2q3p);q4UpmkA0?
zm{V}!!Pq`4)b%NQvxtphTz>rUGN2VRmr5NrJZ>$h{e5~Q&4EO$pyY2c{~D%t=&~^e
z*Qi~EXZEi`0t*?jlKj^`$@Lo=zurS2amJ4ucdR_`Xn!MHnc(-J{*e9WL?{Kv9=0V@
za}WF|L>PEne*SB_dADd*W}@pB@Gq>zowfC~_d(xl%JN?uP-;?-J_oqw<Rj}MGXfh1
z*W}P=KYlnygBUy9CrKISjwv%9snUK_RcZc99FfQ~?lKU>ppKn2yR4=3tUIhgSp518
z(0{X2w7UJh&RKT4VCx(J*|hqNJX+~-Wy5>>#|K_Bb)Lw_uRoyuPNdt~D#jIv*j?5(
z@y|8~)8Ji{@UI^Mtu|)`@?Qju+a|`H?^C1;yUxe2E9i%^p~t#e{GSkFHvj@g)2L&V
zAT@scP{JC=(bdKr+_{cuxVrJUn!p-{O7dSP=+D&S37B`(Z>Wwhg}-(GDSA&`%XZ$!
zFYqtB4fTEjC@i%the=uD9A2)8kI%nGl7s0;6zSIp-J=|3QFQ|yQ!NxNi64$T>uHUQ
zep=L}*GHogF_|E&1ibgM{MUNbkbqBeDQ!>-8Mc}f7};_jyQg1Vzj0W#B|_Vc`4E=%
zhQG}MwaZnEU)m-_0|VGvk7E?pxHwG@k8L^N0ht?4iDLXv<2z=<2_8j$IaX;zu-Q9I
zJn`d)QOak#qI91S+s(i4x=g`wO+`!iS2roz6^sU|N%Yz232o~*Mh(H|U-dMAN>dZ;
zlTdP*HhUxOIv(C##=o9X*Q`O@59NYt(eY3>0*NT(I6kM8e_=Qph4mgg7T){h7@b$z
zO8ETi44qAO?ppO)ppBkO!JnTpUJO2`u4H@Y^RMl+x4!j0^WT$pV#CsAbz_e}{f3G9
z!xH@ZJ9tFRZhdbhYCP1JmBqnE2C^c4G5^|~jO7qJosV=3GLiM-AaZ|t>^}ec9-VPJ
zoX|bSRW#*xJRcs8jL|<+i`Mr7|ANQpbck@WaYA(`;6ClzGvU1JzzHnDFL=W0s}i=Q
zLm}1E1($dd38V7-*VmA9`3`$}?dClcxy>4y^&R>r+L<loUs0eb7_@_&CKlJURPuF3
zhY@a5@DEMs3AV8#Oaa<O+IW87^GVA1SA^|z2qit5w&w)fF+B0(ha85|)=$$e3ZwoI
zPp(z4^M3sBj69lJ?1Wx}zj3~=Gq-sX!mrh07s%-Iud(D{Bx2s1v=Hi4%N%P%lIss6
zX%m<mjI&)GtQf;SM2Fin)J9$OIfPu2Be4(t{MS$u+EA5!1Ktx@NLD%-3qEE>2=6K6
zzkpwd?ctR%rQvwlq3|e#UxGKG;?K{2?Sqx*Ol$!?F%f5T!i4(6_e^M9rWC&p1J-L&
zmaad{hIjD`W&5^RrpUjl)W*?B@4|he)j`^eZcGE9ce^b)^S4F*^(m3;OQ#n^M3|6^
zbg?M#C2UmuW{UOmSDJUb4STD*lleg6EkX-vU_pU@nW1}*n8SD1@OmNtCBwEA3cO{v
z+o8Bs!oNDezgm9^N`-}!2v$R|!G%lWhbQUj0MJTZj^T*8gD{mb1`ZzkLeJk|{<Q(s
z@@5V$AA%SImJJ~vgfHP=x@_YX0jTY3cK()YCLh))EQ<UK?o--DiuMkSJtnNZZ6V5}
z!2&YXwcff<%pMd+mbaxI8oGQfcOw;k9fgSJ(w+N2c$ZZ;yf;vP7(~safu&3X6d1qy
z*;j|gmDC@ekQ~JV@7DE)F2>aaD+)XREkgwLdsOg?!Hpx4-s*2v&xilhB5#C!4xUCt
z(cFQ`bDO_~`g!r!8yk9~$0~2vZP<p>eu*}zWMx6WDri0MtNP{{*8u|VkeY~bQJ-m}
z7M)*%{Fekx&IC-iaV?u=LLrBPKDS_pSS>~mx7mKh34t=T#Fp*W-`gBs+w!t8Zoa__
zx4qxTuiw&P*>)3H|JCex$V+~TaiNw^hK}`Ddh4~+9x>tkMWbUF#US?KW)lK?R?z`b
zte;P=cTg?gBLG_gr0On(up6C+eu;p_o%-4Lgirz^(WXi8{QT`U9y<hJTxAJ<K`&xk
zQGdve5Wtt`8U0CF(E@($qSMtKU0Z-({Ht#Geq0^eK8{84@oT3Xqu~JKm(ueC0rS&l
zh6a89Rk1+h*QPWy1+b;8p)M}ufZZsmpI;^VrE?0kYFA;i#gKeK(OSmdWn)}<{>Al&
zsE%-}Wpa+=rE!yU=zyA+LYt_!rd)q`sBcj^Hf1amUj3mpH}G3^bt2YnEEK$4x_+L^
zUt3fCJRHE*!~HlQU@psIANu&k+5g3f*wl(;5U$Mu5Ig9c(>V#2P2PG9&D;*RuyL^Y
z)&5&qzucN1i#Zbdl|^E1p*PP&9Aj*dLp{LUN5J*qR6rTyUmit{j9>)u<J64>Ic8P0
zU94pN%2v&ReqkTF;3=l3Uqh(xg<t1}4&e9(`kW1I-yGvulN-)h`EM!8+3yA)cf)rZ
zOuITp!zqmG-Gk-$HAP2l@UNU#e>f6;!Dy$ms`E&QeEvm$4%liW(>1;b(+xhD#cqGM
zJ2r`cwqHLVTE3C3`d+b6w}C4gqeq<<7e12Xt%Vsh14&A&s3UIhY-XVlF-m^@Jn9b*
zVjp&^#(e$Zq^0ec8%kT`=~w!SDY%ZEw8aI~`at$;;l&Rt^`7Va7d-qN+>E!eUJwqh
zh)V#p#7^+}7pgVfmIsjSIsw>f$!-1zz}8?N{M8cvg~*bPnO}-f4A#Q6?8_(xv^t1A
z=JT(Ic*qJ!eZtZ6vsZw!nL7^x3w-{imw-8bevb{VSR@glBJhh6{)L)kg+8C6zXCvS
zdEGe9M2ukPeg5?jmJ%#GQ+Q9x3J?n9()vAm|1keTzFXnz<Mdb%>vfN4R4?L5O)3Av
zaH1|oG3JdcDZ*R(1jb&%zvc!XVKiSSUbJ=n{2$&uSA0F?{7F?A|3cc!jmE*h_JDT5
z6ok}48|T_e_}2kmCZ$K=uh$!OfAwlPereUq7!zJu%YYFJz;B^g3IEy=gzu-UUU5w8
zm$e8sp`RKkT*klh6(%oIUcia4K8Hu)^DmBX#FP~%jJ;iif(QttpkIFeYlz-Vcc}0X
z`UCt@;RjIXIg;K}#=jV?usVa-Q5wGjhJI4Jx&*)2RO)D<wwW@#R~y(&Hv;}X|GM4W
zPx-Leexc)ssGk>0x~t3h7uHll^-gKi4g9K5_XZjz+W7p7Eq{Zwxc-n~>+;%U-OlyV
zc{eO9;a>@w8sKOcW&?c=gf|(H<XC!fw55c9A*ChZIdBSzAt3y%<QLQM@V|s7K7Mi9
z3%|;GFtHrM{GDJ5iCAg<VNk~b(y#ztK)`CKKSmGM-B7~6IPC@4vITcu3n9_BVwVIq
zjTG=}SANJSX$EX9xBgl*RezHf^8A$WFWptoJwV6m&@ql5hD!L?E*{Qu4O=+&C0B2s
zbq_H2Y96VNUukbC2lP?`-;;1ofM`xR|I*bO36U?`n5bSr_oW+$!X^A`m8Vwz8N+zx
zy~(7~cEjgi+6{AI`Cs<-^PeD>loSuR*x?gJ{K{8ryn_9FEgQ7^RvuEB+(qgSIhDXl
zWM$|MY}&sB7L?-`%%ESkF@-{oXVv0{QvS6=GHjtg`HtO*jdV9P1WWnX4%ASUw&Bf&
zHdM~P7`Cif625T|Hgns~QI2oK+1do-jB#8)ul4<*{#Hi|DddHZ1loQQg1#5{mmbbo
zI1PTG+Z-?^YR}Mt>HLei419h^+m@_h%0sj`7n>~PzjXb40A?`V#ry)oflUj=gX&>3
z3~nWD?vH}a)TY}n+t?m-#NbR6rK3#&zu@8XaPn(<@N!28N>h`2RlE@2;QD#)>T2&j
z9qyKt;m{adXN+q)|4MKgg*(qch71eA9{T+2C&0MHCRXQdl+AZK5IT?m)reMtU&w!5
z3bZ;wFR7OFV1_YQV1Q-#m7yqM=EqUU(V`Y|%yZcDB?|a86ZmC*$;L=e@R5N`wZ?7+
z`V#yam*?C^B}Q>Vy@Z2%_hs_9ygIX@h+n~T?lt2Wg&vox@{*F*xOn2@*FVuA3Gbcj
z91u3l6cUAH=f7Iv7S3?dpQ9)mY1xHtoMiuS5<)S4$Wa<K7#CbD1dh*nJ+R|RD_-lz
z53iIP22l>TF7meghH6fuY~vMrTs@%Af7z1Po#TfGopu$9&l(j78>%bgD~^8h&DvfU
z^&8I%Zi4!aeYIGo9*p7z4P+?WI6L!P@UM7W*~$dB;rQXxiMGLT<`O+Fr3VP$U>)@1
zhdZd>)Y)xacBrDgQ2d9f`5+F0`StUU(}pBcb?Yk6n<(UXwO$vWsOB6x@8j2)=<kW-
zZj6hk9gIDL#pSVMXO`gCK04wKGuwIzae!-+p>*Q}z0E*Y5<di5nVM}eY<1Ma-PHon
z!SM56Kc{z7@G}_;UW38cLLSkI_(i)FJO{4dV15zZCVo!)aW)ws<;M@TPvW)tUa`$i
zZsX%uB_JT(1Is_|h2ZMMQ+SWViLiWpL!Vz(ZBC5yI};cV%rf_x5v`d2dVx-(Y#vq}
z0$u9?nMSKJ{5qXR`B18HT>KPmVku)6@S+V*R`~J59CjVzv??+|$EXEDHEaTBLdx+=
zGDEEON+r?xZ5&L)lOle7SM7JuCKVayLXMR<ELP{WDZ#H_FgEe@{v0`=_S-_K&+M|f
zKfx0G`T?g=WNXUs8e@O}Xf6^f#V?1s%stA$u>#~YL#i<cVGot!*H!eWYEgq}_&=Kn
z=V8-b6SPS+LJ&thTNkZZEi>?Y_15x2XOU;2Xigf&!N;#U0=sd|UU3#gtkqr6EB+1f
zx;3flGW<F<2)cy&4Z-{i*DstAz@1!6Y5dT^_Isf<V;t4Sb4J>8y4;#F{5sp$IeE|2
zidSF{@t!FJBoXa#0EmA4@bA!{)=~85W%Q?c6y2!fLPWC4>gV@Lug~He)I4G)s%;)c
z!t(Q9PTg|~xe1KD_Bq(h*fFd+5uQlsmycgRP*bw=WGrJm<G>zfq3<zvTovnk0l(g$
zNd*XCTlY&WoHh<Gu@08R4{^@d(H8Qo^Bk}sgyf3}pWh8nmf)Av^@o|-lk|ORxeacH
zc0AZVm*5x5(D5XK)K3thDt7)qPA$Z3yfrn0V9+{RSc%el3<m~8dtZcc<@Jm4>rsLJ
zpw9>!Lcbi(CZO|0{L=gjJq&Q!{FQP>4)_H|Ceddfzh2>JAy=6q1gEay_39-Qau9^L
z^f(&o4>xkP;Sl!EenLPg-h}{;YH@&Q`S>B%AL<AvWA1)HEjFYyQOH4qh#xA4Z7<g!
zBL4+^2Tbh805SHM+MH+^gb?>)7xwI<Sc2g!tRId{swFPgYfW%$ge&e!>Nn`O1V+!k
z#Ctd%)r#TJIfV@7WWSGJ56RcDSHnB8+(>RdiT6~<!*)jmLN=)Tb1cw8gFP)T%os{`
z(*D7g<L17tt#b2^W6EqV;@78m338Sb*+RSFR78gn5=;_K&9{p@eoY4E(t23_>WS)a
zJ3oX#IRCZsZU|B4U)pbB{Q7rlcf*bWSJr7CL)t3{2Hk#hD4z833+I<HoEf+b15P_{
zty!Mqu?6^bNrLB)>*t?NB1)V#-iW~L@cgjdxQo|4pIb-$p@3y`wZF;&6m1NF=m*>z
znSbfAEBba|lWNG}wvAU@Bu#RlT|Wt~S8Ec$FPC&1KEJHGol5OTZC3i=!_lh#zQps`
zhxzyD`#0opDx5&}<jBTh^-vlv#IxOtcb4N9Qb=t1UB)jKaHy)OomQ9N*SO&D8Z0E!
zfi@Z9>nU(>PlmP@`PWK@Eg(^KQ|(6DDWj=sKE$+BntvmF{A!|msWr=CL#dOk+eA!a
z_o8tTzk;ypC<6dB1AZYG0#cLi8**-7EU4gV*7fsa?CB|^np}#rS&pc&oo!JF{`s#_
zjRoN>?EHH}od0?f`7hS5lyThK&)X|bVO-#qHdK!T+A)szGJ-%T;1}g+kWjzjisLk>
zI1v_sYQZL$ZlQjoyJEEJUZpvsE7qG0U1m@6QWKj^cK3+q3;c`qtFhP0GA=uf5(PZ%
z^dr%FgP9d4JX@EZJ<8MDqag{2FgYh>ebhcZ+TMc+&)09P4S;`%$9WX4H$dRm!086P
zIxl*AgYVyXflF~l497vZCJ=HBJ~7kz5je?y{!51qx8s1>V%k(60c<6&ayA88(y#zW
z^faS><2tn!-mv9VhGakObcdE!him{@7JKZ7r#tDHa~J|#+-4I}159D$r)y~-*enpQ
z8?&{34bi3a6LoC@c5Lp*b1-P33GAOy01z$|I)WG;e$3hTuz82>SSO|4hp80^VgQB1
z4;T0s*KhnvvG?A1j*hZnJZ9Y0jlfjX>a&JTz5E`;59NkhL<>DUZ6Iq+WRAPnZXV_M
zAtkttO)2_&?lWT?im6=u>Xs_tS0x1U<}gu*@&>6#ii>U(@<efL$UQ>)hxNfYzh?-2
ze%(eSP{AHPoo)+2&Hsp|QXO$iRbS=pu@v9Gp*oJE%`>cDE`(q36ZX|}UVl=kczcCS
ziW|W3G5Q3-cxD}3Si!h_aHYfFQo%11ZXe28gE)vaK#hm2Y}Xt1;7u*hTLVcSzgp;9
zqGinbx_Cnk(n5j~jR&`{#FHd+u!rBn_{FY>Wmg`>3sH*WzzhPQd4MC_0^b6Dy~tfn
zVO%aPqcA}L=DMqaUzK{j(pS6;*g~JPz$PtBLWxd7E3cGA{Ni|T=lJTk?vJbIu-u`a
zTAhRqkhtLfs4?qp5s~0u-GiwJa3|`Fz>ms!^UU>!dnh($wIRNNONY9+*hBR@Fb+<#
z&C@S;_AZZm#u45J|5_Q{hn<TgU{1d$!Q+y%^AtE^G)i2Y;)XhA@qH=7xmel=c<Yr5
z9Poz2*)EJrh9`})@_ZU2<%$mPJ@!M|#R?BwK^9~U`z-)^H<UK&f)0O+<A;yYjH4J=
zlshH?qaj{F*ZgiV|CNt#Tn*R)DV9}nw1E|M(dVV!dgbqr%E9vUS*q6C%?UAAZb&uf
zAhdfvNw*o4`P(*XIRCY>CT_*V!R75LR=hvzioN+|>Oa+uajitX%@hYnN5iic?~n54
zCp2s<aClrZFfLoyZ={Wq{1?YJ%*A4k3B{M)2~j6FgJ32^TTt@YUHU)JRrK)B1yXf=
z&1=NE<hN<dAb@PGa6J9$u0wq-_90x68NB`E;J)fDBLK3=s1xz?Uk@Sz1NRAES1ioP
z8T$$G-l0&USbylTt=0j{4X*R>E5Qeu1r*KaU-0lT9Avv<CV*`DJsyxP1W!T!OY3s}
z{-^}%SNVP<q_pz)M?ombf5A11bw}-F6P5`zLa9w5XQSLXg2sOSONZe22ryq8g*N&k
z4jJuPyR8tP_wJ8sr_i7gfqMXf41yN`AS1)if8p2{%}s=NT+T<RIuotOthZ6Ub`4)T
zR1!bracR7Oz%T)TmTf)Ah|TxxVgCLNvJ@-;V9SYaLevKLM>#cP)9;V6Yynp`5c{N=
zO<o;eA85q=QKHt<FVxS={qz;aWzbTJtu$W{dz0&_v8Sqde-z)pf&Q%4lnVK;kZn|;
zKXHkUmFB<Lwqy*iG1n;KUui^p(bF$|e-w2%SV5=YlQh6ewGn`<P=8p#*{&H1XcaZT
zMJ*6+TgdvZ%JN@&k0I|6qQz|VmSVHPnCFW3N9p@FI3C`Pc%23^9AtJj$c8Km=}Yoo
zh#%e-Ub~qu;<z>)p0Ji7?zbn6BV{G|FQ|+{s8gFt1s7`~$eR`;9jQ#PUijyij~Uu9
z=EApdK}cqCB0N^aFT@6^Ic5C`u!$Az#vXCCv)+bxF)jZEA4!UTbI>LU=ftLg=o(?&
zf_>=lr}Fjl$|9i^O<6(2*%ac3SV14Z@^*~56*`|o+AAcUblXma(^gA?f9YRIr1<m4
zzB2uI;ymtRfI0YH_~H6_&@OE%*~q9+&RFU^ON-U&NmStIHhsZWZ2fvH)rI(BuvtZO
zFmd<MHOiWdIG!(|Dq`FwjUJ*6n?bv}DaelEjS6-{^0&-jjPZ-$^CPK*HuY!&W!xoE
zm?Q$+gqVN98dI3x!;1p9&=ENBOYrm@qlcUL_4BTWUup}-5A(J01^yL4y^UJbg!;oa
z34g;4p=`rFFaZ9w7L9xPJ^KErC~hen{z*t}Ziu*p`;pGuufSf?#rvZW`z9o_ka<id
zO^1yhDJUB4bBg(|f293<tdd}VQ0@i(Ro$Q-8*CZ7C0)pW(d-FAmAee7>OgQz4!f}o
z3YbycH3SP;j33hZAm@oz0GCY=F$OaDy-q29;a)ze>B$0l#ExfU8DjxG-QAW&fXgo8
z7u;{Y_kii-64&fawtUL!inujp_=PseNW#`_bTO`_l@+p2?vzzd0lyM~g~ZoxAOv?g
zgn2ph&#Eu&-l7_ss><#^e3Ie{ERwGmXk-4>B*8BZ)|BAaK00Lswhm(E5$1Kn2#3md
zIA577#V@|?r$!mKBmT4GSZI;aOi!vM6iXX^{E+j@sGsi@^&E0PYThNbIU8VjfM0(6
z@Y}$zc{yb0exJUf=A8il`hD7<{vh{}wW1h5ggJHUKS{L?tCb7ven$0o-*)mN4&I~p
zyuLpQhu&(^##%U3*TiFv@rUBRv1?RKqOAT9UegS{{X_>WnW0R+J#WS|{A!c;q^@HA
z1t;NK#vOtg8BN14M|RuTKYf@41j?|H(j7gqGW_~cuu;}$@%no~_HRj5-cB1ET6!)k
z!7oI6<O4nC&DFDMy=<~koC*F#u^Seq%JB=aQdR4SdnoS2HW|06u|UTH^tpgv9~no8
zpgj?;2a~!}b;iS~S%=c^(I>uyTjuikwY`EZ{}SoJ7QrpdTJ6}Y*x_aOA7&IN*QO-b
zA6666<x$LhWcvMw(RoL(rd)sMaYlet!`k{!CzC#Y(SFsCFmH`qO6ygmtDEO%zwN9v
z%kfJ+oCtaKhiyy)=OG|4%>5bi{KIHqm&UkOum14ymEqL)$5kGMOY>j2J#Q7bX%O{?
z6jIh2XG~7VuVF?jzJFtrgM#XWSnAw&({%jGP@1At9f&CPAlr>kiLI2*RYgTf{l;D|
zj4&q%Hw@QqL@tB>)sU?!!>?0nF`olk2Hy1XlXKQx@+sUO_0@E98GeDD9K3{a`CZZe
za;rUSf*R>B6`a64e#we+Htb=#X07q3bVyy3Ln7=iyH=~t1m5h&4|mW3dH@u7Q+;B6
zeZv?69ap;uBuY~j>gR3RfoNgFK-C&?D|B$)L2FI*4niAYmfe52FB?gi^?<ED<-B<#
z)!r@P{M)8oj2}Kk`(#^h%?@LQIP4<e7B?QCr&Y%bu!s5hVTw+wDW_v2VofL28K>i^
z@ZK(G@LdJFkuKnu0)8P+BtzL*Q-L=~ANz{i@0kFO$wK^aJ<fj}phosCPSM>71j@FF
zhJpQVtE!nSj~_-*v4A-C_n}`_CW%6hjd1?i`;v?oUi>iaL`^t+Y&Wd<3}P=uE}%mE
zkogy)@h-wg9IHebWX6D<2N%XZbd3Uj1sJVXyGE8_%MJIyFv89g7+C?obp6I+C;X<-
zMj&D?>TQ+*sqw<H`i&>nMiSOLu=9^OEkA|>4D8~FVp;xckIfV~DeOIFEQ=+e04zT`
zU&Jruzi6jvG5>muzTzUJ(?XkY5eH(YW%V0vTaoRG0GF>l82ZSpD3C}Gumr!}rOw>y
z4AU++imS5#vPpu!0fX=Phq%8N|GX^-cg0cfIvpc$q@x7=;u*^Z9iC_AUr$iPu_na=
zdMw?VtxgFGiq;5VEyfR5p{ttOSJ56B%MC8Mq1xSwaY51i{1+&UdZ0JYznYIPoD$3A
zU#kWV%8eEH7ndEzdHX>Kw!6Tukj&Br^&4hq7G;OOb@a7ScN#CtUtf5Cl+(6%#xU5H
zrjzac;FSsy#j^a@9usPQ4g6Kk7u57t*TLZHj94jtAytJFG#!c$GDpWi#5j<MQTX`9
z?h`!Wc&!%@_~g~>8%w>WW%$)LG$XwN%fx<E`tpw>gE6e2JAVB<^RLG#tgKx1l!Viz
z`g2ia#2}ROFT~kWjq}y%pd+zNCjexcxs>F;P@Cbx_iLg3iG|=+2nm7<Gvg?UAMR#v
z&|cW&><%pKif;e(Ny%+Cm&FfvO9$t_L@>A;v@2SV_w<>uE(`HP&p*uPzqsav`Nc9P
zqz^i!QAl4BKLj?p2i(;=jL{%mtlmH7MA$|0UqGvH%HXhJ=UR;G1$u_sZiAi{;)nYF
z-u(G5@ULYxYzh!jv|$s<?vHXLdZ@|cO4I)Is6IOYMJub{h+sCn`VF}Nv7NLIqGIfY
z_#xxzF!yI3AgNP^cHIAzxbXfcR7m!O?G?I)3biya_y~IQzbeHqR2$+3X3P(+0)zkj
zs>}Q<R#rccY;p$tYoYU~+nTCQLuEAoD#?Fwe1o&e;9q;pmgl1muZ7b3<>$ZV&?8Pm
z%Hk_59;Vol>Ry3bbnHW*c}e}od3X15+!{330soo|-Ga38LA85&{l;39$Ud?ewMN|?
z>W}X>5I^*oW*PrN*pSNrU=MS#H;gw?hrgH;D<$~FwS~GrD3s!BqmHQ!^fB&F9#aVT
zwTBuM##QGa^{lFUYA3}8WTnx@g+alO$G>o-G+rH`47|E(Q#=j)YGT_m7S#TszW<Qd
z3oJ>(g>YxI;gVj~_gG2(OH&vD3!tw+ku`gtoKX33<w(CrpI@fM3B2cR-l8g$HR5zW
z3YI-tz%TFq!$=dX@vFElr*&!fu(--W!5-UZKYkd)xU|K7O@V)PM|XEcU?IIWMf}2=
zN{oFBiDo2ZGq{|GBRP1I*DvN@=c!HM>*E9pOrg{)U0~^A6h-_(n<ofuK)VEBYtlG|
zC)%+u#V>}fNx;@wbxkhRg>fCFYdQZ_%D)s!Kqo!7&^7N7xCpUN=f85^JoEig+(XQ~
zN&Bz_Q6?;D@Gm?$?)itvf7zOHX81h{{40sm+ux_JaQ>?dzYyhPIG$2V+|Yx@0_QcS
z<4rs%!7qj_j5MF%o9I7IuYA2TjRBV7SDa~1)Zsi)co!56`LCdUkKR9C{1EqIy(tz(
z`g(UBNANSCtgNn$FR9;P{W3dhO>DWy*o|`{hC==;5S@l!8m*S8fz$)J&9_v~HSbO}
zPhNmu`r1PpvjJqaz^{WgDojf1HxAG{^n{Bn-Z6F7gRQf-T=f3KV_}?CqzQ~GG@Qe^
z>_D4@SLyRF9p4zS?n)k`0lLbCTZoGbI0(=AuLQ<{_#yMJ=9AW+<Fbr@bio<FhBMAT
z>}yC|J`KP0&YYlrY~yHq@@T^znRvm9ca`85PWm%iP2qNyht;ZGsMk8Ta&dY(erdE~
zAX|p}Hz+5k;^p=8Y*#faX`-L<v9C<mQ*{To#bqc}%zxbu#t~T#x2H+y{MX-!U#P=s
zrv#9d;1_BXSDJs*)r7Oj5&qRUZLETqTZUhYh_4W=MlCueq}g`&Xu2=zd?{LvU&QxE
z8HAb&(27mQ@#I*#JpaXge!TaR9md;3@9?$rDFX+YIZBf%jUTed2;B|RYc>xs$^=v6
zav6R>n+63ah;kMJwj3G^e3YuD;TN<CR?qpagR+fVD(j5(>dO*{R)$|(;~|3fy)dxm
zv8JmV?xl~)s%iLzIBlx2iC$AWA2-iD>~^d}pZ)V+yD%<Z9hADAj^bQE%6Q5-y}jd$
zHPi5mVQWKN==_&7;-=1<Ps6WPGLMRAVw1ZwIk>A9L@d251xDuAZ!mtLLi<{rPuc7`
z$IP~BzR4$)h21E{FKRx5FhZOLOwNDRX3cH1z$wSCcU1diti5`!_-C~!7cz|z@j_pF
zQ>?UpgVE|Gl+E)#L?JzDCA^H7&%Zc+i1W*gR&4_DC?_=0c!ok>@7#6Cbo_Ghb@mS%
z#-gY#3~sQSSC!Xq@Cj?QL7%CSmU8{!hMCRFp@Zf4<zl4p4^`SVW8$z>GL~V>U&Jr?
z;Xo^tu_6EEBJBJN`{`82U9f(B{RZO~y!X9eTRbk*0FQ|&)q*N7JSo91*vv<9g&@<D
zP_BQ<!Fnm!On0SjlfS?BZTy*uEc*N%GQZw6PKXvJ%JIubt3lu}(=LfaA3<(YieDP7
zP72O{VSq<TXT-|ztAMbW59k*Yv8Myts+ZxHMyr>Dd~I(yPs9j)o{nEr%w<&PSZu;r
zD)mM5)A4Hr)f#8JA4|5Jx?#AhA-P$#Oy^&?HJZEH=K<N)DwXeZ0l&EZ5J(NQI%%@7
zX;>`80JVjjhF>ur&bv6n8;e_=4igQmMHzlw>#m+e8;oo8lBvcqk;mmS{OWM$;638$
znH_Fy*oq4OJr3J&#;?BxJwboY!lh|BcJF~?bl@egKV|r(aT#i*?l@*P0ig5aD&t=<
zu&v5h<OUU+w_u&9MNqDpxl9TF;<EW@+&GHsu-ab;WoD7!^UJ06hX?3q)cJfE-Ujop
z(eQ5?Ps#kavXu$$v%dcj$3S>~lA3?vf_=)5s~o=&W-)fS8z`pgCnHOtXgZr*j$i1r
zz_n56s(Gupj4pEjp}=~@5kb43Vy|MNqHccdCHTb|1Vl3?5I^i3j7`j1R?9@}qWI;~
z5Vg~mq~+h0H!c4)CuNM&;WX_0w=Qdv7vo?2_d#%N6b|_J{_YOre;|lDoqwTp9I#ah
z*rLd1qp9RB2)fOof_~-mUv}kF0miSYx@x|QNf)J;@UMLob4;8JBG8Hk@QVk{{6Qzb
zeuMF=h3gN05j;&#^n{PC_@8X~C7w*ne}(k8s55az)>xu0ieK6k5TE~w4layfqEOQ{
z9lscxMuEA=*$t0Wq#?)>{F=%2^IU%@M)_L);}Dvh@8!o{%D;5=$hbf^dheat|Iq@T
zmg5(X!sB0Cwi_3XAF|u5U?Il>?ZMc<tVT?f_EP-%4bFeHaQtwBjySF9Xih8>`XJae
z{JO(4ardj(R5Wr|OMQNimEu>h8T%P-*ao=7Q2>XN-_Ird3-`}Y0j<u7e@$JRUd8#Z
z{6+My3s#-{-%sgy5v9m)<larRs4W?6+Kch8PR1|PIjBwt1&xSDfr!m0$1hvg7QU>|
z4XVCP%w)j@HkI%%PK|M&1JFS-b6a}~I#`BZ+P0hw^c%5#3m+0|C_nZx`~tr~tclg!
z4E@kZu;9*^hF`EG+GbL_-I{LvPGMZr@GHbN^Jh3x8p|3@4i_Q<3(D~e_OR<D!MyW&
zEuqbU>HMo;!x`EfbA4rm1<lb4`UNUYdR%}lte0t55|Sp<`4?hn{<yG_W;rI0>&i?y
z|Kc7Zj0h)Ch22K~AefI|uh7xdCwfC~8tuGH!O)1Yh|a+SDaH?7TbqJ0^Wo&Y#O8rm
zoq2b%A&c|Nj9-(UpD<Q&GQH7>j+yskub``@ITKDGB5y8yi8l-UYuBgYV!60~wV8)Z
zQ6w@zLQCU^H2V<lw^=qCT7h$R7|zkqKN?p#Zz&xgJLtvdbAi1)oLuXeG0L!&3+LeT
zpLdwK6#3UKUCk0w{ml;QKt@8ljb?{E8LaXPL5KJASVfbbc~p5dJNPpJQS+N{fb;z+
z;+KMDa}l3M=nMu80>^UGJgz)`<q);y`a{#KzLfq!H9MvW{CXm#V{vD_HRbxlf5BgG
z2?;Bh1Z)xV=D|Wl(XT&z$lG;lGxEy;oI^wrrhF^tVRsR~U?HD}ZPEAKz8-q8e}O{&
z3w1k<dHmx05BcoB^?NAmh3>F%2uZHrfPTGM$oYQT0slIVZ1N0Z*y{dT^<30%%wx>W
zdGQUd-*_w$%UOR1-xy<m!CWG0oIck%h_eGF`1Sa!K&uJsGWg3KyFw4){MUW7<f8c1
zpG#=JmyMow6wBg=Op{mhxL{WgVwrwTht28nLym?aTG+&pbi4H}aiV}tKK}}e(l*lC
zT|3IF%>T;AFO(f}wS1kJ$5`+s+`n<?K_3fvYvk(>hiSEGMFh-p6z9K=ub+-zd}OjC
z5q{ZthhYo#hy5qg<?+Mq6{8a4lA&*I{-|Qu0+5}=0Chz1gy`jOEwzu+;DabTyia^W
z;}?9|30qer0>4Q6#;89eoL|PD{Svde&r$=~Mx`T)h5Eyp1GE9xHFsxmoh)isaOKFz
zQQA15XRH`M6dPsRn$UJ@KDvQFq_ShyxHt&@zQyNXy8ci--rZVfj3+U!Q5?qnmAbHg
zgQJDOuSFhgtv7t1qy)e6(ZZ$hZCX;+KZ;*!MAP+$lE=<}KSft-EcM*N5vbL(4qHD6
zK7PUbl54nHV=32fbRpk#jEf?8KbPRwb81fx)f)QR4X(S$-`@-V#b09l8WI|<(#9B<
z9c~Km?4L*%@XON+<iF^*YEeSp-wS&<j=ur%HXBB^hgq*4fX^@E&lX68HI6~8(4RY#
z09GIx`jf{m8}}dnsJ`)fvq$JZ^+GqU!8Y0;b(=hXtwsGI;@A>_onNwk#Vx1yY3fhu
zu^%h&uOHBvEba`*H2y-s9%jM^R=g3}th7zYe=CJR%o&NeXxhLb6#f%Ye*=FbKdwA}
zA^(MHd7NLKy!`3}U@L{o1m0A6-#8ybQ^9rgxNJ-zOa3udne8_wYjgC80yfz^hg`pb
zzb8dzsuspGsMQLGXVGSJ3I8%FL-4?q2r_I*%kIh_3ikPzm;V|js6&wLJW>g>a<~gh
zk1J>N@V5%*mqEKuaoCU`T!>#Nvxy`B1^%Tt-dpn)5@GK}OYw{AH=gK4o@iK{mwbL1
ziLjmYqXgp@u2#_c<;4#<PqfnuBx3s!?KXGuJ}mGr)XyXTMPQmI^^kFmLmD3Ae8%oF
z{?)d1i|0$|;h@k?EpcJcO86JBI|a1L*HvbW_vkJ66K*MfJp^=smGIvaH=O9ZH0-^{
z;rYquzt-aGXTAPR!Z2QdUqCBo9Y*1gi%$<ld0b`ut095E|Mdz16c_?(ogb<NER^ss
z<iAwuwey@2TRM$@A>O-<uicP;rCp=VQ{Z3MjAC4+{43Em7T#yX6uT=Z{f()2yS@GF
z=@;L>@kq2G3vH@#v|D&ra*oXFdny0Q=)aaSm-4i0uFQA7B>x2u<V}ne@eMX984-4H
z2|tg$1ix_oCeD9d6=nQl*t$xcNngmn9_MVAn}@B-`ToNh7s-DCzrepd3eyBo(02a9
z{1-b^tUGXQ^=ai4Fjwmr?%%+Zo%j{<%U+x6d4)DUeu00%Zfvd-qu_DSFD^vnCz{Lf
z*3kGhsZb3?#&OR+n}&mc_AvLklz+KE*zK?zns)7I#A#)IGL3)5`H9A52($cgmBkOC
z7dmW6EuO&la8Bo6x`!O|M4#<0W|8?m_i~@Tzh4QovORqF1kMIBc9-(6wm%Ky?|%tz
zo-N#AqK472Y4JmTGOEY51&g9iOFgcV{MRJ#s|Ic}<2z3a<_Aw8l;GE+wDV!FeuG-n
z=5%$`K}L)#63gO;&SaIh$L`>*#ooL2dwu+xgC~t?aG4PCe%_3v676xcKURWY@8lNc
zYR=*Br)b*sHRCdRC%t?6{k;;fwb$T)8&qbm@pJWVkJg>i{Fe*scQ&8@3ZI?TN%)Ik
zj9(@BFZ}&4X-y)2sMTr`{lSwG{Nnr<#}A={`8Hfkm48ykzp#SdkhNM>!2am5m+-Ii
zgw>fu{80CK(rSiH&~~gWeuyRTZCwekEaP9DYl}8>(l{fh-yd}co57{NecqfAPpg+a
zeo>PDLL23`fxt0F%|XiJhlFvl&D3j}LjWhui(8ie!k-JAY|O94B=UOC!Gpyp+yZ`S
z^G>CGo{nGi)N-R&zHDC;tU2fl0e<q)V2!(o)q?1$l@)geZk3<6XOET$G>4zKGc{I{
z5&=hb<NoMiGQg*Xw2*(I9Q_(n6iCo5IH^&ge4!#ix9TVPHcxd|+!eT0ecqWpRw9so
z;x6*O^^`=BM(H1xrhuYEz<W~Yb9XQjFjbdh4;BO!bi603(B_7UuD+i1&C%J_1wjO4
zUr*-d*lfywON9cTq0hRr;}xqsp%=pENxC!RLFtc+B+O@!0#p!8^bl36M9UlSU;I3k
zfP<MNN13=}s~|)xaErDwm;2+YNCf^XeU4@;Pmr_KCASB<^^-!MrIA2FW(h1uUZ@zv
z9P*QE{c&{#<9#7#g=xd`uP+EH)PN_2IaEY(;-YY*!h8Y#w0`1{{=u5Y)hcI}85}7H
zPgb<K{G`s!w|T0oBGGq?^Eq>NvLN&a60Uxt3ghaUHg2APc%Pn$l0GN;>YeM&naN;5
zpsV|8oa?)1s+nGYo=Q~Q68Ic_R?RL7fqMO<LKfDmGO%3rB<kubN`#x#&52-r1?BsU
zagmaaZ3YWMU2<knEqCnhV4=-Z*Bdvf7ZM+<uknRL;-<a<ep2|>Q`cAA*>`K=ztqn@
zRB@-eHSu`}m)zNROX7FxXBTwmy6cTQ)ys)%>T3>Z;lDsYvEs{#|5;z-=ErrN_a6S|
z`h}mb|LmdQBDE^<8N6qvx93R|^~+bZ-T~9O)C?+bdWb3mYt$`?OY1A{&I^INgZ$)k
z^%aFS*U5_Bz^(Lon(b=gGgJqGcu)J^x~_{7s@|zI1IZErtAi(nwYaV;=wJoAOgmW=
zBHoi?8<gtyI5(TK1q<=dhGusK<iVR!@;jRf<1zw0?#=Ppp^6nHg1Xt6ZC0>S=^vB2
z$kyu10<ENg$%@8L{Bd;&Qp(}j2MfCTO^Cihep2`r#-0e=qO~bd5H2YQg*_&XY5G;8
z5I!2y8mBwM|1TI1glGlXZc#{(sh{|5SgmBKer2f%ZS<3Tql&;HxvF<oUGOOudLUd^
zv52IcWe45Ddm1a&9{j!D&)qZoJ1oQ@;EAgRRcJ%lwI&JBBNmi!C`C<}BmE@b$Xt2b
z%zAZw!^}Yzg4YKiBxcqR;7Rd4*Y(W2Ir!PYZ0QTj3r`B)^3ERCIr&3~5V~<1@#cOA
zg(j#a6-uV<XwVagt4oC<e&V+Y8K0pS+>ga;R%u~T+=Nguz)xhMky!!(c~H0{j}C63
zO=ErcA$!rlJ!|qpXicLn-P-uTJq?8>)OmjO`F}Zo>il~b3Vxgah!A_pTJq!@nLT%~
zF!D^P;Q#Z*?W>-f_15Uo-)LcRso=Ny#9w~uXZJrc{>Et*wq7%S@99sh>pnDV_xQ;_
z^V<YOuiOC?t~xkPsH<`dje;d`JPn}zHsT_7qkzkW_YhqKPZ?qBef>gJ>0N<2>UW%(
zV;2bix8C<XRQjIjxSR**gslqwSs1*buQt7MXy%1NzKQ9ENSm&BVATbJ%$p7LYdS9H
zpU42TlYdNC7SzVmmQqD3wh6L#aXrmc7Yg2c?0^&r+D`MiW?{OJ)Sn^=n_0wVAD}(K
z_3WWUQy-2m6!eQEdKy<a@Nd${1%j)a=x-HZ)W_3;pz_}eTnv}<9*Xkb(-Y__{Hr1^
z7oOzX$m?XVCs0S%(aZ~lF7I32R7uN~4HOPsD0rWuZeZLrT=oIFU^gW2bUH5kPh=ib
z0@nxc?3)7=o_Xj3!Sy~S1J{c?)sDnR>#Gi3AmrQhT!_m)K+hg2tk?fuza+-KM%5>v
zO?O`)D6c<sT_U(HFqeKu&CFdO6!r$z>ms=9A$9&e66<v#F6W;V+F&2bK0cO!9LaQn
z3ga@U$E}N3gaRur5Tw^<3Ct<QWrkz_iPwbpVHqy_09}I1G9WKhEB{IUTOXufD&Gck
zxHK?>Rwz4nfsmiW9)jjeo%}d>f#BxfLlv}0hI;T97oNI67%6;fMKE!&K7M^@X8#3(
z%FkgyG8|vTu4t2^UnB$F49ASZ8kfriRrr=%*)tQqL15-Zgu;4F_r;34AmF_Q|9=`T
z`v6_UWqIB28lRCbWIuLw&4q$2jH~+s2=GC{EqsjOxVC`HWy118lmAC?xg3rQ0R6xG
zZ(Rt-g(vU%ZOU-j2WTz$Z3Is9Q&d*lWx~<uS8+d$|5Hi@iON98Z{yu$AZ&9$G|-?#
zwRS=9o0L&X|2;?Ps|CjxEw#JH$(p>N_ZGI@VhG;P`|d#AoPL|>@9|$4;SJ0`=KJpD
z#ZIwJ^?-PQhU7x~LZSGcqFtYE^1V-S#|ravp-^~_O_#(2JR5V|Qi1r%h=&*#eGmTl
zA(>yrpYqCoj61KUscMj)NPm9Na(WByA!bneZvi1Gys-FRR1<qYL8tiegQfQN5BPmJ
z`~koGf9qGB=g*&a`Q;Z1{wFW|mH*`bw{6N)xLm3IK3`l1iF|U(E#H5y{@;5KQ@0Xb
zF44jKdp=N?^E(lG`u^`Jwz=4@_jbA8=0X+rpZINxL6i%W+Hdm#^HXT^KDw;6`-613
zF!TBM(EE?-gLT>0?)*ewOqcz&{7{!KW(xkl)pvh!-dBi|6X0zUr>;-FZ=(-?@!<@7
zI0GNfz=t#N;S78@10T-7f8rU?{t_G}_)GFX@icrm^bcp?!x{K+20omD4`<-R8Td~+
p1Bl`yjrKz`P741eMD=CWe`G51?JMHA3xwNy?>SgZOXXkke*p-x>z)7r

diff --git a/fpga/hi_simulate.v b/fpga/hi_simulate.v
index c04ade80..0768c29d 100644
--- a/fpga/hi_simulate.v
+++ b/fpga/hi_simulate.v
@@ -50,12 +50,38 @@ begin
     else if(~(| adc_d[7:5])) after_hysteresis = 1'b0;
 end
 
+
 // Divide 13.56 MHz by 32 to produce the SSP_CLK
 // The register is bigger to allow higher division factors of up to /128
-reg [6:0] ssp_clk_divider;
+reg [10:0] ssp_clk_divider;
+
 always @(posedge adc_clk)
     ssp_clk_divider <= (ssp_clk_divider + 1);
-assign ssp_clk = ssp_clk_divider[4];
+
+reg ssp_clk;
+reg ssp_frame;
+always @(negedge adc_clk)
+begin
+    //If we're in 101, we only need a new bit every 8th carrier bit (53Hz). Otherwise, get next bit at 424Khz
+    if(mod_type == 3'b101)
+    begin
+	if(ssp_clk_divider[7:0] == 8'b00000000)
+	    ssp_clk <= 1'b0;
+	if(ssp_clk_divider[7:0] == 8'b10000000)
+	    ssp_clk <= 1'b1;
+
+    end
+    else
+    begin
+	if(ssp_clk_divider[4:0] == 5'd0)//[4:0] == 5'b00000)
+	    ssp_clk <= 1'b1;
+	if(ssp_clk_divider[4:0] == 5'd16) //[4:0] == 5'b10000)
+	    ssp_clk <= 1'b0;
+    end
+end
+
+
+//assign ssp_clk = ssp_clk_divider[4];
 
 // Divide SSP_CLK by 8 to produce the byte framing signal; the phase of
 // this is arbitrary, because it's just a bitstream.
@@ -69,12 +95,13 @@ reg [2:0] ssp_frame_divider_from_arm;
 always @(negedge ssp_clk)
     ssp_frame_divider_from_arm <= (ssp_frame_divider_from_arm + 1);
 
-reg ssp_frame;
+
+
 always @(ssp_frame_divider_to_arm or ssp_frame_divider_from_arm or mod_type)
     if(mod_type == 3'b000) // not modulating, so listening, to ARM
         ssp_frame = (ssp_frame_divider_to_arm == 3'b000);
     else
-        ssp_frame = (ssp_frame_divider_from_arm == 3'b000);
+	ssp_frame = (ssp_frame_divider_from_arm == 3'b000);
 
 // Synchronize up the after-hysteresis signal, to produce DIN.
 reg ssp_din;
@@ -90,7 +117,7 @@ always @(mod_type or ssp_clk or ssp_dout)
         modulating_carrier <= ssp_dout ^ ssp_clk_divider[3]; // XOR means BPSK
     else if(mod_type == 3'b010)
 	modulating_carrier <= ssp_dout & ssp_clk_divider[5]; // switch 212kHz subcarrier on/off
-    else if(mod_type == 3'b100)
+    else if(mod_type == 3'b100 || mod_type == 3'b101)
 	modulating_carrier <= ssp_dout & ssp_clk_divider[4]; // switch 424kHz modulation on/off
     else
         modulating_carrier <= 1'b0;                           // yet unused
@@ -106,7 +133,7 @@ assign pwr_oe4 = modulating_carrier;
 // This one is always on, so that we can watch the carrier.
 assign pwr_oe3 = 1'b0;
 
-assign dbg = after_hysteresis;
+assign dbg = modulating_carrier;
 //reg dbg;
 //always @(ssp_dout)
 //    dbg <= ssp_dout;
-- 
2.39.5