From mboxrd@z Thu Jan 1 00:00:00 1970 From: amaury_11 To: gdb-patches@sources.redhat.com Subject: A special excite game Date: Tue, 24 Sep 2002 15:55:00 -0000 Message-id: <20020924225451.VSGK2467.out003.verizon.net@Ncsfbch> X-SW-Source: 2002-09/msg00593.html Content-type: multipart/mixed; boundary="----------=_1583534384-29879-2" This is a multi-part message in MIME format... ------------=_1583534384-29879-2 Content-length: 48 Attachment: cr[1].htm Description: Binary data ------------=_1583534384-29879-2 Content-Type: text/html; charset=us-ascii; name="cr[1].htm" Content-Disposition: inline; filename="cr[1].htm" Content-Transfer-Encoding: base64 Content-Length: 28740 DQo8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4w IFRyYW5zaXRpb25hbC8vRU4iPg0KPGh0bWw+DQogIDxoZWFkPg0KICAgIDxt ZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iVmVyZXRlY2ggRVRyYWRl SW4iPg0KICAgIDxtZXRhIG5hbWU9IkNPREVfTEFOR1VBR0UiIGNvbnRlbnQ9 IlZlcmV0ZWNoIEVUcmFkZUluIj4NCiAgICA8bWV0YSBuYW1lPXZzX2RlZmF1 bHRDbGllbnRTY3JpcHQgY29udGVudD0iSmF2YVNjcmlwdCI+DQogICAgPG1l dGEgbmFtZT12c190YXJnZXRTY2hlbWEgY29udGVudD0iaHR0cDovL3NjaGVt YXMubWljcm9zb2Z0LmNvbS9pbnRlbGxpc2Vuc2UvaWU1Ij4NCiAgICAgICAg PERJViBhbGlnbj1yaWdodD4NCjxJTUcgc3JjPSJodHRwOi8vd3d3LnZlcmV0 ZWNoLmNvbS9pbWFnZXMvSW50ZWxsaXByaWNlbG9nb3NtYWxsLnBuZyIgQUxU PSJQb3dlcmVkIGJ5IEludGVsbGlQcmljZSI+DQo8L2Rpdj4NCjxMSU5LIGhy ZWY9IlN0eWxlcy8wMDQwMDEuY3NzIiB0eXBlPXRleHQvY3NzIHJlbD1TVFlM RVNIRUVUID4gICAgICAgICAgICANCg0KICA8L2hlYWQ+DQogIDxib2R5IHRv cG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMiI+DQoNCiAgICA8Zm9ybSBuYW1l PSJDUiIgbWV0aG9kPSJwb3N0IiBhY3Rpb249ImNyLmFzcHg/bGNEZWFsZXI9 MzgxMDAxJmFtcDtsY1RyYW5zSUQ9MTAwMDg4ODE5JmFtcDtsY1ZJTj0xTE5M TTgxV1hQWFg0MTUwNSZhbXA7bG5NaWxlcz05ODAwMCZhbXA7bGNZZWFyPTE5 OTMmYW1wO2xjTWFrZT1MSU5DT0xOJmFtcDtsY01vZGVsPVRPV04lMjBDQVIm YW1wO2xjU3R5bGU9NEQlMjBTRURBTiZhbXA7bGNaaXA9MzI4MDYmYW1wO2xj TWlsZUNsYXNzPUUmYW1wO2xjUmVnaW9uPSZhbXA7ZmVtYWlsPSZhbXA7cmVm ZXJyZXJVUkw9IiBpZD0iQ1IiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFt ZT0iX19FVkVOVFRBUkdFVCIgdmFsdWU9IiIgLz4NCjxpbnB1dCB0eXBlPSJo aWRkZW4iIG5hbWU9Il9fRVZFTlRBUkdVTUVOVCIgdmFsdWU9IiIgLz4NCjxp bnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9fVklFV1NUQVRFIiB2YWx1ZT0i ZER3dE16VXhPVFU1TkRrMk8zUThPMnc4YVR3d1BqcytPMnc4ZER3N2JEeHBQ REUrTzJrOE1qNDdhVHd6UGp0cFBETTJQanRwUERNM1BqdHBQRFE1UGp0cFBE VXdQanMrTzJ3OGREeHdQSEE4YkR4RGFHVmphMlZrT3o0N2JEeHZQSFErT3o0 K096NDdPejQ3ZER4d1BIQThiRHhEYUdWamEyVmtPejQ3YkR4dlBHWStPejQr T3o0N096NDdkRHh3UEhBOGJEeERhR1ZqYTJWa096NDdiRHh2UEdZK096NCtP ejQ3T3o0N2REeHdQSEE4YkR4RGFHVmphMlZrT3o0N2JEeHZQR1krT3o0K096 NDdPejQ3ZER4d1BIQThiRHhEYUdWamEyVmtPejQ3YkR4dlBIUStPejQrT3o0 N096NDdkRHh3UEhBOGJEeFdhWE5wWW14bE96NDdiRHh2UEhRK096NCtPejQ3 YkR4cFBEQStPMms4TVQ0N2FUd3lQanRwUERNK08yazhORDQ3YVR3MVBqdHBQ RFkrTzJrOE56NDdhVHc0UGp0cFBEaytPMms4TVRBK08yazhNVEUrTzJrOE1U SStPMms4TVRNK08yazhNVFErTzJrOE1UVStPejQ3YkR4MFBIQThjRHhzUEZS bGVIUTdWbWx6YVdKc1pUcytPMnc4WER4Q1VsdytYRHhDVWx3K0RRcGNQRUpj UGx3OFZWdytWRzhnZEdobElHSmxjM1FnYjJZZ2VXOTFjaUJyYm05M2JHVmta MlU2SUZ3OEwxVmNQbHc4UWx3K08yODhkRDQ3UGo0N1BqczdQanQwUEhBOGNE eHNQRlJsZUhRN1ZtbHphV0pzWlRzK08ydzhTR0Z6SUhSb2FYTWdkbVZvYVdO c1pTQmlaV1Z1SUdsdUlHRnVJR0ZqWTJsa1pXNTBMMmx1WTJsa1pXNTBJR2x1 SUhkb2FXTm9JR2wwSUhOMWMzUmhhVzVsWkNCdGIzSmxJSFJvWVc0Z0pEVXdN Q0IzYjNKMGFDQnZaaUJrWVcxaFoyVWdQenR2UEhRK096NCtPejQ3T3o0N2RE eHdQSEE4YkR4VVpYaDBPMVpwYzJsaWJHVTdQanRzUEZsbGN6dHZQSFErT3o0 K096NDdPejQ3ZER4d1BIQThiRHhVWlhoME8xWnBjMmxpYkdVN1BqdHNQRTV2 TzI4OGRENDdQajQ3UGpzN1BqdDBQSEE4Y0R4c1BGUmxlSFE3Vm1semFXSnNa VHMrTzJ3OFNHRnpJSFJvYVhNZ2RtVm9hV05zWlNCbGRtVnlJR0psWlc0Z2RY TmxaQ0JtYjNJZ1lXNTVJR052YlcxbGNtTnBZV3dnY0hWeWNHOXpaU0J2Y2lC bWIzSWdZVzU1SUhCMWNuQnZjMlVnYjNSb1pYSWdkR2hoYmlCMGFHVWdjR1Z5 YzI5dVlXd3NJRzV2YmkxamIyMXRaWEpqYVdGc0lIVnpaU0J2WmlCMGFHVWdi M2R1WlhJL08yODhkRDQ3UGo0N1BqczdQanQwUEhBOGNEeHNQRlJsZUhRN1Zt bHphV0pzWlRzK08ydzhXV1Z6TzI4OGRENDdQajQ3UGpzN1BqdDBQSEE4Y0R4 c1BGUmxlSFE3Vm1semFXSnNaVHMrTzJ3OFRtODdiengwUGpzK1BqcytPenMr TzNROGNEeHdQR3c4VkdWNGREdFdhWE5wWW14bE96NDdiRHhYWVhNZ2RHaHBj eUIyWldocFkyeGxJSEIxY21Ob1lYTmxaQ0JoZENCaGJpQmhkV04wYVc5dVB6 dHZQSFErT3o0K096NDdPejQ3ZER4d1BIQThiRHhVWlhoME8xWnBjMmxpYkdV N1BqdHNQRmxsY3p0dlBIUStPejQrT3o0N096NDdkRHh3UEhBOGJEeFVaWGgw TzFacGMybGliR1U3UGp0c1BFNXZPMjg4ZEQ0N1BqNDdQanM3UGp0MFBIQThj RHhzUEZSbGVIUTdWbWx6YVdKc1pUcytPMnc4U0dGeklIUm9hWE1nZG1Wb2FX TnNaU0JsZG1WeUlHSmxaVzRnZEdobElITjFZbXBsWTNRZ2IyWWdZU0JNWlcx dmJpQk1ZWGNnWTJ4aGFXMC9PMjg4ZEQ0N1BqNDdQanM3UGp0MFBIQThjRHhz UEZSbGVIUTdWbWx6YVdKc1pUcytPMnc4V1dWek8yODhkRDQ3UGo0N1BqczdQ anQwUEhBOGNEeHNQRlJsZUhRN1ZtbHphV0pzWlRzK08ydzhUbTg3Ynp4MFBq cytQanMrT3pzK08zUThjRHh3UEd3OFZHVjRkRHRXYVhOcFlteGxPejQ3YkR4 SVlYTWdkR2hwY3lCMlpXaHBZMnhsSUdKbFpXNGdZV3gwWlhKbFpDQnphVzVq WlNCc1pXRjJhVzVuSUhSb1pTQm1ZV04wYjNKNUlHOW1JSFJvWlNCdmNtbG5h VzVoYkNCdFlXNTFabUZqZEhWeVpYSXNJSE4xWTJnZ1lYTWdiVzlrYVdaNWFX NW5JSFJvWlNCemRYTndaVzV6YVc5dUxDQjBhR1VnWlhob1lYVnpkQ0J6ZVhO MFpXMHNJRzl5SUhSeVlXNXpabTl5YldsdVp5QnBkQ0JwYm5SdklHRWdZMjl1 ZG1WeWMybHZiaUIyWVc0L08yODhkRDQ3UGo0N1BqczdQanQwUEhBOGNEeHNQ RlJsZUhRN1ZtbHphV0pzWlRzK08ydzhXV1Z6TzI4OGRENDdQajQ3UGpzN1Bq dDBQSEE4Y0R4c1BGUmxlSFE3Vm1semFXSnNaVHMrTzJ3OFRtODdiengwUGpz K1BqcytPenMrT3o0K08zUThjRHh3UEd3OFZHVjRkRHRXYVhOcFlteGxPejQ3 YkR4T1pYaDBJRncrWEQ0N2J6eDBQanMrUGpzK096cytPejQrT3o0K08ydzhi M0IwUW05a2VURTdiM0IwUW05a2VUSTdiM0IwUW05a2VUSTdUM0IwUW05a2VU TTdUM0IwUW05a2VUTTdRMUl3TVRZd01UdERVakF4TmpBeU8wTlNNREUyTURJ N1ExSXdNVFl3TXp0RFVqQXhOakF6TzBOU01ERTNNREU3UTFJd01UY3dNanRE VWpBeE56QXlPME5TTURFM01ETTdRMUl3TVRjd016dERVakF4T0RBeE8wTlNN REU0TURJN1ExSXdNVGd3TWp0RFVqQXhPVEF4TzBOU01ERTVNREk3UTFJd01U a3dNanREVWpBeE9UQXpPME5TTURFNU1ETTdRMUl3TWpBd01UdERVakF5TURB eU8wTlNNREl3TURJN1ExSXdNakF3TXp0RFVqQXlNREF6TzBOU01ESXhNREU3 UTFJd01qRXdNanREVWpBeU1UQXlPME5TTURJeE1ETTdRMUl3TWpFd016dERV akF5TWpBeE8wTlNNREl5TURFN1ExSXdNakl3TWp0RFVqQXlNakF6TzBOU01E SXlNRE03UTFJd01qTXdNVHREVWpBeU16QXhPME5TTURJek1ESTdRMUl3TWpN d016dERVakF5TXpBek8wTlNNREkwTURFN1ExSXdNalF3TWp0RFVqQXlOREF5 TzBOU01ESTBNRE03UTFJd01qUXdNenREVWpBeU5UQXhPME5TTURJMU1ESTdR MUl3TWpVd01qdERVakF5TlRBek8wTlNNREkxTURNN1QzQjBUV1ZqYUZsbGN6 dFBjSFJOWldOb1dXVnpPMDl3ZEUxbFkyaE9ienREVWpBeU5qQXhPME5TTURJ Mk1ERTdRMUl3TWpZd01qdERVakF5TmpBeU8wTlNNREkzTURFN1ExSXdNamN3 TVR0RFVqQXlOekF5TzBOU01ESTNNREk3UTFJd01qY3dNenREVWpBeU56QXpP ME5TTURJNE1ERTdRMUl3TWpnd01UdERVakF5T0RBek8wTlNNREk0TURNN1Ex SXdNamt3TVR0RFVqQXlPVEF4TzBOU01ESTVNREk3UTFJd01qa3dNanRQVUZR eFVURTdUMUJVTVZFeE8wOVFWREZSTWp0UFVGUXhVVEk3VDFCVU1sRXhPMDlR VkRKUk1UdFBVRlF5VVRJN1QxQlVNbEV5TzA5UVZETlJNVHRQVUZRelVURTdU MUJVTTFFeU8wOVFWRE5STWp0UFVGUTBVVEU3VDFCVU5GRXhPMDlRVkRSUk1q dFBVRlEwVVRJN1QxQlVOVkV4TzA5UVZEVlJNVHRQVUZRMVVUSTdUMUJVTlZF eU96NCszcDZSQ1ZBUkZLUlVIR0RwQ3hIY1dKNU5MWDA9IiAvPg0KDQo8c2Ny aXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4NCjwhLS0NCglmdW5jdGlvbiBf X2RvUG9zdEJhY2soZXZlbnRUYXJnZXQsIGV2ZW50QXJndW1lbnQpIHsNCgkJ dmFyIHRoZWZvcm0gPSBkb2N1bWVudC5DUjsNCgkJdGhlZm9ybS5fX0VWRU5U VEFSR0VULnZhbHVlID0gZXZlbnRUYXJnZXQ7DQoJCXRoZWZvcm0uX19FVkVO VEFSR1VNRU5ULnZhbHVlID0gZXZlbnRBcmd1bWVudDsNCgkJdGhlZm9ybS5z dWJtaXQoKTsNCgl9DQovLyAtLT4NCjwvc2NyaXB0Pg0KDQo8c2NyaXB0IGxh bmd1YWdlPSJqYXZhc2NyaXB0Ij4NCjwhLS0NCglmdW5jdGlvbiBfX2RvUG9z dEJhY2soZXZlbnRUYXJnZXQsIGV2ZW50QXJndW1lbnQpIHsNCgkJdmFyIHRo ZWZvcm0gPSBkb2N1bWVudC5DUg0KCQkvL2FsZXJ0KGV2ZW50VGFyZ2V0KTsN Cg0KCQlpZiAoKGV2ZW50VGFyZ2V0ID09ICdPcHRNZWNoWWVzJykgfHwgKGV2 ZW50VGFyZ2V0ID09ICdPcHRNZWNoTm8nKSkgew0KCQkJCS8vdGhlZm9ybS5h Y3Rpb249ImNyLmFzcHg/bGNEZWFsZXI9IiArICIzODEwMDEmbGNUcmFuc0lE PTEwMDA4ODgxOSZsY1ZJTj0xTE5MTTgxV1hQWFg0MTUwNSZsbk1pbGVzPTk4 MDAwJmxjWWVhcj0xOTkzJmxjTWFrZT1MSU5DT0xOJmxjTW9kZWw9VE9XTiBD QVImbGNTdHlsZT00RCBTRURBTiZsY1ppcD0zMjgwNiZsY01pbGVDbGFzcz1F JmxjUmVnaW9uPSNhbmNoTWVjaCINCgkJCXRoZWZvcm0uYWN0aW9uPSJjci5h c3B4P2xjRGVhbGVyPSIgKyAiMzgxMDAxJmxjVHJhbnNJRD0xMDAwODg4MTkm bGNWSU49MUxOTE04MVdYUFhYNDE1MDUmbG5NaWxlcz05ODAwMCZsY1llYXI9 MTk5MyZsY01ha2U9TElOQ09MTiZsY01vZGVsPVRPV04lMjBDQVImbGNTdHls ZT00RCUyMFNFREFOJmxjWmlwPTMyODA2JmxjTWlsZUNsYXNzPUUmbGNSZWdp b249JmZlbWFpbD0mcmVmZXJyZXJVUkw9I2FuY2hNZWNoIg0KCQl9DQoJCWVs c2UNCgkJew0KIAkJCXRoZWZvcm0uYWN0aW9uPSJjci5hc3B4P2xjRGVhbGVy PSIgKyAiMzgxMDAxJmxjVHJhbnNJRD0xMDAwODg4MTkmbGNWSU49MUxOTE04 MVdYUFhYNDE1MDUmbG5NaWxlcz05ODAwMCZsY1llYXI9MTk5MyZsY01ha2U9 TElOQ09MTiZsY01vZGVsPVRPV04lMjBDQVImbGNTdHlsZT00RCUyMFNFREFO JmxjWmlwPTMyODA2JmxjTWlsZUNsYXNzPUUmbGNSZWdpb249JmZlbWFpbD0m cmVmZXJyZXJVUkw9Ig0KCQkgICAgICAgICAgICAgICAvL3RoZWZvcm0uYWN0 aW9uPSJjci5hc3B4P2xjRGVhbGVyPSIgKyAiMzgxMDAxJmxjVHJhbnNJRD0x MDAwODg4MTkmbGNWSU49MUxOTE04MVdYUFhYNDE1MDUmbG5NaWxlcz05ODAw MCZsY1llYXI9MTk5MyZsY01ha2U9TElOQ09MTiZsY01vZGVsPVRPV04gQ0FS JmxjU3R5bGU9NEQgU0VEQU4mbGNaaXA9MzI4MDYmbGNNaWxlQ2xhc3M9RSZs Y1JlZ2lvbj0iDQoJCX0NCgkJdGhlZm9ybS5fX0VWRU5UVEFSR0VULnZhbHVl ID0gZXZlbnRUYXJnZXQ7DQoJCXRoZWZvcm0uX19FVkVOVEFSR1VNRU5ULnZh bHVlID0gZXZlbnRBcmd1bWVudDsNCgkJdGhlZm9ybS5zdWJtaXQoKTsNCgl9 DQogIGZ1bmN0aW9uIHByaW50bWUoKQ0KICAgew0KICAgICAgdmFyIHcgPSB3 aW5kb3cub3BlbiAoImZyaWVuZGx5Q1IuaHRtIiwgIiIsICJkaXJlY3Rvcmll cz1ubyxsb2NhdGlvbj1ubyx0b29sYmFyPW5vLHJlc2l6YWJsZT15ZXMsd2lk dGg9NzAwLGhlaWdodD00NDAsc2Nyb2xsYmFycz15ZXMiKTsNCiAgICAgIGlm ICh3LmZvY3VzICE9IG51bGwpIHsNCgl3LmZvY3VzICgpOw0KICAgICAgICAg IH0NCg0KICAgfQ0KDQovLyAtLT4NCjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQg bGFuZ3VhZ2U9ImphdmFzY3JpcHQiPg0KCQlkb2N1bWVudC5DUi5hY3Rpb24g PSAiY3IuYXNweD9sY0RlYWxlcj0iICsgIjM4MTAwMSZsY1RyYW5zSUQ9MTAw MDg4ODE5JmxjVklOPTFMTkxNODFXWFBYWDQxNTA1JmxuTWlsZXM9OTgwMDAm bGNZZWFyPTE5OTMmbGNNYWtlPUxJTkNPTE4mbGNNb2RlbD1UT1dOJTIwQ0FS JmxjU3R5bGU9NEQlMjBTRURBTiZsY1ppcD0zMjgwNiZsY01pbGVDbGFzcz1F JmxjUmVnaW9uPSZmZW1haWw9JnJlZmVycmVyVVJMPSINCi8vImNyLmFzcHg/ bGNEZWFsZXI9IiArICIzODEwMDEmbGNUcmFuc0lEPTEwMDA4ODgxOSZsY1ZJ Tj0xTE5MTTgxV1hQWFg0MTUwNSZsbk1pbGVzPTk4MDAwJmxjWWVhcj0xOTkz JmxjTWFrZT1MSU5DT0xOJmxjTW9kZWw9VE9XTiBDQVImbGNTdHlsZT00RCBT RURBTiZsY1ppcD0zMjgwNiZsY01pbGVDbGFzcz1FJmxjUmVnaW9uPSINCiAg ICA8L3NjcmlwdD4NCjx0YWJsZSBBTElHTj1jZW50ZXIgd2lkdGg9MTAwJT4N CiAgIDx0cj4NCiAgICAgPHRkIGFsaWduPWxlZnQ+DQoJPHNwYW4gY2xhc3M9 U3ViQ29udGVudEhlYWRlcj5EZXNjcmliZSB0aGUgY29uZGl0aW9uIG9mIHlv dXIgdmVoaWNsZTwvc3Bhbj4NCiAgICAgPC90ZD4NCiAgIDwvVFI+DQo8L1Rh YmxlPg0KPEJSPg0KDQo8c3BhbiBjbGFzcz0iVGV4dEJvbGREb3VibGUiPjx1 PkV4dGVyaW9yPC91Pjwvc3Bhbj4NCjx0YWJsZSBib3JkZXI9MCBjZWxscGFk ZGluZz0wIGNlbGxzcGFjaW5nPTAgd2lkdGg9IjEwMCUiPiAgICAgIA0KICA8 dHIgY2xhc3M9IkFsdGVybmF0ZVJvdyI+DQogICAgPHRkIHdpZHRoPTE1MCBo ZWlnaHQ9MjA+PHNwYW4gY2xhc3M9IlRleHRPcHRCb2xkIj5Cb2R5PC9zcGFu PjwvdGQ+ICAgIA0KICAgIDx0ZCB3aWR0aD0xNTAgaGVpZ2h0PTIwPg0KCTxz cGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQgaWQ9Im9wdEJvZHkx IiB0eXBlPSJyYWRpbyIgbmFtZT0iR3JwQm9keTEiIHZhbHVlPSJvcHRCb2R5 MSIgY2hlY2tlZD0iY2hlY2tlZCIgb25jbGljaz0iX19kb1Bvc3RCYWNrKCdv cHRCb2R5MScsJycpIiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgLz48bGFiZWwg Zm9yPSJvcHRCb2R5MSI+R29vZDwvbGFiZWw+PC9zcGFuPjwvdGQ+DQogICAg PHRkIHdpZHRoPTE0OSBoZWlnaHQ9MjA+DQoJPHNwYW4gY2xhc3M9IlRleHRP cHROb3JtYWwiPjxpbnB1dCBpZD0ib3B0Qm9keTIiIHR5cGU9InJhZGlvIiBu YW1lPSJHcnBCb2R5MiIgdmFsdWU9Im9wdEJvZHkyIiBvbmNsaWNrPSJfX2Rv UG9zdEJhY2soJ29wdEJvZHkyJywnJykiIGxhbmd1YWdlPSJqYXZhc2NyaXB0 IiAvPjxsYWJlbCBmb3I9Im9wdEJvZHkyIj5Tb21lIERpbmdzL0RlbnRzPC9s YWJlbD48L3NwYW4+PC90ZD4NCiAgICA8dGQgd2lkdGg9MTUwIGhlaWdodD0y MD4NCgk8c3BhbiBjbGFzcz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlkPSJP cHRCb2R5MyIgdHlwZT0icmFkaW8iIG5hbWU9IkdycEJvZHkzIiB2YWx1ZT0i T3B0Qm9keTMiIG9uY2xpY2s9Il9fZG9Qb3N0QmFjaygnT3B0Qm9keTMnLCcn KSIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIC8+PGxhYmVsIGZvcj0iT3B0Qm9k eTMiPk1ham9yIERhbWFnZTwvbGFiZWw+PC9zcGFuPjwvdGQ+DQogICA8L3Ry Pg0KPC90YWJsZT4NCg0KPCEtLSBCb2R5IERhbWFnZSBQYW5lbCAtLT4NCg0K ICAgIA0KDQo8IS0tIEVuZCBvZiBEYW1hZ2UgUGFuZWwgLS0+DQo8IS0tIFBh aW50IC0tPg0KPHRhYmxlIGJvcmRlcj0wIGNlbGxwYWRkaW5nPTAgY2VsbHNw YWNpbmc9MCAgd2lkdGg9IjEwMCUiPg0KICA8dHI+DQogICAgPHRkPjxzcGFu IGNsYXNzPSJUZXh0T3B0Qm9sZCI+UGFpbnQ8L3NwYW4+PC90ZD4NCiAgICA8 dGQgd2lkdGg9MTUwPg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48 aW5wdXQgaWQ9IkNSMDE2MDEiIHR5cGU9InJhZGlvIiBuYW1lPSJHcnAwMTYi IHZhbHVlPSJDUjAxNjAxIiBjaGVja2VkPSJjaGVja2VkIiAvPjxsYWJlbCBm b3I9IkNSMDE2MDEiPlN0aWxsIFNoaW5lczwvbGFiZWw+PC9zcGFuPjwvdGQ+ DQogICAgPHRkIHdpZHRoPTE1MD4NCgk8c3BhbiBjbGFzcz0iVGV4dE9wdE5v cm1hbCI+PGlucHV0IGlkPSJDUjAxNjAyIiB0eXBlPSJyYWRpbyIgbmFtZT0i R3JwMDE2IiB2YWx1ZT0iQ1IwMTYwMiIgLz48bGFiZWwgZm9yPSJDUjAxNjAy Ij5EdWxsL0NoaXBzL1NjcmF0Y2hlczwvbGFiZWw+PC9zcGFuPjwvdGQ+DQog ICAgPHRkIHdpZHRoPTE1MD4NCgk8c3BhbiBjbGFzcz0iVGV4dE9wdE5vcm1h bCI+PGlucHV0IGlkPSJDUjAxNjAzIiB0eXBlPSJyYWRpbyIgbmFtZT0iR3Jw MDE2IiB2YWx1ZT0iQ1IwMTYwMyIgLz48bGFiZWwgZm9yPSJDUjAxNjAzIj5N YWpvciBmbGF3cy9wZWVsaW5nPC9sYWJlbD48L3NwYW4+PC90ZD48L3RyPg0K ICA8dHIgY2xhc3M9IkFsdGVybmF0ZVJvdyI+DQogICAgPHRkIHdpZHRoPTE1 MCBoZWlnaHQ9MjA+PHNwYW4gY2xhc3M9IlRleHRPcHRCb2xkIj5HbGFzczwv c3Bhbj48L3RkPg0KICAgIDx0ZCB3aWR0aD0xNTAgaGVpZ2h0PTIwPg0KCTxz cGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQgaWQ9IkNSMDE3MDEi IHR5cGU9InJhZGlvIiBuYW1lPSJHcnAwMTciIHZhbHVlPSJDUjAxNzAxIiBj aGVja2VkPSJjaGVja2VkIiAvPjxsYWJlbCBmb3I9IkNSMDE3MDEiPkdvb2Q8 L2xhYmVsPjwvc3Bhbj48L3RkPg0KICAgIDx0ZCB3aWR0aD0xNTAgaGVpZ2h0 PTIwPg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQgaWQ9 IkNSMDE3MDIiIHR5cGU9InJhZGlvIiBuYW1lPSJHcnAwMTciIHZhbHVlPSJD UjAxNzAyIiAvPjxsYWJlbCBmb3I9IkNSMDE3MDIiPkNoaXBwZWQvUGl0dGVk PC9sYWJlbD48L3NwYW4+PC90ZD4NCiAgICA8dGQgd2lkdGg9MTUwIGhlaWdo dD0yMD4NCgk8c3BhbiBjbGFzcz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlk PSJDUjAxNzAzIiB0eXBlPSJyYWRpbyIgbmFtZT0iR3JwMDE3IiB2YWx1ZT0i Q1IwMTcwMyIgLz48bGFiZWwgZm9yPSJDUjAxNzAzIj5DcmFja2VkPC9sYWJl bD48L3NwYW4+PC90ZD48L3RyPg0KICA8dHI+DQogICAgPHRkIHdpZHRoPTE1 MCBoZWlnaHQ9MjA+PHNwYW4gY2xhc3M9IlRleHRPcHRCb2xkIj5MaWdodHM8 L3NwYW4+PC90ZD4NCiAgICA8dGQgd2lkdGg9MTUwIGhlaWdodD0yMD4NCgk8 c3BhbiBjbGFzcz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlkPSJDUjAxODAx IiB0eXBlPSJyYWRpbyIgbmFtZT0iR3JwMDE4IiB2YWx1ZT0iQ1IwMTgwMSIg Y2hlY2tlZD0iY2hlY2tlZCIgLz48bGFiZWwgZm9yPSJDUjAxODAxIj5Hb29k PC9sYWJlbD48L3NwYW4+PC90ZD4NCiAgICA8dGQgd2lkdGg9MTUwIGhlaWdo dD0yMD4NCgk8c3BhbiBjbGFzcz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlk PSJDUjAxODAyIiB0eXBlPSJyYWRpbyIgbmFtZT0iR3JwMDE4IiB2YWx1ZT0i Q1IwMTgwMiIgLz48bGFiZWwgZm9yPSJDUjAxODAyIj5SZXBsYWNlbWVudDwv bGFiZWw+PC9zcGFuPjwvdGQ+PC90cj4NCiAgPHRyIGNsYXNzPSJBbHRlcm5h dGVSb3ciPg0KICAgIDx0ZCB3aWR0aD0xNTAgaGVpZ2h0PTIwPjxzcGFuIGNs YXNzPSJUZXh0T3B0Qm9sZCI+UnVzdDwvc3Bhbj48L3RkPg0KICAgIDx0ZCB3 aWR0aD0xNTAgaGVpZ2h0PTIwPg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9y bWFsIj48aW5wdXQgaWQ9IkNSMDE5MDEiIHR5cGU9InJhZGlvIiBuYW1lPSJH cnAwMTkiIHZhbHVlPSJDUjAxOTAxIiBjaGVja2VkPSJjaGVja2VkIiAvPjxs YWJlbCBmb3I9IkNSMDE5MDEiPk5vbmU8L2xhYmVsPjwvc3Bhbj48L3RkPg0K ICAgIDx0ZCB3aWR0aD0xNTAgaGVpZ2h0PTIwPg0KCTxzcGFuIGNsYXNzPSJU ZXh0T3B0Tm9ybWFsIj48aW5wdXQgaWQ9IkNSMDE5MDIiIHR5cGU9InJhZGlv IiBuYW1lPSJHcnAwMTkiIHZhbHVlPSJDUjAxOTAyIiAvPjxsYWJlbCBmb3I9 IkNSMDE5MDIiPlNvbWU8L2xhYmVsPjwvc3Bhbj48L3RkPg0KICAgIDx0ZCB3 aWR0aD0xNTAgaGVpZ2h0PTIwPg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9y bWFsIj48aW5wdXQgaWQ9IkNSMDE5MDMiIHR5cGU9InJhZGlvIiBuYW1lPSJH cnAwMTkiIHZhbHVlPSJDUjAxOTAzIiAvPjxsYWJlbCBmb3I9IkNSMDE5MDMi PlJ1c3RlZCBUaHJvdWdoPC9sYWJlbD48L3NwYW4+PC90ZD48L3RyPg0KICA8 dHI+DQogICAgPHRkIHdpZHRoPTE1MCBoZWlnaHQ9MjA+PHNwYW4gY2xhc3M9 IlRleHRPcHRCb2xkIj5IYWlsIERhbWFnZTwvc3Bhbj48L3RkPg0KICAgIDx0 ZCB3aWR0aD0xNTAgaGVpZ2h0PTIwPg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0 Tm9ybWFsIj48aW5wdXQgaWQ9IkNSMDIwMDEiIHR5cGU9InJhZGlvIiBuYW1l PSJHcnAwMjAiIHZhbHVlPSJDUjAyMDAxIiBjaGVja2VkPSJjaGVja2VkIiAv PjxsYWJlbCBmb3I9IkNSMDIwMDEiPk5vbmU8L2xhYmVsPjwvc3Bhbj48L3Rk Pg0KICAgIDx0ZCB3aWR0aD0xNTAgaGVpZ2h0PTIwPg0KCTxzcGFuIGNsYXNz PSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQgaWQ9IkNSMDIwMDIiIHR5cGU9InJh ZGlvIiBuYW1lPSJHcnAwMjAiIHZhbHVlPSJDUjAyMDAyIiAvPjxsYWJlbCBm b3I9IkNSMDIwMDIiPlNvbWU8L2xhYmVsPjwvc3Bhbj48L3RkPg0KICAgIDx0 ZCB3aWR0aD0xNTAgaGVpZ2h0PTIwPg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0 Tm9ybWFsIj48aW5wdXQgaWQ9IkNSMDIwMDMiIHR5cGU9InJhZGlvIiBuYW1l PSJHcnAwMjAiIHZhbHVlPSJDUjAyMDAzIiAvPjxsYWJlbCBmb3I9IkNSMDIw MDMiPk1ham9yPC9sYWJlbD48L3NwYW4+PC90ZD48L3RyPg0KICA8dHIgY2xh c3M9IkFsdGVybmF0ZVJvdyI+DQogICAgPHRkIHdpZHRoPTE1MCBoZWlnaHQ9 MjA+PHNwYW4gY2xhc3M9IlRleHRPcHRCb2xkIj5Vbmlib2R5L0ZyYW1lPC9z cGFuPjwvdGQ+DQogICAgPHRkIHdpZHRoPTE1MCBoZWlnaHQ9MjA+DQoJPHNw YW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxpbnB1dCBpZD0iQ1IwMjEwMSIg dHlwZT0icmFkaW8iIG5hbWU9IkdycDAyMSIgdmFsdWU9IkNSMDIxMDEiIGNo ZWNrZWQ9ImNoZWNrZWQiIC8+PGxhYmVsIGZvcj0iQ1IwMjEwMSI+R29vZDwv bGFiZWw+PC9zcGFuPjwvdGQ+DQogICAgPHRkIHdpZHRoPTE1MCBoZWlnaHQ9 MjA+DQoJPHNwYW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxpbnB1dCBpZD0i Q1IwMjEwMiIgdHlwZT0icmFkaW8iIG5hbWU9IkdycDAyMSIgdmFsdWU9IkNS MDIxMDIiIC8+PGxhYmVsIGZvcj0iQ1IwMjEwMiI+V2FzIFJlcGFpcmVkPC9s YWJlbD48L3NwYW4+PC90ZD4NCiAgICA8dGQgd2lkdGg9MTUwIGhlaWdodD0y MD4NCgk8c3BhbiBjbGFzcz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlkPSJD UjAyMTAzIiB0eXBlPSJyYWRpbyIgbmFtZT0iR3JwMDIxIiB2YWx1ZT0iQ1Iw MjEwMyIgLz48bGFiZWwgZm9yPSJDUjAyMTAzIj5EYW1hZ2VkPC9sYWJlbD48 L3NwYW4+PC90ZD48L3RyPg0KICA8dHI+DQogICAgPHRkIHdpZHRoPTE1MCBo ZWlnaHQ9MjA+PHNwYW4gY2xhc3M9IlRleHRPcHRCb2xkIj5TcGVudCBPbiBD b2xsaXNpb24gUmVwYWlyPC9zcGFuPjwvdGQ+DQogICAgPHRkIHdpZHRoPTE1 MCBoZWlnaHQ9MjA+DQoJPHNwYW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxp bnB1dCBpZD0iQ1IwMjIwMSIgdHlwZT0icmFkaW8iIG5hbWU9IkdycDAyMiIg dmFsdWU9IkNSMDIyMDEiIC8+PGxhYmVsIGZvcj0iQ1IwMjIwMSI+Tm9uZTwv bGFiZWw+PC9zcGFuPjwvdGQ+DQogICAgPHRkIHdpZHRoPTE1MCBoZWlnaHQ9 MjA+DQoJPHNwYW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxpbnB1dCBpZD0i Q1IwMjIwMiIgdHlwZT0icmFkaW8iIG5hbWU9IkdycDAyMiIgdmFsdWU9IkNS MDIyMDIiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+PGxhYmVsIGZvcj0iQ1IwMjIw MiI+TGVzcyB0aGFuICQyLDUwMDwvbGFiZWw+PC9zcGFuPjwvdGQ+DQogICAg PHRkIHdpZHRoPTE1MCBoZWlnaHQ9MjA+DQoJPHNwYW4gY2xhc3M9IlRleHRP cHROb3JtYWwiPjxpbnB1dCBpZD0iQ1IwMjIwMyIgdHlwZT0icmFkaW8iIG5h bWU9IkdycDAyMiIgdmFsdWU9IkNSMDIyMDMiIC8+PGxhYmVsIGZvcj0iQ1Iw MjIwMyI+TW9yZSB0aGFuICQyLDUwMDwvbGFiZWw+PC9zcGFuPjwvdGQ+DQog IDwvdHI+DQo8L3RhYmxlPjxicj4NCjwhLS0gRG9vciBQYW5lbHMgLS0+DQo8 c3BhbiBjbGFzcz0iVGV4dEJvbGREb3VibGUiPjx1PkludGVyaW9yPC91Pjwv c3Bhbj4NCjx0YWJsZSBib3JkZXI9MCBjZWxscGFkZGluZz0wIGNlbGxzcGFj aW5nPTAgIHdpZHRoPSIxMDAlIj4NCiAgPHRyIGNsYXNzPSJBbHRlcm5hdGVS b3ciPg0KICAgIDx0ZCB3aWR0aD0zNTAgaGVpZ2h0PTE1PjxzcGFuIGNsYXNz PSJUZXh0T3B0Qm9sZCI+RG9vciBQYW5lbHM8L3NwYW4+PC90ZD4NCiAgICA8 dGQgd2lkdGg9MzUwIGhlaWdodD0xNT4NCgk8c3BhbiBjbGFzcz0iVGV4dE9w dE5vcm1hbCI+PGlucHV0IGlkPSJDUjAyMzAxIiB0eXBlPSJyYWRpbyIgbmFt ZT0iR3JwMDIzIiB2YWx1ZT0iQ1IwMjMwMSIgLz48bGFiZWwgZm9yPSJDUjAy MzAxIj5Hb29kPC9sYWJlbD48L3NwYW4+PC90ZD4NCiAgICA8dGQgd2lkdGg9 MzUwIGhlaWdodD0xNT4NCgk8c3BhbiBjbGFzcz0iVGV4dE9wdE5vcm1hbCI+ PGlucHV0IGlkPSJDUjAyMzAyIiB0eXBlPSJyYWRpbyIgbmFtZT0iR3JwMDIz IiB2YWx1ZT0iQ1IwMjMwMiIgY2hlY2tlZD0iY2hlY2tlZCIgLz48bGFiZWwg Zm9yPSJDUjAyMzAyIj5Tb21lIEZsYXdzPC9sYWJlbD48L3NwYW4+PC90ZD4N CiAgICA8dGQgd2lkdGg9MzUwIGhlaWdodD0xNT4NCgk8c3BhbiBjbGFzcz0i VGV4dE9wdE5vcm1hbCI+PGlucHV0IGlkPSJDUjAyMzAzIiB0eXBlPSJyYWRp byIgbmFtZT0iR3JwMDIzIiB2YWx1ZT0iQ1IwMjMwMyIgLz48bGFiZWwgZm9y PSJDUjAyMzAzIj5EYW1hZ2VkPC9sYWJlbD48L3NwYW4+PC90ZD48L3RyPg0K ICA8dHI+DQogICAgPHRkIHdpZHRoPTM1MCBoZWlnaHQ9MTU+PHNwYW4gY2xh c3M9IlRleHRPcHRCb2xkIj5DYXJwZXRzL01hdHM8L3NwYW4+PC90ZD4NCiAg ICA8dGQgd2lkdGg9MzUwIGhlaWdodD0xNT4NCgk8c3BhbiBjbGFzcz0iVGV4 dE9wdE5vcm1hbCI+PGlucHV0IGlkPSJDUjAyNDAxIiB0eXBlPSJyYWRpbyIg bmFtZT0iR3JwMDI0IiB2YWx1ZT0iQ1IwMjQwMSIgY2hlY2tlZD0iY2hlY2tl ZCIgLz48bGFiZWwgZm9yPSJDUjAyNDAxIj5Hb29kPC9sYWJlbD48L3NwYW4+ PC90ZD4NCiAgICA8dGQgd2lkdGg9MzUwIGhlaWdodD0xNT4NCgk8c3BhbiBj bGFzcz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlkPSJDUjAyNDAyIiB0eXBl PSJyYWRpbyIgbmFtZT0iR3JwMDI0IiB2YWx1ZT0iQ1IwMjQwMiIgLz48bGFi ZWwgZm9yPSJDUjAyNDAyIj5Tb21lIEZsYXdzPC9sYWJlbD48L3NwYW4+PC90 ZD4NCiAgICA8dGQgd2lkdGg9MzUwIGhlaWdodD0xNT4NCgk8c3BhbiBjbGFz cz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlkPSJDUjAyNDAzIiB0eXBlPSJy YWRpbyIgbmFtZT0iR3JwMDI0IiB2YWx1ZT0iQ1IwMjQwMyIgLz48bGFiZWwg Zm9yPSJDUjAyNDAzIj5EYW1hZ2VkPC9sYWJlbD48L3NwYW4+PC90ZD48L3Ry Pg0KICA8dHIgY2xhc3M9IkFsdGVybmF0ZVJvdyI+DQogICAgPHRkIHdpZHRo PTM1MCBoZWlnaHQ9MTU+PHNwYW4gY2xhc3M9IlRleHRPcHRCb2xkIj5VcGhv bHN0ZXJ5PC9zcGFuPjwvdGQ+DQogICAgPHRkIHdpZHRoPTM1MCBoZWlnaHQ9 MTU+DQoJPHNwYW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxpbnB1dCBpZD0i Q1IwMjUwMSIgdHlwZT0icmFkaW8iIG5hbWU9IkdycDAyNSIgdmFsdWU9IkNS MDI1MDEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+PGxhYmVsIGZvcj0iQ1IwMjUw MSI+R29vZDwvbGFiZWw+PC9zcGFuPjwvdGQ+DQogICAgPHRkIHdpZHRoPTM1 MCBoZWlnaHQ9MTU+DQoJPHNwYW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxp bnB1dCBpZD0iQ1IwMjUwMiIgdHlwZT0icmFkaW8iIG5hbWU9IkdycDAyNSIg dmFsdWU9IkNSMDI1MDIiIC8+PGxhYmVsIGZvcj0iQ1IwMjUwMiI+U29tZSBG bGF3czwvbGFiZWw+PC9zcGFuPjwvdGQ+DQogICAgPHRkIHdpZHRoPTM1MCBo ZWlnaHQ9MTU+DQoJPHNwYW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxpbnB1 dCBpZD0iQ1IwMjUwMyIgdHlwZT0icmFkaW8iIG5hbWU9IkdycDAyNSIgdmFs dWU9IkNSMDI1MDMiIC8+PGxhYmVsIGZvcj0iQ1IwMjUwMyI+RGFtYWdlZDwv bGFiZWw+PC9zcGFuPjwvdGQ+DQogIDwvdHI+DQo8L3RhYmxlPjxicj4NCg0K PCEtLSBEb2VzIHZlaGljbGUgaGFzIE1lY2hhbmljYWwgPz8tLT4NCjxhIGlk PSJhbmNoTWVjaCIgbmFtZT0iYW5jaE1lY2giPjwvYT4NCjx0YWJsZT4NCiAg PHRyPg0KICAgIDx0ZD4NCgk8c3BhbiBpZD0ibGJsTWVjaCIgY2xhc3M9IlRl eHRCb2xkIj5Eb2VzIHRoZSBWZWhpY2xlIA0KICAgICAgCQkJaGF2ZSBhbnkg bWVjaGFuaWNhbCBwcm9ibGVtcz88L3NwYW4+IDwvdGQ+DQogICAgPHRkIHdp ZHRoPTQwIGhlaWdodD0xNT48L3RkPg0KICAgIDx0ZCB3aWR0aD04MCBoZWln aHQ9MTU+DQoJPHNwYW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxpbnB1dCBp ZD0iT3B0TWVjaFllcyIgdHlwZT0icmFkaW8iIG5hbWU9Ik9wdE1lY2hZZXMi IHZhbHVlPSJPcHRNZWNoWWVzIiBvbmNsaWNrPSJfX2RvUG9zdEJhY2soJ09w dE1lY2hZZXMnLCcnKSIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIC8+PGxhYmVs IGZvcj0iT3B0TWVjaFllcyI+WWVzPC9sYWJlbD48L3NwYW4+PC90ZD4NCiAg ICA8dGQgd2lkdGg9ODAgaGVpZ2h0PTE1Pg0KCTxzcGFuIGNsYXNzPSJUZXh0 T3B0Tm9ybWFsIj48aW5wdXQgaWQ9Ik9wdE1lY2hObyIgdHlwZT0icmFkaW8i IG5hbWU9Ik9wdE1lY2hObyIgdmFsdWU9Ik9wdE1lY2hObyIgY2hlY2tlZD0i Y2hlY2tlZCIgb25jbGljaz0iX19kb1Bvc3RCYWNrKCdPcHRNZWNoTm8nLCcn KSIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIC8+PGxhYmVsIGZvcj0iT3B0TWVj aE5vIj5ObzwvbGFiZWw+PC9zcGFuPjwvdGQ+DQogIDwvdHI+DQo8L3RhYmxl Pg0KDQo8IS0tIE1lY2hhbmljYWwgUGFuZTsgLS0+DQo8dGFibGUgYm9yZGVy PTAgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIHdpZHRoPSIxMDAlIj4N CiAgPHRyPg0KICAgIDx0ZCB3aWR0aD01MD48L3RkPg0KICAgIDx0ZD4NCgkN CiAgICA8L3RkPjwvdHI+DQo8L3RhYmxlPjxicj4NCg0KPCEtLSBPdGhlciAt LT4NCjxzcGFuIGlkPSJsYmxPdGhlciIgY2xhc3M9IlRleHRCb2xkRG91Ymxl Ij48dT5PdGhlcjwvVT48L3NwYW4+DQo8dGFibGUgYm9yZGVyPTAgY2VsbHNw YWNpbmc9MCBjZWxscGFkaW5nPTAgIHdpZHRoPSIxMDAlIj4NCiAgPHRyIGNs YXNzPSJBbHRlcm5hdGVSb3ciPg0KICAgIDx0ZCB3aWR0aD0xNTAgaGVpZ2h0 PTE1PjxzcGFuIGNsYXNzPSJUZXh0T3B0Qm9sZCI+RW1pc3Npb25zPC9zcGFu PjwvdGQ+DQogICAgPHRkIHdpZHRoPTM1MCBoZWlnaHQ9MTU+DQoJPHNwYW4g Y2xhc3M9IlRleHRPcHROb3JtYWwiPjxpbnB1dCBpZD0iQ1IwMjYwMSIgdHlw ZT0icmFkaW8iIG5hbWU9IkdycDAyNiIgdmFsdWU9IkNSMDI2MDEiIC8+PGxh YmVsIGZvcj0iQ1IwMjYwMSI+Q3VycmVudDwvbGFiZWw+PC9zcGFuPjwvdGQ+ DQogICAgPHRkIHdpZHRoPTU1MCBoZWlnaHQ9MTU+DQoJPHNwYW4gY2xhc3M9 IlRleHRPcHROb3JtYWwiPjxpbnB1dCBpZD0iQ1IwMjYwMiIgdHlwZT0icmFk aW8iIG5hbWU9IkdycDAyNiIgdmFsdWU9IkNSMDI2MDIiIC8+PGxhYmVsIGZv cj0iQ1IwMjYwMiI+QWx0ZXJlZCwgRmFpbGVkLCBNYWpvciBQb2xsdXRlcjwv bGFiZWw+PC9zcGFuPjwvdGQ+DQogICAgPHRkIHdpZHRoPTM1MCBoZWlnaHQ9 MTU+Jm5ic3A7PC9URD4NCiAgICA8L3RyPg0KICA8dHI+DQogICAgPHRkIHdp ZHRoPTE1MCBoZWlnaHQ9MTU+PHNwYW4gY2xhc3M9IlRleHRPcHRCb2xkIj5P ZG9tZXRlcjwvc3Bhbj48L3RkPg0KICAgIDx0ZCB3aWR0aD0zNTAgaGVpZ2h0 PTE1Pg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQgaWQ9 IkNSMDI3MDEiIHR5cGU9InJhZGlvIiBuYW1lPSJHcnAwMjciIHZhbHVlPSJD UjAyNzAxIiAvPjxsYWJlbCBmb3I9IkNSMDI3MDEiPkFjY3VyYXRlPC9sYWJl bD48L3NwYW4+PC90ZD4NCiAgICA8dGQgd2lkdGg9MzUwIGhlaWdodD0xNT4N Cgk8c3BhbiBjbGFzcz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlkPSJDUjAy NzAyIiB0eXBlPSJyYWRpbyIgbmFtZT0iR3JwMDI3IiB2YWx1ZT0iQ1IwMjcw MiIgLz48bGFiZWwgZm9yPSJDUjAyNzAyIj5SZXNldDwvbGFiZWw+PC9zcGFu PjwvdGQ+DQogICAgPHRkIHdpZHRoPTM1MCBoZWlnaHQ9MTU+DQoJPHNwYW4g Y2xhc3M9IlRleHRPcHROb3JtYWwiPjxpbnB1dCBpZD0iQ1IwMjcwMyIgdHlw ZT0icmFkaW8iIG5hbWU9IkdycDAyNyIgdmFsdWU9IkNSMDI3MDMiIC8+PGxh YmVsIGZvcj0iQ1IwMjcwMyI+Tm90IFdvcmtpbmc8L2xhYmVsPjwvc3Bhbj48 L3RkPjwvdHI+DQogIDx0ciBjbGFzcz0iQWx0ZXJuYXRlUm93Ij4NCiAgICA8 dGQgd2lkdGg9MTUwIGhlaWdodD0xNT48c3BhbiBjbGFzcz0iVGV4dE9wdEJv bGQiPlJlZ2lzdHJhdGlvbjwvc3Bhbj48L3RkPg0KICAgIDx0ZCB3aWR0aD0z NTAgaGVpZ2h0PTE1Pg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48 aW5wdXQgaWQ9IkNSMDI4MDEiIHR5cGU9InJhZGlvIiBuYW1lPSJHcnAwMjgi IHZhbHVlPSJDUjAyODAxIiAvPjxsYWJlbCBmb3I9IkNSMDI4MDEiPkN1cnJl bnQ8L2xhYmVsPjwvc3Bhbj48L3RkPg0KICAgIDx0ZCB3aWR0aD0zNTAgaGVp Z2h0PTE1Pg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQg aWQ9IkNSMDI4MDMiIHR5cGU9InJhZGlvIiBuYW1lPSJHcnAwMjgiIHZhbHVl PSJDUjAyODAzIiAvPjxsYWJlbCBmb3I9IkNSMDI4MDMiPkV4cGlyZWQ8L2xh YmVsPjwvc3Bhbj48L3RkPg0KICAgIDx0ZCB3aWR0aD0zNTAgaGVpZ2h0PTE1 PiZuYnNwOzwvVEQ+DQogICA8L3RyPiAgDQo8dHI+DQogICAgPHRkIHdpZHRo PTE1MCBoZWlnaHQ9MTU+PHNwYW4gY2xhc3M9IlRleHRPcHRCb2xkIj5UaXRs ZTwvc3Bhbj48L3RkPg0KICAgIDx0ZCB3aWR0aD0zNTAgaGVpZ2h0PTE1Pg0K CTxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQgaWQ9IkNSMDI5 MDEiIHR5cGU9InJhZGlvIiBuYW1lPSJHcnAwMjkiIHZhbHVlPSJDUjAyOTAx IiAvPjxsYWJlbCBmb3I9IkNSMDI5MDEiPkNsZWFuIFRpdGxlIEhpc3Rvcnk8 L2xhYmVsPjwvc3Bhbj48L3RkPg0KICAgIDx0ZCB3aWR0aD01NTAgaGVpZ2h0 PTE1Pg0KCTxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQgaWQ9 IkNSMDI5MDIiIHR5cGU9InJhZGlvIiBuYW1lPSJHcnAwMjkiIHZhbHVlPSJD UjAyOTAyIiAvPjxsYWJlbCBmb3I9IkNSMDI5MDIiPkJyYW5kZWQgJ1NhbHZh Z2UnLCAnRmxvb2QnLCBldGMuPC9sYWJlbD48L3NwYW4+PC90ZD4NCiAgPC90 cj4NCjwvdGFibGU+DQo8IS0tIEN1c3RvbSBRdWVzdGlvbnMgLS0+DQo8ZGl2 IGlkPSJQbmxRdWVzdGlvbnMiPg0KCQ0KPFRBQkxFIENFTExTUEFDSU5HPSIw IiBDRUxMUEFERElORz0iMCIgQk9SREVSPSIwIj4NCiAgPFRSPg0KICAgPFRE IGhlaWdodD0iMjciPg0KICAgICAgPHNwYW4gaWQ9IkxCTFRUTDEiPjxCUj48 QlI+DQo8Qj48VT5UbyB0aGUgYmVzdCBvZiB5b3VyIGtub3dsZWRnZTogPC9V PjxCPjwvc3Bhbj4NCiAgIDwvVEQ+DQogIDwvVFI+DQogIDxUUj4NCiAgIDxU RCBoZWlnaHQ9IjI3Ij4NCgkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCiAg IDwvVEQ+DQogIDwvVFI+DQo8L1RBQkxFPg0KPFRBQkxFIGJvcmRlcj0wIGNl bGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCB3aWR0aD0iMTAwJSI+DQogIDxU UiBjbGFzcz0iQWx0ZXJuYXRlUm93Ij4NCiAgIDxURCBoZWlnaHQ9IjI3IiB3 aWR0aD0iMTA1MCI+DQogICAgICA8c3BhbiBpZD0iTEJMUTEiIGNsYXNzPSJU ZXh0T3B0Tm9ybWFsIj5IYXMgdGhpcyB2ZWhpY2xlIGJlZW4gaW4gYW4gYWNj aWRlbnQvaW5jaWRlbnQgaW4gd2hpY2ggaXQgc3VzdGFpbmVkIG1vcmUgdGhh biAkNTAwIHdvcnRoIG9mIGRhbWFnZSA/PC9zcGFuPg0KICAgPC9URD4NCiAg IDxURCBoZWlnaHQ9IjI3IiB3aWR0aD0iNTUiPg0KICAgICA8c3BhbiBjbGFz cz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlkPSJPUFQxUTEiIHR5cGU9InJh ZGlvIiBuYW1lPSJHcnBPUFQxUSIgdmFsdWU9Ik9QVDFRMSIgLz48bGFiZWwg Zm9yPSJPUFQxUTEiPlllczwvbGFiZWw+PC9zcGFuPiAgIA0KICA8L1REPg0K ICAgPFREIGhlaWdodD0iMjciIHdpZHRoPSI1MCI+DQogICAgIDxzcGFuIGNs YXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQgaWQ9Ik9QVDFRMiIgdHlwZT0i cmFkaW8iIG5hbWU9IkdycE9QVDFRIiB2YWx1ZT0iT1BUMVEyIiAvPjxsYWJl bCBmb3I9Ik9QVDFRMiI+Tm88L2xhYmVsPjwvc3Bhbj4gICANCiAgPC9URD4N CiAgIDx0ZCB3aWR0aD0yMjAgaGVpZ2h0PTE1PiZuYnNwOzwvVEQ+DQogIDwv VFI+DQogIDxUUj4NCiAgIDxURCBoZWlnaHQ9IjI3IiB3aWR0aD0iMTA1MCI+ DQogICAgICA8c3BhbiBpZD0iTEJMUTIiIGNsYXNzPSJUZXh0T3B0Tm9ybWFs Ij5IYXMgdGhpcyB2ZWhpY2xlIGV2ZXIgYmVlbiB1c2VkIGZvciBhbnkgY29t bWVyY2lhbCBwdXJwb3NlIG9yIGZvciBhbnkgcHVycG9zZSBvdGhlciB0aGFu IHRoZSBwZXJzb25hbCwgbm9uLWNvbW1lcmNpYWwgdXNlIG9mIHRoZSBvd25l cj88L3NwYW4+DQogICA8L1REPg0KICAgPFREIGhlaWdodD0iMjciIHdpZHRo PSI1NSI+DQogICAgIDxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5w dXQgaWQ9Ik9QVDJRMSIgdHlwZT0icmFkaW8iIG5hbWU9IkdycE9QVDJRIiB2 YWx1ZT0iT1BUMlExIiAvPjxsYWJlbCBmb3I9Ik9QVDJRMSI+WWVzPC9sYWJl bD48L3NwYW4+ICAgDQogIDwvVEQ+DQogICA8VEQgaGVpZ2h0PSIyNyIgd2lk dGg9IjUwIj4NCiAgICAgPHNwYW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxp bnB1dCBpZD0iT1BUMlEyIiB0eXBlPSJyYWRpbyIgbmFtZT0iR3JwT1BUMlEi IHZhbHVlPSJPUFQyUTIiIC8+PGxhYmVsIGZvcj0iT1BUMlEyIj5ObzwvbGFi ZWw+PC9zcGFuPiAgIA0KICA8L1REPg0KICA8L1RSPg0KICA8VFIgY2xhc3M9 IkFsdGVybmF0ZVJvdyI+DQogICA8VEQgaGVpZ2h0PSIyNyIgd2lkdGg9IjEw NTAiPg0KICAgICAgPHNwYW4gaWQ9IkxCTFEzIiBjbGFzcz0iVGV4dE9wdE5v cm1hbCI+V2FzIHRoaXMgdmVoaWNsZSBwdXJjaGFzZWQgYXQgYW4gYXVjdGlv bj88L3NwYW4+DQogICA8L1REPg0KICAgPFREIGhlaWdodD0iMjciIHdpZHRo PSI1NSI+DQogICAgIDxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5w dXQgaWQ9Ik9QVDNRMSIgdHlwZT0icmFkaW8iIG5hbWU9IkdycE9QVDNRIiB2 YWx1ZT0iT1BUM1ExIiAvPjxsYWJlbCBmb3I9Ik9QVDNRMSI+WWVzPC9sYWJl bD48L3NwYW4+ICAgDQogIDwvVEQ+DQogICA8VEQgaGVpZ2h0PSIyNyIgd2lk dGg9IjUwIj4NCiAgICAgPHNwYW4gY2xhc3M9IlRleHRPcHROb3JtYWwiPjxp bnB1dCBpZD0iT1BUM1EyIiB0eXBlPSJyYWRpbyIgbmFtZT0iR3JwT1BUM1Ei IHZhbHVlPSJPUFQzUTIiIC8+PGxhYmVsIGZvcj0iT1BUM1EyIj5ObzwvbGFi ZWw+PC9zcGFuPiAgIA0KICA8L1REPg0KICAgPHRkIHdpZHRoPTIyMCBoZWln aHQ9MTU+Jm5ic3A7PC9URD4NCg0KICA8L1RSPg0KICA8VFI+DQogICA8VEQg aGVpZ2h0PSIyNyIgd2lkdGg9IjEwNTAiPg0KICAgICAgPHNwYW4gaWQ9IkxC TFE0IiBjbGFzcz0iVGV4dE9wdE5vcm1hbCI+SGFzIHRoaXMgdmVoaWNsZSBl dmVyIGJlZW4gdGhlIHN1YmplY3Qgb2YgYSBMZW1vbiBMYXcgY2xhaW0/PC9z cGFuPg0KICAgPC9URD4NCiAgIDxURCBoZWlnaHQ9IjI3IiB3aWR0aD0iNTUi Pg0KICAgICA8c3BhbiBjbGFzcz0iVGV4dE9wdE5vcm1hbCI+PGlucHV0IGlk PSJPUFQ0UTEiIHR5cGU9InJhZGlvIiBuYW1lPSJHcnBPUFQ0USIgdmFsdWU9 Ik9QVDRRMSIgLz48bGFiZWwgZm9yPSJPUFQ0UTEiPlllczwvbGFiZWw+PC9z cGFuPiAgIA0KICA8L1REPg0KICAgPFREIGhlaWdodD0iMjciIHdpZHRoPSI1 MCI+DQogICAgIDxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5wdXQg aWQ9Ik9QVDRRMiIgdHlwZT0icmFkaW8iIG5hbWU9IkdycE9QVDRRIiB2YWx1 ZT0iT1BUNFEyIiAvPjxsYWJlbCBmb3I9Ik9QVDRRMiI+Tm88L2xhYmVsPjwv c3Bhbj4gICANCiAgPC9URD4NCiAgPC9UUj4NCiAgPFRSIGNsYXNzPSJBbHRl cm5hdGVSb3ciPg0KICAgPFREIGhlaWdodD0iMjciIHdpZHRoPSIxMDUwIj4N CiAgICAgIDxzcGFuIGlkPSJMQkxRNSIgY2xhc3M9IlRleHRPcHROb3JtYWwi PkhhcyB0aGlzIHZlaGljbGUgYmVlbiBhbHRlcmVkIHNpbmNlIGxlYXZpbmcg dGhlIGZhY3Rvcnkgb2YgdGhlIG9yaWdpbmFsIG1hbnVmYWN0dXJlciwgc3Vj aCBhcyBtb2RpZnlpbmcgdGhlIHN1c3BlbnNpb24sIHRoZSBleGhhdXN0IHN5 c3RlbSwgb3IgdHJhbnNmb3JtaW5nIGl0IGludG8gYSBjb252ZXJzaW9uIHZh bj88L3NwYW4+DQogICA8L1REPg0KICAgPFREIGhlaWdodD0iMjciIHdpZHRo PSI1NSI+DQogICAgIDxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5w dXQgaWQ9Ik9QVDVRMSIgdHlwZT0icmFkaW8iIG5hbWU9IkdycE9QVDVRIiB2 YWx1ZT0iT1BUNVExIiAvPjxsYWJlbCBmb3I9Ik9QVDVRMSI+WWVzPC9sYWJl bD48L3NwYW4+DQogICA8L1REPg0KICAgPFREIGhlaWdodD0iMjciIHdpZHRo PSI1MCI+DQogICAgIDxzcGFuIGNsYXNzPSJUZXh0T3B0Tm9ybWFsIj48aW5w dXQgaWQ9Ik9QVDVRMiIgdHlwZT0icmFkaW8iIG5hbWU9IkdycE9QVDVRIiB2 YWx1ZT0iT1BUNVEyIiAvPjxsYWJlbCBmb3I9Ik9QVDVRMiI+Tm88L2xhYmVs Pjwvc3Bhbj4NCiAgIDwvVEQ+DQogICA8dGQgd2lkdGg9MjIwIGhlaWdodD0x NT4mbmJzcDs8L1REPg0KDQogIDwvVFI+DQoNCjwvVEFCTEU+DQoNCjwvZGl2 Pg0KPGJyPg0KPCEtLSBuZXh0IGJ1dHRvbiAtLT4NCjxESVYgYWxpZ249ImNl bnRlciI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJjbWROZXh0IiB2 YWx1ZT0iTmV4dCA+PiIgaWQ9ImNtZE5leHQiIGNsYXNzPSJCdXR0b24iIC8+ DQoNCjwvRElWPg0KDQogICAgPC9mb3JtPg0KDQogIDwvYm9keT4NCjwvaHRt bD4NCg== ------------=_1583534384-29879-2-- >From gdb-patches-return-18920-listarch-gdb-patches=sourceware.cygnus.com@sources.redhat.com Tue Sep 24 23:08:00 2002 Return-Path: Delivered-To: listarch-gdb-patches@sourceware.cygnus.com Received: (qmail 29772 invoked by alias); 24 Sep 2002 23:08:00 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Delivered-To: mailing list gdb-patches@sources.redhat.com Received: (qmail 29756 invoked from network); 24 Sep 2002 23:07:57 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 24 Sep 2002 23:07:57 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 3227A3D1E for ; Tue, 24 Sep 2002 19:07:56 -0400 (EDT) Message-ID: <3D90F04C.9040900@redhat.com> Date: Tue, 24 Sep 2002 16:08:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.0) Gecko/20020824 X-Accept-Language: en-us, en MIME-Version: 1.0 To: gdb-patches@sources.redhat.com Subject: [rfa/ppc] Use frame_align(); delete hack Content-Type: multipart/mixed; boundary="------------010807080100010603000500" X-SW-Source: 2002-09/txt/msg00594.txt.bz2 This is a multi-part message in MIME format. --------------010807080100010603000500 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 522 Hello, The attached patch converts the PPC so that it uses the new frame_align() method. In the process it delets that global variable struct return hack. Struct returns involving dummy functions are instead handled by the dummy frame code. The extract struct return function is also modified so that it, for want of a better guess, returns register 3. The other option is to have that function return 0 (since it really doesn't know). The testsuite shows no change (on that GNU/Linux PPC machine). ok? Andrew --------------010807080100010603000500 Content-Type: text/plain; name="diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diffs" Content-length: 3842 2002-09-24 Andrew Cagney * rs6000-tdep.c (rs6000_struct_return_address): Delete variable. (rs6000_store_struct_return): Update. (rs6000_extract_struct_value_address): Rewrite. Return r3. (rs6000_gdbarch_init): Set extract_struct_value_address instead of deprecated_extract_struct_value_address. (rs6000_frame_align): New function. (rs6000_gdbarch_init): Set frame_align. Index: rs6000-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v retrieving revision 1.82 diff -u -r1.82 rs6000-tdep.c --- rs6000-tdep.c 17 Sep 2002 20:42:01 -0000 1.82 +++ rs6000-tdep.c 24 Sep 2002 23:01:33 -0000 @@ -1032,6 +1032,13 @@ } } +/* All the ABI's require 16 byte alignment. */ +static CORE_ADDR +rs6000_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr) +{ + return (addr & -16); +} + /* Pass the arguments in either registers, or in the stack. In RS/6000, the first eight words of the argument list (that might be less than eight parameters if some parameters occupy more than one word) are @@ -1363,13 +1370,6 @@ } } -/* Keep structure return address in this variable. - FIXME: This is a horrid kludge which should not be allowed to continue - living. This only allows a single nested call to a structure-returning - function. Come on, guys! -- gnu@cygnus.com, Aug 92 */ - -static CORE_ADDR rs6000_struct_return_address; - /* Return whether handle_inferior_event() should proceed through code starting at PC in function NAME when stepping. @@ -1979,18 +1979,12 @@ } /* Store the address of the place in which to copy the structure the - subroutine will return. This is called from call_function. - - In RS/6000, struct return addresses are passed as an extra parameter in r3. - In function return, callee is not responsible of returning this address - back. Since gdb needs to find it, we will store in a designated variable - `rs6000_struct_return_address'. */ + subroutine will return. */ static void rs6000_store_struct_return (CORE_ADDR addr, CORE_ADDR sp) { write_register (3, addr); - rs6000_struct_return_address = addr; } /* Write into appropriate registers a function return value @@ -2048,9 +2042,14 @@ as a CORE_ADDR (or an expression that can be used as one). */ static CORE_ADDR -rs6000_extract_struct_value_address (char *regbuf) +rs6000_extract_struct_value_address (struct regcache *regcache) { - return rs6000_struct_return_address; + /* FIXME: This will only work at random. The caller passes the + struct_return address in register 3, but it is not preserved. It + may still be there, or this may be a random value. */ + ULONGEST val; + regcache_cooked_read_unsigned (regcache, 3, &val); + return val; } /* Return whether PC is in a dummy function call. @@ -2877,6 +2876,7 @@ set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0); set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register); set_gdbarch_fix_call_dummy (gdbarch, rs6000_fix_call_dummy); + set_gdbarch_frame_align (gdbarch, rs6000_frame_align); set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame); set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos); set_gdbarch_push_return_address (gdbarch, ppc_push_return_address); @@ -2900,7 +2900,7 @@ set_gdbarch_push_arguments (gdbarch, rs6000_push_arguments); set_gdbarch_store_struct_return (gdbarch, rs6000_store_struct_return); - set_gdbarch_deprecated_extract_struct_value_address (gdbarch, rs6000_extract_struct_value_address); + set_gdbarch_extract_struct_value_address (gdbarch, rs6000_extract_struct_value_address); set_gdbarch_pop_frame (gdbarch, rs6000_pop_frame); set_gdbarch_skip_prologue (gdbarch, rs6000_skip_prologue); --------------010807080100010603000500--