From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v2 1/5] libxl: add PV sound device Date: Fri, 18 May 2018 17:38:26 +0300 Message-ID: <20180518143830.4910-2-al1img@gmail.com> References: <20180518143830.4910-1-al1img@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fJgWp-0001Xb-PN for xen-devel@lists.xenproject.org; Fri, 18 May 2018 14:38:43 +0000 Received: by mail-lf0-x242.google.com with SMTP id h197-v6so14287602lfg.11 for ; Fri, 18 May 2018 07:38:41 -0700 (PDT) In-Reply-To: <20180518143830.4910-1-al1img@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKQWRk IFBWIHNvdW5kIGRldmljZSBkZXNjcmliZWQgaW4gc25kaWYuaAoKU2lnbmVkLW9mZi1ieTogT2xl a3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgpBY2tlZC1ieTogV2Vp IExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB0b29scy9saWJ4bC9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHRvb2xzL2xpYnhsL2xpYnhsLmggICAgICAgICAgICAgICAg ICB8ICAxNCArKwogdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgICAgICAgICAgIHwgICAxICsK IHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggICAgICAgICB8ICAgMSArCiB0b29scy9saWJ4 bC9saWJ4bF90eXBlcy5pZGwgICAgICAgICAgfCAgNjQgKysrKysrCiB0b29scy9saWJ4bC9saWJ4 bF90eXBlc19pbnRlcm5hbC5pZGwgfCAgIDEgKwogdG9vbHMvbGlieGwvbGlieGxfdnNuZC5jICAg ICAgICAgICAgIHwgMzMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogNyBmaWxlcyBjaGFu Z2VkLCA0MTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHRvb2xzL2xpYnhsL2xpYnhsX3ZzbmQuYwoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL01ha2Vm aWxlIGIvdG9vbHMvbGlieGwvTWFrZWZpbGUKaW5kZXggMDM1ZTY2ZTIyZS4uZDYwNzQzZDM4YiAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvTWFrZWZpbGUKKysrIGIvdG9vbHMvbGlieGwvTWFrZWZp bGUKQEAgLTE0MCw3ICsxNDAsNyBAQCBMSUJYTF9PQkpTID0gZmxleGFycmF5Lm8gbGlieGwubyBs aWJ4bF9jcmVhdGUubyBsaWJ4bF9kbS5vIGxpYnhsX3BjaS5vIFwKIAkJCWxpYnhsX3Z0cG0ubyBs aWJ4bF9uaWMubyBsaWJ4bF9kaXNrLm8gbGlieGxfY29uc29sZS5vIFwKIAkJCWxpYnhsX2NwdXBv b2wubyBsaWJ4bF9tZW0ubyBsaWJ4bF9zY2hlZC5vIGxpYnhsX3RtZW0ubyBcCiAJCQlsaWJ4bF85 cGZzLm8gbGlieGxfZG9tYWluLm8gbGlieGxfdmRpc3BsLm8gXAotICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfcHZjYWxscy5vICQoTElCWExfT0JKUy15KQorCQkJbGlieGxfcHZjYWxscy5v IGxpYnhsX3ZzbmQubyAkKExJQlhMX09CSlMteSkKIExJQlhMX09CSlMgKz0gbGlieGxfZ2VuaWQu bwogTElCWExfT0JKUyArPSBfbGlieGxfdHlwZXMubyBsaWJ4bF9mbGFzay5vIF9saWJ4bF90eXBl c19pbnRlcm5hbC5vCiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29scy9s aWJ4bC9saWJ4bC5oCmluZGV4IGEwOWQwNjkzNTguLmEzMTIxNjZiNDggMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuaApAQCAtMjAwMCw2ICsy MDAwLDIwIEBAIGludCBsaWJ4bF9kZXZpY2VfdmRpc3BsX2dldGluZm8obGlieGxfY3R4ICpjdHgs IHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF92 ZGlzcGxpbmZvICp2ZGlzcGxpbmZvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM SUJYTF9FWFRFUk5BTF9DQUxMRVJTX09OTFk7CiAKKy8qIFZpcnR1YWwgc291bmRzICovCitpbnQg bGlieGxfZGV2aWNlX3ZzbmRfYWRkKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQgKnZzbmQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93ICphb19ob3cpCisgICAg ICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0VYVEVSTkFMX0NBTExFUlNfT05MWTsKK2ludCBs aWJ4bF9kZXZpY2VfdnNuZF9yZW1vdmUobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdnNuZCAqdnNuZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfYXN5bmNvcF9ob3cgKmFvX2hv dykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVSU19P TkxZOworaW50IGxpYnhsX2RldmljZV92c25kX2Rlc3Ryb3kobGlieGxfY3R4ICpjdHgsIHVpbnQz Ml90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3Zz bmQgKnZzbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3lu Y29wX2hvdyAqYW9faG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhU RVJOQUxfQ0FMTEVSU19PTkxZOworCiAvKiBLZXlib2FyZCAqLwogaW50IGxpYnhsX2RldmljZV92 a2JfYWRkKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX3ZrYiAq dmtiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93ICph b19ob3cpCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xp YnhsL2xpYnhsX2NyZWF0ZS5jCmluZGV4IGI1ZTI3YTc3NjYuLjdkNDY4MjRlYWMgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2Ny ZWF0ZS5jCkBAIC0xNTAxLDYgKzE1MDEsNyBAQCBjb25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5 cGUgKmRldmljZV90eXBlX3RibFtdID0gewogICAgICZsaWJ4bF9fcGNpZGV2X2RldnR5cGUsCiAg ICAgJmxpYnhsX19kdGRldl9kZXZ0eXBlLAogICAgICZsaWJ4bF9fdmRpc3BsX2RldnR5cGUsCisg ICAgJmxpYnhsX192c25kX2RldnR5cGUsCiAgICAgTlVMTAogfTsKIApkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgK aW5kZXggYzU4Mjg5NDU4OS4uMTdhYzIwODNmNiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGli eGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0zNjUz LDYgKzM2NTMsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90eXBlIGxpYnhs X19wY2lkZXZfZGV2dHlwZTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUg bGlieGxfX3ZkaXNwbF9kZXZ0eXBlOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2Vf dHlwZSBsaWJ4bF9fcDlfZGV2dHlwZTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNl X3R5cGUgbGlieGxfX3B2Y2FsbHNpZl9kZXZ0eXBlOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBsaWJ4 bF9kZXZpY2VfdHlwZSBsaWJ4bF9fdnNuZF9kZXZ0eXBlOwogCiBleHRlcm4gY29uc3Qgc3RydWN0 IGxpYnhsX2RldmljZV90eXBlICpkZXZpY2VfdHlwZV90YmxbXTsKIApkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmlu ZGV4IDAxZWMxZDFhZmEuLmFkOTc4ZmI0MTMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs X3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKQEAgLTgyMiw2ICs4 MjIsNjkgQEAgbGlieGxfZGV2aWNlX3ZkaXNwbCA9IFN0cnVjdCgiZGV2aWNlX3ZkaXNwbCIsIFsK ICAgICAoImNvbm5lY3RvcnMiLCBBcnJheShsaWJ4bF9jb25uZWN0b3JfcGFyYW0sICJudW1fY29u bmVjdG9ycyIpKQogICAgIF0pCiAKK2xpYnhsX3ZzbmRfcGNtX2Zvcm1hdCA9IEVudW1lcmF0aW9u KCJ2c25kX3BjbV9mb3JtYXQiLCBbCisgICAgKDEsICAiUzgiKSwKKyAgICAoMiwgICJVOCIpLAor ICAgICgzLCAgIlMxNl9MRSIpLAorICAgICg0LCAgIlMxNl9CRSIpLAorICAgICg1LCAgIlUxNl9M RSIpLAorICAgICg2LCAgIlUxNl9CRSIpLAorICAgICg3LCAgIlMyNF9MRSIpLAorICAgICg4LCAg IlMyNF9CRSIpLAorICAgICg5LCAgIlUyNF9MRSIpLAorICAgICgxMCwgIlUyNF9CRSIpLAorICAg ICgxMSwgIlMzMl9MRSIpLAorICAgICgxMiwgIlMzMl9CRSIpLAorICAgICgxMywgIlUzMl9MRSIp LAorICAgICgxNCwgIlUzMl9CRSIpLAorICAgICgxNSwgIkYzMl9MRSIpLAorICAgICgxNiwgIkYz Ml9CRSIpLAorICAgICgxNywgIkY2NF9MRSIpLAorICAgICgxOCwgIkY2NF9CRSIpLAorICAgICgx OSwgIklFQzk1OF9TVUJGUkFNRV9MRSIpLAorICAgICgyMCwgIklFQzk1OF9TVUJGUkFNRV9CRSIp LAorICAgICgyMSwgIk1VX0xBVyIpLAorICAgICgyMiwgIkFfTEFXIiksCisgICAgKDIzLCAiSU1B X0FEUENNIiksCisgICAgKDI0LCAiTVBFRyIpLAorICAgICgyNSwgIkdTTSIpCisgICAgXSkKKwor bGlieGxfdnNuZF9wYXJhbXMgPSBTdHJ1Y3QoInZzbmRfcGFyYW1zIiwgWworICAgICgic2FtcGxl X3JhdGVzIiwgQXJyYXkodWludDMyLCAibnVtX3NhbXBsZV9yYXRlcyIpKSwKKyAgICAoInNhbXBs ZV9mb3JtYXRzIiwgQXJyYXkobGlieGxfdnNuZF9wY21fZm9ybWF0LCAibnVtX3NhbXBsZV9mb3Jt YXRzIikpLAorICAgICgiY2hhbm5lbHNfbWluIiwgdWludDMyKSwKKyAgICAoImNoYW5uZWxzX21h eCIsIHVpbnQzMiksCisgICAgKCJidWZmZXJfc2l6ZSIsIHVpbnQzMikKKyAgICBdKQorCitsaWJ4 bF92c25kX3N0cmVhbV90eXBlID0gRW51bWVyYXRpb24oInZzbmRfc3RyZWFtX3R5cGUiLCBbCisg ICAgKDEsICJQIiksCisgICAgKDIsICJDIikKKyAgICBdKQorCitsaWJ4bF92c25kX3N0cmVhbSA9 IFN0cnVjdCgidnNuZF9zdHJlYW0iLCBbCisgICAgKCJpZCIsIHN0cmluZyksCisgICAgKCJ0eXBl IiwgbGlieGxfdnNuZF9zdHJlYW1fdHlwZSksCisgICAgKCJwYXJhbXMiLCBsaWJ4bF92c25kX3Bh cmFtcykKKyAgICBdKQorCitsaWJ4bF92c25kX3BjbSA9IFN0cnVjdCgidnNuZF9wY20iLCBbCisg ICAgKCJuYW1lIiwgc3RyaW5nKSwKKyAgICAoInBhcmFtcyIsIGxpYnhsX3ZzbmRfcGFyYW1zKSwK KyAgICAoInN0cmVhbXMiLCBBcnJheShsaWJ4bF92c25kX3N0cmVhbSwgIm51bV92c25kX3N0cmVh bXMiKSkKKyAgICBdKQorCitsaWJ4bF9kZXZpY2VfdnNuZCA9IFN0cnVjdCgiZGV2aWNlX3ZzbmQi LCBbCisgICAgKCJiYWNrZW5kX2RvbWlkIiwgbGlieGxfZG9taWQpLAorICAgICgiYmFja2VuZF9k b21uYW1lIiwgc3RyaW5nKSwKKyAgICAoImRldmlkIiwgbGlieGxfZGV2aWQpLAorICAgICgic2hv cnRfbmFtZSIsIHN0cmluZyksCisgICAgKCJsb25nX25hbWUiLCBzdHJpbmcpLAorICAgICgicGFy YW1zIiwgbGlieGxfdnNuZF9wYXJhbXMpLAorICAgICgicGNtcyIsIEFycmF5KGxpYnhsX3ZzbmRf cGNtLCAibnVtX3ZzbmRfcGNtcyIpKQorICAgIF0pCisKIGxpYnhsX2RvbWFpbl9jb25maWcgPSBT dHJ1Y3QoImRvbWFpbl9jb25maWciLCBbCiAgICAgKCJjX2luZm8iLCBsaWJ4bF9kb21haW5fY3Jl YXRlX2luZm8pLAogICAgICgiYl9pbmZvIiwgbGlieGxfZG9tYWluX2J1aWxkX2luZm8pLApAQCAt ODM3LDYgKzkwMCw3IEBAIGxpYnhsX2RvbWFpbl9jb25maWcgPSBTdHJ1Y3QoImRvbWFpbl9jb25m aWciLCBbCiAgICAgKCJwOXMiLCBBcnJheShsaWJ4bF9kZXZpY2VfcDksICJudW1fcDlzIikpLAog ICAgICgicHZjYWxsc2lmcyIsIEFycmF5KGxpYnhsX2RldmljZV9wdmNhbGxzaWYsICJudW1fcHZj YWxsc2lmcyIpKSwKICAgICAoInZkaXNwbHMiLCBBcnJheShsaWJ4bF9kZXZpY2VfdmRpc3BsLCAi bnVtX3ZkaXNwbHMiKSksCisgICAgKCJ2c25kcyIsIEFycmF5KGxpYnhsX2RldmljZV92c25kLCAi bnVtX3ZzbmRzIikpLAogICAgICMgYSBjaGFubmVsIG1hbmlmZXN0cyBhcyBhIGNvbnNvbGUgd2l0 aCBhIG5hbWUsCiAgICAgIyBzZWUgZG9jcy9taXNjL2NoYW5uZWxzLnR4dAogICAgICgiY2hhbm5l bHMiLCBBcnJheShsaWJ4bF9kZXZpY2VfY2hhbm5lbCwgIm51bV9jaGFubmVscyIpKSwKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzX2ludGVybmFsLmlkbCBiL3Rvb2xzL2xpYnhs L2xpYnhsX3R5cGVzX2ludGVybmFsLmlkbAppbmRleCBmMmZmMDE3MThkLi4zNzQwMmU0OWNiIDEw MDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlc19pbnRlcm5hbC5pZGwKKysrIGIvdG9v bHMvbGlieGwvbGlieGxfdHlwZXNfaW50ZXJuYWwuaWRsCkBAIC0yOSw2ICsyOSw3IEBAIGxpYnhs X19kZXZpY2Vfa2luZCA9IEVudW1lcmF0aW9uKCJkZXZpY2Vfa2luZCIsIFsKICAgICAoMTIsICJW RElTUEwiKSwKICAgICAoMTMsICJWVUFSVCIpLAogICAgICgxNCwgIlBWQ0FMTFMiKSwKKyAgICAo MTUsICJWU05EIiksCiAgICAgXSkKIAogbGlieGxfX2NvbnNvbGVfYmFja2VuZCA9IEVudW1lcmF0 aW9uKCJjb25zb2xlX2JhY2tlbmQiLCBbCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF92 c25kLmMgYi90b29scy9saWJ4bC9saWJ4bF92c25kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uMWUxOTIxNzgxMQotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2xpYnhs L2xpYnhsX3ZzbmQuYwpAQCAtMCwwICsxLDMzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx NiBFUEFNIFN5c3RlbXMgSW5jLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQKKyAqIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMi4xIG9ubHku IHdpdGggdGhlIHNwZWNpYWwKKyAqIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiBm aWxlIExJQ0VOU0UuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKi8KKworI2lu Y2x1ZGUgImxpYnhsX2ludGVybmFsLmgiCisjaW5jbHVkZSA8eGVuL2lvL3NuZGlmLmg+CisKK3N0 YXRpYyBpbnQgbGlieGxfX2RldmljZV92c25kX3NldGRlZmF1bHQobGlieGxfX2djICpnYywgdWlu dDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX2RldmljZV92c25kICp2c25kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBib29sIGhvdHBsdWcpCit7CisgICAgcmV0dXJuIGxpYnhsX19yZXNvbHZlX2RvbWlk KGdjLCB2c25kLT5iYWNrZW5kX2RvbW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZ2c25kLT5iYWNrZW5kX2RvbWlkKTsKK30KKworc3RhdGljIGludCBsaWJ4bF9fZGV2aWNl X2Zyb21fdnNuZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQgKnZzbmQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kZXZpY2UgKmRldmljZSkKK3sKKyAgIGRl dmljZS0+YmFja2VuZF9kZXZpZCAgID0gdnNuZC0+ZGV2aWQ7CisgICBkZXZpY2UtPmJhY2tlbmRf ZG9taWQgICA9IHZzbmQtPmJhY2tlbmRfZG9taWQ7CisgICBkZXZpY2UtPmJhY2tlbmRfa2luZCAg ICA9IExJQlhMX19ERVZJQ0VfS0lORF9WU05EOworICAgZGV2aWNlLT5kZXZpZCAgICAgICAgICAg PSB2c25kLT5kZXZpZDsKKyAgIGRldmljZS0+ZG9taWQgICAgICAgICAgID0gZG9taWQ7CisgICBk ZXZpY2UtPmtpbmQgICAgICAgICAgICA9IExJQlhMX19ERVZJQ0VfS0lORF9WU05EOworCisgICBy ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsaWJ4bF9fdnNuZF9mcm9tX3hlbnN0b3JlKGxpYnhs X19nYyAqZ2MsIGNvbnN0IGNoYXIgKmxpYnhsX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGlieGxfZGV2aWQgZGV2aWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQgKnZzbmQpCit7CisgICAgY29uc3QgY2hh ciAqYmVfcGF0aDsKKyAgICBpbnQgcmM7CisKKyAgICB2c25kLT5kZXZpZCA9IGRldmlkOworICAg IHJjID0gbGlieGxfX3hzX3JlYWRfbWFuZGF0b3J5KGdjLCBYQlRfTlVMTCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzL2JhY2tlbmQiLCBsaWJ4bF9wYXRo KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYmVfcGF0aCk7CisgICAgaWYg KHJjKSBnb3RvIG91dDsKKworICAgIHJjID0gbGlieGxfX2JhY2tlbmRwYXRoX3BhcnNlX2RvbWlk KGdjLCBiZV9wYXRoLCAmdnNuZC0+YmFja2VuZF9kb21pZCk7CisgICAgaWYgKHJjKSBnb3RvIG91 dDsKKworICAgIHJjID0gMDsKKworb3V0OgorCisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMg dm9pZCBsaWJ4bF9fdXBkYXRlX2NvbmZpZ192c25kKGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV92c25kICpkc3QsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV92c25kICpzcmMp Cit7CisgICAgZHN0LT5kZXZpZCA9IHNyYy0+ZGV2aWQ7Cit9CisKK3N0YXRpYyBpbnQgbGlieGxf ZGV2aWNlX3ZzbmRfY29tcGFyZShsaWJ4bF9kZXZpY2VfdnNuZCAqZDEsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQgKmQyKQoreworICAgIHJl dHVybiBDT01QQVJFX0RFVklEKGQxLCBkMik7Cit9CisKK3N0YXRpYyB2b2lkIGxpYnhsX19kZXZp Y2VfdnNuZF9hZGQobGlieGxfX2VnYyAqZWdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQgKnZzbmQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19hb19kZXZpY2UgKmFvZGV2KQorewor ICAgIGxpYnhsX19kZXZpY2VfYWRkX2FzeW5jKGVnYywgZG9taWQsICZsaWJ4bF9fdnNuZF9kZXZ0 eXBlLCB2c25kLCBhb2Rldik7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbGlieGxfX3JhdGVz X3RvX3N0cl92c25kKGNoYXIgKnN0ciwgdWludDMyX3QgKnNhbXBsZV9yYXRlcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fc2FtcGxlX3JhdGVz KQoreworICAgIHVuc2lnbmVkIGludCBsZW47CisgICAgaW50IGk7CisKKyAgICBsZW4gPSAwOwor CisgICAgaWYgKG51bV9zYW1wbGVfcmF0ZXMgPT0gMCkgZ290byBvdXQ7CisKKyAgICBmb3IgKGkg PSAwOyBpIDwgbnVtX3NhbXBsZV9yYXRlcyAtIDE7IGkrKykgeworICAgICAgICBpZiAoc3RyKSB7 CisgICAgICAgICAgICBsZW4gKz0gc3ByaW50Zigmc3RyW2xlbl0sICIldSwiLCBzYW1wbGVfcmF0 ZXNbaV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGVuICs9IHNucHJpbnRmKE5V TEwsIDAsICIldSwiLCBzYW1wbGVfcmF0ZXNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAg aWYgKHN0cikgeworICAgICAgICBsZW4gKz0gc3ByaW50Zigmc3RyW2xlbl0sICIldSIsIHNhbXBs ZV9yYXRlc1tpXSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbGVuICs9IHNucHJpbnRmKE5VTEws IDAsICIldSIsIHNhbXBsZV9yYXRlc1tpXSk7CisgICAgfQorCitvdXQ6CisKKyAgICByZXR1cm4g bGVuOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGxpYnhsX19mb3JtYXRzX3RvX3N0cl92c25k KGNoYXIgKnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfdnNuZF9wY21fZm9ybWF0ICpzYW1wbGVfZm9ybWF0cywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9zYW1wbGVfZm9ybWF0cykK K3sKKyAgICB1bnNpZ25lZCBpbnQgbGVuOworICAgIGludCBpOworCisgICAgbGVuID0gMDsKKwor ICAgIGlmIChudW1fc2FtcGxlX2Zvcm1hdHMgPT0gMCkgZ290byBvdXQ7CisKKyAgICBmb3IgKGkg PSAwOyBpIDwgbnVtX3NhbXBsZV9mb3JtYXRzIC0gMTsgaSsrKSB7CisgICAgICAgIGlmIChzdHIp IHsKKyAgICAgICAgICAgIGxlbiArPSBzcHJpbnRmKCZzdHJbbGVuXSwgIiVzLCIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF92c25kX3BjbV9mb3JtYXRfdG9fc3RyaW5nKHNhbXBs ZV9mb3JtYXRzW2ldKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsZW4gKz0gc25w cmludGYoTlVMTCwgMCwgIiVzLCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf dnNuZF9wY21fZm9ybWF0X3RvX3N0cmluZyhzYW1wbGVfZm9ybWF0c1tpXSkpOworICAgICAgICB9 CisgICAgfQorCisgICAgaWYgKHN0cikgeworICAgICAgICBsZW4gKz0gc3ByaW50Zigmc3RyW2xl bl0sICIlcyIsCisgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3ZzbmRfcGNtX2Zvcm1hdF90 b19zdHJpbmcoc2FtcGxlX2Zvcm1hdHNbaV0pKTsKKyAgICB9IGVsc2UgeworICAgICAgICBsZW4g Kz0gc25wcmludGYoTlVMTCwgMCwgIiVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X3ZzbmRfcGNtX2Zvcm1hdF90b19zdHJpbmcoc2FtcGxlX2Zvcm1hdHNbaV0pKTsKKyAgICB9CisK K291dDoKKworICAgIHJldHVybiBsZW47Cit9CisKK3N0YXRpYyBpbnQgbGlieGxfX3NldF9wYXJh bXNfdnNuZChsaWJ4bF9fZ2MgKmdjLCBjaGFyICpwYXRoLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX3ZzbmRfcGFyYW1zICpwYXJhbXMsIGZsZXhhcnJheV90ICpmcm9u dCkKK3sKKyAgICBjaGFyICpidWZmZXI7CisgICAgaW50IGxlbjsKKyAgICBpbnQgcmM7CisKKyAg ICBpZiAocGFyYW1zLT5zYW1wbGVfcmF0ZXMpIHsKKyAgICAgICAgLyogY2FsY3VsYXRlIHJlcXVp cmVkIHN0cmluZyBzaXplICovCisgICAgICAgIGxlbiA9IGxpYnhsX19yYXRlc190b19zdHJfdnNu ZChOVUxMLCBwYXJhbXMtPnNhbXBsZV9yYXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhcmFtcy0+bnVtX3NhbXBsZV9yYXRlcyk7CisKKyAgICAgICAgaWYgKGxl bikgeworICAgICAgICAgICAgYnVmZmVyID0gbGlieGxfX21hbGxvYyhnYywgbGVuICsgMSk7CisK KyAgICAgICAgICAgIGxpYnhsX19yYXRlc190b19zdHJfdnNuZChidWZmZXIsIHBhcmFtcy0+c2Ft cGxlX3JhdGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy0+ bnVtX3NhbXBsZV9yYXRlcyk7CisgICAgICAgICAgICByYyA9IGZsZXhhcnJheV9hcHBlbmRfcGFp cihmcm9udCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5U RigiJXMiWEVOU05EX0ZJRUxEX1NBTVBMRV9SQVRFUywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoKSwgYnVmZmVyKTsKKyAgICAgICAgICAgIGlm IChyYykgZ290byBvdXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocGFyYW1zLT5zYW1w bGVfZm9ybWF0cykgeworICAgICAgICAvKiBjYWxjdWxhdGUgcmVxdWlyZWQgc3RyaW5nIHNpemUg Ki8KKyAgICAgICAgbGVuID0gbGlieGxfX2Zvcm1hdHNfdG9fc3RyX3ZzbmQoTlVMTCwgcGFyYW1z LT5zYW1wbGVfZm9ybWF0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGFyYW1zLT5udW1fc2FtcGxlX2Zvcm1hdHMpOworCisgICAgICAgIGlmIChsZW4pIHsKKyAg ICAgICAgICAgIGJ1ZmZlciA9IGxpYnhsX19tYWxsb2MoZ2MsIGxlbiArIDEpOworCisgICAgICAg ICAgICBsaWJ4bF9fZm9ybWF0c190b19zdHJfdnNuZChidWZmZXIsIHBhcmFtcy0+c2FtcGxlX2Zv cm1hdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5udW1f c2FtcGxlX2Zvcm1hdHMpOworICAgICAgICAgICAgcmMgPSBmbGV4YXJyYXlfYXBwZW5kX3BhaXIo ZnJvbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYo IiVzIlhFTlNORF9GSUVMRF9TQU1QTEVfRk9STUFUUywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoKSwgYnVmZmVyKTsKKyAgICAgICAgICAgIGlm IChyYykgZ290byBvdXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocGFyYW1zLT5jaGFu bmVsc19taW4pIHsKKyAgICAgICAgcmMgPSBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoZnJvbnQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMiWEVOU05EX0ZJ RUxEX0NIQU5ORUxTX01JTiwgcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdDU1BSSU5URigiJXUiLCBwYXJhbXMtPmNoYW5uZWxzX21pbikpOworICAgICAgICBpZiAo cmMpIGdvdG8gb3V0OworICAgIH0KKworICAgIGlmIChwYXJhbXMtPmNoYW5uZWxzX21heCkgewor ICAgICAgICByYyA9IGZsZXhhcnJheV9hcHBlbmRfcGFpcihmcm9udCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcyJYRU5TTkRfRklFTERfQ0hBTk5FTFNf TUFYLCBwYXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRG KCIldSIsIHBhcmFtcy0+Y2hhbm5lbHNfbWF4KSk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7 CisgICAgfQorCisgICAgaWYgKHBhcmFtcy0+YnVmZmVyX3NpemUpIHsKKyAgICAgICAgcmMgPSBm bGV4YXJyYXlfYXBwZW5kX3BhaXIoZnJvbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdDU1BSSU5URigiJXMiWEVOU05EX0ZJRUxEX0JVRkZFUl9TSVpFLCBwYXRoKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIldSIsIHBhcmFtcy0+ YnVmZmVyX3NpemUpKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICB9CisKKyAgICBy YyA9IDA7CisKK291dDoKKworICAgIHJldHVybiByYzsKK30KKworc3RhdGljIGludCBsaWJ4bF9f c2V0X3N0cmVhbXNfdnNuZChsaWJ4bF9fZ2MgKmdjLCBjaGFyICpwYXRoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF92c25kX3N0cmVhbSAqc3RyZWFtcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9zdHJlYW1zLCBmbGV4YXJyYXlf dCAqZnJvbnQpCit7CisgICAgaW50IGk7CisgICAgaW50IHJjOworCisgICAgZm9yIChpID0gMDsg aSA8IG51bV9zdHJlYW1zOyBpKyspIHsKKyAgICAgICAgcmMgPSBmbGV4YXJyYXlfYXBwZW5kX3Bh aXIoZnJvbnQsCisgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMlZC8iWEVOU05EX0ZJRUxE X1NUUkVBTV9VTklRVUVfSUQsIHBhdGgsIGkpLAorICAgICAgICAgICAgICAgICBzdHJlYW1zW2ld LmlkKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgICAgICBjb25zdCBjaGFyICp0 eXBlID0gbGlieGxfdnNuZF9zdHJlYW1fdHlwZV90b19zdHJpbmcoc3RyZWFtc1tpXS50eXBlKTsK KworICAgICAgICBpZiAodHlwZSkgeworICAgICAgICAgICAgcmMgPSBmbGV4YXJyYXlfYXBwZW5k X3BhaXIoZnJvbnQsCisgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzJWQvIlhFTlNO RF9GSUVMRF9UWVBFLCBwYXRoLCBpKSwKKyAgICAgICAgICAgICAgICAgICAgIChjaGFyICopdHlw ZSk7CisgICAgICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAg cmMgPSBsaWJ4bF9fc2V0X3BhcmFtc192c25kKGdjLCBHQ1NQUklOVEYoIiVzJWQvIiwgcGF0aCwg aSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RyZWFtc1tpXS5wYXJh bXMsIGZyb250KTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICB9CisKKyAgICByYyA9 IDA7CisKK291dDoKKworICAgIHJldHVybiByYzsKK30KKworc3RhdGljIGludCBsaWJ4bF9fc2V0 X3BjbXNfdnNuZChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF92c25kX3BjbSAqcGNtcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9wY21zLCBmbGV4YXJyYXlfdCAqZnJvbnQp Cit7CisgICAgaW50IGk7CisgICAgaW50IHJjOworCisgICAgZm9yIChpID0gMDsgaSA8IG51bV9w Y21zOyBpKyspIHsKKyAgICAgICAgaWYgKHBjbXNbaV0ubmFtZSkgeworICAgICAgICAgICAgcmMg PSBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoZnJvbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVkLyJYRU5TTkRfRklFTERfREVWSUNFX05BTUUsIGkp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNtc1tpXS5uYW1lKTsK KyAgICAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgICAgIH0KKworICAgICAgICBjaGFy ICpwYXRoID0gR0NTUFJJTlRGKCIlZC8iLCBpKTsKKworICAgICAgICByYyA9IGxpYnhsX19zZXRf cGFyYW1zX3ZzbmQoZ2MsIHBhdGgsICZwY21zW2ldLnBhcmFtcywgZnJvbnQpOworICAgICAgICBp ZiAocmMpIGdvdG8gb3V0OworCisgICAgICAgIHJjID0gbGlieGxfX3NldF9zdHJlYW1zX3ZzbmQo Z2MsIHBhdGgsIHBjbXNbaV0uc3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwY21zW2ldLm51bV92c25kX3N0cmVhbXMsIGZyb250KTsKKyAgICAgICAgaWYgKHJj KSBnb3RvIG91dDsKKyAgICB9CisKKyAgICByYyA9IDA7CisKK291dDoKKworICAgIHJldHVybiBy YzsKK30KKworc3RhdGljIGludCBsaWJ4bF9fc2V0X3hlbnN0b3JlX3ZzbmQobGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWJ4bF9kZXZpY2VfdnNuZCAqdnNuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZsZXhhcnJheV90ICpiYWNrLCBmbGV4YXJyYXlfdCAqZnJvbnQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfdCAqcm9fZnJvbnQpCit7CisgICAgaW50 IHJjOworCisgICAgaWYgKHZzbmQtPmxvbmdfbmFtZSkgeworICAgICAgICByYyA9IGZsZXhhcnJh eV9hcHBlbmRfcGFpcihmcm9udCwgWEVOU05EX0ZJRUxEX1ZDQVJEX0xPTkdfTkFNRSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnNuZC0+bG9uZ19uYW1lKTsKKyAgICAgICAg aWYgKHJjKSBnb3RvIG91dDsKKyAgICB9CisKKyAgICBpZiAodnNuZC0+c2hvcnRfbmFtZSkgewor ICAgICAgICByYyA9IGZsZXhhcnJheV9hcHBlbmRfcGFpcihmcm9udCwgWEVOU05EX0ZJRUxEX1ZD QVJEX1NIT1JUX05BTUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZzbmQt PnNob3J0X25hbWUpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIH0KKworICAgIHJj ID0gbGlieGxfX3NldF9wYXJhbXNfdnNuZChnYywgIiIsICZ2c25kLT5wYXJhbXMsIGZyb250KTsK KyAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgcmMgPSBsaWJ4bF9fc2V0X3BjbXNfdnNuZChn YywgdnNuZC0+cGNtcywgdnNuZC0+bnVtX3ZzbmRfcGNtcywgZnJvbnQpOworICAgIGlmIChyYykg Z290byBvdXQ7CisKKyAgICByYyA9IDA7CisKK291dDoKKworICAgIHJldHVybiByYzsKK30KKwor c3RhdGljIExJQlhMX0RFRklORV9VUERBVEVfREVWSUQodnNuZCkKK3N0YXRpYyBMSUJYTF9ERUZJ TkVfREVWSUNFU19BREQodnNuZCkKKworTElCWExfREVGSU5FX0RFVklDRV9BREQodnNuZCkKK0xJ QlhMX0RFRklORV9ERVZJQ0VfUkVNT1ZFKHZzbmQpCisKK0RFRklORV9ERVZJQ0VfVFlQRV9TVFJV Q1QodnNuZCwgVlNORCwKKyAgICAudXBkYXRlX2NvbmZpZyA9IChkZXZpY2VfdXBkYXRlX2NvbmZp Z19mbl90KSBsaWJ4bF9fdXBkYXRlX2NvbmZpZ192c25kLAorICAgIC5mcm9tX3hlbnN0b3JlID0g KGRldmljZV9mcm9tX3hlbnN0b3JlX2ZuX3QpIGxpYnhsX192c25kX2Zyb21feGVuc3RvcmUsCisg ICAgLnNldF94ZW5zdG9yZV9jb25maWcgPSAoZGV2aWNlX3NldF94ZW5zdG9yZV9jb25maWdfZm5f dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zZXRfeGVuc3RvcmVfdnNuZAor KTsKKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtYmFzaWMtb2Zm c2V0OiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwotLSAKMi4xNy4w CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==