From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: Re: [RFC PATCH 18/20] lib: image-formats: Add v4l2 formats support Date: Thu, 21 Mar 2019 17:04:19 +0100 Message-ID: <46df4fb13636b90c147839b0aa5ad1ac33030461.camel@bootlin.com> References: <20190320142739.GK3888@intel.com> <20190320160939.GR3888@intel.com> <20190320164133.GT3888@intel.com> <20190320183914.GV3888@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from relay12.mail.gandi.net (relay12.mail.gandi.net [217.70.178.232]) by gabe.freedesktop.org (Postfix) with ESMTPS id C1B156E130 for ; Thu, 21 Mar 2019 16:04:23 +0000 (UTC) In-Reply-To: <20190320183914.GV3888@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= , Nicolas Dufresne Cc: Thomas Petazzoni , Maxime Ripard , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, David Airlie , Hans Verkuil , Sean Paul , Laurent Pinchart , Sakari Ailus , Daniel Vetter , Daniel Stone , Mauro Carvalho Chehab , linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SGksCgpMZSBtZXJjcmVkaSAyMCBtYXJzIDIwMTkgw6AgMjA6MzkgKzAyMDAsIFZpbGxlIFN5cmrD pGzDpCBhIMOpY3JpdCA6Cj4gT24gV2VkLCBNYXIgMjAsIDIwMTkgYXQgMDI6Mjc6NTlQTSAtMDQw MCwgTmljb2xhcyBEdWZyZXNuZSB3cm90ZToKPiA+IExlIG1lcmNyZWRpIDIwIG1hcnMgMjAxOSDD oCAxODo0MSArMDIwMCwgVmlsbGUgU3lyasOkbMOkIGEgw6ljcml0IDoKPiA+ID4gT24gV2VkLCBN YXIgMjAsIDIwMTkgYXQgMTI6MzA6MjVQTSAtMDQwMCwgTmljb2xhcyBEdWZyZXNuZSB3cm90ZToK PiA+ID4gPiBMZSBtZXJjcmVkaSAyMCBtYXJzIDIwMTkgw6AgMTg6MDkgKzAyMDAsIFZpbGxlIFN5 cmrDpGzDpCBhIMOpY3JpdCA6Cj4gPiA+ID4gPiBPbiBXZWQsIE1hciAyMCwgMjAxOSBhdCAxMTo1 MTo1OEFNIC0wNDAwLCBOaWNvbGFzIER1ZnJlc25lIHdyb3RlOgo+ID4gPiA+ID4gPiBMZSBtZXJj cmVkaSAyMCBtYXJzIDIwMTkgw6AgMTY6MjcgKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCBhIMOpY3Jp dCA6Cj4gPiA+ID4gPiA+ID4gT24gVHVlLCBNYXIgMTksIDIwMTkgYXQgMDc6Mjk6MThQTSAtMDQw MCwgTmljb2xhcyBEdWZyZXNuZSB3cm90ZToKPiA+ID4gPiA+ID4gPiA+IExlIG1hcmRpIDE5IG1h cnMgMjAxOSDDoCAyMjo1NyArMDEwMCwgTWF4aW1lIFJpcGFyZCBhIMOpY3JpdCA6Cj4gPiA+ID4g PiA+ID4gPiA+IFY0TDIgdXNlcyBkaWZmZXJlbnQgZm91cmNjJ3MgdGhhbiBEUk0sIGFuZCBoYXMg YSBkaWZmZXJlbnQgc2V0IG9mIGZvcm1hdHMuCj4gPiA+ID4gPiA+ID4gPiA+IEZvciBub3csIGxl dCdzIGFkZCB0aGUgdjRsMiBmb3VyY2MncyBmb3IgdGhlIGFscmVhZHkgZXhpc3RpbmcgZm9ybWF0 cy4KPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1h eGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAYm9vdGxpbi5jb20+Cj4gPiA+ID4gPiA+ID4gPiA+ IC0tLQo+ID4gPiA+ID4gPiA+ID4gPiAgaW5jbHVkZS9saW51eC9pbWFnZS1mb3JtYXRzLmggfCAg OSArKysrKy0KPiA+ID4gPiA+ID4gPiA+ID4gIGxpYi9pbWFnZS1mb3JtYXRzLmMgICAgICAgICAg IHwgNjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ID4gPiA+ID4gPiA+ ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspCj4gPiA+ID4gPiA+ID4gPiA+ IAo+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbWFnZS1mb3Jt YXRzLmggYi9pbmNsdWRlL2xpbnV4L2ltYWdlLWZvcm1hdHMuaAo+ID4gPiA+ID4gPiA+ID4gPiBp bmRleCA1M2ZkNzNhNzFiM2QuLmZiYzNhNDUwMWViZCAxMDA2NDQKPiA+ID4gPiA+ID4gPiA+ID4g LS0tIGEvaW5jbHVkZS9saW51eC9pbWFnZS1mb3JtYXRzLmgKPiA+ID4gPiA+ID4gPiA+ID4gKysr IGIvaW5jbHVkZS9saW51eC9pbWFnZS1mb3JtYXRzLmgKPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTI2 LDYgKzI2LDEzIEBAIHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyB7Cj4gPiA+ID4gPiA+ID4gPiA+ ICAJfTsKPiA+ID4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiA+ID4gPiAgCS8qKgo+ID4gPiA+ ID4gPiA+ID4gPiArCSAqIEB2NGwyX2ZtdDoKPiA+ID4gPiA+ID4gPiA+ID4gKwkgKgo+ID4gPiA+ ID4gPiA+ID4gPiArCSAqIFY0TDIgNENDIGZvcm1hdCBpZGVudGlmaWVyIChWNEwyX1BJWF9GTVRf KikKPiA+ID4gPiA+ID4gPiA+ID4gKwkgKi8KPiA+ID4gPiA+ID4gPiA+ID4gKwl1MzIgdjRsMl9m bXQ7Cj4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gKwkvKioKPiA+ID4gPiA+ ID4gPiA+ID4gIAkgKiBAZGVwdGg6Cj4gPiA+ID4gPiA+ID4gPiA+ICAJICoKPiA+ID4gPiA+ID4g PiA+ID4gIAkgKiBDb2xvciBkZXB0aCAobnVtYmVyIG9mIGJpdHMgcGVyIHBpeGVsIGV4Y2x1ZGlu ZyBwYWRkaW5nIGJpdHMpLAo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtMjIyLDYgKzIyOSw4IEBAIGlt YWdlX2Zvcm1hdF9pbmZvX2lzX3l1dl9zYW1wbGluZ180NDQoY29uc3Qgc3RydWN0IGltYWdlX2Zv cm1hdF9pbmZvICppbmZvKQo+ID4gPiA+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ID4gPiA+ICBj b25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gKl9faW1hZ2VfZm9ybWF0X2RybV9sb29rdXAo dTMyIGRybSk7Cj4gPiA+ID4gPiA+ID4gPiA+ICBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2lu Zm8gKmltYWdlX2Zvcm1hdF9kcm1fbG9va3VwKHUzMiBkcm0pOwo+ID4gPiA+ID4gPiA+ID4gPiAr Y29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZvICpfX2ltYWdlX2Zvcm1hdF92NGwyX2xvb2t1 cCh1MzIgdjRsMik7Cj4gPiA+ID4gPiA+ID4gPiA+ICtjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0 X2luZm8gKmltYWdlX2Zvcm1hdF92NGwyX2xvb2t1cCh1MzIgdjRsMik7Cj4gPiA+ID4gPiA+ID4g PiA+ICB1bnNpZ25lZCBpbnQgaW1hZ2VfZm9ybWF0X3BsYW5lX2NwcChjb25zdCBzdHJ1Y3QgaW1h Z2VfZm9ybWF0X2luZm8gKmZvcm1hdCwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJCQkgICAgaW50IHBs YW5lKTsKPiA+ID4gPiA+ID4gPiA+ID4gIHVuc2lnbmVkIGludCBpbWFnZV9mb3JtYXRfcGxhbmVf d2lkdGgoaW50IHdpZHRoLAo+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2ltYWdl LWZvcm1hdHMuYyBiL2xpYi9pbWFnZS1mb3JtYXRzLmMKPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXgg OWI5YTczMjIwYzVkLi4zOWYxZDM4YWU4NjEgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gPiA+IC0tLSBh L2xpYi9pbWFnZS1mb3JtYXRzLmMKPiA+ID4gPiA+ID4gPiA+ID4gKysrIGIvbGliL2ltYWdlLWZv cm1hdHMuYwo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtOCw2ICs4LDcgQEAKPiA+ID4gPiA+ID4gPiA+ ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ ID4gPiA+ID4gPiA+ID4gPiAgCXsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1f Rk9STUFUX0M4LAo+ID4gPiA+ID4gPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwyX1BJWF9GTVRf R1JFWSwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRlcHRoID0gOCwKPiA+ID4gPiA+ID4gPiA+ID4g IAkJLm51bV9wbGFuZXMgPSAxLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuY3BwID0geyAxLCAwLCAw IH0sCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xNSw2ICsxNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4gPiA+ID4gPiA+ID4gPiAgCQku dnN1YiA9IDEsCj4gPiA+ID4gPiA+ID4gPiA+ICAJfSwgewo+ID4gPiA+ID4gPiA+ID4gPiAgCQku ZHJtX2ZtdCA9IERSTV9GT1JNQVRfUkdCMzMyLAo+ID4gPiA+ID4gPiA+ID4gPiArCQkudjRsMl9m bXQgPSBWNEwyX1BJWF9GTVRfUkdCMzMyLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZGVwdGggPSA4 LAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDEsCj4gPiA+ID4gPiA+ID4gPiA+ ICAJCS5jcHAgPSB7IDEsIDAsIDAgfSwKPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTI5LDYgKzMxLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4g PiA+ID4gPiA+ID4gPiA+ICAJCS52c3ViID0gMSwKPiA+ID4gPiA+ID4gPiA+ID4gIAl9LCB7Cj4g PiA+ID4gPiA+ID4gPiA+ICAJCS5kcm1fZm10ID0gRFJNX0ZPUk1BVF9YUkdCNDQ0NCwKPiA+ID4g PiA+ID4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX1hSR0I0NDQsCj4gPiA+ID4g PiA+ID4gPiA+ICAJCS5kZXB0aCA9IDAsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5udW1fcGxhbmVz ID0gMSwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmNwcCA9IHsgMiwgMCwgMCB9LAo+ID4gPiA+ID4g PiA+ID4gPiBAQCAtNTcsNiArNjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1h dF9pbmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLnZzdWIgPSAxLAo+ID4g PiA+ID4gPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1f Rk9STUFUX0FSR0I0NDQ0LAo+ID4gPiA+ID4gPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwyX1BJ WF9GTVRfQVJHQjQ0NCwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ID4gPiA+ ID4gPiA+ID4gIAkJLm51bV9wbGFuZXMgPSAxLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuY3BwID0g eyAyLCAwLCAwIH0sCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC04OSw2ICs5Myw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4gPiA+ID4gPiA+ ID4gPiAgCQkuaGFzX2FscGhhID0gdHJ1ZSwKPiA+ID4gPiA+ID4gPiA+ID4gIAl9LCB7Cj4gPiA+ ID4gPiA+ID4gPiA+ICAJCS5kcm1fZm10ID0gRFJNX0ZPUk1BVF9YUkdCMTU1NSwKPiA+ID4gPiA+ ID4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX1hSR0I1NTUsCj4gPiA+ID4gPiA+ ID4gPiA+ICAJCS5kZXB0aCA9IDE1LAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9 IDEsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5jcHAgPSB7IDIsIDAsIDAgfSwKPiA+ID4gPiA+ID4g PiA+ID4gQEAgLTExNyw2ICsxMjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1h dF9pbmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLnZzdWIgPSAxLAo+ID4g PiA+ID4gPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1f Rk9STUFUX0FSR0IxNTU1LAo+ID4gPiA+ID4gPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwyX1BJ WF9GTVRfQVJHQjU1NSwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRlcHRoID0gMTUsCj4gPiA+ID4g PiA+ID4gPiA+ICAJCS5udW1fcGxhbmVzID0gMSwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmNwcCA9 IHsgMiwgMCwgMCB9LAo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtMTQ5LDYgKzE1NSw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4gPiA+ID4g PiA+ID4gPiAgCQkuaGFzX2FscGhhID0gdHJ1ZSwKPiA+ID4gPiA+ID4gPiA+ID4gIAl9LCB7Cj4g PiA+ID4gPiA+ID4gPiA+ICAJCS5kcm1fZm10ID0gRFJNX0ZPUk1BVF9SR0I1NjUsCj4gPiA+ID4g PiA+ID4gPiA+ICsJCS52NGwyX2ZtdCA9IFY0TDJfUElYX0ZNVF9SR0I1NjUsCj4gPiA+ID4gPiA+ ID4gPiA+ICAJCS5kZXB0aCA9IDE2LAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9 IDEsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5jcHAgPSB7IDIsIDAsIDAgfSwKPiA+ID4gPiA+ID4g PiA+ID4gQEAgLTE2Myw2ICsxNzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1h dF9pbmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLnZzdWIgPSAxLAo+ID4g PiA+ID4gPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1f Rk9STUFUX1JHQjg4OCwKPiA+ID4gPiA+ID4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhf Rk1UX1JHQjI0LAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZGVwdGggPSAyNCwKPiA+ID4gPiA+ID4g PiA+ID4gIAkJLm51bV9wbGFuZXMgPSAxLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuY3BwID0geyAz LCAwLCAwIH0sCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xNzAsNiArMTc4LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ID4gPiA+ID4g PiA+ICAJCS52c3ViID0gMSwKPiA+ID4gPiA+ID4gPiA+ID4gIAl9LCB7Cj4gPiA+ID4gPiA+ID4g PiA+ICAJCS5kcm1fZm10ID0gRFJNX0ZPUk1BVF9CR1I4ODgsCj4gPiA+ID4gPiA+ID4gPiA+ICsJ CS52NGwyX2ZtdCA9IFY0TDJfUElYX0ZNVF9CR1IyNCwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRl cHRoID0gMjQsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5udW1fcGxhbmVzID0gMSwKPiA+ID4gPiA+ ID4gPiA+ID4gIAkJLmNwcCA9IHsgMywgMCwgMCB9LAo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtMTc3 LDYgKzE4Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0 c1tdID0gewo+ID4gPiA+ID4gPiA+ID4gPiAgCQkudnN1YiA9IDEsCj4gPiA+ID4gPiA+ID4gPiA+ ICAJfSwgewo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfWFJHQjg4 ODgsCj4gPiA+ID4gPiA+ID4gPiA+ICsJCS52NGwyX2ZtdCA9IFY0TDJfUElYX0ZNVF9YUkdCMzIs Cj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IEFsbCBSR0IgbWFwcGluZyBzaG91bGQg YmUgc3Vycm91bmRlZCBieSBpZmRlZiwgYmVjYXVzZSBtYW55IChub3QgYWxsKQo+ID4gPiA+ID4g PiA+ID4gRFJNIGZvcm1hdHMgcmVwcmVzZW50IHRoZSBvcmRlciBvZiBjb21wb25lbnQgd2hlbiBw bGFjZWQgaW4gYSBDUFUKPiA+ID4gPiA+ID4gPiA+IHJlZ2lzdGVyLCB1bmxpa2UgVjRMMiB3aGlj aCB1c2VzIG1lbW9yeSBvcmRlci4gSSd2ZSBwaWNrIHRoaXMgb25lCj4gPiA+ID4gPiA+ID4gCj4g PiA+ID4gPiA+ID4gRFJNIGZvcm1hdHMgYXJlIGV4cGxpY2l0bHkgZGVmaW5lZCBhcyBsaXR0bGUg ZW5kaWFuLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gWWVzLCB0aGF0IG1lYW5zIHRoZSBzYW1l IHRoaW5nLiBUaGUgbWFwcGluZyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZQo+ID4gPiA+ID4g PiBidWZmZXIgYnl0ZXMgb3JkZXIsIHVubGlrZSBWNEwyIChhbmQgbW9zdCBzdHJlYW1pbmcgc3Rh Y2spIGRvLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBJdCBoYXMgZXZlcnl0aGluZyB0byBkbyB3aXRo IGJ5dGUgb3JkZXIuIExpdHRsZSBlbmRpYW4gbWVhbnMgdGhlIGxlYXN0Cj4gPiA+ID4gPiBzaWdu aWZpY2FudCBieXRlIGlzIHN0b3JlZCBpbiB0aGUgZmlyc3QgYnl0ZSBpbiBtZW1vcnkuCj4gPiA+ ID4gPiAKPiA+ID4gPiA+IEJhc2VkIG9uIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwv djQuMTUvbWVkaWEvdWFwaS92NGwvcGl4Zm10LXBhY2tlZC1yZ2IuaHRtbAo+ID4gPiA+ID4gZHJt IFhSR0I4ODggaXMgYWN0dWFsbHkgdjRsIFhCR1IzMiwgbm90IFhSR0IzMiBhcyBjbGFpbWVkIGJ5 IHRoaXMgcGF0Y2guCj4gPiA+ID4gCj4gPiA+ID4gVGhhdCdzIGJhc2ljYWxseSB3aGF0IEkgc2Fp ZCwgYXMgaXQncyBkZWZpbmUgZm9yIExpdHRsZSBFbmRpYW4gcmF0aGVyCj4gPiA+ID4gdGhlbiBi dWZmZXIgb3JkZXIsIHlvdSBoYXZlIHRvIG1ha2UgdGhlIG1hcHBpbmcgY29uZGl0aW9uYWwuIEl0 Cj4gPiA+ID4gYmFzaWNhbGx5IG1lYW4gdGhhdCBpbiBtZW1vcnksIHRoZSBEUk0gZm9ybWF0IHBo eXNpY2FsbHkgZGlmZmVyCj4gPiA+ID4gZGVwZW5kaW5nIG9uIENQVSBlbmRpYW4uCj4gPiA+IAo+ ID4gPiBOby4gSXQgaXMgYWx3YXlzIGxpdHRsZSBlbmRpYW4gbm8gbWF0dGVyIHdoYXQgdGhlIENQ VSBpcy4KPiA+IAo+ID4gSSdtIHNvcnJ5LCB0aGlzIGlzIGluIHlvdXIgQUJJLCB3ZSBkb24ndCBh ZGQgbGF5ZXJzIG9mIGlmZGVmIGluCj4gPiB1c2Vyc3BhY2UgY29kZSBqdXN0IGZvciB0aGUgZnVu IG9mIGl0LiBJZiB5b3UgcmVkZWZpbmUgdGhpcyBub3cgeW91IGFyZQo+ID4gYnJlYWtpbmcgdXNl cnNwYWNlLiBJIGFncmVlIHRoZXJlIGlzIHZlcnkgbGl0dGxlIHRvIG5vIEJpZyBFbmRpYW4gb24K PiA+IERSTSBzaWRlIGFueW1vcmUsIGJ1dCB3aGF0IGhpc3RvcmljYWxseSB3YXMgbWFwcGVkIHBl ciBDUFUgY2Fubm90IGJlCj4gPiBjaGFuZ2VkIGJ5IHlvdSBub3cuCj4gCj4gSXQgd2FzIGFsd2F5 cyBsaXR0bGUgZW5kaWFuLgoKSSdtIG5vdCBzdXJlIHdoYXQgaXQncyB3b3J0aCwgYnV0IHRoZXJl IGlzIGEgInBpeGVsIGZvcm1hdCBndWlkZSIKcHJvamVjdCB0aGF0IGlzIGFsbCBhYm91dCBtYXRj aGluZyBmb3JtYXRzIGZyb20gb25lIEFQSSB0byBhbm90aGVyOiAKaHR0cHM6Ly9hZnJhbnR6aXMu Y29tL3BpeGVsLWZvcm1hdC1ndWlkZS8gKGFuZCBpdCBoYXMgYW4gYXNzb2NpYXRlZAp0b29sIHRv bykuCgpPbiB0aGUgcGFnZSBhYm91dCBEUk0sIGl0IHNlZW1zIHRoYXQgdGhleSBnb3QgdGhlIHdv cmQgdGhhdCBEUk0gZm9ybWF0cwphcmUgdGhlIG5hdGl2ZSBwaXhlbCBvcmRlciBpbiBsaXR0bGUt ZW5kaWFuIHN5c3RlbXM6Cmh0dHBzOi8vYWZyYW50emlzLmNvbS9waXhlbC1mb3JtYXQtZ3VpZGUv ZHJtLmh0bWwKClBlcmhhcHMgc29tZSBkcml2ZXJzIGhhdmUgYmVlbiBhYnVzaW5nIHRoZSBmb3Jt YXQgZGVmaW5pdGlvbnMsIGxlYWRpbmcKdG8gdGhlIGluY29uc2lzdGVuY2llcyB0aGF0IE5pY29s YXMgY291bGQgd2l0bmVzcz8KCkNoZWVycywKClBhdWwKCj4gPiA+ID4gTGFzdCB0aW1lIHdlIGhh dmUgcnVuIHRoaXMgb24gUFBDIC8gQmlnCj4gPiA+ID4gRW5kaWFuLCB0aGUgbWFwcGluZyB3YXMg WFJHQi9YUkdCLCB3ZSBjaGVja2VkIHRoYXQgdXAgbXVsdGlwbGUgdGltZQo+ID4gPiA+IHdpdGgg dGhlIERSTSBtYWludGFpbmVycyBhbmQgd2FzIHRvbGQgdGhpcyBpcyBleGFjdGx5IHdoYXQgaXQn cyBzdXBwb3NlCj4gPiA+ID4gdG8gZG8sIGhlbmNlIHRoaXMgZW5kaWFuIGRlcGVuZGFudCBtYXBw aW5nIGFsbCBvdmVyIHRoZSBwbGFjZS4gSWYgeW91Cj4gPiA+ID4gbWFrZSB1cCB0aGF0IHRoaXMg aXNuJ3QgcmlnaHQsIHlvdSBhcmUgYnJlYWtpbmcgdXNlcnNwYWNlLCBhbmQgcGVvcGxlCj4gPiA+ ID4gZG9uJ3QgbGlrZSB0aGF0Lgo+ID4gPiAKPiA+ID4gU29tZW9uZSByZWNlbnRseSBhZGRlZCB0 aG9zZSBEUk1fRk9STUFUX0hPU1QgdmFyaWFudHMgdG8gYWxsb3cKPiA+ID4gdGhlIGxlZ2FjeSBh ZGRmYjEgdG8gY3JlYXRlIHBpY2sgdGhlIGZvcm1hdCBiYXNlZCBvbiBob3N0Cj4gPiA+IGVuZGlh bm5lc3MuIEkgdGhvdWdodCB0aGF0IHdhcyB0aGUgb25seSBjb25jbHVzaW9uIGZyb20gdGhlCj4g PiA+IGxpdHRsZSB2cy4gYmlnIGVuZGlhbiBkcm0gZm91cmNjIHdhcnMuCj4gPiA+IAo+ID4gPiA+ IFNvIHRoZSBtYXBwaW5nIHNob3VsZCBiZToKPiA+ID4gPiBMaXR0bGU6IERSTSBYUkdCIC8gVjRM MiBYQkdSCj4gPiA+ID4gQmlnOiAgICBEUk0gWFJHQiAvIFY0TDIgWFJHQgo+ID4gPiA+IAo+ID4g PiA+ID4gPiA+ID4gcmFuZG9tbHksIGJ1dCB0aGlzIG9uZSBvbiBtb3N0IHN5c3RlbSwgbGl0dGxl IGVuZGlhbiwgd2lsbCBtYXRjaAo+ID4gPiA+ID4gPiA+ID4gVjRMMl9QSVhfRk1UX1hCR1IzMi4g VGhpcyB0eXBlIG9mIGNvbXBsZXggbWFwcGluZyBjYW4gYmUgZm91bmQgaW4KPiA+ID4gPiA+ID4g PiA+IG11bHRpcGxlIHBsYWNlcywgbm90YWJseSBpbiBHU3RyZWFtZXI6Cj4gPiA+ID4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFt ZXIvZ3N0LXBsdWdpbnMtYmFkL2Jsb2IvbWFzdGVyL3N5cy9rbXMvZ3N0a21zdXRpbHMuYyNMNDUK PiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZGVwdGggPSAyNCwKPiA+ID4g PiA+ID4gPiA+ID4gIAkJLm51bV9wbGFuZXMgPSAxLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuY3Bw ID0geyA0LCAwLCAwIH0sCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC0yODEsNiArMjkxLDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ID4g PiA+ID4gPiA+ICAJCS5oYXNfYWxwaGEgPSB0cnVlLAo+ID4gPiA+ID4gPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX0FSR0I4ODg4LAo+ID4g PiA+ID4gPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwyX1BJWF9GTVRfQVJHQjMyLAo+ID4gPiA+ ID4gPiA+ID4gPiAgCQkuZGVwdGggPSAzMiwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLm51bV9wbGFu ZXMgPSAxLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuY3BwID0geyA0LCAwLCAwIH0sCj4gPiA+ID4g PiA+ID4gPiA+IEBAIC0zNjEsNiArMzcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9m b3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5oYXNfYWxwaGEg PSB0cnVlLAo+ID4gPiA+ID4gPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRy bV9mbXQgPSBEUk1fRk9STUFUX1lVVjQxMCwKPiA+ID4gPiA+ID4gPiA+ID4gKwkJLnY0bDJfZm10 ID0gVjRMMl9QSVhfRk1UX1lVVjQxMCwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRlcHRoID0gMCwK PiA+ID4gPiA+ID4gPiA+ID4gIAkJLm51bV9wbGFuZXMgPSAzLAo+ID4gPiA+ID4gPiA+ID4gPiAg CQkuY3BwID0geyAxLCAxLCAxIH0sCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC0zNjksNiArMzgxLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4g PiA+ID4gPiA+ID4gPiA+ICAJCS5pc195dXYgPSB0cnVlLAo+ID4gPiA+ID4gPiA+ID4gPiAgCX0s IHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX1lWVTQxMCwKPiA+ ID4gPiA+ID4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX1lWVTQxMCwKPiA+ID4g PiA+ID4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLm51bV9wbGFu ZXMgPSAzLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuY3BwID0geyAxLCAxLCAxIH0sCj4gPiA+ID4g PiA+ID4gPiA+IEBAIC0zOTMsNiArNDA2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9m b3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5pc195dXYgPSB0 cnVlLAo+ID4gPiA+ID4gPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9m bXQgPSBEUk1fRk9STUFUX1lVVjQyMCwKPiA+ID4gPiA+ID4gPiA+ID4gKwkJLnY0bDJfZm10ID0g VjRMMl9QSVhfRk1UX1lVVjQyME0sCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5kZXB0aCA9IDAsCj4g PiA+ID4gPiA+ID4gPiA+ICAJCS5udW1fcGxhbmVzID0gMywKPiA+ID4gPiA+ID4gPiA+ID4gIAkJ LmNwcCA9IHsgMSwgMSwgMSB9LAo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtNDAxLDYgKzQxNSw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4g PiA+ID4gPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiA+ID4gPiA+ID4gIAl9LCB7 Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5kcm1fZm10ID0gRFJNX0ZPUk1BVF9ZVlU0MjAsCj4gPiA+ ID4gPiA+ID4gPiA+ICsJCS52NGwyX2ZtdCA9IFY0TDJfUElYX0ZNVF9ZVlU0MjBNLAo+ID4gPiA+ ID4gPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkubnVtX3BsYW5l cyA9IDMsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5jcHAgPSB7IDEsIDEsIDEgfSwKPiA+ID4gPiA+ ID4gPiA+ID4gQEAgLTQwOSw2ICs0MjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zv cm1hdF9pbmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmlzX3l1diA9IHRy dWUsCj4gPiA+ID4gPiA+ID4gPiA+ICAJfSwgewo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZHJtX2Zt dCA9IERSTV9GT1JNQVRfWVVWNDIyLAo+ID4gPiA+ID4gPiA+ID4gPiArCQkudjRsMl9mbXQgPSBW NEwyX1BJWF9GTVRfWVVWNDIyTSwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ ID4gPiA+ID4gPiA+ID4gIAkJLm51bV9wbGFuZXMgPSAzLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQku Y3BwID0geyAxLCAxLCAxIH0sCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC00MTcsNiArNDMzLDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ ID4gPiA+ID4gPiA+ICAJCS5pc195dXYgPSB0cnVlLAo+ID4gPiA+ID4gPiA+ID4gPiAgCX0sIHsK PiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX1lWVTQyMiwKPiA+ID4g PiA+ID4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX1lWVTQyMk0sCj4gPiA+ID4g PiA+ID4gPiA+ICAJCS5kZXB0aCA9IDAsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5udW1fcGxhbmVz ID0gMywKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmNwcCA9IHsgMSwgMSwgMSB9LAo+ID4gPiA+ID4g PiA+ID4gPiBAQCAtNDI1LDYgKzQ0Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9y bWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1 ZSwKPiA+ID4gPiA+ID4gPiA+ID4gIAl9LCB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5kcm1fZm10 ID0gRFJNX0ZPUk1BVF9ZVVY0NDQsCj4gPiA+ID4gPiA+ID4gPiA+ICsJCS52NGwyX2ZtdCA9IFY0 TDJfUElYX0ZNVF9ZVVY0NDRNLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4g PiA+ID4gPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDMsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5j cHAgPSB7IDEsIDEsIDEgfSwKPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTQzMyw2ICs0NTEsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4g PiA+ID4gPiA+ID4gIAkJLmlzX3l1diA9IHRydWUsCj4gPiA+ID4gPiA+ID4gPiA+ICAJfSwgewo+ ID4gPiA+ID4gPiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfWVZVNDQ0LAo+ID4gPiA+ ID4gPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwyX1BJWF9GTVRfWVZVNDQ0TSwKPiA+ID4gPiA+ ID4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLm51bV9wbGFuZXMg PSAzLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuY3BwID0geyAxLCAxLCAxIH0sCj4gPiA+ID4gPiA+ ID4gPiA+IEBAIC00NDEsNiArNDYwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3Jt YXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5pc195dXYgPSB0cnVl LAo+ID4gPiA+ID4gPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9mbXQg PSBEUk1fRk9STUFUX05WMTIsCj4gPiA+ID4gPiA+ID4gPiA+ICsJCS52NGwyX2ZtdCA9IFY0TDJf UElYX0ZNVF9OVjEyLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ID4g PiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDIsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5jcHAgPSB7 IDEsIDIsIDAgfSwKPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTQ0OSw2ICs0NjksNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSA9IHsKPiA+ID4gPiA+ID4g PiA+ID4gIAkJLmlzX3l1diA9IHRydWUsCj4gPiA+ID4gPiA+ID4gPiA+ICAJfSwgewo+ID4gPiA+ ID4gPiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfTlYyMSwKPiA+ID4gPiA+ID4gPiA+ ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX05WMjEsCj4gPiA+ID4gPiA+ID4gPiA+ICAJ CS5kZXB0aCA9IDAsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5udW1fcGxhbmVzID0gMiwKPiA+ID4g PiA+ID4gPiA+ID4gIAkJLmNwcCA9IHsgMSwgMiwgMCB9LAo+ID4gPiA+ID4gPiA+ID4gPiBAQCAt NDU3LDYgKzQ3OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9y bWF0c1tdID0gewo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiA+ ID4gPiA+ID4gIAl9LCB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5kcm1fZm10ID0gRFJNX0ZPUk1B VF9OVjE2LAo+ID4gPiA+ID4gPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwyX1BJWF9GTVRfTlYx NiwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJ Lm51bV9wbGFuZXMgPSAyLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuY3BwID0geyAxLCAyLCAwIH0s Cj4gPiA+ID4gPiA+ID4gPiA+IEBAIC00NjUsNiArNDg3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5p c195dXYgPSB0cnVlLAo+ID4gPiA+ID4gPiA+ID4gPiAgCX0sIHsKPiA+ID4gPiA+ID4gPiA+ID4g IAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX05WNjEsCj4gPiA+ID4gPiA+ID4gPiA+ICsJCS52NGwy X2ZtdCA9IFY0TDJfUElYX0ZNVF9OVjYxLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZGVwdGggPSAw LAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDIsCj4gPiA+ID4gPiA+ID4gPiA+ ICAJCS5jcHAgPSB7IDEsIDIsIDAgfSwKPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTQ3Myw2ICs0OTYs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSA9IHsK PiA+ID4gPiA+ID4gPiA+ID4gIAkJLmlzX3l1diA9IHRydWUsCj4gPiA+ID4gPiA+ID4gPiA+ICAJ fSwgewo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JNQVRfTlYyNCwKPiA+ ID4gPiA+ID4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX05WMjQsCj4gPiA+ID4g PiA+ID4gPiA+ICAJCS5kZXB0aCA9IDAsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5udW1fcGxhbmVz ID0gMiwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmNwcCA9IHsgMSwgMiwgMCB9LAo+ID4gPiA+ID4g PiA+ID4gPiBAQCAtNDgxLDYgKzUwNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW1hZ2VfZm9y bWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuaXNfeXV2ID0gdHJ1 ZSwKPiA+ID4gPiA+ID4gPiA+ID4gIAl9LCB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5kcm1fZm10 ID0gRFJNX0ZPUk1BVF9OVjQyLAo+ID4gPiA+ID4gPiA+ID4gPiArCQkudjRsMl9mbXQgPSBWNEwy X1BJWF9GTVRfTlY0MiwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRlcHRoID0gMCwKPiA+ID4gPiA+ ID4gPiA+ID4gIAkJLm51bV9wbGFuZXMgPSAyLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuY3BwID0g eyAxLCAyLCAwIH0sCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC00ODksNiArNTE0LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7Cj4gPiA+ID4gPiA+ ID4gPiA+ICAJCS5pc195dXYgPSB0cnVlLAo+ID4gPiA+ID4gPiA+ID4gPiAgCX0sIHsKPiA+ID4g PiA+ID4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX1lVWVYsCj4gPiA+ID4gPiA+ID4g PiA+ICsJCS52NGwyX2ZtdCA9IFY0TDJfUElYX0ZNVF9ZVVlWLAo+ID4gPiA+ID4gPiA+ID4gPiAg CQkuZGVwdGggPSAwLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkubnVtX3BsYW5lcyA9IDEsCj4gPiA+ ID4gPiA+ID4gPiA+ICAJCS5jcHAgPSB7IDIsIDAsIDAgfSwKPiA+ID4gPiA+ID4gPiA+ID4gQEAg LTQ5Nyw2ICs1MjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZvIGZv cm1hdHNbXSA9IHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmlzX3l1diA9IHRydWUsCj4gPiA+ID4g PiA+ID4gPiA+ICAJfSwgewo+ID4gPiA+ID4gPiA+ID4gPiAgCQkuZHJtX2ZtdCA9IERSTV9GT1JN QVRfWVZZVSwKPiA+ID4gPiA+ID4gPiA+ID4gKwkJLnY0bDJfZm10ID0gVjRMMl9QSVhfRk1UX1lW WVUsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5kZXB0aCA9IDAsCj4gPiA+ID4gPiA+ID4gPiA+ICAJ CS5udW1fcGxhbmVzID0gMSwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmNwcCA9IHsgMiwgMCwgMCB9 LAo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtNTA1LDYgKzUzMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaW1hZ2VfZm9ybWF0X2luZm8gZm9ybWF0c1tdID0gewo+ID4gPiA+ID4gPiA+ID4gPiAgCQku aXNfeXV2ID0gdHJ1ZSwKPiA+ID4gPiA+ID4gPiA+ID4gIAl9LCB7Cj4gPiA+ID4gPiA+ID4gPiA+ ICAJCS5kcm1fZm10ID0gRFJNX0ZPUk1BVF9VWVZZLAo+ID4gPiA+ID4gPiA+ID4gPiArCQkudjRs Ml9mbXQgPSBWNEwyX1BJWF9GTVRfVVlWWSwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRlcHRoID0g MCwKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLm51bV9wbGFuZXMgPSAxLAo+ID4gPiA+ID4gPiA+ID4g PiAgCQkuY3BwID0geyAyLCAwLCAwIH0sCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC01MTMsNiArNTQx LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyBmb3JtYXRzW10gPSB7 Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5pc195dXYgPSB0cnVlLAo+ID4gPiA+ID4gPiA+ID4gPiAg CX0sIHsKPiA+ID4gPiA+ID4gPiA+ID4gIAkJLmRybV9mbXQgPSBEUk1fRk9STUFUX1ZZVVksCj4g PiA+ID4gPiA+ID4gPiA+ICsJCS52NGwyX2ZtdCA9IFY0TDJfUElYX0ZNVF9WWVVZLAo+ID4gPiA+ ID4gPiA+ID4gPiAgCQkuZGVwdGggPSAwLAo+ID4gPiA+ID4gPiA+ID4gPiAgCQkubnVtX3BsYW5l cyA9IDEsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCS5jcHAgPSB7IDIsIDAsIDAgfSwKPiA+ID4gPiA+ ID4gPiA+ID4gQEAgLTYzMiw2ICs2NjEsNDQgQEAgY29uc3Qgc3RydWN0IGltYWdlX2Zvcm1hdF9p bmZvICppbWFnZV9mb3JtYXRfZHJtX2xvb2t1cCh1MzIgZHJtKQo+ID4gPiA+ID4gPiA+ID4gPiAg RVhQT1JUX1NZTUJPTChpbWFnZV9mb3JtYXRfZHJtX2xvb2t1cCk7Cj4gPiA+ID4gPiA+ID4gPiA+ ICAKPiA+ID4gPiA+ID4gPiA+ID4gIC8qKgo+ID4gPiA+ID4gPiA+ID4gPiArICogX19pbWFnZV9m b3JtYXRfdjRsMl9sb29rdXAgLSBxdWVyeSBpbmZvcm1hdGlvbiBmb3IgYSBnaXZlbiBmb3JtYXQK PiA+ID4gPiA+ID4gPiA+ID4gKyAqIEB2NGwyOiBWNEwyIGZvdXJjYyBwaXhlbCBmb3JtYXQgKFY0 TDJfUElYX0ZNVF8qKQo+ID4gPiA+ID4gPiA+ID4gPiArICoKPiA+ID4gPiA+ID4gPiA+ID4gKyAq IFRoZSBjYWxsZXIgc2hvdWxkIG9ubHkgcGFzcyBhIHN1cHBvcnRlZCBwaXhlbCBmb3JtYXQgdG8g dGhpcyBmdW5jdGlvbi4KPiA+ID4gPiA+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiA+ID4gPiA+ICsg KiBSZXR1cm5zOgo+ID4gPiA+ID4gPiA+ID4gPiArICogVGhlIGluc3RhbmNlIG9mIHN0cnVjdCBp bWFnZV9mb3JtYXRfaW5mbyB0aGF0IGRlc2NyaWJlcyB0aGUgcGl4ZWwgZm9ybWF0LCBvcgo+ID4g PiA+ID4gPiA+ID4gPiArICogTlVMTCBpZiB0aGUgZm9ybWF0IGlzIHVuc3VwcG9ydGVkLgo+ID4g PiA+ID4gPiA+ID4gPiArICovCj4gPiA+ID4gPiA+ID4gPiA+ICtjb25zdCBzdHJ1Y3QgaW1hZ2Vf Zm9ybWF0X2luZm8gKl9faW1hZ2VfZm9ybWF0X3Y0bDJfbG9va3VwKHUzMiB2NGwyKQo+ID4gPiA+ ID4gPiA+ID4gPiArewo+ID4gPiA+ID4gPiA+ID4gPiArCXJldHVybiBfX2ltYWdlX2Zvcm1hdF9s b29rdXAodjRsMl9mbXQsIHY0bDIpOwo+ID4gPiA+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiA+ ID4gPiArRVhQT1JUX1NZTUJPTChfX2ltYWdlX2Zvcm1hdF92NGwyX2xvb2t1cCk7Cj4gPiA+ID4g PiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gKy8qKgo+ID4gPiA+ID4gPiA+ID4gPiArICog aW1hZ2VfZm9ybWF0X3Y0bDJfbG9va3VwIC0gcXVlcnkgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4g Zm9ybWF0Cj4gPiA+ID4gPiA+ID4gPiA+ICsgKiBAdjRsMjogVjRMMiBmb3VyY2MgcGl4ZWwgZm9y bWF0IChWNEwyX1BJWF9GTVRfKikKPiA+ID4gPiA+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiA+ID4g PiA+ICsgKiBUaGUgY2FsbGVyIHNob3VsZCBvbmx5IHBhc3MgYSBzdXBwb3J0ZWQgcGl4ZWwgZm9y bWF0IHRvIHRoaXMgZnVuY3Rpb24uCj4gPiA+ID4gPiA+ID4gPiA+ICsgKiBVbnN1cHBvcnRlZCBw aXhlbCBmb3JtYXRzIHdpbGwgZ2VuZXJhdGUgYSB3YXJuaW5nIGluIHRoZSBrZXJuZWwgbG9nLgo+ ID4gPiA+ID4gPiA+ID4gPiArICoKPiA+ID4gPiA+ID4gPiA+ID4gKyAqIFJldHVybnM6Cj4gPiA+ ID4gPiA+ID4gPiA+ICsgKiBUaGUgaW5zdGFuY2Ugb2Ygc3RydWN0IGltYWdlX2Zvcm1hdF9pbmZv IHRoYXQgZGVzY3JpYmVzIHRoZSBwaXhlbCBmb3JtYXQsIG9yCj4gPiA+ID4gPiA+ID4gPiA+ICsg KiBOVUxMIGlmIHRoZSBmb3JtYXQgaXMgdW5zdXBwb3J0ZWQuCj4gPiA+ID4gPiA+ID4gPiA+ICsg Ki8KPiA+ID4gPiA+ID4gPiA+ID4gK2NvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyAqaW1h Z2VfZm9ybWF0X3Y0bDJfbG9va3VwKHUzMiB2NGwyKQo+ID4gPiA+ID4gPiA+ID4gPiArewo+ID4g PiA+ID4gPiA+ID4gPiArCWNvbnN0IHN0cnVjdCBpbWFnZV9mb3JtYXRfaW5mbyAqZm9ybWF0Owo+ ID4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ICsJZm9ybWF0ID0gX19pbWFnZV9m b3JtYXRfdjRsMl9sb29rdXAodjRsMik7Cj4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4g PiA+ID4gKwlXQVJOX09OKCFmb3JtYXQpOwo+ID4gPiA+ID4gPiA+ID4gPiArCXJldHVybiBmb3Jt YXQ7Cj4gPiA+ID4gPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiA+ID4gPiA+ICtFWFBPUlRfU1lNQk9M KGltYWdlX2Zvcm1hdF92NGwyX2xvb2t1cCk7Cj4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ID4gPiA+ID4gKy8qKgo+ID4gPiA+ID4gPiA+ID4gPiAgICogaW1hZ2VfZm9ybWF0X3BsYW5lX2Nw cCAtIGRldGVybWluZSB0aGUgYnl0ZXMgcGVyIHBpeGVsIHZhbHVlCj4gPiA+ID4gPiA+ID4gPiA+ ICAgKiBAZm9ybWF0OiBwb2ludGVyIHRvIHRoZSBpbWFnZV9mb3JtYXQKPiA+ID4gPiA+ID4gPiA+ ID4gICAqIEBwbGFuZTogcGxhbmUgaW5kZXgKPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4g PiA+ID4gPiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+ID4gPiA+ID4gPiA+IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCj4gCj4gCi0tIApQYXVsIEtv Y2lhbGtvd3NraSwgQm9vdGxpbgpFbWJlZGRlZCBMaW51eCBhbmQga2VybmVsIGVuZ2luZWVyaW5n Cmh0dHBzOi8vYm9vdGxpbi5jb20KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbA==