);
 		breakpoints = (
 			69868C9D14618450004C5D9B /* packet.c:22 */,
-			69269F4E14620FC200F69705 /* packet.c:203 */,
+			69269F4E14620FC200F69705 /* packet.c:232 */,
 		);
 		codeSenseManager = 69868AD51460E35F004C5D9B /* Code sense */;
 		perUserDictionary = {
 			6926B14F146F5EB300F69705 /* PBXTextBookmark */ = 6926B14F146F5EB300F69705 /* PBXTextBookmark */;
 			6926B15B146F612C00F69705 /* PBXTextBookmark */ = 6926B15B146F612C00F69705 /* PBXTextBookmark */;
 			6926B15C146F617D00F69705 /* PBXTextBookmark */ = 6926B15C146F617D00F69705 /* PBXTextBookmark */;
+			6926B17D14702EF900F69705 /* PBXTextBookmark */ = 6926B17D14702EF900F69705 /* PBXTextBookmark */;
+			6926B18314702F1900F69705 /* PBXTextBookmark */ = 6926B18314702F1900F69705 /* PBXTextBookmark */;
+			6926B18414702F1900F69705 /* PBXTextBookmark */ = 6926B18414702F1900F69705 /* PBXTextBookmark */;
+			6926B18514702F1900F69705 /* PBXTextBookmark */ = 6926B18514702F1900F69705 /* PBXTextBookmark */;
+			6926B18614702F1900F69705 /* PBXTextBookmark */ = 6926B18614702F1900F69705 /* PBXTextBookmark */;
+			6926B18714702F1900F69705 /* PBXTextBookmark */ = 6926B18714702F1900F69705 /* PBXTextBookmark */;
+			6926B1A81470319400F69705 /* PBXTextBookmark */ = 6926B1A81470319400F69705 /* PBXTextBookmark */;
+			6926B1A91470319400F69705 /* PBXTextBookmark */ = 6926B1A91470319400F69705 /* PBXTextBookmark */;
 			69868BD11460F42D004C5D9B = 69868BD11460F42D004C5D9B /* PBXTextBookmark */;
 			69868BD91460F468004C5D9B = 69868BD91460F468004C5D9B /* PBXTextBookmark */;
 			69868C931460F7C3004C5D9B = 69868C931460F7C3004C5D9B /* PBXTextBookmark */;
 	};
 	69269F2314620D0F00F69705 /* packet.c */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {685, 21372}}";
-			sepNavSelRange = "{47236, 0}";
-			sepNavVisRange = "{37622, 342}";
+			sepNavIntBoundsRect = "{{0, 0}, {905, 21931}}";
+			sepNavSelRange = "{8711, 0}";
+			sepNavVisRange = "{7533, 1285}";
 			sepNavWindowFrame = "{{139, 11}, {1136, 746}}";
 		};
 	};
 			sepNavVisRange = "{0, 1510}";
 		};
 	};
-	69269F4E14620FC200F69705 /* packet.c:203 */ = {
+	69269F4E14620FC200F69705 /* packet.c:232 */ = {
 		isa = PBXFileBreakpoint;
 		actions = (
 		);
 		functionName = "spgp_decode_message()";
 		hitCount = 0;
 		ignoreCount = 0;
-		lineNumber = 203;
+		lineNumber = 232;
 		location = duckdog;
 		modificationTime = 342734490.62607;
 		originalNumberOfMultipleMatches = 1;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 816";
 		rLen = 0;
-		rLoc = 29061;
+		rLoc = 29945;
 		rType = 0;
 		vrLen = 1446;
 		vrLoc = 24434;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 820";
 		rLen = 0;
-		rLoc = 29229;
+		rLoc = 30113;
 		rType = 0;
 		vrLen = 1479;
 		vrLoc = 24016;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 791";
 		rLen = 0;
-		rLoc = 28228;
+		rLoc = 29112;
 		rType = 0;
 		vrLen = 1529;
 		vrLoc = 27306;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 179";
 		rLen = 0;
-		rLoc = 6089;
+		rLoc = 6749;
 		rType = 0;
 		vrLen = 1966;
 		vrLoc = 4084;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 960";
 		rLen = 0;
-		rLoc = 50826;
+		rLoc = 51710;
 		rType = 0;
 		vrLen = 1655;
 		vrLoc = 28491;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 975";
 		rLen = 0;
-		rLoc = 50826;
+		rLoc = 51710;
 		rType = 0;
 		vrLen = 1799;
 		vrLoc = 28668;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 974";
 		rLen = 0;
-		rLoc = 50826;
+		rLoc = 51710;
 		rType = 0;
 		vrLen = 1802;
 		vrLoc = 28668;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 672";
 		rLen = 0;
-		rLoc = 23996;
+		rLoc = 24880;
 		rType = 0;
 		vrLen = 2232;
 		vrLoc = 19150;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 672";
 		rLen = 0;
-		rLoc = 23996;
+		rLoc = 24880;
 		rType = 0;
 		vrLen = 2232;
 		vrLoc = 19150;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 671";
 		rLen = 0;
-		rLoc = 23954;
+		rLoc = 24838;
 		rType = 0;
 		vrLen = 2244;
 		vrLoc = 19150;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 729";
 		rLen = 0;
-		rLoc = 25917;
+		rLoc = 26801;
 		rType = 0;
 		vrLen = 2063;
 		vrLoc = 21499;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 251";
 		rLen = 0;
-		rLoc = 8002;
+		rLoc = 8819;
 		rType = 0;
 		vrLen = 1791;
 		vrLoc = 6607;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 233";
 		rLen = 0;
-		rLoc = 7683;
+		rLoc = 8365;
 		rType = 0;
 		vrLen = 1575;
 		vrLoc = 6539;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 233";
 		rLen = 0;
-		rLoc = 7683;
+		rLoc = 8365;
 		rType = 0;
 		vrLen = 1575;
 		vrLoc = 6539;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 325";
 		rLen = 0;
-		rLoc = 11674;
+		rLoc = 12558;
 		rType = 0;
 		vrLen = 1425;
 		vrLoc = 8435;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 243";
 		rLen = 0;
-		rLoc = 8149;
+		rLoc = 8966;
 		rType = 0;
 		vrLen = 1663;
 		vrLoc = 6777;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 226";
 		rLen = 0;
-		rLoc = 7894;
+		rLoc = 8576;
 		rType = 0;
 		vrLen = 1673;
 		vrLoc = 6472;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 181";
 		rLen = 1;
-		rLoc = 6441;
+		rLoc = 7101;
 		rType = 0;
 		vrLen = 1900;
 		vrLoc = 4533;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 959";
 		rLen = 0;
-		rLoc = 44808;
+		rLoc = 45692;
 		rType = 0;
 		vrLen = 1765;
 		vrLoc = 29422;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 969";
 		rLen = 0;
-		rLoc = 45290;
+		rLoc = 46174;
 		rType = 0;
 		vrLen = 1684;
 		vrLoc = 29422;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 977";
 		rLen = 0;
-		rLoc = 45592;
+		rLoc = 46476;
 		rType = 0;
 		vrLen = 1601;
 		vrLoc = 29516;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 977";
 		rLen = 0;
-		rLoc = 45592;
+		rLoc = 46476;
 		rType = 0;
 		vrLen = 1598;
 		vrLoc = 29516;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 959";
 		rLen = 0;
-		rLoc = 44769;
+		rLoc = 45653;
 		rType = 0;
 		vrLen = 1633;
 		vrLoc = 29516;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 974";
 		rLen = 0;
-		rLoc = 45258;
+		rLoc = 46142;
 		rType = 0;
 		vrLen = 1643;
 		vrLoc = 29261;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 984";
 		rLen = 0;
-		rLoc = 45568;
+		rLoc = 46452;
 		rType = 0;
 		vrLen = 1637;
 		vrLoc = 29261;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 993";
 		rLen = 0;
-		rLoc = 46318;
+		rLoc = 47202;
 		rType = 0;
 		vrLen = 1784;
 		vrLoc = 30278;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 993";
 		rLen = 0;
-		rLoc = 46318;
+		rLoc = 47202;
 		rType = 0;
 		vrLen = 1784;
 		vrLoc = 30278;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 993";
 		rLen = 0;
-		rLoc = 46318;
+		rLoc = 47202;
 		rType = 0;
 		vrLen = 1847;
 		vrLoc = 30172;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 990";
 		rLen = 0;
-		rLoc = 45683;
+		rLoc = 46567;
 		rType = 0;
 		vrLen = 1796;
 		vrLoc = 29921;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1025";
 		rLen = 0;
-		rLoc = 49300;
+		rLoc = 50184;
 		rType = 0;
 		vrLen = 1708;
 		vrLoc = 30610;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1025";
 		rLen = 0;
-		rLoc = 49276;
+		rLoc = 50160;
 		rType = 0;
 		vrLen = 1740;
 		vrLoc = 30610;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1002";
 		rLen = 0;
-		rLoc = 45993;
+		rLoc = 46877;
 		rType = 0;
 		vrLen = 1864;
 		vrLoc = 29944;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1001";
 		rLen = 0;
-		rLoc = 45992;
+		rLoc = 46876;
 		rType = 0;
 		vrLen = 1801;
 		vrLoc = 30007;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 249";
 		rLen = 0;
-		rLoc = 8002;
+		rLoc = 8819;
 		rType = 0;
 		vrLen = 1363;
 		vrLoc = 6644;
 	};
 	6926A660146B38F200F69705 /* keychain.c */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {905, 1430}}";
-			sepNavSelRange = "{738, 0}";
+			sepNavIntBoundsRect = "{{0, 0}, {905, 1469}}";
+			sepNavSelRange = "{1523, 34}";
 			sepNavVisRange = "{0, 1265}";
+			sepNavWindowFrame = "{{84, 64}, {1136, 746}}";
 		};
 	};
 	6926A661146B38F200F69705 /* keychain.h */ = {
 		uiCtxt = {
 			sepNavIntBoundsRect = "{{0, 0}, {905, 618}}";
-			sepNavSelRange = "{680, 0}";
-			sepNavVisRange = "{0, 1207}";
+			sepNavSelRange = "{730, 0}";
+			sepNavVisRange = "{0, 1189}";
 		};
 	};
 	6926A671146B39B700F69705 /* PBXTextBookmark */ = {
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 50";
 		rLen = 0;
-		rLoc = 1053;
+		rLoc = 1054;
 		rType = 0;
 		vrLen = 1332;
 		vrLoc = 30243;
 		fRef = 6926A661146B38F200F69705 /* keychain.h */;
 		name = "keychain.h: 17";
 		rLen = 18;
-		rLoc = 784;
+		rLoc = 763;
 		rType = 0;
 		vrLen = 621;
 		vrLoc = 0;
 		fRef = 6926A661146B38F200F69705 /* keychain.h */;
 		name = "keychain.h: 17";
 		rLen = 18;
-		rLoc = 784;
+		rLoc = 763;
 		rType = 0;
 		vrLen = 621;
 		vrLoc = 0;
 		fRef = 6926A661146B38F200F69705 /* keychain.h */;
 		name = "keychain.h: 16";
 		rLen = 0;
-		rLoc = 775;
+		rLoc = 754;
 		rType = 0;
 		vrLen = 621;
 		vrLoc = 0;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 49";
 		rLen = 25;
-		rLoc = 1119;
+		rLoc = 1319;
 		rType = 0;
 		vrLen = 1196;
 		vrLoc = 262;
 		fRef = 6926A661146B38F200F69705 /* keychain.h */;
 		name = "keychain.h: 16";
 		rLen = 0;
-		rLoc = 775;
+		rLoc = 754;
 		rType = 0;
 		vrLen = 621;
 		vrLoc = 0;
 		fRef = 6926A661146B38F200F69705 /* keychain.h */;
 		name = "keychain.h: 19";
 		rLen = 0;
-		rLoc = 881;
+		rLoc = 860;
 		rType = 0;
 		vrLen = 659;
 		vrLoc = 0;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 90";
 		rLen = 0;
-		rLoc = 3999;
+		rLoc = 4199;
 		rType = 0;
 		vrLen = 1411;
 		vrLoc = 30330;
 		fRef = 6926A660146B38F200F69705 /* keychain.c */;
 		name = "keychain.c: 88";
 		rLen = 0;
-		rLoc = 2447;
+		rLoc = 2492;
 		rType = 0;
 		vrLen = 1069;
 		vrLoc = 1014;
 		fRef = 6926A660146B38F200F69705 /* keychain.c */;
 		name = "keychain.c: 88";
 		rLen = 0;
-		rLoc = 2447;
+		rLoc = 2492;
 		rType = 0;
 		vrLen = 1035;
 		vrLoc = 1048;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 90";
 		rLen = 0;
-		rLoc = 3999;
+		rLoc = 4199;
 		rType = 0;
 		vrLen = 1432;
 		vrLoc = 31262;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 90";
 		rLen = 0;
-		rLoc = 3999;
+		rLoc = 4199;
 		rType = 0;
 		vrLen = 1432;
 		vrLoc = 31262;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1045";
 		rLen = 0;
-		rLoc = 49157;
+		rLoc = 50041;
 		rType = 0;
 		vrLen = 1444;
 		vrLoc = 31262;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1045";
 		rLen = 0;
-		rLoc = 49157;
+		rLoc = 50041;
 		rType = 0;
 		vrLen = 1444;
 		vrLoc = 31262;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1045";
 		rLen = 0;
-		rLoc = 49157;
+		rLoc = 50041;
 		rType = 0;
 		vrLen = 1444;
 		vrLoc = 31262;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1045";
 		rLen = 0;
-		rLoc = 49157;
+		rLoc = 50041;
 		rType = 0;
 		vrLen = 1453;
 		vrLoc = 31262;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1045";
 		rLen = 0;
-		rLoc = 49157;
+		rLoc = 50041;
 		rType = 0;
 		vrLen = 1453;
 		vrLoc = 31262;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1046";
 		rLen = 0;
-		rLoc = 49157;
+		rLoc = 50041;
 		rType = 0;
 		vrLen = 1450;
 		vrLoc = 31285;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1043";
 		rLen = 0;
-		rLoc = 49080;
+		rLoc = 49964;
 		rType = 0;
 		vrLen = 1450;
 		vrLoc = 31285;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1043";
 		rLen = 0;
-		rLoc = 49080;
+		rLoc = 49964;
 		rType = 0;
 		vrLen = 1450;
 		vrLoc = 31285;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1048";
 		rLen = 0;
-		rLoc = 49049;
+		rLoc = 49933;
 		rType = 0;
 		vrLen = 1333;
 		vrLoc = 31285;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1226";
 		rLen = 0;
-		rLoc = 50827;
+		rLoc = 51711;
 		rType = 0;
 		vrLen = 1307;
 		vrLoc = 36795;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1034";
 		rLen = 0;
-		rLoc = 47045;
+		rLoc = 47929;
 		rType = 0;
 		vrLen = 1205;
 		vrLoc = 30973;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1032";
 		rLen = 0;
-		rLoc = 46857;
+		rLoc = 47741;
 		rType = 0;
 		vrLen = 1408;
 		vrLoc = 30775;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1032";
 		rLen = 0;
-		rLoc = 46476;
+		rLoc = 47360;
 		rType = 0;
 		vrLen = 1492;
 		vrLoc = 31248;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1045";
 		rLen = 0;
-		rLoc = 46952;
+		rLoc = 47836;
 		rType = 0;
 		vrLen = 1462;
 		vrLoc = 31147;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1048";
 		rLen = 0;
-		rLoc = 47174;
+		rLoc = 48058;
 		rType = 0;
 		vrLen = 1462;
 		vrLoc = 31147;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1049";
 		rLen = 0;
-		rLoc = 47118;
+		rLoc = 48002;
 		rType = 0;
 		vrLen = 1394;
 		vrLoc = 31415;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1049";
 		rLen = 0;
-		rLoc = 47118;
+		rLoc = 48002;
 		rType = 0;
 		vrLen = 1394;
 		vrLoc = 31415;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1029";
 		rLen = 0;
-		rLoc = 46343;
+		rLoc = 47227;
 		rType = 0;
 		vrLen = 1498;
 		vrLoc = 30842;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1032";
 		rLen = 0;
-		rLoc = 46420;
+		rLoc = 47304;
 		rType = 0;
 		vrLen = 1502;
 		vrLoc = 30842;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1032";
 		rLen = 0;
-		rLoc = 46420;
+		rLoc = 47304;
 		rType = 0;
 		vrLen = 1508;
 		vrLoc = 30842;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 970";
 		rLen = 119;
-		rLoc = 44406;
+		rLoc = 45290;
 		rType = 0;
 		vrLen = 1389;
 		vrLoc = 31415;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1250";
 		rLen = 0;
-		rLoc = 50827;
+		rLoc = 51711;
 		rType = 0;
 		vrLen = 1185;
 		vrLoc = 37615;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1250";
 		rLen = 0;
-		rLoc = 50827;
+		rLoc = 51711;
 		rType = 0;
 		vrLen = 1185;
 		vrLoc = 37619;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1039";
 		rLen = 0;
-		rLoc = 46704;
+		rLoc = 47588;
 		rType = 0;
 		vrLen = 1356;
 		vrLoc = 31419;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1064";
 		rLen = 0;
-		rLoc = 47556;
+		rLoc = 48440;
 		rType = 0;
 		vrLen = 1461;
 		vrLoc = 31857;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1062";
 		rLen = 0;
-		rLoc = 47416;
+		rLoc = 48300;
 		rType = 0;
 		vrLen = 1476;
 		vrLoc = 31764;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		fallbackIsa = XCBuildMessageTextBookmark;
 		rLen = 1;
-		rLoc = 1495;
+		rLoc = 1532;
 		rType = 1;
 	};
 	6926A7E1146B59BC00F69705 /* PBXTextBookmark */ = {
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 978";
 		rLen = 0;
-		rLoc = 44740;
+		rLoc = 45624;
 		rType = 0;
 		vrLen = 1540;
 		vrLoc = 31881;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1064";
 		rLen = 0;
-		rLoc = 47556;
+		rLoc = 48440;
 		rType = 0;
 		vrLen = 1532;
 		vrLoc = 31881;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1065";
 		rLen = 0;
-		rLoc = 47543;
+		rLoc = 48427;
 		rType = 0;
 		vrLen = 1532;
 		vrLoc = 31881;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1069";
 		rLen = 0;
-		rLoc = 47832;
+		rLoc = 48716;
 		rType = 0;
 		vrLen = 1453;
 		vrLoc = 31881;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1071";
 		rLen = 0;
-		rLoc = 47868;
+		rLoc = 48752;
 		rType = 0;
 		vrLen = 1532;
 		vrLoc = 31881;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1069";
 		rLen = 0;
-		rLoc = 47707;
+		rLoc = 48591;
 		rType = 0;
 		vrLen = 1612;
 		vrLoc = 31913;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1067";
 		rLen = 0;
-		rLoc = 47598;
+		rLoc = 48482;
 		rType = 0;
 		vrLen = 1555;
 		vrLoc = 31987;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1067";
 		rLen = 0;
-		rLoc = 47598;
+		rLoc = 48482;
 		rType = 0;
 		vrLen = 1555;
 		vrLoc = 31987;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1073";
 		rLen = 0;
-		rLoc = 47874;
+		rLoc = 48758;
 		rType = 0;
 		vrLen = 1560;
 		vrLoc = 31987;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1073";
 		rLen = 0;
-		rLoc = 47874;
+		rLoc = 48758;
 		rType = 0;
 		vrLen = 1560;
 		vrLoc = 31987;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1075";
 		rLen = 0;
-		rLoc = 47948;
+		rLoc = 48832;
 		rType = 0;
 		vrLen = 1486;
 		vrLoc = 31987;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1086";
 		rLen = 0;
-		rLoc = 48308;
+		rLoc = 49192;
 		rType = 0;
 		vrLen = 1581;
 		vrLoc = 32939;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1088";
 		rLen = 0;
-		rLoc = 48308;
+		rLoc = 49192;
 		rType = 0;
 		vrLen = 1636;
 		vrLoc = 32363;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1088";
 		rLen = 0;
-		rLoc = 48308;
+		rLoc = 49192;
 		rType = 0;
 		vrLen = 1637;
 		vrLoc = 32362;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1089";
 		rLen = 0;
-		rLoc = 48308;
+		rLoc = 49192;
 		rType = 0;
 		vrLen = 1647;
 		vrLoc = 32362;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1090";
 		rLen = 0;
-		rLoc = 48362;
+		rLoc = 49246;
 		rType = 0;
 		vrLen = 1651;
 		vrLoc = 32366;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1090";
 		rLen = 0;
-		rLoc = 48362;
+		rLoc = 49246;
 		rType = 0;
 		vrLen = 1651;
 		vrLoc = 32366;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1090";
 		rLen = 0;
-		rLoc = 48362;
+		rLoc = 49246;
 		rType = 0;
 		vrLen = 1658;
 		vrLoc = 32366;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1090";
 		rLen = 0;
-		rLoc = 48362;
+		rLoc = 49246;
 		rType = 0;
 		vrLen = 1658;
 		vrLoc = 32366;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1090";
 		rLen = 0;
-		rLoc = 48362;
+		rLoc = 49246;
 		rType = 0;
 		vrLen = 1543;
 		vrLoc = 32544;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1096";
 		rLen = 0;
-		rLoc = 48515;
+		rLoc = 49399;
 		rType = 0;
 		vrLen = 1484;
 		vrLoc = 32775;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 438";
 		rLen = 0;
-		rLoc = 16804;
+		rLoc = 17688;
 		rType = 0;
 		vrLen = 1856;
 		vrLoc = 11348;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 438";
 		rLen = 0;
-		rLoc = 16804;
+		rLoc = 17688;
 		rType = 0;
 		vrLen = 1886;
 		vrLoc = 11348;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 438";
 		rLen = 0;
-		rLoc = 16804;
+		rLoc = 17688;
 		rType = 0;
 		vrLen = 1864;
 		vrLoc = 11538;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 438";
 		rLen = 0;
-		rLoc = 16804;
+		rLoc = 17688;
 		rType = 0;
 		vrLen = 1858;
 		vrLoc = 11538;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 470";
 		rLen = 0;
-		rLoc = 17914;
+		rLoc = 18798;
 		rType = 0;
 		vrLen = 1250;
 		vrLoc = 13332;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 444";
 		rLen = 0;
-		rLoc = 16804;
+		rLoc = 17688;
 		rType = 0;
 		vrLen = 1464;
 		vrLoc = 12557;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 68";
 		rLen = 0;
-		rLoc = 1865;
+		rLoc = 2065;
 		rType = 0;
 		vrLen = 1528;
 		vrLoc = 12678;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 68";
 		rLen = 0;
-		rLoc = 1865;
+		rLoc = 2065;
 		rType = 0;
 		vrLen = 1528;
 		vrLoc = 12678;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 68";
 		rLen = 0;
-		rLoc = 1865;
+		rLoc = 2065;
 		rType = 0;
 		vrLen = 1529;
 		vrLoc = 12678;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 68";
 		rLen = 0;
-		rLoc = 1865;
+		rLoc = 2065;
 		rType = 0;
 		vrLen = 1530;
 		vrLoc = 12679;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 68";
 		rLen = 0;
-		rLoc = 1865;
+		rLoc = 2065;
 		rType = 0;
 		vrLen = 1530;
 		vrLoc = 12679;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 139";
 		rLen = 54;
-		rLoc = 4773;
+		rLoc = 5433;
 		rType = 0;
 		vrLen = 1692;
 		vrLoc = 5114;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1012";
 		rLen = 0;
-		rLoc = 42240;
+		rLoc = 43124;
 		rType = 0;
 		vrLen = 1382;
 		vrLoc = 30008;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1007";
 		rLen = 0;
-		rLoc = 38338;
+		rLoc = 39222;
 		rType = 0;
 		vrLen = 1403;
 		vrLoc = 30374;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1017";
 		rLen = 0;
-		rLoc = 38723;
+		rLoc = 39607;
 		rType = 0;
 		vrLen = 1491;
 		vrLoc = 30915;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1017";
 		rLen = 0;
-		rLoc = 38755;
+		rLoc = 39639;
 		rType = 0;
 		vrLen = 1495;
 		vrLoc = 30915;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1012";
 		rLen = 0;
-		rLoc = 38501;
+		rLoc = 39385;
 		rType = 0;
 		vrLen = 1481;
 		vrLoc = 30905;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1040";
 		rLen = 0;
-		rLoc = 39714;
+		rLoc = 40598;
 		rType = 0;
 		vrLen = 1427;
 		vrLoc = 30905;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1045";
 		rLen = 0;
-		rLoc = 42240;
+		rLoc = 43124;
 		rType = 0;
 		vrLen = 1420;
 		vrLoc = 30908;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1050";
 		rLen = 119;
-		rLoc = 44406;
+		rLoc = 45290;
 		rType = 0;
 		vrLen = 1509;
 		vrLoc = 31655;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1058";
 		rLen = 0;
-		rLoc = 44240;
+		rLoc = 45124;
 		rType = 0;
 		vrLen = 1317;
 		vrLoc = 32232;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1062";
 		rLen = 0;
-		rLoc = 44387;
+		rLoc = 45271;
 		rType = 0;
 		vrLen = 1285;
 		vrLoc = 32232;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1030";
 		rLen = 0;
-		rLoc = 38905;
+		rLoc = 39789;
 		rType = 0;
 		vrLen = 1417;
 		vrLoc = 31218;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1030";
 		rLen = 0;
-		rLoc = 38905;
+		rLoc = 39789;
 		rType = 0;
 		vrLen = 1417;
 		vrLoc = 31218;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1032";
 		rLen = 0;
-		rLoc = 38905;
+		rLoc = 39789;
 		rType = 0;
 		vrLen = 1392;
 		vrLoc = 31253;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1032";
 		rLen = 0;
-		rLoc = 38905;
+		rLoc = 39789;
 		rType = 0;
 		vrLen = 1392;
 		vrLoc = 31253;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1032";
 		rLen = 0;
-		rLoc = 38905;
+		rLoc = 39789;
 		rType = 0;
 		vrLen = 1451;
 		vrLoc = 31194;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 436";
 		rLen = 0;
-		rLoc = 17021;
+		rLoc = 17905;
 		rType = 0;
 		vrLen = 1818;
 		vrLoc = 11735;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 436";
 		rLen = 0;
-		rLoc = 17021;
+		rLoc = 17905;
 		rType = 0;
 		vrLen = 1451;
 		vrLoc = 12773;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 437";
 		rLen = 0;
-		rLoc = 17027;
+		rLoc = 17911;
 		rType = 0;
 		vrLen = 1519;
 		vrLoc = 12550;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 437";
 		rLen = 0;
-		rLoc = 17027;
+		rLoc = 17911;
 		rType = 0;
 		vrLen = 1523;
 		vrLoc = 12550;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 437";
 		rLen = 0;
-		rLoc = 17027;
+		rLoc = 17911;
 		rType = 0;
 		vrLen = 1519;
 		vrLoc = 12550;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 437";
 		rLen = 0;
-		rLoc = 17027;
+		rLoc = 17911;
 		rType = 0;
 		vrLen = 1519;
 		vrLoc = 12550;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1074";
 		rLen = 0;
-		rLoc = 41363;
+		rLoc = 42247;
 		rType = 0;
 		vrLen = 1529;
 		vrLoc = 31834;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1074";
 		rLen = 0;
-		rLoc = 41363;
+		rLoc = 42247;
 		rType = 0;
 		vrLen = 1529;
 		vrLoc = 31834;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1074";
 		rLen = 0;
-		rLoc = 41363;
+		rLoc = 42247;
 		rType = 0;
 		vrLen = 1635;
 		vrLoc = 31881;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1074";
 		rLen = 0;
-		rLoc = 41363;
+		rLoc = 42247;
 		rType = 0;
 		vrLen = 1635;
 		vrLoc = 31881;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1074";
 		rLen = 0;
-		rLoc = 41363;
+		rLoc = 42247;
 		rType = 0;
 		vrLen = 1634;
 		vrLoc = 31881;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 454";
 		rLen = 0;
-		rLoc = 17464;
+		rLoc = 18348;
 		rType = 0;
 		vrLen = 1502;
 		vrLoc = 12734;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1076";
 		rLen = 0;
-		rLoc = 40386;
+		rLoc = 41270;
 		rType = 0;
 		vrLen = 1580;
 		vrLoc = 32022;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1090";
 		rLen = 0;
-		rLoc = 41634;
+		rLoc = 42518;
 		rType = 0;
 		vrLen = 1776;
 		vrLoc = 32146;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 177";
 		rLen = 0;
-		rLoc = 5479;
+		rLoc = 6139;
 		rType = 0;
 		vrLen = 1558;
 		vrLoc = 5039;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 210";
 		rLen = 0;
-		rLoc = 6511;
+		rLoc = 7171;
 		rType = 0;
 		vrLen = 1859;
 		vrLoc = 5449;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1020";
 		rLen = 211;
-		rLoc = 38034;
+		rLoc = 38918;
 		rType = 0;
 		vrLen = 1580;
 		vrLoc = 33567;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1020";
 		rLen = 211;
-		rLoc = 38034;
+		rLoc = 38918;
 		rType = 0;
 		vrLen = 1580;
 		vrLoc = 33567;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1119";
 		rLen = 0;
-		rLoc = 42021;
+		rLoc = 42905;
 		rType = 0;
 		vrLen = 1634;
 		vrLoc = 33895;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1070";
 		rLen = 0;
-		rLoc = 39714;
+		rLoc = 40598;
 		rType = 0;
 		vrLen = 1725;
 		vrLoc = 32525;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1037";
 		rLen = 0;
-		rLoc = 38005;
+		rLoc = 38889;
 		rType = 0;
 		vrLen = 1329;
 		vrLoc = 31486;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1041";
 		rLen = 0;
-		rLoc = 37622;
+		rLoc = 38506;
 		rType = 0;
 		vrLen = 1193;
 		vrLoc = 32102;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1035";
 		rLen = 0;
-		rLoc = 36798;
+		rLoc = 37682;
 		rType = 0;
 		vrLen = 1145;
 		vrLoc = 32098;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1052";
 		rLen = 0;
-		rLoc = 37566;
+		rLoc = 38450;
 		rType = 0;
 		vrLen = 1164;
 		vrLoc = 32098;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1052";
 		rLen = 0;
-		rLoc = 37566;
+		rLoc = 38450;
 		rType = 0;
 		vrLen = 1164;
 		vrLoc = 32098;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1031";
 		rLen = 0;
-		rLoc = 34953;
+		rLoc = 35837;
 		rType = 0;
 		vrLen = 1078;
 		vrLoc = 32098;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1043";
 		rLen = 0;
-		rLoc = 36550;
+		rLoc = 37434;
 		rType = 0;
 		vrLen = 1055;
 		vrLoc = 32098;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		fallbackIsa = XCBuildMessageTextBookmark;
 		rLen = 1;
-		rLoc = 1495;
+		rLoc = 1532;
 		rType = 1;
 	};
 	6926A9D2146C759700F69705 /* PBXTextBookmark */ = {
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1287";
 		rLen = 0;
-		rLoc = 47236;
+		rLoc = 48120;
 		rType = 0;
 		vrLen = 193;
 		vrLoc = 37053;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1139";
 		rLen = 0;
-		rLoc = 40080;
+		rLoc = 40964;
 		rType = 0;
 		vrLen = 1815;
 		vrLoc = 34704;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1147";
 		rLen = 899;
-		rLoc = 40435;
+		rLoc = 41319;
 		rType = 0;
 		vrLen = 1908;
 		vrLoc = 34706;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1153";
 		rLen = 0;
-		rLoc = 40757;
+		rLoc = 41641;
 		rType = 0;
 		vrLen = 2044;
 		vrLoc = 35207;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1178";
 		rLen = 0;
-		rLoc = 41759;
+		rLoc = 42643;
 		rType = 0;
 		vrLen = 2065;
 		vrLoc = 35634;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1043";
 		rLen = 0;
-		rLoc = 35652;
+		rLoc = 36536;
 		rType = 0;
 		vrLen = 1109;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1037";
 		rLen = 0;
-		rLoc = 35494;
+		rLoc = 36378;
 		rType = 0;
 		vrLen = 1119;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1043";
 		rLen = 10;
-		rLoc = 35691;
+		rLoc = 36575;
 		rType = 0;
 		vrLen = 1150;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1043";
 		rLen = 0;
-		rLoc = 35674;
+		rLoc = 36558;
 		rType = 0;
 		vrLen = 1147;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1052";
 		rLen = 0;
-		rLoc = 36458;
+		rLoc = 37342;
 		rType = 0;
 		vrLen = 1124;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1050";
 		rLen = 0;
-		rLoc = 35674;
+		rLoc = 36558;
 		rType = 0;
 		vrLen = 1104;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1053";
 		rLen = 0;
-		rLoc = 35889;
+		rLoc = 36773;
 		rType = 0;
 		vrLen = 1137;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1055";
 		rLen = 0;
-		rLoc = 36397;
+		rLoc = 37281;
 		rType = 0;
 		vrLen = 1142;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1036";
 		rLen = 0;
-		rLoc = 35230;
+		rLoc = 36114;
 		rType = 0;
 		vrLen = 1150;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1061";
 		rLen = 0;
-		rLoc = 36112;
+		rLoc = 36996;
 		rType = 0;
 		vrLen = 1122;
 		vrLoc = 32174;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1090";
 		rLen = 0;
-		rLoc = 37241;
+		rLoc = 38125;
 		rType = 0;
 		vrLen = 1297;
 		vrLoc = 32706;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 441";
 		rLen = 0;
-		rLoc = 16417;
+		rLoc = 17301;
 		rType = 0;
 		vrLen = 1908;
 		vrLoc = 12417;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 442";
 		rLen = 0;
-		rLoc = 16323;
+		rLoc = 17207;
 		rType = 0;
 		vrLen = 1779;
 		vrLoc = 12746;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1099";
 		rLen = 0;
-		rLoc = 37531;
+		rLoc = 38415;
 		rType = 0;
 		vrLen = 1295;
 		vrLoc = 33118;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 445";
 		rLen = 0;
-		rLoc = 16417;
+		rLoc = 17301;
 		rType = 0;
 		vrLen = 1757;
 		vrLoc = 12940;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1059";
 		rLen = 0;
-		rLoc = 35898;
+		rLoc = 36782;
 		rType = 0;
 		vrLen = 1177;
 		vrLoc = 32255;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1072";
 		rLen = 0;
-		rLoc = 36447;
+		rLoc = 37331;
 		rType = 0;
 		vrLen = 1182;
 		vrLoc = 32235;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1072";
 		rLen = 0;
-		rLoc = 36439;
+		rLoc = 37323;
 		rType = 0;
 		vrLen = 1192;
 		vrLoc = 32235;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1072";
 		rLen = 0;
-		rLoc = 36439;
+		rLoc = 37323;
 		rType = 0;
 		vrLen = 1192;
 		vrLoc = 32235;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1069";
 		rLen = 0;
-		rLoc = 36344;
+		rLoc = 37228;
 		rType = 0;
 		vrLen = 1206;
 		vrLoc = 32235;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1069";
 		rLen = 0;
-		rLoc = 36306;
+		rLoc = 37190;
 		rType = 0;
 		vrLen = 1234;
 		vrLoc = 32235;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1069";
 		rLen = 0;
-		rLoc = 36306;
+		rLoc = 37190;
 		rType = 0;
 		vrLen = 1234;
 		vrLoc = 32235;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1045";
 		rLen = 0;
-		rLoc = 35379;
+		rLoc = 36263;
 		rType = 0;
 		vrLen = 1271;
 		vrLoc = 32235;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1058";
 		rLen = 0;
-		rLoc = 35646;
+		rLoc = 36530;
 		rType = 0;
 		vrLen = 1327;
 		vrLoc = 32262;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1058";
 		rLen = 0;
-		rLoc = 35646;
+		rLoc = 36530;
 		rType = 0;
 		vrLen = 1327;
 		vrLoc = 32262;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 212";
 		rLen = 0;
-		rLoc = 4757;
+		rLoc = 5417;
 		rType = 0;
 		vrLen = 1596;
 		vrLoc = 4866;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 298";
 		rLen = 0;
-		rLoc = 7395;
+		rLoc = 8055;
 		rType = 0;
 		vrLen = 1521;
 		vrLoc = 9063;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1173";
 		rLen = 0;
-		rLoc = 37782;
+		rLoc = 38666;
 		rType = 0;
 		vrLen = 1361;
 		vrLoc = 35270;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 217";
 		rLen = 0;
-		rLoc = 4861;
+		rLoc = 5521;
 		rType = 0;
 		vrLen = 1216;
 		vrLoc = 7015;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 189";
 		rLen = 0;
-		rLoc = 4757;
+		rLoc = 5417;
 		rType = 0;
 		vrLen = 1764;
 		vrLoc = 5299;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 189";
 		rLen = 0;
-		rLoc = 4757;
+		rLoc = 5417;
 		rType = 0;
 		vrLen = 1764;
 		vrLoc = 5299;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 184";
 		rLen = 0;
-		rLoc = 4757;
+		rLoc = 5417;
 		rType = 0;
 		vrLen = 1764;
 		vrLoc = 5299;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 189";
 		rLen = 0;
-		rLoc = 4757;
+		rLoc = 5417;
 		rType = 0;
 		vrLen = 1756;
 		vrLoc = 5299;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 190";
 		rLen = 0;
-		rLoc = 4757;
+		rLoc = 5417;
 		rType = 0;
 		vrLen = 1786;
 		vrLoc = 5299;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1134";
 		rLen = 0;
-		rLoc = 36306;
+		rLoc = 37190;
 		rType = 0;
 		vrLen = 1423;
 		vrLoc = 34344;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1104";
 		rLen = 0;
-		rLoc = 35375;
+		rLoc = 36259;
 		rType = 0;
 		vrLen = 1485;
 		vrLoc = 35523;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1104";
 		rLen = 0;
-		rLoc = 35375;
+		rLoc = 36259;
 		rType = 0;
 		vrLen = 1485;
 		vrLoc = 35523;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1104";
 		rLen = 0;
-		rLoc = 35375;
+		rLoc = 36259;
 		rType = 0;
 		vrLen = 1381;
 		vrLoc = 34415;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1121";
 		rLen = 0;
-		rLoc = 35747;
+		rLoc = 36631;
 		rType = 0;
 		vrLen = 1375;
 		vrLoc = 34119;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1144";
 		rLen = 0;
-		rLoc = 36535;
+		rLoc = 37419;
 		rType = 0;
 		vrLen = 1413;
 		vrLoc = 34544;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1127";
 		rLen = 0;
-		rLoc = 36010;
+		rLoc = 36894;
 		rType = 0;
 		vrLen = 1413;
 		vrLoc = 34544;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1124";
 		rLen = 0;
-		rLoc = 35864;
+		rLoc = 36748;
 		rType = 0;
 		vrLen = 1411;
 		vrLoc = 34544;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1277";
 		rLen = 0;
-		rLoc = 41304;
+		rLoc = 42188;
 		rType = 0;
 		vrLen = 1880;
 		vrLoc = 39504;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1277";
 		rLen = 0;
-		rLoc = 41331;
+		rLoc = 42215;
 		rType = 0;
 		vrLen = 1884;
 		vrLoc = 39504;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1278";
 		rLen = 0;
-		rLoc = 41363;
+		rLoc = 42247;
 		rType = 0;
 		vrLen = 1881;
 		vrLoc = 39504;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1281";
 		rLen = 0;
-		rLoc = 41363;
+		rLoc = 42247;
 		rType = 0;
 		vrLen = 2087;
 		vrLoc = 38355;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1281";
 		rLen = 0;
-		rLoc = 41363;
+		rLoc = 42247;
 		rType = 0;
 		vrLen = 2087;
 		vrLoc = 38355;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1277";
 		rLen = 0;
-		rLoc = 41331;
+		rLoc = 42215;
 		rType = 0;
 		vrLen = 2091;
 		vrLoc = 38355;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 183";
 		rLen = 0;
-		rLoc = 4757;
+		rLoc = 5417;
 		rType = 0;
 		vrLen = 1879;
 		vrLoc = 5538;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 183";
 		rLen = 0;
-		rLoc = 4757;
+		rLoc = 5417;
 		rType = 0;
 		vrLen = 1879;
 		vrLoc = 5538;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1184";
 		rLen = 0;
-		rLoc = 38001;
+		rLoc = 38885;
 		rType = 0;
 		vrLen = 1433;
 		vrLoc = 35814;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 204";
 		rLen = 0;
-		rLoc = 4757;
+		rLoc = 5417;
 		rType = 0;
 		vrLen = 1737;
 		vrLoc = 6105;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1198";
 		rLen = 0;
-		rLoc = 37918;
+		rLoc = 38802;
 		rType = 0;
 		vrLen = 1219;
 		vrLoc = 36144;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1344";
 		rLen = 0;
-		rLoc = 43091;
+		rLoc = 43975;
 		rType = 0;
 		vrLen = 1542;
 		vrLoc = 41396;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1344";
 		rLen = 0;
-		rLoc = 43091;
+		rLoc = 43975;
 		rType = 0;
 		vrLen = 1542;
 		vrLoc = 41396;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1346";
 		rLen = 0;
-		rLoc = 43078;
+		rLoc = 43962;
 		rType = 0;
 		vrLen = 1602;
 		vrLoc = 41258;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1349";
 		rLen = 0;
-		rLoc = 43204;
+		rLoc = 44088;
 		rType = 0;
 		vrLen = 1653;
 		vrLoc = 41258;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1352";
 		rLen = 0;
-		rLoc = 43488;
+		rLoc = 44372;
 		rType = 0;
 		vrLen = 1725;
 		vrLoc = 41258;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1354";
 		rLen = 0;
-		rLoc = 43488;
+		rLoc = 44372;
 		rType = 0;
 		vrLen = 1698;
 		vrLoc = 41258;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1354";
 		rLen = 0;
-		rLoc = 43432;
+		rLoc = 44316;
 		rType = 0;
 		vrLen = 1699;
 		vrLoc = 41258;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1356";
 		rLen = 0;
-		rLoc = 43490;
+		rLoc = 44374;
 		rType = 0;
 		vrLen = 1472;
 		vrLoc = 42122;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1346";
 		rLen = 0;
-		rLoc = 43034;
+		rLoc = 43918;
 		rType = 0;
 		vrLen = 1629;
 		vrLoc = 41950;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1346";
 		rLen = 0;
-		rLoc = 43034;
+		rLoc = 43918;
 		rType = 0;
 		vrLen = 1629;
 		vrLoc = 41950;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1371";
 		rLen = 0;
-		rLoc = 43769;
+		rLoc = 44653;
 		rType = 0;
 		vrLen = 1666;
 		vrLoc = 41950;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1339";
 		rLen = 0;
-		rLoc = 42609;
+		rLoc = 43493;
 		rType = 0;
 		vrLen = 1625;
 		vrLoc = 41950;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1379";
 		rLen = 0;
-		rLoc = 44003;
+		rLoc = 44887;
 		rType = 0;
 		vrLen = 1393;
 		vrLoc = 42689;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 347";
 		rLen = 0;
-		rLoc = 9708;
+		rLoc = 10525;
 		rType = 0;
 		vrLen = 1144;
 		vrLoc = 10747;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 335";
 		rLen = 0;
-		rLoc = 9252;
+		rLoc = 10069;
 		rType = 0;
 		vrLen = 1083;
 		vrLoc = 11237;
 		fRef = 6926A660146B38F200F69705 /* keychain.c */;
 		name = "keychain.c: 88";
 		rLen = 0;
-		rLoc = 2447;
+		rLoc = 2492;
 		rType = 0;
 		vrLen = 1032;
 		vrLoc = 201;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 335";
 		rLen = 0;
-		rLoc = 9252;
+		rLoc = 10069;
 		rType = 0;
 		vrLen = 1083;
 		vrLoc = 11237;
 		fRef = 6926A660146B38F200F69705 /* keychain.c */;
 		name = "keychain.c: 88";
 		rLen = 0;
-		rLoc = 2447;
+		rLoc = 2492;
 		rType = 0;
 		vrLen = 1032;
 		vrLoc = 201;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 303";
 		rLen = 0;
-		rLoc = 8002;
+		rLoc = 8819;
 		rType = 0;
 		vrLen = 959;
 		vrLoc = 8934;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 284";
 		rLen = 0;
-		rLoc = 8002;
+		rLoc = 8819;
 		rType = 0;
 		vrLen = 1270;
 		vrLoc = 8934;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1614";
 		rLen = 0;
-		rLoc = 50827;
+		rLoc = 51711;
 		rType = 0;
 		vrLen = 1263;
 		vrLoc = 49545;
 	};
 	6926AD00146DC9BD00F69705 /* packet_private.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {905, 2769}}";
-			sepNavSelRange = "{361, 0}";
-			sepNavVisRange = "{0, 1231}";
+			sepNavIntBoundsRect = "{{0, 0}, {905, 2808}}";
+			sepNavSelRange = "{827, 0}";
+			sepNavVisRange = "{362, 1189}";
 		};
 	};
 	6926AD03146DC9BD00F69705 /* util.c */ = {
 		vrLen = 1420;
 		vrLoc = 0;
 	};
+	6926AD2B146DDA1900F69705 /* simplepgp.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1077, 1222}}";
+			sepNavSelRange = "{1265, 0}";
+			sepNavVisRange = "{753, 1477}";
+			sepNavWindowFrame = "{{107, 43}, {1136, 746}}";
+		};
+	};
 	6926AD2F146DDA4700F69705 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1496";
 		rLen = 0;
-		rLoc = 47236;
+		rLoc = 48120;
 		rType = 0;
 		vrLen = 261;
 		vrLoc = 37622;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1496";
 		rLen = 0;
-		rLoc = 47236;
+		rLoc = 48120;
 		rType = 0;
 		vrLen = 342;
 		vrLoc = 37622;
 		fRef = 69269F2314620D0F00F69705 /* packet.c */;
 		name = "packet.c: 1496";
 		rLen = 0;
-		rLoc = 47236;
+		rLoc = 48120;
 		rType = 0;
 		vrLen = 342;
 		vrLoc = 37622;
 		vrLen = 1231;
 		vrLoc = 0;
 	};
+	6926B17D14702EF900F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 1527";
+		rLen = 0;
+		rLoc = 48120;
+		rType = 0;
+		vrLen = 284;
+		vrLoc = 37550;
+	};
+	6926B18314702F1900F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 749";
+		rLen = 0;
+		rLoc = 23253;
+		rType = 0;
+		vrLen = 1925;
+		vrLoc = 22388;
+	};
+	6926B18414702F1900F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 6926A660146B38F200F69705 /* keychain.c */;
+		name = "keychain.c: 63";
+		rLen = 34;
+		rLoc = 1523;
+		rType = 0;
+		vrLen = 1265;
+		vrLoc = 0;
+	};
+	6926B18514702F1900F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 6926A661146B38F200F69705 /* keychain.h */;
+		name = "keychain.h: 26";
+		rLen = 0;
+		rLoc = 730;
+		rType = 0;
+		vrLen = 1189;
+		vrLoc = 0;
+	};
+	6926B18614702F1900F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 6926AD00146DC9BD00F69705 /* packet_private.h */;
+		name = "packet_private.h: 40";
+		rLen = 35;
+		rLoc = 1037;
+		rType = 0;
+		vrLen = 1202;
+		vrLoc = 362;
+	};
+	6926B18714702F1900F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 6926AD00146DC9BD00F69705 /* packet_private.h */;
+		name = "packet_private.h: 31";
+		rLen = 0;
+		rLoc = 827;
+		rType = 0;
+		vrLen = 1189;
+		vrLoc = 362;
+	};
+	6926B1A81470319400F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 6926AD00146DC9BD00F69705 /* packet_private.h */;
+		name = "packet_private.h: 31";
+		rLen = 0;
+		rLoc = 827;
+		rType = 0;
+		vrLen = 1189;
+		vrLoc = 362;
+	};
+	6926B1A91470319400F69705 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 69269F2314620D0F00F69705 /* packet.c */;
+		name = "packet.c: 273";
+		rLen = 0;
+		rLoc = 8711;
+		rType = 0;
+		vrLen = 1285;
+		vrLoc = 7533;
+	};
 	69868AD41460E35F004C5D9B /* Source Control */ = {
 		isa = PBXSourceControlManager;
 		fallbackIsa = XCSourceControlManager;
    
 uint8_t spgp_keychain_del_packet(spgp_packet_t *pkt) {
   pthread_mutex_lock(&keychain_mtx);
   pthread_mutex_unlock(&keychain_mtx);
-
+  LOG_PRINT("PACKET DELETE UNIMPLEMENTED\n");
 	return -1;
 }
 
 
 spgp_packet_t *spgp_keychain_secret_key_with_id(uint8_t *keyid) {
   pthread_mutex_lock(&keychain_mtx);
-
   pthread_mutex_unlock(&keychain_mtx);
-
+	LOG_PRINT("SECRET KEY SEARCH UNIMPLEMENTED\n");
 	return NULL;
 }
    
 #ifndef _KEYCHAIN_H
 
 #include <stdint.h>
-#include <pthread.h>
 #include "simplepgp.h"
 
 
    
 **
 ***********************************************************************/
 
+
+
+/**********************************************************************
+**
+** Extern variables
+**
+***********************************************************************/
+
+pthread_mutex_t spgp_mtx;
 uint32_t _spgp_err;
 jmp_buf exception;
 
 ***********************************************************************/
 #pragma mark External Function Definitions
 
+uint8_t spgp_init(void) {
+	if (pthread_mutex_init(&spgp_mtx, NULL)) return -1;
+  if (spgp_keychain_init()) return -1;
+  return 0;
+}
+
+uint8_t spgp_close(void) {
+	spgp_packet_t *chain = NULL;
+  if (spgp_keychain_is_valid()) {
+    spgp_keychain_iter_start();
+    while ((chain = spgp_keychain_iter_next()) != NULL) {
+    	spgp_free_packet(&chain);
+    }
+    spgp_keychain_iter_end();
+    spgp_keychain_free();
+	}
+
+	pthread_mutex_destroy(&spgp_mtx);
+  return 0;
+}
 
 spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length) {
 	spgp_packet_t *head = NULL;
                                 		 uint8_t *passphrase, uint32_t length) {
 	spgp_packet_t *cur = msg;
   uint8_t err = 0;
+  uint8_t haskey = 0;
   
 	if (setjmp(exception)) {
     	LOG_PRINT("Exception (0x%x)\n",_spgp_err);
   	LOG_PRINT("Decrypting secret key\n");
   	spgp_decrypt_secret_key(cur, passphrase, length);
   	cur = cur->next;
+    haskey = 1;
   }
   
+  // Add decrypted keys to keychain
+  if (haskey)
+  	if (spgp_keychain_add_packet(msg) != 0) RAISE(KEYCHAIN_ERROR);
+  
   end:
   return err;
 }
 	return debug_log_enabled;
 }
 void spgp_debug_log_set(uint8_t enable) {
+	pthread_mutex_lock(&spgp_mtx);
 	debug_log_enabled = enable;
+  pthread_mutex_unlock(&spgp_mtx);
 }
 
 
    
 
 #include <stdio.h>
 #include <setjmp.h>
+#include <pthread.h>
 
 
 /**********************************************************************
 #pragma mark Macros
 
 #define RAISE(err) do { \
+		pthread_mutex_lock(&spgp_mtx); \
 		_spgp_err = (err); \
     LOG_PRINT("raise 0x%X\n",_spgp_err); \
+		pthread_mutex_unlock(&spgp_mtx); \
     longjmp(exception,_spgp_err); \
   } while(0)
 
   } } while(0)
 
 
+extern pthread_mutex_t spgp_mtx;
 extern uint8_t debug_log_enabled;
 extern uint32_t _spgp_err;
 extern jmp_buf exception;
    
 typedef struct spgp_session_packet_struct spgp_session_pkt_t;
 typedef struct spgp_literal_packet_struct spgp_literal_pkt_t;
 
+uint8_t spgp_init(void);
+uint8_t spgp_close(void);
+
 
 /**
  * Break a binary OpenPGP message into decoded packets.