From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 41797253B4A; Mon, 24 Feb 2025 09:23:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740388996; cv=none; b=t0EasYbgjN5hOgeW3Xvigg0XVWTX99ZYAYuRYystuuE75WzYNHOOhkFY+r4FOiYR/8I1qwwbPvF8UjlKn9weNZVf1/0NFQbBU/7x3kk6tOhkSL8DV3uRPvhKhEMjZP/z8q1zML7XQNIeAx4HUZThA94OW2zdg8HA35/19Yu43HA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740388996; c=relaxed/simple; bh=efedYaWJsYPxos1GqpSC4vgLqUGlAJ/A5N0xqLLM1yk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AJCTVGe4UnomhBYimTSIecd4eDmx0sTiOTIg/2roj627PDTiHQ0082/cduFzc4Fx0lo5s6qfNUGiFb61I7RC2dNO8kQ5nBJes3ycmbcnNk3mTbiJ9qyHOpjLGAOCaHmf3ObniUF65zczdoFyN/YwMJzdBRvdBSXSL9JkRg51IOk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=DBnoocv+; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="DBnoocv+" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1740388973; x=1740993773; i=ps.report@gmx.net; bh=efedYaWJsYPxos1GqpSC4vgLqUGlAJ/A5N0xqLLM1yk=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=DBnoocv+Yn4yV7g0gUtZbZ9qEwFLRDZ//y2YHEItu9REBwxBn6/ETDa1cUeKkI6G mC941BGXPoCbAjkvgNOyfHQVFnT678ldb2EKxO+d2O6JCzdzbCRJw/f+R+rlCBreu mVhTnmFST0wj/ILGHQ6GmSY2+vxo1lgoXtxW8WLJY99YihFfq2GDcgkri3UwgQ03W OIZpYi638h/X1R/RnIp/oC8iYAyyLE5kCCeOTglZxFRZw0RXRjKCOAB1Alu1Kn9KZ 5QHslruOx+iH+r3gjwonn91dNVnVOQtYBOucMKpnzLUGIpYtG/FB0krrTxxAqDb28 h0LQYgbmFunJ1jTDiA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.227]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MkHMZ-1t2fSO2FZ3-00nQSp; Mon, 24 Feb 2025 10:22:53 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Peter Seiderer , Thomas Gleixner , Artem Chernyshev , Frederic Weisbecker , Nam Cao Subject: [PATCH net-next v7 8/8] selftest: net: add proc_net_pktgen Date: Mon, 24 Feb 2025 10:22:42 +0100 Message-ID: <20250224092242.13192-9-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250224092242.13192-1-ps.report@gmx.net> References: <20250224092242.13192-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:ZVc3Z5sEx3irGRMPYD+xVDGSVq9+x4gfJwbVwPHyeJZn704oOM7 Dujx71LAusDHYQDWws58bOOP8ej7Q5F9BaZ8pnj2Nk4KhVok7+Oags00fpNlG1de2Znc/ZQ d7PChVq8LThqX5tGogLPUXe3aS1Q5fveER0oRaQuU2CYAAh1FUvnr94dDLMOoFvqLizHPHC /DBQsKmouC3Ev9Ftq0Cng== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:x1AFqjkpkwA=;5v2QUvUUwTIiXHhl6WMNBDyBzml S9xEa5SkM4Rx+7T8MGcQvwsQTQNVNOqv9yeeR7nwr0q9i2A3mP7V9o1mBggGAsUno8n29fp5s inzWnQocLi4hyz4LmV9hM2NgWcTnE2sMJftzUpWV17Q7M+pYJlfCKTuQ8QGjTMTiCVA2nTQed ws7P7N5fG0jxWTwlRzG03touEdjNSkJ2iy6ETgETvJ2y7UZGyLxceo347MSpn3yZIujaAsjPo 61GDYg6Gj097A+PJHZTlloY4/wUI45MyWpNGnFsr91L+oLf1svS9hpaSvAHPdpdPzV5VDnW83 VdmE6kX2f8I/39pavA0UCBSJHGKiD6uOp9+iqIJq5W7dgVmszbQXHiKogezxE014Kx53xVUXy Lre+qSUqL5X/OGNnXhc2DsmyNP2pveSBkgHVWpVJlFpsMJueTzbcL/vAQopgWerOcTdA1u4D9 XC0lCpwMb7lRQ/TmIqU+ATCR83fver4AKEhc2XoLbYqGUPI0lKph0vBw1xCy+B12QUweDnwe0 7EPeO/NkhjojmzowPq5Hs5RNdYZSY61ETRSg1ytGAny9BBqY7btKD5rm4VqQol9CLi3e+GiU1 2yv/96NVTGyX9IprdizobsS4XJa69qXIwa7PaxfRnvu1Bagx51gsbCaf6tsBYzykJNcThaA4A 2bezPCkgKnKS1P0orUyA6+VAY6DHA8lNx0Y2gfqU9g1QPLBEZpo356i0wOyEm+bQz7zxy2fQO S7yhrSfb8O4qru1do+GNtBKojSrkUvRXrFRNFwVZg5VkPElEWUtyyQSko605h9vCPbsFeqDss xnGwL87EngL6wlJlLOHc1dsEHeKZM9zRHrEeKbd5Cbd/WImm3HEjJwjNPPbe+4IV6HJr8Kp6X +yw+D4IjH9aGzRRLy+JnngC3ADwuY5m2vG5ygIqwGTrfMSk4zr3MVPPPJR2VfORYm7z+5+7rC CSI0qt3YzBCsjbX+QI34Zd4oVn9NqdYyvEaqwDSXlGF3gKJFfY/nqnJY7sGOT5SqWdiUQd5n0 xMhga+UH+mgEHWxbmZDwzJfbFPI7quQ+w3wID2eeYEPKWaon/idJvVvU6DMpobWgCIfT05Zmh Gp4YdC/rPkaP5w0euRwZlOG4nqOKpsUEJRFQoLLfR94e2MiMa2QOuip16ewt3BwztyaJraooP PTwH2xUL4G2c4IuXhKJdN0A/kjvpvPiv6/y1cGOiDjXh1k5YPRb5eSAghAxB2HyuZry9FiDkH MTZgOmR6gjgr/wIFe5QmDXOyiubGMBCtzRrt3uW73W/4EeG5ak7Ays+uqopT16SBQFobUCU33 omzn5CWJFExuvAsKbLxMScVXe19+D3Cp+NtETJs/qGGrbdJjnynT2WgAJeTMHe6f+UalthnzP wKMbBmPePpdKk0GNvptxRZ23Y76Ck5i4H2HtLjUvp3ip1zqXWowE/4V5K5 QWRkIHNvbWUgdGVzdCBmb3IgL3Byb2MvbmV0L3BrdGdlbi8uLi4gaW50ZXJmYWNlLgoKLSBlbmFi bGUgJ0NPTkZJR19ORVRfUEtUR0VOPW0nIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9j b25maWcKClNpZ25lZC1vZmYtYnk6IFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4K LS0tCkNoYW5nZXMgdjYgLT4gdjcKICAtIHJlYmFzZWQgb24gYWN0dWFsIG5ldC1uZXh0L21haW4K ICAtIGZpeGVkIGNvbmZsaWN0IGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9jb25maWcK CkNoYW5nZXMgdjUgLT4gdjYKICAtIG5vIGNoYW5nZXMKCkNoYW5nZXMgdjQgLT4gdjUKICAtIHNw bGl0IHVwIHBhdGNoc2V0IGludG8gcGFydCBpL2lpIChzdWdnZXN0ZWQgYnkgU2ltb24gSG9ybWFu KQogIC0gYWRkYXB0IHRvIGRyb3BwZWQgcGF0Y2ggJ25ldDogcGt0Z2VuOiBoZXgzMl9hcmcvbnVt X2FyZyBlcnJvciBvdXQgaW4gY2FzZQogICAgbm8gY2hhcmFjdGVycyBhcmUgYXZhaWxhYmxlJywg ZW1wdHkgaGV4L251bSBhcmcgaXMgbm93IGltcGxpY2l0IGFzc3VtZWQgYXMKICAgIHplcm8gdmFs dWUgKGluc3RlYWQgb2YgZmFpbHVyZSkKCkNoYW5nZXMgdjMgLT4gdjQ6CiAgLSBubyBjaGFuZ2Vz CgpDaGFuZ2VzIHYyIC0+IHYzOgogIC0gZml4IHR5cG8gaW4gY2hhbmdlIGRlc2NyaXB0aW9uICgn djEgLT4gdjEnIGFuZCB0eW9wKQogIC0gcmVuYW1lIHNvbWUgdmFycyB0byBiZXR0ZXIgbWF0Y2gg dXNhZ2UKICAgIGFkZF9sb29wYmFja18wIC0+IHRocl9jbWRfYWRkX2xvb3BiYWNrXzAKICAgIHJt X2xvb3BiYWNrXzAgLT4gdGhyX2NtZF9ybV9sb29wYmFja18wCiAgICB3cm9uZ19jdHJsX2NtZCAt PiB3cm9uZ190aHJfY21kCiAgICBsZWdhY3lfY3RybF9jbWQgLT4gbGVnYWN5X3Rocl9jbWQKICAg IGN0cmxfZmQgLT4gdGhyX2ZkCiAgLSBhZGQgY3RybCBpbnRlcmZhY2UgdGVzdHMKCkNoYW5nZXMg djEgLT4gdjI6CiAgLSBmaXggdHlvcCBub3QgdnMuIG5vZCAoc3VnZ2VzdGVkIGJ5IEpha3ViIEtp Y2luc2tpKQogIC0gZml4IG1pc2FsaWduZWQgbGluZSAoc3VnZ2VzdGVkIGJ5IEpha3ViIEtpY2lu c2tpKQogIC0gZW5hYmxlIGZvbWVybHkgY29tbWVudGVkIG91dCBDT05GSUdfWEZSTSBkZXBlbmRl bnQgdGVzdCAoY29tbWFuZCBzcGkpLAogICAgYXMgQ09ORklHX1hGUk0gaXMgZW5hYmxlZCB2aWEg dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZwogICAgQ09ORklHX1hGUk1fSU5URVJG QUNFL0NPTkZJR19YRlJNX1VTRVIgKHN1Z2dlc3RleCBieSBKYWt1YiBLaWNpbnNraSkKICAtIGFk ZCBDT05GSUdfTkVUX1BLVEdFTj1tIHRvIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9jb25m aWcKICAgIChzdWdnZXN0ZWQgYnkgSmFrdWIgS2ljaW5za2kpCiAgLSBhZGQgbW9kcHJvYmUgcGt0 Z2VuIHRvIEZJWFRVUkVfU0VUVVAoKSAoc3VnZ2VzdGVkIGJ5IEpha3ViIEtpY2luc2tpKQogIC0g Zml4IHNvbWUgY2hlY2twYXRjaCB3YXJuaW5ncyAoTWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0ZXIg ZGVjbGFyYXRpb25zKQogIC0gc2hyaW5rIGxpbmUgbGVuZ3RoIGJ5IHJlLW5hbWluZyBzb21lIHZh cmlhYmxlcyAoY29tbWFuZCAtPiBjbWQsCiAgICBkZXZpY2UgLT4gZGV2KQogIC0gYWRkICdyYXRl IDAnIHRlc3RjYXNlCiAgLSBhZGQgJ3JhdGVwIDAnIHRlc3RjYXNlCi0tLQogdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlICAgICAgICAgIHwgICAxICsKIHRvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL25ldC9jb25maWcgICAgICAgICAgICB8ICAgMSArCiB0b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMgfCA2NDYgKysrKysrKysrKysrKysrKysrCiAz IGZpbGVzIGNoYW5nZWQsIDY0OCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2NfbmV0X3BrdGdlbi5jCgpkaWZmIC0tZ2l0IGEv dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvbmV0L01ha2VmaWxlCmluZGV4IGFlYjk2YzA4NTYxNC4uODQxYzRmZGEyYzIyIDEwMDY0 NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvTWFrZWZpbGUKKysrIGIvdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlCkBAIC0xMDQsNiArMTA0LDcgQEAgVEVTVF9Q Uk9HUyArPSB2bGFuX2JyaWRnZV9iaW5kaW5nLnNoCiBURVNUX1BST0dTICs9IGJwZl9vZmZsb2Fk LnB5CiBURVNUX1BST0dTICs9IGlwdjZfcm91dGVfdXBkYXRlX3NvZnRfbG9ja3VwLnNoCiBURVNU X1BST0dTICs9IGJ1c3lfcG9sbF90ZXN0LnNoCitURVNUX0dFTl9QUk9HUyArPSBwcm9jX25ldF9w a3RnZW4KIAogIyBZTkwgZmlsZXMsIG11c3QgYmUgYmVmb3JlICJpbmNsdWRlIC4ubGliLm1rIgog WU5MX0dFTl9GSUxFUyA6PSBidXN5X3BvbGxlciBuZXRsaW5rLWR1bXBzCmRpZmYgLS1naXQgYS90 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvbmV0L2NvbmZpZwppbmRleCBhYjU1MjcwNjY5ZWMuLmE4NmYzZTc1MmNlMiAxMDA2NDQKLS0t IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZworKysgYi90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9uZXQvY29uZmlnCkBAIC0xMTIsMyArMTEyLDQgQEAgQ09ORklHX0NBTj1tCiBD T05GSUdfQ0FOX0RFVj1tCiBDT05GSUdfQ0FOX1ZYQ0FOPW0KIENPTkZJR19ORVRLSVQ9eQorQ09O RklHX05FVF9QS1RHRU49bQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0 L3Byb2NfbmV0X3BrdGdlbi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2NfbmV0 X3BrdGdlbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTE3ZjQ1 YmU0NzY5Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3By b2NfbmV0X3BrdGdlbi5jCkBAIC0wLDAgKzEsNjQ2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMAorLyoKKyAqIHByb2NfbmV0X3BrdGdlbjoga3NlbGZ0ZXN0IGZvciAvcHJv Yy9uZXQvcGt0Z2VuIGludGVyZmFjZQorICoKKyAqIENvcHlyaWdodCAoYykgMjAyNSBQZXRlciBT ZWlkZXJlciA8cHMucmVwb3J0QGdteC5uZXQ+CisgKgorICovCisjaW5jbHVkZSA8ZXJybm8uaD4K KyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0 ZC5oPgorCisjaW5jbHVkZSAiLi4va3NlbGZ0ZXN0X2hhcm5lc3MuaCIKKworc3RhdGljIGNvbnN0 IGNoYXIgY3RybF9jbWRfc3RvcFtdID0gInN0b3AiOworc3RhdGljIGNvbnN0IGNoYXIgY3RybF9j bWRfc3RhcnRbXSA9ICJzdGFydCI7CitzdGF0aWMgY29uc3QgY2hhciBjdHJsX2NtZF9yZXNldFtd ID0gInJlc2V0IjsKKworc3RhdGljIGNvbnN0IGNoYXIgd3JvbmdfY3RybF9jbWRbXSA9ICIwMTIz NDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkw MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3 ODkwMTIzNDU2Nzg5IjsKKworc3RhdGljIGNvbnN0IGNoYXIgdGhyX2NtZF9hZGRfbG9vcGJhY2tf MFtdID0gImFkZF9kZXZpY2UgbG9AMCI7CitzdGF0aWMgY29uc3QgY2hhciB0aHJfY21kX3JtX2xv b3BiYWNrXzBbXSA9ICJyZW1fZGV2aWNlX2FsbCI7CisKK3N0YXRpYyBjb25zdCBjaGFyIHdyb25n X3Rocl9jbWRbXSA9ICJmb3JzdXJlYXdyb25nY29tbWFuZCI7CitzdGF0aWMgY29uc3QgY2hhciBs ZWdhY3lfdGhyX2NtZFtdID0gIm1heF9iZWZvcmVfc29mdGlycSI7CisKK3N0YXRpYyBjb25zdCBj aGFyIHdyb25nX2Rldl9jbWRbXSA9ICJmb3JzdXJld3Jvbmdjb21tYW5kIjsKK3N0YXRpYyBjb25z dCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzBbXSA9ICJtaW5fcGt0X3NpemUiOworc3RhdGlj IGNvbnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0X3NpemVfMVtdID0gIm1pbl9wa3Rfc2l6ZSAiOwor c3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0X3NpemVfMltdID0gIm1pbl9wa3Rfc2l6 ZSAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzNbXSA9ICJtaW5f cGt0X3NpemUgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV80W10g PSAibWluX3BrdF9zaXplIDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rf c2l6ZV81W10gPSAibWluX3BrdF9zaXplPTEwMDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF9taW5fcGt0X3NpemVfNltdID0gIm1pbl9wa3Rfc2l6ZSA9MjAwMiI7CitzdGF0aWMgY29uc3Qg Y2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV83W10gPSAibWluX3BrdF9zaXplPSAzMDAzIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzhbXSA9ICJtaW5fcGt0X3NpemUg PSA0MDA0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWF4X3BrdF9zaXplXzBbXSA9ICJt YXhfcGt0X3NpemUgMjAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfcGt0X3NpemVfMFtd ID0gInBrdF9zaXplIDMwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2ltaXhfd2VpZ2h0 c18wW10gPSAiaW1peF93ZWlnaHRzIDAsNyA1NzYsNCAxNTAwLDEiOworc3RhdGljIGNvbnN0IGNo YXIgZGV2X2NtZF9pbWl4X3dlaWdodHNfMVtdID0gImltaXhfd2VpZ2h0cyAxMDEsMSAxMDIsMiAx MDMsMyAxMDQsNCAxMDUsNSAxMDYsNiAxMDcsNyAxMDgsOCAxMDksOSAxMTAsMTAgMTExLDExIDEx MiwxMiAxMTMsMTMgMTE0LDE0IDExNSwxNSAxMTYsMTYgMTE3LDE3IDExOCwxOCAxMTksMTkgMTIw LDIwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfaW1peF93ZWlnaHRzXzJbXSA9ICJpbWl4 X3dlaWdodHMgMTAwLDEgMTAyLDIgMTAzLDMgMTA0LDQgMTA1LDUgMTA2LDYgMTA3LDcgMTA4LDgg MTA5LDkgMTEwLDEwIDExMSwxMSAxMTIsMTIgMTEzLDEzIDExNCwxNCAxMTUsMTUgMTE2LDE2IDEx NywxNyAxMTgsMTggMTE5LDE5IDEyMCwyMCAxMjEsMjEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2 X2NtZF9kZWJ1Z18wW10gPSAiZGVidWcgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2Rl YnVnXzFbXSA9ICJkZWJ1ZyAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZnJhZ3NfMFtd ID0gImZyYWdzIDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RlbGF5XzBbXSA9ICJk ZWxheSAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kZWxheV8xW10gPSAiZGVsYXkg MjE0NzQ4MzY0NyI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3JhdGVfMFtdID0gInJhdGUg MCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3JhdGVfMVtdID0gInJhdGUgMTAwIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfcmF0ZXBfMFtdID0gInJhdGVwIDAiOworc3RhdGljIGNv bnN0IGNoYXIgZGV2X2NtZF9yYXRlcF8xW10gPSAicmF0ZXAgMjAwIjsKK3N0YXRpYyBjb25zdCBj aGFyIGRldl9jbWRfdWRwX3NyY19taW5fMFtdID0gInVkcF9zcmNfbWluIDEiOworc3RhdGljIGNv bnN0IGNoYXIgZGV2X2NtZF91ZHBfZHN0X21pbl8wW10gPSAidWRwX2RzdF9taW4gMiI7CitzdGF0 aWMgY29uc3QgY2hhciBkZXZfY21kX3VkcF9zcmNfbWF4XzBbXSA9ICJ1ZHBfc3JjX21heCAzIjsK K3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdWRwX2RzdF9tYXhfMFtdID0gInVkcF9kc3RfbWF4 IDQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9jbG9uZV9za2JfMFtdID0gImNsb25lX3Nr YiAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfY2xvbmVfc2tiXzFbXSA9ICJjbG9uZV9z a2IgMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2NvdW50XzBbXSA9ICJjb3VudCAxMDAi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zcmNfbWFjX2NvdW50XzBbXSA9ICJzcmNfbWFj X2NvdW50IDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdF9tYWNfY291bnRfMFtd ID0gImRzdF9tYWNfY291bnQgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfYnVyc3Rf MFtdID0gImJ1cnN0IDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9ub2RlXzBbXSA9ICJu b2RlIDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3htaXRfbW9kZV8wW10gPSAieG1p dF9tb2RlIHN0YXJ0X3htaXQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF94bWl0X21vZGVf MVtdID0gInhtaXRfbW9kZSBuZXRpZl9yZWNlaXZlIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9j bWRfeG1pdF9tb2RlXzJbXSA9ICJ4bWl0X21vZGUgcXVldWVfeG1pdCI7CitzdGF0aWMgY29uc3Qg Y2hhciBkZXZfY21kX3htaXRfbW9kZV8zW10gPSAieG1pdF9tb2RlIG5vbnNlbnNlIjsKK3N0YXRp YyBjb25zdCBjaGFyIGRldl9jbWRfZmxhZ18wW10gPSAiZmxhZyBVRFBDU1VNIjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfZmxhZ18xW10gPSAiZmxhZyAhVURQQ1NVTSI7CitzdGF0aWMgY29u c3QgY2hhciBkZXZfY21kX2ZsYWdfMltdID0gImZsYWcgbm9uc2Vuc2UiOworc3RhdGljIGNvbnN0 IGNoYXIgZGV2X2NtZF9kc3RfbWluXzBbXSA9ICJkc3RfbWluIDEwMS4xMDIuMTAzLjEwNCI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdF8wW10gPSAiZHN0IDEwMS4xMDIuMTAzLjEwNCI7 CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdF9tYXhfMFtdID0gImRzdF9tYXggMjAxLjIw Mi4yMDMuMjA0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZHN0Nl8wW10gPSAiZHN0NiAy MDAxOmRiMzg6MTIzNDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDAiOworc3RhdGljIGNvbnN0IGNo YXIgZGV2X2NtZF9kc3Q2X21pbl8wW10gPSAiZHN0Nl9taW4gMjAwMTpkYjg6MTIzNDowMDAwOjAw MDA6MDAwMDowMDAwOjAwMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kc3Q2X21heF8w W10gPSAiZHN0Nl9tYXggMjAwMTpkYjg6MTIzNDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDAiOwor c3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zcmM2XzBbXSA9ICJzcmM2IDIwMDE6ZGIzODoxMjM0 OjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3Ny Y19taW5fMFtdID0gInNyY19taW4gMTAxLjEwMi4xMDMuMTA0IjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfc3JjX21heF8wW10gPSAic3JjX21heCAyMDEuMjAyLjIwMy4yMDQiOworc3RhdGlj IGNvbnN0IGNoYXIgZGV2X2NtZF9kc3RfbWFjXzBbXSA9ICJkc3RfbWFjIDAxOjAyOjAzOjA0OjA1 OjA2IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3JjX21hY18wW10gPSAic3JjX21hYyAx MToxMjoxMzoxNDoxNToxNiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2NsZWFyX2NvdW50 ZXJzXzBbXSA9ICJjbGVhcl9jb3VudGVycyI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2Zs b3dzXzBbXSA9ICJmbG93cyAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zcGlfMFtd ID0gInNwaSAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9mbG93bGVuXzBbXSA9ICJm bG93bGVuIDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3F1ZXVlX21hcF9taW5fMFtd ID0gInF1ZXVlX21hcF9taW4gMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3F1ZXVlX21h cF9tYXhfMFtdID0gInF1ZXVlX21hcF9tYXggMiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21k X21wbHNfMFtdID0gIm1wbHMgMDAwMDAwMDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9t cGxzXzFbXSA9ICJtcGxzIDAwMDAwMDAxLDAwMDAwMGYyIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRl dl9jbWRfbXBsc18yW10gPSAibXBscyAwMDAwMGYwMCwwMDAwMGYwMSwwMDAwMGYwMiwwMDAwMGYw MywwMDAwMGYwNCwwMDAwMGYwNSwwMDAwMGYwNiwwMDAwMGYwNywwMDAwMGYwOCwwMDAwMGYwOSww MDAwMGYwYSwwMDAwMGYwYiwwMDAwMGYwYywwMDAwMGYwZCwwMDAwMGYwZSwwMDAwMGYwZiI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21wbHNfM1tdID0gIm1wbHMgMDAwMDBmMDAsMDAwMDBm MDEsMDAwMDBmMDIsMDAwMDBmMDMsMDAwMDBmMDQsMDAwMDBmMDUsMDAwMDBmMDYsMDAwMDBmMDcs MDAwMDBmMDgsMDAwMDBmMDksMDAwMDBmMGEsMDAwMDBmMGIsMDAwMDBmMGMsMDAwMDBmMGQsMDAw MDBmMGUsMDAwMDBmMGYsMDAwMDBmMTAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF92bGFu X2lkXzBbXSA9ICJ2bGFuX2lkIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF92bGFuX3Bf MFtdID0gInZsYW5fcCAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdmxhbl9jZmlfMFtd ID0gInZsYW5fY2ZpIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF92bGFuX2lkXzFbXSA9 ICJ2bGFuX2lkIDQwOTYiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zdmxhbl9pZF8wW10g PSAic3ZsYW5faWQgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3N2bGFuX3BfMFtdID0g InN2bGFuX3AgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3N2bGFuX2NmaV8wW10gPSAi c3ZsYW5fY2ZpIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zdmxhbl9pZF8xW10gPSAi c3ZsYW5faWQgNDA5NiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3Rvc18wW10gPSAidG9z IDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF90b3NfMVtdID0gInRvcyAwZiI7CitzdGF0 aWMgY29uc3QgY2hhciBkZXZfY21kX3Rvc18yW10gPSAidG9zIDBmZiI7CitzdGF0aWMgY29uc3Qg Y2hhciBkZXZfY21kX3RyYWZmaWNfY2xhc3NfMFtdID0gInRyYWZmaWNfY2xhc3MgZjAiOworc3Rh dGljIGNvbnN0IGNoYXIgZGV2X2NtZF9za2JfcHJpb3JpdHlfMFtdID0gInNrYl9wcmlvcml0eSA5 OTkiOworCitGSVhUVVJFKHByb2NfbmV0X3BrdGdlbikgeworCWludCBjdHJsX2ZkOworCWludCB0 aHJfZmQ7CisJaW50IGRldl9mZDsKK307CisKK0ZJWFRVUkVfU0VUVVAocHJvY19uZXRfcGt0Z2Vu KSB7CisJaW50IHI7CisJc3NpemVfdCBsZW47CisKKwlyID0gc3lzdGVtKCJtb2Rwcm9iZSBwa3Rn ZW4iKTsKKwlBU1NFUlRfRVEociwgMCkgVEhfTE9HKCJDT05GSUdfTkVUX1BLVEdFTiBub3QgZW5h YmxlZCwgbW9kdWxlIHBrdGdlbiBub3QgbG9hZGVkPyIpOworCisJc2VsZi0+Y3RybF9mZCA9IG9w ZW4oIi9wcm9jL25ldC9wa3RnZW4vcGdjdHJsIiwgT19SRFdSKTsKKwlBU1NFUlRfR0Uoc2VsZi0+ Y3RybF9mZCwgMCkgVEhfTE9HKCJDT05GSUdfTkVUX1BLVEdFTiBub3QgZW5hYmxlZCwgbW9kdWxl IHBrdGdlbiBub3QgbG9hZGVkPyIpOworCisJc2VsZi0+dGhyX2ZkID0gb3BlbigiL3Byb2MvbmV0 L3BrdGdlbi9rcGt0Z2VuZF8wIiwgT19SRFdSKTsKKwlBU1NFUlRfR0Uoc2VsZi0+dGhyX2ZkLCAw KSBUSF9MT0coIkNPTkZJR19ORVRfUEtUR0VOIG5vdCBlbmFibGVkLCBtb2R1bGUgcGt0Z2VuIG5v dCBsb2FkZWQ/Iik7CisKKwlsZW4gPSB3cml0ZShzZWxmLT50aHJfZmQsIHRocl9jbWRfYWRkX2xv b3BiYWNrXzAsIHNpemVvZih0aHJfY21kX2FkZF9sb29wYmFja18wKSk7CisJQVNTRVJUX0VRKGxl biwgc2l6ZW9mKHRocl9jbWRfYWRkX2xvb3BiYWNrXzApKSBUSF9MT0coImRldmljZSBsb0AwIGFs cmVhZHkgcmVnaXN0ZXJlZD8iKTsKKworCXNlbGYtPmRldl9mZCA9IG9wZW4oIi9wcm9jL25ldC9w a3RnZW4vbG9AMCIsIE9fUkRXUik7CisJQVNTRVJUX0dFKHNlbGYtPmRldl9mZCwgMCkgVEhfTE9H KCJkZXZpY2UgZW50cnkgZm9yIGxvQDAgbWlzc2luZz8iKTsKK30KKworRklYVFVSRV9URUFSRE9X Tihwcm9jX25ldF9wa3RnZW4pIHsKKwlpbnQgcmV0OworCXNzaXplX3QgbGVuOworCisJcmV0ID0g Y2xvc2Uoc2VsZi0+ZGV2X2ZkKTsKKwlFWFBFQ1RfRVEocmV0LCAwKTsKKworCWxlbiA9IHdyaXRl KHNlbGYtPnRocl9mZCwgdGhyX2NtZF9ybV9sb29wYmFja18wLCBzaXplb2YodGhyX2NtZF9ybV9s b29wYmFja18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKHRocl9jbWRfcm1fbG9vcGJhY2tf MCkpOworCisJcmV0ID0gY2xvc2Uoc2VsZi0+dGhyX2ZkKTsKKwlFWFBFQ1RfRVEocmV0LCAwKTsK KworCXJldCA9IGNsb3NlKHNlbGYtPmN0cmxfZmQpOworCUVYUEVDVF9FUShyZXQsIDApOworfQor CitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCB3cm9uZ19jdHJsX2NtZCkgeworCWZvciAoaW50IGkg PSAwOyBpIDw9IHNpemVvZih3cm9uZ19jdHJsX2NtZCk7IGkrKykgeworCQlzc2l6ZV90IGxlbjsK KworCQlsZW4gPSB3cml0ZShzZWxmLT5jdHJsX2ZkLCB3cm9uZ19jdHJsX2NtZCwgaSk7CisJCUVY UEVDVF9FUShsZW4sIC0xKTsKKwkJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwpOworCX0KK30KKwor VEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgY3RybF9jbWQpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxl biA9IHdyaXRlKHNlbGYtPmN0cmxfZmQsIGN0cmxfY21kX3N0b3AsIHNpemVvZihjdHJsX2NtZF9z dG9wKSk7CisJRVhQRUNUX0VRKGxlbiwJc2l6ZW9mKGN0cmxfY21kX3N0b3ApKTsKKworCWxlbiA9 IHdyaXRlKHNlbGYtPmN0cmxfZmQsIGN0cmxfY21kX3N0b3AsIHNpemVvZihjdHJsX2NtZF9zdG9w KSAtIDEpOworCUVYUEVDVF9FUShsZW4sCXNpemVvZihjdHJsX2NtZF9zdG9wKSAtIDEpOworCisJ bGVuID0gd3JpdGUoc2VsZi0+Y3RybF9mZCwgY3RybF9jbWRfc3RhcnQsIHNpemVvZihjdHJsX2Nt ZF9zdGFydCkpOworCUVYUEVDVF9FUShsZW4sCXNpemVvZihjdHJsX2NtZF9zdGFydCkpOworCisJ bGVuID0gd3JpdGUoc2VsZi0+Y3RybF9mZCwgY3RybF9jbWRfc3RhcnQsIHNpemVvZihjdHJsX2Nt ZF9zdGFydCkgLSAxKTsKKwlFWFBFQ1RfRVEobGVuLAlzaXplb2YoY3RybF9jbWRfc3RhcnQpIC0g MSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5jdHJsX2ZkLCBjdHJsX2NtZF9yZXNldCwgc2l6ZW9m KGN0cmxfY21kX3Jlc2V0KSk7CisJRVhQRUNUX0VRKGxlbiwJc2l6ZW9mKGN0cmxfY21kX3Jlc2V0 KSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5jdHJsX2ZkLCBjdHJsX2NtZF9yZXNldCwgc2l6ZW9m KGN0cmxfY21kX3Jlc2V0KSAtIDEpOworCUVYUEVDVF9FUShsZW4sCXNpemVvZihjdHJsX2NtZF9y ZXNldCkgLSAxKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgd3JvbmdfdGhyX2NtZCkg eworCWZvciAoaW50IGkgPSAwOyBpIDw9IHNpemVvZih3cm9uZ190aHJfY21kKTsgaSsrKSB7CisJ CXNzaXplX3QgbGVuOworCisJCWxlbiA9IHdyaXRlKHNlbGYtPnRocl9mZCwgd3JvbmdfdGhyX2Nt ZCwgaSk7CisJCUVYUEVDVF9FUShsZW4sIC0xKTsKKwkJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwp OworCX0KK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgbGVnYWN5X3Rocl9jbWQpIHsKKwlm b3IgKGludCBpID0gMDsgaSA8PSBzaXplb2YobGVnYWN5X3Rocl9jbWQpOyBpKyspIHsKKwkJc3Np emVfdCBsZW47CisKKwkJbGVuID0gd3JpdGUoc2VsZi0+dGhyX2ZkLCBsZWdhY3lfdGhyX2NtZCwg aSk7CisJCWlmIChpIDwgKHNpemVvZihsZWdhY3lfdGhyX2NtZCkgLSAxKSkgeworCQkJLy8gaW5j b21wbGV0ZSBjb21tYW5kIHN0cmluZworCQkJRVhQRUNUX0VRKGxlbiwgLTEpOworCQkJRVhQRUNU X0VRKGVycm5vLCBFSU5WQUwpOworCQl9IGVsc2UgeworCQkJLy8gY29tcGxldGUgY29tbWFuZCBz dHJpbmcgd2l0aG91dC93aXRoIHRyYWlsaW5nICdcMCcKKwkJCUVYUEVDVF9FUShsZW4sIGkpOwor CQl9CisJfQorfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCB3cm9uZ19kZXZfY21kKSB7CisJ Zm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZW9mKHdyb25nX2Rldl9jbWQpOyBpKyspIHsKKwkJc3Np emVfdCBsZW47CisKKwkJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCB3cm9uZ19kZXZfY21kLCBp KTsKKwkJRVhQRUNUX0VRKGxlbiwgLTEpOworCQlFWFBFQ1RfRVEoZXJybm8sIEVJTlZBTCk7CisJ fQorfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX21pbl9wa3Rfc2l6ZSkgewor CXNzaXplX3QgbGVuOworCisJLy8gd2l0aCB0cmFpbGluZyAnXDAnCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8wLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0 X3NpemVfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8w KSk7CisKKwkvLyB3aXRob3V0IHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZf ZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzAsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8w KSAtIDEpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8wKSAt IDEpOworCisJLy8gd2l0aCB0cmFpbGluZyAnXDAnCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8xLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfMSkp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8xKSk7CisKKwkv LyB3aXRob3V0IHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfbWluX3BrdF9zaXplXzEsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8xKSAtIDEpOwor CUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8xKSAtIDEpOworCisJ Ly8gd2l0aCB0cmFpbGluZyAnXDAnCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X21pbl9wa3Rfc2l6ZV8yLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfMikpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSk7CisKKwkvLyB3aXRob3V0 IHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3Br dF9zaXplXzIsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSAtIDEpOworCUVYUEVDVF9F UShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSAtIDEpOworCisJbGVuID0gd3Jp dGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8zLCBzaXplb2YoZGV2X2NtZF9t aW5fcGt0X3NpemVfMykpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rf c2l6ZV8zKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9z aXplXzQsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV80KSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzQpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF9taW5fcGt0X3NpemVfNSwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXpl XzUpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfNSkpOwor CisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV82LCBzaXpl b2YoZGV2X2NtZF9taW5fcGt0X3NpemVfNikpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZf Y21kX21pbl9wa3Rfc2l6ZV82KSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfbWluX3BrdF9zaXplXzcsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV83KSk7CisJRVhQ RUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzcpKTsKKworCWxlbiA9IHdy aXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0X3NpemVfOCwgc2l6ZW9mKGRldl9jbWRf bWluX3BrdF9zaXplXzgpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0 X3NpemVfOCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX21heF9wa3Rf c2l6ZSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZf Y21kX21heF9wa3Rfc2l6ZV8wLCBzaXplb2YoZGV2X2NtZF9tYXhfcGt0X3NpemVfMCkpOworCUVY UEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21heF9wa3Rfc2l6ZV8wKSk7Cit9CisKK1RFU1Rf Rihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcGt0X3NpemUpIHsKKwlzc2l6ZV90IGxlbjsKKwor CWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9wa3Rfc2l6ZV8wLCBzaXplb2YoZGV2 X2NtZF9wa3Rfc2l6ZV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcGt0X3Np emVfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2ltaXhfd2VpZ2h0 cykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X2ltaXhfd2VpZ2h0c18wLCBzaXplb2YoZGV2X2NtZF9pbWl4X3dlaWdodHNfMCkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX2ltaXhfd2VpZ2h0c18wKSk7CisKKwlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfaW1peF93ZWlnaHRzXzEsIHNpemVvZihkZXZfY21kX2lt aXhfd2VpZ2h0c18xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfaW1peF93ZWln aHRzXzEpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9pbWl4X3dlaWdo dHNfMiwgc2l6ZW9mKGRldl9jbWRfaW1peF93ZWlnaHRzXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCAt MSk7CisJRVhQRUNUX0VRKGVycm5vLCBFMkJJRyk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3Rn ZW4sIGRldl9jbWRfZGVidWcpIHsKKwlzc2l6ZV90IGxlbjsKKworCS8vIGRlYnVnIG9uCisJbGVu ID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RlYnVnXzAsIHNpemVvZihkZXZfY21kX2Rl YnVnXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kZWJ1Z18wKSk7CisKKwkv LyBkZWJ1ZyBvZmYKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZGVidWdfMSwg c2l6ZW9mKGRldl9jbWRfZGVidWdfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X2RlYnVnXzEpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9mcmFncykg eworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2Zy YWdzXzAsIHNpemVvZihkZXZfY21kX2ZyYWdzXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2Yo ZGV2X2NtZF9mcmFnc18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRf ZGVsYXkpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2 X2NtZF9kZWxheV8wLCBzaXplb2YoZGV2X2NtZF9kZWxheV8wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfZGVsYXlfMCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBk ZXZfY21kX2RlbGF5XzEsIHNpemVvZihkZXZfY21kX2RlbGF5XzEpKTsKKwlFWFBFQ1RfRVEobGVu LCBzaXplb2YoZGV2X2NtZF9kZWxheV8xKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4s IGRldl9jbWRfcmF0ZSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2 X2ZkLCBkZXZfY21kX3JhdGVfMCwgc2l6ZW9mKGRldl9jbWRfcmF0ZV8wKSk7CisJRVhQRUNUX0VR KGxlbiwgLTEpOworCUVYUEVDVF9FUShlcnJubywgRUlOVkFMKTsKKworCWxlbiA9IHdyaXRlKHNl bGYtPmRldl9mZCwgZGV2X2NtZF9yYXRlXzEsIHNpemVvZihkZXZfY21kX3JhdGVfMSkpOworCUVY UEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3JhdGVfMSkpOworfQorCitURVNUX0YocHJvY19u ZXRfcGt0Z2VuLCBkZXZfY21kX3JhdGVwKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfcmF0ZXBfMCwgc2l6ZW9mKGRldl9jbWRfcmF0ZXBfMCkp OworCUVYUEVDVF9FUShsZW4sIC0xKTsKKwlFWFBFQ1RfRVEoZXJybm8sIEVJTlZBTCk7CisKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfcmF0ZXBfMSwgc2l6ZW9mKGRldl9jbWRf cmF0ZXBfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3JhdGVwXzEpKTsKK30K KworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF91ZHBfc3JjX21pbikgeworCXNzaXpl X3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3VkcF9zcmNfbWlu XzAsIHNpemVvZihkZXZfY21kX3VkcF9zcmNfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXpl b2YoZGV2X2NtZF91ZHBfc3JjX21pbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4s IGRldl9jbWRfdWRwX2RzdF9taW4pIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNl bGYtPmRldl9mZCwgZGV2X2NtZF91ZHBfZHN0X21pbl8wLCBzaXplb2YoZGV2X2NtZF91ZHBfZHN0 X21pbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdWRwX2RzdF9taW5fMCkp OworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3VkcF9zcmNfbWF4KSB7CisJ c3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdWRwX3Ny Y19tYXhfMCwgc2l6ZW9mKGRldl9jbWRfdWRwX3NyY19tYXhfMCkpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX3VkcF9zcmNfbWF4XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3Br dGdlbiwgZGV2X2NtZF91ZHBfZHN0X21heCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3Jp dGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3VkcF9kc3RfbWF4XzAsIHNpemVvZihkZXZfY21kX3Vk cF9kc3RfbWF4XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF91ZHBfZHN0X21h eF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfY2xvbmVfc2tiKSB7 CisJc3NpemVfdCBsZW47CisKKwkvLyBjbG9uZV9za2Igb24gKGdpdmVzIEVPUE5PVFNVUFAgb24g bG8gZGV2aWNlKQorCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9jbG9uZV9za2Jf MCwgc2l6ZW9mKGRldl9jbWRfY2xvbmVfc2tiXzApKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7CisJ RVhQRUNUX0VRKGVycm5vLCBFT1BOT1RTVVBQKTsKKworCS8vIGNsb25lX3NrYiBvZmYKKwlsZW4g PSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfY2xvbmVfc2tiXzEsIHNpemVvZihkZXZfY21k X2Nsb25lX3NrYl8xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfY2xvbmVfc2ti XzEpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9jb3VudCkgeworCXNz aXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2NvdW50XzAs IHNpemVvZihkZXZfY21kX2NvdW50XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2Nt ZF9jb3VudF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjX21h Y19jb3VudCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBk ZXZfY21kX3NyY19tYWNfY291bnRfMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY19jb3VudF8wKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY19jb3VudF8wKSk7Cit9CisK K1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0X21hY19jb3VudCkgeworCXNzaXpl X3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF9tYWNfY291 bnRfMCwgc2l6ZW9mKGRldl9jbWRfZHN0X21hY19jb3VudF8wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfZHN0X21hY19jb3VudF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9w a3RnZW4sIGRldl9jbWRfYnVyc3QpIHsKKwlzc2l6ZV90IGxlbjsKKworCS8vIGJ1cnN0IG9mZgor CWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9idXJzdF8wLCBzaXplb2YoZGV2X2Nt ZF9idXJzdF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfYnVyc3RfMCkpOwor fQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX25vZGUpIHsKKwlzc2l6ZV90IGxl bjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9ub2RlXzAsIHNpemVvZihk ZXZfY21kX25vZGVfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX25vZGVfMCkp OworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3htaXRfbW9kZSkgeworCXNz aXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3htaXRfbW9k ZV8wLCBzaXplb2YoZGV2X2NtZF94bWl0X21vZGVfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVv ZihkZXZfY21kX3htaXRfbW9kZV8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRl dl9jbWRfeG1pdF9tb2RlXzEsIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8xKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfeG1pdF9tb2RlXzEpKTsKKworCWxlbiA9IHdyaXRlKHNl bGYtPmRldl9mZCwgZGV2X2NtZF94bWl0X21vZGVfMiwgc2l6ZW9mKGRldl9jbWRfeG1pdF9tb2Rl XzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF94bWl0X21vZGVfMikpOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3htaXRfbW9kZV8zLCBzaXplb2YoZGV2 X2NtZF94bWl0X21vZGVfMykpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3htaXRf bW9kZV8zKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZmxhZykgewor CXNzaXplX3QgbGVuOworCisJLy8gZmxhZyBVRFBDU1VNIG9uCisJbGVuID0gd3JpdGUoc2VsZi0+ ZGV2X2ZkLCBkZXZfY21kX2ZsYWdfMCwgc2l6ZW9mKGRldl9jbWRfZmxhZ18wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxhZ18wKSk7CisKKwkvLyBmbGFnIFVEUENTVU0gb2Zm CisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ZsYWdfMSwgc2l6ZW9mKGRldl9j bWRfZmxhZ18xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxhZ18xKSk7CisK KwkvLyBmbGFnIGludmFsaWQKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZmxh Z18yLCBzaXplb2YoZGV2X2NtZF9mbGFnXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2 X2NtZF9mbGFnXzIpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3Rf bWluKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfZHN0X21pbl8wLCBzaXplb2YoZGV2X2NtZF9kc3RfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVu LCBzaXplb2YoZGV2X2NtZF9kc3RfbWluXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdl biwgZGV2X2NtZF9kc3QpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF9kc3RfMCwgc2l6ZW9mKGRldl9jbWRfZHN0XzApKTsKKwlFWFBFQ1RfRVEo bGVuLCBzaXplb2YoZGV2X2NtZF9kc3RfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2Vu LCBkZXZfY21kX2RzdF9tYXgpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYt PmRldl9mZCwgZGV2X2NtZF9kc3RfbWF4XzAsIHNpemVvZihkZXZfY21kX2RzdF9tYXhfMCkpOwor CUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdF9tYXhfMCkpOworfQorCitURVNUX0Yo cHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2RzdDYpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9 IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kc3Q2XzAsIHNpemVvZihkZXZfY21kX2RzdDZf MCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdDZfMCkpOworfQorCitURVNU X0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2RzdDZfbWluKSB7CisJc3NpemVfdCBsZW47CisK KwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZHN0Nl9taW5fMCwgc2l6ZW9mKGRl dl9jbWRfZHN0Nl9taW5fMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdDZf bWluXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3Q2X21heCkg eworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2Rz dDZfbWF4XzAsIHNpemVvZihkZXZfY21kX2RzdDZfbWF4XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBz aXplb2YoZGV2X2NtZF9kc3Q2X21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4s IGRldl9jbWRfc3JjNikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2 X2ZkLCBkZXZfY21kX3NyYzZfMCwgc2l6ZW9mKGRldl9jbWRfc3JjNl8wKSk7CisJRVhQRUNUX0VR KGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjNl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3Rn ZW4sIGRldl9jbWRfc3JjX21pbikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19taW5fMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21pbl8wKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjX21pbl8wKSk7Cit9CisKK1RFU1Rf Rihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjX21heCkgeworCXNzaXplX3QgbGVuOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19tYXhfMCwgc2l6ZW9mKGRldl9j bWRfc3JjX21heF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjX21heF8w KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0X21hYykgeworCXNz aXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF9tYWNf MCwgc2l6ZW9mKGRldl9jbWRfZHN0X21hY18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRl dl9jbWRfZHN0X21hY18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRf c3JjX21hYykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBk ZXZfY21kX3NyY19tYWNfMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY18wKSk7CisJRVhQRUNUX0VR KGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9w a3RnZW4sIGRldl9jbWRfY2xlYXJfY291bnRlcnMpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9 IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9jbGVhcl9jb3VudGVyc18wLCBzaXplb2YoZGV2 X2NtZF9jbGVhcl9jb3VudGVyc18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf Y2xlYXJfY291bnRlcnNfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21k X2Zsb3dzKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRl dl9jbWRfZmxvd3NfMCwgc2l6ZW9mKGRldl9jbWRfZmxvd3NfMCkpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX2Zsb3dzXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwg ZGV2X2NtZF9zcGkpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF9zcGlfMCwgc2l6ZW9mKGRldl9jbWRfc3BpXzApKTsKKwlFWFBFQ1RfRVEobGVu LCBzaXplb2YoZGV2X2NtZF9zcGlfMCkpIFRIX0xPRygiQ09ORklHX1hGUk0gbm90IGVuYWJsZWQ/ Iik7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZmxvd2xlbikgeworCXNz aXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2Zsb3dsZW5f MCwgc2l6ZW9mKGRldl9jbWRfZmxvd2xlbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRl dl9jbWRfZmxvd2xlbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRf cXVldWVfbWFwX21pbikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2 X2ZkLCBkZXZfY21kX3F1ZXVlX21hcF9taW5fMCwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21p bl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21pbl8wKSk7 Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcXVldWVfbWFwX21heCkgewor CXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3F1ZXVl X21hcF9tYXhfMCwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21heF8wKSk7CisJRVhQRUNUX0VR KGxlbiwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9j X25ldF9wa3RnZW4sIGRldl9jbWRfbXBscykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3Jp dGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21wbHNfMCwgc2l6ZW9mKGRldl9jbWRfbXBsc18wKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbXBsc18wKSk7CisKKwlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbXBsc18xLCBzaXplb2YoZGV2X2NtZF9tcGxzXzEpKTsK KwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9tcGxzXzEpKTsKKworCWxlbiA9IHdyaXRl KHNlbGYtPmRldl9mZCwgZGV2X2NtZF9tcGxzXzIsIHNpemVvZihkZXZfY21kX21wbHNfMikpOwor CUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21wbHNfMikpOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21wbHNfMywgc2l6ZW9mKGRldl9jbWRfbXBsc18zKSk7CisJ RVhQRUNUX0VRKGxlbiwgLTEpOworCUVYUEVDVF9FUShlcnJubywgRTJCSUcpOworfQorCitURVNU X0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3ZsYW5faWQpIHsKKwlzc2l6ZV90IGxlbjsKKwor CWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF92bGFuX2lkXzAsIHNpemVvZihkZXZf Y21kX3ZsYW5faWRfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3ZsYW5faWRf MCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3ZsYW5fcF8wLCBzaXpl b2YoZGV2X2NtZF92bGFuX3BfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3Zs YW5fcF8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdmxhbl9jZmlf MCwgc2l6ZW9mKGRldl9jbWRfdmxhbl9jZmlfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihk ZXZfY21kX3ZsYW5fY2ZpXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2Nt ZF92bGFuX2lkXzEsIHNpemVvZihkZXZfY21kX3ZsYW5faWRfMSkpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX3ZsYW5faWRfMSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2Vu LCBkZXZfY21kX3N2bGFuX2lkKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxm LT5kZXZfZmQsIGRldl9jbWRfc3ZsYW5faWRfMCwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5faWRfMCkp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX2lkXzApKTsKKworCWxlbiA9 IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9zdmxhbl9wXzAsIHNpemVvZihkZXZfY21kX3N2 bGFuX3BfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX3BfMCkpOwor CisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3N2bGFuX2NmaV8wLCBzaXplb2Yo ZGV2X2NtZF9zdmxhbl9jZmlfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2 bGFuX2NmaV8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3ZsYW5f aWRfMSwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5faWRfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVv ZihkZXZfY21kX3N2bGFuX2lkXzEpKTsKK30KKworCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBk ZXZfY21kX3RvcykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX3Rvc18wLCBzaXplb2YoZGV2X2NtZF90b3NfMCkpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX3Rvc18wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRl dl9jbWRfdG9zXzEsIHNpemVvZihkZXZfY21kX3Rvc18xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6 ZW9mKGRldl9jbWRfdG9zXzEpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2Nt ZF90b3NfMiwgc2l6ZW9mKGRldl9jbWRfdG9zXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2Yo ZGV2X2NtZF90b3NfMikpOworfQorCisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRf dHJhZmZpY19jbGFzcykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2 X2ZkLCBkZXZfY21kX3RyYWZmaWNfY2xhc3NfMCwgc2l6ZW9mKGRldl9jbWRfdHJhZmZpY19jbGFz c18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdHJhZmZpY19jbGFzc18wKSk7 Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc2tiX3ByaW9yaXR5KSB7CisJ c3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc2tiX3By aW9yaXR5XzAsIHNpemVvZihkZXZfY21kX3NrYl9wcmlvcml0eV8wKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfc2tiX3ByaW9yaXR5XzApKTsKK30KKworVEVTVF9IQVJORVNTX01B SU4KLS0gCjIuNDguMQoK