From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v3 02/26] ARM: GICv3: allocate LPI pending and property table Date: Fri, 31 Mar 2017 19:05:01 +0100 Message-ID: <20170331180525.30038-3-andre.przywara@arm.com> References: <20170331180525.30038-1-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cu0ta-0005Fp-Ho for xen-devel@lists.xenproject.org; Fri, 31 Mar 2017 18:03:34 +0000 In-Reply-To: <20170331180525.30038-1-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org VGhlIEFSTSBHSUN2MyBwcm92aWRlcyBhIG5ldyBraW5kIG9mIGludGVycnVwdCBjYWxsZWQgTFBJ cy4KVGhlIHBlbmRpbmcgYml0cyBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gZGF0YSAocHJpb3JpdHks IGVuYWJsZSBiaXRzKSBmb3IKdGhvc2UgTFBJcyBhcmUgc3RvcmVkIGluIHRhYmxlcyBpbiBub3Jt YWwgbWVtb3J5LCB3aGljaCBzb2Z0d2FyZSBoYXMgdG8KcHJvdmlkZSB0byB0aGUgaGFyZHdhcmUu CkFsbG9jYXRlIHRoZSByZXF1aXJlZCBtZW1vcnksIGluaXRpYWxpemUgaXQgYW5kIGhhbmQgaXQg b3ZlciB0byBlYWNoCnJlZGlzdHJpYnV0b3IuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBMUElzIHRv IGJlIHVzZWQgY2FuIGJlIGFkanVzdGVkIHdpdGgKdGhlIGNvbW1hbmQgbGluZSBvcHRpb24gIm1h eF9scGlfYml0cyIsIHdoaWNoIGRlZmF1bHRzIHRvIDIwIGJpdHMsCmNvdmVyaW5nIGFib3V0IG9u ZSBtaWxsaW9uIExQSXMuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6 eXdhcmFAYXJtLmNvbT4KLS0tCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biB8 ICAgOSArKwogeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDEgKwogeGVu L2FyY2gvYXJtL2dpYy12My1scGkuYyAgICAgICAgICAgfCAyMDkgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgICAgICAgICAgICAgICB8 ICAxNyArKysKIHhlbi9pbmNsdWRlL2FzbS1hcm0vYml0b3BzLmggICAgICAgIHwgICAxICsKIHhl bi9pbmNsdWRlL2FzbS1hcm0vY29uZmlnLmggICAgICAgIHwgICAyICsKIHhlbi9pbmNsdWRlL2Fz bS1hcm0vZ2ljX3YzX2RlZnMuaCAgIHwgIDU0ICsrKysrKysrKy0KIHhlbi9pbmNsdWRlL2FzbS1h cm0vZ2ljX3YzX2l0cy5oICAgIHwgIDE0ICsrKwogeGVuL2luY2x1ZGUvYXNtLWFybS9pcnEuaCAg ICAgICAgICAgfCAgIDggKysKIHhlbi9pbmNsdWRlL3hlbi9iaXRvcHMuaCAgICAgICAgICAgIHwg ICA1ICstCiAxMCBmaWxlcyBjaGFuZ2VkLCAzMTggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jCgpkaWZmIC0t Z2l0IGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVu LWNvbW1hbmQtbGluZS5tYXJrZG93bgppbmRleCBhMTFmZGY5Li42MTkwMTZkIDEwMDY0NAotLS0g YS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgorKysgYi9kb2NzL21pc2MveGVu LWNvbW1hbmQtbGluZS5tYXJrZG93bgpAQCAtMTE1OCw2ICsxMTU4LDE1IEBAIGJhc2VkIGludGVy cnVwdHMuIEFueSBoaWdoZXIgSVJRcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgdXNlIHZpYSBQQ0kg TVNJLgogIyMjIG1heGNwdXMKID4gYD0gPGludGVnZXI+YAogCisjIyMgbWF4XF9scGlcX2JpdHMK Kz4gYD0gPGludGVnZXI+YAorCitTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBBUk0gR0lDdjMgTFBJ IGludGVycnVwdHMgdG8gYWxsb2NhdGUgb24gdGhlIGhvc3QsCitwcmVzZW50ZWQgYXMgdGhlIG51 bWJlciBvZiBiaXRzIG5lZWRlZCB0byBlbmNvZGUgaXQuIFRoaXMgbXVzdCBiZSBhdCBsZWFzdAor MTQgYW5kIG5vdCBleGNlZWQgMzIsIGFuZCBlYWNoIExQSSByZXF1aXJlcyBvbmUgYnl0ZSAoY29u ZmlndXJhdGlvbikgYW5kCitvbmUgcGVuZGluZyBiaXQgdG8gYmUgYWxsb2NhdGVkLgorRGVmYXVs dHMgdG8gMjAgYml0cyAodG8gY292ZXIgYXQgbW9zdCAxMDQ4NTc2IGludGVycnVwdHMpLgorCiAj IyMgbWNlCiA+IGA9IDxpbnRlZ2VyPmAKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL01ha2Vm aWxlIGIveGVuL2FyY2gvYXJtL01ha2VmaWxlCmluZGV4IDU0ODYwZTAuLjAyYTg3MzcgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL2FybS9NYWtlZmlsZQorKysgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUK QEAgLTE5LDYgKzE5LDcgQEAgb2JqLXkgKz0gZ2ljLm8KIG9iai15ICs9IGdpYy12Mi5vCiBvYmot JChDT05GSUdfSEFTX0dJQ1YzKSArPSBnaWMtdjMubwogb2JqLSQoQ09ORklHX0hBU19JVFMpICs9 IGdpYy12My1pdHMubworb2JqLSQoQ09ORklHX0hBU19JVFMpICs9IGdpYy12My1scGkubwogb2Jq LXkgKz0gZ3Vlc3Rjb3B5Lm8KIG9iai15ICs9IGh2bS5vCiBvYmoteSArPSBpby5vCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jIGIveGVuL2FyY2gvYXJtL2dpYy12My1scGku YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2Y2MDA5Ci0tLSAvZGV2L251 bGwKKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My1scGkuYwpAQCAtMCwwICsxLDIwOSBAQAorLyoK KyAqIHhlbi9hcmNoL2FybS9naWMtdjMtbHBpLmMKKyAqCisgKiBBUk0gR0lDdjMgTG9jYWxpdHkt c3BlY2lmaWMgUGVyaXBoZXJhbCBJbnRlcnJ1cHRzIChMUEkpIHN1cHBvcnQKKyAqCisgKiBDb3B5 cmlnaHQgKEMpIDIwMTYsMjAxNyAtIEFSTSBMdGQKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHVuZGVyIHZlcnNpb24g MiBvZiB0aGUgTGljZW5zZS4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRlIDx4ZW4vbGliLmg+CisjaW5jbHVk ZSA8eGVuL21tLmg+CisjaW5jbHVkZSA8eGVuL3NpemVzLmg+CisjaW5jbHVkZSA8YXNtL2dpYy5o PgorI2luY2x1ZGUgPGFzbS9naWNfdjNfZGVmcy5oPgorI2luY2x1ZGUgPGFzbS9naWNfdjNfaXRz Lmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKworI2RlZmlu ZSBMUElfUFJPUFRBQkxFX05FRURTX0ZMVVNISU5HICAgICgxVSA8PCAwKQorLyogR2xvYmFsIHN0 YXRlICovCitzdGF0aWMgc3RydWN0IHsKKyAgICAvKiBUaGUgZ2xvYmFsIExQSSBwcm9wZXJ0eSB0 YWJsZSwgc2hhcmVkIGJ5IGFsbCByZWRpc3RyaWJ1dG9ycy4gKi8KKyAgICB1aW50OF90ICpscGlf cHJvcGVydHk7CisgICAgLyoKKyAgICAgKiBOdW1iZXIgb2YgcGh5c2ljYWwgTFBJcyB0aGUgaG9z dCBzdXBwb3J0cy4gVGhpcyBpcyBhIHByb3BlcnR5IG9mCisgICAgICogdGhlIEdJQyBoYXJkd2Fy ZS4gV2UgZGVwYXJ0IGZyb20gdGhlIGhhYml0IG9mIG5hbWluZyB0aGVzZSB0aGluZ3MKKyAgICAg KiAicGh5c2ljYWwiIGluIFhlbiwgYXMgdGhlIEdJQ3YzLzQgc3BlYyB1c2VzIHRoZSB0ZXJtICJw aHlzaWNhbCBMUEkiCisgICAgICogaW4gYSBkaWZmZXJlbnQgY29udGV4dCB0byBkaWZmZXJlbnRp YXRlIHRoZW0gZnJvbSAidmlydHVhbCBMUElzIi4KKyAgICAgKi8KKyAgICB1bnNpZ25lZCBsb25n IGludCBucl9ob3N0X2xwaXM7CisgICAgdW5zaWduZWQgaW50IGZsYWdzOworfSBscGlfZGF0YTsK Kworc3RydWN0IGxwaV9yZWRpc3RfZGF0YSB7CisgICAgdm9pZCAgICAgICAgICAgICAgICAqcGVu ZGluZ190YWJsZTsKK307CisKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgbHBpX3JlZGlz dF9kYXRhLCBscGlfcmVkaXN0KTsKKworI2RlZmluZSBNQVhfUEhZU19MUElTICAgKGxwaV9kYXRh Lm5yX2hvc3RfbHBpcyAtIExQSV9PRkZTRVQpCisKK3N0YXRpYyBpbnQgZ2ljdjNfbHBpX2FsbG9j YXRlX3BlbmR0YWJsZSh1aW50NjRfdCAqcmVnKQoreworICAgIHVpbnQ2NF90IHZhbDsKKyAgICB2 b2lkICpwZW5kdGFibGU7CisKKyAgICBpZiAoIHRoaXNfY3B1KGxwaV9yZWRpc3QpLnBlbmRpbmdf dGFibGUgKQorICAgICAgICByZXR1cm4gLUVCVVNZOworCisgICAgdmFsICA9IEdJQ19CQVNFUl9D QUNIRV9SYVdhV2IgPDwgR0lDUl9QRU5EQkFTRVJfSU5ORVJfQ0FDSEVBQklMSVRZX1NISUZUOwor ICAgIHZhbCB8PSBHSUNfQkFTRVJfQ0FDSEVfU2FtZUFzSW5uZXIgPDwgR0lDUl9QRU5EQkFTRVJf T1VURVJfQ0FDSEVBQklMSVRZX1NISUZUOworICAgIHZhbCB8PSBHSUNfQkFTRVJfSW5uZXJTaGFy ZWFibGUgPDwgR0lDUl9QRU5EQkFTRVJfU0hBUkVBQklMSVRZX1NISUZUOworCisgICAgLyoKKyAg ICAgKiBUaGUgcGVuZGluZyB0YWJsZSBob2xkcyBvbmUgYml0IHBlciBMUEkgYW5kIGV2ZW4gY292 ZXJzIGJpdHMgZm9yCisgICAgICogaW50ZXJydXB0IElEcyBiZWxvdyA4MTkyLCBzbyB3ZSBhbGxv Y2F0ZSB0aGUgZnVsbCByYW5nZS4KKyAgICAgKiBUaGUgR0lDdjMgaW1wb3NlcyBhIDY0S0IgYWxp Z25tZW50IHJlcXVpcmVtZW50LCBhbHNvIHJlcXVpcmVzCisgICAgICogcGh5c2ljYWxseSBjb250 aWd1b3VzIG1lbW9yeS4KKyAgICAgKi8KKyAgICBwZW5kdGFibGUgPSBfeHphbGxvYyhscGlfZGF0 YS5ucl9ob3N0X2xwaXMgLyA4LCBTWl82NEspOworICAgIGlmICggIXBlbmR0YWJsZSApCisgICAg ICAgIHJldHVybiAtRU5PTUVNOworCisgICAgLyogTWFrZSBzdXJlIHRoZSBwaHlzaWNhbCBhZGRy ZXNzIGNhbiBiZSBlbmNvZGVkIGluIHRoZSByZWdpc3Rlci4gKi8KKyAgICBpZiAoICh2aXJ0X3Rv X21hZGRyKHBlbmR0YWJsZSkgJiB+R0VOTUFTS19VTEwoNTEsIDE2KSkgKQorICAgIHsKKyAgICAg ICAgeGZyZWUocGVuZHRhYmxlKTsKKyAgICAgICAgcmV0dXJuIC1FUkFOR0U7CisgICAgfQorICAg IGNsZWFuX2FuZF9pbnZhbGlkYXRlX2RjYWNoZV92YV9yYW5nZShwZW5kdGFibGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxwaV9kYXRhLm5yX2hvc3RfbHBpcyAv IDgpOworCisgICAgdGhpc19jcHUobHBpX3JlZGlzdCkucGVuZGluZ190YWJsZSA9IHBlbmR0YWJs ZTsKKworICAgIHZhbCB8PSBHSUNSX1BFTkRCQVNFUl9QVFo7CisKKyAgICB2YWwgfD0gdmlydF90 b19tYWRkcihwZW5kdGFibGUpOworCisgICAgKnJlZyA9IHZhbDsKKworICAgIHJldHVybiAwOwor fQorCisvKgorICogVGVsbCBhIHJlZGlzdHJpYnV0b3IgYWJvdXQgdGhlIChzaGFyZWQpIHByb3Bl cnR5IHRhYmxlLCBhbGxvY2F0aW5nIG9uZQorICogaWYgbm90IGFscmVhZHkgZG9uZS4KKyAqLwor c3RhdGljIGludCBnaWN2M19scGlfc2V0X3Byb3B0YWJsZSh2b2lkIF9faW9tZW0gKiByZGlzdF9i YXNlKQoreworICAgIHVpbnQ2NF90IHJlZzsKKworICAgIHJlZyAgPSBHSUNfQkFTRVJfQ0FDSEVf UmFXYVdiIDw8IEdJQ1JfUFJPUEJBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9TSElGVDsKKyAgICBy ZWcgfD0gR0lDX0JBU0VSX0NBQ0hFX1NhbWVBc0lubmVyIDw8IEdJQ1JfUFJPUEJBU0VSX09VVEVS X0NBQ0hFQUJJTElUWV9TSElGVDsKKyAgICByZWcgfD0gR0lDX0JBU0VSX0lubmVyU2hhcmVhYmxl IDw8IEdJQ1JfUFJPUEJBU0VSX1NIQVJFQUJJTElUWV9TSElGVDsKKworICAgIC8qCisgICAgICog VGhlIHByb3BlcnR5IHRhYmxlIGlzIHNoYXJlZCBhY3Jvc3MgYWxsIHJlZGlzdHJpYnV0b3JzLCBz byBhbGxvY2F0ZQorICAgICAqIHRoaXMgb25seSBvbmNlLCBidXQgcmV0dXJuIHRoZSBzYW1lIHZh bHVlIG9uIHN1YnNlcXVlbnQgY2FsbHMuCisgICAgICovCisgICAgaWYgKCAhbHBpX2RhdGEubHBp X3Byb3BlcnR5ICkKKyAgICB7CisgICAgICAgIC8qIFRoZSBwcm9wZXJ0eSB0YWJsZSBob2xkcyBv bmUgYnl0ZSBwZXIgTFBJLiAqLworICAgICAgICB2b2lkICp0YWJsZSA9IF94bWFsbG9jKGxwaV9k YXRhLm5yX2hvc3RfbHBpcywgU1pfNEspOworCisgICAgICAgIGlmICggIXRhYmxlICkKKyAgICAg ICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGUgcGh5c2lj YWwgYWRkcmVzcyBjYW4gYmUgZW5jb2RlZCBpbiB0aGUgcmVnaXN0ZXIuICovCisgICAgICAgIGlm ICggKHZpcnRfdG9fbWFkZHIodGFibGUpICYgfkdFTk1BU0tfVUxMKDUxLCAxMikpICkKKyAgICAg ICAgeworICAgICAgICAgICAgeGZyZWUodGFibGUpOworICAgICAgICAgICAgcmV0dXJuIC1FUkFO R0U7CisgICAgICAgIH0KKyAgICAgICAgbWVtc2V0KHRhYmxlLCBHSUNfUFJJX0lSUSB8IExQSV9Q Uk9QX1JFUzEsIE1BWF9QSFlTX0xQSVMpOworICAgICAgICBjbGVhbl9hbmRfaW52YWxpZGF0ZV9k Y2FjaGVfdmFfcmFuZ2UodGFibGUsIE1BWF9QSFlTX0xQSVMpOworICAgICAgICBscGlfZGF0YS5s cGlfcHJvcGVydHkgPSB0YWJsZTsKKyAgICB9CisKKyAgICAvKiBFbmNvZGUgdGhlIG51bWJlciBv ZiBiaXRzIG5lZWRlZCwgbWludXMgb25lICovCisgICAgcmVnIHw9IChmbHMobHBpX2RhdGEubnJf aG9zdF9scGlzIC0gMSkgLSAxKTsKKworICAgIHJlZyB8PSB2aXJ0X3RvX21hZGRyKGxwaV9kYXRh LmxwaV9wcm9wZXJ0eSk7CisKKyAgICB3cml0ZXFfcmVsYXhlZChyZWcsIHJkaXN0X2Jhc2UgKyBH SUNSX1BST1BCQVNFUik7CisgICAgcmVnID0gcmVhZHFfcmVsYXhlZChyZGlzdF9iYXNlICsgR0lD Ul9QUk9QQkFTRVIpOworCisgICAgLyogSWYgd2UgY2FuJ3QgZG8gc2hhcmVhYmxlLCB3ZSBoYXZl IHRvIGRyb3AgY2FjaGVhYmlsaXR5IGFzIHdlbGwuICovCisgICAgaWYgKCAhKHJlZyAmIEdJQ1Jf UFJPUEJBU0VSX1NIQVJFQUJJTElUWV9NQVNLKSApCisgICAgeworICAgICAgICByZWcgJj0gfkdJ Q1JfUFJPUEJBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9NQVNLOworICAgICAgICByZWcgfD0gR0lD X0JBU0VSX0NBQ0hFX25DIDw8IEdJQ1JfUFJPUEJBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9TSElG VDsKKyAgICB9CisKKyAgICAvKiBSZW1lbWJlciB0aGF0IHdlIGhhdmUgdG8gZmx1c2ggdGhlIHBy b3BlcnR5IHRhYmxlIGlmIG5vbi1jYWNoZWFibGUuICovCisgICAgaWYgKCAocmVnICYgR0lDUl9Q Uk9QQkFTRVJfSU5ORVJfQ0FDSEVBQklMSVRZX01BU0spIDw9IEdJQ19CQVNFUl9DQUNIRV9uQyAp CisgICAgeworICAgICAgICBscGlfZGF0YS5mbGFncyB8PSBMUElfUFJPUFRBQkxFX05FRURTX0ZM VVNISU5HOworICAgICAgICAvKiBVcGRhdGUgdGhlIHJlZGlzdHJpYnV0b3JzIGtub3dsZWRnZSBh Ym91dCB0aGUgYXR0cmlidXRlcy4gKi8KKyAgICAgICAgd3JpdGVxX3JlbGF4ZWQocmVnLCByZGlz dF9iYXNlICsgR0lDUl9QUk9QQkFTRVIpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitp bnQgZ2ljdjNfbHBpX2luaXRfcmRpc3Qodm9pZCBfX2lvbWVtICogcmRpc3RfYmFzZSkKK3sKKyAg ICB1aW50MzJfdCByZWc7CisgICAgdWludDY0X3QgdGFibGVfcmVnOworICAgIGludCByZXQ7CisK KyAgICAvKiBXZSBkb24ndCBzdXBwb3J0IExQSXMgd2l0aG91dCBhbiBJVFMuICovCisgICAgaWYg KCAhZ2ljdjNfaXRzX2hvc3RfaGFzX2l0cygpICkKKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7CisK KyAgICAvKiBNYWtlIHN1cmUgTFBJcyBhcmUgZGlzYWJsZWQgYmVmb3JlIHNldHRpbmcgdXAgdGhl IHRhYmxlcy4gKi8KKyAgICByZWcgPSByZWFkbF9yZWxheGVkKHJkaXN0X2Jhc2UgKyBHSUNSX0NU TFIpOworICAgIGlmICggcmVnICYgR0lDUl9DVExSX0VOQUJMRV9MUElTICkKKyAgICAgICAgcmV0 dXJuIC1FQlVTWTsKKworICAgIHJldCA9IGdpY3YzX2xwaV9hbGxvY2F0ZV9wZW5kdGFibGUoJnRh YmxlX3JlZyk7CisgICAgaWYgKHJldCkKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB3cml0ZXFf cmVsYXhlZCh0YWJsZV9yZWcsIHJkaXN0X2Jhc2UgKyBHSUNSX1BFTkRCQVNFUik7CisgICAgdGFi bGVfcmVnID0gcmVhZHFfcmVsYXhlZChyZGlzdF9iYXNlICsgR0lDUl9QRU5EQkFTRVIpOworCisg ICAgLyogSWYgdGhlIGhhcmR3YXJlIHJlcG9ydHMgbm9uLXNoYXJlYWJsZSwgZHJvcCBjYWNoZWFi aWxpdHkgYXMgd2VsbC4gKi8KKyAgICBpZiAoICEodGFibGVfcmVnICYgR0lDUl9QRU5EQkFTRVJf U0hBUkVBQklMSVRZX01BU0spICkKKyAgICB7CisgICAgICAgIHRhYmxlX3JlZyAmPSBHSUNSX1BF TkRCQVNFUl9TSEFSRUFCSUxJVFlfTUFTSzsKKyAgICAgICAgdGFibGVfcmVnICY9IEdJQ1JfUEVO REJBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9NQVNLOworICAgICAgICB0YWJsZV9yZWcgfD0gR0lD X0JBU0VSX0NBQ0hFX25DIDw8IEdJQ1JfUEVOREJBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9TSElG VDsKKworICAgICAgICB3cml0ZXFfcmVsYXhlZCh0YWJsZV9yZWcsIHJkaXN0X2Jhc2UgKyBHSUNS X1BFTkRCQVNFUik7CisgICAgfQorCisgICAgcmV0dXJuIGdpY3YzX2xwaV9zZXRfcHJvcHRhYmxl KHJkaXN0X2Jhc2UpOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IG1heF9scGlfYml0cyA9IDIw OworaW50ZWdlcl9wYXJhbSgibWF4X2xwaV9iaXRzIiwgbWF4X2xwaV9iaXRzKTsKKworaW50IGdp Y3YzX2xwaV9pbml0X2hvc3RfbHBpcyh1bnNpZ25lZCBpbnQgaHdfbHBpX2JpdHMpCit7CisgICAg bHBpX2RhdGEubnJfaG9zdF9scGlzID0gQklUX1VMTChtaW4oaHdfbHBpX2JpdHMsIG1heF9scGlf Yml0cykpOworCisgICAgcHJpbnRrKCJHSUN2MzogdXNpbmcgYXQgbW9zdCAlbHUgTFBJcyBvbiB0 aGUgaG9zdC5cbiIsIE1BWF9QSFlTX0xQSVMpOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisg KiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisg KiBjLWJhc2ljLW9mZnNldDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6Cisg Ki8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjMuYyBiL3hlbi9hcmNoL2FybS9naWMt djMuYwppbmRleCAxNTEyNTIxLi4zNmNkMjY5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vZ2lj LXYzLmMKKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My5jCkBAIC01NDgsNiArNTQ4LDkgQEAgc3Rh dGljIHZvaWQgX19pbml0IGdpY3YzX2Rpc3RfaW5pdCh2b2lkKQogICAgIHR5cGUgPSByZWFkbF9y ZWxheGVkKEdJQ0QgKyBHSUNEX1RZUEVSKTsKICAgICBucl9saW5lcyA9IDMyICogKCh0eXBlICYg R0lDRF9UWVBFX0xJTkVTKSArIDEpOwogCisgICAgaWYgKCB0eXBlICYgR0lDRF9UWVBFX0xQSVMg KQorICAgICAgICBnaWN2M19scGlfaW5pdF9ob3N0X2xwaXMoR0lDRF9UWVBFX0lEX0JJVFModHlw ZSkpOworCiAgICAgcHJpbnRrKCJHSUN2MzogJWQgbGluZXMsIChJSUQgJTguOHgpLlxuIiwKICAg ICAgICAgICAgbnJfbGluZXMsIHJlYWRsX3JlbGF4ZWQoR0lDRCArIEdJQ0RfSUlEUikpOwogCkBA IC02NjAsNiArNjYzLDIwIEBAIHN0YXRpYyBpbnQgX19pbml0IGdpY3YzX3BvcHVsYXRlX3JkaXN0 KHZvaWQpCiAgICAgICAgICAgICBpZiAoICh0eXBlciA+PiAzMikgPT0gYWZmICkKICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICB0aGlzX2NwdShyYmFzZSkgPSBwdHI7CisKKyAgICAgICAg ICAgICAgICBpZiAoIHR5cGVyICYgR0lDUl9UWVBFUl9QTFBJUyApCisgICAgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICAgICBpbnQgcmV0OworCisgICAgICAgICAgICAgICAgICAgIHJl dCA9IGdpY3YzX2xwaV9pbml0X3JkaXN0KHB0cik7CisgICAgICAgICAgICAgICAgICAgIGlmICgg cmV0ICYmIHJldCAhPSAtRU5PREVWICkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICAgICAgICAgcHJpbnRrKCJHSUN2MzogQ1BVJWQ6IENhbm5vdCBpbml0aWFsaXplIExQ SXM6ICV1XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNtcF9wcm9jZXNzb3Jf aWQoKSwgcmV0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgcHJpbnRrKCJH SUN2MzogQ1BVJWQ6IEZvdW5kIHJlZGlzdHJpYnV0b3IgaW4gcmVnaW9uICVkIEAlcFxuIiwKICAg ICAgICAgICAgICAgICAgICAgICAgIHNtcF9wcm9jZXNzb3JfaWQoKSwgaSwgcHRyKTsKICAgICAg ICAgICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vYml0 b3BzLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2JpdG9wcy5oCmluZGV4IGJkYTg4OTguLjFjYmZi OWUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vYml0b3BzLmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9iaXRvcHMuaApAQCAtMjQsNiArMjQsNyBAQAogI2RlZmluZSBCSVQobnIp ICAgICAgICAgICAgICAgICAoMVVMIDw8IChucikpCiAjZGVmaW5lIEJJVF9NQVNLKG5yKSAgICAg ICAgICAgICgxVUwgPDwgKChucikgJSBCSVRTX1BFUl9XT1JEKSkKICNkZWZpbmUgQklUX1dPUkQo bnIpICAgICAgICAgICAgKChucikgLyBCSVRTX1BFUl9XT1JEKQorI2RlZmluZSBCSVRfVUxMKG5y KSAgICAgICAgICAgICAoMVVMTCA8PCAobnIpKQogI2RlZmluZSBCSVRTX1BFUl9CWVRFICAgICAg ICAgICA4CiAKICNkZWZpbmUgQUREUiAoKih2b2xhdGlsZSBpbnQgKikgYWRkcikKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vY29uZmlnLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2Nv bmZpZy5oCmluZGV4IGJhNjFmNjUuLmYwNjRlOGEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2Fz bS1hcm0vY29uZmlnLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9jb25maWcuaApAQCAtMTks NiArMTksOCBAQAogI2RlZmluZSBCSVRTX1BFUl9MT05HIChCWVRFU19QRVJfTE9ORyA8PCAzKQog I2RlZmluZSBQT0lOVEVSX0FMSUdOIEJZVEVTX1BFUl9MT05HCiAKKyNkZWZpbmUgQklUU19QRVJf TE9OR19MT05HIChzaXplb2YgKGxvbmcgbG9uZykgKiBCSVRTX1BFUl9CWVRFKQorCiAvKiB4ZW5f dWxvbmdfdCBpcyBhbHdheXMgNjQgYml0cyAqLwogI2RlZmluZSBCSVRTX1BFUl9YRU5fVUxPTkcg NjQKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfZGVmcy5oIGIveGVu L2luY2x1ZGUvYXNtLWFybS9naWNfdjNfZGVmcy5oCmluZGV4IDZiZDI1YTUuLjdjZGViYzUgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2RlZnMuaAorKysgYi94ZW4vaW5j bHVkZS9hc20tYXJtL2dpY192M19kZWZzLmgKQEAgLTQ0LDcgKzQ0LDEwIEBACiAjZGVmaW5lIEdJ Q0NfU1JFX0VMMl9FTkVMMSAgICAgICAgICAgKDFVTCA8PCAzKQogCiAvKiBBZGRpdGlvbmFsIGJp dHMgaW4gR0lDRF9UWVBFUiBkZWZpbmVkIGJ5IEdJQ3YzICovCi0jZGVmaW5lIEdJQ0RfVFlQRV9J RF9CSVRTX1NISUZUIDE5CisjZGVmaW5lIEdJQ0RfVFlQRV9JRF9CSVRTX1NISUZUICAgICAgMTkK KyNkZWZpbmUgR0lDRF9UWVBFX0lEX0JJVFMocikgICAgICgoKChyKSA+PiBHSUNEX1RZUEVfSURf QklUU19TSElGVCkgJiAweDFmKSArIDEpCisKKyNkZWZpbmUgR0lDRF9UWVBFX0xQSVMgICAgICAg ICAgICAgICAoMVUgPDwgMTcpCiAKICNkZWZpbmUgR0lDRF9DVExSX1JXUCAgICAgICAgICAgICAg ICAoMVVMIDw8IDMxKQogI2RlZmluZSBHSUNEX0NUTFJfQVJFX05TICAgICAgICAgICAgICgxVSA8 PCA0KQpAQCAtOTUsMTIgKzk4LDYxIEBACiAjZGVmaW5lIEdJQ1JfSUdSUE1PRFIwICAgICAgICAg ICAgICAgKDB4MEQwMCkKICNkZWZpbmUgR0lDUl9OU0FDUiAgICAgICAgICAgICAgICAgICAoMHgw RTAwKQogCisjZGVmaW5lIEdJQ1JfQ1RMUl9FTkFCTEVfTFBJUyAgICAgICAgKDFVIDw8IDApCisK ICNkZWZpbmUgR0lDUl9UWVBFUl9QTFBJUyAgICAgICAgICAgICAoMVUgPDwgMCkKICNkZWZpbmUg R0lDUl9UWVBFUl9WTFBJUyAgICAgICAgICAgICAoMVUgPDwgMSkKICNkZWZpbmUgR0lDUl9UWVBF Ul9MQVNUICAgICAgICAgICAgICAoMVUgPDwgNCkKIAorLyogRm9yIHNwZWNpZnlpbmcgdGhlIGlu bmVyIGNhY2hlYWJpbGl0eSB0eXBlIG9ubHkgKi8KKyNkZWZpbmUgR0lDX0JBU0VSX0NBQ0hFX25D bkIgICAgICAgICAwVUxMCisvKiBGb3Igc3BlY2lmeWluZyB0aGUgb3V0ZXIgY2FjaGVhYmlsaXR5 IHR5cGUgb25seSAqLworI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfU2FtZUFzSW5uZXIgIDBVTEwK KyNkZWZpbmUgR0lDX0JBU0VSX0NBQ0hFX25DICAgICAgICAgICAxVUxMCisjZGVmaW5lIEdJQ19C QVNFUl9DQUNIRV9SYVd0ICAgICAgICAgMlVMTAorI2RlZmluZSBHSUNfQkFTRVJfQ0FDSEVfUmFX YiAgICAgICAgIDNVTEwKKyNkZWZpbmUgR0lDX0JBU0VSX0NBQ0hFX1dhV3QgICAgICAgICA0VUxM CisjZGVmaW5lIEdJQ19CQVNFUl9DQUNIRV9XYVdiICAgICAgICAgNVVMTAorI2RlZmluZSBHSUNf QkFTRVJfQ0FDSEVfUmFXYVd0ICAgICAgIDZVTEwKKyNkZWZpbmUgR0lDX0JBU0VSX0NBQ0hFX1Jh V2FXYiAgICAgICA3VUxMCisjZGVmaW5lIEdJQ19CQVNFUl9DQUNIRV9NQVNLICAgICAgICAgN1VM TAorCisjZGVmaW5lIEdJQ19CQVNFUl9Ob25TaGFyZWFibGUgICAgICAgMFVMTAorI2RlZmluZSBH SUNfQkFTRVJfSW5uZXJTaGFyZWFibGUgICAgIDFVTEwKKyNkZWZpbmUgR0lDX0JBU0VSX091dGVy U2hhcmVhYmxlICAgICAyVUxMCisKKyNkZWZpbmUgR0lDUl9QUk9QQkFTRVJfT1VURVJfQ0FDSEVB QklMSVRZX1NISUZUICAgICAgICAgNTYKKyNkZWZpbmUgR0lDUl9QUk9QQkFTRVJfT1VURVJfQ0FD SEVBQklMSVRZX01BU0sgICAgICAgICAgICAgICBcCisgICAgICAgICg3VUwgPDwgR0lDUl9QUk9Q QkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX1NISUZUKQorI2RlZmluZSBHSUNSX1BST1BCQVNFUl9T SEFSRUFCSUxJVFlfU0hJRlQgICAgICAgICAgICAgICAxMAorI2RlZmluZSBHSUNSX1BST1BCQVNF Ul9TSEFSRUFCSUxJVFlfTUFTSyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKDNVTCA8 PCBHSUNSX1BST1BCQVNFUl9TSEFSRUFCSUxJVFlfU0hJRlQpCisjZGVmaW5lIEdJQ1JfUFJPUEJB U0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9TSElGVCAgICAgICAgIDcKKyNkZWZpbmUgR0lDUl9QUk9Q QkFTRVJfSU5ORVJfQ0FDSEVBQklMSVRZX01BU0sgICAgICAgICAgICAgICBcCisgICAgICAgICg3 VUwgPDwgR0lDUl9QUk9QQkFTRVJfSU5ORVJfQ0FDSEVBQklMSVRZX1NISUZUKQorI2RlZmluZSBH SUNSX1BST1BCQVNFUl9SRVMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgKEdFTk1BU0tfVUxMKDYzLCA1OSkgfCBHRU5NQVNLX1VMTCg1NSwgNTIpIHwgR0VOTUFT S19VTEwoNiwgNSkpCisKKyNkZWZpbmUgR0lDUl9QRU5EQkFTRVJfU0hBUkVBQklMSVRZX1NISUZU ICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgR0lDUl9QRU5EQkFTRVJfSU5ORVJfQ0FDSEVBQklM SVRZX1NISUZUICAgICAgICAgNworI2RlZmluZSBHSUNSX1BFTkRCQVNFUl9PVVRFUl9DQUNIRUFC SUxJVFlfU0hJRlQgICAgICAgICA1NgorI2RlZmluZSBHSUNSX1BFTkRCQVNFUl9TSEFSRUFCSUxJ VFlfTUFTSyAgICAgICAgICAgICAgICAgICAgIFwKKwkoM1VMIDw8IEdJQ1JfUEVOREJBU0VSX1NI QVJFQUJJTElUWV9TSElGVCkKKyNkZWZpbmUgR0lDUl9QRU5EQkFTRVJfSU5ORVJfQ0FDSEVBQklM SVRZX01BU0sgICAgICAgICAgICAgICBcCisJKDdVTCA8PCBHSUNSX1BFTkRCQVNFUl9JTk5FUl9D QUNIRUFCSUxJVFlfU0hJRlQpCisjZGVmaW5lIEdJQ1JfUEVOREJBU0VSX09VVEVSX0NBQ0hFQUJJ TElUWV9NQVNLICAgICAgICAgICAgICAgXAorICAgICAgICAoN1VMIDw8IEdJQ1JfUEVOREJBU0VS X09VVEVSX0NBQ0hFQUJJTElUWV9TSElGVCkKKyNkZWZpbmUgR0lDUl9QRU5EQkFTRVJfUFRaICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKDYyKQorI2RlZmluZSBHSUNSX1BFTkRCQVNF Ul9SRVMwX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKEJJVCg2 MykgfCBHRU5NQVNLX1VMTCg2MSwgNTkpIHwgR0VOTUFTS19VTEwoNTUsIDUyKSB8ICAgICAgIFwK KyAgICAgICAgIEdFTk1BU0tfVUxMKDE1LCAxMikgfCBHRU5NQVNLX1VMTCg2LCAwKSkKKwogI2Rl ZmluZSBERUZBVUxUX1BNUl9WQUxVRSAgICAgICAgICAgIDB4ZmYKIAorI2RlZmluZSBMUElfUFJP UF9QUklPX01BU0sgICAgICAgICAgIDB4ZmMKKyNkZWZpbmUgTFBJX1BST1BfUkVTMSAgICAgICAg ICAgICAgICAoMSA8PCAxKQorI2RlZmluZSBMUElfUFJPUF9FTkFCTEVEICAgICAgICAgICAgICgx IDw8IDApCisKICNkZWZpbmUgR0lDSF9WTUNSX0VPSSAgICAgICAgICAgICAgICAoMSA8PCA5KQog I2RlZmluZSBHSUNIX1ZNQ1JfVkVORzEgICAgICAgICAgICAgICgxIDw8IDEpCiAKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oIGIveGVuL2luY2x1ZGUvYXNtLWFy bS9naWNfdjNfaXRzLmgKaW5kZXggNzY1YTY1NS4uMjE5ZDEwOSAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNf djNfaXRzLmgKQEAgLTQwLDYgKzQwLDExIEBAIHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29uc3Qg c3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlKTsKIAogYm9vbCBnaWN2M19pdHNfaG9zdF9oYXNf aXRzKHZvaWQpOwogCitpbnQgZ2ljdjNfbHBpX2luaXRfcmRpc3Qodm9pZCBfX2lvbWVtICogcmRp c3RfYmFzZSk7CisKKy8qIEluaXRpYWxpemUgdGhlIGhvc3Qgc3RydWN0dXJlcyBmb3IgTFBJcy4g Ki8KK2ludCBnaWN2M19scGlfaW5pdF9ob3N0X2xwaXModW5zaWduZWQgaW50IG5yX2xwaXMpOwor CiAjZWxzZQogCiBzdGF0aWMgTElTVF9IRUFEKGhvc3RfaXRzX2xpc3QpOwpAQCAtNTMsNiArNTgs MTUgQEAgc3RhdGljIGlubGluZSBib29sIGdpY3YzX2l0c19ob3N0X2hhc19pdHModm9pZCkKICAg ICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGdpY3YzX2xwaV9pbml0X3Jk aXN0KHZvaWQgX19pb21lbSAqIHJkaXN0X2Jhc2UpCit7CisgICAgcmV0dXJuIC1FTk9ERVY7Cit9 CisKK3N0YXRpYyBpbmxpbmUgaW50IGdpY3YzX2xwaV9pbml0X2hvc3RfbHBpcyh1bnNpZ25lZCBp bnQgbnJfbHBpcykKK3sKKyAgICByZXR1cm4gMDsKK30KICNlbmRpZiAvKiBDT05GSUdfSEFTX0lU UyAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vaXJxLmggYi94 ZW4vaW5jbHVkZS9hc20tYXJtL2lycS5oCmluZGV4IDhmN2ExNjcuLjEzNTI4YzAgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vaXJxLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9p cnEuaApAQCAtMTksOCArMTksMTYgQEAgc3RydWN0IGFyY2hfaXJxX2Rlc2MgewogfTsKIAogI2Rl ZmluZSBOUl9MT0NBTF9JUlFTCTMyCisKKy8qCisgKiBUaGlzIG9ubHkgY292ZXJzIHRoZSBpbnRl cnJ1cHRzIHRoYXQgWGVuIGNhcmVzIGFib3V0LCBzbyBTR0lzLCBQUElzIGFuZAorICogU1BJcy4g TFBJcyBhcmUgdG9vIG51bWVyb3VzLCBhbHNvIG9ubHkgcHJvcGFnYXRlZCB0byBndWVzdHMsIHNv IHRoZXkgYXJlCisgKiBub3QgaW5jbHVkZWQgaW4gdGhpcyBudW1iZXIuCisgKi8KICNkZWZpbmUg TlJfSVJRUwkJMTAyNAogCisjZGVmaW5lIExQSV9PRkZTRVQgICAgICA4MTkyCisKICNkZWZpbmUg bnJfaXJxcyBOUl9JUlFTCiAjZGVmaW5lIG5yX3N0YXRpY19pcnFzIE5SX0lSUVMKICNkZWZpbmUg YXJjaF9od2RvbV9pcnFzKGRvbWlkKSBOUl9JUlFTCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 ZW4vYml0b3BzLmggYi94ZW4vaW5jbHVkZS94ZW4vYml0b3BzLmgKaW5kZXggYmQwODgzYS4uOTI2 MWUwNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2JpdG9wcy5oCisrKyBiL3hlbi9pbmNs dWRlL3hlbi9iaXRvcHMuaApAQCAtNSwxMSArNSwxNCBAQAogLyoKICAqIENyZWF0ZSBhIGNvbnRp Z3VvdXMgYml0bWFzayBzdGFydGluZyBhdCBiaXQgcG9zaXRpb24gQGwgYW5kIGVuZGluZyBhdAog ICogcG9zaXRpb24gQGguIEZvciBleGFtcGxlCi0gKiBHRU5NQVNLKDMwLCAyMSkgZ2l2ZXMgdXMg dGhlIDMyYml0IHZlY3RvciAweDAxZmUwMDAwMC4KKyAqIEdFTk1BU0soMzAsIDIxKSBnaXZlcyB1 cyB0aGUgMzJiaXQgdmVjdG9yIDB4N2ZlMDAwMDAuCiAgKi8KICNkZWZpbmUgR0VOTUFTSyhoLCBs KSBcCiAgICAgKCgofjBVTCkgPDwgKGwpKSAmICh+MFVMID4+IChCSVRTX1BFUl9MT05HIC0gMSAt IChoKSkpKQogCisjZGVmaW5lIEdFTk1BU0tfVUxMKGgsIGwpIFwKKyAgICAoKCh+MFVMTCkgPDwg KGwpKSAmICh+MFVMTCA+PiAoQklUU19QRVJfTE9OR19MT05HIC0gMSAtIChoKSkpKQorCiAvKgog ICogZmZzOiBmaW5kIGZpcnN0IGJpdCBzZXQuIFRoaXMgaXMgZGVmaW5lZCB0aGUgc2FtZSB3YXkg YXMKICAqIHRoZSBsaWJjIGFuZCBjb21waWxlciBidWlsdGluIGZmcyByb3V0aW5lcywgdGhlcmVm b3JlCi0tIAoyLjkuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=