From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH v4 13/21] arm/gic-v2: Add ACPI boot support for GICv2 Date: Thu, 25 Feb 2016 14:59:44 +0000 Message-ID: References: <1453540813-15764-1-git-send-email-zhaoshenglong@huawei.com> <1453540813-15764-14-git-send-email-zhaoshenglong@huawei.com> <56CEBC2D.9090501@huawei.com> <56CF0A70.8060203@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini Cc: ian.campbell@citrix.com, peter.huangpeng@huawei.com, xen-devel@lists.xen.org, julien.grall@citrix.com, stefano.stabellini@citrix.com, shannon.zhao@linaro.org, Shannon Zhao List-Id: xen-devel@lists.xenproject.org T24gVGh1LCAyNSBGZWIgMjAxNiwgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOgo+IE9uIFRodSwg MjUgRmViIDIwMTYsIFNoYW5ub24gWmhhbyB3cm90ZToKPiA+IE9uIDIwMTYvMi8yNSAxODo0Miwg U3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOgo+ID4gPiBPbiBUaHUsIDI1IEZlYiAyMDE2LCBTaGFu bm9uIFpoYW8gd3JvdGU6Cj4gPiA+PiBPbiAyMDE2LzEvMjggMjA6NTYsIFN0ZWZhbm8gU3RhYmVs bGluaSB3cm90ZToKPiA+ID4+PiBPbiBTYXQsIDIzIEphbiAyMDE2LCBTaGFubm9uIFpoYW8gd3Jv dGU6Cj4gPiA+Pj4+IEZyb206IFBhcnRoIERpeGl0IDxwYXJ0aC5kaXhpdEBsaW5hcm8ub3JnPgo+ ID4gPj4+Pgo+ID4gPj4+PiBBQ1BJIG9uIFhlbiBoeXBlcnZpc29yIHVzZXMgTUFEVCB0YWJsZSBm b3IgcHJvcGVyIEdJQyBpbml0aWFsaXphdGlvbi4KPiA+ID4+Pj4gRmlyc3QgZ2V0IHRoZSBHSUMg dmVyc2lvbiBmcm9tIEdJQyBEaXN0cmlidXRvci4gVGhlbiBwYXJzZSBHSUMgcmVsYXRlZAo+ID4g Pj4+PiBzdWJ0YWJsZXMsIGNvbGxlY3QgQ1BVIGludGVyZmFjZSBhbmQgZGlzdHJpYnV0b3IgYWRk cmVzc2VzIGFuZCBjYWxsCj4gPiA+Pj4+IGRyaXZlciBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiAo d2hpY2ggaXMgaGFyZHdhcmUgYWJzdHJhY3Rpb24gYWdub3N0aWMpLgo+ID4gPj4+PiBJbiBhIHNp bWlsYXIgd2F5LCBGRFQgaW5pdGlhbGl6ZSBHSUN2Mi4KPiA+ID4+Pj4KPiA+ID4+Pj4gU2lnbmVk LW9mZi1ieTogUGFydGggRGl4aXQgPHBhcnRoLmRpeGl0QGxpbmFyby5vcmc+Cj4gPiA+Pj4+IFNp Z25lZC1vZmYtYnk6IFNoYW5ub24gWmhhbyA8c2hhbm5vbi56aGFvQGxpbmFyby5vcmc+Cj4gPiA+ Pj4+Cj4gPiA+Pj4+IFY0OiB1c2UgY29udGFpbmVyX29mIGFuZCBmaXggY29kaW5nIHN0eWxlCj4g PiA+Pj4+IC0tLQo+ID4gPj4+PiAgeGVuL2FyY2gvYXJtL2dpYy12Mi5jIHwgMTIwICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiA+Pj4+ICAxIGZp bGUgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+ID4+Pj4KPiA+ ID4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjIuYyBiL3hlbi9hcmNoL2FybS9n aWMtdjIuYwo+ID4gPj4+PiBpbmRleCA2NjhiODYzLi43ZTQ2ZWU5IDEwMDY0NAo+ID4gPj4+PiAt LS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMKPiA+ID4+Pj4gKysrIGIveGVuL2FyY2gvYXJtL2dp Yy12Mi5jCj4gPiA+Pj4+IEBAIC0yOSw2ICsyOSw4IEBACj4gPiA+Pj4+ICAjaW5jbHVkZSA8eGVu L2RldmljZV90cmVlLmg+Cj4gPiA+Pj4+ICAjaW5jbHVkZSA8eGVuL2xpYmZkdC9saWJmZHQuaD4K PiA+ID4+Pj4gICNpbmNsdWRlIDx4ZW4vc2l6ZXMuaD4KPiA+ID4+Pj4gKyNpbmNsdWRlIDx4ZW4v YWNwaS5oPgo+ID4gPj4+PiArI2luY2x1ZGUgPGFjcGkvYWN0YWJsZXMuaD4KPiA+ID4+Pj4gICNp bmNsdWRlIDxhc20vcDJtLmg+Cj4gPiA+Pj4+ICAjaW5jbHVkZSA8YXNtL2RvbWFpbi5oPgo+ID4g Pj4+PiAgI2luY2x1ZGUgPGFzbS9wbGF0Zm9ybS5oPgo+ID4gPj4+PiBAQCAtMzYsNiArMzgsNyBA QAo+ID4gPj4+PiAgCj4gPiA+Pj4+ICAjaW5jbHVkZSA8YXNtL2lvLmg+Cj4gPiA+Pj4+ICAjaW5j bHVkZSA8YXNtL2dpYy5oPgo+ID4gPj4+PiArI2luY2x1ZGUgPGFzbS9hY3BpLmg+Cj4gPiA+Pj4+ ICAKPiA+ID4+Pj4gIC8qCj4gPiA+Pj4+ICAgKiBMUiByZWdpc3RlciBkZWZpbml0aW9ucyBhcmUg R0lDIHYyIHNwZWNpZmljLgo+ID4gPj4+PiBAQCAtNjgxLDExICs2ODQsMTExIEBAIHN0YXRpYyB2 b2lkIF9faW5pdCBnaWN2Ml9kdF9pbml0KHZvaWQpCj4gPiA+Pj4+ICAgICAgICAgICAgICAgICBj c2l6ZSwgdnNpemUpOwo+ID4gPj4+PiAgfQo+ID4gPj4+PiAgCj4gPiA+Pj4+ICsjaWZkZWYgQ09O RklHX0FDUEkKPiA+ID4+Pj4gK3N0YXRpYyBpbnQgX19pbml0Cj4gPiA+Pj4+ICtnaWNfYWNwaV9w YXJzZV9tYWR0X2NwdShzdHJ1Y3QgYWNwaV9zdWJ0YWJsZV9oZWFkZXIgKmhlYWRlciwKPiA+ID4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgZW5kKQo+ID4g Pj4+PiArewo+ID4gPj4+PiArICAgIHN0YXRpYyBpbnQgY3B1X2Jhc2VfYXNzaWduZWQgPSAwOwo+ ID4gPj4+PiArICAgIHN0cnVjdCBhY3BpX21hZHRfZ2VuZXJpY19pbnRlcnJ1cHQgKnByb2Nlc3Nv ciA9Cj4gPiA+Pj4+ICsgICAgICAgICAgICAgICBjb250YWluZXJfb2YoaGVhZGVyLCBzdHJ1Y3Qg YWNwaV9tYWR0X2dlbmVyaWNfaW50ZXJydXB0LCBoZWFkZXIpOwo+ID4gPj4+PiArCj4gPiA+Pj4+ ICsgICAgaWYgKCBCQURfTUFEVF9FTlRSWShwcm9jZXNzb3IsIGVuZCkgKQo+ID4gPj4+PiArICAg ICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ID4+Pj4gKwo+ID4gPj4+PiArICAgIC8qIFJlYWQgZnJv bSBBUElDIHRhYmxlIGFuZCBmaWxsIHVwIHRoZSBHSUMgdmFyaWFibGVzICovCj4gPiA+Pj4+ICsg ICAgaWYgKCBjcHVfYmFzZV9hc3NpZ25lZCA9PSAwICkKPiA+ID4+Pj4gKyAgICB7Cj4gPiA+Pj4+ ICsgICAgICAgIGNiYXNlID0gcHJvY2Vzc29yLT5iYXNlX2FkZHJlc3M7Cj4gPiA+Pj4+ICsgICAg ICAgIGNzaXplID0gU1pfOEs7Cj4gPiA+Pj4+ICsgICAgICAgIGhiYXNlID0gcHJvY2Vzc29yLT5n aWNoX2Jhc2VfYWRkcmVzczsKPiA+ID4+Pj4gKyAgICAgICAgdmJhc2UgPSBwcm9jZXNzb3ItPmdp Y3ZfYmFzZV9hZGRyZXNzOwo+ID4gPj4+PiArICAgICAgICBnaWN2Ml9pbmZvLm1haW50ZW5hbmNl X2lycSA9IHByb2Nlc3Nvci0+dmdpY19pbnRlcnJ1cHQ7Cj4gPiA+Pj4+ICsKPiA+ID4+Pj4gKyAg ICAgICAgaWYoIHByb2Nlc3Nvci0+ZmxhZ3MgJiBBQ1BJX01BRFRfVkdJQ19JUlFfTU9ERSApCj4g PiA+Pj4KPiA+ID4+PiAgICAgICAgICAgICBeIGlmICggCj4gPiA+Pj4KPiA+ID4+Pgo+ID4gPj4+ PiArICAgICAgICAgICAgaXJxX3NldF90eXBlKGdpY3YyX2luZm8ubWFpbnRlbmFuY2VfaXJxLCBJ UlFfVFlQRV9FREdFX0JPVEgpOwo+ID4gPj4+PiArICAgICAgICBlbHNlCj4gPiA+Pj4+ICsgICAg ICAgICAgICBpcnFfc2V0X3R5cGUoZ2ljdjJfaW5mby5tYWludGVuYW5jZV9pcnEsIElSUV9UWVBF X0xFVkVMX01BU0spOwo+ID4gPj4+PiArCj4gPiA+Pj4+ICsgICAgICAgIGNwdV9iYXNlX2Fzc2ln bmVkID0gMTsKPiA+ID4+Pj4gKyAgICB9Cj4gPiA+Pj4+ICsgICAgZWxzZQo+ID4gPj4+PiArICAg IHsKPiA+ID4+Pj4gKyAgICAgICAgaWYgKCBjYmFzZSAhPSBwcm9jZXNzb3ItPmJhc2VfYWRkcmVz cwo+ID4gPj4+PiArICAgICAgICAgICAgIHx8IGhiYXNlICE9IHByb2Nlc3Nvci0+Z2ljaF9iYXNl X2FkZHJlc3MKPiA+ID4+Pj4gKyAgICAgICAgICAgICB8fCB2YmFzZSAhPSBwcm9jZXNzb3ItPmdp Y3ZfYmFzZV9hZGRyZXNzCj4gPiA+Pj4+ICsgICAgICAgICAgICAgfHwgZ2ljdjJfaW5mby5tYWlu dGVuYW5jZV9pcnEgIT0gcHJvY2Vzc29yLT52Z2ljX2ludGVycnVwdCApCj4gPiA+Pj4+ICsgICAg ICAgIHsKPiA+ID4+Pj4gKyAgICAgICAgICAgIHByaW50aygiR0lDdjI6IEdJQ0MgZW50cmllcyBh cmUgbm90IHNhbWUgaW4gTUFEVCB0YWJsZVxuIik7Cj4gPiA+Pj4+ICsgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKPiA+ID4+Pj4gKyAgICAgICAgfQo+ID4gPj4+PiArICAgIH0KPiA+ID4+Pj4g Kwo+ID4gPj4+PiArICAgIHJldHVybiAwOwo+ID4gPj4+PiArfQo+ID4gPj4+PiArCj4gPiA+Pj4+ ICtzdGF0aWMgaW50IF9faW5pdAo+ID4gPj4+PiArZ2ljX2FjcGlfcGFyc2VfbWFkdF9kaXN0cmli dXRvcihzdHJ1Y3QgYWNwaV9zdWJ0YWJsZV9oZWFkZXIgKmhlYWRlciwKPiA+ID4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBlbmQpCj4gPiA+ Pj4+ICt7Cj4gPiA+Pj4+ICsgICAgc3RydWN0IGFjcGlfbWFkdF9nZW5lcmljX2Rpc3RyaWJ1dG9y ICpkaXN0ID0KPiA+ID4+Pj4gKyAgICAgICAgICAgICBjb250YWluZXJfb2YoaGVhZGVyLCBzdHJ1 Y3QgYWNwaV9tYWR0X2dlbmVyaWNfZGlzdHJpYnV0b3IsIGhlYWRlcik7Cj4gPiA+Pj4+ICsKPiA+ ID4+Pj4gKyAgICBpZiAoIEJBRF9NQURUX0VOVFJZKGRpc3QsIGVuZCkgKQo+ID4gPj4+PiArICAg ICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ID4+Pj4gKwo+ID4gPj4+PiArICAgIGRiYXNlID0gZGlz dC0+YmFzZV9hZGRyZXNzOwo+ID4gPj4+PiArCj4gPiA+Pj4+ICsgICAgcmV0dXJuIDA7Cj4gPiA+ Pj4+ICt9Cj4gPiA+Pj4+ICsKPiA+ID4+Pj4gK3N0YXRpYyB2b2lkIF9faW5pdCBnaWN2Ml9hY3Bp X2luaXQodm9pZCkKPiA+ID4+Pj4gK3sKPiA+ID4+Pj4gKyAgICBhY3BpX3N0YXR1cyBzdGF0dXM7 Cj4gPiA+Pj4+ICsgICAgc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyICp0YWJsZTsKPiA+ID4+Pj4g KyAgICBpbnQgY291bnQ7Cj4gPiA+Pj4+ICsKPiA+ID4+Pj4gKyAgICBzdGF0dXMgPSBhY3BpX2dl dF90YWJsZShBQ1BJX1NJR19NQURULCAwLCAmdGFibGUpOwo+ID4gPj4+PiArCj4gPiA+Pj4+ICsg ICAgaWYgKCBBQ1BJX0ZBSUxVUkUoc3RhdHVzKSApCj4gPiA+Pj4+ICsgICAgewo+ID4gPj4+PiAr ICAgICAgICBjb25zdCBjaGFyICptc2cgPSBhY3BpX2Zvcm1hdF9leGNlcHRpb24oc3RhdHVzKTsK PiA+ID4+Pj4gKwo+ID4gPj4+PiArICAgICAgICBwYW5pYygiR0lDdjI6IEZhaWxlZCB0byBnZXQg TUFEVCB0YWJsZSwgJXMiLCBtc2cpOwo+ID4gPj4+PiArICAgIH0KPiA+ID4+Pj4gKwo+ID4gPj4+ PiArICAgIC8qIENvbGxlY3QgQ1BVIGJhc2UgYWRkcmVzc2VzICovCj4gPiA+Pj4+ICsgICAgY291 bnQgPSBhY3BpX3BhcnNlX2VudHJpZXMoQUNQSV9TSUdfTUFEVCwgc2l6ZW9mKHN0cnVjdCBhY3Bp X3RhYmxlX21hZHQpLAo+ID4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdp Y19hY3BpX3BhcnNlX21hZHRfY3B1LCB0YWJsZSwKPiA+ID4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBQ1BJX01BRFRfVFlQRV9HRU5FUklDX0lOVEVSUlVQVCwgMCk7Cj4gPiA+ Pj4+ICsgICAgaWYgKCBjb3VudCA8PSAwICkKPiA+ID4+Pj4gKyAgICAgICAgcGFuaWMoIkdJQ3Yy OiBObyB2YWxpZCBHSUNDIGVudHJpZXMgZXhpc3RzIik7Cj4gPiA+Pj4+ICsKPiA+ID4+Pj4gKyAg ICAvKgo+ID4gPj4+PiArICAgICAqIEZpbmQgZGlzdHJpYnV0b3IgYmFzZSBhZGRyZXNzLiBXZSBl eHBlY3Qgb25lIGRpc3RyaWJ1dG9yIGVudHJ5IHNpbmNlCj4gPiA+Pj4+ICsgICAgICogQUNQSSA1 LjAgc3BlYyBuZWl0aGVyIHN1cHBvcnQgbXVsdGktR0lDIGluc3RhbmNlcyBub3IgR0lDIGNhc2Nh ZGUuCj4gPiA+Pj4+ICsgICAgICovCj4gPiA+Pj4+ICsgICAgY291bnQgPSBhY3BpX3BhcnNlX2Vu dHJpZXMoQUNQSV9TSUdfTUFEVCwgc2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX21hZHQpLAo+ID4g Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpY19hY3BpX3BhcnNlX21hZHRf ZGlzdHJpYnV0b3IsIHRhYmxlLAo+ID4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFDUElfTUFEVF9UWVBFX0dFTkVSSUNfRElTVFJJQlVUT1IsIDApOwo+ID4gPj4+PiArICAg IGlmICggY291bnQgPD0gMCApCj4gPiA+Pj4+ICsgICAgICAgIHBhbmljKCJHSUN2MjogTm8gdmFs aWQgR0lDRCBlbnRyaWVzIGV4aXN0cyIpOwo+ID4gPj4+PiArfQo+ID4gPj4+PiArI2Vsc2UKPiA+ ID4+Pj4gK3N0YXRpYyB2b2lkIF9faW5pdCBnaWN2Ml9hY3BpX2luaXQodm9pZCkKPiA+ID4+Pj4g K3sKPiA+ID4+Pj4gKy8qIFNob3VsZCBuZXZlciByZWFjaCBoZXJlICovCj4gPiA+Pj4+ICt9Cj4g PiA+Pj4+ICsjZW5kaWYKPiA+ID4+Pgo+ID4gPj4+IFdpdGggYWNwaV9kaXNhYmxlZCBiZWNvbWlu ZyBhbiAjZGVmaW5lIGNvbnN0YW50LCB0aGlzICNlbHNlIHNob3VsZCBub3QKPiA+ID4+PiBiZSBu ZWVkZWQuCj4gPiA+Pj4KPiA+ID4+IElmIEkgcmVtb3ZlICNlbHNlIGFuZCBkZWZpbmUgYWNwaV9k aXNhYmxlZCBhcyBhIGNvbnN0YW50IGFzIHlvdQo+ID4gPj4gc3VnZ2VzdGVkLCBpdCBoYXMgYmVs b3cgY29tcGlsaW5nIGVycm9yIG9uIGFybTMyLgo+ID4gPj4KPiA+ID4+IGRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vZ2ljLXYyLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMKPiA+ID4+IGluZGV4 IDlhOWZjZDUuLjI4ZWMwNjQgMTAwNjQ0Cj4gPiA+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYy LmMKPiA+ID4+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMtdjIuYwo+ID4gPj4gQEAgLTc3NiwxMSAr Nzc2LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IGFjcGlfZ2ljdjJfaW5pdCh2b2lkKQo+ID4gPj4g ICAgICBpZiAoIGNvdW50IDw9IDAgKQo+ID4gPj4gICAgICAgICAgcGFuaWMoIkdJQ3YyOiBObyB2 YWxpZCBHSUNEIGVudHJpZXMgZXhpc3RzIik7Cj4gPiA+PiAgfQo+ID4gPj4gLSNlbHNlCj4gPiA+ PiAtc3RhdGljIHZvaWQgX19pbml0IGFjcGlfZ2ljdjJfaW5pdCh2b2lkKQo+ID4gPj4gLXsKPiA+ ID4+IC0vKiBTaG91bGQgbmV2ZXIgcmVhY2ggaGVyZSAqLwo+ID4gPj4gLX0KPiA+ID4+ICAjZW5k aWYKPiA+ID4+Cj4gPiA+PiBnaWMtdjIuYzogSW4gZnVuY3Rpb24gJ2dpY3YyX2luaXQnOgo+ID4g Pj4gZ2ljLXYyLmM6NzkzOjk6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv bgo+ID4gPj4gJ2FjcGlfZ2ljdjJfaW5pdCcgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVj bGFyYXRpb25dCj4gPiA+PiBnaWMtdjIuYzo3OTM6OTogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVj bGFyYXRpb24gb2YgJ2FjcGlfZ2ljdjJfaW5pdCcKPiA+ID4+IFstV2Vycm9yPW5lc3RlZC1leHRl cm5zXQo+ID4gPj4gY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKPiA+ ID4gCj4gPiA+IFNvcnJ5LCBJIHNob3VsZCBoYXZlIGJlZW4gY2xlYXJlci4gWW91IHN0aWxsIG5l ZWQgdG8gaGF2ZSBhIGRlY2xhcmF0aW9uCj4gPiA+IG9mIHRoZSBmdW5jdGlvbiBvdXRzaWRlIHRo ZSAjaWZkZWYuIFNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmcgc2hvdWxkCj4gPiA+IHdvcms6 Cj4gPiA+IAo+ID4gPiAgIHN0YXRpYyB2b2lkIGFjcGlfZ2ljdjJfaW5pdCh2b2lkKTsKPiA+ID4g Cj4gPiA+ICAgWy4uLl0KPiA+ID4gCj4gPiA+ICAgI2lmZGVmIENPTkZJR19BQ1BJCj4gPiA+ICAg c3RhdGljIHZvaWQgX19pbml0IGFjcGlfZ2ljdjJfaW5pdCh2b2lkKQo+ID4gPiAgIHsKPiA+ID4g ICAgICAgLyogZG8gc29tZXRoaW5nICovCj4gPiA+ICAgfQo+ID4gPiAgICNlbmRpZgo+ID4gPiAK PiA+ID4gICBbLi4uXQo+ID4gPiAKPiA+ID4gICBpZiAoIGFjcGlfZGlzYWJsZWQgKQo+ID4gPiAg ICAgICBnaWN2Ml9kdF9pbml0KCk7Cj4gPiA+ICAgZWxzZQo+ID4gPiAgICAgICBnaWN2Ml9hY3Bp X2luaXQoKTsKPiA+ID4gCj4gPiA+IC4KPiA+ID4gCj4gPiBJJ20gYWZyYWlkIGl0IGRvZXNuJ3Qg d29yay4gU3RpbGwgaGFzIGJlbG93IGVycm9ycyB3aXRoIHRoZSBkZWNsYXJhdGlvbjoKPiA+IAo+ ID4gZ2ljLXYyLmM6Njg3OjEzOiBlcnJvcjogJ2dpY3YyX2FjcGlfaW5pdCcgdXNlZCBidXQgbmV2 ZXIgZGVmaW5lZCBbLVdlcnJvcl0KPiA+IGNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQg YXMgZXJyb3JzCj4gPgo+ID4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjIuYyBiL3hl bi9hcmNoL2FybS9naWMtdjIuYwo+ID4gaW5kZXggNGI2YzRjMC4uN2I3ZTA5NCAxMDA2NDQKPiA+ IC0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjIuYwo+ID4gKysrIGIveGVuL2FyY2gvYXJtL2dpYy12 Mi5jCj4gPiBAQCAtNjg0LDYgKzY4NCw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBnaWN2Ml9kdF9p bml0KHZvaWQpCj4gPiAgICAgICAgICAgICAgICAgY3NpemUsIHZzaXplKTsKPiA+ICB9Cj4gPiAK PiA+ICtzdGF0aWMgdm9pZCBnaWN2Ml9hY3BpX2luaXQodm9pZCk7Cj4gCj4gSXQgc2hvdWxkIGJl Cj4gCj4gICAgdm9pZCBnaWN2Ml9hY3BpX2luaXQodm9pZCk7Cj4gCj4gd2l0aG91dCAic3RhdGlj Ii4KCkhvd2V2ZXIgSSBhbSBzdGFydGluZyB0byBkb3VidCB0aGF0IHRoaXMgaXMgYWN0dWFsbHkg YW4gZ29vZCBpbXByb3ZlbWVudAppbiB0ZXJtcyBvZiBjb2RlIHF1YWxpdHkuIFNvIEkgd291bGQg YmUgYWxzbyBPSyB3aXRoIGtlZXBpbmcgdGhpbmdzIGFyZQp0aGV5IGFyZS4KCiAKPiA+ICAjaWZk ZWYgQ09ORklHX0FDUEkKPiA+ICBzdGF0aWMgaW50IF9faW5pdAo+ID4gIGdpY19hY3BpX3BhcnNl X21hZHRfY3B1KHN0cnVjdCBhY3BpX3N1YnRhYmxlX2hlYWRlciAqaGVhZGVyLAo+ID4gQEAgLTc3 NCwxMSArNzc2LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IGdpY3YyX2FjcGlfaW5pdCh2b2lkKQo+ ID4gICAgICBpZiAoIGNvdW50IDw9IDAgKQo+ID4gICAgICAgICAgcGFuaWMoIkdJQ3YyOiBObyB2 YWxpZCBHSUNEIGVudHJpZXMgZXhpc3RzIik7Cj4gPiAgfQo+ID4gLSNlbHNlCj4gPiAtc3RhdGlj IHZvaWQgX19pbml0IGdpY3YyX2FjcGlfaW5pdCh2b2lkKQo+ID4gLXsKPiA+IC0vKiBTaG91bGQg bmV2ZXIgcmVhY2ggaGVyZSAqLwo+ID4gLX0KCmJ1dCBpZiB5b3UgZG8gdGhhdCBwbGVhc2UgbWFr ZSB0aGUgc3R1YiBmdW5jdGlvbiBhIHNpbmdsZSBsaW5lOgoKICBzdGF0aWMgdm9pZCBfX2luaXQg Z2ljdjJfYWNwaV9pbml0KHZvaWQpIHsgfQoKCj4gPiAgI2VuZGlmCj4gPiAKPiA+ICBzdGF0aWMg aW50IF9faW5pdCBnaWN2Ml9pbml0KHZvaWQpCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=