From nobody Thu Jul 22 09:05:43 2021 X-Original-To: freebsd-arm@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id F02EA12AC4EA for ; Thu, 22 Jul 2021 09:05:43 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4GVmkv5zy1z3JjJ for ; Thu, 22 Jul 2021 09:05:43 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from reviews.nyi.freebsd.org (reviews.nyi.freebsd.org [IPv6:2610:1c1:1:606c::16:b]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id B15676F18 for ; Thu, 22 Jul 2021 09:05:43 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id B0C4C2084A; Thu, 22 Jul 2021 09:05:43 +0000 (UTC) Date: Thu, 22 Jul 2021 09:05:43 +0000 To: freebsd-arm@freebsd.org From: "dsl_mcusim.org (Dmitry Salychev)" Reply-to: "dsl_mcusim.org (Dmitry Salychev)" Subject: [Differential] D31267: Parse named nodes from IORT ACPI on arm64 Message-ID: <479fff3d782baa3bf06f082e57c2d721@localhost.localdomain> X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , , X-Herald-Rules: <31>, <32>, <34>, <101> X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: Precedence: bulk Thread-Topic: PHID-DREV-oq76npafhgjmziyg7wtl X-Phabricator-Mail-ID: 2703878 X-Phabricator-Send-Attempt: ver6igyccmey4tj6 In-Reply-To: References: Thread-Index: MTQ0NTU0ZmNiYjY3NTgwZjUyZDFkMTY4MjdmIGD5NOc= X-Phabricator-Stamps: actor(@dsl_mcusim.org) application(Differential) author(@dsl_mcusim.org) herald(H31) herald(H32) herald(H34) herald(H101) monogram(D31267) object-type(DREV) phid(PHID-DREV-oq76npafhgjmziyg7wtl) reviewer(@freebsd-arm-list) reviewer(@manu) revision-status(needs-review) subscriber(@andrew) subscriber(@emaste) subscriber(@freebsd-arm-list) via(web) List-Id: Porting FreeBSD to ARM processors List-Archive: https://lists.freebsd.org/archives/freebsd-arm List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-arm@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_479fff3d782baa3bf06f082e57c2d721" X-ThisMailContainsUnwantedMimeParts: N --b1_479fff3d782baa3bf06f082e57c2d721 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 ZHNsX21jdXNpbS5vcmcgY3JlYXRlZCB0aGlzIHJldmlzaW9uLgpkc2xfbWN1c2ltLm9yZyBhZGRl ZCBhIHJldmlld2VyOiBmcmVlYnNkLWFybS1saXN0LgpIZXJhbGQgYWRkZWQgc3Vic2NyaWJlcnM6 IGVtYXN0ZSwgYW5kcmV3LgpIZXJhbGQgYWRkZWQgYSByZXZpZXdlcjogbWFudS4KZHNsX21jdXNp bS5vcmcgcmVxdWVzdGVkIHJldmlldyBvZiB0aGlzIHJldmlzaW9uLgoKUkVWSVNJT04gU1VNTUFS WQogIER1cmluZyBteSB3b3JrIG9uIGEgZHJpdmVyIGZvciBEUEFBMiAoTlhQJ3MgbmV0d29yayBm ZWF0dXJlIGF2YWlsYWJsZSBpbiBzZXZlcmFsIG9mIHRoZWlyIFNvQ3MpIGZpcm13YXJlIGJ1cywg SSBkaXNjb3ZlcmVkIHRoYXQgaXQgaXNuJ3QgcG9zc2libGUgdG8gbWFwIGEgbmFtZWQgY29tcG9u ZW50IG1lbnRpb25lZCBpbiBJT1JUIHRvIGl0cyBTTU1VIG9yIElUUyBub2RlIGluIG9yZGVyIHRv IHNldHVwIGludGVycnVwdHMuIEl0J3MgcG9zc2libGUgdG8gZmluZCBhIG5hbWVkIG5vZGUgYnkg aXRzIG5hbWVzIChhcyBhIHN1YnN0cmluZykgYW5kIGEgcmVzb3VyY2UgSUQgKGlzb2xhdGlvbiBj b250ZXh0IElEIGluIGNhc2Ugb2YgRFBBQTIpIHNpbWlsYXIgdG8gUENJIG5vZGVzIHdpdGggdGhp cyBwYXRjaC4KClRFU1QgUExBTgogIDEuIENsb25lIG15IGZvcmsgd2l0aCBEUEFBMiB3b3JrLWlu LXByb2dyZXNzIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21jdXNpbS9mcmVlYnNkLXNyYy4KICAy LiBCdWlsZCBhbmQgYm9vdCB0byB0aGUga2VybmVsIG9uIFNvbGlkUnVuJ3MgSG9uZXlDb21iIGJv YXJkLgogIDMuIEJ1aWxkIGFuZCBsb2FkIEtMRCBmcm9tIHN5cy9tb2R1bGVzL2RwYWEyLgogIDQu IEZpbmQgImRwYWEyX3JjMDogTVNJIGFsbG9jYXRlZDogaXJxPS4uLiIgaW4gZG1lc2cKClJFVklT SU9OIERFVEFJTAogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9EMzEyNjcKCkFGRkVDVEVE IEZJTEVTCiAgc3lzL2FybTY0L2FjcGljYS9hY3BpX2lvcnQuYwogIHN5cy9kZXYvYWNwaWNhL2Fj cGl2YXIuaAoKRU1BSUwgUFJFRkVSRU5DRVMKICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcv c2V0dGluZ3MvcGFuZWwvZW1haWxwcmVmZXJlbmNlcy8KClRvOiBkc2xfbWN1c2ltLm9yZywgZnJl ZWJzZC1hcm0tbGlzdCwgbWFudQpDYzogYW5kcmV3LCBmcmVlYnNkLWFybS1saXN0LCBlbWFzdGUK --b1_479fff3d782baa3bf06f082e57c2d721 Content-Type: text/x-patch; charset=utf-8; name="D31267.92616.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D31267.92616.patch" ZGlmZiAtLWdpdCBhL3N5cy9kZXYvYWNwaWNhL2FjcGl2YXIuaCBiL3N5cy9kZXYvYWNwaWNhL2Fj cGl2YXIuaAotLS0gYS9zeXMvZGV2L2FjcGljYS9hY3BpdmFyLmgKKysrIGIvc3lzL2Rldi9hY3Bp Y2EvYWNwaXZhci5oCkBAIC01NzgsNiArNTc4LDEwIEBACiBpbnQJYWNwaV9pb3J0X21hcF9wY2lf bXNpKHVfaW50IHNlZywgdV9pbnQgcmlkLCB1X2ludCAqeHJlZiwgdV9pbnQgKmRldmlkKTsKIGlu dAlhY3BpX2lvcnRfbWFwX3BjaV9zbW11djModV9pbnQgc2VnLCB1X2ludCByaWQsIHVfaW50ICp4 cmVmLCB1X2ludCAqZGV2aWQpOwogaW50CWFjcGlfaW9ydF9pdHNfbG9va3VwKHVfaW50IGl0c19p ZCwgdV9pbnQgKnhyZWYsIGludCAqcHhtKTsKK2ludAlhY3BpX2lvcnRfbWFwX25hbWVkX21zaShj b25zdCBjaGFyICpkZXZuYW1lLCB1X2ludCByaWQsIHVfaW50ICp4cmVmLAorCSAgICB1X2ludCAq ZGV2aWQpOworaW50CWFjcGlfaW9ydF9tYXBfbmFtZWRfc21tdXYzKGNvbnN0IGNoYXIgKmRldm5h bWUsIHVfaW50IHJpZCwgdV9pbnQgKnhyZWYsCisJICAgIHVfaW50ICpkZXZpZCk7CiAjZW5kaWYK ICNlbmRpZiAvKiBfS0VSTkVMICovCiAjZW5kaWYgLyogIV9BQ1BJVkFSX0hfICovCmRpZmYgLS1n aXQgYS9zeXMvYXJtNjQvYWNwaWNhL2FjcGlfaW9ydC5jIGIvc3lzL2FybTY0L2FjcGljYS9hY3Bp X2lvcnQuYwotLS0gYS9zeXMvYXJtNjQvYWNwaWNhL2FjcGlfaW9ydC5jCisrKyBiL3N5cy9hcm02 NC9hY3BpY2EvYWNwaV9pb3J0LmMKQEAgLTc3LDYgKzc3LDE0IEBACiAJaW50CQkJcHhtOwogfTsK IAorc3RydWN0IGlvcnRfbmFtZWRfY29tcG9uZW50Cit7CisJVUlOVDMyICAgICAgICAgICAgICAg ICAgTm9kZUZsYWdzOworCVVJTlQ2NCAgICAgICAgICAgICAgICAgIE1lbW9yeVByb3BlcnRpZXM7 CisJVUlOVDggICAgICAgICAgICAgICAgICAgTWVtb3J5QWRkcmVzc0xpbWl0OworCWNoYXIgICAg ICAgICAgICAgICAgICAgIERldmljZU5hbWVbMzJdOyAvKiBQYXRoIG9mIG5hbWVzcGFjZSBvYmpl Y3QgKi8KK307CisKIC8qCiAgKiBJT1JUIG5vZGUuIEVhY2ggbm9kZSBoYXMgc29tZSBkZXZpY2Ug c3BlY2lmaWMgZGF0YSBkZXBlbmRpbmcgb24gdGhlCiAgKiB0eXBlIG9mIHRoZSBub2RlLiBUaGUg bm9kZSBjYW4gYWxzbyBoYXZlIGEgc2V0IG9mIG1hcHBpbmdzLCBPUiBpbgpAQCAtOTEsOSArOTks MTAgQEAKIAl1X2ludAkJCXVzZWNvdW50OwkvKiBmb3IgYm9va2tlZXBpbmcgKi8KIAl1X2ludAkJ CXJldmlzaW9uOwkvKiBub2RlIHJldmlzaW9uICovCiAJdW5pb24gewotCQlBQ1BJX0lPUlRfUk9P VF9DT01QTEVYCXBjaV9yYzsJCS8qIFBDSSByb290IGNvbXBsZXggKi8KLQkJQUNQSV9JT1JUX1NN TVUJCXNtbXU7Ci0JCUFDUElfSU9SVF9TTU1VX1YzCXNtbXVfdjM7CisJCUFDUElfSU9SVF9ST09U X0NPTVBMRVgJCXBjaV9yYzsJLyogUENJIHJvb3QgY29tcGxleCAqLworCQlBQ1BJX0lPUlRfU01N VQkJCXNtbXU7CisJCUFDUElfSU9SVF9TTU1VX1YzCQlzbW11X3YzOworCQlzdHJ1Y3QgaW9ydF9u YW1lZF9jb21wb25lbnQJbmFtZWRfY29tcDsKIAl9IGRhdGE7CiAJdW5pb24gewogCQlzdHJ1Y3Qg aW9ydF9tYXBfZW50cnkJKm1hcHBpbmdzOwkvKiBub2RlIG1hcHBpbmdzICAqLwpAQCAtMTA1LDYg KzExNCw3IEBACiBzdGF0aWMgVEFJTFFfSEVBRCgsIGlvcnRfbm9kZSkgcGNpX25vZGVzID0gVEFJ TFFfSEVBRF9JTklUSUFMSVpFUihwY2lfbm9kZXMpOwogc3RhdGljIFRBSUxRX0hFQUQoLCBpb3J0 X25vZGUpIHNtbXVfbm9kZXMgPSBUQUlMUV9IRUFEX0lOSVRJQUxJWkVSKHNtbXVfbm9kZXMpOwog c3RhdGljIFRBSUxRX0hFQUQoLCBpb3J0X25vZGUpIGl0c19ncm91cHMgPSBUQUlMUV9IRUFEX0lO SVRJQUxJWkVSKGl0c19ncm91cHMpOworc3RhdGljIFRBSUxRX0hFQUQoLCBpb3J0X25vZGUpIG5h bWVkX25vZGVzID0gVEFJTFFfSEVBRF9JTklUSUFMSVpFUihuYW1lZF9ub2Rlcyk7CiAKIHN0YXRp YyBpbnQKIGlvcnRfZW50cnlfZ2V0X2lkX21hcHBpbmdfaW5kZXgoc3RydWN0IGlvcnRfbm9kZSAq bm9kZSkKQEAgLTIwMiw2ICsyMTIsNDIgQEAKIAlyZXR1cm4gKG91dF9ub2RlKTsKIH0KIAorLyoK KyAqIE1hcCBhIG5hbWVkIGNvbXBvbmVudCBub2RlIHRvIGEgU01NVSBub2RlIG9yIGFuIElUUyBu b2RlLCBiYXNlZCBvbiBvdXR0eXBlLgorICovCitzdGF0aWMgc3RydWN0IGlvcnRfbm9kZSAqCitp b3J0X25hbWVkX2NvbXBfbWFwKGNvbnN0IGNoYXIgKmRldm5hbWUsIHVfaW50IHJpZCwgdV9pbnQg b3V0dHlwZSwgdV9pbnQgKm91dGlkKQoreworCXN0cnVjdCBpb3J0X25vZGUgKm5vZGUsICpvdXRf bm9kZTsKKwl1X2ludCBueHRpZDsKKworCW91dF9ub2RlID0gTlVMTDsKKwlUQUlMUV9GT1JFQUNI KG5vZGUsICZuYW1lZF9ub2RlcywgbmV4dCkgeworCQlpZiAoc3Ryc3RyKG5vZGUtPmRhdGEubmFt ZWRfY29tcC5EZXZpY2VOYW1lLCBkZXZuYW1lKSA9PSBOVUxMKQorCQkJY29udGludWU7CisJCW91 dF9ub2RlID0gaW9ydF9lbnRyeV9sb29rdXAobm9kZSwgcmlkLCAmbnh0aWQpOworCQlpZiAob3V0 X25vZGUgIT0gTlVMTCkKKwkJCWJyZWFrOworCX0KKworCS8qIENvdWxkIG5vdCBmaW5kIGEgbmFt ZWQgbm9kZSB3aXRoIHRoaXMgZGV2bmFtZSBvciByaWQuICovCisJaWYgKG91dF9ub2RlID09IE5V TEwpCisJCXJldHVybiAoTlVMTCk7CisKKwkvKiBOb2RlIGNhbiBiZSBTTU1VIG9yIElUUy4gSWYg U01NVSwgd2UgbmVlZCBhbm90aGVyIGxvb2t1cC4gKi8KKwlpZiAob3V0dHlwZSA9PSBBQ1BJX0lP UlRfTk9ERV9JVFNfR1JPVVAgJiYKKwkgICAgKG91dF9ub2RlLT50eXBlID09IEFDUElfSU9SVF9O T0RFX1NNTVVfVjMgfHwKKwkgICAgb3V0X25vZGUtPnR5cGUgPT0gQUNQSV9JT1JUX05PREVfU01N VSkpIHsKKwkJb3V0X25vZGUgPSBpb3J0X2VudHJ5X2xvb2t1cChvdXRfbm9kZSwgbnh0aWQsICZu eHRpZCk7CisJCWlmIChvdXRfbm9kZSA9PSBOVUxMKQorCQkJcmV0dXJuIChOVUxMKTsKKwl9CisK KwlLQVNTRVJUKG91dF9ub2RlLT50eXBlID09IG91dHR5cGUsICgibWFwcGluZyBmYWlsIikpOwor CSpvdXRpZCA9IG54dGlkOworCXJldHVybiAob3V0X25vZGUpOworfQorCiAjaWZkZWYgbm90eWV0 CiAvKgogICogTm90IGltcGxlbWVudGVkLCBtYXAgYSBQQ0llIGRldmljZSB0byB0aGUgU01NVSBp dCBpcyBhc3NvY2lhdGVkIHdpdGguCkBAIC0yNzksNiArMzI1LDcgQEAKIAlBQ1BJX0lPUlRfUk9P VF9DT01QTEVYICpwY2lfcmM7CiAJQUNQSV9JT1JUX1NNTVUgKnNtbXU7CiAJQUNQSV9JT1JUX1NN TVVfVjMgKnNtbXVfdjM7CisJQUNQSV9JT1JUX05BTUVEX0NPTVBPTkVOVCAqbmFtZWRfY29tcDsK IAlzdHJ1Y3QgaW9ydF9ub2RlICpub2RlOwogCiAJbm9kZSA9IG1hbGxvYyhzaXplb2YoKm5vZGUp LCBNX0RFVkJVRiwgTV9XQUlUT0sgfCBNX1pFUk8pOwpAQCAtMzEwLDYgKzM1NywxOSBAQAogCQlp b3J0X2NvcHlfaXRzKG5vZGUsIG5vZGVfZW50cnkpOwogCQlUQUlMUV9JTlNFUlRfVEFJTCgmaXRz X2dyb3Vwcywgbm9kZSwgbmV4dCk7CiAJCWJyZWFrOworCWNhc2UgQUNQSV9JT1JUX05PREVfTkFN RURfQ09NUE9ORU5UOgorCQluYW1lZF9jb21wID0gKEFDUElfSU9SVF9OQU1FRF9DT01QT05FTlQg Kilub2RlX2VudHJ5LT5Ob2RlRGF0YTsKKwkJbWVtY3B5KCZub2RlLT5kYXRhLm5hbWVkX2NvbXAs IG5hbWVkX2NvbXAsIHNpemVvZigqbmFtZWRfY29tcCkpOworCisJCS8qIENvcHkgbmFtZSBvZiB0 aGUgbm9kZSBzZXBhcmF0ZWx5LiAqLworCQlzdHJuY3B5KG5vZGUtPmRhdGEubmFtZWRfY29tcC5E ZXZpY2VOYW1lLAorCQkgICAgbmFtZWRfY29tcC0+RGV2aWNlTmFtZSwKKwkJICAgIHNpemVvZihu b2RlLT5kYXRhLm5hbWVkX2NvbXAuRGV2aWNlTmFtZSkpOworCQlub2RlLT5kYXRhLm5hbWVkX2Nv bXAuRGV2aWNlTmFtZVszMV0gPSAwOworCisJCWlvcnRfY29weV9kYXRhKG5vZGUsIG5vZGVfZW50 cnkpOworCQlUQUlMUV9JTlNFUlRfVEFJTCgmbmFtZWRfbm9kZXMsIG5vZGUsIG5leHQpOworCQli cmVhazsKIAlkZWZhdWx0OgogCQlwcmludGYoIkFDUEk6IElPUlQ6IERyb3BwaW5nIHVuaGFuZGxl ZCB0eXBlICV1XG4iLAogCQkgICAgbm9kZV9lbnRyeS0+VHlwZSk7CkBAIC0zNjgsNyArNDI4LDkg QEAKIAlUQUlMUV9GT1JFQUNIKG5vZGUsICZzbW11X25vZGVzLCBuZXh0KQogCQlmb3IgKGkgPSAw OyBpIDwgbm9kZS0+bmVudHJpZXM7IGkrKykKIAkJCWlvcnRfcmVzb2x2ZV9ub2RlKCZub2RlLT5l bnRyaWVzLm1hcHBpbmdzW2ldLCBGQUxTRSk7Ci0JLyogVE9ETzogbmFtZWQgbm9kZXMgKi8KKwlU QUlMUV9GT1JFQUNIKG5vZGUsICZuYW1lZF9ub2RlcywgbmV4dCkKKwkJZm9yIChpID0gMDsgaSA8 IG5vZGUtPm5lbnRyaWVzOyBpKyspCisJCQlpb3J0X3Jlc29sdmVfbm9kZSgmbm9kZS0+ZW50cmll cy5tYXBwaW5nc1tpXSwgVFJVRSk7CiB9CiAKIC8qCkBAIC01ODcsMyArNjQ5LDQ2IEBACiAKIAly ZXR1cm4gKDApOwogfQorCisvKgorICogRmluZHMgbWFwcGluZyBmb3IgYSBuYW1lZCBub2RlIGdp dmVuIG5hbWUgYW5kIHJlc291cmNlIElEIGFuZCByZXR1cm5zIHRoZQorICogWFJFRiBmb3IgTVNJ IGludGVycnVwdCBzZXR1cCBhbmQgdGhlIGRldmljZSBJRCB0byB1c2UgZm9yIHRoZSBpbnRlcnJ1 cHQgc2V0dXAuCisgKi8KK2ludAorYWNwaV9pb3J0X21hcF9uYW1lZF9tc2koY29uc3QgY2hhciAq ZGV2bmFtZSwgdV9pbnQgcmlkLCB1X2ludCAqeHJlZiwKKyAgICB1X2ludCAqZGV2aWQpCit7CisJ c3RydWN0IGlvcnRfbm9kZSAqbm9kZTsKKworCW5vZGUgPSBpb3J0X25hbWVkX2NvbXBfbWFwKGRl dm5hbWUsIHJpZCwgQUNQSV9JT1JUX05PREVfSVRTX0dST1VQLAorCSAgICBkZXZpZCk7CisJaWYg KG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIChFTk9FTlQpOworCisJLyogVGhpcyBzaG91bGQgYmUg YW4gSVRTIG5vZGUgKi8KKwlLQVNTRVJUKG5vZGUtPnR5cGUgPT0gQUNQSV9JT1JUX05PREVfSVRT X0dST1VQLCAoImJhZCBncm91cCIpKTsKKworCS8qIFJldHVybiBmaXJzdCBub2RlLCB3ZSBkb24n dCBoYW5kbGUgbW9yZSB0aGFuIHRoYXQgbm93LiAqLworCSp4cmVmID0gbm9kZS0+ZW50cmllcy5p dHNbMF0ueHJlZjsKKwlyZXR1cm4gKDApOworfQorCitpbnQKK2FjcGlfaW9ydF9tYXBfbmFtZWRf c21tdXYzKGNvbnN0IGNoYXIgKmRldm5hbWUsIHVfaW50IHJpZCwgdV9pbnQgKnhyZWYsCisgICAg dV9pbnQgKmRldmlkKQoreworCUFDUElfSU9SVF9TTU1VX1YzICpzbW11OworCXN0cnVjdCBpb3J0 X25vZGUgKm5vZGU7CisKKwlub2RlID0gaW9ydF9uYW1lZF9jb21wX21hcChkZXZuYW1lLCByaWQs IEFDUElfSU9SVF9OT0RFX1NNTVVfVjMsIGRldmlkKTsKKwlpZiAobm9kZSA9PSBOVUxMKQorCQly ZXR1cm4gKEVOT0VOVCk7CisKKwkvKiBUaGlzIHNob3VsZCBiZSBhbiBTTU1VIG5vZGUuICovCisJ S0FTU0VSVChub2RlLT50eXBlID09IEFDUElfSU9SVF9OT0RFX1NNTVVfVjMsICgiYmFkIG5vZGUi KSk7CisKKwlzbW11ID0gKEFDUElfSU9SVF9TTU1VX1YzICopJm5vZGUtPmRhdGEuc21tdV92MzsK KwkqeHJlZiA9IHNtbXUtPkJhc2VBZGRyZXNzOworCisJcmV0dXJuICgwKTsKK30KCg== --b1_479fff3d782baa3bf06f082e57c2d721--