[svn-commits] tzafrir: branch 1.2 r4451 - in /branches/1.2/xpp: ./ firmwares/

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Aug 4 10:11:02 CDT 2008


Author: tzafrir
Date: Mon Aug  4 10:11:01 2008
New Revision: 4451

URL: http://svn.digium.com/view/zaptel?view=rev&rev=4451
Log:
Firmware update: 5959 (DTMF and BRI ID)
(From DAHDI rev. 4695)

* Fix some cases of double digits.
* Fix some rare cases of a BRI unit providing incorrect directionality.
* Extra debugging code in card_fxs.c to trace future DTMF issues.
* Properly note DAHDI (as opposed to Zaptel) ioctls.


Modified:
    branches/1.2/xpp/card_fxs.c
    branches/1.2/xpp/firmwares/FPGA_1141.hex
    branches/1.2/xpp/firmwares/FPGA_1151.hex
    branches/1.2/xpp/firmwares/FPGA_FXS.hex
    branches/1.2/xpp/xframe_queue.c
    branches/1.2/xpp/xpp_zap.c

Modified: branches/1.2/xpp/card_fxs.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/xpp/card_fxs.c?view=diff&rev=4451&r1=4450&r2=4451
==============================================================================
--- branches/1.2/xpp/card_fxs.c (original)
+++ branches/1.2/xpp/card_fxs.c Mon Aug  4 10:11:01 2008
@@ -132,6 +132,8 @@
 	xpp_line_t		update_offhook_state;
 	xpp_line_t		want_dtmf_events;	/* what zaptel want */
 	xpp_line_t		want_dtmf_mute;		/* what zaptel want */
+	xpp_line_t		prev_key_down;		/* DTMF down sets the bit */
+	struct timeval		prev_key_time[CHANNELS_PERXPD];
 	int			led_counter[NUM_LEDS][CHANNELS_PERXPD];
 	int			ohttimer[CHANNELS_PERXPD];
 #define OHT_TIMER		6000	/* How long after RING to retain OHT */
@@ -1117,6 +1119,11 @@
 			metering_gen(xpd, i, 0);	/* Stop metering... */
 #endif
 			MARK_BLINK(priv, i, LED_GREEN, 0);
+			/*
+			 * Reset our previous DTMF memories...
+			 */
+			BIT_CLR(priv->prev_key_down, i);
+			priv->prev_key_time[i].tv_sec = priv->prev_key_time[i].tv_usec = 0L;
 			if(IS_SET(offhook, i)) {
 				LINE_DBG(SIGNAL, xpd, i, "OFFHOOK\n");
 				MARK_ON(priv, i, LED_GREEN);
@@ -1194,12 +1201,15 @@
 /*
  * This function is called with spinlocked XPD
  */
-static void process_dtmf(xpd_t *xpd, xpp_line_t lines, byte val)
-{
-	int			i;
+static void process_dtmf(xpd_t *xpd, uint portnum, byte val)
+{
 	byte			digit;
-	bool			is_down = val & 0x10;
-	struct FXS_priv_data	*priv;
+	bool			key_down = val & 0x10;
+	bool			want_mute;
+	bool			want_event;
+	struct FXS_priv_data	*priv;
+	struct timeval		now;
+	int			msec = 0;
 
 	if(!dtmf_detection)
 		return;
@@ -1208,42 +1218,46 @@
 	priv = xpd->priv;
 	val &= 0xF;
 	if(val <= 0) {
-		if(is_down)
+		if(key_down)
 			XPD_NOTICE(xpd, "Bad DTMF value %d. Ignored\n", val);
 		return;
 	}
 	val--;
 	digit = dtmf_digits[val];
-	for_each_line(xpd, i) {
-		if(IS_SET(lines, i)) {
-			int		event = (is_down) ? ZT_EVENT_DTMFDOWN : ZT_EVENT_DTMFUP;
-			bool		want_mute = IS_SET(priv->want_dtmf_mute, i);
-			bool		want_event = IS_SET(priv->want_dtmf_events, i);
-
-			if(want_event) {
-				LINE_DBG(SIGNAL, xpd, i,
-					"DTMF digit %s (val=%d) '%c' (want_mute=%s)\n",
-					(is_down)?"DOWN":"UP", val, digit,
-					(want_mute) ? "yes" : "no");
-			} else {
-				LINE_DBG(SIGNAL, xpd, i,
-					"Ignored DTMF digit %s '%c'\n",
-					(is_down)?"DOWN":"UP", digit);
-			}
-			/*
-			 * FIXME: we currently don't use the want_dtmf_mute until
-			 * we are sure about the logic in Asterisk native bridging.
-			 * Meanwhile, simply mute it on button press.
-			 */
-			if(is_down && want_mute)
-				__do_mute_dtmf(xpd, i, 1);
-			else
-				__do_mute_dtmf(xpd, i, 0);
-			__pcm_recompute(xpd, 0);	/* XPD is locked */
-			if(want_event) 
-				zt_qevent_lock(&xpd->chans[i], event | digit);
-			break;
-		}
+	want_mute = IS_SET(priv->want_dtmf_mute, portnum);
+	want_event = IS_SET(priv->want_dtmf_events, portnum);
+	if(!IS_SET(priv->prev_key_down, portnum) && !key_down) {
+		LINE_NOTICE(xpd, portnum, "DTMF: duplicate UP (%c)\n", digit);
+	}
+	if(key_down)
+		BIT_SET(priv->prev_key_down, portnum);
+	else
+		BIT_CLR(priv->prev_key_down, portnum);
+	do_gettimeofday(&now);
+	if(priv->prev_key_time[portnum].tv_sec != 0)
+		msec = usec_diff(&now, &priv->prev_key_time[portnum]) / 1000;
+	priv->prev_key_time[portnum] = now;
+	LINE_DBG(SIGNAL, xpd, portnum,
+			"[%lu.%06lu] DTMF digit %-4s '%c' (val=%d, want_mute=%s want_event=%s, delta=%d msec)\n",
+			now.tv_sec, now.tv_usec,
+			(key_down)?"DOWN":"UP", digit, val,
+			(want_mute) ? "yes" : "no",
+			(want_event) ? "yes" : "no",
+			msec);
+	/*
+	 * FIXME: we currently don't use the want_dtmf_mute until
+	 * we are sure about the logic in Asterisk native bridging.
+	 * Meanwhile, simply mute it on button press.
+	 */
+	if(key_down && want_mute)
+		__do_mute_dtmf(xpd, portnum, 1);
+	else
+		__do_mute_dtmf(xpd, portnum, 0);
+	__pcm_recompute(xpd, 0);	/* XPD is locked */
+	if(want_event)  {
+		int	event = (key_down) ? ZT_EVENT_DTMFDOWN : ZT_EVENT_DTMFUP;
+
+		zt_qevent_lock(&xpd->chans[portnum], event | digit);
 	}
 }
 
@@ -1264,9 +1278,8 @@
 			regnum, REG_FIELD(info, data_low), REG_FIELD(info, data_high));
 	if(!indirect && regnum == REG_DTMF_DECODE) {
 		byte		val = REG_FIELD(info, data_low);
-		xpp_line_t	lines = BIT(info->portnum);
-
-		process_dtmf(xpd, lines, val);
+
+		process_dtmf(xpd, info->portnum, val);
 	}
 #ifdef	POLL_DIGITAL_INPUTS
 	/*

Modified: branches/1.2/xpp/firmwares/FPGA_1141.hex
URL: http://svn.digium.com/view/zaptel/branches/1.2/xpp/firmwares/FPGA_1141.hex?view=diff&rev=4451&r1=4450&r2=4451
==============================================================================
--- branches/1.2/xpp/firmwares/FPGA_1141.hex (original)
+++ branches/1.2/xpp/firmwares/FPGA_1141.hex Mon Aug  4 10:11:01 2008
@@ -1,8 +1,8 @@
 #
-# $Id: FPGA_1141.hex 5615 2008-04-08 09:39:14Z dima $
+# $Id: FPGA_1141.hex 5959 2008-07-24 16:42:49Z dima $
 #
 :020000040000FA
-:80000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6AD6FF400048120A006AD6FF400048120A006AD6FF400048120A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4455544455557475577775577675577775577765566665563625523235D2E37C2B5111155111155111155111A2
+:80000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6AD6FF4000380E0A006AD6FF4000380E0A006AD6FF4000380E0A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4455544455557475577775577675577775577765566665563625523235D2E37C2B5111155111155111155111DE
 :80008000155111155111155111155111155111155111155111155111155111155111155111155111155111155111155111155111000000000000000000000000000000000000002552222552222552220025522225522200000000001AA1111AA1110025522200001AA1111AA111001AA11100001AA1111AA11100001AA1111AA1111AA113
 :80010000110000002552222552222F21F112122F21F112122552222552222552222552220000001AA111255222255222255222255222255222255222255222255222255222255222000000002F21F112122F21F1121200002552222552221AA1111AA1112552222F21F1121200001AA1112F21F1121200002F21F112122F21F112121AA100
 :80018000110025522225522200000000002552220000000025522225522200000000002552220000FFF9F99F9F7F78F8878700000000000000000000000000000000000000000000000000000000002552220000000025522225522200002552222552222552222552222552222552222552222552222552220025522200000000004F44D4
@@ -17,635 +17,634 @@
 :80060000FFFFFFFFFFFFFFFFFF00000000CFC4F44C4CCFC6F66C6C2AA2220000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4C2AA22200CFCCFCCCCCFFFFFFFFFF3F33F333330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004F48F884846F68F886862552220000008F8CFCC8C8BFBFFFFBFB3F33F333334F48F884842552221B
 :80068000008F8CFCC8C8BFBFFFFBFB3F33F333330000BFBFFFFBFBBFBFFFFBFBBFBFFFFBFB000000004F48F884846F68F88686255222000000CFCCFCCCCCFFFFFFFFFF3F33F333334F48F8848425522200CFCCFCCCCCFFFFFFFFFF3F33F333330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004F48F884846F68F8868625522200009B
 :8007000000CFCCFCCCCCFFFFFFFFFF3F33F333334F48F8848425522200CFCCFCCCCCFFFFFFFFFF3F33F33333EAAEEE7F75F55757000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004F44F444447F75F557573F31F11313000000CFC8F88C8CDFDBFBBDBD1F13F331314F44F444443F31F1131300CFC8F88C8CDFDBFBBDBD1F13F33105
-:80078000310000DFDBFBBDBDDFDBFBBDBDDFDBFBBDBD000000004F44F444445F55F555551F11F111110000008F8CFCC8C88F8EFEE8E82AA2224F44F444441F11F11111008F8CFCC8C88F8EFEE8E82AA22200008F8EFEE8E88F8EFEE8E88F8EFEE8E8000000004F44F444445F57F775751F13F33131000000CFCCFCCCCCDFDEFEEDED1F1261
-:80080000F221214F44F444441F13F3313100CFCCFCCCCCDFDEFEEDED1F12F221210000DFDEFEEDEDDFDEFEEDEDDFDEFEEDED000000004F44F444444F47F774743AA333000000CFCCFCCCCCDFDFFFFDFD1F13F331314F44F444441F13F3313100CFCCFCCCCCCFCFFFFCFC3AA3330000CFCFFFFCFCCFCFFFFCFCCFCFFFFCFC0000000000009C
-:800880000000000000000000000000008F84F448485F5DFDD5D5000000000000000000000000000000000000000000000000000000000000FFE40F481800000000000000000000000000001400000000000000000000000000005F22020000000000000000000000000000000000000000000000000000000000F04FFE80840100000000D3
-:80090000000000000000000000400100000000000000000000000000F02522000000000000000000000000000000000000000000000000000000000000FFE40F28000014000048400128004840012800000028004800001082040000800414001082040000217F270C00000000000000000000000000000000000000000000000000000068
-:800980000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F481800280000000021000000210014001002400100004001280000808802880080880200003F7107008084010000200100000000000000120000400100000000000014000000000050358084410128004840818102214860118075
-:800A000002211A01148002211A041400B01281041480028004148828108204808802214800CF5506481800280000000021000000210014001002400100004001280000808802000088280000F08CBF000000000000000000000000000000000000000000000000000000000000FFE40F00000000000010020000000000001800000000004C
-:800A8000800200008828000000000000BFDB0C0000220000000000000010020000100280010000400100000000000080280200008FB90D0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000002100000000000000000000000082000000FFF401000022000000002100000000
-:800B000000000000000000000000000000000000000000F0D8B400000000000000000000000000000000000000140000000022000000000000630A000000000000000000000000000000000000000000000000000020020000EF1C04000000000000000000000000000000000000002002000000000000000000EFBC0E000000000000004A
-:800B8000000000210000001800120000000000000082000000000000F0119A000000000000000000000000000000000000000022000000820000000000004F76090000000000182118000000000000008002000000000000002210010000000000224FE60B00000000002480010000000000000022000000000000002002000000000000CA
-:800C0000283FB40100000000001800000000000000000000000000002800000086010000000000F0352B000000000000000010010020012008802101000000000000000000000000002A08F0E78C000000000000000000000000000000000000000000000000000000000000FFE40F00002800000000000000000000000000000000000096
-:800C80000000000000000000003F8D0E000000000000200100002420011002000080012800800100000000008220020000006FFF0E000000000000000000000040020000000000000000000000008220020000001F1C080000220000000012000000211200000000800122008001000000000000000000001F2A0E0000000000000000004D
-:800D0000000000000000000000000000000000000000A02400706A0C00220000200120010000000000000000000000002200000000000000000000F0B88200800200000000000000000000000000000000800200000000000000000000EF2D0D00000000120012000000000000000000000000000000000000000000A02400E0C70D000050
-:800D800000000000000000000012001821000000000000000000008082140200200200F7F20000420000001800800200002800001800001880210218004800000000802402000000009F1E050020010080020000000000000080022800008008280000000000000000000000D02B0C00000000280000000000008001C0222002200118827A
-:800E00008001000000000080440200002800E0CA090020010000800100000000280000000000002220020000000000004200000000F0993300002800001200001800120018800118000000200100001200000000000000000000F0194D2002220022220000002818120000188001000000120000200100000000000000002004006FC30C9E
-:800E80000000002800000018200120020000001818180012220000120080010000000000000000CFA3010000002002222822000028001880018001280000002001000012000000002200200400003F3601000022000000222880011200800118008001001222000012008001220000420000004200002F720C0000000000008082020000CF
-:800F00000000000000002200000000000000000000000000D78D002022023800280000000000000000002002000000000000000000280000000048F0B96D0000800200280000000000002002000000000022000000000000000000000014F0E1CD0080040020022200800200008002218083818801004001008004001800000028000048B8
-:800F8000110021F0164F0080022A222102282A82A22200A011000000808102221222002822000000001A0100000022002024240414F067F62002A022A0228002000012228001208123810180A1118001808102180018001A01280000420000804401C041F0F28C00200200282232002082A1112003221812181A02008001A011120028A020
-:80100000111200000000000000000000F03F1380020082000000000020032220022220022A01000000000000180000000082008004488004690B2222002AA2332AA2222AA22200001AA322A0222AA2333A81A3312A22A2222A022A021200A022800100122A020000A0CC8A0A004A442124044AD42708226A0448AAA2332AA2222AA2222A09
-:80108000022A021AA1323A03A0333E122B311AB32223A2881AA1A3001A51112A42A122A05580041AA1220000A022CAACA800A044114632424AB442F46F88808286A2222AA2332AA2222AA222A022288081A133002AA1312B113AA11228881A21A122A0112E212A022A021A0500123A020000284A0400008014A244F09EA18082A6226AA251
-:80110000221AA322222A22A2222A82021AA1321A012AA2131AB312E123218282A833BA02A011142A12A122A05120041AA133000080A2442200A044801442A2448F2C0900002220022200000000000000000000001800000000200200000000000000003F7F0F00220000002002001812002001800100800120210200200100800100000072
-:801180000000420000706D012AB411021B21421B2123B411B24291212B9419B24219B14229F342B1222F142BD212AB421CEB22C4A12E421E212E529E212E5296C1429AC2421B292CB59142B29122B491B242B181324219B24298212B84112B84222B84222B842AB442A8424AE822E4C80F2AB41184B41122B411B242B111324219B2429900
-:80120000212BB419B24229F142B1F042B1D0129B422DB12CC5B12CEC11CA528E212E5296C1439E212C34912CB591C6421B29421B282B141B282394212B841992A21B482324B2422892822AB44238222B8426F261980082480000000000280000000021008008000014000000000000002228000000002541717B0B22000000002822800184
-:801280000012128002181228001222188022022200000000002200000000000000630118828048018002000000230180010020044880011818000000000000A82100800442C0211148001C026FCC0C200C40018002800218801202800124202101C2A021002219022800420000002821002200428002400214F0E444A01200880000800202
-:801300000000121812200212A0420012208121010000000000808802004800404181048002BF9403000022400200180000008022A124000000008082010000000000200800004002000000DF740A220000802222220818141880050000204601220000004820020080081248000000142100004800E0E4052200800200288218001280017C
-:80138000200222A04200220000288004280000001200820000240000800400C7F4000000209222002041012004001842001400000020010000008200420000001100210000001F240D1800221001224800428004004280029011009848002001808224220222808112010080840C200288622428009FFB0728203411000000282800182626
-:8014000021080000244A828229210200001480018004001002A0428820028200400200CF620742000000002001000013040010010000001A0220020000008248222A0400000000002004426F1802680038400128428083024212228800221031116822A04128202301222848282200208116B12204A02448C800A20022A02480F41938805C
-:8014800001100100000048001061144800000000000000008001800282800200800800008848000097F31041013011110000199481111C8184288281026848402222048021090080A54100109112424242230400000000801402F05743802281240118184021080082002028044021022018111101200280A882802C21030040C142110046
-:8015000022800C24802282045FAD0C80440100100120810218160180012006284200A084000000421200002091428248002100001022120220F25BCA002061140011284200200400001811188008220022A0822800001CA881400125031450229042660148482820044A0222F09686140010611200806618221442820020280400000000A4
-:8015800020044A0888000020012100100210020000000028371A8001280028220022200200000010222C84C511184A82A4213800424820041C140180042904000024000048000017EB20820118121212111400881180918122111A02820000C0811414141400288A019AA4A14814112288221160122115024022542210822204CBED008649
-:801600008102000022000014001200000000482A818204480000002021240421000000108208000014F0E44980011C04820028004800281C04000020B882041822C8002082C8418800A04100001488004081464142022828002114FFE20F141358114021812392618A6214AA4231111561182A22A1241429B84124AC41212A78618124A296
-:80168000B226212284A4114A2C2528B41151214A16A2CC11401191412D2223243842242148E01684F2DDFBA01292281CB181432111611211121D814A24A81500A013A047A08242141A84A224171514424880AACC13830815418244A24C2CE2148424D4120200249042B042021426F29B82A0211C2533511238111C22848806111C89848875
-:80170000E1188904288A88062A22A441171A189A84A2884882A0188AB111AB1166D11231121511522225D2238214C241B0224C82E22622B22202F0A7478002288002008008888028C181221C28C3812214221400001882A0288002190228808281C282288022044260242242004880046D29F031211F13E112A2531F11A1111A011F14B43C
-:8017800081A24C15F1C1C117181B5C2AF2B1B11F18F2E1612E223F1EBEE1BAE1BE42F621211F16A417428AFC61612AAAA4AAA6E21F1EFE8161AAFAA1212E211F14E626F263631F1EAACC2E621F3252333D433D423F34B622E22EFE62422D222F26B662A6264AE426763E061F13A37F2AA2331F13A3111AA1221F16B681A2C41F1AFAE1E1CF
-:801800008AA1F41F1AF8B1B1AAA3F717323F3EBE63BCE1BE62F721211F1EAE552AA2C91F1CFEA1211F14AAA24EC1CAACEC1F1EAE8817111F14E627F351533F14A4666E621F36F643433F3296431F14B442E4287822F242622F22F262622B664E412E625F2B0A1F13D311F421211AF131311AA1331F12F2414119AA66CEC11F14DE11F851FC
-:80188000511F1EACB3987AF7A1832B662F1EACEA1D716AF661C11F17A566AAF6E1E12A621E8A86ACCCEAACE81F1858111F16F451333F35F5C1C33F1EFE41431F34F463633D22372435F342422F287822D222B242A666214AE422F68BEBF031311F1BF531311B121F13F331311D111B221F1696A16AF661611F1CF611911F17A5441F1BD31A
-:8019000011AB778E823F16F6C2C1AEA21F16A6661F16FE51516AE611FD416115611EA81BE6DAFCE1C11F19AEAA17111F17F451333F37F7C3C33F1CF4616335F323213D2333F4414125F2A2A22B462F24B622B262B662E216E622F292F6400114C011E01A0122601200121001130111308110210428A024200400C081C081C01348184002D3
-:801980002440030000002800F0941F0080012200282220060046110100200442008092411A022820048005180000484601001400001400200222CFA402481B21B01122B411324219B242B111B64299212B941B412B94222F1429F342913AD412A9421CE922C4812F2264112E4296E12265192E429AE222B491E222B49162221B29621B29FF
-:801A00002B161B282396212B8619B64298412B84AAB442AA422BA42A94822A84E822F4F2C180B41186B41122B4113242282D111B612384D212B311B6422173422153323AC4113B4229B92185F923C2122E5216F12152122E4316E12234912E421B492E42132926F86213133862F022811994A2682D838AD42282C4A22A84B82294822E42A5
-:801A80007F630722824800000000002800000000000088000040010080840200000000280000000025012FA9068214008011021E2111828A4201901100A048424880022011012818524A01800C11A014002A48012082844401244824004240F1CDD61021088621018042021214481C458202180028220062221002A024280012002A01880C
-:801B000024220000C08224C82C04002E42624081F4BE380082C041181820922111821C3A611C011601004A4802A021202A4101A01219A24120014081844402881100288E42248A4602230427262C264481F45F6D401101820021C01280018044220212004AA242004A02100222425800800C2A01982082020000481448000000004F560964
-:801B800000002C01220048A04800000020A92400241022140100880000802181011C01002228000000004200F02FC500202122022C01A0812001399D114A082B814001280000004840A212800328002400004E228288820010222224AA842280045F570900126022000098800888138108888088024042024800009A021A020020810118FA
-:801C0000C022822A8802400222202A2C0400D60F00802201360220041A042F110442301230114222000040810410020022204102400142008200008004200242F0DFBE002242100112121D42800288000028190190828002180011211041023200144842144800000088A024008850224220F274CF00A03418282A810228800100382400E5
-:801C80000021230400981242A24200821420210248008002422084082288304280420280B4E545010000002400400148000000001400000020A324000000008042010022210000002008008FD8480128181828002C41032814824240024001214211280012488221188018A2210011804481C221002002888048028222232804F0E1CE00B8
-:801D00002002141AA21220061800800120820120080000C02148282A040018280000420048809482002A04480000A0427F8C0B40210112582662240020880100214001001A1411012448C01316A1422082810412206412144A9882284AA22410220400420000F085381001001420011242210018142100008004802404000018001918313B
-:801D800012224280A8C1282004212148000000224042F28D7B800480A434A0141142A014204401001420A241288002282311822104282006002002008004888008008084082A0826028FA20C001A0411420020044230422901001800004229190220040012824220880224188800C880080021488880082084F81576E011042800002324DC
-:801E0000120128284082410122280086210800301288422041020020021B4100282424110080240223088200F048F70000000018A08100A03880180288A01223F122121818224A2101802101404121020000C2888028844881040022214800F063C100C04100141110022901502113010000203442112304200413011022212808884A2895
-:801E8000A228190148202602230400000000F0EB1200111001121984011842114800121A0225418228022A44A31414100111001301281180810129848222020010022304282121C021F0317320031C8404002001002582020011002011828809292881042048A148428888C8C0620000009042282420222484041042F3AFFAF041111541A5
-:801F0000011B5118484229A4811AA5282E42198121015012E022A5516E92EE614A9462122B45481B151321075A7841E1189831288AE424E311E914C4C26AA444EE8229269841480042AA02230A3421CFEA02229011C0211321E4110419241411F252831593822D1114132292824A8264212543D232041C415112381824482221AA2903E279
-:801F80001A292E08292206232414A2660048C8C041F0E174141A041AB241044AF431132D121AE3241122240523C11228111A882221621119B881A816182C212588C58212AE718A39418A084AA24239328328A82A8AD421F8428250224221C82F249C8228A0222CE89D021A42A1211428142824282C8882083C2881288218011242121003E9
-:8020000029012098118A0228142888004003220000482440220222242A042A045FC20B1B571F15F311111B721F1FF751511E332AE226F643432B441F3EF6C2C21F14D413A3AB1F1A58212F1A4AB292A9AA17141F2EAAAE2F26F631212D823F1DBDC12CE92AB2F2EF36BEA2EE18FCE181AAA8F95E422BA82F1EAEC8EAEE2EFEE2C23F1AFE08
-:80208000828215C1222B642B22EEE22F2EEE3CBEE2AE222AE22EFE2523F071511F11F631313AA7D57AA7752E624E523F3EBFC2FCE1632BEE1F1CFD81913AF3B1912E222B882E222F2DBDC2FD5111EABFE1AEEE1F17E724FCD3D15AB591F1A1232BF5FE732F18AEC81F1AAC8ABAAD45BEA1EAAECCEAEE2CBEE2FEA3E12F2A5E314AA6662A58
-:80210000E22ABCE2AEEEAABA62A4662F2E7C540E1F15F711411F13B321F351511F15E517B522E424F4C3C17AF741C32B281F1CFC11111AF281A18E822B223E322BBB2BFE1F15E11EABCC6A7E11E125F493D11E415AE437BED2EF23BA82B2A1F8B1E1BAAABB16B2A2BAE3AEEEEAEE2AFE82E23F1AFEC2E2355122212B66EEC22F2EEE3CB84A
-:80218000A23A226AE62EDC64041F1547F111111F15F171311F14F171512AF472323F14A1771D832F2CE615F513119AFB13311F2A5A123E322B992BFE1F17E32EEA14FC62E21F11F1D2523F15A5DD1E113EB32BD51F2BB3C3ACCE1F13AAABFAEB25F473F22BEE6AAEEE6E622F2EFE23612F2C5E332F26F442622B664E422F2EFE42222BEE39
-:80220000E02242F23169400100008004000000120020A124A024002004421800420022A08280012A8924824402000080040000F02338201201282212262261221280021225211312812202323081D0222484014814188021C4811280A2161924022A88240200800400488024045F910A481B21141B21421B21272419F2421319B242B91190
-:80228000F2429213F14291222F1439312F1429F342913AC4911F22C4812F2264112F2265191F2264192D529AC2421B293CB591D222B89122B4917262B381324219B24298212B84112B84222B84222B842229A842882E422F840C481B61A02146A121271419B242B181A2141B294AB291B24231A12B14B225214B31B21CD122C5B12CEC11AB
-:80230000EA2265112A6C113CA9213CBC81C2521B612CB911E224B8912236812394212B84282DA319C282224A28F2428222882B42882F22F4F1540082480000000000280000000000000000000000000000000000000000004001FFD50B4800004816321120011E4120C14142242880045260221490212228801182820188188008382AA462
-:8023800042E0180411144280068A328280280222377714328A0312223E8121002D212321023490212D1112522C6212288A02001800298182018021342212182B81158218012400822448114880642242408174334981250D126036C011D0122161162230434E21112A81E12462225A22281123C81100E0219211281212C25A828199122EF6
-:802400001320024601302124481B24482044C2C24021F62E9220820220A2812C01801222011301D0220142400128220028222829010000240080086A984120181281880400A22928022200DF130A00202102241280442201004012410100280048004221422A0118281400C01148002140A24800002C0820880220F21CC12022020014A852
-:80248000112602204402305280E52821E31224041C2444C1421681A112002828460240012813C1324A22888C0A800842808C820420021F930B0020811221184322045224001240410319242442212484448194222081022C140114A0211B1418208828A284200820880CC80028F0D25E208202002022210210024022042B1498322200423B
-:802500001041828181212402382200001160224A12822418020042108202280022BF5401121842204222021448182001282221000023028094911110011001284A82413211489081480082800460228848A084C08282A084BF490968A0241CA314008002502220840200002A14921124A898524222480048140000484800280080022002F1
-:80258000820023440348F08F7C0080012002244800003012001415A224210042002012021200210020022502282400402208000000144240F274D5146818181C21249222B042828451221224182400146848901146821EE111843621420010021820034622A8241022084A8208248842602842824A8824FC9B75800122282A010014000005
-:80260000482002112490222200004002200142224A02501210120128000021008008420000E034091132400122194421041B1280012AA181118084A82128422542222401244642024AB2229112D0121402142B428A44A24821100229A44823248424140280082FAF0B488086A441002A018224002B285022180021290800001091210000B4
-:8026800000238451214A82081002281CA4821C4811218A8882088800F0B1EB00480024000022201202282880921100481858682301E8272422132604281180829211481A042B2800004A0211210020022A08624FA10F00484A0316122124A1143B241190222100A0823880813821302100121A280125218482080010A281002324180229F1
-:802700000210A28421882448007F330E4220210120212211022A0100882982082BC248C280082C820100800221200412202A08A80080024A2888820200484222217B773011141946210129428382226414282C020014250126022B481002800440022001D0120119A414120028000011C0C24002100280FCD82620A221002268200180913A
-:8027800082001083088214131821031308111C110121484A024229622214A814142848192888224C010020C22220820226F293E780218C210223A114206421A041290180028820051A084A0242428A81A4122E4122C04148002200282A8584848402A88248A0C2808C82286812826FAB02004880C441284042010028001814483452195251
-:802800001286814181288281042C68112C2822021A2C214202106222C846224422020040013082F052BC7011A11C132382B2437212A12225226A122327032AC22223C12117291F3AA23113E619D11133223B44A0A81C8242A124622F24E426C12211881E611E4219E224266C2C424E22A82724CE811F1C062B284A642A3022601266F2C3BD
-:802880001580B38182B11164211E524A91115AF513226819CF1282E01AA8921B881CA8814EC29A08CE82883E2118423F25F522523B1223E221A2A16823DC227623B1E2B1E128BAA299A24868A2421F18022C98A26A042BC427128AB862EC388A7CF2014AA443284E314A25B2216615284AF153123421257212321211B062B44275A2C1710F
-:802900006ABC22C4432456F1315120ED24C6C229E41251122AE413A131111CB25225E12294A32B822DC12B4A2A9C4321EE42882EA2808AA428A028CF2A420100204801001C2881082C08200840321130113083100129211822088220180288C09211241124112440022400400200F04DA3A0551F15F111311AF751515AE415F561632B66B2
-:80298000EAA64C1F16F6A183822B28157181E122F2E2A21B2ACA7C41C14119AC443F2616E236F4A3832B222ABA62AEEECE21EAAEAA1F1EB222FA2141AE22681F16F621614AE41CEC12D411784132411BE4484E822BCCCAFCA1A2AAAAE44AAEEC6F8A0F7E711F13073AF371716AA6641D232B66AAE31FF7C1C11F192A28A8222AE22ABAE2C6
-:802A0000FEA1D3FE932BBEBEB11F12F342411F365E121F36FCB3D32BAB2BA21CACEFFE736A86B683A2A21F12E612A2371F37FC63613F34E41EEA3EBE41EC1C38411BCC2F2CFC428223A4CCA0EE29A2CCEAFEF453141F15F531611F11F211311F15F571615E511F36F663611F16FF5171CADF118388F831B11F1869282B843BBA1BDD3F1A24
-:802A8000E311B561FBE1E21F24BC23F661633F31F1B3A12E22CE618AE222FA6262211F3AA6A21F1AFAA1231F3BFFF2622B6E3F3EFEC2C23F2EFC63C33F24F241823BC42F22F242A22F2CF8C2C22F3EAEAA2BA22AEA2EFE7D2D145E111F13021F12F311D11F17F653711F34F643511F16FF12714AF793938829F8B1B13F18E922FA62E11F23
-:802B00001AFDB3913F1AEB19F9A1A31F18F841433F13F6E1613F1DF953632AE22CA46D1F27FF62622F2EFEB1212AFAF1B11F3AFAB3F32F2FFEE3E12F2EEE2EFEE3E21F26FEC2833F28BCC2FCA2A22F26FAE2A22F2CFCE2E22BEE6AA688EEE2AE340040013400400324483440321100200912422014A2241142114221422901002100C01109
-:802B8000C081481440A14880C4228082A42400821FD80BA02100181B612001111880013081001C0821222008200116312220022400281892A04825022038224821822724200480142202241F2F0B481B21221B214AB111326219B242B111B24299212F2439112B94222F1429F342933AD412AB431CE922C4812F2264112E4296F12252964F
-:802C0000D122A5292CB491C2531B2925B29132421B292F24B181364219B242B881B24218F14282A22B84222B842229A84A882E427F5B0A1CB511A2421B214AB111726291612B161B612F1618B142BB11B242092F1423D1123B312DA13343D123C5311F226C11488E212E5296C1539E212E42923CA56926236136112F22116126112F24981D
-:802C8000212F2482F242832242A22F24289A822B422344F28E57008248000000000028000000000000880000000000481400000000800200000040011FAA08421222122A41A1120000002446318200008A02A88200212001002902001011C1128E127A8884043083C2882C04008002A200DF33031621480124283116227172222C223582CC
-:802D0000821823252AD32221A438124A728282861132222C82298485B823083681899843008018A2242E421041817242026825B281844421F463D98025888225113111002986848214F283229812281E2216C242281AA8A123E82882012B21282938412304390846018829C412E8424221682E812A2C18D1228204482D221D426A48016FA8
-:802D80005E0D1412146022282322911212290818824230428200A89228489042100220011A8288021AC291113C218801884082141221042480028800481F530620812141022E1128222818128044018800B23882400211424001422908200100202288810400400224004022024840F293A1E01421C22122183210A1411C4811D1212148DD
-:802E0000E22106E82D4242200440012880C2122A21222282B4238991222C8818B28192828683B882224681488172222284A284232AA84888AF770E18121C2341023880821891111182A041C062488A2483082414114810418233A228A0411C4102D02202160286C2828A22042948818212C222E2218860288FB30D4681022818381119A293
-:802E8000411982011223542122298848A21220040020022818420022248A2221828828C8A14A180180420124102204A028488A04DFBA4B21015230310028140048232104242041022121141C24842904142014218304805212002502000022002221298804242A884402EF8103004220045021100200A02440020000240098002308130107
-:802F0000481422190482482304002C02118008220000222400D0C8064011E11201008004131111210800002822804502110022602200001002806218306120220800208284020000D0F80E1214121B215A02D021724102184683218C042582012200002111426018B031042A012213342231206638800223C2812800D0228284062221008D
-:802F8000B0A2080014400100001440010000249022E014914142002428002142480080082502904122008008008800808A0424AFCD0E20041C05210000100140420280344223015229082212221C2802283220622C12244AA1428A84123242C290218622040000002800BF810D0048102111828124082B18210018481800A01E1462148066
-:8030000024018018022AC882121394812001428800004210024A480222804882F8A1F514400160140080410320412204180028422044024260242C612412484860110090A120034880860810A348883022482400003F7606628024042388440120247441228401009200008001228A010028212C04802208002002101212820822808888DB
-:803080008888A884286F980C130100184212242818134403A041A0244823821402821200000088A08240820200C022288082280200820000212602281CF8EAF600002002100182189280022F2108120022D222E22A69221C81228222824881AE141CA98122A0384082188202882100242280028210022FB509000090112148480021802940
-:803100002804C0428008182004881446014200E012882442A13800004280088220840628482848002672F1031C8584044200004081A224004A2828A41822800200422014324248460114480000888064160028290888208416C2820000F0E98800A0421212482A85440188E031982100120000100218128811425012C041246012112A04A5
-:8031800000002280A4248012228848029022222302BDB9C01142221E41111B44238124C4814A88692319898C21A4149E92242A8CAB43121B426A25E11EA6D62F243422A22A22DE23F3126182222A24812BF4C3624AA2A42E823C9482484AA4A4C2B04244A2C2A21CA482FFA94EB15102002CA4116A64141286D2317582C341212C7182A2F3
-:803200009220B262048A848186880217212522E21C9C412B481C6812423B338AAA212A0C2B222A18A24A28294252322122267222E22A38228220A8283FA20F481C044AE11553221813D11286011B253B944622A5C52B411AB442843212721B842B8E21246E1118158182B142A2142CA6CD1B9A1C54112F18A9382AC442A04224C2AAA84823
-:803280008AA8888A94E2A880DA2282AA2225F2E2461428804281428242A121A02834922440220B122C0228922882281828312821A082D012011C081800002002244002002C02800448F0A66E147E6142281B731F2757112B646E722B761F14F4C1431F16F7C1531F3CCC222AA798CE922F22A3268AA8329AB122A24C4E423F14F471E31D69
-:80330000412B663D432BEE2AA6E61F19F2D341E011A3EB9AE822B262F6C1C14A84A8AA2A8EACC8CAEE2AB262A688EEE22F28F8C2C2AAAAAA6E422FA34561112A86F231311F15F131315AE726B742B561B651F521231F16F783812BCC6E622AEF2EBA4265248E822B44422B54E02CFC73611F15FC41414AF4C3C33F1EAE446AF633611F1EDF
-:80338000EE16A2B3BAAE8826B262F4C1816AA662AAAAE22AAEC8CAEE26BAE2AE22EAFE22222F2ABA62ACE66AFECEE8145E51482217131F1555116AF471522B111F14FCE1E13F15FDD1F33F3C9C422B3BFAEB2DB9F2BF22A2CC2BF6DAADFE826EE23D411F17D711E426F6C3C12F1EAE6AAAFEB1F31F1DADD91B3BBAA3D92E622B441F1CAC95
-:80340000CC4AAC222AB642EE24BCC26C242B66EEE22F2EFEC2C22B882BAAEAEE26F6DED5147E6120F231111F37F351412B571F23B532F3C1C11F1FEF1CFCD3F33F3CBCD2AD4C2BDDEEA22BDD2AB2E2BEE2EF2FAF66AAEA26FE33711F3FB721F662623F1EFEE2E1EAEC2EEE1BF7E1611BF9BAABBF8AEC22B662F4C1C3EA8EA6AA8E622BEC58
-:80348000CABCE2EC24B262A6EE2F2EFEE2C22BEE2BAA8AEA22FA17A58001001800481448000000A048002880022880024A024A22222402001880012248884002800482800448002882EF330B18288042A1612302181B29181B282D1280A1422921822912A242982A842822752102228229244822E8123191802206248A2606888A422208D8
-:8035000080223242222304C0433F4F0A1CB41142B11162341B2123B411F2421319F242921B212F3419F14292322F1429F342933AD412BB31C4B11F22E414FA22421E211F22E519F222D29E212F22A5292D521B292D531B2925B391F242111B292B941B28272619F2428219F24283112F1428F24282222BA42229A842882E425EB480A42141
-:80358000481A22B4117242A12123B411B242A8612F24BA81E61421734221D31228D912BB13849B521C9B83283D529A82ED19F22251922D538AC2131B692C81E214B191A2948A7262139182284EA1281C28A2A4824A2A9A822B4A882B424FDF0E004882000000000000000000000000000000008004000000000000000000006FC50D111133
-:8036000011002E13E0250282CAF183122410022100009822002842808181332218902100111822144EA200008A3282C0429042422C02A24A22043F4E44212402180018C042112022042C44711182250520242132C24002211022E42284082822241318D12241812634222D41214825024200E02802E018029D6D304140A141B021014A8219
-:80368000D412A8412E912B422124142D112B4118408221E1212228CA4230121827231B2416021C02629093282D11193222422722197422A2C2212384142244622286822646F22FC20019020090121221C082003042002004A0482820040000004A820822400114B042880400820024200428822880084F1A09A021181A022880A212402140
-:8037000021944100210011460128002014210416914280040000001C01004AB881140221C082A2002008484FCC024001141C022C0250221E226021121532412642A3212C24C3110039042622342280E22182015823471271226211522904282422C08121824A02002914228404DF7B0460123011142800002C031042512140214233611898
-:803780002890418052124240F1221280242102115012463211200248190890824220024821C8003DEF0012122828C022282E125012184A31512442282129818441011002482C240232481280B4424102292281210400292A74820320C2828810028084F47713002004400222420000800210020040420198130124181421122501100248C3
-:8038000048A02490420000A0422C8228840C8042029F8E4C31111C62151442C061001411222842582430412002211100986024828004221433820216A14220021160245023908122210022202848024FD70900800212400229241303140042121381240428A02411800220230480012082912214219021002018020024C0220048F0D17C9A
-:803880009011260128421632612C828424C221C04148208411812604194281166111662238124E3123841292332C021B121A92221129542146011092821C28C42220944290828A02243FF60B82C01111000024113C010018502219840100000000000012000000422822208214124102248008A8220042F076EA002800144A018011014863
-:8039000012208144711241020012230450238026B12104000000122C0420043022627082828482240E80248848F258860011C031182413140190111502111180031C011414140020C2411239042944220290211312312112423023214001421082022348820A68F0749860181811000000002A04400122210018800211142882501212A007
-:803980004142200480020022422242801401488008282400F01BDF0000C01211802204481001622502150221211400186021112126022CC222241F210212190380120214800882800823122204808A82B2FB080080022219A4259021181A8234422152002902121200004242423041008A014E122C01421C82044830212998422B82A04275
-:803A000023024810928220C8C19F8709688002288042C221C02100800400102132422111290711100224248846821101009012242224882288800A00004A880400BB71000080D4210580458204180011120000800100002848298204280028480020042800003304100200222220F2B31610B181122184020022000046410211800221904D
-:803A8000214E11C0112182000048141431144081040000800230228004800800241FC40D8218481800804101C011800218214041218211021B16484A081100221C238922011A9422805222130882422084220840A2842A0410023D8280E21A83C2411AA2314A061B76B053065225717122B4230116531224152122E112523139B2C29C1232
-:803B0000182E1221296112391161221712142AC212302330838A1682B44188A62228A882212821A6E122F4FFDAC0418214322E113314E214011C022E33A0442D413CA12133A1229032181D114E42190446012AF2426325E12424B7D244F11243171120E63434124A44A2422CA8821CBE62883442B0424402CABAC2AC82A8A88C4F1131118C
-:803B80001138423C54113A721211C1111B451911012B413434311532311AA421352184E52255314E43111B642AE228C6B23E224A81E3219331116A5222CAD631A222232466282738AE822724222B4C2BC42E42228A22042FC20D800122482C01200120220100322422200332200A2242230221A0924218A012200224200200002480020086
-:803C0000288A0448F05CA1141F1DF521211E111F12D611FA11B11F14F461723B541F2616F321311F3251223982A3323E313E313F33F323231F16F76171EEE22BAE1F12F261231F36F672723F15F721611F22B2F2E62FBE12E323127331D213A6667AE527F7C3C327323F12BA22F2C1833F3AFC414329F222222F26F642422BC46E422F2E26
-:803C80002E04CE82AE28145E511F14F411111F11F551911B3F1115F343711F24D613D411F441711D433B241F16F221313E113E333F33F123233F16E416E72EBDA2EA22E832F621832F37F773733F22F223232B476E632B221F22F2534337233D611F16A6772B773F1CFC23213F12FA22A23F3AFEC3E31F34BC82B822F262422F2CF442C21B
-:803D00002F24F6E2622B662A6224AF6B44E114F431711F11B131B341F751311B551F37F753511F22F253111F17E72153222F24F411532B332E112B323F23B133F373511F17E732F162211F32F8612317362F27F653631F126232BAE32BAD751F23F223611F3333236AA6776E623F3AFE22233F1A9A22CEC22B641F1C7481F322222F26F6D9
-:803D800042422F2CFC22622BEC2BA24AA2EE2947E11EF631711F13B371B351F571323B331F36F653711D223F17F361611F15D531F463433D633F13D312F122312F21B132F343411F1747F22221241F32F681412F33F673623F22F222232B3B1F2CBE72F731223F33F713333B261B227E722F26F6E3E33F32F2A3A12F28FA82A22F2CFC417C
-:803E0000C33F18B862B662E22CF4C2C22F26B6E2BE62A2266AF635AC20021C01182082240200800448000000421100100100002240011420022448148224000080820482288228826FCF0F4828182818282F12216114284E111982011412348001188001008024941290421A822465128081021AB46201803262E0242848824482842808BA
-:803E800022E012F455AA80B411A2121B2146B291B242B111B24291212F26B911B24239112B94322F3429F24291322D913AC4912E421CE82264152E5296F122429E212F22A52D2CB591E222B591E222B191E224B19132621B282394612B8419F24282112B84222BA4222BA4A229AA42882E426FE3071CB411A6121B21141962241B212B14C3
-:803F00001B216E821B212F24BB11F24282322F1439314E83322B843B431CF922521CF92382422B529691518E212E535AD232B181F222521B692B121B284E131B294A11918219F6428119F242A3E01428B2422AD2222A9AA22B42212E423FA3022008000000000000001008000000880000400122880000000000000000000000F064EC0013
-:803F8000108441022820312120021D92001B853B248CC2810000104141A1424C921248304213220140A1822018084228311C48A2488722228982348280C288F097ED9041AE11404BF42882141BA1311225C2832024BD82031213048904520068482902C04121222E8421332482011934B14691C1236411290CB0114422042301108C4421C3
-:80400000F4F45D80641C418311342A28191B11119221228E53582B1213A1144A22C84A0012E0182294212244211304434431514240C1C12AE118748822E434C1A2111B8234C8832292281042AE4220B47702141A02112188250129A1212482218028E8243821851101A014004814214222561182F222822821281820328190410042001AD6
-:80408000448254221242820089085BBE101401408302160800828800122902004601000085011C1282C24200C08140A22114822D117042022140220122801402232402F06B5E8082D1141138241C31121C32322D192CD221C141211B41311641632A19C1285AB2182272418416B25192525B349724282E1272132202128593941C0129071C
-:80410000144641834CF28142C64202898288AA4868421F1E0922169111812C9231D08191329126020011169311142221814800432414925137211E246668242840318120D118F28114960223444281441112D22128562246322882200EF07AB1400441404522814222011B183F24084A1182022968111B24381E28221428942862194423FA
-:80418000229172282840622110C1112A91421003C81229240800244A0A6248DF3E062155DA4164A2482384012D1A20C82430883814121A52422800244D41278498290317828018097062882152811D4220A4422004822136142844422804A116022E18446C0C1184520024000012252649A42822102601212184828089C442C0621433E42D
-:8042000028348480441884251402008139C24125542222250444812C42A2C24490A62082120844CD114890418240111802124001841442130128250C404418042200212C81222232812014A11400800C124288A2424400B04D4E92214D224C612249F4441348D08321A88133321A63A8181A827122311681258134184D8162E129C2421102
-:8042800089C285802E68221A64238584A1242F1824041416BA811202272490128443AC28A722126A3814446F450210511884248418602400804808113014200240C1428120058D242C042D485026420026912121208224840419941286281434421088440489022E420012911081212252182C21211128041418226140024521020033029A

[... 3854 lines stripped ...]



More information about the svn-commits mailing list