From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-eopbgr750097.outbound.protection.outlook.com ([40.107.75.97]:6072 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726414AbeK0A3y (ORCPT ); Mon, 26 Nov 2018 19:29:54 -0500 From: Ken Sloat To: "Eugen.Hristev@microchip.com" CC: "linux-media@vger.kernel.org" , "Nicolas.Ferre@microchip.com" , "Ludovic.Desroches@microchip.com" Subject: RE: [PATCH v1 1/1] media: atmel-isc: Add safety checks for NULL isc->raw_fmt struct Date: Mon, 26 Nov 2018 13:35:40 +0000 Message-ID: References: <6d1f98c0-31be-9b89-db2e-c1813ed2975d@microchip.com> <20181120204309.42339-1-ksloat@aampglobal.com> <3ed146b5-153c-28b9-e3a9-0b5d2d1fcf28@microchip.com> <22700e98-08a7-a0f2-78ce-c5a1a1be9474@microchip.com> In-Reply-To: <22700e98-08a7-a0f2-78ce-c5a1a1be9474@microchip.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org List-ID: PiBPbiAyMS4xMS4yMDE4IDE2OjUwLCBLZW4gU2xvYXQgd3JvdGU6DQo+ID4+PiBGcm9tOiBLZW4g U2xvYXQgPGtzbG9hdEBhYW1wZ2xvYmFsLmNvbT4NCj4gPj4+DQo+ID4+PiBJbiBzb21lIHVzYWdl cyBpc2MtPnJhd19mbXQgd2lsbCBub3QgYmUgaW5pdGlhbGl6ZWQuIElmIHRoaXMgaXMgdGhlDQo+ ID4+PiBjYXNlLCBpdCBpcyB2ZXJ5IHBvc3NpYmxlIHRoYXQgYSBOVUxMIHN0cnVjdCBkZS1yZWZl cmVuY2Ugd2lsbA0KPiA+Pj4gb2NjdXIsIGFzIHRoaXMgbWVtYmVyIGlzIHJlZmVyZW5jZWQgbWFu eSB0aW1lcy4NCj4gPg0KPiA+PiBIZWxsbyAgS2VuLA0KPiA+DQo+ID4+IERvIHlvdSBoYXZlIGFu eSBjb25maWRlbmNlIHRoYXQganVzdCBieSBhdm9pZGluZyB0aGUgTlVMTCBzaXR1YXRpb24sIHRo aXMgZml4DQo+IG1ha2VzIHRoaW5ncyByaWdodCBmb3IgYWRkaW5nIG5ldyBzZW5zb3JzIHRoYXQg Zm9yIGV4YW1wbGUsIGRvIG5vdCBvZmZlciBhIHJhdw0KPiBmb3JtYXQgPw0KPiA+DQo+ID4gSGkg RXVnZW4sDQo+ID4NCj4gPiBUaGFua3MgZm9yIHlvdXIgY29tbWVudHMuIFRoZSBwcmltYXJ5IGdv YWwgb2YgbXkgcGF0Y2ggaXMgdG8gdGhlIHNvbHZlIHRoZQ0KPiBpbW1lZGlhdGUgaXNzdWUgb2Yg TlVMTCBkZS1yZWZlcmVuY2Ugb2YgdGhlIHRoYXQgc3RydWN0IG1lbWJlci4gTXkgY3VycmVudA0K PiBzZW5zb3JzIGFjdHVhbGx5IGRvIG5vdCBvZmZlciBhIFJBVyBmb3JtYXQsIHdoaWNoIGlzIHdo eSB0aGlzIGJ1ZyBoYXBwZW5zIGluDQo+IG15IGNhc2UgKHNlZSBtb3JlIGRldGFpbHMgYmVsb3cp Lg0KPiANCj4gSSBhbSBub3Qgc3VyZSBpZiBJIGFtIGNvcnJlY3QsIGJ1dCB5b3VyIHNlbnNvciBz dXJlbHkgcHJvdmlkZXMgZGF0YSBpbiBzb21lDQo+IGZvcm1hdC4gVGhpcyBmb3JtYXQgbWlnaHQg YmUgdGhlICdyYXcnIG9uZSB0aGF0IElTQyByZWNlaXZlcy4gU28sIGFkanVzdG1lbnRzIHRvDQo+ IHRoZSBmb3JtYXQgbGlzdCBtaWdodCBzb2x2ZSB0aGlzLg0KDQpJIHRoaW5rIHRoaXMgZmxhZyBp cyByZWZlcnJpbmcgc3BlY2lmaWNhbGx5IHRvIFJBVyBiYXllciBmb3JtYXRzLCBzbyB0aGF0IHRo ZSBJU0MgY2FuIHNldCByZWdpc3RlcnMgcHJvcGVybHkgZm9yIG90aGVyIG1vZHVsZXMgaW4gdGhl IHBpcGVsaW5lIGluIHRob3NlIGNhc2VzIC0gc2VlIGNvbW1lbnRzIGluIGNvZGUgZm9yIHRoaXMg ZmxhZzoNCg0KLyogSW5kaWNhdGUgYSBSYXcgQmF5ZXIgZm9ybWF0ICovDQojZGVmaW5lIEZNVF9G TEFHX1JBV19GT1JNQVQJCUJJVCgyKQ0KDQo+ID4+IE15IGZlZWxpbmcgaXMgdGhhdCB0aGUgbWV0 aG9kIG9mIGFkZGluZyB0aGlzIHZhcmlhYmxlIChyYXdfZm10KSBpcyB2ZXJ5DQo+IHVuZm9ydHVu YXRlLCBhbmQgSSBkaWQgbm90IGNvbXBsZXRlbHkgdW5kZXJzdGFuZCB0aGUgc2l0dWF0aW9ucyB3 aGVyZSBpdCdzDQo+IG5lZWRlZC4NCj4gPg0KPiA+IEkgYWdyZWUgdGhhdCB0aGUgY3VycmVudCBt ZXRob2Qgb2Ygc2V0dGluZyBhIHN0cnVjdCBtZW1iZXIgYmFzZWQgb24gYSBSQVcNCj4gZmxhZyBp cyBmbGF3ZWQgYW5kIGlkZWFsbHkgdGhlcmUgbmVlZHMgdG8gYmUgYSBtb3JlIGZ1bmRhbWVudGFs IGNoYW5nZSB0byB0aGUNCj4gYXJjaGl0ZWN0dXJlIG9mIHRoZSBkcml2ZXIgc28gdGhhdCB0aGlz IHNpdHVhdGlvbiB3b3VsZCBuZXZlciBwb3NzaWJseSBvY2N1ciwNCj4gaG93ZXZlciBJIHdpbGwg cHJlc2VudCBvbmUgYmVsb3cgdGhhdCBjYW4gdmVyeSBsaWtlbHkgaGFwcGVuIGFzIGl0IGRvZXMg Zm9yIG1lOg0KPiA+DQo+ID4+IFRoZSBjaGVjayB0aGF0IGFjdHVhbGx5IHNldHMgdGhlIHJhd19m bXQgY29tZXMgZnJvbSBhbiBpdGVyYXRpb24gdGhyb3VnaA0KPiB0aGUgZm9ybWF0cywgYW5kIHRo ZSBvbmUgaGF2aW5nIHRoZSBSQVcgZmxhZyBnZXRzIHB1dCBpbnRvIHRoaXMgdmFyaWFibGUuIE9u ZQ0KPiBjb3VsZCBqdXN0IGFsdGVyIHRoZSBmb3JtYXRzIHRhYmxlIGFuZCBnZXQgdGhlIHJhd19m bXQgdGhhdCBpcyBuZWVkZWQuDQo+ID4NCj4gPiBSaWdodCwgc28gaW4gdGhlIGluaXRpYWwgaXRl cmF0aW9uIGluIGlzY19mb3JtYXRzX2luaXQoKSB0aGUgZHJpdmVyIGNhbGxzIHRoZSBzdWItDQo+ IGRldmljZS9zZW5zb3IgZW51bV9tYnVzX2NvZGUgZnVuY3Rpb24gdG8gc3RlcCB0aHJvdWdoIGFs bCBpdHMgc3VwcG9ydGVkDQo+IGZvcm1hdHMgYW5kIHRyeSBhbmQgZmluZCB0aGVtIGluIHRoZSBs aXN0IG9mIHN1cHBvcnRlZCBJU0MgZm9ybWF0cy4gSWYgbm9uZSBvZg0KPiB0aGUgZm9ybWF0cyBp biB0aGUgc3ViLWRldmljZS9zZW5zb3IgYXJlIG9mIFJBVyB0eXBlLCB0aGVuIGlzYy1yYXdfZm10 IHdpbGwNCj4gbm90IGJlIHNldC4gVGhpcyBpcyB0aGUgZnVuZGFtZW50YWwgZmxhdyBpbiB1c2lu ZyB0aGlzIG1lbWJlci4NCj4gPg0KPiA+IEZvbGxvd2luZyB0aGlzLCB0aGUgZHJpdmVyIHdpbGwg YXR0ZW1wdCB0byBzZXQgYSBkZWZhdWx0IGZvcm1hdCBmb3IgdGhlIElTQyBpbg0KPiBpc2Nfc2V0 X2RlZmF1bHRfZm10KCkuIFRoaXMgYXBwZWFycyB0byBiZSBiYXNlZCBvbiB0aGUgZmlyc3QgZm9y bWF0IGluIHRoZSBsaXN0IG9mDQo+IElTQyBmb3JtYXRzLiBUaGUgZHJpdmVyIHRoZW4gZG9lcyBh IGNoZWNrIHRvIHNlZSBpZiB0aGUgc2Vuc29yIGlzIHByZWZlcnJlZCB0bw0KPiB0aGUgSVNDLiBJ ZiB0aGUgZGVmYXVsdCBmb3JtYXQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgc3ViLWRldmljZS9z ZW5zb3IsIGl0IHdpbGwNCj4gbm90IGJlIHByZWZlcnJlZCBhbmQgd2Ugd2lsbCBnZXQgYSByZXN1 bHRpbmcgY3Jhc2ggYmVjYXVzZSBpdCB3aWxsIGFzc3VtZSB0aGF0DQo+IHdlIG11c3QgdXNlIHRo ZSByYXdfZm10IG1lbWJlciB0aGF0IG5ldmVyIGdvdCBzZXQuDQo+IA0KPiBJIHNhdyB0aGlzIHBh cnQgb2YgdGhlIGNvZGUgYXMgd2VsbC4gSSB3YXMgdGhpbmtpbmcgdG8gcmV3cml0ZSBpdCB0byBo YXZlIGl0IGl0ZXJhdGUNCj4gdGhyb3VnaCBhbGwgZm9ybWF0cyB1bnRpbCBhIHN1aXRhYmxlIG9u ZSBpcyBmb3VuZCAoaW5zdGVhZCBvZiBqdXN0IHRha2luZyB0aGUgZmlyc3QNCj4gYW5kIHdpbiBv ciBmYWlsIGRpcmVjdGx5KS4NCj4gDQo+ID4NCj4gPj4+DQo+ID4+PiBUbyBwcmV2ZW50IHRoaXMs IGFkZCBzYWZldHkgY2hlY2tzIGZvciB0aGlzIG1lbWJlciBhbmQgaGFuZGxlDQo+ID4+PiBzaXR1 YXRpb25zIGFjY29yZGluZ2x5Lg0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IEtlbiBTbG9h dCA8a3Nsb2F0QGFhbXBnbG9iYWwuY29tPg0KPiA+Pj4gLS0tDQo+ID4+PiAgICBkcml2ZXJzL21l ZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5jIHwgNjQgKysrKysrKysrKysrKysrKy0tLS0t LS0tDQo+ID4+PiAgICAxIGZpbGUgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRp b25zKC0pDQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v YXRtZWwvYXRtZWwtaXNjLmMNCj4gPj4+IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9h dG1lbC1pc2MuYw0KPiA+Pj4gaW5kZXggNTAxNzg5NjhiOGE2Li40Y2NjYWE0ZjJjZTkgMTAwNjQ0 DQo+ID4+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5jDQo+ ID4+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5jDQo+ID4+ PiBAQCAtOTAyLDYgKzkwMiwxNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2Vuc29yX2lzX3ByZWZl cnJlZChjb25zdCBzdHJ1Y3QNCj4gaXNjX2Zvcm1hdCAqaXNjX2ZtdCkNCj4gPj4+ICAgIAkJIWlz Y19mbXQtPmlzY19zdXBwb3J0Ow0KPiA+Pj4gICAgfQ0KPiA+Pj4NCj4gPj4+ICtzdGF0aWMgaW5s aW5lIHUzMiBnZXRfcHJlZmVycmVkX21idXNfY29kZShjb25zdCBzdHJ1Y3QgaXNjX2RldmljZSAq aXNjLA0KPiA+Pj4gKwkJY29uc3Qgc3RydWN0IGlzY19mb3JtYXQgKmlzY19mbXQpIHsNCj4gPj4+ ICsJaWYgKHNlbnNvcl9pc19wcmVmZXJyZWQoaXNjX2ZtdCkgfHwgIWlzYy0+cmF3X2ZtdCkNCj4g Pj4+ICsJCXJldHVybiBpc2NfZm10LT5tYnVzX2NvZGU7DQo+ID4NCj4gPj4gRm9yIGV4YW1wbGUg aGVyZSwgaWYgd2UgZG8gX25vdF8gaGF2ZSBhIHJhdyBmb3JtYXQsIHdoYXQgbWFrZXMgdXMgYmVs aWV2ZQ0KPiB0aGF0IHRoZSByaWdodCBmb3JtYXQgaXMgdGhlIG9uZSBmcm9tIHRoZSBtYnVzX2Nv ZGUgZnJvbSB0aGUgaXNjX2ZtdCA/IElzIHRoZXJlDQo+IGFueXRoaW5nIHVzZWZ1bCB0aGVyZSBh dCBhbGwgPw0KPiA+DQo+ID4gSXQncyBtb3JlIG9mIGEgc2FmZSBjYXNlIGZvciB3aGVyZSB0aGlz IG9jY3VycyBpbiBteSBleGFtcGxlIGFib3ZlLiBBcyB5b3UNCj4gbWVudGlvbmVkIHlvdXJzZWxm LCByYXdfZm10IGNvdWxkIHBvc3NpYmx5IHNldCB0byBhbnkgb2YgdGhlIFJBVyBmbGFnIGZvcm1h dHMNCj4gc3VwcG9ydGVkIGJ5IHRoZSBzdWItZGV2aWNlLiAgQXNzdW1pbmcgdGhlIHN1Yi1kZXZp Y2UgZGlkIGluZGVlZCBzdXBwb3J0IGENCj4gUkFXIGZvcm1hdCBvZiBzb21lIHNvcnQsIGJ1dCBk aWQgbm90IG5lY2Vzc2FyaWx5IHN1cHBvcnQgdGhlIGN1cnJlbnQgZm9ybWF0LA0KPiB0aGUgZHJp dmVyIGFzIG9mIHRvZGF5IHdvdWxkIGJlIHJlZmVyZW5jaW5nIHRoaXMgYWx0ZXJuYXRpdmUgbWJ1 cyBjb2RlDQo+IGFueXdheXMuIEluIHRoZSBleGFtcGxlIGFib3ZlLCB0aGlzIG9jY3VycmVkIHdo aWxlIHNldHRpbmcgdGhlIGRlZmF1bHQgZm9ybWF0LA0KPiBhbmQgdGhlbiBzdWJzZXF1ZW50bHkg d2lsbCBhbHdheXMgb2NjdXIgd2hlbiBzZXR0aW5nIHRoZSBwaXBlbGluZSBpbg0KPiBpc2Nfc2V0 X3BpcGVsaW5lKCkgYXMgdGhpcyBmdW5jdGlvbiBhbHdheXMgZGUtcmVmZXJlbmNlcyB0aGlzIG1l bWJlciB0byBzZXQgdGhlDQo+IHBvaW50ZXIgZXZlbiBpZiBhIFJBVyBmb3JtYXQgaXNuJ3QgbmVj ZXNzYXJpbHkgYmVpbmcgdXNlZCAoYW5kIHNvIGRvIG90aGVycyBhcw0KPiBzZWVuIGluIG15IHBh dGNoKS4NCj4gDQo+IEkgdGVuZCB0byBkaXNhZ3JlZSwgdGhlIGRyaXZlciBvZiB0b2RheSB3aWxs IGZhaWwgaWYgdGhlIHNlbnNvciBkb2VzIG5vdCBwcm92aWRlIGENCj4gUkFXIGZvcm1hdCBvZiBz b21lIHNvcnQsIHNvIGl0IHdpbGwgbm90IHVzZSBhbHRlcm5hdGl2ZSBtYnVzIGNvZGUuDQo+IA0K PiA+DQo+ID4+PiArCWVsc2UNCj4gPj4+ICsJCXJldHVybiBpc2MtPnJhd19mbXQtPm1idXNfY29k ZTsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiAgICBzdGF0aWMgc3RydWN0IGZtdF9jb25maWcg KmdldF9mbXRfY29uZmlnKHUzMiBmb3VyY2MpDQo+ID4+PiAgICB7DQo+ID4+PiAgICAJc3RydWN0 IGZtdF9jb25maWcgKmNvbmZpZzsNCj4gPj4+IEBAIC05NTUsNyArOTY0LDcgQEAgc3RhdGljIHZv aWQgaXNjX3NldF9waXBlbGluZShzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLA0KPiB1MzIgcGlwZWxp bmUpDQo+ID4+PiAgICB7DQo+ID4+PiAgICAJc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gaXNjLT5y ZWdtYXA7DQo+ID4+PiAgICAJc3RydWN0IGlzY19jdHJscyAqY3RybHMgPSAmaXNjLT5jdHJsczsN Cj4gPj4+IC0Jc3RydWN0IGZtdF9jb25maWcgKmNvbmZpZyA9IGdldF9mbXRfY29uZmlnKGlzYy0+ cmF3X2ZtdC0+Zm91cmNjKTsNCj4gPj4+ICsJc3RydWN0IGZtdF9jb25maWcgKmNvbmZpZzsNCj4g Pj4+ICAgIAl1MzIgdmFsLCBiYXlfY2ZnOw0KPiA+Pj4gICAgCWNvbnN0IHUzMiAqZ2FtbWE7DQo+ ID4+PiAgICAJdW5zaWduZWQgaW50IGk7DQo+ID4+PiBAQCAtOTY5LDcgKzk3OCwxMiBAQCBzdGF0 aWMgdm9pZCBpc2Nfc2V0X3BpcGVsaW5lKHN0cnVjdCBpc2NfZGV2aWNlICppc2MsDQo+IHUzMiBw aXBlbGluZSkNCj4gPj4+ICAgIAlpZiAoIXBpcGVsaW5lKQ0KPiA+Pj4gICAgCQlyZXR1cm47DQo+ ID4+Pg0KPiA+Pj4gLQliYXlfY2ZnID0gY29uZmlnLT5jZmFfYmF5Y2ZnOw0KPiA+Pj4gKwlpZiAo aXNjLT5yYXdfZm10KSB7DQo+ID4+PiArCQljb25maWcgPSBnZXRfZm10X2NvbmZpZyhpc2MtPnJh d19mbXQtPmZvdXJjYyk7DQo+ID4+PiArCQliYXlfY2ZnID0gY29uZmlnLT5jZmFfYmF5Y2ZnOw0K PiA+Pj4gKwl9IGVsc2Ugew0KPiA+Pj4gKwkJYmF5X2NmZyA9IDA7DQo+ID4+PiArCX0NCj4gPg0K PiA+PiBIYXZpbmcgYmF5X2NmZyB6ZXJvLCBpbiB0aGUgY2FzZSB3aGVuIHdlIGRvIG5vdCBoYXZl IGEgcmF3IGZvcm1hdCwgaXMgdGhlDQo+IHJlYWwgcHJvcGVyIHdheSB0byBkbyB0aGlzID8gaXQg aXMgcG9zc2libGUgdGhhdCB0aGlzIGJheSBjZmcgaXMgcmVxdWlyZWQgYXQgYQ0KPiBkaWZmZXJl bnQgdmFsdWUsIG9yIGNvcnJlc3BvbmRpbmcgdG8gZGlmZmVyZW50IGZvcm1hdHMgaW4gdGhlIHBp cGVsaW5lIG9mIHRoZSBJU0MuDQo+ID4gSSBzaG91bGQgcHJvYmFibHkgbWFrZSBjb25maWcgcG9p bnQgdG8gdGhlIGN1cnJlbnRfZm10IGluIHRoZSBlbHNlIGNhc2UgaGVyZQ0KPiBzbyB0aGF0IGl0 IHVzZXMgaXRzIGJheV9jZmcsIGhvd2V2ZXIgSSBiZWxpZXZlIHRoZSBXQiBtb2R1bGUgd291bGQg YmUgZGlzYWJsZWQNCj4gYW55d2F5cyBpbiB0aGlzIGNhc2UuIFJlZ2FyZGluZyBpZiB0aGlzIHdv dWxkIGJlIHByb3BlciBvciB1c2VmdWwsIHNpbWlsYXINCj4gY29tbWVudHMgdG8gYWJvdmUuDQo+ IA0KPiBJIGFtIG5vdCBzdXJlIHRoYXQgdGhlIGN1cnJlbnRfZm10IGlzIHRoZSBhY3R1YWwgZm9y bWF0IHRoYXQgdGhlIHNlbnNvciBpcyBzZXQgdG8NCj4gdXNlLCBhbmQgaWYgdGhpcyBmb3JtYXQg aXMgT0ssIGhvd2V2ZXIgeW91IG1heSBiZSByaWdodCB0aGF0IHRoZSBiYXlfY2ZnIGlzIG5vdA0K PiBuZWVkZWQNCj4gDQo+ID4NCj4gPj4gU28gLCBpbiBzaG9ydCwgSSBhbSBub3QgY29udmluY2Vk IHRoYXQgdGhpcyBpcyBhIHByb3BlciB3YXkgdG8gc29sdmUgaXQsIHNvIHdlDQo+IGhhdmUgdG8g ZGlnIGluIGZ1cnRoZXIgdG8gc2VlIGlmIHRoaXMgaXMgT0sgb3Igbm90Lg0KPiA+PiBXaGljaCBz ZW5zb3JzIGRvIHlvdSBoYXZlIGFuZCBob3cgZGlkIHlvdSB0ZXN0IHRoaXMsIHdoaWNoIGJvYXJk IGFuZA0KPiBzZXR1cD8NCj4gPg0KPiA+PiBUaGFua3MgZm9yIHlvdXIgaGVscCwNCj4gPg0KPiA+ PiBFdWdlbg0KPiA+DQo+ID4gTXkgc2Vuc29yIGlucHV0cyBhIElUVS1SIDY1NiBpbnRlcmZhY2Ug dG8gdGhlIElTQywgc28gdGhpcyB3b3VsZCBiZSB0aGUNCj4gZm9ybWF0Og0KPiA+DQo+ID4gew0K PiA+IAkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9ZVVlWLA0KPiA+IAkubWJ1c19jb2RlCT0gTUVE SUFfQlVTX0ZNVF9ZVVlWOF8yWDgsDQo+ID4gCS5mbGFncwkJPSBGTVRfRkxBR19GUk9NX0NPTlRS T0xMRVIgfA0KPiA+IAkJCSAgRk1UX0ZMQUdfRlJPTV9TRU5TT1IsDQo+ID4gCS5icHAJCT0gMTYs DQo+ID4gfSwNCj4gDQo+IElmIHRoaXMgZm9ybWF0IGlzIGFkZGVkIHdpdGggYSBSQVcgZmxhZywg aG93IGRvZXMgdGhpcyBhZmZlY3QgeW91ciBvdXRwdXQgPw0KRG9pbmcgdGhpcyB3aWxsIGluZGVl ZCBwcmV2ZW50IGEgY3Jhc2ggYW5kIGFsbG93IHRoZSBzZW5zb3IgdG8gZnVuY3Rpb24gaW4gbXkg dXNlIGNhc2UuDQoNCj4gPiBOb3RlIHRoYXQgdGhlIGRyaXZlciBhcyBvZiB0b2RheSBkb2VzIG5v dCBzdXBwb3J0IElUVS1SIDY1NiB3aXRob3V0DQo+IG1vZGlmaWNhdGlvbnMgYnV0IHJhdGhlciBJ VFUtUiA2MDEuIEhvd2V2ZXIsIHRoaXMgaXMgYXMgc2ltcGxlIGFzIHNldHRpbmcgc29tZQ0KPiBh ZGRpdGlvbmFsIGJpdHMgYW5kIEkgcGxhbiB0byBzdWJtaXQgYSBzZXBhcmF0ZSBwYXRjaCBzb29u IHRoYXQgYWxsb3dzIHRoaXMgdG8NCj4gb2NjdXIgZnJvbSBkZXZpY2UgdHJlZSBpbiBhIHN0YW5k YXJkIHdheS4NCj4gPiBJIGFtIHVzaW5nIGEgY3VzdG9tIGJvYXJkIHRoYXQgaXMgYmFzZWQgb24g dGhlIFNBTUE1RDI3LVNPTTEtRUsxIGJvYXJkDQo+IHNvIEkgdGVzdGVkIG15IHNlbnNvciB3aXRo IHRoaXMgYm9hcmQgdXNpbmcgZ3N0cmVhbWVyIHRvIGRpcmVjdCB0aGUgaW1hZ2UgdG8gdGhlDQo+ IGRpc3BsYXkuIEhhcHB5IHRvIGhlbHAgb3V0IGFzIEkgYW0gYWJsZSwgbGV0IG1lIGtub3cgd2hh dCB5b3UgdGhpbmsuDQo+IFdoaWNoIHNlbnNvciBpcyBpdD8NCj4gWW91IG1hbmFnZWQgdG8gZ2V0 IGl0IHdvcmtpbmcgT0sgd2l0aCBqdXN0IHRoaXMgcGF0Y2g/DQo+IA0KPiBNeSBnZW5lcmFsIGZl ZWxpbmcgaXMgdGhhdCB0aGlzIHdvcmthcm91bmQgcGF0Y2ggd2lsbCBoaWRlIHRoZSBwcm9ibGVt LCBhbmQgbm90DQo+IHNvbHZlIHRoZSBpc3N1ZSB3ZSBhcmUgaGF2aW5nIGhlcmUsIHdlIGFkZCBt b3JlIGNvZGUgdG8gY29wZSBhcm91bmQgd2l0aCB0aGlzDQo+IHJhd19mbXQgTlVMTCBpc3N1ZS4N Cj4gDQo+IEFueXdheSBJIGFtIHRoaW5raW5nIHRvIGdldCBtb3JlIG9waW5pb25zIG9uIHRoaXMg aXNzdWUsIGFib3V0IHdoaWNoIGlzIHRoZSBiZXN0DQo+IHdheSB3ZSBjYW4gZ28gZnVydGhlciB3 aXRoIGl0Lg0KPiANCj4gVGhhbmtzLA0KPiBFdWdlbg0KDQpTb3VuZHMgZ29vZCBFdWdlbiwgdGhh bmtzIGZvciB5b3VyIGhlbHAuIExldCBtZSBrbm93IGhvdyBJIGNhbiBiZSBvZiBhc3Npc3RhbmNl IGdvaW5nIGZvcndhcmQuDQoNClRoYW5rcywNCktlbg0K