From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from exchange.timesys.com (mail.timesys.com [65.117.135.102]) by ozlabs.org (Postfix) with ESMTP id C0F5467A76 for ; Sat, 19 Mar 2005 05:43:18 +1100 (EST) From: Jason McMullan To: Kumar Gala In-Reply-To: References: <20050316231800.GD8345@smtp.west.cox.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-AW/Y1I/RJiaAElitzp/n" Date: Fri, 18 Mar 2005 13:43:11 -0500 Message-Id: <1111171391.2987.24.camel@ad.doubleclick.net> Mime-Version: 1.0 Cc: Tom Rini , linuxppc-embedded Linux list Subject: Re: 440EP FPU patch List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , --=-AW/Y1I/RJiaAElitzp/n Content-Type: multipart/mixed; boundary="=-JqLluudmYZOgRlrZ04rJ" --=-JqLluudmYZOgRlrZ04rJ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2005-03-18 at 10:06 -0600, Kumar Gala wrote: > Can you build your patch for the lopec_defconfig and fix the errors=20 > associated with enabling altivec. >=20 > Looks like you need to include asm/offset.h & asm/page.h in vector.S,=20 > however there is another build error after that. Thanks! That also found a linking bug, fixed in this patch.. Please double check the call in 'AltiVecUnavalible' in head.S, and the re-load of 'ctr' at the end of load_up_altivec, as I do not have an AltiVec machine here. --=20 Jason McMullan TimeSys Corporation --=-JqLluudmYZOgRlrZ04rJ Content-Disposition: attachment; filename=cpu-ppc-fpu.patch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=cpu-ppc-fpu.patch; charset=iso-8859-1 TWFpbnRhaW5lcjogSmFzb24gTWNNdWxsYW4gPGphc29uLm1jbXVsbGFuQHRpbWVzeXMuY29tPg0K RGF0ZTogRnJpIE1hciAxOCAxMzo0MjoxOSBFU1QgMjAwNQ0KU3VtbWFyeTogU3BsaXQgRlBVIGFu ZCBBbGl0VmVjIHN1cHBvcnQgb2ZmIG9mIGhlYWQqLlMNClNpZ25lZC1PZmYtQnk6IEphc29uIE1j TXVsbGFuIDxqYXNvbi5tY211bGxhbkB0aW1lc3lzLmNvbT4NCg0KZGlmZiAtdXJOIC1YIC9ob21l L2ptY211bGxhbi9kb250ZGlmZiBsaW51eC0yLjYvYXJjaC9wcGMvS2NvbmZpZyBsaW51eC0yLjYt Y3B1LWZwdS9hcmNoL3BwYy9LY29uZmlnDQotLS0gbGludXgtMi42L2FyY2gvcHBjL0tjb25maWcJ MjAwNS0wMy0xOCAwOToxMDowNy42ODk3NjQwOTcgLTA1MDANCisrKyBsaW51eC0yLjYtY3B1LWZw dS9hcmNoL3BwYy9LY29uZmlnCTIwMDUtMDMtMTggMTE6Mjk6NTkuNDIwNzMxNjA1IC0wNTAwDQpA QCAtNTMsNiArNTMsNyBAQA0KIA0KIGNvbmZpZyA2eHgNCiAJYm9vbCAiNnh4Lzd4eC83NHh4LzUy eHgvODJ4eC84M3h4Ig0KKwlzZWxlY3QgUFBDX0ZQVQ0KIAloZWxwDQogCSAgVGhlcmUgYXJlIGZv dXIgdHlwZXMgb2YgUG93ZXJQQyBjaGlwcyBzdXBwb3J0ZWQuICBUaGUgbW9yZSBjb21tb24NCiAJ ICB0eXBlcyAoNjAxLCA2MDMsIDYwNCwgNzQwLCA3NTAsIDc0MDApLCB0aGUgTW90b3JvbGEgZW1i ZWRkZWQNCkBAIC04Myw5ICs4NCwxMiBAQA0KIA0KIGNvbmZpZyBFNTAwDQogCWJvb2wgImU1MDAi DQotDQorCQ0KIGVuZGNob2ljZQ0KIA0KK2NvbmZpZyBQUENfRlBVDQorCWJvb2wNCisNCiBjb25m aWcgQk9PS0UNCiAJYm9vbA0KIAlkZXBlbmRzIG9uIEU1MDANCmRpZmYgLXVyTiAtWCAvaG9tZS9q bWNtdWxsYW4vZG9udGRpZmYgbGludXgtMi42L2FyY2gvcHBjL2tlcm5lbC9mcHUuUyBsaW51eC0y LjYtY3B1LWZwdS9hcmNoL3BwYy9rZXJuZWwvZnB1LlMNCi0tLSBsaW51eC0yLjYvYXJjaC9wcGMv a2VybmVsL2ZwdS5TCTE5NjktMTItMzEgMTk6MDA6MDAuMDAwMDAwMDAwIC0wNTAwDQorKysgbGlu dXgtMi42LWNwdS1mcHUvYXJjaC9wcGMva2VybmVsL2ZwdS5TCTIwMDUtMDMtMTggMTE6Mjk6NTku NDI2NzMwMjM0IC0wNTAwDQpAQCAtMCwwICsxLDE4MyBAQA0KKy8qIEZQVSBzdXBwb3J0IGNvZGUs IG1vdmVkIGhlcmUgZnJvbSBoZWFkLlMgc28gdGhhdCBpdCBjYW4gYmUgdXNlZA0KKyAqIGJ5IGNo aXBzIHdoaWNoIHVzZSBvdGhlciBoZWFkLXdoYXRldmVyLlMgZmlsZXMuDQorICovDQorDQorI2lu Y2x1ZGUgPGxpbnV4L2NvbmZpZy5oPg0KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+DQorI2lu Y2x1ZGUgPGFzbS9wYWdlLmg+DQorI2luY2x1ZGUgPGFzbS9tbXUuaD4NCisjaW5jbHVkZSA8YXNt L3BndGFibGUuaD4NCisjaW5jbHVkZSA8YXNtL2NwdXRhYmxlLmg+DQorI2luY2x1ZGUgPGFzbS9j YWNoZS5oPg0KKyNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4NCisjaW5jbHVkZSA8YXNtL3Bw Y19hc20uaD4NCisjaW5jbHVkZSA8YXNtL29mZnNldHMuaD4NCisNCisvKg0KKyAqIFRoaXMgdGFz ayB3YW50cyB0byB1c2UgdGhlIEZQVSBub3cuDQorICogT24gVVAsIGRpc2FibGUgRlAgZm9yIHRo ZSB0YXNrIHdoaWNoIGhhZCB0aGUgRlBVIHByZXZpb3VzbHksDQorICogYW5kIHNhdmUgaXRzIGZs b2F0aW5nLXBvaW50IHJlZ2lzdGVycyBpbiBpdHMgdGhyZWFkX3N0cnVjdC4NCisgKiBMb2FkIHVw IHRoaXMgdGFzaydzIEZQIHJlZ2lzdGVycyBmcm9tIGl0cyB0aHJlYWRfc3RydWN0LA0KKyAqIGVu YWJsZSB0aGUgRlBVIGZvciB0aGUgY3VycmVudCB0YXNrIGFuZCByZXR1cm4gdG8gdGhlIHRhc2su DQorICovDQorCS5nbG9iYWwgbG9hZF91cF9mcHUNCitsb2FkX3VwX2ZwdToNCisJbWZtc3IJcjUN CisJb3JpCXI1LHI1LE1TUl9GUA0KKyNpZmRlZiBDT05GSUdfUFBDNjRCUklER0UNCisJY2xybGRp CXI1LHI1LDEJCQkvKiB0dXJuIG9mZiA2NC1iaXQgbW9kZSAqLw0KKyNlbmRpZiAvKiBDT05GSUdf UFBDNjRCUklER0UgKi8NCisJU1lOQw0KKwlNVE1TUkQocjUpCQkJLyogZW5hYmxlIHVzZSBvZiBm cHUgbm93ICovDQorCWlzeW5jDQorLyoNCisgKiBGb3IgU01QLCB3ZSBkb24ndCBkbyBsYXp5IEZQ VSBzd2l0Y2hpbmcgYmVjYXVzZSBpdCBqdXN0IGdldHMgdG9vDQorICogaG9ycmVuZG91c2x5IGNv bXBsZXgsIGVzcGVjaWFsbHkgd2hlbiBhIHRhc2sgc3dpdGNoZXMgZnJvbSBvbmUgQ1BVDQorICog dG8gYW5vdGhlci4gIEluc3RlYWQgd2UgY2FsbCBnaXZldXBfZnB1IGluIHN3aXRjaF90by4NCisg Ki8NCisjaWZuZGVmIENPTkZJR19TTVANCisJdG9waHlzKHI2LDApCQkJLyogZ2V0IF9fcGEgY29u c3RhbnQgKi8NCisJYWRkaXMJcjMscjYsbGFzdF90YXNrX3VzZWRfbWF0aEBoYQ0KKwlsd3oJcjQs bGFzdF90YXNrX3VzZWRfbWF0aEBsKHIzKQ0KKwljbXB3aQkwLHI0LDANCisJYmVxCTFmDQorCWFk ZAlyNCxyNCxyNg0KKwlhZGRpCXI0LHI0LFRIUkVBRAkJLyogd2FudCBsYXN0X3Rhc2tfdXNlZF9t YXRoLT50aHJlYWQgKi8NCisJU0FWRV8zMkZQUlMoMCwgcjQpDQorCW1mZnMJZnIwDQorCXN0ZmQJ ZnIwLFRIUkVBRF9GUFNDUi00KHI0KQ0KKwlsd3oJcjUsUFRfUkVHUyhyNCkNCisJYWRkCXI1LHI1 LHI2DQorCWx3eglyNCxfTVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KKwlsaQlyMTAsTVNS X0ZQfE1TUl9GRTB8TVNSX0ZFMQ0KKwlhbmRjCXI0LHI0LHIxMAkJLyogZGlzYWJsZSBGUCBmb3Ig cHJldmlvdXMgdGFzayAqLw0KKwlzdHcJcjQsX01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkN CisxOg0KKyNlbmRpZiAvKiBDT05GSUdfU01QICovDQorCS8qIGVuYWJsZSB1c2Ugb2YgRlAgYWZ0 ZXIgcmV0dXJuICovDQorCW1mc3ByCXI1LFNQUk5fU1BSRzMJCS8qIGN1cnJlbnQgdGFzaydzIFRI UkVBRCAocGh5cykgKi8NCisJbHd6CXI0LFRIUkVBRF9GUEVYQ19NT0RFKHI1KQ0KKwlvcmkJcjks cjksTVNSX0ZQCQkvKiBlbmFibGUgRlAgZm9yIGN1cnJlbnQgKi8NCisJb3IJcjkscjkscjQNCisJ bGZkCWZyMCxUSFJFQURfRlBTQ1ItNChyNSkNCisJbXRmc2YJMHhmZixmcjANCisJUkVTVF8zMkZQ UlMoMCwgcjUpDQorI2lmbmRlZiBDT05GSUdfU01QDQorCXN1YmkJcjQscjUsVEhSRUFEDQorCXN1 YglyNCxyNCxyNg0KKwlzdHcJcjQsbGFzdF90YXNrX3VzZWRfbWF0aEBsKHIzKQ0KKyNlbmRpZiAv KiBDT05GSUdfU01QICovDQorCS8qIHJlc3RvcmUgcmVnaXN0ZXJzIGFuZCByZXR1cm4gKi8NCisJ Lyogd2UgaGF2ZW4ndCB1c2VkIGN0ciBvciB4ZXIgb3IgbHIgKi8NCisJLyogZmFsbCB0aHJvdWdo IHRvIGZhc3RfZXhjZXB0aW9uX3JldHVybiAqLw0KKw0KKwkuZ2xvYmFsIGZhc3RfZXhjZXB0aW9u X3JldHVybg0KK2Zhc3RfZXhjZXB0aW9uX3JldHVybjoNCisjaWYgIShkZWZpbmVkKENPTkZJR180 eHgpIHx8IGRlZmluZWQoQ09ORklHX0JPT0tFKSkNCisJYW5kaS4JcjEwLHI5LE1TUl9SSQkJLyog Y2hlY2sgZm9yIHJlY292ZXJhYmxlIGludGVycnVwdCAqLw0KKwliZXEJMWYJCQkvKiBpZiBub3Qs IHdlJ3ZlIGdvdCBwcm9ibGVtcyAqLw0KKyNlbmRpZg0KKw0KKzI6CVJFU1RfNEdQUlMoMywgcjEx KQ0KKwlsd3oJcjEwLF9DQ1IocjExKQ0KKwlSRVNUX0dQUigxLCByMTEpDQorCW10Y3IJcjEwDQor CWx3eglyMTAsX0xJTksocjExKQ0KKwltdGxyCXIxMA0KKwlSRVNUX0dQUigxMCwgcjExKQ0KKwlt dHNwcglTUFJOX1NSUjEscjkNCisJbXRzcHIJU1BSTl9TUlIwLHIxMg0KKwlSRVNUX0dQUig5LCBy MTEpDQorCVJFU1RfR1BSKDEyLCByMTEpDQorCWx3eglyMTEsR1BSMTEocjExKQ0KKwlTWU5DDQor CVJGSQ0KKw0KKy8qIGNoZWNrIGlmIHRoZSBleGNlcHRpb24gaGFwcGVuZWQgaW4gYSByZXN0YXJ0 YWJsZSBzZWN0aW9uICovDQorMToJbGlzCXIzLGV4Y19leGl0X3Jlc3RhcnRfZW5kQGhhDQorCWFk ZGkJcjMscjMsZXhjX2V4aXRfcmVzdGFydF9lbmRAbA0KKwljbXBsdwlyMTIscjMNCisJYmdlCTNm DQorCWxpcwlyNCxleGNfZXhpdF9yZXN0YXJ0QGhhDQorCWFkZGkJcjQscjQsZXhjX2V4aXRfcmVz dGFydEBsDQorCWNtcGx3CXIxMixyNA0KKwlibHQJM2YNCisJbGlzCXIzLGZlZV9yZXN0YXJ0c0Bo YQ0KKwl0b3BoeXMocjMscjMpDQorCWx3eglyNSxmZWVfcmVzdGFydHNAbChyMykNCisJYWRkaQly NSxyNSwxDQorCXN0dwlyNSxmZWVfcmVzdGFydHNAbChyMykNCisJbXIJcjEyLHI0CQkvKiByZXN0 YXJ0IGF0IGV4Y19leGl0X3Jlc3RhcnQgKi8NCisJYgkyYg0KKw0KKwkuY29tbQlmZWVfcmVzdGFy dHMsNA0KKw0KKy8qIGFhcmdoLCBhIG5vbnJlY292ZXJhYmxlIGludGVycnVwdCwgcGFuaWMgKi8N CisvKiBhYXJnaCwgd2UgZG9uJ3Qga25vdyB3aGljaCB0cmFwIHRoaXMgaXMgKi8NCisvKiBidXQg dGhlIDYwMSBkb2Vzbid0IGltcGxlbWVudCB0aGUgUkkgYml0LCBzbyBhc3N1bWUgaXQncyBPSyAq Lw0KKzM6DQorQkVHSU5fRlRSX1NFQ1RJT04NCisJYgkyYg0KK0VORF9GVFJfU0VDVElPTl9JRlNF VChDUFVfRlRSXzYwMSkNCisJbGkJcjEwLC0xDQorCXN0dwlyMTAsVFJBUChyMTEpDQorCWFkZGkJ cjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQNCisJbGlzCXIxMCwgTVNSX0tFUk5FTEBoDQorCW9y aQlyMTAsIHIxMCwgTVNSX0tFUk5FTEBsDQorCWJsCXRyYW5zZmVyX3RvX2hhbmRsZXJfZnVsbA0K KwkubG9uZwlub25yZWNvdmVyYWJsZV9leGNlcHRpb24NCisJLmxvbmcJcmV0X2Zyb21fZXhjZXB0 DQorDQorLyoNCisgKiBGUCB1bmF2YWlsYWJsZSB0cmFwIGZyb20ga2VybmVsIC0gcHJpbnQgYSBt ZXNzYWdlLCBidXQgbGV0DQorICogdGhlIHRhc2sgdXNlIEZQIGluIHRoZSBrZXJuZWwgdW50aWwg aXQgcmV0dXJucyB0byB1c2VyIG1vZGUuDQorICovDQorIAkuZ2xvYmFsIEtlcm5lbEZQDQorS2Vy bmVsRlA6DQorCWx3eglyMyxfTVNSKHIxKQ0KKwlvcmkJcjMscjMsTVNSX0ZQDQorCXN0dwlyMyxf TVNSKHIxKQkJLyogZW5hYmxlIHVzZSBvZiBGUCBhZnRlciByZXR1cm4gKi8NCisJbGlzCXIzLDg2 ZkBoDQorCW9yaQlyMyxyMyw4NmZAbA0KKwltcglyNCxyMgkJCS8qIGN1cnJlbnQgKi8NCisJbHd6 CXI1LF9OSVAocjEpDQorCWJsCXByaW50aw0KKwliCXJldF9mcm9tX2V4Y2VwdA0KKzg2Ogkuc3Ry aW5nCSJmbG9hdGluZyBwb2ludCB1c2VkIGluIGtlcm5lbCAodGFzaz0lcCwgcGM9JXgpXG4iDQor CS5hbGlnbgk0LDANCisNCisvKg0KKyAqIGdpdmV1cF9mcHUodHNrKQ0KKyAqIERpc2FibGUgRlAg Zm9yIHRoZSB0YXNrIGdpdmVuIGFzIHRoZSBhcmd1bWVudCwNCisgKiBhbmQgc2F2ZSB0aGUgZmxv YXRpbmctcG9pbnQgcmVnaXN0ZXJzIGluIGl0cyB0aHJlYWRfc3RydWN0Lg0KKyAqIEVuYWJsZXMg dGhlIEZQVSBmb3IgdXNlIGluIHRoZSBrZXJuZWwgb24gcmV0dXJuLg0KKyAqLw0KKwkuZ2xvYmFs IGdpdmV1cF9mcHUNCitnaXZldXBfZnB1Og0KKwltZm1zcglyNQ0KKwlvcmkJcjUscjUsTVNSX0ZQ DQorCVNZTkNfNjAxDQorCUlTWU5DXzYwMQ0KKwlNVE1TUkQocjUpCQkJLyogZW5hYmxlIHVzZSBv ZiBmcHUgbm93ICovDQorCVNZTkNfNjAxDQorCWlzeW5jDQorCWNtcHdpCTAscjMsMA0KKwliZXFs ci0JCQkJLyogaWYgbm8gcHJldmlvdXMgb3duZXIsIGRvbmUgKi8NCisJYWRkaQlyMyxyMyxUSFJF QUQJICAgICAgICAvKiB3YW50IFRIUkVBRCBvZiB0YXNrICovDQorCWx3eglyNSxQVF9SRUdTKHIz KQ0KKwljbXB3aQkwLHI1LDANCisJU0FWRV8zMkZQUlMoMCwgcjMpDQorCW1mZnMJZnIwDQorCXN0 ZmQJZnIwLFRIUkVBRF9GUFNDUi00KHIzKQ0KKwliZXEJMWYNCisJbHd6CXI0LF9NU1ItU1RBQ0tf RlJBTUVfT1ZFUkhFQUQocjUpDQorCWxpCXIzLE1TUl9GUHxNU1JfRkUwfE1TUl9GRTENCisJYW5k YwlyNCxyNCxyMwkJLyogZGlzYWJsZSBGUCBmb3IgcHJldmlvdXMgdGFzayAqLw0KKwlzdHcJcjQs X01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCisxOg0KKyNpZm5kZWYgQ09ORklHX1NNUA0K KwlsaQlyNSwwDQorCWxpcwlyNCxsYXN0X3Rhc2tfdXNlZF9tYXRoQGhhDQorCXN0dwlyNSxsYXN0 X3Rhc2tfdXNlZF9tYXRoQGwocjQpDQorI2VuZGlmIC8qIENPTkZJR19TTVAgKi8NCisJYmxyDQpk aWZmIC11ck4gLVggL2hvbWUvam1jbXVsbGFuL2RvbnRkaWZmIGxpbnV4LTIuNi9hcmNoL3BwYy9r ZXJuZWwvaGVhZF80NHguUyBsaW51eC0yLjYtY3B1LWZwdS9hcmNoL3BwYy9rZXJuZWwvaGVhZF80 NHguUw0KLS0tIGxpbnV4LTIuNi9hcmNoL3BwYy9rZXJuZWwvaGVhZF80NHguUwkyMDA1LTAzLTE4 IDA5OjEwOjA5LjU0ODMzODU0NCAtMDUwMA0KKysrIGxpbnV4LTIuNi1jcHUtZnB1L2FyY2gvcHBj L2tlcm5lbC9oZWFkXzQ0eC5TCTIwMDUtMDMtMTggMTE6Mjk6NTkuNDU2NzIzMzc5IC0wNTAwDQpA QCAtNDI2LDcgKzQyNiwxNSBAQA0KIAlQUk9HUkFNX0VYQ0VQVElPTg0KIA0KIAkvKiBGbG9hdGlu ZyBQb2ludCBVbmF2YWlsYWJsZSBJbnRlcnJ1cHQgKi8NCisjaWZkZWYgQ09ORklHX1BQQ19GUFUN CisJU1RBUlRfRVhDRVBUSU9OKEZsb2F0aW5nUG9pbnRVbmF2YWlsYWJsZSkNCisJTk9STUFMX0VY Q0VQVElPTl9QUk9MT0cNCisJYm5lCWxvYWRfdXBfZnB1CQkvKiBpZiBmcm9tIHVzZXIsIGp1c3Qg bG9hZCBpdCB1cCAqLw0KKwlhZGRpCXIzLHIxLFNUQUNLX0ZSQU1FX09WRVJIRUFEDQorCUVYQ19Y RkVSX0VFX0xJVEUoMHg4MDAsIEtlcm5lbEZQKQ0KKyNlbHNlDQogCUVYQ0VQVElPTigweDIwMTAs IEZsb2F0aW5nUG9pbnRVbmF2YWlsYWJsZSwgVW5rbm93bkV4Y2VwdGlvbiwgRVhDX1hGRVJfRUUp DQorI2VuZGlmDQogDQogCS8qIFN5c3RlbSBDYWxsIEludGVycnVwdCAqLw0KIAlTVEFSVF9FWENF UFRJT04oU3lzdGVtQ2FsbCkNCkBAIC02ODYsOSArNjk0LDExIEBADQogICoNCiAgKiBUaGUgNDR4 IGNvcmUgZG9lcyBub3QgaGF2ZSBhbiBGUFUuDQogICovDQorI2lmbmRlZiBDT05GSUdfUFBDX0ZQ VQ0KIF9HTE9CQUwoZ2l2ZXVwX2ZwdSkNCiAJYmxyDQotDQorI2VuZGlmDQorIA0KIC8qDQogICog ZXh0ZXJuIHZvaWQgYWJvcnQodm9pZCkNCiAgKg0KZGlmZiAtdXJOIC1YIC9ob21lL2ptY211bGxh bi9kb250ZGlmZiBsaW51eC0yLjYvYXJjaC9wcGMva2VybmVsL2hlYWQuUyBsaW51eC0yLjYtY3B1 LWZwdS9hcmNoL3BwYy9rZXJuZWwvaGVhZC5TDQotLS0gbGludXgtMi42L2FyY2gvcHBjL2tlcm5l bC9oZWFkLlMJMjAwNS0wMy0xOCAwOToxMDoxMC4xNjQxOTc1MzIgLTA1MDANCisrKyBsaW51eC0y LjYtY3B1LWZwdS9hcmNoL3BwYy9rZXJuZWwvaGVhZC5TCTIwMDUtMDMtMTggMTM6MzY6MDUuODM0 OTQ3OTM5IC0wNTAwDQpAQCAtNzQ5LDcgKzc0OSwxMiBAQA0KIEFsdGlWZWNVbmF2YWlsYWJsZToN CiAJRVhDRVBUSU9OX1BST0xPRw0KICNpZmRlZiBDT05GSUdfQUxUSVZFQw0KLQlibmUJbG9hZF91 cF9hbHRpdmVjCQkvKiBpZiBmcm9tIHVzZXIsIGp1c3QgbG9hZCBpdCB1cCAqLw0KKwltZmxyCXI0 CQkJLyogU2F2ZSBDVFIsIGFuZCB1c2UgQ1RSIHRvIGJyYW5jaCAqLw0KKwlzdHcJcjQsIF9DVFIo cjExKQkJLyogc2luY2UgbG9hZF91cF9hbHRpdmVjIG1heSBiZSAqLw0KKwlsaXMJcjQsIGxvYWRf dXBfYWx0aXZlY0BoCS8qIGZhciBhd2F5LiAqLw0KKwlvcmkJcjQsIHI0LCBsb2FkX3VwX2FsdGl2 ZWNAbA0KKwltdGN0cglyNAkNCisJYmN0cgkJCQkvKiBpZiBmcm9tIHVzZXIsIGp1c3QgbG9hZCBp dCB1cCAqLw0KICNlbmRpZiAvKiBDT05GSUdfQUxUSVZFQyAqLw0KIAlFWENfWEZFUl9FRV9MSVRF KDB4ZjIwLCBBbHRpdmVjVW5hdmFpbEV4Y2VwdGlvbikNCiANCkBAIC03NzYsMjgyICs3ODEsNiBA QA0KICNlbmRpZiAvKiBDT05GSUdfUFBDNjRCUklER0UgKi8NCiANCiAvKg0KLSAqIFRoaXMgdGFz ayB3YW50cyB0byB1c2UgdGhlIEZQVSBub3cuDQotICogT24gVVAsIGRpc2FibGUgRlAgZm9yIHRo ZSB0YXNrIHdoaWNoIGhhZCB0aGUgRlBVIHByZXZpb3VzbHksDQotICogYW5kIHNhdmUgaXRzIGZs b2F0aW5nLXBvaW50IHJlZ2lzdGVycyBpbiBpdHMgdGhyZWFkX3N0cnVjdC4NCi0gKiBMb2FkIHVw IHRoaXMgdGFzaydzIEZQIHJlZ2lzdGVycyBmcm9tIGl0cyB0aHJlYWRfc3RydWN0LA0KLSAqIGVu YWJsZSB0aGUgRlBVIGZvciB0aGUgY3VycmVudCB0YXNrIGFuZCByZXR1cm4gdG8gdGhlIHRhc2su DQotICovDQotbG9hZF91cF9mcHU6DQotCW1mbXNyCXI1DQotCW9yaQlyNSxyNSxNU1JfRlANCi0j aWZkZWYgQ09ORklHX1BQQzY0QlJJREdFDQotCWNscmxkaQlyNSxyNSwxCQkJLyogdHVybiBvZmYg NjQtYml0IG1vZGUgKi8NCi0jZW5kaWYgLyogQ09ORklHX1BQQzY0QlJJREdFICovDQotCVNZTkMN Ci0JTVRNU1JEKHI1KQkJCS8qIGVuYWJsZSB1c2Ugb2YgZnB1IG5vdyAqLw0KLQlpc3luYw0KLS8q DQotICogRm9yIFNNUCwgd2UgZG9uJ3QgZG8gbGF6eSBGUFUgc3dpdGNoaW5nIGJlY2F1c2UgaXQg anVzdCBnZXRzIHRvbw0KLSAqIGhvcnJlbmRvdXNseSBjb21wbGV4LCBlc3BlY2lhbGx5IHdoZW4g YSB0YXNrIHN3aXRjaGVzIGZyb20gb25lIENQVQ0KLSAqIHRvIGFub3RoZXIuICBJbnN0ZWFkIHdl IGNhbGwgZ2l2ZXVwX2ZwdSBpbiBzd2l0Y2hfdG8uDQotICovDQotI2lmbmRlZiBDT05GSUdfU01Q DQotCXRvcGh5cyhyNiwwKQkJCS8qIGdldCBfX3BhIGNvbnN0YW50ICovDQotCWFkZGlzCXIzLHI2 LGxhc3RfdGFza191c2VkX21hdGhAaGENCi0JbHd6CXI0LGxhc3RfdGFza191c2VkX21hdGhAbChy MykNCi0JY21wd2kJMCxyNCwwDQotCWJlcQkxZg0KLQlhZGQJcjQscjQscjYNCi0JYWRkaQlyNCxy NCxUSFJFQUQJCS8qIHdhbnQgbGFzdF90YXNrX3VzZWRfbWF0aC0+dGhyZWFkICovDQotCVNBVkVf MzJGUFJTKDAsIHI0KQ0KLQltZmZzCWZyMA0KLQlzdGZkCWZyMCxUSFJFQURfRlBTQ1ItNChyNCkN Ci0JbHd6CXI1LFBUX1JFR1MocjQpDQotCWFkZAlyNSxyNSxyNg0KLQlsd3oJcjQsX01TUi1TVEFD S19GUkFNRV9PVkVSSEVBRChyNSkNCi0JbGkJcjEwLE1TUl9GUHxNU1JfRkUwfE1TUl9GRTENCi0J YW5kYwlyNCxyNCxyMTAJCS8qIGRpc2FibGUgRlAgZm9yIHByZXZpb3VzIHRhc2sgKi8NCi0Jc3R3 CXI0LF9NU1ItU1RBQ0tfRlJBTUVfT1ZFUkhFQUQocjUpDQotMToNCi0jZW5kaWYgLyogQ09ORklH X1NNUCAqLw0KLQkvKiBlbmFibGUgdXNlIG9mIEZQIGFmdGVyIHJldHVybiAqLw0KLQltZnNwcgly NSxTUFJOX1NQUkczCQkvKiBjdXJyZW50IHRhc2sncyBUSFJFQUQgKHBoeXMpICovDQotCWx3egly NCxUSFJFQURfRlBFWENfTU9ERShyNSkNCi0Jb3JpCXI5LHI5LE1TUl9GUAkJLyogZW5hYmxlIEZQ IGZvciBjdXJyZW50ICovDQotCW9yCXI5LHI5LHI0DQotCWxmZAlmcjAsVEhSRUFEX0ZQU0NSLTQo cjUpDQotCW10ZnNmCTB4ZmYsZnIwDQotCVJFU1RfMzJGUFJTKDAsIHI1KQ0KLSNpZm5kZWYgQ09O RklHX1NNUA0KLQlzdWJpCXI0LHI1LFRIUkVBRA0KLQlzdWIJcjQscjQscjYNCi0Jc3R3CXI0LGxh c3RfdGFza191c2VkX21hdGhAbChyMykNCi0jZW5kaWYgLyogQ09ORklHX1NNUCAqLw0KLQkvKiBy ZXN0b3JlIHJlZ2lzdGVycyBhbmQgcmV0dXJuICovDQotCS8qIHdlIGhhdmVuJ3QgdXNlZCBjdHIg b3IgeGVyIG9yIGxyICovDQotCS8qIGZhbGwgdGhyb3VnaCB0byBmYXN0X2V4Y2VwdGlvbl9yZXR1 cm4gKi8NCi0NCi0JLmdsb2JsCWZhc3RfZXhjZXB0aW9uX3JldHVybg0KLWZhc3RfZXhjZXB0aW9u X3JldHVybjoNCi0JYW5kaS4JcjEwLHI5LE1TUl9SSQkJLyogY2hlY2sgZm9yIHJlY292ZXJhYmxl IGludGVycnVwdCAqLw0KLQliZXEJMWYJCQkvKiBpZiBub3QsIHdlJ3ZlIGdvdCBwcm9ibGVtcyAq Lw0KLTI6CVJFU1RfNEdQUlMoMywgcjExKQ0KLQlsd3oJcjEwLF9DQ1IocjExKQ0KLQlSRVNUX0dQ UigxLCByMTEpDQotCW10Y3IJcjEwDQotCWx3eglyMTAsX0xJTksocjExKQ0KLQltdGxyCXIxMA0K LQlSRVNUX0dQUigxMCwgcjExKQ0KLQltdHNwcglTUFJOX1NSUjEscjkNCi0JbXRzcHIJU1BSTl9T UlIwLHIxMg0KLQlSRVNUX0dQUig5LCByMTEpDQotCVJFU1RfR1BSKDEyLCByMTEpDQotCWx3egly MTEsR1BSMTEocjExKQ0KLQlTWU5DDQotCVJGSQ0KLQ0KLS8qIGNoZWNrIGlmIHRoZSBleGNlcHRp b24gaGFwcGVuZWQgaW4gYSByZXN0YXJ0YWJsZSBzZWN0aW9uICovDQotMToJbGlzCXIzLGV4Y19l eGl0X3Jlc3RhcnRfZW5kQGhhDQotCWFkZGkJcjMscjMsZXhjX2V4aXRfcmVzdGFydF9lbmRAbA0K LQljbXBsdwlyMTIscjMNCi0JYmdlCTNmDQotCWxpcwlyNCxleGNfZXhpdF9yZXN0YXJ0QGhhDQot CWFkZGkJcjQscjQsZXhjX2V4aXRfcmVzdGFydEBsDQotCWNtcGx3CXIxMixyNA0KLQlibHQJM2YN Ci0JbGlzCXIzLGZlZV9yZXN0YXJ0c0BoYQ0KLQl0b3BoeXMocjMscjMpDQotCWx3eglyNSxmZWVf cmVzdGFydHNAbChyMykNCi0JYWRkaQlyNSxyNSwxDQotCXN0dwlyNSxmZWVfcmVzdGFydHNAbChy MykNCi0JbXIJcjEyLHI0CQkvKiByZXN0YXJ0IGF0IGV4Y19leGl0X3Jlc3RhcnQgKi8NCi0JYgky Yg0KLQ0KLQkuY29tbQlmZWVfcmVzdGFydHMsNA0KLQ0KLS8qIGFhcmdoLCBhIG5vbnJlY292ZXJh YmxlIGludGVycnVwdCwgcGFuaWMgKi8NCi0vKiBhYXJnaCwgd2UgZG9uJ3Qga25vdyB3aGljaCB0 cmFwIHRoaXMgaXMgKi8NCi0vKiBidXQgdGhlIDYwMSBkb2Vzbid0IGltcGxlbWVudCB0aGUgUkkg Yml0LCBzbyBhc3N1bWUgaXQncyBPSyAqLw0KLTM6DQotQkVHSU5fRlRSX1NFQ1RJT04NCi0JYgky Yg0KLUVORF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSXzYwMSkNCi0JbGkJcjEwLC0xDQotCXN0 dwlyMTAsVFJBUChyMTEpDQotCWFkZGkJcjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQNCi0JbGkJ cjEwLE1TUl9LRVJORUwNCi0JYmwJdHJhbnNmZXJfdG9faGFuZGxlcl9mdWxsDQotCS5sb25nCW5v bnJlY292ZXJhYmxlX2V4Y2VwdGlvbg0KLQkubG9uZwlyZXRfZnJvbV9leGNlcHQNCi0NCi0vKg0K LSAqIEZQIHVuYXZhaWxhYmxlIHRyYXAgZnJvbSBrZXJuZWwgLSBwcmludCBhIG1lc3NhZ2UsIGJ1 dCBsZXQNCi0gKiB0aGUgdGFzayB1c2UgRlAgaW4gdGhlIGtlcm5lbCB1bnRpbCBpdCByZXR1cm5z IHRvIHVzZXIgbW9kZS4NCi0gKi8NCi1LZXJuZWxGUDoNCi0JbHd6CXIzLF9NU1IocjEpDQotCW9y aQlyMyxyMyxNU1JfRlANCi0Jc3R3CXIzLF9NU1IocjEpCQkvKiBlbmFibGUgdXNlIG9mIEZQIGFm dGVyIHJldHVybiAqLw0KLQlsaXMJcjMsODZmQGgNCi0Jb3JpCXIzLHIzLDg2ZkBsDQotCW1yCXI0 LHIyCQkJLyogY3VycmVudCAqLw0KLQlsd3oJcjUsX05JUChyMSkNCi0JYmwJcHJpbnRrDQotCWIJ cmV0X2Zyb21fZXhjZXB0DQotODY6CS5zdHJpbmcJImZsb2F0aW5nIHBvaW50IHVzZWQgaW4ga2Vy bmVsICh0YXNrPSVwLCBwYz0leClcbiINCi0JLmFsaWduCTQsMA0KLQ0KLSNpZmRlZiBDT05GSUdf QUxUSVZFQw0KLS8qIE5vdGUgdGhhdCB0aGUgQWx0aVZlYyBzdXBwb3J0IGlzIGNsb3NlbHkgbW9k ZWxlZCBhZnRlciB0aGUgRlANCi0gKiBzdXBwb3J0LiAgQ2hhbmdlcyB0byBvbmUgYXJlIGxpa2Vs eSB0byBiZSBhcHBsaWNhYmxlIHRvIHRoZQ0KLSAqIG90aGVyISAgKi8NCi1sb2FkX3VwX2FsdGl2 ZWM6DQotLyoNCi0gKiBEaXNhYmxlIEFsdGlWZWMgZm9yIHRoZSB0YXNrIHdoaWNoIGhhZCBBbHRp VmVjIHByZXZpb3VzbHksDQotICogYW5kIHNhdmUgaXRzIEFsdGlWZWMgcmVnaXN0ZXJzIGluIGl0 cyB0aHJlYWRfc3RydWN0Lg0KLSAqIEVuYWJsZXMgQWx0aVZlYyBmb3IgdXNlIGluIHRoZSBrZXJu ZWwgb24gcmV0dXJuLg0KLSAqIE9uIFNNUCB3ZSBrbm93IHRoZSBBbHRpVmVjIHVuaXRzIGFyZSBm cmVlLCBzaW5jZSB3ZSBnaXZlIGl0IHVwIGV2ZXJ5DQotICogc3dpdGNoLiAgLS0gS3VtYXINCi0g Ki8NCi0JbWZtc3IJcjUNCi0Jb3JpcwlyNSxyNSxNU1JfVkVDQGgNCi0JTVRNU1JEKHI1KQkJCS8q IGVuYWJsZSB1c2Ugb2YgQWx0aVZlYyBub3cgKi8NCi0JaXN5bmMNCi0vKg0KLSAqIEZvciBTTVAs IHdlIGRvbid0IGRvIGxhenkgQWx0aVZlYyBzd2l0Y2hpbmcgYmVjYXVzZSBpdCBqdXN0IGdldHMg dG9vDQotICogaG9ycmVuZG91c2x5IGNvbXBsZXgsIGVzcGVjaWFsbHkgd2hlbiBhIHRhc2sgc3dp dGNoZXMgZnJvbSBvbmUgQ1BVDQotICogdG8gYW5vdGhlci4gIEluc3RlYWQgd2UgY2FsbCBnaXZl dXBfYWx0aXZlYyBpbiBzd2l0Y2hfdG8uDQotICovDQotI2lmbmRlZiBDT05GSUdfU01QDQotCXRv cGh5cyhyNiwwKQ0KLQlhZGRpcwlyMyxyNixsYXN0X3Rhc2tfdXNlZF9hbHRpdmVjQGhhDQotCWx3 eglyNCxsYXN0X3Rhc2tfdXNlZF9hbHRpdmVjQGwocjMpDQotCWNtcHdpCTAscjQsMA0KLQliZXEJ MWYNCi0JYWRkCXI0LHI0LHI2DQotCWFkZGkJcjQscjQsVEhSRUFECS8qIHdhbnQgVEhSRUFEIG9m IGxhc3RfdGFza191c2VkX2FsdGl2ZWMgKi8NCi0JU0FWRV8zMlZSKDAscjEwLHI0KQ0KLQltZnZz Y3IJdnIwDQotCWxpCXIxMCxUSFJFQURfVlNDUg0KLQlzdHZ4CXZyMCxyMTAscjQNCi0JbHd6CXI1 LFBUX1JFR1MocjQpDQotCWFkZAlyNSxyNSxyNg0KLQlsd3oJcjQsX01TUi1TVEFDS19GUkFNRV9P VkVSSEVBRChyNSkNCi0JbGlzCXIxMCxNU1JfVkVDQGgNCi0JYW5kYwlyNCxyNCxyMTAJLyogZGlz YWJsZSBhbHRpdmVjIGZvciBwcmV2aW91cyB0YXNrICovDQotCXN0dwlyNCxfTVNSLVNUQUNLX0ZS QU1FX09WRVJIRUFEKHI1KQ0KLTE6DQotI2VuZGlmIC8qIENPTkZJR19TTVAgKi8NCi0JLyogZW5h YmxlIHVzZSBvZiBBbHRpVmVjIGFmdGVyIHJldHVybiAqLw0KLQlvcmlzCXI5LHI5LE1TUl9WRUNA aA0KLQltZnNwcglyNSxTUFJOX1NQUkczCQkvKiBjdXJyZW50IHRhc2sncyBUSFJFQUQgKHBoeXMp ICovDQotCWxpCXI0LDENCi0JbGkJcjEwLFRIUkVBRF9WU0NSDQotCXN0dwlyNCxUSFJFQURfVVNF RF9WUihyNSkNCi0JbHZ4CXZyMCxyMTAscjUNCi0JbXR2c2NyCXZyMA0KLQlSRVNUXzMyVlIoMCxy MTAscjUpDQotI2lmbmRlZiBDT05GSUdfU01QDQotCXN1YmkJcjQscjUsVEhSRUFEDQotCXN1Ygly NCxyNCxyNg0KLQlzdHcJcjQsbGFzdF90YXNrX3VzZWRfYWx0aXZlY0BsKHIzKQ0KLSNlbmRpZiAv KiBDT05GSUdfU01QICovDQotCS8qIHJlc3RvcmUgcmVnaXN0ZXJzIGFuZCByZXR1cm4gKi8NCi0J Lyogd2UgaGF2ZW4ndCB1c2VkIGN0ciBvciB4ZXIgb3IgbHIgKi8NCi0JYglmYXN0X2V4Y2VwdGlv bl9yZXR1cm4NCi0NCi0vKg0KLSAqIEFsdGlWZWMgdW5hdmFpbGFibGUgdHJhcCBmcm9tIGtlcm5l bCAtIHByaW50IGEgbWVzc2FnZSwgYnV0IGxldA0KLSAqIHRoZSB0YXNrIHVzZSBBbHRpVmVjIGlu IHRoZSBrZXJuZWwgdW50aWwgaXQgcmV0dXJucyB0byB1c2VyIG1vZGUuDQotICovDQotS2VybmVs QWx0aVZlYzoNCi0JbHd6CXIzLF9NU1IocjEpDQotCW9yaXMJcjMscjMsTVNSX1ZFQ0BoDQotCXN0 dwlyMyxfTVNSKHIxKQkvKiBlbmFibGUgdXNlIG9mIEFsdGlWZWMgYWZ0ZXIgcmV0dXJuICovDQot CWxpcwlyMyw4N2ZAaA0KLQlvcmkJcjMscjMsODdmQGwNCi0JbXIJcjQscjIJCS8qIGN1cnJlbnQg Ki8NCi0JbHd6CXI1LF9OSVAocjEpDQotCWJsCXByaW50aw0KLQliCXJldF9mcm9tX2V4Y2VwdA0K LTg3Ogkuc3RyaW5nCSJBbHRpVmVjIHVzZWQgaW4ga2VybmVsICAodGFzaz0lcCwgcGM9JXgpICBc biINCi0JLmFsaWduCTQsMA0KLQ0KLS8qDQotICogZ2l2ZXVwX2FsdGl2ZWModHNrKQ0KLSAqIERp c2FibGUgQWx0aVZlYyBmb3IgdGhlIHRhc2sgZ2l2ZW4gYXMgdGhlIGFyZ3VtZW50LA0KLSAqIGFu ZCBzYXZlIHRoZSBBbHRpVmVjIHJlZ2lzdGVycyBpbiBpdHMgdGhyZWFkX3N0cnVjdC4NCi0gKiBF bmFibGVzIEFsdGlWZWMgZm9yIHVzZSBpbiB0aGUga2VybmVsIG9uIHJldHVybi4NCi0gKi8NCi0N Ci0JLmdsb2JsCWdpdmV1cF9hbHRpdmVjDQotZ2l2ZXVwX2FsdGl2ZWM6DQotCW1mbXNyCXI1DQot CW9yaXMJcjUscjUsTVNSX1ZFQ0BoDQotCVNZTkMNCi0JTVRNU1JEKHI1KQkJCS8qIGVuYWJsZSB1 c2Ugb2YgQWx0aVZlYyBub3cgKi8NCi0JaXN5bmMNCi0JY21wd2kJMCxyMywwDQotCWJlcWxyLQkJ CQkvKiBpZiBubyBwcmV2aW91cyBvd25lciwgZG9uZSAqLw0KLQlhZGRpCXIzLHIzLFRIUkVBRAkJ Lyogd2FudCBUSFJFQUQgb2YgdGFzayAqLw0KLQlsd3oJcjUsUFRfUkVHUyhyMykNCi0JY21wd2kJ MCxyNSwwDQotCVNBVkVfMzJWUigwLCByNCwgcjMpDQotCW1mdnNjcgl2cjANCi0JbGkJcjQsVEhS RUFEX1ZTQ1INCi0Jc3R2eAl2cjAscjQscjMNCi0JYmVxCTFmDQotCWx3eglyNCxfTVNSLVNUQUNL X0ZSQU1FX09WRVJIRUFEKHI1KQ0KLQlsaXMJcjMsTVNSX1ZFQ0BoDQotCWFuZGMJcjQscjQscjMJ CS8qIGRpc2FibGUgQWx0aVZlYyBmb3IgcHJldmlvdXMgdGFzayAqLw0KLQlzdHcJcjQsX01TUi1T VEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCi0xOg0KLSNpZm5kZWYgQ09ORklHX1NNUA0KLQlsaQly NSwwDQotCWxpcwlyNCxsYXN0X3Rhc2tfdXNlZF9hbHRpdmVjQGhhDQotCXN0dwlyNSxsYXN0X3Rh c2tfdXNlZF9hbHRpdmVjQGwocjQpDQotI2VuZGlmIC8qIENPTkZJR19TTVAgKi8NCi0JYmxyDQot I2VuZGlmIC8qIENPTkZJR19BTFRJVkVDICovDQotDQotLyoNCi0gKiBnaXZldXBfZnB1KHRzaykN Ci0gKiBEaXNhYmxlIEZQIGZvciB0aGUgdGFzayBnaXZlbiBhcyB0aGUgYXJndW1lbnQsDQotICog YW5kIHNhdmUgdGhlIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVycyBpbiBpdHMgdGhyZWFkX3N0cnVj dC4NCi0gKiBFbmFibGVzIHRoZSBGUFUgZm9yIHVzZSBpbiB0aGUga2VybmVsIG9uIHJldHVybi4N Ci0gKi8NCi0JLmdsb2JsCWdpdmV1cF9mcHUNCi1naXZldXBfZnB1Og0KLQltZm1zcglyNQ0KLQlv cmkJcjUscjUsTVNSX0ZQDQotCVNZTkNfNjAxDQotCUlTWU5DXzYwMQ0KLQlNVE1TUkQocjUpCQkJ LyogZW5hYmxlIHVzZSBvZiBmcHUgbm93ICovDQotCVNZTkNfNjAxDQotCWlzeW5jDQotCWNtcHdp CTAscjMsMA0KLQliZXFsci0JCQkJLyogaWYgbm8gcHJldmlvdXMgb3duZXIsIGRvbmUgKi8NCi0J YWRkaQlyMyxyMyxUSFJFQUQJICAgICAgICAvKiB3YW50IFRIUkVBRCBvZiB0YXNrICovDQotCWx3 eglyNSxQVF9SRUdTKHIzKQ0KLQljbXB3aQkwLHI1LDANCi0JU0FWRV8zMkZQUlMoMCwgcjMpDQot CW1mZnMJZnIwDQotCXN0ZmQJZnIwLFRIUkVBRF9GUFNDUi00KHIzKQ0KLQliZXEJMWYNCi0JbHd6 CXI0LF9NU1ItU1RBQ0tfRlJBTUVfT1ZFUkhFQUQocjUpDQotCWxpCXIzLE1TUl9GUHxNU1JfRkUw fE1TUl9GRTENCi0JYW5kYwlyNCxyNCxyMwkJLyogZGlzYWJsZSBGUCBmb3IgcHJldmlvdXMgdGFz ayAqLw0KLQlzdHcJcjQsX01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCi0xOg0KLSNpZm5k ZWYgQ09ORklHX1NNUA0KLQlsaQlyNSwwDQotCWxpcwlyNCxsYXN0X3Rhc2tfdXNlZF9tYXRoQGhh DQotCXN0dwlyNSxsYXN0X3Rhc2tfdXNlZF9tYXRoQGwocjQpDQotI2VuZGlmIC8qIENPTkZJR19T TVAgKi8NCi0JYmxyDQotDQotLyoNCiAgKiBUaGlzIGNvZGUgaXMganVtcGVkIHRvIGZyb20gdGhl IHN0YXJ0dXAgY29kZSB0byBjb3B5DQogICogdGhlIGtlcm5lbCBpbWFnZSB0byBwaHlzaWNhbCBh ZGRyZXNzIDAuDQogICovDQpkaWZmIC11ck4gLVggL2hvbWUvam1jbXVsbGFuL2RvbnRkaWZmIGxp bnV4LTIuNi9hcmNoL3BwYy9rZXJuZWwvTWFrZWZpbGUgbGludXgtMi42LWNwdS1mcHUvYXJjaC9w cGMva2VybmVsL01ha2VmaWxlDQotLS0gbGludXgtMi42L2FyY2gvcHBjL2tlcm5lbC9NYWtlZmls ZQkyMDA1LTAzLTE4IDA5OjEwOjExLjM5NzkxNTA1MSAtMDUwMA0KKysrIGxpbnV4LTIuNi1jcHUt ZnB1L2FyY2gvcHBjL2tlcm5lbC9NYWtlZmlsZQkyMDA1LTAzLTE4IDExOjI5OjU5LjQ4NjcxNjUy NCAtMDUwMA0KQEAgLTksNiArOSw3IEBADQogZXh0cmEtJChDT05GSUdfOHh4KQkJOj0gaGVhZF84 eHgubw0KIGV4dHJhLSQoQ09ORklHXzZ4eCkJCSs9IGlkbGVfNnh4Lm8NCiBleHRyYS0kKENPTkZJ R19QT1dFUjQpCQkrPSBpZGxlX3Bvd2VyNC5vDQorZXh0cmEtJChDT05GSUdfUFBDX0ZQVSkJCSs9 IGZwdS5vDQogZXh0cmEteQkJCQkrPSB2bWxpbnV4Lmxkcw0KIA0KIG9iai15CQkJCTo9IGVudHJ5 Lm8gdHJhcHMubyBpcnEubyBpZGxlLm8gdGltZS5vIG1pc2MubyBcDQpkaWZmIC11ck4gLVggL2hv bWUvam1jbXVsbGFuL2RvbnRkaWZmIGxpbnV4LTIuNi9hcmNoL3BwYy9rZXJuZWwvdHJhcHMuYyBs aW51eC0yLjYtY3B1LWZwdS9hcmNoL3BwYy9rZXJuZWwvdHJhcHMuYw0KLS0tIGxpbnV4LTIuNi9h cmNoL3BwYy9rZXJuZWwvdHJhcHMuYwkyMDA1LTAzLTE4IDA5OjEwOjEzLjkzNjMzMzgzNSAtMDUw MA0KKysrIGxpbnV4LTIuNi1jcHUtZnB1L2FyY2gvcHBjL2tlcm5lbC90cmFwcy5jCTIwMDUtMDMt MTggMTE6Mjk6NTkuNTA3NzExNzI1IC0wNTAwDQpAQCAtMTc2LDcgKzE3Niw3IEBADQogI2Vsc2UN CiAjZGVmaW5lIGdldF9tY19yZWFzb24ocmVncykJKG1mc3ByKFNQUk5fTUNTUikpDQogI2VuZGlm DQotI2RlZmluZSBSRUFTT05fRlAJCTANCisjZGVmaW5lIFJFQVNPTl9GUAkJRVNSX0ZQDQogI2Rl ZmluZSBSRUFTT05fSUxMRUdBTAkJRVNSX1BJTA0KICNkZWZpbmUgUkVBU09OX1BSSVZJTEVHRUQJ RVNSX1BQUg0KICNkZWZpbmUgUkVBU09OX1RSQVAJCUVTUl9QVFINCmRpZmYgLXVyTiAtWCAvaG9t ZS9qbWNtdWxsYW4vZG9udGRpZmYgbGludXgtMi42L2FyY2gvcHBjL2tlcm5lbC92ZWN0b3IuUyBs aW51eC0yLjYtY3B1LWZwdS9hcmNoL3BwYy9rZXJuZWwvdmVjdG9yLlMNCi0tLSBsaW51eC0yLjYv YXJjaC9wcGMva2VybmVsL3ZlY3Rvci5TCTIwMDUtMDMtMTggMDk6MTA6MTMuOTM4MzMzMzc4IC0w NTAwDQorKysgbGludXgtMi42LWNwdS1mcHUvYXJjaC9wcGMva2VybmVsL3ZlY3Rvci5TCTIwMDUt MDMtMTggMTM6MzQ6MzQuNjk3ODAxNDU3IC0wNTAwDQpAQCAtMSw1ICsxLDEwIEBADQorLyogQWx0 aXZlYyBzdXBwb3J0IGNvZGUuDQorICovDQorDQogI2luY2x1ZGUgPGFzbS9wcGNfYXNtLmg+DQog I2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4NCisjaW5jbHVkZSA8YXNtL29mZnNldHMuaD4NCisj aW5jbHVkZSA8YXNtL3BhZ2UuaD4NCiANCiAvKg0KICAqIFRoZSByb3V0aW5lcyBiZWxvdyBhcmUg aW4gYXNzZW1ibGVyIHNvIHdlIGNhbiBjbG9zZWx5IGNvbnRyb2wgdGhlDQpAQCAtMjE1LDMgKzIy MCwxMTggQEANCiAJbXRscglyMA0KIAlhZGRpCXIxLHIxLDMyDQogCWJscg0KKw0KKy8qIE5vdGUg dGhhdCB0aGUgQWx0aVZlYyBzdXBwb3J0IGlzIGNsb3NlbHkgbW9kZWxlZCBhZnRlciB0aGUgRlAN CisgKiBzdXBwb3J0LiAgQ2hhbmdlcyB0byBvbmUgYXJlIGxpa2VseSB0byBiZSBhcHBsaWNhYmxl IHRvIHRoZQ0KKyAqIG90aGVyISAgKi8NCisgCS5nbG9iYWwgbG9hZF91cF9hbHRpdmVjDQorbG9h ZF91cF9hbHRpdmVjOg0KKy8qDQorICogRGlzYWJsZSBBbHRpVmVjIGZvciB0aGUgdGFzayB3aGlj aCBoYWQgQWx0aVZlYyBwcmV2aW91c2x5LA0KKyAqIGFuZCBzYXZlIGl0cyBBbHRpVmVjIHJlZ2lz dGVycyBpbiBpdHMgdGhyZWFkX3N0cnVjdC4NCisgKiBFbmFibGVzIEFsdGlWZWMgZm9yIHVzZSBp biB0aGUga2VybmVsIG9uIHJldHVybi4NCisgKiBPbiBTTVAgd2Uga25vdyB0aGUgQWx0aVZlYyB1 bml0cyBhcmUgZnJlZSwgc2luY2Ugd2UgZ2l2ZSBpdCB1cCBldmVyeQ0KKyAqIHN3aXRjaC4gIC0t IEt1bWFyDQorICovDQorCW1mbXNyCXI1DQorCW9yaXMJcjUscjUsTVNSX1ZFQ0BoDQorCU1UTVNS RChyNSkJCQkvKiBlbmFibGUgdXNlIG9mIEFsdGlWZWMgbm93ICovDQorCWlzeW5jDQorLyoNCisg KiBGb3IgU01QLCB3ZSBkb24ndCBkbyBsYXp5IEFsdGlWZWMgc3dpdGNoaW5nIGJlY2F1c2UgaXQg anVzdCBnZXRzIHRvbw0KKyAqIGhvcnJlbmRvdXNseSBjb21wbGV4LCBlc3BlY2lhbGx5IHdoZW4g YSB0YXNrIHN3aXRjaGVzIGZyb20gb25lIENQVQ0KKyAqIHRvIGFub3RoZXIuICBJbnN0ZWFkIHdl IGNhbGwgZ2l2ZXVwX2FsdGl2ZWMgaW4gc3dpdGNoX3RvLg0KKyAqLw0KKyNpZm5kZWYgQ09ORklH X1NNUA0KKwl0b3BoeXMocjYsMCkNCisJYWRkaXMJcjMscjYsbGFzdF90YXNrX3VzZWRfYWx0aXZl Y0BoYQ0KKwlsd3oJcjQsbGFzdF90YXNrX3VzZWRfYWx0aXZlY0BsKHIzKQ0KKwljbXB3aQkwLHI0 LDANCisJYmVxCTFmDQorCWFkZAlyNCxyNCxyNg0KKwlhZGRpCXI0LHI0LFRIUkVBRAkvKiB3YW50 IFRIUkVBRCBvZiBsYXN0X3Rhc2tfdXNlZF9hbHRpdmVjICovDQorCVNBVkVfMzJWUigwLHIxMCxy NCkNCisJbWZ2c2NyCXZyMA0KKwlsaQlyMTAsVEhSRUFEX1ZTQ1INCisJc3R2eAl2cjAscjEwLHI0 DQorCWx3eglyNSxQVF9SRUdTKHI0KQ0KKwlhZGQJcjUscjUscjYNCisJbHd6CXI0LF9NU1ItU1RB Q0tfRlJBTUVfT1ZFUkhFQUQocjUpDQorCWxpcwlyMTAsTVNSX1ZFQ0BoDQorCWFuZGMJcjQscjQs cjEwCS8qIGRpc2FibGUgYWx0aXZlYyBmb3IgcHJldmlvdXMgdGFzayAqLw0KKwlzdHcJcjQsX01T Ui1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCisxOg0KKyNlbmRpZiAvKiBDT05GSUdfU01QICov DQorCS8qIGVuYWJsZSB1c2Ugb2YgQWx0aVZlYyBhZnRlciByZXR1cm4gKi8NCisJb3JpcwlyOSxy OSxNU1JfVkVDQGgNCisJbWZzcHIJcjUsU1BSTl9TUFJHMwkJLyogY3VycmVudCB0YXNrJ3MgVEhS RUFEIChwaHlzKSAqLw0KKwlsaQlyNCwxDQorCWxpCXIxMCxUSFJFQURfVlNDUg0KKwlzdHcJcjQs VEhSRUFEX1VTRURfVlIocjUpDQorCWx2eAl2cjAscjEwLHI1DQorCW10dnNjcgl2cjANCisJUkVT VF8zMlZSKDAscjEwLHI1KQ0KKyNpZm5kZWYgQ09ORklHX1NNUA0KKwlzdWJpCXI0LHI1LFRIUkVB RA0KKwlzdWIJcjQscjQscjYNCisJc3R3CXI0LGxhc3RfdGFza191c2VkX2FsdGl2ZWNAbChyMykN CisjZW5kaWYgLyogQ09ORklHX1NNUCAqLw0KKwkvKiByZXN0b3JlIHJlZ2lzdGVycyBhbmQgcmV0 dXJuICovDQorCWx3eglyNCwgX0NUUihyMTEpCQkvKiBSZXN0b3JlIHNhdmVkIGN0ciAqLw0KKwlt dGxyCXI0DQorCS8qIHdlIGhhdmVuJ3QgdXNlZCBjdHIgb3IgeGVyIG9yIGxyICovDQorCWIJZmFz dF9leGNlcHRpb25fcmV0dXJuDQorDQorLyoNCisgKiBBbHRpVmVjIHVuYXZhaWxhYmxlIHRyYXAg ZnJvbSBrZXJuZWwgLSBwcmludCBhIG1lc3NhZ2UsIGJ1dCBsZXQNCisgKiB0aGUgdGFzayB1c2Ug QWx0aVZlYyBpbiB0aGUga2VybmVsIHVudGlsIGl0IHJldHVybnMgdG8gdXNlciBtb2RlLg0KKyAq Lw0KKyAJLmdsb2JhbCBLZXJuZWxBbHRpVmVjDQorS2VybmVsQWx0aVZlYzoNCisJbHd6CXIzLF9N U1IocjEpDQorCW9yaXMJcjMscjMsTVNSX1ZFQ0BoDQorCXN0dwlyMyxfTVNSKHIxKQkvKiBlbmFi bGUgdXNlIG9mIEFsdGlWZWMgYWZ0ZXIgcmV0dXJuICovDQorCWxpcwlyMyw4N2ZAaA0KKwlvcmkJ cjMscjMsODdmQGwNCisJbXIJcjQscjIJCS8qIGN1cnJlbnQgKi8NCisJbHd6CXI1LF9OSVAocjEp DQorCWJsCXByaW50aw0KKwliCXJldF9mcm9tX2V4Y2VwdA0KKzg3Ogkuc3RyaW5nCSJBbHRpVmVj IHVzZWQgaW4ga2VybmVsICAodGFzaz0lcCwgcGM9JXgpICBcbiINCisJLmFsaWduCTQsMA0KKw0K Ky8qDQorICogZ2l2ZXVwX2FsdGl2ZWModHNrKQ0KKyAqIERpc2FibGUgQWx0aVZlYyBmb3IgdGhl IHRhc2sgZ2l2ZW4gYXMgdGhlIGFyZ3VtZW50LA0KKyAqIGFuZCBzYXZlIHRoZSBBbHRpVmVjIHJl Z2lzdGVycyBpbiBpdHMgdGhyZWFkX3N0cnVjdC4NCisgKiBFbmFibGVzIEFsdGlWZWMgZm9yIHVz ZSBpbiB0aGUga2VybmVsIG9uIHJldHVybi4NCisgKi8NCisNCisJLmdsb2JhbCBnaXZldXBfYWx0 aXZlYw0KK2dpdmV1cF9hbHRpdmVjOg0KKwltZm1zcglyNQ0KKwlvcmlzCXI1LHI1LE1TUl9WRUNA aA0KKwlTWU5DDQorCU1UTVNSRChyNSkJCQkvKiBlbmFibGUgdXNlIG9mIEFsdGlWZWMgbm93ICov DQorCWlzeW5jDQorCWNtcHdpCTAscjMsMA0KKwliZXFsci0JCQkJLyogaWYgbm8gcHJldmlvdXMg b3duZXIsIGRvbmUgKi8NCisJYWRkaQlyMyxyMyxUSFJFQUQJCS8qIHdhbnQgVEhSRUFEIG9mIHRh c2sgKi8NCisJbHd6CXI1LFBUX1JFR1MocjMpDQorCWNtcHdpCTAscjUsMA0KKwlTQVZFXzMyVlIo MCwgcjQsIHIzKQ0KKwltZnZzY3IJdnIwDQorCWxpCXI0LFRIUkVBRF9WU0NSDQorCXN0dngJdnIw LHI0LHIzDQorCWJlcQkxZg0KKwlsd3oJcjQsX01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkN CisJbGlzCXIzLE1TUl9WRUNAaA0KKwlhbmRjCXI0LHI0LHIzCQkvKiBkaXNhYmxlIEFsdGlWZWMg Zm9yIHByZXZpb3VzIHRhc2sgKi8NCisJc3R3CXI0LF9NU1ItU1RBQ0tfRlJBTUVfT1ZFUkhFQUQo cjUpDQorMToNCisjaWZuZGVmIENPTkZJR19TTVANCisJbGkJcjUsMA0KKwlsaXMJcjQsbGFzdF90 YXNrX3VzZWRfYWx0aXZlY0BoYQ0KKwlzdHcJcjUsbGFzdF90YXNrX3VzZWRfYWx0aXZlY0BsKHI0 KQ0KKyNlbmRpZiAvKiBDT05GSUdfU01QICovDQorCWJscg0KZGlmZiAtdXJOIC1YIC9ob21lL2pt Y211bGxhbi9kb250ZGlmZiBsaW51eC0yLjYvYXJjaC9wcGMvTWFrZWZpbGUgbGludXgtMi42LWNw dS1mcHUvYXJjaC9wcGMvTWFrZWZpbGUNCi0tLSBsaW51eC0yLjYvYXJjaC9wcGMvTWFrZWZpbGUJ MjAwNS0wMy0xOCAwOToxMDoxNC43MzcxNTA0NzQgLTA1MDANCisrKyBsaW51eC0yLjYtY3B1LWZw dS9hcmNoL3BwYy9NYWtlZmlsZQkyMDA1LTAzLTE4IDExOjI5OjU5LjUyNDcwNzg0MCAtMDUwMA0K QEAgLTUzLDYgKzUzLDcgQEANCiANCiBoZWFkLSQoQ09ORklHXzZ4eCkJCSs9IGFyY2gvcHBjL2tl cm5lbC9pZGxlXzZ4eC5vDQogaGVhZC0kKENPTkZJR19QT1dFUjQpCQkrPSBhcmNoL3BwYy9rZXJu ZWwvaWRsZV9wb3dlcjQubw0KK2hlYWQtJChDT05GSUdfUFBDX0ZQVSkJCSs9IGFyY2gvcHBjL2tl cm5lbC9mcHUubw0KIA0KIGNvcmUteQkJCQkrPSBhcmNoL3BwYy9rZXJuZWwvIGFyY2gvcHBjL3Bs YXRmb3Jtcy8gXA0KIAkJCQkgICBhcmNoL3BwYy9tbS8gYXJjaC9wcGMvbGliLyBhcmNoL3BwYy9z eXNsaWIvDQpkaWZmIC11ck4gLVggL2hvbWUvam1jbXVsbGFuL2RvbnRkaWZmIGxpbnV4LTIuNi9p bmNsdWRlL2FzbS1wcGMvcmVnX2Jvb2tlLmggbGludXgtMi42LWNwdS1mcHUvaW5jbHVkZS9hc20t cHBjL3JlZ19ib29rZS5oDQotLS0gbGludXgtMi42L2luY2x1ZGUvYXNtLXBwYy9yZWdfYm9va2Uu aAkyMDA1LTAzLTE4IDA5OjM3OjQxLjAwMDAwMDAwMCAtMDUwMA0KKysrIGxpbnV4LTIuNi1jcHUt ZnB1L2luY2x1ZGUvYXNtLXBwYy9yZWdfYm9va2UuaAkyMDA1LTAzLTE4IDExOjI5OjU5LjUzMDcw NjQ2OSAtMDUwMA0KQEAgLTMwNCw2ICszMDQsNyBAQA0KICNkZWZpbmUgRVNSX1BJTAkJMHgwODAw MDAwMAkvKiBQcm9ncmFtIEV4Y2VwdGlvbiAtIElsbGVnYWwgKi8NCiAjZGVmaW5lIEVTUl9QUFIJ CTB4MDQwMDAwMDAJLyogUHJvZ3JhbSBFeGNlcHRpb24gLSBQcml2ZWxlZ2VkICovDQogI2RlZmlu ZSBFU1JfUFRSCQkweDAyMDAwMDAwCS8qIFByb2dyYW0gRXhjZXB0aW9uIC0gVHJhcCAqLw0KKyNk ZWZpbmUgRVNSX0ZQICAgICAgICAgIDB4MDEwMDAwMDAgICAgICAvKiBGbG9hdGluZyBQb2ludCBP cGVyYXRpb24gKi8NCiAjZGVmaW5lIEVTUl9EU1QJCTB4MDA4MDAwMDAJLyogU3RvcmFnZSBFeGNl cHRpb24gLSBEYXRhIG1pc3MgKi8NCiAjZGVmaW5lIEVTUl9ESVoJCTB4MDA0MDAwMDAJLyogU3Rv cmFnZSBFeGNlcHRpb24gLSBab25lIGZhdWx0ICovDQogI2RlZmluZSBFU1JfU1QJCTB4MDA4MDAw MDAJLyogU3RvcmUgT3BlcmF0aW9uICovDQo= --=-JqLluudmYZOgRlrZ04rJ-- --=-AW/Y1I/RJiaAElitzp/n Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBCOyE/8/0vJ5szK6kRAmTzAKCxpjYyV3KzIm9j9QdDL5V0T4RQxACgyh5D W/DNRmMIvrxy0KN/pBW47YQ= =NT9p -----END PGP SIGNATURE----- --=-AW/Y1I/RJiaAElitzp/n--