From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 1/4] drm/i915: Split I915_RESET_IN_PROGRESS into two flags Date: Thu, 16 Mar 2017 18:18:27 +0200 Message-ID: <87fuid19gs.fsf@gaia.fi.intel.com> References: <20170315140129.19175-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 844DD6EB40 for ; Thu, 16 Mar 2017 16:18:38 +0000 (UTC) In-Reply-To: <20170315140129.19175-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gSTkxNV9S RVNFVF9JTl9QUk9HUkVTUyBpcyBiZWluZyB1c2VkIGZvciBib3RoIHNpZ25hbGluZyB0aGUgcmVx dWlyZW1lbnQKPiB0byBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgpIHRvIGF2b2lkIHRh a2luZyB0aGUgc3RydWN0X211dGV4IGFuZAo+IHRvIGluc3RydWN0IGEgd2FpdGVyIChhbHJlYWR5 IGhvbGRpbmcgdGhlIHN0cnVjdF9tdXRleCkgdG8gcGVyZm9ybSB0aGUKPiByZXNldC4gVG8gYWxs b3cgZm9yIGEgbGl0dGxlIG1vcmUgY29vcmRpbmF0aW9uLCBzcGxpdCB0aGVzZSB0d28gbWVhbmlu Zwo+IGludG8gYSBjb3VwbGUgb2YgZGlzdGluY3QgZmxhZ3MuIEk5MTVfUkVTRVRfQkFDS09GRiB0 ZWxscwo+IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCkgbm90IHRvIGFjcXVpcmUgdGhl IG11dGV4IGFuZAo+IEk5MTVfUkVTRVRfSEFORE9GRiB0ZWxscyB0aGUgd2FpdGVyIHRvIGNhbGwg aTkxNV9yZXNldCgpLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+CgpJIG9ubHkgY291bGQgdGhpbmsgb2Ygd29yc2UgbmFtZXMgZm9yIGJh Y2tvZmYvaGFuZG9mZi4KClJldmlld2VkLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxh QGludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j ICAgICAgICAgICAgICB8IDE2ICsrKysrLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyAgICAgICAgICAgICAgICAgIHwgIDcgKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysr LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICAgICB8 ICA1ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgICAgICAg ICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgICAg ICAgICAgfCAzOCArKysrLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaW50ZWxfaGFuZ2NoZWNrLmMgfCAxOCArKysrKysrLS0tLQo+ICA4IGZp bGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCA5ZGI2YjA0MWE3OTkuLjVmZGY4YzEzNzIz NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTEzMDUsMTYgKzEz MDUsMTggQEAgc3RhdGljIGludCBpOTE1X2hhbmdjaGVja19pbmZvKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqdW51c2VkKQo+ICAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Cj4gIAo+ICAJaWYg KHRlc3RfYml0KEk5MTVfV0VER0VELCAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncykpCj4gLQkJ c2VxX3ByaW50ZihtLCAiV2VkZ2VkXG4iKTsKPiAtCWlmICh0ZXN0X2JpdChJOTE1X1JFU0VUX0lO X1BST0dSRVNTLCAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncykpCj4gLQkJc2VxX3ByaW50Ziht LCAiUmVzZXQgaW4gcHJvZ3Jlc3NcbiIpOwo+ICsJCXNlcV9wdXRzKG0sICJXZWRnZWRcbiIpOwo+ ICsJaWYgKHRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmRldl9wcml2LT5ncHVfZXJyb3Iu ZmxhZ3MpKQo+ICsJCXNlcV9wdXRzKG0sICJSZXNldCBpbiBwcm9ncmVzczogc3RydWN0X211dGV4 IGJhY2tvZmZcbiIpOwo+ICsJaWYgKHRlc3RfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwgJmRldl9w cml2LT5ncHVfZXJyb3IuZmxhZ3MpKQo+ICsJCXNlcV9wdXRzKG0sICJSZXNldCBpbiBwcm9ncmVz czogcmVzZXQgaGFuZG9mZiB0byB3YWl0ZXJcbiIpOwo+ICAJaWYgKHdhaXRxdWV1ZV9hY3RpdmUo JmRldl9wcml2LT5ncHVfZXJyb3Iud2FpdF9xdWV1ZSkpCj4gLQkJc2VxX3ByaW50ZihtLCAiV2Fp dGVyIGhvbGRpbmcgc3RydWN0IG11dGV4XG4iKTsKPiArCQlzZXFfcHV0cyhtLCAiV2FpdGVyIGhv bGRpbmcgc3RydWN0IG11dGV4XG4iKTsKPiAgCWlmICh3YWl0cXVldWVfYWN0aXZlKCZkZXZfcHJp di0+Z3B1X2Vycm9yLnJlc2V0X3F1ZXVlKSkKPiAtCQlzZXFfcHJpbnRmKG0sICJzdHJ1Y3RfbXV0 ZXggYmxvY2tlZCBmb3IgcmVzZXRcbiIpOwo+ICsJCXNlcV9wdXRzKG0sICJzdHJ1Y3RfbXV0ZXgg YmxvY2tlZCBmb3IgcmVzZXRcbiIpOwo+ICAKPiAgCWlmICghaTkxNS5lbmFibGVfaGFuZ2NoZWNr KSB7Cj4gLQkJc2VxX3ByaW50ZihtLCAiSGFuZ2NoZWNrIGRpc2FibGVkXG4iKTsKPiArCQlzZXFf cHV0cyhtLCAiSGFuZ2NoZWNrIGRpc2FibGVkXG4iKTsKPiAgCQlyZXR1cm4gMDsKPiAgCX0KPiAg Cj4gQEAgLTQxMjEsNyArNDEyMyw3IEBAIGk5MTVfd2VkZ2VkX3NldCh2b2lkICpkYXRhLCB1NjQg dmFsKQo+ICAJICogd2hpbGUgaXQgaXMgd3JpdGluZyB0byAnaTkxNV93ZWRnZWQnCj4gIAkgKi8K PiAgCj4gLQlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzcygmZGV2X3ByaXYtPmdwdV9lcnJvcikp Cj4gKwlpZiAoaTkxNV9yZXNldF9iYWNrb2ZmKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKSkKPiAgCQly ZXR1cm4gLUVBR0FJTjsKPiAgCj4gIAlpOTE1X2hhbmRsZV9lcnJvcihkZXZfcHJpdiwgdmFsLAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IGluZGV4IDkxNjQxNjdjZDE0Ny4uYmUzYzgxMjIxZDEx IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTE4MTUsOCArMTgxNSw5IEBAIHZv aWQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpbnQg cmV0Owo+ICAKPiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5kcm0uc3RydWN0X211 dGV4KTsKPiArCUdFTV9CVUdfT04oIXRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmVycm9y LT5mbGFncykpOwo+ICAKPiAtCWlmICghdGVzdF9hbmRfY2xlYXJfYml0KEk5MTVfUkVTRVRfSU5f UFJPR1JFU1MsICZlcnJvci0+ZmxhZ3MpKQo+ICsJaWYgKCF0ZXN0X2JpdChJOTE1X1JFU0VUX0hB TkRPRkYsICZlcnJvci0+ZmxhZ3MpKQo+ICAJCXJldHVybjsKPiAgCj4gIAkvKiBDbGVhciBhbnkg cHJldmlvdXMgZmFpbGVkIGF0dGVtcHRzIGF0IHJlY292ZXJ5LiBUaW1lIHRvIHRyeSBhZ2Fpbi4g Ki8KPiBAQCAtMTg2OSw3ICsxODcwLDkgQEAgdm9pZCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgd2FrZXVwOgo+ICAJaTkxNV9nZW1fcmVzZXRfZmluaXNo KGRldl9wcml2KTsKPiAgCWVuYWJsZV9pcnEoZGV2X3ByaXYtPmRybS5pcnEpOwo+IC0Jd2FrZV91 cF9iaXQoJmVycm9yLT5mbGFncywgSTkxNV9SRVNFVF9JTl9QUk9HUkVTUyk7Cj4gKwo+ICsJY2xl YXJfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwgJmVycm9yLT5mbGFncyk7Cj4gKwl3YWtlX3VwX2Jp dCgmZXJyb3ItPmZsYWdzLCBJOTE1X1JFU0VUX0hBTkRPRkYpOwo+ICAJcmV0dXJuOwo+ICAKPiAg ZXJyb3I6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNTE1NmJjYzU5ZGVhLi4wYjAy YTZkNzEwZTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTU5NSw4ICsxNTk1 LDMzIEBAIHN0cnVjdCBpOTE1X2dwdV9lcnJvciB7Cj4gIAkgKi8KPiAgCXVuc2lnbmVkIGxvbmcg cmVzZXRfY291bnQ7Cj4gIAo+ICsJLyoqCj4gKwkgKiBmbGFnczogQ29udHJvbCB2YXJpb3VzIHN0 YWdlcyBvZiB0aGUgR1BVIHJlc2V0Cj4gKwkgKgo+ICsJICogI0k5MTVfUkVTRVRfQkFDS09GRiAt IFdoZW4gd2Ugc3RhcnQgYSByZXNldCwgd2Ugd2FudCB0byBzdG9wIGFueQo+ICsJICogb3RoZXIg dXNlcnMgYWNxdWlyaW5nIHRoZSBzdHJ1Y3RfbXV0ZXguIFRvIGRvIHRoaXMgd2Ugc2V0IHRoZQo+ ICsJICogI0k5MTVfUkVTRVRfQkFDS09GRiBiaXQgaW4gdGhlIGVycm9yIGZsYWdzIHdoZW4gd2Ug ZGV0ZWN0IGEgcmVzZXQKPiArCSAqIGFuZCB0aGVuIGNoZWNrIGZvciB0aGF0IGJpdCBiZWZvcmUg YWNxdWlyaW5nIHRoZSBzdHJ1Y3RfbXV0ZXggKGluCj4gKwkgKiBpOTE1X211dGV4X2xvY2tfaW50 ZXJydXB0aWJsZSgpPykuIEk5MTVfUkVTRVRfQkFDS09GRiBzZXJ2ZXMgYQo+ICsJICogc2Vjb25k YXJ5IHJvbGUgaW4gcHJldmVudGluZyB0d28gY29uY3VycmVudCBnbG9iYWwgcmVzZXQgYXR0ZW1w dHMuCj4gKwkgKgo+ICsJICogI0k5MTVfUkVTRVRfSEFORE9GRiAtIFRvIHBlcmZvcm0gdGhlIGFj dHVhbCBHUFUgcmVzZXQsIHdlIG5lZWQgdGhlCj4gKwkgKiBzdHJ1Y3RfbXV0ZXguIFdlIHRyeSB0 byBhY3F1aXJlIHRoZSBzdHJ1Y3RfbXV0ZXggaW4gdGhlIHJlc2V0IHdvcmtlciwKPiArCSAqIGJ1 dCBpdCBtYXkgYmUgaGVsZCBieSBzb21lIGxvbmcgcnVubmluZyB3YWl0ZXIgKHRoYXQgd2UgY2Fu bm90Cj4gKwkgKiBpbnRlcnJ1cHQgd2l0aG91dCBjYXVzaW5nIHRyb3VibGUpLiBPbmNlIHdlIGFy ZSByZWFkeSB0byBkbyB0aGUgR1BVCj4gKwkgKiByZXNldCwgd2Ugc2V0IHRoZSBJOTE1X1JFU0VU X0hBTkRPRkYgYml0IGFuZCB3YWtldXAgYW55IHdhaXRlcnMuIElmCj4gKwkgKiB0aGV5IGFscmVh ZHkgaG9sZCB0aGUgc3RydWN0X211dGV4IGFuZCB3YW50IHRvIHBhcnRpY2lwYXRlIHRoZXkgY2Fu Cj4gKwkgKiBpbnNwZWN0IHRoZSBiaXQgYW5kIGRvIHRoZSByZXNldCBkaXJlY3RseSwgb3RoZXJ3 aXNlIHRoZSB3b3JrZXIKPiArCSAqIHdhaXRzIGZvciB0aGUgc3RydWN0X211dGV4Lgo+ICsJICoK PiArCSAqICNJOTE1X1dFREdFRCAtIElmIHJlc2V0IGZhaWxzIGFuZCB3ZSBjYW4gbm8gbG9uZ2Vy IHVzZSB0aGUgR1BVLAo+ICsJICogd2Ugc2V0IHRoZSAjSTkxNV9XRURHRUQgYml0LiBQcmlvciB0 byBjb21tYW5kIHN1Ym1pc3Npb24sIGUuZy4KPiArCSAqIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mo KSwgdGhpcyBiaXQgaXMgY2hlY2tlZCBhbmQgdGhlIHNlcXVlbmNlCj4gKwkgKiBhYm9ydGVkICh3 aXRoIC1FSU8gcmVwb3J0ZWQgdG8gdXNlcnNwYWNlKSBpZiBzZXQuCj4gKwkgKi8KPiAgCXVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4gLSNkZWZpbmUgSTkxNV9SRVNFVF9JTl9QUk9HUkVTUwkwCj4gKyNk ZWZpbmUgSTkxNV9SRVNFVF9CQUNLT0ZGCTAKPiArI2RlZmluZSBJOTE1X1JFU0VUX0hBTkRPRkYJ MQo+ICAjZGVmaW5lIEk5MTVfV0VER0VECQkoQklUU19QRVJfTE9ORyAtIDEpCj4gIAo+ICAJLyoq Cj4gQEAgLTMzODcsOSArMzQxMiwxNCBAQCBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gIAo+ICB2b2lkIGk5MTVfZ2VtX3JldGly ZV9yZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAKPiAtc3Rh dGljIGlubGluZSBib29sIGk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3Moc3RydWN0IGk5MTVfZ3B1X2Vy cm9yICplcnJvcikKPiArc3RhdGljIGlubGluZSBib29sIGk5MTVfcmVzZXRfYmFja29mZihzdHJ1 Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQo+ICt7Cj4gKwlyZXR1cm4gdW5saWtlbHkodGVzdF9i aXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAmZXJyb3ItPmZsYWdzKSk7Cj4gK30KPiArCj4gK3N0YXRp YyBpbmxpbmUgYm9vbCBpOTE1X3Jlc2V0X2hhbmRvZmYoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICpl cnJvcikKPiAgewo+IC0JcmV0dXJuIHVubGlrZWx5KHRlc3RfYml0KEk5MTVfUkVTRVRfSU5fUFJP R1JFU1MsICZlcnJvci0+ZmxhZ3MpKTsKPiArCXJldHVybiB1bmxpa2VseSh0ZXN0X2JpdChJOTE1 X1JFU0VUX0hBTkRPRkYsICZlcnJvci0+ZmxhZ3MpKTsKPiAgfQo+ICAKPiAgc3RhdGljIGlubGlu ZSBib29sIGk5MTVfdGVybWluYWxseV93ZWRnZWQoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJv cikKPiBAQCAtMzM5Nyw5ICszNDI3LDkgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfdGVybWlu YWxseV93ZWRnZWQoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikKPiAgCXJldHVybiB1bmxp a2VseSh0ZXN0X2JpdChJOTE1X1dFREdFRCwgJmVycm9yLT5mbGFncykpOwo+ICB9Cj4gIAo+IC1z dGF0aWMgaW5saW5lIGJvb2wgaTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQoc3RydWN0 IGk5MTVfZ3B1X2Vycm9yICplcnJvcikKPiArc3RhdGljIGlubGluZSBib29sIGk5MTVfcmVzZXRf YmFja29mZl9vcl93ZWRnZWQoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikKPiAgewo+IC0J cmV0dXJuIGk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoZXJyb3IpIHwgaTkxNV90ZXJtaW5hbGx5X3dl ZGdlZChlcnJvcik7Cj4gKwlyZXR1cm4gaTkxNV9yZXNldF9iYWNrb2ZmKGVycm9yKSB8IGk5MTVf dGVybWluYWxseV93ZWRnZWQoZXJyb3IpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHUzMiBp OTE1X3Jlc2V0X2NvdW50KHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gaW5kZXggZDg3OTgzYmE1MzZmLi5lY2QxYjAzODMxOGEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMTAzLDE2ICsxMDMsMTMgQEAgaTkxNV9nZW1fd2Fp dF9mb3JfZXJyb3Ioc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikKPiAgCj4gIAltaWdodF9z bGVlcCgpOwo+ICAKPiAtCWlmICghaTkxNV9yZXNldF9pbl9wcm9ncmVzcyhlcnJvcikpCj4gLQkJ cmV0dXJuIDA7Cj4gLQo+ICAJLyoKPiAgCSAqIE9ubHkgd2FpdCAxMCBzZWNvbmRzIGZvciB0aGUg Z3B1IHJlc2V0IHRvIGNvbXBsZXRlIHRvIGF2b2lkIGhhbmdpbmcKPiAgCSAqIHVzZXJzcGFjZS4g SWYgaXQgdGFrZXMgdGhhdCBsb25nIHNvbWV0aGluZyByZWFsbHkgYmFkIGlzIGdvaW5nIG9uIGFu ZAo+ICAJICogd2Ugc2hvdWxkIHNpbXBseSB0cnkgdG8gYmFpbCBvdXQgYW5kIGZhaWwgYXMgZ3Jh Y2VmdWxseSBhcyBwb3NzaWJsZS4KPiAgCSAqLwo+ICAJcmV0ID0gd2FpdF9ldmVudF9pbnRlcnJ1 cHRpYmxlX3RpbWVvdXQoZXJyb3ItPnJlc2V0X3F1ZXVlLAo+IC0JCQkJCSAgICAgICAhaTkxNV9y ZXNldF9pbl9wcm9ncmVzcyhlcnJvciksCj4gKwkJCQkJICAgICAgICFpOTE1X3Jlc2V0X2JhY2tv ZmYoZXJyb3IpLAo+ICAJCQkJCSAgICAgICBJOTE1X1JFU0VUX1RJTUVPVVQpOwo+ICAJaWYgKHJl dCA9PSAwKSB7Cj4gIAkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIGdwdSBy ZXNldCB0byBjb21wbGV0ZVxuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVl c3QuYwo+IGluZGV4IDFlMWQ5ZjIwNzJjZC4uMGU4ZDEwMTBjZWNiIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+IEBAIC0xMDEyLDcgKzEwMTIsNyBAQCBib29s IF9faTkxNV9zcGluX3JlcXVlc3QoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEsCj4gIAo+ICBzdGF0aWMgYm9vbCBfX2k5MTVfd2FpdF9yZXF1ZXN0X2NoZWNrX2FuZF9yZXNl dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gIHsKPiAtCWlmIChsaWtl bHkoIWk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoJnJlcXVlc3QtPmk5MTUtPmdwdV9lcnJvcikpKQo+ ICsJaWYgKGxpa2VseSghaTkxNV9yZXNldF9oYW5kb2ZmKCZyZXF1ZXN0LT5pOTE1LT5ncHVfZXJy b3IpKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJX19zZXRfY3VycmVudF9zdGF0ZShUQVNL X1JVTk5JTkcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IGU2NDZjNGViYTY1ZC4u NDk1ZTZhNzljYWNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gQEAgLTI2MzEsMjIg KzI2MzEsNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2 b2lkICphcmcpCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpOTE1X2Vy cm9yX3dha2VfdXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IC17Cj4gLQkv Kgo+IC0JICogTm90aWZ5IGFsbCB3YWl0ZXJzIGZvciBHUFUgY29tcGxldGlvbiBldmVudHMgdGhh dCByZXNldCBzdGF0ZSBoYXMKPiAtCSAqIGJlZW4gY2hhbmdlZCwgYW5kIHRoYXQgdGhleSBuZWVk IHRvIHJlc3RhcnQgdGhlaXIgd2FpdCBhZnRlcgo+IC0JICogY2hlY2tpbmcgZm9yIHBvdGVudGlh bCBlcnJvcnMgKGFuZCBiYWlsIG91dCB0byBkcm9wIGxvY2tzIGlmIHRoZXJlIGlzCj4gLQkgKiBh IGdwdSByZXNldCBwZW5kaW5nIHNvIHRoYXQgaTkxNV9lcnJvcl93b3JrX2Z1bmMgY2FuIGFjcXVp cmUgdGhlbSkuCj4gLQkgKi8KPiAtCj4gLQkvKiBXYWtlIHVwIF9fd2FpdF9zZXFubywgcG90ZW50 aWFsbHkgaG9sZGluZyBkZXYtPnN0cnVjdF9tdXRleC4gKi8KPiAtCXdha2VfdXBfYWxsKCZkZXZf cHJpdi0+Z3B1X2Vycm9yLndhaXRfcXVldWUpOwo+IC0KPiAtCS8qIFdha2UgdXAgaW50ZWxfY3J0 Y193YWl0X2Zvcl9wZW5kaW5nX2ZsaXBzLCBob2xkaW5nIGNydGMtPm11dGV4LiAqLwo+IC0Jd2Fr ZV91cF9hbGwoJmRldl9wcml2LT5wZW5kaW5nX2ZsaXBfcXVldWUpOwo+IC19Cj4gLQo+ICAvKioK PiAgICogaTkxNV9yZXNldF9hbmRfd2FrZXVwIC0gZG8gcHJvY2VzcyBjb250ZXh0IGVycm9yIGhh bmRsaW5nIHdvcmsKPiAgICogQGRldl9wcml2OiBpOTE1IGRldmljZSBwcml2YXRlCj4gQEAgLTI2 NzYsNiArMjY2MCw5IEBAIHN0YXRpYyB2b2lkIGk5MTVfcmVzZXRfYW5kX3dha2V1cChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZf cHJpdik7Cj4gIAlpbnRlbF9wcmVwYXJlX3Jlc2V0KGRldl9wcml2KTsKPiAgCj4gKwlzZXRfYml0 KEk5MTVfUkVTRVRfSEFORE9GRiwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwo+ICsJd2Fr ZV91cF9hbGwoJmRldl9wcml2LT5ncHVfZXJyb3Iud2FpdF9xdWV1ZSk7Cj4gKwo+ICAJZG8gewo+ ICAJCS8qCj4gIAkJICogQWxsIHN0YXRlIHJlc2V0IF9tdXN0XyBiZSBjb21wbGV0ZWQgYmVmb3Jl IHdlIHVwZGF0ZSB0aGUKPiBAQCAtMjY5MCw3ICsyNjc3LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9y ZXNldF9hbmRfd2FrZXVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCj4g IAkJLyogV2UgbmVlZCB0byB3YWl0IGZvciBhbnlvbmUgaG9sZGluZyB0aGUgbG9jayB0byB3YWtl dXAgKi8KPiAgCX0gd2hpbGUgKHdhaXRfb25fYml0X3RpbWVvdXQoJmRldl9wcml2LT5ncHVfZXJy b3IuZmxhZ3MsCj4gLQkJCQkgICAgIEk5MTVfUkVTRVRfSU5fUFJPR1JFU1MsCj4gKwkJCQkgICAg IEk5MTVfUkVTRVRfSEFORE9GRiwKPiAgCQkJCSAgICAgVEFTS19VTklOVEVSUlVQVElCTEUsCj4g IAkJCQkgICAgIEhaKSk7Cj4gIAo+IEBAIC0yNzA1LDYgKzI2OTIsNyBAQCBzdGF0aWMgdm9pZCBp OTE1X3Jlc2V0X2FuZF93YWtldXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICAJICogTm90ZTogVGhlIHdha2VfdXAgYWxzbyBzZXJ2ZXMgYXMgYSBtZW1vcnkgYmFycmllciBz byB0aGF0Cj4gIAkgKiB3YWl0ZXJzIHNlZSB0aGUgdXBkYXRlZCB2YWx1ZSBvZiB0aGUgZGV2X3By aXYtPmdwdV9lcnJvci4KPiAgCSAqLwo+ICsJY2xlYXJfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwg JmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwo+ICAJd2FrZV91cF9hbGwoJmRldl9wcml2LT5n cHVfZXJyb3IucmVzZXRfcXVldWUpOwo+ICB9Cj4gIAo+IEBAIC0yNzg4LDI0ICsyNzc2LDEwIEBA IHZvaWQgaTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJaWYgKCFlbmdpbmVfbWFzaykKPiAgCQlyZXR1cm47Cj4gIAo+IC0JaWYgKHRlc3RfYW5k X3NldF9iaXQoSTkxNV9SRVNFVF9JTl9QUk9HUkVTUywKPiArCWlmICh0ZXN0X2FuZF9zZXRfYml0 KEk5MTVfUkVTRVRfQkFDS09GRiwKPiAgCQkJICAgICAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFn cykpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCS8qCj4gLQkgKiBXYWtldXAgd2FpdGluZyBwcm9jZXNz ZXMgc28gdGhhdCB0aGUgcmVzZXQgZnVuY3Rpb24KPiAtCSAqIGk5MTVfcmVzZXRfYW5kX3dha2V1 cCBkb2Vzbid0IGRlYWRsb2NrIHRyeWluZyB0byBncmFiCj4gLQkgKiB2YXJpb3VzIGxvY2tzLiBC eSBidW1waW5nIHRoZSByZXNldCBjb3VudGVyIGZpcnN0LCB0aGUgd29rZW4KPiAtCSAqIHByb2Nl c3NlcyB3aWxsIHNlZSBhIHJlc2V0IGluIHByb2dyZXNzIGFuZCBiYWNrIG9mZiwKPiAtCSAqIHJl bGVhc2luZyB0aGVpciBsb2NrcyBhbmQgdGhlbiB3YWl0IGZvciB0aGUgcmVzZXQgY29tcGxldGlv bi4KPiAtCSAqIFdlIG11c3QgZG8gdGhpcyBmb3IgX2FsbF8gZ3B1IHdhaXRlcnMgdGhhdCBtaWdo dCBob2xkIGxvY2tzCj4gLQkgKiB0aGF0IHRoZSByZXNldCB3b3JrIG5lZWRzIHRvIGFjcXVpcmUu Cj4gLQkgKgo+IC0JICogTm90ZTogVGhlIHdha2VfdXAgYWxzbyBwcm92aWRlcyBhIG1lbW9yeSBi YXJyaWVyIHRvIGVuc3VyZSB0aGF0IHRoZQo+IC0JICogd2FpdGVycyBzZWUgdGhlIHVwZGF0ZWQg dmFsdWUgb2YgdGhlIHJlc2V0IGZsYWdzLgo+IC0JICovCj4gLQlpOTE1X2Vycm9yX3dha2VfdXAo ZGV2X3ByaXYpOwo+IC0KPiAgCWk5MTVfcmVzZXRfYW5kX3dha2V1cChkZXZfcHJpdik7Cj4gIH0K PiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDRiNzM1MTNiNDZj MS4uNTk1OWM5YjZkYzk3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ IEBAIC0zNjM5LDcgKzM2MzksNyBAQCBzdGF0aWMgYm9vbCBhYm9ydF9mbGlwX29uX3Jlc2V0KHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVy cm9yID0gJnRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpLT5ncHVfZXJyb3I7Cj4gIAo+IC0JaWYgKGk5 MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoZXJyb3IpKQo+ICsJaWYgKGk5MTVfcmVzZXRfYmFja29mZihl cnJvcikpCj4gIAkJcmV0dXJuIHRydWU7Cj4gIAo+ICAJaWYgKGNydGMtPnJlc2V0X2NvdW50ICE9 IGk5MTVfcmVzZXRfY291bnQoZXJyb3IpKQo+IEBAIC0xMDU5NSw3ICsxMDU5NSw3IEBAIHN0YXRp YyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCWdv dG8gY2xlYW51cDsKPiAgCj4gIAlpbnRlbF9jcnRjLT5yZXNldF9jb3VudCA9IGk5MTVfcmVzZXRf Y291bnQoJmRldl9wcml2LT5ncHVfZXJyb3IpOwo+IC0JaWYgKGk5MTVfcmVzZXRfaW5fcHJvZ3Jl c3Nfb3Jfd2VkZ2VkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKSkgewo+ICsJaWYgKGk5MTVfcmVzZXRf YmFja29mZl9vcl93ZWRnZWQoJmRldl9wcml2LT5ncHVfZXJyb3IpKSB7Cj4gIAkJcmV0ID0gLUVJ TzsKPiAgCQlnb3RvIHVubG9jazsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jCj4gaW5kZXggZDRhY2VlNjczMGU5Li42ZWM3Yzcz MWEyNjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVs X2hhbmdjaGVjay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVs X2hhbmdjaGVjay5jCj4gQEAgLTMwMSw3ICszMDEsOCBAQCBzdGF0aWMgaW50IGlndF9nbG9iYWxf cmVzZXQodm9pZCAqYXJnKQo+ICAKPiAgCS8qIENoZWNrIHRoYXQgd2UgY2FuIGlzc3VlIGEgZ2xv YmFsIEdQVSByZXNldCAqLwo+ICAKPiAtCXNldF9iaXQoSTkxNV9SRVNFVF9JTl9QUk9HUkVTUywg Jmk5MTUtPmdwdV9lcnJvci5mbGFncyk7Cj4gKwlzZXRfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwg Jmk5MTUtPmdwdV9lcnJvci5mbGFncyk7Cj4gKwlzZXRfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwg Jmk5MTUtPmdwdV9lcnJvci5mbGFncyk7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7Cj4gIAlyZXNldF9jb3VudCA9IGk5MTVfcmVzZXRfY291bnQoJmk5MTUtPmdw dV9lcnJvcik7Cj4gQEAgLTMxNCw3ICszMTUsOCBAQCBzdGF0aWMgaW50IGlndF9nbG9iYWxfcmVz ZXQodm9pZCAqYXJnKQo+ICAJfQo+ICAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211 dGV4KTsKPiAgCj4gLQlHRU1fQlVHX09OKHRlc3RfYml0KEk5MTVfUkVTRVRfSU5fUFJPR1JFU1Ms ICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpKTsKPiArCUdFTV9CVUdfT04odGVzdF9iaXQoSTkxNV9S RVNFVF9IQU5ET0ZGLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKSk7Cj4gKwljbGVhcl9iaXQoSTkx NV9SRVNFVF9CQUNLT0ZGLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsKPiAgCWlmIChpOTE1X3Rl cm1pbmFsbHlfd2VkZ2VkKCZpOTE1LT5ncHVfZXJyb3IpKQo+ICAJCWVyciA9IC1FSU87Cj4gIAo+ IEBAIC0zMzAsNyArMzMyLDcgQEAgc3RhdGljIHUzMiBmYWtlX2hhbmdjaGVjayhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ICAKPiAgCXJlc2V0X2NvdW50ID0gaTkxNV9yZXNldF9j b3VudCgmcnEtPmk5MTUtPmdwdV9lcnJvcik7Cj4gIAo+IC0Jc2V0X2JpdChJOTE1X1JFU0VUX0lO X1BST0dSRVNTLCAmcnEtPmk5MTUtPmdwdV9lcnJvci5mbGFncyk7Cj4gKwlzZXRfYml0KEk5MTVf UkVTRVRfSEFORE9GRiwgJnJxLT5pOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOwo+ICAJd2FrZV91cF9h bGwoJnJxLT5pOTE1LT5ncHVfZXJyb3Iud2FpdF9xdWV1ZSk7Cj4gIAo+ICAJcmV0dXJuIHJlc2V0 X2NvdW50Owo+IEBAIC0zNTcsNyArMzU5LDcgQEAgc3RhdGljIGludCBpZ3Rfd2FpdF9yZXNldCh2 b2lkICphcmcpCj4gIAo+ICAJLyogQ2hlY2sgdGhhdCB3ZSBkZXRlY3QgYSBzdHVjayB3YWl0ZXIg YW5kIGlzc3VlIGEgcmVzZXQgKi8KPiAgCj4gLQlzZXRfYml0KEk5MTVfUkVTRVRfSU5fUFJPR1JF U1MsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOwo+ICsJc2V0X2JpdChJOTE1X1JFU0VUX0JBQ0tP RkYsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOwo+ICAKPiAgCW11dGV4X2xvY2soJmk5MTUtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwo+ICAJZXJyID0gaGFuZ19pbml0KCZoLCBpOTE1KTsKPiBAQCAtMzg4 LDggKzM5MCw4IEBAIHN0YXRpYyBpbnQgaWd0X3dhaXRfcmVzZXQodm9pZCAqYXJnKQo+ICAJCWVy ciA9IHRpbWVvdXQ7Cj4gIAkJZ290byBvdXRfcnE7Cj4gIAl9Cj4gLQlHRU1fQlVHX09OKHRlc3Rf Yml0KEk5MTVfUkVTRVRfSU5fUFJPR1JFU1MsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpKTsKPiAg Cj4gKwlHRU1fQlVHX09OKHRlc3RfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwgJmk5MTUtPmdwdV9l cnJvci5mbGFncykpOwo+ICAJaWYgKGk5MTVfcmVzZXRfY291bnQoJmk5MTUtPmdwdV9lcnJvcikg PT0gcmVzZXRfY291bnQpIHsKPiAgCQlwcl9lcnIoIk5vIEdQVSByZXNldCByZWNvcmRlZCFcbiIp Owo+ICAJCWVyciA9IC1FSU5WQUw7Cj4gQEAgLTQwMiw2ICs0MDQsNyBAQCBzdGF0aWMgaW50IGln dF93YWl0X3Jlc2V0KHZvaWQgKmFyZykKPiAgCWhhbmdfZmluaSgmaCk7Cj4gIHVubG9jazoKPiAg CW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwljbGVhcl9iaXQoSTkx NV9SRVNFVF9CQUNLT0ZGLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsKPiAgCj4gIAlpZiAoaTkx NV90ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3B1X2Vycm9yKSkKPiAgCQlyZXR1cm4gLUVJTzsK PiBAQCAtNDIyLDYgKzQyNSw3IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X3F1ZXVlKHZvaWQgKmFy ZykKPiAgCWlmICghaWd0X2Nhbl9taV9zdG9yZV9kd29yZF9pbW0oaTkxNSkpCj4gIAkJcmV0dXJu IDA7Cj4gIAo+ICsJc2V0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZpOTE1LT5ncHVfZXJyb3Iu ZmxhZ3MpOwo+ICAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gIAllcnIg PSBoYW5nX2luaXQoJmgsIGk5MTUpOwo+ICAJaWYgKGVycikKPiBAQCAtNDcwLDggKzQ3NCw5IEBA IHN0YXRpYyBpbnQgaWd0X3Jlc2V0X3F1ZXVlKHZvaWQgKmFyZykKPiAgCj4gIAkJCWk5MTVfcmVz ZXQoaTkxNSk7Cj4gIAo+IC0JCQlHRU1fQlVHX09OKHRlc3RfYml0KEk5MTVfUkVTRVRfSU5fUFJP R1JFU1MsCj4gKwkJCUdFTV9CVUdfT04odGVzdF9iaXQoSTkxNV9SRVNFVF9IQU5ET0ZGLAo+ICAJ CQkJCSAgICAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKSk7Cj4gKwo+ICAJCQlpZiAocHJldi0+ZmVu Y2UuZXJyb3IgIT0gLUVJTykgewo+ICAJCQkJcHJfZXJyKCJHUFUgcmVzZXQgbm90IHJlY29yZGVk IG9uIGhhbmdpbmcgcmVxdWVzdCBbZmVuY2UuZXJyb3I9JWRdIVxuIiwKPiAgCQkJCSAgICAgICBw cmV2LT5mZW5jZS5lcnJvcik7Cj4gQEAgLTUxNCw2ICs1MTksNyBAQCBzdGF0aWMgaW50IGlndF9y ZXNldF9xdWV1ZSh2b2lkICphcmcpCj4gIAloYW5nX2ZpbmkoJmgpOwo+ICB1bmxvY2s6Cj4gIAlt dXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsJY2xlYXJfYml0KEk5MTVf UkVTRVRfQkFDS09GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncyk7Cj4gIAo+ICAJaWYgKGk5MTVf dGVybWluYWxseV93ZWRnZWQoJmk5MTUtPmdwdV9lcnJvcikpCj4gIAkJcmV0dXJuIC1FSU87Cj4g LS0gCj4gMi4xMS4wCj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==