From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 02/18] xen/arm: Implement PSCI system suspend call (virtual interface) Date: Mon, 12 Nov 2018 15:27:12 +0000 Message-ID: <1c5ca0ad-ee3d-2936-b57d-0ded1415176d@arm.com> References: <1542022244-22977-1-git-send-email-mirela.simonovic@aggios.com> <1542022244-22977-3-git-send-email-mirela.simonovic@aggios.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gME7T-00080O-RB for xen-devel@lists.xenproject.org; Mon, 12 Nov 2018 15:27:19 +0000 In-Reply-To: <1542022244-22977-3-git-send-email-mirela.simonovic@aggios.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Mirela Simonovic , xen-devel@lists.xen.org, xen-devel@lists.xenproject.org Cc: Tim Deegan , Stefano Stabellini , Wei Liu , dm@aggios.com, Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , saeed.nowshadi@xilinx.com, Jan Beulich , stefano.stabellini@xilinx.com List-Id: xen-devel@lists.xenproject.org SGkgTWlyZWxhLAoKT24gMTEvMTIvMTggMTE6MzAgQU0sIE1pcmVsYSBTaW1vbm92aWMgd3JvdGU6 Cj4gVGhlIGltcGxlbWVudGF0aW9uIGNvbnNpc3RzIG9mOgo+IC1BZGRpbmcgUFNDSSBzeXN0ZW0g c3VzcGVuZCBjYWxsIGFzIG5ldyBQU0NJIGZ1bmN0aW9uCj4gLVRyYXBwaW5nIFBTQ0kgc3lzdGVt X3N1c3BlbmQgSFZDCj4gLUltcGxlbWVudGluZyBQU0NJIHN5c3RlbSBzdXNwZW5kIGNhbGwgKHZp cnR1YWwgaW50ZXJmYWNlIHRoYXQgYWxsb3dzCj4gICBndWVzdHMgdG8gc3VzcGVuZCB0aGVtc2Vs dmVzKQo+IAo+IFRoZSBQU0NJIHN5c3RlbSBzdXNwZW5kIHNob3VsZCBiZSBjYWxsZWQgYnkgYSBn dWVzdCBmcm9tIGl0cyBib290Cj4gVkNQVS4gTm9uLWJvb3QgVkNQVXMgb2YgdGhlIGd1ZXN0IHNo b3VsZCBiZSBob3QtdW5wbHVnZ2VkIHVzaW5nIFBTQ0kKPiBDUFVfT0ZGIGNhbGwgcHJpb3IgdG8g aXNzdWluZyBQU0NJIHN5c3RlbSBzdXNwZW5kLiBJbnRlcnJ1cHRzIHRoYXQKPiBhcmUgbGVmdCBl bmFibGVkIGJ5IHRoZSBndWVzdCBhcmUgYXNzdW1lZCB0byBiZSBpdHMgd2FrZS11cCBpbnRlcnJ1 cHRzLgo+IFRoZXJlZm9yZSwgYSB3YWtlLXVwIGludGVycnVwdCB0cmlnZ2VycyB0aGUgcmVzdW1l IG9mIHRoZSBndWVzdC4gR3Vlc3QKPiBzaG91bGQgcmVzdW1lIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0 YXRlIG9mIFhlbiAoc3VzcGVuZGVkIG9yIG5vdCkuCj4gCj4gV2hlbiBhIGd1ZXN0IGNhbGxzIFBT Q0kgc3lzdGVtIHN1c3BlbmQgdGhlIHJlc3BlY3RpdmUgZG9tYWluIHdpbGwgYmUKPiBzdXNwZW5k ZWQgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Cj4gMSkgR2l2ZW4gcmVzdW1l IGVudHJ5IHBvaW50IGlzIG5vdCBpbnZhbGlkCj4gMikgT3RoZXIgKGlmIGFueSkgVkNQVXMgb2Yg dGhlIGNhbGxpbmcgZ3Vlc3QgYXJlIGhvdC11bnBsdWdnZWQKPiAKPiBJZiB0aGUgY29uZGl0aW9u cyBhYm92ZSBhcmUgbWV0IHRoZSBjYWxsaW5nIGRvbWFpbiBpcyBsYWJlbGVkIGFzCj4gc3VzcGVu ZGVkIGFuZCB0aGUgY2FsbGluZyBWQ1BVIGlzIGJsb2NrZWQuIElmIG5vdGhpbmcgZWxzZSB3b3Vs ZG4ndAo+IGJlIGRvbmUgdGhlIHN1c3BlbmRlZCBkb21haW4gd291bGQgcmVzdW1lIGZyb20gdGhl IHBsYWNlIHdoZXJlIGl0Cj4gY2FsbGVkIFBTQ0kgc3lzdGVtIHN1c3BlbmQuIFRoaXMgaXMgZXhw ZWN0ZWQgaWYgcHJvY2Vzc2luZyBvZiB0aGUgUFNDSQo+IHN5c3RlbSBzdXNwZW5kIGNhbGwgZmFp bHMuIEhvd2V2ZXIsIGluIHRoZSBjYXNlIG9mIHN1Y2Nlc3MgdGhlIGNhbGxpbmcKPiBndWVzdCBz aG91bGQgcmVzdW1lIChjb250aW51ZSBleGVjdXRpb24gYWZ0ZXIgdGhlIHdha2UtdXApIGZyb20g dGhlIGVudHJ5Cj4gcG9pbnQgd2hpY2ggaXMgZ2l2ZW4gYXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9m IHRoZSBQU0NJIHN5c3RlbSBzdXNwZW5kCj4gY2FsbC4gSW4gYWRkaXRpb24gdG8gdGhlIGVudHJ5 IHBvaW50LCB0aGUgZ3Vlc3QgZXhwZWN0cyB0byBzdGFydCB3aXRoaW4KPiB0aGUgZW52aXJvbm1l bnQgd2hvc2Ugc3RhdGUgbWF0Y2hlcyB0aGUgc3RhdGUgYWZ0ZXIgcmVzZXQuIFRoaXMgbWVhbnMK PiB0aGF0IHRoZSBndWVzdCBzaG91bGQgZmluZCByZXNldCByZWdpc3RlciB2YWx1ZXMsIE1NVSBk aXNhYmxlZCwgZXRjLgo+IFRoZXJlYnksIHRoZSBjb250ZXh0IG9mIFZDUFUgc2hvdWxkIGJlICdy ZXNldCcgKGFzIGlmIHRoZSBzeXN0ZW0gaXMKPiBjb21taW5nIG91dCBvZiByZXNldCksIHRoZSBw cm9ncmFtIGNvdW50ZXIgc2hvdWxkIGNvbnRhaW4gZW50cnkgcG9pbnQsCj4gd2hpY2ggaXMgMXN0 IGFyZ3VtZW50LCBhbmQgcjAveDAgc2hvdWxkIGNvbnRhaW4gY29udGV4dCBJRCB3aGljaCBpcyAy bmQKPiBhcmd1bWVudCBvZiBQU0NJIHN5c3RlbSBzdXNwZW5kIGNhbGwuIFRoZSBjb250ZXh0IG9m IFZDUFUgaXMgc2V0Cj4gYWNjb3JkaW5nbHkgd2hlbiB0aGUgUFNDSSBzeXN0ZW0gc3VzcGVuZCBp cyBwcm9jZXNzZWQsIHNvIHRoYXQgbm90aGluZwo+IG5lZWRzIHRvIGJlIGRvbmUgb24gcmVzdW1l L3dha2UtdXAgcGF0aC4gSG93ZXZlciwgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQKPiB0aGlzIGNv bnRleHQgZG9lc24ndCBnZXQgb3ZlcndyaXR0ZW4gYnkgdGhlIHNjaGVkdWxlciB3aGVuIHNjaGVk dWxpbmcgb3V0Cj4gdGhpcyBWQ1BVICh3b3VsZCBub3JtYWxseSBoYXBwZW4gYWZ0ZXIgdGhlIGNh bGxpbmcgQ1BVIGlzIGJsb2NrZWQpLCB3ZSBuZWVkCj4gdG8gY2hlY2sgd2hldGhlciB0byByZXR1 cm4gZWFybHkgZnJvbSBjdHh0X3N3aXRjaF9mcm9tKCkuCj4gCj4gVGhlcmUgYXJlIHZhcmlhYmxl cyBpbiBkb21haW4gc3RydWN0dXJlIHRvIGtlZXAgdHJhY2sgb2YgZG9tYWluIHNodXRkb3duLgo+ IE9uZSBvZiBleGlzdGluZyBzaHV0ZG93biByZWFzb24gaXMgJ3N1c3BlbmQnIHdoaWNoIHRoaXMg cGF0Y2ggaXMgdXNpbmcgdG8KPiB0cmFjayB0aGUgc3VzcGVuZCBzdGF0ZSBvZiBhIGRvbWFpbi4g VGhvc2UgdmFyaWFibGVzIGFyZSB1c2VkIHRvIGRldGVybWluZQo+IHdoZXRoZXIgdG8gZWFybHkg cmV0dXJuIGZyb20gY3R4dF9zd2l0Y2hfZnJvbSgpIG9yIG5vdC4KPiAKPiBBIHN1c3BlbmRlZCBk b21haW4gd2lsbCByZXN1bWUgYWZ0ZXIgdGhlIFhlbiByZWNlaXZlcyBhbiBpbnRlcnJ1cHQgd2hp Y2ggaXMKPiB0YXJnZXRlZCB0byB0aGUgZG9tYWluLCB1bmJsb2NrcyB0aGUgZG9tYWluJ3MgVkNQ VSwgYW5kIHNjaGVkdWxlcyBpdCBpbi4KPiBXaGVuIHRoZSBWQ1BVIGlzIHNjaGVkdWxlZCBpbiwg dGhlIFZDUFUgY29udGV4dCBpcyBhbHJlYWR5IHJlc2V0LCBhbmQKPiBjb250YWlucyB0aGUgcmln aHQgcmVzdW1lIGVudHJ5IHBvaW50IGluIHByb2dyYW0gY291bnRlciB0aGF0IHdpbGwgYmUKPiBy ZXN0b3JlZCBpbiBjdHh0X3N3aXRjaF90bygpLiBUaGUgb25seSB0aGluZyB0aGF0IG5lZWRzIHRv IGJlIGRvbmUgYXQgdGhpcwo+IHBvaW50IGlzIHRvIGNsZWFyIHRoZSB2YXJpYWJsZXMgdGhhdCBt YXJrZWQgdGhlIGRvbWFpbiBzdGF0ZSBhcyBzdXNwZW5kZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTog TWlyZWxhIFNpbW9ub3ZpYyA8bWlyZWxhLnNpbW9ub3ZpY0BhZ2dpb3MuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IFNhZWVkIE5vd3NoYWRpIDxzYWVlZC5ub3dzaGFkaUB4aWxpbnguY29tPgo+IAo+IC0t LQo+IENoYW5nZXMgaW4gdjI6Cj4gCj4gLUZpeCBwcmludCB0byBjb21waWxlIGZvciBhcm0zMiBh bmQgdG8gYWxpZ24gd2l0aCBYZW4gY29kaW5nIHN0eWxlCj4gLS0tCj4gICB4ZW4vYXJjaC9hcm0v TWFrZWZpbGUgICAgICAgICAgICB8ICAgMSArCj4gICB4ZW4vYXJjaC9hcm0vZG9tYWluLmMgICAg ICAgICAgICB8ICAxMyArKysKPiAgIHhlbi9hcmNoL2FybS9zdXNwZW5kLmMgICAgICAgICAgIHwg MTY2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgeGVuL2FyY2gv YXJtL3Zwc2NpLmMgICAgICAgICAgICAgfCAgMTkgKysrKysKPiAgIHhlbi9pbmNsdWRlL2FzbS1h cm0vcGVyZmNfZGVmbi5oIHwgICAxICsKPiAgIHhlbi9pbmNsdWRlL2FzbS1hcm0vcHNjaS5oICAg ICAgIHwgICAyICsKPiAgIHhlbi9pbmNsdWRlL2FzbS1hcm0vc3VzcGVuZC5oICAgIHwgIDE2ICsr KysKPiAgIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgICAgICAgIHwgICAxICsKPiAgIDggZmls ZXMgY2hhbmdlZCwgMjE5IGluc2VydGlvbnMoKykKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4v YXJjaC9hcm0vc3VzcGVuZC5jCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUvYXNt LWFybS9zdXNwZW5kLmgKPiAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL01ha2VmaWxlIGIv eGVuL2FyY2gvYXJtL01ha2VmaWxlCj4gaW5kZXggMjNjNWQ5YWRiYy4uNzQ0YjFhNGRjOCAxMDA2 NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKPiArKysgYi94ZW4vYXJjaC9hcm0vTWFr ZWZpbGUKPiBAQCAtNDMsNiArNDMsNyBAQCBvYmoteSArPSBzZXR1cC5vCj4gICBvYmoteSArPSBz aHV0ZG93bi5vCj4gICBvYmoteSArPSBzbXAubwo+ICAgb2JqLXkgKz0gc21wYm9vdC5vCj4gK29i ai15ICs9IHN1c3BlbmQubwo+ICAgb2JqLXkgKz0gc3lzY3RsLm8KPiAgIG9iai15ICs9IHRpbWUu bwo+ICAgb2JqLXkgKz0gdHJhcHMubwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWlu LmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKPiBpbmRleCBlNTk0YjQ4ZDgxLi43ZjgxMDU0NjVj IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9kb21haW4uYwo+ICsrKyBiL3hlbi9hcmNoL2Fy bS9kb21haW4uYwo+IEBAIC05Nyw2ICs5NywxMSBAQCBzdGF0aWMgdm9pZCBjdHh0X3N3aXRjaF9m cm9tKHN0cnVjdCB2Y3B1ICpwKQo+ICAgICAgIGlmICggaXNfaWRsZV92Y3B1KHApICkKPiAgICAg ICAgICAgcmV0dXJuOwo+ICAgCj4gKyAgICAvKiBWQ1BVJ3MgY29udGV4dCBzaG91bGQgbm90IGJl IHNhdmVkIGlmIGl0cyBkb21haW4gaXMgc3VzcGVuZGVkICovCj4gKyAgICBpZiAoIHAtPmRvbWFp bi0+aXNfc2h1dF9kb3duICYmCj4gKyAgICAgICAgKHAtPmRvbWFpbi0+c2h1dGRvd25fY29kZSA9 PSBTSFVURE9XTl9zdXNwZW5kKSApCj4gKyAgICAgICAgcmV0dXJuOwpTSFVURE9XTl9zdXNwZW5k IGlzIHVzZWQgaW4gWGVuIGZvciBvdGhlciBwdXJwb3NlIChzZWUgClNDSEVET1Bfc2h1dGRvd24p LiBUaGUgb3RoZXIgdXNlciBvZiB0aGF0IGNvZGUgcmVsaWVzIG9uIGFsbCB0aGUgc3RhdGUgCnRv IGJlIHNhdmVkIG9uIHN1c3BlbmQuCgpIb3dldmVyLCB3aGF0IGlzIHRoZSBpc3N1ZSB3aXRoIHNh dmluZyBhbGwgdGhlIHJlZ2lzdGVycyBoZXJlPwoKPiArCj4gICAgICAgcDJtX3NhdmVfc3RhdGUo cCk7Cj4gICAKPiAgICAgICAvKiBDUCAxNSAqLwo+IEBAIC0xODEsNiArMTg2LDE0IEBAIHN0YXRp YyB2b2lkIGN0eHRfc3dpdGNoX3RvKHN0cnVjdCB2Y3B1ICpuKQo+ICAgICAgIGlmICggaXNfaWRs ZV92Y3B1KG4pICkKPiAgICAgICAgICAgcmV0dXJuOwo+ICAgCj4gKyAgICAvKiBJZiB0aGUgZG9t YWluIHdhcyBzdXNwZW5kZWQsIGl0IGlzIHJlc3VtaW5nIG5vdyAqLwo+ICsgICAgaWYgKCBuLT5k b21haW4tPmlzX3NodXRfZG93biAmJgo+ICsgICAgICAgIChuLT5kb21haW4tPnNodXRkb3duX2Nv ZGUgPT0gU0hVVERPV05fc3VzcGVuZCkgKQo+ICsgICAgewo+ICsgICAgICAgIG4tPmRvbWFpbi0+ aXNfc2h1dF9kb3duID0gMDsKPiArICAgICAgICBuLT5kb21haW4tPnNodXRkb3duX2NvZGUgPSBT SFVURE9XTl9DT0RFX0lOVkFMSUQ7Cj4gKyAgICB9CgpUaGlzIGxvb2tzIGxpa2UgYSBoYWNrLiBX aHkgbm90IGNhbGxpbmcgZG9tYWluX3Jlc3VtZSB3aGVuIHJlY2VpdmluZyB0aGUgCmludGVycnVw dD8KCj4gKwo+ICAgICAgIHAybV9yZXN0b3JlX3N0YXRlKG4pOwo+ICAgCj4gICAgICAgdnBpZHIg PSBSRUFEX1NZU1JFRzMyKE1JRFJfRUwxKTsKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3N1 c3BlbmQuYyBiL3hlbi9hcmNoL2FybS9zdXNwZW5kLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAwMDAuLjllZWE5MjE0ZTEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIveGVu L2FyY2gvYXJtL3N1c3BlbmQuYwoKSSB3b3VsZCBwcmVmZXIgaWYgd2UgZG9uJ3QgbWl4IGd1ZXN0 IGFuZCBob3N0IHN1c3BlbmQgaW4gdGhlIHNhbWUgZmlsZS4KCj4gQEAgLTAsMCArMSwxNjYgQEAK Ck1pc3NpbmcgY29weXJpZ2h0IGhlYWRlcnMgaGVyZS4KCj4gKyNpbmNsdWRlIDx4ZW4vc2NoZWQu aD4KPiArI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlLmg+Cj4gKyNpbmNsdWRlIDxhc20vZXZlbnQu aD4KPiArI2luY2x1ZGUgPGFzbS9wc2NpLmg+Cj4gKwo+ICsvKiBSZXNldCB2YWx1ZXMgb2YgVkNQ VSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgcmVnaXN0ZXJzICovCgpUZWNobmljYWxseSB0aGlzIGlz IG5vdCByZXF1aXJlcyBhcyBtb3N0IG9mIHRoZSByZWdpc3RlcnMgYXJlIHVua25vd24uIEkgCnVu ZGVyc3RhbmQgdGhpcyBoZWxwcyBmb3IgZGVidWdnaW5nIGFuIE9TLgoKSSB3b3VsZCBpbnRyb2R1 Y2UgaXQgaW4gYSBzZXBhcmF0ZSBwYXRjaCBhbmQgZGlyZWN0bHkgaW4gCmFyY2hfc2V0X2luZm9f Z3Vlc3QgYXMgSSB3b3VsZCBsaWtlIHRoZSBiZWhhdmlvciB0byBiZSB0aGUgc2FtZSAKZXZlcnl3 aGVyZSB3ZSBuZWVkIHRvIHJlc2V0IGEgdkNQVS4KCj4gK3N0YXRpYyB2b2lkIHZjcHVfYXJjaF9y ZXNldChzdHJ1Y3QgdmNwdSAqdikKPiArewo+ICsgICAgdi0+YXJjaC50dGJyMCA9IDA7Cj4gKyAg ICB2LT5hcmNoLnR0YnIxID0gMDsKPiArICAgIHYtPmFyY2gudHRiY3IgPSAwOwo+ICsKPiArICAg IHYtPmFyY2guY3NzZWxyID0gMDsKPiArICAgIHYtPmFyY2guY3BhY3IgPSAwOwo+ICsgICAgdi0+ YXJjaC5jb250ZXh0aWRyID0gMDsKPiArICAgIHYtPmFyY2gudHBpZHJfZWwwID0gMDsKPiArICAg IHYtPmFyY2gudHBpZHJyb19lbDAgPSAwOwo+ICsgICAgdi0+YXJjaC50cGlkcl9lbDEgPSAwOwo+ ICsgICAgdi0+YXJjaC52YmFyID0gMDsKPiArICAgIGlmICggaXNfMzJiaXRfZG9tYWluKHYtPmRv bWFpbikgKQoKVGhpcyBpcyBub3QgbmVjZXNzYXJ5Cgo+ICsgICAgICAgIHYtPmFyY2guZGFjciA9 IDA7Cj4gKyAgICB2LT5hcmNoLnBhciA9IDA7Cj4gKyNpZiBkZWZpbmVkKENPTkZJR19BUk1fMzIp Cj4gKyAgICB2LT5hcmNoLm1haXIwID0gMDsKPiArICAgIHYtPmFyY2gubWFpcjEgPSAwOwo+ICsg ICAgdi0+YXJjaC5hbWFpcjAgPSAwOwo+ICsgICAgdi0+YXJjaC5hbWFpcjEgPSAwOwo+ICsjZWxz ZQo+ICsgICAgdi0+YXJjaC5tYWlyID0gMDsKPiArICAgIHYtPmFyY2guYW1haXIgPSAwOwo+ICsj ZW5kaWYKPiArICAgIC8qIEZhdWx0IFN0YXR1cyAqLwo+ICsjaWYgZGVmaW5lZChDT05GSUdfQVJN XzMyKQo+ICsgICAgdi0+YXJjaC5kZmFyID0gMDsKPiArICAgIHYtPmFyY2guaWZhciA9IDA7Cj4g KyAgICB2LT5hcmNoLmRmc3IgPSAwOwo+ICsjZWxpZiBkZWZpbmVkKENPTkZJR19BUk1fNjQpCj4g KyAgICB2LT5hcmNoLmZhciA9IDA7Cj4gKyAgICB2LT5hcmNoLmVzciA9IDA7Cj4gKyNlbmRpZgo+ ICsKPiArICAgIGlmICggaXNfMzJiaXRfZG9tYWluKHYtPmRvbWFpbikgKQoKU2FtZSBoZXJlLgoK PiArICAgICAgICB2LT5hcmNoLmlmc3IgID0gMDsKPiArICAgIHYtPmFyY2guYWZzcjAgPSAwOwo+ ICsgICAgdi0+YXJjaC5hZnNyMSA9IDA7Cj4gKwo+ICsjaWZkZWYgQ09ORklHX0FSTV8zMgo+ICsg ICAgdi0+YXJjaC5qb3NjciA9IDA7Cj4gKyAgICB2LT5hcmNoLmptY3IgPSAwOwo+ICsjZW5kaWYK PiArCj4gKyAgICBpZiAoIGlzXzMyYml0X2RvbWFpbih2LT5kb21haW4pICYmIGNwdV9oYXNfdGh1 bWJlZSApCgpTYW1lIGhlcmUuCgo+ICsgICAgewo+ICsgICAgICAgIHYtPmFyY2gudGVlY3IgPSAw Owo+ICsgICAgICAgIHYtPmFyY2gudGVlaGJyID0gMDsKPiArICAgIH0KPiArfQo+ICsKPiArLyoK PiArICogVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBjb250ZXh0IG9mIGN1cnJlbnQgVkNQVSB0byB0 aGUgc3RhdGUgd2hpY2ggaXMgZXhwZWN0ZWQKPiArICogYnkgdGhlIGd1ZXN0IG9uIHJlc3VtZS4g VGhlIGV4cGVjdGVkIFZDUFUgc3RhdGUgaXM6Cj4gKyAqIDEpIHBjIHRvIGNvbnRhaW4gcmVzdW1l IGVudHJ5IHBvaW50ICgxc3QgYXJndW1lbnQgb2YgUFNDSSBTWVNURU1fU1VTUEVORCkKPiArICog MikgcjAveDAgdG8gY29udGFpbiBjb250ZXh0IElEICgybmQgYXJndW1lbnQgb2YgUFNDSSBTWVNU RU1fU1VTUEVORCkKPiArICogMykgQWxsIG90aGVyIGdlbmVyYWwgcHVycG9zZSBhbmQgc3lzdGVt IHJlZ2lzdGVycyBzaG91bGQgaGF2ZSByZXNldCB2YWx1ZXMKPiArICoKPiArICogTm90ZTogdGhp cyBmdW5jdGlvbiBoYXMgdG8gcmV0dXJuIHZvaWQgYmVjYXVzZSBpdCBoYXMgdG8gYWx3YXlzIHN1 Y2NlZWQuIEluCj4gKyAqIG90aGVyIHdvcmRzLCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9t IHZpcnR1YWwgUFNDSSBTWVNURU1fU1VTUEVORAo+ICsgKiBpbXBsZW1lbnRhdGlvbiwgd2hpY2gg Y2FuIHJldHVybiBvbmx5IGEgbGltaXRlZCBudW1iZXIgb2YgcG9zc2libGUgZXJyb3JzLAo+ICsg KiBub25lIG9mIHdoaWNoIGNvdWxkIHJlcHJlc2VudCB0aGUgZmFjdCB0aGF0IGFuIGVycm9yIG9j Y3VycmVkIHdoZW4gcHJlcGFyaW5nCj4gKyAqIHRoZSBkb21haW4gZm9yIHN1c3BlbmQuCj4gKyAq IENvbnNlcXVlbnRseSwgZHluYW1pYyBtZW1vcnkgYWxsb2NhdGlvbiBjYW5ub3QgYmUgZG9uZSB3 aXRoaW4gdGhpcyBmdW5jdGlvbiwKPiArICogYmVjYXVzZSBpZiBtYWxsb2MgZmFpbHMgdGhlIGVy cm9yIGhhcyBub3doZXJlIHRvIHByb3BhZ2F0ZS4KCllvdSBjb3VsZCBjcmFzaCB0aGUgZG9tYWlu IGlmIHlvdSBhcmUgbm90IGFibGUgdG8gcmVzdW1lIGl0LiBJbiB0aGUgCmN1cnJlbnQgY29udGV4 dC4uLgoKPiArICovCj4gK3N0YXRpYyB2b2lkIHZjcHVfc3VzcGVuZChyZWdpc3Rlcl90IGVwb2lu dCwgcmVnaXN0ZXJfdCBjaWQpCj4gK3sKPiArICAgIC8qIFN0YXRpYyBhbGxvY2F0aW9uIGJlY2F1 c2UgZHluYW1pYyB3b3VsZCBuZWVkIGEgbm9uLXZvaWQgcmV0dXJuICovCj4gKyAgICBzdGF0aWMg c3RydWN0IHZjcHVfZ3Vlc3RfY29udGV4dCBjdHh0OwoKLi4uIHRoaXMgaXMgbm90IHJpZ2h0LiBU aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgY29uY3VycmVudGx5LCBzbyBhIApsb3Qgb2YgZnVu bnkgdGhpbmdzIGNhbiBoYXBwZW4gKGkuZSBjb3JydXB0aW9uKS4KClRoZSB2Q1BVIGNvbnRleHQg ZG9lcyBub3QgbG9vayB0b28gYmlnLiBTbyBJIHdvdWxkIGp1c3QgYWxsb2NhdGUgaXQgb24gCnRo ZSBzdGFjayBkaXJlY3RseS4KCj4gKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7Cj4gKwo+ ICsgICAgLyogTWFrZSBzdXJlIHRoYXQgVkNQVSBndWVzdCByZWdzIGFyZSB6ZXJvaWVkICovCgpz L3plcm9pZWQvemVyb2VkLwoKPiArICAgIG1lbXNldCgmY3R4dCwgMCwgc2l6ZW9mKGN0eHQpKTsK PiArCj4gKyAgICAvKiBTZXQgbm9uLXplcm8gdmFsdWVzIHRvIHRoZSByZWdpc3RlcnMgcHJpb3Ig dG8gY29weWluZyAqLwo+ICsgICAgY3R4dC51c2VyX3JlZ3MucGM2NCA9ICh1NjQpZXBvaW50Owo+ ICsKPiArICAgIGlmICggaXNfMzJiaXRfZG9tYWluKGN1cnJlbnQtPmRvbWFpbikgKQo+ICsgICAg ewo+ICsgICAgICAgIGN0eHQudXNlcl9yZWdzLnIwX3VzciA9IGNpZDsKPiArICAgICAgICBjdHh0 LnVzZXJfcmVncy5jcHNyID0gUFNSX0dVRVNUMzJfSU5JVDsKPiArCj4gKyAgICAgICAgLyogVGh1 bWIgc2V0IGlzIGFsbG93ZWQgb25seSBmb3IgMzItYml0IGRvbWFpbiAqLwo+ICsgICAgICAgIGlm ICggZXBvaW50ICYgMSApCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBjdHh0LnVzZXJfcmVn cy5jcHNyIHw9IFBTUl9USFVNQjsKPiArICAgICAgICAgICAgY3R4dC51c2VyX3JlZ3MucGM2NCAm PSB+KHU2NCkxOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArI2lmZGVmIENPTkZJR19BUk1fNjQK PiArICAgIGVsc2UKPiArICAgIHsKPiArICAgICAgICBjdHh0LnVzZXJfcmVncy54MCA9IGNpZDsK PiArICAgICAgICBjdHh0LnVzZXJfcmVncy5jcHNyID0gUFNSX0dVRVNUNjRfSU5JVDsKPiArICAg IH0KPiArI2VuZGlmCj4gKyAgICBjdHh0LnNjdGxyID0gU0NUTFJfR1VFU1RfSU5JVDsKPiArICAg IGN0eHQuZmxhZ3MgPSBWR0NGX29ubGluZTsKPiArCj4gKyAgICAvKiBSZXNldCBhcmNoaXRlY3R1 cmUgc3BlY2lmaWMgcmVnaXN0ZXJzICovCj4gKyAgICB2Y3B1X2FyY2hfcmVzZXQodik7ID4gKwo+ ICsgICAgLyogSW5pdGlhbGl6ZSBWQ1BVIHJlZ2lzdGVycyAqLwo+ICsgICAgX2FyY2hfc2V0X2lu Zm9fZ3Vlc3QodiwgJmN0eHQpOwoKQUZBSUNULCB0aGlzIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxl ZCB3aXRoIHRoZSBkb21haW4gbG9jayB0YWtlbiBhcyB0aGlzIApjYW4gYmUgY2FsbGVkIGJ5IHZh cmlvdXMgcGF0aC4KCkFsc28sIG1vc3Qgb2YgdGhlIGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIENQ VV9vbi4gU28gSSB3b3VsZCBsaWtlIHRvIHNlZSAKdGhlIGNvZGUgZmFjdG9yZWQgaW4gdGhlIHNl cGFyYXRlIGZ1bmN0aW9uIGFuZCB1c2VkIGluIGJvdGggcGxhY2UuCgo+ICt9Cj4gKwo+ICtpbnQz Ml90IGRvbWFpbl9zdXNwZW5kKHJlZ2lzdGVyX3QgZXBvaW50LCByZWdpc3Rlcl90IGNpZCkKPiAr ewo+ICsgICAgc3RydWN0IHZjcHUgKnY7Cj4gKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVu dC0+ZG9tYWluOwo+ICsgICAgYm9vbCBpc190aHVtYiA9IGVwb2ludCAmIDE7Cj4gKwo+ICsgICAg ZHByaW50ayhYRU5MT0dfREVCVUcsCj4gKyAgICAgICAgICAgICJEb20lZCBzdXNwZW5kOiBlcG9p bnQ9MHglIlBSSXJlZ2lzdGVyIiwgY2lkPTB4JSJQUklyZWdpc3RlciJcbiIsCj4gKyAgICAgICAg ICAgIGQtPmRvbWFpbl9pZCwgZXBvaW50LCBjaWQpOwo+ICsKPiArICAgIC8qIFRIVU1CIHNldCBp cyBub3QgYWxsb3dlZCB3aXRoIDY0LWJpdCBkb21haW4gKi8KPiArICAgIGlmICggaXNfNjRiaXRf ZG9tYWluKGQpICYmIGlzX3RodW1iICkKPiArICAgICAgICByZXR1cm4gUFNDSV9JTlZBTElEX0FE RFJFU1M7Cj4gKwo+ICsgICAgLyogRW5zdXJlIHRoYXQgYWxsIENQVXMgb3RoZXIgdGhhbiB0aGUg Y2FsbGluZyBvbmUgYXJlIG9mZmxpbmUgKi8KPiArICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkK PiArICAgIHsKPiArICAgICAgICBpZiAoIHYgIT0gY3VycmVudCAmJiBpc192Y3B1X29ubGluZSh2 KSApCj4gKyAgICAgICAgICAgIHJldHVybiBQU0NJX0RFTklFRDsKPiArICAgIH0KCldoYXQgZG9l cyBwcmV2ZW50IGEgdkNQVSB0byBub3QgY29tZSBvbmxpbmUgd2hpbGUgZG9pbmcgdGhlIGxvb3A/ Cgo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBQcmVwYXJlIHRoZSBjYWxsaW5nIFZDUFUgZm9yIHN1 c3BlbmQgKHJlc2V0IGl0cyBjb250ZXh0LCBzYXZlIGVudHJ5IHBvaW50Cj4gKyAgICAgKiBpbnRv IHBjIGFuZCBjb250ZXh0IElEIGludG8gcjAveDAgYXMgc3BlY2lmaWVkIGJ5IFBTQ0kgU1lTVEVN X1NVU1BFTkQpCj4gKyAgICAgKi8KPiArICAgIHZjcHVfc3VzcGVuZChlcG9pbnQsIGNpZCk7Cj4g Kwo+ICsgICAgLyoKPiArICAgICAqIFNldCB0aGUgZG9tYWluIHN0YXRlIHRvIHN1c3BlbmRlZCAo d2lsbCBiZSBjbGVhcmVkIHdoZW4gdGhlIGRvbWFpbgo+ICsgICAgICogcmVzdW1lcywgaS5lLiBW Q1BVIG9mIHRoaXMgZG9tYWluIGdldHMgc2NoZWR1bGVkIGluKS4KPiArICAgICAqLwo+ICsgICAg ZC0+aXNfc2h1dF9kb3duID0gMTsKPiArICAgIGQtPnNodXRkb3duX2NvZGUgPSBTSFVURE9XTl9z dXNwZW5kOwoKSWYgeW91IGxvb2sgYXQgdGhlIG90aGVyIHVzYWdlLCB5b3Ugd2lsbCBub3RpY2Ug dGhhdCB0aGV5IGFyZSBwcm90ZWN0ZWQgCndpdGggYSBsb2NrLiBXaHkgaXMgaXQgbm90IG5lY2Vz c2FyeSBoZXJlPwoKSSBhbSBhbHNvIG5vdCBlbnRpcmVseSBzdXJlIHdoeSB3ZSBjb3VsZCBub3Qg cmUtdXNlIGNvZGUgdGhhdCBhbHJlYWR5IApleGlzdCBpbiBjb21tb24gY29kZS4gU3VyZWx5IHN1 c3BlbmQvcmVzdW1lIHNob3VsZCB3b3JrIGluIGEgc2ltaWxhciB3YXk/Cgo+ICsKPiArICAgIC8q Cj4gKyAgICAgKiBUaGUgY2FsbGluZyBkb21haW4gaXMgc3VzcGVuZGVkIGJ5IGJsb2NraW5nIGl0 cyBsYXN0IHJ1bm5pbmcgVkNQVS4gSWYgYW4KPiArICAgICAqIGV2ZW50IGlzIHBlbmRpbmcgdGhl IGRvbWFpbiB3aWxsIHJlc3VtZSByaWdodCBhd2F5IChWQ1BVIHdpbGwgbm90IGJsb2NrLAo+ICsg ICAgICogYnV0IHdoZW4gc2NoZWR1bGVkIGluIGl0IHdpbGwgcmVzdW1lIGZyb20gdGhlIGdpdmVu IGVudHJ5IHBvaW50KS4KPiArICAgICAqLwo+ICsgICAgdmNwdV9ibG9ja191bmxlc3NfZXZlbnRf cGVuZGluZyhjdXJyZW50KTsKPiArCj4gKyAgICByZXR1cm4gUFNDSV9TVUNDRVNTOwo+ICt9Cj4g Kwo+ICsvKgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiArICogYy1maWxl LXN0eWxlOiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiBpbmRlbnQtdGFicy1t b2RlOiBuaWwKPiArICogRW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Zw c2NpLmMgYi94ZW4vYXJjaC9hcm0vdnBzY2kuYwo+IGluZGV4IDlmNGU1Yjg4NDQuLmY3OTIyYmUw YzUgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL3Zwc2NpLmMKPiArKysgYi94ZW4vYXJjaC9h cm0vdnBzY2kuYwo+IEBAIC0xOCw2ICsxOCw3IEBACj4gICAjaW5jbHVkZSA8YXNtL3ZnaWMuaD4K PiAgICNpbmNsdWRlIDxhc20vdnBzY2kuaD4KPiAgICNpbmNsdWRlIDxhc20vZXZlbnQuaD4KPiAr I2luY2x1ZGUgPGFzbS9zdXNwZW5kLmg+Cj4gICAKPiAgICNpbmNsdWRlIDxwdWJsaWMvc2NoZWQu aD4KPiAgIAo+IEBAIC0yMTAsNiArMjExLDExIEBAIHN0YXRpYyB2b2lkIGRvX3BzY2lfMF8yX3N5 c3RlbV9yZXNldCh2b2lkKQo+ICAgICAgIGRvbWFpbl9zaHV0ZG93bihkLFNIVVRET1dOX3JlYm9v dCk7Cj4gICB9Cj4gICAKPiArc3RhdGljIGludDMyX3QgZG9fcHNjaV8xXzBfc3lzdGVtX3N1c3Bl bmQocmVnaXN0ZXJfdCBlcG9pbnQsIHJlZ2lzdGVyX3QgY2lkKQo+ICt7Cj4gKyAgICByZXR1cm4g ZG9tYWluX3N1c3BlbmQoZXBvaW50LCBjaWQpOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGludDMyX3Qg ZG9fcHNjaV8xXzBfZmVhdHVyZXModWludDMyX3QgcHNjaV9mdW5jX2lkKQo+ICAgewo+ICAgICAg IC8qIC8hXCBPcmRlcmVkIGJ5IGZ1bmN0aW9uIElEIGFuZCBub3QgbmFtZSAqLwo+IEBAIC0yMjcs NiArMjMzLDggQEAgc3RhdGljIGludDMyX3QgZG9fcHNjaV8xXzBfZmVhdHVyZXModWludDMyX3Qg cHNjaV9mdW5jX2lkKQo+ICAgICAgIGNhc2UgUFNDSV8wXzJfRk4zMl9TWVNURU1fT0ZGOgo+ICAg ICAgIGNhc2UgUFNDSV8wXzJfRk4zMl9TWVNURU1fUkVTRVQ6Cj4gICAgICAgY2FzZSBQU0NJXzFf MF9GTjMyX1BTQ0lfRkVBVFVSRVM6Cj4gKyAgICBjYXNlIFBTQ0lfMV8wX0ZOMzJfU1lTVEVNX1NV U1BFTkQ6Cj4gKyAgICBjYXNlIFBTQ0lfMV8wX0ZONjRfU1lTVEVNX1NVU1BFTkQ6Cj4gICAgICAg Y2FzZSBBUk1fU01DQ0NfVkVSU0lPTl9GSUQ6Cj4gICAgICAgICAgIHJldHVybiAwOwo+ICAgICAg IGRlZmF1bHQ6Cj4gQEAgLTM1Nyw2ICszNjUsMTcgQEAgYm9vbCBkb192cHNjaV8wXzJfY2FsbChz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdWludDMyX3QgZmlkKQo+ICAgICAgICAgICByZXR1 cm4gdHJ1ZTsKPiAgICAgICB9Cj4gICAKPiArICAgIGNhc2UgUFNDSV8xXzBfRk4zMl9TWVNURU1f U1VTUEVORDoKPiArICAgIGNhc2UgUFNDSV8xXzBfRk42NF9TWVNURU1fU1VTUEVORDoKPiArICAg IHsKPiArICAgICAgICByZWdpc3Rlcl90IGVwb2ludCA9IFBTQ0lfQVJHKHJlZ3MsMSk7Cj4gKyAg ICAgICAgcmVnaXN0ZXJfdCBjaWQgPSBQU0NJX0FSRyhyZWdzLDIpOwo+ICsKPiArICAgICAgICBw ZXJmY19pbmNyKHZwc2NpX3N5c3RlbV9zdXNwZW5kKTsKPiArICAgICAgICBQU0NJX1NFVF9SRVNV TFQocmVncywgZG9fcHNjaV8xXzBfc3lzdGVtX3N1c3BlbmQoZXBvaW50LCBjaWQpKTsKPiArICAg ICAgICByZXR1cm4gdHJ1ZTsKPiArICAgIH0KPiArCj4gICAgICAgZGVmYXVsdDoKPiAgICAgICAg ICAgcmV0dXJuIGZhbHNlOwo+ICAgICAgIH0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LWFybS9wZXJmY19kZWZuLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BlcmZjX2RlZm4uaAo+IGlu ZGV4IDg5MjJlOTUyNWEuLmEwMmQwYWRlYTggMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNt LWFybS9wZXJmY19kZWZuLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BlcmZjX2RlZm4u aAo+IEBAIC0zMiw2ICszMiw3IEBAIFBFUkZDT1VOVEVSKHZwc2NpX3N5c3RlbV9yZXNldCwgICAg ICAgICJ2cHNjaTogc3lzdGVtX3Jlc2V0IikKPiAgIFBFUkZDT1VOVEVSKHZwc2NpX2NwdV9zdXNw ZW5kLCAgICAgICAgICJ2cHNjaTogY3B1X3N1c3BlbmQiKQo+ICAgUEVSRkNPVU5URVIodnBzY2lf Y3B1X2FmZmluaXR5X2luZm8sICAgInZwc2NpOiBjcHVfYWZmaW5pdHlfaW5mbyIpCj4gICBQRVJG Q09VTlRFUih2cHNjaV9mZWF0dXJlcywgICAgICAgICAgICAidnBzY2k6IGZlYXR1cmVzIikKPiAr UEVSRkNPVU5URVIodnBzY2lfc3lzdGVtX3N1c3BlbmQsICAgICAgInZwc2NpOiBzeXN0ZW1fc3Vz cGVuZCIpCj4gICAKPiAgIFBFUkZDT1VOVEVSKHZjcHVfa2ljaywgICAgICAgICAgICAgICAgICJ2 Y3B1OiBub3RpZnkgb3RoZXIgdmNwdSIpCj4gICAKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLWFybS9wc2NpLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BzY2kuaAo+IGluZGV4IDgzMmY3 N2FmZmYuLjI2NDYyZDBjNDcgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9wc2Np LmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BzY2kuaAo+IEBAIC00MywxMCArNDMsMTIg QEAgdm9pZCBjYWxsX3BzY2lfc3lzdGVtX3Jlc2V0KHZvaWQpOwo+ICAgI2RlZmluZSBQU0NJXzBf Ml9GTjMyX1NZU1RFTV9PRkYgICAgICAgICAgUFNDSV8wXzJfRk4zMig4KQo+ICAgI2RlZmluZSBQ U0NJXzBfMl9GTjMyX1NZU1RFTV9SRVNFVCAgICAgICAgUFNDSV8wXzJfRk4zMig5KQo+ICAgI2Rl ZmluZSBQU0NJXzFfMF9GTjMyX1BTQ0lfRkVBVFVSRVMgICAgICAgUFNDSV8wXzJfRk4zMigxMCkK PiArI2RlZmluZSBQU0NJXzFfMF9GTjMyX1NZU1RFTV9TVVNQRU5EICAgICAgUFNDSV8wXzJfRk4z MigxNCkKPiAgIAo+ICAgI2RlZmluZSBQU0NJXzBfMl9GTjY0X0NQVV9TVVNQRU5EICAgICAgICAg UFNDSV8wXzJfRk42NCgxKQo+ICAgI2RlZmluZSBQU0NJXzBfMl9GTjY0X0NQVV9PTiAgICAgICAg ICAgICAgUFNDSV8wXzJfRk42NCgzKQo+ICAgI2RlZmluZSBQU0NJXzBfMl9GTjY0X0FGRklOSVRZ X0lORk8gICAgICAgUFNDSV8wXzJfRk42NCg0KQo+ICsjZGVmaW5lIFBTQ0lfMV8wX0ZONjRfU1lT VEVNX1NVU1BFTkQgICAgICBQU0NJXzBfMl9GTjY0KDE0KQo+ICAgCj4gICAvKiBQU0NJIHYwLjIg YWZmaW5pdHkgbGV2ZWwgc3RhdGUgcmV0dXJuZWQgYnkgQUZGSU5JVFlfSU5GTyAqLwo+ICAgI2Rl ZmluZSBQU0NJXzBfMl9BRkZJTklUWV9MRVZFTF9PTiAgICAgIDAKPiBkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLWFybS9zdXNwZW5kLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3N1c3BlbmQu aAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMC4uZGU3ODdkMjk2YQo+ IC0tLSAvZGV2L251bGwKPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3N1c3BlbmQuaAo+IEBA IC0wLDAgKzEsMTYgQEAKPiArI2lmbmRlZiBfX0FTTV9BUk1fU1VTUEVORF9IX18KPiArI2RlZmlu ZSBfX0FTTV9BUk1fU1VTUEVORF9IX18KPiArCj4gK2ludDMyX3QgZG9tYWluX3N1c3BlbmQocmVn aXN0ZXJfdCBlcG9pbnQsIHJlZ2lzdGVyX3QgY2lkKTsKPiArCj4gKyNlbmRpZgo+ICsKPiArLyoK PiArICogTG9jYWwgdmFyaWFibGVzOgo+ICsgKiBtb2RlOiBDCj4gKyAqIGMtZmlsZS1zdHlsZTog IkJTRCIKPiArICogYy1iYXNpYy1vZmZzZXQ6IDQKPiArICogdGFiLXdpZHRoOiA0Cj4gKyAqIGlu ZGVudC10YWJzLW1vZGU6IG5pbAo+ICsgKiBFbmQ6Cj4gKyAqLwo+IGRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94ZW4vc2NoZWQuaCBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCj4gaW5kZXggMzE3 MWVhYmZkNi4uMWY0ZTg2NTI0ZiAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQu aAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCj4gQEAgLTI0LDYgKzI0LDcgQEAKPiAg ICNpbmNsdWRlIDx4ZW4vd2FpdC5oPgo+ICAgI2luY2x1ZGUgPHB1YmxpYy94ZW4uaD4KPiAgICNp bmNsdWRlIDxwdWJsaWMvZG9tY3RsLmg+Cj4gKyNpbmNsdWRlIDxwdWJsaWMvc2NoZWQuaD4KPiAg ICNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+Cj4gICAjaW5jbHVkZSA8cHVibGljL3ZjcHUuaD4K PiAgICNpbmNsdWRlIDxwdWJsaWMvdm1fZXZlbnQuaD4KPiAKCkNoZWVycywKCi0tIApKdWxpZW4g R3JhbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=