From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v4 06/31] libxc: make arch_setup_meminit a xc_dom_arch hook Date: Fri, 7 Aug 2015 12:17:43 +0200 Message-ID: <1438942688-7610-7-git-send-email-roger.pau@citrix.com> References: <1438942688-7610-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZNejJ-0006Dk-Lk for xen-devel@lists.xenproject.org; Fri, 07 Aug 2015 10:18:25 +0000 In-Reply-To: <1438942688-7610-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Wei Liu , Stefano Stabellini , Ian Jackson , Ian Campbell , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VGhpcyBhbGxvd3MgaGF2aW5nIGRpZmZlcmVudCBhcmNoX3NldHVwX21lbWluaXQgaW1wbGVtZW50 YXRpb25zIGJhc2VkIG9uIHRoZQpndWVzdCB0eXBlLiBJdCBzaG91bGQgbm90IGludHJvZHVjZSBh bnkgZnVuY3Rpb25hbCBjaGFuZ2VzLgoKU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8 cm9nZXIucGF1QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcu Y29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNv bT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogU3RlZmFu byBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0YWJlbGxpbmlAZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBD YW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgotLS0KQ2hhbmdlcyBzaW5jZSB2MzoKIC0gQWRkIEFuZHJldyBDb29wZXIgUmV2 aWV3ZWQtYnkuCiAtIE1vdmUgeGNfZG9tX2FyY2ggZGVmaW5pdGlvbnMgdG8gdGhlIGVuZCBvZiB0 aGUgeGNfZG9tXzxhcmNoPi5jIGZpbGVzIGluCiAgIG9yZGVyIHRvIHJlZHVjZSB0aGUgc3B1cmlv dXMgZGlmZnMgaW4gdGhlIGNvbW1pbmcgcGF0Y2hlcy4KIC0gQWRkIFdlaSBBY2tlZC1ieS4KLS0t CiB0b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oIHwgIDQgKystCiB0b29scy9saWJ4Yy94Y19k b21fYXJtLmMgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLQogdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYyAgICB8ICAyICstCiB0b29scy9saWJ4Yy94 Y19kb21feDg2LmMgICAgIHwgNzEgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNjkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaCBiL3Rvb2xzL2xp YnhjL2luY2x1ZGUveGNfZG9tLmgKaW5kZXggMDJkOWQ1Yy4uYzRiOTk0ZiAxMDA2NDQKLS0tIGEv dG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hj X2RvbS5oCkBAIC0yMjMsNiArMjIzLDkgQEAgc3RydWN0IHhjX2RvbV9hcmNoIHsKICAgICBpbnQg KCpzaGFyZWRfaW5mbykgKHN0cnVjdCB4Y19kb21faW1hZ2UgKiBkb20sIHZvaWQgKnNoYXJlZF9p bmZvKTsKICAgICBpbnQgKCp2Y3B1KSAoc3RydWN0IHhjX2RvbV9pbWFnZSAqIGRvbSwgdm9pZCAq dmNwdV9jdHh0KTsKIAorICAgIC8qIGFyY2gtc3BlY2lmaWMgbWVtb3J5IGluaXRpYWxpemF0aW9u LiAqLworICAgIGludCAoKm1lbWluaXQpIChzdHJ1Y3QgeGNfZG9tX2ltYWdlICogZG9tKTsKKwog ICAgIGNoYXIgKmd1ZXN0X3R5cGU7CiAgICAgY2hhciAqbmF0aXZlX3Byb3RvY29sOwogICAgIGlu dCBwYWdlX3NoaWZ0OwpAQCAtNDAwLDcgKzQwMyw2IEBAIHN0YXRpYyBpbmxpbmUgeGVuX3Bmbl90 IHhjX2RvbV9wMm0oc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tLCB4ZW5fcGZuX3QgcGZuKQogCiAv KiAtLS0gYXJjaCBiaXRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAqLwogCi1pbnQgYXJjaF9zZXR1cF9tZW1pbml0KHN0cnVjdCB4Y19kb21faW1h Z2UgKmRvbSk7CiBpbnQgYXJjaF9zZXR1cF9ib290ZWFybHkoc3RydWN0IHhjX2RvbV9pbWFnZSAq ZG9tKTsKIGludCBhcmNoX3NldHVwX2Jvb3RsYXRlKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSk7 CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2RvbV9hcm0uYyBiL3Rvb2xzL2xpYnhjL3hj X2RvbV9hcm0uYwppbmRleCBiMDBkNjY3Li4yNDc3NmJhIDEwMDY0NAotLS0gYS90b29scy9saWJ4 Yy94Y19kb21fYXJtLmMKKysrIGIvdG9vbHMvbGlieGMveGNfZG9tX2FybS5jCkBAIC0xOTQsMzgg KzE5NCw2IEBAIHN0YXRpYyBpbnQgdmNwdV9hcm02NChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20s IHZvaWQgKnB0cikKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLXN0YXRpYyBzdHJ1Y3QgeGNf ZG9tX2FyY2ggeGNfZG9tXzMyID0gewotICAgIC5ndWVzdF90eXBlID0gInhlbi0zLjAtYXJtdjds IiwKLSAgICAubmF0aXZlX3Byb3RvY29sID0gWEVOX0lPX1BST1RPX0FCSV9BUk0sCi0gICAgLnBh Z2Vfc2hpZnQgPSBQQUdFX1NISUZUX0FSTSwKLSAgICAuc2l6ZW9mX3BmbiA9IDgsCi0gICAgLmFs bG9jX21hZ2ljX3BhZ2VzID0gYWxsb2NfbWFnaWNfcGFnZXMsCi0gICAgLmNvdW50X3BndGFibGVz ID0gY291bnRfcGd0YWJsZXNfYXJtLAotICAgIC5zZXR1cF9wZ3RhYmxlcyA9IHNldHVwX3BndGFi bGVzX2FybSwKLSAgICAuc3RhcnRfaW5mbyA9IHN0YXJ0X2luZm9fYXJtLAotICAgIC5zaGFyZWRf aW5mbyA9IHNoYXJlZF9pbmZvX2FybSwKLSAgICAudmNwdSA9IHZjcHVfYXJtMzIsCi19OwotCi1z dGF0aWMgc3RydWN0IHhjX2RvbV9hcmNoIHhjX2RvbV82NCA9IHsKLSAgICAuZ3Vlc3RfdHlwZSA9 ICJ4ZW4tMy4wLWFhcmNoNjQiLAotICAgIC5uYXRpdmVfcHJvdG9jb2wgPSBYRU5fSU9fUFJPVE9f QUJJX0FSTSwKLSAgICAucGFnZV9zaGlmdCA9IFBBR0VfU0hJRlRfQVJNLAotICAgIC5zaXplb2Zf cGZuID0gOCwKLSAgICAuYWxsb2NfbWFnaWNfcGFnZXMgPSBhbGxvY19tYWdpY19wYWdlcywKLSAg ICAuY291bnRfcGd0YWJsZXMgPSBjb3VudF9wZ3RhYmxlc19hcm0sCi0gICAgLnNldHVwX3BndGFi bGVzID0gc2V0dXBfcGd0YWJsZXNfYXJtLAotICAgIC5zdGFydF9pbmZvID0gc3RhcnRfaW5mb19h cm0sCi0gICAgLnNoYXJlZF9pbmZvID0gc2hhcmVkX2luZm9fYXJtLAotICAgIC52Y3B1ID0gdmNw dV9hcm02NCwKLX07Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCByZWdpc3Rlcl9hcmNoX2hvb2tzKHZv aWQpCi17Ci0gICAgeGNfZG9tX3JlZ2lzdGVyX2FyY2hfaG9va3MoJnhjX2RvbV8zMik7Ci0gICAg eGNfZG9tX3JlZ2lzdGVyX2FyY2hfaG9va3MoJnhjX2RvbV82NCk7Ci19Ci0KIHN0YXRpYyBpbnQg c2V0X21vZGUoeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsIGNoYXIgKmd1ZXN0X3R5 cGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CkBAIC0zODQsNyArMzUyLDcgQEAgb3V0 OgogICAgIHJldHVybiByYyA8IDAgPyByYyA6IDA7CiB9CiAKLWludCBhcmNoX3NldHVwX21lbWlu aXQoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQorc3RhdGljIGludCBtZW1pbml0KHN0cnVjdCB4 Y19kb21faW1hZ2UgKmRvbSkKIHsKICAgICBpbnQgaSwgcmM7CiAgICAgeGVuX3Bmbl90IHBmbjsK QEAgLTU0Miw2ICs1MTAsNDIgQEAgaW50IHhjX2RvbV9mZWF0dXJlX3RyYW5zbGF0ZWQoc3RydWN0 IHhjX2RvbV9pbWFnZSAqZG9tKQogICAgIHJldHVybiAxOwogfQogCisvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gKi8KKworc3RhdGljIHN0cnVjdCB4Y19kb21fYXJjaCB4Y19kb21fMzIgPSB7CisgICAgLmd1 ZXN0X3R5cGUgPSAieGVuLTMuMC1hcm12N2wiLAorICAgIC5uYXRpdmVfcHJvdG9jb2wgPSBYRU5f SU9fUFJPVE9fQUJJX0FSTSwKKyAgICAucGFnZV9zaGlmdCA9IFBBR0VfU0hJRlRfQVJNLAorICAg IC5zaXplb2ZfcGZuID0gOCwKKyAgICAuYWxsb2NfbWFnaWNfcGFnZXMgPSBhbGxvY19tYWdpY19w YWdlcywKKyAgICAuY291bnRfcGd0YWJsZXMgPSBjb3VudF9wZ3RhYmxlc19hcm0sCisgICAgLnNl dHVwX3BndGFibGVzID0gc2V0dXBfcGd0YWJsZXNfYXJtLAorICAgIC5zdGFydF9pbmZvID0gc3Rh cnRfaW5mb19hcm0sCisgICAgLnNoYXJlZF9pbmZvID0gc2hhcmVkX2luZm9fYXJtLAorICAgIC52 Y3B1ID0gdmNwdV9hcm0zMiwKKyAgICAubWVtaW5pdCA9IG1lbWluaXQsCit9OworCitzdGF0aWMg c3RydWN0IHhjX2RvbV9hcmNoIHhjX2RvbV82NCA9IHsKKyAgICAuZ3Vlc3RfdHlwZSA9ICJ4ZW4t My4wLWFhcmNoNjQiLAorICAgIC5uYXRpdmVfcHJvdG9jb2wgPSBYRU5fSU9fUFJPVE9fQUJJX0FS TSwKKyAgICAucGFnZV9zaGlmdCA9IFBBR0VfU0hJRlRfQVJNLAorICAgIC5zaXplb2ZfcGZuID0g OCwKKyAgICAuYWxsb2NfbWFnaWNfcGFnZXMgPSBhbGxvY19tYWdpY19wYWdlcywKKyAgICAuY291 bnRfcGd0YWJsZXMgPSBjb3VudF9wZ3RhYmxlc19hcm0sCisgICAgLnNldHVwX3BndGFibGVzID0g c2V0dXBfcGd0YWJsZXNfYXJtLAorICAgIC5zdGFydF9pbmZvID0gc3RhcnRfaW5mb19hcm0sCisg ICAgLnNoYXJlZF9pbmZvID0gc2hhcmVkX2luZm9fYXJtLAorICAgIC52Y3B1ID0gdmNwdV9hcm02 NCwKKyAgICAubWVtaW5pdCA9IG1lbWluaXQsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcmVn aXN0ZXJfYXJjaF9ob29rcyh2b2lkKQoreworICAgIHhjX2RvbV9yZWdpc3Rlcl9hcmNoX2hvb2tz KCZ4Y19kb21fMzIpOworICAgIHhjX2RvbV9yZWdpc3Rlcl9hcmNoX2hvb2tzKCZ4Y19kb21fNjQp OworfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMKaW5k ZXggN2MzMGY5Ni4uYmYyY2Q3YiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tX2Jvb3Qu YworKysgYi90b29scy9saWJ4Yy94Y19kb21fYm9vdC5jCkBAIC0xNDYsNyArMTQ2LDcgQEAgaW50 IHhjX2RvbV9ib290X21lbV9pbml0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIAogICAgIERP TVBSSU5URl9DQUxMRUQoZG9tLT54Y2gpOwogCi0gICAgcmMgPSBhcmNoX3NldHVwX21lbWluaXQo ZG9tKTsKKyAgICByYyA9IGRvbS0+YXJjaF9ob29rcy0+bWVtaW5pdChkb20pOwogICAgIGlmICgg cmMgIT0gMCApCiAgICAgewogICAgICAgICB4Y19kb21fcGFuaWMoZG9tLT54Y2gsIFhDX09VVF9P Rl9NRU1PUlksCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19kb21feDg2LmMgYi90b29scy9s aWJ4Yy94Y19kb21feDg2LmMKaW5kZXggYzdiZmMwYy4uMDcxNzBjMSAxMDA2NDQKLS0tIGEvdG9v bHMvbGlieGMveGNfZG9tX3g4Ni5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV94ODYuYwpAQCAt NjcwLDM4ICs2NzAsNiBAQCBzdGF0aWMgaW50IHZjcHVfeDg2XzY0KHN0cnVjdCB4Y19kb21faW1h Z2UgKmRvbSwgdm9pZCAqcHRyKQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotc3RhdGljIHN0 cnVjdCB4Y19kb21fYXJjaCB4Y19kb21fMzJfcGFlID0gewotICAgIC5ndWVzdF90eXBlID0gInhl bi0zLjAteDg2XzMycCIsCi0gICAgLm5hdGl2ZV9wcm90b2NvbCA9IFhFTl9JT19QUk9UT19BQklf WDg2XzMyLAotICAgIC5wYWdlX3NoaWZ0ID0gUEFHRV9TSElGVF9YODYsCi0gICAgLnNpemVvZl9w Zm4gPSA0LAotICAgIC5hbGxvY19tYWdpY19wYWdlcyA9IGFsbG9jX21hZ2ljX3BhZ2VzLAotICAg IC5jb3VudF9wZ3RhYmxlcyA9IGNvdW50X3BndGFibGVzX3g4Nl8zMl9wYWUsCi0gICAgLnNldHVw X3BndGFibGVzID0gc2V0dXBfcGd0YWJsZXNfeDg2XzMyX3BhZSwKLSAgICAuc3RhcnRfaW5mbyA9 IHN0YXJ0X2luZm9feDg2XzMyLAotICAgIC5zaGFyZWRfaW5mbyA9IHNoYXJlZF9pbmZvX3g4Nl8z MiwKLSAgICAudmNwdSA9IHZjcHVfeDg2XzMyLAotfTsKLQotc3RhdGljIHN0cnVjdCB4Y19kb21f YXJjaCB4Y19kb21fNjQgPSB7Ci0gICAgLmd1ZXN0X3R5cGUgPSAieGVuLTMuMC14ODZfNjQiLAot ICAgIC5uYXRpdmVfcHJvdG9jb2wgPSBYRU5fSU9fUFJPVE9fQUJJX1g4Nl82NCwKLSAgICAucGFn ZV9zaGlmdCA9IFBBR0VfU0hJRlRfWDg2LAotICAgIC5zaXplb2ZfcGZuID0gOCwKLSAgICAuYWxs b2NfbWFnaWNfcGFnZXMgPSBhbGxvY19tYWdpY19wYWdlcywKLSAgICAuY291bnRfcGd0YWJsZXMg PSBjb3VudF9wZ3RhYmxlc194ODZfNjQsCi0gICAgLnNldHVwX3BndGFibGVzID0gc2V0dXBfcGd0 YWJsZXNfeDg2XzY0LAotICAgIC5zdGFydF9pbmZvID0gc3RhcnRfaW5mb194ODZfNjQsCi0gICAg LnNoYXJlZF9pbmZvID0gc2hhcmVkX2luZm9feDg2XzY0LAotICAgIC52Y3B1ID0gdmNwdV94ODZf NjQsCi19OwotCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVnaXN0ZXJfYXJjaF9ob29rcyh2b2lkKQot ewotICAgIHhjX2RvbV9yZWdpc3Rlcl9hcmNoX2hvb2tzKCZ4Y19kb21fMzJfcGFlKTsKLSAgICB4 Y19kb21fcmVnaXN0ZXJfYXJjaF9ob29rcygmeGNfZG9tXzY0KTsKLX0KLQogc3RhdGljIGludCB4 ODZfY29tcGF0KHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLCBjaGFyICpndWVzdF90 eXBlKQogewogICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewpAQCAtNzMzLDcgKzcwMSw2IEBAIHN0 YXRpYyBpbnQgeDg2X2NvbXBhdCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwgY2hh ciAqZ3Vlc3RfdHlwZSkKICAgICByZXR1cm4gcmM7CiB9CiAKLQogc3RhdGljIGludCB4ODZfc2hh ZG93KHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkKQogewogICAgIGludCByYywgbW9k ZTsKQEAgLTc1Nyw3ICs3MjQsNyBAQCBzdGF0aWMgaW50IHg4Nl9zaGFkb3coeGNfaW50ZXJmYWNl ICp4Y2gsIGRvbWlkX3QgZG9taWQpCiAgICAgcmV0dXJuIHJjOwogfQogCi1pbnQgYXJjaF9zZXR1 cF9tZW1pbml0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKK3N0YXRpYyBpbnQgbWVtaW5pdF9w dihzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiB7CiAgICAgaW50IHJjOwogICAgIHhlbl9wZm5f dCBwZm4sIGFsbG9jc3osIG1mbiwgdG90YWwsIHBmbl9iYXNlOwpAQCAtMTA3OCw2ICsxMDQ1LDQy IEBAIGludCB4Y19kb21fZmVhdHVyZV90cmFuc2xhdGVkKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRv bSkKICAgICByZXR1cm4gZWxmX3hlbl9mZWF0dXJlX2dldChYRU5GRUFUX2F1dG9fdHJhbnNsYXRl ZF9waHlzbWFwLCBkb20tPmZfYWN0aXZlKTsKIH0KIAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisK K3N0YXRpYyBzdHJ1Y3QgeGNfZG9tX2FyY2ggeGNfZG9tXzMyX3BhZSA9IHsKKyAgICAuZ3Vlc3Rf dHlwZSA9ICJ4ZW4tMy4wLXg4Nl8zMnAiLAorICAgIC5uYXRpdmVfcHJvdG9jb2wgPSBYRU5fSU9f UFJPVE9fQUJJX1g4Nl8zMiwKKyAgICAucGFnZV9zaGlmdCA9IFBBR0VfU0hJRlRfWDg2LAorICAg IC5zaXplb2ZfcGZuID0gNCwKKyAgICAuYWxsb2NfbWFnaWNfcGFnZXMgPSBhbGxvY19tYWdpY19w YWdlcywKKyAgICAuY291bnRfcGd0YWJsZXMgPSBjb3VudF9wZ3RhYmxlc194ODZfMzJfcGFlLAor ICAgIC5zZXR1cF9wZ3RhYmxlcyA9IHNldHVwX3BndGFibGVzX3g4Nl8zMl9wYWUsCisgICAgLnN0 YXJ0X2luZm8gPSBzdGFydF9pbmZvX3g4Nl8zMiwKKyAgICAuc2hhcmVkX2luZm8gPSBzaGFyZWRf aW5mb194ODZfMzIsCisgICAgLnZjcHUgPSB2Y3B1X3g4Nl8zMiwKKyAgICAubWVtaW5pdCA9IG1l bWluaXRfcHYsCit9OworCitzdGF0aWMgc3RydWN0IHhjX2RvbV9hcmNoIHhjX2RvbV82NCA9IHsK KyAgICAuZ3Vlc3RfdHlwZSA9ICJ4ZW4tMy4wLXg4Nl82NCIsCisgICAgLm5hdGl2ZV9wcm90b2Nv bCA9IFhFTl9JT19QUk9UT19BQklfWDg2XzY0LAorICAgIC5wYWdlX3NoaWZ0ID0gUEFHRV9TSElG VF9YODYsCisgICAgLnNpemVvZl9wZm4gPSA4LAorICAgIC5hbGxvY19tYWdpY19wYWdlcyA9IGFs bG9jX21hZ2ljX3BhZ2VzLAorICAgIC5jb3VudF9wZ3RhYmxlcyA9IGNvdW50X3BndGFibGVzX3g4 Nl82NCwKKyAgICAuc2V0dXBfcGd0YWJsZXMgPSBzZXR1cF9wZ3RhYmxlc194ODZfNjQsCisgICAg LnN0YXJ0X2luZm8gPSBzdGFydF9pbmZvX3g4Nl82NCwKKyAgICAuc2hhcmVkX2luZm8gPSBzaGFy ZWRfaW5mb194ODZfNjQsCisgICAgLnZjcHUgPSB2Y3B1X3g4Nl82NCwKKyAgICAubWVtaW5pdCA9 IG1lbWluaXRfcHYsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcmVnaXN0ZXJfYXJjaF9ob29r cyh2b2lkKQoreworICAgIHhjX2RvbV9yZWdpc3Rlcl9hcmNoX2hvb2tzKCZ4Y19kb21fMzJfcGFl KTsKKyAgICB4Y19kb21fcmVnaXN0ZXJfYXJjaF9ob29rcygmeGNfZG9tXzY0KTsKK30KKwogLyoK ICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKLS0gCjEuOS41IChBcHBsZSBHaXQtNTAu MykKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=