From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [4/5] EDAC, dsm_edac: Wrap ACPI DSM methods for address translation From: "Luck, Tony" Message-Id: <20181008165706.GA340@agluck-desk> Date: Mon, 8 Oct 2018 09:57:06 -0700 To: Borislav Petkov Cc: "Rafael J. Wysocki" , Qiuxu Zhuo , Aristeu Rozanski , Mauro Carvalho Chehab , linux-edac@vger.kernel.org, linux-acpi@vger.kernel.org List-ID: QWRkZWQgbGludXgtYWNwaSBsaXN0IHRvIENjOgoKT24gU2F0LCBPY3QgMDYsIDIwMTggYXQgMTA6 NDQ6NTZQTSArMDIwMCwgQm9yaXNsYXYgUGV0a292IHdyb3RlOgo+IE9uIEZyaSwgT2N0IDA1LCAy MDE4IGF0IDAzOjI1OjU3UE0gLTA3MDAsIEx1Y2ssIFRvbnkgd3JvdGU6Cj4gPiBJdCdzIGxpa2Ug YWNwaV9leHRsb2cuYyBpbiB0aGF0IGl0IHVzZXMgYW4gQUNQSSBEU00uIEFsc28gcmVsYXRlZAo+ ID4gdG8gZXJyb3IgcmVwb3J0aW5nLiAgTm8sIHdlIGFyZW4ndCBhYmFuZG9uaW5nIGV4dGxvZywg YnV0IGl0IHNlZW1zCj4gPiB0aGF0IGZld2VyIE9FTXMgdGhhbiB3ZSBob3BlZCBhcmUgYWRvcHRp bmcgZU1DQSBhbmQgaW1wbGVtZW50aW5nCj4gPiB0aGUgZXh0ZW5kZWQgbG9nIGluIHRoZWlyIEJJ T1MuCj4gCj4gT2ssIGJ1dCB3aGF0IGlzIHRoZSBkaWZmZXJlbmNlIHdpdGggdGhpcyBEU00gdGhp bmcgYW5kIHdoeSB3b3VsZCBPRU1zCj4gdXNlIHRoYXQ/IFRoZXkgZ2V0IGl0IGZvciBmcmVlIGZy b20geW91PyBPcj8KClRoaXMgc2hvdWxkbid0IGNvbmZsaWN0IHdpdGggb3RoZXIgQklPUyAidmFs dWUgYWRkIiBjb2RlIGZvciBmaXJtd2FyZQpmaXJzdCBtb2RlLCBldGMuIAoKWWVzLCB0aGV5IGdl dCBpdCBmb3IgZnJlZSB3aXRoIHRoZSByZWZlcmVuY2UvZXhhbXBsZSBCSU9TIGNvZGUuCgo+ID4g U28gSSBkcm9wcGVkIFFpdXh1J3MgY29kZSBpbnRvIGEgYmxlbmRlciBhbmQgcmFuIGl0IG9uIGhp Z2gKPiA+IGZvciBhIGZldyBtaW51dGVzLiAgQmVsb3cgaXMgYW4gUkZDIHBhdGNoIChjb21waWxl cywgYnV0Cj4gPiBvdGhlcndpc2UgdW50ZXN0ZWQpIHRvIHNlZSB3aGF0IHRoaW5ncyB3b3VsZCBs b29rcyBsaWtlIHdpdGgKPiA+IGEgYnVpbHQgaW4gQUNQSSBibG9jayB3aXRoIG5vIHJlZ2lzdHJh dGlvbnMgdG8gRURBQyBjb3JlLCBvcgo+ID4gb3RoZXIgc3R1ZmYgdGhhdCBpcyBzcGVjaWZpYyB0 byB0aGUgRURBQyB1c2FnZSBtb2RlbC4KPiAKPiBMb29rcyBuaWNlIGFuZCBjbGVhbiB0byBtZS4K ClRoYW5rcyEKCj4gPiAraW50IGFkeGxfY291bnQ7Cj4gPiArRVhQT1JUX1NZTUJPTF9HUEwoYWR4 bF9jb3VudCk7Cj4gCj4gVGhhdCdzIHRoZSBsZW5ndGggb2YgdGhlIGFkZHJlc3MgY29tcG9uZW50 cyBhZHhsX2NvbXBvbmVudF9uYW1lcyBhcnJheT8KClllcy4gQnV0IHNlZSBiZWxvdy4KCj4gPiAr Y2hhciAqKmFkeGxfY29tcG9uZW50X25hbWVzOwo+ID4gK0VYUE9SVF9TWU1CT0xfR1BMKGFkeGxf Y29tcG9uZW50X25hbWVzKTsKPiAKPiBJIGd1ZXNzIEknbSBzdGlsbCB1bmNsZWFyIG9uIGhvdyB0 aGlzIGlzIGdvaW5nIHRvIGJlIHVzZWQuLi4KCkNvbW1lbnRzIGFkZGVkIGluIG5ldyB2ZXJzaW9u IHRvIHNhdmUgcGVvcGxlIGZyb20gbWFpbGluZyBsaXN0CmFyY2hlb2xvZ3kuCgo+IGFoYSwgdGhl IERTTSByZXBsaWVzIHdpdGggYSBidW5jaCBvZiBjb21wb25lbnRzIHdoaWNoIG1hcCB0byB0aGUg bmFtZXMKPiBhbmQgdGhleSdsbCBnZXQgZmlsbGVkIHVwIGJ5IEJJT1MgYW5kIHRoZSBkcml2ZXIg c2ltcGx5IGR1bXBzIHRoZW0uCj4gU29tZXRoaW5nIGFsb25nIHRob3NlIGxpbmVzIGF0IGxlYXN0 Lgo+IAo+IFNvIHlvdSBkb24ndCBuZWVkIGNvdW50IGlmIHlvdSBOVUxMLXRlcm1pbmF0ZSB0aGUg bmFtZXMgYXJyYXksIHJpZ2h0Pwo+IAo+IFNvIHlvdSBjYW4gc2ltcGx5IGRvCj4gCj4gCWtjYWxs b2MoY250ICsgMSwgLi4uCj4gCj4gYW5kIHRoZSBsYXN0IGVsZW1lbnQgd2lsbCBiZSBOVUxMLgoK R29vZCBpZGVhLiBEb25lIGluIG5ldyB2ZXJzaW9uLCBhbmQgdGhlIEVYUE9SVF9TWU1CT0xfR1BM KGFkeGxfY291bnQpIGlzCmdvbmUuCgpTdGlsbCB1bnRlc3RlZCAuLi4gUWl1eHUsIGNhbiB5b3Ug dHJ5IHRoaXMgb3V0IHBsZWFzZS4KClJhZmFlbDogRG9lcyB0aGlzIGxvb2sgbGlrZSBzb21ldGhp bmcgeW91IGNhbiBtZXJnZSAob25jZSB3ZQpjbGVhbiB1cCBhbnkgbWlub3Igc3R5bGUgc3R1ZmYg eW91IGZpbmQpLgoKLVRvbnkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvS2NvbmZpZyBiL2Ry aXZlcnMvYWNwaS9LY29uZmlnCmluZGV4IGRkMWVlYTkwZjY3Zi4uMzI3YzkzYjUxY2I3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2FjcGkvS2NvbmZpZworKysgYi9kcml2ZXJzL2FjcGkvS2NvbmZpZwpA QCAtNDk4LDYgKzQ5OCwxNiBAQCBjb25maWcgQUNQSV9FWFRMT0cKIAkgIGRyaXZlciBhZGRzIHN1 cHBvcnQgZm9yIHRoYXQgZnVuY3Rpb25hbGl0eSB3aXRoIGNvcnJlc3BvbmRpbmcKIAkgIHRyYWNl cG9pbnQgd2hpY2ggY2FycmllcyB0aGF0IGluZm9ybWF0aW9uIHRvIHVzZXJzcGFjZS4KIAorY29u ZmlnIEFDUElfQURYTAorCWJvb2wgIlBoeXNpY2FsIGFkZHJlc3MgdG8gRElNTSBhZGRyZXNzIHRy YW5zbGF0aW9uIgorCWRlZl9ib29sIG4KKwloZWxwCisJICBFbmFibGUgaW50ZXJmYWNlIHRoYXQg Y2FsbHMgaW50byBCSU9TIHVzaW5nIGEgRFNNIChkZXZpY2UKKwkgIHNwZWNpZmljIG1ldGhvZCkg dG8gY29udmVydCBzeXN0ZW0gcGh5c2ljYWwgYWRkcmVzc2VzCisJICB0byBESU1NIChzb2NrZXQs IGNoYW5uZWwsIHJhbmssIGRpbW0sIGV0Yy4pLgorCSAgT25seSBhdmFpbGFibGUgb24gc29tZSBz ZXJ2ZXJzLgorCSAgVXNlZCBieSBuZXdlciBFREFDIGRyaXZlcnMuCisKIG1lbnVjb25maWcgUE1J Q19PUFJFR0lPTgogCWJvb2wgIlBNSUMgKFBvd2VyIE1hbmFnZW1lbnQgSW50ZWdyYXRlZCBDaXJj dWl0KSBvcGVyYXRpb24gcmVnaW9uIHN1cHBvcnQiCiAJaGVscApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9hY3BpL01ha2VmaWxlIGIvZHJpdmVycy9hY3BpL01ha2VmaWxlCmluZGV4IDZkNTlhYTEwOWE5 MS4uZWRjMDM5MzEzY2Q2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvTWFrZWZpbGUKKysrIGIv ZHJpdmVycy9hY3BpL01ha2VmaWxlCkBAIC02MSw2ICs2MSw5IEBAIGFjcGktJChDT05GSUdfQUNQ SV9MUElUKQkrPSBhY3BpX2xwaXQubwogYWNwaS0kKENPTkZJR19BQ1BJX0dFTkVSSUNfR1NJKSAr PSBpcnEubwogYWNwaS0kKENPTkZJR19BQ1BJX1dBVENIRE9HKQkrPSBhY3BpX3dhdGNoZG9nLm8K IAorIyBBZGRyZXNzIHRyYW5zbGF0aW9uCithY3BpLSQoQ09ORklHX0FDUElfQURYTCkJKz0gYWNw aV9hZHhsLm8KKwogIyBUaGVzZSBhcmUgKHBvdGVudGlhbGx5KSBzZXBhcmF0ZSBtb2R1bGVzCiAK ICMgSVBNSSBtYXkgYmUgdXNlZCBieSBvdGhlciBkcml2ZXJzLCBzbyBpdCBoYXMgdG8gaW5pdGlh bGlzZSBiZWZvcmUgdGhlbQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGlfYWR4bC5jIGIv ZHJpdmVycy9hY3BpL2FjcGlfYWR4bC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uMDFkMmI0ZDA2NDMwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9hY3BpL2Fj cGlfYWR4bC5jCkBAIC0wLDAgKzEsMTc5IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMAorLyoKKyAqIEFkZHJlc3MgdHJhbnNsYXRpb24gaW50ZXJmYWNlIHZpYSBBQ1BJIERT TS4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZmRl ZiBDT05GSUdfQUNQSV9BRFhMCisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgorI2luY2x1ZGUgPGxp bnV4L2FkeGwuaD4KKworI2RlZmluZSBBRFhMX1JFVklTSU9OCQkJMHgxCisjZGVmaW5lIEFEWExf SURYX0dFVF9BRERSX1BBUkFNUwkweDEKKyNkZWZpbmUgQURYTF9JRFhfRk9SV0FSRF9UUkFOU0xB VEUJMHgyCisjZGVmaW5lIEFDUElfQURYTF9QQVRICQkJIlxcX1NCLkFEWEwiCisKKyN1bmRlZiBw cl9mbXQKKyNkZWZpbmUgcHJfZm10KGZtdCkgIkFEWEw6ICIgZm10CisKK3N0YXRpYyBhY3BpX2hh bmRsZSBoYW5kbGU7CitzdGF0aWMgdW5pb24gYWNwaV9vYmplY3QgKnBhcmFtczsKK3N0YXRpYyBj b25zdCBndWlkX3QgYWR4bF9ndWlkID0KKwlHVUlEX0lOSVQoMHhBQTNDMDUwQSwgMHg3RUE0LCAw eDRDMUYsCisJCSAgMHhBRiwgMHhEQSwgMHgxMiwgMHg2NywgMHhERiwgMHhEMywgMHhENCwgMHg4 RCk7CisKK3N0YXRpYyBjaGFyICoqYWR4bF9jb21wb25lbnRfbmFtZXM7CisKK3N0YXRpYyB1bmlv biBhY3BpX29iamVjdCAqYWR4bF9kc20oaW50IGNtZCwgdW5pb24gYWNwaV9vYmplY3QgYXJndltd KQoreworCXVuaW9uIGFjcGlfb2JqZWN0ICpvYmosICpvOworCisJb2JqID0gYWNwaV9ldmFsdWF0 ZV9kc21fdHlwZWQoaGFuZGxlLCAmYWR4bF9ndWlkLCBBRFhMX1JFVklTSU9OLAorCQkJCSAgICAg IGNtZCwgYXJndiwgQUNQSV9UWVBFX1BBQ0tBR0UpOworCWlmICghb2JqKSB7CisJCXByX2RlYnVn KCJFbXB0eSBvYmpcbiIpOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAob2JqLT5wYWNrYWdlLmNv dW50ICE9IDIpIHsKKwkJcHJfZGVidWcoIkJhZCBwa2cgY250ICVkXG4iLCBvYmotPnBhY2thZ2Uu Y291bnQpOworCQlnb3RvIGVycjsKKwl9CisKKwlvID0gb2JqLT5wYWNrYWdlLmVsZW1lbnRzOwor CWlmIChvLT50eXBlICE9IEFDUElfVFlQRV9JTlRFR0VSKSB7CisJCXByX2RlYnVnKCJCYWQgMXN0 IGVsZW1lbnQgdHlwZSAlZFxuIiwgby0+dHlwZSk7CisJCWdvdG8gZXJyOworCX0KKwlpZiAoby0+ aW50ZWdlci52YWx1ZSkgeworCQlwcl9kZWJ1ZygiQmFkIHJldCB2YWwgJWxsdVxuIiwgby0+aW50 ZWdlci52YWx1ZSk7CisJCWdvdG8gZXJyOworCX0KKworCW8gPSBvYmotPnBhY2thZ2UuZWxlbWVu dHMgKyAxOworCWlmIChvLT50eXBlICE9IEFDUElfVFlQRV9QQUNLQUdFKSB7CisJCXByX2RlYnVn KCJCYWQgMm5kIGVsZW1lbnQgdHlwZSAlZFxuIiwgby0+dHlwZSk7CisJCWdvdG8gZXJyOworCX0K KwlyZXR1cm4gb2JqOworCitlcnI6CisJQUNQSV9GUkVFKG9iaik7CitvdXQ6CisJcmV0dXJuIG9i ajsKK30KKworLyoqCisgKiBhZHhsX2dldF9jb21wb25lbnRfbmFtZXMgLSBnZXQgbGlzdCBvZiBt ZW1vcnkgY29tcG9uZW50IG5hbWVzCisgKiBSZXR1cm5zIE5VTEwgdGVybWluYXRlZCBsaXN0IG9m IHN0cmluZyBuYW1lcworICoKKyAqIEdpdmUgdGhlIGNhbGxlciBhIHBvaW50ZXIgdG8gdGhlIGxp c3Qgb2YgbWVtb3J5IGNvbXBvbmVudCBuYW1lcworICogZS5nLiB7ICJTeXN0ZW1BZGRyZXNzIiwg IlByb2Nlc3NvclNvY2tldElkIiwgIkNoYW5uZWxJZCIsIC4uLiBOVUxMIH0KKyAqIENhbGxlciBz aG91bGQgY291bnQgaG93IG1hbnkgc3RyaW5ncyBpbiBvcmRlciB0byBhbGxvY2F0ZSBhIGJ1ZmZl cgorICogZm9yIHRoZSByZXR1cm4gZnJvbSBhZHhsX2RlY29kZSgpCisgKi8KK2NoYXIgKiphZHhs X2dldF9jb21wb25lbnRfbmFtZXModm9pZCkKK3sKKwlyZXR1cm4gYWR4bF9jb21wb25lbnRfbmFt ZXM7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChhZHhsX2dldF9jb21wb25lbnRfbmFtZXMpOworCisv KioKKyAqIGFkeGxfZGVjb2RlIC0gYXNrIEJJT1MgdG8gZGVjb2RlIGEgc3lzdGVtIGFkZHJlc3Mg dG8gbWVtb3J5IGFkZHJlc3MKKyAqIEBhZGRyOiB0aGUgYWRkcmVzcyB0byBkZWNvZGUKKyAqIEBj b21wb25lbnRfdmFsdWVzOiBwb2ludGVyIHRvIGFycmF5IG9mIHZhbHVlcyBmb3IgZWFjaCBjb21w b25lbnQKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVy d2lzZQorICoKKyAqIFRoZSBpbmRleCBvZiBlYWNoIHZhbHVlIHJldHVybmVkIGluIHRoZSBhcnJh eSBtYXRjaGVzIHRoZSBpbmRleCBvZgorICogZWFjaCBjb21wb25lbnQgbmFtZSByZXR1cm5lZCBi eSBhZHhsX2dldF9jb21wb25lbnRfbmFtZXMoKS4KKyAqIENvbXBvbmVudHMgdGhhdCBhcmUgbm90 IGRlZmluZWQgZm9yIHRoaXMgYWRkcmVzcyB0cmFuc2xhdGlvbiAoZS5nLgorICogbWlycm9yIGNo YW5uZWwgbnVtYmVyIGZvciBhIG5vbi1taXJyb3JlZCBhZGRyZXNzKSBhcmUgc2V0IHRvIH4wdWxs CisgKi8KK2ludCBhZHhsX2RlY29kZSh1NjQgYWRkciwgdTY0IGNvbXBvbmVudF92YWx1ZXNbXSkK K3sKKwl1bmlvbiBhY3BpX29iamVjdCBhcmd2NFsyXSwgKnJlc3VsdHMsICpyOworCWludCBpLCBj bnQ7CisKKwlpZiAoIWFkeGxfY29tcG9uZW50X25hbWVzKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7 CisKKwlhcmd2NFswXS50eXBlID0gQUNQSV9UWVBFX1BBQ0tBR0U7CisJYXJndjRbMF0ucGFja2Fn ZS5jb3VudCA9IDE7CisJYXJndjRbMF0ucGFja2FnZS5lbGVtZW50cyA9ICZhcmd2NFsxXTsKKwlh cmd2NFsxXS5pbnRlZ2VyLnR5cGUgPSBBQ1BJX1RZUEVfSU5URUdFUjsKKwlhcmd2NFsxXS5pbnRl Z2VyLnZhbHVlID0gYWRkcjsKKworCXJlc3VsdHMgPSBhZHhsX2RzbShBRFhMX0lEWF9GT1JXQVJE X1RSQU5TTEFURSwgYXJndjQpOworCisJaWYgKCFyZXN1bHRzKQorCQlyZXR1cm4gLUVJTlZBTDsK KworCXIgPSByZXN1bHRzLT5wYWNrYWdlLmVsZW1lbnRzICsgMTsKKwljbnQgPSByLT5wYWNrYWdl LmNvdW50OworCXIgPSByLT5wYWNrYWdlLmVsZW1lbnRzOworCisJZm9yIChpID0gMDsgaSA8IGNu dDsgaSsrKQorCQljb21wb25lbnRfdmFsdWVzW2ldID0gcltpXS5pbnRlZ2VyLnZhbHVlOworCisJ QUNQSV9GUkVFKHJlc3VsdHMpOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChh ZHhsX2RlY29kZSk7CisKK3N0YXRpYyBib29sIGFkeGxfZGV0ZWN0KHZvaWQpCit7CisJY2hhciAq cGF0aCA9IEFDUElfQURYTF9QQVRIOworCXVuaW9uIGFjcGlfb2JqZWN0ICpwOworCWFjcGlfc3Rh dHVzIHN0YXR1czsKKwlpbnQgaSwgY250OworCisJc3RhdHVzID0gYWNwaV9nZXRfaGFuZGxlKE5V TEwsIHBhdGgsICZoYW5kbGUpOworCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkgeworCQlwcl9k ZWJ1ZygiTm8gQUNQSSBoYW5kbGUgZm9yIHBhdGggJXNcbiIsIHBhdGgpOworCQlyZXR1cm4gZmFs c2U7CisJfQorCisJaWYgKCFhY3BpX2hhc19tZXRob2QoaGFuZGxlLCAiX0RTTSIpKSB7CisJCXBy X2RlYnVnKCJObyBEU00gbWV0aG9kXG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmICgh YWNwaV9jaGVja19kc20oaGFuZGxlLCAmYWR4bF9ndWlkLCBBRFhMX1JFVklTSU9OLAorCQkJICAg IEFEWExfSURYX0dFVF9BRERSX1BBUkFNUyB8CisJCQkgICAgQURYTF9JRFhfRk9SV0FSRF9UUkFO U0xBVEUpKSB7CisJCXByX2RlYnVnKCJObyBBRFhMIERTTSBtZXRob2RzXG4iKTsKKwkJcmV0dXJu IGZhbHNlOworCX0KKworCXBhcmFtcyA9IGFkeGxfZHNtKEFEWExfSURYX0dFVF9BRERSX1BBUkFN UywgTlVMTCk7CisJaWYgKCFwYXJhbXMpIHsKKwkJcHJfZGVidWcoIkZhaWxlZCB0byBnZXQgcGFy YW1zXG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXAgPSBwYXJhbXMtPnBhY2thZ2UuZWxl bWVudHMgKyAxOworCWNudCA9IHAtPnBhY2thZ2UuY291bnQ7CisJcCA9IHAtPnBhY2thZ2UuZWxl bWVudHM7CisKKwlhZHhsX2NvbXBvbmVudF9uYW1lcyA9IGtjYWxsb2MoY250ICsgMSwgc2l6ZW9m KGNoYXIgKiksIEdGUF9LRVJORUwpOworCWlmICghYWR4bF9jb21wb25lbnRfbmFtZXMpIHsKKwkJ QUNQSV9GUkVFKHBhcmFtcyk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlmb3IgKGkgPSAwOyBp IDwgY250OyBpKyspCisJCWFkeGxfY29tcG9uZW50X25hbWVzW2ldID0gcFtpXS5zdHJpbmcucG9p bnRlcjsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW50IF9faW5pdCBhZHhsX2luaXQo dm9pZCkKK3sKKwlpZiAoIWFkeGxfZGV0ZWN0KCkpCisJCXJldHVybiAtRU5PREVWOworCXJldHVy biAwOworfQorc3Vic3lzX2luaXRjYWxsKGFkeGxfaW5pdCk7CisKKyNlbmRpZiAvKiBDT05GSUdf QUNQSV9BRFhMICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FkeGwuaCBiL2luY2x1ZGUv bGludXgvYWR4bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTZk MzU2YTA2ZThiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9hZHhsLmgKQEAgLTAs MCArMSwyNSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKy8qCisg KiBBZGRyZXNzIHRyYW5zbGF0aW9uIGludGVyZmFjZSB2aWEgQUNQSSBEU00uCisgKiBDb3B5cmln aHQgKEMpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9MSU5VWF9BRFhM X0gKKyNkZWZpbmUgX0xJTlVYX0FEWExfSAorCisjaWZkZWYgQ09ORklHX0FDUElfQURYTAorY2hh ciAqKmFkeGxfZ2V0X2NvbXBvbmVudF9uYW1lcyh2b2lkKTsKK2ludCBhZHhsX2RlY29kZSh1NjQg YWRkciwgdTY0IGNvbXBvbmVudF92YWx1ZXNbXSk7CisjZWxzZQorc3RhdGljIGlubGluZSBjaGFy ICoqYWR4bF9nZXRfY29tcG9uZW50X25hbWVzKHZvaWQpCit7CisJcmV0dXJuIE5VTEw7Cit9CisK K3N0YXRpYyBpbmxpbmUgaW50IGFkeGxfZGVjb2RlKHU2NCBhZGRyLCB1NjQgY29tcG9uZW50X3Zh bHVlc1tdKQoreworCXJldHVybiAtRU9QTk9UU1VQUDsKK30KKyNlbmRpZgorCisjZW5kaWYgLyog X0xJTlVYX0FEWExfSCAqLwo=