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 AC61E67A6B for ; Wed, 16 Mar 2005 09:18:28 +1100 (EST) From: Jason McMullan To: Kumar Gala In-Reply-To: <583185c11becaca3ce73e4010c18154d@freescale.com> References: <1110907039.24673.12.camel@rhino.az.mvista.com> <1110915063.5937.93.camel@ad.doubleclick.net> <583185c11becaca3ce73e4010c18154d@freescale.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-bsmD0zJQA81KvbRtNYwK" Date: Tue, 15 Mar 2005 17:18:23 -0500 Message-Id: <1110925103.5937.107.camel@ad.doubleclick.net> Mime-Version: 1.0 Cc: linuxppc-embedded Subject: Re: 440EP FPU patch List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , --=-bsmD0zJQA81KvbRtNYwK Content-Type: multipart/mixed; boundary="=-ScJ4kolzZwH/njkJfM6i" --=-ScJ4kolzZwH/njkJfM6i Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2005-03-15 at 15:09 -0600, Kumar Gala wrote: > 1. Change config option to CONFIG_PPC_FPU > 2. split out altivec support into a separate file, most likely just=20 > move it into vector.S > 3. Get ride of the C++ comments Changes made, as per your suggestions, and new patch attached. --=20 Jason McMullan TimeSys Corporation --=-ScJ4kolzZwH/njkJfM6i 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 IyMjIyBBdXRvLWdlbmVyYXRlZCBwYXRjaCAjIyMjDQpEYXRlOiAgICAgICAgVHVlLCAxNSBNYXIg MjAwNSAxNzoxNjo0NyAtMDUwMA0KTWFpbnRhaW5lcjogIEphc29uIE1jTXVsbGFuIDxqYXNvbi5t Y211bGxhbkB0aW1lc3lzLmNvbT4NClN1bW1hcnk6ICAgICBGUFUgc3VwcG9ydCBvbiBQUEMgY2hp cHMgdGhhdCBkb24ndCB1c2UgdGhlIG5vcm1hbCBoZWFkLlMNClNpZ25lZC1PZmYtQnk6IEphc29u IE1jTXVsbGFuIDxqYXNvbi5tY211bGxhbkB0aW1lc3lzLmNvbT4NCiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMNCg0KSW5kZXggb2YgY2hhbmdlczoNCg0KIGFyY2gvcHBjL0tjb25maWcg ICAgICAgICAgICB8ICAgIDYgDQogYXJjaC9wcGMvTWFrZWZpbGUgICAgICAgICAgIHwgICAgMSAN CiBhcmNoL3BwYy9rZXJuZWwvTWFrZWZpbGUgICAgfCAgICAxIA0KIGFyY2gvcHBjL2tlcm5lbC9o ZWFkLlMgICAgICB8ICAyNzYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCiBhcmNoL3BwYy9rZXJuZWwvaGVhZF80NHguUyAgfCAgIDEyICsNCiBhcmNoL3BwYy9r ZXJuZWwvdHJhcHMuYyAgICAgfCAgICAyIA0KIGFyY2gvcHBjL2tlcm5lbC92ZWN0b3IuUyAgICB8 ICAxMTYgKysrKysrKysrKysrKysrKysrDQogaW5jbHVkZS9hc20tcHBjL3JlZ19ib29rZS5oIHwg ICAgMSANCiBsaW51eC9hcmNoL3BwYy9rZXJuZWwvZnB1LlMgfCAgMTgzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrDQogOSBmaWxlcyBjaGFuZ2VkLCAzMTkgaW5zZXJ0aW9ucygrKSwgMjc5 IGRlbGV0aW9ucygtKQ0KDQoNCi0tLSBsaW51eC1vcmlnL2FyY2gvcHBjL0tjb25maWcNCisrKyBs aW51eC9hcmNoL3BwYy9LY29uZmlnDQpAQCAtNTMsNiArNTMsNyBAQA0KIA0KIGNvbmZpZyA2eHgN CiAJYm9vbCAiNnh4Lzd4eC83NHh4LzUyeHgvODI2MCINCisJc2VsZWN0IFBQQ19GUFUNCiAJaGVs cA0KIAkgIFRoZXJlIGFyZSBmb3VyIHR5cGVzIG9mIFBvd2VyUEMgY2hpcHMgc3VwcG9ydGVkLiAg VGhlIG1vcmUgY29tbW9uDQogCSAgdHlwZXMgKDYwMSwgNjAzLCA2MDQsIDc0MCwgNzUwLCA3NDAw KSwgdGhlIE1vdG9yb2xhIGVtYmVkZGVkDQpAQCAtODMsOCArODQsMTEgQEANCiANCiBjb25maWcg RTUwMA0KIAlib29sICJlNTAwIg0KKwkNCitlbmRjaG9pY2UNCiANCi1lbmRjaG9pY2UNCitjb25m aWcgUFBDX0ZQVQ0KKwlib29sDQogDQogY29uZmlnIEJPT0tFDQogCWJvb2wNCi0tLSBsaW51eC1v cmlnL2FyY2gvcHBjL01ha2VmaWxlDQorKysgbGludXgvYXJjaC9wcGMvTWFrZWZpbGUNCkBAIC01 Myw2ICs1Myw3IEBADQogDQogaGVhZC0kKENPTkZJR182eHgpCQkrPSBhcmNoL3BwYy9rZXJuZWwv aWRsZV82eHgubw0KIGhlYWQtJChDT05GSUdfUE9XRVI0KQkJKz0gYXJjaC9wcGMva2VybmVsL2lk bGVfcG93ZXI0Lm8NCitoZWFkLSQoQ09ORklHX1BQQ19GUFUpCQkrPSBhcmNoL3BwYy9rZXJuZWwv ZnB1Lm8NCiANCiBjb3JlLXkJCQkJKz0gYXJjaC9wcGMva2VybmVsLyBhcmNoL3BwYy9wbGF0Zm9y bXMvIFwNCiAJCQkJICAgYXJjaC9wcGMvbW0vIGFyY2gvcHBjL2xpYi8gYXJjaC9wcGMvc3lzbGli Lw0KLS0tIGxpbnV4LW9yaWcvYXJjaC9wcGMva2VybmVsL01ha2VmaWxlDQorKysgbGludXgvYXJj aC9wcGMva2VybmVsL01ha2VmaWxlDQpAQCAtOSw2ICs5LDcgQEANCiBleHRyYS0kKENPTkZJR184 eHgpCQk6PSBoZWFkXzh4eC5vDQogZXh0cmEtJChDT05GSUdfNnh4KQkJKz0gaWRsZV82eHgubw0K IGV4dHJhLSQoQ09ORklHX1BPV0VSNCkJCSs9IGlkbGVfcG93ZXI0Lm8NCitleHRyYS0kKENPTkZJ R19QUENfRlBVKQkJKz0gZnB1Lm8NCiBleHRyYS15CQkJCSs9IHZtbGludXgubGRzDQogDQogb2Jq LXkJCQkJOj0gZW50cnkubyB0cmFwcy5vIGlycS5vIGlkbGUubyB0aW1lLm8gbWlzYy5vIFwNCi0t LSAvZGV2L251bGwNCisrKyBsaW51eC9hcmNoL3BwYy9rZXJuZWwvZnB1LlMNCkBAIC0wLDAgKzEs MTgzIEBADQorLyogRlBVIHN1cHBvcnQgY29kZSwgbW92ZWQgaGVyZSBmcm9tIGhlYWQuUyBzbyB0 aGF0IGl0IGNhbiBiZSB1c2VkDQorICogYnkgY2hpcHMgd2hpY2ggdXNlIG90aGVyIGhlYWQtd2hh dGV2ZXIuUyBmaWxlcy4NCisgKi8NCisNCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+DQorI2lu Y2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4NCisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4NCisjaW5jbHVk ZSA8YXNtL21tdS5oPg0KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPg0KKyNpbmNsdWRlIDxhc20v Y3B1dGFibGUuaD4NCisjaW5jbHVkZSA8YXNtL2NhY2hlLmg+DQorI2luY2x1ZGUgPGFzbS90aHJl YWRfaW5mby5oPg0KKyNpbmNsdWRlIDxhc20vcHBjX2FzbS5oPg0KKyNpbmNsdWRlIDxhc20vb2Zm c2V0cy5oPg0KKw0KKy8qDQorICogVGhpcyB0YXNrIHdhbnRzIHRvIHVzZSB0aGUgRlBVIG5vdy4N CisgKiBPbiBVUCwgZGlzYWJsZSBGUCBmb3IgdGhlIHRhc2sgd2hpY2ggaGFkIHRoZSBGUFUgcHJl dmlvdXNseSwNCisgKiBhbmQgc2F2ZSBpdHMgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzIGluIGl0 cyB0aHJlYWRfc3RydWN0Lg0KKyAqIExvYWQgdXAgdGhpcyB0YXNrJ3MgRlAgcmVnaXN0ZXJzIGZy b20gaXRzIHRocmVhZF9zdHJ1Y3QsDQorICogZW5hYmxlIHRoZSBGUFUgZm9yIHRoZSBjdXJyZW50 IHRhc2sgYW5kIHJldHVybiB0byB0aGUgdGFzay4NCisgKi8NCisJLmdsb2JhbCBsb2FkX3VwX2Zw dQ0KK2xvYWRfdXBfZnB1Og0KKwltZm1zcglyNQ0KKwlvcmkJcjUscjUsTVNSX0ZQDQorI2lmZGVm IENPTkZJR19QUEM2NEJSSURHRQ0KKwljbHJsZGkJcjUscjUsMQkJCS8qIHR1cm4gb2ZmIDY0LWJp dCBtb2RlICovDQorI2VuZGlmIC8qIENPTkZJR19QUEM2NEJSSURHRSAqLw0KKwlTWU5DDQorCU1U TVNSRChyNSkJCQkvKiBlbmFibGUgdXNlIG9mIGZwdSBub3cgKi8NCisJaXN5bmMNCisvKg0KKyAq IEZvciBTTVAsIHdlIGRvbid0IGRvIGxhenkgRlBVIHN3aXRjaGluZyBiZWNhdXNlIGl0IGp1c3Qg Z2V0cyB0b28NCisgKiBob3JyZW5kb3VzbHkgY29tcGxleCwgZXNwZWNpYWxseSB3aGVuIGEgdGFz ayBzd2l0Y2hlcyBmcm9tIG9uZSBDUFUNCisgKiB0byBhbm90aGVyLiAgSW5zdGVhZCB3ZSBjYWxs IGdpdmV1cF9mcHUgaW4gc3dpdGNoX3RvLg0KKyAqLw0KKyNpZm5kZWYgQ09ORklHX1NNUA0KKwl0 b3BoeXMocjYsMCkJCQkvKiBnZXQgX19wYSBjb25zdGFudCAqLw0KKwlhZGRpcwlyMyxyNixsYXN0 X3Rhc2tfdXNlZF9tYXRoQGhhDQorCWx3eglyNCxsYXN0X3Rhc2tfdXNlZF9tYXRoQGwocjMpDQor CWNtcHdpCTAscjQsMA0KKwliZXEJMWYNCisJYWRkCXI0LHI0LHI2DQorCWFkZGkJcjQscjQsVEhS RUFECQkvKiB3YW50IGxhc3RfdGFza191c2VkX21hdGgtPnRocmVhZCAqLw0KKwlTQVZFXzMyRlBS UygwLCByNCkNCisJbWZmcwlmcjANCisJc3RmZAlmcjAsVEhSRUFEX0ZQU0NSLTQocjQpDQorCWx3 eglyNSxQVF9SRUdTKHI0KQ0KKwlhZGQJcjUscjUscjYNCisJbHd6CXI0LF9NU1ItU1RBQ0tfRlJB TUVfT1ZFUkhFQUQocjUpDQorCWxpCXIxMCxNU1JfRlB8TVNSX0ZFMHxNU1JfRkUxDQorCWFuZGMJ cjQscjQscjEwCQkvKiBkaXNhYmxlIEZQIGZvciBwcmV2aW91cyB0YXNrICovDQorCXN0dwlyNCxf TVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KKzE6DQorI2VuZGlmIC8qIENPTkZJR19TTVAg Ki8NCisJLyogZW5hYmxlIHVzZSBvZiBGUCBhZnRlciByZXR1cm4gKi8NCisJbWZzcHIJcjUsU1BS RzMJCS8qIGN1cnJlbnQgdGFzaydzIFRIUkVBRCAocGh5cykgKi8NCisJbHd6CXI0LFRIUkVBRF9G UEVYQ19NT0RFKHI1KQ0KKwlvcmkJcjkscjksTVNSX0ZQCQkvKiBlbmFibGUgRlAgZm9yIGN1cnJl bnQgKi8NCisJb3IJcjkscjkscjQNCisJbGZkCWZyMCxUSFJFQURfRlBTQ1ItNChyNSkNCisJbXRm c2YJMHhmZixmcjANCisJUkVTVF8zMkZQUlMoMCwgcjUpDQorI2lmbmRlZiBDT05GSUdfU01QDQor CXN1YmkJcjQscjUsVEhSRUFEDQorCXN1YglyNCxyNCxyNg0KKwlzdHcJcjQsbGFzdF90YXNrX3Vz ZWRfbWF0aEBsKHIzKQ0KKyNlbmRpZiAvKiBDT05GSUdfU01QICovDQorCS8qIHJlc3RvcmUgcmVn aXN0ZXJzIGFuZCByZXR1cm4gKi8NCisJLyogd2UgaGF2ZW4ndCB1c2VkIGN0ciBvciB4ZXIgb3Ig bHIgKi8NCisJLyogZmFsbCB0aHJvdWdoIHRvIGZhc3RfZXhjZXB0aW9uX3JldHVybiAqLw0KKw0K KwkuZ2xvYmFsIGZhc3RfZXhjZXB0aW9uX3JldHVybg0KK2Zhc3RfZXhjZXB0aW9uX3JldHVybjoN CisjaWYgIShkZWZpbmVkKENPTkZJR180eHgpIHx8IGRlZmluZWQoQ09ORklHX0JPT0tFKSkNCisJ YW5kaS4JcjEwLHI5LE1TUl9SSQkJLyogY2hlY2sgZm9yIHJlY292ZXJhYmxlIGludGVycnVwdCAq Lw0KKwliZXEJMWYJCQkvKiBpZiBub3QsIHdlJ3ZlIGdvdCBwcm9ibGVtcyAqLw0KKyNlbmRpZg0K Kw0KKzI6CVJFU1RfNEdQUlMoMywgcjExKQ0KKwlsd3oJcjEwLF9DQ1IocjExKQ0KKwlSRVNUX0dQ UigxLCByMTEpDQorCW10Y3IJcjEwDQorCWx3eglyMTAsX0xJTksocjExKQ0KKwltdGxyCXIxMA0K KwlSRVNUX0dQUigxMCwgcjExKQ0KKwltdHNwcglTUlIxLHI5DQorCW10c3ByCVNSUjAscjEyDQor CVJFU1RfR1BSKDksIHIxMSkNCisJUkVTVF9HUFIoMTIsIHIxMSkNCisJbHd6CXIxMSxHUFIxMShy MTEpDQorCVNZTkMNCisJUkZJDQorDQorLyogY2hlY2sgaWYgdGhlIGV4Y2VwdGlvbiBoYXBwZW5l ZCBpbiBhIHJlc3RhcnRhYmxlIHNlY3Rpb24gKi8NCisxOglsaXMJcjMsZXhjX2V4aXRfcmVzdGFy dF9lbmRAaGENCisJYWRkaQlyMyxyMyxleGNfZXhpdF9yZXN0YXJ0X2VuZEBsDQorCWNtcGx3CXIx MixyMw0KKwliZ2UJM2YNCisJbGlzCXI0LGV4Y19leGl0X3Jlc3RhcnRAaGENCisJYWRkaQlyNCxy NCxleGNfZXhpdF9yZXN0YXJ0QGwNCisJY21wbHcJcjEyLHI0DQorCWJsdAkzZg0KKwlsaXMJcjMs ZmVlX3Jlc3RhcnRzQGhhDQorCXRvcGh5cyhyMyxyMykNCisJbHd6CXI1LGZlZV9yZXN0YXJ0c0Bs KHIzKQ0KKwlhZGRpCXI1LHI1LDENCisJc3R3CXI1LGZlZV9yZXN0YXJ0c0BsKHIzKQ0KKwltcgly MTIscjQJCS8qIHJlc3RhcnQgYXQgZXhjX2V4aXRfcmVzdGFydCAqLw0KKwliCTJiDQorDQorCS5j b21tCWZlZV9yZXN0YXJ0cyw0DQorDQorLyogYWFyZ2gsIGEgbm9ucmVjb3ZlcmFibGUgaW50ZXJy dXB0LCBwYW5pYyAqLw0KKy8qIGFhcmdoLCB3ZSBkb24ndCBrbm93IHdoaWNoIHRyYXAgdGhpcyBp cyAqLw0KKy8qIGJ1dCB0aGUgNjAxIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBSSSBiaXQsIHNvIGFz c3VtZSBpdCdzIE9LICovDQorMzoNCitCRUdJTl9GVFJfU0VDVElPTg0KKwliCTJiDQorRU5EX0ZU Ul9TRUNUSU9OX0lGU0VUKENQVV9GVFJfNjAxKQ0KKwlsaQlyMTAsLTENCisJc3R3CXIxMCxUUkFQ KHIxMSkNCisJYWRkaQlyMyxyMSxTVEFDS19GUkFNRV9PVkVSSEVBRA0KKwlsaXMJcjEwLCBNU1Jf S0VSTkVMQGgNCisJb3JpCXIxMCwgcjEwLCBNU1JfS0VSTkVMQGwNCisJYmwJdHJhbnNmZXJfdG9f aGFuZGxlcl9mdWxsDQorCS5sb25nCW5vbnJlY292ZXJhYmxlX2V4Y2VwdGlvbg0KKwkubG9uZwly ZXRfZnJvbV9leGNlcHQNCisNCisvKg0KKyAqIEZQIHVuYXZhaWxhYmxlIHRyYXAgZnJvbSBrZXJu ZWwgLSBwcmludCBhIG1lc3NhZ2UsIGJ1dCBsZXQNCisgKiB0aGUgdGFzayB1c2UgRlAgaW4gdGhl IGtlcm5lbCB1bnRpbCBpdCByZXR1cm5zIHRvIHVzZXIgbW9kZS4NCisgKi8NCisgCS5nbG9iYWwg S2VybmVsRlANCitLZXJuZWxGUDoNCisJbHd6CXIzLF9NU1IocjEpDQorCW9yaQlyMyxyMyxNU1Jf RlANCisJc3R3CXIzLF9NU1IocjEpCQkvKiBlbmFibGUgdXNlIG9mIEZQIGFmdGVyIHJldHVybiAq Lw0KKwlsaXMJcjMsODZmQGgNCisJb3JpCXIzLHIzLDg2ZkBsDQorCW1yCXI0LHIyCQkJLyogY3Vy cmVudCAqLw0KKwlsd3oJcjUsX05JUChyMSkNCisJYmwJcHJpbnRrDQorCWIJcmV0X2Zyb21fZXhj ZXB0DQorODY6CS5zdHJpbmcJImZsb2F0aW5nIHBvaW50IHVzZWQgaW4ga2VybmVsICh0YXNrPSVw LCBwYz0leClcbiINCisJLmFsaWduCTQsMA0KKw0KKy8qDQorICogZ2l2ZXVwX2ZwdSh0c2spDQor ICogRGlzYWJsZSBGUCBmb3IgdGhlIHRhc2sgZ2l2ZW4gYXMgdGhlIGFyZ3VtZW50LA0KKyAqIGFu ZCBzYXZlIHRoZSBmbG9hdGluZy1wb2ludCByZWdpc3RlcnMgaW4gaXRzIHRocmVhZF9zdHJ1Y3Qu DQorICogRW5hYmxlcyB0aGUgRlBVIGZvciB1c2UgaW4gdGhlIGtlcm5lbCBvbiByZXR1cm4uDQor ICovDQorCS5nbG9iYWwgZ2l2ZXVwX2ZwdQ0KK2dpdmV1cF9mcHU6DQorCW1mbXNyCXI1DQorCW9y aQlyNSxyNSxNU1JfRlANCisJU1lOQ182MDENCisJSVNZTkNfNjAxDQorCU1UTVNSRChyNSkJCQkv KiBlbmFibGUgdXNlIG9mIGZwdSBub3cgKi8NCisJU1lOQ182MDENCisJaXN5bmMNCisJY21wd2kJ MCxyMywwDQorCWJlcWxyLQkJCQkvKiBpZiBubyBwcmV2aW91cyBvd25lciwgZG9uZSAqLw0KKwlh ZGRpCXIzLHIzLFRIUkVBRAkgICAgICAgIC8qIHdhbnQgVEhSRUFEIG9mIHRhc2sgKi8NCisJbHd6 CXI1LFBUX1JFR1MocjMpDQorCWNtcHdpCTAscjUsMA0KKwlTQVZFXzMyRlBSUygwLCByMykNCisJ bWZmcwlmcjANCisJc3RmZAlmcjAsVEhSRUFEX0ZQU0NSLTQocjMpDQorCWJlcQkxZg0KKwlsd3oJ cjQsX01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCisJbGkJcjMsTVNSX0ZQfE1TUl9GRTB8 TVNSX0ZFMQ0KKwlhbmRjCXI0LHI0LHIzCQkvKiBkaXNhYmxlIEZQIGZvciBwcmV2aW91cyB0YXNr ICovDQorCXN0dwlyNCxfTVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KKzE6DQorI2lmbmRl ZiBDT05GSUdfU01QDQorCWxpCXI1LDANCisJbGlzCXI0LGxhc3RfdGFza191c2VkX21hdGhAaGEN CisJc3R3CXI1LGxhc3RfdGFza191c2VkX21hdGhAbChyNCkNCisjZW5kaWYgLyogQ09ORklHX1NN UCAqLw0KKwlibHINCg0KLS0tIGxpbnV4LW9yaWcvYXJjaC9wcGMva2VybmVsL2hlYWQuUw0KKysr IGxpbnV4L2FyY2gvcHBjL2tlcm5lbC9oZWFkLlMNCkBAIC03NzYsMjgyICs3NzYsNiBAQA0KICNl bmRpZiAvKiBDT05GSUdfUFBDNjRCUklER0UgKi8NCiANCiAvKg0KLSAqIFRoaXMgdGFzayB3YW50 cyB0byB1c2UgdGhlIEZQVSBub3cuDQotICogT24gVVAsIGRpc2FibGUgRlAgZm9yIHRoZSB0YXNr IHdoaWNoIGhhZCB0aGUgRlBVIHByZXZpb3VzbHksDQotICogYW5kIHNhdmUgaXRzIGZsb2F0aW5n LXBvaW50IHJlZ2lzdGVycyBpbiBpdHMgdGhyZWFkX3N0cnVjdC4NCi0gKiBMb2FkIHVwIHRoaXMg dGFzaydzIEZQIHJlZ2lzdGVycyBmcm9tIGl0cyB0aHJlYWRfc3RydWN0LA0KLSAqIGVuYWJsZSB0 aGUgRlBVIGZvciB0aGUgY3VycmVudCB0YXNrIGFuZCByZXR1cm4gdG8gdGhlIHRhc2suDQotICov DQotbG9hZF91cF9mcHU6DQotCW1mbXNyCXI1DQotCW9yaQlyNSxyNSxNU1JfRlANCi0jaWZkZWYg Q09ORklHX1BQQzY0QlJJREdFDQotCWNscmxkaQlyNSxyNSwxCQkJLyogdHVybiBvZmYgNjQtYml0 IG1vZGUgKi8NCi0jZW5kaWYgLyogQ09ORklHX1BQQzY0QlJJREdFICovDQotCVNZTkMNCi0JTVRN U1JEKHI1KQkJCS8qIGVuYWJsZSB1c2Ugb2YgZnB1IG5vdyAqLw0KLQlpc3luYw0KLS8qDQotICog Rm9yIFNNUCwgd2UgZG9uJ3QgZG8gbGF6eSBGUFUgc3dpdGNoaW5nIGJlY2F1c2UgaXQganVzdCBn ZXRzIHRvbw0KLSAqIGhvcnJlbmRvdXNseSBjb21wbGV4LCBlc3BlY2lhbGx5IHdoZW4gYSB0YXNr IHN3aXRjaGVzIGZyb20gb25lIENQVQ0KLSAqIHRvIGFub3RoZXIuICBJbnN0ZWFkIHdlIGNhbGwg Z2l2ZXVwX2ZwdSBpbiBzd2l0Y2hfdG8uDQotICovDQotI2lmbmRlZiBDT05GSUdfU01QDQotCXRv cGh5cyhyNiwwKQkJCS8qIGdldCBfX3BhIGNvbnN0YW50ICovDQotCWFkZGlzCXIzLHI2LGxhc3Rf dGFza191c2VkX21hdGhAaGENCi0JbHd6CXI0LGxhc3RfdGFza191c2VkX21hdGhAbChyMykNCi0J Y21wd2kJMCxyNCwwDQotCWJlcQkxZg0KLQlhZGQJcjQscjQscjYNCi0JYWRkaQlyNCxyNCxUSFJF QUQJCS8qIHdhbnQgbGFzdF90YXNrX3VzZWRfbWF0aC0+dGhyZWFkICovDQotCVNBVkVfMzJGUFJT KDAsIHI0KQ0KLQltZmZzCWZyMA0KLQlzdGZkCWZyMCxUSFJFQURfRlBTQ1ItNChyNCkNCi0JbHd6 CXI1LFBUX1JFR1MocjQpDQotCWFkZAlyNSxyNSxyNg0KLQlsd3oJcjQsX01TUi1TVEFDS19GUkFN RV9PVkVSSEVBRChyNSkNCi0JbGkJcjEwLE1TUl9GUHxNU1JfRkUwfE1TUl9GRTENCi0JYW5kYwly NCxyNCxyMTAJCS8qIGRpc2FibGUgRlAgZm9yIHByZXZpb3VzIHRhc2sgKi8NCi0Jc3R3CXI0LF9N U1ItU1RBQ0tfRlJBTUVfT1ZFUkhFQUQocjUpDQotMToNCi0jZW5kaWYgLyogQ09ORklHX1NNUCAq Lw0KLQkvKiBlbmFibGUgdXNlIG9mIEZQIGFmdGVyIHJldHVybiAqLw0KLQltZnNwcglyNSxTUFJH MwkJLyogY3VycmVudCB0YXNrJ3MgVEhSRUFEIChwaHlzKSAqLw0KLQlsd3oJcjQsVEhSRUFEX0ZQ RVhDX01PREUocjUpDQotCW9yaQlyOSxyOSxNU1JfRlAJCS8qIGVuYWJsZSBGUCBmb3IgY3VycmVu dCAqLw0KLQlvcglyOSxyOSxyNA0KLQlsZmQJZnIwLFRIUkVBRF9GUFNDUi00KHI1KQ0KLQltdGZz ZgkweGZmLGZyMA0KLQlSRVNUXzMyRlBSUygwLCByNSkNCi0jaWZuZGVmIENPTkZJR19TTVANCi0J c3ViaQlyNCxyNSxUSFJFQUQNCi0Jc3ViCXI0LHI0LHI2DQotCXN0dwlyNCxsYXN0X3Rhc2tfdXNl ZF9tYXRoQGwocjMpDQotI2VuZGlmIC8qIENPTkZJR19TTVAgKi8NCi0JLyogcmVzdG9yZSByZWdp c3RlcnMgYW5kIHJldHVybiAqLw0KLQkvKiB3ZSBoYXZlbid0IHVzZWQgY3RyIG9yIHhlciBvciBs ciAqLw0KLQkvKiBmYWxsIHRocm91Z2ggdG8gZmFzdF9leGNlcHRpb25fcmV0dXJuICovDQotDQot CS5nbG9ibAlmYXN0X2V4Y2VwdGlvbl9yZXR1cm4NCi1mYXN0X2V4Y2VwdGlvbl9yZXR1cm46DQot CWFuZGkuCXIxMCxyOSxNU1JfUkkJCS8qIGNoZWNrIGZvciByZWNvdmVyYWJsZSBpbnRlcnJ1cHQg Ki8NCi0JYmVxCTFmCQkJLyogaWYgbm90LCB3ZSd2ZSBnb3QgcHJvYmxlbXMgKi8NCi0yOglSRVNU XzRHUFJTKDMsIHIxMSkNCi0JbHd6CXIxMCxfQ0NSKHIxMSkNCi0JUkVTVF9HUFIoMSwgcjExKQ0K LQltdGNyCXIxMA0KLQlsd3oJcjEwLF9MSU5LKHIxMSkNCi0JbXRscglyMTANCi0JUkVTVF9HUFIo MTAsIHIxMSkNCi0JbXRzcHIJU1JSMSxyOQ0KLQltdHNwcglTUlIwLHIxMg0KLQlSRVNUX0dQUig5 LCByMTEpDQotCVJFU1RfR1BSKDEyLCByMTEpDQotCWx3eglyMTEsR1BSMTEocjExKQ0KLQlTWU5D DQotCVJGSQ0KLQ0KLS8qIGNoZWNrIGlmIHRoZSBleGNlcHRpb24gaGFwcGVuZWQgaW4gYSByZXN0 YXJ0YWJsZSBzZWN0aW9uICovDQotMToJbGlzCXIzLGV4Y19leGl0X3Jlc3RhcnRfZW5kQGhhDQot CWFkZGkJcjMscjMsZXhjX2V4aXRfcmVzdGFydF9lbmRAbA0KLQljbXBsdwlyMTIscjMNCi0JYmdl CTNmDQotCWxpcwlyNCxleGNfZXhpdF9yZXN0YXJ0QGhhDQotCWFkZGkJcjQscjQsZXhjX2V4aXRf cmVzdGFydEBsDQotCWNtcGx3CXIxMixyNA0KLQlibHQJM2YNCi0JbGlzCXIzLGZlZV9yZXN0YXJ0 c0BoYQ0KLQl0b3BoeXMocjMscjMpDQotCWx3eglyNSxmZWVfcmVzdGFydHNAbChyMykNCi0JYWRk aQlyNSxyNSwxDQotCXN0dwlyNSxmZWVfcmVzdGFydHNAbChyMykNCi0JbXIJcjEyLHI0CQkvKiBy ZXN0YXJ0IGF0IGV4Y19leGl0X3Jlc3RhcnQgKi8NCi0JYgkyYg0KLQ0KLQkuY29tbQlmZWVfcmVz dGFydHMsNA0KLQ0KLS8qIGFhcmdoLCBhIG5vbnJlY292ZXJhYmxlIGludGVycnVwdCwgcGFuaWMg Ki8NCi0vKiBhYXJnaCwgd2UgZG9uJ3Qga25vdyB3aGljaCB0cmFwIHRoaXMgaXMgKi8NCi0vKiBi dXQgdGhlIDYwMSBkb2Vzbid0IGltcGxlbWVudCB0aGUgUkkgYml0LCBzbyBhc3N1bWUgaXQncyBP SyAqLw0KLTM6DQotQkVHSU5fRlRSX1NFQ1RJT04NCi0JYgkyYg0KLUVORF9GVFJfU0VDVElPTl9J RlNFVChDUFVfRlRSXzYwMSkNCi0JbGkJcjEwLC0xDQotCXN0dwlyMTAsVFJBUChyMTEpDQotCWFk ZGkJcjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQNCi0JbGkJcjEwLE1TUl9LRVJORUwNCi0JYmwJ dHJhbnNmZXJfdG9faGFuZGxlcl9mdWxsDQotCS5sb25nCW5vbnJlY292ZXJhYmxlX2V4Y2VwdGlv bg0KLQkubG9uZwlyZXRfZnJvbV9leGNlcHQNCi0NCi0vKg0KLSAqIEZQIHVuYXZhaWxhYmxlIHRy YXAgZnJvbSBrZXJuZWwgLSBwcmludCBhIG1lc3NhZ2UsIGJ1dCBsZXQNCi0gKiB0aGUgdGFzayB1 c2UgRlAgaW4gdGhlIGtlcm5lbCB1bnRpbCBpdCByZXR1cm5zIHRvIHVzZXIgbW9kZS4NCi0gKi8N Ci1LZXJuZWxGUDoNCi0JbHd6CXIzLF9NU1IocjEpDQotCW9yaQlyMyxyMyxNU1JfRlANCi0Jc3R3 CXIzLF9NU1IocjEpCQkvKiBlbmFibGUgdXNlIG9mIEZQIGFmdGVyIHJldHVybiAqLw0KLQlsaXMJ cjMsODZmQGgNCi0Jb3JpCXIzLHIzLDg2ZkBsDQotCW1yCXI0LHIyCQkJLyogY3VycmVudCAqLw0K LQlsd3oJcjUsX05JUChyMSkNCi0JYmwJcHJpbnRrDQotCWIJcmV0X2Zyb21fZXhjZXB0DQotODY6 CS5zdHJpbmcJImZsb2F0aW5nIHBvaW50IHVzZWQgaW4ga2VybmVsICh0YXNrPSVwLCBwYz0leClc biINCi0JLmFsaWduCTQsMA0KLQ0KLSNpZmRlZiBDT05GSUdfQUxUSVZFQw0KLS8qIE5vdGUgdGhh dCB0aGUgQWx0aVZlYyBzdXBwb3J0IGlzIGNsb3NlbHkgbW9kZWxlZCBhZnRlciB0aGUgRlANCi0g KiBzdXBwb3J0LiAgQ2hhbmdlcyB0byBvbmUgYXJlIGxpa2VseSB0byBiZSBhcHBsaWNhYmxlIHRv IHRoZQ0KLSAqIG90aGVyISAgKi8NCi1sb2FkX3VwX2FsdGl2ZWM6DQotLyoNCi0gKiBEaXNhYmxl IEFsdGlWZWMgZm9yIHRoZSB0YXNrIHdoaWNoIGhhZCBBbHRpVmVjIHByZXZpb3VzbHksDQotICog YW5kIHNhdmUgaXRzIEFsdGlWZWMgcmVnaXN0ZXJzIGluIGl0cyB0aHJlYWRfc3RydWN0Lg0KLSAq IEVuYWJsZXMgQWx0aVZlYyBmb3IgdXNlIGluIHRoZSBrZXJuZWwgb24gcmV0dXJuLg0KLSAqIE9u IFNNUCB3ZSBrbm93IHRoZSBBbHRpVmVjIHVuaXRzIGFyZSBmcmVlLCBzaW5jZSB3ZSBnaXZlIGl0 IHVwIGV2ZXJ5DQotICogc3dpdGNoLiAgLS0gS3VtYXINCi0gKi8NCi0JbWZtc3IJcjUNCi0Jb3Jp cwlyNSxyNSxNU1JfVkVDQGgNCi0JTVRNU1JEKHI1KQkJCS8qIGVuYWJsZSB1c2Ugb2YgQWx0aVZl YyBub3cgKi8NCi0JaXN5bmMNCi0vKg0KLSAqIEZvciBTTVAsIHdlIGRvbid0IGRvIGxhenkgQWx0 aVZlYyBzd2l0Y2hpbmcgYmVjYXVzZSBpdCBqdXN0IGdldHMgdG9vDQotICogaG9ycmVuZG91c2x5 IGNvbXBsZXgsIGVzcGVjaWFsbHkgd2hlbiBhIHRhc2sgc3dpdGNoZXMgZnJvbSBvbmUgQ1BVDQot ICogdG8gYW5vdGhlci4gIEluc3RlYWQgd2UgY2FsbCBnaXZldXBfYWx0aXZlYyBpbiBzd2l0Y2hf dG8uDQotICovDQotI2lmbmRlZiBDT05GSUdfU01QDQotCXRvcGh5cyhyNiwwKQ0KLQlhZGRpcwly MyxyNixsYXN0X3Rhc2tfdXNlZF9hbHRpdmVjQGhhDQotCWx3eglyNCxsYXN0X3Rhc2tfdXNlZF9h bHRpdmVjQGwocjMpDQotCWNtcHdpCTAscjQsMA0KLQliZXEJMWYNCi0JYWRkCXI0LHI0LHI2DQot CWFkZGkJcjQscjQsVEhSRUFECS8qIHdhbnQgVEhSRUFEIG9mIGxhc3RfdGFza191c2VkX2FsdGl2 ZWMgKi8NCi0JU0FWRV8zMlZSKDAscjEwLHI0KQ0KLQltZnZzY3IJdnIwDQotCWxpCXIxMCxUSFJF QURfVlNDUg0KLQlzdHZ4CXZyMCxyMTAscjQNCi0JbHd6CXI1LFBUX1JFR1MocjQpDQotCWFkZAly NSxyNSxyNg0KLQlsd3oJcjQsX01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCi0JbGlzCXIx MCxNU1JfVkVDQGgNCi0JYW5kYwlyNCxyNCxyMTAJLyogZGlzYWJsZSBhbHRpdmVjIGZvciBwcmV2 aW91cyB0YXNrICovDQotCXN0dwlyNCxfTVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KLTE6 DQotI2VuZGlmIC8qIENPTkZJR19TTVAgKi8NCi0JLyogZW5hYmxlIHVzZSBvZiBBbHRpVmVjIGFm dGVyIHJldHVybiAqLw0KLQlvcmlzCXI5LHI5LE1TUl9WRUNAaA0KLQltZnNwcglyNSxTUFJHMwkJ LyogY3VycmVudCB0YXNrJ3MgVEhSRUFEIChwaHlzKSAqLw0KLQlsaQlyNCwxDQotCWxpCXIxMCxU SFJFQURfVlNDUg0KLQlzdHcJcjQsVEhSRUFEX1VTRURfVlIocjUpDQotCWx2eAl2cjAscjEwLHI1 DQotCW10dnNjcgl2cjANCi0JUkVTVF8zMlZSKDAscjEwLHI1KQ0KLSNpZm5kZWYgQ09ORklHX1NN UA0KLQlzdWJpCXI0LHI1LFRIUkVBRA0KLQlzdWIJcjQscjQscjYNCi0Jc3R3CXI0LGxhc3RfdGFz a191c2VkX2FsdGl2ZWNAbChyMykNCi0jZW5kaWYgLyogQ09ORklHX1NNUCAqLw0KLQkvKiByZXN0 b3JlIHJlZ2lzdGVycyBhbmQgcmV0dXJuICovDQotCS8qIHdlIGhhdmVuJ3QgdXNlZCBjdHIgb3Ig eGVyIG9yIGxyICovDQotCWIJZmFzdF9leGNlcHRpb25fcmV0dXJuDQotDQotLyoNCi0gKiBBbHRp VmVjIHVuYXZhaWxhYmxlIHRyYXAgZnJvbSBrZXJuZWwgLSBwcmludCBhIG1lc3NhZ2UsIGJ1dCBs ZXQNCi0gKiB0aGUgdGFzayB1c2UgQWx0aVZlYyBpbiB0aGUga2VybmVsIHVudGlsIGl0IHJldHVy bnMgdG8gdXNlciBtb2RlLg0KLSAqLw0KLUtlcm5lbEFsdGlWZWM6DQotCWx3eglyMyxfTVNSKHIx KQ0KLQlvcmlzCXIzLHIzLE1TUl9WRUNAaA0KLQlzdHcJcjMsX01TUihyMSkJLyogZW5hYmxlIHVz ZSBvZiBBbHRpVmVjIGFmdGVyIHJldHVybiAqLw0KLQlsaXMJcjMsODdmQGgNCi0Jb3JpCXIzLHIz LDg3ZkBsDQotCW1yCXI0LHIyCQkvKiBjdXJyZW50ICovDQotCWx3eglyNSxfTklQKHIxKQ0KLQli bAlwcmludGsNCi0JYglyZXRfZnJvbV9leGNlcHQNCi04NzoJLnN0cmluZwkiQWx0aVZlYyB1c2Vk IGluIGtlcm5lbCAgKHRhc2s9JXAsIHBjPSV4KSAgXG4iDQotCS5hbGlnbgk0LDANCi0NCi0vKg0K LSAqIGdpdmV1cF9hbHRpdmVjKHRzaykNCi0gKiBEaXNhYmxlIEFsdGlWZWMgZm9yIHRoZSB0YXNr IGdpdmVuIGFzIHRoZSBhcmd1bWVudCwNCi0gKiBhbmQgc2F2ZSB0aGUgQWx0aVZlYyByZWdpc3Rl cnMgaW4gaXRzIHRocmVhZF9zdHJ1Y3QuDQotICogRW5hYmxlcyBBbHRpVmVjIGZvciB1c2UgaW4g dGhlIGtlcm5lbCBvbiByZXR1cm4uDQotICovDQotDQotCS5nbG9ibAlnaXZldXBfYWx0aXZlYw0K LWdpdmV1cF9hbHRpdmVjOg0KLQltZm1zcglyNQ0KLQlvcmlzCXI1LHI1LE1TUl9WRUNAaA0KLQlT WU5DDQotCU1UTVNSRChyNSkJCQkvKiBlbmFibGUgdXNlIG9mIEFsdGlWZWMgbm93ICovDQotCWlz eW5jDQotCWNtcHdpCTAscjMsMA0KLQliZXFsci0JCQkJLyogaWYgbm8gcHJldmlvdXMgb3duZXIs IGRvbmUgKi8NCi0JYWRkaQlyMyxyMyxUSFJFQUQJCS8qIHdhbnQgVEhSRUFEIG9mIHRhc2sgKi8N Ci0JbHd6CXI1LFBUX1JFR1MocjMpDQotCWNtcHdpCTAscjUsMA0KLQlTQVZFXzMyVlIoMCwgcjQs IHIzKQ0KLQltZnZzY3IJdnIwDQotCWxpCXI0LFRIUkVBRF9WU0NSDQotCXN0dngJdnIwLHI0LHIz DQotCWJlcQkxZg0KLQlsd3oJcjQsX01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCi0JbGlz CXIzLE1TUl9WRUNAaA0KLQlhbmRjCXI0LHI0LHIzCQkvKiBkaXNhYmxlIEFsdGlWZWMgZm9yIHBy ZXZpb3VzIHRhc2sgKi8NCi0Jc3R3CXI0LF9NU1ItU1RBQ0tfRlJBTUVfT1ZFUkhFQUQocjUpDQot MToNCi0jaWZuZGVmIENPTkZJR19TTVANCi0JbGkJcjUsMA0KLQlsaXMJcjQsbGFzdF90YXNrX3Vz ZWRfYWx0aXZlY0BoYQ0KLQlzdHcJcjUsbGFzdF90YXNrX3VzZWRfYWx0aXZlY0BsKHI0KQ0KLSNl bmRpZiAvKiBDT05GSUdfU01QICovDQotCWJscg0KLSNlbmRpZiAvKiBDT05GSUdfQUxUSVZFQyAq Lw0KLQ0KLS8qDQotICogZ2l2ZXVwX2ZwdSh0c2spDQotICogRGlzYWJsZSBGUCBmb3IgdGhlIHRh c2sgZ2l2ZW4gYXMgdGhlIGFyZ3VtZW50LA0KLSAqIGFuZCBzYXZlIHRoZSBmbG9hdGluZy1wb2lu dCByZWdpc3RlcnMgaW4gaXRzIHRocmVhZF9zdHJ1Y3QuDQotICogRW5hYmxlcyB0aGUgRlBVIGZv ciB1c2UgaW4gdGhlIGtlcm5lbCBvbiByZXR1cm4uDQotICovDQotCS5nbG9ibAlnaXZldXBfZnB1 DQotZ2l2ZXVwX2ZwdToNCi0JbWZtc3IJcjUNCi0Jb3JpCXI1LHI1LE1TUl9GUA0KLQlTWU5DXzYw MQ0KLQlJU1lOQ182MDENCi0JTVRNU1JEKHI1KQkJCS8qIGVuYWJsZSB1c2Ugb2YgZnB1IG5vdyAq Lw0KLQlTWU5DXzYwMQ0KLQlpc3luYw0KLQljbXB3aQkwLHIzLDANCi0JYmVxbHItCQkJCS8qIGlm IG5vIHByZXZpb3VzIG93bmVyLCBkb25lICovDQotCWFkZGkJcjMscjMsVEhSRUFECSAgICAgICAg Lyogd2FudCBUSFJFQUQgb2YgdGFzayAqLw0KLQlsd3oJcjUsUFRfUkVHUyhyMykNCi0JY21wd2kJ MCxyNSwwDQotCVNBVkVfMzJGUFJTKDAsIHIzKQ0KLQltZmZzCWZyMA0KLQlzdGZkCWZyMCxUSFJF QURfRlBTQ1ItNChyMykNCi0JYmVxCTFmDQotCWx3eglyNCxfTVNSLVNUQUNLX0ZSQU1FX09WRVJI RUFEKHI1KQ0KLQlsaQlyMyxNU1JfRlB8TVNSX0ZFMHxNU1JfRkUxDQotCWFuZGMJcjQscjQscjMJ CS8qIGRpc2FibGUgRlAgZm9yIHByZXZpb3VzIHRhc2sgKi8NCi0Jc3R3CXI0LF9NU1ItU1RBQ0tf RlJBTUVfT1ZFUkhFQUQocjUpDQotMToNCi0jaWZuZGVmIENPTkZJR19TTVANCi0JbGkJcjUsMA0K LQlsaXMJcjQsbGFzdF90YXNrX3VzZWRfbWF0aEBoYQ0KLQlzdHcJcjUsbGFzdF90YXNrX3VzZWRf bWF0aEBsKHI0KQ0KLSNlbmRpZiAvKiBDT05GSUdfU01QICovDQotCWJscg0KLQ0KLS8qDQogICog VGhpcyBjb2RlIGlzIGp1bXBlZCB0byBmcm9tIHRoZSBzdGFydHVwIGNvZGUgdG8gY29weQ0KICAq IHRoZSBrZXJuZWwgaW1hZ2UgdG8gcGh5c2ljYWwgYWRkcmVzcyAwLg0KICAqLw0KLS0tIGxpbnV4 LW9yaWcvYXJjaC9wcGMva2VybmVsL2hlYWRfNDR4LlMNCisrKyBsaW51eC9hcmNoL3BwYy9rZXJu ZWwvaGVhZF80NHguUw0KQEAgLTQyNiw3ICs0MjYsMTUgQEANCiAJUFJPR1JBTV9FWENFUFRJT04N CiANCiAJLyogRmxvYXRpbmcgUG9pbnQgVW5hdmFpbGFibGUgSW50ZXJydXB0ICovDQorI2lmZGVm IENPTkZJR19QUENfRlBVDQorCVNUQVJUX0VYQ0VQVElPTihGbG9hdGluZ1BvaW50VW5hdmFpbGFi bGUpDQorCU5PUk1BTF9FWENFUFRJT05fUFJPTE9HDQorCWJuZQlsb2FkX3VwX2ZwdQkJLyogaWYg ZnJvbSB1c2VyLCBqdXN0IGxvYWQgaXQgdXAgKi8NCisJYWRkaQlyMyxyMSxTVEFDS19GUkFNRV9P VkVSSEVBRA0KKwlFWENfWEZFUl9FRV9MSVRFKDB4ODAwLCBLZXJuZWxGUCkNCisjZWxzZQ0KIAlF WENFUFRJT04oMHgyMDEwLCBGbG9hdGluZ1BvaW50VW5hdmFpbGFibGUsIFVua25vd25FeGNlcHRp b24sIEVYQ19YRkVSX0VFKQ0KKyNlbmRpZg0KIA0KIAkvKiBTeXN0ZW0gQ2FsbCBJbnRlcnJ1cHQg Ki8NCiAJU1RBUlRfRVhDRVBUSU9OKFN5c3RlbUNhbGwpDQpAQCAtNjg2LDkgKzY5NCwxMSBAQA0K ICAqDQogICogVGhlIDQ0eCBjb3JlIGRvZXMgbm90IGhhdmUgYW4gRlBVLg0KICAqLw0KKyNpZm5k ZWYgQ09ORklHX1BQQ19GUFUNCiBfR0xPQkFMKGdpdmV1cF9mcHUpDQogCWJscg0KLQ0KKyNlbmRp Zg0KKyANCiAvKg0KICAqIGV4dGVybiB2b2lkIGFib3J0KHZvaWQpDQogICoNCi0tLSBsaW51eC1v cmlnL2FyY2gvcHBjL2tlcm5lbC90cmFwcy5jDQorKysgbGludXgvYXJjaC9wcGMva2VybmVsL3Ry YXBzLmMNCkBAIC0xNzYsNyArMTc2LDcgQEANCiAjZWxzZQ0KICNkZWZpbmUgZ2V0X21jX3JlYXNv bihyZWdzKQkobWZzcHIoU1BSTl9NQ1NSKSkNCiAjZW5kaWYNCi0jZGVmaW5lIFJFQVNPTl9GUAkJ MA0KKyNkZWZpbmUgUkVBU09OX0ZQCQlFU1JfRlANCiAjZGVmaW5lIFJFQVNPTl9JTExFR0FMCQlF U1JfUElMDQogI2RlZmluZSBSRUFTT05fUFJJVklMRUdFRAlFU1JfUFBSDQogI2RlZmluZSBSRUFT T05fVFJBUAkJRVNSX1BUUg0KLS0tIGxpbnV4LW9yaWcvYXJjaC9wcGMva2VybmVsL3ZlY3Rvci5T DQorKysgbGludXgvYXJjaC9wcGMva2VybmVsL3ZlY3Rvci5TDQpAQCAtMSwzICsxLDYgQEANCisv KiBBbHRpdmVjIHN1cHBvcnQgY29kZS4NCisgKi8NCisNCiAjaW5jbHVkZSA8YXNtL3BwY19hc20u aD4NCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPg0KIA0KQEAgLTIxNSwzICsyMTgsMTE2IEBA DQogCW10bHIJcjANCiAJYWRkaQlyMSxyMSwzMg0KIAlibHINCisNCisvKiBOb3RlIHRoYXQgdGhl IEFsdGlWZWMgc3VwcG9ydCBpcyBjbG9zZWx5IG1vZGVsZWQgYWZ0ZXIgdGhlIEZQDQorICogc3Vw cG9ydC4gIENoYW5nZXMgdG8gb25lIGFyZSBsaWtlbHkgdG8gYmUgYXBwbGljYWJsZSB0byB0aGUN CisgKiBvdGhlciEgICovDQorIAkuZ2xvYmFsIGxvYWRfdXBfYWx0aXZlYw0KK2xvYWRfdXBfYWx0 aXZlYzoNCisvKg0KKyAqIERpc2FibGUgQWx0aVZlYyBmb3IgdGhlIHRhc2sgd2hpY2ggaGFkIEFs dGlWZWMgcHJldmlvdXNseSwNCisgKiBhbmQgc2F2ZSBpdHMgQWx0aVZlYyByZWdpc3RlcnMgaW4g aXRzIHRocmVhZF9zdHJ1Y3QuDQorICogRW5hYmxlcyBBbHRpVmVjIGZvciB1c2UgaW4gdGhlIGtl cm5lbCBvbiByZXR1cm4uDQorICogT24gU01QIHdlIGtub3cgdGhlIEFsdGlWZWMgdW5pdHMgYXJl IGZyZWUsIHNpbmNlIHdlIGdpdmUgaXQgdXAgZXZlcnkNCisgKiBzd2l0Y2guICAtLSBLdW1hcg0K KyAqLw0KKwltZm1zcglyNQ0KKwlvcmlzCXI1LHI1LE1TUl9WRUNAaA0KKwlNVE1TUkQocjUpCQkJ LyogZW5hYmxlIHVzZSBvZiBBbHRpVmVjIG5vdyAqLw0KKwlpc3luYw0KKy8qDQorICogRm9yIFNN UCwgd2UgZG9uJ3QgZG8gbGF6eSBBbHRpVmVjIHN3aXRjaGluZyBiZWNhdXNlIGl0IGp1c3QgZ2V0 cyB0b28NCisgKiBob3JyZW5kb3VzbHkgY29tcGxleCwgZXNwZWNpYWxseSB3aGVuIGEgdGFzayBz d2l0Y2hlcyBmcm9tIG9uZSBDUFUNCisgKiB0byBhbm90aGVyLiAgSW5zdGVhZCB3ZSBjYWxsIGdp dmV1cF9hbHRpdmVjIGluIHN3aXRjaF90by4NCisgKi8NCisjaWZuZGVmIENPTkZJR19TTVANCisJ dG9waHlzKHI2LDApDQorCWFkZGlzCXIzLHI2LGxhc3RfdGFza191c2VkX2FsdGl2ZWNAaGENCisJ bHd6CXI0LGxhc3RfdGFza191c2VkX2FsdGl2ZWNAbChyMykNCisJY21wd2kJMCxyNCwwDQorCWJl cQkxZg0KKwlhZGQJcjQscjQscjYNCisJYWRkaQlyNCxyNCxUSFJFQUQJLyogd2FudCBUSFJFQUQg b2YgbGFzdF90YXNrX3VzZWRfYWx0aXZlYyAqLw0KKwlTQVZFXzMyVlIoMCxyMTAscjQpDQorCW1m dnNjcgl2cjANCisJbGkJcjEwLFRIUkVBRF9WU0NSDQorCXN0dngJdnIwLHIxMCxyNA0KKwlsd3oJ cjUsUFRfUkVHUyhyNCkNCisJYWRkCXI1LHI1LHI2DQorCWx3eglyNCxfTVNSLVNUQUNLX0ZSQU1F X09WRVJIRUFEKHI1KQ0KKwlsaXMJcjEwLE1TUl9WRUNAaA0KKwlhbmRjCXI0LHI0LHIxMAkvKiBk aXNhYmxlIGFsdGl2ZWMgZm9yIHByZXZpb3VzIHRhc2sgKi8NCisJc3R3CXI0LF9NU1ItU1RBQ0tf RlJBTUVfT1ZFUkhFQUQocjUpDQorMToNCisjZW5kaWYgLyogQ09ORklHX1NNUCAqLw0KKwkvKiBl bmFibGUgdXNlIG9mIEFsdGlWZWMgYWZ0ZXIgcmV0dXJuICovDQorCW9yaXMJcjkscjksTVNSX1ZF Q0BoDQorCW1mc3ByCXI1LFNQUkczCQkvKiBjdXJyZW50IHRhc2sncyBUSFJFQUQgKHBoeXMpICov DQorCWxpCXI0LDENCisJbGkJcjEwLFRIUkVBRF9WU0NSDQorCXN0dwlyNCxUSFJFQURfVVNFRF9W UihyNSkNCisJbHZ4CXZyMCxyMTAscjUNCisJbXR2c2NyCXZyMA0KKwlSRVNUXzMyVlIoMCxyMTAs cjUpDQorI2lmbmRlZiBDT05GSUdfU01QDQorCXN1YmkJcjQscjUsVEhSRUFEDQorCXN1YglyNCxy NCxyNg0KKwlzdHcJcjQsbGFzdF90YXNrX3VzZWRfYWx0aXZlY0BsKHIzKQ0KKyNlbmRpZiAvKiBD T05GSUdfU01QICovDQorCS8qIHJlc3RvcmUgcmVnaXN0ZXJzIGFuZCByZXR1cm4gKi8NCisJLyog d2UgaGF2ZW4ndCB1c2VkIGN0ciBvciB4ZXIgb3IgbHIgKi8NCisJYglmYXN0X2V4Y2VwdGlvbl9y ZXR1cm4NCisNCisvKg0KKyAqIEFsdGlWZWMgdW5hdmFpbGFibGUgdHJhcCBmcm9tIGtlcm5lbCAt IHByaW50IGEgbWVzc2FnZSwgYnV0IGxldA0KKyAqIHRoZSB0YXNrIHVzZSBBbHRpVmVjIGluIHRo ZSBrZXJuZWwgdW50aWwgaXQgcmV0dXJucyB0byB1c2VyIG1vZGUuDQorICovDQorIAkuZ2xvYmFs IEtlcm5lbEFsdGlWZWMNCitLZXJuZWxBbHRpVmVjOg0KKwlsd3oJcjMsX01TUihyMSkNCisJb3Jp cwlyMyxyMyxNU1JfVkVDQGgNCisJc3R3CXIzLF9NU1IocjEpCS8qIGVuYWJsZSB1c2Ugb2YgQWx0 aVZlYyBhZnRlciByZXR1cm4gKi8NCisJbGlzCXIzLDg3ZkBoDQorCW9yaQlyMyxyMyw4N2ZAbA0K KwltcglyNCxyMgkJLyogY3VycmVudCAqLw0KKwlsd3oJcjUsX05JUChyMSkNCisJYmwJcHJpbnRr DQorCWIJcmV0X2Zyb21fZXhjZXB0DQorODc6CS5zdHJpbmcJIkFsdGlWZWMgdXNlZCBpbiBrZXJu ZWwgICh0YXNrPSVwLCBwYz0leCkgIFxuIg0KKwkuYWxpZ24JNCwwDQorDQorLyoNCisgKiBnaXZl dXBfYWx0aXZlYyh0c2spDQorICogRGlzYWJsZSBBbHRpVmVjIGZvciB0aGUgdGFzayBnaXZlbiBh cyB0aGUgYXJndW1lbnQsDQorICogYW5kIHNhdmUgdGhlIEFsdGlWZWMgcmVnaXN0ZXJzIGluIGl0 cyB0aHJlYWRfc3RydWN0Lg0KKyAqIEVuYWJsZXMgQWx0aVZlYyBmb3IgdXNlIGluIHRoZSBrZXJu ZWwgb24gcmV0dXJuLg0KKyAqLw0KKw0KKwkuZ2xvYmFsIGdpdmV1cF9hbHRpdmVjDQorZ2l2ZXVw X2FsdGl2ZWM6DQorCW1mbXNyCXI1DQorCW9yaXMJcjUscjUsTVNSX1ZFQ0BoDQorCVNZTkMNCisJ TVRNU1JEKHI1KQkJCS8qIGVuYWJsZSB1c2Ugb2YgQWx0aVZlYyBub3cgKi8NCisJaXN5bmMNCisJ Y21wd2kJMCxyMywwDQorCWJlcWxyLQkJCQkvKiBpZiBubyBwcmV2aW91cyBvd25lciwgZG9uZSAq Lw0KKwlhZGRpCXIzLHIzLFRIUkVBRAkJLyogd2FudCBUSFJFQUQgb2YgdGFzayAqLw0KKwlsd3oJ cjUsUFRfUkVHUyhyMykNCisJY21wd2kJMCxyNSwwDQorCVNBVkVfMzJWUigwLCByNCwgcjMpDQor CW1mdnNjcgl2cjANCisJbGkJcjQsVEhSRUFEX1ZTQ1INCisJc3R2eAl2cjAscjQscjMNCisJYmVx CTFmDQorCWx3eglyNCxfTVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KKwlsaXMJcjMsTVNS X1ZFQ0BoDQorCWFuZGMJcjQscjQscjMJCS8qIGRpc2FibGUgQWx0aVZlYyBmb3IgcHJldmlvdXMg dGFzayAqLw0KKwlzdHcJcjQsX01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCisxOg0KKyNp Zm5kZWYgQ09ORklHX1NNUA0KKwlsaQlyNSwwDQorCWxpcwlyNCxsYXN0X3Rhc2tfdXNlZF9hbHRp dmVjQGhhDQorCXN0dwlyNSxsYXN0X3Rhc2tfdXNlZF9hbHRpdmVjQGwocjQpDQorI2VuZGlmIC8q IENPTkZJR19TTVAgKi8NCisJYmxyDQotLS0gbGludXgtb3JpZy9pbmNsdWRlL2FzbS1wcGMvcmVn X2Jvb2tlLmgNCisrKyBsaW51eC9pbmNsdWRlL2FzbS1wcGMvcmVnX2Jvb2tlLmgNCkBAIC0zMDUs NiArMzA1LDcgQEANCiAjZGVmaW5lIEVTUl9QSUwJCTB4MDgwMDAwMDAJLyogUHJvZ3JhbSBFeGNl cHRpb24gLSBJbGxlZ2FsICovDQogI2RlZmluZSBFU1JfUFBSCQkweDA0MDAwMDAwCS8qIFByb2dy YW0gRXhjZXB0aW9uIC0gUHJpdmVsZWdlZCAqLw0KICNkZWZpbmUgRVNSX1BUUgkJMHgwMjAwMDAw MAkvKiBQcm9ncmFtIEV4Y2VwdGlvbiAtIFRyYXAgKi8NCisjZGVmaW5lIEVTUl9GUCAgICAgICAg ICAweDAxMDAwMDAwICAgICAgLyogRmxvYXRpbmcgUG9pbnQgT3BlcmF0aW9uICovDQogI2RlZmlu ZSBFU1JfRFNUCQkweDAwODAwMDAwCS8qIFN0b3JhZ2UgRXhjZXB0aW9uIC0gRGF0YSBtaXNzICov DQogI2RlZmluZSBFU1JfRElaCQkweDAwNDAwMDAwCS8qIFN0b3JhZ2UgRXhjZXB0aW9uIC0gWm9u ZSBmYXVsdCAqLw0KICNkZWZpbmUgRVNSX1NUCQkweDAwODAwMDAwCS8qIFN0b3JlIE9wZXJhdGlv biAqLw0K --=-ScJ4kolzZwH/njkJfM6i-- --=-bsmD0zJQA81KvbRtNYwK 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) iD8DBQBCN18v8/0vJ5szK6kRAnTtAKCf+RWwporaissqVNPQL83zZaf0SwCgs/wf xW7FSBHEfbq1Y9nQTT2zAeo= =1U9s -----END PGP SIGNATURE----- --=-bsmD0zJQA81KvbRtNYwK--