From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC PATCH 18/20] lib: image-formats: Add v4l2 formats support Date: Wed, 20 Mar 2019 18:09:39 +0200 Message-ID: <20190320160939.GR3888@intel.com> References: <20190320142739.GK3888@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id B79356E031 for ; Wed, 20 Mar 2019 16:09:46 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Nicolas Dufresne Cc: Thomas Petazzoni , Maxime Ripard , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Paul Kocialkowski , David Airlie , Hans Verkuil , Sean Paul , Laurent Pinchart , Sakari Ailus , Daniel Vetter , Mauro Carvalho Chehab , linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXIgMjAsIDIwMTkgYXQgMTE6NTE6NThBTSAtMDQwMCwgTmljb2xhcyBEdWZyZXNu ZSB3cm90ZToKPiBMZSBtZXJjcmVkaSAyMCBtYXJzIDIwMTkgw6AgMTY6MjcgKzAyMDAsIFZpbGxl IFN5cmrDpGzDpCBhIMOpY3JpdCA6Cj4gPiBPbiBUdWUsIE1hciAxOSwgMjAxOSBhdCAwNzoyOTox OFBNIC0wNDAwLCBOaWNvbGFzIER1ZnJlc25lIHdyb3RlOgo+ID4gPiBMZSBtYXJkaSAxOSBtYXJz IDIwMTkgw6AgMjI6NTcgKzAxMDAsIE1heGltZSBSaXBhcmQgYSDDqWNyaXQgOgo+ID4gPiA+IFY0 TDIgdXNlcyBkaWZmZXJlbnQgZm91cmNjJ3MgdGhhbiBEUk0sIGFuZCBoYXMgYSBkaWZmZXJlbnQg c2V0IG9mIGZvcm1hdHMuCj4gPiA+ID4gRm9yIG5vdywgbGV0J3MgYWRkIHRoZSB2NGwyIGZvdXJj YydzIGZvciB0aGUgYWxyZWFkeSBleGlzdGluZyBmb3JtYXRzLgo+ID4gPiA+IAo+ID4gPiA+IFNp Z25lZC1vZmYtYnk6IE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAYm9vdGxpbi5jb20+Cj4g PiA+ID4gLS0tCj4gPiA+ID4gIGluY2x1ZGUvbGludXgvaW1hZ2UtZm9ybWF0cy5oIHwgIDkgKysr KystCj4gPiA+ID4gIGxpYi9pbWFnZS1mb3JtYXRzLmMgICAgICAgICAgIHwgNjcgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDc2 IGluc2VydGlvbnMoKykKPiA+ID4gPiAKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9pbWFnZS1mb3JtYXRzLmggYi9pbmNsdWRlL2xpbnV4L2ltYWdlLWZvcm1hdHMuaAo+ID4gPiA+ IGluZGV4IDUzZmQ3M2E3MWIzZC4uZmJjM2E0NTAxZWJkIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2lu Y2x1ZGUvbGludXgvaW1hZ2UtZm9ybWF0cy5oCj4gPiA+ID4gKysrIGIvaW5jbHVkZS9saW51eC9p bWFnZS1mb3JtYXRzLmgKPiA+ID4gPiBAQCAtMjYsNiArMjYsMTMgQEAgc3RydWN0IGltYWdlX2Zv cm1hdF9pbmZvIHsKPiA+ID4gPiAgCX07Cj4gPiA+ID4gIAo+ID4gPiA+ICAJLyoqCj4gPiA+ID4g KwkgKiBAdjRsMl9mbXQ6Cj4gPiA+ID4gKwkgKgo+ID4gPiA+ICsJICogVjRMMiA0Q0MgZm9ybWF0 IGlkZW50aWZpZXIgKFY0TDJfUElYX0ZNVF8qKQo+ID4gPiA+ICsJICovCj4gPiA+ID4gKwl1MzIg djRsMl9mbXQ7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJLyoqCj4gPiA+ID4gIAkgKiBAZGVwdGg6Cj4g PiA+ID4gIAkgKgo+ID4gPiA+ICAJICogQ29sb3IgZGVwdGggKG51bWJlciBvZiBiaXRzIHBlciBw aXhlbCBleGNsdWRpbmcgcGFkZGluZyBiaXRzKSwKPiA+ID4gPiBAQCAtMjIyLDYgKzIyOSw4IEBA IGltYWdlX2Zvcm1hdF9pbmZvX2lzX3l1dl9zYW1wbGluZ180NDQoY29uc3Qgc3RydWN0IGltYWdl X2Zvcm1hdF9pbmZvICppbmZvKQo+ID4gPiA+ICAKPiA+ID4gPiAgY29uc3Qgc3RydWN0IGltYWdl X2Zvcm1hdF9pbmZvICpfX2ltYWdlX2Zvcm1hdF9kcm1fbG9va3VwKHUzMiBkcm0pOwo+ID4gPiA+ ICBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gKmltYWdlX2Zvcm1hdF9kcm1fbG9va3Vw KHUzMiBkcm0pOwo+ID4gPiA+ICtjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gKl9faW1h Z2VfZm9ybWF0X3Y0bDJfbG9va3VwKHUzMiB2NGwyKTsKPiA+ID4gPiArY29uc3Qgc3RydWN0IGlt YWdlX2Zvcm1hdF9pbmZvICppbWFnZV9mb3JtYXRfdjRsMl9sb29rdXAodTMyIHY0bDIpOwo+ID4g PiA+ICB1bnNpZ25lZCBpbnQgaW1hZ2VfZm9ybWF0X3BsYW5lX2NwcChjb25zdCBzdHJ1Y3QgaW1h Z2VfZm9ybWF0X2luZm8gKmZvcm1hdCwKPiA+ID4gPiAgCQkJCSAgICBpbnQgcGxhbmUpOwo+ID4g PiA+ICB1bnNpZ25lZCBpbnQgaW1hZ2VfZm9ybWF0X3BsYW5lX3dpZHRoKGludCB3aWR0aCwKPiA+ ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2ltYWdlLWZvcm1hdHMuYyBiL2xpYi9pbWFnZS1mb3JtYXRz LmMKPiA+ID4gPiBpbmRleCA5YjlhNzMyMjBjNWQuLjM5ZjFkMzhhZTg2MSAxMDA2NDQKPiA+ID4g PiAtLS0gYS9saWIvaW1hZ2UtZm9ybWF0cy5jCj4gPiA+ID4gKysrIGIvbGliL2ltYWdlLWZvcm1h dHMuYwo+ID4gPiA+IEBAIC04LDYgKzgsNyBAQAo+ID4gPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0 IGltYWdlX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCXsKPiA+ID4gPiAgCQku ZHJtX2ZtdCA9IERSTV9GT1JNQVRfQzgsCj4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhf Rk1UX0dSRVksCj4gPiA+ID4gIAkJLmRlcHRoID0gOCwKPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9 IDEsCj4gPiA+ID4gIAkJLmNwcCA9IHsgMSwgMCwgMCB9LAo+ID4gPiA+IEBAIC0xNSw2ICsxNiw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ ID4gPiA+ICAJCS52c3ViID0gMSwKPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiAgCQkuZHJtX2ZtdCA9 IERSTV9GT1JNQVRfUkdCMzMyLAo+ID4gPiA+ICsJCS52NGwyX2ZtdCA9IFY0TDJfUElYX0ZNVF9S R0IzMzIsCj4gPiA+ID4gIAkJLmRlcHRoID0gOCwKPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDEs Cj4gPiA+ID4gIAkJLmNwcCA9IHsgMSwgMCwgMCB9LAo+ID4gPiA+IEBAIC0yOSw2ICszMSw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4g PiA+ICAJCS52c3ViID0gMSwKPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERS TV9GT1JNQVRfWFJHQjQ0NDQsCj4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX1hS R0I0NDQsCj4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDEs Cj4gPiA+ID4gIAkJLmNwcCA9IHsgMiwgMCwgMCB9LAo+ID4gPiA+IEBAIC01Nyw2ICs2MCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4g PiA+ICAJCS52c3ViID0gMSwKPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERS TV9GT1JNQVRfQVJHQjQ0NDQsCj4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX0FS R0I0NDQsCj4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDEs Cj4gPiA+ID4gIAkJLmNwcCA9IHsgMiwgMCwgMCB9LAo+ID4gPiA+IEBAIC04OSw2ICs5Myw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4g PiA+ICAJCS5oYXNfYWxwaGEgPSB0cnVlLAo+ID4gPiA+ICAJfSwgewo+ID4gPiA+ICAJCS5kcm1f Zm10ID0gRFJNX0ZPUk1BVF9YUkdCMTU1NSwKPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwyX1BJ WF9GTVRfWFJHQjU1NSwKPiA+ID4gPiAgCQkuZGVwdGggPSAxNSwKPiA+ID4gPiAgCQkubnVtX3Bs YW5lcyA9IDEsCj4gPiA+ID4gIAkJLmNwcCA9IHsgMiwgMCwgMCB9LAo+ID4gPiA+IEBAIC0xMTcs NiArMTIyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRz W10gPSB7Cj4gPiA+ID4gIAkJLnZzdWIgPSAxLAo+ID4gPiA+ICAJfSwgewo+ID4gPiA+ICAJCS5k cm1fZm10ID0gRFJNX0ZPUk1BVF9BUkdCMTU1NSwKPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwy X1BJWF9GTVRfQVJHQjU1NSwKPiA+ID4gPiAgCQkuZGVwdGggPSAxNSwKPiA+ID4gPiAgCQkubnVt X3BsYW5lcyA9IDEsCj4gPiA+ID4gIAkJLmNwcCA9IHsgMiwgMCwgMCB9LAo+ID4gPiA+IEBAIC0x NDksNiArMTU1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3Jt YXRzW10gPSB7Cj4gPiA+ID4gIAkJLmhhc19hbHBoYSA9IHRydWUsCj4gPiA+ID4gIAl9LCB7Cj4g PiA+ID4gIAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX1JHQjU2NSwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfUkdCNTY1LAo+ID4gPiA+ICAJCS5kZXB0aCA9IDE2LAo+ID4gPiA+ ICAJCS5udW1fcGxhbmVzID0gMSwKPiA+ID4gPiAgCQkuY3BwID0geyAyLCAwLCAwIH0sCj4gPiA+ ID4gQEAgLTE2Myw2ICsxNzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9p bmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkudnN1YiA9IDEsCj4gPiA+ID4gIAl9LCB7Cj4g PiA+ID4gIAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX1JHQjg4OCwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfUkdCMjQsCj4gPiA+ID4gIAkJLmRlcHRoID0gMjQsCj4gPiA+ID4g IAkJLm51bV9wbGFuZXMgPSAxLAo+ID4gPiA+ICAJCS5jcHAgPSB7IDMsIDAsIDAgfSwKPiA+ID4g PiBAQCAtMTcwLDYgKzE3OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2lu Zm8gZm9ybWF0c1tdID0gewo+ID4gPiA+ICAJCS52c3ViID0gMSwKPiA+ID4gPiAgCX0sIHsKPiA+ ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfQkdSODg4LAo+ID4gPiA+ICsJCS52NGwyX2Zt dCA9IFY0TDJfUElYX0ZNVF9CR1IyNCwKPiA+ID4gPiAgCQkuZGVwdGggPSAyNCwKPiA+ID4gPiAg CQkubnVtX3BsYW5lcyA9IDEsCj4gPiA+ID4gIAkJLmNwcCA9IHsgMywgMCwgMCB9LAo+ID4gPiA+ IEBAIC0xNzcsNiArMTg2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5m byBmb3JtYXRzW10gPSB7Cj4gPiA+ID4gIAkJLnZzdWIgPSAxLAo+ID4gPiA+ICAJfSwgewo+ID4g PiA+ICAJCS5kcm1fZm10ID0gRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfWFJHQjMyLAo+ID4gPiAKPiA+ID4gQWxsIFJHQiBtYXBwaW5nIHNo b3VsZCBiZSBzdXJyb3VuZGVkIGJ5IGlmZGVmLCBiZWNhdXNlIG1hbnkgKG5vdCBhbGwpCj4gPiA+ IERSTSBmb3JtYXRzIHJlcHJlc2VudCB0aGUgb3JkZXIgb2YgY29tcG9uZW50IHdoZW4gcGxhY2Vk IGluIGEgQ1BVCj4gPiA+IHJlZ2lzdGVyLCB1bmxpa2UgVjRMMiB3aGljaCB1c2VzIG1lbW9yeSBv cmRlci4gSSd2ZSBwaWNrIHRoaXMgb25lCj4gPiAKPiA+IERSTSBmb3JtYXRzIGFyZSBleHBsaWNp dGx5IGRlZmluZWQgYXMgbGl0dGxlIGVuZGlhbi4KPiAKPiBZZXMsIHRoYXQgbWVhbnMgdGhlIHNh bWUgdGhpbmcuIFRoZSBtYXBwaW5nIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlCj4gYnVmZmVy IGJ5dGVzIG9yZGVyLCB1bmxpa2UgVjRMMiAoYW5kIG1vc3Qgc3RyZWFtaW5nIHN0YWNrKSBkby4K Ckl0IGhhcyBldmVyeXRoaW5nIHRvIGRvIHdpdGggYnl0ZSBvcmRlci4gTGl0dGxlIGVuZGlhbiBt ZWFucyB0aGUgbGVhc3QKc2lnbmlmaWNhbnQgYnl0ZSBpcyBzdG9yZWQgaW4gdGhlIGZpcnN0IGJ5 dGUgaW4gbWVtb3J5LgoKQmFzZWQgb24gaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC92 NC4xNS9tZWRpYS91YXBpL3Y0bC9waXhmbXQtcGFja2VkLXJnYi5odG1sCmRybSBYUkdCODg4IGlz IGFjdHVhbGx5IHY0bCBYQkdSMzIsIG5vdCBYUkdCMzIgYXMgY2xhaW1lZCBieSB0aGlzIHBhdGNo LgoKPiAKPiA+IAo+ID4gPiByYW5kb21seSwgYnV0IHRoaXMgb25lIG9uIG1vc3Qgc3lzdGVtLCBs aXR0bGUgZW5kaWFuLCB3aWxsIG1hdGNoCj4gPiA+IFY0TDJfUElYX0ZNVF9YQkdSMzIuIFRoaXMg dHlwZSBvZiBjb21wbGV4IG1hcHBpbmcgY2FuIGJlIGZvdW5kIGluCj4gPiA+IG11bHRpcGxlIHBs YWNlcywgbm90YWJseSBpbiBHU3RyZWFtZXI6Cj4gPiA+IAo+ID4gPiBodHRwczovL2dpdGxhYi5m cmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC9ibG9iL21hc3Rlci9zeXMv a21zL2dzdGttc3V0aWxzLmMjTDQ1Cj4gPiA+IAo+ID4gPiA+ICAJCS5kZXB0aCA9IDI0LAo+ID4g PiA+ICAJCS5udW1fcGxhbmVzID0gMSwKPiA+ID4gPiAgCQkuY3BwID0geyA0LCAwLCAwIH0sCj4g PiA+ID4gQEAgLTI4MSw2ICsyOTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1h dF9pbmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaGFzX2FscGhhID0gdHJ1ZSwKPiA+ID4g PiAgCX0sIHsKPiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfQVJHQjg4ODgsCj4gPiA+ ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX0FSR0IzMiwKPiA+ID4gPiAgCQkuZGVwdGgg PSAzMiwKPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDEsCj4gPiA+ID4gIAkJLmNwcCA9IHsgNCwg MCwgMCB9LAo+ID4gPiA+IEBAIC0zNjEsNiArMzcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBp bWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ID4gIAkJLmhhc19hbHBoYSA9IHRy dWUsCj4gPiA+ID4gIAl9LCB7Cj4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX1lVVjQx MCwKPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwyX1BJWF9GTVRfWVVWNDEwLAo+ID4gPiA+ICAJ CS5kZXB0aCA9IDAsCj4gPiA+ID4gIAkJLm51bV9wbGFuZXMgPSAzLAo+ID4gPiA+ICAJCS5jcHAg PSB7IDEsIDEsIDEgfSwKPiA+ID4gPiBAQCAtMzY5LDYgKzM4MSw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4gPiA+ICAJCS5pc195dXYg PSB0cnVlLAo+ID4gPiA+ICAJfSwgewo+ID4gPiA+ICAJCS5kcm1fZm10ID0gRFJNX0ZPUk1BVF9Z VlU0MTAsCj4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX1lWVTQxMCwKPiA+ID4g PiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJCS5udW1fcGxhbmVzID0gMywKPiA+ID4gPiAgCQku Y3BwID0geyAxLCAxLCAxIH0sCj4gPiA+ID4gQEAgLTM5Myw2ICs0MDYsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNf eXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JN QVRfWVVWNDIwLAo+ID4gPiA+ICsJCS52NGwyX2ZtdCA9IFY0TDJfUElYX0ZNVF9ZVVY0MjBNLAo+ ID4gPiA+ICAJCS5kZXB0aCA9IDAsCj4gPiA+ID4gIAkJLm51bV9wbGFuZXMgPSAzLAo+ID4gPiA+ ICAJCS5jcHAgPSB7IDEsIDEsIDEgfSwKPiA+ID4gPiBAQCAtNDAxLDYgKzQxNSw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4gPiA+ICAJ CS5pc195dXYgPSB0cnVlLAo+ID4gPiA+ICAJfSwgewo+ID4gPiA+ICAJCS5kcm1fZm10ID0gRFJN X0ZPUk1BVF9ZVlU0MjAsCj4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX1lWVTQy ME0sCj4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDMsCj4g PiA+ID4gIAkJLmNwcCA9IHsgMSwgMSwgMSB9LAo+ID4gPiA+IEBAIC00MDksNiArNDI0LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ ID4gIAkJLmlzX3l1diA9IHRydWUsCj4gPiA+ID4gIAl9LCB7Cj4gPiA+ID4gIAkJLmRybV9mbXQg PSBEUk1fRk9STUFUX1lVVjQyMiwKPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwyX1BJWF9GTVRf WVVWNDIyTSwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJCS5udW1fcGxhbmVzID0g MywKPiA+ID4gPiAgCQkuY3BwID0geyAxLCAxLCAxIH0sCj4gPiA+ID4gQEAgLTQxNyw2ICs0MzMs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSA9IHsK PiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiAgCQkuZHJt X2ZtdCA9IERSTV9GT1JNQVRfWVZVNDIyLAo+ID4gPiA+ICsJCS52NGwyX2ZtdCA9IFY0TDJfUElY X0ZNVF9ZVlU0MjJNLAo+ID4gPiA+ICAJCS5kZXB0aCA9IDAsCj4gPiA+ID4gIAkJLm51bV9wbGFu ZXMgPSAzLAo+ID4gPiA+ICAJCS5jcHAgPSB7IDEsIDEsIDEgfSwKPiA+ID4gPiBAQCAtNDI1LDYg KzQ0Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1td ID0gewo+ID4gPiA+ICAJCS5pc195dXYgPSB0cnVlLAo+ID4gPiA+ICAJfSwgewo+ID4gPiA+ICAJ CS5kcm1fZm10ID0gRFJNX0ZPUk1BVF9ZVVY0NDQsCj4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRM Ml9QSVhfRk1UX1lVVjQ0NE0sCj4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ID4gPiAgCQkubnVt X3BsYW5lcyA9IDMsCj4gPiA+ID4gIAkJLmNwcCA9IHsgMSwgMSwgMSB9LAo+ID4gPiA+IEBAIC00 MzMsNiArNDUxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3Jt YXRzW10gPSB7Cj4gPiA+ID4gIAkJLmlzX3l1diA9IHRydWUsCj4gPiA+ID4gIAl9LCB7Cj4gPiA+ ID4gIAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX1lWVTQ0NCwKPiA+ID4gPiArCQkudjRsMl9mbXQg PSBWNEwyX1BJWF9GTVRfWVZVNDQ0TSwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMywKPiA+ID4gPiAgCQkuY3BwID0geyAxLCAxLCAxIH0sCj4gPiA+ID4g QEAgLTQ0MSw2ICs0NjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfTlYxMiwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfTlYxMiwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMiwKPiA+ID4gPiAgCQkuY3BwID0geyAxLCAyLCAwIH0sCj4gPiA+ID4g QEAgLTQ0OSw2ICs0NjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfTlYyMSwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfTlYyMSwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMiwKPiA+ID4gPiAgCQkuY3BwID0geyAxLCAyLCAwIH0sCj4gPiA+ID4g QEAgLTQ1Nyw2ICs0NzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfTlYxNiwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfTlYxNiwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMiwKPiA+ID4gPiAgCQkuY3BwID0geyAxLCAyLCAwIH0sCj4gPiA+ID4g QEAgLTQ2NSw2ICs0ODcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfTlY2MSwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfTlY2MSwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMiwKPiA+ID4gPiAgCQkuY3BwID0geyAxLCAyLCAwIH0sCj4gPiA+ID4g QEAgLTQ3Myw2ICs0OTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfTlYyNCwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfTlYyNCwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMiwKPiA+ID4gPiAgCQkuY3BwID0geyAxLCAyLCAwIH0sCj4gPiA+ID4g QEAgLTQ4MSw2ICs1MDUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfTlY0MiwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfTlY0MiwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMiwKPiA+ID4gPiAgCQkuY3BwID0geyAxLCAyLCAwIH0sCj4gPiA+ID4g QEAgLTQ4OSw2ICs1MTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfWVVZViwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfWVVZViwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMSwKPiA+ID4gPiAgCQkuY3BwID0geyAyLCAwLCAwIH0sCj4gPiA+ID4g QEAgLTQ5Nyw2ICs1MjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfWVZZVSwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfWVZZVSwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMSwKPiA+ID4gPiAgCQkuY3BwID0geyAyLCAwLCAwIH0sCj4gPiA+ID4g QEAgLTUwNSw2ICs1MzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfVVlWWSwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfVVlWWSwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMSwKPiA+ID4gPiAgCQkuY3BwID0geyAyLCAwLCAwIH0sCj4gPiA+ID4g QEAgLTUxMyw2ICs1NDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IGZvcm1hdHNbXSA9IHsKPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfVllVWSwKPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfVllVWSwKPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMSwKPiA+ID4gPiAgCQkuY3BwID0geyAyLCAwLCAwIH0sCj4gPiA+ID4g QEAgLTYzMiw2ICs2NjEsNDQgQEAgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZvICppbWFn ZV9mb3JtYXRfZHJtX2xvb2t1cCh1MzIgZHJtKQo+ID4gPiA+ICBFWFBPUlRfU1lNQk9MKGltYWdl X2Zvcm1hdF9kcm1fbG9va3VwKTsKPiA+ID4gPiAgCj4gPiA+ID4gIC8qKgo+ID4gPiA+ICsgKiBf X2ltYWdlX2Zvcm1hdF92NGwyX2xvb2t1cCAtIHF1ZXJ5IGluZm9ybWF0aW9uIGZvciBhIGdpdmVu IGZvcm1hdAo+ID4gPiA+ICsgKiBAdjRsMjogVjRMMiBmb3VyY2MgcGl4ZWwgZm9ybWF0IChWNEwy X1BJWF9GTVRfKikKPiA+ID4gPiArICoKPiA+ID4gPiArICogVGhlIGNhbGxlciBzaG91bGQgb25s eSBwYXNzIGEgc3VwcG9ydGVkIHBpeGVsIGZvcm1hdCB0byB0aGlzIGZ1bmN0aW9uLgo+ID4gPiA+ ICsgKgo+ID4gPiA+ICsgKiBSZXR1cm5zOgo+ID4gPiA+ICsgKiBUaGUgaW5zdGFuY2Ugb2Ygc3Ry dWN0IGltYWdlX2Zvcm1hdF9pbmZvIHRoYXQgZGVzY3JpYmVzIHRoZSBwaXhlbCBmb3JtYXQsIG9y Cj4gPiA+ID4gKyAqIE5VTEwgaWYgdGhlIGZvcm1hdCBpcyB1bnN1cHBvcnRlZC4KPiA+ID4gPiAr ICovCj4gPiA+ID4gK2NvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyAqX19pbWFnZV9mb3Jt YXRfdjRsMl9sb29rdXAodTMyIHY0bDIpCj4gPiA+ID4gK3sKPiA+ID4gPiArCXJldHVybiBfX2lt YWdlX2Zvcm1hdF9sb29rdXAodjRsMl9mbXQsIHY0bDIpOwo+ID4gPiA+ICt9Cj4gPiA+ID4gK0VY UE9SVF9TWU1CT0woX19pbWFnZV9mb3JtYXRfdjRsMl9sb29rdXApOwo+ID4gPiA+ICsKPiA+ID4g PiArLyoqCj4gPiA+ID4gKyAqIGltYWdlX2Zvcm1hdF92NGwyX2xvb2t1cCAtIHF1ZXJ5IGluZm9y bWF0aW9uIGZvciBhIGdpdmVuIGZvcm1hdAo+ID4gPiA+ICsgKiBAdjRsMjogVjRMMiBmb3VyY2Mg cGl4ZWwgZm9ybWF0IChWNEwyX1BJWF9GTVRfKikKPiA+ID4gPiArICoKPiA+ID4gPiArICogVGhl IGNhbGxlciBzaG91bGQgb25seSBwYXNzIGEgc3VwcG9ydGVkIHBpeGVsIGZvcm1hdCB0byB0aGlz IGZ1bmN0aW9uLgo+ID4gPiA+ICsgKiBVbnN1cHBvcnRlZCBwaXhlbCBmb3JtYXRzIHdpbGwgZ2Vu ZXJhdGUgYSB3YXJuaW5nIGluIHRoZSBrZXJuZWwgbG9nLgo+ID4gPiA+ICsgKgo+ID4gPiA+ICsg KiBSZXR1cm5zOgo+ID4gPiA+ICsgKiBUaGUgaW5zdGFuY2Ugb2Ygc3RydWN0IGltYWdlX2Zvcm1h dF9pbmZvIHRoYXQgZGVzY3JpYmVzIHRoZSBwaXhlbCBmb3JtYXQsIG9yCj4gPiA+ID4gKyAqIE5V TEwgaWYgdGhlIGZvcm1hdCBpcyB1bnN1cHBvcnRlZC4KPiA+ID4gPiArICovCj4gPiA+ID4gK2Nv bnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyAqaW1hZ2VfZm9ybWF0X3Y0bDJfbG9va3VwKHUz MiB2NGwyKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwljb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2lu Zm8gKmZvcm1hdDsKPiA+ID4gPiArCj4gPiA+ID4gKwlmb3JtYXQgPSBfX2ltYWdlX2Zvcm1hdF92 NGwyX2xvb2t1cCh2NGwyKTsKPiA+ID4gPiArCj4gPiA+ID4gKwlXQVJOX09OKCFmb3JtYXQpOwo+ ID4gPiA+ICsJcmV0dXJuIGZvcm1hdDsKPiA+ID4gPiArfQo+ID4gPiA+ICtFWFBPUlRfU1lNQk9M KGltYWdlX2Zvcm1hdF92NGwyX2xvb2t1cCk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsvKioKPiA+ID4g PiAgICogaW1hZ2VfZm9ybWF0X3BsYW5lX2NwcCAtIGRldGVybWluZSB0aGUgYnl0ZXMgcGVyIHBp eGVsIHZhbHVlCj4gPiA+ID4gICAqIEBmb3JtYXQ6IHBvaW50ZXIgdG8gdGhlIGltYWdlX2Zvcm1h dAo+ID4gPiA+ICAgKiBAcGxhbmU6IHBsYW5lIGluZGV4Cj4gPiA+IAo+ID4gPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiBkcmktZGV2ZWwgbWFp bGluZyBsaXN0Cj4gPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCgoK LS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=