From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750785AbVKIO3o (ORCPT ); Wed, 9 Nov 2005 09:29:44 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750962AbVKIO3n (ORCPT ); Wed, 9 Nov 2005 09:29:43 -0500 Received: from public.id2-vpn.continvity.gns.novell.com ([195.33.99.129]:61491 "EHLO emea1-mh.id2.novell.com") by vger.kernel.org with ESMTP id S1750785AbVKIO3m (ORCPT ); Wed, 9 Nov 2005 09:29:42 -0500 Message-Id: <4372161D.76F0.0078.0@novell.com> X-Mailer: Novell GroupWise Internet Agent 7.0 Date: Wed, 09 Nov 2005 15:30:37 +0100 From: "Jan Beulich" To: Subject: [PATCH 38/39] NLKD/i386 - Remote Debug Agent References: <43720DAE.76F0.0078.0@novell.com> <43720E2E.76F0.0078.0@novell.com> <43720E72.76F0.0078.0@novell.com> <43720EAF.76F0.0078.0@novell.com> <43720F5E.76F0.0078.0@novell.com> <43720F95.76F0.0078.0@novell.com> <43720FBA.76F0.0078.0@novell.com> <43720FF6.76F0.0078.0@novell.com> <43721024.76F0.0078.0@novell.com> <4372105B.76F0.0078.0@novell.com> <43721119.76F0.0078.0@novell.com> <43721142.76F0.0078.0@novell.com> <43721184.76F0.0078.0@novell.com> <4372135F.76F0.0078.0@novell.com> <4372143F.76F0.0078.0@novell.com> <437214B7.76F0.0078.0@novell.com> <4372156A.76F0.0078.0@novell.com> <43721600.76F0.0078.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part4C6E701D.0__=" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part4C6E701D.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline The i386-dependent part of the Remote Debug Agent of NLKD. Signed-Off-By: Jan Beulich (actual patch attached) --=__Part4C6E701D.0__= Content-Type: application/octet-stream; name="nlkd-rda-i386.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nlkd-rda-i386.patch" VGhlIGkzODYtZGVwZW5kZW50IHBhcnQgb2YgdGhlIFJlbW90ZSBEZWJ1ZyBBZ2VudCBvZiBOTEtE LgoKU2lnbmVkLU9mZi1CeTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQG5vdmVsbC5jb20+CgpJbmRl eDogMi42LjE0LW5sa2QvZGVidWcvbmxrZC9yZGEvcmRhSUEzMi5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysgMi42LjE0LW5s a2QvZGVidWcvbmxrZC9yZGEvcmRhSUEzMi5jCTIwMDUtMDYtMjcgMTI6MDA6NDEuMDAwMDAwMDAw ICswMjAwCkBAIC0wLDAgKzEsNDMxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAg IEZpbGUgTmFtZTogICAgICByZGFJQTMyLmMKKyAqICAgQ3JlYXRlZCBieTogICAgIEphbiBCZXVs aWNoCisgKiAgIERhdGUgY3JlYXRlZDogICAyM0phbjIwMDMKKyAqCisgKiAgICV2ZXJzaW9uOiAg ICAgICA3ICUKKyAqICAgJWRlcml2ZWRfYnk6ICAgIGpiZXVsaWNoICUKKyAqICAgJWRhdGVfbW9k aWZpZWQ6IE1vbiBKdW4gMjcgMDQ6MDA6MzAgMjAwNSAlCisgKgorICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIENv cHlyaWdodCAoYykgMjAwMy0yMDA1IE5vdmVsbCwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAg ICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAgICAg ICAgICoKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdmVyc2lvbiAyIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgKgorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgICAgICAgICAgKgorICogYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgICAg ICAgICAqCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuIFNlZSB0aGUgICAgICAgICAgICAgICoKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgICAgICAgICoKKyAqIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBpZiBub3QsIGNvbnRhY3QgTm92ZWxsLCBJbmMuICAgICAgICAgICAgICAg ICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBUbyBjb250YWN0IE5vdmVsbCBhYm91 dCB0aGlzIGZpbGUgYnkgcGh5c2ljYWwgb3IgZWxlY3Ryb25pYyBtYWlsLCAgICAgICAgICoKKyAq IHlvdSBtYXkgZmluZCBjdXJyZW50IGNvbnRhY3QgaW5mb3JtYXRpb24gYXQgd3d3Lm5vdmVsbC5j b20uICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKglGaWxlIERlc2NyaXB0aW9u OgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgPGFzbS9jZGUuaD4KKwor I2luY2x1ZGUgInJkYS5oIgorCisjZGVmaW5lIHJfRlRXIChyX2ludmFsaWQgLSAxKQorI2RlZmlu ZSByX0ZJUCAocl9pbnZhbGlkIC0gMikKKyNkZWZpbmUgcl9GRFAgKHJfaW52YWxpZCAtIDMpCisj ZGVmaW5lIHJfRk9QIChyX2ludmFsaWQgLSA0KQorCisjdW5kZWYgRUFYIC8qIGNvbGxpZGluZyB3 aXRoIGluY2x1ZGUvYXNtL3B0cmFjZS5oICovCisjdW5kZWYgRUNYCisjdW5kZWYgRURYCisjdW5k ZWYgRUJYCisjdW5kZWYgRUJQCisjdW5kZWYgRVNQCisjdW5kZWYgRVNJCisjdW5kZWYgRURJCisj dW5kZWYgRUlQCisjdW5kZWYgQ1MKKyN1bmRlZiBEUworI3VuZGVmIEVTCisjdW5kZWYgRlMKKyN1 bmRlZiBHUworI3VuZGVmIFNTCisjZGVmaW5lIFJFR0lORk8oZ2RiLCB3LCBjbHMsIGlkeCkgZ2Ri LAorZW51bSBnZGJfcmVnaXN0ZXJzIHsKKyNpbmNsdWRlICJyZGFJQTMyLmluY2wiCisJZ2RiQ09V TlQKK307CisjdW5kZWYgUkVHSU5GTworCit1bmlvbiBmcHJlZ191IHsKKwlmbG9hdDgwX3QgcmF3 OworCXN0cnVjdCB7CisJCXVpbnQzMl90IG1hbnRfbG87CisJCXVpbnQzMl90IG1hbnRfaGk7CisJ CXVpbnQxNl90IHNpZ25fZXhwOworCX07Cit9OworCitjZGVCb29sX3QgcmRhU2V0UEMoUmRhU2Vz c2lvblN0YXRlKnN0YXRlLCB1aW50cHRyX3QgYWRkcmVzcykgeworCWlmKCFjZGVXcml0ZUVJUChz dGF0ZS0+Y3VycmVudEZyYW1lLCBhZGRyZXNzKSkgeworCQlyZGFFcnJvcihzdGF0ZSwgUkRBX0VJ TlZBTCk7CisJCXJldHVybiBjZGVGYWxzZTsKKwl9CisJcmV0dXJuIGNkZVRydWU7Cit9CisKK3Zv aWQgcmRhUHV0RnJhbWVJbmZvKFJkYVNlc3Npb25TdGF0ZSpzdGF0ZSkgeworCWNvbnN0IGZ0YUZ1 bGxJbnRlcnJ1cHRpb25DdHhfdCpmcmFtZSA9IHN0YXRlLT5jdXJyZW50RnJhbWU7CisJaW50IHNp Z3ZhbDsKKwl1aW50MzJfdCB2YWx1ZTsKKworCXN3aXRjaChjZGVHZXRJbnRlcnJ1cHRpb25UeXBl KGZyYW1lLCBOVUxMKSkgeworCWRlZmF1bHQ6CisJCXNpZ3ZhbCA9IDI7CisJCWJyZWFrOworCWNh c2UgSUEzMl9JTExFR0FMX09QQ09ERToKKwkJc2lndmFsID0gNDsKKwkJYnJlYWs7CisJY2FzZSBJ QTMyX0RFQlVHOgorCWNhc2UgSUEzMl9CUkVBS1BPSU5UOgorCQlzaWd2YWwgPSA1OworCQlicmVh azsKKwljYXNlIElBMzJfUlNWRF8wRjoKKwljYXNlIElBMzJfUlNWRF8xNDoKKwljYXNlIElBMzJf UlNWRF8xNToKKwljYXNlIElBMzJfUlNWRF8xNjoKKwljYXNlIElBMzJfUlNWRF8xNzoKKwljYXNl IElBMzJfUlNWRF8xODoKKwljYXNlIElBMzJfUlNWRF8xOToKKwljYXNlIElBMzJfUlNWRF8xQToK KwljYXNlIElBMzJfUlNWRF8xQjoKKwljYXNlIElBMzJfUlNWRF8xQzoKKwljYXNlIElBMzJfUlNW RF8xRDoKKwljYXNlIElBMzJfUlNWRF8xRToKKwljYXNlIElBMzJfUlNWRF8xRjoKKwkJc2lndmFs ID0gNjsKKwkJYnJlYWs7CisJY2FzZSBJQTMyX0RPVUJMRV9GQVVMVDoKKwkJc2lndmFsID0gNzsK KwkJYnJlYWs7CisJY2FzZSBJQTMyX0RJVklERV9FUlJPUjoKKwljYXNlIElBMzJfREVWSUNFX05P VF9BVkFJTEFCTEU6CisJY2FzZSBJQTMyX0ZQX0VSUk9SOgorCWNhc2UgSUEzMl9TSU1EX0ZQX0VS Uk9SOgorCQlzaWd2YWwgPSA4OworCQlicmVhazsKKwljYXNlIElBMzJfQUxJR05NRU5UX0NIRUNL OgorCQlzaWd2YWwgPSAxMDsKKwkJYnJlYWs7CisJY2FzZSBJQTMyX0NPUFJPQ0VTU09SX1NFR01F TlRfT1ZFUlJVTjoKKwljYXNlIElBMzJfSU5WQUxJRF9UU1M6CisJY2FzZSBJQTMyX1NFR01FTlRf Tk9UX1BSRVNFTlQ6CisJY2FzZSBJQTMyX0dFTkVSQUxfUFJPVEVDVElPTl9GQVVMVDoKKwljYXNl IElBMzJfUEFHRV9GQVVMVDoKKwkJc2lndmFsID0gMTE7CisJCWJyZWFrOworCWNhc2UgSUEzMl9P VkVSRkxPVzoKKwljYXNlIElBMzJfQk9VTkRTX0NIRUNLOgorCWNhc2UgSUEzMl9TVEFDS19GQVVM VDoKKwkJc2lndmFsID0gMTY7CisJCWJyZWFrOworCX0KKwlyZGFQdXRIZXgoc3RhdGUsIHNpZ3Zh bCwgMSk7CisJcmRhUHV0SGV4KHN0YXRlLCBFSVAsIDApOworCXJkYVB1dENoYXIoc3RhdGUsICc6 Jyk7CisJcmRhUHV0SGV4KHN0YXRlLCBjZGVSZWFkRUlQKGZyYW1lKSwgLTQpOworCXJkYVB1dENo YXIoc3RhdGUsICc7Jyk7CisJaWYoY2RlUmVhZEdSKHJlZ19lc3AsIGZyYW1lLCAmdmFsdWUpKSB7 CisJCXJkYVB1dEhleChzdGF0ZSwgRVNQLCAwKTsKKwkJcmRhUHV0Q2hhcihzdGF0ZSwgJzonKTsK KwkJcmRhUHV0SGV4KHN0YXRlLCB2YWx1ZSwgLTQpOworCQlyZGFQdXRDaGFyKHN0YXRlLCAnOycp OworCX0KKwlpZihjZGVSZWFkR1IocmVnX2VicCwgZnJhbWUsICZ2YWx1ZSkpIHsKKwkJcmRhUHV0 SGV4KHN0YXRlLCBFQlAsIDApOworCQlyZGFQdXRDaGFyKHN0YXRlLCAnOicpOworCQlyZGFQdXRI ZXgoc3RhdGUsIHZhbHVlLCAtNCk7CisJCXJkYVB1dENoYXIoc3RhdGUsICc7Jyk7CisJfQorfQor CisjZGVmaW5lIFJFR0lORk8oZ2RiLCB3LCBjbHMsIGlkeCkge3JfIyNjbHMsIGlkeH0sCitzdGF0 aWMgY29uc3Qgc3RydWN0IHJlZ0luZm8geworCXNpZ25lZCBjaGFyIHR5cGU7CisJdW5zaWduZWQg Y2hhciBpbmRleDsKK30gcmVnSW5mb1tdID0geworI2luY2x1ZGUgInJkYUlBMzIuaW5jbCIKK307 CisjdW5kZWYgUkVHSU5GTworCit2b2lkIHJkYUdldFJlZ2lzdGVycyhSZGFTZXNzaW9uU3RhdGUq c3RhdGUsCisJCWNvbnN0IGNoYXIqaW5wdXQsCisJCXNpemVfdCBpbnB1dFNpemUpIHsKKwl1bnNp Z25lZCBpOworCisJaWYoc3RhdGUtPmN1cnJlbnRGcmFtZSA9PSBOVUxMKSB7CisJCXJkYUVycm9y KHN0YXRlLCBSREFfRUFHQUlOKTsKKwkJcmV0dXJuOworCX0KKwlpZihpbnB1dFNpemUgIT0gMCkg eworCQlyZGFFcnJvcihzdGF0ZSwgUkRBX0VJTlZBTCk7CisJCXJldHVybjsKKwl9CisJZm9yKGkg PSAwOyBpIDwgZ2RiQ09VTlQ7ICsraSkgeworCQlzd2l0Y2gocmVnSW5mb1tpXS50eXBlKSB7CisJ CWNhc2Ugcl9laXA6CisJCQlyZGFQdXRIZXgoc3RhdGUsIGNkZVJlYWRFSVAoc3RhdGUtPmN1cnJl bnRGcmFtZSksIC00KTsKKwkJCWJyZWFrOworCQljYXNlIHJfZWZsYWdzOgorCQkJcmRhUHV0SGV4 KHN0YXRlLCBjZGVSZWFkRUZMQUdTKHN0YXRlLT5jdXJyZW50RnJhbWUpLCAtNCk7CisJCQlicmVh azsKKwkJY2FzZSByX2dlbmVyYWw6IHsKKwkJCQl1aW50MzJfdCB2YWx1ZTsKKworCQkJCWlmKCFj ZGVSZWFkR1IocmVnSW5mb1tpXS5pbmRleCwgc3RhdGUtPmN1cnJlbnRGcmFtZSwgJnZhbHVlKSkK KwkJCQkJdmFsdWUgPSAwOworCQkJCXJkYVB1dEhleChzdGF0ZSwgdmFsdWUsIC00KTsKKwkJCX0K KwkJCWJyZWFrOworCQljYXNlIHJfc2VsZWN0b3I6IHsKKwkJCQl1aW50MTZfdCB2YWx1ZTsKKwor CQkJCWlmKCFjZGVSZWFkU1IocmVnSW5mb1tpXS5pbmRleCwgc3RhdGUtPmN1cnJlbnRGcmFtZSwg JnZhbHVlKSkKKwkJCQkJdmFsdWUgPSAwOworCQkJCXJkYVB1dEhleChzdGF0ZSwgdmFsdWUsIC00 KTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIHJfZmxvYXRpbmc6IHsKKwkJCQl1bmlvbiBmcHJl Z191IHZhbHVlOworCisJCQkJaWYoIWNkZVJlYWRGUihyZWdJbmZvW2ldLmluZGV4LCBzdGF0ZS0+ Y3VycmVudEZyYW1lLCAmdmFsdWUucmF3KSkKKwkJCQkJZGJnWmVyb01lbSgmdmFsdWUsIHNpemVv Zih2YWx1ZSkpOworCQkJCXJkYVB1dEhleChzdGF0ZSwgdmFsdWUubWFudF9sbywgLTQpOworCQkJ CXJkYVB1dEhleChzdGF0ZSwgdmFsdWUubWFudF9oaSwgLTQpOworCQkJCXJkYVB1dEhleChzdGF0 ZSwgdmFsdWUuc2lnbl9leHAsIC0yKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIHJfZmN3OiB7 CisJCQkJdWludDE2X3QgdmFsdWU7CisKKwkJCQlpZighY2RlUmVhZEZwdUNvbnRyb2xXb3JkKHN0 YXRlLT5jdXJyZW50RnJhbWUsICZ2YWx1ZSkpCisJCQkJCXZhbHVlID0gMDsKKwkJCQlyZGFQdXRI ZXgoc3RhdGUsIHZhbHVlLCAtNCk7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSByX2Zzdzogewor CQkJCXVpbnQxNl90IHZhbHVlOworCisJCQkJaWYoIWNkZVJlYWRGcHVTdGF0dXNXb3JkKHN0YXRl LT5jdXJyZW50RnJhbWUsICZ2YWx1ZSkpCisJCQkJCXZhbHVlID0gMDsKKwkJCQlyZGFQdXRIZXgo c3RhdGUsIHZhbHVlLCAtNCk7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSByX0ZUVzogeworCQkJ CXVpbnQxNl90IHZhbHVlOworCisJCQkJaWYoIWNkZVJlYWRGcHVUYWdXb3JkKHN0YXRlLT5jdXJy ZW50RnJhbWUsICZ2YWx1ZSkpCisJCQkJCXZhbHVlID0gMDsKKwkJCQlyZGFQdXRIZXgoc3RhdGUs IHZhbHVlLCAtNCk7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSByX0ZJUDogeworCQkJCXN0cnVj dCBDZGVBZGRyZXNzIGFkZHJlc3M7CisKKwkJCQlpZighY2RlUmVhZEZwdUNvZGVQb2ludGVyKHN0 YXRlLT5jdXJyZW50RnJhbWUsICZhZGRyZXNzKSkKKwkJCQkJZGJnWmVyb01lbSgmYWRkcmVzcywg c2l6ZW9mKGFkZHJlc3MpKTsKKwkJCQlyZGFQdXRIZXgoc3RhdGUsIHJlZ0luZm9baV0uaW5kZXgg PyBhZGRyZXNzLnNlbGVjdG9yIDogYWRkcmVzcy5vZmZzZXQsIC00KTsKKwkJCX0KKwkJCWJyZWFr OworCQljYXNlIHJfRkRQOiB7CisJCQkJc3RydWN0IENkZUFkZHJlc3MgYWRkcmVzczsKKworCQkJ CWlmKCFjZGVSZWFkRnB1RGF0YVBvaW50ZXIoc3RhdGUtPmN1cnJlbnRGcmFtZSwgJmFkZHJlc3Mp KQorCQkJCQlkYmdaZXJvTWVtKCZhZGRyZXNzLCBzaXplb2YoYWRkcmVzcykpOworCQkJCXJkYVB1 dEhleChzdGF0ZSwgcmVnSW5mb1tpXS5pbmRleCA/IGFkZHJlc3Muc2VsZWN0b3IgOiBhZGRyZXNz Lm9mZnNldCwgLTQpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2Ugcl9GT1A6IHsKKwkJCQl1aW50 MTZfdCB2YWx1ZTsKKworCQkJCWlmKCFjZGVSZWFkRnB1T3Bjb2RlKHN0YXRlLT5jdXJyZW50RnJh bWUsICZ2YWx1ZSkpCisJCQkJCXZhbHVlID0gMDsKKwkJCQlyZGFQdXRIZXgoc3RhdGUsIHZhbHVl LCAtNCk7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSByX3htbToKKwkJCWlmKGNkZVdyaXRlTVhD U1IoTlVMTCwgMCkpIHsKKwkJCQl4bW1yZWdfdCB2YWx1ZTsKKworCQkJCWlmKCFjZGVSZWFkWE1N KHJlZ0luZm9baV0uaW5kZXgsIHN0YXRlLT5jdXJyZW50RnJhbWUsICZ2YWx1ZSkpCisJCQkJCWRi Z1plcm9NZW0oJnZhbHVlLCBzaXplb2YodmFsdWUpKTsKKwkJCQlyZGFQdXRIZXgoc3RhdGUsIHZh bHVlLmRbMF0sIC00KTsKKwkJCQlyZGFQdXRIZXgoc3RhdGUsIHZhbHVlLmRbMV0sIC00KTsKKwkJ CQlyZGFQdXRIZXgoc3RhdGUsIHZhbHVlLmRbMl0sIC00KTsKKwkJCQlyZGFQdXRIZXgoc3RhdGUs IHZhbHVlLmRbM10sIC00KTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIHJfbXhjc3I6CisJCQlp ZihjZGVXcml0ZU1YQ1NSKE5VTEwsIDApKSB7CisJCQkJdWludDMyX3QgdmFsdWU7CisKKwkJCQlp ZighY2RlUmVhZE1YQ1NSKHN0YXRlLT5jdXJyZW50RnJhbWUsICZ2YWx1ZSkpCisJCQkJCWRiZ1pl cm9NZW0oJnZhbHVlLCBzaXplb2YodmFsdWUpKTsKKwkJCQlyZGFQdXRIZXgoc3RhdGUsIHZhbHVl LCAtNCk7CisJCQl9CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCVJUQVNTRVJUKCEocmVnSW5m byArIGkpKTsKKwkJCWJyZWFrOworCQl9CisJfQorfQorCitzdGF0aWMgY2RlQm9vbF90IHNldFJl ZyhSZGFTZXNzaW9uU3RhdGUqc3RhdGUsCisJCWNvbnN0IHN0cnVjdCByZWdJbmZvKmluZm8sCisJ CWNvbnN0IGNoYXIqKnBJbnB1dCkgeworCWNkZUJvb2xfdCByZXN1bHQgPSBjZGVGYWxzZTsKKwor CXN3aXRjaChpbmZvLT50eXBlKSB7CisJCXVpbnQzMl90IHZhbHVlOworCisJY2FzZSByX2VpcDoK KwkJdmFsdWUgPSByZGFHZXRIZXgoKnBJbnB1dCwgcElucHV0LCAtNCk7CisJCWlmKCpwSW5wdXQg IT0gTlVMTCkKKwkJCXJlc3VsdCA9IGNkZVdyaXRlRUlQKHN0YXRlLT5jdXJyZW50RnJhbWUsIHZh bHVlKTsKKwkJYnJlYWs7CisJY2FzZSByX2VmbGFnczoKKwkJdmFsdWUgPSByZGFHZXRIZXgoKnBJ bnB1dCwgcElucHV0LCAtNCk7CisJCWlmKCpwSW5wdXQgIT0gTlVMTCkKKwkJCXJlc3VsdCA9IGNk ZVdyaXRlRUZMQUdTKHN0YXRlLT5jdXJyZW50RnJhbWUsIHZhbHVlKTsKKwkJYnJlYWs7CisJY2Fz ZSByX2dlbmVyYWw6CisJCXZhbHVlID0gcmRhR2V0SGV4KCpwSW5wdXQsIHBJbnB1dCwgLTQpOwor CQlpZigqcElucHV0ICE9IE5VTEwpCisJCQlyZXN1bHQgPSBjZGVXcml0ZUdSKGluZm8tPmluZGV4 LCBzdGF0ZS0+Y3VycmVudEZyYW1lLCB2YWx1ZSk7CisJCWJyZWFrOworCWNhc2Ugcl9zZWxlY3Rv cjoKKwkJdmFsdWUgPSByZGFHZXRIZXgoKnBJbnB1dCwgcElucHV0LCAtNCk7CisJCWlmKCpwSW5w dXQgIT0gTlVMTCkKKwkJCXJlc3VsdCA9ICh2YWx1ZSA9PSAodWludDE2X3QpdmFsdWUgJiYgY2Rl V3JpdGVTUihpbmZvLT5pbmRleCwgc3RhdGUtPmN1cnJlbnRGcmFtZSwgKHVpbnQxNl90KXZhbHVl KSk7CisJCWJyZWFrOworCWNhc2Ugcl9mbG9hdGluZzogeworCQkJdW5pb24gZnByZWdfdSB2YWx1 ZTsKKworCQkJdmFsdWUubWFudF9sbyA9IHJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC00KTsK KwkJCWlmKCpwSW5wdXQgIT0gTlVMTCkKKwkJCQl2YWx1ZS5tYW50X2hpID0gcmRhR2V0SGV4KCpw SW5wdXQsIHBJbnB1dCwgLTQpOworCQkJaWYoKnBJbnB1dCAhPSBOVUxMKQorCQkJCXZhbHVlLnNp Z25fZXhwID0gKHVpbnQxNl90KXJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC0yKTsKKwkJCWlm KCpwSW5wdXQgIT0gTlVMTCkKKwkJCQlyZXN1bHQgPSBjZGVXcml0ZUZSKGluZm8tPmluZGV4LCBz dGF0ZS0+Y3VycmVudEZyYW1lLCAmdmFsdWUucmF3KTsKKwkJfQorCQlicmVhazsKKwljYXNlIHJf ZmN3OgorCQl2YWx1ZSA9IHJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC00KTsKKwkJaWYoKnBJ bnB1dCAhPSBOVUxMKQorCQkJcmVzdWx0ID0gKHZhbHVlID09ICh1aW50MTZfdCl2YWx1ZSAmJiBj ZGVXcml0ZUZwdUNvbnRyb2xXb3JkKHN0YXRlLT5jdXJyZW50RnJhbWUsICh1aW50MTZfdCl2YWx1 ZSkpOworCQlicmVhazsKKwljYXNlIHJfZnN3OgorCQl2YWx1ZSA9IHJkYUdldEhleCgqcElucHV0 LCBwSW5wdXQsIC00KTsKKwkJaWYoKnBJbnB1dCAhPSBOVUxMKQorCQkJcmVzdWx0ID0gKHZhbHVl ID09ICh1aW50MTZfdCl2YWx1ZSAmJiBjZGVXcml0ZUZwdVN0YXR1c1dvcmQoc3RhdGUtPmN1cnJl bnRGcmFtZSwgKHVpbnQxNl90KXZhbHVlKSk7CisJCWJyZWFrOworCWNhc2Ugcl9GVFc6CisJCXZh bHVlID0gcmRhR2V0SGV4KCpwSW5wdXQsIHBJbnB1dCwgLTQpOworCQlpZigqcElucHV0ICE9IE5V TEwpCisJCQlyZXN1bHQgPSAodmFsdWUgPT0gKHVpbnQxNl90KXZhbHVlICYmIGNkZVdyaXRlRnB1 VGFnV29yZChzdGF0ZS0+Y3VycmVudEZyYW1lLCAodWludDE2X3QpdmFsdWUpKTsKKwkJYnJlYWs7 CisJY2FzZSByX0ZJUDoKKwljYXNlIHJfRkRQOgorCWNhc2Ugcl9GT1A6CisJCXJlc3VsdCA9IGNk ZUZhbHNlOworCQlicmVhazsKKwljYXNlIHJfeG1tOiB7CisJCQl4bW1yZWdfdCB2YWx1ZTsKKwor CQkJdmFsdWUuZFswXSA9IHJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC00KTsKKwkJCWlmKCpw SW5wdXQgIT0gTlVMTCkKKwkJCQl2YWx1ZS5kWzFdID0gcmRhR2V0SGV4KCpwSW5wdXQsIHBJbnB1 dCwgLTQpOworCQkJaWYoKnBJbnB1dCAhPSBOVUxMKQorCQkJCXZhbHVlLmRbMl0gPSByZGFHZXRI ZXgoKnBJbnB1dCwgcElucHV0LCAtNCk7CisJCQlpZigqcElucHV0ICE9IE5VTEwpCisJCQkJdmFs dWUuZFszXSA9IHJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC00KTsKKwkJCWlmKCpwSW5wdXQg IT0gTlVMTCkKKwkJCQlyZXN1bHQgPSBjZGVXcml0ZVhNTShpbmZvLT5pbmRleCwgc3RhdGUtPmN1 cnJlbnRGcmFtZSwgJnZhbHVlKTsKKwkJfQorCQlicmVhazsKKwljYXNlIHJfbXhjc3I6CisJCXZh bHVlID0gcmRhR2V0SGV4KCpwSW5wdXQsIHBJbnB1dCwgLTQpOworCQlpZigqcElucHV0ICE9IE5V TEwpCisJCQlyZXN1bHQgPSBjZGVXcml0ZU1YQ1NSKHN0YXRlLT5jdXJyZW50RnJhbWUsIHZhbHVl KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJUlRBU1NFUlQoIWluZm8pOworCQlicmVhazsKKwl9 CisJaWYoKnBJbnB1dCA9PSBOVUxMKSB7CisJCXJkYUVycm9yKHN0YXRlLCBSREFfRUZPUk1BVCk7 CisJCXJlc3VsdCA9IGNkZUZhbHNlOworCX0KKwllbHNlIGlmKCFyZXN1bHQpCisJCXJkYUVycm9y KHN0YXRlLCBSREFfRUlOVkFMKTsKKwlyZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHJkYVNldFJl Z2lzdGVycyhSZGFTZXNzaW9uU3RhdGUqc3RhdGUsCisJCWNvbnN0IGNoYXIqaW5wdXQsCisJCXNp emVfdCBpbnB1dFNpemUpIHsKKwl1bnNpZ25lZCBpbmRleDsKKwljb25zdCBjaGFyKmVuZDsKKwor CWlmKHN0YXRlLT5jdXJyZW50RnJhbWUgPT0gTlVMTCkgeworCQlyZGFFcnJvcihzdGF0ZSwgUkRB X0VBR0FJTik7CisJCXJldHVybjsKKwl9CisJaWYoaW5wdXRTaXplICYgMSkgeworCQlyZGFFcnJv cihzdGF0ZSwgUkRBX0VJTlZBTCk7CisJCXJldHVybjsKKwl9CisJZm9yKGluZGV4ID0gMCwgZW5k ID0gaW5wdXQ7IGluZGV4IDwgZ2RiQ09VTlQ7ICsraW5kZXgpIHsKKwkJaWYoIXNldFJlZyhzdGF0 ZSwgcmVnSW5mbyArIGluZGV4LCAmZW5kKSkKKwkJCXJldHVybjsKKwkJaWYoaW5wdXQgKyBpbnB1 dFNpemUgPT0gZW5kKQorCQkJYnJlYWs7CisJfQorCWlmKGluZGV4ID09IGdkYkNPVU5UKQorCQly ZGFPSyhzdGF0ZSk7CisJZWxzZQorCQlyZGFFcnJvcihzdGF0ZSwgUkRBX0VQQVJUSUFMKTsKK30K Kwordm9pZCByZGFTZXRSZWdpc3RlcihSZGFTZXNzaW9uU3RhdGUqc3RhdGUsCisJCWNvbnN0IGNo YXIqaW5wdXQsCisJCXNpemVfdCBpbnB1dFNpemUpIHsKKwljb25zdCBjaGFyKmVuZDsKKwl1aW50 cHRyX3QgaW5kZXggPSByZGFHZXRIZXgoaW5wdXQsICZlbmQsIDApOworCisJaWYoaW5kZXggPj0g Z2RiQ09VTlQpIHsKKwkJcmRhRXJyb3Ioc3RhdGUsIFJEQV9FSU5WQUwpOworCQlyZXR1cm47CisJ fQorCWlmKHN0YXRlLT5jdXJyZW50RnJhbWUgPT0gTlVMTCkgeworCQlyZGFFcnJvcihzdGF0ZSwg UkRBX0VBR0FJTik7CisJCXJldHVybjsKKwl9CisJaWYoIXNldFJlZyhzdGF0ZSwgcmVnSW5mbyAr IGluZGV4LCAmaW5wdXQpKQorCQlyZXR1cm47CisJaWYoaW5wdXQgKyBpbnB1dFNpemUgPT0gZW5k KQorCQlyZGFPSyhzdGF0ZSk7CisJZWxzZQorCQlyZGFFcnJvcihzdGF0ZSwgUkRBX0VGT1JNQVQp OworfQpJbmRleDogMi42LjE0LW5sa2QvZGVidWcvbmxrZC9yZGEvcmRhSUEzMi5pbmNsCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAor KysgMi42LjE0LW5sa2QvZGVidWcvbmxrZC9yZGEvcmRhSUEzMi5pbmNsCTIwMDUtMDYtMjcgMTI6 MDE6MDYuMDAwMDAwMDAwICswMjAwCkBAIC0wLDAgKzEsNzggQEAKKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorICoKKyAqICAgRmlsZSBOYW1lOiAgICAgIHJkYUlBMzIuaW5jbAorICogICBDcmVhdGVk IGJ5OiAgICAgSmFuIEJldWxpY2gKKyAqICAgRGF0ZSBjcmVhdGVkOiAgIDIzSmFuMjAwMworICoK KyAqICAgJXZlcnNpb246ICAgICAgIDMgJQorICogICAlZGVyaXZlZF9ieTogICAgamJldWxpY2gg JQorICogICAlZGF0ZV9tb2RpZmllZDogTW9uIEp1biAyNyAwNDowMDo1NSAyMDA1ICUKKyAqCisg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKgorICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgTm92ZWxsLCBJbmMuIEFsbCBS aWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoK KyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgICAgICAgICAgICAgKgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB2 ZXJzaW9uIDIgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICAqCisgKiBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgICAgICAgICAq CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiAgICAgICAgICAgICoKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSAgICAgICAgICAgICAgKgorICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICAgICAgICAg KgorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgY29udGFjdCBOb3ZlbGwsIElu Yy4gICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRvIGNv bnRhY3QgTm92ZWxsIGFib3V0IHRoaXMgZmlsZSBieSBwaHlzaWNhbCBvciBlbGVjdHJvbmljIG1h aWwsICAgICAgICAgKgorICogeW91IG1heSBmaW5kIGN1cnJlbnQgY29udGFjdCBpbmZvcm1hdGlv biBhdCB3d3cubm92ZWxsLmNvbS4gICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAq CUZpbGUgRGVzY3JpcHRpb246CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitSRUdJTkZP KEVBWCwgICAgNCwgZ2VuZXJhbCwgIHJlZ19lYXgpCitSRUdJTkZPKEVDWCwgICAgNCwgZ2VuZXJh bCwgIHJlZ19lY3gpCitSRUdJTkZPKEVEWCwgICAgNCwgZ2VuZXJhbCwgIHJlZ19lZHgpCitSRUdJ TkZPKEVCWCwgICAgNCwgZ2VuZXJhbCwgIHJlZ19lYngpCitSRUdJTkZPKEVTUCwgICAgNCwgZ2Vu ZXJhbCwgIHJlZ19lc3ApCitSRUdJTkZPKEVCUCwgICAgNCwgZ2VuZXJhbCwgIHJlZ19lYnApCitS RUdJTkZPKEVTSSwgICAgNCwgZ2VuZXJhbCwgIHJlZ19lc2kpCitSRUdJTkZPKEVESSwgICAgNCwg Z2VuZXJhbCwgIHJlZ19lZGkpCitSRUdJTkZPKEVJUCwgICAgNCwgZWlwLCAgICAgIDApCitSRUdJ TkZPKEVGTEFHUywgNCwgZWZsYWdzLCAgIDApCitSRUdJTkZPKENTLCAgICAgNCwgc2VsZWN0b3Is IHNyZWdfY3MpCitSRUdJTkZPKFNTLCAgICAgNCwgc2VsZWN0b3IsIHNyZWdfc3MpCitSRUdJTkZP KERTLCAgICAgNCwgc2VsZWN0b3IsIHNyZWdfZHMpCitSRUdJTkZPKEVTLCAgICAgNCwgc2VsZWN0 b3IsIHNyZWdfZXMpCitSRUdJTkZPKEZTLCAgICAgNCwgc2VsZWN0b3IsIHNyZWdfZnMpCitSRUdJ TkZPKEdTLCAgICAgNCwgc2VsZWN0b3IsIHNyZWdfZ3MpCitSRUdJTkZPKFNUMCwgICAxMCwgZmxv YXRpbmcsIHN0MCkKK1JFR0lORk8oU1QxLCAgIDEwLCBmbG9hdGluZywgc3QxKQorUkVHSU5GTyhT VDIsICAgMTAsIGZsb2F0aW5nLCBzdDIpCitSRUdJTkZPKFNUMywgICAxMCwgZmxvYXRpbmcsIHN0 MykKK1JFR0lORk8oU1Q0LCAgIDEwLCBmbG9hdGluZywgc3Q0KQorUkVHSU5GTyhTVDUsICAgMTAs IGZsb2F0aW5nLCBzdDUpCitSRUdJTkZPKFNUNiwgICAxMCwgZmxvYXRpbmcsIHN0NikKK1JFR0lO Rk8oU1Q3LCAgIDEwLCBmbG9hdGluZywgc3Q3KQorUkVHSU5GTyhGQ1RSTCwgIDQsIGZjdywgICAg ICAwKQorUkVHSU5GTyhGU1RBVCwgIDQsIGZzdywgICAgICAwKQorUkVHSU5GTyhGVEFHLCAgIDQs IEZUVywgICAgICAwKQorUkVHSU5GTyhGSVNFRywgIDQsIEZJUCwgICAgICAxKQorUkVHSU5GTyhG SU9GRiwgIDQsIEZJUCwgICAgICAwKQorUkVHSU5GTyhGT1NFRywgIDQsIEZEUCwgICAgICAxKQor UkVHSU5GTyhGT09GRiwgIDQsIEZEUCwgICAgICAwKQorUkVHSU5GTyhGT1AsICAgIDQsIEZPUCwg ICAgICAwKQorUkVHSU5GTyhYTU0wLCAgMTYsIHhtbSwgICAgICAwKQorUkVHSU5GTyhYTU0xLCAg MTYsIHhtbSwgICAgICAxKQorUkVHSU5GTyhYTU0yLCAgMTYsIHhtbSwgICAgICAyKQorUkVHSU5G TyhYTU0zLCAgMTYsIHhtbSwgICAgICAzKQorUkVHSU5GTyhYTU00LCAgMTYsIHhtbSwgICAgICA0 KQorUkVHSU5GTyhYTU01LCAgMTYsIHhtbSwgICAgICA1KQorUkVHSU5GTyhYTU02LCAgMTYsIHht bSwgICAgICA2KQorUkVHSU5GTyhYTU03LCAgMTYsIHhtbSwgICAgICA3KQorUkVHSU5GTyhNWENT UiwgIDQsIG14Y3NyLCAgICAwKQo= --=__Part4C6E701D.0__=--