From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 29 Apr 2021 13:30:32 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1lc4sK-0002oK-HI for lore@lore.pengutronix.de; Thu, 29 Apr 2021 13:30:32 +0200 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 1lc4sK-0000vs-3W; Thu, 29 Apr 2021 13:30:32 +0200 Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lc4rl-0000vi-Sy; Thu, 29 Apr 2021 13:29:57 +0200 Received: from rhi by ptx.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1lc4rl-0004KS-Ib; Thu, 29 Apr 2021 13:29:57 +0200 Date: Thu, 29 Apr 2021 13:29:57 +0200 From: Roland Hieber To: ptxdist@pengutronix.de Message-ID: <20210429112957.mjycj4a7lhqgxrdg@pengutronix.de> References: <20210428232410.15059-1-m.grzeschik@pengutronix.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210428232410.15059-1-m.grzeschik@pengutronix.de> User-Agent: NeoMutt/20180716 Subject: Re: [ptxdist] [PATCH] libusbgx: new package 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: Michael Grzeschik 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 T24gVGh1LCBBcHIgMjksIDIwMjEgYXQgMDE6MjQ6MTBBTSArMDIwMCwgTWljaGFlbCBHcnplc2No aWsgd3JvdGU6Cj4gVGhpcyBwYXRjaCBhZGRzIGxpYnVzYmd4IHN1cHBvcnQgdG8gcHR4ZGlzdC4g SXQgaW5jbHVkZXMgcGF0Y2hlcyB0byB3b3JrCj4gd2l0aCB1dmMgZ2FkZ2V0cy4KPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBNaWNoYWVsIEdyemVzY2hpayA8bS5ncnplc2NoaWtAcGVuZ3V0cm9uaXguZGU+ Cj4gLS0tCj4gCj4gVGhpcyBwYXRjaGVzIGFyZSBhbHJlYWR5IG1haW5saW5lIG9yIGFscmVhZHkg aW4gYSBtZXJnZSByZXF1ZXN0IG9mIHRoZSBwcm9qZWN0Lgo+IAo+IGh0dHBzOi8vZ2l0aHViLmNv bS9saWJ1c2JneC9saWJ1c2JneC9wdWxsLzU0Cj4gaHR0cHM6Ly9naXRodWIuY29tL2xpYnVzYmd4 L2xpYnVzYmd4L3B1bGwvNTUKCkp1c3QgYXMgYSBoZWFkcy11cCwgeW91IGNhbiB1c2VzIERFUC0z IFsxXSBhbm5vdGF0aW9ucyBpbiB0aGUgcGF0Y2gncwpsb2cgbWVzc2FnZSBmb3IgdGhpcywgZS5n LjoKCiAgICBPcmlnaW46IHVwc3RyZWFtLCBodHRwczovL2dpdGh1Yi5jb20vbGlidXNiZ3gvbGli dXNiZ3gvcHVsbC81NAoKWzFdOiBodHRwczovL2RlcC10ZWFtLnBhZ2VzLmRlYmlhbi5uZXQvZGVw cy9kZXAzLwoKSG1tbeKApiB0aGF0IGluZm9ybWF0aW9uIHdhcyBvbmNlIG1lbnRpb25lZCBpbiB0 aGUgUkVBRE1FLCBidXQgYXBwYXJlbnRseQpJIHJlbW92ZWQgaXQgaW4gY29tbWl0IDQ2ZGJiZTIz MmM3NCwgYW5kIGl0J3MgYWxzbyBubyBsb25nZXIgbWVudGlvbmVkCmFueXdoZXJlIGluIHRoZSBk b2Nz4oCmIGRvbid0IGtub3cgd2h54oCmIGRvIHlvdSB0aGluayBpdCBtYWtlIHNlbnNlIHRvCmJy aW5nIGl0IGJhY2s/IEkgZmluZCB0aGF0IGl0IG1ha2VzIHBhY2thZ2UgdmVyc2lvbiBidW1wcyBl YXNpZXIgZm9yIGJpZwpwcm9qZWN0cyB3aXRoIGEgbG90IG9mIGNvZGUgY2hhbmdlcyBiZXR3ZWVu IHJlbGVhc2VzLgoKIC0gUm9sYW5kCgo+ICAuLi4xLUZpeC0zOS1Db21waWxhdGlvbi1mYWlscy1v bi1nY2MtdjgucGF0Y2ggfCAgMjAgKwo+ICAuLi5sZC13aXRoLWdsaWJjLTIuMjgtc2luY2Utc3lz LXN5c21hY3IucGF0Y2ggfCAgOTAgKysrCj4gIC4uLnZpZC1waWQtcmVtb3ZlLWFkZC1keW5hbWlj LXZpZC1waWQtcy5wYXRjaCB8ICA2NyArKwo+ICAuLi4vMDAwNC1saWJ1c2JneC1BZGQtVVZDLXN1 cHBvcnQucGF0Y2ggICAgICAgfCA3MzcgKysrKysrKysrKysrKysrKysrCj4gIHBhdGNoZXMvbGli dXNiZ3gtMC4yLjAvYXV0b2dlbi5zaCAgICAgICAgICAgICB8ICAxNiArCj4gIHBhdGNoZXMvbGli dXNiZ3gtMC4yLjAvc2VyaWVzICAgICAgICAgICAgICAgICB8ICAgNyArCj4gIHJ1bGVzL2xpYnVz Ymd4LmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArCj4gIHJ1bGVzL2xpYnVz Ymd4Lm1ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2NiArKwo+ICA4IGZpbGVzIGNo YW5nZWQsIDEwMTEgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9s aWJ1c2JneC0wLjIuMC8wMDAxLUZpeC0zOS1Db21waWxhdGlvbi1mYWlscy1vbi1nY2MtdjgucGF0 Y2gKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvbGlidXNiZ3gtMC4yLjAvMDAwMi1saWJ1 c2JneC1maXgtYnVpbGQtd2l0aC1nbGliYy0yLjI4LXNpbmNlLXN5cy1zeXNtYWNyLnBhdGNoCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL2xpYnVzYmd4LTAuMi4wLzAwMDMtZXhhbXBsZXMt Z2FkZ2V0LXZpZC1waWQtcmVtb3ZlLWFkZC1keW5hbWljLXZpZC1waWQtcy5wYXRjaAo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9saWJ1c2JneC0wLjIuMC8wMDA0LWxpYnVzYmd4LUFkZC1V VkMtc3VwcG9ydC5wYXRjaAo+ICBjcmVhdGUgbW9kZSAxMDA3NTUgcGF0Y2hlcy9saWJ1c2JneC0w LjIuMC9hdXRvZ2VuLnNoCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL2xpYnVzYmd4LTAu Mi4wL3Nlcmllcwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcnVsZXMvbGlidXNiZ3guaW4KPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IHJ1bGVzL2xpYnVzYmd4Lm1ha2UKPiAKPiBkaWZmIC0tZ2l0IGEvcGF0 Y2hlcy9saWJ1c2JneC0wLjIuMC8wMDAxLUZpeC0zOS1Db21waWxhdGlvbi1mYWlscy1vbi1nY2Mt djgucGF0Y2ggYi9wYXRjaGVzL2xpYnVzYmd4LTAuMi4wLzAwMDEtRml4LTM5LUNvbXBpbGF0aW9u LWZhaWxzLW9uLWdjYy12OC5wYXRjaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAw MDAwMDAwLi40ZTdmZjBjYTQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvcGF0Y2hlcy9saWJ1c2Jn eC0wLjIuMC8wMDAxLUZpeC0zOS1Db21waWxhdGlvbi1mYWlscy1vbi1nY2MtdjgucGF0Y2gKPiBA QCAtMCwwICsxLDIwIEBACj4gK0Zyb206IEZlZGVyaWNvIEZ1Z2EgPGZ1Z2FAc3R1ZGlvZnVnYS5j b20+Cj4gK0RhdGU6IFRodSwgMjMgTWF5IDIwMTkgMTM6NDA6MzkgKzAyMDAKPiArU3ViamVjdDog W1BBVENIXSBGaXggIzM5IENvbXBpbGF0aW9uIGZhaWxzIG9uIGdjYyB2OAo+ICsKPiArLS0tCj4g KyBzcmMvdXNiZ19jb21tb24uYyB8IDEgKwo+ICsgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCj4gKwo+ICtkaWZmIC0tZ2l0IGEvc3JjL3VzYmdfY29tbW9uLmMgYi9zcmMvdXNiZ19jb21t b24uYwo+ICtpbmRleCBmODgyMmZjZjcyN2YuLmYzYWE4YjA1M2M0NCAxMDA2NDQKPiArLS0tIGEv c3JjL3VzYmdfY29tbW9uLmMKPiArKysrIGIvc3JjL3VzYmdfY29tbW9uLmMKPiArQEAgLTIwLDYg KzIwLDcgQEAKPiArICNpbmNsdWRlIDxzdGRpby5oPgo+ICsgI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ ICsgI2luY2x1ZGUgPHVuaXN0ZC5oPgo+ICsrI2luY2x1ZGUgPHN5cy9zeXNtYWNyb3MuaD4KPiAr IAo+ICsgaW50IHVzYmdfcmVhZF9idWZfbGltaXRlZChjb25zdCBjaGFyICpwYXRoLCBjb25zdCBj aGFyICpuYW1lLAo+ICsgCQkJICBjb25zdCBjaGFyICpmaWxlLCBjaGFyICpidWYsIGludCBsZW4p Cj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvbGlidXNiZ3gtMC4yLjAvMDAwMi1saWJ1c2JneC1maXgt YnVpbGQtd2l0aC1nbGliYy0yLjI4LXNpbmNlLXN5cy1zeXNtYWNyLnBhdGNoIGIvcGF0Y2hlcy9s aWJ1c2JneC0wLjIuMC8wMDAyLWxpYnVzYmd4LWZpeC1idWlsZC13aXRoLWdsaWJjLTIuMjgtc2lu Y2Utc3lzLXN5c21hY3IucGF0Y2gKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw MDAwMC4uOTY3MGQ0NjlhCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3BhdGNoZXMvbGlidXNiZ3gt MC4yLjAvMDAwMi1saWJ1c2JneC1maXgtYnVpbGQtd2l0aC1nbGliYy0yLjI4LXNpbmNlLXN5cy1z eXNtYWNyLnBhdGNoCj4gQEAgLTAsMCArMSw5MCBAQAo+ICtGcm9tOiBHd2VuaGFlbCBHb2F2ZWMt TWVyb3UgPGd3ZW5oYWVsLmdvYXZlYy1tZXJvdUB0cmFidWNheXJlLmNvbT4KPiArRGF0ZTogTW9u LCAxMCBTZXAgMjAxOCAxNTo1MjowOSArMDIwMAo+ICtTdWJqZWN0OiBbUEFUQ0hdIGxpYnVzYmd4 OiBmaXggYnVpbGQgd2l0aCBnbGliYy0yLjI4IHNpbmNlIDxzeXMvc3lzbWFjcm9zLmg+Cj4gKyBp cyBubyBtb3JlIGluY2x1ZGVkIGJ5IDxzeXMvdHlwZXMuaD4KPiArCj4gK1NpZ25lZC1vZmYtYnk6 IFNpZCBTcHJ5IFIwMzB0MUBnbWFpbC5jb20KPiArU2lnbmVkLW9mZi1ieTogR3dlbmhhZWwgR29h dmVjLU1lcm91IGd3ZW5oYWVsLmdvYXZlYy1tZXJvdUB0cmFidWNheXJlLmNvbQo+ICtbQ29weSBz aWduLW9mZnMgZnJvbSBwdWxsIHJlcXVzdCB0byBjb21taXQgbXNnXQo+ICtTaWduZWQtb2ZmLWJ5 OiBLcnp5c3p0b2YgT3Bhc2lhayA8ay5vcGFzaWFrQHNhbXN1bmcuY29tPgo+ICstLS0KPiArIGV4 YW1wbGVzL2dhZGdldC1hY20tZWNtLmMgICAgICAgICAgICAgIHwgMSArCj4gKyBleGFtcGxlcy9n YWRnZXQtaW1wb3J0LmMgICAgICAgICAgICAgICB8IDEgKwo+ICsgZXhhbXBsZXMvZ2FkZ2V0LW1z LmMgICAgICAgICAgICAgICAgICAgfCAxICsKPiArIGV4YW1wbGVzL3Nob3ctZ2FkZ2V0cy5jICAg ICAgICAgICAgICAgIHwgMSArCj4gKyBleGFtcGxlcy9zaG93LXVkY3MuYyAgICAgICAgICAgICAg ICAgICB8IDEgKwo+ICsgaW5jbHVkZS91c2JnL3VzYmdfaW50ZXJuYWxfbGliY29uZmlnLmggfCAx ICsKPiArIDYgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCj4gKwo+ICtkaWZmIC0tZ2l0 IGEvZXhhbXBsZXMvZ2FkZ2V0LWFjbS1lY20uYyBiL2V4YW1wbGVzL2dhZGdldC1hY20tZWNtLmMK PiAraW5kZXggMWM1ZTJjYTUxNjFjLi4yOTM2MGRhMTU4MTEgMTAwNjQ0Cj4gKy0tLSBhL2V4YW1w bGVzL2dhZGdldC1hY20tZWNtLmMKPiArKysrIGIvZXhhbXBsZXMvZ2FkZ2V0LWFjbS1lY20uYwo+ ICtAQCAtMjAsNiArMjAsNyBAQAo+ICsgCj4gKyAjaW5jbHVkZSA8ZXJybm8uaD4KPiArICNpbmNs dWRlIDxzdGRpby5oPgo+ICsrI2luY2x1ZGUgPHN5cy9zeXNtYWNyb3MuaD4KPiArICNpbmNsdWRl IDxsaW51eC91c2IvY2g5Lmg+Cj4gKyAjaW5jbHVkZSA8dXNiZy91c2JnLmg+Cj4gKyAKPiArZGlm ZiAtLWdpdCBhL2V4YW1wbGVzL2dhZGdldC1pbXBvcnQuYyBiL2V4YW1wbGVzL2dhZGdldC1pbXBv cnQuYwo+ICtpbmRleCBlNjg0ZmRiODYxZTguLjYzZGY0NDk5OTI2YiAxMDA2NDQKPiArLS0tIGEv ZXhhbXBsZXMvZ2FkZ2V0LWltcG9ydC5jCj4gKysrKyBiL2V4YW1wbGVzL2dhZGdldC1pbXBvcnQu Ywo+ICtAQCAtMjUsNiArMjUsNyBAQAo+ICsgI2luY2x1ZGUgPGVycm5vLmg+Cj4gKyAjaW5jbHVk ZSA8c3RyaW5nLmg+Cj4gKyAjaW5jbHVkZSA8c3RkaW8uaD4KPiArKyNpbmNsdWRlIDxzeXMvc3lz bWFjcm9zLmg+Cj4gKyAjaW5jbHVkZSA8dXNiZy91c2JnLmg+Cj4gKyAKPiArIGludCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKPiArZGlmZiAtLWdpdCBhL2V4YW1wbGVzL2dhZGdldC1tcy5j IGIvZXhhbXBsZXMvZ2FkZ2V0LW1zLmMKPiAraW5kZXggNDc4YzM3MDk3Mzk3Li5hNWM2NjgxODdh OTYgMTAwNjQ0Cj4gKy0tLSBhL2V4YW1wbGVzL2dhZGdldC1tcy5jCj4gKysrKyBiL2V4YW1wbGVz L2dhZGdldC1tcy5jCj4gK0BAIC0yMyw2ICsyMyw3IEBACj4gKyAKPiArICNpbmNsdWRlIDxlcnJu by5oPgo+ICsgI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gKysjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5o Pgo+ICsgI2luY2x1ZGUgPGxpbnV4L3VzYi9jaDkuaD4KPiArICNpbmNsdWRlIDx1c2JnL3VzYmcu aD4KPiArICNpbmNsdWRlIDx1c2JnL2Z1bmN0aW9uL21zLmg+Cj4gK2RpZmYgLS1naXQgYS9leGFt cGxlcy9zaG93LWdhZGdldHMuYyBiL2V4YW1wbGVzL3Nob3ctZ2FkZ2V0cy5jCj4gK2luZGV4IDcw N2Q0NDg4ZDE2Yi4uYTJhMjFjODgzYjI3IDEwMDY0NAo+ICstLS0gYS9leGFtcGxlcy9zaG93LWdh ZGdldHMuYwo+ICsrKysgYi9leGFtcGxlcy9zaG93LWdhZGdldHMuYwo+ICtAQCAtMjEsNiArMjEs NyBAQAo+ICsgI2luY2x1ZGUgPGVycm5vLmg+Cj4gKyAjaW5jbHVkZSA8c3RkaW8uaD4KPiArICNp bmNsdWRlIDxzdHJpbmcuaD4KPiArKyNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Cj4gKyAjaW5j bHVkZSA8bmV0aW5ldC9ldGhlci5oPgo+ICsgI2luY2x1ZGUgPHVzYmcvdXNiZy5oPgo+ICsgI2lu Y2x1ZGUgPHVzYmcvZnVuY3Rpb24vbXMuaD4KPiArZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3Nob3ct dWRjcy5jIGIvZXhhbXBsZXMvc2hvdy11ZGNzLmMKPiAraW5kZXggNjZlOTUwZjdiZjg1Li4yZjVj YzQ1OGViYjEgMTAwNjQ0Cj4gKy0tLSBhL2V4YW1wbGVzL3Nob3ctdWRjcy5jCj4gKysrKyBiL2V4 YW1wbGVzL3Nob3ctdWRjcy5jCj4gK0BAIC0yMyw2ICsyMyw3IEBACj4gKyAKPiArICNpbmNsdWRl IDxlcnJuby5oPgo+ICsgI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gKysjaW5jbHVkZSA8c3lzL3N5c21h Y3Jvcy5oPgo+ICsgI2luY2x1ZGUgPHVzYmcvdXNiZy5oPgo+ICsgCj4gKyBpbnQgbWFpbih2b2lk KQo+ICtkaWZmIC0tZ2l0IGEvaW5jbHVkZS91c2JnL3VzYmdfaW50ZXJuYWxfbGliY29uZmlnLmgg Yi9pbmNsdWRlL3VzYmcvdXNiZ19pbnRlcm5hbF9saWJjb25maWcuaAo+ICtpbmRleCBhYzUxNzU4 YjNkNmMuLjNmYTU1YzBiNTQ0YiAxMDA2NDQKPiArLS0tIGEvaW5jbHVkZS91c2JnL3VzYmdfaW50 ZXJuYWxfbGliY29uZmlnLmgKPiArKysrIGIvaW5jbHVkZS91c2JnL3VzYmdfaW50ZXJuYWxfbGli Y29uZmlnLmgKPiArQEAgLTEyLDYgKzEyLDcgQEAKPiArICNpZm5kZWYgVVNCR19JTlRFUk5BTF9M SUJDT05GSUdfSAo+ICsgI2RlZmluZSBVU0JHX0lOVEVSTkFMX0xJQkNPTkZJR19ICj4gKyAKPiAr KyNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Cj4gKyAjaW5jbHVkZSA8bGliY29uZmlnLmg+Cj4g KyAjaWZkZWYgX19jcGx1c3BsdXMKPiArIGV4dGVybiAiQyIgewo+IGRpZmYgLS1naXQgYS9wYXRj aGVzL2xpYnVzYmd4LTAuMi4wLzAwMDMtZXhhbXBsZXMtZ2FkZ2V0LXZpZC1waWQtcmVtb3ZlLWFk ZC1keW5hbWljLXZpZC1waWQtcy5wYXRjaCBiL3BhdGNoZXMvbGlidXNiZ3gtMC4yLjAvMDAwMy1l eGFtcGxlcy1nYWRnZXQtdmlkLXBpZC1yZW1vdmUtYWRkLWR5bmFtaWMtdmlkLXBpZC1zLnBhdGNo Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAuLjYzZGRmMzQ3Zgo+IC0t LSAvZGV2L251bGwKPiArKysgYi9wYXRjaGVzL2xpYnVzYmd4LTAuMi4wLzAwMDMtZXhhbXBsZXMt Z2FkZ2V0LXZpZC1waWQtcmVtb3ZlLWFkZC1keW5hbWljLXZpZC1waWQtcy5wYXRjaAo+IEBAIC0w LDAgKzEsNjcgQEAKPiArRnJvbTogTWljaGFlbCBHcnplc2NoaWsgPG0uZ3J6ZXNjaGlrQHBlbmd1 dHJvbml4LmRlPgo+ICtEYXRlOiBXZWQsIDI4IEFwciAyMDIxIDIxOjQzOjA3ICswMjAwCj4gK1N1 YmplY3Q6IFtQQVRDSF0gZXhhbXBsZXM6IGdhZGdldC12aWQtcGlkLXJlbW92ZTogYWRkIGR5bmFt aWMgdmlkIHBpZCBzdXBwb3J0Cj4gKwo+ICtTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEdyemVzY2hp ayA8bS5ncnplc2NoaWtAcGVuZ3V0cm9uaXguZGU+Cj4gKy0tLQo+ICsgZXhhbXBsZXMvZ2FkZ2V0 LXZpZC1waWQtcmVtb3ZlLmMgfCAyNSArKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gKyAxIGZp bGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiArCj4gK2RpZmYg LS1naXQgYS9leGFtcGxlcy9nYWRnZXQtdmlkLXBpZC1yZW1vdmUuYyBiL2V4YW1wbGVzL2dhZGdl dC12aWQtcGlkLXJlbW92ZS5jCj4gK2luZGV4IGY2Yjk1MGIzOGRhMy4uZjVlYjk2NjRiNzIxIDEw MDY0NAo+ICstLS0gYS9leGFtcGxlcy9nYWRnZXQtdmlkLXBpZC1yZW1vdmUuYwo+ICsrKysgYi9l eGFtcGxlcy9nYWRnZXQtdmlkLXBpZC1yZW1vdmUuYwo+ICtAQCAtMjMsMTEgKzIzLDEwIEBACj4g KyAKPiArICNpbmNsdWRlIDxlcnJuby5oPgo+ICsgI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gKysjaW5j bHVkZSA8c3RyaW5nLmg+Cj4gKysjaW5jbHVkZSA8c3RkbGliLmg+Cj4gKyAjaW5jbHVkZSA8dXNi Zy91c2JnLmg+Cj4gKyAKPiArLSNkZWZpbmUgVkVORE9SCQkweDFkNmIKPiArLSNkZWZpbmUgUFJP RFVDVAkJMHgwMTA0Cj4gKy0KPiArIGludCByZW1vdmVfZ2FkZ2V0KHVzYmdfZ2FkZ2V0ICpnKQo+ ICsgewo+ICsgCWludCB1c2JnX3JldDsKPiArQEAgLTYwLDEzICs1OSwyOSBAQCBvdXQ6Cj4gKyAJ cmV0dXJuIHVzYmdfcmV0Owo+ICsgfQo+ICsgCj4gKy1pbnQgbWFpbih2b2lkKQo+ICsraW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICsgewo+ICsgCWludCB1c2JnX3JldDsKPiArIAlp bnQgcmV0ID0gLUVJTlZBTDsKPiArIAl1c2JnX3N0YXRlICpzOwo+ICsgCXVzYmdfZ2FkZ2V0ICpn Owo+ICsgCXN0cnVjdCB1c2JnX2dhZGdldF9hdHRycyBnX2F0dHJzOwo+ICsrCWNoYXIgKmNwOwo+ ICsrCWludCB2ZW5kb3IgPSAweDFkNmIsIHByb2R1Y3QgPSAweDAxMDQ7Cj4gKysKPiArKwlpZiAo YXJnYyA+PSAyKSB7Cj4gKysJCWNwID0gc3RyY2hyKGFyZ3ZbMV0sICc6Jyk7Cj4gKysJCWlmICgh Y3ApIHsKPiArKwkJCXJldCA9IC1FSU5WQUw7Cj4gKysJCQlmcHJpbnRmKHN0ZGVyciwgIlVzYWdl OiBnYWRnZXQtdmlkLXBpZC1yZW1vdmUgdmlkOnBpZFxuIik7Cj4gKysJCQlnb3RvIG91dDE7Cj4g KysJCX0KPiArKwkJKmNwKysgPSAwOwo+ICsrCQlpZiAoJmFyZ3ZbMV0pCj4gKysJCQl2ZW5kb3Ig PSBzdHJ0b3VsKGFyZ3ZbMV0sIE5VTEwsIDE2KTsKPiArKwkJaWYgKCpjcCkKPiArKwkJCXByb2R1 Y3QgPSBzdHJ0b3VsKGNwLCBOVUxMLCAxNik7Cj4gKysJfQo+ICsgCj4gKyAJdXNiZ19yZXQgPSB1 c2JnX2luaXQoIi9zeXMva2VybmVsL2NvbmZpZyIsICZzKTsKPiArIAlpZiAodXNiZ19yZXQgIT0g VVNCR19TVUNDRVNTKSB7Cj4gK0BAIC04OCw3ICsxMDMsNyBAQCBpbnQgbWFpbih2b2lkKQo+ICsg CQl9Cj4gKyAKPiArIAkJLyogQ29tcGFyZSBhdHRycyB3aXRoIGdpdmVuIHZhbHVlcyBhbmQgcmVt b3ZlIGlmIHN1aXRhYmxlICovCj4gKy0JCWlmIChnX2F0dHJzLmlkVmVuZG9yID09IFZFTkRPUiAm JiBnX2F0dHJzLmlkUHJvZHVjdCA9PSBQUk9EVUNUKSB7Cj4gKysJCWlmIChnX2F0dHJzLmlkVmVu ZG9yID09IHZlbmRvciAmJiBnX2F0dHJzLmlkUHJvZHVjdCA9PSBwcm9kdWN0KSB7Cj4gKyAJCQl1 c2JnX2dhZGdldCAqZ19uZXh0ID0gdXNiZ19nZXRfbmV4dF9nYWRnZXQoZyk7Cj4gKyAKPiArIAkJ CXVzYmdfcmV0ID0gcmVtb3ZlX2dhZGdldChnKTsKPiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9saWJ1 c2JneC0wLjIuMC8wMDA0LWxpYnVzYmd4LUFkZC1VVkMtc3VwcG9ydC5wYXRjaCBiL3BhdGNoZXMv bGlidXNiZ3gtMC4yLjAvMDAwNC1saWJ1c2JneC1BZGQtVVZDLXN1cHBvcnQucGF0Y2gKPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMC4uMDIxN2JiMDJkCj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL3BhdGNoZXMvbGlidXNiZ3gtMC4yLjAvMDAwNC1saWJ1c2JneC1BZGQtVVZD LXN1cHBvcnQucGF0Y2gKPiBAQCAtMCwwICsxLDczNyBAQAo+ICtGcm9tOiBUaG9tYXMgSGFlbW1l cmxlIDx0aG9tYXMuaGFlbW1lcmxlQHdvbGZ2aXNpb24ubmV0Pgo+ICtEYXRlOiBXZWQsIDggSmFu IDIwMjAgMTQ6NDM6NDUgKzAxMDAKPiArU3ViamVjdDogW1BBVENIXSBsaWJ1c2JneDogQWRkIFVW QyBzdXBwb3J0Cj4gKwo+ICtTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgSGFlbW1lcmxlIDx0aG9tYXMu aGFlbW1lcmxlQHdvbGZ2aXNpb24ubmV0Pgo+ICtTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEdyemVz Y2hpayA8bS5ncnplc2NoaWtAcGVuZ3V0cm9uaXguZGU+Cj4gKwo+ICtOb3RlczoKPiArdjIgLT4g djM6IC0gc2ltcGxpZmllZCBleGl0IHBhdGhzIG9mIGZ1bmN0aW9ucyB3aXRoIHJldXRybnMgaW5z dGVhZCBvZiBnb3Rvcwo+ICsgICAgICAgICAgLSBhZGRlZCBjbGVhbnVwIGNvZGUgZm9yIHJlbW92 ZQo+ICsJICAtIGFkZGVkIGdhZGdldC11dmMgZXhhbXBsZSBmaWxlCj4gKwkgIC0gc2ltcGxpZmll ZCBjbGFzcyBsaW5rIGNyZWF0aW9uCj4gKwkgIC0gYWRkZWQgc3VwcG9ydCBmb3IgbW9yZSB0aGFu IG9uZSBmb3JtYXQKPiArLS0tCj4gKyBNYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KPiArIGV4YW1wbGVzL01ha2VmaWxlLmFtICAgICAgICB8ICAgMyArLQo+ICsgZXhhbXBsZXMv Z2FkZ2V0LXV2Yy5jICAgICAgIHwgMTU2ICsrKysrKysrKysrKysrKysrKwo+ICsgaW5jbHVkZS91 c2JnL2Z1bmN0aW9uL3V2Yy5oIHwgIDkwICsrKysrKysrKysrCj4gKyBpbmNsdWRlL3VzYmcvdXNi Zy5oICAgICAgICAgfCAgIDEgKwo+ICsgc3JjL01ha2VmaWxlLmFtICAgICAgICAgICAgIHwgICAy ICstCj4gKyBzcmMvZnVuY3Rpb24vdXZjLmMgICAgICAgICAgfCAzNzggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiArIHNyYy91c2JnLmMgICAgICAgICAgICAg ICAgICB8ICAgMiArCj4gKyA4IGZpbGVzIGNoYW5nZWQsIDYzMSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQo+ICsgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4YW1wbGVzL2dhZGdldC11dmMuYwo+ ICsgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvdXNiZy9mdW5jdGlvbi91dmMuaAo+ICsgY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9mdW5jdGlvbi91dmMuYwo+ICsKPiArZGlmZiAtLWdpdCBhL01h a2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KPiAraW5kZXggYTNjYzMzN2MxOGRhLi5iM2NkMDk3ZDlk MzIgMTAwNjQ0Cj4gKy0tLSBhL01ha2VmaWxlLmFtCj4gKysrKyBiL01ha2VmaWxlLmFtCj4gK0BA IC0xNCw2ICsxNCw2IEBAIEVYVFJBX0RJU1QgPSBkb3h5Z2VuLmNmZwo+ICsgbGlicmFyeV9pbmNs dWRlZGlyPSQoaW5jbHVkZWRpcikvdXNiZwo+ICsgbGlicmFyeV9pbmNsdWRlX0hFQURFUlMgPSBp bmNsdWRlL3VzYmcvdXNiZy5oIGluY2x1ZGUvdXNiZy91c2JnX3ZlcnNpb24uaAo+ICsgZnVuY3Rp b25faW5jbHVkZWRpcj0kKGluY2x1ZGVkaXIpL3VzYmcvZnVuY3Rpb24KPiArLWZ1bmN0aW9uX2lu Y2x1ZGVfSEVBREVSUyA9IGluY2x1ZGUvdXNiZy9mdW5jdGlvbi9mZnMuaCBpbmNsdWRlL3VzYmcv ZnVuY3Rpb24vbG9vcGJhY2suaCBpbmNsdWRlL3VzYmcvZnVuY3Rpb24vbWlkaS5oIGluY2x1ZGUv dXNiZy9mdW5jdGlvbi9tcy5oIGluY2x1ZGUvdXNiZy9mdW5jdGlvbi9uZXQuaCBpbmNsdWRlL3Vz YmcvZnVuY3Rpb24vcGhvbmV0LmggaW5jbHVkZS91c2JnL2Z1bmN0aW9uL3NlcmlhbC5oIGluY2x1 ZGUvdXNiZy9mdW5jdGlvbi9oaWQuaCBpbmNsdWRlL3VzYmcvZnVuY3Rpb24vdWFjMi5oCj4gKytm dW5jdGlvbl9pbmNsdWRlX0hFQURFUlMgPSBpbmNsdWRlL3VzYmcvZnVuY3Rpb24vZmZzLmggaW5j bHVkZS91c2JnL2Z1bmN0aW9uL2xvb3BiYWNrLmggaW5jbHVkZS91c2JnL2Z1bmN0aW9uL21pZGku aCBpbmNsdWRlL3VzYmcvZnVuY3Rpb24vbXMuaCBpbmNsdWRlL3VzYmcvZnVuY3Rpb24vbmV0Lmgg aW5jbHVkZS91c2JnL2Z1bmN0aW9uL3Bob25ldC5oIGluY2x1ZGUvdXNiZy9mdW5jdGlvbi9zZXJp YWwuaCBpbmNsdWRlL3VzYmcvZnVuY3Rpb24vaGlkLmggaW5jbHVkZS91c2JnL2Z1bmN0aW9uL3Vh YzIuaCBpbmNsdWRlL3VzYmcvZnVuY3Rpb24vdXZjLmgKPiArIHBrZ2NvbmZpZ2RpciA9ICQobGli ZGlyKS9wa2djb25maWcKPiArIHBrZ2NvbmZpZ19EQVRBID0gbGlidXNiZ3gucGMKPiArZGlmZiAt LWdpdCBhL2V4YW1wbGVzL01ha2VmaWxlLmFtIGIvZXhhbXBsZXMvTWFrZWZpbGUuYW0KPiAraW5k ZXggOTkzNDMyMTU2ZDZjLi4zMjE3ZWIzYmZkNmYgMTAwNjQ0Cj4gKy0tLSBhL2V4YW1wbGVzL01h a2VmaWxlLmFtCj4gKysrKyBiL2V4YW1wbGVzL01ha2VmaWxlLmFtCj4gK0BAIC0xLDUgKzEsNiBA QAo+ICstYmluX1BST0dSQU1TID0gc2hvdy1nYWRnZXRzIGdhZGdldC1hY20tZWNtIGdhZGdldC12 aWQtcGlkLXJlbW92ZSBnYWRnZXQtZmZzIGdhZGdldC1leHBvcnQgZ2FkZ2V0LWltcG9ydCBzaG93 LXVkY3MgZ2FkZ2V0LW1zIGdhZGdldC1taWRpIGdhZGdldC1oaWQgZ2FkZ2V0LXJuZGlzLW9zLWRl c2MgZ2FkZ2V0LXVhYzIKPiArK2Jpbl9QUk9HUkFNUyA9IHNob3ctZ2FkZ2V0cyBnYWRnZXQtYWNt LWVjbSBnYWRnZXQtdmlkLXBpZC1yZW1vdmUgZ2FkZ2V0LXV2YyBnYWRnZXQtZmZzIGdhZGdldC1l eHBvcnQgZ2FkZ2V0LWltcG9ydCBzaG93LXVkY3MgZ2FkZ2V0LW1zIGdhZGdldC1taWRpIGdhZGdl dC1oaWQgZ2FkZ2V0LXJuZGlzLW9zLWRlc2MgZ2FkZ2V0LXVhYzIKPiArIGdhZGdldF9hY21fZWNt X1NPVVJDRVMgPSBnYWRnZXQtYWNtLWVjbS5jCj4gKytnYWRnZXRfdXZjX1NPVVJDRVMgPSBnYWRn ZXQtdXZjLmMKPiArIHNob3dfZ2FkZ2V0c19TT1VSQ0VTID0gc2hvdy1nYWRnZXRzLmMKPiArIGdh ZGdldF92aWRfcGlkX3JlbW92ZV9TT1VSQ0VTID0gZ2FkZ2V0LXZpZC1waWQtcmVtb3ZlLmMKPiAr IGdhZGdldF9mZnNfU09VUkNFUyA9IGdhZGdldC1mZnMuYwo+ICtkaWZmIC0tZ2l0IGEvZXhhbXBs ZXMvZ2FkZ2V0LXV2Yy5jIGIvZXhhbXBsZXMvZ2FkZ2V0LXV2Yy5jCj4gK25ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gK2luZGV4IDAwMDAwMDAwMDAwMC4uZDNlZmUyZGVhZWJlCj4gKy0tLSAvZGV2L251 bGwKPiArKysrIGIvZXhhbXBsZXMvZ2FkZ2V0LXV2Yy5jCj4gK0BAIC0wLDAgKzEsMTU2IEBACj4g KysvKgo+ICsrICogQ29weXJpZ2h0IChDKSAyMDIxIFBlbmd1dHJvbml4Cj4gKysgKgo+ICsrICog TWljaGFlbCBHcnplc2NoaWsgPG1nckBwZW5ndXRyb25peC5kZT4KPiArKyAqCj4gKysgKiBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQo+ICsrICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4gKysgKiAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICsrICoKPiArKyAqIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+ICsrICog YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKPiArKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKPiArKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCj4gKysgKi8KPiArKwo+ICsrI2luY2x1ZGUgPGVycm5vLmg+Cj4gKysjaW5j bHVkZSA8c3RkaW8uaD4KPiArKyNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Cj4gKysjaW5jbHVk ZSA8bGludXgvdXNiL2NoOS5oPgo+ICsrI2luY2x1ZGUgPHVzYmcvdXNiZy5oPgo+ICsrI2luY2x1 ZGUgPHVzYmcvZnVuY3Rpb24vdXZjLmg+Cj4gKysKPiArKy8qKgo+ICsrICogQGZpbGUgZ2FkZ2V0 LXV2Yy5jCj4gKysgKiBAZXhhbXBsZSBnYWRnZXQtdXZjLmMKPiArKyAqIFRoaXMgaXMgYW4gZXhh bXBsZSBvZiBob3cgdG8gY3JlYXRlIGFuIFVWQyBnYWRnZXQgZGV2aWNlLgo+ICsrICovCj4gKysK PiArKyNkZWZpbmUgVkVORE9SCQkweDFkNmIKPiArKyNkZWZpbmUgUFJPRFVDVAkJMHgwMTA0Cj4g KysKPiArK2ludCBtYWluKHZvaWQpCj4gKyt7Cj4gKysJdXNiZ19zdGF0ZSAqczsKPiArKwl1c2Jn X2dhZGdldCAqZzsKPiArKwl1c2JnX2NvbmZpZyAqYzsKPiArKwl1c2JnX2Z1bmN0aW9uICpmX3V2 YzsKPiArKwlpbnQgcmV0ID0gLUVJTlZBTDsKPiArKwlpbnQgdXNiZ19yZXQ7Cj4gKysKPiArKwlz dHJ1Y3QgdXNiZ19nYWRnZXRfYXR0cnMgZ19hdHRycyA9IHsKPiArKwkJLmJjZFVTQiA9IDB4MDIw MCwKPiArKwkJLmJEZXZpY2VDbGFzcyA9CVVTQl9DTEFTU19QRVJfSU5URVJGQUNFLAo+ICsrCQku YkRldmljZVN1YkNsYXNzID0gMHgwMCwKPiArKwkJLmJEZXZpY2VQcm90b2NvbCA9IDB4MDAsCj4g KysJCS5iTWF4UGFja2V0U2l6ZTAgPSA2NCwgLyogTWF4IGFsbG93ZWQgZXAwIHBhY2tldCBzaXpl ICovCj4gKysJCS5pZFZlbmRvciA9IFZFTkRPUiwKPiArKwkJLmlkUHJvZHVjdCA9IFBST0RVQ1Qs Cj4gKysJCS5iY2REZXZpY2UgPSAweDAwMDEsIC8qIFZlcnNvbiBvZiBkZXZpY2UgKi8KPiArKwl9 Owo+ICsrCj4gKysJc3RydWN0IHVzYmdfZ2FkZ2V0X3N0cnMgZ19zdHJzID0gewo+ICsrCQkuc2Vy aWFsID0gIjAxMjM0NTY3ODkiLCAvKiBTZXJpYWwgbnVtYmVyICovCj4gKysJCS5tYW51ZmFjdHVy ZXIgPSAiRm9vIEluYy4iLCAvKiBNYW51ZmFjdHVyZXIgKi8KPiArKwkJLnByb2R1Y3QgPSAiQmFy IEdhZGdldCIgLyogUHJvZHVjdCBzdHJpbmcgKi8KPiArKwl9Owo+ICsrCj4gKysJc3RydWN0IHVz YmdfY29uZmlnX3N0cnMgY19zdHJzID0gewo+ICsrCQkuY29uZmlndXJhdGlvbiA9ICJVVkMiCj4g KysJfTsKPiArKwo+ICsrCXN0cnVjdCB1c2JnX2ZfdXZjX2Zvcm1hdF9hdHRycyB1dmNfZm9ybWF0 X2F0dHJzX2FycmF5W10gPSB7Cj4gKysJCXsKPiArKwkJCS5mb3JtYXQgPSBVVkNfRk9STUFUX01K UEVHLAo+ICsrCQkJLmR3RnJhbWVJbnRlcnZhbCA9ICIzMzMzMzMiLAo+ICsrCQkJLmhlaWdodCA9 IDEwODAsCj4gKysJCQkud2lkdGggPSAxOTIwLAo+ICsrCQl9LCB7Cj4gKysJCQkuZm9ybWF0ID0g VVZDX0ZPUk1BVF9NSlBFRywKPiArKwkJCS5kd0ZyYW1lSW50ZXJ2YWwgPSAiMzMzMzMzIiwKPiAr KwkJCS5oZWlnaHQgPSAzOTQwLAo+ICsrCQkJLndpZHRoID0gMjE2MCwKPiArKwkJfSwgewo+ICsr CQkJLmZvcm1hdCA9IFVWQ19GT1JNQVRfVU5DT01QUkVTU0VELAo+ICsrCQkJLmR3RnJhbWVJbnRl cnZhbCA9ICIzMzMzMzMiLAo+ICsrCQkJLmhlaWdodCA9IDEwODAsCj4gKysJCQkud2lkdGggPSAx OTIwLAo+ICsrCQl9LCB7Cj4gKysJCQkuZm9ybWF0ID0gVVZDX0ZPUk1BVF9VTkNPTVBSRVNTRUQs Cj4gKysJCQkuZHdGcmFtZUludGVydmFsID0gIjMzMzMzMyIsCj4gKysJCQkuaGVpZ2h0ID0gMzk0 MCwKPiArKwkJCS53aWR0aCA9IDIxNjAsCj4gKysJCX0KPiArKwl9Owo+ICsrCj4gKysJc3RydWN0 IHVzYmdfZl91dmNfZm9ybWF0X2F0dHJzICp1dmNfZm9ybWF0X2F0dHJzW10gPSB7Cj4gKysJCSZ1 dmNfZm9ybWF0X2F0dHJzX2FycmF5WzNdLAo+ICsrCQkmdXZjX2Zvcm1hdF9hdHRyc19hcnJheVsy XSwKPiArKwkJJnV2Y19mb3JtYXRfYXR0cnNfYXJyYXlbMV0sCj4gKysJCSZ1dmNfZm9ybWF0X2F0 dHJzX2FycmF5WzBdLAo+ICsrCQlOVUxMLAo+ICsrCX07Cj4gKysKPiArKwlzdHJ1Y3QgdXNiZ19m X3V2Y19hdHRycyB1dmNfYXR0cnMgPSB7Cj4gKysJCS5mb3JtYXRzID0gdXZjX2Zvcm1hdF9hdHRy cywKPiArKwl9Owo+ICsrCj4gKysJdXNiZ19yZXQgPSB1c2JnX2luaXQoIi9zeXMva2VybmVsL2Nv bmZpZyIsICZzKTsKPiArKwlpZiAodXNiZ19yZXQgIT0gVVNCR19TVUNDRVNTKSB7Cj4gKysJCWZw cmludGYoc3RkZXJyLCAiRXJyb3Igb24gVVNCIGdhZGdldCBpbml0XG4iKTsKPiArKwkJZnByaW50 ZihzdGRlcnIsICJFcnJvcjogJXMgOiAlc1xuIiwgdXNiZ19lcnJvcl9uYW1lKHVzYmdfcmV0KSwK PiArKwkJCQl1c2JnX3N0cmVycm9yKHVzYmdfcmV0KSk7Cj4gKysJCWdvdG8gb3V0MTsKPiArKwl9 Cj4gKysKPiArKwl1c2JnX3JldCA9IHVzYmdfY3JlYXRlX2dhZGdldChzLCAiZzEiLCAmZ19hdHRy cywgJmdfc3RycywgJmcpOwo+ICsrCWlmICh1c2JnX3JldCAhPSBVU0JHX1NVQ0NFU1MpIHsKPiAr KwkJZnByaW50ZihzdGRlcnIsICJFcnJvciBvbiBjcmVhdGUgZ2FkZ2V0XG4iKTsKPiArKwkJZnBy aW50ZihzdGRlcnIsICJFcnJvcjogJXMgOiAlc1xuIiwgdXNiZ19lcnJvcl9uYW1lKHVzYmdfcmV0 KSwKPiArKwkJCQl1c2JnX3N0cmVycm9yKHVzYmdfcmV0KSk7Cj4gKysJCWdvdG8gb3V0MjsKPiAr Kwl9Cj4gKysKPiArKyAgICAgICAgdXNiZ19yZXQgPSB1c2JnX2NyZWF0ZV9mdW5jdGlvbihnLCBV U0JHX0ZfVVZDLCAidXZjIiwgJnV2Y19hdHRycywgJmZfdXZjKTsKPiArKyAgICAgICAgaWYodXNi Z19yZXQgIT0gVVNCR19TVUNDRVNTKQo+ICsrICAgICAgICB7Cj4gKysJCWZwcmludGYoc3RkZXJy LCAiRXJyb3IgY3JlYXRpbmcgdXZjIGZ1bmN0aW9uXG4iKTsKPiArKwkJZnByaW50ZihzdGRlcnIs ICJFcnJvcjogJXMgOiAlc1xuIiwgdXNiZ19lcnJvcl9uYW1lKHVzYmdfcmV0KSwKPiArKwkJCQl1 c2JnX3N0cmVycm9yKHVzYmdfcmV0KSk7Cj4gKysJCWdvdG8gb3V0MjsKPiArKwl9Cj4gKysKPiAr KwkvKiBOVUxMIGNhbiBiZSBwYXNzZWQgdG8gdXNlIGtlcm5lbCBkZWZhdWx0cyAqLwo+ICsrCXVz YmdfcmV0ID0gdXNiZ19jcmVhdGVfY29uZmlnKGcsIDEsICJUaGUgb25seSBvbmUiLCBOVUxMLCAm Y19zdHJzLCAmYyk7Cj4gKysJaWYgKHVzYmdfcmV0ICE9IFVTQkdfU1VDQ0VTUykgewo+ICsrCQlm cHJpbnRmKHN0ZGVyciwgIkVycm9yIGNyZWF0aW5nIGNvbmZpZ1xuIik7Cj4gKysJCWZwcmludGYo c3RkZXJyLCAiRXJyb3I6ICVzIDogJXNcbiIsIHVzYmdfZXJyb3JfbmFtZSh1c2JnX3JldCksCj4g KysJCQkJdXNiZ19zdHJlcnJvcih1c2JnX3JldCkpOwo+ICsrCQlnb3RvIG91dDI7Cj4gKysJfQo+ ICsrCj4gKysgICAgICAgIHVzYmdfcmV0ID0gdXNiZ19hZGRfY29uZmlnX2Z1bmN0aW9uKGMsICJ1 dmMuY2FtIiwgZl91dmMpOwo+ICsrCWlmICh1c2JnX3JldCAhPSBVU0JHX1NVQ0NFU1MpIHsKPiAr KwkJZnByaW50ZihzdGRlcnIsICJFcnJvciBhZGRpbmcgYWNtLkdTMFxuIik7Cj4gKysJCWZwcmlu dGYoc3RkZXJyLCAiRXJyb3I6ICVzIDogJXNcbiIsIHVzYmdfZXJyb3JfbmFtZSh1c2JnX3JldCks Cj4gKysJCQkJdXNiZ19zdHJlcnJvcih1c2JnX3JldCkpOwo+ICsrCQlnb3RvIG91dDI7Cj4gKysJ fQo+ICsrCj4gKysJdXNiZ19yZXQgPSB1c2JnX2VuYWJsZV9nYWRnZXQoZywgREVGQVVMVF9VREMp Owo+ICsrCWlmICh1c2JnX3JldCAhPSBVU0JHX1NVQ0NFU1MpIHsKPiArKwkJZnByaW50ZihzdGRl cnIsICJFcnJvciBlbmFibGluZyBnYWRnZXRcbiIpOwo+ICsrCQlmcHJpbnRmKHN0ZGVyciwgIkVy cm9yOiAlcyA6ICVzXG4iLCB1c2JnX2Vycm9yX25hbWUodXNiZ19yZXQpLAo+ICsrCQkJCXVzYmdf c3RyZXJyb3IodXNiZ19yZXQpKTsKPiArKwkJZ290byBvdXQyOwo+ICsrCX0KPiArKwo+ICsrCXJl dCA9IDA7Cj4gKysKPiArK291dDI6Cj4gKysJdXNiZ19jbGVhbnVwKHMpOwo+ICsrCj4gKytvdXQx Ogo+ICsrCXJldHVybiByZXQ7Cj4gKyt9Cj4gK2RpZmYgLS1naXQgYS9pbmNsdWRlL3VzYmcvZnVu Y3Rpb24vdXZjLmggYi9pbmNsdWRlL3VzYmcvZnVuY3Rpb24vdXZjLmgKPiArbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiAraW5kZXggMDAwMDAwMDAwMDAwLi40YzY0MWRhY2RmY2IKPiArLS0tIC9kZXYv bnVsbAo+ICsrKysgYi9pbmNsdWRlL3VzYmcvZnVuY3Rpb24vdXZjLmgKPiArQEAgLTAsMCArMSw5 MCBAQAo+ICsrLyoKPiArKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPiArKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArKyAqIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ICsrICogdmVyc2lv biAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCj4gKysgKgo+ICsrICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKysgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ICsrICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiAr KyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gKysg Ki8KPiArKwo+ICsrI2lmbmRlZiBVU0JHX0ZVTkNUSU9OX1VWQ19fCj4gKysjZGVmaW5lIFVTQkdf RlVOQ1RJT05fVVZDX18KPiArKwo+ICsrI2luY2x1ZGUgPHVzYmcvdXNiZy5oPgo+ICsrCj4gKysj aWZkZWYgX19jcGx1c3BsdXMKPiArK2V4dGVybiAiQyIgewo+ICsrI2VuZGlmCj4gKysKPiArKwo+ ICsrI2RlZmluZSBVU0JHX1VWQ19NQVhfUEFUSF9MRU5HVEggMTAyNAo+ICsrCj4gKytzdHJ1Y3Qg dXNiZ19mX3V2YzsKPiArK3R5cGVkZWYgc3RydWN0IHVzYmdfZl91dmMgdXNiZ19mX3V2YzsKPiAr Kwo+ICsrZW51bSB1dmNfZm9ybWF0Cj4gKyt7Cj4gKysJVVZDX0ZPUk1BVF9NSlBFRywKPiArKwlV VkNfRk9STUFUX1VOQ09NUFJFU1NFRAo+ICsrfTsKPiArKwo+ICsrc3RydWN0IHVzYmdfZl91dmNf Zm9ybWF0X2F0dHJzCj4gKyt7Cj4gKysJZW51bSB1dmNfZm9ybWF0IGZvcm1hdDsKPiArKwljb25z dCBjaGFyICpkd0ZyYW1lSW50ZXJ2YWw7Cj4gKysJaW50IGhlaWdodDsKPiArKwlpbnQgd2lkdGg7 Cj4gKyt9Owo+ICsrCj4gKytzdHJ1Y3QgdXNiZ19mX3V2Y19hdHRycwo+ICsrewo+ICsrCXN0cnVj dCB1c2JnX2ZfdXZjX2Zvcm1hdF9hdHRycyAqKmZvcm1hdHM7Cj4gKyt9Owo+ICsrCj4gKysvKioK PiArKyAqIEBicmllZiBDYXN0IGZyb20gZ2VuZXJpYyBmdW5jdGlvbiB0byB1dmMgZnVuY3Rpb24K PiArKyAqIEBwYXJhbVtpbl0gZiBmdW5jdGlvbiB0byBiZSBjb252ZXJ0ZWQgdG8gdXZjIGZ1bmNp dG9uLgo+ICsrICogICAgICAgICBTaG91bGQgYmUgb25lIG9mIHR5cGVzOgo+ICsrICogICAgICAg ICBlY20sIHN1YnNldCwgbmNtLCBlZW0sIHJuZGlzCj4gKysgKiBAcmV0dXJuIENvbnZlcnRlZCB1 dmMgZnVuY3Rpb24gb3IgTlVMTCBpZiBmdW5jdGlvbiBoYXNuJ3Qgc3VpdGFibGUgdHlwZQo+ICsr ICovCj4gKyt1c2JnX2ZfdXZjICp1c2JnX3RvX3V2Y19mdW5jdGlvbih1c2JnX2Z1bmN0aW9uICpm KTsKPiArKwo+ICsrLyoqCj4gKysgKiBAYnJpZWYgQ2FzdCBmb3JtIHV2YyBmdW5jdGlvbiB0byBn ZW5lcmljIG9uZQo+ICsrICogQHBhcmFtW2luXSB1dmMgZnVuY3Rpb24gdG8gYmUgY29udmVydGVk IHRvIGdlbmVyaWMgb25lCj4gKysgKiBAcmV0dXJuIEdlbmVyaWMgdXNiZyBmdW5jdGlvbgo+ICsr ICovCj4gKyt1c2JnX2Z1bmN0aW9uICp1c2JnX2Zyb21fdXZjX2Z1bmN0aW9uKHVzYmdfZl91dmMg KmZmKTsKPiArKwo+ICsrLyoqCj4gKysgKiBAYnJpZWYgQ2xlYW51cCBhdHRyaWJ1dGVzIHN0cnVj dHVyZSBhZnRlciB1c2FnZQo+ICsrICogQHBhcmFtW2luXSBhdHRycyB0byBiZSBjbGVhbmVkIHVw Cj4gKysgKi8KPiArK3N0YXRpYyBpbmxpbmUgdm9pZCB1c2JnX2ZfdXZjX2NsZWFudXBfYXR0cnMo c3RydWN0IHVzYmdfZl91dmNfYXR0cnMgKmF0dHJzKQo+ICsrewo+ICsrCXN0cnVjdCB1c2JnX2Zf dXZjX2Zvcm1hdF9hdHRycyAqKmZvcm1hdF9hdHRyczsKPiArKwlpbnQgaTsKPiArKwo+ICsrCWlm IChhdHRycykgewo+ICsrCQlmb3IoZm9ybWF0X2F0dHJzID0gYXR0cnMtPmZvcm1hdHMsIGkgPSAw OyBmb3JtYXRfYXR0cnNbaV07ICsraSkgewo+ICsrCQkJaWYgKGZvcm1hdF9hdHRyc1tpXSkgewo+ ICsrCQkJCWZyZWUoKGNoYXIgKilmb3JtYXRfYXR0cnNbaV0tPmR3RnJhbWVJbnRlcnZhbCk7Cj4g KysJCQkJZm9ybWF0X2F0dHJzW2ldLT5kd0ZyYW1lSW50ZXJ2YWwgPSBOVUxMOwo+ICsrCQkJfQo+ ICsrCQl9Cj4gKysJfQo+ICsrfQo+ICsrCj4gKytpbnQgdXNiZ19mX3V2Y19nZXRfYXR0cnModXNi Z19mX3V2YyAqdXZjZiwgc3RydWN0IHVzYmdfZl91dmNfYXR0cnMgKmF0dHJzKTsKPiArK2ludCB1 c2JnX2ZfdXZjX3NldF9hdHRycyh1c2JnX2ZfdXZjICp1dmNmLCBjb25zdCBzdHJ1Y3QgdXNiZ19m X3V2Y19hdHRycyAqYXR0cnMpOwo+ICsrCj4gKysKPiArKyNpZmRlZiBfX2NwbHVzcGx1cwo+ICsr fQo+ICsrI2VuZGlmCj4gKysKPiArKyNlbmRpZiAvKiBVU0JHX0ZVTkNUSU9OX1VWQ19fICovCj4g K2RpZmYgLS1naXQgYS9pbmNsdWRlL3VzYmcvdXNiZy5oIGIvaW5jbHVkZS91c2JnL3VzYmcuaAo+ ICtpbmRleCA1NWM1MmExYzM3NjguLmRlNzI3OTNkZGNmMCAxMDA2NDQKPiArLS0tIGEvaW5jbHVk ZS91c2JnL3VzYmcuaAo+ICsrKysgYi9pbmNsdWRlL3VzYmcvdXNiZy5oCj4gK0BAIC0yMTksNiAr MjE5LDcgQEAgdHlwZWRlZiBlbnVtCj4gKyAJVVNCR19GX0xPT1BCQUNLLAo+ICsgCVVTQkdfRl9I SUQsCj4gKyAJVVNCR19GX1VBQzIsCj4gKysJVVNCR19GX1VWQywKPiArIAlVU0JHX0ZVTkNUSU9O X1RZUEVfTUFYLAo+ICsgfSB1c2JnX2Z1bmN0aW9uX3R5cGU7Cj4gKyAKPiArZGlmZiAtLWdpdCBh L3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQo+ICtpbmRleCA2YjI3MjZlYzUyMTku LmM1MTg3OGZhYzJmZiAxMDA2NDQKPiArLS0tIGEvc3JjL01ha2VmaWxlLmFtCj4gKysrKyBiL3Ny Yy9NYWtlZmlsZS5hbQo+ICtAQCAtMSw2ICsxLDYgQEAKPiArIEFVVE9NQUtFX09QVElPTlMgPSBz dGQtb3B0aW9ucyBzdWJkaXItb2JqZWN0cwo+ICsgbGliX0xUTElCUkFSSUVTID0gbGlidXNiZ3gu bGEKPiArLWxpYnVzYmd4X2xhX1NPVVJDRVMgPSB1c2JnLmMgdXNiZ19lcnJvci5jIHVzYmdfY29t bW9uLmMgZnVuY3Rpb24vZXRoZXIuYyBmdW5jdGlvbi9mZnMuYyBmdW5jdGlvbi9taWRpLmMgZnVu Y3Rpb24vbXMuYyBmdW5jdGlvbi9waG9uZXQuYyBmdW5jdGlvbi9zZXJpYWwuYyBmdW5jdGlvbi9s b29wYmFjay5jIGZ1bmN0aW9uL2hpZC5jIGZ1bmN0aW9uL3VhYzIuYwo+ICsrbGlidXNiZ3hfbGFf U09VUkNFUyA9IHVzYmcuYyB1c2JnX2Vycm9yLmMgdXNiZ19jb21tb24uYyBmdW5jdGlvbi9ldGhl ci5jIGZ1bmN0aW9uL2Zmcy5jIGZ1bmN0aW9uL21pZGkuYyBmdW5jdGlvbi9tcy5jIGZ1bmN0aW9u L3Bob25ldC5jIGZ1bmN0aW9uL3NlcmlhbC5jIGZ1bmN0aW9uL2xvb3BiYWNrLmMgZnVuY3Rpb24v aGlkLmMgZnVuY3Rpb24vdWFjMi5jIGZ1bmN0aW9uL3V2Yy5jCj4gKyBpZiBURVNUX0dBREdFVF9T Q0hFTUVTCj4gKyBsaWJ1c2JneF9sYV9TT1VSQ0VTICs9IHVzYmdfc2NoZW1lc19saWJjb25maWcu YyB1c2JnX2NvbW1vbl9saWJjb25maWcuYwo+ICsgZWxzZQo+ICtkaWZmIC0tZ2l0IGEvc3JjL2Z1 bmN0aW9uL3V2Yy5jIGIvc3JjL2Z1bmN0aW9uL3V2Yy5jCj4gK25ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gK2luZGV4IDAwMDAwMDAwMDAwMC4uOTJkNzM4YzU3NjNjCj4gKy0tLSAvZGV2L251bGwKPiAr KysrIGIvc3JjL2Z1bmN0aW9uL3V2Yy5jCj4gK0BAIC0wLDAgKzEsMzc4IEBACj4gKysvKgo+ICsr ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgo+ICsrICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYwo+ICsrICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4gKysgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArKyAqCj4gKysg KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKPiArKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+ICsrICogTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiArKyAqLwo+ICsrCj4gKysjaW5j bHVkZSAidXNiZy91c2JnLmgiCj4gKysjaW5jbHVkZSAidXNiZy91c2JnX2ludGVybmFsLmgiCj4g KysjaW5jbHVkZSAidXNiZy9mdW5jdGlvbi91dmMuaCIKPiArKwo+ICsrI2luY2x1ZGUgPGVycm5v Lmg+Cj4gKysjaW5jbHVkZSA8c3lzL3N0YXQuaD4KPiArKyNpbmNsdWRlIDx1bmlzdGQuaD4KPiAr KyNpbmNsdWRlIDxtYWxsb2MuaD4KPiArKyNpbmNsdWRlIDxmdHcuaD4KPiArKyNpZmRlZiBIQVNf R0FER0VUX1NDSEVNRVMKPiArKyNpbmNsdWRlIDxsaWJjb25maWcuaD4KPiArKyNlbmRpZgo+ICsr Cj4gKysjZGVmaW5lIFVWQ19QQVRIX0NPTlRST0wJCSJjb250cm9sIgo+ICsrI2RlZmluZSBVVkNf UEFUSF9IRUFERVIJCQkiaGVhZGVyL2giCj4gKysjZGVmaW5lIFVWQ19QQVRIX0NMQVNTX0ZTCQki Y2xhc3MvZnMvaCIKPiArKyNkZWZpbmUgVVZDX1BBVEhfQ0xBU1NfSFMJCSJjbGFzcy9ocy9oIgo+ ICsrI2RlZmluZSBVVkNfUEFUSF9DTEFTU19TUwkJImNsYXNzL3NzL2giCj4gKysjZGVmaW5lIFVW Q19QQVRIX1NUUkVBTUlORwkJInN0cmVhbWluZyIKPiArKyNkZWZpbmUgVVZDX1BBVEhfU1RSRUFN SU5HX1VOQ09NUFJFU1NFRAkidW5jb21wcmVzc2VkL3UiCj4gKysjZGVmaW5lIFVWQ19QQVRIX1NU UkVBTUlOR19NSlBFRwkibWpwZWcvbSIKPiArKwo+ICsrc3RydWN0IHVzYmdfZl91dmMKPiArK3sK PiArKwlzdHJ1Y3QgdXNiZ19mdW5jdGlvbiBmdW5jOwo+ICsrfTsKPiArKwo+ICsrR0VORVJJQ19B TExPQ19JTlNUKHV2Yywgc3RydWN0IHVzYmdfZl91dmMsIGZ1bmMpOwo+ICsrCj4gKytHRU5FUklD X0ZSRUVfSU5TVCh1dmMsIHN0cnVjdCB1c2JnX2ZfdXZjLCBmdW5jKTsKPiArKwo+ICsrc3RhdGlj IGludCB1dmNfc2V0X2F0dHJzKHN0cnVjdCB1c2JnX2Z1bmN0aW9uICpmLCB2b2lkICpmX2F0dHJz KQo+ICsrewo+ICsrCXJldHVybiB1c2JnX2ZfdXZjX3NldF9hdHRycyh1c2JnX3RvX3V2Y19mdW5j dGlvbihmKSwgZl9hdHRycyk7Cj4gKyt9Cj4gKysKPiArK3N0YXRpYyBpbnQgdXZjX2dldF9hdHRy cyhzdHJ1Y3QgdXNiZ19mdW5jdGlvbiAqZiwgdm9pZCAqZl9hdHRycykKPiArK3sKPiArKwlyZXR1 cm4gdXNiZ19mX3V2Y19nZXRfYXR0cnModXNiZ190b191dmNfZnVuY3Rpb24oZiksIGZfYXR0cnMp Owo+ICsrfQo+ICsrCj4gKytzdGF0aWMgdm9pZCB1dmNfY2xlYW51cF9hdHRycyhzdHJ1Y3QgdXNi Z19mdW5jdGlvbiAqZiwgdm9pZCAqZl9hdHRycykKPiArK3sKPiArKwlyZXR1cm4gdXNiZ19mX3V2 Y19jbGVhbnVwX2F0dHJzKGZfYXR0cnMpOwo+ICsrfQo+ICsrCj4gKytzdGF0aWMgaW50IHV2Y19s aWJjb25maWdfaW1wb3J0KHN0cnVjdCB1c2JnX2Z1bmN0aW9uICpmLCBjb25maWdfc2V0dGluZ190 ICpyb290KQo+ICsrewo+ICsrCXJldHVybiBVU0JHX1NVQ0NFU1M7Cj4gKyt9Cj4gKysKPiArK3N0 YXRpYyBpbnQgdXZjX2xpYmNvbmZpZ19leHBvcnQoc3RydWN0IHVzYmdfZnVuY3Rpb24gKmYsIGNv bmZpZ19zZXR0aW5nX3QgKnJvb3QpCj4gKyt7Cj4gKysJcmV0dXJuIFVTQkdfU1VDQ0VTUzsKPiAr K30KPiArKwo+ICsrc3RhdGljIGludCB1dmNfY3JlYXRlX2Rpcihjb25zdCBjaGFyICpwYXRoKQo+ ICsrewo+ICsrCWNoYXIgdG1wW1VTQkdfTUFYX1BBVEhfTEVOR1RIXTsKPiArKwljaGFyICpwID0g TlVMTDsKPiArKwlzaXplX3QgbGVuOwo+ICsrCWludCBubWIsIHJldCA9IFVTQkdfU1VDQ0VTUzsK PiArKwo+ICsrCW5tYiA9IHNucHJpbnRmKHRtcCwgc2l6ZW9mKHRtcCksICIlcyIsIHBhdGgpOwo+ ICsrCWlmKG5tYiA+PSBzaXplb2YodG1wKSkKPiArKwkJcmV0dXJuIFVTQkdfRVJST1JfUEFUSF9U T09fTE9ORzsKPiArKwo+ICsrCWxlbiA9IHN0cmxlbih0bXApOwo+ICsrCWlmKHRtcFtsZW4gLSAx XSA9PSAnLycpCj4gKysJCXRtcFtsZW4gLSAxXSA9IDA7Cj4gKysKPiArKwlmb3IgKHAgPSB0bXAg KyAxOyAqcDsgcCsrKSB7Cj4gKysJCWlmKCpwID09ICcvJykgewo+ICsrCQkJKnAgPSAwOwo+ICsr CQkJaWYoKG1rZGlyKHRtcCwgU19JUldYVSB8IFNfSVJXWEcgfCBTX0lSV1hPKSAhPSAwKSAmJiBl cnJubyAhPSBFRVhJU1QpIHsKPiArKwkJCQlyZXQgPSB1c2JnX3RyYW5zbGF0ZV9lcnJvcihlcnJu byk7Cj4gKysJCQkJYnJlYWs7Cj4gKysJCQl9Cj4gKysJCQkqcCA9ICcvJzsKPiArKwkJfQo+ICsr CX0KPiArKwlpZihyZXQgIT0gVVNCR19TVUNDRVNTKQo+ICsrCQlyZXR1cm4gcmV0Owo+ICsrCj4g KysJaWYoKG1rZGlyKHRtcCwgU19JUldYVSB8IFNfSVJXWEcgfCBTX0lSV1hPKSAhPSAwKSAmJiBl cnJubyAhPSBFRVhJU1QpCj4gKysJCXJldHVybiB1c2JnX3RyYW5zbGF0ZV9lcnJvcihlcnJubyk7 Cj4gKyt9Cj4gKysKPiArK3N0YXRpYyBpbnQgdXZjX2xpbmsoY2hhciAqcGF0aCwgY2hhciAqdG8s IGNoYXIgKmZyb20pCj4gKyt7Cj4gKysJY2hhciBvbGRuYW1lW1VTQkdfTUFYX1BBVEhfTEVOR1RI XTsKPiArKwljaGFyIG5ld25hbWVbVVNCR19NQVhfUEFUSF9MRU5HVEhdOwo+ICsrCWludCBubWI7 Cj4gKysKPiArKwlubWIgPSBzbnByaW50ZihvbGRuYW1lLCBzaXplb2Yob2xkbmFtZSksICIlcy8l cyIsIHBhdGgsIHRvKTsKPiArKwlpZiAobm1iID49IHNpemVvZihvbGRuYW1lKSkKPiArKwkJcmV0 dXJuIFVTQkdfRVJST1JfUEFUSF9UT09fTE9ORzsKPiArKwo+ICsrCW5tYiA9IHNucHJpbnRmKG5l d25hbWUsIHNpemVvZihuZXduYW1lKSwgIiVzLyVzIiwgcGF0aCwgZnJvbSk7Cj4gKysJaWYgKG5t YiA+PSBzaXplb2YobmV3bmFtZSkpCj4gKysJCXJldHVybiBVU0JHX0VSUk9SX1BBVEhfVE9PX0xP Tkc7Cj4gKysKPiArKwlpZihzeW1saW5rKG9sZG5hbWUsIG5ld25hbWUpKQo+ICsrCQlyZXR1cm4g dXNiZ190cmFuc2xhdGVfZXJyb3IoZXJybm8pOwo+ICsrfQo+ICsrCj4gKytzdGF0aWMgaW50IHV2 Y19zZXRfY2xhc3MoY2hhciAqZnVuY19wYXRoLCBjaGFyICpjcykKPiArK3sKPiArKwlpbnQgcmV0 LCBubWI7Cj4gKysJY2hhciBwYXRoW1VTQkdfTUFYX1BBVEhfTEVOR1RIXTsKPiArKwljaGFyIGhl YWRlcl9wYXRoW1VTQkdfTUFYX1BBVEhfTEVOR1RIXTsKPiArKwo+ICsrCW5tYiA9IHNucHJpbnRm KHBhdGgsIHNpemVvZihwYXRoKSwgIiVzLyVzIiwgZnVuY19wYXRoLCBjcyk7Cj4gKysJaWYgKG5t YiA+PSBzaXplb2YocGF0aCkpCj4gKysJCXJldHVybiBVU0JHX0VSUk9SX1BBVEhfVE9PX0xPTkc7 Cj4gKysKPiArKwlubWIgPSBzbnByaW50ZihoZWFkZXJfcGF0aCwgc2l6ZW9mKGhlYWRlcl9wYXRo KSwgIiVzLyIgVVZDX1BBVEhfSEVBREVSLCBwYXRoKTsKPiArKwlpZiAobm1iID49IHNpemVvZiho ZWFkZXJfcGF0aCkpCj4gKysJCXJldHVybiBVU0JHX0VSUk9SX1BBVEhfVE9PX0xPTkc7Cj4gKysK PiArKwlyZXQgPSB1dmNfY3JlYXRlX2RpcihoZWFkZXJfcGF0aCk7Cj4gKysJaWYgKHJldCAhPSBV U0JHX1NVQ0NFU1MpCj4gKysJCXJldHVybiByZXQ7Cj4gKysKPiArKwlpZiAoIXN0cm5jbXAoY3Ms IFVWQ19QQVRIX1NUUkVBTUlORywgc3RybGVuKFVWQ19QQVRIX1NUUkVBTUlORykpKSB7Cj4gKysJ CWNoYXIgY2hlY2tfcGF0aFtVU0JHX01BWF9QQVRIX0xFTkdUSF07Cj4gKysJCXN0cnVjdCBzdGF0 IGJ1ZmZlcjsKPiArKwo+ICsrCQlubWIgPSBzbnByaW50ZihjaGVja19wYXRoLCBzaXplb2YoY2hl Y2tfcGF0aCksICIlcy8iIFVWQ19QQVRIX1NUUkVBTUlOR19VTkNPTVBSRVNTRUQsIHBhdGgpOwo+ ICsrCQlpZiAobm1iID49IHNpemVvZihjaGVja19wYXRoKSkKPiArKwkJCXJldHVybiBVU0JHX0VS Uk9SX1BBVEhfVE9PX0xPTkc7Cj4gKysKPiArKwkJcmV0ID0gc3RhdChjaGVja19wYXRoLCAmYnVm ZmVyKTsKPiArKwkJaWYgKCFyZXQpIHsKPiArKwkJCXJldCA9IHV2Y19saW5rKHBhdGgsIFVWQ19Q QVRIX1NUUkVBTUlOR19VTkNPTVBSRVNTRUQsICJoZWFkZXIvaC91Iik7Cj4gKysJCQlpZiAocmV0 ICE9IFVTQkdfU1VDQ0VTUykKPiArKwkJCQlyZXR1cm4gcmV0Owo+ICsrCQl9Cj4gKysKPiArKwkJ bm1iID0gc25wcmludGYoY2hlY2tfcGF0aCwgc2l6ZW9mKGNoZWNrX3BhdGgpLCAiJXMvIiBVVkNf UEFUSF9TVFJFQU1JTkdfTUpQRUcsIHBhdGgpOwo+ICsrCQlpZiAobm1iID49IHNpemVvZihjaGVj a19wYXRoKSkKPiArKwkJCXJldHVybiBVU0JHX0VSUk9SX1BBVEhfVE9PX0xPTkc7Cj4gKysKPiAr KwkJcmV0ID0gc3RhdChjaGVja19wYXRoLCAmYnVmZmVyKTsKPiArKwkJaWYgKCFyZXQpIHsKPiAr KwkJCXJldCA9IHV2Y19saW5rKHBhdGgsIFVWQ19QQVRIX1NUUkVBTUlOR19NSlBFRywgImhlYWRl ci9oL20iKTsKPiArKwkJCWlmIChyZXQgIT0gVVNCR19TVUNDRVNTKQo+ICsrCQkJCXJldHVybiBy ZXQ7Cj4gKysJCX0KPiArKwo+ICsrCQlyZXQgPSB1dmNfbGluayhwYXRoLCBVVkNfUEFUSF9IRUFE RVIsIFVWQ19QQVRIX0NMQVNTX0hTKTsKPiArKwkJaWYgKHJldCkKPiArKwkJCXJldHVybiByZXQ7 Cj4gKysJfQo+ICsrCj4gKysJcmV0ID0gdXZjX2xpbmsocGF0aCwgVVZDX1BBVEhfSEVBREVSLCBV VkNfUEFUSF9DTEFTU19GUyk7Cj4gKysJaWYgKHJldCkKPiArKwkJcmV0dXJuIHJldDsKPiArKwo+ ICsrCXJldHVybiB1dmNfbGluayhwYXRoLCBVVkNfUEFUSF9IRUFERVIsIFVWQ19QQVRIX0NMQVNT X1NTKTsKPiArK30KPiArKwo+ICsrc3RhdGljIGludCB1dmNfc2V0X2ZyYW1lKGNoYXIgKmZvcm1h dF9wYXRoLCBjaGFyICpmb3JtYXQsIGNvbnN0IHN0cnVjdCB1c2JnX2ZfdXZjX2Zvcm1hdF9hdHRy cyAqYXR0cnMpCj4gKyt7Cj4gKysJaW50IG5tYiwgcmV0LCBpOwo+ICsrCWNoYXIgZnJhbWVfcGF0 aFtVU0JHX01BWF9QQVRIX0xFTkdUSF07Cj4gKysJY2hhciBmdWxsX2ZyYW1lX3BhdGhbVVNCR19N QVhfUEFUSF9MRU5HVEhdOwo+ICsrCWNoYXIgZnJhbWVfaW50ZXJ2YWxbVVNCR19NQVhfUEFUSF9M RU5HVEhdOwo+ICsrCWNoYXIgZnJhbWVfbmFtZVszMl07Cj4gKysKPiArKwlubWIgPSBzbnByaW50 ZihmcmFtZV9uYW1lLCBzaXplb2YoZnJhbWVfbmFtZSksICIlZHAiLCBhdHRycy0+aGVpZ2h0KTsK PiArKwlpZiAobm1iID49IHNpemVvZihmcmFtZV9uYW1lKSkKPiArKwkJcmV0dXJuIFVTQkdfRVJS T1JfUEFUSF9UT09fTE9ORzsKPiArKwo+ICsrCW5tYiA9IHNucHJpbnRmKGZyYW1lX3BhdGgsIHNp emVvZihmcmFtZV9wYXRoKSwgIiVzLyVzIiwgZm9ybWF0X3BhdGgsIGZvcm1hdCk7Cj4gKysJaWYg KG5tYiA+PSBzaXplb2YoZnJhbWVfcGF0aCkpCj4gKysJCXJldHVybiBVU0JHX0VSUk9SX1BBVEhf VE9PX0xPTkc7Cj4gKysKPiArKwlubWIgPSBzbnByaW50ZihmdWxsX2ZyYW1lX3BhdGgsIHNpemVv ZihmcmFtZV9wYXRoKSwgIiVzLyVzIiwgZnJhbWVfcGF0aCwgZnJhbWVfbmFtZSk7Cj4gKysJaWYg KG5tYiA+PSBzaXplb2YoZnVsbF9mcmFtZV9wYXRoKSkKPiArKwkJcmV0dXJuIFVTQkdfRVJST1Jf UEFUSF9UT09fTE9ORzsKPiArKwo+ICsrCXJldCA9IHV2Y19jcmVhdGVfZGlyKGZ1bGxfZnJhbWVf cGF0aCk7Cj4gKysJaWYgKHJldCAhPSBVU0JHX1NVQ0NFU1MpCj4gKysJCXJldHVybiByZXQ7Cj4g KysKPiArKwlyZXQgPSB1c2JnX3dyaXRlX3N0cmluZyhmcmFtZV9wYXRoLCBmcmFtZV9uYW1lLCAi ZHdGcmFtZUludGVydmFsIiwgYXR0cnMtPmR3RnJhbWVJbnRlcnZhbCk7Cj4gKysJaWYgKHJldCAh PSBVU0JHX1NVQ0NFU1MpCj4gKysJCXJldHVybiByZXQ7Cj4gKysKPiArKwlyZXQgPSB1c2JnX3dy aXRlX2RlYyhmcmFtZV9wYXRoLCBmcmFtZV9uYW1lLCAid0hlaWdodCIsIGF0dHJzLT5oZWlnaHQp Owo+ICsrCWlmIChyZXQgIT0gVVNCR19TVUNDRVNTKQo+ICsrCQlyZXR1cm4gcmV0Owo+ICsrCj4g KysJcmV0dXJuIHVzYmdfd3JpdGVfZGVjKGZyYW1lX3BhdGgsIGZyYW1lX25hbWUsICJ3V2lkdGgi LCBhdHRycy0+d2lkdGgpOwo+ICsrfQo+ICsrCj4gKytzdGF0aWMgaW50IHV2Y19zZXRfc3RyZWFt aW5nKGNoYXIgKmZ1bmNfcGF0aCwgY29uc3Qgc3RydWN0IHVzYmdfZl91dmNfZm9ybWF0X2F0dHJz ICphdHRycykKPiArK3sKPiArKwljaGFyIHN0cmVhbWluZ19wYXRoW1VTQkdfTUFYX1BBVEhfTEVO R1RIXTsKPiArKwlpbnQgcmV0LCBubWI7Cj4gKysKPiArKwlubWIgPSBzbnByaW50ZihzdHJlYW1p bmdfcGF0aCwgc2l6ZW9mKHN0cmVhbWluZ19wYXRoKSwgIiVzLyIgVVZDX1BBVEhfU1RSRUFNSU5H LCBmdW5jX3BhdGgpOwo+ICsrCWlmIChubWIgPj0gc2l6ZW9mKHN0cmVhbWluZ19wYXRoKSkKPiAr KwkJcmV0dXJuIFVTQkdfRVJST1JfUEFUSF9UT09fTE9ORzsKPiArKwo+ICsrCWlmIChhdHRycy0+ Zm9ybWF0ID09IFVWQ19GT1JNQVRfVU5DT01QUkVTU0VEKQo+ICsrCQlyZXQgPSB1dmNfc2V0X2Zy YW1lKHN0cmVhbWluZ19wYXRoLCBVVkNfUEFUSF9TVFJFQU1JTkdfVU5DT01QUkVTU0VELCBhdHRy cyk7Cj4gKysJZWxzZQo+ICsrCQlyZXQgPSB1dmNfc2V0X2ZyYW1lKHN0cmVhbWluZ19wYXRoLCBV VkNfUEFUSF9TVFJFQU1JTkdfTUpQRUcsIGF0dHJzKTsKPiArKwo+ICsrCXJldHVybiByZXQ7Cj4g Kyt9Cj4gKysKPiArK3N0YXRpYyBpbnQgZGlyX25mdHdfY2IoY29uc3QgY2hhciAqcGF0aG5hbWUs IGNvbnN0IHN0cnVjdCBzdGF0ICpzYnVmLCBpbnQgdHlwZSwgc3RydWN0IEZUVyAqZnR3YikKPiAr K3sKPiArKwkodm9pZCkgc2J1ZjsKPiArKwkodm9pZCkgdHlwZTsKPiArKwkodm9pZCkgZnR3YjsK PiArKwlpbnQgcmV0Owo+ICsrCj4gKysJcmV0ID0gcmVtb3ZlKHBhdGhuYW1lKTsKPiArKwlpZiAo cmV0IDwgLTEpCj4gKysJCUVSUk9SKCJmYWlsZWQgdG8gcmVtb3ZlICVzIC0gJXMiLCBwYXRobmFt ZSwgc3RyZXJyb3IocmV0KSk7Cj4gKysKPiArKwlyZXR1cm4gMDsKPiArK30KPiArKwo+ICsraW50 IHJlbW92ZV9kaXIoY29uc3QgY2hhciAqZGlycGF0aCkKPiArK3sKPiArKwljb25zdCBpbnQgbWF4 X29wZW5fZGVzY3MgPSA4Owo+ICsrCWludCByZXQ7Cj4gKysKPiArKwlyZXQgPSBuZnR3KGRpcnBh dGgsIGRpcl9uZnR3X2NiLCBtYXhfb3Blbl9kZXNjcywgRlRXX0RFUFRIIHwgRlRXX01PVU5UIHwg RlRXX1BIWVMpOwo+ICsrCWlmIChyZXQgPCAwKSB7Cj4gKysJCUVSUk9SKCJuZnR3IGZhaWxlZCIp Owo+ICsrCQlyZXR1cm4gcmV0Owo+ICsrCX0KPiArKwo+ICsrCXJldHVybiAwOwo+ICsrfQo+ICsr Cj4gKytzdGF0aWMgaW50IGNvbnRlbnRfbmZ0d19jYihjb25zdCBjaGFyICpwYXRobmFtZSwgY29u c3Qgc3RydWN0IHN0YXQgKnNidWYsIGludCB0eXBlLCBzdHJ1Y3QgRlRXICpmdHdiKQo+ICsrewo+ ICsrCSh2b2lkKSBzYnVmOwo+ICsrCSh2b2lkKSB0eXBlOwo+ICsrCSh2b2lkKSBmdHdiOwo+ICsr CWludCByZXQ7Cj4gKysKPiArKwlpZihmdHdiLT5sZXZlbCA9PSAwKQo+ICsrCQlyZXR1cm4gMDsK PiArKwo+ICsrCXJldCA9IHJlbW92ZShwYXRobmFtZSk7Cj4gKysJaWYocmV0IDwgLTEpCj4gKysJ CUVSUk9SKCJmYWlsZWQgdG8gcmVtb3ZlICVzIC0gJXMiLCBwYXRobmFtZSwgc3RyZXJyb3IocmV0 KSk7Cj4gKysKPiArKwlyZXR1cm4gMDsKPiArK30KPiArKwo+ICsraW50IHJlbW92ZV9kaXJfY29u dGVudChjb25zdCBjaGFyICpkaXJwYXRoKQo+ICsrewo+ICsrCWNvbnN0IGludCBtYXhfb3Blbl9k ZXNjcyA9IDg7Cj4gKysJaW50IHJldDsKPiArKwo+ICsrCS8qIHRyYXZlcnNlIGluIHJldmVyc2Ug b3JkZXIgKGhhbmRsZSBkaXJlY3RvcnkgYWZ0ZXIgaXQncyBjb250ZW50KSwgc3RheSB3aXRoaW4g dGhlIHNhbWUgZmlsZSBzeXN0ZW0gYW5kIGRvIG5vdCBmb2xsb3cgc3ltYm9saWMgbGlua3MgKi8K PiArKwlyZXQgPSBuZnR3KGRpcnBhdGgsIGNvbnRlbnRfbmZ0d19jYiwgbWF4X29wZW5fZGVzY3Ms IEZUV19ERVBUSCB8IEZUV19NT1VOVCB8IEZUV19QSFlTKTsKPiArKwlpZiAocmV0IDwgMCkgewo+ ICsrCQlFUlJPUigibmZ0dyBmYWlsZWQiKTsKPiArKwkJcmV0dXJuIHJldDsKPiArKwl9Cj4gKysK PiArKwlyZXR1cm4gMDsKPiArK30KPiArKwo+ICsrc3RhdGljIGludCB1dmNfcmVtb3ZlKHN0cnVj dCB1c2JnX2Z1bmN0aW9uICpmLCBpbnQgb3B0cykKPiArK3sKPiArKwl1c2JnX2ZfdXZjICp1dmNm ID0gdXNiZ190b191dmNfZnVuY3Rpb24oZik7Cj4gKysJY2hhciBzdHJlYW1pbmdfcGF0aFtVU0JH X01BWF9QQVRIX0xFTkdUSF07Cj4gKysJY2hhciBjb250cm9sX3BhdGhbVVNCR19NQVhfUEFUSF9M RU5HVEhdOwo+ICsrCWNoYXIgcGF0aFtVU0JHX1VWQ19NQVhfUEFUSF9MRU5HVEhdOwo+ICsrCWlu dCBubWIsIHJldCA9IFVTQkdfU1VDQ0VTUzsKPiArKwo+ICsrCW5tYiA9IHNucHJpbnRmKHBhdGgs IHNpemVvZihwYXRoKSwgIiVzLyVzIiwgdXZjZi0+ZnVuYy5wYXRoLCB1dmNmLT5mdW5jLm5hbWUp Owo+ICsrCWlmIChubWIgPj0gc2l6ZW9mKHBhdGgpKQo+ICsrCQlyZXR1cm4gVVNCR19FUlJPUl9Q QVRIX1RPT19MT05HOwo+ICsrCj4gKysJbm1iID0gc25wcmludGYoc3RyZWFtaW5nX3BhdGgsIHNp emVvZihzdHJlYW1pbmdfcGF0aCksICIlcy9zdHJlYW1pbmciLCBwYXRoKTsKPiArKwlpZiAobm1i ID49IHNpemVvZihzdHJlYW1pbmdfcGF0aCkpCj4gKysJCXJldHVybiBVU0JHX0VSUk9SX1BBVEhf VE9PX0xPTkc7Cj4gKysKPiArKwlubWIgPSBzbnByaW50Zihjb250cm9sX3BhdGgsIHNpemVvZihj b250cm9sX3BhdGgpLCAiJXMvY29udHJvbCIsIHBhdGgpOwo+ICsrCWlmIChubWIgPj0gc2l6ZW9m KGNvbnRyb2xfcGF0aCkpCj4gKysJCXJldHVybiBVU0JHX0VSUk9SX1BBVEhfVE9PX0xPTkc7Cj4g KysKPiArKwlpZihyZW1vdmVfZGlyX2NvbnRlbnQoc3RyZWFtaW5nX3BhdGgpIDwgMCkKPiArKwkJ cmV0dXJuIFVTQkdfRVJST1JfUEFUSF9UT09fTE9ORzsKPiArKwo+ICsrCWlmKHJlbW92ZV9kaXJf Y29udGVudChjb250cm9sX3BhdGgpIDwgMCkKPiArKwkJcmV0dXJuIFVTQkdfRVJST1JfUEFUSF9U T09fTE9ORzsKPiArKwo+ICsrCWlmKHJlbW92ZV9kaXIoc3RyZWFtaW5nX3BhdGgpIDwgMCkKPiAr KwkJcmV0dXJuIFVTQkdfRVJST1JfUEFUSF9UT09fTE9ORzsKPiArKwo+ICsrCWlmKHJlbW92ZV9k aXIoY29udHJvbF9wYXRoKSA8IDApCj4gKysJCXJldHVybiBVU0JHX0VSUk9SX1BBVEhfVE9PX0xP Tkc7Cj4gKysKPiArKwlyZXR1cm4gMDsKPiArK307Cj4gKysKPiArK3N0cnVjdCB1c2JnX2Z1bmN0 aW9uX3R5cGUgdXNiZ19mX3R5cGVfdXZjID0gewo+ICsrCS5uYW1lID0gInV2YyIsCj4gKysJLmFs bG9jX2luc3QgPSB1dmNfYWxsb2NfaW5zdCwKPiArKwkuZnJlZV9pbnN0ID0gdXZjX2ZyZWVfaW5z dCwKPiArKwkuc2V0X2F0dHJzID0gdXZjX3NldF9hdHRycywKPiArKwkuZ2V0X2F0dHJzID0gdXZj X2dldF9hdHRycywKPiArKwkuY2xlYW51cF9hdHRycyA9IHV2Y19jbGVhbnVwX2F0dHJzLAo+ICsr CS5pbXBvcnQgPSB1dmNfbGliY29uZmlnX2ltcG9ydCwKPiArKwkuZXhwb3J0ID0gdXZjX2xpYmNv bmZpZ19leHBvcnQsCj4gKysJLnJlbW92ZSA9IHV2Y19yZW1vdmUsCj4gKyt9Owo+ICsrCj4gKysv KiBBUEkgaW1wbGVtZW50YXRpb24gKi8KPiArKwo+ICsrdXNiZ19mX3V2YyAqdXNiZ190b191dmNf ZnVuY3Rpb24odXNiZ19mdW5jdGlvbiAqZikKPiArK3sKPiArKwlyZXR1cm4gZi0+b3BzID09ICZ1 c2JnX2ZfdHlwZV91dmMgPwo+ICsrCQkJY29udGFpbmVyX29mKGYsIHN0cnVjdCB1c2JnX2ZfdXZj LCBmdW5jKSA6IE5VTEw7Cj4gKyt9Cj4gKysKPiArK3VzYmdfZnVuY3Rpb24gKnVzYmdfZnJvbV91 dmNfZnVuY3Rpb24odXNiZ19mX3V2YyAqZmYpCj4gKyt7Cj4gKysJcmV0dXJuICZmZi0+ZnVuYzsK PiArK30KPiArKwo+ICsraW50IHVzYmdfZl91dmNfZ2V0X2F0dHJzKHVzYmdfZl91dmMgKnV2Y2Ys IHN0cnVjdCB1c2JnX2ZfdXZjX2F0dHJzICphdHRycykKPiArK3sKPiArKwlyZXR1cm4gVVNCR19T VUNDRVNTOwo+ICsrfQo+ICsrCj4gKytpbnQgdXNiZ19mX3V2Y19zZXRfYXR0cnModXNiZ19mX3V2 YyAqdXZjZiwgY29uc3Qgc3RydWN0IHVzYmdfZl91dmNfYXR0cnMgKmF0dHJzKQo+ICsrewo+ICsr CWludCBubWIsIHJldCA9IFVTQkdfU1VDQ0VTUzsKPiArKwljaGFyIHBhdGhbVVNCR19VVkNfTUFY X1BBVEhfTEVOR1RIXTsKPiArKwlzdHJ1Y3QgdXNiZ19mX3V2Y19mb3JtYXRfYXR0cnMgKipmb3Jt YXRfYXR0cnM7Cj4gKysJaW50IGk7Cj4gKysKPiArKwlubWIgPSBzbnByaW50ZihwYXRoLCBzaXpl b2YocGF0aCksICIlcy8lcyIsIHV2Y2YtPmZ1bmMucGF0aCwgdXZjZi0+ZnVuYy5uYW1lKTsKPiAr KwlpZiAobm1iID49IHNpemVvZihwYXRoKSkKPiArKwkJcmV0dXJuIFVTQkdfRVJST1JfUEFUSF9U T09fTE9ORzsKPiArKwo+ICsrCWZvcihmb3JtYXRfYXR0cnMgPSBhdHRycy0+Zm9ybWF0cywgaSA9 IDA7IGZvcm1hdF9hdHRyc1tpXTsgKytpKSB7Cj4gKysJCXJldCA9IHV2Y19zZXRfc3RyZWFtaW5n KHBhdGgsIGZvcm1hdF9hdHRyc1tpXSk7Cj4gKysJCWlmKHJldCAhPSBVU0JHX1NVQ0NFU1MpCj4g KysJCQlFUlJPUigiRXJyb3I6ICVkIiwgcmV0KTsKPiArKwl9Cj4gKysKPiArKwlyZXQgPSB1dmNf c2V0X2NsYXNzKHBhdGgsICJjb250cm9sIik7Cj4gKysJaWYgKHJldCAhPSBVU0JHX1NVQ0NFU1Mp Cj4gKysJCXJldHVybiByZXQ7Cj4gKysKPiArKwlyZXQgPSB1dmNfc2V0X2NsYXNzKHBhdGgsICJz dHJlYW1pbmciKTsKPiArKwlpZiAocmV0ICE9IFVTQkdfU1VDQ0VTUykKPiArKwkJcmV0dXJuIHJl dDsKPiArKwo+ICsrCXJldHVybiByZXQ7Cj4gKyt9Cj4gK2RpZmYgLS1naXQgYS9zcmMvdXNiZy5j IGIvc3JjL3VzYmcuYwo+ICtpbmRleCBkMmJmMzgxNjAzNTguLmIyOThkZGM1MGVjZiAxMDA2NDQK PiArLS0tIGEvc3JjL3VzYmcuYwo+ICsrKysgYi9zcmMvdXNiZy5jCj4gK0BAIC01Miw2ICs1Miw3 IEBAIGV4dGVybiBzdHJ1Y3QgdXNiZ19mdW5jdGlvbl90eXBlIHVzYmdfZl90eXBlX3Bob25ldDsK PiArIGV4dGVybiBzdHJ1Y3QgdXNiZ19mdW5jdGlvbl90eXBlIHVzYmdfZl90eXBlX2xvb3BiYWNr Owo+ICsgZXh0ZXJuIHN0cnVjdCB1c2JnX2Z1bmN0aW9uX3R5cGUgdXNiZ19mX3R5cGVfaGlkOwo+ ICsgZXh0ZXJuIHN0cnVjdCB1c2JnX2Z1bmN0aW9uX3R5cGUgdXNiZ19mX3R5cGVfdWFjMjsKPiAr K2V4dGVybiBzdHJ1Y3QgdXNiZ19mdW5jdGlvbl90eXBlIHVzYmdfZl90eXBlX3V2YzsKPiArIAo+ ICsgLyoqCj4gKyAgKiBAdmFyIGZ1bmN0aW9uX3R5cGVzCj4gK0BAIC03Myw2ICs3NCw3IEBAIHN0 cnVjdCB1c2JnX2Z1bmN0aW9uX3R5cGUqIGZ1bmN0aW9uX3R5cGVzW10gPSB7Cj4gKyAJW1VTQkdf Rl9MT09QQkFDS10gPSAmdXNiZ19mX3R5cGVfbG9vcGJhY2ssCj4gKyAJW1VTQkdfRl9ISURdID0g JnVzYmdfZl90eXBlX2hpZCwKPiArIAlbVVNCR19GX1VBQzJdID0gJnVzYmdfZl90eXBlX3VhYzIs Cj4gKysJW1VTQkdfRl9VVkNdID0gJnVzYmdfZl90eXBlX3V2YywKPiArIH07Cj4gKyAKPiArIEFS UkFZX1NJWkVfU0VOVElORUwoZnVuY3Rpb25fdHlwZXMsIFVTQkdfRlVOQ1RJT05fVFlQRV9NQVgp Owo+IGRpZmYgLS1naXQgYS9wYXRjaGVzL2xpYnVzYmd4LTAuMi4wL2F1dG9nZW4uc2ggYi9wYXRj aGVzL2xpYnVzYmd4LTAuMi4wL2F1dG9nZW4uc2gKPiBuZXcgZmlsZSBtb2RlIDEwMDc1NQo+IGlu ZGV4IDAwMDAwMDAwMC4uMjQ1OTY0N2JmCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3BhdGNoZXMv bGlidXNiZ3gtMC4yLjAvYXV0b2dlbi5zaAo+IEBAIC0wLDAgKzEsMTYgQEAKPiArIyEvYmluL2Jh c2gKPiArCj4gK3NldCAtZQo+ICsKPiArYWNsb2NhbCAkQUNMT0NBTF9GTEFHUwo+ICsKPiArbGli dG9vbGl6ZSBcCj4gKwktLWZvcmNlIFwKPiArCS0tY29weQo+ICsKPiArYXV0b3JlY29uZiBcCj4g KwktLWZvcmNlIFwKPiArCS0taW5zdGFsbCBcCj4gKwktLXdhcm5pbmdzPXN5bnRheCBcCj4gKwkt LXdhcm5pbmdzPW9ic29sZXRlIFwKPiArCS0td2FybmluZ3M9dW5zdXBwb3J0ZWQKPiBkaWZmIC0t Z2l0IGEvcGF0Y2hlcy9saWJ1c2JneC0wLjIuMC9zZXJpZXMgYi9wYXRjaGVzL2xpYnVzYmd4LTAu Mi4wL3Nlcmllcwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwLi40MDZk MTVhY2MKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvcGF0Y2hlcy9saWJ1c2JneC0wLjIuMC9zZXJp ZXMKPiBAQCAtMCwwICsxLDcgQEAKPiArIyBnZW5lcmF0ZWQgYnkgZ2l0LXB0eC1wYXRjaGVzCj4g KyN0YWc6YmFzZSAtLXN0YXJ0LW51bWJlciAxCj4gKzAwMDEtRml4LTM5LUNvbXBpbGF0aW9uLWZh aWxzLW9uLWdjYy12OC5wYXRjaAo+ICswMDAyLWxpYnVzYmd4LWZpeC1idWlsZC13aXRoLWdsaWJj LTIuMjgtc2luY2Utc3lzLXN5c21hY3IucGF0Y2gKPiArMDAwMy1leGFtcGxlcy1nYWRnZXQtdmlk LXBpZC1yZW1vdmUtYWRkLWR5bmFtaWMtdmlkLXBpZC1zLnBhdGNoCj4gKzAwMDQtbGlidXNiZ3gt QWRkLVVWQy1zdXBwb3J0LnBhdGNoCj4gKyMgNTViNGM2M2NhN2Y2Yjk3Y2ViOWNkOTU4OGUxZWFj ZGQgIC0gZ2l0LXB0eC1wYXRjaGVzIG1hZ2ljCj4gZGlmZiAtLWdpdCBhL3J1bGVzL2xpYnVzYmd4 LmluIGIvcnVsZXMvbGlidXNiZ3guaW4KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAwMC4uOTg3NzZjMDI2Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3J1bGVzL2xpYnVzYmd4 LmluCj4gQEAgLTAsMCArMSw4IEBACj4gKyMjIFNFQ1RJT049Y29tbXVuaWNhdGlvbgo+ICsKPiAr Y29uZmlnIExJQlVTQkdYCj4gKwlib29sCj4gKwlwcm9tcHQgImxpYnVzYmd4Igo+ICsJaGVscAo+ ICsJICBsaWJ1c2JneCBpcyBhIEMgbGlicmFyeSBlbmNhcHN1bGF0aW5nIHRoZSBrZXJuZWwgVVNC IGdhZGdldC1jb25maWdmcwo+ICsJICB1c2Vyc3BhY2UgQVBJIGZ1bmN0aW9uYWxpdHkuCj4gZGlm ZiAtLWdpdCBhL3J1bGVzL2xpYnVzYmd4Lm1ha2UgYi9ydWxlcy9saWJ1c2JneC5tYWtlCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAuLjZjOGZjZTQyOQo+IC0tLSAvZGV2 L251bGwKPiArKysgYi9ydWxlcy9saWJ1c2JneC5tYWtlCj4gQEAgLTAsMCArMSw2NiBAQAo+ICsj IC0qLW1ha2VmaWxlLSotCj4gKyMKPiArIyBDb3B5cmlnaHQgKEMpIDIwMTggYnkgVGhvbWFzIEhh ZW1tZXJsZSA8dGhvbWFzLmhhZW1tZXJsZUB3b2xmdmlzaW9uLm5ldD4KPiArIwo+ICsjIFNlZSBD UkVESVRTIGZvciBkZXRhaWxzIGFib3V0IHdobyBoYXMgY29udHJpYnV0ZWQgdG8gdGhpcyBwcm9q ZWN0Lgo+ICsjCj4gKyMgRm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFBUWGRpc3Qg cHJvamVjdCBhbmQgbGljZW5zZSBjb25kaXRpb25zCj4gKyMgc2VlIHRoZSBSRUFETUUgZmlsZS4K PiArIwo+ICsKPiArIwo+ICsjIFdlIHByb3ZpZGUgdGhpcyBwYWNrYWdlCj4gKyMKPiArUEFDS0FH RVMtJChQVFhDT05GX0xJQlVTQkdYKSArPSBsaWJ1c2JneAo+ICsKPiArIwo+ICsjIFBhdGhzIGFu ZCBuYW1lcwo+ICsjCj4gK0xJQlVTQkdYX1ZFUlNJT04JOj0gMC4yLjAKPiArTElCVVNCR1hfTUQ1 CQk6PSBhOGVhMjIzNGM2MzU1YWM4YWQyY2E4NmM0NTMyOTdiZAo+ICtMSUJVU0JHWAkJOj0gbGli dXNiZ3gtJChMSUJVU0JHWF9WRVJTSU9OKQo+ICtMSUJVU0JHWF9TVUZGSVgJCTo9IHppcAo+ICtM SUJVU0JHWF9VUkwJCTo9IFwKPiArCWh0dHBzOi8vZ2l0aHViLmNvbS9saWJ1c2JneC9saWJ1c2Jn eC9hcmNoaXZlL2xpYnVzYmd4LXYkKExJQlVTQkdYX1ZFUlNJT04pLnppcAo+ICtMSUJVU0JHWF9T T1VSQ0UJOj0gXAo+ICsJJChTUkNESVIpLyQoTElCVVNCR1gpLiQoTElCVVNCR1hfU1VGRklYKQo+ ICtMSUJVU0JHWF9ESVIJCTo9ICQoQlVJTERESVIpLyQoTElCVVNCR1gpCj4gK0xJQlVTQkdYX0xJ Q0VOU0UJOj0gR1BMdjIKPiArCj4gKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsjIFByZXBhcmUK PiArIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKwo+ICtMSUJVU0JHWF9DT05GX0VOVgk6PSAkKENS T1NTX0VOVikKPiArCj4gKyMKPiArIyBhdXRvY29uZgo+ICsjCj4gK0xJQlVTQkdYX0NPTkZfVE9P TAk6PSBhdXRvY29uZgo+ICtMSUJVU0JHWF9DT05GX09QVAk6PSBcCj4gKwkkKENST1NTX0FVVE9D T05GX1VTUikgXAo+ICsJLS13aXRob3V0LWxpYmNvbmZpZyBcCj4gKwktLWVuYWJsZS1leGFtcGxl cyBcCj4gKwktLWRpc2FibGUtZ2FkZ2V0LXNjaGVtZXMKPiArCj4gKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICsjIFRhcmdldC1JbnN0YWxsCj4gKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiAr JChTVEFURURJUikvbGlidXNiZ3gudGFyZ2V0aW5zdGFsbDoKPiArCUAkKGNhbGwgdGFyZ2V0aW5m bykKPiArCj4gKwlAJChjYWxsIGluc3RhbGxfaW5pdCwgbGlidXNiZ3gpCj4gKwlAJChjYWxsIGlu c3RhbGxfZml4dXAsIGxpYnVzYmd4LCBQUklPUklUWSwgb3B0aW9uYWwpCj4gKwlAJChjYWxsIGlu c3RhbGxfZml4dXAsIGxpYnVzYmd4LCBTRUNUSU9OLCBiYXNlKQo+ICsJQCQoY2FsbCBpbnN0YWxs X2ZpeHVwLCBsaWJ1c2JneCwgQVVUSE9SLCAiVGhvbWFzIEhhZW1tZXJsZSA8dGhvbWFzLmhhZW1t ZXJsZUB3b2xmdmlzaW9uLm5ldD4iKQo+ICsJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBsaWJ1c2Jn eCwgREVTQ1JJUFRJT04sIG1pc3NpbmcpCj4gKwo+ICsJQCQoY2FsbCBpbnN0YWxsX2xpYiwgbGli dXNiZ3gsIDAsIDAsIDA2NDQsIGxpYnVzYmd4KQo+ICsJQCQoY2FsbCBpbnN0YWxsX3RyZWUsIGxp YnVzYmd4LCAwLCAwLCAtLCAvdXNyL2JpbikKPiArCj4gKwlAJChjYWxsIGluc3RhbGxfZmluaXNo LCBsaWJ1c2JneCkKPiArCj4gKwlAJChjYWxsIHRvdWNoKQo+ICsKPiArIyB2aW06IHN5bnRheD1t YWtlCj4gLS0gCj4gMi4yOS4yCj4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBwdHhkaXN0IG1haWxpbmcgbGlzdAo+IHB0eGRpc3RAcGVuZ3V0 cm9uaXguZGUKPiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1haWwgd2l0aCBzdWJqZWN0ICJ1bnN1 YnNjcmliZSIgdG8gcHR4ZGlzdC1yZXF1ZXN0QHBlbmd1dHJvbml4LmRlCj4gCgotLSAKUm9sYW5k IEhpZWJlciwgUGVuZ3V0cm9uaXggZS5LLiAgICAgICAgICB8IHIuaGllYmVyQHBlbmd1dHJvbml4 LmRlICAgICB8ClN0ZXVlcndhbGRlciBTdHIuIDIxICAgICAgICAgICAgICAgICAgICAgfCBodHRw czovL3d3dy5wZW5ndXRyb25peC5kZS8gfAozMTEzNyBIaWxkZXNoZWltLCBHZXJtYW55ICAgICAg ICAgICAgICAgIHwgUGhvbmU6ICs0OS01MTIxLTIwNjkxNy0wICAgIHwKQW10c2dlcmljaHQgSGls ZGVzaGVpbSwgSFJBIDI2ODYgICAgICAgICB8IEZheDogICArNDktNTEyMS0yMDY5MTctNTU1NSB8 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdHhkaXN0 IG1haWxpbmcgbGlzdApwdHhkaXN0QHBlbmd1dHJvbml4LmRlClRvIHVuc3Vic2NyaWJlLCBzZW5k IGEgbWFpbCB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIiB0byBwdHhkaXN0LXJlcXVlc3RAcGVu Z3V0cm9uaXguZGUK