From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 21 Jan 2022 08:21:39 +0100 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nAoEt-008XWe-Eb for lore@lore.pengutronix.de; Fri, 21 Jan 2022 08:21:39 +0100 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1nAoEs-0000AK-N0; Fri, 21 Jan 2022 08:21:38 +0100 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nAoCe-0005or-Mm; Fri, 21 Jan 2022 08:19:20 +0100 Received: from [2a0a:edc0:0:1101:1d::39] (helo=dude03.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1nAoCe-00BW6Y-LU; Fri, 21 Jan 2022 08:19:19 +0100 Received: from mol by dude03.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1nAoCd-008Fsn-31; Fri, 21 Jan 2022 08:19:19 +0100 From: Michael Olbrich To: ptxdist@pengutronix.de Date: Fri, 21 Jan 2022 08:19:19 +0100 Message-Id: <20220121071919.1967634-1-m.olbrich@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211222130304.2549154-18-christian.melki@t2data.com> References: <20211222130304.2549154-18-christian.melki@t2data.com> MIME-Version: 1.0 Subject: Re: [ptxdist] [APPLIED] screen: Version bump 4.5.0 -> 4.8.0 X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Christian Melki Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false VGhhbmtzLCBhcHBsaWVkIGFzIGJlNTdkZmZiMDgxMmJkZGNkMTdhNGEzZTE3OGExNDAxODZjNTU5 YmEuCgpNaWNoYWVsCgpbc2VudCBmcm9tIHBvc3QtcmVjZWl2ZSBob29rXQoKT24gRnJpLCAyMSBK YW4gMjAyMiAwODoxOToxOCArMDEwMCwgQ2hyaXN0aWFuIE1lbGtpIDxjaHJpc3RpYW4ubWVsa2lA dDJkYXRhLmNvbT4gd3JvdGU6Cj4gUGFja2FnZSBtYWludGVuYW5jZS4KPiBGaXhlcyBDVkUtMjAy MS0yNjkzNywgQ1ZFLTIwMjAtOTM2NiwgQ1ZFLTIwMTctNTYxOAo+IAo+IFNpZ25lZC1vZmYtYnk6 IENocmlzdGlhbiBNZWxraSA8Y2hyaXN0aWFuLm1lbGtpQHQyZGF0YS5jb20+Cj4gTWVzc2FnZS1J ZDogPDIwMjExMjIyMTMwMzA0LjI1NDkxNTQtMTgtY2hyaXN0aWFuLm1lbGtpQHQyZGF0YS5jb20+ Cj4gW21vbDogcmVtb3ZlIHVubmVjZXNzYXJ5IHBhdGNoZXMgYW5kIHBhdGNoZXMgZm9yIHRoZSBv bGQgdmVyc2lvbl0KPiBbbW9sOiBpbXBvcnQgcmVsZXZhbnQgZGViaWFuIHBhdGNoZXNdCj4gU2ln bmVkLW9mZi1ieTogTWljaGFlbCBPbGJyaWNoIDxtLm9sYnJpY2hAcGVuZ3V0cm9uaXguZGU+Cj4g Cj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvc2NyZWVuLTQuNS4wLzAwMDEtZG9uLXQtbGluay1hZ2Fp bnN0LWxpYmVsZi5wYXRjaCBiL3BhdGNoZXMvc2NyZWVuLTQuNS4wLzAwMDEtZG9uLXQtbGluay1h Z2FpbnN0LWxpYmVsZi5wYXRjaAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDNj YTQzMTAxZjA5Yy4uMDAwMDAwMDAwMDAwCj4gLS0tIGEvcGF0Y2hlcy9zY3JlZW4tNC41LjAvMDAw MS1kb24tdC1saW5rLWFnYWluc3QtbGliZWxmLnBhdGNoCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0x LDMzICswLDAgQEAKPiAtRnJvbTogTWljaGFlbCBPbGJyaWNoIDxtLm9sYnJpY2hAcGVuZ3V0cm9u aXguZGU+Cj4gLURhdGU6IFN1biwgMjcgTWFyIDIwMTEgMTU6MTk6MTUgKzAyMDAKPiAtU3ViamVj dDogW1BBVENIXSBkb24ndCBsaW5rIGFnYWluc3QgbGliZWxmCj4gLQo+IC1saWJlbGYgaXMgbm90 IHVzZWQuIEl0J3MganVzdCBzb21lIGJyb2tlbiBjb25maWd1cmUgY2hlY2suCj4gLVBhdGNoIGZy b20gZ2VudG9vLgo+IC0KPiAtU2lnbmVkLW9mZi1ieTogTWljaGFlbCBPbGJyaWNoIDxtLm9sYnJp Y2hAcGVuZ3V0cm9uaXguZGU+Cj4gLVtvc3RlcmxhZDogVXBkYXRlIGxvY2F0aW9ucyBmb3IgdmVy c2lvbiA0LjUuMF0KPiAtU2lnbmVkLW9mZi1ieTogRGVuaXMgT3N0ZXJsYW5kIDxEZW5pcy5Pc3Rl cmxhbmRAZGllaGwuY29tPgo+IC0tLS0KPiAtIGNvbmZpZ3VyZS5hYyB8IDggLS0tLS0tLS0KPiAt IDEgZmlsZSBjaGFuZ2VkLCA4IGRlbGV0aW9ucygtKQo+IC0KPiAtZGlmZiAtLWdpdCBhL2NvbmZp Z3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwo+IC1pbmRleCBmZmUyZTM3MjQyNmMuLmQ4OGFmNzVhZjY2 NSAxMDA2NDQKPiAtLS0tIGEvY29uZmlndXJlLmFjCj4gLSsrKyBiL2NvbmZpZ3VyZS5hYwo+IC1A QCAtMjAyLDE0ICsyMDIsNiBAQCBBQ19FR1JFUF9DUFAoeWVzLAo+IC0gI2VuZGlmCj4gLSBdLCBM SUJTPSIkTElCUyAtbHNvY2tldCAtbGluZXQiO3NlcXB0eD0xKQo+IC0gCj4gLS1vbGRsaWJzPSIk TElCUyIKPiAtLUxJQlM9IiRMSUJTIC1sZWxmIgo+IC0tQUNfQ0hFQ0tJTkcoU1ZSNCkKPiAtLUFD X1RSWV9MSU5LKFsjaW5jbHVkZSA8dXRtcHguaD4KPiAtLV0sLAo+IC0tW0FDX0NIRUNLX0hFQURF Uihkd2FyZi5oLCBBQ19ERUZJTkUoU1ZSNCkgQUNfREVGSU5FKEJVR0dZR0VUTE9HSU4pLAo+IC0t W0FDX0NIRUNLX0hFQURFUihlbGYuaCwgQUNfREVGSU5FKFNWUjQpIEFDX0RFRklORShCVUdHWUdF VExPR0lOKSldKV0KPiAtLSxMSUJTPSIkb2xkbGlicyIpCj4gLSBBQ19DSEVDS19IRUFERVJTKFtz dHJvcHRzLmggc3RyaW5nLmggc3RyaW5ncy5oXSkKPiAtIAo+IC0gQUNfQ0hFQ0tJTkcoZm9yIFNv bGFyaXMgMi54KQo+IGRpZmYgLS1naXQgYS9wYXRjaGVzL3NjcmVlbi00LjUuMC8wMDAyLXJlbW92 ZS1jb25maWd1cmUtQUNfVFJZX1JVTi10ZXN0cy5wYXRjaCBiL3BhdGNoZXMvc2NyZWVuLTQuNS4w LzAwMDItcmVtb3ZlLWNvbmZpZ3VyZS1BQ19UUllfUlVOLXRlc3RzLnBhdGNoCj4gZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggNGVmYmRlMTFmMGZmLi4wMDAwMDAwMDAwMDAKPiAtLS0g YS9wYXRjaGVzL3NjcmVlbi00LjUuMC8wMDAyLXJlbW92ZS1jb25maWd1cmUtQUNfVFJZX1JVTi10 ZXN0cy5wYXRjaAo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSw3MjcgKzAsMCBAQAo+IC1Gcm9tOiBN aWNoYWVsIE9sYnJpY2ggPG0ub2xicmljaEBwZW5ndXRyb25peC5kZT4KPiAtRGF0ZTogU3VuLCAy NyBNYXIgMjAxMSAxNToyMjowMiArMDIwMAo+IC1TdWJqZWN0OiBbUEFUQ0hdIHJlbW92ZSBjb25m aWd1cmUgQUNfVFJZX1JVTiB0ZXN0cwo+IC0KPiAtQUNfVFJZX1JVTiBmYWlscyB3aGVuIGNyb3Nz LWNvbXBpbGluZy4KPiAtCj4gLU5vdCBmb3IgdXBzdHJlYW0uCj4gLQo+IC1TaWduZWQtb2ZmLWJ5 OiBNaWNoYWVsIE9sYnJpY2ggPG0ub2xicmljaEBwZW5ndXRyb25peC5kZT4KPiAtW29zdGVybGFk OiBVcGRhdGUgbG9jYXRpb25zIGZvciB2ZXJzaW9uIDQuNS4wXQo+IC1TaWduZWQtb2ZmLWJ5OiBE ZW5pcyBPc3RlcmxhbmQgPERlbmlzLk9zdGVybGFuZEBkaWVobC5jb20+Cj4gLS0tLQo+IC0gY29u ZmlndXJlLmFjIHwgNjUxICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gLSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA2 NDIgZGVsZXRpb25zKC0pCj4gLQo+IC1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmln dXJlLmFjCj4gLWluZGV4IGQ4OGFmNzVhZjY2NS4uMTU1YjM0YzdlY2NlIDEwMDY0NAo+IC0tLS0g YS9jb25maWd1cmUuYWMKPiAtKysrIGIvY29uZmlndXJlLmFjCj4gLUBAIC00OCwzMSArNDgsNiBA QCBBQ19QUk9HX0dDQ19UUkFESVRJT05BTAo+IC0gQUNfSVNDX1BPU0lYCj4gLSBBQ19VU0VfU1lT VEVNX0VYVEVOU0lPTlMKPiAtIAo+IC0tQUNfVFJZX1JVTihtYWluKCl7ZXhpdCgwKTt9LCxbCj4g LS1pZiB0ZXN0ICRDQyAhPSBjYyA7IHRoZW4KPiAtLUFDX05PVEUoWW91ciAkQ0MgZmFpbGVkIC0g cmVzdGFydGluZyB3aXRoIENDPWNjKQo+IC0tQUNfTk9URSgpCj4gLS1DQz1jYwo+IC0tZXhwb3J0 IENDCj4gLS1leGVjICQwICRjb25maWd1cmVfYXJncwo+IC0tZmkKPiAtLV0pCj4gLS0KPiAtLUFD X1RSWV9SVU4obWFpbigpe2V4aXQoMCk7fSwsCj4gLS1leGVjIDU+JjIKPiAtLWV2YWwgJGFjX2xp bmsKPiAtLUFDX05PVEUoQ0M9JENDOyBDRkxBR1M9JENGTEFHUzsgTElCUz0kTElCUzspCj4gLS1B Q19OT1RFKCRhY19jb21waWxlKQo+IC0tQUNfTVNHX0VSUk9SKENhbid0IHJ1biB0aGUgY29tcGls ZXIgLSBzb3JyeSkpCj4gLS0KPiAtLUFDX1RSWV9SVU4oWwo+IC0tbWFpbigpCj4gLS17Cj4gLS0g IGludCBfX3NvbWV0aGluZ19zdHJhbmdlXygpOwo+IC0tICBfX3NvbWV0aGluZ19zdHJhbmdlXygw KTsKPiAtLX0KPiAtLV0sQUNfTVNHX0VSUk9SKFlvdXIgY29tcGlsZXIgZG9lcyBub3Qgc2V0IHRo ZSBleGl0IHN0YXR1cyAtIHNvcnJ5KSkKPiAtLQo+IC0gQUNfUFJPR19BV0sKPiAtIAo+IC0gQUNf UFJPR19JTlNUQUxMCj4gLUBAIC0yOTUsMzUzICsyNzAsNiBAQCBBQ19DSEVDS0lORyhzZWxlY3Qg d2l0aCAkTElCUykKPiAtIEFDX1RSWV9MSU5LKCxbc2VsZWN0KDAsIDAsIDAsIDAsIDApO10sLCAK PiAtIEFDX01TR19FUlJPUighISEgbm8gc2VsZWN0IC0gbm8gc2NyZWVuKSkKPiAtICkKPiAtLWRu bAo+IC0tZG5sICAgICoqKiogIEZJRk8gdGVzdHMgICoqKioKPiAtLWRubAo+IC0tCj4gLS1BQ19D SEVDS0lORyhmaWZvcykKPiAtLUFDX1RSWV9SVU4oWwo+IC0tLyogRm9yIHNlbGVjdCAtIEFjY29y ZGluZyB0byBQT1NJWCAxMDAzLjEtMjAwMSAqLwo+IC0tI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4K PiAtLQo+IC0tLyogRm9yIHNlbGVjdCAtIEFjY29yZGluZyB0byBlYXJsaWVyIHN0YW5kYXJkcyAq Lwo+IC0tI2luY2x1ZGUgPHN5cy90aW1lLmg+Cj4gLS0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cj4g LS0jaW5jbHVkZSA8dW5pc3RkLmg+Cj4gLS0KPiAtLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgo+IC0t I2luY2x1ZGUgPGZjbnRsLmg+Cj4gLS0KPiAtLSNpZm5kZWYgT19OT05CTE9DSwo+IC0tI2RlZmlu ZSBPX05PTkJMT0NLIE9fTkRFTEFZCj4gLS0jZW5kaWYKPiAtLSNpZm5kZWYgU19JRklGTwo+IC0t I2RlZmluZSBTX0lGSUZPIDAwMTAwMDAKPiAtLSNlbmRpZgo+IC0tCj4gLS1jaGFyICpmaW4gPSAi L3RtcC9jb25mdGVzdCQkIjsKPiAtLQo+IC0tbWFpbigpCj4gLS17Cj4gLS0gIHN0cnVjdCBzdGF0 IHN0YjsKPiAtLSAgZmRfc2V0IGY7Cj4gLS0KPiAtLSAgKHZvaWQpYWxhcm0oNSk7Cj4gLS0gIHVu bGluayhmaW4pOwo+IC0tI2lmZGVmIFBPU0lYCj4gLS0gIGlmIChta2ZpZm8oZmluLCAwNzc3KSkK PiAtLSNlbHNlCj4gLS0gIGlmIChta25vZChmaW4sIFNfSUZJRk98MDc3NywgMCkpCj4gLS0jZW5k aWYKPiAtLSAgICBleGl0KDEpOwo+IC0tICBpZiAoc3RhdChmaW4sICZzdGIpIHx8IChzdGIuc3Rf bW9kZSAmIFNfSUZJRk8pICE9IFNfSUZJRk8pCj4gLS0gICAgZXhpdCgxKTsKPiAtLSAgY2xvc2Uo MCk7Cj4gLS0jaWZkZWYgX18zODZCU0RfXwo+IC0tICAvKgo+IC0tICAgKiBUaGUgbmV4dCB0ZXN0 IGZhaWxzIHVuZGVyIDM4NkJTRCwgYnV0IHNjcmVlbiB3b3JrcyB1c2luZyBmaWZvcy4KPiAtLSAg ICogRmlmb3MgaW4gT19SRFdSIG1vZGUgYXJlIG9ubHkgdXNlZCBmb3IgdGhlIEJST0tFTl9QSVBF IGNhc2UgYW5kIGZvcgo+IC0tICAgKiB0aGUgc2VsZWN0KCkgY29uZmlndXJhdGlvbiB0ZXN0Lgo+ IC0tICAgKi8KPiAtLSAgZXhpdCgwKTsKPiAtLSNlbmRpZgo+IC0tICBpZiAob3BlbihmaW4sIE9f UkRPTkxZIHwgT19OT05CTE9DSykpCj4gLS0gICAgZXhpdCgxKTsKPiAtLSAgaWYgKGZvcmsoKSA9 PSAwKQo+IC0tICAgIHsKPiAtLSAgICAgIGNsb3NlKDApOwo+IC0tICAgICAgaWYgKG9wZW4oZmlu LCBPX1dST05MWSB8IE9fTk9OQkxPQ0spKQo+IC0tCWV4aXQoMSk7Cj4gLS0gICAgICBjbG9zZSgw KTsKPiAtLSAgICAgIGlmIChvcGVuKGZpbiwgT19XUk9OTFkgfCBPX05PTkJMT0NLKSkKPiAtLQll eGl0KDEpOwo+IC0tICAgICAgaWYgKHdyaXRlKDAsICJURVNUIiwgNCkgPT0gLTEpCj4gLS0JZXhp dCgxKTsKPiAtLSAgICAgIGV4aXQoMCk7Cj4gLS0gICAgfQo+IC0tICBGRF9TRVQoMCwgJmYpOwo+ IC0tICBpZiAoc2VsZWN0KDEsICZmLCAwLCAwLCAwKSA9PSAtMSkKPiAtLSAgICBleGl0KDEpOwo+ IC0tICBleGl0KDApOwo+IC0tfQo+IC0tXSwgQUNfTk9URSgtIHlvdXIgZmlmb3MgYXJlIHVzYWJs ZSkgZmlmbz0xLAo+IC0tQUNfTk9URSgtIHlvdXIgZmlmb3MgYXJlIG5vdCB1c2FibGUpKQo+IC0t cm0gLWYgL3RtcC9jb25mdGVzdCoKPiAtLQo+IC0taWYgdGVzdCAtbiAiJGZpZm8iOyB0aGVuCj4g LS1BQ19DSEVDS0lORyhmb3IgYnJva2VuIGZpZm8gaW1wbGVtZW50YXRpb24pCj4gLS1BQ19UUllf UlVOKFsKPiAtLS8qIEZvciBzZWxlY3QgLSBBY2NvcmRpbmcgdG8gUE9TSVggMTAwMy4xLTIwMDEg Ki8KPiAtLSNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+Cj4gLS0KPiAtLS8qIEZvciBzZWxlY3QgLSBB Y2NvcmRpbmcgdG8gZWFybGllciBzdGFuZGFyZHMgKi8KPiAtLSNpbmNsdWRlIDxzeXMvdGltZS5o Pgo+IC0tI2luY2x1ZGUgPHN5cy90eXBlcy5oPgo+IC0tI2luY2x1ZGUgPHVuaXN0ZC5oPgo+IC0t Cj4gLS0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KPiAtLSNpbmNsdWRlIDxmY250bC5oPgo+IC0tCj4g LS0jaWZuZGVmIE9fTk9OQkxPQ0sKPiAtLSNkZWZpbmUgT19OT05CTE9DSyBPX05ERUxBWQo+IC0t I2VuZGlmCj4gLS0jaWZuZGVmIFNfSUZJRk8KPiAtLSNkZWZpbmUgU19JRklGTyAwMDEwMDAwCj4g LS0jZW5kaWYKPiAtLQo+IC0tY2hhciAqZmluID0gIi90bXAvY29uZnRlc3QkJCI7Cj4gLS0KPiAt LW1haW4oKQo+IC0tewo+IC0tICBzdHJ1Y3QgdGltZXZhbCB0djsKPiAtLSAgZmRfc2V0IGY7Cj4g LS0KPiAtLSNpZmRlZiBQT1NJWAo+IC0tICBpZiAobWtmaWZvKGZpbiwgMDYwMCkpCj4gLS0jZWxz ZQo+IC0tICBpZiAobWtub2QoZmluLCBTX0lGSUZPfDA2MDAsIDApKQo+IC0tI2VuZGlmCj4gLS0g ICAgZXhpdCgxKTsKPiAtLSAgY2xvc2UoMCk7Cj4gLS0gIGlmIChvcGVuKGZpbiwgT19SRE9OTFl8 T19OT05CTE9DSykpCj4gLS0gICAgZXhpdCgxKTsKPiAtLSAgRkRfU0VUKDAsICZmKTsKPiAtLSAg dHYudHZfc2VjID0gMTsKPiAtLSAgdHYudHZfdXNlYyA9IDA7Cj4gLS0gIGlmIChzZWxlY3QoMSwg JmYsIDAsIDAsICZ0dikpCj4gLS0gICAgZXhpdCgxKTsKPiAtLSAgZXhpdCgwKTsKPiAtLX0KPiAt LV0sIEFDX05PVEUoLSB5b3VyIGltcGxlbWVudGF0aW9uIGlzIG9rKSwgCj4gLS1BQ19OT1RFKC0g eW91IGhhdmUgYSBicm9rZW4gaW1wbGVtZW50YXRpb24pIEFDX0RFRklORShCUk9LRU5fUElQRSkg Zmlmb2JyPTEpCj4gLS1ybSAtZiAvdG1wL2NvbmZ0ZXN0Kgo+IC0tZmkKPiAtLQo+IC0tZG5sCj4g LS1kbmwgICAgKioqKiAgU09DS0VUIHRlc3RzICAqKioqCj4gLS1kbmwgCj4gLS1kbmwgCW1heSBu ZWVkICAJTElCUz0iJExJQlMgLWxzb2NrZXQiIAloZXJlCj4gLS1kbmwKPiAtLQo+IC0tQUNfQ0hF Q0tJTkcoc29ja2V0cykKPiAtLUFDX1RSWV9SVU4oWwo+IC0tLyogRm9yIHNlbGVjdCAtIEFjY29y ZGluZyB0byBQT1NJWCAxMDAzLjEtMjAwMSAqLwo+IC0tI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4K PiAtLQo+IC0tLyogRm9yIHNlbGVjdCAtIEFjY29yZGluZyB0byBlYXJsaWVyIHN0YW5kYXJkcyAq Lwo+IC0tI2luY2x1ZGUgPHN5cy90aW1lLmg+Cj4gLS0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cj4g LS0jaW5jbHVkZSA8dW5pc3RkLmg+Cj4gLS0KPiAtLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgo+IC0t I2luY2x1ZGUgPGZjbnRsLmg+Cj4gLS0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgo+IC0tI2luY2x1 ZGUgPHN5cy91bi5oPgo+IC0tCj4gLS1jaGFyICpzb24gPSAiL3RtcC9jb25mdGVzdCQkIjsKPiAt LQo+IC0tbWFpbigpCj4gLS17Cj4gLS0gIGludCBzMSwgczIsIGw7Cj4gLS0gIHN0cnVjdCBzb2Nr YWRkcl91biBhOwo+IC0tICBmZF9zZXQgZjsKPiAtLQo+IC0tICAodm9pZClhbGFybSg1KTsKPiAt LSAgaWYgKChzMSA9IHNvY2tldChBRl9VTklYLCBTT0NLX1NUUkVBTSwgMCkpID09IC0xKQo+IC0t ICAgIGV4aXQoMSk7Cj4gLS0gIGEuc3VuX2ZhbWlseSA9IEFGX1VOSVg7Cj4gLS0gIHN0cmNweShh LnN1bl9wYXRoLCBzb24pOwo+IC0tICAodm9pZCkgdW5saW5rKHNvbik7Cj4gLS0gIGlmIChiaW5k KHMxLCAoc3RydWN0IHNvY2thZGRyICopICZhLCBzdHJsZW4oc29uKSsyKSA9PSAtMSkKPiAtLSAg ICBleGl0KDEpOwo+IC0tICBpZiAobGlzdGVuKHMxLCAyKSkKPiAtLSAgICBleGl0KDEpOwo+IC0t ICBpZiAoZm9yaygpID09IDApCj4gLS0gICAgewo+IC0tICAgICAgaWYgKChzMiA9IHNvY2tldChB Rl9VTklYLCBTT0NLX1NUUkVBTSwgMCkpID09IC0xKQo+IC0tCWtpbGwoZ2V0cHBpZCgpLCAzKTsK PiAtLSAgICAgICh2b2lkKWNvbm5lY3QoczIsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYSwgc3RybGVu KHNvbikgKyAyKTsKPiAtLSAgICAgIGlmICh3cml0ZShzMiwgIkhFTExPIiwgNSkgPT0gLTEpCj4g LS0Ja2lsbChnZXRwcGlkKCksIDMpOwo+IC0tICAgICAgZXhpdCgwKTsKPiAtLSAgICB9Cj4gLS0g IGwgPSBzaXplb2YoYSk7Cj4gLS0gIGNsb3NlKDApOwo+IC0tICBpZiAoYWNjZXB0KHMxLCAmYSwg JmwpKQo+IC0tICAgIGV4aXQoMSk7Cj4gLS0gIEZEX1NFVCgwLCAmZik7Cj4gLS0gIGlmIChzZWxl Y3QoMSwgJmYsIDAsIDAsIDApID09IC0xKQo+IC0tICAgIGV4aXQoMSk7Cj4gLS0gIGV4aXQoMCk7 Cj4gLS19Cj4gLS1dLCBBQ19OT1RFKC0geW91ciBzb2NrZXRzIGFyZSB1c2FibGUpIHNvY2s9MSwK PiAtLUFDX05PVEUoLSB5b3VyIHNvY2tldHMgYXJlIG5vdCB1c2FibGUpKQo+IC0tcm0gLWYgL3Rt cC9jb25mdGVzdCoKPiAtLQo+IC0taWYgdGVzdCAtbiAiJHNvY2siOyB0aGVuCj4gLS1BQ19DSEVD S0lORyhzb2NrZXQgaW1wbGVtZW50YXRpb24pCj4gLS1BQ19UUllfUlVOKFsKPiAtLS8qIEZvciBz ZWxlY3QgLSBBY2NvcmRpbmcgdG8gUE9TSVggMTAwMy4xLTIwMDEgKi8KPiAtLSNpbmNsdWRlIDxz eXMvc2VsZWN0Lmg+Cj4gLS0KPiAtLS8qIEZvciBzZWxlY3QgLSBBY2NvcmRpbmcgdG8gZWFybGll ciBzdGFuZGFyZHMgKi8KPiAtLSNpbmNsdWRlIDxzeXMvdGltZS5oPgo+IC0tI2luY2x1ZGUgPHN5 cy90eXBlcy5oPgo+IC0tI2luY2x1ZGUgPHVuaXN0ZC5oPgo+IC0tCj4gLS0jaW5jbHVkZSA8c3lz L3N0YXQuaD4KPiAtLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Cj4gLS0jaW5jbHVkZSA8c3lzL3Vu Lmg+Cj4gLS0KPiAtLWNoYXIgKnNvbiA9ICIvdG1wL2NvbmZ0ZXN0JCQiOwo+IC0tCj4gLS1tYWlu KCkKPiAtLXsKPiAtLSAgaW50IHM7Cj4gLS0gIHN0cnVjdCBzdGF0IHN0YjsKPiAtLSAgc3RydWN0 IHNvY2thZGRyX3VuIGE7Cj4gLS0gIGlmICgocyA9IHNvY2tldChBRl9VTklYLCBTT0NLX1NUUkVB TSwgMCkpID09IC0xKQo+IC0tICAgIGV4aXQoMCk7Cj4gLS0gIGEuc3VuX2ZhbWlseSA9IEFGX1VO SVg7Cj4gLS0gIHN0cmNweShhLnN1bl9wYXRoLCBzb24pOwo+IC0tICAodm9pZCkgdW5saW5rKHNv bik7Cj4gLS0gIGlmIChiaW5kKHMsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmEsIHN0cmxlbihzb24p KzIpID09IC0xKQo+IC0tICAgIGV4aXQoMCk7Cj4gLS0gIGlmIChzdGF0KHNvbiwgJnN0YikpCj4g LS0gICAgZXhpdCgxKTsKPiAtLSAgY2xvc2Uocyk7Cj4gLS0gIGV4aXQoMCk7Cj4gLS19Cj4gLS1d LEFDX05PVEUoLSB5b3UgYXJlIG5vcm1hbCksCj4gLS1BQ19OT1RFKC0gdW5peCBkb21haW4gc29j a2V0cyBhcmUgbm90IGtlcHQgaW4gdGhlIGZpbGVzeXN0ZW0pCj4gLS1BQ19ERUZJTkUoU09DS19O T1RfSU5fRlMpIHNvY2tub2ZzPTEpCj4gLS1ybSAtZiAvdG1wL2NvbmZ0ZXN0Kgo+IC0tZmkKPiAt LQo+IC0tCj4gLS1kbmwKPiAtLWRubCAgICAqKioqICBjaG9vc2Ugc29ja2V0cyBvciBmaWZvcyAg KioqKgo+IC0tZG5sCj4gLS1pZiB0ZXN0IC1uICIkZmlmbyI7IHRoZW4KPiAtLSAgaWYgdGVzdCAt biAiJHNvY2siOyB0aGVuCj4gLS0gICAgaWYgdGVzdCAtbiAiJG5vcmUiOyB0aGVuCj4gLS0gICAg ICBBQ19OT1RFKC0gaG1tbS4uLiBiZXR0ZXIgdGFrZSB0aGUgZmlmb3MpCj4gLS0gICAgICBBQ19E RUZJTkUoTkFNRURQSVBFKQo+IC0tICAgIGVsaWYgdGVzdCAtbiAiJGZpZm9iciI7IHRoZW4KPiAt LSAgICAgIEFDX05PVEUoLSBhcyB5b3VyIGZpZm9zIGFyZSBicm9rZW4gbGV0cyB1c2UgdGhlIHNv Y2tldHMuKQo+IC0tICAgIGVsc2UKPiAtLSAgICAgIEFDX05PVEUoLSBib3RoIHNvY2tldHMgYW5k IGZpZm9zIHVzYWJsZS4gbGV0J3MgdGFrZSBzb2NrZXRzLikKPiAtLSAgICBmaQo+IC0tICBlbHNl Cj4gLS0gICAgQUNfTk9URSgtIHVzaW5nIG5hbWVkIHBpcGVzLCBvZiBjb3Vyc2UpCj4gLS0gICAg QUNfREVGSU5FKE5BTUVEUElQRSkKPiAtLSAgZmkKPiAtLWVsaWYgdGVzdCAtbiAiJHNvY2siOyB0 aGVuCj4gLS0gIEFDX05PVEUoLSB1c2luZyB1bml4LWRvbWFpbiBzb2NrZXRzLCBvZiBjb3Vyc2Up Cj4gLS1lbHNlCj4gLS0gIEFDX01TR19FUlJPUih5b3UgaGF2ZSBuZWl0aGVyIHVzYWJsZSBzb2Nr ZXRzIG5vciB1c2FibGUgcGlwZXMgLT4gbm8gc2NyZWVuKQo+IC0tZmkKPiAtLQo+IC0tZG5sCj4g LS1kbmwgICAgKioqKiAgY2hlY2sgdGhlIHNlbGVjdCBpbXBsZW1lbnRhdGlvbiAqKioqCj4gLS1k bmwKPiAtLQo+IC0tQUNfQ0hFQ0tJTkcoc2VsZWN0IHJldHVybiB2YWx1ZSkKPiAtLUFDX1RSWV9S VU4oWwo+IC0tLyogRm9yIHNlbGVjdCAtIEFjY29yZGluZyB0byBQT1NJWCAxMDAzLjEtMjAwMSAq Lwo+IC0tI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KPiAtLQo+IC0tLyogRm9yIHNlbGVjdCAtIEFj Y29yZGluZyB0byBlYXJsaWVyIHN0YW5kYXJkcyAqLwo+IC0tI2luY2x1ZGUgPHN5cy90aW1lLmg+ Cj4gLS0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cj4gLS0jaW5jbHVkZSA8dW5pc3RkLmg+Cj4gLS0K PiAtLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgo+IC0tI2luY2x1ZGUgPGZjbnRsLmg+Cj4gLS0KPiAt LWNoYXIgKm5hbSA9ICIvdG1wL2NvbmZ0ZXN0JCQiOwo+IC0tCj4gLS0jaWZkZWYgTkFNRURQSVBF Cj4gLS0KPiAtLSNpZm5kZWYgT19OT05CTE9DSwo+IC0tI2RlZmluZSBPX05PTkJMT0NLIE9fTkRF TEFZCj4gLS0jZW5kaWYKPiAtLSNpZm5kZWYgU19JRklGTwo+IC0tI2RlZmluZSBTX0lGSUZPIDAw MTAwMDAKPiAtLSNlbmRpZgo+IC0tCj4gLS0KPiAtLW1haW4oKQo+IC0tewo+IC0tICBmZF9zZXQg ZjsKPiAtLQo+IC0tI2lmZGVmIF9fRnJlZUJTRF9fCj4gLS0vKiBGcm9tIEFuZHJldyBBLiBDaGVy bm92IChhY2hlQGFzdHJhbC5tc2suc3UpOgo+IC0tICogb3BlbmluZyBSRFdSIGZpZm8gZmFpbHMg aW4gQlNEIDQuNCwgYnV0IHNlbGVjdCByZXR1cm4gdmFsdWVzIGFyZQo+IC0tICogcmlnaHQuCj4g LS0gKi8KPiAtLSAgZXhpdCgwKTsKPiAtLSNlbmRpZgo+IC0tICAodm9pZClhbGFybSg1KTsKPiAt LSNpZmRlZiBQT1NJWAo+IC0tICBpZiAobWtmaWZvKG5hbSwgMDc3NykpCj4gLS0jZWxzZQo+IC0t ICBpZiAobWtub2QobmFtLCBTX0lGSUZPfDA3NzcsIDApKQo+IC0tI2VuZGlmCj4gLS0gICAgZXhp dCgxKTsKPiAtLSAgY2xvc2UoMCk7Cj4gLS0gIGlmIChvcGVuKG5hbSwgT19SRFdSIHwgT19OT05C TE9DSykpCj4gLS0gICAgZXhpdCgxKTsKPiAtLSAgaWYgKHdyaXRlKDAsICJURVNUIiwgNCkgPT0g LTEpCj4gLS0gICAgZXhpdCgxKTsKPiAtLQo+IC0tI2Vsc2UKPiAtLQo+IC0tI2luY2x1ZGUgPHN5 cy90eXBlcy5oPgo+IC0tI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KPiAtLSNpbmNsdWRlIDxzeXMv dW4uaD4KPiAtLQo+IC0tbWFpbigpCj4gLS17Cj4gLS0gIGludCBzMSwgczIsIGw7Cj4gLS0gIHN0 cnVjdCBzb2NrYWRkcl91biBhOwo+IC0tICBmZF9zZXQgZjsKPiAtLQo+IC0tICAodm9pZClhbGFy bSg1KTsKPiAtLSAgaWYgKChzMSA9IHNvY2tldChBRl9VTklYLCBTT0NLX1NUUkVBTSwgMCkpID09 IC0xKQo+IC0tICAgIGV4aXQoMSk7Cj4gLS0gIGEuc3VuX2ZhbWlseSA9IEFGX1VOSVg7Cj4gLS0g IHN0cmNweShhLnN1bl9wYXRoLCBuYW0pOwo+IC0tICAodm9pZCkgdW5saW5rKG5hbSk7Cj4gLS0g IGlmIChiaW5kKHMxLCAoc3RydWN0IHNvY2thZGRyICopICZhLCBzdHJsZW4obmFtKSsyKSA9PSAt MSkKPiAtLSAgICBleGl0KDEpOwo+IC0tICBpZiAobGlzdGVuKHMxLCAyKSkKPiAtLSAgICBleGl0 KDEpOwo+IC0tICBpZiAoZm9yaygpID09IDApCj4gLS0gICAgewo+IC0tICAgICAgaWYgKChzMiA9 IHNvY2tldChBRl9VTklYLCBTT0NLX1NUUkVBTSwgMCkpID09IC0xKQo+IC0tCWtpbGwoZ2V0cHBp ZCgpLCAzKTsKPiAtLSAgICAgICh2b2lkKWNvbm5lY3QoczIsIChzdHJ1Y3Qgc29ja2FkZHIgKikm YSwgc3RybGVuKG5hbSkgKyAyKTsKPiAtLSAgICAgIGlmICh3cml0ZShzMiwgIkhFTExPIiwgNSkg PT0gLTEpCj4gLS0Ja2lsbChnZXRwcGlkKCksIDMpOwo+IC0tICAgICAgZXhpdCgwKTsKPiAtLSAg ICB9Cj4gLS0gIGwgPSBzaXplb2YoYSk7Cj4gLS0gIGNsb3NlKDApOwo+IC0tICBpZiAoYWNjZXB0 KHMxLCAoc3RydWN0IHNvY2thZGRyICopJmEsICZsKSkKPiAtLSAgICBleGl0KDEpOwo+IC0tI2Vu ZGlmCj4gLS0KPiAtLQo+IC0tICBGRF9TRVQoMCwgJmYpOwo+IC0tICBpZiAoc2VsZWN0KDEsICZm LCAwLCAwLCAwKSA9PSAtMSkKPiAtLSAgICBleGl0KDEpOwo+IC0tICBpZiAoc2VsZWN0KDEsICZm LCAmZiwgMCwgMCkgIT0gMikKPiAtLSAgICBleGl0KDEpOwo+IC0tICBleGl0KDApOwo+IC0tfQo+ IC0tXSxBQ19OT1RFKC0gc2VsZWN0IGlzIG9rKSwKPiAtLUFDX05PVEUoLSBzZWxlY3QgY2FuJ3Qg Y291bnQpIEFDX0RFRklORShTRUxFQ1RfQlJPS0VOKSkKPiAtIAo+IC0gZG5sCj4gLSBkbmwgICAg KioqKiAgdGVybWNhcCBvciB0ZXJtaW5mbyAgKioqKgo+IC1AQCAtNjc4LDEyICszMDYsOCBAQCBB Q19DSEVDS0lORyhsaWJ0aW5mbykKPiAtIEFDX1RSWV9MSU5LKCx0Z2V0ZW50KChjaGFyICopMCwg KGNoYXIgKikwKTssLAo+IC0gQUNfTVNHX0VSUk9SKCEhISBubyB0Z2V0ZW50IC0gbm8gc2NyZWVu KSkpKSkpKSkpCj4gLSAKPiAtLUFDX1RSWV9SVU4oWwo+IC0tbWFpbigpCj4gLS17Cj4gLS0gZXhp dChzdHJjbXAodGdvdG8oIiVwMSVkIiwgMCwgMSksICIxIikgPyAwIDogMSk7Cj4gLS19XSwgQUNf Tk9URSgtIHlvdSB1c2UgdGhlIHRlcm1jYXAgZGF0YWJhc2UpLAo+IC0tQUNfTk9URSgtIHlvdSB1 c2UgdGhlIHRlcm1pbmZvIGRhdGFiYXNlKSBBQ19ERUZJTkUoVEVSTUlORk8pKQo+IC0rQUNfREVG SU5FKFRFUk1JTkZPKSkKPiAtKwo+IC0gQUNfQ0hFQ0tJTkcob3NwZWVkKQo+IC0gQUNfVFJZX0xJ TksoZXh0ZXJuIHNob3J0IG9zcGVlZDssb3NwZWVkPTU7LCxBQ19ERUZJTkUoTkVFRF9PU1BFRUQp KQo+IC0gCj4gLUBAIC03MzQsOTUgKzM1OCw2IEBAIEFDX0RFRklORV9VTlFVT1RFRChQVFlSQU5H RTAsIiRwMCIpCj4gLSBBQ19ERUZJTkVfVU5RVU9URUQoUFRZUkFOR0UxLCIkcDEiKQo+IC0gZmkK PiAtIAo+IC0tZG5sICAgICoqKiogIHB0eSBtb2RlL2dyb3VwIGhhbmRsaW5nICoqKioKPiAtLWRu bAo+IC0tZG5sIHN1cHBvcnQgcHJvdmlkZWQgYnkgTHVrZSBNZXdidXJuIDxsbUBybWl0LmVkdS5h dT4sIDkzMTIyMgo+IC0tQUNfQVJHX1dJVEgocHR5LW1vZGUsIFsgIC0td2l0aC1wdHktbW9kZT1t b2RlICAgIGRlZmF1bHQgbW9kZSBmb3IgcHR5c10sIFsgcHR5bW9kZT0iJHt3aXRodmFsfSIgXSkK PiAtLUFDX0FSR19XSVRIKHB0eS1ncm91cCwgWyAgLS13aXRoLXB0eS1ncm91cD1ncm91cCAgZGVm YXVsdCBncm91cCBmb3IgcHR5c10sIFsgcHR5Z3JwPSIke3dpdGh2YWx9IiBdKQo+IC0tdGVzdCAt biAiJHB0eW1vZGUiIHx8IHB0eW1vZGU9MDYyMAo+IC0taWYgdGVzdCAtbiAiJHB0eWdycCIgOyB0 aGVuCj4gLS1BQ19ERUZJTkVfVU5RVU9URUQoUFRZTU9ERSwgJHB0eW1vZGUpCj4gLS1BQ19ERUZJ TkVfVU5RVU9URUQoUFRZR1JPVVAsJHB0eWdycCkKPiAtLWVsc2UKPiAtLQo+IC0tQUNfQ0hFQ0tJ TkcoZGVmYXVsdCB0dHkgcGVybWlzc2lvbnMvZ3JvdXApCj4gLS1ybSAtZiBjb25mdGVzdF9ncnAK PiAtLUFDX1RSWV9SVU4oWwo+IC0tI2luY2x1ZGUgPHN5cy90eXBlcy5oPgo+IC0tI2luY2x1ZGUg PHN5cy9zdGF0Lmg+Cj4gLS0jaW5jbHVkZSA8c3RkaW8uaD4KPiAtLW1haW4oKQo+IC0tewo+IC0t ICBzdHJ1Y3Qgc3RhdCBzYjsKPiAtLSAgY2hhciAqeCwqdHR5bmFtZSgpOwo+IC0tICBpbnQgb20s IG07Cj4gLS0gIEZJTEUgKmZwOwo+IC0tCj4gLS0gIGlmICghKHggPSB0dHluYW1lKDApKSkgZXhp dCgxKTsKPiAtLSAgaWYgKHN0YXQoeCwgJnNiKSkgZXhpdCgxKTsKPiAtLSAgb20gPSBzYi5zdF9t b2RlOwo+IC0tICBpZiAob20gJiAwMDIpIGV4aXQoMCk7Cj4gLS0gIG0gPSBzeXN0ZW0oIm1lc2cg eSIpOwo+IC0tICBpZiAobSA9PSAtMSB8fCBtID09IDEyNykgZXhpdCgxKTsKPiAtLSAgaWYgKHN0 YXQoeCwgJnNiKSkgZXhpdCgxKTsKPiAtLSAgbSA9IHNiLnN0X21vZGU7Cj4gLS0gIGlmIChjaG1v ZCh4LCBvbSkpIGV4aXQoMSk7Cj4gLS0gIGlmIChtICYgMDAyKSBleGl0KDApOwo+IC0tICBpZiAo c2Iuc3RfZ2lkID09IGdldGdpZCgpKSBleGl0KDEpOwo+IC0tICBpZiAoIShmcD1mb3BlbigiY29u ZnRlc3RfZ3JwIiwgInciKSkpCj4gLS0gICAgZXhpdCgxKTsKPiAtLSAgZnByaW50ZihmcCwgIiVk XG4iLCBzYi5zdF9naWQpOwo+IC0tICBmY2xvc2UoZnApOwo+IC0tICBleGl0KDApOwo+IC0tfQo+ IC0tXSxbCj4gLS0gICAgaWYgdGVzdCAtZiBjb25mdGVzdF9ncnA7IHRoZW4KPiAtLQlwdHlncnA9 YGNhdCBjb25mdGVzdF9ncnBgCj4gLS0JQUNfTk9URShbLSBwdHkgbW9kZTogJHB0eW1vZGUsIGdy b3VwOiAkcHR5Z3JwXSkKPiAtLQlBQ19ERUZJTkVfVU5RVU9URUQoUFRZTU9ERSwgJHB0eW1vZGUp Cj4gLS0JQUNfREVGSU5FX1VOUVVPVEVEKFBUWUdST1VQLCRwdHlncnApCj4gLS0gICAgZWxzZQo+ IC0tCUFDX05PVEUoLSBwdHlzIGFyZSB3b3JsZCBhY2Nlc3NhYmxlKQo+IC0tICAgIGZpCj4gLS1d LFsKPiAtLSAgICBXUklURVBBVEg9JycKPiAtLSAgICBYVEVSTVBBVEg9JycKPiAtLSAgICBBQ19Q QVRIX1BST0coV1JJVEVQQVRILCB3cml0ZSkKPiAtLSAgICBBQ19QQVRIX1BST0coWFRFUk1QQVRI LCB4dGVybSkKPiAtLSAgICBmb3VuZD0KPiAtLSAgICBpZiB0ZXN0IC1uICIkV1JJVEVQQVRIJFhU RVJNUEFUSCI7IHRoZW4KPiAtLSAgICAgIGZpbmRmb2xsb3c9Cj4gLS0gICAgICBsc2ZvbGxvdz0K PiAtLSAgICAgIGZvdW5kPWBmaW5kICRXUklURVBBVEggJFhURVJNUEFUSCAtZm9sbG93IC1wcmlu dCAyPi9kZXYvbnVsbGAKPiAtLSAgICAgIGlmIHRlc3QgLW4gIiRmb3VuZCI7IHRoZW4KPiAtLQlm aW5kZm9sbG93PS1mb2xsb3cKPiAtLQlsc2ZvbGxvdz1MCj4gLS0gICAgICBmaQo+IC0tICAgICAg aWYgdGVzdCAtbiAiJFhURVJNUEFUSCI7IHRoZW4KPiAtLQlwdHlncnBuPWBscyAtbCRsc2ZvbGxv dyAkWFRFUk1QQVRIIHwgc2VkIC1uIC1lIDFwIHwgJEFXSyAne3ByaW50ICQ0fSdgCj4gLS0JaWYg dGVzdCB0dHkgIT0gIiRwdHlncnBuIjsgdGhlbgo+IC0tCSAgWFRFUk1QQVRIPQo+IC0tCWZpCj4g LS0gICAgICBmaQo+IC0tICAgIGZpCj4gLS0gICAgaWYgdGVzdCAtbiAiJFdSSVRFUEFUSCRYVEVS TVBBVEgiOyB0aGVuCj4gLS0gICAgICBmb3VuZD1gZmluZCAkV1JJVEVQQVRIICRYVEVSTVBBVEgg JGZpbmRmb2xsb3cgLXBlcm0gLTIwMDAgLXByaW50YCAKPiAtLSAgICAgIGlmIHRlc3QgLW4gIiRm b3VuZCI7IHRoZW4KPiAtLQlwdHlncnA9YGxzIC1sbiRsc2ZvbGxvdyAkZm91bmQgfCBzZWQgLW4g LWUgMXAgfCAkQVdLICd7cHJpbnQgJDR9J2AKPiAtLQlBQ19OT1RFKFstIHB0eSBtb2RlOiAkcHR5 bW9kZSwgZ3JvdXA6ICRwdHlncnBdKQo+IC0tCUFDX0RFRklORV9VTlFVT1RFRChQVFlNT0RFLCAk cHR5bW9kZSkKPiAtLQlBQ19ERUZJTkVfVU5RVU9URUQoUFRZR1JPVVAsJHB0eWdycCkKPiAtLSAg ICAgIGVsc2UKPiAtLQlBQ19OT1RFKC0gcHR5cyBhcmUgd29ybGQgYWNjZXNzYWJsZSkKPiAtLSAg ICAgIGZpCj4gLS0gICAgZWxzZQo+IC0tICAgICAgQUNfTk9URSgtIGNhbid0IGRldGVybWluZSAt IGFzc3VtZSBwdHlzIGFyZSB3b3JsZCBhY2Nlc3NhYmxlKQo+IC0tICAgIGZpCj4gLS0gIF0KPiAt LSkKPiAtLXJtIC1mIGNvbmZ0ZXN0X2dycAo+IC0tZmkKPiAtLQo+IC0gZG5sCj4gLSBkbmwgICAg KioqKiAgdXRtcCBoYW5kbGluZyAgKioqKgo+IC0gZG5sCj4gLUBAIC04OTUsMTAxICs0MzAsNiBA QCBBQ19ERUZJTkUoTE9BREFWX0dFVExPQURBVkcpIGxvYWQ9MSwgTElCUz0iJG9saWJzIikKPiAt IGZpCj4gLSApCj4gLSAKPiAtLWlmIHRlc3QgLXogIiRsb2FkIiA7IHRoZW4KPiAtLUFDX0VHUkVQ X0NQUCh5ZXMsCj4gLS1bI2lmIGRlZmluZWQoTmVYVCkgfHwgZGVmaW5lZChhcG9sbG8pIHx8IGRl ZmluZWQobGludXgpCj4gLS0gIHllczsKPiAtLSNlbmRpZgo+IC0tXSwgbG9hZD0xKQo+IC0tZmkK PiAtLWlmIHRlc3QgLXogIiRsb2FkIiA7IHRoZW4KPiAtLUFDX0NIRUNLSU5HKGZvciBrZXJuZWxm aWxlKQo+IC0tZm9yIGNvcmUgaW4gL3VuaXggL3ZtdW5peCAvZHluaXggL2hwLXV4IC94ZWxvcyAv ZGV2L2tzeW1zIC9rZXJuZWwvdW5peCAva2VybmVsL2dlbnVuaXggL3VuaWNvcyAvbWFjaCAvbmV0 YnNkIC8zODZic2QgL2RndXggL2JzZCAvc3RhbmQvdm11bml4OyBkbwo+IC0tICBpZiB0ZXN0IC1m ICRjb3JlIHx8IHRlc3QgLWMgJGNvcmU7IHRoZW4KPiAtLSAgICBicmVhawo+IC0tICBmaQo+IC0t ZG9uZQo+IC0taWYgdGVzdCAhIC1mICRjb3JlICYmIHRlc3QgISAtYyAkY29yZSA7IHRoZW4KPiAt LSAgQUNfTk9URSgtIG5vIGtlcm5lbGZpbGUgZm91bmQpCj4gLS1lbHNlCj4gLS0gIEFDX05PVEUo LSB1c2luZyBrZXJuZWxmaWxlICckY29yZScpCj4gLS0gIGlmIHRlc3QgLXIgJGNvcmUgOyB0aGVu Cj4gLS0gIEFDX0RFRklORV9VTlFVT1RFRChMT0FEQVZfVU5JWCwiJGNvcmUiKQo+IC0tICBBQ19D SEVDS19IRUFERVIobmxpc3QuaCwKPiAtLSAgICBbQUNfREVGSU5FKE5MSVNUX1NUUlVDVCkKPiAt LSAgICAgQUNfQ0hFQ0tJTkcobl91biBpbiBzdHJ1Y3Qgbmxpc3QpCj4gLS0gICAgIEFDX1RSWV9D T01QSUxFKFsjaW5jbHVkZSA8bmxpc3QuaD5dLAo+IC0tICAgICAgIFtzdHJ1Y3Qgbmxpc3Qgbjsg bi5uX3VuLm5fbmFtZSA9IDA7XSwKPiAtLSAgICAgICAgQUNfREVGSU5FKE5MSVNUX05BTUVfVU5J T04pKV0pCj4gLS0KPiAtLSAgQUNfQ0hFQ0tJTkcoZm9yIG5saXN0IGRlY2xhcmF0aW9uKQo+IC0t ICBBQ19FR1JFUF9DUFAoW25saXN0KCggfAkpKCB8CSkqLipcKHxcKCldLFsKPiAtLSNpZmRlZiBO TElTVF9TVFJVQ1QKPiAtLSMgaW5jbHVkZSA8bmxpc3QuaD4KPiAtLSNlbHNlCj4gLS0jIGluY2x1 ZGUgPGEub3V0Lmg+Cj4gLS0jZW5kaWYKPiAtLV0sQUNfREVGSU5FKE5MSVNUX0RFQ0xBUkVEKSkK PiAtLQo+IC0tICBBQ19DSEVDS0lORyhmb3IgYXZlbnJ1biBzeW1ib2wpCj4gLS0gIG5saXN0NjQ9 Cj4gLS0gIGZvciBhdiBpbiBhdmVucnVuIF9hdmVucnVuIF9Mb2FkYXZnIGF2ZW5ydW4gX2F2ZW5y dW4gX0xvYWRhdmc7IGRvCj4gLS0gIEFDX1RSWV9SVU4oWwo+IC0tI2luY2x1ZGUgPHN5cy90eXBl cy5oPgo+IC0tI2lmZGVmIE5MSVNUX1NUUlVDVAo+IC0tI2luY2x1ZGUgPG5saXN0Lmg+Cj4gLS0j ZWxzZQo+IC0tI2luY2x1ZGUgPGEub3V0Lmg+Cj4gLS0jZW5kaWYKPiAtLQo+IC0tJG5saXN0NjQK PiAtLQo+IC0tc3RydWN0IG5saXN0IG5sWzJdOwo+IC0tCj4gLS1tYWluKCkKPiAtLXsKPiAtLSNp ZiAhZGVmaW5lZChfQVVYX1NPVVJDRSkgJiYgIWRlZmluZWQoQVVYKQo+IC0tIyBpZmRlZiBOTElT VF9OQU1FX1VOSU9OCj4gLS0gIG5sWzBdLm5fdW4ubl9uYW1lID0gIiRhdiI7Cj4gLS0jIGVsc2UK PiAtLSAgbmxbMF0ubl9uYW1lID0gIiRhdiI7Cj4gLS0jIGVuZGlmCj4gLS0jZWxzZQo+IC0tICBz dHJuY3B5KG5sWzBdLm5fbmFtZSwgIiRhdiIsIHNpemVvZihubFswXS5uX25hbWUpKTsKPiAtLSNl bmRpZgo+IC0tICBubGlzdChMT0FEQVZfVU5JWCwgbmwpOwo+IC0tICBpZiAobmxbMF0ubl92YWx1 ZSA9PSAwKQo+IC0tICAgIGV4aXQoMSk7Cj4gLS0gIGV4aXQoMCk7Cj4gLS19Cj4gLS0gIF0sYXZl bnN5bT0kYXY7YnJlYWspCj4gLS0gIGlmIHRlc3QgIiRhdiIgPSBfTG9hZGF2ZzsgdGhlbgo+IC0t ICAgIG5saXN0NjQ9JyNkZWZpbmUgbmxpc3Qgbmxpc3Q2NCcKPiAtLSAgZmkKPiAtLSAgZG9uZQo+ IC0tICBpZiB0ZXN0IC16ICIkYXZlbnN5bSIgOyB0aGVuCj4gLS0gICAgQUNfTk9URSgtIG5vIGF2 ZW5ydW4gc3ltYm9sIGZvdW5kKQo+IC0tICBlbHNlCj4gLS0gICAgQUNfTk9URSgtIHVzaW5nIGF2 ZW5ydW4gc3ltYm9sICckYXZlbnN5bScpCj4gLS0gICAgQUNfREVGSU5FX1VOUVVPVEVEKExPQURB Vl9BVkVOUlVOLCIkYXZlbnN5bSIpCj4gLS0gICAgaWYgdGVzdCAtbiAiJG5saXN0NjQiOyB0aGVu Cj4gLS0gICAgICBBQ19OT1RFKC0gdXNlZCBubGlzdDY0IHRvIGZpbmQgaXQpCj4gLS0gICAgICBB Q19ERUZJTkUoTE9BREFWX1VTRV9OTElTVDY0KQo+IC0tICAgIGZpCj4gLS0gICAgbG9hZD0xCj4g LS0gIGZpCj4gLS0gIGVsc2UKPiAtLSAgICBBQ19OT1RFKCAgQ2FuJ3QgY29uZmlndXJlIHRoZSBs b2FkIGF2ZXJhZ2UgZGlzcGxheSBmZWF0dXJlKQo+IC0tICAgIEFDX05PVEUoICBiZWNhdXNlICRj b3JlIGlzIG5vdCByZWFkYWJsZSBieSB5b3UuKQo+IC0tICAgIEFDX05PVEUoICBUbyBjb25maWd1 cmUgdGhlIGxvYWQgYXZlcmFnZSBkaXNwbGF5IGZlYXR1cmUsKQo+IC0tICAgIEFDX05PVEUoICBy ZS1ydW4gY29uZmlndXJlIGFzIHJvb3QgaWYgcG9zc2libGUuKQo+IC0tICAgIEFDX05PVEUoICBJ ZiB5b3UgYXJlIG5vdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgdGhlbiBkaXNyZWdhcmQpCj4g LS0gICAgQUNfTk9URSggIHRoaXMgd2FybmluZy4gIFlvdSBjYW4gc3RpbGwgdXNlIHNjcmVlbiB3 aXRob3V0KQo+IC0tICAgIEFDX05PVEUoICB0aGUgbG9hZCBhdmVyYWdlIGRpc3BsYXkgZmVhdHVy ZS4pCj4gLS0gIGZpCj4gLS1maQo+IC0tZmkKPiAtLQo+IC0gQUNfUFJPR1JBTV9TT1VSQ0UoWwo+ IC0gI2luY2x1ZGUgPHN5cy90eXBlcy5oPgo+IC0gI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgo+IC1A QCAtMTA2MSw0MSArNTAxLDggQEAgc2lnc2V0KDAsICh2b2lkICgqKSgpKTApOwo+IC0gc2lnc2V0 KDAsIChpbnQgKCopKCkpMCk7Cj4gLSAjZW5kaWYKPiAtIF0sIEFDX0RFRklORShVU0VTSUdTRVQp KQo+IC0tQUNfQ0hFQ0tJTkcoc2lnbmFsIGltcGxlbWVudGF0aW9uKQo+IC0tQUNfVFJZX1JVTihb Cj4gLS0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cj4gLS0jaW5jbHVkZSA8c2lnbmFsLmg+Cj4gLS0K PiAtLSNpZm5kZWYgU0lHQ0xECj4gLS0jZGVmaW5lIFNJR0NMRCBTSUdDSExECj4gLS0jZW5kaWYK PiAtLSNpZmRlZiBVU0VTSUdTRVQKPiAtLSNkZWZpbmUgc2lnbmFsIHNpZ3NldAo+IC0tI2VuZGlm Cj4gLS0KPiAtLWludCBnb3Q7Cj4gLSAKPiAtLSNpZmRlZiBTSUdWT0lECj4gLS12b2lkCj4gLS0j ZW5kaWYKPiAtLWhhbmQoKQo+IC0tewo+IC0tICBnb3QrKzsKPiAtLX0KPiAtLQo+IC0tbWFpbigp Cj4gLS17Cj4gLS0gIC8qIG9uIGhwdXggd2UgdXNlIHNpZ3ZlYyB0byBnZXQgYnNkIHNpZ25hbHMg Ki8KPiAtLSNpZmRlZiBfX2hwdXgKPiAtLSAgKHZvaWQpc2lnbmFsKFNJR0NMRCwgaGFuZCk7Cj4g LS0gIGtpbGwoZ2V0cGlkKCksIFNJR0NMRCk7Cj4gLS0gIGtpbGwoZ2V0cGlkKCksIFNJR0NMRCk7 Cj4gLS0gIGlmIChnb3QgPCAyKQo+IC0tICAgIGV4aXQoMSk7Cj4gLS0jZW5kaWYKPiAtLSAgZXhp dCgwKTsKPiAtLX0KPiAtLV0sLEFDX0RFRklORShTWVNWU0lHUykpCj4gLStBQ19ERUZJTkUoU1lT VlNJR1MpCj4gLSAKPiAtIGZpCj4gLSAKPiAtQEAgLTExNjMsNTAgKzU3MCwxMiBAQCBBQ19DSEVD S0lORyhmZHdhbGspCj4gLSBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHN0ZGxpYi5oPl0sIFtmZHdh bGsoTlVMTCwgTlVMTCk7XSxBQ19ERUZJTkUoSEFWRV9GRFdBTEspKQo+IC0gCj4gLSBBQ19DSEVD S0lORyh3aGV0aGVyIG1lbWNweS9tZW1tb3ZlL2Jjb3B5IGhhbmRsZXMgb3ZlcmxhcHBpbmcgYXJn dW1lbnRzKQo+IC0tQUNfVFJZX1JVTihbCj4gLS1tYWluKCkgewo+IC0tICBjaGFyIGJ1ZlsxMF07 Cj4gLS0gIHN0cmNweShidWYsICJhYmNkZWZnaGkiKTsKPiAtLSAgYmNvcHkoYnVmLCBidWYgKyAy LCAzKTsKPiAtLSAgaWYgKHN0cm5jbXAoYnVmLCAiYWJhYmNmIiwgNikpCj4gLS0gICAgZXhpdCgx KTsKPiAtLSAgc3RyY3B5KGJ1ZiwgImFiY2RlZmdoaSIpOwo+IC0tICBiY29weShidWYgKyAyLCBi dWYsIDMpOwo+IC0tICBpZiAoc3RybmNtcChidWYsICJjZGVkZWYiLCA2KSkKPiAtLSAgICBleGl0 KDEpOwo+IC0tICBleGl0KDApOyAvKiBsaWJjIHZlcnNpb24gd29ya3MgcHJvcGVybHkuICAqLwo+ IC0tfV0sIEFDX0RFRklORShVU0VCQ09QWSkpCj4gLS0KPiAtLUFDX1RSWV9SVU4oWwo+IC0tI2Rl ZmluZSBiY29weShzLGQsbCkgbWVtbW92ZShkLHMsbCkKPiAtLW1haW4oKSB7Cj4gLS0gIGNoYXIg YnVmWzEwXTsKPiAtLSAgc3RyY3B5KGJ1ZiwgImFiY2RlZmdoaSIpOwo+IC0tICBiY29weShidWYs IGJ1ZiArIDIsIDMpOwo+IC0tICBpZiAoc3RybmNtcChidWYsICJhYmFiY2YiLCA2KSkKPiAtLSAg ICBleGl0KDEpOwo+IC0tICBzdHJjcHkoYnVmLCAiYWJjZGVmZ2hpIik7Cj4gLS0gIGJjb3B5KGJ1 ZiArIDIsIGJ1ZiwgMyk7Cj4gLS0gIGlmIChzdHJuY21wKGJ1ZiwgImNkZWRlZiIsIDYpKQo+IC0t ICAgIGV4aXQoMSk7Cj4gLS0gIGV4aXQoMCk7IC8qIGxpYmMgdmVyc2lvbiB3b3JrcyBwcm9wZXJs eS4gICovCj4gLS19XSwgQUNfREVGSU5FKFVTRU1FTU1PVkUpKQo+IC0tCj4gLS0KPiAtLUFDX1RS WV9SVU4oWwo+IC0tI2RlZmluZSBiY29weShzLGQsbCkgbWVtY3B5KGQscyxsKQo+IC0tbWFpbigp IHsKPiAtLSAgY2hhciBidWZbMTBdOwo+IC0tICBzdHJjcHkoYnVmLCAiYWJjZGVmZ2hpIik7Cj4g LS0gIGJjb3B5KGJ1ZiwgYnVmICsgMiwgMyk7Cj4gLS0gIGlmIChzdHJuY21wKGJ1ZiwgImFiYWJj ZiIsIDYpKQo+IC0tICAgIGV4aXQoMSk7Cj4gLS0gIHN0cmNweShidWYsICJhYmNkZWZnaGkiKTsK PiAtLSAgYmNvcHkoYnVmICsgMiwgYnVmLCAzKTsKPiAtLSAgaWYgKHN0cm5jbXAoYnVmLCAiY2Rl ZGVmIiwgNikpCj4gLS0gICAgZXhpdCgxKTsKPiAtLSAgZXhpdCgwKTsgLyogbGliYyB2ZXJzaW9u IHdvcmtzIHByb3Blcmx5LiAgKi8KPiAtLX1dLCBBQ19ERUZJTkUoVVNFTUVNQ1BZKSkKPiAtK0FD X0RFRklORShVU0VCQ09QWSkKPiAtKwo+IC0rQUNfREVGSU5FKFVTRU1FTU1PVkUpCj4gLSsKPiAt Kwo+IC0rQUNfREVGSU5FKFVTRU1FTUNQWSkKPiAtIAo+IC0gQUNfU1lTX0xPTkdfRklMRV9OQU1F Uwo+IC0gCj4gLUBAIC0xMjkyLDggKzY2MSw2IEBAIGZpCj4gLSBkbmwgUHR4IGJ1ZyB3b3JrYXJv dW5kIC0tIGluc2VydCAtbGMgYWZ0ZXIgLWx0ZXJtY2FwCj4gLSB0ZXN0IC1uICIkc2VxcHR4IiAm JiBMSUJTPSItbHRlcm1jYXAgLWxjIC1sc29ja2V0IC1saW5ldCAtbG5zbCAtbHNlYyAtbHNlcSIK PiAtIAo+IC0tQUNfVFJZX1JVTihtYWluKCl7ZXhpdCgwKTt9LCxBQ19NU0dfRVJST1IoQ2FuJ3Qg cnVuIHRoZSBjb21waWxlciAtIGludGVybmFsIGVycm9yLiBTb3JyeS4pKQo+IC0tCj4gLSBFVENT Q1JFRU5SQz0KPiAtIEFDX01TR19DSEVDS0lORyhmb3IgdGhlIGdsb2JhbCBzY3JlZW5yYyBmaWxl KQo+IC0gQUNfQVJHX1dJVEgoc3lzLXNjcmVlbnJjLCBbICAtLXdpdGgtc3lzLXNjcmVlbnJjPXBh dGggdG8gdGhlIGdsb2JhbCBzY3JlZW5yYyBmaWxlXSwgWyBFVENTQ1JFRU5SQz0iJHt3aXRodmFs fSIgXSkKPiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9zY3JlZW4tNC41LjAvMDAwMy1hdXRvY29uZi1j bGVhbnVwLnBhdGNoIGIvcGF0Y2hlcy9zY3JlZW4tNC41LjAvMDAwMy1hdXRvY29uZi1jbGVhbnVw LnBhdGNoCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggZmRhNmM5NDIzOTkwLi4w MDAwMDAwMDAwMDAKPiAtLS0gYS9wYXRjaGVzL3NjcmVlbi00LjUuMC8wMDAzLWF1dG9jb25mLWNs ZWFudXAucGF0Y2gKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsMzk3ICswLDAgQEAKPiAtRnJvbTog TWljaGFlbCBPbGJyaWNoIDxtLm9sYnJpY2hAcGVuZ3V0cm9uaXguZGU+Cj4gLURhdGU6IFN1biwg MjcgTWFyIDIwMTEgMTU6MjM6NTUgKzAyMDAKPiAtU3ViamVjdDogW1BBVENIXSBhdXRvY29uZiBj bGVhbnVwCj4gLQo+IC11cGRhdGUgdG8gbGF0ZXN0IGF1dG9jb25mIHN5bnRheAo+IC0KPiAtU2ln bmVkLW9mZi1ieTogTWljaGFlbCBPbGJyaWNoIDxtLm9sYnJpY2hAcGVuZ3V0cm9uaXguZGU+Cj4g LVtvc3RlcmxhZDogdXBkYXRlIGxvY2F0aW9ucyBmb3IgdmVyc2lvbiA0LjUuMF0KPiAtU2lnbmVk LW9mZi1ieTogRGVuaXMgT3N0ZXJsYW5kIDxEZW5pcy5Pc3RlcmxhbmRAZGllaGwuY29tPgo+IC0t LS0KPiAtIGNvbmZpZ3VyZS5hYyB8IDExNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0gMSBmaWxlIGNoYW5nZWQsIDU4IGluc2Vy dGlvbnMoKyksIDU4IGRlbGV0aW9ucygtKQo+IC0KPiAtZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5h YyBiL2NvbmZpZ3VyZS5hYwo+IC1pbmRleCAxNTViMzRjN2VjY2UuLmI4N2E5YTQ0ZWIyMCAxMDA2 NDQKPiAtLS0tIGEvY29uZmlndXJlLmFjCj4gLSsrKyBiL2NvbmZpZ3VyZS5hYwo+IC1AQCAtNzcs NyArNzcsNyBAQCBBQ19BUkdfRU5BQkxFKHNvY2tldC1kaXIsCj4gLSAJICBlc2FjCj4gLSAgICAg ICAgIF0pCj4gLSAJQUNfTVNHX1JFU1VMVCgke1NPQ0tESVJ9KQo+IC0tCUFDX0RFRklORV9VTlFV T1RFRChTT0NLRElSLCAkU09DS0RJUikKPiAtKwlBQ19ERUZJTkVfVU5RVU9URUQoU09DS0RJUiwg JFNPQ0tESVIsW1NPQ0tESVJdKQo+IC0gICAgIF0KPiAtICkKPiAtIAo+IC1AQCAtODYsMTggKzg2 LDE4IEBAIGRubAo+IC0gZG5sICAgICoqKiogIHNwZWNpYWwgdW5peCB2YXJpYW50cyAgKioqKgo+ IC0gZG5sCj4gLSBpZiB0ZXN0IC1uICIkSVNDIjsgdGhlbgo+IC0tICBBQ19ERUZJTkUoSVNDKSBM SUJTPSIkTElCUyAtbGluZXQiCj4gLSsgIEFDX0RFRklORShbSVNDXSxbMV0sW0lTQ10pIExJQlM9 IiRMSUJTIC1saW5ldCIKPiAtIGZpCj4gLSAKPiAtIGRubCBBQ19DSEVDS0lORyhmb3IgT1NGMSkK PiAtIGRubCBpZiB0ZXN0IC1mIC9iaW4vdW5hbWUgOyB0aGVuCj4gLSBkbmwgaWYgdGVzdCBgL2Jp bi91bmFtZWAgPSBPU0YxIHx8IHRlc3QgLWYgL29zZl9ib290OyB0aGVuCj4gLS1kbmwgQUNfREVG SU5FKE9TRjEpCSMgdGhpcyBkaXNhYmxlcyBNSVBTIGFnYWluLi4uLgo+IC0rZG5sIEFDX0RFRklO RShbT1NGMV0sWzFdLFtPU0YxXSkJIyB0aGlzIGRpc2FibGVzIE1JUFMgYWdhaW4uLi4uCj4gLSBk bmwgZmkKPiAtIGRubCBmaQo+IC0gCj4gLSBpZiB0ZXN0IC1mIC9zeXNWNjggOyB0aGVuCj4gLS1B Q19ERUZJTkUoc3lzVjY4KQo+IC0rQUNfREVGSU5FKFtzeXNWNjhdLFsxXSxbc3lzVjY4XSkKPiAt IGZpCj4gLSAKPiAtIEFDX0NIRUNLSU5HKGZvciBNSVBTKQo+IC1AQCAtMTEwLDcgKzExMCw3IEBA IEFDX1RSWV9MSU5LKCwsLExJQlM9IiRvbGRsaWJzIikKPiAtIGRubAo+IC0gZG5sCj4gLSBpZiB0 ZXN0IC1yIC9kZXYvcHRjOyB0aGVuCj4gLS1BQ19ERUZJTkUoTUlQUykKPiAtK0FDX0RFRklORShb TUlQU10sWzFdLFtNSVBTXSkKPiAtIEFDX0NIRUNLSU5HKHdhaXQzKQo+IC0gQUNfVFJZX0xJTkso LFt3YWl0MygpO10sICwKPiAtIEFDX0NIRUNLSU5HKHdhaXQyKQo+IC1AQCAtMTE5LDcgKzExOSw3 IEBAIGRubCBKb2huIFJvdWlsbGFyZCAocm91aWxqQHNuaS11c2EuY29tKToKPiAtIGRubCBuZWVk IC1JL3Vzci9pbmNsdWRlL2JzZCBpbiBSSVNDT1Mgb3RoZXJ3aXNlIHNvY2tldHMgYXJlIGJyb2tl biwgbm8KPiAtIGRubCBqb2IgY29udHJvbCBldGMuCj4gLSBkbmwgRGV0ZWN0IFJJU0NPUyBpZiB3 YWl0MiBpcyBwcmVzZW50LCBidXQgbm90IHdhaXQzLgo+IC0tQUNfREVGSU5FKFVTRV9XQUlUMikg TElCUz0iJExJQlMgLWxic2QiIDsgQ0M9IiRDQyAtSS91c3IvaW5jbHVkZS9ic2QiCj4gLStBQ19E RUZJTkUoW1VTRV9XQUlUMl0sWzFdLFtVU0VfV0FJVDJdKSBMSUJTPSIkTElCUyAtbGJzZCIgOyBD Qz0iJENDIC1JL3Vzci9pbmNsdWRlL2JzZCIKPiAtICkpCj4gLSBmaQo+IC0gZmkKPiAtQEAgLTEz Niw3ICsxMzYsNyBAQCBpZiB0ZXN0IC1mIC91c3IvbGliL2xpYnB5ci5hIDsgdGhlbgo+IC0gb2xk bGlicz0iJExJQlMiCj4gLSBMSUJTPSIkTElCUyAtbHB5ciIKPiAtIEFDX0NIRUNLSU5HKFB5cmFt aWQgT1NYKQo+IC0tQUNfVFJZX0xJTksoLFtvcGVuX2NvbnRyb2xsaW5nX3B0eSgiIildLCBBQ19E RUZJTkUoT1NYKSwgTElCUz0iJG9sZGxpYnMiKQo+IC0rQUNfVFJZX0xJTksoLFtvcGVuX2NvbnRy b2xsaW5nX3B0eSgiIildLCBBQ19ERUZJTkUoW09TWF0sWzFdLFtPU1hdKSwgTElCUz0iJG9sZGxp YnMiKQo+IC0gZmkKPiAtIAo+IC0gZG5sIGdoYXppQGNhaXAucnV0Z2Vycy5lZHUgKEthdmVoIFIu IEdoYXppKToKPiAtQEAgLTE2MSwxNCArMTYxLDE0IEBAIG1haW4gKCkgewo+IC0gI2lmZGVmIF9Q T1NJWF9WRVJTSU9OCj4gLSAgIHllczsKPiAtICNlbmRpZgo+IC0tXSwgQUNfTk9URSgtIHlvdSBo YXZlIGEgUE9TSVggc3lzdGVtKSBBQ19ERUZJTkUoUE9TSVgpIHBvc2l4PTEpCj4gLStdLCBBQ19O T1RFKC0geW91IGhhdmUgYSBQT1NJWCBzeXN0ZW0pIEFDX0RFRklORShbUE9TSVhdLFsxXSxbUE9T SVhdKSBwb3NpeD0xKQo+IC0gZmkKPiAtIAo+IC0gQUNfQ0hFQ0tJTkcoZm9yIFN5c3RlbSBWKQo+ IC0gQUNfVFJZX0NPTVBJTEUoCj4gLSBbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgo+IC0gI2luY2x1 ZGUgPHNpZ25hbC5oPgo+IC0tI2luY2x1ZGUgPGZjbnRsLmg+XSwgW2ludCB4ID0gU0lHQ0hMRCB8 IEZOREVMQVk7XSwgLCBBQ19ERUZJTkUoU1lTVikpCj4gLSsjaW5jbHVkZSA8ZmNudGwuaD5dLCBb aW50IHggPSBTSUdDSExEIHwgRk5ERUxBWTtdLCAsIEFDX0RFRklORShbU1lTVl0sWzFdLFtTWVNW XSkpCj4gLSAKPiAtIEFDX0NIRUNLSU5HKGZvciBzZXF1ZW50L3B0eCkKPiAtIEFDX0VHUkVQX0NQ UCh5ZXMsCj4gLUBAIC0xOTMsMTYgKzE5MywxNiBAQCBkbmwgKGN1cnJlbnRseSBub3QgdXNlZCkK PiAtIGRubAo+IC0gZG5sIEFDX0NIRUNLSU5HKGZvciBwaWRfdCkKPiAtIGRubCBBQ19FR1JFUF9D UFAocGlkX3QsWyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KPiAtLWRubCBdLEFDX0RFRklORShQSURf VF9ERUZJTkVEKSkKPiAtK2RubCBdLEFDX0RFRklORShbUElEX1RfREVGSU5FRF0sWzFdLFtQSURf VF9ERUZJTkVEXSkpCj4gLSBkbmwKPiAtIGRubCBBQ19DSEVDS0lORyhmb3Igc2lnX3QpCj4gLSBk bmwgQUNfRUdSRVBfQ1BQKHNpZ190LFsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cj4gLSBkbmwgI2lu Y2x1ZGUgPHNpZ25hbC5oPgo+IC0tZG5sIF0sQUNfREVGSU5FKFNJR19UX0RFRklORUQpKQo+IC0r ZG5sIF0sQUNfREVGSU5FKFtTSUdfVF9ERUZJTkVEXSxbMV0sW1NJR19UX0RFRklORURdKSkKPiAt IGRubAo+IC0gZG5sIEFDX0NIRUNLSU5HKGZvciB1aWRfdCkKPiAtIGRubCBBQ19FR1JFUF9DUFAo dWlkX3QsWyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KPiAtLWRubCBdLEFDX0RFRklORShVSURfVF9E RUZJTkVEKSkKPiAtK2RubCBdLEFDX0RFRklORShbVUlEX1RfREVGSU5FRF0sWzFdLFtVSURfVF9E RUZJTkVEXSkpCj4gLSBkbmwKPiAtIAo+IC0gZG5sCj4gLUBAIC0yMjQsNyArMjI0LDcgQEAgc2V0 cGdycCgpOwo+IC0gaW50IHkgPSBUSU9DTk9UVFk7Cj4gLSAjZW5kaWYKPiAtICNlbmRpZgo+IC0t XSwgQUNfTk9URSgtIHlvdSBoYXZlIGpvYmNvbnRyb2wpIEFDX0RFRklORShCU0RKT0JTKSwgQUNf Tk9URSgtIHlvdSBkb24ndCBoYXZlIGpvYmNvbnRyb2wpKQo+IC0rXSwgQUNfTk9URSgtIHlvdSBo YXZlIGpvYmNvbnRyb2wpIEFDX0RFRklORShbQlNESk9CU10sWzFdLFtCU0RKT0JTXSksIEFDX05P VEUoLSB5b3UgZG9uJ3QgaGF2ZSBqb2Jjb250cm9sKSkKPiAtIAo+IC0gZG5sCj4gLSBkbmwgICAg KioqKiAgc2V0cmVzdWlkKCksIHNldHJldWlkKCksIHNldGV1aWQoKSAgKioqKgo+IC1AQCAtMjM2 LDcgKzIzNiw3IEBAIHNldHJlc3VpZCgwLCAwLCAwKTsKPiAtIEFDX0NIRUNLSU5HKHNldHJldWlk KQo+IC0gQUNfVFJZX0xJTksoLFsKPiAtIHNldHJldWlkKDAsIDApOwo+IC0tXSwgQUNfREVGSU5F KEhBVkVfU0VUUkVVSUQpKQo+IC0rXSwgQUNfREVGSU5FKEhBVkVfU0VUUkVVSUQsWzFdLFtIQVZF X1NFVFJFVUlEXSkpCj4gLSBkbmwKPiAtIGRubCBzZXRldWlkKCkgY2hlY2s6Cj4gLSBkbmwgICBs aW51eCBzZXRldWlkIHdhcyBicm9rZW4gYmVmb3JlIFYxLjEuMTEKPiAtQEAgLTI1MCw3ICsyNTAs NyBAQCBzZXRldWlkX2lzX2Jyb2tlbigwKTsKPiAtICNlbHNlCj4gLSBzZXRldWlkKDApOwo+IC0g I2VuZGlmCj4gLS1dLCBBQ19ERUZJTkUoSEFWRV9TRVRFVUlEKSkKPiAtK10sIEFDX0RFRklORShb SEFWRV9TRVRFVUlEXSxbMV0sW0hBVkVfU0VURVVJRF0pKQo+IC0gCj4gLSBkbmwgZXhlY3ZwZQo+ IC0gQUNfQ0hFQ0tJTkcoZXhlY3ZwZSkKPiAtQEAgLTMwNiwyMyArMzA2LDIzIEBAIEFDX0NIRUNL SU5HKGxpYnRpbmZvKQo+IC0gQUNfVFJZX0xJTksoLHRnZXRlbnQoKGNoYXIgKikwLCAoY2hhciAq KTApOywsCj4gLSBBQ19NU0dfRVJST1IoISEhIG5vIHRnZXRlbnQgLSBubyBzY3JlZW4pKSkpKSkp KSkKPiAtIAo+IC0tQUNfREVGSU5FKFRFUk1JTkZPKSkKPiAtK0FDX0RFRklORShbVEVSTUlORk9d LFsxXSxbVEVSTUlORk9dKQo+IC0gCj4gLSBBQ19DSEVDS0lORyhvc3BlZWQpCj4gLS1BQ19UUllf TElOSyhleHRlcm4gc2hvcnQgb3NwZWVkOyxvc3BlZWQ9NTssLEFDX0RFRklORShORUVEX09TUEVF RCkpCj4gLStBQ19UUllfTElOSyhleHRlcm4gc2hvcnQgb3NwZWVkOyxvc3BlZWQ9NTssLEFDX0RF RklORShbTkVFRF9PU1BFRURdLFsxXSxbTkVFRF9PU1BFRURdKSkKPiAtIAo+IC0gZG5sCj4gLSBk bmwgICAgKioqKiAgUFRZIHNwZWNpZmljIHRoaW5ncyAgKioqKgo+IC0gZG5sCj4gLSBBQ19DSEVD S0lORyhmb3IgL2Rldi9wdGMpCj4gLSBpZiB0ZXN0IC1yIC9kZXYvcHRjOyB0aGVuCj4gLS1BQ19E RUZJTkUoSEFWRV9ERVZfUFRDKQo+IC0rQUNfREVGSU5FKFtIQVZFX0RFVl9QVENdLFsxXSxbSEFW RV9ERVZfUFRDXSkKPiAtIGZpCj4gLSAKPiAtIEFDX0NIRUNLSU5HKGZvciBTVlI0IHB0eXMpCj4g LSBzeXN2cjRwdHlzPQo+IC0gaWYgdGVzdCAtYyAvZGV2L3B0bXggOyB0aGVuCj4gLS1BQ19UUllf TElOSyhbXSxbcHRzbmFtZSgwKTtncmFudHB0KDApO3VubG9ja3B0KDApO10sW0FDX0RFRklORShI QVZFX1NWUjRfUFRZUykKPiAtK0FDX1RSWV9MSU5LKFtdLFtwdHNuYW1lKDApO2dyYW50cHQoMCk7 dW5sb2NrcHQoMCk7XSxbQUNfREVGSU5FKFtIQVZFX1NWUjRfUFRZU10sWzFdLFtIQVZFX1NWUjRf UFRZU10pCj4gLSBzeXN2cjRwdHlzPTFdKQo+IC0gZmkKPiAtIAo+IC1AQCAtMzMxLDcgKzMzMSw3 IEBAIEFDX0NIRUNLX0ZVTkNTKGdldHB0KQo+IC0gZG5sIGNoZWNrIGZvciBvcGVucHR5KCkKPiAt IGlmIHRlc3QgLXogIiRzeXN2cjRwdHlzIjsgdGhlbgo+IC0gQUNfQ0hFQ0tfRlVOQ1Mob3BlbnB0 eSwsCj4gLS1bQUNfQ0hFQ0tfTElCKHV0aWwsb3BlbnB0eSwgW0FDX0RFRklORShIQVZFX09QRU5Q VFkpXSBbTElCUz0iJExJQlMgLWx1dGlsIl0pXSkKPiAtK1tBQ19DSEVDS19MSUIodXRpbCxvcGVu cHR5LCBbQUNfREVGSU5FKFtIQVZFX09QRU5QVFldLFsxXSxbSEFWRV9PUEVOUFRZXSldIFtMSUJT PSIkTElCUyAtbHV0aWwiXSldKQo+IC0gZmkKPiAtIAo+IC0gQUNfQ0hFQ0tJTkcoZm9yIHB0eXJh bmdlcykKPiAtQEAgLTM1NCw4ICszNTQsOCBAQCBkbmwgZmkKPiAtIGlmIHRlc3QgIiRwdHlzIiAh PSAiJHBkaXIvcHR5Pz8iIDsgdGhlbgo+IC0gcDA9YGVjaG8gJHB0eXMgfCB0ciAnICcgJ1wwMTIn IHwgc2VkIC1lICdzL14uKlwoLlwpLiQvXDEvZycgfCBzb3J0IC11IHwgdHIgLWQgJ1wwMTInYAo+ IC0gcDE9YGVjaG8gJHB0eXMgfCB0ciAnICcgJ1wwMTInIHwgc2VkIC1lICdzL14uKlwoLlwpJC9c MS9nJyAgfCBzb3J0IC11IHwgdHIgLWQgJ1wwMTInYAo+IC0tQUNfREVGSU5FX1VOUVVPVEVEKFBU WVJBTkdFMCwiJHAwIikKPiAtLUFDX0RFRklORV9VTlFVT1RFRChQVFlSQU5HRTEsIiRwMSIpCj4g LStBQ19ERUZJTkVfVU5RVU9URUQoUFRZUkFOR0UwLCIkcDAiLFtQVFlSQU5HRTBdKQo+IC0rQUNf REVGSU5FX1VOUVVPVEVEKFBUWVJBTkdFMSwiJHAxIixbUFRZUkFOR0UxXSkKPiAtIGZpCj4gLSAK PiAtIGRubAo+IC1AQCAtMzc1LDcgKzM3NSw3IEBAIEFDX1RSWV9MSU5LKFsKPiAtICNkZWZpbmUg cHV0dXRsaW5lIF9wdXR1dGxpbmUKPiAtICNlbmRpZgo+IC0gXSwKPiAtLVtpbnQgeCA9IERFQURf UFJPQ0VTUzsgcHV0dXRsaW5lKChzdHJ1Y3QgdXRtcCAqKTApOyBnZXR1dGVudCgpO10sIEFDX0RF RklORShHRVRVVEVOVCksCj4gLStbaW50IHggPSBERUFEX1BST0NFU1M7IHB1dHV0bGluZSgoc3Ry dWN0IHV0bXAgKikwKTsgZ2V0dXRlbnQoKTtdLCBBQ19ERUZJTkUoW0dFVFVURU5UXSxbMV0sW0dF VFVURU5UXSksCj4gLSBvbGlicz0iJExJQlMiCj4gLSBMSUJTPSIkTElCUyAtbGdlbiIKPiAtIEFD X0NIRUNLSU5HKGdldHV0ZW50IHdpdGggLWxnZW4pCj4gLUBAIC0zOTIsNyArMzkyLDcgQEAgQUNf VFJZX0xJTksoWwo+IC0gI2RlZmluZSBwdXR1dGxpbmUgX3B1dHV0bGluZQo+IC0gI2VuZGlmCj4g LSBdLAo+IC0tW2ludCB4ID0gREVBRF9QUk9DRVNTOyBwdXR1dGxpbmUoKHN0cnVjdCB1dG1wICop MCk7IGdldHV0ZW50KCk7XSwgQUNfREVGSU5FKEdFVFVURU5UKSwgTElCUz0iJG9saWJzIikKPiAt K1tpbnQgeCA9IERFQURfUFJPQ0VTUzsgcHV0dXRsaW5lKChzdHJ1Y3QgdXRtcCAqKTApOyBnZXR1 dGVudCgpO10sIEFDX0RFRklORShbR0VUVVRFTlRdLFsxXSxbR0VUVVRFTlRdKSwgTElCUz0iJG9s aWJzIikKPiAtICkKPiAtIEFDX0NIRUNLSU5HKHV0X2hvc3QpCj4gLSBBQ19UUllfQ09NUElMRShb Cj4gLUBAIC00MDQsMTAgKzQwNCwxMCBAQCBBQ19UUllfQ09NUElMRShbCj4gLSAjZWxzZQo+IC0g I2luY2x1ZGUgPHV0bXAuaD4KPiAtICNlbmRpZgo+IC0tXSxbc3RydWN0IHV0bXAgdTsgdS51dF9o b3N0WzBdID0gMDtdLCBBQ19ERUZJTkUoVVRIT1NUKSkKPiAtK10sW3N0cnVjdCB1dG1wIHU7IHUu dXRfaG9zdFswXSA9IDA7XSwgQUNfREVGSU5FKFtVVEhPU1RdLFsxXSxbVVRIT1NUXSkpCj4gLSBB Q19DSEVDS19IRUFERVIodXRlbXB0ZXIuaCwgaGF2ZV91dGVtcHRlcj15ZXMsIGhhdmVfdXRlbXB0 ZXI9bm8pCj4gLSBpZiB0ZXN0ICIkaGF2ZV91dGVtcHRlciIgPSB5ZXM7IHRoZW4KPiAtLSAgQUNf REVGSU5FKEhBVkVfVVRFTVBURVIpCj4gLSsgIEFDX0RFRklORShbSEFWRV9VVEVNUFRFUl0sWzFd LFtIQVZFX1VURU1QVEVSXSkKPiAtICAgTElCUz0iJExJQlMgLWx1dGVtcHRlciIKPiAtIGZpCj4g LSAKPiAtQEAgLTQyMCwxMyArNDIwLDEzIEBAIHRlc3QgLWYgL3Vzci9saWIvbGlidXRpbC5hICYm IExJQlM9IiRMSUJTIC1sdXRpbCIKPiAtIAo+IC0gQUNfQ0hFQ0tJTkcoZ2V0bG9hZGF2ZykKPiAt IEFDX1RSWV9MSU5LKCxbZ2V0bG9hZGF2ZygoZG91YmxlICopMCwgMCk7XSwKPiAtLUFDX0RFRklO RShMT0FEQVZfR0VUTE9BREFWRykgbG9hZD0xLAo+IC0rQUNfREVGSU5FKFtMT0FEQVZfR0VUTE9B REFWR10sWzFdLFtMT0FEQVZfR0VUTE9BREFWR10pIGxvYWQ9MSwKPiAtIGlmIHRlc3QgLWYgL3Vz ci9saWIvbGlia3ZtLmEgOyB0aGVuCj4gLSBvbGlicz0iJExJQlMiCj4gLSBMSUJTPSIkTElCUyAt bGt2bSIKPiAtIEFDX0NIRUNLSU5HKGdldGxvYWRhdmcgd2l0aCAtbGt2bSkKPiAtIEFDX1RSWV9M SU5LKCxbZ2V0bG9hZGF2ZygoZG91YmxlICopMCwgMCk7XSwKPiAtLUFDX0RFRklORShMT0FEQVZf R0VUTE9BREFWRykgbG9hZD0xLCBMSUJTPSIkb2xpYnMiKQo+IC0rQUNfREVGSU5FKFtMT0FEQVZf R0VUTE9BREFWR10sWzFdLFtMT0FEQVZfR0VUTE9BREFWR10pIGxvYWQ9MSwgTElCUz0iJG9saWJz IikKPiAtIGZpCj4gLSApCj4gLSAKPiAtQEAgLTQ2NiwxMCArNDY2LDEwIEBAIGxvYWRudW09Mwo+ IC0gI2VuZGlmCj4gLSBdKQo+IC0gCj4gLS1pZiB0ZXN0IC1uICIkbG9hZCIgOyB0aGVuIEFDX0RF RklORShMT0FEQVYpIGZpCj4gLS1pZiB0ZXN0IC1uICIkbG9hZHR5cGUiIDsgdGhlbiBBQ19ERUZJ TkVfVU5RVU9URUQoTE9BREFWX1RZUEUsJGxvYWR0eXBlKSBmaQo+IC0taWYgdGVzdCAtbiAiJGxv YWRudW0iIDsgdGhlbiBBQ19ERUZJTkVfVU5RVU9URUQoTE9BREFWX05VTSwkbG9hZG51bSkgZmkK PiAtLWlmIHRlc3QgLW4gIiRsb2Fkc2NhbGUiIDsgdGhlbiBBQ19ERUZJTkVfVU5RVU9URUQoTE9B REFWX1NDQUxFLCRsb2Fkc2NhbGUpIGZpCj4gLStpZiB0ZXN0IC1uICIkbG9hZCIgOyB0aGVuIEFD X0RFRklORShbTE9BREFWXSxbMV0sW0xPQURBVl0pIGZpCj4gLStpZiB0ZXN0IC1uICIkbG9hZHR5 cGUiIDsgdGhlbiBBQ19ERUZJTkVfVU5RVU9URUQoTE9BREFWX1RZUEUsJGxvYWR0eXBlLFtMT0FE QVZfVFlQRV0pIGZpCj4gLStpZiB0ZXN0IC1uICIkbG9hZG51bSIgOyB0aGVuIEFDX0RFRklORV9V TlFVT1RFRChMT0FEQVZfTlVNLCRsb2FkbnVtLFtMT0FEQVZfTlVNXSkgZmkKPiAtK2lmIHRlc3Qg LW4gIiRsb2Fkc2NhbGUiIDsgdGhlbiBBQ19ERUZJTkVfVU5RVU9URUQoTE9BREFWX1NDQUxFLCRs b2Fkc2NhbGUsW0xPQURBVl9TQ0FMRV0pIGZpCj4gLSAKPiAtIGRubAo+IC0gZG5sICAgICoqKiog IHNpZ25hbCBoYW5kbGluZyAgKioqKgo+IC1AQCAtNDc4LDcgKzQ3OCw3IEBAIGlmIHRlc3QgLW4g IiRwb3NpeCIgOyB0aGVuCj4gLSAKPiAtIGRubCBQT1NJWCBoYXMgcmVsaWFibGUgc2lnbmFscyB3 aXRoIHZvaWQgcmV0dXJuIHR5cGUuCj4gLSBBQ19OT1RFKGFzc3VtaW5nIHBvc2l4IHNpZ25hbCBk ZWZpbml0aW9uKQo+IC0tQUNfREVGSU5FKFNJR1ZPSUQpCj4gLStBQ19ERUZJTkUoW1NJR1ZPSURd LFsxXSxbU0lHVk9JRF0pCj4gLSAKPiAtIGVsc2UKPiAtIAo+IC1AQCAtNDg5LDcgKzQ4OSw3IEBA IEFDX1RSWV9DT01QSUxFKAo+IC0gI2lmZGVmIHNpZ25hbAo+IC0gI3VuZGVmIHNpZ25hbAo+IC0g I2VuZGlmCj4gLS1leHRlcm4gdm9pZCAoKnNpZ25hbCAoKSkgKCk7XSwgW2ludCBpO10sIEFDX0RF RklORShTSUdWT0lEKSkKPiAtK2V4dGVybiB2b2lkICgqc2lnbmFsICgpKSAoKTtdLCBbaW50IGk7 XSwgQUNfREVGSU5FKFtTSUdWT0lEXSxbMV0sW1NJR1ZPSURdKSkKPiAtIEFDX0NIRUNLSU5HKHNp Z3NldCkKPiAtIEFDX1RSWV9MSU5LKFsKPiAtICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KPiAtQEAg LTUwMCw5ICs1MDAsOSBAQCBzaWdzZXQoMCwgKHZvaWQgKCopKCkpMCk7Cj4gLSAjZWxzZQo+IC0g c2lnc2V0KDAsIChpbnQgKCopKCkpMCk7Cj4gLSAjZW5kaWYKPiAtLV0sIEFDX0RFRklORShVU0VT SUdTRVQpKQo+IC0rXSwgQUNfREVGSU5FKFtVU0VTSUdTRVRdLFsxXSxbVVNFU0lHU0VUXSkpCj4g LSAKPiAtLUFDX0RFRklORShTWVNWU0lHUykKPiAtK0FDX0RFRklORShbU1lTVlNJR1NdLFsxXSxb U1lTVlNJR1NdKQo+IC0gCj4gLSBmaQo+IC0gCj4gLUBAIC01MjgsNyArNTI4LDcgQEAgQUNfVFJZ X0xJTksoLFtjbG9zZWxvZygpO10sICwgW29sZGxpYnM9IiRMSUJTIgo+IC0gTElCUz0iJExJQlMg LWxic2QiCj4gLSBBQ19DSEVDS0lORyhzeXNsb2cgaW4gbGliYnNkLmEpCj4gLSBBQ19UUllfTElO SygsIFtjbG9zZWxvZygpO10sIEFDX05PVEUoLSBmb3VuZC4pLCBbTElCUz0iJG9sZGxpYnMiCj4g LS1BQ19OT1RFKC0gYmFkIG5ld3M6IHN5c2xvZyBtaXNzaW5nLikgQUNfREVGSU5FKE5PU1lTTE9H KV0pXSkKPiAtK0FDX05PVEUoLSBiYWQgbmV3czogc3lzbG9nIG1pc3NpbmcuKSBBQ19ERUZJTkUo W05PU1lTTE9HXSxbMV0sW05PU1lTTE9HXSldKV0pCj4gLSAKPiAtIEFDX0VHUkVQX0NQUCh5ZXMs Cj4gLSBbI2lmZGVmIE1fVU5JWAo+IC1AQCAtNTQ4LDM5ICs1NDgsMzkgQEAgQUNfVFJZX0NPTVBJ TEUoWyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KPiAtICNpZmRlZiBXRVhJVFNUQVRVUwo+IC0gICB5 ID0gV0VYSVRTVEFUVVMoeCk7Cj4gLSAjZW5kaWYKPiAtLV0sQUNfREVGSU5FKEJTRFdBSVQpKQo+ IC0rXSxBQ19ERUZJTkUoW0JTRFdBSVRdLFsxXSxbQlNEV0FJVF0pKQo+IC0gCj4gLSBpZiB0ZXN0 IC16ICIkYnV0dGVyZmx5IjsgdGhlbgo+IC0gQUNfQ0hFQ0tJTkcoZm9yIHRlcm1pbyBvciB0ZXJt aW9zKQo+IC0tQUNfVFJZX0NQUChbI2luY2x1ZGUgPHRlcm1pby5oPl0sIEFDX0RFRklORShURVJN SU8pLAo+IC0rQUNfVFJZX0NQUChbI2luY2x1ZGUgPHRlcm1pby5oPl0sIEFDX0RFRklORShbVEVS TUlPXSxbMV0sW1RFUk1JT10pLAo+IC0gaWYgdGVzdCAtbiAiJHBvc2l4IjsgdGhlbgo+IC0tQUNf VFJZX0NQUChbI2luY2x1ZGUgPHRlcm1pb3MuaD5dLCBBQ19ERUZJTkUoVEVSTUlPKSkKPiAtK0FD X1RSWV9DUFAoWyNpbmNsdWRlIDx0ZXJtaW9zLmg+XSwgQUNfREVGSU5FKFtURVJNSU9dLFsxXSxb VEVSTUlPXSkpCj4gLSBmaQo+IC0gKQo+IC0gZmkKPiAtIAo+IC0tZG5sIEFDX0NIRUNLX0hFQURF UihzaGFkb3cuaCwgQUNfREVGSU5FKFNIQURPV1BXKSkKPiAtK2RubCBBQ19DSEVDS19IRUFERVIo c2hhZG93LmgsIEFDX0RFRklORShbU0hBRE9XUFddLFsxXSxbU0hBRE9XUFddKSkKPiAtIEFDX0NI RUNLSU5HKGdldHNwbmFtKQo+IC0tQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxzaGFkb3cuaD5dLCBb Z2V0c3BuYW0oIngiKTtdLEFDX0RFRklORShTSEFET1dQVykpCj4gLStBQ19UUllfTElOSyhbI2lu Y2x1ZGUgPHNoYWRvdy5oPl0sIFtnZXRzcG5hbSgieCIpO10sQUNfREVGSU5FKFtTSEFET1dQV10s WzFdLFtTSEFET1dQV10pKQo+IC0gCj4gLSBBQ19DSEVDS0lORyhnZXR0dHllbnQpCj4gLS1BQ19U UllfTElOSygsW2dldHR0eWVudCgpO10sIEFDX0RFRklORShHRVRUVFlFTlQpKQo+IC0rQUNfVFJZ X0xJTksoLFtnZXR0dHllbnQoKTtdLCBBQ19ERUZJTkUoW0dFVFRUWUVOVF0sWzFdLFtHRVRUVFlF TlRdKSkKPiAtIAo+IC0gQUNfQ0hFQ0tJTkcoZmR3YWxrKQo+IC0tQUNfVFJZX0xJTksoWyNpbmNs dWRlIDxzdGRsaWIuaD5dLCBbZmR3YWxrKE5VTEwsIE5VTEwpO10sQUNfREVGSU5FKEhBVkVfRkRX QUxLKSkKPiAtK0FDX1RSWV9MSU5LKFsjaW5jbHVkZSA8c3RkbGliLmg+XSwgW2Zkd2FsayhOVUxM LCBOVUxMKTtdLEFDX0RFRklORShbSEFWRV9GRFdBTEtdLFsxXSxbSEFWRV9GRFdBTEtdKSkKPiAt IAo+IC0gQUNfQ0hFQ0tJTkcod2hldGhlciBtZW1jcHkvbWVtbW92ZS9iY29weSBoYW5kbGVzIG92 ZXJsYXBwaW5nIGFyZ3VtZW50cykKPiAtLUFDX0RFRklORShVU0VCQ09QWSkKPiAtK0FDX0RFRklO RShbVVNFQkNPUFldLFsxXSxbVVNFQkNPUFldKQo+IC0gCj4gLS1BQ19ERUZJTkUoVVNFTUVNTU9W RSkKPiAtK0FDX0RFRklORShbVVNFTUVNTU9WRV0sWzFdLFtVU0VNRU1NT1ZFXSkKPiAtIAo+IC0g Cj4gLS1BQ19ERUZJTkUoVVNFTUVNQ1BZKQo+IC0rQUNfREVGSU5FKFtVU0VNRU1DUFldLFsxXSxb VVNFTUVNQ1BZXSkKPiAtIAo+IC0gQUNfU1lTX0xPTkdfRklMRV9OQU1FUwo+IC0gCj4gLSBBQ19N U0dfQ0hFQ0tJTkcoZm9yIHZzcHJpbnRmKQo+IC0tQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxzdGRh cmcuaD5dLFt2YV9saXN0IHZhbGlzdDsgdnNwcmludGYoMCwwLHZhbGlzdCk7XSwgQUNfTVNHX1JF U1VMVCh5ZXMpO0FDX0RFRklORShVU0VWQVJBUkdTKSwgQUNfTVNHX1JFU1VMVChubykpCj4gLStB Q19UUllfTElOSyhbI2luY2x1ZGUgPHN0ZGFyZy5oPl0sW3ZhX2xpc3QgdmFsaXN0OyB2c3ByaW50 ZigwLDAsdmFsaXN0KTtdLCBBQ19NU0dfUkVTVUxUKHllcyk7QUNfREVGSU5FKFtVU0VWQVJBUkdT XSxbMV0sW1VTRVZBUkFSR1NdKSwgQUNfTVNHX1JFU1VMVChubykpCj4gLSAKPiAtIEFDX0hFQURF Ul9ESVJFTlQKPiAtIAo+IC1AQCAtNjAwLDIxICs2MDAsMjEgQEAgaWYgdGVzdCAteiAiJGFjX3Nl dGVudl9hcmdzIjsgdGhlbgo+IC0gICAgIF0sIGFjX3NldGVudl9hcmdzPTIpCj4gLSBmaQo+IC0g aWYgdGVzdCAtbiAiJGFjX3NldGVudl9hcmdzIjsgdGhlbgo+IC0tICAgIEFDX0RFRklORShVU0VT RVRFTlYpCj4gLSsgICAgQUNfREVGSU5FKFtVU0VTRVRFTlZdLFsxXSxbVVNFU0VURU5WXSkKPiAt ICAgICBpZiB0ZXN0ICIkYWNfc2V0ZW52X2FyZ3MiID0gMzsgdGhlbgo+IC0tICAgICAgICBBQ19E RUZJTkUoSEFWRV9TRVRFTlZfMykKPiAtKyAgICAgICAgQUNfREVGSU5FKFtIQVZFX1NFVEVOVl8z XSxbMV0sW0hBVkVfU0VURU5WXzNdKQo+IC0gICAgIGVsaWYgdGVzdCAiJGFjX3NldGVudl9hcmdz IiA9IDI7IHRoZW4KPiAtLSAgICAgICAgQUNfREVGSU5FKEhBVkVfU0VURU5WXzIpCj4gLSsgICAg ICAgIEFDX0RFRklORShbSEFWRV9TRVRFTlZfMl0sWzFdLFtIQVZFX1NFVEVOVl8yXSkKPiAtICAg ICBmaQo+IC0gZWxzZQo+IC0gICAgIEFDX01TR19SRVNVTFQobm8pCj4gLSAgICAgQUNfTVNHX0NI RUNLSU5HKGZvciBwdXRlbnYpCj4gLS0gICAgQUNfVFJZX0xJTksoLFtwdXRlbnYoKGNoYXIgKikw KTt1bnNldGVudigoY2hhciAqKTApO10sIEFDX01TR19SRVNVTFQoeWVzKSAsICBBQ19NU0dfUkVT VUxUKG5vKTtBQ19ERUZJTkUoTkVFRFBVVEVOVikpCj4gLSsgICAgQUNfVFJZX0xJTksoLFtwdXRl bnYoKGNoYXIgKikwKTt1bnNldGVudigoY2hhciAqKTApO10sIEFDX01TR19SRVNVTFQoeWVzKSAs ICBBQ19NU0dfUkVTVUxUKG5vKTtBQ19ERUZJTkUoW05FRURQVVRFTlZdLFsxXSxbTkVFRFBVVEVO Vl0pKQo+IC0gZmkKPiAtIEFDX01TR19DSEVDS0lORyhbZm9yIG5sX2xhbmdpbmZvKENPREVTRVQp XSkKPiAtIEFDX1RSWV9MSU5LKFsKPiAtICNpbmNsdWRlIDxsYW5naW5mby5oPgo+IC0tXSxbbmxf bGFuZ2luZm8oQ09ERVNFVCk7XSwgQUNfTVNHX1JFU1VMVCh5ZXMpO0FDX0RFRklORShIQVZFX05M X0xBTkdJTkZPKSwgQUNfTVNHX1JFU1VMVChubykpCj4gLStdLFtubF9sYW5naW5mbyhDT0RFU0VU KTtdLCBBQ19NU0dfUkVTVUxUKHllcyk7QUNfREVGSU5FKFtIQVZFX05MX0xBTkdJTkZPXSxbMV0s W0hBVkVfTkxfTEFOR0lORk9dKSwgQUNfTVNHX1JFU1VMVChubykpCj4gLSAKPiAtIEFDX1NFQVJD SF9MSUJTKGdldGhvc3RuYW1lLCBuc2wpCj4gLSAKPiAtQEAgLTYyOSwyNSArNjI5LDI1IEBAIGlm IHRlc3QgIiRlbmFibGVfcGFtIiA9ICJ5ZXMiOyB0aGVuCj4gLSAJcGFtX3N0YXJ0KDAsIDAsIDAs IDApOwo+IC0gCXBhbV9hdXRoZW50aWNhdGUoMCwgMCk7Cj4gLSAJcGFtX2VuZCgwLDApOwo+IC0t ICAgIF0sIEFDX01TR19SRVNVTFQoeWVzKTtBQ19ERUZJTkUoVVNFX1BBTSksCj4gLSsgICAgXSwg QUNfTVNHX1JFU1VMVCh5ZXMpO0FDX0RFRklORShbVVNFX1BBTV0sWzFdLFtVU0VfUEFNXSksCj4g LSAgICAgICAgQUNfTVNHX1JFU1VMVChubyk7TElCUz0iJG9sZGxpYnMiKQo+IC0gZmkKPiAtIAo+ IC0gQUNfQVJHX0VOQUJMRSh1c2VfbG9jYWxlLCBbICAtLWVuYWJsZS11c2UtbG9jYWxlICAgICAg ICAgdXNlIGxvY2FsaXplZCBtb250aC9kYXkgbmFtZXNdKQo+IC0gaWYgdGVzdCAiJGVuYWJsZV91 c2VfbG9jYWxlIiA9ICJ5ZXMiOyB0aGVuCj4gLS0gIEFDX0RFRklORShVU0VfTE9DQUxFKQo+IC0r ICBBQ19ERUZJTkUoW1VTRV9MT0NBTEVdLFsxXSxbVVNFX0xPQ0FMRV0pCj4gLSBmaQo+IC0gQUNf QVJHX0VOQUJMRSh0ZWxuZXQsIFsgIC0tZW5hYmxlLXRlbG5ldCAgICAgICAgIGVuYWJsZSBidWls dGluIHRlbG5ldF0pCj4gLSBpZiB0ZXN0ICIkZW5hYmxlX3RlbG5ldCIgPSAieWVzIjsgdGhlbgo+ IC0tICBBQ19ERUZJTkUoQlVJTFRJTl9URUxORVQpCj4gLSsgIEFDX0RFRklORShbQlVJTFRJTl9U RUxORVRdLFsxXSxbQlVJTFRJTl9URUxORVRdKQo+IC0gZmkKPiAtIEFDX0FSR19FTkFCTEUoY29s b3JzMjU2LCBbICAtLWVuYWJsZS1jb2xvcnMyNTYgICAgICBlbmFibGUgc3VwcG9ydCBmb3IgMjU2 IGNvbG9yc10pCj4gLSBpZiB0ZXN0ICIkZW5hYmxlX2NvbG9yczI1NiIgPSAieWVzIjsgdGhlbgo+ IC0tICBBQ19ERUZJTkUoQ09MT1JTMjU2KQo+IC0rICBBQ19ERUZJTkUoW0NPTE9SUzI1Nl0sWzFd LFtDT0xPUlMyNTZdKQo+IC0gZmkKPiAtIEFDX0FSR19FTkFCTEUocnh2dF9vc2MsIFsgIC0tZW5h YmxlLXJ4dnRfb3NjICAgICAgIGVuYWJsZSBzdXBwb3J0IGZvciByeHZ0IE9TQyBjb2Rlc10pCj4g LSBpZiB0ZXN0ICIkZW5hYmxlX3J4dnRfb3NjIiA9ICJ5ZXMiOyB0aGVuCj4gLS0gIEFDX0RFRklO RShSWFZUX09TQykKPiAtKyAgQUNfREVGSU5FKFtSWFZUX09TQ10sWzFdLFtSWFZUX09TQ10pCj4g LSBmaQo+IC0gCj4gLSBkbmwKPiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9zY3JlZW4tNC41LjAvMDAw NC1GaXgtc29tZS10eXBvcy1mb3VuZC1ieS1MaW50aWFuLnBhdGNoIGIvcGF0Y2hlcy9zY3JlZW4t NC41LjAvMDAwNC1GaXgtc29tZS10eXBvcy1mb3VuZC1ieS1MaW50aWFuLnBhdGNoCj4gZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggYjM2OGY0NGVjNjdmLi4wMDAwMDAwMDAwMDAKPiAt LS0gYS9wYXRjaGVzL3NjcmVlbi00LjUuMC8wMDA0LUZpeC1zb21lLXR5cG9zLWZvdW5kLWJ5LUxp bnRpYW4ucGF0Y2gKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsNDggKzAsMCBAQAo+IC1Gcm9tOiBB eGVsIEJlY2tlcnQgPGFiZUBkZWJpYW4ub3JnPgo+IC1EYXRlOiBNb24sIDMgSnVsIDIwMTcgMTA6 NDE6MTkgKzAyMDAKPiAtU3ViamVjdDogW1BBVENIXSBGaXggc29tZSB0eXBvcyBmb3VuZCBieSBM aW50aWFuCj4gLQo+IC1Gb3J3YXJkZWQ6IG5vCj4gLUJ1Zy1EZWJpYW46IGh0dHBzOi8vYnVncy5k ZWJpYW4ub3JnLzc0MTE0MQo+IC0tLS0KPiAtIGFjbHMuYyAgICAgICB8IDQgKystLQo+IC0gZG9j L3NjcmVlbi4xIHwgNCArKy0tCj4gLSAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKPiAtCj4gLWRpZmYgLS1naXQgYS9hY2xzLmMgYi9hY2xzLmMKPiAtaW5k ZXggM2IxNjY5Y2Y0YTkzLi41MTRlMGZjNDcxNmQgMTAwNjQ0Cj4gLS0tLSBhL2FjbHMuYwo+IC0r KysgYi9hY2xzLmMKPiAtQEAgLTU3OCw3ICs1NzgsNyBAQCBjaGFyICpuYW1lLCAqcHcxLCAqcHcy Owo+IC0gICAgIH0KPiAtICAgCj4gLSAgIGRlYnVnMigic3lzbG9nKExPR19OT1RJQ0UsIFwic2Ny ZWVuICVzOiBcInN1ICVzXCIgIiwgU29ja1BhdGgsIG5hbWUpOwo+IC0tICBkZWJ1ZzIoIiVzIGZv ciBcIiVzXCJcbiIsIHNvcnJ5ID8gImZhaWxlZCIgOiAic3VjY2VkZWQiLCAoKnVwKS0+dV9uYW1l KTsKPiAtKyAgZGVidWcyKCIlcyBmb3IgXCIlc1wiXG4iLCBzb3JyeSA/ICJmYWlsZWQiIDogInN1 Y2NlZWRlZCIsICgqdXApLT51X25hbWUpOwo+IC0gI2lmbmRlZiBOT1NZU0xPRwo+IC0gIyBpZmRl ZiBCU0RfNDIKPiAtICAgb3BlbmxvZygic2NyZWVuIiwgTE9HX1BJRCk7Cj4gLUBAIC01ODYsNyAr NTg2LDcgQEAgY2hhciAqbmFtZSwgKnB3MSwgKnB3MjsKPiAtICAgb3BlbmxvZygic2NyZWVuIiwg TE9HX1BJRCwgTE9HX0FVVEgpOwo+IC0gIyBlbmRpZiAvKiBCU0RfNDIgKi8KPiAtICAgc3lzbG9n KExPR19OT1RJQ0UsICIlczogXCJzdSAlc1wiICVzIGZvciBcIiVzXCIiLCBTb2NrUGF0aCwgbmFt ZSwgCj4gLS0gICAgICAgICBzb3JyeSA/ICJmYWlsZWQiIDogInN1Y2NlZGVkIiwgKCp1cCktPnVf bmFtZSk7Cj4gLSsgICAgICAgICBzb3JyeSA/ICJmYWlsZWQiIDogInN1Y2NlZWRlZCIsICgqdXAp LT51X25hbWUpOwo+IC0gICBjbG9zZWxvZygpOwo+IC0gI2Vsc2UKPiAtICAgZGVidWcoIk5PVCBM T0dHRUQuXG4iKTsKPiAtZGlmZiAtLWdpdCBhL2RvYy9zY3JlZW4uMSBiL2RvYy9zY3JlZW4uMQo+ IC1pbmRleCAyM2I0ZDdiMTIwMmEuLjBmZThkMGU1MzNjMiAxMDA2NDQKPiAtLS0tIGEvZG9jL3Nj cmVlbi4xCj4gLSsrKyBiL2RvYy9zY3JlZW4uMQo+IC1AQCAtMTM1Niw4ICsxMzU2LDggQEAgbm9u LXdoaXRlc3BhY2UgY2hhcmFjdGVyIG9uIHRoZSBsaW5lLgo+IC0gXGZCQlxmUCwgXGZCRVxmUCBt b3ZlIHRoZSBjdXJzb3IgV09SRCBieSBXT1JEIChhcyBpbiB2aSkuCj4gLSAuYnIgCj4gLSAudGkg LTJuCj4gLS0uXCJcZkJmXGZQLFxmQnRcZlAsIFxmQkZcZlAsIFxmQlRcZlAgbW92ZSB0aGUgY3Vy c29yIGZvcndhcmQvYmFja3dhcmQgdG8gdGhlIG5leHQgb2NjdXJlbmNlIG9mIHRoZSB0YXJnZXQu Cj4gLS1cZkJmL0ZcZlAsIFxmQnQvVFxmUCBtb3ZlIHRoZSBjdXJzb3IgZm9yd2FyZC9iYWNrd2Fy ZCB0byB0aGUgbmV4dCBvY2N1cmVuY2Ugb2YgdGhlIHRhcmdldC4gKGVnLCAnM2Z5JyB3aWxsIAo+ IC0rLlwiXGZCZlxmUCxcZkJ0XGZQLCBcZkJGXGZQLCBcZkJUXGZQIG1vdmUgdGhlIGN1cnNvciBm b3J3YXJkL2JhY2t3YXJkIHRvIHRoZSBuZXh0IG9jY3VycmVuY2Ugb2YgdGhlIHRhcmdldC4KPiAt K1xmQmYvRlxmUCwgXGZCdC9UXGZQIG1vdmUgdGhlIGN1cnNvciBmb3J3YXJkL2JhY2t3YXJkIHRv IHRoZSBuZXh0IG9jY3VycmVuY2Ugb2YgdGhlIHRhcmdldC4gKGVnLCAnM2Z5JyB3aWxsIAo+IC0g bW92ZSB0aGUgY3Vyc29yIHRvIHRoZSAzcmQgJ3knIHRvIHRoZSByaWdodC4pCj4gLSAuYnIKPiAt IC50aSAtMm4KPiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9zY3JlZW4tNC41LjAvMDAwNS1zaG93LWVu Y29kaW5nLWluLWhhcmRzdGF0dXMucGF0Y2ggYi9wYXRjaGVzL3NjcmVlbi00LjUuMC8wMDA1LXNo b3ctZW5jb2RpbmctaW4taGFyZHN0YXR1cy5wYXRjaAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDEyM2MzN2NjZWUyZS4uMDAwMDAwMDAwMDAwCj4gLS0tIGEvcGF0Y2hlcy9zY3Jl ZW4tNC41LjAvMDAwNS1zaG93LWVuY29kaW5nLWluLWhhcmRzdGF0dXMucGF0Y2gKPiArKysgL2Rl di9udWxsCj4gQEAgLTEsNTIgKzAsMCBAQAo+IC1Gcm9tOiBZaS1KaGVuZyBMaW4gPHl6bGluQGNz Lm5jdHUuZWR1LnR3Pgo+IC1EYXRlOiBNb24sIDMgSnVsIDIwMTcgMTA6NDI6NTIgKzAyMDAKPiAt U3ViamVjdDogW1BBVENIXSBzaG93IGVuY29kaW5nIGluIGhhcmRzdGF0dXMKPiAtCj4gLU9yaWdp bjogaHR0cHM6Ly9zdm53ZWIuZnJlZWJzZC5vcmcvcG9ydHMvaGVhZC9zeXN1dGlscy9zY3JlZW4v ZmlsZXMvb3B0LXNob3dlbmNvZGluZz92aWV3PW1hcmt1cAo+IC1SZXZpZXdlZC1CeTogcmFzY292 IDxyYXNjb3ZAcmFzY292LnR3Pgo+IC1SZXZpZXdlZC1CeTogRHVzdGluIEtpcmtsYW5kIDxraXJr bGFuZEB1YnVudHUuY29tPgo+IC1MYXN0LVVwZGF0ZTogV2VkIEZlYiAxMSAwNTo1MTozMSBDU1Qg MjAwOQo+IC1CdWctRnJlZUJTRDogaHR0cHM6Ly9idWdzLmZyZWVic2Qub3JnL2J1Z3ppbGxhL3No b3dfYnVnLmNnaT9pZD0xMjQ0OTIKPiAtQnVnLVVidW50dTogaHR0cHM6Ly9idWdzLmxhdW5jaHBh ZC5uZXQvdWJ1bnR1Lytzb3VyY2Uvc2NyZWVuLytidWcvMjg2ODEwCj4gLUJ1Zy1EZWJpYW46IGh0 dHBzOi8vYnVncy5kZWJpYW4ub3JnLzUzMzQ5OAo+IC0tLS0KPiAtIHByb2Nlc3MuYyB8ICAxICsK PiAtIHNjcmVlbi5jICB8IDEzICsrKysrKysrKysrKysKPiAtIDIgZmlsZXMgY2hhbmdlZCwgMTQg aW5zZXJ0aW9ucygrKQo+IC0KPiAtZGlmZiAtLWdpdCBhL3Byb2Nlc3MuYyBiL3Byb2Nlc3MuYwo+ IC1pbmRleCA2M2M4NWIxYTBhNjUuLjMwNGNlMGU2OTFkZSAxMDA2NDQKPiAtLS0tIGEvcHJvY2Vz cy5jCj4gLSsrKyBiL3Byb2Nlc3MuYwo+IC1AQCAtMzc4Myw2ICszNzgzLDcgQEAgaW50IGtleTsK PiAtIAkgICAgewo+IC0gCSAgICAgIFdpblN3aXRjaEVuY29kaW5nKGZvcmUsIG4pOwo+IC0gCSAg ICAgIFJlc2V0Q2hhcnNldHMoZm9yZSk7Cj4gLSsJICAgICAgUmVkaXNwbGF5RGlzcGxheXMoMCk7 Cj4gLSAJICAgIH0KPiAtIAkgIGVsc2UgaWYgKGkgJiYgZGlzcGxheSkKPiAtIAkgICAgRF9lbmNv ZGluZyAgPSBuOwo+IC1kaWZmIC0tZ2l0IGEvc2NyZWVuLmMgYi9zY3JlZW4uYwo+IC1pbmRleCA2 NDY1MGU5YjJlZGMuLjdjYWQyMDYyNmYyYiAxMDA2NDQKPiAtLS0tIGEvc2NyZWVuLmMKPiAtKysr IGIvc2NyZWVuLmMKPiAtQEAgLTI3NjEsNiArMjc2MSwxOSBAQCBjaGFyICpNYWtlV2luTXNnRXYo Y2hhciAqc3RyLCBzdHJ1Y3Qgd2luICp3aW4sIGludCBlc2MsIGludCBwYWRsZW4sIHN0cnVjdCBl dmVudAo+IC0gICAgICAgcCArPSBzdHJsZW4ocCkgLSAxOwo+IC0gICAgICAgYnJlYWs7Cj4gLSAK PiAtKyAgICAgICNpZmRlZiBFTkNPRElOR1MKPiAtKyAgICAgIGNhc2UgJ2UnOgo+IC0rICAgICAg ICAqcCA9IDA7Cj4gLSsgICAgICAgIERfZW5jb2RpbmcgPSBud2luX29wdGlvbnMuZW5jb2Rpbmcg PiAwID8gbndpbl9vcHRpb25zLmVuY29kaW5nIDogMDsKPiAtKyAgICAgICAgaWYgKHdpbiAmJiB3 aW4tPndfZW5jb2RpbmcpCj4gLSsgICAgICAgICAgewo+IC0rICAgICAgICAgICAgKnArKyA9ICcg JzsKPiAtKyAgICAgICAgICAgIHN0cmNweShwLCBFbmNvZGluZ05hbWUod2luLT53X2VuY29kaW5n KSk7Cj4gLSsgICAgICAgICAgfQo+IC0rICAgICAgICAgIHAgKz0gc3RybGVuKHApIC0gMTsKPiAt KyAgICAgICAgICBicmVhazsKPiAtKyAgICAgICNlbmRpZgo+IC0rCj4gLSAgICAgY2FzZSAneyc6 Cj4gLSAgICAgewo+IC0gICAgICAgY2hhciByYnVmWzEyOF07Cj4gZGlmZiAtLWdpdCBhL3BhdGNo ZXMvc2NyZWVuLTQuNS4wLzAwMDYtVW5icmVhay1zZXZlcmFsLXVzZWZ1bC1rZXliaW5kaW5ncy5w YXRjaCBiL3BhdGNoZXMvc2NyZWVuLTQuNS4wLzAwMDYtVW5icmVhay1zZXZlcmFsLXVzZWZ1bC1r ZXliaW5kaW5ncy5wYXRjaAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDgzMGYy YTc4ZGEzOC4uMDAwMDAwMDAwMDAwCj4gLS0tIGEvcGF0Y2hlcy9zY3JlZW4tNC41LjAvMDAwNi1V bmJyZWFrLXNldmVyYWwtdXNlZnVsLWtleWJpbmRpbmdzLnBhdGNoCj4gKysrIC9kZXYvbnVsbAo+ IEBAIC0xLDIyICswLDAgQEAKPiAtRnJvbTogTG9pYyBNaW5pZXIgPGxvb2xAZG9vei5vcmc+Cj4g LURhdGU6IE1vbiwgMyBKdWwgMjAxNyAxMDo0NDo1NyArMDIwMAo+IC1TdWJqZWN0OiBbUEFUQ0hd IFVuYnJlYWsgc2V2ZXJhbCB1c2VmdWwga2V5YmluZGluZ3MuCj4gLQo+IC1CdWdzLURlYmlhbjog aHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvNDg0NjQ3Cj4gLS0tLQo+IC0gdGVybWNhcC5jIHwgMiAt LQo+IC0gMSBmaWxlIGNoYW5nZWQsIDIgZGVsZXRpb25zKC0pCj4gLQo+IC1kaWZmIC0tZ2l0IGEv dGVybWNhcC5jIGIvdGVybWNhcC5jCj4gLWluZGV4IGFlODlkMTc1YmMyYy4uNTdlZDQzYTZkMDk2 IDEwMDY0NAo+IC0tLS0gYS90ZXJtY2FwLmMKPiAtKysrIGIvdGVybWNhcC5jCj4gLUBAIC01NTIs OCArNTUyLDYgQEAgaW50IG1hcDsKPiAtICAgICAgIGVsc2UKPiAtIAlicmVhazsKPiAtICAgICB9 Cj4gLS0gIGlmIChuIDwgS01BUF9LRVlTKQo+IC0tICAgIGRvbWFwID0gMTsKPiAtICAgaWYgKG1h cCA9PSAwICYmIGRvbWFwKQo+IC0gICAgIHJldHVybiAwOwo+IC0gICBpZiAobWFwICYmICFkb21h cCkKPiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9zY3JlZW4tNC41LjAvMDAwNy1GaXgtcHJpdmlsZWdl LWVzY2FsYXRpb24tYnktcmV2ZXJ0aW5nLXVwc3RyZWFtLWNvbW1pLnBhdGNoIGIvcGF0Y2hlcy9z Y3JlZW4tNC41LjAvMDAwNy1GaXgtcHJpdmlsZWdlLWVzY2FsYXRpb24tYnktcmV2ZXJ0aW5nLXVw c3RyZWFtLWNvbW1pLnBhdGNoCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMTM0 OTM0ZjNkZmIwLi4wMDAwMDAwMDAwMDAKPiAtLS0gYS9wYXRjaGVzL3NjcmVlbi00LjUuMC8wMDA3 LUZpeC1wcml2aWxlZ2UtZXNjYWxhdGlvbi1ieS1yZXZlcnRpbmctdXBzdHJlYW0tY29tbWkucGF0 Y2gKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsMzAgKzAsMCBAQAo+IC1Gcm9tOiBBeGVsIEJlY2tl cnQgPGFiZUBkZWJpYW4ub3JnPgo+IC1EYXRlOiBNb24sIDMgSnVsIDIwMTcgMTA6NDY6MDggKzAy MDAKPiAtU3ViamVjdDogW1BBVENIXSBGaXggcHJpdmlsZWdlIGVzY2FsYXRpb24gYnkgcmV2ZXJ0 aW5nIHVwc3RyZWFtIGNvbW1pdAo+IC0gNTQ2MGY1ZDIKPiAtCj4gLUJ1Zy1EZWJpYW46IGh0dHBz Oi8vYnVncy5kZWJpYW4ub3JnLzg1MjQ4NAo+IC1CdWctQ1ZFOiBodHRwczovL2N2ZS5taXRyZS5v cmcvY2dpLWJpbi9jdmVuYW1lLmNnaT9uYW1lPUNWRS0yMDE3LTU2MTgKPiAtQnVnOiBodHRwczov L3NhdmFubmFoLmdudS5vcmcvYnVncy8/NTAxNDIKPiAtICAgICBodHRwczovL2xpc3RzLmdudS5v cmcvYXJjaGl2ZS9odG1sL3NjcmVlbi1kZXZlbC8yMDE3LTAxL21zZzAwMDI1Lmh0bWwKPiAtLS0t Cj4gLSBzY3JlZW4uYyB8IDYgLS0tLS0tCj4gLSAxIGZpbGUgY2hhbmdlZCwgNiBkZWxldGlvbnMo LSkKPiAtCj4gLWRpZmYgLS1naXQgYS9zY3JlZW4uYyBiL3NjcmVlbi5jCj4gLWluZGV4IDdjYWQy MDYyNmYyYi4uZTYwZDBhNzEyZmI1IDEwMDY0NAo+IC0tLS0gYS9zY3JlZW4uYwo+IC0rKysgYi9z Y3JlZW4uYwo+IC1AQCAtNjczLDEyICs2NzMsNiBAQCBpbnQgbWFpbihpbnQgYWMsIGNoYXIqKiBh dikKPiAtICAgICAgICAgICAgICAgICBQYW5pYygwLCAiLUw6IGxvZ2ZpbGUgbmFtZSBjYW4gbm90 IHN0YXJ0IHdpdGggXCItXCIgc3ltYm9sIik7Cj4gLSAgICAgICAgICAgICAgIGlmIChzdHJsZW4o c2NyZWVubG9nZmlsZSkgPiBQQVRIX01BWCkKPiAtICAgICAgICAgICAgICAgICBQYW5pYygwLCAi LUw6IGxvZ2ZpbGUgbmFtZSB0b28gbG9uZy4gKG1heC4gJWQgY2hhcikiLCBQQVRIX01BWCk7Cj4g LS0KPiAtLSAgICAgICAgICAgICAgRklMRSAqd19jaGVjazsKPiAtLSAgICAgICAgICAgICAgaWYg KCh3X2NoZWNrID0gZm9wZW4oc2NyZWVubG9nZmlsZSwgInciKSkgPT0gTlVMTCkKPiAtLSAgICAg ICAgICAgICAgICBQYW5pYygwLCAiLUw6IGxvZ2ZpbGUgbmFtZSBhY2Nlc3MgcHJvYmxlbSIpOwo+ IC0tICAgICAgICAgICAgICBlbHNlCj4gLS0gICAgICAgICAgICAgICAgZmNsb3NlKHdfY2hlY2sp Owo+IC0gICAgICAgICAgICAgfQo+IC0gICAgICAgICAgICAgbndpbl9vcHRpb25zLkxmbGFnID0g MTsKPiAtICAgICAgICAgICAgIGJyZWFrOwo+IGRpZmYgLS1naXQgYS9wYXRjaGVzL3NjcmVlbi00 LjUuMC8wMDA4LUZpeC10ZXJtaW5hbC1nYXJiYWdlLWluLURlYmlhbi1JbnN0YWxsZXItb3Zlci1z ZXJpYWwucGF0Y2ggYi9wYXRjaGVzL3NjcmVlbi00LjUuMC8wMDA4LUZpeC10ZXJtaW5hbC1nYXJi YWdlLWluLURlYmlhbi1JbnN0YWxsZXItb3Zlci1zZXJpYWwucGF0Y2gKPiBkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKPiBpbmRleCBhMTc0ZWExMGM2ZTguLjAwMDAwMDAwMDAwMAo+IC0tLSBhL3Bh dGNoZXMvc2NyZWVuLTQuNS4wLzAwMDgtRml4LXRlcm1pbmFsLWdhcmJhZ2UtaW4tRGViaWFuLUlu c3RhbGxlci1vdmVyLXNlcmlhbC5wYXRjaAo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSwyNCArMCww IEBACj4gLUZyb206IFNhbXVlbCBUaGliYXVsdCA8c3RoaWJhdWx0QGRlYmlhbi5vcmc+Cj4gLURh dGU6IE1vbiwgMyBKdWwgMjAxNyAxMDo0NzoxNCArMDIwMAo+IC1TdWJqZWN0OiBbUEFUQ0hdIEZp eCB0ZXJtaW5hbCBnYXJiYWdlIGluIERlYmlhbiBJbnN0YWxsZXIgb3ZlciBzZXJpYWwgbGluZQo+ IC0KPiAtUmV2aWV3ZWQtQnk6IEpvaG4gUGF1bCBBZHJpYW4gR2xhdWJpdHogPGdsYXViaXR6QHBo eXNpay5mdS1iZXJsaW4uZGU+Cj4gLUJ1Zy1EZWJpYW46IGh0dHBzOi8vYnVncy5kZWJpYW4ub3Jn Lzg1NzgwOAo+IC1CdWc6IGh0dHBzOi8vc2F2YW5uYWguZ251Lm9yZy9idWdzLz81MDU4OAo+IC0t LS0KPiAtIHRlcm1jYXAuYyB8IDIgKysKPiAtIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KykKPiAtCj4gLWRpZmYgLS1naXQgYS90ZXJtY2FwLmMgYi90ZXJtY2FwLmMKPiAtaW5kZXggNTdl ZDQzYTZkMDk2Li4xYjE1ZTYzYTMxOTIgMTAwNjQ0Cj4gLS0tLSBhL3Rlcm1jYXAuYwo+IC0rKysg Yi90ZXJtY2FwLmMKPiAtQEAgLTQ4Niw2ICs0ODYsOCBAQCBpbnQgaGU7Cj4gLSAKPiAtICAgRF90 Y2luaXRlZCA9IDE7Cj4gLSAgIE1ha2VUZXJtY2FwKDApOwo+IC0rICAvKiBNYWtlIHN1cmUgbGli dGVybSB1c2VzIGV4dGVybmFsIHRlcm0gcHJvcGVydGllcyBmb3Igb3VyIHRwdXRzKCkgY2FsbHMu ICAqLwo+IC0rICBlX3RnZXRlbnQodGJ1ZiwgRF90ZXJtbmFtZSk7Cj4gLSAjaWZkZWYgTUFQS0VZ Uwo+IC0gICBDaGVja0VzY2FwZSgpOwo+IC0gI2VuZGlmCj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMv c2NyZWVuLTQuNS4wLzAwMDktSWdub3JlLWxvZ2ZpbGUtcy1uYW1lLXRoYXQtYmVnaW5zLXdpdGgt dGhlLXN5bWJvbC5wYXRjaCBiL3BhdGNoZXMvc2NyZWVuLTQuNS4wLzAwMDktSWdub3JlLWxvZ2Zp bGUtcy1uYW1lLXRoYXQtYmVnaW5zLXdpdGgtdGhlLXN5bWJvbC5wYXRjaAo+IGRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAo+IGluZGV4IGQ3ODlmNTZkYjg5Zi4uMDAwMDAwMDAwMDAwCj4gLS0tIGEv cGF0Y2hlcy9zY3JlZW4tNC41LjAvMDAwOS1JZ25vcmUtbG9nZmlsZS1zLW5hbWUtdGhhdC1iZWdp bnMtd2l0aC10aGUtc3ltYm9sLnBhdGNoCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDc3ICswLDAg QEAKPiAtRnJvbTogQWxleGFuZGVyIE5hdW1vdiA8YWxleGFuZGVyX25hdW1vdkBvcGVuc3VzZS5v cmc+Cj4gLURhdGU6IE1vbiwgMyBKdWwgMjAxNyAxMDo0ODowNSArMDIwMAo+IC1TdWJqZWN0OiBb UEFUQ0hdIElnbm9yZSBsb2dmaWxlJ3MgbmFtZSB0aGF0IGJlZ2lucyB3aXRoIHRoZSAiLSIgc3lt Ym9sCj4gLQo+IC0gVGhpcyBmaXhlcyB0aGUgQVBJOgo+IC0gLgo+IC0gVG8gZW5hYmxlIGxvZ2dp bmcgd2UgdXNlIC1MIG9wdGlvbi4gQnV0IGluIGNhc2Ugb2YKPiAtIGRlZmF1bHQgbG9nZmlsZSBu YW1lIChzY3JlZW5sb2cuMCkgd2Ugd2lsbCBuZWVkIHRvCj4gLSBkZWZpbmUgaXQgYW55d2F5LiBC ZWNhdXNlIHNjcmVlbiB3aWxsIHRyeSB0byBpbnRlcnByZXQKPiAtIG5leHQgb3B0aW9uIGFzIGEg cGFyYW1ldGVyIGZvciAtTCBvcHRpb24gKHdoaWNoIGlzCj4gLSBsb2dmaWxlIG5hbWUpLiBJdCB3 aWxsIGZhaWxzIEFMV0FZUywgYmVjYXVzZSBuZXh0Cj4gLSBwYXJhbWV0ZXIgd2lsbCBhbHdheXMg c3RhcnQgd2l0aCAiLSIgc3ltYm9sLi4uCj4gLSB3aGF0IGlzIG5vdCBwZXJtaXRlZCBmb3IgbG9n ZmlsZSBuYW1lIG9mIGNvdXJzZS4KPiAtIC4KPiAtIEZvciBleGFtcGxlOgo+IC0gLgo+IC0gJCBz Y3JlZW4gLUwgLUQgLW0gLi9jb25maWd1cmUKPiAtIC4KPiAtIEluIHRoaXMgY2FzZSBsb2dmaWxl IG5hbWUgaXMgc2NyZWVubG9nLjAsIGJlY2F1c2UgIi1EIgo+IC0gd2lsbCBub3QgYmUgaW50ZXJw cmV0ZWQgYnkgc2NyZWVuIGFzIGEgbmFtZSBvZiBsb2dmaWxlLgo+IC1CdWctRGViaWFuOiBodHRw czovL2J1Z3MuZGViaWFuLm9yZy84NjMwOTUKPiAtQnVnOiBodHRwczovL3NhdmFubmFoLmdudS5v cmcvYnVncy8/NTA0NDAKPiAtUmV2aWV3ZC1CeTogQXhlbCBCZWNrZXJ0IDxhYmVAZGViaWFuLm9y Zz4KPiAtLS0tCj4gLSBkb2Mvc2NyZWVuLjEgICAgICAgfCA0ICsrLS0KPiAtIGRvYy9zY3JlZW4u dGV4aW5mbyB8IDQgKysrLQo+IC0gc2NyZWVuLmMgICAgICAgICAgIHwgNyArKysrKy0tCj4gLSAz IGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4gLQo+IC1k aWZmIC0tZ2l0IGEvZG9jL3NjcmVlbi4xIGIvZG9jL3NjcmVlbi4xCj4gLWluZGV4IDBmZThkMGU1 MzNjMi4uZWUyMTAzNDZkYWI4IDEwMDY0NAo+IC0tLS0gYS9kb2Mvc2NyZWVuLjEKPiAtKysrIGIv ZG9jL3NjcmVlbi4xCj4gLUBAIC0yNjIsOCArMjYyLDggQEAgQXNrIHlvdXIgc3lzdGVtIGFkbWlu aXN0cmF0b3IgaWYgeW91IGFyZSBub3Qgc3VyZS4gUmVtb3ZlIHNlc3Npb25zIHdpdGggdGhlCj4g LSB0ZWxscwo+IC0gLkkgc2NyZWVuCj4gLSB0byB0dXJuIG9uIGF1dG9tYXRpYyBvdXRwdXQgbG9n Z2luZyBmb3IgdGhlIHdpbmRvd3MuIEJ5IGRlZmF1bHQsIGxvZ2ZpbGUncyBuYW1lCj4gLS1pcyBz Y3JlZW5sb2cuMS4gWW91IGNhbiBzZXRzIG5ldyBuYW1lOiBhZGQgaXQgcmlnaHQgYWZ0ZXIgLUwg b3B0aW9uIGUuZy4gInNjcmVlbgo+IC0tLUwgbXlfbG9nZmlsZSIuCj4gLStpcyBzY3JlZW5sb2cu MC4gWW91IGNhbiBzZXQgbmV3IG5hbWU6IGFkZCBpdCByaWdodCBhZnRlciAtTCBvcHRpb24gZS5n LiAic2NyZWVuCj4gLSstTCBteV9sb2dmaWxlIi4gS2VlcCBpbiBtaW5kIHRoYXQgbmFtZSBjYW4g bm90IHN0YXJ0IHdpdGggIi0iIHN5bWJvbC4KPiAtIC5UUCA1Cj4gLSAuQiBcLW0KPiAtIGNhdXNl cwo+IC1kaWZmIC0tZ2l0IGEvZG9jL3NjcmVlbi50ZXhpbmZvIGIvZG9jL3NjcmVlbi50ZXhpbmZv Cj4gLWluZGV4IDJmZjM5YjA4YTc5Yy4uYzk0OTkzZWRkMmVkIDEwMDY0NAo+IC0tLS0gYS9kb2Mv c2NyZWVuLnRleGluZm8KPiAtKysrIGIvZG9jL3NjcmVlbi50ZXhpbmZvCj4gLUBAIC0zMzQsNyAr MzM0LDkgQEAgUmVtb3ZlIHNlc3Npb25zIHdpdGggdGhlIEBzYW1wey13aXBlfSBvcHRpb24uCj4g LSAKPiAtIEBpdGVtIC1MCj4gLSBUZWxsIEBjb2Rle3NjcmVlbn0gdG8gdHVybiBvbiBhdXRvbWF0 aWMgb3V0cHV0IGxvZ2dpbmcgZm9yIHRoZQo+IC0td2luZG93cy4KPiAtK3dpbmRvd3MuIEJ5IGRl ZmF1bHQsIGxvZ2ZpbGUncyBuYW1lIGlzIHNjcmVlbmxvZy4wLiBZb3UgY2FuIHNldCBuZXcgbmFt ZToKPiAtK2FkZCBpdCByaWdodCBhZnRlciAtTCBvcHRpb24gZS5nLiAic2NyZWVuIC1MIG15X2xv Z2ZpbGUiLiBLZWVwIGluIG1pbmQKPiAtK3RoYXQgbmFtZSBjYW4gbm90IHN0YXJ0IHdpdGggIi0i IHN5bWJvbC4KPiAtIAo+IC0gQGl0ZW0gLW0KPiAtIFRlbGwgQGNvZGV7c2NyZWVufSB0byBpZ25v cmUgdGhlIEBjb2RleyRTVFl9IGVudmlyb25tZW50IHZhcmlhYmxlLiAgV2hlbgo+IC1kaWZmIC0t Z2l0IGEvc2NyZWVuLmMgYi9zY3JlZW4uYwo+IC1pbmRleCBlNjBkMGE3MTJmYjUuLjA3ZjBjMTM4 N2UzMiAxMDA2NDQKPiAtLS0tIGEvc2NyZWVuLmMKPiAtKysrIGIvc2NyZWVuLmMKPiAtQEAgLTY2 OSw4ICs2NjksMTEgQEAgaW50IG1haW4oaW50IGFjLCBjaGFyKiogYXYpCj4gLSAgICAgICAgICAg Y2FzZSAnTCc6Cj4gLSAgICAgICAgICAgICBpZiAoLS1hYyAhPSAwKSB7Cj4gLSAgICAgICAgICAg ICAgIHNjcmVlbmxvZ2ZpbGUgPSBTYXZlU3RyKCorK2F2KTsKPiAtLSAgICAgICAgICAgICAgaWYg KHNjcmVlbmxvZ2ZpbGVbMF0gPT0gJy0nKQo+IC0tICAgICAgICAgICAgICAgIFBhbmljKDAsICIt TDogbG9nZmlsZSBuYW1lIGNhbiBub3Qgc3RhcnQgd2l0aCBcIi1cIiBzeW1ib2wiKTsKPiAtKyAg ICAgICAgICAgICAgaWYgKHNjcmVlbmxvZ2ZpbGVbMF0gPT0gJy0nKSB7Cj4gLSsgICAgICAgICAg ICAgICAgc2NyZWVubG9nZmlsZSA9IFNhdmVTdHIoInNjcmVlbmxvZy4lbiIpOwo+IC0rICAgICAg ICAgICAgICAgIGF2LS07Cj4gLSsgICAgICAgICAgICAgICAgYWMrKzsKPiAtKyAgICAgICAgICAg ICAgfQo+IC0gICAgICAgICAgICAgICBpZiAoc3RybGVuKHNjcmVlbmxvZ2ZpbGUpID4gUEFUSF9N QVgpCj4gLSAgICAgICAgICAgICAgICAgUGFuaWMoMCwgIi1MOiBsb2dmaWxlIG5hbWUgdG9vIGxv bmcuIChtYXguICVkIGNoYXIpIiwgUEFUSF9NQVgpOwo+IC0gICAgICAgICAgICAgfQo+IGRpZmYg LS1naXQgYS9wYXRjaGVzL3NjcmVlbi00LjUuMC9zZXJpZXMgYi9wYXRjaGVzL3NjcmVlbi00LjUu MC9zZXJpZXMKPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCBiMmYwOWVjNWI3YTUu LjAwMDAwMDAwMDAwMAo+IC0tLSBhL3BhdGNoZXMvc2NyZWVuLTQuNS4wL3Nlcmllcwo+ICsrKyAv ZGV2L251bGwKPiBAQCAtMSwxMiArMCwwIEBACj4gLSMgZ2VuZXJhdGVkIGJ5IGdpdC1wdHgtcGF0 Y2hlcwo+IC0jdGFnOmJhc2UgLS1zdGFydC1udW1iZXIgMQo+IC0wMDAxLWRvbi10LWxpbmstYWdh aW5zdC1saWJlbGYucGF0Y2gKPiAtMDAwMi1yZW1vdmUtY29uZmlndXJlLUFDX1RSWV9SVU4tdGVz dHMucGF0Y2gKPiAtMDAwMy1hdXRvY29uZi1jbGVhbnVwLnBhdGNoCj4gLTAwMDQtRml4LXNvbWUt dHlwb3MtZm91bmQtYnktTGludGlhbi5wYXRjaAo+IC0wMDA1LXNob3ctZW5jb2RpbmctaW4taGFy ZHN0YXR1cy5wYXRjaAo+IC0wMDA2LVVuYnJlYWstc2V2ZXJhbC11c2VmdWwta2V5YmluZGluZ3Mu cGF0Y2gKPiAtMDAwNy1GaXgtcHJpdmlsZWdlLWVzY2FsYXRpb24tYnktcmV2ZXJ0aW5nLXVwc3Ry ZWFtLWNvbW1pLnBhdGNoCj4gLTAwMDgtRml4LXRlcm1pbmFsLWdhcmJhZ2UtaW4tRGViaWFuLUlu c3RhbGxlci1vdmVyLXNlcmlhbC5wYXRjaAo+IC0wMDA5LUlnbm9yZS1sb2dmaWxlLXMtbmFtZS10 aGF0LWJlZ2lucy13aXRoLXRoZS1zeW1ib2wucGF0Y2gKPiAtIyBjY2M1MmI5YjhiMmJmMjdhZTE5 YzVlZmI1OTk5ZmM3MCAgLSBnaXQtcHR4LXBhdGNoZXMgbWFnaWMKPiBkaWZmIC0tZ2l0IGEvcGF0 Y2hlcy9zY3JlZW4tNC44LjAvMDAwMS1jb21tLmgtbm93LWRlcGVuZHMtb24tdGVybS5oLnBhdGNo IGIvcGF0Y2hlcy9zY3JlZW4tNC44LjAvMDAwMS1jb21tLmgtbm93LWRlcGVuZHMtb24tdGVybS5o LnBhdGNoCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjZhNmZi Yjg2NzI4Mgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9wYXRjaGVzL3NjcmVlbi00LjguMC8wMDAx LWNvbW0uaC1ub3ctZGVwZW5kcy1vbi10ZXJtLmgucGF0Y2gKPiBAQCAtMCwwICsxLDI0IEBACj4g K0Zyb206IE1pa2UgR2Vyd2l0eiA8bWlrZUBtaWtlZ2Vyd2l0ei5jb20+Cj4gK0RhdGU6IFR1ZSwg MjQgRGVjIDIwMTMgMjI6MTY6MzEgLTA1MDAKPiArU3ViamVjdDogW1BBVENIXSBjb21tLmggbm93 IGRlcGVuZHMgb24gdGVybS5oCj4gKwo+ICtTaWduZWQtb2ZmLWJ5OiBGYWJyaWNlIEZvbnRhaW5l IDxmb250YWluZS5mYWJyaWNlQGdtYWlsLmNvbT4KPiArW1BhdGNoIHJldHJpZXZlZCBhbmQgdXBk YXRlZCBmcm9tOgo+ICtodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvY2dpdC9zY3JlZW4uZ2l0 L2NvbW1pdC8/aWQ9MzljNWYxY10KPiArLS0tCj4gKyBNYWtlZmlsZS5pbiB8IDIgKy0KPiArIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQo+ICsKPiArZGlmZiAt LWdpdCBhL01ha2VmaWxlLmluIGIvTWFrZWZpbGUuaW4KPiAraW5kZXggMDhiNDRkM2E4Y2RhLi41 M2E4Yzg3NGZkYWUgMTAwNjQ0Cj4gKy0tLSBhL01ha2VmaWxlLmluCj4gKysrKyBiL01ha2VmaWxl LmluCj4gK0BAIC0xMzMsNyArMTMzLDcgQEAga21hcGRlZi5jOiB0ZXJtLmgKPiArIHR0eS5jOgl0 dHkuc2ggCj4gKyAJc2ggJChzcmNkaXIpL3R0eS5zaCB0dHkuYwo+ICsgCj4gKy1jb21tLmg6IGNv bW0uYyBjb21tLnNoIGNvbmZpZy5oCj4gKytjb21tLmg6IGNvbW0uYyBjb21tLnNoIGNvbmZpZy5o IHRlcm0uaAo+ICsgCUFXSz0kKEFXSykgQ0M9IiQoQ0MpICQoQ0ZMQUdTKSIgc3JjZGlyPSR7c3Jj ZGlyfSBzaCAkKHNyY2RpcikvY29tbS5zaAo+ICsgCj4gKyBvc2RlZi5oOiBvc2RlZi5zaCBjb25m aWcuaCBvc2RlZi5oLmluCj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvc2NyZWVuLTQuOC4wLzAwMDIt Y29tbS5oLW5lZWRlZC1mb3ItbGlzdF8tZGlzcGxheS1nZW5lcmljLS5vLnBhdGNoIGIvcGF0Y2hl cy9zY3JlZW4tNC44LjAvMDAwMi1jb21tLmgtbmVlZGVkLWZvci1saXN0Xy1kaXNwbGF5LWdlbmVy aWMtLm8ucGF0Y2gKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4u MTJlNTUxYTdkZDg5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3BhdGNoZXMvc2NyZWVuLTQuOC4w LzAwMDItY29tbS5oLW5lZWRlZC1mb3ItbGlzdF8tZGlzcGxheS1nZW5lcmljLS5vLnBhdGNoCj4g QEAgLTAsMCArMSwzMSBAQAo+ICtGcm9tOiBGYWJyaWNlIEZvbnRhaW5lIDxmb250YWluZS5mYWJy aWNlQGdtYWlsLmNvbT4KPiArRGF0ZTogV2VkLCAzIE9jdCAyMDE4IDIyOjI5OjMyICswMjAwCj4g K1N1YmplY3Q6IFtQQVRDSF0gY29tbS5oIG5lZWRlZCBmb3IgbGlzdF97ZGlzcGxheSxnZW5lcmlj fS5vCj4gKwo+ICtjb21tLmggaXMgbmVlZGVkIHRvIGJ1aWxkIGxpc3RfZGlzcGxheS5vIGFuZCBs aXN0X2dlbmVyaWMubyBvdGhlcndpc2UKPiArcGFyYWxsZWwgYnVpbGRzIHdpbGwgc29tZXRpbWVz IGZhaWwKPiArCj4gK0ZpeGVzOgo+ICsgLSBodHRwOi8vYXV0b2J1aWxkLmJ1aWxkcm9vdC5vcmcv cmVzdWx0cy80MzEwNWYxNDg1N2RiZTcyZDg4NzhmYzdiM2RiNjdmN2JkY2E5M2NjCj4gKyAtIGh0 dHA6Ly9hdXRvYnVpbGQuYnVpbGRyb290Lm9yZy9yZXN1bHRzLzQ3ZjRlY2JlYzEzNTUyODU2MzNk ZjI4N2ZjOWM0ZTdjY2NkZTkzNzgKPiArCj4gK1NpZ25lZC1vZmYtYnk6IEZhYnJpY2UgRm9udGFp bmUgPGZvbnRhaW5lLmZhYnJpY2VAZ21haWwuY29tPgo+ICtbVXBzdHJlYW0gc3RhdHVzOiBodHRw czovL3NhdmFubmFoLmdudS5vcmcvYnVncy9pbmRleC5waHA/NTQ3NzZdCj4gKy0tLQo+ICsgTWFr ZWZpbGUuaW4gfCA0ICsrLS0KPiArIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCj4gKwo+ICtkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5p bgo+ICtpbmRleCA1M2E4Yzg3NGZkYWUuLjM5ODUzOWZlYmE0MSAxMDA2NDQKPiArLS0tIGEvTWFr ZWZpbGUuaW4KPiArKysrIGIvTWFrZWZpbGUuaW4KPiArQEAgLTM1MCw3ICszNTAsNyBAQCBsYXlv dXQubzogbGF5b3V0Lmggdmlld3BvcnQuaCBjYW52YXMuaCBsYXlvdXQuYyBjb25maWcuaCBzY3Jl ZW4uaCBvcy5oIG9zZGVmLmggYQo+ICsgdmlld3BvcnQubzogbGF5b3V0Lmggdmlld3BvcnQuaCBj YW52YXMuaCB2aWV3cG9ydC5jIGNvbmZpZy5oIHNjcmVlbi5oIG9zLmggb3NkZWYuaCBhbnNpLmgg YWNscy5oIFwKPiArICBjb21tLmggbGF5ZXIuaCB0ZXJtLmggaW1hZ2UuaCBkaXNwbGF5Lmggd2lu ZG93LmggZXh0ZXJuLmggXAo+ICsgIGJyYWlsbGUuaAo+ICstbGlzdF9nZW5lcmljLm86IGxpc3Rf Z2VuZXJpYy5oIGxpc3RfZ2VuZXJpYy5jIGxheWVyLmggc2NyZWVuLmggb3NkZWYuaAo+ICstbGlz dF9kaXNwbGF5Lm86IGxpc3RfZ2VuZXJpYy5oIGxpc3RfZGlzcGxheS5jIGxheWVyLmggc2NyZWVu Lmggb3NkZWYuaAo+ICsrbGlzdF9nZW5lcmljLm86IGxpc3RfZ2VuZXJpYy5oIGxpc3RfZ2VuZXJp Yy5jIGxheWVyLmggc2NyZWVuLmggb3NkZWYuaCBjb21tLmgKPiArK2xpc3RfZGlzcGxheS5vOiBs aXN0X2dlbmVyaWMuaCBsaXN0X2Rpc3BsYXkuYyBsYXllci5oIHNjcmVlbi5oIG9zZGVmLmggY29t bS5oCj4gKyBsaXN0X3dpbmRvdy5vOiBsaXN0X2dlbmVyaWMuaCBsaXN0X3dpbmRvdy5jIHdpbmRv dy5oIGxheWVyLmggc2NyZWVuLmggb3NkZWYuaCBjb21tLmgKPiArIAo+IGRpZmYgLS1naXQgYS9w YXRjaGVzL3NjcmVlbi00LjguMC8wMTAwLXN1cHByZXNzX3JlbWFwLnBhdGNoIGIvcGF0Y2hlcy9z Y3JlZW4tNC44LjAvMDEwMC1zdXBwcmVzc19yZW1hcC5wYXRjaAo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi43ZGEyNDI1NjQ5NzUKPiAtLS0gL2Rldi9udWxsCj4g KysrIGIvcGF0Y2hlcy9zY3JlZW4tNC44LjAvMDEwMC1zdXBwcmVzc19yZW1hcC5wYXRjaAo+IEBA IC0wLDAgKzEsMjQgQEAKPiArRnJvbTogTWljaGFlbCBPbGJyaWNoIDxtLm9sYnJpY2hAcGVuZ3V0 cm9uaXguZGU+Cj4gK0RhdGU6IEZyaSwgNyBKYW4gMjAyMiAxMjo1Mzo1NyArMDEwMAo+ICtTdWJq ZWN0OiBbUEFUQ0hdIHN1cHByZXNzX3JlbWFwCj4gKwo+ICtJbXBvcnRlZCBmcm9tIHNjcmVlbl80 LjguMC03LmRlYmlhbi50YXIueHoKPiArCj4gK1NpZ25lZC1vZmYtYnk6IE1pY2hhZWwgT2xicmlj aCA8bS5vbGJyaWNoQHBlbmd1dHJvbml4LmRlPgo+ICstLS0KPiArIHRlcm1jYXAuYyB8IDIgLS0K PiArIDEgZmlsZSBjaGFuZ2VkLCAyIGRlbGV0aW9ucygtKQo+ICsKPiArZGlmZiAtLWdpdCBhL3Rl cm1jYXAuYyBiL3Rlcm1jYXAuYwo+ICtpbmRleCAyNmNiYTYyZmQ3YzEuLmVkOWU4MzhjNGM5ZCAx MDA2NDQKPiArLS0tIGEvdGVybWNhcC5jCj4gKysrKyBiL3Rlcm1jYXAuYwo+ICtAQCAtNTUzLDgg KzU1Myw2IEBAIGludCBtYXA7Cj4gKyAgICAgICBlbHNlCj4gKyAJYnJlYWs7Cj4gKyAgICAgfQo+ ICstICBpZiAobiA8IEtNQVBfS0VZUykKPiArLSAgICBkb21hcCA9IDE7Cj4gKyAgIGlmIChtYXAg PT0gMCAmJiBkb21hcCkKPiArICAgICByZXR1cm4gMDsKPiArICAgaWYgKG1hcCAmJiAhZG9tYXAp Cj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvc2NyZWVuLTQuOC4wLzAxMDEtZml4X3NjcmVlbl91dGY4 X25mZC5wYXRjaCBiL3BhdGNoZXMvc2NyZWVuLTQuOC4wLzAxMDEtZml4X3NjcmVlbl91dGY4X25m ZC5wYXRjaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi41NGNj ODFmMGQ3YTEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvcGF0Y2hlcy9zY3JlZW4tNC44LjAvMDEw MS1maXhfc2NyZWVuX3V0ZjhfbmZkLnBhdGNoCj4gQEAgLTAsMCArMSwzNyBAQAo+ICtGcm9tOiBN aWNoYWVsIE9sYnJpY2ggPG0ub2xicmljaEBwZW5ndXRyb25peC5kZT4KPiArRGF0ZTogRnJpLCA3 IEphbiAyMDIyIDEyOjUzOjU3ICswMTAwCj4gK1N1YmplY3Q6IFtQQVRDSF0gZml4X3NjcmVlbl91 dGY4X25mZAo+ICsKPiArSW1wb3J0ZWQgZnJvbSBzY3JlZW5fNC44LjAtNy5kZWJpYW4udGFyLnh6 Cj4gKwo+ICtTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIE9sYnJpY2ggPG0ub2xicmljaEBwZW5ndXRy b25peC5kZT4KPiArLS0tCj4gKyBhbnNpLmMgfCA4ICsrKystLS0tCj4gKyAxIGZpbGUgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQo+ICsKPiArZGlmZiAtLWdpdCBhL2Fu c2kuYyBiL2Fuc2kuYwo+ICtpbmRleCAyYTUyZWRkZDMyZDQuLjgzYjI2NmQ2Zjc3NyAxMDA2NDQK PiArLS0tIGEvYW5zaS5jCj4gKysrKyBiL2Fuc2kuYwo+ICtAQCAtNjkyLDEwICs2OTIsNiBAQCBy ZWdpc3RlciBpbnQgbGVuOwo+ICsgCQkgICAgfQo+ICsgCQkgIGN1cnItPndfcmVuZC5mb250ID0g MDsKPiArIAkJfQo+ICstIyAgaWZkZWYgRFdfQ0hBUlMKPiArLQkgICAgICBpZiAoY3Vyci0+d19l bmNvZGluZyA9PSBVVEY4ICYmIHV0ZjhfaXNkb3VibGUoYykpCj4gKy0JCWN1cnItPndfbWJjcyA9 IDB4ZmY7Cj4gKy0jICBlbmRpZgo+ICsgCSAgICAgIGlmIChjdXJyLT53X2VuY29kaW5nID09IFVU RjggJiYgYyA+PSAweDAzMDAgJiYgdXRmOF9pc2NvbWIoYykpCj4gKyAJCXsKPiArIAkJICBpbnQg b3gsIG95Owo+ICtAQCAtNzMwLDYgKzcyNiwxMCBAQCByZWdpc3RlciBpbnQgbGVuOwo+ICsgCQkg ICAgfQo+ICsgCQkgIGJyZWFrOwo+ICsgCQl9Cj4gKysjICBpZmRlZiBEV19DSEFSUwo+ICsrCSAg ICAgIGlmIChjdXJyLT53X2VuY29kaW5nID09IFVURjggJiYgdXRmOF9pc2RvdWJsZShjKSkKPiAr KwkJY3Vyci0+d19tYmNzID0gMHhmZjsKPiArKyMgIGVuZGlmCj4gKyAJICAgICAgZm9udCA9IGN1 cnItPndfcmVuZC5mb250Owo+ICsgIyBlbmRpZgo+ICsgIyBpZmRlZiBEV19DSEFSUwo+IGRpZmYg LS1naXQgYS9wYXRjaGVzL3NjcmVlbi00LjguMC8wMTAyLUV4cGFuZC1kX3h0ZXJtb3NjLWFycmF5 LWluLXN0cnVjdC1kaXNwbGF5LnBhdGNoIGIvcGF0Y2hlcy9zY3JlZW4tNC44LjAvMDEwMi1FeHBh bmQtZF94dGVybW9zYy1hcnJheS1pbi1zdHJ1Y3QtZGlzcGxheS5wYXRjaAo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi44Y2JmYzZkMmZlOWYKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvcGF0Y2hlcy9zY3JlZW4tNC44LjAvMDEwMi1FeHBhbmQtZF94dGVybW9zYy1h cnJheS1pbi1zdHJ1Y3QtZGlzcGxheS5wYXRjaAo+IEBAIC0wLDAgKzEsMzcgQEAKPiArRnJvbTog PT9VVEYtOD9xP1Y9QzM9QTFjbGF2PTIwRG9sZT1DNT1CRWFsPz0gPHZkb2xlemFsQHJlZGhhdC5j b20+Cj4gK0RhdGU6IEZyaSwgMjEgRmViIDIwMjAgMTQ6MDI6NTEgKzAxMDAKPiArU3ViamVjdDog W1BBVENIXSBFeHBhbmQtZF94dGVybW9zYy1hcnJheS1pbi1zdHJ1Y3QtZGlzcGxheQo+ICtNSU1F LVZlcnNpb246IDEuMAo+ICtDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgK PiArQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAo+ICsKPiArQ29tbWl0IGM1ZGIxODEg ZXhwYW5kcyBpbmRleCByYW5nZSBvZiAidHlwMiIgYnkgb25lIHdpdGhvdXQgZXhwYW5kaW5nCj4g K2FmZmVjdGVkIGFycmF5cy4gZF94dGVybW9zYyBpbiBzdHJ1Y3QgZGlzcGxheSBpcyBvbmUgb2Yg dGhlc2UuCj4gKwo+ICtSZWxhdGVkOiBjNWRiMTgxYjZlMDE3Y2ZjY2I4ZDc4NDJjZTE0MGU1OTI5 NGQ5ZjYyCj4gKyAgKGFuc2k6IGFkZCBzdXBwb3J0IGZvciB4dGVybSBPU0MgMTEpCj4gK1JlbGF0 ZWQ6IDY4Mzg2ZGZiMWZhMzM0NzEzNzJhOGNkMmU3NDY4Njc1OGEyZjUyN2IKPiArICAoRml4IG91 dCBvZiBib3VuZHMgYWNjZXNzIHdoZW4gc2V0dGluZyB3X3h0ZXJtb3NjIGFmdGVyIE9TQyA0OSkK PiArCj4gK1NpZ25lZC1vZmYtYnk6IFbDoWNsYXYgRG9sZcW+YWwgPHZkb2xlemFsQHJlZGhhdC5j b20+Cj4gKwo+ICtJbXBvcnRlZCBmcm9tIHNjcmVlbl80LjguMC03LmRlYmlhbi50YXIueHoKPiAr Cj4gK1NpZ25lZC1vZmYtYnk6IE1pY2hhZWwgT2xicmljaCA8bS5vbGJyaWNoQHBlbmd1dHJvbml4 LmRlPgo+ICstLS0KPiArIGRpc3BsYXkuaCB8IDIgKy0KPiArIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQo+ICsKPiArZGlmZiAtLWdpdCBhL2Rpc3BsYXkuaCBi L2Rpc3BsYXkuaAo+ICtpbmRleCA0NTljYzVkYzE1NDMuLjRmYzIwNjE4OWI0YiAxMDA2NDQKPiAr LS0tIGEvZGlzcGxheS5oCj4gKysrKyBiL2Rpc3BsYXkuaAo+ICtAQCAtMTEyLDcgKzExMiw3IEBA IHN0cnVjdCBkaXNwbGF5Cj4gKyAgIGludAlkX21vdXNldHJhY2s7CQkvKiBzZXQgd2hlbiB1c2Vy IHdhbnRzIHRvIHVzZSBtb3VzZSBldmVuIHdoZW4gdGhlIHdpbmRvdwo+ICsgCQkJCSAgIGRvZXMg bm90ICovCj4gKyAjaWZkZWYgUlhWVF9PU0MKPiArLSAgaW50ICAgZF94dGVybW9zY1s0XTsJCS8q IG9zYyB1c2VkICovCj4gKysgIGludCAgIGRfeHRlcm1vc2NbNV07CQkvKiBvc2MgdXNlZCAqLwo+ ICsgI2VuZGlmCj4gKyAgIHN0cnVjdCBtY2hhciBkX2xwY2hhcjsJLyogbWlzc2luZyBjaGFyICov Cj4gKyAgIHN0cnVjdCB0aW1ldmFsIGRfc3RhdHVzX3RpbWU7CS8qIHRpbWUgb2Ygc3RhdHVzIGRp c3BsYXkgKi8KPiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9zY3JlZW4tNC44LjAvMDEwMy1URVJNQ0FQ X0JVRi1pcy11c2VkLWluLXBsYWNlLW9mLVRFUk1DQVBfQlVGU0laRS5wYXRjaCBiL3BhdGNoZXMv c2NyZWVuLTQuOC4wLzAxMDMtVEVSTUNBUF9CVUYtaXMtdXNlZC1pbi1wbGFjZS1vZi1URVJNQ0FQ X0JVRlNJWkUucGF0Y2gKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAw MC4uMTE1MmNiNTIyYjk1Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3BhdGNoZXMvc2NyZWVuLTQu OC4wLzAxMDMtVEVSTUNBUF9CVUYtaXMtdXNlZC1pbi1wbGFjZS1vZi1URVJNQ0FQX0JVRlNJWkUu cGF0Y2gKPiBAQCAtMCwwICsxLDI0IEBACj4gK0Zyb206IE1pY2hhZWwgT2xicmljaCA8bS5vbGJy aWNoQHBlbmd1dHJvbml4LmRlPgo+ICtEYXRlOiBNb24sIDI3IEFwciAyMDIwIDE4OjEyOjU2ICsw MjAwCj4gK1N1YmplY3Q6IFtQQVRDSF0gVEVSTUNBUF9CVUYtaXMtdXNlZC1pbi1wbGFjZS1vZi1U RVJNQ0FQX0JVRlNJWkUKPiArCj4gK0ltcG9ydGVkIGZyb20gc2NyZWVuXzQuOC4wLTcuZGViaWFu LnRhci54ego+ICsKPiArU2lnbmVkLW9mZi1ieTogTWljaGFlbCBPbGJyaWNoIDxtLm9sYnJpY2hA cGVuZ3V0cm9uaXguZGU+Cj4gKy0tLQo+ICsgdGVybWNhcC5jIHwgMiArLQo+ICsgMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCj4gKwo+ICtkaWZmIC0tZ2l0IGEv dGVybWNhcC5jIGIvdGVybWNhcC5jCj4gK2luZGV4IGVkOWU4MzhjNGM5ZC4uMjk2ODRjZjk3NGY3 IDEwMDY0NAo+ICstLS0gYS90ZXJtY2FwLmMKPiArKysrIGIvdGVybWNhcC5jCj4gK0BAIC0xMDY2 LDcgKzEwNjYsNyBAQCBpbnQgYWZsYWc7Cj4gKyAJewo+ICsgCSAgaWYgKGkgPj0gVF9LRVlQQUQp CS8qIGRvbid0IHB1dCBrZXlwYWQgY29kZXMgaW4gVEVSTUNBUCAqLwo+ICsgCSAgICBjb250aW51 ZTsJCS8qIC0gbWFrZXMgaXQgdG9vIGJpZyAqLwo+ICstI2lmIChURVJNQ0FQX0JVRiA8IDEwMjQp Cj4gKysjaWYgKFRFUk1DQVBfQlVGU0laRSA8IDEwMjQpCj4gKyAgICAgICAgICAgaWYgKGkgPj0g VF9GRVhUUkEgJiYgaSA8IFRfQkFDS1RBQikgLyogYWxzbyBza2lwIGV4dHJhIHZ0MjIwIGtleXMg Ki8KPiArICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgICAgIGlmIChpID4gVF9CQUNL VEFCICYmIGkgPCBUX05BVklHQVRFKSAvKiBtb3JlIHZ0MjIwIGtleXMgKi8KPiBkaWZmIC0tZ2l0 IGEvcGF0Y2hlcy9zY3JlZW4tNC44LjAvMDEwNC1DVkUtMjAyMS0yNjkzNy5wYXRjaCBiL3BhdGNo ZXMvc2NyZWVuLTQuOC4wLzAxMDQtQ1ZFLTIwMjEtMjY5MzcucGF0Y2gKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uOWY0ZTg3OWFmZDI0Cj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL3BhdGNoZXMvc2NyZWVuLTQuOC4wLzAxMDQtQ1ZFLTIwMjEtMjY5MzcucGF0Y2gK PiBAQCAtMCwwICsxLDY5IEBACj4gK0Zyb206IE1pY2hhZWwgT2xicmljaCA8bS5vbGJyaWNoQHBl bmd1dHJvbml4LmRlPgo+ICtEYXRlOiBGcmksIDcgSmFuIDIwMjIgMTI6NTM6NTcgKzAxMDAKPiAr U3ViamVjdDogW1BBVENIXSBDVkUtMjAyMS0yNjkzNwo+ICsKPiArSW1wb3J0ZWQgZnJvbSBzY3Jl ZW5fNC44LjAtNy5kZWJpYW4udGFyLnh6Cj4gKwo+ICtTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIE9s YnJpY2ggPG0ub2xicmljaEBwZW5ndXRyb25peC5kZT4KPiArLS0tCj4gKyBlbmNvZGluZy5jIHwg MTUgKysrKysrKysrLS0tLS0tCj4gKyAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA2 IGRlbGV0aW9ucygtKQo+ICsKPiArZGlmZiAtLWdpdCBhL2VuY29kaW5nLmMgYi9lbmNvZGluZy5j Cj4gK2luZGV4IGU1ZGIzZTcwODEyNi4uNzlmNWQxNDAyNGM0IDEwMDY0NAo+ICstLS0gYS9lbmNv ZGluZy5jCj4gKysrKyBiL2VuY29kaW5nLmMKPiArQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIGlu dCAgZW5jbWF0Y2ggX19QKChjaGFyICosIGNoYXIgKikpOwo+ICsgIyBpZmRlZiBVVEY4Cj4gKyBz dGF0aWMgaW50ICAgcmVjb2RlX2NoYXIgX19QKChpbnQsIGludCwgaW50KSk7Cj4gKyBzdGF0aWMg aW50ICAgcmVjb2RlX2NoYXJfdG9fZW5jb2RpbmcgX19QKChpbnQsIGludCkpOwo+ICstc3RhdGlj IHZvaWQgIGNvbWJfdG9mcm9udCBfX1AoKGludCwgaW50KSk7Cj4gKytzdGF0aWMgdm9pZCAgY29t Yl90b2Zyb250IF9fUCgoaW50KSk7Cj4gKyAjICBpZmRlZiBEV19DSEFSUwo+ICsgc3RhdGljIGlu dCAgIHJlY29kZV9jaGFyX2R3IF9fUCgoaW50LCBpbnQgKiwgaW50LCBpbnQpKTsKPiArIHN0YXRp YyBpbnQgICByZWNvZGVfY2hhcl9kd190b19lbmNvZGluZyBfX1AoKGludCwgaW50ICosIGludCkp Owo+ICtAQCAtMTI2Myw2ICsxMjYzLDggQEAgaW50IGM7Cj4gKyAgICAgezB4MzAwMDAsIDB4M0ZG RkR9LAo+ICsgICB9Owo+ICsgCj4gKysgIGlmIChjID49IDB4ZGYwMCAmJiBjIDw9IDB4ZGZmZikK PiArKyAgICByZXR1cm4gMTsgICAgICAgICAgLyogZHcgY29tYmluaW5nIHNlcXVlbmNlICovCj4g KyAgIHJldHVybiAoKGJpc2VhcmNoKGMsIHdpZGUsIHNpemVvZih3aWRlKSAvIHNpemVvZihzdHJ1 Y3QgaW50ZXJ2YWwpIC0gMSkpIHx8Cj4gKyAgICAgICAgICAgKGNqa3dpZHRoICYmCj4gKyAgICAg ICAgICAgIGJpc2VhcmNoKGMsIGFtYmlndW91cywKPiArQEAgLTEzMzAsMTEgKzEzMzIsMTIgQEAg aW50IGM7Cj4gKyB9Cj4gKyAKPiArIHN0YXRpYyB2b2lkCj4gKy1jb21iX3RvZnJvbnQocm9vdCwg aSkKPiArLWludCByb290LCBpOwo+ICsrY29tYl90b2Zyb250KGkpCj4gKytpbnQgaTsKPiArIHsK PiArICAgZm9yICg7OykKPiArICAgICB7Cj4gKysgICAgICBpbnQgcm9vdCA9IGkgPj0gMHg3MDAg PyAweDgwMSA6IDB4ODAwOwo+ICsgICAgICAgZGVidWcxKCJicmluZyB0byBmcm9udDogJXhcbiIs IGkpOwo+ICsgICAgICAgY29tYmNoYXJzW2NvbWJjaGFyc1tpXS0+cHJldl0tPm5leHQgPSBjb21i Y2hhcnNbaV0tPm5leHQ7Cj4gKyAgICAgICBjb21iY2hhcnNbY29tYmNoYXJzW2ldLT5uZXh0XS0+ cHJldiA9IGNvbWJjaGFyc1tpXS0+cHJldjsKPiArQEAgLTEzOTYsOSArMTM5OSw5IEBAIHN0cnVj dCBtY2hhciAqbWM7Cj4gKyAgICAgewo+ICsgICAgICAgLyogZnVsbCwgcmVjeWNsZSBvbGQgZW50 cnkgKi8KPiArICAgICAgIGlmIChjMSA+PSAweGQ4MDAgJiYgYzEgPCAweGUwMDApCj4gKy0gICAg ICAgIGNvbWJfdG9mcm9udChyb290LCBjMSAtIDB4ZDgwMCk7Cj4gKysgICAgICAgIGNvbWJfdG9m cm9udChjMSAtIDB4ZDgwMCk7Cj4gKyAgICAgICBpID0gY29tYmNoYXJzW3Jvb3RdLT5wcmV2Owo+ ICstICAgICAgaWYgKGMxID09IGkgKyAweGQ4MDApCj4gKysgICAgICBpZiAoaSA9PSAweDgwMCB8 fCBpID09IDB4ODAxIHx8IGMxID09IGkgKyAweGQ4MDApCj4gKyAJewo+ICsgCSAgLyogY29tcGxl dGVseSBmdWxsLCBjYW4ndCByZWN5Y2xlICovCj4gKyAJICBkZWJ1ZygidXRmOF9oYW5kbGVfY29t cDogY29tcGxldGVseSBmdWxsIVxuIik7Cj4gK0BAIC0xNDIyLDcgKzE0MjUsNyBAQCBzdHJ1Y3Qg bWNoYXIgKm1jOwo+ICsgICBtYy0+Zm9udCAgPSAoaSA+PiA4KSArIDB4ZDg7Cj4gKyAgIG1jLT5m b250eCA9IDA7Cj4gKyAgIGRlYnVnMygiY29tYmluaWcgY2hhciAleCAleCAtPiAleFxuIiwgYzEs IGMsIGkgKyAweGQ4MDApOwo+ICstICBjb21iX3RvZnJvbnQocm9vdCwgaSk7Cj4gKysgIGNvbWJf dG9mcm9udChpKTsKPiArIH0KPiArIAo+ICsgI2Vsc2UgLyogIVVURjggKi8KPiBkaWZmIC0tZ2l0 IGEvcGF0Y2hlcy9zY3JlZW4tNC41LjAvYXV0b2dlbi5zaCBiL3BhdGNoZXMvc2NyZWVuLTQuOC4w L2F1dG9nZW4uc2gKPiBzaW1pbGFyaXR5IGluZGV4IDEwMCUKPiByZW5hbWUgZnJvbSBwYXRjaGVz L3NjcmVlbi00LjUuMC9hdXRvZ2VuLnNoCj4gcmVuYW1lIHRvIHBhdGNoZXMvc2NyZWVuLTQuOC4w L2F1dG9nZW4uc2gKPiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9zY3JlZW4tNC44LjAvc2VyaWVzIGIv cGF0Y2hlcy9zY3JlZW4tNC44LjAvc2VyaWVzCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCAwMDAwMDAwMDAwMDAuLmM5YjhkNzE5NzY2OQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9wYXRj aGVzL3NjcmVlbi00LjguMC9zZXJpZXMKPiBAQCAtMCwwICsxLDEyIEBACj4gKyMgZ2VuZXJhdGVk IGJ5IGdpdC1wdHgtcGF0Y2hlcwo+ICsjdGFnOmJhc2UgLS1zdGFydC1udW1iZXIgMQo+ICsjdGFn OmJ1aWxkcm9vdCAtLXN0YXJ0LW51bWJlciAxCj4gKzAwMDEtY29tbS5oLW5vdy1kZXBlbmRzLW9u LXRlcm0uaC5wYXRjaAo+ICswMDAyLWNvbW0uaC1uZWVkZWQtZm9yLWxpc3RfLWRpc3BsYXktZ2Vu ZXJpYy0uby5wYXRjaAo+ICsjdGFnOmRlYmlhbiAtLXN0YXJ0LW51bWJlciAxMDAKPiArMDEwMC1z dXBwcmVzc19yZW1hcC5wYXRjaAo+ICswMTAxLWZpeF9zY3JlZW5fdXRmOF9uZmQucGF0Y2gKPiAr MDEwMi1FeHBhbmQtZF94dGVybW9zYy1hcnJheS1pbi1zdHJ1Y3QtZGlzcGxheS5wYXRjaAo+ICsw MTAzLVRFUk1DQVBfQlVGLWlzLXVzZWQtaW4tcGxhY2Utb2YtVEVSTUNBUF9CVUZTSVpFLnBhdGNo Cj4gKzAxMDQtQ1ZFLTIwMjEtMjY5MzcucGF0Y2gKPiArIyBkOTJhYzMxYWIzNDdhMDEzYTc0Y2E3 ZjQwMDE2OTZlYyAgLSBnaXQtcHR4LXBhdGNoZXMgbWFnaWMKPiBkaWZmIC0tZ2l0IGEvcnVsZXMv c2NyZWVuLm1ha2UgYi9ydWxlcy9zY3JlZW4ubWFrZQo+IGluZGV4IDM5YTk2ZGFlMjE3Ny4uMTA4 N2RmYzlkOGZkIDEwMDY0NAo+IC0tLSBhL3J1bGVzL3NjcmVlbi5tYWtlCj4gKysrIGIvcnVsZXMv c2NyZWVuLm1ha2UKPiBAQCAtMTQsOCArMTQsOCBAQCBQQUNLQUdFUy0kKFBUWENPTkZfU0NSRUVO KSArPSBzY3JlZW4KPiAgIwo+ICAjIFBhdGhzIGFuZCBuYW1lcwo+ICAjCj4gLVNDUkVFTl9WRVJT SU9OCTo9IDQuNS4wCj4gLVNDUkVFTl9NRDUJOj0gYTMyMTA1YTkxMzU5YWZhYjFhNDM0OTIwOWEw MjhlMzEKPiArU0NSRUVOX1ZFUlNJT04JOj0gNC44LjAKPiArU0NSRUVOX01ENQk6PSBkMjc2MjEz ZDNhY2QxMDMzOWNkMzc4NDhiOGM0YWIxZQo+ICBTQ1JFRU4JCTo9IHNjcmVlbi0kKFNDUkVFTl9W RVJTSU9OKQo+ICBTQ1JFRU5fU1VGRklYCTo9IHRhci5nego+ICBTQ1JFRU5fVVJMCTo9ICQoY2Fs bCBwdHgvbWlycm9yLCBHTlUsIHNjcmVlbi8kKFNDUkVFTikuJChTQ1JFRU5fU1VGRklYKSkKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB0eGRpc3QgbWFp bGluZyBsaXN0CnB0eGRpc3RAcGVuZ3V0cm9uaXguZGUKVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBt YWlsIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiIHRvIHB0eGRpc3QtcmVxdWVzdEBwZW5ndXRy b25peC5kZQo=