From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Bragg Subject: [PATCH v3 5/7] drm/i915/perf: Add more OA configs for BDW, CHV, SKL + BXT Date: Wed, 5 Apr 2017 17:23:18 +0100 Message-ID: <20170405162320.30094-6-robert@sixbynine.org> References: <20170405162320.30094-1-robert@sixbynine.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE83F6E830 for ; Wed, 5 Apr 2017 16:23:55 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id t20so4125041wra.2 for ; Wed, 05 Apr 2017 09:23:55 -0700 (PDT) In-Reply-To: <20170405162320.30094-1-robert@sixbynine.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlc2UgYXJlIGF1dG8gZ2VuZXJhdGVkIGZyb20gYW4gWE1MIGRlc2NyaXB0aW9uIG9mIG1ldHJp YyBzZXRzLApjdXJyZW50bHkgbWFpbnRhaW5lZCBpbiBncHV0b3AsIHJlZjoKCiBodHRwczovL2dp dGh1Yi5jb20vcmliL2dwdXRvcAogPiBncHV0b3AtZGF0YS9vYS0qLnhtbAogPiBzY3JpcHRzL2k5 MTUtcGVyZi1rZXJuZWxnZW4ucHkKCiAkIG1ha2UgLUMgZ3B1dG9wLWRhdGEgLWYgTWFrZWZpbGUu eG1sCgpTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgQnJhZ2cgPHJvYmVydEBzaXhieW5pbmUub3JnPgpS ZXZpZXdlZC1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYmR3LmMgICAgfCA0ODU2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9ieHQuYyAg ICB8IDIzMjMgKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9j aHYuYyAgICB8IDI1MjUgKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfb2FfaHN3LmMgICAgfCAgIDU4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3Nr bGd0Mi5jIHwgMzE1NyArKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfb2Ffc2tsZ3QzLmMgfCAyNzAyICsrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9vYV9za2xndDQuYyB8IDI3NDUgKysrKysrKysrKysrKysrKysrLQogNyBm aWxlcyBjaGFuZ2VkLCAxODE3NyBpbnNlcnRpb25zKCspLCAxODkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9iZHcuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfb2FfYmR3LmMKaW5kZXggYjBiMWI3NWZiNDMxLi43OGU1MTlhMDFmNTgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYmR3LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9iZHcuYwpAQCAtMzEsOSArMzEsMzAgQEAKIAogZW51 bSBtZXRyaWNfc2V0X2lkIHsKIAlNRVRSSUNfU0VUX0lEX1JFTkRFUl9CQVNJQyA9IDEsCisJTUVU UklDX1NFVF9JRF9DT01QVVRFX0JBU0lDLAorCU1FVFJJQ19TRVRfSURfUkVOREVSX1BJUEVfUFJP RklMRSwKKwlNRVRSSUNfU0VUX0lEX01FTU9SWV9SRUFEUywKKwlNRVRSSUNfU0VUX0lEX01FTU9S WV9XUklURVMsCisJTUVUUklDX1NFVF9JRF9DT01QVVRFX0VYVEVOREVELAorCU1FVFJJQ19TRVRf SURfQ09NUFVURV9MM19DQUNIRSwKKwlNRVRSSUNfU0VUX0lEX0RBVEFfUE9SVF9SRUFEU19DT0FM RVNDSU5HLAorCU1FVFJJQ19TRVRfSURfREFUQV9QT1JUX1dSSVRFU19DT0FMRVNDSU5HLAorCU1F VFJJQ19TRVRfSURfSERDX0FORF9TRiwKKwlNRVRSSUNfU0VUX0lEX0wzXzEsCisJTUVUUklDX1NF VF9JRF9MM18yLAorCU1FVFJJQ19TRVRfSURfTDNfMywKKwlNRVRSSUNfU0VUX0lEX0wzXzQsCisJ TUVUUklDX1NFVF9JRF9SQVNURVJJWkVSX0FORF9QSVhFTF9CQUNLRU5ELAorCU1FVFJJQ19TRVRf SURfU0FNUExFUl8xLAorCU1FVFJJQ19TRVRfSURfU0FNUExFUl8yLAorCU1FVFJJQ19TRVRfSURf VERMXzEsCisJTUVUUklDX1NFVF9JRF9URExfMiwKKwlNRVRSSUNfU0VUX0lEX0NPTVBVVEVfRVhU UkEsCisJTUVUUklDX1NFVF9JRF9WTUVfUElQRSwKKwlNRVRSSUNfU0VUX0lEX1RFU1RfT0EsCiB9 OwogCi1pbnQgaTkxNV9vYV9uX2J1aWx0aW5fbWV0cmljX3NldHNfYmR3ID0gMTsKK2ludCBpOTE1 X29hX25fYnVpbHRpbl9tZXRyaWNfc2V0c19iZHcgPSAyMjsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpY1tdID0gewogCXsgX01N SU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LApAQCAtMjkwLDY2ICszMTEsNDYwOSBAQCBnZXRfcmVu ZGVyX2Jhc2ljX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CXJldHVybiBOVUxMOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291 bnRlcl9jb25maWdfY29tcHV0ZV9iYXNpY1tdID0geworCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAw MDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIw KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01N SU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19jb21wdXRlX2Jhc2ljW10gPSB7CisJeyBfTU1JTygweGU0 NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDAwMDAzIH0sCisJeyBf TU1JTygweGU2NTgpLCAweDAwMDAyMDAxIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwNzc4MDA4 IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDg4MDc4IH0sCisJeyBfTU1JTygweGU1NWMpLCAw eDAwODA4NzA4IH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwYTA4OTA4IH0sCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfY29tcHV0ZV9iYXNpY18wX3Ns aWNlc18weDAxW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDEwNWMwMGUwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEwNTgwMGUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMzgwMGUwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDM1ODAwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNi ODAwMDYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNkODAwMDA1IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA2NWMyMTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNWMwMDQxIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjNWM2NjAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNWM2NTgw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBlNWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTgwMDQyIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA4NTgyMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNTgwMDRjIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlNTgyNTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNWI0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4NWIxMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFhNWIwMTA0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMWZhODAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlMWZhYTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMWYwMmFhIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA4MzgwMDQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBh MzgyMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzg0MDRjIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyMzg0MDRiIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzg0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE2MzgwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MzgxMTQ1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MzgwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2Mzk4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA4MzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMzlhMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzlh MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMzkyMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAxOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOGE4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE5OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOGFhYWEwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFkOGEwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAz OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGE4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDIzOGIwMmEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OGI1NTUwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDI3OGIwMDE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODUwYTgw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODVhYWEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODM0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBmODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODM1NDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFiODMwMTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODM0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAxODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODQ4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA5ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODRjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBkODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBm ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODQ0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE3ODA4MTM3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODBjMTQ3IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFiODBjMGU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODBjMGUz IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDExODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDEzODA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1ODAwMDAwIH0sCisJ eyBfTU1JTygweGQyNCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDEw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAxMTEgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDM4MDAwNjIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE4MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDU4MDAwNjIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDAwNjIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4 MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y4MDEwNjIgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4NDE4MDEwODQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcg bXV4X2NvbmZpZ19jb21wdXRlX2Jhc2ljXzJfc2xpY2VzXzB4MDJbXSA9IHsKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTBkYzAwZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBkODAwZTAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTBiODAwZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzU4MDAw MWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2I4MDAwNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4M2Q4MDAwMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZkYzIxMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGFkYzAwNDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNkYzY2MDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDBkYzY1ODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhk YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGVkYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDBkODAwNDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhkODIwODAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGNkODAwNGMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGVkODI1ODAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBkYjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MThkYjEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWFkYjAxMDQgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGM5ZmE4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU5ZmFhMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTA5ZjAyYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhiODAw NDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFiODIwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGViODQwNGMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJiODQwNGIgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDBiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTZiODAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MThiODExNDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRi ODAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDZiOTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhiOWEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGFiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiOWEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDJiOTIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4ODgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGQ4OGY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4ODAwMGYgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDM4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4ODgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4YjA1NDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MjU4YmFhYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc4YjAwMmEgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDE4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4YzQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4YzIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4 YzU1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4YzAwMTUgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDM4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4YzQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDE4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4ZDgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGI4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGY4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4ZDIwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWY4NTBhODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4NWFh YTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDE4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4MzQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTk4MzU0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MzAxNTUgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4 MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDc4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NGMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGI4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4NGMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDM4NDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4MDgxMzcgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTk4MGMxNDcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MGMwZTUgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWQ4MGMwZTMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWY4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4MDQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTU4MDAwMDAgfSwKKwl7IF9NTUlPKDB4ZDI0KSwgMHgwMDAwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg0ZDgwNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0Zjgw MDU1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzgwMDA2MiB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg1MTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTgwMDA2MiB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg1MzgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzgwMDA2MiB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgz ZjgwMDA2MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMDAwMCB9LAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmln KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgaW50ICpsZW4pCit7 CisJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LnNsaWNlX21hc2sgJiAweDAxKSB7CisJ CSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfY29tcHV0ZV9iYXNpY18wX3NsaWNlc18weDAx KTsKKwkJcmV0dXJuIG11eF9jb25maWdfY29tcHV0ZV9iYXNpY18wX3NsaWNlc18weDAxOworCX0g ZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuc2xpY2VfbWFzayAmIDB4MDIpIHsK KwkJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2Jhc2ljXzJfc2xpY2VzXzB4 MDIpOworCQlyZXR1cm4gbXV4X2NvbmZpZ19jb21wdXRlX2Jhc2ljXzJfc2xpY2VzXzB4MDI7CisJ fQorCisJKmxlbiA9IDA7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlW10gPSB7CisJ eyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAw MDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTAp LCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1J TygweDI3NzApLCAweDAwMDdmZmVhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDA3ZmZjIH0s CisJeyBfTU1JTygweDI3NzgpLCAweDAwMDdhZmZhIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAw MDBmNWZkIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDc5ZmZhIH0sCisJeyBfTU1JTygweDI3 ODQpLCAweDAwMDBmM2ZiIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdiZjdhIH0sCisJeyBf TU1JTygweDI3OGMpLCAweDAwMDBmN2U3IH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDdmZWZh IH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmN2NmIH0sCisJeyBfTU1JTygweDI3OTgpLCAw eDAwMDc3ZmZhIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBlZmRmIH0sCisJeyBfTU1JTygw eDI3YTApLCAweDAwMDZmZmZhIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBjZmJmIH0sCisJ eyBfTU1JTygweDI3YTgpLCAweDAwMDNmZmZhIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDA1 ZjdmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29u ZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGVbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUw MDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTY1OCks IDB4MDAwMjUwMjQgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMzUwMzQgfSwKKwl7IF9NTUlP KDB4ZTQ1YyksIDB4MDAwNDUwNDQgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTUwNTQgfSwK Kwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAwNjUwNjQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlW10gPSB7CisJeyBf TU1JTygweDk4ODgpLCAweDBhMWUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMWYwMDBm IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMTc2ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDExOTEwMDFmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODgwMzIwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAxODkwYzQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOGExYzAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDExOGQ3YzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOGUw MDIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOGY0YzAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDExOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzOTAwMDAxIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA2NWM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjM2Q4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA2NTg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBj NWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MWUwMDQwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlMWUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMWY1NDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAwMWYwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMWYwMDEw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWYwMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBjMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzkyMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBjMTNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MTY0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA2MTcwMDEyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMTcw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOTEwMDA1IH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA3ODgwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODgwYzAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBmODgwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODgwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA1ODgwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5 ODkwMDMyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3OGEwODAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBmOGEwYTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGE0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFiOGEyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOGEwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBiOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkOGE4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDIzOGI1NGMwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OGJhYTU1IH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDE5IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGMw MTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBmOGQwMDE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGQxMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA5OGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGRmMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBkOGQzMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAz OGRlMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGQzMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBkOGUwMDA0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGUwMDBjIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA5OGUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3OGUwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBiOGYwMDIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGYwYzAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3OGY4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OGY0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBiOTAwOTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOTAw ZDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFmODVhYTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODVhYWFhIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODM0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBmODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5 ODM1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMwMTU1IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODM0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBkODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODRjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBiODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODRj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDExODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODBjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE5ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFi ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODBjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweGQyNCksIDB4MDAwMDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDExMTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 M2Q4MDA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDEwMTEgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDM4MDA0NDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE4MDExMTEgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDU4MDA0MjIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM4MDEx MTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDBjNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MjE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4M2Y4MDA0MjIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDAwMjEgfSwK K307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3JlbmRlcl9waXBl X3Byb2ZpbGVfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJ CQkJICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19yZW5kZXJf cGlwZV9wcm9maWxlKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlOwor fQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfbWVt b3J5X3JlYWRzW10gPSB7CisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1J TygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0s CisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NGMpLCAweDg2 NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NDgpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3 NDQpLCAweDAwMDA2NjY3IH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBf TU1JTygweDI3NWMpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NTgpLCAweDg2NTQzMjEw IH0sCisJeyBfTU1JTygweDI3NTQpLCAweDAwMDA2NDY1IH0sCisJeyBfTU1JTygweDI3NTApLCAw eDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMDdmODFhIH0sCisJeyBfTU1JTygw eDI3NzQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDdmODJhIH0sCisJ eyBfTU1JTygweDI3N2MpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDdm ODcyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3ODgp LCAweDAwMDdmOGJhIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1J TygweDI3OTApLCAweDAwMDdmODdhIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZTAwIH0s CisJeyBfTU1JTygweDI3OTgpLCAweDAwMDdmOGVhIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAw MDBmZTAwIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMDdmOGUyIH0sCisJeyBfTU1JTygweDI3 YTQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMDdmOGYyIH0sCisJeyBf TU1JTygweDI3YWMpLCAweDAwMDBmZTAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5 MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX21lbW9yeV9yZWFkc1tdID0geworCXsgX01NSU8oMHhl NDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxNTAxNCB9LAorCXsg X01NSU8oMHhlNjU4KSwgMHgwMDAyNTAyNCB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAzNTAz NCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA0NTA0NCB9LAorCXsgX01NSU8oMHhlNTVjKSwg MHgwMDA1NTA1NCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA2NTA2NCB9LAorfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX21lbW9yeV9yZWFkc1tdID0g eworCXsgX01NSU8oMHg5ODg4KSwgMHgxOThiMDM0MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx Mzg0NTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTg0MDAxOCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgzNTgwMDAxYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzhiNjMwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNThiNmI2MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzhiMDA2 YSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMThiMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgyMzhiMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNThiMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxZjg1YTA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTg1YWFhYSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgyMzg1MDAwYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgz NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYjgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDgzNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMTg0MDAxOCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg0NGM4MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTg0MGQ5YSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw Yjg0MGU5YyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDg0MGY5ZSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwZjg0MDAxMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTg0MDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMzg0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTg0YzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZjgwMDBlNSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxMzgwODBlMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTgwYzBlMSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgwNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxNzgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgw YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxZDgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgwNDAwMCB9LAorCXsgX01N SU8oMHhkMjQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRkODAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDNkODAwODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRm ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzODAwODQyIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDUxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1ODAwODQyIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDUzODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAxMDQy IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDNmODAwMDg0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxODAwMDAwIH0sCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9tZW1vcnlfcmVhZHNfbXV4X2NvbmZp ZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgaW50ICpsZW4pCit7 CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19tZW1vcnlfcmVhZHMpOworCXJldHVybiBt dXhfY29uZmlnX21lbW9yeV9yZWFkczsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29h X3JlZyBiX2NvdW50ZXJfY29uZmlnX21lbW9yeV93cml0ZXNbXSA9IHsKKwl7IF9NTUlPKDB4Mjcy NCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9N TUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAg fSwKKwl7IF9NTUlPKDB4Mjc0YyksIDB4ODY1NDMyMTAgfSwKKwl7IF9NTUlPKDB4Mjc0OCksIDB4 ODY1NDMyMTAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDAwMDY2NjcgfSwKKwl7IF9NTUlPKDB4 Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc1YyksIDB4ODY1NDMyMTAgfSwKKwl7 IF9NTUlPKDB4Mjc1OCksIDB4ODY1NDMyMTAgfSwKKwl7IF9NTUlPKDB4Mjc1NCksIDB4MDAwMDY0 NjUgfSwKKwl7IF9NTUlPKDB4Mjc1MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCks IDB4MDAwN2Y4MWEgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlP KDB4Mjc3OCksIDB4MDAwN2Y4MmEgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZlMDAgfSwK Kwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwN2Y4MjIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAw MGZlMDAgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwN2Y4YmEgfSwKKwl7IF9NTUlPKDB4Mjc4 YyksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwN2Y4N2EgfSwKKwl7IF9N TUlPKDB4Mjc5NCksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwN2Y4ZWEg fSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4 MDAwN2Y4ZTIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4 MjdhOCksIDB4MDAwN2Y4ZjIgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZlMDAgfSwKK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbWVtb3J5 X3dyaXRlc1tdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8o MHhlNTU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAyNTAyNCB9LAor CXsgX01NSU8oMHhlNzU4KSwgMHgwMDAzNTAzNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA0 NTA0NCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1NTA1NCB9LAorCXsgX01NSU8oMHhlNjVj KSwgMHgwMDA2NTA2NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBt dXhfY29uZmlnX21lbW9yeV93cml0ZXNbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4YjAz NDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4NDU0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MzU4MDAwMWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Q4MDA4MDUgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDM4YjYzMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4YjZiNjIgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4YjAwNmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4 YjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4YjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MjU4YjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4NWEwODAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MjE4NWFhYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAwMDIg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDk4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGQ4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NDAwMTAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDc4NDQ4ODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NDA5 OTIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4NDBhOTQgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGQ4NDBiOTYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4NDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDM4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4NGMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MmQ4MDAxNDcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmY4 MDAwZTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4MDgwZTMgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTU4MGMwZTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4MDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTE4MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4MGMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWI4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MGMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWY4MDAwMDAgfSwKKwl7IF9NTUlPKDB4ZDI0KSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0ZDgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZjgwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzgwMDg0MiB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1MTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTgwMDg0MiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg1MzgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzgwMTA4MiB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgzMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZjgw MDA4NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMDAwMCB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfbWVtb3J5X3dyaXRlc19tdXhfY29uZmlnKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgaW50ICpsZW4pCit7CisJ KmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19tZW1vcnlfd3JpdGVzKTsKKwlyZXR1cm4gbXV4 X2NvbmZpZ19tZW1vcnlfd3JpdGVzOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2Ff cmVnIGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9leHRlbmRlZFtdID0geworCXsgX01NSU8oMHgy NzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAw MCB9LAorCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwg MHgwMDA3ZmMyYSB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwYmYwMCB9LAorCXsgX01NSU8o MHgyNzc4KSwgMHgwMDA3ZmM2YSB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwYmYwMCB9LAor CXsgX01NSU8oMHgyNzgwKSwgMHgwMDA3ZmM5MiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAw YmYwMCB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDA3ZmNhMiB9LAorCXsgX01NSU8oMHgyNzhj KSwgMHgwMDAwYmYwMCB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDA3ZmMzMiB9LAorCXsgX01N SU8oMHgyNzk0KSwgMHgwMDAwYmYwMCB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDA3ZmM5YSB9 LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwYmYwMCB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgw MDA3ZmU2YSB9LAorCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwYmYwMCB9LAorCXsgX01NSU8oMHgy N2E4KSwgMHgwMDA3ZmU3YSB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwYmYwMCB9LAorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19jb21wdXRl X2V4dGVuZGVkW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1J TygweGU1NTgpLCAweDAwMDAwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDAyMDAxIH0s CisJeyBfTU1JTygweGU3NTgpLCAweDAwNzc4MDA4IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAw MDg4MDc4IH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwODA4NzA4IH0sCisJeyBfTU1JTygweGU2 NWMpLCAweDAwYTA4OTA4IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn IG11eF9jb25maWdfY29tcHV0ZV9leHRlbmRlZF8wX3N1YnNsaWNlc18weDAxW10gPSB7CisJeyBf TU1JTygweDk4ODgpLCAweDE0M2QwMTYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2M2QyODAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4M2QwMTIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDEwNTgwMGUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNWNjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA2NWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NWNjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBhNWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNWNj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAyNWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NWNjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAwM2QwMDExIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2M2QwOTAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA4M2QwYTEzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBh M2QwYjE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjM2QyMzE3IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA0M2QyMWI3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwM2QwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBlM2QwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhM2QwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTgyNWMxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwNTg2MTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTgyMDRjIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA2NTg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NThjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBhNThjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNThj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NThjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAwNWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNWI0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE4NWI1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhNWIwMTU1IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyNWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 NWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NWI0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA4NWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNWI0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjMWZhODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWZhYTJh IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMWYwMmFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzg0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE2Mzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MzgxNTU1IH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAyMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0Mzg0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2Mzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA4Mzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMzg0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAwMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2Mzk4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA4MzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBh MzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzlhMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMzlhMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0MzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGE4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE5OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOGFhYWEwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFkOGEwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGE4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA1OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3OGE4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBiOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIyYWEwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDI1OGI1NTUxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDE1IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFmODVhYTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIx ODVhYWEyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAxODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODM0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE5ODM1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMwMTU1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA1ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA5ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAxODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODQ4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBiODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODRjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBmODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODRjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEx ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODA4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE5ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODBjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFkODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODBjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE1ODBjMDAwIH0sCisJeyBfTU1JTygweGQyNCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NGQ4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Q4MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM4MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDU4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM4MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDc4MDA0MjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y4 MDA0MjEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDAwMDAgfSwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkXzJfc3Vi c2xpY2VzXzB4MDJbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA1YzAwZTAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTQ1YjAxNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTY1YjI4MDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg1YjAxMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGU1YzI1YzEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1YzYxMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDI1YzIwNGMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1YzgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDg1Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE1Y2Mw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM1Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDQ1Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1YjAwMTEgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDY1YjA5MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg1YjBhMTMgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGE1YjBiMTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM1 YjIzMTcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ1YjIxYjcgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTA1YjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU1YjAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWE1YjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMxZmE4MDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxZmFhMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTAxZjAyYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzODQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGUzODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzODQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTgzODE1NTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzODQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDYzODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgzODQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGEzODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzOWEwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzOTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgz OWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEzOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGMzOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUzOWEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDIzOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzOWEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGY4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4YTgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWI4YWFhYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4YTAwMDIgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDM4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4YTgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDk4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4YTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MjM4YjJhYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjU4YjU1NTEgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc4YjAwMTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4 NWFhODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4NWFhYTIgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MjM4NTAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4MzQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGY4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4MzU0MDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MzAxNTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDM4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDc4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MzQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGI4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NGMw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDk4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4NGMwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGQ4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4NGMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4 NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTc4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4MGMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWI4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MGMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4MGMwMDAgfSwKKwl7IF9NTUlPKDB4 ZDI0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZDgwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgzZDgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZjgwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1MTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTgwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg1MzgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzgwMDQyMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMTgw MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZjgwMDQyMSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg0MTgwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBt dXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRfNF9zdWJzbGljZXNfMHgwNFtdID0geworCXsgX01N SU8oMHg5ODg4KSwgMHgxMDM4MDBlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDNhMDE2MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjNhMjgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx ODNhMDEyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzFmYTgwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwZTFmYWEyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDFmMDJhYSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZTM4YTVjMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDM4YTEw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjM4MjA0YyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxNjM4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODM4MDJhYSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNDM4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjM4MDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwODM4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTM4 ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDM5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNjM5ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODM5YTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYTM5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzM5YTAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTM5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MjM5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDM5YTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMDNhMDAxMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjNhMDkwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwODNhMGExMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTNhMGIx NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzNhMjMxNyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDNhMjFiNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDNhMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwZTNhMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTNhMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMThhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjhh ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOThhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxYjhhYWFhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDhhMDAwMiB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMzhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThhODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw OThhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjhhODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyMzhiMmFhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNThiNTU1MSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgyNzhiMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjg1YWE4 MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTg1YWFhMiB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgyMzg1MDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTgzNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwZjgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgzNTQwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxYjgzMDE1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzgz NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNzgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTgzNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYjgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTg0YzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw OTg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjg0YzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwZDg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg0YzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMzg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTg0YzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxNzgwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgwYzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYjgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgwYzAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxZjgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzgw YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTgwYzAwMCB9LAorCXsgX01NSU8oMHhkMjQp LCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDNkODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQzODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUx ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1ODAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDUzODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAwNDIwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDIxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNmODAwNDIxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDQxODAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9j b25maWdfY29tcHV0ZV9leHRlbmRlZF8xX3N1YnNsaWNlc18weDA4W10gPSB7CisJeyBfTU1JTygw eDk4ODgpLCAweDE0YmQwMTYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2YmQyODAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDE4YmQwMTIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwZDgw MGUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwZGNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA2ZGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4ZGNjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBhZGNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjZGNjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBlZGNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAy ZGNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0ZGNjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAwYmQwMDExIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2YmQwOTAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA4YmQwYTEzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhYmQwYjE1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjYmQyMzE3IH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA0YmQyMWI3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwYmQwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlYmQwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhYmQwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlZDgyNWMxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwZDg2 MTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyZDgyMDRjIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA2ZDg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4ZDhjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBhZDhjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjZDhjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA0ZDhjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAw ZGI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlZGI0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE4ZGI1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhZGIwMTU1IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAyZGI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0ZGI0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2ZGI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA4ZGI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhZGI0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBjOWZhODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlOWZhYTJhIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDEwOWYwMmFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwYjg0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlYjg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE2Yjg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4YjgxNTU1IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAyYjg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0Yjg0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA2Yjg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4 Yjg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhYjg0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAwYjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2Yjk4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA4YjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhYjlhMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjYjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBlYjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyYjlhMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA0YjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODg4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBkODhmODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODgw MDBmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA1ODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODg4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA5ODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODg4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDIzOGI1NTQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1 OGJhYWEyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDJhIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAxOGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOGM0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE3OGMyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGM1NTAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOGMwMDE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAzOGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGM0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OGM0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBiOGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGRh MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3OGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA5OGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGRhMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBkOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOGRhMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAzOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1 OGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODVhYTgwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDIxODVhYWEyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAxODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODM0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODM1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFiODMwMTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA1ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA5ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA3ODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODRjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBiODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODRjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBmODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAz ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDExODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODA4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE5ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODBjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweGQyNCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Q4MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE4MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDU4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDA0MjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4 MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4M2Y4MDA0MjEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDAwMDAgfSwKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19jb21wdXRlX2V4dGVu ZGVkXzNfc3Vic2xpY2VzXzB4MTBbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBkYzAwZTAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTRkYjAxNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTZkYjI4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MThkYjAxMjAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGVkYzI1YzEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBkYzYxMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDJkYzIwNGMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZkYzgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhkY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGFkY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNkY2MwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDRkY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBkYjAwMTEgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDZkYjA5MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhk YjBhMTMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFkYjBiMTUgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGNkYjIzMTcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRkYjIxYjcgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTBkYjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGVkYjAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWFkYjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGM5ZmE4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU5ZmFhMmEgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTA5ZjAyYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBiODQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGViODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTZiODQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MThiODE1NTUgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDJiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiODQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDZiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhiODQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGFiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBi OWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZiOTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDhiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFiOWEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGNiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViOWEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDRiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4ODgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGQ4OGY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4ODAwMGYgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDM4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4ODgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDk4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4ODgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MjM4YjU1NDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjU4YmFhYTIgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc4YjAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4 YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTc4YzIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4YzU1MDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWI4YzAwMTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4YzQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDc4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4YzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGI4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4ZGEwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDc4ZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4ZGEw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGQ4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4ZGEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDM4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4ZGEwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4NWFhODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4 NWFhYTIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDE4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4MzQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTk4MzU0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MzAxNTUg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDU4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDk4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MzQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDE4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NDgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGI4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4NGMwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGY4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NGMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4 MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTk4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MGMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWQ4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MGMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTU4MGMwMDAgfSwKKwl7IF9NTUlPKDB4ZDI0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg0ZDgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZDgwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0ZjgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzgwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0NTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzgwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0NzgwMDQyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgzMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZjgw MDQyMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMDAwMCB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRfNV9zdWJz bGljZXNfMHgyMFtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMGI4MDBlMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxNGJhMDE2MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNmJhMjgwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOGJhMDEyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YzlmYTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTlmYWEyYSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxMDlmMDJhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZWI4YTVjMSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMGI4YTEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmI4MjA0 YyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNmI4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxOGI4MDJhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGI4MDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNmI4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOGI4ODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYWI4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGI5 YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmI5ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwOGI5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWI5YTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwY2I5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZWI5YTAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmI5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NGI5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGJhMDAxMSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNmJhMDkwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOGJhMGExMyB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYWJhMGIxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2JhMjMx NyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGJhMjFiNyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxMGJhMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZWJhMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYWJhMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTg4ODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZDg4ZjgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg4 MDAwZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNTg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg4ODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwOTg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjg4ODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzhiNTU0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgy NThiYWFhMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzhiMDAyYSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMThjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjhjNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxNzhjMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOThjNTUw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjhjMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMzhjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThjNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNzhjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOThjNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYjhjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMThk YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzhkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwOThkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjhkYTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwZDhkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjhkYTAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzhkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NThkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjg1YWE4MCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyMTg1YWFhMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzg1MDAyYSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjgzNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgzNTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxYjgzMDE1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzgzNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgzNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwOTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjgz NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNzg0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTg0YzAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYjg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDg0YzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw Mzg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTg0YzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxMTgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgwODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxOTgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgwYzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxZjgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzgwYzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxNTgwYzAwMCB9LAorCXsgX01NSU8oMHhkMjQpLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNkODAw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDQzODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxODAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDQ1ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzODAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAwNDIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIx ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDNmODAwNDIxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxODAwMDAwIH0sCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9jb21wdXRlX2V4dGVuZGVk X211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCWludCAq bGVuKQoreworCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJzbGljZV9tYXNrICYg MHgwMSkgeworCQkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRf MF9zdWJzbGljZXNfMHgwMSk7CisJCXJldHVybiBtdXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRf MF9zdWJzbGljZXNfMHgwMTsKKwl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1 LnN1YnNsaWNlX21hc2sgJiAweDAyKSB7CisJCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdf Y29tcHV0ZV9leHRlbmRlZF8yX3N1YnNsaWNlc18weDAyKTsKKwkJcmV0dXJuIG11eF9jb25maWdf Y29tcHV0ZV9leHRlbmRlZF8yX3N1YnNsaWNlc18weDAyOworCX0gZWxzZSBpZiAoSU5URUxfSU5G TyhkZXZfcHJpdiktPnNzZXUuc3Vic2xpY2VfbWFzayAmIDB4MDQpIHsKKwkJKmxlbiA9IEFSUkFZ X1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkXzRfc3Vic2xpY2VzXzB4MDQpOworCQly ZXR1cm4gbXV4X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkXzRfc3Vic2xpY2VzXzB4MDQ7CisJfSBl bHNlIGlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJzbGljZV9tYXNrICYgMHgwOCkg eworCQkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRfMV9zdWJz bGljZXNfMHgwOCk7CisJCXJldHVybiBtdXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRfMV9zdWJz bGljZXNfMHgwODsKKwl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LnN1YnNs aWNlX21hc2sgJiAweDEwKSB7CisJCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfY29tcHV0 ZV9leHRlbmRlZF8zX3N1YnNsaWNlc18weDEwKTsKKwkJcmV0dXJuIG11eF9jb25maWdfY29tcHV0 ZV9leHRlbmRlZF8zX3N1YnNsaWNlc18weDEwOworCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZf cHJpdiktPnNzZXUuc3Vic2xpY2VfbWFzayAmIDB4MjApIHsKKwkJKmxlbiA9IEFSUkFZX1NJWkUo bXV4X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkXzVfc3Vic2xpY2VzXzB4MjApOworCQlyZXR1cm4g bXV4X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkXzVfc3Vic2xpY2VzXzB4MjA7CisJfQorCisJKmxl biA9IDA7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9y ZWcgYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlW10gPSB7CisJeyBfTU1JTygweDI3 MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweDMwODAwMDAwIH0sCisJeyBf TU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweDMwODAwMDAw IH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAw eDAwMDdmZmZhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmZWZlIH0sCisJeyBfTU1JTygw eDI3NzgpLCAweDAwMDdmZmZhIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBmZWZkIH0sCisJ eyBfTU1JTygweDI3OTApLCAweDAwMDdmZmZhIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBm YmVmIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDdmZmZhIH0sCisJeyBfTU1JTygweDI3OWMp LCAweDAwMDBmYmRmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZs ZXhfZXVfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGVbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4 MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4 ZTY1OCksIDB4MDAwMDIwMDEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAxMDExMDAgfSwKKwl7 IF9NTUlPKDB4ZTQ1YyksIDB4MDAyMDEyMDAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAzMDEz MDAgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4MDA0MDE0MDAgfSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlW10gPSB7CisJ eyBfTU1JTygweDk4ODgpLCAweDE0M2YwMGIzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0YmYw MGIzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODMwM2MwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDNiODAwMDYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNkODAwODA1IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAwM2YwMDI5IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2M2YxNDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA4M2YxMjI1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBl M2YxMzI3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwM2YwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAwNWE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NWE4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA4NWFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNWFjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMWQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA2MWQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MWRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlMWRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMWYwODAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlMWYyYTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMWYw MjgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzkxMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA2Mzk0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4Mzk1MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlMzk1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhYmYxNDI5IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBjYmYxMjI1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAw YmYxMzgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyYmYwMDI2IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDEwYmYwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhZGFjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjZGFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwZGE4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyZGE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBhOWRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjOWRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAwOWQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyOWQ0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlOWY4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwOWYw MDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjOWZhMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBhYjk1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjYjk1MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAwYjk0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyYjkxMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBkODhjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBm ODgwMDAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODg4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA1ODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGE4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBmOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGE4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOGE4MDIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFkOGEwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIwNTIwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDI1OGJhOTUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDE2IH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDE5OGM1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOGMw MDAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA1OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGRhMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBkOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGQ4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAzOGQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFm ODVhYTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODVhYWEwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODM1MTgwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA1ODM0MDIyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODMwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBmODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODM1NDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFiODMwMTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODMwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA5ODMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODRj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA5ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODRjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBkODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODRjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1 ODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODBjMTM3IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFkODBjMTQ3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDExODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODA4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE1ODA0MDAwIH0sCisJeyBfTU1JTygweGQyNCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAx MTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM4MDA4NDIgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU4MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NTM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDA4NDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y4 MDA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDE0YTIgfSwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2NvbXB1dGVfbDNfY2FjaGVfbXV4X2NvbmZp ZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJaW50ICpsZW4pCit7CisJ KmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlKTsKKwlyZXR1cm4g bXV4X2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5 MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfZGF0YV9wb3J0X3JlYWRzX2NvYWxlc2NpbmdbXSA9 IHsKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4 MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0YyksIDB4YmE5OGJhOTggfSwKKwl7 IF9NTUlPKDB4Mjc0OCksIDB4YmE5OGJhOTggfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDAwMDMz NzcgfSwKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCks IDB4MDAwN2ZmZjIgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDdmZjAgfSwKKwl7IF9NTUlP KDB4Mjc3OCksIDB4MDAwN2ZmZTIgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDdmZjAgfSwK Kwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwN2ZmYzIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAw MDdmZjAgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwN2ZmODIgfSwKKwl7IF9NTUlPKDB4Mjc4 YyksIDB4MDAwMDdmZjAgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9N TUlPKDB4Mjc5NCksIDB4MDAwMGJmZWYgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwN2ZmZmEg fSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGJmZGYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4 MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGJmYmYgfSwKKwl7IF9NTUlPKDB4 MjdhOCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGJmN2YgfSwKK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfZGF0YV9w b3J0X3JlYWRzX2NvYWxlc2NpbmdbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQg fSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4 MDAwMDIwMDEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDA3NzgwMDggfSwKKwl7IF9NTUlPKDB4 ZTQ1YyksIDB4MDAwODgwNzggfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDA4MDg3MDggfSwKKwl7 IF9NTUlPKDB4ZTY1YyksIDB4MDBhMDg5MDggfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19kYXRhX3BvcnRfcmVhZHNfY29hbGVzY2luZ18wX3N1YnNs aWNlc18weDAxW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDEwM2QwMDA1IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE2M2QyNDBiIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNTgwMjJmIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE4NWI1NTIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5 OGIwMDAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNWNjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA2NWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NWNjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBhNWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNWNjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAyNWM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NWM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAwM2QwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2M2QwMGIwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA4M2QwMTgyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhM2Qx MGEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjM2QxMWEyIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBlM2QwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4M2QwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFhM2QwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTgyMjQyIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAwNTg2NzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAy NTgwMDRmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NThjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA4NThjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNThjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjNThjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NWI2MzAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNWIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwNWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNWI0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFhNWIwMTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNWI0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBhNWIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNWI0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMWZhODAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBlMWZhYWEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMWYwMmFhIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAwMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzg0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE2Mzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4 MzgxNTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMzg0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA0Mzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMzg0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzlhMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA4MzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMzlhMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBjMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzlhMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAyMzkyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0Mzk4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBmOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGE4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFiOGFhYWEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOGEwMDAyIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAzOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1 OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGE4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBkOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGI2MzAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA1OGIwMDYyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOGIwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIwMmEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDI1OGI1NTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDE1IH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFmODVhYTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODVhYWFhIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODM0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE5ODM1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMwMTU1IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5 ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBkODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODRjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA3ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODRjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBkODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDExODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODBj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFiODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODBjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweGQyNCksIDB4MDAw MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4M2Q4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAwMDEgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NDM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE4MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 NTM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDA0MjAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MjE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4M2Y4MDA0MjEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDAw NDEgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2RhdGFf cG9ydF9yZWFkc19jb2FsZXNjaW5nX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCQkJCQkgIGludCAqbGVuKQoreworCWlmIChJTlRFTF9JTkZPKGRldl9wcml2 KS0+c3NldS5zdWJzbGljZV9tYXNrICYgMHgwMSkgeworCQkqbGVuID0gQVJSQVlfU0laRShtdXhf Y29uZmlnX2RhdGFfcG9ydF9yZWFkc19jb2FsZXNjaW5nXzBfc3Vic2xpY2VzXzB4MDEpOworCQly ZXR1cm4gbXV4X2NvbmZpZ19kYXRhX3BvcnRfcmVhZHNfY29hbGVzY2luZ18wX3N1YnNsaWNlc18w eDAxOworCX0KKworCSpsZW4gPSAwOworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfZGF0YV9wb3J0X3dyaXRlc19jb2Fs ZXNjaW5nW10gPSB7CisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygw eDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJ eyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NGMpLCAweGJhOThi YTk4IH0sCisJeyBfTU1JTygweDI3NDgpLCAweGJhOThiYTk4IH0sCisJeyBfTU1JTygweDI3NDQp LCAweDAwMDAzMzc3IH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1J TygweDI3NzApLCAweDAwMDdmZjcyIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBiZmQwIH0s CisJeyBfTU1JTygweDI3NzgpLCAweDAwMDdmZjYyIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAw MDBiZmQwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDdmZjQyIH0sCisJeyBfTU1JTygweDI3 ODQpLCAweDAwMDBiZmQwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdmZjAyIH0sCisJeyBf TU1JTygweDI3OGMpLCAweDAwMDBiZmQwIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDVmZmYy IH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBiZmQwIH0sCisJeyBfTU1JTygweDI3OTgpLCAw eDAwMDVmZmUyIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBiZmQwIH0sCisJeyBfTU1JTygw eDI3YTApLCAweDAwMDVmZmMyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBiZmQwIH0sCisJ eyBfTU1JTygweDI3YTgpLCAweDAwMDVmZjgyIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBi ZmQwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29u ZmlnX2RhdGFfcG9ydF93cml0ZXNfY29hbGVzY2luZ1tdID0geworCXsgX01NSU8oMHhlNDU4KSwg MHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAwMDAwMyB9LAorCXsgX01NSU8o MHhlNjU4KSwgMHgwMDAwMjAwMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDc3ODAwOCB9LAor CXsgX01NSU8oMHhlNDVjKSwgMHgwMDA4ODA3OCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDgw ODcwOCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMGEwODkwOCB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2RhdGFfcG9ydF93cml0ZXNfY29hbGVz Y2luZ18wX3N1YnNsaWNlc18weDAxW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDEwM2QwMDA1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0M2QwMTIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE2M2QyNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNTgwMjJmIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDEwNWIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGIwMDAzIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAwNWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NWNj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBhNWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNWNjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAyNWM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NWM4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAwM2QwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2 M2QwMDk0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4M2QwMTgyIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBhM2QxODE0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlM2QwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE4M2QwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhM2QwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjM2QwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBlNTgyMjQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTg2NzAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyNTgwMDRmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NThjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA4NThjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNThj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NWI2YTgwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAwNWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNWI0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE4NWI1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhNWIwMTQxIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyNWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBh NWIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNWI0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBjMWZhODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWZhYWEwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDEwMWYwMjgyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzg0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE2Mzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MzgxNDE1IH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0Mzg0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBhMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzg0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA2MzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MzlhMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBhMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzlhMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyMzkyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 Mzk4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGE4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBmOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGE4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFiOGE4MmEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOGEwMDAy IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA1OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGE4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBkOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGI2MzAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA1OGIwMDYyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOGIw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIwMmEwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDI1OGIxNTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDE0IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFmODVhYTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODUyYWFhIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDIzODUwMDI4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAx ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODM0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE5ODM1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMwMTQxIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA5ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBkODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODRjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA3ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODRj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBmODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODRjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODBjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE3ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5 ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODBjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweGQyNCksIDB4MDAwMDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 M2Q4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAwMDEgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE4MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDU4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDA0MjAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4M2Y4MDA0MjEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDAwNDEgfSwK K307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2RhdGFfcG9ydF93 cml0ZXNfY29hbGVzY2luZ19tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKKwkJCQkJICAgaW50ICpsZW4pCit7CisJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5z c2V1LnN1YnNsaWNlX21hc2sgJiAweDAxKSB7CisJCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25m aWdfZGF0YV9wb3J0X3dyaXRlc19jb2FsZXNjaW5nXzBfc3Vic2xpY2VzXzB4MDEpOworCQlyZXR1 cm4gbXV4X2NvbmZpZ19kYXRhX3BvcnRfd3JpdGVzX2NvYWxlc2NpbmdfMF9zdWJzbGljZXNfMHgw MTsKKwl9CisKKwkqbGVuID0gMDsKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX2hkY19hbmRfc2ZbXSA9IHsKKwl7IF9N TUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAg fSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4 MTA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcyNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDIgfSwKKwl7 IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZjcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfaGRjX2FuZF9zZltdID0geworCXsgX01NSU8oMHhl NDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsg X01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAx NCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwg MHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2hkY19hbmRfc2ZbXSA9IHsK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTA1YzAyMzIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA1 ODAyMzIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAzODAyMzIgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTBkYzAyMzIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBkODAyMzIgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTBiODAyMzIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4ZTQ0MDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1YzYwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDQ1YzAwNGIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1YzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDA1ODIwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1ODAwNGIgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDI1YjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ1YjQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMxZmEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGUxZjAwYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzODYwODAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDYzODQwNGIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzODQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDgzODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEz ODAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMzODAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDAzOTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzOWEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDQzOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzOTIwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNkYzI1YzEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGFkY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFkODI1YzEgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MThkYjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWFkYjAwMDEgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGU5ZjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5ZjAy YWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViODI1YzEgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MThiODAxNTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFiOWEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGNiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViOWEwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4OGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4 ODAwMGYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDU4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4YTgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDk4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4YTgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MjU4YmFhMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc4YjAwMmEgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MjM4YjJhODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4YzU0MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWI4YzAwMTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4ZGMw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGQ4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4ZGEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDk4ZTA1YzAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4ZTAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4ZjAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4 NWFhMGEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWY4NWFhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4MzUwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWI4MzAxNTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDc4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGI4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MzQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDk4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4NGMw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGY4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NDgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDM4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4NGMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4 MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWQ4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MGMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTE4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4MGMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTc4MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE4MDAwNDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDM4MDA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU4MDA4MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NTM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDBj NjIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4M2Y4MDEwNDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDE0YTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2hkY19hbmRfc2ZfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9T SVpFKG11eF9jb25maWdfaGRjX2FuZF9zZik7CisJcmV0dXJuIG11eF9jb25maWdfaGRjX2FuZF9z ZjsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmln X2wzXzFbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCks IDB4MDAxMDAwNzAgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZjEgfSwKKwl7IF9NTUlP KDB4Mjc3OCksIDB4MDAwMTQwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGMzZmYgfSwK Kwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMTAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAw MGM3ZmYgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwMDQwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4 YyksIDB4MDAwMGQzZmYgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDA3MDAgfSwKKwl7IF9N TUlPKDB4Mjc5NCksIDB4MDAwMGZmMWYgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwMDE0MDIg fSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZjM2YgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4 MDAwMDEwMDIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZjN2YgfSwKKwl7IF9NTUlPKDB4 MjdhOCksIDB4MDAwMDA0MDIgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZkM2YgfSwKK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbDNfMVtd ID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwg MHgwMDAxMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8o MHhlNzU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAor CXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1 NTA1NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmln X2wzXzFbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBiZjAzZGEgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTRiZjAwMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI5ODAzNDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTI5OTAzNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiZjEx ODcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViZjEyMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDBiZjA1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJiZjA0MmIgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDRiZjAwMmMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNkYWMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGVkYWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBk YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJkYWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDRkYTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ5ODM0MDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTA5ODAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY5OTAwMzQg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5OTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGM5ZGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU5ZGMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDA5ZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI5ZGMwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDQ5ZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5ZjAy YTggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM5ZmEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGU5ZjAwYmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiODgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGNiOTUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViOTUwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDBiOTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJi OTUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiOTEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDZiOTIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiYTQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGY4ODAwMGYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4ODgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDc4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4ODgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGI4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4ODA0MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MjU4YjgwMGEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc4YjAw MmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4YjU1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTk4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4YzAwMTUgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDM4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4YzQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4 YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGQ4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4ZGEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGY4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4ZDgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDU4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4ZDIwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MjE4NTgwMGEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAwMmEgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWY4NWFhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MzAx NTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDU4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MzQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDk4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MzQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4 NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDE4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NGMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDU4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NDQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWY4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MDgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4MGMwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTc4MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM4MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDc4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4 MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDAwNjAgfSwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2wzXzFfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJS QVlfU0laRShtdXhfY29uZmlnX2wzXzEpOworCXJldHVybiBtdXhfY29uZmlnX2wzXzE7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19sM18yW10g PSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAw eDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygw eDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMTAw MDcwIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmZmYxIH0sCisJeyBfTU1JTygweDI3Nzgp LCAweDAwMDE0MDAyIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBjM2ZmIH0sCisJeyBfTU1J TygweDI3ODApLCAweDAwMDEwMDAyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDBjN2ZmIH0s CisJeyBfTU1JTygweDI3ODgpLCAweDAwMDA0MDAyIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAw MDBkM2ZmIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMTAwNzAwIH0sCisJeyBfTU1JTygweDI3 OTQpLCAweDAwMDBmZjFmIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDAxNDAyIH0sCisJeyBf TU1JTygweDI3OWMpLCAweDAwMDBmYzNmIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMDAxMDAy IH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmYzdmIH0sCisJeyBfTU1JTygweDI3YTgpLCAw eDAwMDAwNDAyIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZDNmIH0sCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX2wzXzJbXSA9IHsKKwl7 IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTAw MDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMTIwMTEgfSwKKwl7IF9NTUlPKDB4ZTc1OCks IDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwNTEwNTAgfSwKKwl7IF9NTUlP KDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAwNTUwNTQgfSwK K307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19sM18yW10g PSB7CisJeyBfTU1JTygweDk4ODgpLCAweDEwM2YwM2RhIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE0M2YwMDAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEyMTgwMzQwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDEyMTkwMzQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjM2YxMTg3IH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlM2YxMjA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwM2Yw NTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyM2YwNDJiIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA0M2YwMDJjIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNWFjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlNWFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNWE4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyNWFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 NWE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTgzNDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDEwMTgwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MTkwMDM0IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDEwMTkwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMWRjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwMWQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMWRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA0MWQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMWYwMmE4IH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjMWZhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWYw MGJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBjMzk1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzk1MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAwMzk0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMzk1MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA0MzkxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2 MzkyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjM2E0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFiOGFhODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOGEwMDAyIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAzOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGE4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA5OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGE4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBkOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OGI0MDA1IH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIy YTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODU4MDBhIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODVhYTAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFiODMwMTU0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODM0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3 ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODM0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBiODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODM0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBkODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODRjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3ODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODBjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODA4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODA0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDUzODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1ODAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIx ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNmODAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxODAwMDYw IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9sM18yX211 eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgaW50ICps ZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19sM18yKTsKKwlyZXR1cm4gbXV4 X2NvbmZpZ19sM18yOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291 bnRlcl9jb25maWdfbDNfM1tdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAor CXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAw MDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIw KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01N SU8oMHgyNzcwKSwgMHgwMDEwMDA3MCB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwZmZmMSB9 LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAxNDAwMiB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgw MDAwYzNmZiB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAxMDAwMiB9LAorCXsgX01NSU8oMHgy Nzg0KSwgMHgwMDAwYzdmZiB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDAwNDAwMiB9LAorCXsg X01NSU8oMHgyNzhjKSwgMHgwMDAwZDNmZiB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDcw MCB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmYxZiB9LAorCXsgX01NSU8oMHgyNzk4KSwg MHgwMDAwMTQwMiB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmMzZiB9LAorCXsgX01NSU8o MHgyN2EwKSwgMHgwMDAwMTAwMiB9LAorCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmM3ZiB9LAor CXsgX01NSU8oMHgyN2E4KSwgMHgwMDAwMDQwMiB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAw ZmQzZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2Nv bmZpZ19sM18zW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1J TygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0s CisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAw MDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2 NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn IG11eF9jb25maWdfbDNfM1tdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMjFiMDM0MCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMDNmMDI3NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjNm MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjliMDM0MCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxMGJmMDI3NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMmJmMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNDFiMzQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDFiMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YTNkNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDNmMDA4MCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMjNmMDc5MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDNmMDAxNCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDU4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDVhODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjVhYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDVhNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTViNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMDFkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjFkYzAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNDFkNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzFm YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTFmMDAyYSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYTM4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDM5NDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMjM5NTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDM5OTAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjliMDAzNCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx MDliMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmRjNDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwY2JkNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2JmMDk4MSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZWJmMGEwZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmQ4NDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2RhYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZWRhYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2RiNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzlkYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTlkYzAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMDlmMDJhOCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTlm MDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2I4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwY2I5NTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZWI5NTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNmI5MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg4MDAwZiB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDg4MDQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MzhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThhODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNzhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOThhODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYjhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNThiODAw OSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzhiMDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgyMzhiMmE4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOThjNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYjhjMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDhjNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZDhkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjhk YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzhkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgyMTg1ODAwYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzg1MDAyYSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxZjg1YWEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgzMDE1NCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgzNDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwOTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjgzNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZDgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDg0YzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMTg0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzg0YzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNTg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg0NDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxZDgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgw YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxMzgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTgwYzAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxNzgwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzgwMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTgwMGMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0 NzgwMGM2MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgzMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZDgwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgzZjgwMTRhNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZjgwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMDA0NSB9LAorfTsKKworc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfbDNfM19tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9T SVpFKG11eF9jb25maWdfbDNfMyk7CisJcmV0dXJuIG11eF9jb25maWdfbDNfMzsKK30KKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX2wzXzRbXSA9IHsK Kwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4 MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjcx NCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9N TUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAxMDAwNzAg fSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZjEgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4 MDAwMTQwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGMzZmYgfSwKKwl7IF9NTUlPKDB4 Mjc4MCksIDB4MDAwMTAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGM3ZmYgfSwKKwl7 IF9NTUlPKDB4Mjc4OCksIDB4MDAwMDQwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGQz ZmYgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDA3MDAgfSwKKwl7IF9NTUlPKDB4Mjc5NCks IDB4MDAwMGZmMWYgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwMDE0MDIgfSwKKwl7IF9NTUlP KDB4Mjc5YyksIDB4MDAwMGZjM2YgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAwMDEwMDIgfSwK Kwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZjN2YgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAw MDA0MDIgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZkM2YgfSwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbDNfNFtdID0geworCXsgX01N SU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9 LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgw MDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhl NTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2wzXzRbXSA9IHsK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTIxYTAzNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAz ZjAwMTcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIzZjAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTI5YTAzNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBiZjAwMTcgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTJiZjAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxYTM0MDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxYTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDQzYjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEzZTAwMTAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDAzZjAyMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzZjAxMTMgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDQzZjAwMTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1OTIw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDI1YWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ1YTQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGExYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAxZDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDIxZGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQx ZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGExZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGMxZmEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxZjAwMWEgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDAzOTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzOTUwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzOTEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDY5YTAwMzQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5YTAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDZiYjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFiZTAwNDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGNiZjA5ODQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViZjBh MDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJkOTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGNkYWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGVkYWMwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGM5YzA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM5ZGMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGU5ZGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM5 ZTA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5ZjAyYTggfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGU5ZjAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiOTUwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGViOTUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4ODAwMGYg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4ODA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDM4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4YTgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDc4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4YTgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGI4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjU4Yjgw MDkgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc4YjAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MjM4YjJhODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4YzQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWI4YzAwMTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4YzQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4 ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4ZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MjE4NTgwMGEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAwMmEgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWY4NWFhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MzAxNTQg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDU4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDk4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MzQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGQ4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4NGMw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDE4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NGMwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDU4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NDQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4 MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4MGMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTc4MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM4MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU4MDA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 NDc4MDA4NDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4M2Y4MDEwODQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDAwNDQgfSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2wzXzRfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlf U0laRShtdXhfY29uZmlnX2wzXzQpOworCXJldHVybiBtdXhfY29uZmlnX2wzXzQ7Cit9CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19yYXN0ZXJpemVy X2FuZF9waXhlbF9iYWNrZW5kW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0s CisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAw MDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3 MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweDMwODAwMDAwIH0sCisJeyBf TU1JTygweDI3NzApLCAweDAwMDA2MDAwIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmM2Zm IH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDAxODAwIH0sCisJeyBfTU1JTygweDI3N2MpLCAw eDAwMDBmY2ZmIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDAwNjAwIH0sCisJeyBfTU1JTygw eDI3ODQpLCAweDAwMDBmZjNmIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDAwMTgwIH0sCisJ eyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmNmIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDAw MDYwIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmYzIH0sCisJeyBfTU1JTygweDI3OTgp LCAweDAwMDAwMDE4IH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmZjIH0sCit9OworCitz dGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Jhc3Rlcml6ZXJf YW5kX3BpeGVsX2JhY2tlbmRbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwK Kwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAw MTIwMTEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTQ1 YyksIDB4MDAwNTEwNTAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwKKwl7IF9N TUlPKDB4ZTY1YyksIDB4MDAwNTUwNTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9yZWcgbXV4X2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kW10gPSB7CisJ eyBfTU1JTygweDk4ODgpLCAweDE0M2IwMDBlIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0M2M1 NWMwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMWUwMjgwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBjMWUwNDA4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMzkwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEyMzk3YTFmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0YmIwMDBlIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA0YmM1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBh OWUwMjk2IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjOWUwMDA4IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDEwYjkwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEyYjk3YTFmIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA2M2IwMDQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwM2IwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4M2MwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBhM2UwMDQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0M2Y4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyNTk0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NWE4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjMWMwNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MWQ4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MWUwMmMwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBlMWUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMWZhODAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlMWYwMjYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMWYwMDE0IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAwMzkwNWUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2 MzkwYmMwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMzkwMDE4IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA0Mzk0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0YmIwMDQyIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDEwYmIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyYmMwNWMw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4YmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBhYmUwMDA0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyYmY4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyZDkxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyZGE4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA4OWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyOWQ4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4OWU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBlOWUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlOWZhODA2IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEwOWYwMTQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4YjkwNjE3IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBhYjkwYmUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAy Yjk0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODhmMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBmODgwMDBjIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODg4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA5ODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGE4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFiOGEyODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGE4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA1OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGE4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBkOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGI1 MmEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OGI2YTk1IH0sCisJeyBfTU1JTygweDk4ODgp LCAweDI3OGIwMDI5IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3OGMyMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE5OGMxNTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOGMwMDE0IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA3OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5 OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OGRhMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBiOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOGRhMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAzOGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGQyMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODVhYTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDIxODVhYWFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAxODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODM0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDE5ODM1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMw MTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA1ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA5ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBkODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAx ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODRjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA5ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODRjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBkODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODRjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA1ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODBjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE3ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODBjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFiODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODBj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEzODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1ODBjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDRkODAwNDQ0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNkODAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDRmODA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQz ODAxMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxODAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDQ1ODAwMDg0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzODAwMDQ0IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDQ3ODAxMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODAwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDNmODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxODAwODQwIH0sCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9yYXN0ZXJpemVyX2FuZF9waXhlbF9i YWNrZW5kX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJ CQkgICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19yYXN0ZXJp emVyX2FuZF9waXhlbF9iYWNrZW5kKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19yYXN0ZXJpemVyX2Fu ZF9waXhlbF9iYWNrZW5kOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJf Y291bnRlcl9jb25maWdfc2FtcGxlcl8xW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAw MDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTAp LCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweDcwODAwMDAwIH0sCisJeyBfTU1J TygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0s CisJeyBfTU1JTygweDI3NzApLCAweDAwMDBjMDAwIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAw MDBlN2ZmIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDAzMDAwIH0sCisJeyBfTU1JTygweDI3 N2MpLCAweDAwMDBmOWZmIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDAwYzAwIH0sCisJeyBf TU1JTygweDI3ODQpLCAweDAwMDBmZTdmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5 MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3NhbXBsZXJfMVtdID0geworCXsgX01NSU8oMHhlNDU4 KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01N SU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9 LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgw MDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3NhbXBsZXJfMVtdID0geworCXsg X01NSU8oMHg5ODg4KSwgMHgxODkyMTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDk1MDBh YiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOGIyMTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxNGI1MDBhYiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOGQyMTQwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxNGQ1MDBhYiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2RjODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZWRjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmRj YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGRjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxYWJkMDBhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWJkODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwY2Q4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZWQ4NDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGQ4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx YWRiMDA1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGRiODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNmRiODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOGRiODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYWRiNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDlmMDJh MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzlmYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZTlmMDBhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOGI4MjUwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMmI4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGI4NDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNmI4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOGI4 NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWI4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwY2I4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2I5ODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwZWI5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGI5ODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmI5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NGI5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmI5MjAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxYWJhMDIwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmJhODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwY2JhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDkwODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDkxODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDkyNzMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDkyMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxODkzMDAwYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTkzNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYTk0NjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzk1 OTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTk1MDA5OCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxMDk1MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGIwNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNGIxNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGIyMDA3MyB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMGIyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NGIzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmIzODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwOGIzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGI0YzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMmI1OTg5MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMGI1MDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmQwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNmQxNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmQyMDA3MyB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxMGQyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOGQzMDAyMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMmQzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2Qz NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWQ0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNGQ0MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZWQ1OTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMGQ1OTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMGQ1MDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg4MDAwZSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw Mzg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTg4ODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNzg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTg4ODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYjg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDg4MDQw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzhiMDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgyMzhiNTUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNThiMDAwYSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYjhjMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzhjNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNThjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzhj NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOThjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYjhjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDhjNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwZDhkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjhkYTAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMThkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MzhkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThkYTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNzhkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzg1MDAyYSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxZjg1YWEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTg1MDAw YSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgzMDE1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMzgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTgzNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNzgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTgzNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYjgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDgz NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDg0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwZjg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTg0ODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMzg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTg0YzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg0NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx ZDgwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgwYzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxMTgwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzgwYzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxNTgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgwNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0NzgwMTAyMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgzMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZDgwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgzZjgwMGM2NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0Zjgw MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMGMwMiB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfc2FtcGxlcl8xX211eF9jb25maWcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJIGludCAqbGVuKQoreworCSpsZW4gPSBB UlJBWV9TSVpFKG11eF9jb25maWdfc2FtcGxlcl8xKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19zYW1w bGVyXzE7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2Nv bmZpZ19zYW1wbGVyXzJbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4NzA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCks IDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlP KDB4Mjc3MCksIDB4MDAwMGMwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGU3ZmYgfSwK Kwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDMwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAw MGY5ZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDBjMDAgfSwKKwl7IF9NTUlPKDB4Mjc4 NCksIDB4MDAwMGZlN2YgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcg ZmxleF9ldV9jb25maWdfc2FtcGxlcl8yW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1 MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgp LCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1J TygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0s CisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfc2FtcGxlcl8yW10gPSB7CisJeyBfTU1JTygweDk4 ODgpLCAweDE4MTIxNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MTUwMGFiIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE4MzIxNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MzUwMGFi IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4NTIxNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE0NTUwMGFiIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNWM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlNWM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNWNjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA0NWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhM2Qw MGEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhM2Q4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBjNTg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTg0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA0NTg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhNWIwMDUwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA0NWI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2 NWI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NWI4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBhNWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMWYwMmEwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjMWZhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWYwMGFh IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MzgyNTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAyMzg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0Mzg0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA2Mzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4Mzg0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBhMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzg4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzk4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBlMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzk4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAyMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MzlhMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA2MzkyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFh M2EwMjAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyM2E4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBjM2E4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTA4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0MTE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTI3MzAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMTIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE4MTMwMDBhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMTM0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBhMTQ2MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMTU5MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlMTUwMDk4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMTUw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MzA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA0MzE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MzIwMDczIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEwMzIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MzM4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA2MzM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4 MzM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MzRjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyMzU5ODkwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMzUwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA2NTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NTE0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NTIwMDczIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDEwNTIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4NTMwMDIwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyNTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNTM0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBhNTQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NTQy MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTU5MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAwNTU5ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNTUwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFiOGFhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOGEwMDAyIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAzOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1 OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3OGE4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA5OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGE4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBkOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDE1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIyYTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDI1OGIwMDA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFmODVhYTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODUwMDBhIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFiODMwMTUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODM0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA3ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODM0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBiODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODM0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBkODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBm ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODQ4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA3ODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODA4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDExODA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODA0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDUzODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAx MDIxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDMxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDNmODAwYzY0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQxODAwYzAyIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfb2FfcmVnICoKK2dldF9zYW1wbGVyXzJfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJ WkUobXV4X2NvbmZpZ19zYW1wbGVyXzIpOworCXJldHVybiBtdXhfY29uZmlnX3NhbXBsZXJfMjsK K30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rk bF8xW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3 NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBf TU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAw IH0sCisJeyBfTU1JTygweDI3MjQpLCAweDMwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAw eDAwMDAwMDAyIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmZGZmIH0sCisJeyBfTU1JTygw eDI3NzgpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBmZTdmIH0sCisJ eyBfTU1JTygweDI3ODApLCAweDAwMDAwMDAyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDBm ZmJmIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3OGMp LCAweDAwMDBmZmNmIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDAwMDAyIH0sCisJeyBfTU1J TygweDI3OTQpLCAweDAwMDBmZmY3IH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDAwMDAwIH0s CisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmY5IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3RkbF8xW10gPSB7CisJeyBfTU1JTygweGU0 NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBf TU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0 IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAw eDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGRsXzFbXSA9IHsKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTYxNTRkNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzNTJlNjAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTY1NTRkNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTY5NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTZiNTAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTZkNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1YzgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDQ1Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1YzQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgzZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGEzZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ1OGMwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDI1YjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg1YjQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGE1YjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM1 YjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMxZmEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGUxZjAwYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzODQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDQzODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzODgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgzODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGEzODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMzODQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDAzOTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzOWEwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDQzOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzOTIw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzYTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDYzYTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgxMzgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGExMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxNDMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxNWNmYzcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAx NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGMzMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzNDIwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDYzNDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzNWM3MDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzNTAwY2YgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTAzNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ1MzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDY1MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ1NGMwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDI1NWNmYzcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA1NTAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZkYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDhkYzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNkY2MwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGVkY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWFiZDAwYTggfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGNkOGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGVk ODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGVkYjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MThkYjA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWFkYjAyNTQgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGU5ZmFhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5ZjAyYWEg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTZiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MThiODE1NmEgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDZiOTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhiOWEwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGFiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiOWEw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MThiYWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWFiYTAwMDIgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTY5MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg5MzAwMGEgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGE5NDcwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM5 NWM1YzEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU5NTAwYzMgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTA5NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViMzgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTZiMzAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MThiMzAwMjAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZiNDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDhiNDEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFiNDgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDZiNWM1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhiNTAwYzMgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGViNWMxMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBiNTAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTZkMzE1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDhkNGUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhkNWMxMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGFkNWMzYzUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBkNTAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4OGY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4 ODAwMGYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDU4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4YTgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDk4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4YTgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MjU4YmFhYTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc4YjAwMmEgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MjM4YjJhODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4YzQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTc4YzIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4YzU1 MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4YzAwMTUgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDc4ZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4ZGEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGI4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4ZGEwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4 NWFhYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWY4NWFhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4MzQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTk4MzU0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MzAxNTUg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDU4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDk4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MzQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGQ4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NGMw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGI4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4NGMwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGY4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4 NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTk4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MGMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWQ4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MGMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4MGMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NGY4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM4MDBjNDIgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NTE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU4MDAw NjMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDc4MDA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y4MDE0YTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE4 MDEwNDIgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3Rk bF8xX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAg IGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGRsXzEpOworCXJl dHVybiBtdXhfY29uZmlnX3RkbF8xOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2Ff cmVnIGJfY291bnRlcl9jb25maWdfdGRsXzJbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAw MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjcx MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9N TUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MzA4MDAwMDAg fSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4 MDAwMGZkZmYgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 Mjc3YyksIDB4MDAwMGZlN2YgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZmOWYgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZTcgfSwKKwl7IF9NTUlPKDB4Mjc5MCks IDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmZmIgfSwKKwl7IF9NTUlP KDB4Mjc5OCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZmQgfSwK K307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGRs XzJbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1 OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMTIwMTEgfSwKKwl7IF9N TUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwNTEwNTAg fSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4 MDAwNTUwNTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2Nv bmZpZ190ZGxfMltdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxNjE1MDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxNjM1MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjU1MDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjk1MmU2MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx NmI1NGQ2MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNmQ1MmU2MCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNjVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODVjYzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYTVjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzVjNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTNkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxODNkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjU4ODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwODU4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTU4NDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZTViNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODVi NTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTViMDAwYSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwZTFmYWEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDFmMDJhYSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwZTM4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjM4NDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODM4MmE1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NjM5ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODM5YTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYTM5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzM5YTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZTM5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTNhMDJh MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTEzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxNjEzMDUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjE0ODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwODE0NjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjE1YzEwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwODE1YzUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTE1 MDBjMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDE1MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxNjMzNTA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODM0OTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYTM0MTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODM1MDBjMSB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTM1YzUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YzM1MDBjMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDM1MDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxODUzMDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTU0ZTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYzU1YzUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTU1YzFj MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDU1MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMGRjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmRjYzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNGRjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGJkODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNmJkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmQ4 YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmRiODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNGRiNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmRiNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwOGRiODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzlmYTAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTlmMDBhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MmI4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGI4NDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNmI4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOGI4NDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYWI4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2I4ODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGI5ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMmI5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGI5YTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNmI5MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWJhODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwY2JhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDkz ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjkzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNDk0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjk1Y2ZjNyB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMDk1MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmIzODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOGIzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NGI0MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmI0MTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMGI1YzcwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGI1MDBjZiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxMGI1MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWQzODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2QzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNmQ0NjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGQ1YzcwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNmQ1MDBjZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMGQ1MDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMzg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTg4 ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwOTg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjg4ODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwZDg4MDQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjhhODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOThhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx YjhhYWFhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDhhMDAwMiB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyNThiNTU1YSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzhiMDAxNSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgyMzhiNTUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzhjNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNzhjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOThjNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYjhjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDhjNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMThkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzhk YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNzhkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTg1YWFhYSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgyMzg1MDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjg1YWEwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx OTgzNTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgzMDE1NSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMzgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTgzNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNzgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTgzNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZDgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg0YzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwOTg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjg0YzAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZDg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg0 YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTg0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMzg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTg0YzAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxNzgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgwYzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx ZDgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgwYzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxMTgwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzgwYzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxNTgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZjgwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzgwMDg4MiB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1MTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTgwMTA4MiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg1MzgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzgwMTRhNSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMTgw MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZDgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgzZjgwMDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMGM2MiB9LAorfTsKKwor c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfdGRsXzJfbXV4X2NvbmZpZyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICAgaW50ICpsZW4pCit7CisJ KmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZGxfMik7CisJcmV0dXJuIG11eF9jb25maWdf dGRsXzI7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2Nv bmZpZ19jb21wdXRlX2V4dHJhW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0s CisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAw MDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3 MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX2NvbXB1dGVf ZXh0cmFbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDEwMDAgfSwKKwl7IF9NTUlPKDB4 ZTU1OCksIDB4MDAwMDMwMDIgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMDUwMDQgfSwKKwl7 IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTEwMTAgfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwNTAw MTIgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTIwNTEgfSwKKwl7IF9NTUlPKDB4ZTY1Yyks IDB4MDAwMDAwMDggfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4 X2NvbmZpZ19jb21wdXRlX2V4dHJhW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDE2MTUwM2Uw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2MzUwM2UwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE2NTUwM2UwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2OTUwM2UwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE2YjUwM2UwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2ZDUwM2UwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA0NWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4M2Q4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NTg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA4NWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNWI4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlMWYwMGE4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4Mzg0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBhMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBj Mzg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MzlhMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA2MzkyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjM2E4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA4MTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MTQxMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTUwMGMzIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDEwMTUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMzM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA2MzQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MzVjMzAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDEwMzUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNTM4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NTQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA2NTUwMGMzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNTUwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAwZGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyZGM0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyYmQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAw ZDg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyZGI0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA0ZGI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjOWZhMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBlOWYwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyYjg0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0Yjg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA2Yjg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwYjk4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyYjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2YmE4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAyOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0OTQy MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwOTVjMzAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEwOTUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0YjM4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA0YjQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyYjUwMGMzIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEwYjUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2 ZDM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0ZDQ4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyZDVjMzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwZDUwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAzODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODg4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA5OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGE4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBkOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIzNTAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDI1OGIwMDA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGM0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA3OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGQ4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAzOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODVhYTAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDIxODUwMDBhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAz ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODM0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODM0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3ODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODA4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1ODBj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDIxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDNmODAwYzQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQxODAxNDgyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMx ODAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9j b21wdXRlX2V4dHJhX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAorCQkJICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2Nv bXB1dGVfZXh0cmEpOworCXJldHVybiBtdXhfY29uZmlnX2NvbXB1dGVfZXh0cmE7Cit9CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ192bWVfcGlwZVtd ID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwg MHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8o MHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgzMDgwMDAwMCB9LAor CXsgX01NSU8oMHgyNzcwKSwgMHgwMDEwMDAzMCB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAw ZmZmOSB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzdj KSwgMHgwMDAwZmZmYyB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01N SU8oMHgyNzg0KSwgMHgwMDAwZmZmMyB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDE4MCB9 LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZjZiB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgw MDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAorCXsgX01NSU8oMHgy Nzk4KSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmYzZiB9LAorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ192bWVfcGlw ZVtdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4 KSwgMHgwMDAwODAwMyB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBt dXhfY29uZmlnX3ZtZV9waXBlW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDE0MTAwODEyIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE0MTI1ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2 MTIwMGMwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MzAwODEyIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE0MzI1ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2MzIwMGMwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAwNWM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NWM4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBhNWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNWNjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAwM2Q4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlM2Q4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDE4M2QyODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTg0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NTg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA4NThjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNWI0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlNWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4NWI5NDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFhNWIwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBj MWYwODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWZhYTAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDEwMWYwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzg0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBlMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2Mzg0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MzgwMTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwMzkyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2Mzk4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA4MzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMzlhMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMTAw MDQ3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MTAxYTgwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEwMTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MTBjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA4MTFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MTI2MTUxIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEwMTIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAw MTM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMTM0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE2MTMwMGEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMzAxYWM3IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDEwMzAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzBjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBjMzI2MTUxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMzIwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE2MzMyYTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MzMwMDAxIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAxOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOGE4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFiOGEyYWEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIwMDIwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDI1OGI1NTUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDAxIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFmODUwMDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIx ODVhYWEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzODUwMDAyIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAxODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODM0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE5ODM1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMwMDE1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA3ODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBiODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODRjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDExODA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODA4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFiODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODBjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNkODAwODAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQz ODAwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxODAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDQ1ODAwODg0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzODAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDQ3ODAwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODAwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF92bWVfcGlwZV9tdXhfY29uZmlnKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCWludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9T SVpFKG11eF9jb25maWdfdm1lX3BpcGUpOworCXJldHVybiBtdXhfY29uZmlnX3ZtZV9waXBlOwor fQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVz dF9vYVtdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgy NzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsg X01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAw MCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwg MHgwMDAwMDAwNCB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8o MHgyNzc4KSwgMHgwMDAwMDAwMyB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAor CXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAw MDAwMCB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAorCXsgX01NSU8oMHgyNzhj KSwgMHgwMDAwZmZmNyB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAorCXsgX01N SU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9 LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgw MDEwMDBjMiB9LAorCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAorCXsgX01NSU8oMHgy N2E4KSwgMHgwMDEwMDAwMSB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29h W10gPSB7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdf dGVzdF9vYVtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxOThiMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNzhiMDA2NiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMThiMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgyNThiMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTg1 MDAwOCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNzg0NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgwNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZjgwMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgz MTgwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRf dGVzdF9vYV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJ ICAgICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9v YSk7CisJcmV0dXJuIG11eF9jb25maWdfdGVzdF9vYTsKK30KKwogaW50IGk5MTVfb2Ffc2VsZWN0 X21ldHJpY19zZXRfYmR3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlk ZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9IE5VTEw7Ci0JZGV2X3ByaXYtPnBlcmYub2EubXV4 X3JlZ3NfbGVuID0gMDsKLQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9IE5VTEw7 Ci0JZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0gMDsKLQlkZXZfcHJpdi0+ cGVyZi5vYS5mbGV4X3JlZ3MgPSBOVUxMOwotCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19s ZW4gPSAwOworCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0gTlVMTDsKKwlkZXZfcHJpdi0+ cGVyZi5vYS5tdXhfcmVnc19sZW4gPSAwOworCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9y ZWdzID0gTlVMTDsKKwlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPSAwOwor CWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9IE5VTEw7CisJZGV2X3ByaXYtPnBlcmYub2Eu ZmxleF9yZWdzX2xlbiA9IDA7CisKKwlzd2l0Y2ggKGRldl9wcml2LT5wZXJmLm9hLm1ldHJpY3Nf c2V0KSB7CisJY2FzZSBNRVRSSUNfU0VUX0lEX1JFTkRFUl9CQVNJQzoKKwkJZGV2X3ByaXYtPnBl cmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X3JlbmRlcl9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2 LAorCQkJCQkJICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRl dl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0 YWJsZSBNVVggY29uZmlnIGZvciBcIlJFTkRFUl9CQVNJQ1wiIG1ldHJpYyBzZXRcbiIpOworCisJ CQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlz CisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNw YWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLwor CQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJf cmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpYzsKKwkJZGV2X3ByaXYtPnBl cmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZp Z19yZW5kZXJfYmFzaWMpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlm bGV4X2V1X2NvbmZpZ19yZW5kZXJfYmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVn c19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19yZW5kZXJfYmFzaWMpOworCisJ CXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9DT01QVVRFX0JBU0lDOgorCQlkZXZfcHJp di0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmlnKGRl dl9wcml2LAorCQkJCQkJICAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJ aWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigi Tm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJDT01QVVRFX0JBU0lDXCIgbWV0cmljIHNldFxu Iik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVj a2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0 byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAor CQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJf Y291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfY29tcHV0ZV9iYXNpYzsKKwkJZGV2 X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3Vu dGVyX2NvbmZpZ19jb21wdXRlX2Jhc2ljKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3Jl Z3MgPQorCQkJZmxleF9ldV9jb25maWdfY29tcHV0ZV9iYXNpYzsKKwkJZGV2X3ByaXYtPnBlcmYu b2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2NvbXB1dGVf YmFzaWMpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9SRU5ERVJfUElQRV9Q Uk9GSUxFOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfcmVuZGVyX3Bp cGVfcHJvZmlsZV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJCSAgICZkZXZfcHJpdi0+cGVy Zi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7 CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlJFTkRF Ul9QSVBFX1BST0ZJTEVcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2Ug Kl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdv dWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNo b3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOwor CQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVy X2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50 ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9waXBl X3Byb2ZpbGUpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1 X2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3Jl Z3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVyX3BpcGVfcHJvZmls ZSk7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX01FTU9SWV9SRUFEUzoKKwkJ ZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X21lbW9yeV9yZWFkc19tdXhfY29u ZmlnKGRldl9wcml2LAorCQkJCQkJICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4p OworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJ VkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIk1FTU9SWV9SRUFEU1wiIG1ldHJpYyBz ZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkg Y2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlz ZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0 ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5v YS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX21lbW9yeV9yZWFkczsKKwkJ ZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9j b3VudGVyX2NvbmZpZ19tZW1vcnlfcmVhZHMpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhf cmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19tZW1vcnlfcmVhZHM7CisJCWRldl9wcml2LT5wZXJm Lm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19tZW1vcnlf cmVhZHMpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9NRU1PUllfV1JJVEVT OgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfbWVtb3J5X3dyaXRlc19t dXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJICAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3Jl Z3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RF QlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJNRU1PUllfV1JJVEVTXCIg bWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMg YWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4g YWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVu IHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2 LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfbWVtb3J5X3dy aXRlczsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZ X1NJWkUoYl9jb3VudGVyX2NvbmZpZ19tZW1vcnlfd3JpdGVzKTsKKworCQlkZXZfcHJpdi0+cGVy Zi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfbWVtb3J5X3dyaXRlczsKKwkJZGV2 X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29u ZmlnX21lbW9yeV93cml0ZXMpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9D T01QVVRFX0VYVEVOREVEOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRf Y29tcHV0ZV9leHRlbmRlZF9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJCSZkZXZfcHJpdi0+ cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdz KSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIkNP TVBVVEVfRVhURU5ERURcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2Ug Kl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdv dWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNo b3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOwor CQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVy X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJf cmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfZXh0ZW5k ZWQpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZp Z19jb21wdXRlX2V4dGVuZGVkOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0K KwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfY29tcHV0ZV9leHRlbmRlZCk7CisKKwkJcmV0 dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX0NPTVBVVEVfTDNfQ0FDSEU6CisJCWRldl9wcml2 LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9jb21wdXRlX2wzX2NhY2hlX211eF9jb25maWco ZGV2X3ByaXYsCisJCQkJCQkJJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlm ICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5v IHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiQ09NUFVURV9MM19DQUNIRVwiIG1ldHJpYyBzZXRc biIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hl Y2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQg dG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQK KwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5i X2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGU7CisJ CWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJf Y291bnRlcl9jb25maWdfY29tcHV0ZV9sM19jYWNoZSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2Eu ZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGU7CisJCWRldl9w cml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZp Z19jb21wdXRlX2wzX2NhY2hlKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURf REFUQV9QT1JUX1JFQURTX0NPQUxFU0NJTkc6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdz ID0KKwkJCWdldF9kYXRhX3BvcnRfcmVhZHNfY29hbGVzY2luZ19tdXhfY29uZmlnKGRldl9wcml2 LAorCQkJCQkJCQkgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRl dl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0 YWJsZSBNVVggY29uZmlnIGZvciBcIkRBVEFfUE9SVF9SRUFEU19DT0FMRVNDSU5HXCIgbWV0cmlj IHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFk eSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0 aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVl c3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJm Lm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfZGF0YV9wb3J0X3JlYWRz X2NvYWxlc2Npbmc7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJ CQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfZGF0YV9wb3J0X3JlYWRzX2NvYWxlc2Npbmcp OworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19k YXRhX3BvcnRfcmVhZHNfY29hbGVzY2luZzsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdz X2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2RhdGFfcG9ydF9yZWFkc19jb2Fs ZXNjaW5nKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfREFUQV9QT1JUX1dS SVRFU19DT0FMRVNDSU5HOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRf ZGF0YV9wb3J0X3dyaXRlc19jb2FsZXNjaW5nX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCQkJ CSAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5w ZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVgg Y29uZmlnIGZvciBcIkRBVEFfUE9SVF9XUklURVNfQ09BTEVTQ0lOR1wiIG1ldHJpYyBzZXRcbiIp OworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tl ZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8g dXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJ CSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2Nv dW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2RhdGFfcG9ydF93cml0ZXNfY29hbGVz Y2luZzsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZ X1NJWkUoYl9jb3VudGVyX2NvbmZpZ19kYXRhX3BvcnRfd3JpdGVzX2NvYWxlc2NpbmcpOworCisJ CWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19kYXRhX3Bv cnRfd3JpdGVzX2NvYWxlc2Npbmc7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4g PQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19kYXRhX3BvcnRfd3JpdGVzX2NvYWxlc2Np bmcpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9IRENfQU5EX1NGOgorCQlk ZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfaGRjX2FuZF9zZl9tdXhfY29uZmln KGRldl9wcml2LAorCQkJCQkJICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJ aWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigi Tm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJIRENfQU5EX1NGXCIgbWV0cmljIHNldFxuIik7 CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2Vk IHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1 c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJ ICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291 bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfaGRjX2FuZF9zZjsKKwkJZGV2X3ByaXYt PnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2Nv bmZpZ19oZGNfYW5kX3NmKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJ ZmxleF9ldV9jb25maWdfaGRjX2FuZF9zZjsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdz X2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2hkY19hbmRfc2YpOworCisJCXJl dHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9MM18xOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5t dXhfcmVncyA9CisJCQlnZXRfbDNfMV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgJmRl dl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2Eu bXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcg Zm9yIFwiTDNfMVwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3Jl Z2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRu J3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxk bid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0K KworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29u ZmlnX2wzXzE7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlB UlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbDNfMSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2Eu ZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2wzXzE7CisJCWRldl9wcml2LT5wZXJmLm9h LmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19sM18xKTsKKwor CQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfTDNfMjoKKwkJZGV2X3ByaXYtPnBlcmYu b2EubXV4X3JlZ3MgPQorCQkJZ2V0X2wzXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJICAg ICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJm Lm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29u ZmlnIGZvciBcIkwzXzJcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2Ug Kl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdv dWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNo b3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOwor CQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVy X2NvbmZpZ19sM18yOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQor CQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2wzXzIpOworCisJCWRldl9wcml2LT5wZXJm Lm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19sM18yOworCQlkZXZfcHJpdi0+cGVy Zi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfbDNfMik7 CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX0wzXzM6CisJCWRldl9wcml2LT5w ZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9sM18zX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJ CSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+ cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVY IGNvbmZpZyBmb3IgXCJMM18zXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNh dXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBp dCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBz byBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZB TDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291 bnRlcl9jb25maWdfbDNfMzsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVu ID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19sM18zKTsKKworCQlkZXZfcHJpdi0+ cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfbDNfMzsKKwkJZGV2X3ByaXYt PnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2wz XzMpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9MM180OgorCQlkZXZfcHJp di0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfbDNfNF9tdXhfY29uZmlnKGRldl9wcml2LAor CQkJCQkgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3By aXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxl IE1VWCBjb25maWcgZm9yIFwiTDNfNFwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwg YmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQg c28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJ ICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1F SU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQli X2NvdW50ZXJfY29uZmlnX2wzXzQ7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdz X2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbDNfNCk7CisKKwkJZGV2X3By aXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2wzXzQ7CisJCWRldl9w cml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZp Z19sM180KTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfUkFTVEVSSVpFUl9B TkRfUElYRUxfQkFDS0VORDoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0 X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJ CQkJICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2 LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBN VVggY29uZmlnIGZvciBcIlJBU1RFUklaRVJfQU5EX1BJWEVMX0JBQ0tFTkRcIiBtZXRyaWMgc2V0 XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNo ZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2Vk IHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVk CisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2Eu Yl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhl bF9iYWNrZW5kOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQorCQkJ QVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmQp OworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19y YXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3Jl Z3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4 ZWxfYmFja2VuZCk7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX1NBTVBMRVJf MToKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X3NhbXBsZXJfMV9tdXhf Y29uZmlnKGRldl9wcml2LAorCQkJCQkJICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4p OworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJ VkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlNBTVBMRVJfMVwiIG1ldHJpYyBzZXRc biIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hl Y2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQg dG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQK KwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5i X2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX3NhbXBsZXJfMTsKKwkJZGV2X3By aXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVy X2NvbmZpZ19zYW1wbGVyXzEpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJ CQlmbGV4X2V1X2NvbmZpZ19zYW1wbGVyXzE7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVn c19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19zYW1wbGVyXzEpOworCisJCXJl dHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9TQU1QTEVSXzI6CisJCWRldl9wcml2LT5wZXJm Lm9hLm11eF9yZWdzID0KKwkJCWdldF9zYW1wbGVyXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJ CQkJCSAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+ cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVY IGNvbmZpZyBmb3IgXCJTQU1QTEVSXzJcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFM IGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5k IHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJ CSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAt RUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJ Yl9jb3VudGVyX2NvbmZpZ19zYW1wbGVyXzI7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRl cl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfc2FtcGxlcl8yKTsK KworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfc2Ft cGxlcl8yOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJ WkUoZmxleF9ldV9jb25maWdfc2FtcGxlcl8yKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJ Q19TRVRfSURfVERMXzE6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF90 ZGxfMV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICZkZXZfcHJpdi0+cGVyZi5vYS5t dXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlE Uk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlRETF8xXCIgbWV0 cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxy ZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2 ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJl cXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5w ZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfdGRsXzE7CisJCWRl dl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfdGRsXzEpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJ CQlmbGV4X2V1X2NvbmZpZ190ZGxfMTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xl biA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3RkbF8xKTsKKworCQlyZXR1cm4gMDsK KwljYXNlIE1FVFJJQ19TRVRfSURfVERMXzI6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdz ID0KKwkJCWdldF90ZGxfMl9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICZkZXZfcHJp di0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9y ZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBc IlRETF8yXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0 ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBo YXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3Qg aGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJ CWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdf dGRsXzI7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJB WV9TSVpFKGJfY291bnRlcl9jb25maWdfdGRsXzIpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZs ZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ190ZGxfMjsKKwkJZGV2X3ByaXYtPnBlcmYub2Eu ZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3RkbF8yKTsKKwor CQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfQ09NUFVURV9FWFRSQToKKwkJZGV2X3By aXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2NvbXB1dGVfZXh0cmFfbXV4X2NvbmZpZyhk ZXZfcHJpdiwKKwkJCQkJCSAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJ CWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIo Ik5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiQ09NUFVURV9FWFRSQVwiIG1ldHJpYyBzZXRc biIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hl Y2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQg dG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQK KwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5i X2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfZXh0cmE7CisJCWRl dl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfY29tcHV0ZV9leHRyYSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9y ZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2NvbXB1dGVfZXh0cmE7CisJCWRldl9wcml2LT5wZXJm Lm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19jb21wdXRl X2V4dHJhKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfVk1FX1BJUEU6CisJ CWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF92bWVfcGlwZV9tdXhfY29uZmln KGRldl9wcml2LAorCQkJCQkJJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlm ICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5v IHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiVk1FX1BJUEVcIiBtZXRyaWMgc2V0XG4iKTsKKwor CQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhp cworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJz cGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8K KwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVy X3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ192bWVfcGlwZTsKKwkJZGV2X3ByaXYtPnBlcmYu b2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ192 bWVfcGlwZSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVf Y29uZmlnX3ZtZV9waXBlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJ CUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdm1lX3BpcGUpOworCisJCXJldHVybiAwOworCWNh c2UgTUVUUklDX1NFVF9JRF9URVNUX09BOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9 CisJCQlnZXRfdGVzdF9vYV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICAgJmRldl9w cml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4 X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9y IFwiVEVTVF9PQVwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3Jl Z2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRu J3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxk bid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0K KworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29u ZmlnX3Rlc3Rfb2E7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJ CQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisKKwkJZGV2X3ByaXYtPnBl cmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJCWRldl9wcml2 LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190 ZXN0X29hKTsKKworCQlyZXR1cm4gMDsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVOT0RFVjsKKwl9 Cit9CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3JlbmRlcl9iYXNpY19pZChzdHJ1Y3QgZGV2aWNl ICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJl dHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1JFTkRFUl9CQVNJQyk7Cit9 CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9yZW5kZXJfYmFzaWNf aWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cg PSBzaG93X3JlbmRlcl9iYXNpY19pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3JlbmRlcl9iYXNpY1tdID0geworCSZkZXZfYXR0cl9yZW5k ZXJfYmFzaWNfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVf Z3JvdXAgZ3JvdXBfcmVuZGVyX2Jhc2ljID0geworCS5uYW1lID0gImI1NDFiZDU3LTBlMGYtNDE1 NC1iNGMwLTU4NTgwMTBhMmJmNyIsCisJLmF0dHJzID0gIGF0dHJzX3JlbmRlcl9iYXNpYywKK307 CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2NvbXB1dGVfYmFzaWNfaWQoc3RydWN0IGRldmljZSAq a2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1 cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9DT01QVVRFX0JBU0lDKTsKK30K Kworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2NvbXB1dGVfYmFzaWNf aWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cg PSBzaG93X2NvbXB1dGVfYmFzaWNfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlICphdHRyc19jb21wdXRlX2Jhc2ljW10gPSB7CisJJmRldl9hdHRyX2Nv bXB1dGVfYmFzaWNfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1 dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9iYXNpYyA9IHsKKwkubmFtZSA9ICIzNWZiYzliMi1hODkx LTQwYTYtYTM4ZC0wMjJiYjcwNTc1NTIiLAorCS5hdHRycyA9ICBhdHRyc19jb21wdXRlX2Jhc2lj LAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfcmVuZGVyX3BpcGVfcHJvZmlsZV9pZChzdHJ1 Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVm KQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1JFTkRFUl9Q SVBFX1BST0ZJTEUpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0 dHJfcmVuZGVyX3BpcGVfcHJvZmlsZV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAu bW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfcmVuZGVyX3BpcGVfcHJvZmlsZV9pZCwKKwku c3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3JlbmRl cl9waXBlX3Byb2ZpbGVbXSA9IHsKKwkmZGV2X2F0dHJfcmVuZGVyX3BpcGVfcHJvZmlsZV9pZC5h dHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9y ZW5kZXJfcGlwZV9wcm9maWxlID0geworCS5uYW1lID0gIjIzM2QwNTQ0LWZmZjctNDI4MS04Mjkx LWUwMmYyMjJhZmY3MiIsCisJLmF0dHJzID0gIGF0dHJzX3JlbmRlcl9waXBlX3Byb2ZpbGUsCit9 OworCitzdGF0aWMgc3NpemVfdAorc2hvd19tZW1vcnlfcmVhZHNfaWQoc3RydWN0IGRldmljZSAq a2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1 cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9NRU1PUllfUkVBRFMpOworfQor CitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfbWVtb3J5X3JlYWRzX2lk ID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0g c2hvd19tZW1vcnlfcmVhZHNfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlICphdHRyc19tZW1vcnlfcmVhZHNbXSA9IHsKKwkmZGV2X2F0dHJfbWVtb3J5 X3JlYWRzX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dy b3VwIGdyb3VwX21lbW9yeV9yZWFkcyA9IHsKKwkubmFtZSA9ICIyYjI1NWQ0OC0yMTE3LTRmZWYt YThmNy1mMTUxZTFkMjVhMmMiLAorCS5hdHRycyA9ICBhdHRyc19tZW1vcnlfcmVhZHMsCit9Owor CitzdGF0aWMgc3NpemVfdAorc2hvd19tZW1vcnlfd3JpdGVzX2lkKHN0cnVjdCBkZXZpY2UgKmtk ZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJu IHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfTUVNT1JZX1dSSVRFUyk7Cit9CisK K3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9tZW1vcnlfd3JpdGVzX2lk ID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0g c2hvd19tZW1vcnlfd3JpdGVzX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0cnNfbWVtb3J5X3dyaXRlc1tdID0geworCSZkZXZfYXR0cl9tZW1v cnlfd3JpdGVzX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl X2dyb3VwIGdyb3VwX21lbW9yeV93cml0ZXMgPSB7CisJLm5hbWUgPSAiZjdmZDMyMjAtYjQ2Ni00 YTRkLTlmOTgtYjBjYWYzZjIzOTRjIiwKKwkuYXR0cnMgPSAgYXR0cnNfbWVtb3J5X3dyaXRlcywK K307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2NvbXB1dGVfZXh0ZW5kZWRfaWQoc3RydWN0IGRl dmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sK KwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9DT01QVVRFX0VYVEVO REVEKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2NvbXB1 dGVfZXh0ZW5kZWRfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0 IH0sCisJLnNob3cgPSBzaG93X2NvbXB1dGVfZXh0ZW5kZWRfaWQsCisJLnN0b3JlID0gTlVMTCwK K307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19jb21wdXRlX2V4dGVuZGVkW10g PSB7CisJJmRldl9hdHRyX2NvbXB1dGVfZXh0ZW5kZWRfaWQuYXR0ciwKKwlOVUxMLAorfTsKKwor c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9leHRlbmRlZCA9IHsK KwkubmFtZSA9ICJlOTljY2FjYS04MjFjLTRkZjktOTdhNy05NmJkYjcyMDRlNDMiLAorCS5hdHRy cyA9ICBhdHRyc19jb21wdXRlX2V4dGVuZGVkLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3df Y29tcHV0ZV9sM19jYWNoZV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4i LCBNRVRSSUNfU0VUX0lEX0NPTVBVVEVfTDNfQ0FDSEUpOworfQorCitzdGF0aWMgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfY29tcHV0ZV9sM19jYWNoZV9pZCA9IHsKKwkuYXR0ciA9 IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfY29tcHV0ZV9s M19jYWNoZV9pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHJzX2NvbXB1dGVfbDNfY2FjaGVbXSA9IHsKKwkmZGV2X2F0dHJfY29tcHV0ZV9sM19j YWNoZV9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91 cCBncm91cF9jb21wdXRlX2wzX2NhY2hlID0geworCS5uYW1lID0gIjI3YTM2NGRjLTgyMjUtNGVj Yi1iNjA3LWQ2ZjE5MjU1OThkOSIsCisJLmF0dHJzID0gIGF0dHJzX2NvbXB1dGVfbDNfY2FjaGUs Cit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19kYXRhX3BvcnRfcmVhZHNfY29hbGVzY2luZ19p ZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hh ciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX0RB VEFfUE9SVF9SRUFEU19DT0FMRVNDSU5HKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlIGRldl9hdHRyX2RhdGFfcG9ydF9yZWFkc19jb2FsZXNjaW5nX2lkID0geworCS5hdHRy ID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19kYXRhX3Bv cnRfcmVhZHNfY29hbGVzY2luZ19pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX2RhdGFfcG9ydF9yZWFkc19jb2FsZXNjaW5nW10gPSB7CisJ JmRldl9hdHRyX2RhdGFfcG9ydF9yZWFkc19jb2FsZXNjaW5nX2lkLmF0dHIsCisJTlVMTCwKK307 CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2RhdGFfcG9ydF9yZWFkc19j b2FsZXNjaW5nID0geworCS5uYW1lID0gIjg1N2ZjNjMwLTJmMDktNDgwNC04NWYxLTA4NGFkZmFk ZDVhYiIsCisJLmF0dHJzID0gIGF0dHJzX2RhdGFfcG9ydF9yZWFkc19jb2FsZXNjaW5nLAorfTsK Kworc3RhdGljIHNzaXplX3QKK3Nob3dfZGF0YV9wb3J0X3dyaXRlc19jb2FsZXNjaW5nX2lkKHN0 cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpi dWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfREFUQV9Q T1JUX1dSSVRFU19DT0FMRVNDSU5HKTsKK30KIAotCXN3aXRjaCAoZGV2X3ByaXYtPnBlcmYub2Eu bWV0cmljc19zZXQpIHsKLQljYXNlIE1FVFJJQ19TRVRfSURfUkVOREVSX0JBU0lDOgotCQlkZXZf cHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9Ci0JCQlnZXRfcmVuZGVyX2Jhc2ljX211eF9jb25maWco ZGV2X3ByaXYsCi0JCQkJCQkgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7Ci0J CWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKLQkJCURSTV9ERUJVR19EUklWRVIo Ik5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiUkVOREVSX0JBU0lDXCIgbWV0cmljIHNldFxu Iik7CitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfZGF0YV9wb3J0X3dy aXRlc19jb2FsZXNjaW5nX2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0g MDQ0NCB9LAorCS5zaG93ID0gc2hvd19kYXRhX3BvcnRfd3JpdGVzX2NvYWxlc2NpbmdfaWQsCisJ LnN0b3JlID0gTlVMTCwKK307CiAKLQkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lz ZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKLQkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJl ZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCi0JCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBi ZWVuIHJlcXVlc3RlZAotCQkJICovCi0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQorc3RhdGljIHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX2RhdGFfcG9ydF93cml0ZXNfY29hbGVzY2luZ1tdID0gewor CSZkZXZfYXR0cl9kYXRhX3BvcnRfd3JpdGVzX2NvYWxlc2NpbmdfaWQuYXR0ciwKKwlOVUxMLAor fTsKIAotCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9Ci0JCQliX2NvdW50ZXJf Y29uZmlnX3JlbmRlcl9iYXNpYzsKLQkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3Nf bGVuID0KLQkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWMpOworc3Rh dGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfZGF0YV9wb3J0X3dyaXRlc19jb2FsZXNj aW5nID0geworCS5uYW1lID0gIjM0M2ViYzk5LTRhNTUtNDE0Yy04YzE3LWQ4ZTI1OWNmNWUyMCIs CisJLmF0dHJzID0gIGF0dHJzX2RhdGFfcG9ydF93cml0ZXNfY29hbGVzY2luZywKK307CiAKLQkJ ZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KLQkJCWZsZXhfZXVfY29uZmlnX3JlbmRlcl9i YXNpYzsKLQkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9Ci0JCQlBUlJBWV9TSVpF KGZsZXhfZXVfY29uZmlnX3JlbmRlcl9iYXNpYyk7CitzdGF0aWMgc3NpemVfdAorc2hvd19oZGNf YW5kX3NmX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICph dHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19T RVRfSURfSERDX0FORF9TRik7Cit9CiAKLQkJcmV0dXJuIDA7Ci0JZGVmYXVsdDoKLQkJcmV0dXJu IC1FTk9ERVY7Ci0JfQorc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2hk Y19hbmRfc2ZfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0s CisJLnNob3cgPSBzaG93X2hkY19hbmRfc2ZfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0 YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19oZGNfYW5kX3NmW10gPSB7CisJJmRldl9hdHRy X2hkY19hbmRfc2ZfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1 dGVfZ3JvdXAgZ3JvdXBfaGRjX2FuZF9zZiA9IHsKKwkubmFtZSA9ICIyY2YwYzA2NC02OGRmLTRm YWMtOWIzZi01N2Y1MWNhOGEwNjkiLAorCS5hdHRycyA9ICBhdHRyc19oZGNfYW5kX3NmLAorfTsK Kworc3RhdGljIHNzaXplX3QKK3Nob3dfbDNfMV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRm KGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX0wzXzEpOwogfQogCitzdGF0aWMgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfbDNfMV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAi aWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfbDNfMV9pZCwKKwkuc3RvcmUgPSBO VUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX2wzXzFbXSA9IHsKKwkm ZGV2X2F0dHJfbDNfMV9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJp YnV0ZV9ncm91cCBncm91cF9sM18xID0geworCS5uYW1lID0gIjc4YTg3ZmY5LTU0M2EtNDljZS05 NWVhLTI2ZDg2MDcxZWE5MyIsCisJLmF0dHJzID0gIGF0dHJzX2wzXzEsCit9OworCiBzdGF0aWMg c3NpemVfdAotc2hvd19yZW5kZXJfYmFzaWNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3Nob3dfbDNfMl9pZChzdHJ1Y3Qg ZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQog ewotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1JFTkRFUl9CQVNJ Qyk7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfTDNfMik7CiB9 CiAKLXN0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9yZW5kZXJfYmFzaWNf aWQgPSB7CitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfbDNfMl9pZCA9 IHsKIAkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKLQkuc2hvdyA9IHNo b3dfcmVuZGVyX2Jhc2ljX2lkLAorCS5zaG93ID0gc2hvd19sM18yX2lkLAogCS5zdG9yZSA9IE5V TEwsCiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfcmVuZGVyX2Jhc2ljW10g PSB7Ci0JJmRldl9hdHRyX3JlbmRlcl9iYXNpY19pZC5hdHRyLAorc3RhdGljIHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHJzX2wzXzJbXSA9IHsKKwkmZGV2X2F0dHJfbDNfMl9pZC5hdHRyLAogCU5VTEws CiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9yZW5kZXJfYmFzaWMg PSB7Ci0JLm5hbWUgPSAiYjU0MWJkNTctMGUwZi00MTU0LWI0YzAtNTg1ODAxMGEyYmY3IiwKLQku YXR0cnMgPSAgYXR0cnNfcmVuZGVyX2Jhc2ljLAorc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv dXAgZ3JvdXBfbDNfMiA9IHsKKwkubmFtZSA9ICI5ZjJjZWNlNS03YmZlLTQzMjAtYWQ2Ni04Yzdj YzUyNmJlYzUiLAorCS5hdHRycyA9ICBhdHRyc19sM18yLAorfTsKKworc3RhdGljIHNzaXplX3QK K3Nob3dfbDNfM19pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRS SUNfU0VUX0lEX0wzXzMpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2 X2F0dHJfbDNfM19pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQg fSwKKwkuc2hvdyA9IHNob3dfbDNfM19pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX2wzXzNbXSA9IHsKKwkmZGV2X2F0dHJfbDNfM19pZC5h dHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9s M18zID0geworCS5uYW1lID0gImQ4OTBlZjM4LWQzMDktNDdlNC1iOGI1LWFhNzc5YmIxOWFiMCIs CisJLmF0dHJzID0gIGF0dHJzX2wzXzMsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19sM180 X2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBj aGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURf TDNfNCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9sM180 X2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93 ID0gc2hvd19sM180X2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cnNfbDNfNFtdID0geworCSZkZXZfYXR0cl9sM180X2lkLmF0dHIsCisJTlVM TCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2wzXzQgPSB7CisJ Lm5hbWUgPSAiNWZkZmY0YTYtOWRjOC00NWUxLWJmZGEtZWY1NDg2OWZiZGQ0IiwKKwkuYXR0cnMg PSAgYXR0cnNfbDNfNCwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Jhc3Rlcml6ZXJfYW5k X3BpeGVsX2JhY2tlbmRfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwg TUVUUklDX1NFVF9JRF9SQVNURVJJWkVSX0FORF9QSVhFTF9CQUNLRU5EKTsKK30KKworc3RhdGlj IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2Jh Y2tlbmRfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJ LnNob3cgPSBzaG93X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfaWQsCisJLnN0b3JlID0g TlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19yYXN0ZXJpemVyX2Fu ZF9waXhlbF9iYWNrZW5kW10gPSB7CisJJmRldl9hdHRyX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2Jh Y2tlbmRfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv dXAgZ3JvdXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCA9IHsKKwkubmFtZSA9ICIyYzBl NDVlMS03ZTJjLTRhMTQtYWUwMC0wYjdlYzg2OGI4YWEiLAorCS5hdHRycyA9ICBhdHRyc19yYXN0 ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfc2Ft cGxlcl8xX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICph dHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19T RVRfSURfU0FNUExFUl8xKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRl dl9hdHRyX3NhbXBsZXJfMV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9 IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfc2FtcGxlcl8xX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9 OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfc2FtcGxlcl8xW10gPSB7CisJJmRl dl9hdHRyX3NhbXBsZXJfMV9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZV9ncm91cCBncm91cF9zYW1wbGVyXzEgPSB7CisJLm5hbWUgPSAiNzExNDhkNzgtYmFm NS00NzRmLTg3OGEtZTIzMTU4ZDAyNjVkIiwKKwkuYXR0cnMgPSAgYXR0cnNfc2FtcGxlcl8xLAor fTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfc2FtcGxlcl8yX2lkKHN0cnVjdCBkZXZpY2UgKmtk ZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJu IHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfU0FNUExFUl8yKTsKK30KKworc3Rh dGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3NhbXBsZXJfMl9pZCA9IHsKKwku YXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfc2Ft cGxlcl8yX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0 ZSAqYXR0cnNfc2FtcGxlcl8yW10gPSB7CisJJmRldl9hdHRyX3NhbXBsZXJfMl9pZC5hdHRyLAor CU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9zYW1wbGVy XzIgPSB7CisJLm5hbWUgPSAiYjk5NmEyYjctYzU5Yy00OTJkLTg3N2EtOGNkNTRmZDZkZjg0IiwK KwkuYXR0cnMgPSAgYXR0cnNfc2FtcGxlcl8yLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3df dGRsXzFfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0 dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NF VF9JRF9URExfMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0 cl90ZGxfMV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwK Kwkuc2hvdyA9IHNob3dfdGRsXzFfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlICphdHRyc190ZGxfMVtdID0geworCSZkZXZfYXR0cl90ZGxfMV9pZC5h dHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF90 ZGxfMSA9IHsKKwkubmFtZSA9ICJlYjJmZWNiYS1iNDMxLTQyZTctODI2MS1mZTk0MjlhNmU2N2Ei LAorCS5hdHRycyA9ICBhdHRyc190ZGxfMSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Rk bF8yX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy LCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRf SURfVERMXzIpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJf dGRsXzJfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJ LnNob3cgPSBzaG93X3RkbF8yX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0cnNfdGRsXzJbXSA9IHsKKwkmZGV2X2F0dHJfdGRsXzJfaWQuYXR0 ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfdGRs XzIgPSB7CisJLm5hbWUgPSAiNjA3NDk0NzAtYTY0OC00YTRiLTlmMTAtZGJmZTFlMzZlNDRkIiwK KwkuYXR0cnMgPSAgYXR0cnNfdGRsXzIsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19jb21w dXRlX2V4dHJhX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJ Q19TRVRfSURfQ09NUFVURV9FWFRSQSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJp YnV0ZSBkZXZfYXR0cl9jb21wdXRlX2V4dHJhX2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJp ZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19jb21wdXRlX2V4dHJhX2lkLAorCS5z dG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfY29tcHV0 ZV9leHRyYVtdID0geworCSZkZXZfYXR0cl9jb21wdXRlX2V4dHJhX2lkLmF0dHIsCisJTlVMTCwK K307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2NvbXB1dGVfZXh0cmEg PSB7CisJLm5hbWUgPSAiOGZiNjFiYTItMmZiYi00NTRjLWExMzYtMmRlYzVhOGE1OTVlIiwKKwku YXR0cnMgPSAgYXR0cnNfY29tcHV0ZV9leHRyYSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93 X3ZtZV9waXBlX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJ Q19TRVRfSURfVk1FX1BJUEUpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg ZGV2X2F0dHJfdm1lX3BpcGVfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUg PSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3ZtZV9waXBlX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9 OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfdm1lX3BpcGVbXSA9IHsKKwkmZGV2 X2F0dHJfdm1lX3BpcGVfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRy aWJ1dGVfZ3JvdXAgZ3JvdXBfdm1lX3BpcGUgPSB7CisJLm5hbWUgPSAiZTE3NDNjYTAtN2ZjOC00 MTBiLWEwNjYtZGU3YmJiOTI4MGI3IiwKKwkuYXR0cnMgPSAgYXR0cnNfdm1lX3BpcGUsCit9Owor CitzdGF0aWMgc3NpemVfdAorc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmlu dGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfVEVTVF9PQSk7Cit9CisKK3N0YXRpYyBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl90ZXN0X29hX2lkID0geworCS5hdHRyID0geyAu bmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd190ZXN0X29hX2lkLAor CS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfdGVz dF9vYVtdID0geworCSZkZXZfYXR0cl90ZXN0X29hX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0 YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3Rlc3Rfb2EgPSB7CisJLm5hbWUgPSAi ZDZkZTZmNTUtZTUyNi00Zjc5LWE2YTYtZDczMTVjMDkwNDRlIiwKKwkuYXR0cnMgPSAgYXR0cnNf dGVzdF9vYSwKIH07CiAKIGludApAQCAtMzYzLDkgKzQ5MjcsMTc3IEBAIGk5MTVfcGVyZl9yZWdp c3Rlcl9zeXNmc19iZHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlpZiAo cmV0KQogCQkJZ290byBlcnJvcl9yZW5kZXJfYmFzaWM7CiAJfQorCWlmIChnZXRfY29tcHV0ZV9i YXNpY19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3Jl YXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfYmFz aWMpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9jb21wdXRlX2Jhc2ljOworCX0KKwlpZiAo Z2V0X3JlbmRlcl9waXBlX3Byb2ZpbGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7 CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmos ICZncm91cF9yZW5kZXJfcGlwZV9wcm9maWxlKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jf cmVuZGVyX3BpcGVfcHJvZmlsZTsKKwl9CisJaWYgKGdldF9tZW1vcnlfcmVhZHNfbXV4X2NvbmZp ZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZf cHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfcmVhZHMpOworCQlpZiAocmV0 KQorCQkJZ290byBlcnJvcl9tZW1vcnlfcmVhZHM7CisJfQorCWlmIChnZXRfbWVtb3J5X3dyaXRl c19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRl X2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX21lbW9yeV93cml0ZXMp OworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9tZW1vcnlfd3JpdGVzOworCX0KKwlpZiAoZ2V0 X2NvbXB1dGVfZXh0ZW5kZWRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJl dCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91 cF9jb21wdXRlX2V4dGVuZGVkKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfY29tcHV0ZV9l eHRlbmRlZDsKKwl9CisJaWYgKGdldF9jb21wdXRlX2wzX2NhY2hlX211eF9jb25maWcoZGV2X3By aXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBl cmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9sM19jYWNoZSk7CisJCWlmIChyZXQpCisJ CQlnb3RvIGVycm9yX2NvbXB1dGVfbDNfY2FjaGU7CisJfQorCWlmIChnZXRfZGF0YV9wb3J0X3Jl YWRzX2NvYWxlc2NpbmdfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9 IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9k YXRhX3BvcnRfcmVhZHNfY29hbGVzY2luZyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2Rh dGFfcG9ydF9yZWFkc19jb2FsZXNjaW5nOworCX0KKwlpZiAoZ2V0X2RhdGFfcG9ydF93cml0ZXNf Y29hbGVzY2luZ19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lz ZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2RhdGFf cG9ydF93cml0ZXNfY29hbGVzY2luZyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2RhdGFf cG9ydF93cml0ZXNfY29hbGVzY2luZzsKKwl9CisJaWYgKGdldF9oZGNfYW5kX3NmX211eF9jb25m aWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2 X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfaGRjX2FuZF9zZik7CisJCWlmIChyZXQp CisJCQlnb3RvIGVycm9yX2hkY19hbmRfc2Y7CisJfQorCWlmIChnZXRfbDNfMV9tdXhfY29uZmln KGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9w cml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzEpOworCQlpZiAocmV0KQorCQkJZ290 byBlcnJvcl9sM18xOworCX0KKwlpZiAoZ2V0X2wzXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11 eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRy aWNzX2tvYmosICZncm91cF9sM18yKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfbDNfMjsK Kwl9CisJaWYgKGdldF9sM18zX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQly ZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3Jv dXBfbDNfMyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2wzXzM7CisJfQorCWlmIChnZXRf bDNfNF9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3Jl YXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzQpOworCQlp ZiAocmV0KQorCQkJZ290byBlcnJvcl9sM180OworCX0KKwlpZiAoZ2V0X3Jhc3Rlcml6ZXJfYW5k X3BpeGVsX2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9 IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9y YXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jf cmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZDsKKwl9CisJaWYgKGdldF9zYW1wbGVyXzFfbXV4 X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91 cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9zYW1wbGVyXzEpOworCQlpZiAo cmV0KQorCQkJZ290byBlcnJvcl9zYW1wbGVyXzE7CisJfQorCWlmIChnZXRfc2FtcGxlcl8yX211 eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3Jv dXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfc2FtcGxlcl8yKTsKKwkJaWYg KHJldCkKKwkJCWdvdG8gZXJyb3Jfc2FtcGxlcl8yOworCX0KKwlpZiAoZ2V0X3RkbF8xX211eF9j b25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAo ZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzEpOworCQlpZiAocmV0KQor CQkJZ290byBlcnJvcl90ZGxfMTsKKwl9CisJaWYgKGdldF90ZGxfMl9tdXhfY29uZmlnKGRldl9w cml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5w ZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8yKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJy b3JfdGRsXzI7CisJfQorCWlmIChnZXRfY29tcHV0ZV9leHRyYV9tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJm Lm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfZXh0cmEpOworCQlpZiAocmV0KQorCQkJZ290 byBlcnJvcl9jb21wdXRlX2V4dHJhOworCX0KKwlpZiAoZ2V0X3ZtZV9waXBlX211eF9jb25maWco ZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3By aXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdm1lX3BpcGUpOworCQlpZiAocmV0KQorCQkJ Z290byBlcnJvcl92bWVfcGlwZTsKKwl9CisJaWYgKGdldF90ZXN0X29hX211eF9jb25maWcoZGV2 X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYt PnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGVzdF9vYSk7CisJCWlmIChyZXQpCisJCQlnb3Rv IGVycm9yX3Rlc3Rfb2E7CisJfQogCiAJcmV0dXJuIDA7CiAKK2Vycm9yX3Rlc3Rfb2E6CisJaWYg KGdldF92bWVfcGlwZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF92bWVfcGlwZSk7 CitlcnJvcl92bWVfcGlwZToKKwlpZiAoZ2V0X2NvbXB1dGVfZXh0cmFfbXV4X2NvbmZpZyhkZXZf cHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0 cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9leHRyYSk7CitlcnJvcl9jb21wdXRlX2V4dHJhOgor CWlmIChnZXRfdGRsXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19y ZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzIpOwor ZXJyb3JfdGRsXzI6CisJaWYgKGdldF90ZGxfMV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xl bikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZn cm91cF90ZGxfMSk7CitlcnJvcl90ZGxfMToKKwlpZiAoZ2V0X3NhbXBsZXJfMl9tdXhfY29uZmln KGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVy Zi5tZXRyaWNzX2tvYmosICZncm91cF9zYW1wbGVyXzIpOworZXJyb3Jfc2FtcGxlcl8yOgorCWlm IChnZXRfc2FtcGxlcl8xX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNf cmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3NhbXBsZXJf MSk7CitlcnJvcl9zYW1wbGVyXzE6CisJaWYgKGdldF9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNr ZW5kX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3Vw KGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Jhc3Rlcml6ZXJfYW5kX3BpeGVs X2JhY2tlbmQpOworZXJyb3JfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZDoKKwlpZiAoZ2V0 X2wzXzRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3Jv dXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbDNfNCk7CitlcnJvcl9sM180 OgorCWlmIChnZXRfbDNfM19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2Zz X3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9sM18zKTsK K2Vycm9yX2wzXzM6CisJaWYgKGdldF9sM18yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVu KSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdy b3VwX2wzXzIpOworZXJyb3JfbDNfMjoKKwlpZiAoZ2V0X2wzXzFfbXV4X2NvbmZpZyhkZXZfcHJp diwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmlj c19rb2JqLCAmZ3JvdXBfbDNfMSk7CitlcnJvcl9sM18xOgorCWlmIChnZXRfaGRjX2FuZF9zZl9t dXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZf cHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9oZGNfYW5kX3NmKTsKK2Vycm9yX2hkY19h bmRfc2Y6CisJaWYgKGdldF9kYXRhX3BvcnRfd3JpdGVzX2NvYWxlc2NpbmdfbXV4X2NvbmZpZyhk ZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYu bWV0cmljc19rb2JqLCAmZ3JvdXBfZGF0YV9wb3J0X3dyaXRlc19jb2FsZXNjaW5nKTsKK2Vycm9y X2RhdGFfcG9ydF93cml0ZXNfY29hbGVzY2luZzoKKwlpZiAoZ2V0X2RhdGFfcG9ydF9yZWFkc19j b2FsZXNjaW5nX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3Zl X2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2RhdGFfcG9ydF9yZWFk c19jb2FsZXNjaW5nKTsKK2Vycm9yX2RhdGFfcG9ydF9yZWFkc19jb2FsZXNjaW5nOgorCWlmIChn ZXRfY29tcHV0ZV9sM19jYWNoZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5 c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21w dXRlX2wzX2NhY2hlKTsKK2Vycm9yX2NvbXB1dGVfbDNfY2FjaGU6CisJaWYgKGdldF9jb21wdXRl X2V4dGVuZGVkX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3Zl X2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfZXh0ZW5k ZWQpOworZXJyb3JfY29tcHV0ZV9leHRlbmRlZDoKKwlpZiAoZ2V0X21lbW9yeV93cml0ZXNfbXV4 X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3By aXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbWVtb3J5X3dyaXRlcyk7CitlcnJvcl9tZW1v cnlfd3JpdGVzOgorCWlmIChnZXRfbWVtb3J5X3JlYWRzX211eF9jb25maWcoZGV2X3ByaXYsICZt dXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29i aiwgJmdyb3VwX21lbW9yeV9yZWFkcyk7CitlcnJvcl9tZW1vcnlfcmVhZHM6CisJaWYgKGdldF9y ZW5kZXJfcGlwZV9wcm9maWxlX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lz ZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRl cl9waXBlX3Byb2ZpbGUpOworZXJyb3JfcmVuZGVyX3BpcGVfcHJvZmlsZToKKwlpZiAoZ2V0X2Nv bXB1dGVfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1v dmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9iYXNp Yyk7CitlcnJvcl9jb21wdXRlX2Jhc2ljOgorCWlmIChnZXRfcmVuZGVyX2Jhc2ljX211eF9jb25m aWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5w ZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9iYXNpYyk7CiBlcnJvcl9yZW5kZXJfYmFz aWM6CiAJcmV0dXJuIHJldDsKIH0KQEAgLTM3Nyw0ICs1MTA5LDQ2IEBAIGk5MTVfcGVyZl91bnJl Z2lzdGVyX3N5c2ZzX2JkdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlp ZiAoZ2V0X3JlbmRlcl9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCiAJCXN5 c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9yZW5k ZXJfYmFzaWMpOworCWlmIChnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2LCAm bXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tv YmosICZncm91cF9jb21wdXRlX2Jhc2ljKTsKKwlpZiAoZ2V0X3JlbmRlcl9waXBlX3Byb2ZpbGVf bXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2 X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmVuZGVyX3BpcGVfcHJvZmlsZSk7CisJ aWYgKGdldF9tZW1vcnlfcmVhZHNfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlz eXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbWVt b3J5X3JlYWRzKTsKKwlpZiAoZ2V0X21lbW9yeV93cml0ZXNfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19r b2JqLCAmZ3JvdXBfbWVtb3J5X3dyaXRlcyk7CisJaWYgKGdldF9jb21wdXRlX2V4dGVuZGVkX211 eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9w cml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfZXh0ZW5kZWQpOworCWlmIChn ZXRfY29tcHV0ZV9sM19jYWNoZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5 c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21w dXRlX2wzX2NhY2hlKTsKKwlpZiAoZ2V0X2RhdGFfcG9ydF9yZWFkc19jb2FsZXNjaW5nX211eF9j b25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2 LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2RhdGFfcG9ydF9yZWFkc19jb2FsZXNjaW5nKTsK KwlpZiAoZ2V0X2RhdGFfcG9ydF93cml0ZXNfY29hbGVzY2luZ19tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9kYXRhX3BvcnRfd3JpdGVzX2NvYWxlc2NpbmcpOworCWlmIChnZXRfaGRj X2FuZF9zZl9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9n cm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9oZGNfYW5kX3NmKTsKKwlp ZiAoZ2V0X2wzXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1v dmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbDNfMSk7CisJaWYg KGdldF9sM18yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3Zl X2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzIpOworCWlmIChn ZXRfbDNfM19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9n cm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9sM18zKTsKKwlpZiAoZ2V0 X2wzXzRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3Jv dXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbDNfNCk7CisJaWYgKGdldF9y YXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVu KSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdy b3VwX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmQpOworCWlmIChnZXRfc2FtcGxlcl8xX211 eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9w cml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3NhbXBsZXJfMSk7CisJaWYgKGdldF9zYW1w bGVyXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3Jv dXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfc2FtcGxlcl8yKTsKKwlpZiAo Z2V0X3RkbF8xX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3Zl X2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8xKTsKKwlpZiAo Z2V0X3RkbF8yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3Zl X2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8yKTsKKwlpZiAo Z2V0X2NvbXB1dGVfZXh0cmFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNm c19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0 ZV9leHRyYSk7CisJaWYgKGdldF92bWVfcGlwZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xl bikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZn cm91cF92bWVfcGlwZSk7CisJaWYgKGdldF90ZXN0X29hX211eF9jb25maWcoZGV2X3ByaXYsICZt dXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29i aiwgJmdyb3VwX3Rlc3Rfb2EpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9vYV9ieHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYnh0LmMKaW5kZXgg YjEwZTQ0NjQzYmMxLi43YmM5NzlhN2MxNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfb2FfYnh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9ieHQu YwpAQCAtMzEsOSArMzEsMjMgQEAKIAogZW51bSBtZXRyaWNfc2V0X2lkIHsKIAlNRVRSSUNfU0VU X0lEX1JFTkRFUl9CQVNJQyA9IDEsCisJTUVUUklDX1NFVF9JRF9DT01QVVRFX0JBU0lDLAorCU1F VFJJQ19TRVRfSURfUkVOREVSX1BJUEVfUFJPRklMRSwKKwlNRVRSSUNfU0VUX0lEX01FTU9SWV9S RUFEUywKKwlNRVRSSUNfU0VUX0lEX01FTU9SWV9XUklURVMsCisJTUVUUklDX1NFVF9JRF9DT01Q VVRFX0VYVEVOREVELAorCU1FVFJJQ19TRVRfSURfQ09NUFVURV9MM19DQUNIRSwKKwlNRVRSSUNf U0VUX0lEX0hEQ19BTkRfU0YsCisJTUVUUklDX1NFVF9JRF9MM18xLAorCU1FVFJJQ19TRVRfSURf UkFTVEVSSVpFUl9BTkRfUElYRUxfQkFDS0VORCwKKwlNRVRSSUNfU0VUX0lEX1NBTVBMRVIsCisJ TUVUUklDX1NFVF9JRF9URExfMSwKKwlNRVRSSUNfU0VUX0lEX1RETF8yLAorCU1FVFJJQ19TRVRf SURfQ09NUFVURV9FWFRSQSwKKwlNRVRSSUNfU0VUX0lEX1RFU1RfT0EsCiB9OwogCi1pbnQgaTkx NV9vYV9uX2J1aWx0aW5fbWV0cmljX3NldHNfYnh0ID0gMTsKK2ludCBpOTE1X29hX25fYnVpbHRp bl9tZXRyaWNfc2V0c19ieHQgPSAxNTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3Jl ZyBiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpY1tdID0gewogCXsgX01NSU8oMHgyNzEwKSwg MHgwMDAwMDAwMCB9LApAQCAtMTQ4LDYgKzE2MiwxNDk3IEBAIGdldF9yZW5kZXJfYmFzaWNfbXV4 X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0dXJuIE5VTEw7 CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19j b21wdXRlX2Jhc2ljW10gPSB7CisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBf TU1JTygweDI3MTQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAw IH0sCisJeyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NDApLCAw eDAwMDAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhf ZXVfY29uZmlnX2NvbXB1dGVfYmFzaWNbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUw MDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCks IDB4MDAwMDIwMDEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDA3NzgwMDggfSwKKwl7IF9NTUlP KDB4ZTQ1YyksIDB4MDAwODgwNzggfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDA4MDg3MDggfSwK Kwl7IF9NTUlPKDB4ZTY1YyksIDB4MDBhMDg5MDggfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19jb21wdXRlX2Jhc2ljW10gPSB7CisJeyBfTU1JTygw eDk4ODgpLCAweDEwNGYwMGUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEyNGYxYzAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDM5OTAwMzQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNmOTAw YzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAwMmQ1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmQ0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA4MmQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMmQxMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBjMmQ1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBl MmQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMmUxNDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlMmU1MTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMmUwMTE0IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0NGNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGM4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBlNGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNGM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDEyNGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2NGMyMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAwNGVhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NGU4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBhNGUyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNGVhMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlNGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNGY2YjQyIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA2NGY2MjAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4 NGY0MTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGYwMDYxIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBjNGY2YzRjIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNGY0YjAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFhNGYwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjNGYwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MGY1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFhMGY4ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjMGYwOGEyIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE4MmM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjMmMxNDUxIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFlMmMwMDAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhMmMw MDEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBmOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTM4YTI4IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAzOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTAwMTc3IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFiOTAwMTc4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFk OTAwMTI1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTAwMTIzIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDM1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzOTA0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDIxOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OTA0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDJiOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJkOTA0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDMxOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1OTA0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDUzOTAxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzOTAw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU1OTAwMTExIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDQ3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU3OTAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDQ5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3 OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDRkOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwMDAwIH0sCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9jb21wdXRlX2Jhc2ljX211 eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICBpbnQg KmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2NvbXB1dGVfYmFzaWMpOwor CXJldHVybiBtdXhfY29uZmlnX2NvbXB1dGVfYmFzaWM7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlW10gPSB7 CisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAw MDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3 MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBf TU1JTygweDI3NzApLCAweDAwMDdmZmVhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDA3ZmZj IH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDdhZmZhIH0sCisJeyBfTU1JTygweDI3N2MpLCAw eDAwMDBmNWZkIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDc5ZmZhIH0sCisJeyBfTU1JTygw eDI3ODQpLCAweDAwMDBmM2ZiIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdiZjdhIH0sCisJ eyBfTU1JTygweDI3OGMpLCAweDAwMDBmN2U3IH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDdm ZWZhIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmN2NmIH0sCisJeyBfTU1JTygweDI3OTgp LCAweDAwMDc3ZmZhIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBlZmRmIH0sCisJeyBfTU1J TygweDI3YTApLCAweDAwMDZmZmZhIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBjZmJmIH0s CisJeyBfTU1JTygweDI3YTgpLCAweDAwMDNmZmZhIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAw MDA1ZjdmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVf Y29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGVbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAw MDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTY1 OCksIDB4MDAwMjUwMjQgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMzUwMzQgfSwKKwl7IF9N TUlPKDB4ZTQ1YyksIDB4MDAwNDUwNDQgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTUwNTQg fSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAwNjUwNjQgfSwKK307CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlW10gPSB7CisJ eyBfTU1JTygweDk4ODgpLCAweDBjMmUwMDFmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMmYw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMTg2ODAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDExODEwMDE5IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1ODEwMDEzIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEzODIwMDIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODMwMDIwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE3ODQwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEx ODYwMDA3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODYwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE3ODcwM2UwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMmQ4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0MmQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmQxMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMmU1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwMmUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMmUwMDgwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA4MmYwMDQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMmYwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA2MTQzMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MTc0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MTgwMDEyIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAwMTgwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODA0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBmODA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODA0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA5ODEwMjAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBi ODEwMDMwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODEwMDAzIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDIxODE5MTQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzODE5MDUwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDI1ODEwMDE4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODIwOTgw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODIwZDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDExODIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODJjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3ODI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODI0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBmODI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODMw MDA0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODMwMDBjIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBmODMxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODQ4MDcyIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDExODQwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODQ4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA5ODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBm ODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODYwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA5ODYwMDkyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODYwNDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAxODY5MTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODcwMDY1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODcwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE5OTMwODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOTM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBkOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTUyMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFkOTU1MDU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTUx NDU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OTJhMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBmOTI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTJhODAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEzOTIwMjhhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOTJhMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBkOTIyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEz OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxOTA4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDIzOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OTA4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDI3OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI5OTA4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJiOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDJkOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJmOTA4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDMxOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1OTA4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDE3OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTA4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFkOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTA0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDUzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzOTAwYzAxIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3 OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDQ5OTAwODYzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDRiOTAwMDYxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDRkOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwYzIyIH0sCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9yZW5kZXJfcGlwZV9wcm9maWxlX211 eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgIGludCAq bGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfcmVuZGVyX3BpcGVfcHJvZmls ZSk7CisJcmV0dXJuIG11eF9jb25maWdfcmVuZGVyX3BpcGVfcHJvZmlsZTsKK30KKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX21lbW9yeV9yZWFkc1td ID0geworCXsgX01NSU8oMHgyNzJjKSwgMHhmZmZmZmZmZiB9LAorCXsgX01NSU8oMHgyNzI4KSwg MHhmZmZmZmZmZiB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8o MHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzFjKSwgMHhmZmZmZmZmZiB9LAor CXsgX01NSU8oMHgyNzE4KSwgMHhmZmZmZmZmZiB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgw MDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzRj KSwgMHg4NjU0MzIxMCB9LAorCXsgX01NSU8oMHgyNzQ4KSwgMHg4NjU0MzIxMCB9LAorCXsgX01N SU8oMHgyNzQ0KSwgMHgwMDAwNjY2NyB9LAorCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzVjKSwgMHg4NjU0MzIxMCB9LAorCXsgX01NSU8oMHgyNzU4KSwgMHg4 NjU0MzIxMCB9LAorCXsgX01NSU8oMHgyNzU0KSwgMHgwMDAwNjQ2NSB9LAorCXsgX01NSU8oMHgy NzUwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDA3ZjgxYSB9LAorCXsg X01NSU8oMHgyNzc0KSwgMHgwMDAwZmUwMCB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDA3Zjgy YSB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwZmUwMCB9LAorCXsgX01NSU8oMHgyNzgwKSwg MHgwMDA3Zjg3MiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwZmUwMCB9LAorCXsgX01NSU8o MHgyNzg4KSwgMHgwMDA3ZjhiYSB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmUwMCB9LAor CXsgX01NSU8oMHgyNzkwKSwgMHgwMDA3Zjg3YSB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAw ZmUwMCB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDA3ZjhlYSB9LAorCXsgX01NSU8oMHgyNzlj KSwgMHgwMDAwZmUwMCB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDA3ZjhlMiB9LAorCXsgX01N SU8oMHgyN2E0KSwgMHgwMDAwZmUwMCB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDA3ZjhmMiB9 LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmUwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19tZW1vcnlfcmVhZHNbXSA9IHsKKwl7IF9N TUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTUwMTQg fSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMjUwMjQgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4 MDAwMzUwMzQgfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwNDUwNDQgfSwKKwl7IF9NTUlPKDB4 ZTU1YyksIDB4MDAwNTUwNTQgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAwNjUwNjQgfSwKK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19tZW1vcnlfcmVh ZHNbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4MDAzNDMgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4Mzk5MDAzNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y5MDEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NDE5MDAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MDMxODAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MDM1ZTIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDc4MDAwNmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MjE4MWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4MTAwMGEgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWQ5NTA1NTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5Mjgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ5MmEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGY5MjIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5MDAxNzAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MjE5MDAxNzEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM5MDAxNzIgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MjU5MDAxNzMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc5 MDAxNzQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjk5MDAxNzUgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MmI5MDAxNzYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmQ5MDAxNzcgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MmY5MDAxN2YgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE5MDAxMjUg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU5MDAxMjMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTc5MDAxMjEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTk5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWQ5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDM5MDEwODQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTU5MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDc5MDEwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTc5MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDk5MDEwODQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5 MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGI5MDEwODQgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NGQ5MDAwMDQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAg fSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X21lbW9yeV9y ZWFkc19tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAg ICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX21lbW9yeV9yZWFk cyk7CisJcmV0dXJuIG11eF9jb25maWdfbWVtb3J5X3JlYWRzOworfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfbWVtb3J5X3dyaXRlc1tdID0gewor CXsgX01NSU8oMHgyNzJjKSwgMHhmZmZmZmZmZiB9LAorCXsgX01NSU8oMHgyNzI4KSwgMHhmZmZm ZmZmZiB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIw KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzFjKSwgMHhmZmZmZmZmZiB9LAorCXsgX01N SU8oMHgyNzE4KSwgMHhmZmZmZmZmZiB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzRjKSwgMHg4 NjU0MzIxMCB9LAorCXsgX01NSU8oMHgyNzQ4KSwgMHg4NjU0MzIxMCB9LAorCXsgX01NSU8oMHgy NzQ0KSwgMHgwMDAwNjY2NyB9LAorCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHgyNzVjKSwgMHg4NjU0MzIxMCB9LAorCXsgX01NSU8oMHgyNzU4KSwgMHg4NjU0MzIx MCB9LAorCXsgX01NSU8oMHgyNzU0KSwgMHgwMDAwNjQ2NSB9LAorCXsgX01NSU8oMHgyNzUwKSwg MHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDA3ZjgxYSB9LAorCXsgX01NSU8o MHgyNzc0KSwgMHgwMDAwZmUwMCB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDA3ZjgyYSB9LAor CXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwZmUwMCB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDA3 ZjgyMiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwZmUwMCB9LAorCXsgX01NSU8oMHgyNzg4 KSwgMHgwMDA3ZjhiYSB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmUwMCB9LAorCXsgX01N SU8oMHgyNzkwKSwgMHgwMDA3Zjg3YSB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmUwMCB9 LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDA3ZjhlYSB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgw MDAwZmUwMCB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDA3ZjhlMiB9LAorCXsgX01NSU8oMHgy N2E0KSwgMHgwMDAwZmUwMCB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDA3ZjhmMiB9LAorCXsg X01NSU8oMHgyN2FjKSwgMHgwMDAwZmUwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBp OTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19tZW1vcnlfd3JpdGVzW10gPSB7CisJeyBfTU1JTygw eGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDE1MDE0IH0sCisJ eyBfTU1JTygweGU2NTgpLCAweDAwMDI1MDI0IH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDM1 MDM0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDQ1MDQ0IH0sCisJeyBfTU1JTygweGU1NWMp LCAweDAwMDU1MDU0IH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDY1MDY0IH0sCit9OworCitz dGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfbWVtb3J5X3dyaXRlc1td ID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgwMDM0MyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgzOTkwMDM0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZjkwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0MTkwMDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzgwMzE4MCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNTgwMzVlMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgw MDA2YSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgyMTgxYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzgxMDAwYSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxZDk1MDU1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjkyODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDkyYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ZjkyMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzkwMDE4MCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyMTkwMDE4MSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzkwMDE4MiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgyNTkwMDE4MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzkwMDE4 NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyOTkwMDE4NSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgyYjkwMDE4NiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZDkwMDE4NyB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgyZjkwMDE3MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMTkwMDEyNSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxNTkwMDEyMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzkw MDEyMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxOTkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkwODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxZDkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0 MzkwMTA4NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg0NzkwMTA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0OTkwMTA4NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTkwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMTA4NCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0ZDkwMDAwNCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAor fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfbWVtb3J5X3dyaXRl c19tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAg aW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19tZW1vcnlfd3JpdGVz KTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19tZW1vcnlfd3JpdGVzOworfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9leHRlbmRlZFtdID0g eworCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgw MDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgy NzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHgyNzcwKSwgMHgwMDA3ZmMyYSB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwYmYw MCB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDA3ZmM2YSB9LAorCXsgX01NSU8oMHgyNzdjKSwg MHgwMDAwYmYwMCB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDA3ZmM5MiB9LAorCXsgX01NSU8o MHgyNzg0KSwgMHgwMDAwYmYwMCB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDA3ZmNhMiB9LAor CXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwYmYwMCB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDA3 ZmMzMiB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwYmYwMCB9LAorCXsgX01NSU8oMHgyNzk4 KSwgMHgwMDA3ZmM5YSB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwYmYwMCB9LAorCXsgX01N SU8oMHgyN2EwKSwgMHgwMDA3ZmU2YSB9LAorCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwYmYwMCB9 LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDA3ZmU3YSB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgw MDAwYmYwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1 X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1 MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDAwMDAzIH0sCisJeyBfTU1JTygweGU2NTgp LCAweDAwMDAyMDAxIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwNzc4MDA4IH0sCisJeyBfTU1J TygweGU0NWMpLCAweDAwMDg4MDc4IH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwODA4NzA4IH0s CisJeyBfTU1JTygweGU2NWMpLCAweDAwYTA4OTA4IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfY29tcHV0ZV9leHRlbmRlZFtdID0geworCXsgX01N SU8oMHg5ODg4KSwgMHgxMDRmMDBlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDFjMDE2MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjFjMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx ODFjMDEyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDJkNTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNjJkNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODJkNTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYTJkNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzJkNTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTJkNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMjJkNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJkNTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzJlNTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTJlNTUxNSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMDJlMDE1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDRj YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYzRjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTRjYzAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMDRjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjRjODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDRjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx NjRjMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRjYzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwODRjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDRlYTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNjRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODRlYTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRlYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwYzRlYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTRlYTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMjRlYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDRlYTAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZTRmNGI0MSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDRm NDIwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjRmNDA0YyB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxYzRmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTRmMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMDFiNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjFiODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODFiYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YTFiYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzFiYzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDFiYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDFjMDAzMSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNjFjMTkwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODFjMWEz MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTFjMWIzNSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwYzFjMzMzNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFjMzFjNyB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxODBmNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTBmYThhYSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxYzBmMGFhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODJj ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzJjNmFhYSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxZTJjMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTJjMjk1MCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMTkzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjkzODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTkzYWFhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MzkzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTkzODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNzkzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTkzODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYjkzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzkwNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgyMzkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNTkwNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgyNzkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyOTkwNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgyYjkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZDkw NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZjkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgzMTkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTkwNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxNzkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTkwNDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx ZDkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg0MzkwMDQyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDQwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg0ZDkwMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkw MDAwMSB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfY29t cHV0ZV9leHRlbmRlZF9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKKwkJCQlpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2NvbXB1 dGVfZXh0ZW5kZWQpOworCXJldHVybiBtdXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWQ7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19jb21wdXRl X2wzX2NhY2hlW10gPSB7CisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1J TygweDI3MTQpLCAweDMwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0s CisJeyBfTU1JTygweDI3MjQpLCAweDMwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NDApLCAweDAw MDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMDdmZmZhIH0sCisJeyBfTU1JTygweDI3 NzQpLCAweDAwMDBmZWZlIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDdmZmZhIH0sCisJeyBf TU1JTygweDI3N2MpLCAweDAwMDBmZWZkIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDdmZmZh IH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmYmVmIH0sCisJeyBfTU1JTygweDI3OTgpLCAw eDAwMDdmZmZhIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmYmRmIH0sCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX2NvbXB1dGVfbDNfY2Fj aGVbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1 OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMDIwMDEgfSwKKwl7IF9N TUlPKDB4ZTc1OCksIDB4MDAxMDExMDAgfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAyMDEyMDAg fSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAzMDEzMDAgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4 MDA0MDE0MDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2Nv bmZpZ19jb21wdXRlX2wzX2NhY2hlW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDE2NmMwM2Iw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1OTMwMDFlIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDNmOTAwYzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAwMmQxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmQ0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA4MmQ1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMmQ1 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMmUwNDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBlMmUxNTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMmUwMTQwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA0NGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGM4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBjNGNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0 NGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2NGMyMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAwNGUyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NGU4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA4NGVhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNGVhMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhNGY0MDAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFjNGY1MDA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNmMwMDUxIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA2NmM1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NmM1YzVkIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlNmM1ZTVmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNmMw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0NmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFhNmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjNmMwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE4MGYxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhMGZhODAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFjMGYwYTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4 MmM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjMmM0MDE1IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFlMmMwMDAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOTMxOTgwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA1OTMwMDMyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTMwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBmOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTNhMDBhIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3OTMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OTMwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFkOTAwMTc3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTAw MTc4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEzOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxOTA0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDIzOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OTA0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDJmOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMx OTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTA0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFiOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAxMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDQzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU1OTAwMTEx IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwMDAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDU3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ5OTAwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRkOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDQ1OTAwNDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoK K2dldF9jb21wdXRlX2wzX2NhY2hlX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCQkJCWludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25m aWdfY29tcHV0ZV9sM19jYWNoZSk7CisJcmV0dXJuIG11eF9jb25maWdfY29tcHV0ZV9sM19jYWNo ZTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmln X2hkY19hbmRfc2ZbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9N TUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAg fSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4MTA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4 MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 Mjc3MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZkZmYgfSwKK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfaGRjX2Fu ZF9zZltdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhl NTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsg X01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1 MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwg MHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhf Y29uZmlnX2hkY19hbmRfc2ZbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA0ZjAyMzIgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTI0ZjQ2NDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4 MzQ0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDQyZDUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYyZDEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGUyZTAwNTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0YzgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg0Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGE0YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDQ0ZWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0ZTIwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDI0ZjYxMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ0ZjQx NmIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0ZjAwNGIgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWE0ZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWEwZjAyYTggfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWEyYzU1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4MDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MjU4MTAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4 MzA1YzAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDk5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5MzgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGQ5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5NTEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5MjAyMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MzE5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5MDQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWI5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5MDQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWY5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NGQ5MDAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTU5MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5 MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2hk Y19hbmRfc2ZfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJ CQkgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfaGRjX2FuZF9z Zik7CisJcmV0dXJuIG11eF9jb25maWdfaGRjX2FuZF9zZjsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX2wzXzFbXSA9IHsKKwl7IF9NTUlPKDB4 Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7 IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAw MDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCks IDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAxMDAwNzAgfSwKKwl7IF9NTUlP KDB4Mjc3NCksIDB4MDAwMGZmZjEgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMTQwMDIgfSwK Kwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGMzZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAw MTAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGM3ZmYgfSwKKwl7IF9NTUlPKDB4Mjc4 OCksIDB4MDAwMDQwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGQzZmYgfSwKKwl7IF9N TUlPKDB4Mjc5MCksIDB4MDAxMDA3MDAgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmMWYg fSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwMDE0MDIgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4 MDAwMGZjM2YgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAwMDEwMDIgfSwKKwl7IF9NTUlPKDB4 MjdhNCksIDB4MDAwMGZjN2YgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAwMDA0MDIgfSwKKwl7 IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZkM2YgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbDNfMVtdID0geworCXsgX01NSU8oMHhlNDU4KSwg MHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01NSU8o MHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9LAor CXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1 MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2wzXzFfMF9za3VfZ3RlXzB4MDNbXSA9 IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI2NDM0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTI2NTM0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2YzY4MDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTI2YzAwMWUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTY2YzAwMTAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGMyZDUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUyZDUw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAyZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDIyZDUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQyZDUwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDYyZDEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAyZTAxNTQgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGMyZTUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUy ZTAwNTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA0YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTI0YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQ0YzgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTY0YzIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ0YzgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDg0Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGM0ZWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU0ZWEwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDA0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI0ZWEw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ0ZWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDY0ZTIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM0ZjU1MDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWE0ZjE1NTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE2NDAwMjQgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2NDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ2 NDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM2NTAwMjQgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTA2NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY2NTAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGM2YzUzMjcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU2YzU0MjUg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA2YzJhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDI2YzI4NWIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ2YzAwNWMgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWM2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWE2YzA5MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWMwZjBhYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTgwZjQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWEwZjAyYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWMyYzU0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWUyYzAwMDEgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWEyYzU1NTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5M2FhMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDM5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU5 MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDk5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5MzgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGQ5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmI5MDQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmQ5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MmY5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE5MDQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTU5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc5MDQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTk5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWY5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NGI5MDA0MjEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ5 MDAwMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4NDM5MDA0MjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMjEgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NTU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc5MDAwMDAg fSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19sM18x XzBfc2t1X2x0XzB4MDNbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQ2NDAzNDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTQ2NTAzNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2YzY4 MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI2YzAwMWUgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTY2YzAwMTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMyZDUwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGUyZDUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAyZDQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZDUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQy ZDUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYyZDEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTAyZTAxNTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMyZTUwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGUyZTAwNTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA0YzgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI0YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTQ0YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTY0YzIwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDQ0YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0Y2MwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDg0Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM0ZWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGU0ZWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA0ZTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDI0ZWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ0ZWEwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0ZTIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM0 ZjU1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWE0ZjE1NTQgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDQ2NDI0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjI2NDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWE2NDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY2NTAwMjQg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjI2NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWM2NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM2YzUzMjcgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGU2YzU0MjUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA2YzJhMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDI2YzI4NWIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ2YzAw NWMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWE2YzA5MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWMwZjBhYTAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTgwZjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWEwZjAyYWEgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MWMyYzU0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWUy YzAwMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWEyYzU1NTAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTk5M2FhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM5MzgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDU5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc5MzgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGI5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ5MzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MmI5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmQ5MDQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MmY5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE5MDQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTc5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5MDQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWI5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5MDQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5 MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGI5MDA0MjEgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NGQ5MDAwMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDA0MjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 NDU5MDAwMjEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDc5MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9y ZWcgKgorZ2V0X2wzXzFfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCSAgICBpbnQgKmxlbikKK3sKKwlpZiAoZGV2X3ByaXYtPmRybS5wZGV2LT5yZXZpc2lv biA+PSAweDAzKSB7CisJCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfbDNfMV8wX3NrdV9n dGVfMHgwMyk7CisJCXJldHVybiBtdXhfY29uZmlnX2wzXzFfMF9za3VfZ3RlXzB4MDM7CisJfSBl bHNlIGlmIChkZXZfcHJpdi0+ZHJtLnBkZXYtPnJldmlzaW9uIDwgMHgwMykgeworCQkqbGVuID0g QVJSQVlfU0laRShtdXhfY29uZmlnX2wzXzFfMF9za3VfbHRfMHgwMyk7CisJCXJldHVybiBtdXhf Y29uZmlnX2wzXzFfMF9za3VfbHRfMHgwMzsKKwl9CisKKwkqbGVuID0gMDsKKwlyZXR1cm4gTlVM TDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmln X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4 MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4MzA4MDAwMDAgfSwKKwl7 IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAw MDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3NCks IDB4MDAwMGVmZmYgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDYwMDAgfSwKKwl7IF9NTUlP KDB4Mjc3YyksIDB4MDAwMGYzZmYgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9v YV9yZWcgZmxleF9ldV9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZFtdID0gewor CXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAx MDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4 KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01N SU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9 LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Jhc3Rl cml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAyZDc4 MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIyZDc5ZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGMyZjAwMDQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAwZTM4MDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTgwZjAwMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAyZDA5NDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZDgwMmYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQy ZDQwMTMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYyZDEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGUyZTAwNTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZjAwMTAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDAyZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg0YzgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDQ0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0ZTIwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDQwZTA0ODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZTAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDYwZjAwMjcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAwZjAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWEwZjAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDM5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU5MzgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDc5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk5MzgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ5 MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTc5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5MDQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWI5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5MDQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDM5MDE0YTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwYTQgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NTU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc5MDAw MDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRf bXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJCSAgICBp bnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Jhc3Rlcml6ZXJfYW5k X3BpeGVsX2JhY2tlbmQpOworCXJldHVybiBtdXhfY29uZmlnX3Jhc3Rlcml6ZXJfYW5kX3BpeGVs X2JhY2tlbmQ7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVy X2NvbmZpZ19zYW1wbGVyW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAw MDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweDcwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjAp LCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1J TygweDI3NzApLCAweDAwMDBjMDAwIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBlN2ZmIH0s CisJeyBfTU1JTygweDI3NzgpLCAweDAwMDAzMDAwIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAw MDBmOWZmIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDAwYzAwIH0sCisJeyBfTU1JTygweDI3 ODQpLCAweDAwMDBmZTdmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn IGZsZXhfZXVfY29uZmlnX3NhbXBsZXJbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUw MDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCks IDB4MDAwMTIwMTEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlP KDB4ZTQ1YyksIDB4MDAwNTEwNTAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwK Kwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAwNTUwNTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19zYW1wbGVyW10gPSB7CisJeyBfTU1JTygweDk4ODgp LCAweDEyMTMwMGEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MTYwMGFiIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEyMzMwMGEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MzYwMGFiIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEyNTMwMGEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0 NTYwMGFiIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMmQ0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlMmQ1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMmQ0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAyMmQ1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MmQ1MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmQxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDEwMmUwMWEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMmU1MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlMmUwMDY1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2NGMyMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA0NGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NGNj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBhNGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNGU4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAwNGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNGVhMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA0NGUyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2 NGUyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjMGYwODAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE4MGY0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhMGYwMjNmIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFlMmMwMDAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhMmNjMDMw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTMyMTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAyMTMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMTQ4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlMTQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTQ4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFlMTUwMTQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjMTUw MDQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMTYzMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBlMTYwMDY4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMTYwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE4MTYwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMTY0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA0MzMwMDQzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAy MzMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMzRhMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA0MzQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjMzUwMDE1IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAyMzYzNDYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMzYwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MzYwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA2MzYwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MzY0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA2NTMwMDQzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTMwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlNTQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTQ4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NTQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFlNTUwNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhNTUyMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFjNTUwMTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTYzMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAwNTYzNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEw NTYwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4NTYwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyNTYwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNTY0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE5OTNhODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOTM4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA3OTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OTM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBiOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkOTM4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDJkOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJmOTA0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE1OTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3OTA0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE5OTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTA0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFkOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFm OTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDRiOTAxNGEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRkOTAwMDAx IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDQzOTAwODIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAxMDIyIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwMDAwIH0sCit9 OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9zYW1wbGVyX211eF9j b25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgICAgaW50ICps ZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19zYW1wbGVyKTsKKwlyZXR1cm4g bXV4X2NvbmZpZ19zYW1wbGVyOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn IGJfY291bnRlcl9jb25maWdfdGRsXzFbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCks IDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlP KDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MzA4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAw MDdmZmYgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3 YyksIDB4MDAwMDlmZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9N TUlPKDB4Mjc4NCksIDB4MDAwMGVmZmYgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwMDAwMDAg fSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGYzZmYgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4 MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZkZmYgfSwKKwl7IF9NTUlPKDB4 Mjc5OCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZlN2YgfSwKK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGRsXzFb XSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCks IDB4MDAwMTAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMTIwMTEgfSwKKwl7IF9NTUlP KDB4ZTc1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwNTEwNTAgfSwK Kwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAw NTUwNTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZp Z190ZGxfMVtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxNDFhMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxNDNhMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDVhMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYzJkNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTJk NTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDJkNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMjJkNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJkNTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNjJkMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDJlMDE1MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzJlNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ZTJlMDA2YSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjRjODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxNDRjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjRjMjAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDRjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRjNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwYzRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTRlYTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMDRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjRlMjAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNjRlMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzBm MGJjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODBmNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxYTBmMDMwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZTJjMDAwMyB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxYTJjMDBmMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjFhMzA4MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFhMzFlNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MjE0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDE0YTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxYzE1MDA1NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjE2ODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwODE2ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTE2ODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzNhMzI4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZTNhMDA2MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjNhMDA2MSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMjNhMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzM0ODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZTM0MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjM0 MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZTM1MDE0MCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxYzM1MDEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODM2MDAyOCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYzM2ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTVhMzA4MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDVhMzI4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MjVhMDA2MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTU0ODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMDU0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjU0MjAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxZTU1MDQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTU1MjAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzU1MDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxODU2MDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjU2ODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNDU2ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTkzYTgwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMzkzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTkz ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzkzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwOTkzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjkzODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwZDkzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZDkwNDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZjkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgz MTkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTkwNDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxNzkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTkwNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxYjkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDkwNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDQyMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg0ZDkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1Mzkw MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg0NTkwMTA4NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg0NzkwMDAwMSB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X29hX3JlZyAqCitnZXRfdGRsXzFfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCisJCSAgICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2Nv bmZpZ190ZGxfMSk7CisJcmV0dXJuIG11eF9jb25maWdfdGRsXzE7Cit9CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZGxfMltdID0geworCXsgX01N SU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHgw MDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgy NzI0KSwgMHgwMDgwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3Jl ZyBmbGV4X2V1X2NvbmZpZ190ZGxfMltdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAw NCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwg MHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8o MHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAor CXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3RkbF8yW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAw eDE0MWEwMjZiIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0M2EwMTczIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE0NWEwMjZiIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMmQ0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAyMmQ1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MmQ1 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmQxMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBjMmU1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMmUwMDY5IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA0NGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NGNjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBhNGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAw NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNGVhMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA2NGUyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MGY2MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFhMGYwMzBhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhMmMwM2Mw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MWEzN2U3IH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAyMWEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTRhMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFjMTUwMDUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MTY4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBhMTY4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwM2Ez MzgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2M2EwMDZmIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAyM2EwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzQ4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA2MzQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhMzUyMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFjMzUwMTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAy MzY4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzY4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyNWEzN2U3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTRhMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFjNTUwMDA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NTY4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NTY4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAzOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OTM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3OTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OTM4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBiOTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkOTM4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1OTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE3OTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTA0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFiOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOTA0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFmOTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3 OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDQzOTAwMDIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAxMDgwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwMDAx IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF90ZGxfMl9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlf U0laRShtdXhfY29uZmlnX3RkbF8yKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ190ZGxfMjsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVf ZXh0cmFbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4MjcxNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfY29tcHV0ZV9leHRyYVtdID0gewor CXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwMTAwMCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAw MzAwMiB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNzU4 KSwgMHgwMDAxMTAxMCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MDAxMiB9LAorCXsgX01N SU8oMHhlNTVjKSwgMHgwMDA1MjA1MSB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDAwMDAwOCB9 LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2NvbXB1 dGVfZXh0cmFbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQxYTAwMWYgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTQzYTAwMWYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQ1YTAwMWYgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDQyZDUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYy ZDEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUyZTAwOTQgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDg0Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ0ZWEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWEwZjAwZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWEyYzBjMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxYTAwNjMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDIxYTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxNDIwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWMxNTAxMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMxNjgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDQzYTMxODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzYTAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzNDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWMzNTAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEzNjgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDQ1YTAwNjMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1YTAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ1NDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM1 NTAwMTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg1NjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDk5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5MzgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGQ5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWY5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NTU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDA0MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDc5MDAwMDQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAw MDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2NvbXB1 dGVfZXh0cmFfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJ CQkgICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfY29tcHV0 ZV9leHRyYSk7CisJcmV0dXJuIG11eF9jb25maWdfY29tcHV0ZV9leHRyYTsKK30KKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsK Kwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4 MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjcx MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9N TUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQg fSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4 MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 Mjc4MCksIDB4MDAwMDAwMDcgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZm ZjcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCks IDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKKwl7IF9NTUlP KDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwK Kwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAx MDAwMDEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0geworfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9 IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDc4MDAwNjMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MjM4MTAwMDggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5NTA0MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGY5MjIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc5MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9v YV9yZWcgKgorZ2V0X3Rlc3Rfb2FfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCisJCSAgICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhf Y29uZmlnX3Rlc3Rfb2EpOworCXJldHVybiBtdXhfY29uZmlnX3Rlc3Rfb2E7Cit9CisKIGludCBp OTE1X29hX3NlbGVjdF9tZXRyaWNfc2V0X2J4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiB7CiAJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPSBOVUxMOwpAQCAtMTU3LDEz ICsxNjYyLDMxMyBAQCBpbnQgaTkxNV9vYV9zZWxlY3RfbWV0cmljX3NldF9ieHQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9 IE5VTEw7CiAJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9IDA7CiAKLQlzd2l0Y2gg KGRldl9wcml2LT5wZXJmLm9hLm1ldHJpY3Nfc2V0KSB7Ci0JY2FzZSBNRVRSSUNfU0VUX0lEX1JF TkRFUl9CQVNJQzoKKwlzd2l0Y2ggKGRldl9wcml2LT5wZXJmLm9hLm1ldHJpY3Nfc2V0KSB7CisJ Y2FzZSBNRVRSSUNfU0VUX0lEX1JFTkRFUl9CQVNJQzoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4 X3JlZ3MgPQorCQkJZ2V0X3JlbmRlcl9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJ ICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5w ZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVgg Y29uZmlnIGZvciBcIlJFTkRFUl9CQVNJQ1wiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5W QUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBh bmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAor CQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJu IC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJ CQliX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpYzsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9j b3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJf YmFzaWMpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2Nv bmZpZ19yZW5kZXJfYmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQor CQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19yZW5kZXJfYmFzaWMpOworCisJCXJldHVybiAw OworCWNhc2UgTUVUUklDX1NFVF9JRF9DT01QVVRFX0JBU0lDOgorCQlkZXZfcHJpdi0+cGVyZi5v YS5tdXhfcmVncyA9CisJCQlnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2LAor CQkJCQkJICAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZf cHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFi bGUgTVVYIGNvbmZpZyBmb3IgXCJDT01QVVRFX0JBU0lDXCIgbWV0cmljIHNldFxuIik7CisKKwkJ CS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMK KwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3Bh Y2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJ CQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9y ZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfY29tcHV0ZV9iYXNpYzsKKwkJZGV2X3ByaXYtPnBl cmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZp Z19jb21wdXRlX2Jhc2ljKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJ ZmxleF9ldV9jb25maWdfY29tcHV0ZV9iYXNpYzsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9y ZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2NvbXB1dGVfYmFzaWMpOwor CisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9SRU5ERVJfUElQRV9QUk9GSUxFOgor CQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfcmVuZGVyX3BpcGVfcHJvZmls ZV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJCSAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhf cmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1f REVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlJFTkRFUl9QSVBFX1BS T0ZJTEVcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rl cl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhh dmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBo YXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJ ZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19y ZW5kZXJfcGlwZV9wcm9maWxlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19s ZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGUp OworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19y ZW5kZXJfcGlwZV9wcm9maWxlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0K KwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVyX3BpcGVfcHJvZmlsZSk7CisKKwkJ cmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX01FTU9SWV9SRUFEUzoKKwkJZGV2X3ByaXYt PnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X21lbW9yeV9yZWFkc19tdXhfY29uZmlnKGRldl9w cml2LAorCQkJCQkJICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAo IWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBz dWl0YWJsZSBNVVggY29uZmlnIGZvciBcIk1FTU9SWV9SRUFEU1wiIG1ldHJpYyBzZXRcbiIpOwor CisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0 aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNl cnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAq LworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50 ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX21lbW9yeV9yZWFkczsKKwkJZGV2X3ByaXYt PnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2Nv bmZpZ19tZW1vcnlfcmVhZHMpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJ CQlmbGV4X2V1X2NvbmZpZ19tZW1vcnlfcmVhZHM7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhf cmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19tZW1vcnlfcmVhZHMpOwor CisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9NRU1PUllfV1JJVEVTOgorCQlkZXZf cHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfbWVtb3J5X3dyaXRlc19tdXhfY29uZmln KGRldl9wcml2LAorCQkJCQkJICAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsK KwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZF UigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJNRU1PUllfV1JJVEVTXCIgbWV0cmljIHNl dFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBj aGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNl ZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3Rl ZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9h LmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfbWVtb3J5X3dyaXRlczsKKwkJ ZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9j b3VudGVyX2NvbmZpZ19tZW1vcnlfd3JpdGVzKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4 X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfbWVtb3J5X3dyaXRlczsKKwkJZGV2X3ByaXYtPnBl cmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX21lbW9y eV93cml0ZXMpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9DT01QVVRFX0VY VEVOREVEOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfY29tcHV0ZV9l eHRlbmRlZF9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJCSZkZXZfcHJpdi0+cGVyZi5vYS5t dXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlE Uk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIkNPTVBVVEVfRVhU RU5ERURcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rl cl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhh dmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBo YXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJ ZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19j b21wdXRlX2V4dGVuZGVkOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4g PQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWQpOworCisJ CWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19jb21wdXRl X2V4dGVuZGVkOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZ X1NJWkUoZmxleF9ldV9jb25maWdfY29tcHV0ZV9leHRlbmRlZCk7CisKKwkJcmV0dXJuIDA7CisJ Y2FzZSBNRVRSSUNfU0VUX0lEX0NPTVBVVEVfTDNfQ0FDSEU6CisJCWRldl9wcml2LT5wZXJmLm9h Lm11eF9yZWdzID0KKwkJCWdldF9jb21wdXRlX2wzX2NhY2hlX211eF9jb25maWcoZGV2X3ByaXYs CisJCQkJCQkJJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3By aXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxl IE1VWCBjb25maWcgZm9yIFwiQ09NUFVURV9MM19DQUNIRVwiIG1ldHJpYyBzZXRcbiIpOworCisJ CQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlz CisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNw YWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLwor CQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJf cmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGU7CisJCWRldl9wcml2 LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9j b25maWdfY29tcHV0ZV9sM19jYWNoZSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdz ID0KKwkJCWZsZXhfZXVfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGU7CisJCWRldl9wcml2LT5wZXJm Lm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19jb21wdXRl X2wzX2NhY2hlKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfSERDX0FORF9T RjoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2hkY19hbmRfc2ZfbXV4 X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xl bik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19E UklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiSERDX0FORF9TRlwiIG1ldHJpYyBz ZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkg Y2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlz ZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0 ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5v YS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2hkY19hbmRfc2Y7CisJCWRl dl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfaGRjX2FuZF9zZik7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdz ID0KKwkJCWZsZXhfZXVfY29uZmlnX2hkY19hbmRfc2Y7CisJCWRldl9wcml2LT5wZXJmLm9hLmZs ZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19oZGNfYW5kX3NmKTsK KworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfTDNfMToKKwkJZGV2X3ByaXYtPnBl cmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2wzXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJ ICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5w ZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVgg Y29uZmlnIGZvciBcIkwzXzFcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1 c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0 IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNv IHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFM OworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3Vu dGVyX2NvbmZpZ19sM18xOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4g PQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2wzXzEpOworCisJCWRldl9wcml2LT5w ZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19sM18xOworCQlkZXZfcHJpdi0+ cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfbDNf MSk7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX1JBU1RFUklaRVJfQU5EX1BJ WEVMX0JBQ0tFTkQ6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9yYXN0 ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCQkJCSAg ICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVy Zi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNv bmZpZyBmb3IgXCJSQVNURVJJWkVSX0FORF9QSVhFTF9CQUNLRU5EXCIgbWV0cmljIHNldFxuIik7 CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2Vk IHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1 c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJ ICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291 bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFj a2VuZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZ X1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kKTsKKwor CQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfcmFzdGVy aXplcl9hbmRfcGl4ZWxfYmFja2VuZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xl biA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2Jh Y2tlbmQpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9TQU1QTEVSOgorCQlk ZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfc2FtcGxlcl9tdXhfY29uZmlnKGRl dl9wcml2LAorCQkJCQkgICAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJ CWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIo Ik5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiU0FNUExFUlwiIG1ldHJpYyBzZXRcbiIpOwor CisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0 aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNl cnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAq LworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50 ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX3NhbXBsZXI7CisJCWRldl9wcml2LT5wZXJm Lm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdf c2FtcGxlcik7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVf Y29uZmlnX3NhbXBsZXI7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJ QVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19zYW1wbGVyKTsKKworCQlyZXR1cm4gMDsKKwljYXNl IE1FVFJJQ19TRVRfSURfVERMXzE6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJ CWdldF90ZGxfMV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICZkZXZfcHJpdi0+cGVy Zi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7 CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlRETF8x XCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lz ZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJl ZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBi ZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9w cml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfdGRsXzE7 CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpF KGJfY291bnRlcl9jb25maWdfdGRsXzEpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVn cyA9CisJCQlmbGV4X2V1X2NvbmZpZ190ZGxfMTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9y ZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3RkbF8xKTsKKworCQlyZXR1 cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfVERMXzI6CiAJCWRldl9wcml2LT5wZXJmLm9hLm11 eF9yZWdzID0KLQkJCWdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKLQkJCQkJ CSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJCWdldF90ZGxfMl9tdXhf Y29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19s ZW4pOwogCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7Ci0JCQlEUk1fREVCVUdf RFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlJFTkRFUl9CQVNJQ1wiIG1ldHJp YyBzZXRcbiIpOworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBm b3IgXCJURExfMlwiIG1ldHJpYyBzZXRcbiIpOwogCiAJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3Jl Z2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCiAJCQkgKiBhbmQgc28gaXQgd291bGRu J3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZApAQCAtMTczLDE0ICsxOTc4 LDY0IEBAIGludCBpOTE1X29hX3NlbGVjdF9tZXRyaWNfc2V0X2J4dChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJCX0KIAogCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJf cmVncyA9Ci0JCQliX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpYzsKKwkJCWJfY291bnRlcl9j b25maWdfdGRsXzI7CiAJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9Ci0J CQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKwkJCUFSUkFZX1NJ WkUoYl9jb3VudGVyX2NvbmZpZ190ZGxfMik7CiAKIAkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9y ZWdzID0KLQkJCWZsZXhfZXVfY29uZmlnX3JlbmRlcl9iYXNpYzsKKwkJCWZsZXhfZXVfY29uZmln X3RkbF8yOwogCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KLQkJCUFSUkFZX1NJ WkUoZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9j b25maWdfdGRsXzIpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9DT01QVVRF X0VYVFJBOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfY29tcHV0ZV9l eHRyYV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJICAgICAmZGV2X3ByaXYtPnBlcmYub2Eu bXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJ RFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJDT01QVVRFX0VY VFJBXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJf c3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZl IGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2 ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRl dl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfY29t cHV0ZV9leHRyYTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJ CUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2V4dHJhKTsKKworCQlkZXZfcHJp di0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfY29tcHV0ZV9leHRyYTsK KwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhf ZXVfY29uZmlnX2NvbXB1dGVfZXh0cmEpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NF VF9JRF9URVNUX09BOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfdGVz dF9vYV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICAgJmRldl9wcml2LT5wZXJmLm9h Lm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJ CURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiVEVTVF9PQVwi IG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2Zz IGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVu IGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVl biByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJp di0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7 CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpF KGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9y ZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJCWRldl9wcml2LT5wZXJmLm9hLmZs ZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKIAog CQlyZXR1cm4gMDsKIAlkZWZhdWx0OgpAQCAtMjEwLDYgKzIwNjUsMzE0IEBAIHN0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3JlbmRlcl9iYXNpYyA9IHsKIAkuYXR0cnMgPSAgYXR0 cnNfcmVuZGVyX2Jhc2ljLAogfTsKIAorc3RhdGljIHNzaXplX3QKK3Nob3dfY29tcHV0ZV9iYXNp Y19pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwg Y2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lE X0NPTVBVVEVfQkFTSUMpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2 X2F0dHJfY29tcHV0ZV9iYXNpY19pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9k ZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfY29tcHV0ZV9iYXNpY19pZCwKKwkuc3RvcmUgPSBO VUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX2NvbXB1dGVfYmFzaWNb XSA9IHsKKwkmZGV2X2F0dHJfY29tcHV0ZV9iYXNpY19pZC5hdHRyLAorCU5VTEwsCit9OworCitz dGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9jb21wdXRlX2Jhc2ljID0geworCS5u YW1lID0gIjAxMmQ3MmNmLTgyYTktNGQyNS04ZGRmLTc0MDc2ZmQzMDc5NyIsCisJLmF0dHJzID0g IGF0dHJzX2NvbXB1dGVfYmFzaWMsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19yZW5kZXJf cGlwZV9wcm9maWxlX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmli dXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1F VFJJQ19TRVRfSURfUkVOREVSX1BJUEVfUFJPRklMRSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2 aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9yZW5kZXJfcGlwZV9wcm9maWxlX2lkID0geworCS5hdHRy ID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19yZW5kZXJf cGlwZV9wcm9maWxlX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cnNfcmVuZGVyX3BpcGVfcHJvZmlsZVtdID0geworCSZkZXZfYXR0cl9yZW5k ZXJfcGlwZV9wcm9maWxlX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0 cmlidXRlX2dyb3VwIGdyb3VwX3JlbmRlcl9waXBlX3Byb2ZpbGUgPSB7CisJLm5hbWUgPSAiY2U0 MTY1MzMtZTQ5ZS00MjExLTgwYWYtZWM1MTM1OTBhOTE0IiwKKwkuYXR0cnMgPSAgYXR0cnNfcmVu ZGVyX3BpcGVfcHJvZmlsZSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X21lbW9yeV9yZWFk c19pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwg Y2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lE X01FTU9SWV9SRUFEUyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZf YXR0cl9tZW1vcnlfcmVhZHNfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUg PSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X21lbW9yeV9yZWFkc19pZCwKKwkuc3RvcmUgPSBOVUxM LAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX21lbW9yeV9yZWFkc1tdID0g eworCSZkZXZfYXR0cl9tZW1vcnlfcmVhZHNfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfbWVtb3J5X3JlYWRzID0geworCS5uYW1lID0g IjM5OGUyNDUyLTE4ZDctNDJkMC1iMjQxLWU0ZDBhOTE0OGFkYSIsCisJLmF0dHJzID0gIGF0dHJz X21lbW9yeV9yZWFkcywKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X21lbW9yeV93cml0ZXNf aWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNo YXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9N RU1PUllfV1JJVEVTKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9h dHRyX21lbW9yeV93cml0ZXNfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUg PSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X21lbW9yeV93cml0ZXNfaWQsCisJLnN0b3JlID0gTlVM TCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19tZW1vcnlfd3JpdGVzW10g PSB7CisJJmRldl9hdHRyX21lbW9yeV93cml0ZXNfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3Rh dGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfbWVtb3J5X3dyaXRlcyA9IHsKKwkubmFt ZSA9ICJkMzI0YTBkNi03MjY5LTQ4NDctYTVjMi02ZjcxZGRjN2ZlZDUiLAorCS5hdHRycyA9ICBh dHRyc19tZW1vcnlfd3JpdGVzLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfY29tcHV0ZV9l eHRlbmRlZF9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAq YXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNf U0VUX0lEX0NPTVBVVEVfRVhURU5ERUQpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgZGV2X2F0dHJfY29tcHV0ZV9leHRlbmRlZF9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUg PSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfY29tcHV0ZV9leHRlbmRlZF9p ZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJz X2NvbXB1dGVfZXh0ZW5kZWRbXSA9IHsKKwkmZGV2X2F0dHJfY29tcHV0ZV9leHRlbmRlZF9pZC5h dHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9j b21wdXRlX2V4dGVuZGVkID0geworCS5uYW1lID0gImNhZjM1OTZhLTdiYjEtNGRlYy1iM2IzLTJh MDgwZDI4M2I0OSIsCisJLmF0dHJzID0gIGF0dHJzX2NvbXB1dGVfZXh0ZW5kZWQsCit9OworCitz dGF0aWMgc3NpemVfdAorc2hvd19jb21wdXRlX2wzX2NhY2hlX2lkKHN0cnVjdCBkZXZpY2UgKmtk ZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJu IHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfQ09NUFVURV9MM19DQUNIRSk7Cit9 CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9jb21wdXRlX2wzX2Nh Y2hlX2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5z aG93ID0gc2hvd19jb21wdXRlX2wzX2NhY2hlX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitz dGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfY29tcHV0ZV9sM19jYWNoZVtdID0geworCSZk ZXZfYXR0cl9jb21wdXRlX2wzX2NhY2hlX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2NvbXB1dGVfbDNfY2FjaGUgPSB7CisJLm5hbWUg PSAiNDliOTU2ZTItZDViOS00N2UwLTlkOGEtY2VlNWU4Y2VjNTI3IiwKKwkuYXR0cnMgPSAgYXR0 cnNfY29tcHV0ZV9sM19jYWNoZSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2hkY19hbmRf c2ZfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs IGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9J RF9IRENfQU5EX1NGKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9h dHRyX2hkY19hbmRfc2ZfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAw NDQ0IH0sCisJLnNob3cgPSBzaG93X2hkY19hbmRfc2ZfaWQsCisJLnN0b3JlID0gTlVMTCwKK307 CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19oZGNfYW5kX3NmW10gPSB7CisJJmRl dl9hdHRyX2hkY19hbmRfc2ZfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBh dHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfaGRjX2FuZF9zZiA9IHsKKwkubmFtZSA9ICJmNjRlZjUwYS1i ZGJhLTRiMzUtOGYwOS0yMDNjMTNkOGVlNWEiLAorCS5hdHRycyA9ICBhdHRyc19oZGNfYW5kX3Nm LAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfbDNfMV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBz cHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX0wzXzEpOworfQorCitzdGF0aWMgc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfbDNfMV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5h bWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfbDNfMV9pZCwKKwkuc3Rv cmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX2wzXzFbXSA9 IHsKKwkmZGV2X2F0dHJfbDNfMV9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0 IGF0dHJpYnV0ZV9ncm91cCBncm91cF9sM18xID0geworCS5uYW1lID0gIjAwYWQ1YTQxLTdlYWIt NGY3YS05MTAzLTQ5ZDQxMWM2NzIxOSIsCisJLmF0dHJzID0gIGF0dHJzX2wzXzEsCit9OworCitz dGF0aWMgc3NpemVfdAorc2hvd19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX2lkKHN0cnVj dCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYp Cit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfUkFTVEVSSVpF Ul9BTkRfUElYRUxfQkFDS0VORCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSBkZXZfYXR0cl9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX2lkID0geworCS5hdHRyID0g eyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19yYXN0ZXJpemVy X2FuZF9waXhlbF9iYWNrZW5kX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0cnNfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZFtdID0gewor CSZkZXZfYXR0cl9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX2lkLmF0dHIsCisJTlVMTCwK K307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3Jhc3Rlcml6ZXJfYW5k X3BpeGVsX2JhY2tlbmQgPSB7CisJLm5hbWUgPSAiNDZkYzQ0Y2EtNDkxYy00Y2MxLWE5NTEtZTdi M2U2MmJmMDJiIiwKKwkuYXR0cnMgPSAgYXR0cnNfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2Vu ZCwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3NhbXBsZXJfaWQoc3RydWN0IGRldmljZSAq a2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1 cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9TQU1QTEVSKTsKK30KKworc3Rh dGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3NhbXBsZXJfaWQgPSB7CisJLmF0 dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3NhbXBs ZXJfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICph dHRyc19zYW1wbGVyW10gPSB7CisJJmRldl9hdHRyX3NhbXBsZXJfaWQuYXR0ciwKKwlOVUxMLAor fTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfc2FtcGxlciA9IHsKKwku bmFtZSA9ICI4MzY0ZTJhOC1hZjYzLTQwYWYtYjBkNS00Mjk2OWEyNTU2NTQiLAorCS5hdHRycyA9 ICBhdHRyc19zYW1wbGVyLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdGRsXzFfaWQoc3Ry dWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1 ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9URExfMSk7 Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl90ZGxfMV9pZCA9 IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNo b3dfdGRsXzFfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmli dXRlICphdHRyc190ZGxfMVtdID0geworCSZkZXZfYXR0cl90ZGxfMV9pZC5hdHRyLAorCU5VTEws Cit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF90ZGxfMSA9IHsKKwku bmFtZSA9ICIxNzVjODA5Mi1jYjI1LTRkMWUtOGRjNy1iNGZkZDM5ZTJkOTIiLAorCS5hdHRycyA9 ICBhdHRyc190ZGxfMSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3RkbF8yX2lkKHN0cnVj dCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYp Cit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfVERMXzIpOwor fQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfdGRsXzJfaWQgPSB7 CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93 X3RkbF8yX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0 ZSAqYXR0cnNfdGRsXzJbXSA9IHsKKwkmZGV2X2F0dHJfdGRsXzJfaWQuYXR0ciwKKwlOVUxMLAor fTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfdGRsXzIgPSB7CisJLm5h bWUgPSAiZDI2MGYwM2YtYjM0ZC00YjQ5LWE0NGUtNDM2ODE5MTE3MzMyIiwKKwkuYXR0cnMgPSAg YXR0cnNfdGRsXzIsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19jb21wdXRlX2V4dHJhX2lk KHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFy ICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfQ09N UFVURV9FWFRSQSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0 cl9jb21wdXRlX2V4dHJhX2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0g MDQ0NCB9LAorCS5zaG93ID0gc2hvd19jb21wdXRlX2V4dHJhX2lkLAorCS5zdG9yZSA9IE5VTEws Cit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfY29tcHV0ZV9leHRyYVtdID0g eworCSZkZXZfYXR0cl9jb21wdXRlX2V4dHJhX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRp YyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2NvbXB1dGVfZXh0cmEgPSB7CisJLm5hbWUg PSAiZmE2ZWNmMjEtMmNiOC00ZDBiLTkzMDgtNmU0YTdiNGNhODdhIiwKKwkuYXR0cnMgPSAgYXR0 cnNfY29tcHV0ZV9leHRyYSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Rlc3Rfb2FfaWQo c3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIg KmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9URVNU X09BKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3Rlc3Rf b2FfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNo b3cgPSBzaG93X3Rlc3Rfb2FfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlICphdHRyc190ZXN0X29hW10gPSB7CisJJmRldl9hdHRyX3Rlc3Rfb2FfaWQu YXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBf dGVzdF9vYSA9IHsKKwkubmFtZSA9ICI1ZWU3MmY1Yy0wOTJmLTQyMWUtOGI3MC0yMjVmN2MzZTk2 MTIiLAorCS5hdHRycyA9ICBhdHRyc190ZXN0X29hLAorfTsKKwogaW50CiBpOTE1X3BlcmZfcmVn aXN0ZXJfc3lzZnNfYnh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKQEAg LTIyMSw5ICsyMzg0LDEyMSBAQCBpOTE1X3BlcmZfcmVnaXN0ZXJfc3lzZnNfYnh0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyb3JfcmVu ZGVyX2Jhc2ljOwogCX0KKwlpZiAoZ2V0X2NvbXB1dGVfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJp diwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVy Zi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2Jhc2ljKTsKKwkJaWYgKHJldCkKKwkJCWdv dG8gZXJyb3JfY29tcHV0ZV9iYXNpYzsKKwl9CisJaWYgKGdldF9yZW5kZXJfcGlwZV9wcm9maWxl X211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVf Z3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmVuZGVyX3BpcGVfcHJv ZmlsZSk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX3JlbmRlcl9waXBlX3Byb2ZpbGU7CisJ fQorCWlmIChnZXRfbWVtb3J5X3JlYWRzX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkg eworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2Jq LCAmZ3JvdXBfbWVtb3J5X3JlYWRzKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfbWVtb3J5 X3JlYWRzOworCX0KKwlpZiAoZ2V0X21lbW9yeV93cml0ZXNfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5t ZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfd3JpdGVzKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8g ZXJyb3JfbWVtb3J5X3dyaXRlczsKKwl9CisJaWYgKGdldF9jb21wdXRlX2V4dGVuZGVkX211eF9j b25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAo ZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9leHRlbmRlZCk7CisJ CWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2NvbXB1dGVfZXh0ZW5kZWQ7CisJfQorCWlmIChnZXRf Y29tcHV0ZV9sM19jYWNoZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0 ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3Vw X2NvbXB1dGVfbDNfY2FjaGUpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9jb21wdXRlX2wz X2NhY2hlOworCX0KKwlpZiAoZ2V0X2hkY19hbmRfc2ZfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11 eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRy aWNzX2tvYmosICZncm91cF9oZGNfYW5kX3NmKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jf aGRjX2FuZF9zZjsKKwl9CisJaWYgKGdldF9sM18xX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhf bGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmlj c19rb2JqLCAmZ3JvdXBfbDNfMSk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2wzXzE7CisJ fQorCWlmIChnZXRfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZF9tdXhfY29uZmlnKGRldl9w cml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5w ZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmQpOwor CQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kOwor CX0KKwlpZiAoZ2V0X3NhbXBsZXJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJ CXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZn cm91cF9zYW1wbGVyKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jfc2FtcGxlcjsKKwl9CisJ aWYgKGdldF90ZGxfMV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0g c3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Rk bF8xKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfdGRsXzE7CisJfQorCWlmIChnZXRfdGRs XzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0 ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF90ZGxfMik7CisJCWlm IChyZXQpCisJCQlnb3RvIGVycm9yX3RkbF8yOworCX0KKwlpZiAoZ2V0X2NvbXB1dGVfZXh0cmFf bXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9n cm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2V4dHJhKTsK KwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfY29tcHV0ZV9leHRyYTsKKwl9CisJaWYgKGdldF90 ZXN0X29hX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19j cmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGVzdF9vYSk7 CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX3Rlc3Rfb2E7CisJfQogCiAJcmV0dXJuIDA7CiAK K2Vycm9yX3Rlc3Rfb2E6CisJaWYgKGdldF9jb21wdXRlX2V4dHJhX211eF9jb25maWcoZGV2X3By aXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJp Y3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfZXh0cmEpOworZXJyb3JfY29tcHV0ZV9leHRyYToKKwlp ZiAoZ2V0X3RkbF8yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVt b3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8yKTsKK2Vy cm9yX3RkbF8yOgorCWlmIChnZXRfdGRsXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4p KQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3Jv dXBfdGRsXzEpOworZXJyb3JfdGRsXzE6CisJaWYgKGdldF9zYW1wbGVyX211eF9jb25maWcoZGV2 X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1l dHJpY3Nfa29iaiwgJmdyb3VwX3NhbXBsZXIpOworZXJyb3Jfc2FtcGxlcjoKKwlpZiAoZ2V0X3Jh c3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4p KQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3Jv dXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCk7CitlcnJvcl9yYXN0ZXJpemVyX2FuZF9w aXhlbF9iYWNrZW5kOgorCWlmIChnZXRfbDNfMV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xl bikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZn cm91cF9sM18xKTsKK2Vycm9yX2wzXzE6CisJaWYgKGdldF9oZGNfYW5kX3NmX211eF9jb25maWco ZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJm Lm1ldHJpY3Nfa29iaiwgJmdyb3VwX2hkY19hbmRfc2YpOworZXJyb3JfaGRjX2FuZF9zZjoKKwlp ZiAoZ2V0X2NvbXB1dGVfbDNfY2FjaGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQor CQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBf Y29tcHV0ZV9sM19jYWNoZSk7CitlcnJvcl9jb21wdXRlX2wzX2NhY2hlOgorCWlmIChnZXRfY29t cHV0ZV9leHRlbmRlZF9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2V4 dGVuZGVkKTsKK2Vycm9yX2NvbXB1dGVfZXh0ZW5kZWQ6CisJaWYgKGdldF9tZW1vcnlfd3JpdGVz X211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRl dl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX21lbW9yeV93cml0ZXMpOworZXJyb3Jf bWVtb3J5X3dyaXRlczoKKwlpZiAoZ2V0X21lbW9yeV9yZWFkc19tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9tZW1vcnlfcmVhZHMpOworZXJyb3JfbWVtb3J5X3JlYWRzOgorCWlmIChn ZXRfcmVuZGVyX3BpcGVfcHJvZmlsZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJ CXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9y ZW5kZXJfcGlwZV9wcm9maWxlKTsKK2Vycm9yX3JlbmRlcl9waXBlX3Byb2ZpbGU6CisJaWYgKGdl dF9jb21wdXRlX2Jhc2ljX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNf cmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVf YmFzaWMpOworZXJyb3JfY29tcHV0ZV9iYXNpYzoKKwlpZiAoZ2V0X3JlbmRlcl9iYXNpY19tdXhf Y29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9yZW5kZXJfYmFzaWMpOwogZXJyb3JfcmVuZGVy X2Jhc2ljOgogCXJldHVybiByZXQ7CiB9CkBAIC0yMzUsNCArMjUxMCwzMiBAQCBpOTE1X3BlcmZf dW5yZWdpc3Rlcl9zeXNmc19ieHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CiAJaWYgKGdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQog CQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBf cmVuZGVyX2Jhc2ljKTsKKwlpZiAoZ2V0X2NvbXB1dGVfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJp diwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmlj c19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9iYXNpYyk7CisJaWYgKGdldF9yZW5kZXJfcGlwZV9wcm9m aWxlX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3Vw KGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9waXBlX3Byb2ZpbGUp OworCWlmIChnZXRfbWVtb3J5X3JlYWRzX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkK KwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3Vw X21lbW9yeV9yZWFkcyk7CisJaWYgKGdldF9tZW1vcnlfd3JpdGVzX211eF9jb25maWcoZGV2X3By aXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJp Y3Nfa29iaiwgJmdyb3VwX21lbW9yeV93cml0ZXMpOworCWlmIChnZXRfY29tcHV0ZV9leHRlbmRl ZF9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChk ZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2V4dGVuZGVkKTsKKwlp ZiAoZ2V0X2NvbXB1dGVfbDNfY2FjaGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQor CQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBf Y29tcHV0ZV9sM19jYWNoZSk7CisJaWYgKGdldF9oZGNfYW5kX3NmX211eF9jb25maWcoZGV2X3By aXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJp Y3Nfa29iaiwgJmdyb3VwX2hkY19hbmRfc2YpOworCWlmIChnZXRfbDNfMV9tdXhfY29uZmlnKGRl dl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5t ZXRyaWNzX2tvYmosICZncm91cF9sM18xKTsKKwlpZiAoZ2V0X3Jhc3Rlcml6ZXJfYW5kX3BpeGVs X2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVf Z3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmFzdGVyaXplcl9hbmRf cGl4ZWxfYmFja2VuZCk7CisJaWYgKGdldF9zYW1wbGVyX211eF9jb25maWcoZGV2X3ByaXYsICZt dXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29i aiwgJmdyb3VwX3NhbXBsZXIpOworCWlmIChnZXRfdGRsXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19r b2JqLCAmZ3JvdXBfdGRsXzEpOworCWlmIChnZXRfdGRsXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19r b2JqLCAmZ3JvdXBfdGRsXzIpOworCWlmIChnZXRfY29tcHV0ZV9leHRyYV9tdXhfY29uZmlnKGRl dl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5t ZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2V4dHJhKTsKKwlpZiAoZ2V0X3Rlc3Rfb2FfbXV4 X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3By aXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGVzdF9vYSk7CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9vYV9jaHYuYwppbmRleCAxYzI4ODllODE5YzguLjg3ODM3N2M3NWU0NyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jaHYuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X29hX2Nodi5jCkBAIC0zMSw5ICszMSwyMiBAQAogCiBlbnVtIG1ldHJpY19z ZXRfaWQgewogCU1FVFJJQ19TRVRfSURfUkVOREVSX0JBU0lDID0gMSwKKwlNRVRSSUNfU0VUX0lE X0NPTVBVVEVfQkFTSUMsCisJTUVUUklDX1NFVF9JRF9SRU5ERVJfUElQRV9QUk9GSUxFLAorCU1F VFJJQ19TRVRfSURfSERDX0FORF9TRiwKKwlNRVRSSUNfU0VUX0lEX0wzXzEsCisJTUVUUklDX1NF VF9JRF9MM18yLAorCU1FVFJJQ19TRVRfSURfTDNfMywKKwlNRVRSSUNfU0VUX0lEX0wzXzQsCisJ TUVUUklDX1NFVF9JRF9SQVNURVJJWkVSX0FORF9QSVhFTF9CQUNLRU5ELAorCU1FVFJJQ19TRVRf SURfU0FNUExFUl8xLAorCU1FVFJJQ19TRVRfSURfU0FNUExFUl8yLAorCU1FVFJJQ19TRVRfSURf VERMXzEsCisJTUVUUklDX1NFVF9JRF9URExfMiwKKwlNRVRSSUNfU0VUX0lEX1RFU1RfT0EsCiB9 OwogCi1pbnQgaTkxNV9vYV9uX2J1aWx0aW5fbWV0cmljX3NldHNfY2h2ID0gMTsKK2ludCBpOTE1 X29hX25fYnVpbHRpbl9tZXRyaWNfc2V0c19jaHYgPSAxNDsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpY1tdID0gewogCXsgX01N SU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LApAQCAtMTM1LDYgKzE0OCwxNzU3IEBAIGdldF9yZW5k ZXJfYmFzaWNfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ cmV0dXJuIG11eF9jb25maWdfcmVuZGVyX2Jhc2ljOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9iYXNpY1tdID0geworCXsgX01N SU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHgwMDgwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgw MDgwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1 X2NvbmZpZ19jb21wdXRlX2Jhc2ljW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0 IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDAwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAw eDAwMDAyMDAxIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwNzc4MDA4IH0sCisJeyBfTU1JTygw eGU0NWMpLCAweDAwMDg4MDc4IH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwODA4NzA4IH0sCisJ eyBfTU1JTygweGU2NWMpLCAweDAwYTA4OTA4IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIG11eF9jb25maWdfY29tcHV0ZV9iYXNpY1tdID0geworCXsgX01NSU8oMHg5 ODg4KSwgMHg1OTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTgwMDAwMSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgyZTU4MDBlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZTM4MDBl MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNTgwMDI0ZiB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgzZDgwMDE0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODU4MDA0MiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzU4MDA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDU4MDA0YyB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxNDU4MDA0YiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDU4 MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDU4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMDE5NTU1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjM4MDA0MiB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYTM4MDA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTM4MDA0YyB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjM4MDA0YiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NDM4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDM4NDQ0NCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMDNhNTU1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMThiZmZmZiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMTg0NTU1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgwMDA3 NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgwMDA3ZCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxYjgwMDA3YyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgwMDBiNiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxZjgwMDBiNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTgwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMzgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgw MDBhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzgwMDBhYSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg0NTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzgwMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg0OTgwMDEyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjgwMDEyYSB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZDgwMDEyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0 ZjgwMDEyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTgwMDFjZSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg1MzgwMDFjZSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTgwMDAwZSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg1OTgwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBp OTE1X29hX3JlZyAqCitnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZ X1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2Jhc2ljKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19jb21w dXRlX2Jhc2ljOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRl cl9jb25maWdfcmVuZGVyX3BpcGVfcHJvZmlsZVtdID0geworCXsgX01NSU8oMHgyNzI0KSwgMHhm MDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgy NzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHgyNzcwKSwgMHgwMDA3ZmZlYSB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwN2Zm YyB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDA3YWZmYSB9LAorCXsgX01NSU8oMHgyNzdjKSwg MHgwMDAwZjVmZCB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDA3OWZmYSB9LAorCXsgX01NSU8o MHgyNzg0KSwgMHgwMDAwZjNmYiB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDA3YmY3YSB9LAor CXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZjdlNyB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDA3 ZmVmYSB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZjdjZiB9LAorCXsgX01NSU8oMHgyNzk4 KSwgMHgwMDA3N2ZmYSB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZWZkZiB9LAorCXsgX01N SU8oMHgyN2EwKSwgMHgwMDA2ZmZmYSB9LAorCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwY2ZiZiB9 LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDAzZmZmYSB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgw MDAwNWY3ZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1 X2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAw MDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU2 NTgpLCAweDAwMDI1MDI0IH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDM1MDM0IH0sCisJeyBf TU1JTygweGU0NWMpLCAweDAwMDQ1MDQ0IH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDU1MDU0 IH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDY1MDY0IH0sCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfcmVuZGVyX3BpcGVfcHJvZmlsZVtdID0gewor CXsgX01NSU8oMHg5ODg4KSwgMHg1OTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTgw MDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNjFlMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgyODFmMDAwZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyODE3MDAxYSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgyNzkxMDAxZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzg4MDAxOSB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZDg5MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgy NzhhMDAwNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyOThkMDAxZiB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyNzhlMDAyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyYjhmMDAxMiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgyOTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDE4NDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjE4MTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMjE5NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDFlMDAwMiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNDFlMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDFlMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgyMjFmMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFm MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDFmNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMjFmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjNhODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMjEzYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjE2NDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNDE3MDAxMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NDE3MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzkxMDAwNSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNTkxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTkxMTUwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMzkxMDUwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDg4MDAw MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDg4MDAwMyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNTg4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjg5MDAzMiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYjg5MDAzMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTg5MDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMTg5MDA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzg5 MDA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOThhMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxOThhMDAwNCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThhMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMThhODA1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzhhMjA1MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMThiOTVhOSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MzhiZTVhOSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMThjMTUwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMzhjMDUwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzhkMDAxNSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNThkMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzhlMDAw NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMThlMDAwYyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNThlMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMThlMDUwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMzhlMDEwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjhmMDAyNyB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNThmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMThm MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzhmMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxMTkwMDAxMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwMDAxNyB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTkwMDEwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzkwMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MTg0NTU1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzg0NTU1NSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg0MTgwMDBhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzgwMDBhYSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0NTgwMDBhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzgwMDBh YSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTgwMDE4YyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0YjgwMDE0YiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZDgwMDEyOCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0ZjgwMDEyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTgwMDE4NyB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg1MzgwMDE0YiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTgw MDE0OSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NzgwMDEwYSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg1OTgwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAq CitnZXRfcmVuZGVyX3BpcGVfcHJvZmlsZV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKKwkJCQkgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRSht dXhfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGUpOworCXJldHVybiBtdXhfY29uZmlnX3JlbmRl cl9waXBlX3Byb2ZpbGU7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9j b3VudGVyX2NvbmZpZ19oZGNfYW5kX3NmW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAw MDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTAp LCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweDEwODAwMDAwIH0sCisJeyBfTU1J TygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0s CisJeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDAyIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAw MDBmZmY3IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVf Y29uZmlnX2hkY19hbmRfc2ZbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwK Kwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAw MTIwMTEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTQ1 YyksIDB4MDAwNTEwNTAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwKKwl7IF9N TUlPKDB4ZTY1YyksIDB4MDAwNTUwNTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9yZWcgbXV4X2NvbmZpZ19oZGNfYW5kX3NmW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAw eDEwNWMwMjMyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNTgwMjMyIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDEwMzgwMjMyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwZGMwMjMyIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDEwZDgwMjMyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwYjgw MjMyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOGU0NDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAyNWM2MDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NWMwMDRiIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAwNWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTgyMDgwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyNTgwMDRiIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAy NWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NWI0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBjMWZhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWYwMGFhIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0Mzg2MDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2Mzg0MDRi IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA4Mzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMzgwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBjMzgwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzk4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAyMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0Mzlh MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzkyMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBjZGMyNWMxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhZGNjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBhZDgyNWMxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4ZGI0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFhZGIwMDAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBl OWY4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwOWYwMmFhIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlYjgyNWMxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4YjgwMTU0IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBhYjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjYjlhMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlYjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBkODhjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODgwMDBmIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAzOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGE4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA3OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OGE4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBkOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OGJhYTA1IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDI3OGIwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIyYTgwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE5OGM1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFi OGMwMDE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OGRjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBiOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkOGRhMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBmOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OGUwNWMw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE5OGYwMDIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODVhYTBhIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODVhYTAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDE5ODM1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMw MTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA1ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA5ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBkODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5 ODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODRjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBkODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODRjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAxODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODRjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA3ODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODA4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFiODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODBjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExODA4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODA0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDUxODAwMDQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzODAwNDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQ1ODAwODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUz ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAwYzYyIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDIxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNmODAxMDQy IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDQxODAxNGE0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dl dF9oZGNfYW5kX3NmX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAorCQkJICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2hkY19h bmRfc2YpOworCXJldHVybiBtdXhfY29uZmlnX2hkY19hbmRfc2Y7Cit9CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19sM18xW10gPSB7CisJeyBfTU1J TygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0s CisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYw ODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3 MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMTAwMDcwIH0sCisJeyBf TU1JTygweDI3NzQpLCAweDAwMDBmZmYxIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDE0MDAy IH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBjM2ZmIH0sCisJeyBfTU1JTygweDI3ODApLCAw eDAwMDEwMDAyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDBjN2ZmIH0sCisJeyBfTU1JTygw eDI3ODgpLCAweDAwMDA0MDAyIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBkM2ZmIH0sCisJ eyBfTU1JTygweDI3OTApLCAweDAwMTAwNzAwIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBm ZjFmIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDAxNDAyIH0sCisJeyBfTU1JTygweDI3OWMp LCAweDAwMDBmYzNmIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMDAxMDAyIH0sCisJeyBfTU1J TygweDI3YTQpLCAweDAwMDBmYzdmIH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMDAwNDAyIH0s CisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZDNmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX2wzXzFbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1 OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9N TUlPKDB4ZTY1OCksIDB4MDAwMTIwMTEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQg fSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwNTEwNTAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4 MDAwNTMwNTIgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAwNTUwNTQgfSwKK307CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19sM18xW10gPSB7CisJeyBfTU1J TygweDk4ODgpLCAweDEwYmYwM2RhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0YmYwMDAxIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEyOTgwMzQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEy OTkwMzQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjYmYxMTg3IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlYmYxMjA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwYmYwNTAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAyYmYwNDJiIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0YmYwMDJj IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjZGFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBlZGFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwZGE4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyZGFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0ZGE0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA0OTgzNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwOTgw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2OTkwMDM0IH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEwOTkwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjOWRjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlOWRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwOWQ4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyOWRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 OWQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwOWYwMmE4IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBjOWZhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlOWYwMGJhIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjYjg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjYjk1MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlYjk1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwYjk0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyYjk1MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA0YjkxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2YjkyMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjYmE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODgw MDBmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA1ODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODg4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA5ODg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODg4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBkODgwNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1 OGI4MDBhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OGIwMDJhIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDIzOGI1NTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGM0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFiOGMwMDE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGM0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA3OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OGM0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBiOGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkOGM0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBkOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOGRh MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAzOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGRhMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA3OGQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODU4MDBhIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFm ODVhYTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMwMTU0IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODM0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBkODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBmODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODQ4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFkODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDExODA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3 ODA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzODAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDQ1ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDIxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDNmODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDQxODAwMDYwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2Ff cmVnICoKK2dldF9sM18xX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAorCQkgICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19s M18xKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19sM18xOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfbDNfMltdID0geworCXsgX01NSU8oMHgyNzQw KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01N SU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhm MDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDEwMDA3MCB9LAorCXsgX01NSU8oMHgy Nzc0KSwgMHgwMDAwZmZmMSB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAxNDAwMiB9LAorCXsg X01NSU8oMHgyNzdjKSwgMHgwMDAwYzNmZiB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAxMDAw MiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwYzdmZiB9LAorCXsgX01NSU8oMHgyNzg4KSwg MHgwMDAwNDAwMiB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZDNmZiB9LAorCXsgX01NSU8o MHgyNzkwKSwgMHgwMDEwMDcwMCB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmYxZiB9LAor CXsgX01NSU8oMHgyNzk4KSwgMHgwMDAwMTQwMiB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAw ZmMzZiB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDAwMTAwMiB9LAorCXsgX01NSU8oMHgyN2E0 KSwgMHgwMDAwZmM3ZiB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDAwMDQwMiB9LAorCXsgX01N SU8oMHgyN2FjKSwgMHgwMDAwZmQzZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19sM18yW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAw MDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2 NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBf TU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUy IH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfbDNfMltdID0geworCXsgX01NSU8oMHg5ODg4 KSwgMHgxMDNmMDNkYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDNmMDAwMSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMjE4MDM0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjE5MDM0MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzNmMTE4NyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ZTNmMTIwNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDNmMDUwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMjNmMDQyYiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDNmMDAyYyB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYzVhYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTVhYzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDVhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMjVhYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDVhNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNDE4MzQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDE4MDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNjE5MDAzNCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDE5 MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzFkYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwZTFkYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDFkODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMjFkYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFkNDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDFmMDJhOCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YzFmYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTFmMDBiYSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYzM4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzM5NTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZTM5NTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDM5NDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjM5NTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDM5MTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjM5MjAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzNhNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjhhYTgwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxZDhhMDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzhh ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNzhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOThhODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYjhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDhhODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNThiNDAwNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgy NzhiMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzhiMmE4MCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyMTg1ODAwYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzg1MDAyYSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxZjg1YWEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgzMDE1 NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgzNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwOTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjgzNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZDgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDg0 YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMTg0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzg0YzAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNTg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg0NDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx ZjgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgwODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxMzgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTgwYzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxNzgwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzgwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0NzgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgzMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZDgwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgzZjgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0Zjgw MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTgwMDA2MCB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfbDNfMl9tdXhfY29uZmlnKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJB WV9TSVpFKG11eF9jb25maWdfbDNfMik7CisJcmV0dXJuIG11eF9jb25maWdfbDNfMjsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX2wzXzNbXSA9 IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4 MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAxMDAw NzAgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZjEgfSwKKwl7IF9NTUlPKDB4Mjc3OCks IDB4MDAwMTQwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGMzZmYgfSwKKwl7IF9NTUlP KDB4Mjc4MCksIDB4MDAwMTAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGM3ZmYgfSwK Kwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwMDQwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAw MGQzZmYgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDA3MDAgfSwKKwl7IF9NTUlPKDB4Mjc5 NCksIDB4MDAwMGZmMWYgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwMDE0MDIgfSwKKwl7IF9N TUlPKDB4Mjc5YyksIDB4MDAwMGZjM2YgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAwMDEwMDIg fSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZjN2YgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4 MDAwMDA0MDIgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZkM2YgfSwKK307CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbDNfM1tdID0geworCXsg X01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAw MyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwg MHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8o MHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAor fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2wzXzNbXSA9 IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIxYjAzNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTAzZjAyNzQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIzZjAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTI5YjAzNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBiZjAyNzQgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTJiZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxYjM0 MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxYjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDQ1YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEzZDQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDAzZjAwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzZjA3OTMgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzZjAwMTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ1 ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDI1YWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ1YTQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGE1YjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAxZDgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIxZGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDQxZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMxZmEwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGUxZjAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEzODQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDAzOTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzOTUw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzOTkwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDY5YjAwMzQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5YjAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDZkYzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiZDQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiZjA5ODEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGVi ZjBhMGYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZkODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGNkYWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGVkYWMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGNkYjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM5ZGMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU5ZGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTA5ZjAyYTggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU5ZjAwODAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGNiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiOTUwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGViOTUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZiOTIw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4ODAwMGYgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGQ4ODA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4YTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDU4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4YTgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4 YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjU4YjgwMDkgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4Mjc4YjAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4YjJhODAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTk4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4YzAwMTUg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGQ4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDc4ZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4NTgwMGEgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4NWFh MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MzAxNTQgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDM4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MzQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDc4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MzQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4 MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGY4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NDgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDM4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4NGMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWQ4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MGMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTE4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4MGMwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTU4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4MDQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDU4MDBjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDBjNjMgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MjE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y4 MDE0YTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4NDE4MDAwNDUgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcg KgorZ2V0X2wzXzNfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CisJCSAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2wzXzMp OworCXJldHVybiBtdXhfY29uZmlnX2wzXzM7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19sM180W10gPSB7CisJeyBfTU1JTygweDI3NDApLCAw eDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygw eDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJ eyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweGYwODAw MDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMTAwMDcwIH0sCisJeyBfTU1JTygweDI3NzQp LCAweDAwMDBmZmYxIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDE0MDAyIH0sCisJeyBfTU1J TygweDI3N2MpLCAweDAwMDBjM2ZmIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDEwMDAyIH0s CisJeyBfTU1JTygweDI3ODQpLCAweDAwMDBjN2ZmIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAw MDA0MDAyIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBkM2ZmIH0sCisJeyBfTU1JTygweDI3 OTApLCAweDAwMTAwNzAwIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZjFmIH0sCisJeyBf TU1JTygweDI3OTgpLCAweDAwMDAxNDAyIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmYzNm IH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMDAxMDAyIH0sCisJeyBfTU1JTygweDI3YTQpLCAw eDAwMDBmYzdmIH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMDAwNDAyIH0sCisJeyBfTU1JTygw eDI3YWMpLCAweDAwMDBmZDNmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2Ff cmVnIGZsZXhfZXVfY29uZmlnX2wzXzRbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUw MDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCks IDB4MDAwMTIwMTEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlP KDB4ZTQ1YyksIDB4MDAwNTEwNTAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwK Kwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAwNTUwNTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19sM180W10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAw eDEyMWEwMzQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwM2YwMDE3IH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDEyM2YwMDIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEyOWEwMzQwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDEwYmYwMDE3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEyYmYw MDIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MWEzNDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEwMWEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0M2I4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBhM2UwMDEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwM2YwMjAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyM2YwMTEzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 M2YwMDE0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTkyMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAwNWE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNWFjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0NWE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMWM4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMWQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAyMWRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MWQ0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBhMWU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMWZhMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlMWYwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzk0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMzk1MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA0MzkxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2OWEwMDM0IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEwOWEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2YmI0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBhYmUwMDQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBj YmYwOTg0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlYmYwYTAyIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyZDk0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjZGFjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBlZGFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjOWMwNDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjOWRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBlOWRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjOWUwNDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDEwOWYwMmE4IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlOWYwMDQwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjYjk1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlYjk1 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODgwMDBmIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBkODgwNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzOGE4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA1OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3OGE4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA5OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBi OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OGI4MDA5IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDI3OGIwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIyYTgwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE5OGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOGMwMDE1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkOGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBkOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOGRhMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3OGQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODU4MDBhIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODVh YTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMwMTU0IH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODM0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBk ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkODRjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBmODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODQ4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFkODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDExODA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODA0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDQ1ODAwODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAwODQyIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDIxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNm ODAxMDg0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDQxODAwMDQ0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn ICoKK2dldF9sM180X211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAorCQkgICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19sM180 KTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19sM180OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5 MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZFtd ID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwg MHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8o MHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAor CXsgX01NSU8oMHgyNzI0KSwgMHgzMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAw NjAwMCB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwZjNmZiB9LAorCXsgX01NSU8oMHgyNzc4 KSwgMHgwMDAwMTgwMCB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwZmNmZiB9LAorCXsgX01N SU8oMHgyNzgwKSwgMHgwMDAwMDYwMCB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwZmYzZiB9 LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDAwMDE4MCB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgw MDAwZmZjZiB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDAwMDA2MCB9LAorCXsgX01NSU8oMHgy Nzk0KSwgMHgwMDAwZmZmMyB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDAwMDAxOCB9LAorCXsg X01NSU8oMHgyNzljKSwgMHgwMDAwZmZmYyB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBp OTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kW10g PSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAw eDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygw eGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJ eyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1 MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdf cmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZFtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgx NDNiMDAwZSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDNjNTVjMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYTFlMDI4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzFlMDQwOCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxMDM5MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjM5N2Ex ZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNGJiMDAwZSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNGJjNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTllMDI5NiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzllMDAwOCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMGI5MDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMmI5N2ExZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjNi MDA0MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDNiMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwODNjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTNlMDA0MCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNDNmODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjU5NDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDVhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YzFjMDQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFkODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwODFlMDJjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTFlMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYzFmYTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTFmMDI2 MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDFmMDAxNCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMDM5MDVlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjM5MGJjMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMjM5MDAxOCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDM5NDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNGJiMDA0MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMGJi MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmJjMDVjMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwOGJjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWJlMDAwNCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMmJmODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmQ5MTAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmRhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ODljODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjlkODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwODllODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTllMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZTlmYTgwNiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDlmMDE0 MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOGI5MDYxNyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwYWI5MGJlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmI5NDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwZDg4ZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg4MDAwYyB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNzg4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTg4 ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMThhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwZjhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjhhMjgwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMzhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThhODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ZDhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzhiNTJhMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyNThiNmE5NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzhiMDAyOSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxNzhjMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOThjMTUw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjhjMDAxNCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNzhjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOThjNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwOThkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjhkYTAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZjhkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzhk ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxZjg1YWE4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTg1YWFhYSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgyMzg1MDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTgzNDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx OTgzNTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgzMDE1NSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMzgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTgzNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNzgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTgzNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZDgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTg0YzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNzg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTg0YzAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYjg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDg0 YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMzg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTg0YzAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMTgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgwYzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx YjgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgwYzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxZjgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzgwYzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxNTgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZDgwMDQ0 NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZDgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0ZjgwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzgwMTA4MCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg1MTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTgwMDA4NCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg1MzgwMDA0NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0Nzgw MTA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgzMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZjgwMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg0MTgwMDg0MCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X29hX3JlZyAqCitnZXRfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZF9tdXhfY29uZmlnKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJICAgIGludCAqbGVuKQorewor CSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2Vu ZCk7CisJcmV0dXJuIG11eF9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZDsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3NhbXBs ZXJfMVtdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgy NzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHgyNzE0KSwgMHg3MDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAw MCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwg MHgwMDAwYzAwMCB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwZTdmZiB9LAorCXsgX01NSU8o MHgyNzc4KSwgMHgwMDAwMzAwMCB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwZjlmZiB9LAor CXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMGMwMCB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAw ZmU3ZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2Nv bmZpZ19zYW1wbGVyXzFbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7 IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMTIw MTEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTQ1Yyks IDB4MDAwNTEwNTAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwKKwl7IF9NTUlP KDB4ZTY1YyksIDB4MDAwNTUwNTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9v YV9yZWcgbXV4X2NvbmZpZ19zYW1wbGVyXzFbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg5 MjE0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQ5NTAwYWIgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MThiMjE0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTRiNTAwYWIgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MThkMjE0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTRkNTAwYWIg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNkYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGVkYzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJkY2MwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDRkY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWFiZDAwYTAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGFiZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNkODgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGVkODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDRkODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWFkYjAwNTAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDRkYjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZkYjgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDhkYjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFk YjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5ZjAyYTAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGM5ZmEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU5ZjAwYWEgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MThiODI1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJiODgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDZiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhiODQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGFiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiODgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGNiOTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGViOWEw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBiOTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDJiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiOWEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDZiOTIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWFiYTAyMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDJiYTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNi YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDQ5MTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ5MjczMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTA5MjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg5MzAwMGEg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE5MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGE5NDYwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM5NTkwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGU5NTAwOTggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5NTAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDRiMDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiMTQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiMjAwNzMgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTBiMjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiMzgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDZiMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhiMzQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiNGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJi NTk4OTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBiNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDZkMDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZkMTQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDZkMjAwNzMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBkMjAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MThkMzAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDJkMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNkMzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGFkNDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRkNDIwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGVkNTkwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBkNTk4 MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBkNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGY4ODAwMGUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4ODgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDU4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4ODgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4 ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4ODA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4Mjc4YjAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4YjU1MDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MjU4YjAwMGEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4YzAwMTUg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDU4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4YzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDk4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4YzQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGQ4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4ZDgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDE4ZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4ZGEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDU4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4ZDIwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4 NWFhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE4NTAwMGEgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWI4MzAxNTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDU4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MzQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGI4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGQ4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4NGMwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDE4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NGMw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDc4NDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MDgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWY4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4 MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4NTM4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDEwMjEgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MjE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGQ4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 M2Y4MDBjNjQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDE4MDBjMDIgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9y ZWcgKgorZ2V0X3NhbXBsZXJfMV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKKwkJCSBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmln X3NhbXBsZXJfMSk7CisJcmV0dXJuIG11eF9jb25maWdfc2FtcGxlcl8xOworfQorCitzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfc2FtcGxlcl8yW10gPSB7 CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAw ODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3 MTQpLCAweDcwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBf TU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMDBjMDAw IH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBlN2ZmIH0sCisJeyBfTU1JTygweDI3NzgpLCAw eDAwMDAzMDAwIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBmOWZmIH0sCisJeyBfTU1JTygw eDI3ODApLCAweDAwMDAwYzAwIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDBmZTdmIH0sCit9 OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3NhbXBs ZXJfMltdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhl NTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsg X01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1 MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwg MHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhf Y29uZmlnX3NhbXBsZXJfMltdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxODEyMTQwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxNDE1MDBhYiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODMy MTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDM1MDBhYiB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxODUyMTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDU1MDBhYiB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYzVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTVjNDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjVjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NDVjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTNkMDBhMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYTNkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzU4ODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZTU4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDU4ODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTViMDA1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDViODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjViODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwODViODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTViNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMDFmMDJhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzFm YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTFmMDBhYSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxODM4MjUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjM4ODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNDM4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjM4NDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODM4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YTM4NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzM4ODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYzM5ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTM5YTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMDM5ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjM5YTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDM5YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNjM5MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTNhMDIwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMjNhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzNhODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNDEwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDEx ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDEyNzMwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxMDEyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODEzMDAwYSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYTEzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTE0NjAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzE1OTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ZTE1MDA5OCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDE1MDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDMwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDMxNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDMyMDA3MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDMyMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDMzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNjMzODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODMzNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNDM0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjM1OTg5MCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMDM1MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjUw NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjUxNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNjUyMDA3MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDUyMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxODUzMDAyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjUzODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzUzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YTU0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDU0MjAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwZTU1OTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDU1OTgwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxMDU1MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjhhYTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDhhMDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMzhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThhODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNzhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOThhODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYjhhODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDhh ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzhiMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgyMzhiMmE4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNThiMDAwNSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgyMzg1MDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjg1YWEwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTg1MDAwYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx YjgzMDE1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzgzNDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgzNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwOTgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYjgzNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDgzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZDg0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjg0YzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMTg0ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzg0YzAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNTg0YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzg0 NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxZjgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgwODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMzgwYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTgwYzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1 MzgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzgwMTAyMSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyMTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMTgwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0ZDgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZjgwMGM2 NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0ZjgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0MTgwMGMwMiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitn ZXRfc2FtcGxlcl8yX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAorCQkJIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfc2FtcGxl cl8yKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19zYW1wbGVyXzI7Cit9CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZGxfMVtdID0geworCXsgX01NSU8o MHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAor CXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgw MDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0 KSwgMHgzMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01N SU8oMHgyNzc0KSwgMHgwMDAwZmRmZiB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwZmU3ZiB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgw MDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwZmZiZiB9LAorCXsgX01NSU8oMHgy Nzg4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZjZiB9LAorCXsg X01NSU8oMHgyNzkwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZm NyB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzljKSwg MHgwMDAwZmZmOSB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4 X2V1X2NvbmZpZ190ZGxfMVtdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAor CXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAx MjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVj KSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01N SU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X29hX3JlZyBtdXhfY29uZmlnX3RkbF8xW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDE2MTU0 ZDYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2MzUyZTYwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE2NTU0ZDYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2OTUwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE2YjUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2ZDUwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAwNWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 NWNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NWM0MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA4M2Q4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhM2Q4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0NThjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNWI4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBhNWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNWI4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBjMWZhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWYwMGFhIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAyMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0Mzg4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2Mzg4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA4Mzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMzg0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBjMzg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzk4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyMzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 MzlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzkyMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA0M2E4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2M2E4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA4MTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMTM4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MTQzMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA0MTVjZmM3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMTUwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyMzM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzM4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA0MzQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzQ0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzVjNzAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA2MzUwMGNmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMzUwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA0NTM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NTM4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA0NTRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAy NTVjZmM3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNTUwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA2ZGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4ZGM0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjZGNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlZGNjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhYmQwMGE4IH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBjZDhjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlZDg0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlZGI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4ZGIwODAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFhZGIwMjU0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlOWZh YTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwOWYwMmFhIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBlYjg0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2Yjg0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE4YjgxNTZhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2Yjk4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA4YjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBh YjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjYjlhMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlYjlhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4YmFhMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFhYmEwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2OTM0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4OTMwMDBhIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBhOTQ3MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjOTVjNWMxIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlOTUwMGMzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwOTUwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlYjM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2YjMw MDQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4YjMwMDIwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA2YjQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4YjQxMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBhYjQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2YjVjNTAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA4YjUwMGMzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBl YjVjMTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwYjUwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE2ZDMxNTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4ZDRlMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA4ZDVjMTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhZDVjM2M1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwZDUwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBkODhmODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODgwMDBmIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAzOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1OGE4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA3OGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OGE4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBkOGE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OGJhYWE1IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDI3OGIwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOGIyYTgwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBmOGM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3 OGMyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OGM1NTAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFiOGMwMDE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3OGQ4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA5OGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOGRhMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBmOGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxODVhYWFhIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDIzODUwMDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODVhYTAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBmODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODM1 NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODMwMTU1IH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAzODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODM0MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA3ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5ODM0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBiODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBk ODM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODRjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA5ODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiODRjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBkODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmODRjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxODQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAzODRjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODRjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE3ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODBjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFiODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODBj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDExODA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODBjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE1ODBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRmODAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQzODAwYzQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUx ODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1ODAwMDYzIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDUzODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3ODAwODAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDIxODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxODAwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRkODAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDNmODAxNGE0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxODAxMDQyIH0sCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF90ZGxfMV9tdXhfY29uZmlnKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgICBpbnQgKmxlbikKK3sKKwkqbGVu ID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3RkbF8xKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ190ZGxf MTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmln X3RkbF8yW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygw eDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAw MDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweDMwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NzAp LCAweDAwMDAwMDAyIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmZGZmIH0sCisJeyBfTU1J TygweDI3NzgpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBmZTdmIH0s CisJeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAw MDBmZjlmIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3 OGMpLCAweDAwMDBmZmU3IH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDAwMDAyIH0sCisJeyBf TU1JTygweDI3OTQpLCAweDAwMDBmZmZiIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDAwMDAy IH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmZkIH0sCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3RkbF8yW10gPSB7CisJeyBfTU1JTygw eGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJ eyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1 MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMp LCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitz dGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGRsXzJbXSA9IHsKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTYxNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzNTAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTY1NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTY5NTJlNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTZiNTRkNjAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTZkNTJlNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1YzgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDg1Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE1 Y2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM1YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGUzZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTgzZGEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDY1ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg1ODgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE1ODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGU1YjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg1YjU4MDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWE1YjAwMGEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxZmFhMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTAxZjAyYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUzODQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTgzODJhNTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzOTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDgzOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEzOWEwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGMzOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUz OWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWEzYTAyYTAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGUxMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYxMzA1MDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDYxNDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgxNDYwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxNWMxMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDgxNWM1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGExNTAwYzMgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTAxNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzMzUwNDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDgzNDkwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEzNDEw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgzNTAwYzEgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGEzNWM1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMzNTAwYzMgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTAzNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg1MzAwMmEgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGE1NGUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM1 NWM1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU1NWMxYzMgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTA1NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBkYzgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDJkY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRkYzQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDZiZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJkOGMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDJkYjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRkYjQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDZkYjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDhkYjgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM5ZmEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGU5ZjAwYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJiODQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDRiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZiODQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDhiODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFi ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGNiODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDBiOTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJiOWEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDRiOWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZiOTIwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFiYTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGNiYTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ5MzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDY5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ5NGMwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDI5NWNmYzcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA5NTAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDJiMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDhiMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiNDIwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDZiNDEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDBiNWM3MDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDRiNTAwY2YgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBi NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGFkMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGNkMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZkNDYwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDRkNWM3MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDZkNTAwY2Yg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTBkNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDM4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4ODgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDc4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4ODgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGI4ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4ODA0 MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTk4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4YWFhYTAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWQ4YTAwMDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjU4YjU1NWEgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc4YjAwMTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4 YjU1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDU4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4YzQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDk4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4YzQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4YzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDE4ZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDU4ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4ZDIwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MjE4NWFhYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM4NTAw MmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4NWFhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGY4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4MzU0MDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWI4MzAxNTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4 MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGI4MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MzQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDc4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NGMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGQ4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4NGMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDE4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NGMwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDU4NGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4MGMw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWI4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MGMwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWY4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4 MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGY4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4NDM4MDA4ODIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE4MDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NDU4MDEwODIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM4MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc4MDE0YTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MjE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NGQ4MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y4MDAwMDIgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDE4MDBjNjIgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgKgorZ2V0X3RkbF8yX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAorCQkgICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11 eF9jb25maWdfdGRsXzIpOworCXJldHVybiBtdXhfY29uZmlnX3RkbF8yOworfQorCitzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0gewor CXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgw MDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEw KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01N SU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9 LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgw MDAwMDAwMyB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgy NzgwKSwgMHgwMDAwMDAwNyB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZm NyB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAorCXsgX01NSU8oMHgyNzk0KSwg MHgwMDAwZmZjZiB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAorCXsgX01NSU8o MHgyNzljKSwgMHgwMDAwZmZlZiB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAor CXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDEw MDAwMSB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Cit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0g eworCXsgX01NSU8oMHg5ODg4KSwgMHg1OTgwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1 OTgwMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzhiMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyNThiMDA2NiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNThiMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMzhiMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzg0NDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzgwMDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1NzgwMDAwMCB9LAorCXsgX01NSU8oMHgxODIzYTQpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDU5ODAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf b2FfcmVnICoKK2dldF90ZXN0X29hX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCQkgICAgICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4 X2NvbmZpZ190ZXN0X29hKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ190ZXN0X29hOworfQorCiBpbnQg aTkxNV9vYV9zZWxlY3RfbWV0cmljX3NldF9jaHYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogewogCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0gTlVMTDsKQEAgLTE0NCwx MyArMTkwOCwyODggQEAgaW50IGk5MTVfb2Ffc2VsZWN0X21ldHJpY19zZXRfY2h2KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3Mg PSBOVUxMOwogCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPSAwOwogCi0Jc3dpdGNo IChkZXZfcHJpdi0+cGVyZi5vYS5tZXRyaWNzX3NldCkgewotCWNhc2UgTUVUUklDX1NFVF9JRF9S RU5ERVJfQkFTSUM6CisJc3dpdGNoIChkZXZfcHJpdi0+cGVyZi5vYS5tZXRyaWNzX3NldCkgewor CWNhc2UgTUVUUklDX1NFVF9JRF9SRU5ERVJfQkFTSUM6CisJCWRldl9wcml2LT5wZXJmLm9hLm11 eF9yZWdzID0KKwkJCWdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJ CSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+ cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVY IGNvbmZpZyBmb3IgXCJSRU5ERVJfQkFTSUNcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlO VkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICog YW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQK KwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVy biAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQor CQkJYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmJf Y291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfcmVuZGVy X2Jhc2ljKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9j b25maWdfcmVuZGVyX2Jhc2ljOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0K KwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKworCQlyZXR1cm4g MDsKKwljYXNlIE1FVFJJQ19TRVRfSURfQ09NUFVURV9CQVNJQzoKKwkJZGV2X3ByaXYtPnBlcmYu b2EubXV4X3JlZ3MgPQorCQkJZ2V0X2NvbXB1dGVfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwK KwkJCQkJCSAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2 X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRh YmxlIE1VWCBjb25maWcgZm9yIFwiQ09NUFVURV9CQVNJQ1wiIG1ldHJpYyBzZXRcbiIpOworCisJ CQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlz CisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNw YWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLwor CQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJf cmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfYmFzaWM7CisJCWRldl9wcml2LT5w ZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25m aWdfY29tcHV0ZV9iYXNpYyk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJ CWZsZXhfZXVfY29uZmlnX2NvbXB1dGVfYmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhf cmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19jb21wdXRlX2Jhc2ljKTsK KworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfUkVOREVSX1BJUEVfUFJPRklMRToK KwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X3JlbmRlcl9waXBlX3Byb2Zp bGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCQkgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4 X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJN X0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJSRU5ERVJfUElQRV9Q Uk9GSUxFXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0 ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBo YXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3Qg aGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJ CWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdf cmVuZGVyX3BpcGVfcHJvZmlsZTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3Nf bGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxl KTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdf cmVuZGVyX3BpcGVfcHJvZmlsZTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9 CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGUpOworCisJ CXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9IRENfQU5EX1NGOgorCQlkZXZfcHJpdi0+ cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfaGRjX2FuZF9zZl9tdXhfY29uZmlnKGRldl9wcml2 LAorCQkJCQkJICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZf cHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFi bGUgTVVYIGNvbmZpZyBmb3IgXCJIRENfQU5EX1NGXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8q IEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJ CSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2Ug YW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQly ZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdz ID0KKwkJCWJfY291bnRlcl9jb25maWdfaGRjX2FuZF9zZjsKKwkJZGV2X3ByaXYtPnBlcmYub2Eu Yl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19oZGNf YW5kX3NmKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9j b25maWdfaGRjX2FuZF9zZjsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJ CQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2hkY19hbmRfc2YpOworCisJCXJldHVybiAwOwor CWNhc2UgTUVUUklDX1NFVF9JRF9MM18xOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9 CisJCQlnZXRfbDNfMV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgJmRldl9wcml2LT5w ZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3Mp IHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiTDNf MVwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5 c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBi ZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUg YmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZf cHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2wzXzE7 CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpF KGJfY291bnRlcl9jb25maWdfbDNfMSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdz ID0KKwkJCWZsZXhfZXVfY29uZmlnX2wzXzE7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVn c19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19sM18xKTsKKworCQlyZXR1cm4g MDsKKwljYXNlIE1FVFJJQ19TRVRfSURfTDNfMjoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3Jl Z3MgPQorCQkJZ2V0X2wzXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJICAgICZkZXZfcHJp di0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9y ZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBc IkwzXzJcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rl cl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhh dmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBo YXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJ ZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19s M18yOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlf U0laRShiX2NvdW50ZXJfY29uZmlnX2wzXzIpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhf cmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19sM18yOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4 X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfbDNfMik7CisKKwkJcmV0 dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX0wzXzM6CisJCWRldl9wcml2LT5wZXJmLm9hLm11 eF9yZWdzID0KKwkJCWdldF9sM18zX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCSAgICAmZGV2 X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5t dXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBm b3IgXCJMM18zXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVn aXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4n dCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRu J3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQor CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25m aWdfbDNfMzsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFS UkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19sM18zKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5m bGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfbDNfMzsKKwkJZGV2X3ByaXYtPnBlcmYub2Eu ZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2wzXzMpOworCisJ CXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9MM180OgorCQlkZXZfcHJpdi0+cGVyZi5v YS5tdXhfcmVncyA9CisJCQlnZXRfbDNfNF9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAg JmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYu b2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25m aWcgZm9yIFwiTDNfNFwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAq X3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291 bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hv dWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJ CX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJf Y29uZmlnX2wzXzQ7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJ CQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbDNfNCk7CisKKwkJZGV2X3ByaXYtPnBlcmYu b2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2wzXzQ7CisJCWRldl9wcml2LT5wZXJm Lm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19sM180KTsK KworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfUkFTVEVSSVpFUl9BTkRfUElYRUxf QkFDS0VORDoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X3Jhc3Rlcml6 ZXJfYW5kX3BpeGVsX2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCQkJICAgICZk ZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9h Lm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmln IGZvciBcIlJBU1RFUklaRVJfQU5EX1BJWEVMX0JBQ0tFTkRcIiBtZXRyaWMgc2V0XG4iKTsKKwor CQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhp cworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJz cGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8K KwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVy X3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5k OworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlfU0la RShiX2NvdW50ZXJfY29uZmlnX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmQpOworCisJCWRl dl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19yYXN0ZXJpemVy X2FuZF9waXhlbF9iYWNrZW5kOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0K KwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2Vu ZCk7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX1NBTVBMRVJfMToKKwkJZGV2 X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X3NhbXBsZXJfMV9tdXhfY29uZmlnKGRl dl9wcml2LAorCQkJCQkJICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAo IWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBz dWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlNBTVBMRVJfMVwiIG1ldHJpYyBzZXRcbiIpOworCisJ CQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlz CisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNw YWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLwor CQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJf cmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX3NhbXBsZXJfMTsKKwkJZGV2X3ByaXYtPnBlcmYu b2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19z YW1wbGVyXzEpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1 X2NvbmZpZ19zYW1wbGVyXzE7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQor CQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19zYW1wbGVyXzEpOworCisJCXJldHVybiAwOwor CWNhc2UgTUVUUklDX1NFVF9JRF9TQU1QTEVSXzI6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9y ZWdzID0KKwkJCWdldF9zYW1wbGVyXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAmZGV2 X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5t dXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBm b3IgXCJTQU1QTEVSXzJcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2Ug Kl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdv dWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNo b3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOwor CQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVy X2NvbmZpZ19zYW1wbGVyXzI7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xl biA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfc2FtcGxlcl8yKTsKKworCQlkZXZf cHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfc2FtcGxlcl8yOwor CQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9l dV9jb25maWdfc2FtcGxlcl8yKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURf VERMXzE6CiAJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KLQkJCWdldF9yZW5kZXJfYmFz aWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKLQkJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4 X3JlZ3NfbGVuKTsKKwkJCWdldF90ZGxfMV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAg ICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOwogCQlpZiAoIWRldl9wcml2LT5wZXJm Lm9hLm11eF9yZWdzKSB7Ci0JCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29u ZmlnIGZvciBcIlJFTkRFUl9CQVNJQ1wiIG1ldHJpYyBzZXRcbiIpOworCQkJRFJNX0RFQlVHX0RS SVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJURExfMVwiIG1ldHJpYyBzZXRcbiIp OwogCiAJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tl ZCB0aGlzCiAJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8g dXNlcnNwYWNlIGFuZApAQCAtMTYwLDE0ICsyMTk5LDY0IEBAIGludCBpOTE1X29hX3NlbGVjdF9t ZXRyaWNfc2V0X2NodihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCX0KIAog CQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9Ci0JCQliX2NvdW50ZXJfY29uZmln X3JlbmRlcl9iYXNpYzsKKwkJCWJfY291bnRlcl9jb25maWdfdGRsXzE7CiAJCWRldl9wcml2LT5w ZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9Ci0JCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25m aWdfcmVuZGVyX2Jhc2ljKTsKKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZGxfMSk7 CiAKIAkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KLQkJCWZsZXhfZXVfY29uZmlnX3Jl bmRlcl9iYXNpYzsKKwkJCWZsZXhfZXVfY29uZmlnX3RkbF8xOwogCQlkZXZfcHJpdi0+cGVyZi5v YS5mbGV4X3JlZ3NfbGVuID0KLQkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVyX2Jh c2ljKTsKKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGRsXzEpOworCisJCXJldHVybiAw OworCWNhc2UgTUVUUklDX1NFVF9JRF9URExfMjoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3Jl Z3MgPQorCQkJZ2V0X3RkbF8yX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCSAgICAgJmRldl9w cml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4 X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9y IFwiVERMXzJcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdp c3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0 IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4n dCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisK KwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZp Z190ZGxfMjsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFS UkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZGxfMik7CisKKwkJZGV2X3ByaXYtPnBlcmYub2Eu ZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX3RkbF8yOworCQlkZXZfcHJpdi0+cGVyZi5v YS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGRsXzIpOwor CisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9URVNUX09BOgorCQlkZXZfcHJpdi0+ cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfdGVzdF9vYV9tdXhfY29uZmlnKGRldl9wcml2LAor CQkJCQkgICAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2 X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRh YmxlIE1VWCBjb25maWcgZm9yIFwiVEVTVF9PQVwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBF SU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkg KiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFu ZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0 dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9 CisJCQliX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291 bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7 CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX3Rl c3Rfb2E7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0la RShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKIAogCQlyZXR1cm4gMDsKIAlkZWZhdWx0OgpAQCAt MTk3LDYgKzIyODYsMjkyIEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3Jl bmRlcl9iYXNpYyA9IHsKIAkuYXR0cnMgPSAgYXR0cnNfcmVuZGVyX2Jhc2ljLAogfTsKIAorc3Rh dGljIHNzaXplX3QKK3Nob3dfY29tcHV0ZV9iYXNpY19pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJp bnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX0NPTVBVVEVfQkFTSUMpOworfQorCitzdGF0 aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfY29tcHV0ZV9iYXNpY19pZCA9IHsK KwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3df Y29tcHV0ZV9iYXNpY19pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHJzX2NvbXB1dGVfYmFzaWNbXSA9IHsKKwkmZGV2X2F0dHJfY29tcHV0ZV9i YXNpY19pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91 cCBncm91cF9jb21wdXRlX2Jhc2ljID0geworCS5uYW1lID0gImY1MjJhODljLWVjZDEtNDUyMi04 MzMxLTMzODNjNTRhZjVmNSIsCisJLmF0dHJzID0gIGF0dHJzX2NvbXB1dGVfYmFzaWMsCit9Owor CitzdGF0aWMgc3NpemVfdAorc2hvd19yZW5kZXJfcGlwZV9wcm9maWxlX2lkKHN0cnVjdCBkZXZp Y2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJ cmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfUkVOREVSX1BJUEVfUFJP RklMRSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9yZW5k ZXJfcGlwZV9wcm9maWxlX2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0g MDQ0NCB9LAorCS5zaG93ID0gc2hvd19yZW5kZXJfcGlwZV9wcm9maWxlX2lkLAorCS5zdG9yZSA9 IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfcmVuZGVyX3BpcGVf cHJvZmlsZVtdID0geworCSZkZXZfYXR0cl9yZW5kZXJfcGlwZV9wcm9maWxlX2lkLmF0dHIsCisJ TlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3JlbmRlcl9w aXBlX3Byb2ZpbGUgPSB7CisJLm5hbWUgPSAiYTljY2MwM2QtYTk0My00ZTZiLTljZDYtMTNlMDYz MDc1OTI3IiwKKwkuYXR0cnMgPSAgYXR0cnNfcmVuZGVyX3BpcGVfcHJvZmlsZSwKK307CisKK3N0 YXRpYyBzc2l6ZV90CitzaG93X2hkY19hbmRfc2ZfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50 ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9IRENfQU5EX1NGKTsKK30KKworc3RhdGljIHN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2hkY19hbmRfc2ZfaWQgPSB7CisJLmF0dHIg PSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X2hkY19hbmRf c2ZfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICph dHRyc19oZGNfYW5kX3NmW10gPSB7CisJJmRldl9hdHRyX2hkY19hbmRfc2ZfaWQuYXR0ciwKKwlO VUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfaGRjX2FuZF9z ZiA9IHsKKwkubmFtZSA9ICIyY2YwYzA2NC02OGRmLTRmYWMtOWIzZi01N2Y1MWNhOGEwNjkiLAor CS5hdHRycyA9ICBhdHRyc19oZGNfYW5kX3NmLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3df bDNfMV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0 ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VU X0lEX0wzXzEpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJf bDNfMV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwku c2hvdyA9IHNob3dfbDNfMV9pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHJzX2wzXzFbXSA9IHsKKwkmZGV2X2F0dHJfbDNfMV9pZC5hdHRyLAor CU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9sM18xID0g eworCS5uYW1lID0gIjc4YTg3ZmY5LTU0M2EtNDljZS05NWVhLTI2ZDg2MDcxZWE5MyIsCisJLmF0 dHJzID0gIGF0dHJzX2wzXzEsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19sM18yX2lkKHN0 cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpi dWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfTDNfMik7 Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9sM18yX2lkID0g eworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hv d19sM18yX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0 ZSAqYXR0cnNfbDNfMltdID0geworCSZkZXZfYXR0cl9sM18yX2lkLmF0dHIsCisJTlVMTCwKK307 CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2wzXzIgPSB7CisJLm5hbWUg PSAiOWYyY2VjZTUtN2JmZS00MzIwLWFkNjYtOGM3Y2M1MjZiZWM1IiwKKwkuYXR0cnMgPSAgYXR0 cnNfbDNfMiwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2wzXzNfaWQoc3RydWN0IGRldmlj ZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwly ZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9MM18zKTsKK30KKworc3Rh dGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2wzXzNfaWQgPSB7CisJLmF0dHIg PSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X2wzXzNfaWQs CisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19s M18zW10gPSB7CisJJmRldl9hdHRyX2wzXzNfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfbDNfMyA9IHsKKwkubmFtZSA9ICJkODkwZWYz OC1kMzA5LTQ3ZTQtYjhiNS1hYTc3OWJiMTlhYjAiLAorCS5hdHRycyA9ICBhdHRyc19sM18zLAor fTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfbDNfNF9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJp bnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX0wzXzQpOworfQorCitzdGF0aWMgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfbDNfNF9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUg PSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfbDNfNF9pZCwKKwkuc3RvcmUg PSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX2wzXzRbXSA9IHsK KwkmZGV2X2F0dHJfbDNfNF9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZV9ncm91cCBncm91cF9sM180ID0geworCS5uYW1lID0gIjVmZGZmNGE2LTlkYzgtNDVl MS1iZmRhLWVmNTQ4NjlmYmRkNCIsCisJLmF0dHJzID0gIGF0dHJzX2wzXzQsCit9OworCitzdGF0 aWMgc3NpemVfdAorc2hvd19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX2lkKHN0cnVjdCBk ZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7 CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfUkFTVEVSSVpFUl9B TkRfUElYRUxfQkFDS0VORCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBk ZXZfYXR0cl9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX2lkID0geworCS5hdHRyID0geyAu bmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19yYXN0ZXJpemVyX2Fu ZF9waXhlbF9iYWNrZW5kX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0cnNfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZFtdID0geworCSZk ZXZfYXR0cl9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX2lkLmF0dHIsCisJTlVMTCwKK307 CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3Jhc3Rlcml6ZXJfYW5kX3Bp eGVsX2JhY2tlbmQgPSB7CisJLm5hbWUgPSAiMmMwZTQ1ZTEtN2UyYy00YTE0LWFlMDAtMGI3ZWM4 NjhiOGFhIiwKKwkuYXR0cnMgPSAgYXR0cnNfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCwK K307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3NhbXBsZXJfMV9pZChzdHJ1Y3QgZGV2aWNlICpr ZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVy biBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1NBTVBMRVJfMSk7Cit9CisKK3N0 YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9zYW1wbGVyXzFfaWQgPSB7CisJ LmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3Nh bXBsZXJfMV9pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHJzX3NhbXBsZXJfMVtdID0geworCSZkZXZfYXR0cl9zYW1wbGVyXzFfaWQuYXR0ciwK KwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfc2FtcGxl cl8xID0geworCS5uYW1lID0gIjcxMTQ4ZDc4LWJhZjUtNDc0Zi04NzhhLWUyMzE1OGQwMjY1ZCIs CisJLmF0dHJzID0gIGF0dHJzX3NhbXBsZXJfMSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93 X3NhbXBsZXJfMl9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRS SUNfU0VUX0lEX1NBTVBMRVJfMik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSBkZXZfYXR0cl9zYW1wbGVyXzJfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1v ZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3NhbXBsZXJfMl9pZCwKKwkuc3RvcmUgPSBOVUxM LAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3NhbXBsZXJfMltdID0gewor CSZkZXZfYXR0cl9zYW1wbGVyXzJfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVj dCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfc2FtcGxlcl8yID0geworCS5uYW1lID0gImI5OTZhMmI3 LWM1OWMtNDkyZC04NzdhLThjZDU0ZmQ2ZGY4NCIsCisJLmF0dHJzID0gIGF0dHJzX3NhbXBsZXJf MiwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3RkbF8xX2lkKHN0cnVjdCBkZXZpY2UgKmtk ZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJu IHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfVERMXzEpOworfQorCitzdGF0aWMg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfdGRsXzFfaWQgPSB7CisJLmF0dHIgPSB7 IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3RkbF8xX2lkLAor CS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfdGRs XzFbXSA9IHsKKwkmZGV2X2F0dHJfdGRsXzFfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfdGRsXzEgPSB7CisJLm5hbWUgPSAiZWIyZmVj YmEtYjQzMS00MmU3LTgyNjEtZmU5NDI5YTZlNjdhIiwKKwkuYXR0cnMgPSAgYXR0cnNfdGRsXzEs Cit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd190ZGxfMl9pZChzdHJ1Y3QgZGV2aWNlICprZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBz cHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1RETF8yKTsKK30KKworc3RhdGljIHN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3RkbF8yX2lkID0geworCS5hdHRyID0geyAu bmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd190ZGxfMl9pZCwKKwku c3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3RkbF8y W10gPSB7CisJJmRldl9hdHRyX3RkbF8yX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3RkbF8yID0geworCS5uYW1lID0gIjYwNzQ5NDcw LWE2NDgtNGE0Yi05ZjEwLWRiZmUxZTM2ZTQ0ZCIsCisJLmF0dHJzID0gIGF0dHJzX3RkbF8yLAor fTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBz cHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1RFU1RfT0EpOworfQorCitzdGF0aWMg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfdGVzdF9vYV9pZCA9IHsKKwkuYXR0ciA9 IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfdGVzdF9vYV9p ZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJz X3Rlc3Rfb2FbXSA9IHsKKwkmZGV2X2F0dHJfdGVzdF9vYV9pZC5hdHRyLAorCU5VTEwsCit9Owor CitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF90ZXN0X29hID0geworCS5uYW1l ID0gIjRhNTM0YjA3LWNiYTMtNDE0ZC04ZDYwLTg3NDgzMGU4ODNhYSIsCisJLmF0dHJzID0gIGF0 dHJzX3Rlc3Rfb2EsCit9OworCiBpbnQKIGk5MTVfcGVyZl9yZWdpc3Rlcl9zeXNmc19jaHYoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewpAQCAtMjA4LDkgKzI1ODMsMTEzIEBA IGk5MTVfcGVyZl9yZWdpc3Rlcl9zeXNmc19jaHYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCQlpZiAocmV0KQogCQkJZ290byBlcnJvcl9yZW5kZXJfYmFzaWM7CiAJfQorCWlm IChnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJ cmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdy b3VwX2NvbXB1dGVfYmFzaWMpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9jb21wdXRlX2Jh c2ljOworCX0KKwlpZiAoZ2V0X3JlbmRlcl9waXBlX3Byb2ZpbGVfbXV4X2NvbmZpZyhkZXZfcHJp diwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVy Zi5tZXRyaWNzX2tvYmosICZncm91cF9yZW5kZXJfcGlwZV9wcm9maWxlKTsKKwkJaWYgKHJldCkK KwkJCWdvdG8gZXJyb3JfcmVuZGVyX3BpcGVfcHJvZmlsZTsKKwl9CisJaWYgKGdldF9oZGNfYW5k X3NmX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVh dGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfaGRjX2FuZF9zZik7 CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2hkY19hbmRfc2Y7CisJfQorCWlmIChnZXRfbDNf MV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRl X2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzEpOworCQlpZiAo cmV0KQorCQkJZ290byBlcnJvcl9sM18xOworCX0KKwlpZiAoZ2V0X2wzXzJfbXV4X2NvbmZpZyhk ZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9sM18yKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8g ZXJyb3JfbDNfMjsKKwl9CisJaWYgKGdldF9sM18zX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhf bGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmlj c19rb2JqLCAmZ3JvdXBfbDNfMyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2wzXzM7CisJ fQorCWlmIChnZXRfbDNfNF9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0 ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3Vw X2wzXzQpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9sM180OworCX0KKwlpZiAoZ2V0X3Jh c3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4p KSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tv YmosICZncm91cF9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kKTsKKwkJaWYgKHJldCkKKwkJ CWdvdG8gZXJyb3JfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZDsKKwl9CisJaWYgKGdldF9z YW1wbGVyXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2Zz X2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9zYW1wbGVy XzEpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9zYW1wbGVyXzE7CisJfQorCWlmIChnZXRf c2FtcGxlcl8yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNm c19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfc2FtcGxl cl8yKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jfc2FtcGxlcl8yOworCX0KKwlpZiAoZ2V0 X3RkbF8xX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19j cmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzEpOwor CQlpZiAocmV0KQorCQkJZ290byBlcnJvcl90ZGxfMTsKKwl9CisJaWYgKGdldF90ZGxfMl9tdXhf Y29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3Vw KGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8yKTsKKwkJaWYgKHJldCkK KwkJCWdvdG8gZXJyb3JfdGRsXzI7CisJfQorCWlmIChnZXRfdGVzdF9vYV9tdXhfY29uZmlnKGRl dl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2 LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Rlc3Rfb2EpOworCQlpZiAocmV0KQorCQkJZ290 byBlcnJvcl90ZXN0X29hOworCX0KIAogCXJldHVybiAwOwogCitlcnJvcl90ZXN0X29hOgorCWlm IChnZXRfdGRsXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1v dmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzIpOworZXJy b3JfdGRsXzI6CisJaWYgKGdldF90ZGxfMV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikp CisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91 cF90ZGxfMSk7CitlcnJvcl90ZGxfMToKKwlpZiAoZ2V0X3NhbXBsZXJfMl9tdXhfY29uZmlnKGRl dl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5t ZXRyaWNzX2tvYmosICZncm91cF9zYW1wbGVyXzIpOworZXJyb3Jfc2FtcGxlcl8yOgorCWlmIChn ZXRfc2FtcGxlcl8xX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVt b3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3NhbXBsZXJfMSk7 CitlcnJvcl9zYW1wbGVyXzE6CisJaWYgKGdldF9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5k X211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRl dl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2Jh Y2tlbmQpOworZXJyb3JfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZDoKKwlpZiAoZ2V0X2wz XzRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAo ZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbDNfNCk7CitlcnJvcl9sM180Ogor CWlmIChnZXRfbDNfM19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9sM18zKTsKK2Vy cm9yX2wzXzM6CisJaWYgKGdldF9sM18yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkK KwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3Vw X2wzXzIpOworZXJyb3JfbDNfMjoKKwlpZiAoZ2V0X2wzXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19r b2JqLCAmZ3JvdXBfbDNfMSk7CitlcnJvcl9sM18xOgorCWlmIChnZXRfaGRjX2FuZF9zZl9tdXhf Y29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9oZGNfYW5kX3NmKTsKK2Vycm9yX2hkY19hbmRf c2Y6CisJaWYgKGdldF9yZW5kZXJfcGlwZV9wcm9maWxlX211eF9jb25maWcoZGV2X3ByaXYsICZt dXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29i aiwgJmdyb3VwX3JlbmRlcl9waXBlX3Byb2ZpbGUpOworZXJyb3JfcmVuZGVyX3BpcGVfcHJvZmls ZToKKwlpZiAoZ2V0X2NvbXB1dGVfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4p KQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3Jv dXBfY29tcHV0ZV9iYXNpYyk7CitlcnJvcl9jb21wdXRlX2Jhc2ljOgorCWlmIChnZXRfcmVuZGVy X2Jhc2ljX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dy b3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9iYXNpYyk7CiBl cnJvcl9yZW5kZXJfYmFzaWM6CiAJcmV0dXJuIHJldDsKIH0KQEAgLTIyMiw0ICsyNzAxLDMwIEBA IGk5MTVfcGVyZl91bnJlZ2lzdGVyX3N5c2ZzX2NodihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAKIAlpZiAoZ2V0X3JlbmRlcl9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2LCAm bXV4X2xlbikpCiAJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tv YmosICZncm91cF9yZW5kZXJfYmFzaWMpOworCWlmIChnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29u ZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+ cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2Jhc2ljKTsKKwlpZiAoZ2V0X3JlbmRl cl9waXBlX3Byb2ZpbGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19y ZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmVuZGVyX3Bp cGVfcHJvZmlsZSk7CisJaWYgKGdldF9oZGNfYW5kX3NmX211eF9jb25maWcoZGV2X3ByaXYsICZt dXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29i aiwgJmdyb3VwX2hkY19hbmRfc2YpOworCWlmIChnZXRfbDNfMV9tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9sM18xKTsKKwlpZiAoZ2V0X2wzXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19r b2JqLCAmZ3JvdXBfbDNfMik7CisJaWYgKGdldF9sM18zX211eF9jb25maWcoZGV2X3ByaXYsICZt dXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29i aiwgJmdyb3VwX2wzXzMpOworCWlmIChnZXRfbDNfNF9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4 X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmos ICZncm91cF9sM180KTsKKwlpZiAoZ2V0X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfbXV4 X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3By aXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2Vu ZCk7CisJaWYgKGdldF9zYW1wbGVyXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQor CQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBf c2FtcGxlcl8xKTsKKwlpZiAoZ2V0X3NhbXBsZXJfMl9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4 X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmos ICZncm91cF9zYW1wbGVyXzIpOworCWlmIChnZXRfdGRsXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19r b2JqLCAmZ3JvdXBfdGRsXzEpOworCWlmIChnZXRfdGRsXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19r b2JqLCAmZ3JvdXBfdGRsXzIpOworCWlmIChnZXRfdGVzdF9vYV9tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF90ZXN0X29hKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfb2FfaHN3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jCmlu ZGV4IDRkZGY3NTZhZGQzMS4uNzI0N2Q1MzlmZjA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X29hX2hzdy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ff aHN3LmMKQEAgLTQ3LDYgKzQ3LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBi X2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpY1tdID0gewogCXsgX01NSU8oMHgyNzEwKSwgMHgw MDAwMDAwMCB9LAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1 X2NvbmZpZ19yZW5kZXJfYmFzaWNbXSA9IHsKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9yZWcgbXV4X2NvbmZpZ19yZW5kZXJfYmFzaWNbXSA9IHsKIAl7IF9NTUlPKDB4MjUzYTQp LCAweDAxNjAwMDAwIH0sCiAJeyBfTU1JTygweDI1NDQwKSwgMHgwMDEwMDAwMCB9LApAQCAtMTM3 LDYgKzE0MCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2Nv bmZpZ19jb21wdXRlX2Jhc2ljW10gPSB7CiAJeyBfTU1JTygweDIzNmMpLCAweDAwMDAwMDAwIH0s CiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX2Nv bXB1dGVfYmFzaWNbXSA9IHsKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcg bXV4X2NvbmZpZ19jb21wdXRlX2Jhc2ljW10gPSB7CiAJeyBfTU1JTygweDI1M2E0KSwgMHgwMDAw MDAwMCB9LAogCXsgX01NSU8oMHgyNjgxYyksIDB4MDFmMDA4MDAgfSwKQEAgLTIwMyw2ICsyMDks OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfY29t cHV0ZV9leHRlbmRlZFtdID0gewogCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZmZSB9LAogfTsK IAorc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19jb21wdXRl X2V4dGVuZGVkW10gPSB7Cit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11 eF9jb25maWdfY29tcHV0ZV9leHRlbmRlZFtdID0gewogCXsgX01NSU8oMHgyNjgxYyksIDB4M2Vi MDA4MDAgfSwKIAl7IF9NTUlPKDB4MjY4MjApLCAweDAwOTAwMDAwIH0sCkBAIC0yNjAsNiArMjY5 LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX21l bW9yeV9yZWFkc1tdID0gewogCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmMwMCB9LAogfTsKIAor c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19tZW1vcnlfcmVh ZHNbXSA9IHsKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZp Z19tZW1vcnlfcmVhZHNbXSA9IHsKIAl7IF9NTUlPKDB4MjUzYTQpLCAweDM0MzAwMDAwIH0sCiAJ eyBfTU1JTygweDI1NDQwKSwgMHgyZDgwMDAwMCB9LApAQCAtMzIwLDYgKzMzMiw5IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19tZW1vcnlfd3JpdGVz W10gPSB7CiAJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmYzAwIH0sCiB9OwogCitzdGF0aWMgY29u c3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX21lbW9yeV93cml0ZXNbXSA9IHsK K307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19tZW1vcnlf d3JpdGVzW10gPSB7CiAJeyBfTU1JTygweDI1M2E0KSwgMHgzNDMwMDAwMCB9LAogCXsgX01NSU8o MHgyNTQ0MCksIDB4MDE1MDAwMDAgfSwKQEAgLTM1OCw2ICszNzMsOSBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfc2FtcGxlcl9iYWxhbmNlW10gPSB7 CiAJeyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCiB9OwogCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3NhbXBsZXJfYmFsYW5jZVtdID0geworfTsK Kwogc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3NhbXBsZXJfYmFs YW5jZVtdID0gewogCXsgX01NSU8oMHgyZWI5YyksIDB4MDE5MDY0MDAgfSwKIAl7IF9NTUlPKDB4 MmZiOWMpLCAweDAxOTA2NDAwIH0sCkBAIC00MzYsNiArNDU0LDExIEBAIGludCBpOTE1X29hX3Nl bGVjdF9tZXRyaWNfc2V0X2hzdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ CWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CiAJCQlBUlJBWV9TSVpFKGJf Y291bnRlcl9jb25maWdfcmVuZGVyX2Jhc2ljKTsKIAorCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4 X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljOworCQlkZXZfcHJpdi0+cGVy Zi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVy X2Jhc2ljKTsKKwogCQlyZXR1cm4gMDsKIAljYXNlIE1FVFJJQ19TRVRfSURfQ09NUFVURV9CQVNJ QzoKIAkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQpAQCAtNDU2LDYgKzQ3OSwxMSBAQCBp bnQgaTkxNV9vYV9zZWxlY3RfbWV0cmljX3NldF9oc3coc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQogCQkJ QVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfYmFzaWMpOwogCisJCWRldl9wcml2 LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19jb21wdXRlX2Jhc2ljOwor CQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9l dV9jb25maWdfY29tcHV0ZV9iYXNpYyk7CisKIAkJcmV0dXJuIDA7CiAJY2FzZSBNRVRSSUNfU0VU X0lEX0NPTVBVVEVfRVhURU5ERUQ6CiAJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KQEAg LTQ3Niw2ICs1MDQsMTEgQEAgaW50IGk5MTVfb2Ffc2VsZWN0X21ldHJpY19zZXRfaHN3KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3Vu dGVyX3JlZ3NfbGVuID0KIAkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2V4 dGVuZGVkKTsKIAorCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9j b25maWdfY29tcHV0ZV9leHRlbmRlZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xl biA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWQpOworCiAJ CXJldHVybiAwOwogCWNhc2UgTUVUUklDX1NFVF9JRF9NRU1PUllfUkVBRFM6CiAJCWRldl9wcml2 LT5wZXJmLm9hLm11eF9yZWdzID0KQEAgLTQ5Niw2ICs1MjksMTEgQEAgaW50IGk5MTVfb2Ffc2Vs ZWN0X21ldHJpY19zZXRfaHN3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJ ZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KIAkJCUFSUkFZX1NJWkUoYl9j b3VudGVyX2NvbmZpZ19tZW1vcnlfcmVhZHMpOwogCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhf cmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19tZW1vcnlfcmVhZHM7CisJCWRldl9wcml2LT5wZXJm Lm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19tZW1vcnlf cmVhZHMpOworCiAJCXJldHVybiAwOwogCWNhc2UgTUVUUklDX1NFVF9JRF9NRU1PUllfV1JJVEVT OgogCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CkBAIC01MTYsNiArNTU0LDExIEBAIGlu dCBpOTE1X29hX3NlbGVjdF9tZXRyaWNfc2V0X2hzdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CiAJCQlB UlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbWVtb3J5X3dyaXRlcyk7CiAKKwkJZGV2X3ByaXYt PnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX21lbW9yeV93cml0ZXM7CisJ CWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1 X2NvbmZpZ19tZW1vcnlfd3JpdGVzKTsKKwogCQlyZXR1cm4gMDsKIAljYXNlIE1FVFJJQ19TRVRf SURfU0FNUExFUl9CQUxBTkNFOgogCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CkBAIC01 MzYsNiArNTc5LDExIEBAIGludCBpOTE1X29hX3NlbGVjdF9tZXRyaWNfc2V0X2hzdyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRl cl9yZWdzX2xlbiA9CiAJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfc2FtcGxlcl9iYWxh bmNlKTsKIAorCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25m aWdfc2FtcGxlcl9iYWxhbmNlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0K KwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfc2FtcGxlcl9iYWxhbmNlKTsKKwogCQlyZXR1 cm4gMDsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTcxNCwxOSArNzYyLDE5IEBA IGk5MTVfcGVyZl9yZWdpc3Rlcl9zeXNmc19oc3coc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCXJldHVybiAwOwogCiBlcnJvcl9zYW1wbGVyX2JhbGFuY2U6Ci0JaWYgKGdldF9z YW1wbGVyX2JhbGFuY2VfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCWlmIChnZXRf bWVtb3J5X3dyaXRlc19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCiAJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfd3Jp dGVzKTsKIGVycm9yX21lbW9yeV93cml0ZXM6Ci0JaWYgKGdldF9zYW1wbGVyX2JhbGFuY2VfbXV4 X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCWlmIChnZXRfbWVtb3J5X3JlYWRzX211eF9j b25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKIAkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2 LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX21lbW9yeV9yZWFkcyk7CiBlcnJvcl9tZW1vcnlf cmVhZHM6Ci0JaWYgKGdldF9zYW1wbGVyX2JhbGFuY2VfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11 eF9sZW4pKQorCWlmIChnZXRfY29tcHV0ZV9leHRlbmRlZF9tdXhfY29uZmlnKGRldl9wcml2LCAm bXV4X2xlbikpCiAJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tv YmosICZncm91cF9jb21wdXRlX2V4dGVuZGVkKTsKIGVycm9yX2NvbXB1dGVfZXh0ZW5kZWQ6Ci0J aWYgKGdldF9zYW1wbGVyX2JhbGFuY2VfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQor CWlmIChnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCiAJ CXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9j b21wdXRlX2Jhc2ljKTsKIGVycm9yX2NvbXB1dGVfYmFzaWM6Ci0JaWYgKGdldF9zYW1wbGVyX2Jh bGFuY2VfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCWlmIChnZXRfcmVuZGVyX2Jh c2ljX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKIAkJc3lzZnNfcmVtb3ZlX2dyb3Vw KGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9iYXNpYyk7CiBlcnJv cl9yZW5kZXJfYmFzaWM6CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfb2Ffc2tsZ3QyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3Nr bGd0Mi5jCmluZGV4IGVhMDMxN2E0NzgxYy4uMDY4YjBiNmFmYzNlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0Mi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfb2Ffc2tsZ3QyLmMKQEAgLTMxLDkgKzMxLDI2IEBACiAKIGVudW0gbWV0cmljX3Nl dF9pZCB7CiAJTUVUUklDX1NFVF9JRF9SRU5ERVJfQkFTSUMgPSAxLAorCU1FVFJJQ19TRVRfSURf Q09NUFVURV9CQVNJQywKKwlNRVRSSUNfU0VUX0lEX1JFTkRFUl9QSVBFX1BST0ZJTEUsCisJTUVU UklDX1NFVF9JRF9NRU1PUllfUkVBRFMsCisJTUVUUklDX1NFVF9JRF9NRU1PUllfV1JJVEVTLAor CU1FVFJJQ19TRVRfSURfQ09NUFVURV9FWFRFTkRFRCwKKwlNRVRSSUNfU0VUX0lEX0NPTVBVVEVf TDNfQ0FDSEUsCisJTUVUUklDX1NFVF9JRF9IRENfQU5EX1NGLAorCU1FVFJJQ19TRVRfSURfTDNf MSwKKwlNRVRSSUNfU0VUX0lEX0wzXzIsCisJTUVUUklDX1NFVF9JRF9MM18zLAorCU1FVFJJQ19T RVRfSURfUkFTVEVSSVpFUl9BTkRfUElYRUxfQkFDS0VORCwKKwlNRVRSSUNfU0VUX0lEX1NBTVBM RVIsCisJTUVUUklDX1NFVF9JRF9URExfMSwKKwlNRVRSSUNfU0VUX0lEX1RETF8yLAorCU1FVFJJ Q19TRVRfSURfQ09NUFVURV9FWFRSQSwKKwlNRVRSSUNfU0VUX0lEX1ZNRV9QSVBFLAorCU1FVFJJ Q19TRVRfSURfVEVTVF9PQSwKIH07CiAKLWludCBpOTE1X29hX25fYnVpbHRpbl9tZXRyaWNfc2V0 c19za2xndDIgPSAxOworaW50IGk5MTVfb2Ffbl9idWlsdGluX21ldHJpY19zZXRzX3NrbGd0MiA9 IDE4OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdf cmVuZGVyX2Jhc2ljW10gPSB7CiAJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCkBAIC0x MzgsNjYgKzE1NSwyOTU0IEBAIGdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2Jhc2ljW10gPSB7 CisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweDAw ODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3 MjQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX2NvbXB1dGVf YmFzaWNbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4 ZTU1OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMDIwMDEgfSwKKwl7 IF9NTUlPKDB4ZTc1OCksIDB4MDA3NzgwMDggfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwODgw NzggfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDA4MDg3MDggfSwKKwl7IF9NTUlPKDB4ZTY1Yyks IDB4MDBhMDg5MDggfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4 X2NvbmZpZ19jb21wdXRlX2Jhc2ljXzBfc2xpY2VzXzB4MDFfYW5kX3NrdV9sdF8weDAyW10gPSB7 CisJeyBfTU1JTygweDk4ODgpLCAweDEwNGYwMGUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEy NGYxYzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNmMwMGUwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDM3OTA2ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNmOTAxNDAzIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE4NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhNGU4MjAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwNGYwZGIyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NGYwOTAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA4NGYxODgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGYwMDExIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjNGYwZTNjIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNGYx ZDgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NmMwMDAyIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBhNmMwMTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNmMwMDBjIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAyNmMwMDBiIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjNmMwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFhNmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4 MWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMWI4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlMWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMWI0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFhMWM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjMWMwMDEy IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwNWJjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NWI4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA4NWI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNWI0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjNWJjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNWI4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFhNWNhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjNWMwMDJkIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEyNWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGMwODAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBjNGMwMDgyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4 NGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMGRhMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA2MGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MGRhMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBhMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMGRhMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAyMGQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMGY1NDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlMGY1NTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMGYwMTU1IH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAwMmNjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMmNj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2MmNiZTAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE4MmMwMGVmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMmNjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA0MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTAwMTU3IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFiOTAwMTY3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFk OTAwMTA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTAwMTAzIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDM1OTAwMDAwIH0sCisJeyBfTU1JTygweGQyOCksIDB4MDAwMDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTE5MDBmZmYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5MDA4NDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 NTU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDA4NDIgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDc5MDA4NDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTc5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDk5MDA4NDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGI5MDAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDA4NDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NTM5MDExMTEgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9v YV9yZWcgbXV4X2NvbmZpZ19jb21wdXRlX2Jhc2ljXzBfc2xpY2VzXzB4MDFfYW5kX3NrdV9ndGVf MHgwMltdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMDRmMDBlMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxMjRmMWMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDZjMDBlMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgzNzkwNjgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZjkwMTQw MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxYTRlMDgyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzRlMDAwMiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNjRmMDkwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODRmMDAzMiB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYTRmMTgxMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRm MGUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTRmMDAzYyB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMDRmMGQ4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjRmMDAzYiB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMDZjMDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODZjMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzZjMDAwYyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ZTZjMGIwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODZjMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxYzZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZTZjMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMDFiNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODFiODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzFiNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZTFiODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDFjODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYTFjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzFjMDAyNCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNjViODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODVi NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTViYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYzViODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTViNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMDViODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjViNDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTVjNjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx YzVjMDAxYiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjVjODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxNDVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDRjODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYTRjMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRjMDIw OCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNjBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODBkYTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYTBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBkYTAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZTBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBk MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBmNTQwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwZTBmNTUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDBmMDE1NSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMDJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTJjYzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjJjZmIwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx ODJjMDBiZSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJjYzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTkwMDE1NyB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxYjkwMDE2NyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDkwMDEw NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwMDEwMyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgzNTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMGZmZiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMDgwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkw MDg0MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzkwMDgwMiB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTkwMDgwMiB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDAwMiB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0 MzkwMDg0MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMTExMSB9LAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmln KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgaW50ICpsZW4pCit7 CisJaWYgKChJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5zbGljZV9tYXNrICYgMHgwMSkgJiYK KwkgICAgKGRldl9wcml2LT5kcm0ucGRldi0+cmV2aXNpb24gPCAweDAyKSkgeworCQkqbGVuID0g QVJSQVlfU0laRShtdXhfY29uZmlnX2NvbXB1dGVfYmFzaWNfMF9zbGljZXNfMHgwMV9hbmRfc2t1 X2x0XzB4MDIpOworCQlyZXR1cm4gbXV4X2NvbmZpZ19jb21wdXRlX2Jhc2ljXzBfc2xpY2VzXzB4 MDFfYW5kX3NrdV9sdF8weDAyOworCX0gZWxzZSBpZiAoKElOVEVMX0lORk8oZGV2X3ByaXYpLT5z c2V1LnNsaWNlX21hc2sgJiAweDAxKSAmJgorCQkgICAoZGV2X3ByaXYtPmRybS5wZGV2LT5yZXZp c2lvbiA+PSAweDAyKSkgeworCQkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2NvbXB1dGVf YmFzaWNfMF9zbGljZXNfMHgwMV9hbmRfc2t1X2d0ZV8weDAyKTsKKwkJcmV0dXJuIG11eF9jb25m aWdfY29tcHV0ZV9iYXNpY18wX3NsaWNlc18weDAxX2FuZF9za3VfZ3RlXzB4MDI7CisJfQorCisJ KmxlbiA9IDA7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9v YV9yZWcgYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlW10gPSB7CisJeyBfTU1J TygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0s CisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAw MDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3 NzApLCAweDAwMDdmZmVhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDA3ZmZjIH0sCisJeyBf TU1JTygweDI3NzgpLCAweDAwMDdhZmZhIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBmNWZk IH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDc5ZmZhIH0sCisJeyBfTU1JTygweDI3ODQpLCAw eDAwMDBmM2ZiIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdiZjdhIH0sCisJeyBfTU1JTygw eDI3OGMpLCAweDAwMDBmN2U3IH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDdmZWZhIH0sCisJ eyBfTU1JTygweDI3OTQpLCAweDAwMDBmN2NmIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDc3 ZmZhIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBlZmRmIH0sCisJeyBfTU1JTygweDI3YTAp LCAweDAwMDZmZmZhIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBjZmJmIH0sCisJeyBfTU1J TygweDI3YTgpLCAweDAwMDNmZmZhIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDA1ZjdmIH0s Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Jl bmRlcl9waXBlX3Byb2ZpbGVbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwK Kwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAw MjUwMjQgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMzUwMzQgfSwKKwl7IF9NTUlPKDB4ZTQ1 YyksIDB4MDAwNDUwNDQgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTUwNTQgfSwKKwl7IF9N TUlPKDB4ZTY1YyksIDB4MDAwNjUwNjQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9yZWcgbXV4X2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlXzBfc2t1X2x0XzB4MDJbXSA9 IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZTAwMWYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGEwZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxMTY4MDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTc4YTAzZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MjRjMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTE4MzAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4NDAw MjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4NTAwMTkgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTE4NjAwMDcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NzBjNDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTc4ODAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZjQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMw ZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQwZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDYwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZTU0MDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDAwZTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgwZjAwNDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTAwZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwNDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGMyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxMDQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDYxMTAwMTIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxMzEw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4OTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGQ4OTAxMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4OTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDk4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4 YTAwNzUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4YTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTE4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4YTQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTM4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MWEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4MTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTc4MTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MjAwMzAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDc4MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MjQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGY4MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MjQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MzAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDU4MzAwMGMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MzAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDM4MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MzgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4NDA5ODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4 NDRkODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4NDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDk4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NTAwODAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDM4NTAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NTAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGY4NjA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NzAwMzIgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDE4ODgwNTIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4ODAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDk4ODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU5Njgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc5NjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGY5NmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5NTAwMTEgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWQ5NTAwMTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU5MmMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ5 MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY5MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTE5MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5MmMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDk5MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE5ODUwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc5ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDk5ODEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5ODIwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGQ5ODIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY5ODkwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDU5ODIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5MDQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MjM5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjU5MDgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4Mjc5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjk5MDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MmI5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmY5 MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTU5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc5MDgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTk5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5NzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGY5NzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5NzQwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTM5NzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk5NzQwMDAgfSwKKwl7 IF9NTUlPKDB4ZDI4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwYzA4 MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0MTkwMTBhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0NTkwMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzkwMDA4NCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwNDQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTkw MDBhNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgzMzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDA4MSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzkwMTRhNCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDQwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGVfMF9za3VfZ3Rl XzB4MDJbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZTAwMWYgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGEwZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxMTY4MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTc4YTAzZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MjRj MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MzAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTM4NDAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4NTAwMTkgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTE4NjAwMDcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NzBjNDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4ODAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIy ZjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGMwZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQwZDQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDYwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZTU0MDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDgwZjAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZjAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTAwZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwNDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGMyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxMDQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxMTAwMTIgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDYxMzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4OTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGQ4OTAxMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4OTgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4 MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGY4YTAwNzUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4YTAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTE4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4YTQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWQ4MWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4MTgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTc4MTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MjAwMzAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDc4MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MjQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDU4MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MzAwMDMgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDU4MzAwMGMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MzAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4 MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4NDA5ODAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDM4NDRkODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4NDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDk4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NTAwODAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NTAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDE4NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NjAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGY4NjA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NzAwMzIgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDE4ODgwNTIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4ODAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4ODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWI5MzEwMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5MzAwMDEgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTk5MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5NTgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5NTAwOTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5 NTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDVlNWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDFlNWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU5MmMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGI5MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ5MjQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY5MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTE5MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5MmMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDk5MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE5ODUwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDc5ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk5ODEw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5ODIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGQ5ODIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY5ODkwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDU5ODIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5MDQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MjE5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM5 MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjU5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4Mjc5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjk5MDgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MmI5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmY5MDQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTU5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc5MDgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTk5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTE5MGMwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5MDEwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTU5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDc5MDAwODQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTc5MDQ0MDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDk5MDAwYTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5 MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4NGI5MDAwODEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5MDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NDM5MDE0YTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDA0MDAg fSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3JlbmRlcl9w aXBlX3Byb2ZpbGVfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CisJCQkJICAgaW50ICpsZW4pCit7CisJaWYgKGRldl9wcml2LT5kcm0ucGRldi0+cmV2aXNpb24g PCAweDAyKSB7CisJCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfcmVuZGVyX3BpcGVfcHJv ZmlsZV8wX3NrdV9sdF8weDAyKTsKKwkJcmV0dXJuIG11eF9jb25maWdfcmVuZGVyX3BpcGVfcHJv ZmlsZV8wX3NrdV9sdF8weDAyOworCX0gZWxzZSBpZiAoZGV2X3ByaXYtPmRybS5wZGV2LT5yZXZp c2lvbiA+PSAweDAyKSB7CisJCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfcmVuZGVyX3Bp cGVfcHJvZmlsZV8wX3NrdV9ndGVfMHgwMik7CisJCXJldHVybiBtdXhfY29uZmlnX3JlbmRlcl9w aXBlX3Byb2ZpbGVfMF9za3VfZ3RlXzB4MDI7CisJfQorCisJKmxlbiA9IDA7CisJcmV0dXJuIE5V TEw7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZp Z19tZW1vcnlfcmVhZHNbXSA9IHsKKwl7IF9NTUlPKDB4MjcyYyksIDB4ZmZmZmZmZmYgfSwKKwl7 IF9NTUlPKDB4MjcyOCksIDB4ZmZmZmZmZmYgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAw MDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxYyks IDB4ZmZmZmZmZmYgfSwKKwl7IF9NTUlPKDB4MjcxOCksIDB4ZmZmZmZmZmYgfSwKKwl7IF9NTUlP KDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwK Kwl7IF9NTUlPKDB4Mjc0YyksIDB4ODY1NDMyMTAgfSwKKwl7IF9NTUlPKDB4Mjc0OCksIDB4ODY1 NDMyMTAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDAwMDY2NjcgfSwKKwl7IF9NTUlPKDB4Mjc0 MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc1YyksIDB4ODY1NDMyMTAgfSwKKwl7IF9N TUlPKDB4Mjc1OCksIDB4ODY1NDMyMTAgfSwKKwl7IF9NTUlPKDB4Mjc1NCksIDB4MDAwMDY0NjUg fSwKKwl7IF9NTUlPKDB4Mjc1MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4 MDAwN2Y4MWEgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4 Mjc3OCksIDB4MDAwN2Y4MmEgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZlMDAgfSwKKwl7 IF9NTUlPKDB4Mjc4MCksIDB4MDAwN2Y4NzIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZl MDAgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwN2Y4YmEgfSwKKwl7IF9NTUlPKDB4Mjc4Yyks IDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwN2Y4N2EgfSwKKwl7IF9NTUlP KDB4Mjc5NCksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwN2Y4ZWEgfSwK Kwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAw N2Y4ZTIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4Mjdh OCksIDB4MDAwN2Y4ZjIgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZlMDAgfSwKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbWVtb3J5X3Jl YWRzW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1 NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDI1MDI0IH0sCisJeyBf TU1JTygweGU3NTgpLCAweDAwMDM1MDM0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDQ1MDQ0 IH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDU1MDU0IH0sCisJeyBfTU1JTygweGU2NWMpLCAw eDAwMDY1MDY0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9j b25maWdfbWVtb3J5X3JlYWRzXzBfc2xpY2VzXzB4MDFfYW5kX3NrdV9sdF8weDAyW10gPSB7CisJ eyBfTU1JTygweDk4ODgpLCAweDExODEwYzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODEw MDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzOTQ2MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDM3OTA2ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNmOTAwMDAzIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAzODExMzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODExYjEyIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA3ODEwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFm ODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODEwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE5ODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODEwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFkODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOTY4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTZjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDEzOTY0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFiOTNmZTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOTQwMDEwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA3OTQxMTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OTQx MzEyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBiOTQxNTE0IH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBkOTQxNzE2IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTQwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE5OTQwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTQwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFkOTQwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFi OTU0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOTVhNTUwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFmOTUwMmFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJmOTAwMTU3IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDMxOTAwMTA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1OTAwMTAz IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3OTAwMTAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDM1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzOTA4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDIxOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOTA4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDI1OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OTA4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI5OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDJiOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJkOTA4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE5OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTA4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFkOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFm OTA4MDAwIH0sCisJeyBfTU1JTygweGQyOCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NDE5MDBjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTU5MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 NDc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NGI5MDAwNjMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4 X2NvbmZpZ19tZW1vcnlfcmVhZHNfMF9za3VfbHRfMHgwNV9hbmRfc2t1X2d0ZV8weDAyW10gPSB7 CisJeyBfTU1JTygweDk4ODgpLCAweDExODEwYzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEz ODEwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzOTQ2MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE1OTQwMDE2IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTA2ODAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAzODExMzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODExYjEy IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODEwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFmODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODEwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE5ODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODEwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFkODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTMw ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTNhYTU1IH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFkOTMwMGFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOTQwMDEwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA3OTQxMTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OTQxMzEyIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBiOTQxNTE0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBk OTQxNzE2IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBmOTQwMDE4IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFiOTQwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTQwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAxZTU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzZTU3MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxOTAwMTA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE1OTAwMTAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3OTAwMTAxIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDM1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzOTA4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDIxOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOTA4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDI3OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI5OTA4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDJiOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJkOTA4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDJmOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5 OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTA4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFkOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDExOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxOTAwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwYzIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwNDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDQ3OTAwNDIxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU3OTAwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDQ5OTAwNDIxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAwMDYxIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzOTAwMDAzIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDUzOTAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf b2FfcmVnIG11eF9jb25maWdfbWVtb3J5X3JlYWRzXzBfc2t1X2d0ZV8weDA1W10gPSB7CisJeyBf TU1JTygweDk4ODgpLCAweDExODEwYzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODEwMDFh IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTA2ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDNmOTAwMDY0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODExMzAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA1ODExYjEyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ODEwMDFhIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFmODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODEw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFiODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODEwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFiOTMwMDU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzZTU4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA1ZTVjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3 ZTU0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzOTAwMTUwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDIxOTAwMTUxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOTAwMTUyIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDI1OTAwMTUzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OTAwMTU0 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI5OTAwMTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDJiOTAwMTU2IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJkOTAwMTU3IH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDJmOTAwMTVmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMxOTAwMTA1IH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDE1OTAwMTAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3OTAw MTAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE5OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTA4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFkOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDExOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUx OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwYzYwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwYzAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDQ3OTAwYzYzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU3OTAwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ5OTAwYzYzIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAwMDYzIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzOTAwMDAzIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnICoKK2dldF9tZW1vcnlfcmVhZHNfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgaW50ICpsZW4pCit7CisJaWYgKChJTlRFTF9J TkZPKGRldl9wcml2KS0+c3NldS5zbGljZV9tYXNrICYgMHgwMSkgJiYKKwkgICAgKGRldl9wcml2 LT5kcm0ucGRldi0+cmV2aXNpb24gPCAweDAyKSkgeworCQkqbGVuID0gQVJSQVlfU0laRShtdXhf Y29uZmlnX21lbW9yeV9yZWFkc18wX3NsaWNlc18weDAxX2FuZF9za3VfbHRfMHgwMik7CisJCXJl dHVybiBtdXhfY29uZmlnX21lbW9yeV9yZWFkc18wX3NsaWNlc18weDAxX2FuZF9za3VfbHRfMHgw MjsKKwl9IGVsc2UgaWYgKChkZXZfcHJpdi0+ZHJtLnBkZXYtPnJldmlzaW9uIDwgMHgwNSkgJiYK KwkJICAgKGRldl9wcml2LT5kcm0ucGRldi0+cmV2aXNpb24gPj0gMHgwMikpIHsKKwkJKmxlbiA9 IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19tZW1vcnlfcmVhZHNfMF9za3VfbHRfMHgwNV9hbmRfc2t1 X2d0ZV8weDAyKTsKKwkJcmV0dXJuIG11eF9jb25maWdfbWVtb3J5X3JlYWRzXzBfc2t1X2x0XzB4 MDVfYW5kX3NrdV9ndGVfMHgwMjsKKwl9IGVsc2UgaWYgKGRldl9wcml2LT5kcm0ucGRldi0+cmV2 aXNpb24gPj0gMHgwNSkgeworCQkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX21lbW9yeV9y ZWFkc18wX3NrdV9ndGVfMHgwNSk7CisJCXJldHVybiBtdXhfY29uZmlnX21lbW9yeV9yZWFkc18w X3NrdV9ndGVfMHgwNTsKKwl9CisKKwkqbGVuID0gMDsKKwlyZXR1cm4gTlVMTDsKK30KKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX21lbW9yeV93cml0 ZXNbXSA9IHsKKwl7IF9NTUlPKDB4MjcyYyksIDB4ZmZmZmZmZmYgfSwKKwl7IF9NTUlPKDB4Mjcy OCksIDB4ZmZmZmZmZmYgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9N TUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxYyksIDB4ZmZmZmZmZmYg fSwKKwl7IF9NTUlPKDB4MjcxOCksIDB4ZmZmZmZmZmYgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4 ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 Mjc0YyksIDB4ODY1NDMyMTAgfSwKKwl7IF9NTUlPKDB4Mjc0OCksIDB4ODY1NDMyMTAgfSwKKwl7 IF9NTUlPKDB4Mjc0NCksIDB4MDAwMDY2NjcgfSwKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4Mjc1YyksIDB4ODY1NDMyMTAgfSwKKwl7IF9NTUlPKDB4Mjc1OCks IDB4ODY1NDMyMTAgfSwKKwl7IF9NTUlPKDB4Mjc1NCksIDB4MDAwMDY0NjUgfSwKKwl7IF9NTUlP KDB4Mjc1MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwN2Y4MWEgfSwK Kwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAw N2Y4MmEgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4Mjc4 MCksIDB4MDAwN2Y4MjIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZlMDAgfSwKKwl7IF9N TUlPKDB4Mjc4OCksIDB4MDAwN2Y4YmEgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZlMDAg fSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwN2Y4N2EgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4 MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwN2Y4ZWEgfSwKKwl7IF9NTUlPKDB4 Mjc5YyksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAwN2Y4ZTIgfSwKKwl7 IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZlMDAgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAwN2Y4 ZjIgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZlMDAgfSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbWVtb3J5X3dyaXRlc1tdID0gewor CXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAx NTAxNCB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAyNTAyNCB9LAorCXsgX01NSU8oMHhlNzU4 KSwgMHgwMDAzNTAzNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA0NTA0NCB9LAorCXsgX01N SU8oMHhlNTVjKSwgMHgwMDA1NTA1NCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA2NTA2NCB9 LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX21lbW9y eV93cml0ZXNfMF9zbGljZXNfMHgwMV9hbmRfc2t1X2x0XzB4MDJbXSA9IHsKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTE4MTBjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4MTAwMWEgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTM5NDU0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDY4 MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y5MDE0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDM4MTEzMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MTFiMTIgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDc4MTAwMWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk4 MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWQ4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY5NjgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTE5NmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5NjQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWI5M2ZlMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE5NDAwMTAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDc5NDExMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk5NDEzMTIgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGI5NDE1MTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ5NDE3 MTYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5NDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTk5NDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5NDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWQ5NDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5NTQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5NWE1NTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5 NTAyYWEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmY5MDAxNjcgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MzE5MDAxMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU5MDAxMDMgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTc5MDAxMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzU5MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MjE5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjM5MDgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MjU5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc5MDgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4Mjk5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmI5MDgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmQ5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTk5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWQ5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwK Kwl7IF9NTUlPKDB4ZDI4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkw MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg0MTkwMGMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzkwMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0 OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg0YjkwMDA2MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0MzkwMDAwMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAw MCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX21l bW9yeV93cml0ZXNfMF9za3VfbHRfMHgwNV9hbmRfc2t1X2d0ZV8weDAyW10gPSB7CisJeyBfTU1J TygweDk4ODgpLCAweDExODEwYzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzODEwMDFhIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEzOTQ1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3 OTA2ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNmOTAxNDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAzODExMzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODExYjEyIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA3ODEwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODEwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE5ODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODEwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFkODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTMwODAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFiOTNhYTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOTMw MDJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxOTQwMDEwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA3OTQxMTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA5OTQxMzEyIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBiOTQxNTE0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBkOTQxNzE2IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFiOTQwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEx OTQwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAxZTU4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAzZTU3MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJmOTAwMTY3IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDMxOTAwMTA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1OTAwMTAz IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3OTAwMTAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDM1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzOTA4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDIxOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOTA4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDI1OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI3OTA4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI5OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDJiOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJkOTA4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDE5OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTA4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFkOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFm OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDUxOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwYzIwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwNDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwNDIxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDU3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ5OTAwNDIxIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAwMDYzIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzOTAw MDAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCit9OworCitzdGF0aWMgY29u c3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfbWVtb3J5X3dyaXRlc18wX3NrdV9ndGVf MHgwNVtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgxMGMwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxMzgxMDAxYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwNjgwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgzZjkwMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzgxMTMw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTgxMWIxMiB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNzgxMDAxYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgxMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxNzgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTgxMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxYjgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgx MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkzMDA1NSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwM2U1ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNWU1YzAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwN2U1NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzkwMDE2MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTkwMDE2MSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgy MzkwMDE2MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNTkwMDE2MyB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyNzkwMDE2NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyOTkwMDE2NSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgyYjkwMDE2NiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZDkwMDE2 NyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZjkwMDE1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgzMTkwMDEwNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTkwMDEwMyB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxNzkwMDEwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNTkwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxOTkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkw ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxZjkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMGM2MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0 NTkwMGMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzkwMGM2MyB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTkwMGM2MyB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDA2 MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0MzkwMDAwMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfbWVtb3J5X3dyaXRlc19tdXhfY29u ZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgaW50ICpsZW4p Cit7CisJaWYgKChJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5zbGljZV9tYXNrICYgMHgwMSkg JiYKKwkgICAgKGRldl9wcml2LT5kcm0ucGRldi0+cmV2aXNpb24gPCAweDAyKSkgeworCQkqbGVu ID0gQVJSQVlfU0laRShtdXhfY29uZmlnX21lbW9yeV93cml0ZXNfMF9zbGljZXNfMHgwMV9hbmRf c2t1X2x0XzB4MDIpOworCQlyZXR1cm4gbXV4X2NvbmZpZ19tZW1vcnlfd3JpdGVzXzBfc2xpY2Vz XzB4MDFfYW5kX3NrdV9sdF8weDAyOworCX0gZWxzZSBpZiAoKGRldl9wcml2LT5kcm0ucGRldi0+ cmV2aXNpb24gPCAweDA1KSAmJgorCQkgICAoZGV2X3ByaXYtPmRybS5wZGV2LT5yZXZpc2lvbiA+ PSAweDAyKSkgeworCQkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX21lbW9yeV93cml0ZXNf MF9za3VfbHRfMHgwNV9hbmRfc2t1X2d0ZV8weDAyKTsKKwkJcmV0dXJuIG11eF9jb25maWdfbWVt b3J5X3dyaXRlc18wX3NrdV9sdF8weDA1X2FuZF9za3VfZ3RlXzB4MDI7CisJfSBlbHNlIGlmIChk ZXZfcHJpdi0+ZHJtLnBkZXYtPnJldmlzaW9uID49IDB4MDUpIHsKKwkJKmxlbiA9IEFSUkFZX1NJ WkUobXV4X2NvbmZpZ19tZW1vcnlfd3JpdGVzXzBfc2t1X2d0ZV8weDA1KTsKKwkJcmV0dXJuIG11 eF9jb25maWdfbWVtb3J5X3dyaXRlc18wX3NrdV9ndGVfMHgwNTsKKwl9CisKKwkqbGVuID0gMDsK KwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2Nv dW50ZXJfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRbXSA9IHsKKwl7IF9NTUlPKDB4MjcyNCksIDB4 ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwN2Zj MmEgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGJmMDAgfSwKKwl7IF9NTUlPKDB4Mjc3OCks IDB4MDAwN2ZjNmEgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGJmMDAgfSwKKwl7IF9NTUlP KDB4Mjc4MCksIDB4MDAwN2ZjOTIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGJmMDAgfSwK Kwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwN2ZjYTIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAw MGJmMDAgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwN2ZjMzIgfSwKKwl7IF9NTUlPKDB4Mjc5 NCksIDB4MDAwMGJmMDAgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwN2ZjOWEgfSwKKwl7IF9N TUlPKDB4Mjc5YyksIDB4MDAwMGJmMDAgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAwN2ZlNmEg fSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGJmMDAgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4 MDAwN2ZlN2EgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGJmMDAgfSwKK307CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfY29tcHV0ZV9leHRlbmRl ZFtdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4 KSwgMHgwMDAwMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAwMjAwMSB9LAorCXsgX01N SU8oMHhlNzU4KSwgMHgwMDc3ODAwOCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA4ODA3OCB9 LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDgwODcwOCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgw MGEwODkwOCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29u ZmlnX2NvbXB1dGVfZXh0ZW5kZWRfMF9zdWJzbGljZXNfMHgwMVtdID0geworCXsgX01NSU8oMHg5 ODg4KSwgMHgxMDZjMDBlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDFjODE2MCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxNjFjODAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODFjMDEy MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZTRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODRlODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYTRlYWFhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzRlMDAwMiB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMjRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDRl ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwODRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRlODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwZTZjMGIwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDZjMDIwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjZjMDAwYyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx YzZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZTZjMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxYTZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTFiYzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMDFiODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjFiYzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDFjMDA0MSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNjFjNDIwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODFjNDQ0MyB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYTFjNDY0NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzFjNzY0NyB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNDFjNzM1NyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzFj MDAzMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDFjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxYTFjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjFjODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMDRjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjYWEyYSB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRjMDJhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ODRjYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkYTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNjBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODBkYTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYTBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBkYTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMjBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDBkYTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzBmNTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmNTUxNSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMDBmMDE1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDJj ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxNjJjYWEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODJjMDBhYSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMjJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJjODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ODJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTJjODAwMCB9LAorCXsgX01NSU8oMHhk MjgpLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTA3ZmZmIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDUxOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwMDQw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDQ1OTAwODAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwODQyIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDU3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ5OTAwODQyIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzOTAwODAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDUzOTAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf b2FfcmVnICoKK2dldF9jb21wdXRlX2V4dGVuZGVkX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCWludCAqbGVuKQoreworCWlmIChJTlRFTF9JTkZPKGRl dl9wcml2KS0+c3NldS5zdWJzbGljZV9tYXNrICYgMHgwMSkgeworCQkqbGVuID0gQVJSQVlfU0la RShtdXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRfMF9zdWJzbGljZXNfMHgwMSk7CisJCXJldHVy biBtdXhfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRfMF9zdWJzbGljZXNfMHgwMTsKKwl9CisKKwkq bGVuID0gMDsKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29h X3JlZyBiX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGVbXSA9IHsKKwl7IF9NTUlPKDB4 MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4MzA4MDAwMDAgfSwKKwl7 IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MzA4MDAw MDAgfSwKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCks IDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZlZmUgfSwKKwl7IF9NTUlP KDB4Mjc3OCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZlZmQgfSwK Kwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAw MGZiZWYgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4Mjc5 YyksIDB4MDAwMGZiZGYgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcg ZmxleF9ldV9jb25maWdfY29tcHV0ZV9sM19jYWNoZVtdID0geworCXsgX01NSU8oMHhlNDU4KSwg MHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAwMDAwMyB9LAorCXsgX01NSU8o MHhlNjU4KSwgMHgwMDAwMjAwMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDEwMTEwMCB9LAor CXsgX01NSU8oMHhlNDVjKSwgMHgwMDIwMTIwMCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDMw MTMwMCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDQwMTQwMCB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGVbXSA9IHsK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTY2YzA3NjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTU5 MzAwMWUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y5MDE0MDMgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDA0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU0ZTgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTg0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWE0ZTgwMjAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM0ZTAwMDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDA2YzAwNTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY2YzUwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDg2YzVjNWQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU2YzVlNWYgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTA2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg2YzAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWU2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAxYjQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDYxYjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgxYmMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxYmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAx YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWExY2UwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWMxYzAwMzAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA0YzgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGE0YzJhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM0YzAyODAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDYwZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgwZGEwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGUwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZjA0MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGUwZjE1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAwZjAx NDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGUyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYyYzBhMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTgyYzAwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM5MzMzMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDU5MzAwMzIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5 MzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWQ5MDAxNTcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDAxNjcgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MzU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5MDgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTE5MDAzMGYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTU5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwNDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTc5MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NGI5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDExMTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5 MDA0MjAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2Nv bXB1dGVfbDNfY2FjaGVfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCQkJaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19jb21w dXRlX2wzX2NhY2hlKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlOworfQor CitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfaGRjX2Fu ZF9zZltdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgy NzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHgyNzE0KSwgMHgxMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAw MCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwg MHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwZmRmZiB9LAorfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19oZGNfYW5kX3NmW10g PSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAw eDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygw eGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJ eyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1 MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdf aGRjX2FuZF9zZltdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMDRmMDIzMiB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMjRmNDY0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDZjMDIzMiB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgzNDQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YTRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRlODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMDRmMTg4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjRmMDhiYiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDRmMDAxYiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDZjMDEw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjZjMDAwYiB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxYTZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFiODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNjFiNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTFjMTgwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMDViODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjVi YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDViNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxMjVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDVjODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxNjVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODVjODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjMDBhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MDBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBkYTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjBkMjAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYzBmNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmMDA1 NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjJjYzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwODJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTJjODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYzJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjgy ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjgzMDVjMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwOTgzMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgzMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxZDk1MDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzkyODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjk4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgz MTkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwZmMwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0YjkwMDBhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMDgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0MzkwMDg0MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0NTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAor fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfaGRjX2FuZF9zZl9t dXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgaW50ICps ZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19oZGNfYW5kX3NmKTsKKwlyZXR1 cm4gbXV4X2NvbmZpZ19oZGNfYW5kX3NmOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf b2FfcmVnIGJfY291bnRlcl9jb25maWdfbDNfMVtdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgw MDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgy NzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsg X01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAw MCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDEwMDA3MCB9LAorCXsgX01NSU8oMHgyNzc0KSwg MHgwMDAwZmZmMSB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAxNDAwMiB9LAorCXsgX01NSU8o MHgyNzdjKSwgMHgwMDAwYzNmZiB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAxMDAwMiB9LAor CXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwYzdmZiB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDAw NDAwMiB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZDNmZiB9LAorCXsgX01NSU8oMHgyNzkw KSwgMHgwMDEwMDcwMCB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmYxZiB9LAorCXsgX01N SU8oMHgyNzk4KSwgMHgwMDAwMTQwMiB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmMzZiB9 LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDAwMTAwMiB9LAorCXsgX01NSU8oMHgyN2E0KSwgMHgw MDAwZmM3ZiB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDAwMDQwMiB9LAorCXsgX01NSU8oMHgy N2FjKSwgMHgwMDAwZmQzZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3Jl ZyBmbGV4X2V1X2NvbmZpZ19sM18xW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0 IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAw eDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygw eGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJ eyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIG11eF9jb25maWdfbDNfMVtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgx MjZjN2I0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjZjMDAyMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYTYwMzQ0NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTYxMzQwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxYTRlYTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzRlMDAw MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRlODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwODRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRlODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNjRmNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzZj NTMyNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTZjNTQyNSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMDZjMmEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjZjMjg1YiB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNDZjMDA1YyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDZjMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx ZTZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTZjMDgwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYzFiYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTFiYzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMDFiODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjFiYzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFiYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxYzFjMDAzYyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjFjODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxNDFjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjFjODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxODFjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTFj MDgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjViNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxYTVjMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDYwMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNDYwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzYxMDA0NCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDYxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NjYxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRjMDJhOCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwODRjYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjMDAyYSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYzBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBkYTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMjBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDBkYTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNjBkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDBmMDE1NCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYzBmNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBm MDA1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODJjMDBhYSB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMjJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJjODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNjJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODJjODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YzJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwZmZjMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTkwMDQyMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDAyMSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0MTkwMDQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzkwMDQyMSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkw MDA0MCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfbDNf MV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgIGlu dCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfbDNfMSk7CisJcmV0dXJu IG11eF9jb25maWdfbDNfMTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBi X2NvdW50ZXJfY29uZmlnX2wzXzJbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAg fSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4 MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAgfSwKKwl7 IF9NTUlPKDB4Mjc3MCksIDB4MDAxMDAwNzAgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZm ZjEgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMjgwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3Yyks IDB4MDAwMDg3ZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMjAwMDIgfSwKKwl7IF9NTUlP KDB4Mjc4NCksIDB4MDAwMDhmZmYgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwMDgwMDIgfSwK Kwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGE3ZmYgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbDNfMltdID0geworCXsgX01NSU8oMHhlNDU4 KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01N SU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9 LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgw MDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2wzXzJbXSA9IHsKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTI2YzAyZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQ2YzAwMDEgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGE2MjM0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ0 ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDg0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0ZTgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDY0ZjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI2YzMzMjQg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ2YzM0MjIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTA2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWE2YzAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDIxYmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxYmMwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTQxYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYxYzgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTgxYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWExYzA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1YjQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWE1YzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY2MTQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGM2MjAwNDQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2 MjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY2MjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDg0YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzAwMmEgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDIwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQwZGEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGMwZjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwNTUgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDQyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYyYzgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDgyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEyYzgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMyY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTE5MGY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5 MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2wzXzJfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJS QVlfU0laRShtdXhfY29uZmlnX2wzXzIpOworCXJldHVybiBtdXhfY29uZmlnX2wzXzI7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19sM18zW10g PSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAw eDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygw eDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMTAw MDcwIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmZmYxIH0sCisJeyBfTU1JTygweDI3Nzgp LCAweDAwMDI4MDAyIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDA4N2ZmIH0sCisJeyBfTU1J TygweDI3ODApLCAweDAwMDIwMDAyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDA4ZmZmIH0s CisJeyBfTU1JTygweDI3ODgpLCAweDAwMDA4MDAyIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAw MDBhN2ZmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVf Y29uZmlnX2wzXzNbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9N TUlPKDB4ZTU1OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMTIwMTEg fSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4 MDAwNTEwNTAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwKKwl7IF9NTUlPKDB4 ZTY1YyksIDB4MDAwNTUwNTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9y ZWcgbXV4X2NvbmZpZ19sM18zW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDEyNmM0ZTgwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDE0NmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBh NjMzNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NGU4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA2NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NGU4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBhNGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNGU4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNmMzMzIxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA0NmMzNDJmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNmMwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFhNmMyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMWJjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA0MWJjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MWI0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE2MWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MWM4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDFhMWMxODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NjA0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBjNjMwMDQ0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEw NjMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NjMwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA4NGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGMwMGFhIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAyMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MGRhMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MGQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBjMGY0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMGYwMDU1IH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA0MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmM4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA4MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMmM4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDExOTBmODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDUxOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzOTAwODQyIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1 OTAwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9sM18zX211eF9jb25maWcoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFS UkFZX1NJWkUobXV4X2NvbmZpZ19sM18zKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19sM18zOworfQor CitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfcmFzdGVy aXplcl9hbmRfcGl4ZWxfYmFja2VuZFtdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAw MCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwg MHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHgzMDgwMDAwMCB9LAorCXsgX01NSU8o MHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgwMDgwMDAwMCB9LAor CXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAw ZWZmZiB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwNjAwMCB9LAorCXsgX01NSU8oMHgyNzdj KSwgMHgwMDAwZjNmZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBm bGV4X2V1X2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kW10gPSB7CisJeyBfTU1J TygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0s CisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAw MDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1 NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfcmFzdGVyaXplcl9h bmRfcGl4ZWxfYmFja2VuZFtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMDJmMzgwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxNDRkMDUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjBk MDNjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDBkMDNjZiB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYzBmMDAwNCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRlNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNDJmMDQ4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODJmMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YTRjMDA5MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRkMDAyNyB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMDRkMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkMGQ0MCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMjBkODAzZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDBkODAy MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDBkMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNjBkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBmMDAxMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMDBmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmMDA1MCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYTJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzJj ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwZmMwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg0MTkwMTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzkwMTQ4NSB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0 NTkwMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFj a2VuZF9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJ ICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfcmFzdGVyaXpl cl9hbmRfcGl4ZWxfYmFja2VuZCk7CisJcmV0dXJuIG11eF9jb25maWdfcmFzdGVyaXplcl9hbmRf cGl4ZWxfYmFja2VuZDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2Nv dW50ZXJfY29uZmlnX3NhbXBsZXJbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAg fSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4 MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4NzA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAgfSwKKwl7 IF9NTUlPKDB4Mjc3MCksIDB4MDAwMGMwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGU3 ZmYgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDMwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3Yyks IDB4MDAwMGY5ZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDBjMDAgfSwKKwl7IF9NTUlP KDB4Mjc4NCksIDB4MDAwMGZlN2YgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9v YV9yZWcgZmxleF9ldV9jb25maWdfc2FtcGxlcltdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgw MDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01NSU8oMHhl NjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9LAorCXsg X01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1 MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3NhbXBsZXJbXSA9IHsKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTQxNTJjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYxNTAwMDUgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTIxNjAwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQzNTJj MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzNTAwMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTIzNjAwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQ1NTJjMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTY1NTAwMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI1NjAwYTAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDYyZjYwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIy ZjIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM0YzAwNTAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGE0YzAwMTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZDgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGUwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZDgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDQwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDIwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTAwZjAzNTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZmIwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwZGEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTgyYzAw MjggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDIyZGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQyZDQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGMxMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxMzIwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxM2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWMx NDAwMTggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMxNTcwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGUxNTAwNzggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxNTAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDQxNjIxODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIxNjAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxNzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDIzM2EwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzMzMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTQzNDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzNDgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDIzNTc4NzAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAzNTAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzNjAwNDMgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDIzNjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzNzEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGU1MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1MzgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1MzMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM1 NDAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI1NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGU1NTcwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1NTc4MDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTA1NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1NjAwNDMg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1NjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDY1NzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MGZmODAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NTc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDk5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGI5MDAwNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDE5MDBjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDA4NDIgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5 MDAwNjAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3Nh bXBsZXJfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAg ICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3NhbXBsZXIp OworCXJldHVybiBtdXhfY29uZmlnX3NhbXBsZXI7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZGxfMVtdID0geworCXsgX01NSU8oMHgyNzQw KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01N SU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgz MDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgy Nzc0KSwgMHgwMDAwN2ZmZiB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHgyNzdjKSwgMHgwMDAwOWZmZiB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAw MiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwZWZmZiB9LAorCXsgX01NSU8oMHgyNzg4KSwg MHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZjNmZiB9LAorCXsgX01NSU8o MHgyNzkwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmRmZiB9LAor CXsgX01NSU8oMHgyNzk4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAw ZmU3ZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2Nv bmZpZ190ZGxfMVtdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01N SU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9 LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgw MDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhl NjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3Jl ZyBtdXhfY29uZmlnX3RkbF8xW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDEyMTIwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEyMzIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEy NTIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMmY4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyMmYzMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGMwMDE1IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjMGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMGRhMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAyMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MGRhMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA2MGQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMGYwM2EwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjMGZmMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMGYw MDk1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA4MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMmM4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBjMmQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMmQ0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA2MmQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAy MTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTBjMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyMTE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTFjMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAyMTIxODgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTIxOWI1 IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMTIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAyMTM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTM1MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBjMzA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzA0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA2MzA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzE4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDA2MzE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzIxYTgwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlMzIwMDMzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzIwMDMxIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAwMzIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBj MzM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzMxMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA2MzMxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTA4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAwNTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTA0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwNTE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTE0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlNTIxODgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTIxYTgwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAyNTIwMDMzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTM0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAyNTMxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTBmZjgwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDU3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ5OTAwODAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMz OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAwMDYyIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxOTAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDQxOTAwYzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzOTAwMDAz IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDQ1OTAwMDQwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dl dF90ZGxfMV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJ ICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3RkbF8xKTsK KwlyZXR1cm4gbXV4X2NvbmZpZ190ZGxfMTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3RkbF8yW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAw eDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygw eDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweDAwODAwMDAwIH0sCisJ eyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweDAwODAw MDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29u ZmlnX3RkbF8yW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1J TygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0s CisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAw MDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2 NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn IG11eF9jb25maWdfdGRsXzJbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIxMjRkNjAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTIzMjJlNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI1 MjRkNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZjMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGE0YzAwMTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZDgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDIwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQwZGEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGMwZmUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwOTcgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDgyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEyYzgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDAyZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYyZDQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxMGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDQxMWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxMjFmYjcgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDAxMjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxMzUwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzMDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYz MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzMTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDYzMTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzMjFiODAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDYzMjAwM2YgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzMzQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzMzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDI1MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1MWMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDI1MjFmYjcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1MjAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDI1MzUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MGZj MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5MDA4MDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDM5MDAwNjMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5 MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3Rk bF8yX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAg IGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGRsXzIpOworCXJl dHVybiBtdXhfY29uZmlnX3RkbF8yOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2Ff cmVnIGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9leHRyYVtdID0geworCXsgX01NSU8oMHgyNzQw KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01N SU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHgwMDgwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgw MDgwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1 X2NvbmZpZ19jb21wdXRlX2V4dHJhW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDAxMDAw IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDAzMDAyIH0sCisJeyBfTU1JTygweGU2NTgpLCAw eDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDExMDEwIH0sCisJeyBfTU1JTygw eGU0NWMpLCAweDAwMDUwMDEyIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUyMDUxIH0sCisJ eyBfTU1JTygweGU2NWMpLCAweDAwMDAwMDA4IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIG11eF9jb25maWdfY29tcHV0ZV9leHRyYVtdID0geworCXsgX01NSU8oMHg5 ODg4KSwgMHgxMjEyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjMyMDNlMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxMjUyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJmNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjMDA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjBkMjAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwZTBmMDA2YyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzJjODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNDJkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjEw NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjExNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNjEyMDAzMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDEyMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNjEzMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDMwODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDMxODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NDMyMTk4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDMyMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDMzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDUwNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDUxNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDUyMDAz MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDUyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDUzMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwZTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg0MzkwMGMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkw MDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfY29tcHV0ZV9leHRyYV9tdXhfY29uZmlnKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgaW50ICpsZW4pCit7CisJ KmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2V4dHJhKTsKKwlyZXR1cm4gbXV4 X2NvbmZpZ19jb21wdXRlX2V4dHJhOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2Ff cmVnIGJfY291bnRlcl9jb25maWdfdm1lX3BpcGVbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4 MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4MjcyNCksIDB4MzA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAxMDAw MzAgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZjkgfSwKKwl7IF9NTUlPKDB4Mjc3OCks IDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZmZmMgfSwKKwl7IF9NTUlP KDB4Mjc4MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZmZjMgfSwK Kwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAxODAgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAw MGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5 NCksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwMDAwMDIgfSwKKwl7IF9N TUlPKDB4Mjc5YyksIDB4MDAwMGZmM2YgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9yZWcgZmxleF9ldV9jb25maWdfdm1lX3BpcGVbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCks IDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMDgwMDMgfSwKK307CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ192bWVfcGlwZVtdID0gewor CXsgX01NSU8oMHg5ODg4KSwgMHgxNDFhNTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjFh MDBjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjE4MDI0MCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxNDE4MDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDNhNTgwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxNjNhMDBjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjM4MDI0MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDM4MDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MDJmMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJmODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDJmMzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDRjNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYTRjMTUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkMjAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwODBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTBkYTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBmMDQwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmOTUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDBm MDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwZTJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjJjMGEwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYTJkYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzJkYzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDE5MzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ODFhMjhjMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDFhMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMDEzMzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjEzYzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwODEzZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDE3MjAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjE3ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwODE3YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDE4MDAzNyB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNjE4MDk0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODE4MDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMjE4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDE4 MzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjM5MzAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYzNhMjhjMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDNhMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYTMzZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzMzZjAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTM3YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YzM3YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTM4MDk3NyB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwODM4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDM4MDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNjM4MzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMDBm ZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0MTkwMDA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0NTkwMDgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzkwMTAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTkw MDg0NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgzMzkwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAq CitnZXRfdm1lX3BpcGVfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCQlpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3ZtZV9w aXBlKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ192bWVfcGlwZTsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlP KDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAw MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjcy MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKKwl7IF9N TUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMg fSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4 MDAwMDAwMDcgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 Mjc4OCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKKwl7 IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZm Y2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKKwl7IF9NTUlPKDB4Mjc5Yyks IDB4MDAwMGZmZWYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKKwl7IF9NTUlP KDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwK Kwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0geworfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MTAwMTMg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWQ4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDNlNTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3Rlc3Rfb2FfbXV4X2NvbmZpZyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICAgICBpbnQgKmxlbikKK3sK KwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCXJldHVybiBtdXhfY29u ZmlnX3Rlc3Rfb2E7Cit9CisKIGludCBpOTE1X29hX3NlbGVjdF9tZXRyaWNfc2V0X3NrbGd0Mihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JZGV2X3ByaXYtPnBlcmYub2Eu bXV4X3JlZ3MgPSBOVUxMOwotCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbiA9IDA7Ci0J ZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPSBOVUxMOwotCWRldl9wcml2LT5wZXJm Lm9hLmJfY291bnRlcl9yZWdzX2xlbiA9IDA7Ci0JZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdz ID0gTlVMTDsKLQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0gMDsKKwlkZXZfcHJp di0+cGVyZi5vYS5tdXhfcmVncyA9IE5VTEw7CisJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3Nf bGVuID0gMDsKKwlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9IE5VTEw7CisJZGV2 X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0gMDsKKwlkZXZfcHJpdi0+cGVyZi5v YS5mbGV4X3JlZ3MgPSBOVUxMOworCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPSAw OworCisJc3dpdGNoIChkZXZfcHJpdi0+cGVyZi5vYS5tZXRyaWNzX3NldCkgeworCWNhc2UgTUVU UklDX1NFVF9JRF9SRU5ERVJfQkFTSUM6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0K KwkJCWdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAmZGV2 X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5t dXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBm b3IgXCJSRU5ERVJfQkFTSUNcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1 c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0 IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNv IHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFM OworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3Vu dGVyX2NvbmZpZ19yZW5kZXJfYmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9y ZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfcmVuZGVyX2Jhc2ljKTsK KworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfcmVu ZGVyX2Jhc2ljOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZ X1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKworCQlyZXR1cm4gMDsKKwljYXNl IE1FVFJJQ19TRVRfSURfQ09NUFVURV9CQVNJQzoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3Jl Z3MgPQorCQkJZ2V0X2NvbXB1dGVfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAg ICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBl cmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBj b25maWcgZm9yIFwiQ09NUFVURV9CQVNJQ1wiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5W QUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBh bmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAor CQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJu IC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJ CQliX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfYmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmJf Y291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfY29tcHV0 ZV9iYXNpYyk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVf Y29uZmlnX2NvbXB1dGVfYmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4g PQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19jb21wdXRlX2Jhc2ljKTsKKworCQlyZXR1 cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfUkVOREVSX1BJUEVfUFJPRklMRToKKwkJZGV2X3By aXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X3JlbmRlcl9waXBlX3Byb2ZpbGVfbXV4X2Nv bmZpZyhkZXZfcHJpdiwKKwkJCQkJCQkgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVu KTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RS SVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJSRU5ERVJfUElQRV9QUk9GSUxFXCIg bWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMg YWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4g YWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVu IHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2 LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfcmVuZGVyX3Bp cGVfcHJvZmlsZTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJ CUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlKTsKKworCQlk ZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfcmVuZGVyX3Bp cGVfcHJvZmlsZTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJB WV9TSVpFKGZsZXhfZXVfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGUpOworCisJCXJldHVybiAw OworCWNhc2UgTUVUUklDX1NFVF9JRF9NRU1PUllfUkVBRFM6CisJCWRldl9wcml2LT5wZXJmLm9h Lm11eF9yZWdzID0KKwkJCWdldF9tZW1vcnlfcmVhZHNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJ CQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJp di0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUg TVVYIGNvbmZpZyBmb3IgXCJNRU1PUllfUkVBRFNcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyog RUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJ ICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBh bmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJl dHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3Mg PQorCQkJYl9jb3VudGVyX2NvbmZpZ19tZW1vcnlfcmVhZHM7CisJCWRldl9wcml2LT5wZXJmLm9h LmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbWVt b3J5X3JlYWRzKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9l dV9jb25maWdfbWVtb3J5X3JlYWRzOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVu ID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfbWVtb3J5X3JlYWRzKTsKKworCQlyZXR1 cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfTUVNT1JZX1dSSVRFUzoKKwkJZGV2X3ByaXYtPnBl cmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X21lbW9yeV93cml0ZXNfbXV4X2NvbmZpZyhkZXZfcHJp diwKKwkJCQkJCSAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICgh ZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1 aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiTUVNT1JZX1dSSVRFU1wiIG1ldHJpYyBzZXRcbiIpOwor CisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0 aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNl cnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAq LworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50 ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX21lbW9yeV93cml0ZXM7CisJCWRldl9wcml2 LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9j b25maWdfbWVtb3J5X3dyaXRlcyk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0K KwkJCWZsZXhfZXVfY29uZmlnX21lbW9yeV93cml0ZXM7CisJCWRldl9wcml2LT5wZXJmLm9hLmZs ZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19tZW1vcnlfd3JpdGVz KTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfQ09NUFVURV9FWFRFTkRFRDoK KwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2NvbXB1dGVfZXh0ZW5kZWRf bXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCQkmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3Nf bGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVH X0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJDT01QVVRFX0VYVEVOREVEXCIg bWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMg YWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4g YWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVu IHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2 LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfY29tcHV0ZV9l eHRlbmRlZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFS UkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkKTsKKworCQlkZXZfcHJp di0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfY29tcHV0ZV9leHRlbmRl ZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZs ZXhfZXVfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWQpOworCisJCXJldHVybiAwOworCWNhc2UgTUVU UklDX1NFVF9JRF9DT01QVVRFX0wzX0NBQ0hFOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVn cyA9CisJCQlnZXRfY29tcHV0ZV9sM19jYWNoZV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJ CSZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJm Lm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29u ZmlnIGZvciBcIkNPTVBVVEVfTDNfQ0FDSEVcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlO VkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICog YW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQK KwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVy biAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQor CQkJYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlOworCQlkZXZfcHJpdi0+cGVyZi5v YS5iX2NvdW50ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2Nv bXB1dGVfbDNfY2FjaGUpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlm bGV4X2V1X2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4 X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfY29tcHV0ZV9sM19jYWNo ZSk7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX0hEQ19BTkRfU0Y6CisJCWRl dl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9oZGNfYW5kX3NmX211eF9jb25maWco ZGV2X3ByaXYsCisJCQkJCQkgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlp ZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJO byBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIkhEQ19BTkRfU0ZcIiBtZXRyaWMgc2V0XG4iKTsK KworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQg dGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVz ZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkg Ki8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3Vu dGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19oZGNfYW5kX3NmOworCQlkZXZfcHJpdi0+ cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29u ZmlnX2hkY19hbmRfc2YpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlm bGV4X2V1X2NvbmZpZ19oZGNfYW5kX3NmOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3Nf bGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfaGRjX2FuZF9zZik7CisKKwkJcmV0 dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX0wzXzE6CisJCWRldl9wcml2LT5wZXJmLm9hLm11 eF9yZWdzID0KKwkJCWdldF9sM18xX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCSAgICAmZGV2 X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5t dXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBm b3IgXCJMM18xXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVn aXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4n dCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRu J3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQor CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25m aWdfbDNfMTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFS UkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19sM18xKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5m bGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfbDNfMTsKKwkJZGV2X3ByaXYtPnBlcmYub2Eu ZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2wzXzEpOworCisJ CXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9MM18yOgorCQlkZXZfcHJpdi0+cGVyZi5v YS5tdXhfcmVncyA9CisJCQlnZXRfbDNfMl9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAg JmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYu b2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25m aWcgZm9yIFwiTDNfMlwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAq X3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291 bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hv dWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJ CX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJf Y29uZmlnX2wzXzI7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJ CQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbDNfMik7CisKKwkJZGV2X3ByaXYtPnBlcmYu b2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2wzXzI7CisJCWRldl9wcml2LT5wZXJm Lm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19sM18yKTsK KworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfTDNfMzoKKwkJZGV2X3ByaXYtPnBl cmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2wzXzNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJ ICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5w ZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVgg Y29uZmlnIGZvciBcIkwzXzNcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1 c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0 IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNv IHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFM OworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3Vu dGVyX2NvbmZpZ19sM18zOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4g PQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2wzXzMpOworCisJCWRldl9wcml2LT5w ZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19sM18zOworCQlkZXZfcHJpdi0+ cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfbDNf Myk7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX1JBU1RFUklaRVJfQU5EX1BJ WEVMX0JBQ0tFTkQ6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9yYXN0 ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCQkJCSAg ICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVy Zi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNv bmZpZyBmb3IgXCJSQVNURVJJWkVSX0FORF9QSVhFTF9CQUNLRU5EXCIgbWV0cmljIHNldFxuIik7 CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2Vk IHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1 c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJ ICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291 bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFj a2VuZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZ X1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kKTsKKwor CQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfcmFzdGVy aXplcl9hbmRfcGl4ZWxfYmFja2VuZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xl biA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2Jh Y2tlbmQpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9TQU1QTEVSOgorCQlk ZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfc2FtcGxlcl9tdXhfY29uZmlnKGRl dl9wcml2LAorCQkJCQkgICAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJ CWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIo Ik5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiU0FNUExFUlwiIG1ldHJpYyBzZXRcbiIpOwor CisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0 aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNl cnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAq LworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50 ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX3NhbXBsZXI7CisJCWRldl9wcml2LT5wZXJm Lm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdf c2FtcGxlcik7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVf Y29uZmlnX3NhbXBsZXI7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJ QVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19zYW1wbGVyKTsKKworCQlyZXR1cm4gMDsKKwljYXNl IE1FVFJJQ19TRVRfSURfVERMXzE6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJ CWdldF90ZGxfMV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICZkZXZfcHJpdi0+cGVy Zi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7 CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlRETF8x XCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lz ZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJl ZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBi ZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9w cml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfdGRsXzE7 CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpF KGJfY291bnRlcl9jb25maWdfdGRsXzEpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVn cyA9CisJCQlmbGV4X2V1X2NvbmZpZ190ZGxfMTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9y ZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3RkbF8xKTsKKworCQlyZXR1 cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfVERMXzI6CisJCWRldl9wcml2LT5wZXJmLm9hLm11 eF9yZWdzID0KKwkJCWdldF90ZGxfMl9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICZk ZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9h Lm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmln IGZvciBcIlRETF8yXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpf cmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3Vs ZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91 bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJ fQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9j b25maWdfdGRsXzI7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJ CQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGRsXzIpOworCisJCWRldl9wcml2LT5wZXJm Lm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ190ZGxfMjsKKwkJZGV2X3ByaXYtPnBl cmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3RkbF8y KTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfQ09NUFVURV9FWFRSQToKKwkJ ZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2NvbXB1dGVfZXh0cmFfbXV4X2Nv bmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xl bik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19E UklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiQ09NUFVURV9FWFRSQVwiIG1ldHJp YyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVh ZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVy dGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1 ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVy Zi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfZXh0cmE7 CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpF KGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9leHRyYSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2Eu ZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2NvbXB1dGVfZXh0cmE7CisJCWRldl9wcml2 LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19j b21wdXRlX2V4dHJhKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfVk1FX1BJ UEU6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF92bWVfcGlwZV9tdXhf Y29uZmlnKGRldl9wcml2LAorCQkJCQkJJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7 CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklW RVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiVk1FX1BJUEVcIiBtZXRyaWMgc2V0XG4i KTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNr ZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRv IHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJ CQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9j b3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ192bWVfcGlwZTsKKwkJZGV2X3ByaXYt PnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2Nv bmZpZ192bWVfcGlwZSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZs ZXhfZXVfY29uZmlnX3ZtZV9waXBlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVu ID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdm1lX3BpcGUpOworCisJCXJldHVybiAw OworCWNhc2UgTUVUUklDX1NFVF9JRF9URVNUX09BOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhf cmVncyA9CisJCQlnZXRfdGVzdF9vYV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICAg JmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYu b2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25m aWcgZm9yIFwiVEVTVF9PQVwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVz ZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQg d291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28g c2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7 CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50 ZXJfY29uZmlnX3Rlc3Rfb2E7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xl biA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisKKwkJZGV2X3By aXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJCWRl dl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2Nv bmZpZ190ZXN0X29hKTsKKworCQlyZXR1cm4gMDsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVOT0RF VjsKKwl9Cit9CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3JlbmRlcl9iYXNpY19pZChzdHJ1Y3Qg ZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQor eworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1JFTkRFUl9CQVNJ Qyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9yZW5kZXJf YmFzaWNfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJ LnNob3cgPSBzaG93X3JlbmRlcl9iYXNpY19pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3Rh dGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3JlbmRlcl9iYXNpY1tdID0geworCSZkZXZfYXR0 cl9yZW5kZXJfYmFzaWNfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRy aWJ1dGVfZ3JvdXAgZ3JvdXBfcmVuZGVyX2Jhc2ljID0geworCS5uYW1lID0gImY1MTllNDgxLTI0 ZDItNGQ0Mi04N2M5LTNmZGQxMmMwMDIwMiIsCisJLmF0dHJzID0gIGF0dHJzX3JlbmRlcl9iYXNp YywKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2NvbXB1dGVfYmFzaWNfaWQoc3RydWN0IGRl dmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sK KwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9DT01QVVRFX0JBU0lD KTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2NvbXB1dGVf YmFzaWNfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJ LnNob3cgPSBzaG93X2NvbXB1dGVfYmFzaWNfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0 YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19jb21wdXRlX2Jhc2ljW10gPSB7CisJJmRldl9h dHRyX2NvbXB1dGVfYmFzaWNfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBh dHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9iYXNpYyA9IHsKKwkubmFtZSA9ICJmZTQ3YjI5 ZC1hZTUxLTQyM2UtYmZmNC0yN2Q5NjVhOTViNjAiLAorCS5hdHRycyA9ICBhdHRyc19jb21wdXRl X2Jhc2ljLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfcmVuZGVyX3BpcGVfcHJvZmlsZV9p ZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hh ciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1JF TkRFUl9QSVBFX1BST0ZJTEUpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg ZGV2X2F0dHJfcmVuZGVyX3BpcGVfcHJvZmlsZV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAi aWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfcmVuZGVyX3BpcGVfcHJvZmlsZV9p ZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJz X3JlbmRlcl9waXBlX3Byb2ZpbGVbXSA9IHsKKwkmZGV2X2F0dHJfcmVuZGVyX3BpcGVfcHJvZmls ZV9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBn cm91cF9yZW5kZXJfcGlwZV9wcm9maWxlID0geworCS5uYW1lID0gImUwYWQ1YWUwLTg0YmEtNGYy OS1hNzIzLTE5MDZjMTJjYjc3NCIsCisJLmF0dHJzID0gIGF0dHJzX3JlbmRlcl9waXBlX3Byb2Zp bGUsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19tZW1vcnlfcmVhZHNfaWQoc3RydWN0IGRl dmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sK KwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9NRU1PUllfUkVBRFMp OworfQogCi0Jc3dpdGNoIChkZXZfcHJpdi0+cGVyZi5vYS5tZXRyaWNzX3NldCkgewotCWNhc2Ug TUVUUklDX1NFVF9JRF9SRU5ERVJfQkFTSUM6Ci0JCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdz ID0KLQkJCWdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKLQkJCQkJCSAgICAm ZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKLQkJaWYgKCFkZXZfcHJpdi0+cGVyZi5v YS5tdXhfcmVncykgewotCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZp ZyBmb3IgXCJSRU5ERVJfQkFTSUNcIiBtZXRyaWMgc2V0XG4iKTsKK3N0YXRpYyBzdHJ1Y3QgZGV2 aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9tZW1vcnlfcmVhZHNfaWQgPSB7CisJLmF0dHIgPSB7IC5u YW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X21lbW9yeV9yZWFkc19p ZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKIAotCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rl cl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcwotCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhh dmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKLQkJCSAqIHNvIHNob3VsZG4ndCBo YXZlIGJlZW4gcmVxdWVzdGVkCi0JCQkgKi8KLQkJCXJldHVybiAtRUlOVkFMOwotCQl9CitzdGF0 aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfbWVtb3J5X3JlYWRzW10gPSB7CisJJmRldl9hdHRy X21lbW9yeV9yZWFkc19pZC5hdHRyLAorCU5VTEwsCit9OwogCi0JCWRldl9wcml2LT5wZXJmLm9h LmJfY291bnRlcl9yZWdzID0KLQkJCWJfY291bnRlcl9jb25maWdfcmVuZGVyX2Jhc2ljOwotCQlk ZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQotCQkJQVJSQVlfU0laRShiX2Nv dW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpYyk7CitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91 cCBncm91cF9tZW1vcnlfcmVhZHMgPSB7CisJLm5hbWUgPSAiOWJjNDM2ZGQtNjEzMC00YWRkLWFm ZmMtMjgzZWI2ZWFhODY0IiwKKwkuYXR0cnMgPSAgYXR0cnNfbWVtb3J5X3JlYWRzLAorfTsKIAot CQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQotCQkJZmxleF9ldV9jb25maWdfcmVuZGVy X2Jhc2ljOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KLQkJCUFSUkFZX1NJ WkUoZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKK3N0YXRpYyBzc2l6ZV90CitzaG93X21l bW9yeV93cml0ZXNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVU UklDX1NFVF9JRF9NRU1PUllfV1JJVEVTKTsKK30KIAotCQlyZXR1cm4gMDsKLQlkZWZhdWx0Ogot CQlyZXR1cm4gLUVOT0RFVjsKLQl9CitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2 X2F0dHJfbWVtb3J5X3dyaXRlc19pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9k ZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfbWVtb3J5X3dyaXRlc19pZCwKKwkuc3RvcmUgPSBO VUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX21lbW9yeV93cml0ZXNb XSA9IHsKKwkmZGV2X2F0dHJfbWVtb3J5X3dyaXRlc19pZC5hdHRyLAorCU5VTEwsCit9OworCitz dGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9tZW1vcnlfd3JpdGVzID0geworCS5u YW1lID0gIjJlYTBkYThmLTM1MjctNDY2OS05ZDlkLTEzMDk5YTc0MzViZiIsCisJLmF0dHJzID0g IGF0dHJzX21lbW9yeV93cml0ZXMsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19jb21wdXRl X2V4dGVuZGVkX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJ Q19TRVRfSURfQ09NUFVURV9FWFRFTkRFRCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSBkZXZfYXR0cl9jb21wdXRlX2V4dGVuZGVkX2lkID0geworCS5hdHRyID0geyAubmFt ZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19jb21wdXRlX2V4dGVuZGVk X2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 cnNfY29tcHV0ZV9leHRlbmRlZFtdID0geworCSZkZXZfYXR0cl9jb21wdXRlX2V4dGVuZGVkX2lk LmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3Vw X2NvbXB1dGVfZXh0ZW5kZWQgPSB7CisJLm5hbWUgPSAiZDk3ZDE2YWYtMDI4Yi00Y2QxLWE2NzIt NjIxMGNiNTUxM2RkIiwKKwkuYXR0cnMgPSAgYXR0cnNfY29tcHV0ZV9leHRlbmRlZCwKK307CisK K3N0YXRpYyBzc2l6ZV90CitzaG93X2NvbXB1dGVfbDNfY2FjaGVfaWQoc3RydWN0IGRldmljZSAq a2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1 cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9DT01QVVRFX0wzX0NBQ0hFKTsK IH0KIAorc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2NvbXB1dGVfbDNf Y2FjaGVfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJ LnNob3cgPSBzaG93X2NvbXB1dGVfbDNfY2FjaGVfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisK K3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19jb21wdXRlX2wzX2NhY2hlW10gPSB7CisJ JmRldl9hdHRyX2NvbXB1dGVfbDNfY2FjaGVfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9sM19jYWNoZSA9IHsKKwkubmFt ZSA9ICI5ZmIyMjg0Mi1lNzA4LTQzZjctOTc1Mi1lMGU0MTY3MGMzOWUiLAorCS5hdHRycyA9ICBh dHRyc19jb21wdXRlX2wzX2NhY2hlLAorfTsKKwogc3RhdGljIHNzaXplX3QKLXNob3dfcmVuZGVy X2Jhc2ljX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICph dHRyLCBjaGFyICpidWYpCitzaG93X2hkY19hbmRfc2ZfaWQoc3RydWN0IGRldmljZSAqa2Rldiwg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlyZXR1cm4gc3By aW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9SRU5ERVJfQkFTSUMpOworCXJldHVybiBz cHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX0hEQ19BTkRfU0YpOwogfQogCi1zdGF0 aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfcmVuZGVyX2Jhc2ljX2lkID0gewor c3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2hkY19hbmRfc2ZfaWQgPSB7 CiAJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCi0JLnNob3cgPSBzaG93 X3JlbmRlcl9iYXNpY19pZCwKKwkuc2hvdyA9IHNob3dfaGRjX2FuZF9zZl9pZCwKIAkuc3RvcmUg PSBOVUxMLAogfTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3JlbmRlcl9iYXNp Y1tdID0gewotCSZkZXZfYXR0cl9yZW5kZXJfYmFzaWNfaWQuYXR0ciwKK3N0YXRpYyBzdHJ1Y3Qg YXR0cmlidXRlICphdHRyc19oZGNfYW5kX3NmW10gPSB7CisJJmRldl9hdHRyX2hkY19hbmRfc2Zf aWQuYXR0ciwKIAlOVUxMLAogfTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3Jv dXBfcmVuZGVyX2Jhc2ljID0gewotCS5uYW1lID0gImY1MTllNDgxLTI0ZDItNGQ0Mi04N2M5LTNm ZGQxMmMwMDIwMiIsCi0JLmF0dHJzID0gIGF0dHJzX3JlbmRlcl9iYXNpYywKK3N0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2hkY19hbmRfc2YgPSB7CisJLm5hbWUgPSAiNTM3OGUy YTEtNDI0OC00MTg4LWE0YWUtZGEyNWE3OTRjNjAzIiwKKwkuYXR0cnMgPSAgYXR0cnNfaGRjX2Fu ZF9zZiwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2wzXzFfaWQoc3RydWN0IGRldmljZSAq a2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1 cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9MM18xKTsKK30KKworc3RhdGlj IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2wzXzFfaWQgPSB7CisJLmF0dHIgPSB7 IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X2wzXzFfaWQsCisJ LnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19sM18x W10gPSB7CisJJmRldl9hdHRyX2wzXzFfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0 cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfbDNfMSA9IHsKKwkubmFtZSA9ICJkOWU4NmQ3MC00 NjJiLTQ2MmEtODUxZS1mZDYzZThjMTNkNjMiLAorCS5hdHRycyA9ICBhdHRyc19sM18xLAorfTsK Kworc3RhdGljIHNzaXplX3QKK3Nob3dfbDNfMl9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRm KGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX0wzXzIpOworfQorCitzdGF0aWMgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfbDNfMl9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAi aWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfbDNfMl9pZCwKKwkuc3RvcmUgPSBO VUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX2wzXzJbXSA9IHsKKwkm ZGV2X2F0dHJfbDNfMl9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJp YnV0ZV9ncm91cCBncm91cF9sM18yID0geworCS5uYW1lID0gIjUyMjAwNDI0LTZlZTktNDhiMy1i N2ZhLTBhZmNmMTk3NWU0ZCIsCisJLmF0dHJzID0gIGF0dHJzX2wzXzIsCit9OworCitzdGF0aWMg c3NpemVfdAorc2hvd19sM18zX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2Vf YXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRc biIsIE1FVFJJQ19TRVRfSURfTDNfMyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJp YnV0ZSBkZXZfYXR0cl9sM18zX2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2Rl ID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19sM18zX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9Owor CitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfbDNfM1tdID0geworCSZkZXZfYXR0cl9s M18zX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3Vw IGdyb3VwX2wzXzMgPSB7CisJLm5hbWUgPSAiMTk4ODMxNWYtMGEyNi00NGRmLWFjYjAtZGY3ZWM4 NmIxNDU2IiwKKwkuYXR0cnMgPSAgYXR0cnNfbDNfMywKK307CisKK3N0YXRpYyBzc2l6ZV90Citz aG93X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfaWQoc3RydWN0IGRldmljZSAqa2Rldiwg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3By aW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9SQVNURVJJWkVSX0FORF9QSVhFTF9CQUNL RU5EKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3Jhc3Rl cml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwg Lm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tl bmRfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICph dHRyc19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kW10gPSB7CisJJmRldl9hdHRyX3Jhc3Rl cml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0 cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCA9 IHsKKwkubmFtZSA9ICJmMWYxN2NhNy0yODZlLTRhZTUtOWQxNS05ZmNjYWQ2YzY2NWQiLAorCS5h dHRycyA9ICBhdHRyc19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kLAorfTsKKworc3RhdGlj IHNzaXplX3QKK3Nob3dfc2FtcGxlcl9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2 aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1Ziwg IiVkXG4iLCBNRVRSSUNfU0VUX0lEX1NBTVBMRVIpOworfQorCitzdGF0aWMgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgZGV2X2F0dHJfc2FtcGxlcl9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAi aWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfc2FtcGxlcl9pZCwKKwkuc3RvcmUg PSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3NhbXBsZXJbXSA9 IHsKKwkmZGV2X2F0dHJfc2FtcGxlcl9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3Ry dWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9zYW1wbGVyID0geworCS5uYW1lID0gIjAwYTllMGZi LTNkMmUtNDQwNS04NTJjLWRjZTYzMzRmZmIzYiIsCisJLmF0dHJzID0gIGF0dHJzX3NhbXBsZXIs Cit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd190ZGxfMV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBz cHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1RETF8xKTsKK30KKworc3RhdGljIHN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3RkbF8xX2lkID0geworCS5hdHRyID0geyAu bmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd190ZGxfMV9pZCwKKwku c3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3RkbF8x W10gPSB7CisJJmRldl9hdHRyX3RkbF8xX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3RkbF8xID0geworCS5uYW1lID0gIjEzZGNjNTBh LTdlYzAtNDA5Yi05OWQ2LWEzZjkzMmNlZGNiMyIsCisJLmF0dHJzID0gIGF0dHJzX3RkbF8xLAor fTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdGRsXzJfaWQoc3RydWN0IGRldmljZSAqa2Rldiwg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3By aW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9URExfMik7Cit9CisKK3N0YXRpYyBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl90ZGxfMl9pZCA9IHsKKwkuYXR0ciA9IHsgLm5h bWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfdGRsXzJfaWQsCisJLnN0 b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc190ZGxfMltd ID0geworCSZkZXZfYXR0cl90ZGxfMl9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3Ry dWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF90ZGxfMiA9IHsKKwkubmFtZSA9ICI5Nzg3NWUyMS02 NjI0LTRhZWUtOTE5MS02ODJmZWIzZWFlMjEiLAorCS5hdHRycyA9ICBhdHRyc190ZGxfMiwKK307 CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2NvbXB1dGVfZXh0cmFfaWQoc3RydWN0IGRldmljZSAq a2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1 cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9DT01QVVRFX0VYVFJBKTsKK30K Kworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2NvbXB1dGVfZXh0cmFf aWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cg PSBzaG93X2NvbXB1dGVfZXh0cmFfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlICphdHRyc19jb21wdXRlX2V4dHJhW10gPSB7CisJJmRldl9hdHRyX2Nv bXB1dGVfZXh0cmFfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1 dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9leHRyYSA9IHsKKwkubmFtZSA9ICI0MWEyNDA0Ny03NDg0 LTRlYWQtYWUzNy1kZTkwN2U1ZmYyYjIiLAorCS5hdHRycyA9ICBhdHRyc19jb21wdXRlX2V4dHJh LAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdm1lX3BpcGVfaWQoc3RydWN0IGRldmljZSAq a2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1 cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9WTUVfUElQRSk7Cit9CisKK3N0 YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl92bWVfcGlwZV9pZCA9IHsKKwku YXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfdm1l X3BpcGVfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyc192bWVfcGlwZVtdID0geworCSZkZXZfYXR0cl92bWVfcGlwZV9pZC5hdHRyLAorCU5V TEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF92bWVfcGlwZSA9 IHsKKwkubmFtZSA9ICI5NTkxMDQ5Mi05NDNmLTQ0YmQtOTQ2MS0zOTAyNDBmMjQzZmQiLAorCS5h dHRycyA9ICBhdHRyc192bWVfcGlwZSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Rlc3Rf b2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs IGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9J RF9URVNUX09BKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRy X3Rlc3Rfb2FfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0s CisJLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRp YyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc190ZXN0X29hW10gPSB7CisJJmRldl9hdHRyX3Rlc3Rf b2FfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAg Z3JvdXBfdGVzdF9vYSA9IHsKKwkubmFtZSA9ICIxNjUxOTQ5Zi0wYWMwLTRjYjEtYTA2Zi1kYWZk NzRhNDA3ZDEiLAorCS5hdHRycyA9ICBhdHRyc190ZXN0X29hLAogfTsKIAogaW50CkBAIC0yMTEs OSArMzExNiwxNDUgQEAgaTkxNV9wZXJmX3JlZ2lzdGVyX3N5c2ZzX3NrbGd0MihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycm9yX3JlbmRl cl9iYXNpYzsKIAl9CisJaWYgKGdldF9jb21wdXRlX2Jhc2ljX211eF9jb25maWcoZGV2X3ByaXYs ICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYu bWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9iYXNpYyk7CisJCWlmIChyZXQpCisJCQlnb3Rv IGVycm9yX2NvbXB1dGVfYmFzaWM7CisJfQorCWlmIChnZXRfcmVuZGVyX3BpcGVfcHJvZmlsZV9t dXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dy b3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9waXBlX3Byb2Zp bGUpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9yZW5kZXJfcGlwZV9wcm9maWxlOworCX0K KwlpZiAoZ2V0X21lbW9yeV9yZWFkc19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsK KwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwg Jmdyb3VwX21lbW9yeV9yZWFkcyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX21lbW9yeV9y ZWFkczsKKwl9CisJaWYgKGdldF9tZW1vcnlfd3JpdGVzX211eF9jb25maWcoZGV2X3ByaXYsICZt dXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0 cmljc19rb2JqLCAmZ3JvdXBfbWVtb3J5X3dyaXRlcyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVy cm9yX21lbW9yeV93cml0ZXM7CisJfQorCWlmIChnZXRfY29tcHV0ZV9leHRlbmRlZF9tdXhfY29u ZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRl dl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfZXh0ZW5kZWQpOworCQlp ZiAocmV0KQorCQkJZ290byBlcnJvcl9jb21wdXRlX2V4dGVuZGVkOworCX0KKwlpZiAoZ2V0X2Nv bXB1dGVfbDNfY2FjaGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9 IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9j b21wdXRlX2wzX2NhY2hlKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfY29tcHV0ZV9sM19j YWNoZTsKKwl9CisJaWYgKGdldF9oZGNfYW5kX3NmX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhf bGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmlj c19rb2JqLCAmZ3JvdXBfaGRjX2FuZF9zZik7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2hk Y19hbmRfc2Y7CisJfQorCWlmIChnZXRfbDNfMV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xl bikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nf a29iaiwgJmdyb3VwX2wzXzEpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9sM18xOworCX0K KwlpZiAoZ2V0X2wzXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9 IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9s M18yKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfbDNfMjsKKwl9CisJaWYgKGdldF9sM18z X211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVf Z3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbDNfMyk7CisJCWlmIChy ZXQpCisJCQlnb3RvIGVycm9yX2wzXzM7CisJfQorCWlmIChnZXRfcmFzdGVyaXplcl9hbmRfcGl4 ZWxfYmFja2VuZF9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lz ZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Jhc3Rl cml6ZXJfYW5kX3BpeGVsX2JhY2tlbmQpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9yYXN0 ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kOworCX0KKwlpZiAoZ2V0X3NhbXBsZXJfbXV4X2NvbmZp ZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZf cHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9zYW1wbGVyKTsKKwkJaWYgKHJldCkKKwkJ CWdvdG8gZXJyb3Jfc2FtcGxlcjsKKwl9CisJaWYgKGdldF90ZGxfMV9tdXhfY29uZmlnKGRldl9w cml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5w ZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8xKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJy b3JfdGRsXzE7CisJfQorCWlmIChnZXRfdGRsXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9s ZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF90ZGxfMik7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX3RkbF8yOwor CX0KKwlpZiAoZ2V0X2NvbXB1dGVfZXh0cmFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4p KSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tv YmosICZncm91cF9jb21wdXRlX2V4dHJhKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfY29t cHV0ZV9leHRyYTsKKwl9CisJaWYgKGdldF92bWVfcGlwZV9tdXhfY29uZmlnKGRldl9wcml2LCAm bXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1l dHJpY3Nfa29iaiwgJmdyb3VwX3ZtZV9waXBlKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jf dm1lX3BpcGU7CisJfQorCWlmIChnZXRfdGVzdF9vYV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4 X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJp Y3Nfa29iaiwgJmdyb3VwX3Rlc3Rfb2EpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl90ZXN0 X29hOworCX0KIAogCXJldHVybiAwOwogCitlcnJvcl90ZXN0X29hOgorCWlmIChnZXRfdm1lX3Bp cGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAo ZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdm1lX3BpcGUpOworZXJyb3Jfdm1l X3BpcGU6CisJaWYgKGdldF9jb21wdXRlX2V4dHJhX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhf bGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwg Jmdyb3VwX2NvbXB1dGVfZXh0cmEpOworZXJyb3JfY29tcHV0ZV9leHRyYToKKwlpZiAoZ2V0X3Rk bF8yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3Vw KGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8yKTsKK2Vycm9yX3RkbF8y OgorCWlmIChnZXRfdGRsXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNm c19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzEp OworZXJyb3JfdGRsXzE6CisJaWYgKGdldF9zYW1wbGVyX211eF9jb25maWcoZGV2X3ByaXYsICZt dXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29i aiwgJmdyb3VwX3NhbXBsZXIpOworZXJyb3Jfc2FtcGxlcjoKKwlpZiAoZ2V0X3Jhc3Rlcml6ZXJf YW5kX3BpeGVsX2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNm c19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmFzdGVy aXplcl9hbmRfcGl4ZWxfYmFja2VuZCk7CitlcnJvcl9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNr ZW5kOgorCWlmIChnZXRfbDNfM19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5 c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9sM18z KTsKK2Vycm9yX2wzXzM6CisJaWYgKGdldF9sM18yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhf bGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwg Jmdyb3VwX2wzXzIpOworZXJyb3JfbDNfMjoKKwlpZiAoZ2V0X2wzXzFfbXV4X2NvbmZpZyhkZXZf cHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0 cmljc19rb2JqLCAmZ3JvdXBfbDNfMSk7CitlcnJvcl9sM18xOgorCWlmIChnZXRfaGRjX2FuZF9z Zl9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChk ZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9oZGNfYW5kX3NmKTsKK2Vycm9yX2hk Y19hbmRfc2Y6CisJaWYgKGdldF9jb21wdXRlX2wzX2NhY2hlX211eF9jb25maWcoZGV2X3ByaXYs ICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nf a29iaiwgJmdyb3VwX2NvbXB1dGVfbDNfY2FjaGUpOworZXJyb3JfY29tcHV0ZV9sM19jYWNoZToK KwlpZiAoZ2V0X2NvbXB1dGVfZXh0ZW5kZWRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4p KQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3Jv dXBfY29tcHV0ZV9leHRlbmRlZCk7CitlcnJvcl9jb21wdXRlX2V4dGVuZGVkOgorCWlmIChnZXRf bWVtb3J5X3dyaXRlc19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfd3Jp dGVzKTsKK2Vycm9yX21lbW9yeV93cml0ZXM6CisJaWYgKGdldF9tZW1vcnlfcmVhZHNfbXV4X2Nv bmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYt PnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbWVtb3J5X3JlYWRzKTsKK2Vycm9yX21lbW9yeV9y ZWFkczoKKwlpZiAoZ2V0X3JlbmRlcl9waXBlX3Byb2ZpbGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19r b2JqLCAmZ3JvdXBfcmVuZGVyX3BpcGVfcHJvZmlsZSk7CitlcnJvcl9yZW5kZXJfcGlwZV9wcm9m aWxlOgorCWlmIChnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xl bikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZn cm91cF9jb21wdXRlX2Jhc2ljKTsKK2Vycm9yX2NvbXB1dGVfYmFzaWM6CisJaWYgKGdldF9yZW5k ZXJfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVf Z3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmVuZGVyX2Jhc2ljKTsK IGVycm9yX3JlbmRlcl9iYXNpYzoKIAlyZXR1cm4gcmV0OwogfQpAQCAtMjI1LDQgKzMyNjYsMzgg QEAgaTkxNV9wZXJmX3VucmVnaXN0ZXJfc3lzZnNfc2tsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAogCWlmIChnZXRfcmVuZGVyX2Jhc2ljX211eF9jb25maWcoZGV2X3By aXYsICZtdXhfbGVuKSkKIAkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJp Y3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9iYXNpYyk7CisJaWYgKGdldF9jb21wdXRlX2Jhc2ljX211 eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9w cml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfYmFzaWMpOworCWlmIChnZXRf cmVuZGVyX3BpcGVfcHJvZmlsZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5 c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9yZW5k ZXJfcGlwZV9wcm9maWxlKTsKKwlpZiAoZ2V0X21lbW9yeV9yZWFkc19tdXhfY29uZmlnKGRldl9w cml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRy aWNzX2tvYmosICZncm91cF9tZW1vcnlfcmVhZHMpOworCWlmIChnZXRfbWVtb3J5X3dyaXRlc19t dXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZf cHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfd3JpdGVzKTsKKwlpZiAoZ2V0 X2NvbXB1dGVfZXh0ZW5kZWRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNm c19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0 ZV9leHRlbmRlZCk7CisJaWYgKGdldF9jb21wdXRlX2wzX2NhY2hlX211eF9jb25maWcoZGV2X3By aXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJp Y3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfbDNfY2FjaGUpOworCWlmIChnZXRfaGRjX2FuZF9zZl9t dXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZf cHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9oZGNfYW5kX3NmKTsKKwlpZiAoZ2V0X2wz XzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAo ZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbDNfMSk7CisJaWYgKGdldF9sM18y X211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRl dl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzIpOworCWlmIChnZXRfbDNfM19t dXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZf cHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9sM18zKTsKKwlpZiAoZ2V0X3Jhc3Rlcml6 ZXJfYW5kX3BpeGVsX2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlz eXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmFz dGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCk7CisJaWYgKGdldF9zYW1wbGVyX211eF9jb25maWco ZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJm Lm1ldHJpY3Nfa29iaiwgJmdyb3VwX3NhbXBsZXIpOworCWlmIChnZXRfdGRsXzFfbXV4X2NvbmZp ZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBl cmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzEpOworCWlmIChnZXRfdGRsXzJfbXV4X2NvbmZp ZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBl cmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzIpOworCWlmIChnZXRfY29tcHV0ZV9leHRyYV9t dXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZf cHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2V4dHJhKTsKKwlpZiAoZ2V0 X3ZtZV9waXBlX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3Zl X2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3ZtZV9waXBlKTsKKwlp ZiAoZ2V0X3Rlc3Rfb2FfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19y ZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGVzdF9vYSk7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0My5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDMuYwppbmRleCBhMjEyMTExMzYxOTEu LjU0YzJkOTdmNWZhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9z a2xndDMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0My5jCkBAIC0z MSw5ICszMSwyNiBAQAogCiBlbnVtIG1ldHJpY19zZXRfaWQgewogCU1FVFJJQ19TRVRfSURfUkVO REVSX0JBU0lDID0gMSwKKwlNRVRSSUNfU0VUX0lEX0NPTVBVVEVfQkFTSUMsCisJTUVUUklDX1NF VF9JRF9SRU5ERVJfUElQRV9QUk9GSUxFLAorCU1FVFJJQ19TRVRfSURfTUVNT1JZX1JFQURTLAor CU1FVFJJQ19TRVRfSURfTUVNT1JZX1dSSVRFUywKKwlNRVRSSUNfU0VUX0lEX0NPTVBVVEVfRVhU RU5ERUQsCisJTUVUUklDX1NFVF9JRF9DT01QVVRFX0wzX0NBQ0hFLAorCU1FVFJJQ19TRVRfSURf SERDX0FORF9TRiwKKwlNRVRSSUNfU0VUX0lEX0wzXzEsCisJTUVUUklDX1NFVF9JRF9MM18yLAor CU1FVFJJQ19TRVRfSURfTDNfMywKKwlNRVRSSUNfU0VUX0lEX1JBU1RFUklaRVJfQU5EX1BJWEVM X0JBQ0tFTkQsCisJTUVUUklDX1NFVF9JRF9TQU1QTEVSLAorCU1FVFJJQ19TRVRfSURfVERMXzEs CisJTUVUUklDX1NFVF9JRF9URExfMiwKKwlNRVRSSUNfU0VUX0lEX0NPTVBVVEVfRVhUUkEsCisJ TUVUUklDX1NFVF9JRF9WTUVfUElQRSwKKwlNRVRSSUNfU0VUX0lEX1RFU1RfT0EsCiB9OwogCi1p bnQgaTkxNV9vYV9uX2J1aWx0aW5fbWV0cmljX3NldHNfc2tsZ3QzID0gMTsKK2ludCBpOTE1X29h X25fYnVpbHRpbl9tZXRyaWNfc2V0c19za2xndDMgPSAxODsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpY1tdID0gewogCXsgX01N SU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LApAQCAtMTQ2LDY2ICsxNjMsMjQ5OSBAQCBnZXRfcmVu ZGVyX2Jhc2ljX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CXJldHVybiBtdXhfY29uZmlnX3JlbmRlcl9iYXNpYzsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfYmFzaWNbXSA9IHsKKwl7IF9N TUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4MDA4MDAwMDAg fSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4 MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKK307CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfY29tcHV0ZV9iYXNpY1td ID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwg MHgwMDAwMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAwMjAwMSB9LAorCXsgX01NSU8o MHhlNzU4KSwgMHgwMDc3ODAwOCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA4ODA3OCB9LAor CXsgX01NSU8oMHhlNTVjKSwgMHgwMDgwODcwOCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMGEw ODkwOCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmln X2NvbXB1dGVfYmFzaWNbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA0ZjAwZTAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTI0ZjFjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2YzAw ZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4M2Y5MDAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA0ZTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWE0ZTA4MjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM0ZTAwMDIgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0ZjA5MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg0 ZjAwMzIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0ZjE4OTEgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGM0ZjBlMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU0ZjAwM2MgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDA0ZjBkODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI0ZjAwM2Ig fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA2YzAwMDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDg2YzAxMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM2YzAwMGMgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGU2YzBiMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg2YzAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWM2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWU2YzAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAxYjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDgxYjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMxYjQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGUxYjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxYzgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MWExYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWMx YzAwMjQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1YjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDg1YjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE1YmMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGM1YjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU1YjQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1YjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDI1YjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWE1YzYwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWM1YzAwMWIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI1YzgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTQ1YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA0Yzgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGM0YzAyMDggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZGEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDYwZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgwZGEwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGEwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMw ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDIwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZjU0MDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGUwZjU1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAwZjAxNTUg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGUyY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYyY2ZiMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTgyYzAwYmUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyY2MwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDQyY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5MDAx NTcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDAxNTggfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWQ5MDAxMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDAxMDMgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MzU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDBmZmYgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5 MDA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4NDU5MDA4NjMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc5MDA4MDIgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NTc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDk5MDA4MDIg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 NGI5MDAwMDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDM5MDBjNjIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDMzMzMgfSwKK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2NvbXB1dGVfYmFzaWNf bXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgIGlu dCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfY29tcHV0ZV9iYXNpYyk7 CisJcmV0dXJuIG11eF9jb25maWdfY29tcHV0ZV9iYXNpYzsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGVbXSA9 IHsKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4 MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4Mjc3MCksIDB4MDAwN2ZmZWEgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDdm ZmMgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwN2FmZmEgfSwKKwl7IF9NTUlPKDB4Mjc3Yyks IDB4MDAwMGY1ZmQgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwNzlmZmEgfSwKKwl7IF9NTUlP KDB4Mjc4NCksIDB4MDAwMGYzZmIgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwN2JmN2EgfSwK Kwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGY3ZTcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAw N2ZlZmEgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGY3Y2YgfSwKKwl7IF9NTUlPKDB4Mjc5 OCksIDB4MDAwNzdmZmEgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGVmZGYgfSwKKwl7IF9N TUlPKDB4MjdhMCksIDB4MDAwNmZmZmEgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGNmYmYg fSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAwM2ZmZmEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4 MDAwMDVmN2YgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9l dV9jb25maWdfcmVuZGVyX3BpcGVfcHJvZmlsZVtdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgw MDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhl NjU4KSwgMHgwMDAyNTAyNCB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAzNTAzNCB9LAorCXsg X01NSU8oMHhlNDVjKSwgMHgwMDA0NTA0NCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1NTA1 NCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA2NTA2NCB9LAorfTsKKworc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGVbXSA9IHsK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZTAwMWYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEw ZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxMTY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTc4YTAzZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MjRjMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTE4MzAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4NDAwMjAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4NTAwMTkgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTE4NjAwMDcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NzBjNDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTc4ODAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZjQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGE0YzAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZDgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQwZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDYwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZTU0MDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDAwZTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgwZjAwNDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAw ZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGMyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxMDQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDYxMTAwMTIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxMzEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4OTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGQ4OTAxMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4OTgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDk4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MDgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4YTAw NzUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4YTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTE4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI4YTQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTM4YTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MWEwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTU4MTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4 MTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MjAwMzAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDc4MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MjQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGY4MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MjQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MzAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDU4MzAwMGMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MzAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDM4MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MzgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGI4NDA5ODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NDRk ODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4NDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDk4NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NTAwODAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDM4NTAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NTAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4NjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4 NjA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NzAwMzIgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDE4ODgwNTIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4ODAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDk4ODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzEwMDEg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5MzAwMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTk5MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5NTgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWQ5NTAwOTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5NTgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDllNTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGJlNTgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDNlNWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDU5MmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5MjgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGQ5MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY5MjQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5 MmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk5MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDE5ODUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc5ODgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDk5ODEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5ODIwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ5ODIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGY5ODkwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU5ODIwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTM5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE5MDQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MjM5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjU5MDgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjc5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4Mjk5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmI5MDQwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MmY5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE5MDQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTU5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc5 MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWI5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MGMwODAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NTE5MDExNTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5MDE0MDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTU5MDUxMTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 NDU5MDE0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDc5MDA0YTUgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NTc5MDM0NTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDk5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGI5MDAwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTk5MDAwMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDAwMDUgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NTM5MDA0NTUgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9v YV9yZWcgKgorZ2V0X3JlbmRlcl9waXBlX3Byb2ZpbGVfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZ X1NJWkUobXV4X2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlKTsKKwlyZXR1cm4gbXV4X2NvbmZp Z19yZW5kZXJfcGlwZV9wcm9maWxlOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2Ff cmVnIGJfY291bnRlcl9jb25maWdfbWVtb3J5X3JlYWRzW10gPSB7CisJeyBfTU1JTygweDI3MmMp LCAweGZmZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MjgpLCAweGZmZmZmZmZmIH0sCisJeyBfTU1J TygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0s CisJeyBfTU1JTygweDI3MWMpLCAweGZmZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MTgpLCAweGZm ZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3 MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NGMpLCAweDg2NTQzMjEwIH0sCisJeyBf TU1JTygweDI3NDgpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwMDA2NjY3 IH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NWMpLCAw eDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NTgpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygw eDI3NTQpLCAweDAwMDA2NDY1IH0sCisJeyBfTU1JTygweDI3NTApLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDI3NzApLCAweDAwMDdmODFhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBm ZTAwIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDdmODJhIH0sCisJeyBfTU1JTygweDI3N2Mp LCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDdmODcyIH0sCisJeyBfTU1J TygweDI3ODQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdmOGJhIH0s CisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAw MDdmODdhIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3 OTgpLCAweDAwMDdmOGVhIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZTAwIH0sCisJeyBf TU1JTygweDI3YTApLCAweDAwMDdmOGUyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZTAw IH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMDdmOGYyIH0sCisJeyBfTU1JTygweDI3YWMpLCAw eDAwMDBmZTAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhf ZXVfY29uZmlnX21lbW9yeV9yZWFkc1tdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAw NCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNjU4KSwg MHgwMDAyNTAyNCB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAzNTAzNCB9LAorCXsgX01NSU8o MHhlNDVjKSwgMHgwMDA0NTA0NCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1NTA1NCB9LAor CXsgX01NSU8oMHhlNjVjKSwgMHgwMDA2NTA2NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX21lbW9yeV9yZWFkc1tdID0geworCXsgX01NSU8oMHg5 ODg4KSwgMHgxMTgxMGMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzgxMDAxYSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgzNzkwNjgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZjkwMDA2 NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMzgxMTMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNTgxMWIxMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgxMDAxYSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxZjgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgxMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxOTgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgx MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxYjkzMDA1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwM2U1ODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNWU1YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwN2U1NDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzkwMDE1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgy MTkwMDE1MSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMzkwMDE1MiB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyNTkwMDE1MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzkwMDE1NCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgyOTkwMDE1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyYjkwMDE1 NiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZDkwMDE1NyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgyZjkwMDE1ZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMTkwMDEwNSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxNTkwMDEwMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzkwMDEwMSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgzNTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTkw ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxZDkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMGM2MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1 NTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMGMwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg0NzkwMGM2MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0OTkwMGM2MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDA2MyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzkwMDAwMyB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29h X3JlZyAqCitnZXRfbWVtb3J5X3JlYWRzX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAorCQkJICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11 eF9jb25maWdfbWVtb3J5X3JlYWRzKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19tZW1vcnlfcmVhZHM7 Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19t ZW1vcnlfd3JpdGVzW10gPSB7CisJeyBfTU1JTygweDI3MmMpLCAweGZmZmZmZmZmIH0sCisJeyBf TU1JTygweDI3MjgpLCAweGZmZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAw IH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MWMpLCAw eGZmZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MTgpLCAweGZmZmZmZmZmIH0sCisJeyBfTU1JTygw eDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDI3NGMpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NDgpLCAweDg2NTQz MjEwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwMDA2NjY3IH0sCisJeyBfTU1JTygweDI3NDAp LCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NWMpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1J TygweDI3NTgpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NTQpLCAweDAwMDA2NDY1IH0s CisJeyBfTU1JTygweDI3NTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAw MDdmODFhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3 NzgpLCAweDAwMDdmODJhIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBmZTAwIH0sCisJeyBf TU1JTygweDI3ODApLCAweDAwMDdmODIyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDBmZTAw IH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdmOGJhIH0sCisJeyBfTU1JTygweDI3OGMpLCAw eDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDdmODdhIH0sCisJeyBfTU1JTygw eDI3OTQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDdmOGVhIH0sCisJ eyBfTU1JTygweDI3OWMpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMDdm OGUyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3YTgp LCAweDAwMDdmOGYyIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZTAwIH0sCit9OworCitz dGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX21lbW9yeV93cml0 ZXNbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1 OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMjUwMjQgfSwKKwl7IF9N TUlPKDB4ZTc1OCksIDB4MDAwMzUwMzQgfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwNDUwNDQg fSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTUwNTQgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4 MDAwNjUwNjQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2Nv bmZpZ19tZW1vcnlfd3JpdGVzW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDExODEwYzAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEzODEwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3 OTA2ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDNmOTAxMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAzODExMzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ODExYjEyIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA3ODEwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODEwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3ODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDE5ODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiODEwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFkODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTMwMDU1IH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAzZTU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ZTVj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3ZTU0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEzOTAwMTYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIxOTAwMTYxIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDIzOTAwMTYyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OTAwMTYzIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDI3OTAwMTY0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI5 OTAwMTY1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJiOTAwMTY2IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDJkOTAwMTY3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJmOTAwMTUwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDMxOTAwMTA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1OTAwMTAz IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE3OTAwMTAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDM1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5OTA4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFiOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOTA4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTAw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDQxOTAwYzYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDQ1OTAwYzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwYzYzIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDU3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ5 OTAwYzYzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDRiOTAwMDYzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDQzOTAwMDAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAw IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9tZW1vcnlf d3JpdGVzX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJ ICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX21lbW9yeV93 cml0ZXMpOworCXJldHVybiBtdXhfY29uZmlnX21lbW9yeV93cml0ZXM7Cit9CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2V4dGVuZGVk W10gPSB7CisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjAp LCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1J TygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0s CisJeyBfTU1JTygweDI3NzApLCAweDAwMDdmYzJhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAw MDBiZjAwIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDdmYzZhIH0sCisJeyBfTU1JTygweDI3 N2MpLCAweDAwMDBiZjAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDdmYzkyIH0sCisJeyBf TU1JTygweDI3ODQpLCAweDAwMDBiZjAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdmY2Ey IH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBiZjAwIH0sCisJeyBfTU1JTygweDI3OTApLCAw eDAwMDdmYzMyIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBiZjAwIH0sCisJeyBfTU1JTygw eDI3OTgpLCAweDAwMDdmYzlhIH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBiZjAwIH0sCisJ eyBfTU1JTygweDI3YTApLCAweDAwMDdmZTZhIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBi ZjAwIH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMDdmZTdhIH0sCisJeyBfTU1JTygweDI3YWMp LCAweDAwMDBiZjAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZs ZXhfZXVfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWRbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4 MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4 ZTY1OCksIDB4MDAwMDIwMDEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDA3NzgwMDggfSwKKwl7 IF9NTUlPKDB4ZTQ1YyksIDB4MDAwODgwNzggfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDA4MDg3 MDggfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4MDBhMDg5MDggfSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkW10gPSB7CisJ eyBfTU1JTygweDk4ODgpLCAweDEwNmMwMGUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MWM4 MTYwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2MWM4MDE1IH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE4MWMwMTIwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNGU4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlNGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4NGU4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDFhNGVhYWEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFj NGUwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNGU4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA0NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NGU4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA4NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGU4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNmMwYjAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAwNmMwMjAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNmMwMDBjIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDFjNmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFlNmMwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFhNmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWJj MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMWI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAyMWJjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMWMwMDQxIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA2MWM0MjAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MWM0NDQzIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBhMWM0NjQ1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBj MWM3NjQ3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MWM3MzU3IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDFjMWMwMDMwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMWMwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFhMWMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEyMWM4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBhNGNhYTJhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNGMwMmFhIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA4NGNhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMGRhMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA2MGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MGRh MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBjMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMGRhMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAyMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MGRhMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBjMGY1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBl MGY1NTE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMGYwMTU1IH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAwMmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMmM4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE2MmNhYTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MmMwMGFh IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA0MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA4MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMmM4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDExOTA3ZmZmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxOTAw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwMDQwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwODAyIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDQ3OTAwODQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU3OTAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQ5OTAwODQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3 OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDRiOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDQzOTAwODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAw IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9jb21wdXRl X2V4dGVuZGVkX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAor CQkJCWludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfY29tcHV0ZV9l eHRlbmRlZCk7CisJcmV0dXJuIG11eF9jb25maWdfY29tcHV0ZV9leHRlbmRlZDsKK30KKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfbDNf Y2FjaGVbXSA9IHsKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcxNCksIDB4MzA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7 IF9NTUlPKDB4MjcyNCksIDB4MzA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4Mjc3NCks IDB4MDAwMGZlZmUgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlP KDB4Mjc3YyksIDB4MDAwMGZlZmQgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwN2ZmZmEgfSwK Kwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZiZWYgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAw N2ZmZmEgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZiZGYgfSwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfY29tcHV0ZV9sM19jYWNoZVtd ID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwg MHgwMDAwMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAwMjAwMSB9LAorCXsgX01NSU8o MHhlNzU4KSwgMHgwMDEwMTEwMCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDIwMTIwMCB9LAor CXsgX01NSU8oMHhlNTVjKSwgMHgwMDMwMTMwMCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDQw MTQwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmln X2NvbXB1dGVfbDNfY2FjaGVbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTY2YzA3NjAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTU5MzAwMWUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y5 MDAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGU0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg0ZTgwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWE0ZTgwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM0ZTAwMDIg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA2YzAwNTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDY2YzUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg2YzVjNWQgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGU2YzVlNWYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2YzAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTg2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM2YzAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWU2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDAxYjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxYjgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDgxYmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxYmMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWEx Y2UwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWMxYzAwMzAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDA0YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzJhMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGM0YzAyODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZDIwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDgwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZGEwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGMwZjA0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjE1MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTAwZjAxNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAyYzgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTYyYzBhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTgyYzAwYTAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDM5MzMzMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU5MzAwMzIgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5 MzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5MDAxNTcgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWY5MDAxNTggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzU5MDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTk5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAzMGYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NTU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwNjMgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGI5MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NTk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDMzMzMgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDA4NDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2NvbXB1dGVfbDNfY2FjaGVfbXV4X2NvbmZpZyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJaW50ICpsZW4pCit7CisJKmxlbiA9IEFS UkFZX1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlKTsKKwlyZXR1cm4gbXV4X2NvbmZp Z19jb21wdXRlX2wzX2NhY2hlOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn IGJfY291bnRlcl9jb25maWdfaGRjX2FuZF9zZltdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgw MDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgy NzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHgxMDgwMDAwMCB9LAorCXsg X01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgwMDgwMDAw MCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzc0KSwg MHgwMDAwZmRmZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4 X2V1X2NvbmZpZ19oZGNfYW5kX3NmW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0 IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAw eDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygw eGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJ eyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIG11eF9jb25maWdfaGRjX2FuZF9zZltdID0geworCXsgX01NSU8oMHg5ODg4 KSwgMHgxMDRmMDIzMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjRmNDY0MCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMDZjMDIzMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgzNDQwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YzRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDRmMTg4MCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMjRmMDhiYiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDRmMDAxYiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDZjMDEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjZjMDAw YiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDFiODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjFiNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYTFjMTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDViODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMjViYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDVi NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxNDVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjVjODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxODVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjMDBhMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MjBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDBkYTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNjBkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBmNTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZTBmMDA1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJjYzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNjJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODJjYzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYTJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzJjODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZjgyODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjgz MDVjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwOTgzMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNzgzMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDk1MDA4MCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMzkyODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjk4ODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMTkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx MTkwZmMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg1OTkwMDAwNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMDgw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzkwMDg0MiB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29h X3JlZyAqCitnZXRfaGRjX2FuZF9zZl9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKKwkJCSAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2Nv bmZpZ19oZGNfYW5kX3NmKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19oZGNfYW5kX3NmOworfQorCitz dGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfbDNfMVtdID0g eworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgw MDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgy NzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsg X01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDEwMDA3 MCB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwZmZmMSB9LAorCXsgX01NSU8oMHgyNzc4KSwg MHgwMDAxNDAwMiB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwYzNmZiB9LAorCXsgX01NSU8o MHgyNzgwKSwgMHgwMDAxMDAwMiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwYzdmZiB9LAor CXsgX01NSU8oMHgyNzg4KSwgMHgwMDAwNDAwMiB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAw ZDNmZiB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDcwMCB9LAorCXsgX01NSU8oMHgyNzk0 KSwgMHgwMDAwZmYxZiB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDAwMTQwMiB9LAorCXsgX01N SU8oMHgyNzljKSwgMHgwMDAwZmMzZiB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDAwMTAwMiB9 LAorCXsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmM3ZiB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgw MDAwMDQwMiB9LAorCXsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmQzZiB9LAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19sM18xW10gPSB7CisJeyBf TU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAz IH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAw eDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygw eGU1NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9 OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfbDNfMVtdID0g eworCXsgX01NSU8oMHg5ODg4KSwgMHgxMjZjN2I0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx NjZjMDAyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTYwMzQ0NCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYTYxMzQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTRlYTgwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxYzRlMDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjRlODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNjRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODRlODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYTRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRmNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYzZjNTMyNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTZj NTQyNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDZjMmEwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMjZjMjg1YiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDZjMDA1YyB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxMDZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzZjMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZTZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx YTZjMDgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzFiYzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwZTFiYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDFiODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMjFiYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFiYzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzFjMDAzYyB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxMjFjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDFjODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxNjFjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODFjODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxYTFjMDgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjVi NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTVjMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxMDYwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDYwMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYzYxMDA0NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDYxMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjYxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw YzRjMDJhOCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODRjYTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYTRjMDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBkYTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZTBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjBkMjAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxMDBmMDE1NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBmNTAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmMDA1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODJj MDBhYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNDJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjJjODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwODJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTJjODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx MTkwZmZjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg0OTkwMDQyMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDAy MSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMDQwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0MzkwMDQyMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDA0MCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyAqCitnZXRfbDNfMV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKKwkJICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11 eF9jb25maWdfbDNfMSk7CisJcmV0dXJuIG11eF9jb25maWdfbDNfMTsKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX2wzXzJbXSA9IHsKKwl7IF9N TUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAg fSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4 ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcyNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAxMDAwNzAgfSwKKwl7 IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZjEgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMjgw MDIgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDg3ZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCks IDB4MDAwMjAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDhmZmYgfSwKKwl7IF9NTUlP KDB4Mjc4OCksIDB4MDAwMDgwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGE3ZmYgfSwK K307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbDNf MltdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4 KSwgMHgwMDAxMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01N SU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9 LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgw MDA1NTA1NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29u ZmlnX2wzXzJbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI2YzAyZTAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTQ2YzAwMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE2MjM0MDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0 ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGE0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0ZjQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDI2YzMzMjQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ2YzM0MjIg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWE2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIxYmMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDQxYmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQxYzgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTYxYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTgxYzgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWExYzA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDY1YjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWE1YzEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDY2MTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM2MjAwNDQgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2MjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY2 MjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg0YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGE0YzAwMmEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZGEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDQwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDIwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGUwZjAwNTUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQyYzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDYyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgyYzgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGEyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMyY2Mw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MGY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5 MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2wz XzJfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICBp bnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2wzXzIpOworCXJldHVy biBtdXhfY29uZmlnX2wzXzI7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcg Yl9jb3VudGVyX2NvbmZpZ19sM18zW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAw IH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAw eDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygw eDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCisJ eyBfTU1JTygweDI3NzApLCAweDAwMTAwMDcwIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBm ZmYxIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDI4MDAyIH0sCisJeyBfTU1JTygweDI3N2Mp LCAweDAwMDA4N2ZmIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAwMDIwMDAyIH0sCisJeyBfTU1J TygweDI3ODQpLCAweDAwMDA4ZmZmIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDA4MDAyIH0s CisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBhN2ZmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX2wzXzNbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1 OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9N TUlPKDB4ZTY1OCksIDB4MDAwMTIwMTEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQg fSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwNTEwNTAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4 MDAwNTMwNTIgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAwNTUwNTQgfSwKK307CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19sM18zW10gPSB7CisJeyBfTU1J TygweDk4ODgpLCAweDEyNmM0ZTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0NmMwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBhNjMzNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NGU4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA4NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGU4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjNGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNmMzMzIx IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NmMzNDJmIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDEwNmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhNmMyMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyMWJjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MWJjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDA2MWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MWM4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2MWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDE4MWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFhMWMxODAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA2NjA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNjMwMDQ0IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEwNjMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2 NjMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NGM4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBhNGMwMGFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMGRhMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0MGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MGQyMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMGY0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBlMGYwMDU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MmM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA2MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MmM4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBhMmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMmM4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTBmODAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDM3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxOTAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDQzOTAwODQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMz OTAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9s M18zX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAg aW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19sM18zKTsKKwlyZXR1 cm4gbXV4X2NvbmZpZ19sM18zOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn IGJfY291bnRlcl9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZFtdID0geworCXsg X01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAw MCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwg MHgzMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8o MHgyNzI0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwMiB9LAor CXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwZWZmZiB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAw NjAwMCB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwZjNmZiB9LAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhl bF9iYWNrZW5kW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1J TygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0s CisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAw MDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2 NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn IG11eF9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZFtdID0geworCXsgX01NSU8o MHg5ODg4KSwgMHgxMDJmMzgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDRkMDUwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMjBkMDNjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDBk MDNjZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBmMDAwNCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYzRlNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJmMDQ4MCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwODJmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJmMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjMDA5MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NjRkMDAyNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDRkMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMDBkMGQ0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBkODAzZiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDBkODAyMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDBkMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjBkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMjBmMDAxMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBmMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwZTBmMDA1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTJjODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYzJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkw ZmMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg1MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMTQwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg0MzkwMTQ4NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgz MzkwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRf cmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZF9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKKwkJCQkJICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9T SVpFKG11eF9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCk7CisJcmV0dXJuIG11 eF9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZDsKK30KKworc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3NhbXBsZXJbXSA9IHsKKwl7IF9N TUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAg fSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4 NzA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 MjcyNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMGMwMDAgfSwKKwl7 IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGU3ZmYgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDMw MDAgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGY5ZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCks IDB4MDAwMDBjMDAgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZlN2YgfSwKK307CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfc2FtcGxlcltdID0g eworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgw MDAxMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhl NzU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsg X01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1 NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Nh bXBsZXJbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQxNTJjMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTYxNTAwMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIxNjAwYTAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTQzNTJjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzNTAw MDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIzNjAwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTQ1NTJjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTY1NTAwMDUgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTI1NjAwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYyZjYwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZjIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM0 YzAwNTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzAwMTAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGMwZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZGEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDAwZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZGEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDYwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAwZjAzNTAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGMwZmIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwZGEgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTgyYzAwMjggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEyYzgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDQyZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMxMzgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGUxMzIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxM2MwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MWMxNDAwMTggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMx NTcwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxNTAwNzggfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTAxNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxNjIxODAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDIxNjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxNzQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzM2EwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDQzMzMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQzNDgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTYzNDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzNTc4NzAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTAzNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzNjAw NDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzNjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDQzNzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU1MzgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDA1MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1MzMwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MWM1NDAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI1 NDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU1NTcwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDA1NTc4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA1NTAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDY1NjAwNDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1NjAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1NzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTE5MGZmODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NDk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGI5MDAw NjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5MDBjMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NDM5MDA4NDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwNjAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3NhbXBsZXJfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlf U0laRShtdXhfY29uZmlnX3NhbXBsZXIpOworCXJldHVybiBtdXhfY29uZmlnX3NhbXBsZXI7Cit9 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZGxf MVtdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0 KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01N SU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzI0KSwgMHgzMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgw MDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwN2ZmZiB9LAorCXsgX01NSU8oMHgy Nzc4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwOWZmZiB9LAorCXsg X01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwZWZm ZiB9LAorCXsgX01NSU8oMHgyNzg4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzhjKSwg MHgwMDAwZjNmZiB9LAorCXsgX01NSU8oMHgyNzkwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8o MHgyNzk0KSwgMHgwMDAwZmRmZiB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDAwMDAwMCB9LAor CXsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmU3ZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZGxfMVtdID0geworCXsgX01NSU8oMHhlNDU4 KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01N SU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9 LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgw MDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3RkbF8xW10gPSB7CisJeyBfTU1J TygweDk4ODgpLCAweDEyMTIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEyMzIwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEyNTIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAw MmY4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMmYzMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBhNGMwMDE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMGQ4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBlMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMGQ4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA0MGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MGQyMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDEwMGYwM2EwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMGZmMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlMGYwMDk1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmM4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBhMmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMmQ4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDBlMmQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmQ0MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyMTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 MTBjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMTE4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA0MTFjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMTIxODgwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0MTIxOWI1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMTIwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMTM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA0MTM1MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzA4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBlMzA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzA0MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjMzE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzE0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBjMzIxYTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzIwMDMzIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA2MzIwMDMxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzIwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBjMzM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBl MzMxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzMxMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlNTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTA4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAyNTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTE4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAyNTE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTIxODgwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAwNTIxYTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTIwMDMzIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlNTM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTM0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTMxMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDExOTBmZjgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU3OTAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDQ5OTAwODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRi OTAwMDYyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDUxOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwYzAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDQzOTAwMDAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwMDQwIH0sCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF90ZGxfMV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlf U0laRShtdXhfY29uZmlnX3RkbF8xKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ190ZGxfMTsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3RkbF8yW10g PSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAw eDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygw eDI3MTQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3RkbF8yW10gPSB7CisJeyBfTU1JTygweGU0NTgp LCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1J TygweGU2NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0s CisJeyBfTU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAw MDUzMDUyIH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGRsXzJbXSA9IHsKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTIxMjRkNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIzMjJlNjAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTI1MjRkNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIy ZjMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzAwMTQgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDAwZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZGEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDQwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDIwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZmUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGUwZjAwOTcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgyYzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGEyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAyZDgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDYyZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxMGMw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxMWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDQxMjFmYjcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAxMjAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDQxMzUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzMDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzMDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAz MTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzMTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDAzMjFiODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzMjAwM2YgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDAzMzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzMzEwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDI1MWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1MjFmYjcgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDA1MjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1MzUwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTE5MGZjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDE5MDA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDAwNjMgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwNDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3RkbF8yX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAorCQkgICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpF KG11eF9jb25maWdfdGRsXzIpOworCXJldHVybiBtdXhfY29uZmlnX3RkbF8yOworfQorCitzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9leHRy YVtdID0geworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2Nv bmZpZ19jb21wdXRlX2V4dHJhW10gPSB7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf b2FfcmVnIG11eF9jb25maWdfY29tcHV0ZV9leHRyYVtdID0geworCXsgX01NSU8oMHg5ODg4KSwg MHgxMjEyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjMyMDNlMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxMjUyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjkyMDNlMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMmIyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMmQy MDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjRlYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNDRlYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRlYzAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMjJmNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODRjYTAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjMDA0MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MDBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBkYTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjBkMjAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYzBmNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmMDA2 ZCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjJjODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJkODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNjEwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjEx NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjEyMDAzMyB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMDEyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjEzMTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNDMwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDMxODAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDMyMTk4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MDMyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDMzNDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDUwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDUxNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDUyMDAzMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDUyMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDUzMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMGFmODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWNjMDAwMSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMDhkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjhkYTAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYzhmYjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZThm MDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmFjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMmFkNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjkwODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMjkxODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjkyMTk4MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDkyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MjkzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmIwNDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMmIxNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmIyMDAzMyB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMGIyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmIzMTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGQwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMGQxODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGQyMTk4MCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMGQzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwZmMwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkw MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMGMwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg0MzkwMDQwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMTU1MCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg0NTkwMDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9 LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfY29tcHV0ZV9l eHRyYV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAg ICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2V4 dHJhKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19jb21wdXRlX2V4dHJhOworfQorCitzdGF0aWMgY29u c3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdm1lX3BpcGVbXSA9IHsKKwl7 IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCks IDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MzA4MDAwMDAgfSwKKwl7IF9NTUlP KDB4Mjc3MCksIDB4MDAxMDAwMzAgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZjkgfSwK Kwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAw MGZmZmMgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4 NCksIDB4MDAwMGZmZjMgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAxODAgfSwKKwl7IF9N TUlPKDB4Mjc4YyksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwMDAwMDIg fSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4 MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmM2YgfSwKK307CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdm1lX3BpcGVbXSA9IHsK Kwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAw MDgwMDMgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZp Z192bWVfcGlwZVtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxNDFhNTgwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgxNjFhMDBjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjE4MDI0MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDE4MDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx NDlhNTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjlhMDBjMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxMjk4MDI0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDk4MDAwMiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxYTRlM2ZjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDJmMTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJmODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDJmMzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDRjNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYTRjOTUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRjMDAyYSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjBk ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYTBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBkYTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYzBmMDQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmNTUwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDBmMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MDJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTJjODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxNjJjYWEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODJjMDAwYSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDE5MzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODFhMjhj MSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDFhMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMDEzMzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjEzYzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwODEzZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDE3MjAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNjE3ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODE3 YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDE4MDAzNyB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNjE4MDk0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODE4MDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMjE4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDE4MzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNGFmYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NmFmMzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWNjNDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwY2NjMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYThkYTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYzhkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZThmNDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDhmMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxNmFjYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOGFjMDAwYSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNjk5MzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzlhMjhjMSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMDlhMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTkz ZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzkzZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYTk3YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzk3YTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYTk4MDk3NyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODk4MDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDk4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw Njk4MzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMDBmZiB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg1MTkwMDA1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg1NTkwMDExNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzkwMDg4NCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg1NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTkwMDAwMiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAor fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfdm1lX3BpcGVfbXV4 X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQlpbnQgKmxlbikK K3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3ZtZV9waXBlKTsKKwlyZXR1cm4gbXV4 X2NvbmZpZ192bWVfcGlwZTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBi X2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCks IDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlP KDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwK Kwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAw MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4Mjc3 YyksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKKwl7IF9N TUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIg fSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4 MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4 Mjc5OCksIDB4MDAxMDAwODIgfSwKKwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKKwl7 IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZm ZTcgfSwKKwl7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKKwl7IF9NTUlPKDB4MjdhYyks IDB4MDAwMGZmZTcgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxl eF9ldV9jb25maWdfdGVzdF9vYVtdID0geworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4 MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MTAwMTMgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWY4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MTAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDdlNTQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgKgorZ2V0X3Rlc3Rfb2FfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCisJCSAgICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0la RShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCXJldHVybiBtdXhfY29uZmlnX3Rlc3Rfb2E7Cit9CisK IGludCBpOTE1X29hX3NlbGVjdF9tZXRyaWNfc2V0X3NrbGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiB7Ci0JZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPSBOVUxMOwot CWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbiA9IDA7Ci0JZGV2X3ByaXYtPnBlcmYub2Eu Yl9jb3VudGVyX3JlZ3MgPSBOVUxMOwotCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdz X2xlbiA9IDA7Ci0JZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0gTlVMTDsKLQlkZXZfcHJp di0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0gMDsKKwlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVn cyA9IE5VTEw7CisJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuID0gMDsKKwlkZXZfcHJp di0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9IE5VTEw7CisJZGV2X3ByaXYtPnBlcmYub2EuYl9j b3VudGVyX3JlZ3NfbGVuID0gMDsKKwlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPSBOVUxM OworCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPSAwOworCisJc3dpdGNoIChkZXZf cHJpdi0+cGVyZi5vYS5tZXRyaWNzX3NldCkgeworCWNhc2UgTUVUUklDX1NFVF9JRF9SRU5ERVJf QkFTSUM6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9yZW5kZXJfYmFz aWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4 X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJN X0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJSRU5ERVJfQkFTSUNc IiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNm cyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVl biBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJl ZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3By aXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJf YmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJB WV9TSVpFKGJfY291bnRlcl9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKworCQlkZXZfcHJpdi0+cGVy Zi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljOworCQlkZXZf cHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25m aWdfcmVuZGVyX2Jhc2ljKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfQ09N UFVURV9CQVNJQzoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2NvbXB1 dGVfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAgJmRldl9wcml2LT5wZXJm Lm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsK KwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiQ09NUFVU RV9CQVNJQ1wiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lz dGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3Qg aGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0 IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwor CQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmln X2NvbXB1dGVfYmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9 CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9iYXNpYyk7CisKKwkJZGV2 X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2NvbXB1dGVfYmFz aWM7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShm bGV4X2V1X2NvbmZpZ19jb21wdXRlX2Jhc2ljKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJ Q19TRVRfSURfUkVOREVSX1BJUEVfUFJPRklMRToKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3Jl Z3MgPQorCQkJZ2V0X3JlbmRlcl9waXBlX3Byb2ZpbGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJ CQkJCQkgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJp di0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUg TVVYIGNvbmZpZyBmb3IgXCJSRU5ERVJfUElQRV9QUk9GSUxFXCIgbWV0cmljIHNldFxuIik7CisK KwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRo aXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vy c3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICov CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRl cl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfcmVuZGVyX3BpcGVfcHJvZmlsZTsKKwkJZGV2 X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3Vu dGVyX2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9maWxlKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5m bGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfcmVuZGVyX3BpcGVfcHJvZmlsZTsKKwkJZGV2 X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29u ZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGUpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NF VF9JRF9NRU1PUllfUkVBRFM6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdl dF9tZW1vcnlfcmVhZHNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAmZGV2X3ByaXYt PnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVn cykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJN RU1PUllfUkVBRFNcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9y ZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxk bid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3Vs ZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9 CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2Nv bmZpZ19tZW1vcnlfcmVhZHM7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xl biA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbWVtb3J5X3JlYWRzKTsKKworCQlk ZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfbWVtb3J5X3Jl YWRzOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUo ZmxleF9ldV9jb25maWdfbWVtb3J5X3JlYWRzKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJ Q19TRVRfSURfTUVNT1JZX1dSSVRFUzoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQor CQkJZ2V0X21lbW9yeV93cml0ZXNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAgJmRl dl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2Eu bXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcg Zm9yIFwiTUVNT1JZX1dSSVRFU1wiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVj YXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28g aXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICog c28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5W QUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2Nv dW50ZXJfY29uZmlnX21lbW9yeV93cml0ZXM7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRl cl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbWVtb3J5X3dyaXRl cyk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmln X21lbW9yeV93cml0ZXM7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJ QVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19tZW1vcnlfd3JpdGVzKTsKKworCQlyZXR1cm4gMDsK KwljYXNlIE1FVFJJQ19TRVRfSURfQ09NUFVURV9FWFRFTkRFRDoKKwkJZGV2X3ByaXYtPnBlcmYu b2EubXV4X3JlZ3MgPQorCQkJZ2V0X2NvbXB1dGVfZXh0ZW5kZWRfbXV4X2NvbmZpZyhkZXZfcHJp diwKKwkJCQkJCQkmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZf cHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFi bGUgTVVYIGNvbmZpZyBmb3IgXCJDT01QVVRFX0VYVEVOREVEXCIgbWV0cmljIHNldFxuIik7CisK KwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRo aXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vy c3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICov CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRl cl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfY29tcHV0ZV9leHRlbmRlZDsKKwkJZGV2X3By aXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVy X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3Jl Z3MgPQorCQkJZmxleF9ldV9jb25maWdfY29tcHV0ZV9leHRlbmRlZDsKKwkJZGV2X3ByaXYtPnBl cmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2NvbXB1 dGVfZXh0ZW5kZWQpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9DT01QVVRF X0wzX0NBQ0hFOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfY29tcHV0 ZV9sM19jYWNoZV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJCSZkZXZfcHJpdi0+cGVyZi5v YS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJ CQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIkNPTVBVVEVf TDNfQ0FDSEVcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdp c3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0 IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4n dCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisK KwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZp Z19jb21wdXRlX2wzX2NhY2hlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19s ZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGUpOwor CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19jb21w dXRlX2wzX2NhY2hlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFS UkFZX1NJWkUoZmxleF9ldV9jb25maWdfY29tcHV0ZV9sM19jYWNoZSk7CisKKwkJcmV0dXJuIDA7 CisJY2FzZSBNRVRSSUNfU0VUX0lEX0hEQ19BTkRfU0Y6CisJCWRldl9wcml2LT5wZXJmLm9hLm11 eF9yZWdzID0KKwkJCWdldF9oZGNfYW5kX3NmX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCQkg ICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJm Lm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29u ZmlnIGZvciBcIkhEQ19BTkRfU0ZcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJl Y2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNv IGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAq IHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlO VkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9j b3VudGVyX2NvbmZpZ19oZGNfYW5kX3NmOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJf cmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2hkY19hbmRfc2YpOwor CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19oZGNf YW5kX3NmOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJ WkUoZmxleF9ldV9jb25maWdfaGRjX2FuZF9zZik7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRS SUNfU0VUX0lEX0wzXzE6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9s M18xX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4 X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJN X0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJMM18xXCIgbWV0cmlj IHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFk eSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0 aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVl c3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJm Lm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfbDNfMTsKKwkJZGV2X3By aXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVy X2NvbmZpZ19sM18xKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxl eF9ldV9jb25maWdfbDNfMTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJ CQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2wzXzEpOworCisJCXJldHVybiAwOworCWNhc2Ug TUVUUklDX1NFVF9JRF9MM18yOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQln ZXRfbDNfMl9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgJmRldl9wcml2LT5wZXJmLm9h Lm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJ CURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiTDNfMlwiIG1l dHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFs cmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFk dmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiBy ZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+ cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2wzXzI7CisJCWRl dl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfbDNfMik7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJ CWZsZXhfZXVfY29uZmlnX2wzXzI7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4g PQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19sM18yKTsKKworCQlyZXR1cm4gMDsKKwlj YXNlIE1FVFJJQ19TRVRfSURfTDNfMzoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQor CQkJZ2V0X2wzXzNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJICAgICZkZXZfcHJpdi0+cGVy Zi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7 CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIkwzXzNc IiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNm cyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVl biBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJl ZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3By aXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19sM18zOwor CQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShi X2NvdW50ZXJfY29uZmlnX2wzXzMpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9 CisJCQlmbGV4X2V1X2NvbmZpZ19sM18zOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3Nf bGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfbDNfMyk7CisKKwkJcmV0dXJuIDA7 CisJY2FzZSBNRVRSSUNfU0VUX0lEX1JBU1RFUklaRVJfQU5EX1BJWEVMX0JBQ0tFTkQ6CisJCWRl dl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9yYXN0ZXJpemVyX2FuZF9waXhlbF9i YWNrZW5kX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYu b2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgewor CQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJSQVNURVJJ WkVSX0FORF9QSVhFTF9CQUNLRU5EXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBi ZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBz byBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkg KiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJ TlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJf Y291bnRlcl9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZDsKKwkJZGV2X3ByaXYt PnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2Nv bmZpZ19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kKTsKKworCQlkZXZfcHJpdi0+cGVyZi5v YS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFj a2VuZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpF KGZsZXhfZXVfY29uZmlnX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmQpOworCisJCXJldHVy biAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9TQU1QTEVSOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5t dXhfcmVncyA9CisJCQlnZXRfc2FtcGxlcl9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAg ICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBl cmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBj b25maWcgZm9yIFwiU0FNUExFUlwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVj YXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28g aXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICog c28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5W QUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2Nv dW50ZXJfY29uZmlnX3NhbXBsZXI7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdz X2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfc2FtcGxlcik7CisKKwkJZGV2 X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX3NhbXBsZXI7CisJ CWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1 X2NvbmZpZ19zYW1wbGVyKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfVERM XzE6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF90ZGxfMV9tdXhfY29u ZmlnKGRldl9wcml2LAorCQkJCQkgICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4p OworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJ VkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlRETF8xXCIgbWV0cmljIHNldFxuIik7 CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2Vk IHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1 c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJ ICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291 bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfdGRsXzE7CisJCWRldl9wcml2LT5wZXJm Lm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdf dGRsXzEpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2Nv bmZpZ190ZGxfMTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJB WV9TSVpFKGZsZXhfZXVfY29uZmlnX3RkbF8xKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJ Q19TRVRfSURfVERMXzI6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF90 ZGxfMl9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICZkZXZfcHJpdi0+cGVyZi5vYS5t dXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlE Uk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIlRETF8yXCIgbWV0 cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxy ZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2 ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJl cXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5w ZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfdGRsXzI7CisJCWRl dl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfdGRsXzIpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJ CQlmbGV4X2V1X2NvbmZpZ190ZGxfMjsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xl biA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3RkbF8yKTsKKworCQlyZXR1cm4gMDsK KwljYXNlIE1FVFJJQ19TRVRfSURfQ09NUFVURV9FWFRSQToKKwkJZGV2X3ByaXYtPnBlcmYub2Eu bXV4X3JlZ3MgPQorCQkJZ2V0X2NvbXB1dGVfZXh0cmFfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJ CQkJCSAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3By aXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxl IE1VWCBjb25maWcgZm9yIFwiQ09NUFVURV9FWFRSQVwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkv KiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJ CQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNl IGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJ cmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVn cyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfZXh0cmE7CisJCWRldl9wcml2LT5wZXJm Lm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdf Y29tcHV0ZV9leHRyYSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZs ZXhfZXVfY29uZmlnX2NvbXB1dGVfZXh0cmE7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVn c19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19jb21wdXRlX2V4dHJhKTsKKwor CQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfVk1FX1BJUEU6CisJCWRldl9wcml2LT5w ZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF92bWVfcGlwZV9tdXhfY29uZmlnKGRldl9wcml2LAor CQkJCQkJJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYt PnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1V WCBjb25maWcgZm9yIFwiVk1FX1BJUEVcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFM IGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5k IHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJ CSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAt RUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJ Yl9jb3VudGVyX2NvbmZpZ192bWVfcGlwZTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVy X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ192bWVfcGlwZSk7CisK KwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX3ZtZV9w aXBlOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUo ZmxleF9ldV9jb25maWdfdm1lX3BpcGUpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NF VF9JRF9URVNUX09BOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfdGVz dF9vYV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICAgJmRldl9wcml2LT5wZXJmLm9h Lm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJ CURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiVEVTVF9PQVwi IG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2Zz IGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVu IGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVl biByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJp di0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7 CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpF KGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9y ZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJCWRldl9wcml2LT5wZXJmLm9hLmZs ZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwor CQlyZXR1cm4gMDsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVOT0RFVjsKKwl9Cit9CisKK3N0YXRp YyBzc2l6ZV90CitzaG93X3JlbmRlcl9iYXNpY19pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRm KGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1JFTkRFUl9CQVNJQyk7Cit9CisKK3N0YXRpYyBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9yZW5kZXJfYmFzaWNfaWQgPSB7CisJLmF0 dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3JlbmRl cl9iYXNpY19pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHJzX3JlbmRlcl9iYXNpY1tdID0geworCSZkZXZfYXR0cl9yZW5kZXJfYmFzaWNfaWQu YXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBf cmVuZGVyX2Jhc2ljID0geworCS5uYW1lID0gIjQ2MTZkNDUwLTIzOTMtNDgzNi04MTQ2LTUzYzVl ZDg0ZDM1OSIsCisJLmF0dHJzID0gIGF0dHJzX3JlbmRlcl9iYXNpYywKK307CisKK3N0YXRpYyBz c2l6ZV90CitzaG93X2NvbXB1dGVfYmFzaWNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50Zihi dWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9DT01QVVRFX0JBU0lDKTsKK30KKworc3RhdGljIHN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2NvbXB1dGVfYmFzaWNfaWQgPSB7CisJLmF0 dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X2NvbXB1 dGVfYmFzaWNfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmli dXRlICphdHRyc19jb21wdXRlX2Jhc2ljW10gPSB7CisJJmRldl9hdHRyX2NvbXB1dGVfYmFzaWNf aWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3Jv dXBfY29tcHV0ZV9iYXNpYyA9IHsKKwkubmFtZSA9ICI0MzIwNDkyYi1mZDAzLTQyYWMtOTIyZi1k YmUxZWYzYjdiNTgiLAorCS5hdHRycyA9ICBhdHRyc19jb21wdXRlX2Jhc2ljLAorfTsKKworc3Rh dGljIHNzaXplX3QKK3Nob3dfcmVuZGVyX3BpcGVfcHJvZmlsZV9pZChzdHJ1Y3QgZGV2aWNlICpr ZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVy biBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1JFTkRFUl9QSVBFX1BST0ZJTEUp OworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfcmVuZGVyX3Bp cGVfcHJvZmlsZV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQg fSwKKwkuc2hvdyA9IHNob3dfcmVuZGVyX3BpcGVfcHJvZmlsZV9pZCwKKwkuc3RvcmUgPSBOVUxM LAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3JlbmRlcl9waXBlX3Byb2Zp bGVbXSA9IHsKKwkmZGV2X2F0dHJfcmVuZGVyX3BpcGVfcHJvZmlsZV9pZC5hdHRyLAorCU5VTEws Cit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9yZW5kZXJfcGlwZV9w cm9maWxlID0geworCS5uYW1lID0gImJkMmQ5Y2FlLWI5ZWMtNGY1Yi05ZDJmLTkzNGJlZDM5OGEy ZCIsCisJLmF0dHJzID0gIGF0dHJzX3JlbmRlcl9waXBlX3Byb2ZpbGUsCit9OworCitzdGF0aWMg c3NpemVfdAorc2hvd19tZW1vcnlfcmVhZHNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50Zihi dWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9NRU1PUllfUkVBRFMpOworfQogCi0Jc3dpdGNoIChk ZXZfcHJpdi0+cGVyZi5vYS5tZXRyaWNzX3NldCkgewotCWNhc2UgTUVUUklDX1NFVF9JRF9SRU5E RVJfQkFTSUM6Ci0JCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KLQkJCWdldF9yZW5kZXJf YmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwKLQkJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2Eu bXV4X3JlZ3NfbGVuKTsKLQkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgewotCQkJ RFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJSRU5ERVJfQkFT SUNcIiBtZXRyaWMgc2V0XG4iKTsKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZf YXR0cl9tZW1vcnlfcmVhZHNfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUg PSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X21lbW9yeV9yZWFkc19pZCwKKwkuc3RvcmUgPSBOVUxM LAorfTsKIAotCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNo ZWNrZWQgdGhpcwotCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2Vk IHRvIHVzZXJzcGFjZSBhbmQKLQkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVk Ci0JCQkgKi8KLQkJCXJldHVybiAtRUlOVkFMOwotCQl9CitzdGF0aWMgc3RydWN0IGF0dHJpYnV0 ZSAqYXR0cnNfbWVtb3J5X3JlYWRzW10gPSB7CisJJmRldl9hdHRyX21lbW9yeV9yZWFkc19pZC5h dHRyLAorCU5VTEwsCit9OwogCi0JCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0K LQkJCWJfY291bnRlcl9jb25maWdfcmVuZGVyX2Jhc2ljOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5i X2NvdW50ZXJfcmVnc19sZW4gPQotCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3JlbmRl cl9iYXNpYyk7CitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9tZW1vcnlfcmVh ZHMgPSB7CisJLm5hbWUgPSAiM2FlNmU3NGMtNzJjMy00MDQwLTliZDAtNzk2MTQzMGI4Y2M4IiwK KwkuYXR0cnMgPSAgYXR0cnNfbWVtb3J5X3JlYWRzLAorfTsKIAotCQlkZXZfcHJpdi0+cGVyZi5v YS5mbGV4X3JlZ3MgPQotCQkJZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljOwotCQlkZXZfcHJp di0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KLQkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdf cmVuZGVyX2Jhc2ljKTsKK3N0YXRpYyBzc2l6ZV90CitzaG93X21lbW9yeV93cml0ZXNfaWQoc3Ry dWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1 ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9NRU1PUllf V1JJVEVTKTsKK30KIAotCQlyZXR1cm4gMDsKLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVOT0RFVjsK LQl9CitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfbWVtb3J5X3dyaXRl c19pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hv dyA9IHNob3dfbWVtb3J5X3dyaXRlc19pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX21lbW9yeV93cml0ZXNbXSA9IHsKKwkmZGV2X2F0dHJf bWVtb3J5X3dyaXRlc19pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJp YnV0ZV9ncm91cCBncm91cF9tZW1vcnlfd3JpdGVzID0geworCS5uYW1lID0gIjA1NWYyNTZkLTQw NTItNDY3Yy04ZGVjLTYwNjRhNDgwNjQzMyIsCisJLmF0dHJzID0gIGF0dHJzX21lbW9yeV93cml0 ZXMsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19jb21wdXRlX2V4dGVuZGVkX2lkKHN0cnVj dCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYp Cit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfQ09NUFVURV9F WFRFTkRFRCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9j b21wdXRlX2V4dGVuZGVkX2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0g MDQ0NCB9LAorCS5zaG93ID0gc2hvd19jb21wdXRlX2V4dGVuZGVkX2lkLAorCS5zdG9yZSA9IE5V TEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfY29tcHV0ZV9leHRlbmRl ZFtdID0geworCSZkZXZfYXR0cl9jb21wdXRlX2V4dGVuZGVkX2lkLmF0dHIsCisJTlVMTCwKK307 CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2NvbXB1dGVfZXh0ZW5kZWQg PSB7CisJLm5hbWUgPSAiNzUzOTcyZDQtODdjZC00NDYwLTgyNGQtNzU0NDYzYWM1MDU0IiwKKwku YXR0cnMgPSAgYXR0cnNfY29tcHV0ZV9leHRlbmRlZCwKK307CisKK3N0YXRpYyBzc2l6ZV90Citz aG93X2NvbXB1dGVfbDNfY2FjaGVfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIl ZFxuIiwgTUVUUklDX1NFVF9JRF9DT01QVVRFX0wzX0NBQ0hFKTsKIH0KIAorc3RhdGljIHN0cnVj dCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2NvbXB1dGVfbDNfY2FjaGVfaWQgPSB7CisJLmF0 dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X2NvbXB1 dGVfbDNfY2FjaGVfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0 cmlidXRlICphdHRyc19jb21wdXRlX2wzX2NhY2hlW10gPSB7CisJJmRldl9hdHRyX2NvbXB1dGVf bDNfY2FjaGVfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVf Z3JvdXAgZ3JvdXBfY29tcHV0ZV9sM19jYWNoZSA9IHsKKwkubmFtZSA9ICIyNzA3NmVlYi00OWYz LTRmZWQtODQyMy1jNjY1MDYwMDVjNjMiLAorCS5hdHRycyA9ICBhdHRyc19jb21wdXRlX2wzX2Nh Y2hlLAorfTsKKwogc3RhdGljIHNzaXplX3QKLXNob3dfcmVuZGVyX2Jhc2ljX2lkKHN0cnVjdCBk ZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCitz aG93X2hkY19hbmRfc2ZfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwg TUVUUklDX1NFVF9JRF9SRU5ERVJfQkFTSUMpOworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4i LCBNRVRSSUNfU0VUX0lEX0hEQ19BTkRfU0YpOwogfQogCi1zdGF0aWMgc3RydWN0IGRldmljZV9h dHRyaWJ1dGUgZGV2X2F0dHJfcmVuZGVyX2Jhc2ljX2lkID0geworc3RhdGljIHN0cnVjdCBkZXZp Y2VfYXR0cmlidXRlIGRldl9hdHRyX2hkY19hbmRfc2ZfaWQgPSB7CiAJLmF0dHIgPSB7IC5uYW1l ID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCi0JLnNob3cgPSBzaG93X3JlbmRlcl9iYXNpY19pZCwK Kwkuc2hvdyA9IHNob3dfaGRjX2FuZF9zZl9pZCwKIAkuc3RvcmUgPSBOVUxMLAogfTsKIAotc3Rh dGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3JlbmRlcl9iYXNpY1tdID0gewotCSZkZXZfYXR0 cl9yZW5kZXJfYmFzaWNfaWQuYXR0ciwKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19o ZGNfYW5kX3NmW10gPSB7CisJJmRldl9hdHRyX2hkY19hbmRfc2ZfaWQuYXR0ciwKIAlOVUxMLAog fTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfcmVuZGVyX2Jhc2ljID0g ewotCS5uYW1lID0gIjQ2MTZkNDUwLTIzOTMtNDgzNi04MTQ2LTUzYzVlZDg0ZDM1OSIsCi0JLmF0 dHJzID0gIGF0dHJzX3JlbmRlcl9iYXNpYywKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3Vw IGdyb3VwX2hkY19hbmRfc2YgPSB7CisJLm5hbWUgPSAiODA3MWI0MDktYzM5YS00Njc0LTk0ZDct MzI5NjJlY2ZiNTEyIiwKKwkuYXR0cnMgPSAgYXR0cnNfaGRjX2FuZF9zZiwKK307CisKK3N0YXRp YyBzc2l6ZV90CitzaG93X2wzXzFfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIl ZFxuIiwgTUVUUklDX1NFVF9JRF9MM18xKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlIGRldl9hdHRyX2wzXzFfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1v ZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X2wzXzFfaWQsCisJLnN0b3JlID0gTlVMTCwKK307 CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19sM18xW10gPSB7CisJJmRldl9hdHRy X2wzXzFfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv dXAgZ3JvdXBfbDNfMSA9IHsKKwkubmFtZSA9ICJkOWU4NmQ3MC00NjJiLTQ2MmEtODUxZS1mZDYz ZThjMTNkNjMiLAorCS5hdHRycyA9ICBhdHRyc19sM18xLAorfTsKKworc3RhdGljIHNzaXplX3QK K3Nob3dfbDNfMl9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRS SUNfU0VUX0lEX0wzXzIpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2 X2F0dHJfbDNfMl9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQg fSwKKwkuc2hvdyA9IHNob3dfbDNfMl9pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX2wzXzJbXSA9IHsKKwkmZGV2X2F0dHJfbDNfMl9pZC5h dHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9s M18yID0geworCS5uYW1lID0gIjUyMjAwNDI0LTZlZTktNDhiMy1iN2ZhLTBhZmNmMTk3NWU0ZCIs CisJLmF0dHJzID0gIGF0dHJzX2wzXzIsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19sM18z X2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBj aGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURf TDNfMyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9sM18z X2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93 ID0gc2hvd19sM18zX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cnNfbDNfM1tdID0geworCSZkZXZfYXR0cl9sM18zX2lkLmF0dHIsCisJTlVM TCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2wzXzMgPSB7CisJ Lm5hbWUgPSAiMTk4ODMxNWYtMGEyNi00NGRmLWFjYjAtZGY3ZWM4NmIxNDU2IiwKKwkuYXR0cnMg PSAgYXR0cnNfbDNfMywKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Jhc3Rlcml6ZXJfYW5k X3BpeGVsX2JhY2tlbmRfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwg TUVUUklDX1NFVF9JRF9SQVNURVJJWkVSX0FORF9QSVhFTF9CQUNLRU5EKTsKK30KKworc3RhdGlj IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2Jh Y2tlbmRfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJ LnNob3cgPSBzaG93X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfaWQsCisJLnN0b3JlID0g TlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19yYXN0ZXJpemVyX2Fu ZF9waXhlbF9iYWNrZW5kW10gPSB7CisJJmRldl9hdHRyX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2Jh Y2tlbmRfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv dXAgZ3JvdXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCA9IHsKKwkubmFtZSA9ICJmMWYx N2NhNy0yODZlLTRhZTUtOWQxNS05ZmNjYWQ2YzY2NWQiLAorCS5hdHRycyA9ICBhdHRyc19yYXN0 ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfc2Ft cGxlcl9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0 ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VU X0lEX1NBTVBMRVIpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0 dHJfc2FtcGxlcl9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQg fSwKKwkuc2hvdyA9IHNob3dfc2FtcGxlcl9pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3Rh dGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3NhbXBsZXJbXSA9IHsKKwkmZGV2X2F0dHJfc2Ft cGxlcl9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91 cCBncm91cF9zYW1wbGVyID0geworCS5uYW1lID0gIjAwYTllMGZiLTNkMmUtNDQwNS04NTJjLWRj ZTYzMzRmZmIzYiIsCisJLmF0dHJzID0gIGF0dHJzX3NhbXBsZXIsCit9OworCitzdGF0aWMgc3Np emVfdAorc2hvd190ZGxfMV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4i LCBNRVRSSUNfU0VUX0lEX1RETF8xKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmli dXRlIGRldl9hdHRyX3RkbF8xX2lkID0geworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2Rl ID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd190ZGxfMV9pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsK Kworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3RkbF8xW10gPSB7CisJJmRldl9hdHRy X3RkbF8xX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dy b3VwIGdyb3VwX3RkbF8xID0geworCS5uYW1lID0gIjEzZGNjNTBhLTdlYzAtNDA5Yi05OWQ2LWEz ZjkzMmNlZGNiMyIsCisJLmF0dHJzID0gIGF0dHJzX3RkbF8xLAorfTsKKworc3RhdGljIHNzaXpl X3QKK3Nob3dfdGRsXzJfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwg TUVUUklDX1NFVF9JRF9URExfMik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSBkZXZfYXR0cl90ZGxfMl9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9 IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfdGRsXzJfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisK K3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc190ZGxfMltdID0geworCSZkZXZfYXR0cl90 ZGxfMl9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91 cCBncm91cF90ZGxfMiA9IHsKKwkubmFtZSA9ICI5Nzg3NWUyMS02NjI0LTRhZWUtOTE5MS02ODJm ZWIzZWFlMjEiLAorCS5hdHRycyA9ICBhdHRyc190ZGxfMiwKK307CisKK3N0YXRpYyBzc2l6ZV90 CitzaG93X2NvbXB1dGVfZXh0cmFfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIl ZFxuIiwgTUVUUklDX1NFVF9JRF9DT01QVVRFX0VYVFJBKTsKK30KKworc3RhdGljIHN0cnVjdCBk ZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2NvbXB1dGVfZXh0cmFfaWQgPSB7CisJLmF0dHIgPSB7 IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X2NvbXB1dGVfZXh0 cmFfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICph dHRyc19jb21wdXRlX2V4dHJhW10gPSB7CisJJmRldl9hdHRyX2NvbXB1dGVfZXh0cmFfaWQuYXR0 ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29t cHV0ZV9leHRyYSA9IHsKKwkubmFtZSA9ICIyZDgwYTY0OC03YjVhLTRlOTItYmJlNy0zYjVjNzZm MmUyMjEiLAorCS5hdHRycyA9ICBhdHRyc19jb21wdXRlX2V4dHJhLAorfTsKKworc3RhdGljIHNz aXplX3QKK3Nob3dfdm1lX3BpcGVfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIl ZFxuIiwgTUVUUklDX1NFVF9JRF9WTUVfUElQRSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNl X2F0dHJpYnV0ZSBkZXZfYXR0cl92bWVfcGlwZV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAi aWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfdm1lX3BpcGVfaWQsCisJLnN0b3Jl ID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc192bWVfcGlwZVtd ID0geworCSZkZXZfYXR0cl92bWVfcGlwZV9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMg c3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF92bWVfcGlwZSA9IHsKKwkubmFtZSA9ICJjZmFl OTIzMi02ZmZjLTQyY2MtYTcwMy05NzkwMDE2OTI1ZjAiLAorCS5hdHRycyA9ICBhdHRyc192bWVf cGlwZSwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmlj ZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwly ZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9URVNUX09BKTsKK30KKwor c3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3Rlc3Rfb2FfaWQgPSB7CisJ LmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3Rl c3Rfb2FfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyc190ZXN0X29hW10gPSB7CisJJmRldl9hdHRyX3Rlc3Rfb2FfaWQuYXR0ciwKKwlOVUxM LAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfdGVzdF9vYSA9IHsK KwkubmFtZSA9ICI4ODJmYTQzMy0xZjRhLTRhNjctYTk2Mi1jNzQxODg4ZmU1ZjUiLAorCS5hdHRy cyA9ICBhdHRyc190ZXN0X29hLAogfTsKIAogaW50CkBAIC0yMTksOSArMjY2OSwxNDUgQEAgaTkx NV9wZXJmX3JlZ2lzdGVyX3N5c2ZzX3NrbGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycm9yX3JlbmRlcl9iYXNpYzsKIAl9CisJaWYg KGdldF9jb21wdXRlX2Jhc2ljX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQly ZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3Jv dXBfY29tcHV0ZV9iYXNpYyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2NvbXB1dGVfYmFz aWM7CisJfQorCWlmIChnZXRfcmVuZGVyX3BpcGVfcHJvZmlsZV9tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJm Lm1ldHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9waXBlX3Byb2ZpbGUpOworCQlpZiAocmV0KQor CQkJZ290byBlcnJvcl9yZW5kZXJfcGlwZV9wcm9maWxlOworCX0KKwlpZiAoZ2V0X21lbW9yeV9y ZWFkc19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3Jl YXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX21lbW9yeV9yZWFk cyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX21lbW9yeV9yZWFkczsKKwl9CisJaWYgKGdl dF9tZW1vcnlfd3JpdGVzX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQg PSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBf bWVtb3J5X3dyaXRlcyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX21lbW9yeV93cml0ZXM7 CisJfQorCWlmIChnZXRfY29tcHV0ZV9leHRlbmRlZF9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4 X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJp Y3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfZXh0ZW5kZWQpOworCQlpZiAocmV0KQorCQkJZ290byBl cnJvcl9jb21wdXRlX2V4dGVuZGVkOworCX0KKwlpZiAoZ2V0X2NvbXB1dGVfbDNfY2FjaGVfbXV4 X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91 cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2wzX2NhY2hlKTsK KwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfY29tcHV0ZV9sM19jYWNoZTsKKwl9CisJaWYgKGdl dF9oZGNfYW5kX3NmX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBz eXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfaGRj X2FuZF9zZik7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2hkY19hbmRfc2Y7CisJfQorCWlm IChnZXRfbDNfMV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lz ZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzEp OworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9sM18xOworCX0KKwlpZiAoZ2V0X2wzXzJfbXV4 X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91 cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9sM18yKTsKKwkJaWYgKHJldCkK KwkJCWdvdG8gZXJyb3JfbDNfMjsKKwl9CisJaWYgKGdldF9sM18zX211eF9jb25maWcoZGV2X3By aXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBl cmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbDNfMyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9y X2wzXzM7CisJfQorCWlmIChnZXRfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZF9tdXhfY29u ZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRl dl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2Jh Y2tlbmQpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9yYXN0ZXJpemVyX2FuZF9waXhlbF9i YWNrZW5kOworCX0KKwlpZiAoZ2V0X3NhbXBsZXJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9s ZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9zYW1wbGVyKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jfc2FtcGxl cjsKKwl9CisJaWYgKGdldF90ZGxfMV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsK KwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwg Jmdyb3VwX3RkbF8xKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfdGRsXzE7CisJfQorCWlm IChnZXRfdGRsXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5 c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF90ZGxf Mik7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX3RkbF8yOworCX0KKwlpZiAoZ2V0X2NvbXB1 dGVfZXh0cmFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2Zz X2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRl X2V4dHJhKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfY29tcHV0ZV9leHRyYTsKKwl9CisJ aWYgKGdldF92bWVfcGlwZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0 ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3Vw X3ZtZV9waXBlKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jfdm1lX3BpcGU7CisJfQorCWlm IChnZXRfdGVzdF9vYV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0g c3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Rl c3Rfb2EpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl90ZXN0X29hOworCX0KIAogCXJldHVy biAwOwogCitlcnJvcl90ZXN0X29hOgorCWlmIChnZXRfdm1lX3BpcGVfbXV4X2NvbmZpZyhkZXZf cHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0 cmljc19rb2JqLCAmZ3JvdXBfdm1lX3BpcGUpOworZXJyb3Jfdm1lX3BpcGU6CisJaWYgKGdldF9j b21wdXRlX2V4dHJhX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVt b3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfZXh0 cmEpOworZXJyb3JfY29tcHV0ZV9leHRyYToKKwlpZiAoZ2V0X3RkbF8yX211eF9jb25maWcoZGV2 X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1l dHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8yKTsKK2Vycm9yX3RkbF8yOgorCWlmIChnZXRfdGRsXzFf bXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2 X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzEpOworZXJyb3JfdGRsXzE6CisJ aWYgKGdldF9zYW1wbGVyX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNf cmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3NhbXBsZXIp OworZXJyb3Jfc2FtcGxlcjoKKwlpZiAoZ2V0X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRf bXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2 X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFj a2VuZCk7CitlcnJvcl9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kOgorCWlmIChnZXRfbDNf M19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChk ZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9sM18zKTsKK2Vycm9yX2wzXzM6CisJ aWYgKGdldF9sM18yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVt b3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzIpOworZXJy b3JfbDNfMjoKKwlpZiAoZ2V0X2wzXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQor CQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBf bDNfMSk7CitlcnJvcl9sM18xOgorCWlmIChnZXRfaGRjX2FuZF9zZl9tdXhfY29uZmlnKGRldl9w cml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRy aWNzX2tvYmosICZncm91cF9oZGNfYW5kX3NmKTsKK2Vycm9yX2hkY19hbmRfc2Y6CisJaWYgKGdl dF9jb21wdXRlX2wzX2NhY2hlX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lz ZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1 dGVfbDNfY2FjaGUpOworZXJyb3JfY29tcHV0ZV9sM19jYWNoZToKKwlpZiAoZ2V0X2NvbXB1dGVf ZXh0ZW5kZWRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVf Z3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9leHRlbmRl ZCk7CitlcnJvcl9jb21wdXRlX2V4dGVuZGVkOgorCWlmIChnZXRfbWVtb3J5X3dyaXRlc19tdXhf Y29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfd3JpdGVzKTsKK2Vycm9yX21lbW9y eV93cml0ZXM6CisJaWYgKGdldF9tZW1vcnlfcmVhZHNfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11 eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2Jq LCAmZ3JvdXBfbWVtb3J5X3JlYWRzKTsKK2Vycm9yX21lbW9yeV9yZWFkczoKKwlpZiAoZ2V0X3Jl bmRlcl9waXBlX3Byb2ZpbGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNm c19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmVuZGVy X3BpcGVfcHJvZmlsZSk7CitlcnJvcl9yZW5kZXJfcGlwZV9wcm9maWxlOgorCWlmIChnZXRfY29t cHV0ZV9iYXNpY19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92 ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2Jhc2lj KTsKK2Vycm9yX2NvbXB1dGVfYmFzaWM6CisJaWYgKGdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZp ZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBl cmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmVuZGVyX2Jhc2ljKTsKIGVycm9yX3JlbmRlcl9iYXNp YzoKIAlyZXR1cm4gcmV0OwogfQpAQCAtMjMzLDQgKzI4MTksMzggQEAgaTkxNV9wZXJmX3VucmVn aXN0ZXJfc3lzZnNfc2tsZ3QzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAog CWlmIChnZXRfcmVuZGVyX2Jhc2ljX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKIAkJ c3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Jl bmRlcl9iYXNpYyk7CisJaWYgKGdldF9jb21wdXRlX2Jhc2ljX211eF9jb25maWcoZGV2X3ByaXYs ICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nf a29iaiwgJmdyb3VwX2NvbXB1dGVfYmFzaWMpOworCWlmIChnZXRfcmVuZGVyX3BpcGVfcHJvZmls ZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChk ZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9yZW5kZXJfcGlwZV9wcm9maWxlKTsK KwlpZiAoZ2V0X21lbW9yeV9yZWFkc19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJ CXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9t ZW1vcnlfcmVhZHMpOworCWlmIChnZXRfbWVtb3J5X3dyaXRlc19tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9tZW1vcnlfd3JpdGVzKTsKKwlpZiAoZ2V0X2NvbXB1dGVfZXh0ZW5kZWRf bXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2 X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9leHRlbmRlZCk7CisJaWYg KGdldF9jb21wdXRlX2wzX2NhY2hlX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJ c3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2Nv bXB1dGVfbDNfY2FjaGUpOworCWlmIChnZXRfaGRjX2FuZF9zZl9tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9oZGNfYW5kX3NmKTsKKwlpZiAoZ2V0X2wzXzFfbXV4X2NvbmZpZyhkZXZf cHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0 cmljc19rb2JqLCAmZ3JvdXBfbDNfMSk7CisJaWYgKGdldF9sM18yX211eF9jb25maWcoZGV2X3By aXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJp Y3Nfa29iaiwgJmdyb3VwX2wzXzIpOworCWlmIChnZXRfbDNfM19tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9sM18zKTsKKwlpZiAoZ2V0X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tl bmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAo ZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxf YmFja2VuZCk7CisJaWYgKGdldF9zYW1wbGVyX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVu KSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdy b3VwX3NhbXBsZXIpOworCWlmIChnZXRfdGRsXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9s ZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAm Z3JvdXBfdGRsXzEpOworCWlmIChnZXRfdGRsXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9s ZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAm Z3JvdXBfdGRsXzIpOworCWlmIChnZXRfY29tcHV0ZV9leHRyYV9tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9jb21wdXRlX2V4dHJhKTsKKwlpZiAoZ2V0X3ZtZV9waXBlX211eF9jb25m aWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5w ZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3ZtZV9waXBlKTsKKwlpZiAoZ2V0X3Rlc3Rfb2FfbXV4 X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3By aXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGVzdF9vYSk7CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9vYV9za2xndDQuYwppbmRleCAxYWY0ZWJlN2Q1MWYuLjlhY2QwMTZjNzA1NyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5jCkBAIC0zMSw5ICszMSwyNiBAQAogCiBl bnVtIG1ldHJpY19zZXRfaWQgewogCU1FVFJJQ19TRVRfSURfUkVOREVSX0JBU0lDID0gMSwKKwlN RVRSSUNfU0VUX0lEX0NPTVBVVEVfQkFTSUMsCisJTUVUUklDX1NFVF9JRF9SRU5ERVJfUElQRV9Q Uk9GSUxFLAorCU1FVFJJQ19TRVRfSURfTUVNT1JZX1JFQURTLAorCU1FVFJJQ19TRVRfSURfTUVN T1JZX1dSSVRFUywKKwlNRVRSSUNfU0VUX0lEX0NPTVBVVEVfRVhURU5ERUQsCisJTUVUUklDX1NF VF9JRF9DT01QVVRFX0wzX0NBQ0hFLAorCU1FVFJJQ19TRVRfSURfSERDX0FORF9TRiwKKwlNRVRS SUNfU0VUX0lEX0wzXzEsCisJTUVUUklDX1NFVF9JRF9MM18yLAorCU1FVFJJQ19TRVRfSURfTDNf MywKKwlNRVRSSUNfU0VUX0lEX1JBU1RFUklaRVJfQU5EX1BJWEVMX0JBQ0tFTkQsCisJTUVUUklD X1NFVF9JRF9TQU1QTEVSLAorCU1FVFJJQ19TRVRfSURfVERMXzEsCisJTUVUUklDX1NFVF9JRF9U RExfMiwKKwlNRVRSSUNfU0VUX0lEX0NPTVBVVEVfRVhUUkEsCisJTUVUUklDX1NFVF9JRF9WTUVf UElQRSwKKwlNRVRSSUNfU0VUX0lEX1RFU1RfT0EsCiB9OwogCi1pbnQgaTkxNV9vYV9uX2J1aWx0 aW5fbWV0cmljX3NldHNfc2tsZ3Q0ID0gMTsKK2ludCBpOTE1X29hX25fYnVpbHRpbl9tZXRyaWNf c2V0c19za2xndDQgPSAxODsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2Nv dW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpY1tdID0gewogCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAw MDAwMCB9LApAQCAtMTU3LDY2ICsxNzQsMjU0MiBAQCBnZXRfcmVuZGVyX2Jhc2ljX211eF9jb25m aWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJldHVybiBtdXhfY29uZmln X3JlbmRlcl9iYXNpYzsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2Nv dW50ZXJfY29uZmlnX2NvbXB1dGVfYmFzaWNbXSA9IHsKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAw MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjcy MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAgfSwKKwl7IF9N TUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9yZWcgZmxleF9ldV9jb25maWdfY29tcHV0ZV9iYXNpY1tdID0geworCXsgX01NSU8oMHhl NDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAwMDAwMyB9LAorCXsg X01NSU8oMHhlNjU4KSwgMHgwMDAwMjAwMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDc3ODAw OCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA4ODA3OCB9LAorCXsgX01NSU8oMHhlNTVjKSwg MHgwMDgwODcwOCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMGEwODkwOCB9LAorfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2NvbXB1dGVfYmFzaWNbXSA9 IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA0ZjAwZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTI0ZjFjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2YzAwZTAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4Mzc5MDY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y5MDAwMDMgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDA0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWE0ZTA4 MjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM0ZTAwMDIgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDY0ZjA5MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg0ZjAwMzIgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGE0ZjE4OTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM0ZjBlMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGU0ZjAwM2MgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA0 ZjBkODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI0ZjAwM2IgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDA2YzAwMDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg2YzAxMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGM2YzAwMGMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU2YzBiMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTg2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWM2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWU2YzAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDAxYjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgxYjgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGMxYjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxYjgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWExYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWMxYzAwMjQgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDY1YjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDg1YjQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGE1YmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM1 YjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU1YjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDA1YjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1YjQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWE1YzYwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM1YzAwMWIg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI1YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTQ1YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA0YzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGE0YzIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM0YzAyMDggfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDAwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGEwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZGEwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGUwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZDIwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZjU0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUw ZjU1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAwZjAxNTUgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDAyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUyY2MwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTYyY2ZiMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTgyYzAwYmUg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDQyY2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5MDAxNTcgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWI5MDAxNTggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5MDAxMDUgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWY5MDAxMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzU5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDBmZmYgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5MDA4MDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4NTU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDA4MjEgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4NDc5MDA4MDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTc5 MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDk5MDA4MDIgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGI5MDAwMDIgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NTk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDA0MjIg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDU1NTUgfSwKK307CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2NvbXB1dGVfYmFzaWNfbXV4X2NvbmZpZyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgIGludCAqbGVuKQoreworCSpsZW4g PSBBUlJBWV9TSVpFKG11eF9jb25maWdfY29tcHV0ZV9iYXNpYyk7CisJcmV0dXJuIG11eF9jb25m aWdfY29tcHV0ZV9iYXNpYzsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBi X2NvdW50ZXJfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGVbXSA9IHsKKwl7IF9NTUlPKDB4Mjcy NCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9N TUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAg fSwKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4 MDAwN2ZmZWEgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDdmZmMgfSwKKwl7IF9NTUlPKDB4 Mjc3OCksIDB4MDAwN2FmZmEgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGY1ZmQgfSwKKwl7 IF9NTUlPKDB4Mjc4MCksIDB4MDAwNzlmZmEgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGYz ZmIgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwN2JmN2EgfSwKKwl7IF9NTUlPKDB4Mjc4Yyks IDB4MDAwMGY3ZTcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwN2ZlZmEgfSwKKwl7IF9NTUlP KDB4Mjc5NCksIDB4MDAwMGY3Y2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwNzdmZmEgfSwK Kwl7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGVmZGYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAw NmZmZmEgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGNmYmYgfSwKKwl7IF9NTUlPKDB4Mjdh OCksIDB4MDAwM2ZmZmEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMDVmN2YgfSwKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfcmVuZGVyX3Bp cGVfcHJvZmlsZVtdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01N SU8oMHhlNTU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAyNTAyNCB9 LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAzNTAzNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgw MDA0NTA0NCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1NTA1NCB9LAorCXsgX01NSU8oMHhl NjVjKSwgMHgwMDA2NTA2NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3Jl ZyBtdXhfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGVbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCks IDB4MGMwZTAwMWYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEwZjAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTAxMTY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4YTAzZTAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MjRjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4 MzAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4NDAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTE4NTAwMTkgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4NjAwMDcgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDE4NzBjNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4ODAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGE0YzAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZDgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDQwZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDIwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDIwZTU0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZTAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgwZjAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDAwZjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAwZjAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGUwZjAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMyYzgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxMDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYx MTAwMTIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYxMzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDE4OTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4OTAxMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDM4OTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4MDgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI4MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDM4MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4YTAwNzUgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWQ4YTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4YTgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWI4YTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM4YTgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MWEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTU4MTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc4MTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGI4MjAwMzAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MjgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ4MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4 MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGQ4MzAwMDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU4MzAwMGMgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDk4MzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4MzgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDc4MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGI4NDA5ODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NDRkODAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTE4NDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4NDgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDk4NTAwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM4NTAw MDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDc4NjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY4NjA0MDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDk4NzAwMzIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE4ODgwNTIgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4ODAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk4 ODQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzEwMDEgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MWQ5MzAwMDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5MzQwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWI5NTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWQ5NTAwOTQg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5NTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDllNTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGJlNTgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDNlNWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU5MmMwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGI5MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGQ5MjQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY5MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTE5MjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5MmMwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDk5MjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDE5ODUwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDc5ODgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDk5 ODEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGI5ODIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGQ5ODIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGY5ODkwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDU5ODIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTM5MDQwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjE5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MjM5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MjU5MDgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4Mjc5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mjk5MDgwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MmI5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MmY5MDQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzE5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTU5MDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTc5MDgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MTk5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDQwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MGMwODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5 MDExMTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5MDA0NDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4NTU5MDExMTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDA0MDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NDc5MDBjMjEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTc5MDE0MTEg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDk5MDAwNDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NGI5MDAwMjQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5MDAwMDEgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDM5MDA4NDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDA0 MTEgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3JlbmRl cl9waXBlX3Byb2ZpbGVfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCQkJICAgaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19y ZW5kZXJfcGlwZV9wcm9maWxlKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19yZW5kZXJfcGlwZV9wcm9m aWxlOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25m aWdfbWVtb3J5X3JlYWRzW10gPSB7CisJeyBfTU1JTygweDI3MmMpLCAweGZmZmZmZmZmIH0sCisJ eyBfTU1JTygweDI3MjgpLCAweGZmZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MjQpLCAweGYwODAw MDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MWMp LCAweGZmZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MTgpLCAweGZmZmZmZmZmIH0sCisJeyBfTU1J TygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0s CisJeyBfTU1JTygweDI3NGMpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NDgpLCAweDg2 NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwMDA2NjY3IH0sCisJeyBfTU1JTygweDI3 NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NWMpLCAweDg2NTQzMjEwIH0sCisJeyBf TU1JTygweDI3NTgpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NTQpLCAweDAwMDA2NDY1 IH0sCisJeyBfTU1JTygweDI3NTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAw eDAwMDdmODFhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygw eDI3NzgpLCAweDAwMDdmODJhIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBmZTAwIH0sCisJ eyBfTU1JTygweDI3ODApLCAweDAwMDdmODcyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDBm ZTAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdmOGJhIH0sCisJeyBfTU1JTygweDI3OGMp LCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDdmODdhIH0sCisJeyBfTU1J TygweDI3OTQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDdmOGVhIH0s CisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAw MDdmOGUyIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3 YTgpLCAweDAwMDdmOGYyIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZTAwIH0sCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX21lbW9yeV9y ZWFkc1tdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhl NTU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAyNTAyNCB9LAorCXsg X01NSU8oMHhlNzU4KSwgMHgwMDAzNTAzNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA0NTA0 NCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1NTA1NCB9LAorCXsgX01NSU8oMHhlNjVjKSwg MHgwMDA2NTA2NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhf Y29uZmlnX21lbW9yeV9yZWFkc1tdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgxMGMwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzgxMDAxYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgz NzkwNjgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzZjkwMDA2NCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMzgxMTMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNTgxMWIxMiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNzgxMDAxYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZjgxMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxOTgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjgxMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxZDgxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYjkzMDA1NSB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwM2U1ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNWU1 YzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwN2U1NDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxMzkwMDE1MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyMTkwMDE1MSB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgyMzkwMDE1MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNTkwMDE1MyB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyNzkwMDE1NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgy OTkwMDE1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyYjkwMDE1NiB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgyZDkwMDE1NyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgyZjkwMDE1ZiB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgzMTkwMDEwNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNTkwMDEw MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNzkwMDEwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgzNTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOTkwODAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYjkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxZDkwODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkw MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg0MTkwMGM2MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg0NTkwMGMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NzkwMGM2MyB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0 OTkwMGM2MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg0YjkwMDA2MyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0MzkwMDAwMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAw MCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfbWVtb3J5 X3JlYWRzX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJ ICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfbWVtb3J5X3Jl YWRzKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19tZW1vcnlfcmVhZHM7Cit9CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19tZW1vcnlfd3JpdGVzW10gPSB7 CisJeyBfTU1JTygweDI3MmMpLCAweGZmZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MjgpLCAweGZm ZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3 MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MWMpLCAweGZmZmZmZmZmIH0sCisJeyBf TU1JTygweDI3MTgpLCAweGZmZmZmZmZmIH0sCisJeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAw IH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NGMpLCAw eDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NDgpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygw eDI3NDQpLCAweDAwMDA2NjY3IH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDI3NWMpLCAweDg2NTQzMjEwIH0sCisJeyBfTU1JTygweDI3NTgpLCAweDg2NTQz MjEwIH0sCisJeyBfTU1JTygweDI3NTQpLCAweDAwMDA2NDY1IH0sCisJeyBfTU1JTygweDI3NTAp LCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAweDAwMDdmODFhIH0sCisJeyBfTU1J TygweDI3NzQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3NzgpLCAweDAwMDdmODJhIH0s CisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3ODApLCAweDAw MDdmODIyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3 ODgpLCAweDAwMDdmOGJhIH0sCisJeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZTAwIH0sCisJeyBf TU1JTygweDI3OTApLCAweDAwMDdmODdhIH0sCisJeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZTAw IH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDdmOGVhIH0sCisJeyBfTU1JTygweDI3OWMpLCAw eDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3YTApLCAweDAwMDdmOGUyIH0sCisJeyBfTU1JTygw eDI3YTQpLCAweDAwMDBmZTAwIH0sCisJeyBfTU1JTygweDI3YTgpLCAweDAwMDdmOGYyIH0sCisJ eyBfTU1JTygweDI3YWMpLCAweDAwMDBmZTAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX21lbW9yeV93cml0ZXNbXSA9IHsKKwl7IF9NTUlP KDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTUwMTQgfSwK Kwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMjUwMjQgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAw MzUwMzQgfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4MDAwNDUwNDQgfSwKKwl7IF9NTUlPKDB4ZTU1 YyksIDB4MDAwNTUwNTQgfSwKKwl7IF9NTUlPKDB4ZTY1YyksIDB4MDAwNjUwNjQgfSwKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ19tZW1vcnlfd3JpdGVz W10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDExODEwYzAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEzODEwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTA2ODAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDNmOTAxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAzODExMzAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA1ODExYjEyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA3 ODEwMDFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFmODEwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE3ODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE5ODEwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFiODEwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkODEwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTMwMDU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDAzZTU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA1ZTVjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA3ZTU0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEzOTAwMTYwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDIxOTAwMTYxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDIzOTAw MTYyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI1OTAwMTYzIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDI3OTAwMTY0IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDI5OTAwMTY1IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDJiOTAwMTY2IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDJkOTAwMTY3IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDJmOTAwMTUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMx OTAwMTA1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE1OTAwMTAzIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDE3OTAwMTAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM1OTAwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDE5OTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFiOTA4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFkOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFmOTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTAwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDUxOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwYzYwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ1OTAw YzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAwYzYzIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDU3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ5OTAwYzYzIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAwMDYzIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQz OTAwMDAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9tZW1vcnlfd3JpdGVzX211eF9jb25maWco c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICBpbnQgKmxlbikKK3sK KwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX21lbW9yeV93cml0ZXMpOworCXJldHVybiBt dXhfY29uZmlnX21lbW9yeV93cml0ZXM7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9v YV9yZWcgYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkW10gPSB7CisJeyBfTU1JTygw eDI3MjQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJ eyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAw MDAwIH0sCisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NzAp LCAweDAwMDdmYzJhIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBiZjAwIH0sCisJeyBfTU1J TygweDI3NzgpLCAweDAwMDdmYzZhIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDBiZjAwIH0s CisJeyBfTU1JTygweDI3ODApLCAweDAwMDdmYzkyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAw MDBiZjAwIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDdmY2EyIH0sCisJeyBfTU1JTygweDI3 OGMpLCAweDAwMDBiZjAwIH0sCisJeyBfTU1JTygweDI3OTApLCAweDAwMDdmYzMyIH0sCisJeyBf TU1JTygweDI3OTQpLCAweDAwMDBiZjAwIH0sCisJeyBfTU1JTygweDI3OTgpLCAweDAwMDdmYzlh IH0sCisJeyBfTU1JTygweDI3OWMpLCAweDAwMDBiZjAwIH0sCisJeyBfTU1JTygweDI3YTApLCAw eDAwMDdmZTZhIH0sCisJeyBfTU1JTygweDI3YTQpLCAweDAwMDBiZjAwIH0sCisJeyBfTU1JTygw eDI3YTgpLCAweDAwMDdmZTdhIH0sCisJeyBfTU1JTygweDI3YWMpLCAweDAwMDBiZjAwIH0sCit9 OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX2NvbXB1 dGVfZXh0ZW5kZWRbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwKKwl7IF9N TUlPKDB4ZTU1OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAwMDIwMDEg fSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDA3NzgwMDggfSwKKwl7IF9NTUlPKDB4ZTQ1YyksIDB4 MDAwODgwNzggfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDA4MDg3MDggfSwKKwl7IF9NTUlPKDB4 ZTY1YyksIDB4MDBhMDg5MDggfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9y ZWcgbXV4X2NvbmZpZ19jb21wdXRlX2V4dGVuZGVkW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAw eDEwNmMwMGUwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MWM4MTYwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE2MWM4MDE1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MWMwMTIwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAwNGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNGU4 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDFhNGVhYWEwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjNGUwMDAyIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAyNGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NGU4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDA2NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4 NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGU4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBlNmMwYjAxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNmMwMjAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDAyNmMwMDBjIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjNmMwMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFlNmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDFhNmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMWJjMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAwMWI4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMWJjMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDAwMWMwMDQxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MWM0 MjAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MWM0NDQzIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBhMWM0NjQ1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMWM3NjQ3IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA0MWM3MzU3IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFjMWMwMDMwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDEwMWMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDFh MWMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEyMWM4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAwNGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGNhYTJhIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjNGMwMmFhIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NGNhMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA2MGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MGRhMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDBhMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMGRhMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMGRh MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBjMGY1NDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMGY1NTE1IH0sCisJeyBfTU1J TygweDk4ODgpLCAweDEwMGYwMTU1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMmM4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBlMmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE2 MmNhYTAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MmMwMGFhIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyMmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MmM4MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA2MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MmM4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDExOTA3ZmZmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxOTAwMDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDQxOTAwMDQwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDQ1OTAwODAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ3OTAw ODQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDU3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDQ5OTAwODQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQz OTAwODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9jb21wdXRlX2V4dGVuZGVkX211eF9jb25m aWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCWludCAqbGVuKQorewor CSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfY29tcHV0ZV9leHRlbmRlZCk7CisJcmV0dXJu IG11eF9jb25maWdfY29tcHV0ZV9leHRlbmRlZDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBp OTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGVbXSA9IHsKKwl7IF9N TUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4MzA4MDAwMDAg fSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4 MzA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4 Mjc3MCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZlZmUgfSwKKwl7 IF9NTUlPKDB4Mjc3OCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZl ZmQgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlPKDB4Mjc5NCks IDB4MDAwMGZiZWYgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwN2ZmZmEgfSwKKwl7IF9NTUlP KDB4Mjc5YyksIDB4MDAwMGZiZGYgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9v YV9yZWcgZmxleF9ldV9jb25maWdfY29tcHV0ZV9sM19jYWNoZVtdID0geworCXsgX01NSU8oMHhl NDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAwMDAwMyB9LAorCXsg X01NSU8oMHhlNjU4KSwgMHgwMDAwMjAwMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDEwMTEw MCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDIwMTIwMCB9LAorCXsgX01NSU8oMHhlNTVjKSwg MHgwMDMwMTMwMCB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDQwMTQwMCB9LAorfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGVb XSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTY2YzA3NjAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTU5MzAwMWUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4M2Y5MDAwMDMgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDA0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU0ZTgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTg0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWE0 ZTgwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM0ZTAwMDIgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDA2YzAwNTEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY2YzUwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDg2YzVjNWQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGU2YzVlNWYg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTA2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTg2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWM2YzAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWU2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAxYjQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDYxYjgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgxYmMw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxYmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTAxYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWExY2UwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWMxYzAwMzAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA0YzgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzJhMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM0 YzAyODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDYwZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgwZGEwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MGUwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZjA0MDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjE1MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTAwZjAxNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAyYzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MGUyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYyYzBhMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTgyYzAwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDM5MzMz MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDU5MzAwMzIgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTE5MzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MWQ5MDAxNTcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDAxNTggfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MzU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTk5 MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTE5MDAzMGYgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NDE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTU5MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMjEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 NDc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTc5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NGI5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTk5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDU1NTUgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgor Z2V0X2NvbXB1dGVfbDNfY2FjaGVfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCisJCQkJaW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZp Z19jb21wdXRlX2wzX2NhY2hlKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19jb21wdXRlX2wzX2NhY2hl OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdf aGRjX2FuZF9zZltdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01N SU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzE0KSwgMHgxMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgw MDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgy NzcwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzc0KSwgMHgwMDAwZmRmZiB9LAorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19oZGNfYW5k X3NmW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1 NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0sCisJeyBf TU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDUxMDUw IH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2NWMpLCAw eDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9j b25maWdfaGRjX2FuZF9zZltdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMDRmMDIzMiB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMjRmNDY0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDZj MDIzMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTgzNDQwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYTRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRlODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMDRmMTg4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjRmMDhiYiB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDRmMDAxYiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NDZjMDEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjZjMDAwYiB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxYTZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFiODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNjFiNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTFjMTgw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDViODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMjViYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDViNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxMjVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDVjODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxNjVjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODVj ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjMDBhMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMDBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBkYTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNDBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjBkMjAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBmNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ZTBmMDA1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJjYzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjJjYzAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwODJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTJjODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZjgyODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjgzMDVjMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwOTgzMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNzgzMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxZDk1MDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzky ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjk4ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgzMTkwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwZmMwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTkwMDAwMSB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDA0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1 MTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMDgwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg0MzkwMDg0MiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAw MCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfaGRjX2Fu ZF9zZl9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAg aW50ICpsZW4pCit7CisJKmxlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19oZGNfYW5kX3NmKTsK KwlyZXR1cm4gbXV4X2NvbmZpZ19oZGNfYW5kX3NmOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfbDNfMVtdID0geworCXsgX01NSU8oMHgyNzQw KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01N SU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHhm MDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDEwMDA3MCB9LAorCXsgX01NSU8oMHgy Nzc0KSwgMHgwMDAwZmZmMSB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAxNDAwMiB9LAorCXsg X01NSU8oMHgyNzdjKSwgMHgwMDAwYzNmZiB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgwMDAxMDAw MiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwYzdmZiB9LAorCXsgX01NSU8oMHgyNzg4KSwg MHgwMDAwNDAwMiB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZDNmZiB9LAorCXsgX01NSU8o MHgyNzkwKSwgMHgwMDEwMDcwMCB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmYxZiB9LAor CXsgX01NSU8oMHgyNzk4KSwgMHgwMDAwMTQwMiB9LAorCXsgX01NSU8oMHgyNzljKSwgMHgwMDAw ZmMzZiB9LAorCXsgX01NSU8oMHgyN2EwKSwgMHgwMDAwMTAwMiB9LAorCXsgX01NSU8oMHgyN2E0 KSwgMHgwMDAwZmM3ZiB9LAorCXsgX01NSU8oMHgyN2E4KSwgMHgwMDAwMDQwMiB9LAorCXsgX01N SU8oMHgyN2FjKSwgMHgwMDAwZmQzZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19sM18xW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAw MDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2 NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBf TU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUy IH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfbDNfMVtdID0geworCXsgX01NSU8oMHg5ODg4 KSwgMHgxMjZjN2I0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjZjMDAyMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYTYwMzQ0NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTYxMzQwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTRlYTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx YzRlMDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjRlODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNDRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRlODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwODRlODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRlODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRmNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwYzZjNTMyNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTZjNTQyNSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMDZjMmEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjZjMjg1YiB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNDZjMDA1YyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDZj MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxZTZjMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTZjMDgwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYzFiYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTFiYzAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDFiODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MjFiYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDFiYzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxYzFjMDAzYyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjFjODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxNDFjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjFjODAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODFjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxYTFjMDgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjViNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxYTVjMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDYwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNDYwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzYx MDA0NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDYxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNjYxMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRjMDJhOCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwODRjYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjMDAyYSB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ZTBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMjBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDBkYTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNjBkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDBmMDE1 NCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBmNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZTBmMDA1NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxODJjMDBhYSB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMjJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJjODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNjJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODJj ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYzJjYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwZmZjMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0OTkwMDQyMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgz MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0YjkwMDAyMSB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0MTkwMDQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MzkwMDQy MSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0NTkwMDA0MCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitn ZXRfbDNfMV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJ ICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfbDNfMSk7CisJ cmV0dXJuIG11eF9jb25maWdfbDNfMTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29h X3JlZyBiX2NvdW50ZXJfY29uZmlnX2wzXzJbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAw MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjcx MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9N TUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAg fSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAxMDAwNzAgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4 MDAwMGZmZjEgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMjgwMDIgfSwKKwl7IF9NTUlPKDB4 Mjc3YyksIDB4MDAwMDg3ZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMjAwMDIgfSwKKwl7 IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDhmZmYgfSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAwMDgw MDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGE3ZmYgfSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfbDNfMltdID0geworCXsgX01NSU8o MHhlNDU4KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAor CXsgX01NSU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAx NTAxNCB9LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVj KSwgMHgwMDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKwor c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX2wzXzJbXSA9IHsKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTI2YzAyZTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQ2YzAw MDEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE2MjM0MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDQ0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0ZTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDg0ZTgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0ZTgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDY0ZjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI2 YzMzMjQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQ2YzM0MjIgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MTA2YzAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWE2YzAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDIxYmMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxYmMwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQxYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTYxYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTgxYzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MWExYzA4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1YjQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MWE1YzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY2MTQw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM2MjAwNDQgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTA2MjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY2MjAwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDg0YzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGE0YzAwMmEgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQw ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGMwZjQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwNTUgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDQyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYyYzgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDgyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MGEyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMyY2MwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTE5MGY4MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKK307CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X2wzXzJfbXV4X2NvbmZpZyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICBpbnQgKmxlbikKK3sKKwkqbGVu ID0gQVJSQVlfU0laRShtdXhfY29uZmlnX2wzXzIpOworCXJldHVybiBtdXhfY29uZmlnX2wzXzI7 Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ19s M18zW10gPSB7CisJeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3 NDQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBf TU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAw IH0sCisJeyBfTU1JTygweDI3MjQpLCAweDAwODAwMDAwIH0sCisJeyBfTU1JTygweDI3NzApLCAw eDAwMTAwMDcwIH0sCisJeyBfTU1JTygweDI3NzQpLCAweDAwMDBmZmYxIH0sCisJeyBfTU1JTygw eDI3NzgpLCAweDAwMDI4MDAyIH0sCisJeyBfTU1JTygweDI3N2MpLCAweDAwMDA4N2ZmIH0sCisJ eyBfTU1JTygweDI3ODApLCAweDAwMDIwMDAyIH0sCisJeyBfTU1JTygweDI3ODQpLCAweDAwMDA4 ZmZmIH0sCisJeyBfTU1JTygweDI3ODgpLCAweDAwMDA4MDAyIH0sCisJeyBfTU1JTygweDI3OGMp LCAweDAwMDBhN2ZmIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZs ZXhfZXVfY29uZmlnX2wzXzNbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAwMDUwMDQgfSwK Kwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMTAwMDMgfSwKKwl7IF9NTUlPKDB4ZTY1OCksIDB4MDAw MTIwMTEgfSwKKwl7IF9NTUlPKDB4ZTc1OCksIDB4MDAwMTUwMTQgfSwKKwl7IF9NTUlPKDB4ZTQ1 YyksIDB4MDAwNTEwNTAgfSwKKwl7IF9NTUlPKDB4ZTU1YyksIDB4MDAwNTMwNTIgfSwKKwl7IF9N TUlPKDB4ZTY1YyksIDB4MDAwNTUwNTQgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9yZWcgbXV4X2NvbmZpZ19sM18zW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDEyNmM0 ZTgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0NmMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBhNjMzNDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0NGU4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA2NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4NGU4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBhNGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBj NGU4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNmMzMzIxIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDA0NmMzNDJmIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwNmMwMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDFhNmMyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyMWJjMDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MWJjMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDA2MWI0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE0MWM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDE2MWM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDE4MWM4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDFhMWMxODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NjA0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjNjMwMDQ0IH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEwNjMwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2NjMwMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA4NGM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGMwMGFhIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 MGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MGQyMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDBjMGY0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMGYwMDU1IH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA0MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmM4MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA4MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBhMmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMmM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDExOTBmODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDUxOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQzOTAw ODQyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDQ1OTAwMDAyIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCit9OworCitz dGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnICoKK2dldF9sM18zX211eF9jb25maWcoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgaW50ICpsZW4pCit7CisJKmxl biA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19sM18zKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ19sM18z OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdf cmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZFtdID0geworCXsgX01NSU8oMHgyNzQwKSwgMHgw MDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAorCXsgX01NSU8oMHgy NzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHgzMDgwMDAwMCB9LAorCXsg X01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0KSwgMHgwMDgwMDAw MCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzc0KSwg MHgwMDAwZWZmZiB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwNjAwMCB9LAorCXsgX01NSU8o MHgyNzdjKSwgMHgwMDAwZjNmZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29h X3JlZyBmbGV4X2V1X2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kW10gPSB7CisJ eyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJeyBfTU1JTygweGU1NTgpLCAweDAwMDEw MDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEyMDExIH0sCisJeyBfTU1JTygweGU3NTgp LCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMpLCAweDAwMDUxMDUwIH0sCisJeyBfTU1J TygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1JTygweGU2NWMpLCAweDAwMDU1MDU0IH0s Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfcmFzdGVy aXplcl9hbmRfcGl4ZWxfYmFja2VuZFtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMDJmMzgw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDRkMDUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxMjBkMDNjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDBkMDNjZiB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzBmMDAwNCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRlNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwNDJmMDQ4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODJm MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYTRjMDA5MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjRkMDAyNyB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMDRkMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBkMGQ0MCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBkODAzZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NDBkODAyMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDBkMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNjBkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBmMDAxMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMDBmMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmMDA1 MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwYzJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTkwZmMwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgzNzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMTQwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0Mzkw MTQ4NSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg0NTkwMDAwMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorfTsKKwor c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfcmFzdGVyaXplcl9hbmRfcGl4 ZWxfYmFja2VuZF9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK KwkJCQkJICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfcmFz dGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCk7CisJcmV0dXJuIG11eF9jb25maWdfcmFzdGVyaXpl cl9hbmRfcGl4ZWxfYmFja2VuZDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3Jl ZyBiX2NvdW50ZXJfY29uZmlnX3NhbXBsZXJbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAw MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjcx MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4NzA4MDAwMDAgfSwKKwl7IF9N TUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4MDA4MDAwMDAg fSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMGMwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4 MDAwMGU3ZmYgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDMwMDAgfSwKKwl7IF9NTUlPKDB4 Mjc3YyksIDB4MDAwMGY5ZmYgfSwKKwl7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDBjMDAgfSwKKwl7 IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZlN2YgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfc2FtcGxlcltdID0geworCXsgX01NSU8oMHhlNDU4 KSwgMHgwMDAwNTAwNCB9LAorCXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01N SU8oMHhlNjU4KSwgMHgwMDAxMjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9 LAorCXsgX01NSU8oMHhlNDVjKSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgw MDA1MzA1MiB9LAorCXsgX01NSU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3NhbXBsZXJbXSA9IHsKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTQxNTJjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYxNTAwMDUg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIxNjAwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTQzNTJjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzNTAwMDUgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MTIzNjAwYTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTQ1NTJjMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MTY1NTAwMDUgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI1NjAw YTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYyZjYwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDIyZjIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGM0YzAwNTAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGE0YzAwMTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAw ZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDQwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDIwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTAwZjAzNTAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMwZmIwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwZGEgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTgyYzAwMjggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEyYzgwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDIyZGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQyZDQwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGMxMzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUxMzIw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxM2MwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWMxNDAwMTggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGMxNTcwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGUxNTAwNzggfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTAxNTAwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxNjIxODAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIx NjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxNzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDIzM2EwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzMzMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MTQzNDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTYzNDgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIzNTc4NzAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTAzNTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzNjAwNDMgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDIzNjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQzNzEwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MGU1MzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1Mzgw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1MzMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MWM1NDAwMjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTI1NDgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGU1NTcwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1NTc4MDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MTA1NTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDY1 NjAwNDMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1NjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDY1NzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MGZmODAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4NTc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDk5MDAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MzM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NGI5MDAwNjAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NTk5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDE5MDBjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDM5MDA4 NDIgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4NDU5MDAwNjAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgor Z2V0X3NhbXBsZXJfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CisJCSAgICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Nh bXBsZXIpOworCXJldHVybiBtdXhfY29uZmlnX3NhbXBsZXI7Cit9CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZGxfMVtdID0geworCXsgX01NSU8o MHgyNzQwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAor CXsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzE0KSwgMHhmMDgw MDAwMCB9LAorCXsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzI0 KSwgMHgzMDgwMDAwMCB9LAorCXsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01N SU8oMHgyNzc0KSwgMHgwMDAwN2ZmZiB9LAorCXsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMCB9 LAorCXsgX01NSU8oMHgyNzdjKSwgMHgwMDAwOWZmZiB9LAorCXsgX01NSU8oMHgyNzgwKSwgMHgw MDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzg0KSwgMHgwMDAwZWZmZiB9LAorCXsgX01NSU8oMHgy Nzg4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZjNmZiB9LAorCXsg X01NSU8oMHgyNzkwKSwgMHgwMDAwMDAwMiB9LAorCXsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmRm ZiB9LAorCXsgX01NSU8oMHgyNzk4KSwgMHgwMDAwMDAwMCB9LAorCXsgX01NSU8oMHgyNzljKSwg MHgwMDAwZmU3ZiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4 X2V1X2NvbmZpZ190ZGxfMVtdID0geworCXsgX01NSU8oMHhlNDU4KSwgMHgwMDAwNTAwNCB9LAor CXsgX01NSU8oMHhlNTU4KSwgMHgwMDAxMDAwMyB9LAorCXsgX01NSU8oMHhlNjU4KSwgMHgwMDAx MjAxMSB9LAorCXsgX01NSU8oMHhlNzU4KSwgMHgwMDAxNTAxNCB9LAorCXsgX01NSU8oMHhlNDVj KSwgMHgwMDA1MTA1MCB9LAorCXsgX01NSU8oMHhlNTVjKSwgMHgwMDA1MzA1MiB9LAorCXsgX01N SU8oMHhlNjVjKSwgMHgwMDA1NTA1NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X29hX3JlZyBtdXhfY29uZmlnX3RkbF8xW10gPSB7CisJeyBfTU1JTygweDk4ODgpLCAweDEyMTIw MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEyMzIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDEyNTIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMmY4MDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAyMmYzMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhNGMwMDE1IH0s CisJeyBfTU1JTygweDk4ODgpLCAweDBjMGQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBl MGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMGQ4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyMGRhMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MGRhMDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDA2MGQyMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDEwMGYwM2Ew IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMGZmMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBlMGYwMDk1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmM4MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA4MmM4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBhMmM4MDAwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBjMmQ4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMmQ0 MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MmQ0MDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDAyMTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTBjMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDAyMTE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTFjMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAyMTIxODgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0 MTIxOWI1IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMTIwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAyMTM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA0MTM1MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBjMzA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzA0MDAw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBjMzE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzE0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDA2MzE0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBjMzIxYTgwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDBlMzIwMDMzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDA2MzIw MDMxIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwMzIwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDBjMzM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlMzMxMDAwIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDA2MzMxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTA4MDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDAwNTA4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAy NTA0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDBlNTE4MDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDAwNTE4MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTE0MDAwIH0sCisJeyBf TU1JTygweDk4ODgpLCAweDBlNTIxODgwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTIxYTgw IH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAyNTIwMDMzIH0sCisJeyBfTU1JTygweDk4ODgpLCAw eDBlNTM0MDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDAwNTM0MDAwIH0sCisJeyBfTU1JTygw eDk4ODgpLCAweDAyNTMxMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDExOTBmZjgwIH0sCisJ eyBfTU1JTygweDk4ODgpLCAweDU3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQ5OTAw ODAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgp LCAweDMzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDRiOTAwMDYyIH0sCisJeyBfTU1J TygweDk4ODgpLCAweDU5OTAwMDAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUxOTAwMDAwIH0s CisJeyBfTU1JTygweDk4ODgpLCAweDQxOTAwYzAwIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDQz OTAwMDAzIH0sCisJeyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCisJeyBfTU1JTygweDk4 ODgpLCAweDQ1OTAwMDQwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVn ICoKK2dldF90ZGxfMV9tdXhfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKKwkJICAgICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rk bF8xKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ190ZGxfMTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3RkbF8yW10gPSB7CisJeyBfTU1JTygweDI3 NDApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCisJeyBf TU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MTQpLCAweDAwODAwMDAw IH0sCisJeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCisJeyBfTU1JTygweDI3MjQpLCAw eDAwODAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhf ZXVfY29uZmlnX3RkbF8yW10gPSB7CisJeyBfTU1JTygweGU0NTgpLCAweDAwMDA1MDA0IH0sCisJ eyBfTU1JTygweGU1NTgpLCAweDAwMDEwMDAzIH0sCisJeyBfTU1JTygweGU2NTgpLCAweDAwMDEy MDExIH0sCisJeyBfTU1JTygweGU3NTgpLCAweDAwMDE1MDE0IH0sCisJeyBfTU1JTygweGU0NWMp LCAweDAwMDUxMDUwIH0sCisJeyBfTU1JTygweGU1NWMpLCAweDAwMDUzMDUyIH0sCisJeyBfTU1J TygweGU2NWMpLCAweDAwMDU1MDU0IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf b2FfcmVnIG11eF9jb25maWdfdGRsXzJbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIxMjRk NjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTIzMjJlNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MTI1MjRkNjAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDIyZjMwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MGE0YzAwMTQgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAwZDgwMDAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDIwZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQw ZGEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYwZDIwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MGMwZmUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGUwZjAwOTcgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDgyYzgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MGEyYzgwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAyZDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MDYyZDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxMGMwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4MDQxMWMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxMjFmYjcgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4MDAxMjAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDQxMzUw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzMDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MDYzMDQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzMTgwMDAgfSwKKwl7IF9NTUlP KDB4OTg4OCksIDB4MDYzMTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAzMjFiODAgfSwK Kwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzMjAwM2YgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDAz MzQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDYzMzEwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDI1MGMwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1MWMwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MDI1MjFmYjcgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDA1MjAwMDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDI1MzUwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MTE5MGZjMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4NTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDE5MDA4MDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDM5MDAwNjMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAw MDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwNDAgfSwKKwl7IF9NTUlPKDB4OTg4OCks IDB4MzM5MDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgor Z2V0X3RkbF8yX211eF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAor CQkgICAgIGludCAqbGVuKQoreworCSpsZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGRsXzIp OworCXJldHVybiBtdXhfY29uZmlnX3RkbF8yOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5 MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9leHRyYVtdID0geworfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ19jb21wdXRlX2V4dHJh W10gPSB7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdf Y29tcHV0ZV9leHRyYVtdID0geworCXsgX01NSU8oMHg5ODg4KSwgMHgxMjEyMDNlMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxMjMyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjUyMDNl MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjkyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxMmIyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMmQyMDNlMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxMzEyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMzMyMDNlMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxMzUyMDNlMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTRl ZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYzRlMDAwMyB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMjRlYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDRlYzAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNjRlYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJmNDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzRjMDJhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ODRjYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjMDA0MiB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYzBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBkYTAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwMDBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjBkYTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNjBkMjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDBmMDE1MCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwYzBmNTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmMDA2ZCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgxODJjMDBhOCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjJj ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwNjJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzJjODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwNDJkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjEwNDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjExNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NjEyMDAzMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDEyMDAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwNjEzMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDMwODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNDMxODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDMyMTk4 MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDMyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNDMzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDUwNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNDUxNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDUyMDAzMyB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMDUyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDUz MTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYWNlZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgxY2NlMDAwMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGFmODAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwY2NjMDJhMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYWNjMDAwMSB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzhkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw ZThkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDhkODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMjhkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMDhmMDE1MCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYzhmYjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZThmMDAw MSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxOGFjMDBhOCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwNmFjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmFkNDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMjkwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjkxODAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMjkyMTk4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDky MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjkzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMmIwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmIxNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwMmIyMDAzMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGIyMDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMmIzMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MGQwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGQxODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwMGQyMTk4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMGQzNDAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwNzJmODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDRjMDEw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwZjBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMTBmMDFiMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxOTJjMDA4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjJkNDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwZjEwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjEx ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjEyMTk4MCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMTEyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjEzNDAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwZjMwNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjMxNDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjMyMDAzMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw MTMyMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZjMzMTAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwZDUwODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDUxODAwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwZDUyMTk4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMTUyMDAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZDUzNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxMTkwZmY4MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0OTkwMGMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0Yjkw MDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1OTkwMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHg1MTkwMTEwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0MTkwMTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHg0MzkwMTQyMyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMzMzMSB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDA0NCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X29hX3JlZyAqCitnZXRfY29tcHV0ZV9leHRyYV9tdXhfY29uZmlnKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgaW50ICpsZW4pCit7CisJKmxlbiA9 IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19jb21wdXRlX2V4dHJhKTsKKwlyZXR1cm4gbXV4X2NvbmZp Z19jb21wdXRlX2V4dHJhOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJf Y291bnRlcl9jb25maWdfdm1lX3BpcGVbXSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAw MDAgfSwKKwl7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCks IDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlP KDB4MjcyNCksIDB4MzA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAxMDAwMzAgfSwK Kwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZjkgfSwKKwl7IF9NTUlPKDB4Mjc3OCksIDB4MDAw MDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMGZmZmMgfSwKKwl7IF9NTUlPKDB4Mjc4 MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZmZjMgfSwKKwl7IF9N TUlPKDB4Mjc4OCksIDB4MDAxMDAxODAgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmY2Yg fSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc5NCksIDB4 MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAwMDAwMDIgfSwKKwl7IF9NTUlPKDB4 Mjc5YyksIDB4MDAwMGZmM2YgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9y ZWcgZmxleF9ldV9jb25maWdfdm1lX3BpcGVbXSA9IHsKKwl7IF9NTUlPKDB4ZTQ1OCksIDB4MDAw MDUwMDQgfSwKKwl7IF9NTUlPKDB4ZTU1OCksIDB4MDAwMDgwMDMgfSwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ192bWVfcGlwZVtdID0geworCXsgX01N SU8oMHg5ODg4KSwgMHgxNDFhNTgwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjFhMDBjMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjE4MDI0MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx NDE4MDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNDlhNTgwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxNjlhMDBjMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxMjk4MDI0MCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxNDk4MDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxYTRlM2Zj MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDJmMTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMjJmODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDJmMzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwMDRjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTRjOTUwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYzRjMDAyYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDBk MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjBkODAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwODBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTBkYTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYzBkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzBmMDQwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZTBmNTUwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgx MDBmMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDJjODAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwZTJjODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNjJjYWEwMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgxODJjMDAwYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDE5MzAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODFhMjhjMSB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgwMDFhMDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDEzMzAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgwNjEzYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODEzZjAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwMDE3MjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjE3 ODAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODE3YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwMDE4MDAzNyB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjE4MDk0MCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwODE4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMjE4MDAwMCB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNDE4MzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NGFmYzAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNmFmMzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgwYWNjNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwY2NjMDAxNSB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHgwYThkYTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYzhkYTAw MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwZThmNDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHgxMDhmMDAxNSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgxNmFjYTAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHgxOGFjMDAwYSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjk5MzAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgwYzlhMjhjMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwMDlh MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTkzZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4 KSwgMHgwYzkzZjAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTk3YTAwMCB9LAorCXsgX01N SU8oMHg5ODg4KSwgMHgwYzk3YTAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwYTk4MDk3NyB9 LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwODk4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgw NDk4MDAwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgwNjk4MzAwMCB9LAorCXsgX01NSU8oMHg5 ODg4KSwgMHgxMTkwMDBmZiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1MTkwMDAxMCB9LAorCXsg X01NSU8oMHg5ODg4KSwgMHg0MTkwMDA2MCB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NTkwMDEx MSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMGMwMCB9LAorCXsgX01NSU8oMHg5ODg4KSwg MHg0NzkwMDgyMSB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHg1NzkwMDAwMCB9LAorCXsgX01NSU8o MHg5ODg4KSwgMHg0OTkwMDAwMiB9LAorCXsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAor CXsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyAqCitnZXRfdm1lX3BpcGVfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCisJCQlpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRSht dXhfY29uZmlnX3ZtZV9waXBlKTsKKwlyZXR1cm4gbXV4X2NvbmZpZ192bWVfcGlwZTsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2Fb XSA9IHsKKwl7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc0NCks IDB4MDA4MDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKKwl7IF9NTUlP KDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwK Kwl7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3MCksIDB4MDAw MDAwMDQgfSwKKwl7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKKwl7IF9NTUlPKDB4Mjc3 OCksIDB4MDAwMDAwMDMgfSwKKwl7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKKwl7IF9N TUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKKwl7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAg fSwKKwl7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4Mjc4YyksIDB4 MDAwMGZmZjcgfSwKKwl7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKKwl7IF9NTUlPKDB4 Mjc5NCksIDB4MDAwMGZmY2YgfSwKKwl7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKKwl7 IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKKwl7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAw YzIgfSwKKwl7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKKwl7IF9NTUlPKDB4MjdhOCks IDB4MDAxMDAwMDEgfSwKKwl7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKK307CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0g eworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rf b2FbXSA9IHsKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4 OCksIDB4MDc4MTAwMTMgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwKKwl7IF9N TUlPKDB4OTg4OCksIDB4MWQ4MTAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwNDAg fSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MDdlNTQwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4 MWY5MDgwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAwMDAgfSwKKwl7IF9NTUlPKDB4 OTg4OCksIDB4Mzc5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKKwl7 IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKKwl7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAw MDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKgorZ2V0X3Rlc3Rf b2FfbXV4X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICAg ICBpbnQgKmxlbikKK3sKKwkqbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwor CXJldHVybiBtdXhfY29uZmlnX3Rlc3Rfb2E7Cit9CisKIGludCBpOTE1X29hX3NlbGVjdF9tZXRy aWNfc2V0X3NrbGd0NChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JZGV2 X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPSBOVUxMOwotCWRldl9wcml2LT5wZXJmLm9hLm11eF9y ZWdzX2xlbiA9IDA7Ci0JZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPSBOVUxMOwot CWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9IDA7Ci0JZGV2X3ByaXYtPnBl cmYub2EuZmxleF9yZWdzID0gTlVMTDsKLQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVu ID0gMDsKKwlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9IE5VTEw7CisJZGV2X3ByaXYtPnBl cmYub2EubXV4X3JlZ3NfbGVuID0gMDsKKwlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVn cyA9IE5VTEw7CisJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0gMDsKKwlk ZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPSBOVUxMOworCWRldl9wcml2LT5wZXJmLm9hLmZs ZXhfcmVnc19sZW4gPSAwOworCisJc3dpdGNoIChkZXZfcHJpdi0+cGVyZi5vYS5tZXRyaWNzX3Nl dCkgeworCWNhc2UgTUVUUklDX1NFVF9JRF9SRU5ERVJfQkFTSUM6CisJCWRldl9wcml2LT5wZXJm Lm9hLm11eF9yZWdzID0KKwkJCWdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwK KwkJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZf cHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFi bGUgTVVYIGNvbmZpZyBmb3IgXCJSRU5ERVJfQkFTSUNcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJ LyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcwor CQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFj ZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJ CXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3Jl Z3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWM7CisJCWRldl9wcml2LT5wZXJm Lm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdf cmVuZGVyX2Jhc2ljKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxl eF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljOworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3Nf bGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKworCQly ZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfQ09NUFVURV9CQVNJQzoKKwkJZGV2X3ByaXYt PnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2NvbXB1dGVfYmFzaWNfbXV4X2NvbmZpZyhkZXZf cHJpdiwKKwkJCQkJCSAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlm ICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5v IHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiQ09NUFVURV9CQVNJQ1wiIG1ldHJpYyBzZXRcbiIp OworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tl ZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8g dXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJ CSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2Nv dW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX2NvbXB1dGVfYmFzaWM7CisJCWRldl9w cml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRl cl9jb25maWdfY29tcHV0ZV9iYXNpYyk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdz ID0KKwkJCWZsZXhfZXVfY29uZmlnX2NvbXB1dGVfYmFzaWM7CisJCWRldl9wcml2LT5wZXJmLm9h LmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19jb21wdXRlX2Jh c2ljKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfUkVOREVSX1BJUEVfUFJP RklMRToKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X3JlbmRlcl9waXBl X3Byb2ZpbGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCQkgICAmZGV2X3ByaXYtPnBlcmYu b2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgewor CQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJSRU5ERVJf UElQRV9QUk9GSUxFXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpf cmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3Vs ZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91 bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJ fQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9j b25maWdfcmVuZGVyX3BpcGVfcHJvZmlsZTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVy X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfcGlwZV9w cm9maWxlKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9j b25maWdfcmVuZGVyX3BpcGVfcHJvZmlsZTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdz X2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3JlbmRlcl9waXBlX3Byb2ZpbGUp OworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9NRU1PUllfUkVBRFM6CisJCWRl dl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9tZW1vcnlfcmVhZHNfbXV4X2NvbmZp ZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsK KwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZF UigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJNRU1PUllfUkVBRFNcIiBtZXRyaWMgc2V0 XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNo ZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2Vk IHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVk CisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2Eu Yl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19tZW1vcnlfcmVhZHM7CisJCWRl dl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfbWVtb3J5X3JlYWRzKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3Jl Z3MgPQorCQkJZmxleF9ldV9jb25maWdfbWVtb3J5X3JlYWRzOworCQlkZXZfcHJpdi0+cGVyZi5v YS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfbWVtb3J5X3Jl YWRzKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfTUVNT1JZX1dSSVRFUzoK KwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X21lbW9yeV93cml0ZXNfbXV4 X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdz X2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJV R19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiTUVNT1JZX1dSSVRFU1wiIG1l dHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFs cmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFk dmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiBy ZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+ cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX21lbW9yeV93cml0 ZXM7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9T SVpFKGJfY291bnRlcl9jb25maWdfbWVtb3J5X3dyaXRlcyk7CisKKwkJZGV2X3ByaXYtPnBlcmYu b2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX21lbW9yeV93cml0ZXM7CisJCWRldl9w cml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZp Z19tZW1vcnlfd3JpdGVzKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfQ09N UFVURV9FWFRFTkRFRDoKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2Nv bXB1dGVfZXh0ZW5kZWRfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCQkmZGV2X3ByaXYtPnBl cmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykg eworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJDT01Q VVRFX0VYVEVOREVEXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpf cmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3Vs ZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91 bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJ fQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9j b25maWdfY29tcHV0ZV9leHRlbmRlZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3Jl Z3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2V4dGVuZGVk KTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdf Y29tcHV0ZV9leHRlbmRlZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJ CQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX2NvbXB1dGVfZXh0ZW5kZWQpOworCisJCXJldHVy biAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9DT01QVVRFX0wzX0NBQ0hFOgorCQlkZXZfcHJpdi0+ cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfY29tcHV0ZV9sM19jYWNoZV9tdXhfY29uZmlnKGRl dl9wcml2LAorCQkJCQkJCSZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAo IWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBz dWl0YWJsZSBNVVggY29uZmlnIGZvciBcIkNPTVBVVEVfTDNfQ0FDSEVcIiBtZXRyaWMgc2V0XG4i KTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNr ZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRv IHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJ CQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9j b3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlOworCQlk ZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShiX2Nv dW50ZXJfY29uZmlnX2NvbXB1dGVfbDNfY2FjaGUpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZs ZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19jb21wdXRlX2wzX2NhY2hlOworCQlkZXZfcHJp di0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdf Y29tcHV0ZV9sM19jYWNoZSk7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX0hE Q19BTkRfU0Y6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9oZGNfYW5k X3NmX211eF9jb25maWcoZGV2X3ByaXYsCisJCQkJCQkgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhf cmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1f REVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIkhEQ19BTkRfU0ZcIiBt ZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBh bHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBh ZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4g cmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYt PnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19oZGNfYW5kX3Nm OworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlfU0la RShiX2NvdW50ZXJfY29uZmlnX2hkY19hbmRfc2YpOworCisJCWRldl9wcml2LT5wZXJmLm9hLmZs ZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19oZGNfYW5kX3NmOworCQlkZXZfcHJpdi0+cGVy Zi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfaGRjX2Fu ZF9zZik7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX0wzXzE6CisJCWRldl9w cml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF9sM18xX211eF9jb25maWcoZGV2X3ByaXYs CisJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYgKCFkZXZf cHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3VpdGFi bGUgTVVYIGNvbmZpZyBmb3IgXCJMM18xXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZB TCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFu ZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJ CQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4g LUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJ CWJfY291bnRlcl9jb25maWdfbDNfMTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3Jl Z3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19sM18xKTsKKworCQlkZXZf cHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9ldV9jb25maWdfbDNfMTsKKwkJZGV2 X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29u ZmlnX2wzXzEpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9MM18yOgorCQlk ZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfbDNfMl9tdXhfY29uZmlnKGRldl9w cml2LAorCQkJCQkgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICgh ZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1 aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiTDNfMlwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBF SU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkg KiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFu ZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0 dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9 CisJCQliX2NvdW50ZXJfY29uZmlnX2wzXzI7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRl cl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfbDNfMik7CisKKwkJ ZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2wzXzI7CisJ CWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1 X2NvbmZpZ19sM18yKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfTDNfMzoK KwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2wzXzNfbXV4X2NvbmZpZyhk ZXZfcHJpdiwKKwkJCQkJICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlp ZiAoIWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJO byBzdWl0YWJsZSBNVVggY29uZmlnIGZvciBcIkwzXzNcIiBtZXRyaWMgc2V0XG4iKTsKKworCQkJ LyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcwor CQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFj ZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJ CXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3Jl Z3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ19sM18zOworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2Nv dW50ZXJfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX2wzXzMpOwor CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ19sM18z OworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxl eF9ldV9jb25maWdfbDNfMyk7CisKKwkJcmV0dXJuIDA7CisJY2FzZSBNRVRSSUNfU0VUX0lEX1JB U1RFUklaRVJfQU5EX1BJWEVMX0JBQ0tFTkQ6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdz ID0KKwkJCWdldF9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kX211eF9jb25maWcoZGV2X3By aXYsCisJCQkJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKKwkJaWYg KCFkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgeworCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8g c3VpdGFibGUgTVVYIGNvbmZpZyBmb3IgXCJSQVNURVJJWkVSX0FORF9QSVhFTF9CQUNLRU5EXCIg bWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMg YWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4g YWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVu IHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2 LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRlcl9jb25maWdfcmFzdGVyaXpl cl9hbmRfcGl4ZWxfYmFja2VuZDsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3Nf bGVuID0KKwkJCUFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yYXN0ZXJpemVyX2FuZF9waXhl bF9iYWNrZW5kKTsKKworCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQorCQkJZmxleF9l dV9jb25maWdfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZDsKKwkJZGV2X3ByaXYtPnBlcmYu b2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Jhc3Rlcml6 ZXJfYW5kX3BpeGVsX2JhY2tlbmQpOworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9J RF9TQU1QTEVSOgorCQlkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfc2FtcGxl cl9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11 eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURS TV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiU0FNUExFUlwiIG1l dHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFs cmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFk dmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiBy ZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+ cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmlnX3NhbXBsZXI7CisJ CWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJf Y291bnRlcl9jb25maWdfc2FtcGxlcik7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdz ID0KKwkJCWZsZXhfZXVfY29uZmlnX3NhbXBsZXI7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhf cmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19zYW1wbGVyKTsKKworCQly ZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfVERMXzE6CisJCWRldl9wcml2LT5wZXJmLm9h Lm11eF9yZWdzID0KKwkJCWdldF90ZGxfMV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkgICAg ICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRldl9wcml2LT5wZXJm Lm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0YWJsZSBNVVggY29u ZmlnIGZvciBcIlRETF8xXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJTlZBTCBiZWNhdXNl ICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAqIGFuZCBzbyBpdCB3 b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5kCisJCQkgKiBzbyBz aG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1cm4gLUVJTlZBTDsK KwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KKwkJCWJfY291bnRl cl9jb25maWdfdGRsXzE7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9 CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGRsXzEpOworCisJCWRldl9wcml2LT5w ZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ190ZGxfMTsKKwkJZGV2X3ByaXYt PnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rk bF8xKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfVERMXzI6CisJCWRldl9w cml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdldF90ZGxfMl9tdXhfY29uZmlnKGRldl9wcml2 LAorCQkJCQkgICAgICZkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW4pOworCQlpZiAoIWRl dl9wcml2LT5wZXJmLm9hLm11eF9yZWdzKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJObyBzdWl0 YWJsZSBNVVggY29uZmlnIGZvciBcIlRETF8yXCIgbWV0cmljIHNldFxuIik7CisKKwkJCS8qIEVJ TlZBTCBiZWNhdXNlICpfcmVnaXN0ZXJfc3lzZnMgYWxyZWFkeSBjaGVja2VkIHRoaXMKKwkJCSAq IGFuZCBzbyBpdCB3b3VsZG4ndCBoYXZlIGJlZW4gYWR2ZXJ0aXNlZCB0byB1c2Vyc3BhY2UgYW5k CisJCQkgKiBzbyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJlcXVlc3RlZAorCQkJICovCisJCQlyZXR1 cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0K KwkJCWJfY291bnRlcl9jb25maWdfdGRsXzI7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRl cl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGRsXzIpOworCisJ CWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVncyA9CisJCQlmbGV4X2V1X2NvbmZpZ190ZGxfMjsK KwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGZsZXhf ZXVfY29uZmlnX3RkbF8yKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJQ19TRVRfSURfQ09N UFVURV9FWFRSQToKKwkJZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MgPQorCQkJZ2V0X2NvbXB1 dGVfZXh0cmFfbXV4X2NvbmZpZyhkZXZfcHJpdiwKKwkJCQkJCSAgICAgJmRldl9wcml2LT5wZXJm Lm9hLm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsK KwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiQ09NUFVU RV9FWFRSQVwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkvKiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lz dGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJCQkgKiBhbmQgc28gaXQgd291bGRuJ3Qg aGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNlIGFuZAorCQkJICogc28gc2hvdWxkbid0 IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwor CQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVncyA9CisJCQliX2NvdW50ZXJfY29uZmln X2NvbXB1dGVfZXh0cmE7CisJCWRldl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzX2xlbiA9 CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfY29tcHV0ZV9leHRyYSk7CisKKwkJZGV2 X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX2NvbXB1dGVfZXh0 cmE7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlfU0laRShm bGV4X2V1X2NvbmZpZ19jb21wdXRlX2V4dHJhKTsKKworCQlyZXR1cm4gMDsKKwljYXNlIE1FVFJJ Q19TRVRfSURfVk1FX1BJUEU6CisJCWRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzID0KKwkJCWdl dF92bWVfcGlwZV9tdXhfY29uZmlnKGRldl9wcml2LAorCQkJCQkJJmRldl9wcml2LT5wZXJmLm9h Lm11eF9yZWdzX2xlbik7CisJCWlmICghZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJ CURSTV9ERUJVR19EUklWRVIoIk5vIHN1aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiVk1FX1BJUEVc IiBtZXRyaWMgc2V0XG4iKTsKKworCQkJLyogRUlOVkFMIGJlY2F1c2UgKl9yZWdpc3Rlcl9zeXNm cyBhbHJlYWR5IGNoZWNrZWQgdGhpcworCQkJICogYW5kIHNvIGl0IHdvdWxkbid0IGhhdmUgYmVl biBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKKwkJCSAqIHNvIHNob3VsZG4ndCBoYXZlIGJl ZW4gcmVxdWVzdGVkCisJCQkgKi8KKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2X3By aXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3MgPQorCQkJYl9jb3VudGVyX2NvbmZpZ192bWVfcGlw ZTsKKwkJZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVyX3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJ WkUoYl9jb3VudGVyX2NvbmZpZ192bWVfcGlwZSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxl eF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmlnX3ZtZV9waXBlOworCQlkZXZfcHJpdi0+cGVyZi5v YS5mbGV4X3JlZ3NfbGVuID0KKwkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdm1lX3BpcGUp OworCisJCXJldHVybiAwOworCWNhc2UgTUVUUklDX1NFVF9JRF9URVNUX09BOgorCQlkZXZfcHJp di0+cGVyZi5vYS5tdXhfcmVncyA9CisJCQlnZXRfdGVzdF9vYV9tdXhfY29uZmlnKGRldl9wcml2 LAorCQkJCQkgICAgICAgJmRldl9wcml2LT5wZXJmLm9hLm11eF9yZWdzX2xlbik7CisJCWlmICgh ZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3MpIHsKKwkJCURSTV9ERUJVR19EUklWRVIoIk5vIHN1 aXRhYmxlIE1VWCBjb25maWcgZm9yIFwiVEVTVF9PQVwiIG1ldHJpYyBzZXRcbiIpOworCisJCQkv KiBFSU5WQUwgYmVjYXVzZSAqX3JlZ2lzdGVyX3N5c2ZzIGFscmVhZHkgY2hlY2tlZCB0aGlzCisJ CQkgKiBhbmQgc28gaXQgd291bGRuJ3QgaGF2ZSBiZWVuIGFkdmVydGlzZWQgdG8gdXNlcnNwYWNl IGFuZAorCQkJICogc28gc2hvdWxkbid0IGhhdmUgYmVlbiByZXF1ZXN0ZWQKKwkJCSAqLworCQkJ cmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVn cyA9CisJCQliX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJCWRldl9wcml2LT5wZXJmLm9hLmJf Y291bnRlcl9yZWdzX2xlbiA9CisJCQlBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9v YSk7CisKKwkJZGV2X3ByaXYtPnBlcmYub2EuZmxleF9yZWdzID0KKwkJCWZsZXhfZXVfY29uZmln X3Rlc3Rfb2E7CisJCWRldl9wcml2LT5wZXJmLm9hLmZsZXhfcmVnc19sZW4gPQorCQkJQVJSQVlf U0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKworCQlyZXR1cm4gMDsKKwlkZWZhdWx0Ogor CQlyZXR1cm4gLUVOT0RFVjsKKwl9Cit9CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X3JlbmRlcl9i YXNpY19pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0 ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VU X0lEX1JFTkRFUl9CQVNJQyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBk ZXZfYXR0cl9yZW5kZXJfYmFzaWNfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1v ZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3JlbmRlcl9iYXNpY19pZCwKKwkuc3RvcmUgPSBO VUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJzX3JlbmRlcl9iYXNpY1td ID0geworCSZkZXZfYXR0cl9yZW5kZXJfYmFzaWNfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3Rh dGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfcmVuZGVyX2Jhc2ljID0geworCS5uYW1l ID0gImJhZDc3YzI0LWNjNjQtNDgwZC05OWJmLWU3Yjc0MDcxMzgwMCIsCisJLmF0dHJzID0gIGF0 dHJzX3JlbmRlcl9iYXNpYywKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2NvbXB1dGVfYmFz aWNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs IGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9J RF9DT01QVVRFX0JBU0lDKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRl dl9hdHRyX2NvbXB1dGVfYmFzaWNfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1v ZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X2NvbXB1dGVfYmFzaWNfaWQsCisJLnN0b3JlID0g TlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19jb21wdXRlX2Jhc2lj W10gPSB7CisJJmRldl9hdHRyX2NvbXB1dGVfYmFzaWNfaWQuYXR0ciwKKwlOVUxMLAorfTsKKwor c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9iYXNpYyA9IHsKKwku bmFtZSA9ICI3Mjc3MjI4Zi1lN2YzLTQ3NDMtOTQ1YS02YTIwNDlkMTEzNzciLAorCS5hdHRycyA9 ICBhdHRyc19jb21wdXRlX2Jhc2ljLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfcmVuZGVy X3BpcGVfcHJvZmlsZV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJp YnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBN RVRSSUNfU0VUX0lEX1JFTkRFUl9QSVBFX1BST0ZJTEUpOworfQorCitzdGF0aWMgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfcmVuZGVyX3BpcGVfcHJvZmlsZV9pZCA9IHsKKwkuYXR0 ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfcmVuZGVy X3BpcGVfcHJvZmlsZV9pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHJzX3JlbmRlcl9waXBlX3Byb2ZpbGVbXSA9IHsKKwkmZGV2X2F0dHJfcmVu ZGVyX3BpcGVfcHJvZmlsZV9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZV9ncm91cCBncm91cF9yZW5kZXJfcGlwZV9wcm9maWxlID0geworCS5uYW1lID0gIjQ2 M2M2NjhjLTNmNjAtNDliNi04Zjg1LWQ5OTViNjM1YjNiMiIsCisJLmF0dHJzID0gIGF0dHJzX3Jl bmRlcl9waXBlX3Byb2ZpbGUsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19tZW1vcnlfcmVh ZHNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs IGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9J RF9NRU1PUllfUkVBRFMpOworfQogCi0Jc3dpdGNoIChkZXZfcHJpdi0+cGVyZi5vYS5tZXRyaWNz X3NldCkgewotCWNhc2UgTUVUUklDX1NFVF9JRF9SRU5ERVJfQkFTSUM6Ci0JCWRldl9wcml2LT5w ZXJmLm9hLm11eF9yZWdzID0KLQkJCWdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJp diwKLQkJCQkJCSAgICAmZGV2X3ByaXYtPnBlcmYub2EubXV4X3JlZ3NfbGVuKTsKLQkJaWYgKCFk ZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVncykgewotCQkJRFJNX0RFQlVHX0RSSVZFUigiTm8gc3Vp dGFibGUgTVVYIGNvbmZpZyBmb3IgXCJSRU5ERVJfQkFTSUNcIiBtZXRyaWMgc2V0XG4iKTsKK3N0 YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9tZW1vcnlfcmVhZHNfaWQgPSB7 CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93 X21lbW9yeV9yZWFkc19pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKIAotCQkJLyogRUlOVkFMIGJl Y2F1c2UgKl9yZWdpc3Rlcl9zeXNmcyBhbHJlYWR5IGNoZWNrZWQgdGhpcwotCQkJICogYW5kIHNv IGl0IHdvdWxkbid0IGhhdmUgYmVlbiBhZHZlcnRpc2VkIHRvIHVzZXJzcGFjZSBhbmQKLQkJCSAq IHNvIHNob3VsZG4ndCBoYXZlIGJlZW4gcmVxdWVzdGVkCi0JCQkgKi8KLQkJCXJldHVybiAtRUlO VkFMOwotCQl9CitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfbWVtb3J5X3JlYWRzW10g PSB7CisJJmRldl9hdHRyX21lbW9yeV9yZWFkc19pZC5hdHRyLAorCU5VTEwsCit9OwogCi0JCWRl dl9wcml2LT5wZXJmLm9hLmJfY291bnRlcl9yZWdzID0KLQkJCWJfY291bnRlcl9jb25maWdfcmVu ZGVyX2Jhc2ljOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5iX2NvdW50ZXJfcmVnc19sZW4gPQotCQkJ QVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpYyk7CitzdGF0aWMgc3RydWN0 IGF0dHJpYnV0ZV9ncm91cCBncm91cF9tZW1vcnlfcmVhZHMgPSB7CisJLm5hbWUgPSAiM2FlNmU3 NGMtNzJjMy00MDQwLTliZDAtNzk2MTQzMGI4Y2M4IiwKKwkuYXR0cnMgPSAgYXR0cnNfbWVtb3J5 X3JlYWRzLAorfTsKIAotCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3MgPQotCQkJZmxleF9l dV9jb25maWdfcmVuZGVyX2Jhc2ljOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5mbGV4X3JlZ3NfbGVu ID0KLQkJCUFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKK3N0YXRpYyBz c2l6ZV90CitzaG93X21lbW9yeV93cml0ZXNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50Zihi dWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9NRU1PUllfV1JJVEVTKTsKK30KIAotCQlyZXR1cm4g MDsKLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVOT0RFVjsKLQl9CitzdGF0aWMgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgZGV2X2F0dHJfbWVtb3J5X3dyaXRlc19pZCA9IHsKKwkuYXR0ciA9IHsgLm5h bWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfbWVtb3J5X3dyaXRlc19p ZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJz X21lbW9yeV93cml0ZXNbXSA9IHsKKwkmZGV2X2F0dHJfbWVtb3J5X3dyaXRlc19pZC5hdHRyLAor CU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9tZW1vcnlf d3JpdGVzID0geworCS5uYW1lID0gIjA1NWYyNTZkLTQwNTItNDY3Yy04ZGVjLTYwNjRhNDgwNjQz MyIsCisJLmF0dHJzID0gIGF0dHJzX21lbW9yeV93cml0ZXMsCit9OworCitzdGF0aWMgc3NpemVf dAorc2hvd19jb21wdXRlX2V4dGVuZGVkX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBk ZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVm LCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfQ09NUFVURV9FWFRFTkRFRCk7Cit9CisKK3N0YXRpYyBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9jb21wdXRlX2V4dGVuZGVkX2lkID0gewor CS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19j b21wdXRlX2V4dGVuZGVkX2lkLAorCS5zdG9yZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0cnNfY29tcHV0ZV9leHRlbmRlZFtdID0geworCSZkZXZfYXR0cl9jb21w dXRlX2V4dGVuZGVkX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmli dXRlX2dyb3VwIGdyb3VwX2NvbXB1dGVfZXh0ZW5kZWQgPSB7CisJLm5hbWUgPSAiNzUzOTcyZDQt ODdjZC00NDYwLTgyNGQtNzU0NDYzYWM1MDU0IiwKKwkuYXR0cnMgPSAgYXR0cnNfY29tcHV0ZV9l eHRlbmRlZCwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2NvbXB1dGVfbDNfY2FjaGVfaWQo c3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIg KmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9DT01Q VVRFX0wzX0NBQ0hFKTsKIH0KIAorc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9h dHRyX2NvbXB1dGVfbDNfY2FjaGVfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1v ZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X2NvbXB1dGVfbDNfY2FjaGVfaWQsCisJLnN0b3Jl ID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19jb21wdXRlX2wz X2NhY2hlW10gPSB7CisJJmRldl9hdHRyX2NvbXB1dGVfbDNfY2FjaGVfaWQuYXR0ciwKKwlOVUxM LAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9sM19j YWNoZSA9IHsKKwkubmFtZSA9ICI0ZTQzOTJlOS04ZjczLTQ1N2ItYWI0NC1iNDlmN2EwYzczM2Ii LAorCS5hdHRycyA9ICBhdHRyc19jb21wdXRlX2wzX2NhY2hlLAorfTsKKwogc3RhdGljIHNzaXpl X3QKLXNob3dfcmVuZGVyX2Jhc2ljX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZp Y2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCitzaG93X2hkY19hbmRfc2ZfaWQoc3RydWN0 IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikK IHsKLQlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9SRU5ERVJfQkFT SUMpOworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX0hEQ19BTkRf U0YpOwogfQogCi1zdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfcmVuZGVy X2Jhc2ljX2lkID0geworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2hk Y19hbmRfc2ZfaWQgPSB7CiAJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0s Ci0JLnNob3cgPSBzaG93X3JlbmRlcl9iYXNpY19pZCwKKwkuc2hvdyA9IHNob3dfaGRjX2FuZF9z Zl9pZCwKIAkuc3RvcmUgPSBOVUxMLAogfTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHJzX3JlbmRlcl9iYXNpY1tdID0gewotCSZkZXZfYXR0cl9yZW5kZXJfYmFzaWNfaWQuYXR0ciwK K3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19oZGNfYW5kX3NmW10gPSB7CisJJmRldl9h dHRyX2hkY19hbmRfc2ZfaWQuYXR0ciwKIAlOVUxMLAogfTsKIAotc3RhdGljIHN0cnVjdCBhdHRy aWJ1dGVfZ3JvdXAgZ3JvdXBfcmVuZGVyX2Jhc2ljID0gewotCS5uYW1lID0gImJhZDc3YzI0LWNj NjQtNDgwZC05OWJmLWU3Yjc0MDcxMzgwMCIsCi0JLmF0dHJzID0gIGF0dHJzX3JlbmRlcl9iYXNp YywKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2hkY19hbmRfc2YgPSB7CisJ Lm5hbWUgPSAiNzMwZDk1ZGQtN2RhOC00ZTFjLWFiOGQtYzBlYjFlNGMxODA1IiwKKwkuYXR0cnMg PSAgYXR0cnNfaGRjX2FuZF9zZiwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2wzXzFfaWQo c3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIg KmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9MM18x KTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2wzXzFfaWQg PSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBz aG93X2wzXzFfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmli dXRlICphdHRyc19sM18xW10gPSB7CisJJmRldl9hdHRyX2wzXzFfaWQuYXR0ciwKKwlOVUxMLAor fTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfbDNfMSA9IHsKKwkubmFt ZSA9ICJkOWU4NmQ3MC00NjJiLTQ2MmEtODUxZS1mZDYzZThjMTNkNjMiLAorCS5hdHRycyA9ICBh dHRyc19sM18xLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfbDNfMl9pZChzdHJ1Y3QgZGV2 aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQorewor CXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX0wzXzIpOworfQorCitz dGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfbDNfMl9pZCA9IHsKKwkuYXR0 ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfbDNfMl9p ZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJz X2wzXzJbXSA9IHsKKwkmZGV2X2F0dHJfbDNfMl9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0 aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9sM18yID0geworCS5uYW1lID0gIjUyMjAw NDI0LTZlZTktNDhiMy1iN2ZhLTBhZmNmMTk3NWU0ZCIsCisJLmF0dHJzID0gIGF0dHJzX2wzXzIs Cit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd19sM18zX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYs IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNw cmludGYoYnVmLCAiJWRcbiIsIE1FVFJJQ19TRVRfSURfTDNfMyk7Cit9CisKK3N0YXRpYyBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9sM18zX2lkID0geworCS5hdHRyID0geyAubmFt ZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hvd19sM18zX2lkLAorCS5zdG9y ZSA9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cnNfbDNfM1tdID0g eworCSZkZXZfYXR0cl9sM18zX2lkLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3Qg YXR0cmlidXRlX2dyb3VwIGdyb3VwX2wzXzMgPSB7CisJLm5hbWUgPSAiMTk4ODMxNWYtMGEyNi00 NGRmLWFjYjAtZGY3ZWM4NmIxNDU2IiwKKwkuYXR0cnMgPSAgYXR0cnNfbDNfMywKK307CisKK3N0 YXRpYyBzc2l6ZV90CitzaG93X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfaWQoc3RydWN0 IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikK K3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9SQVNURVJJWkVS X0FORF9QSVhFTF9CQUNLRU5EKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl IGRldl9hdHRyX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfaWQgPSB7CisJLmF0dHIgPSB7 IC5uYW1lID0gImlkIiwgLm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3Jhc3Rlcml6ZXJf YW5kX3BpeGVsX2JhY2tlbmRfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlICphdHRyc19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kW10gPSB7CisJ JmRldl9hdHRyX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfaWQuYXR0ciwKKwlOVUxMLAor fTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfcmFzdGVyaXplcl9hbmRf cGl4ZWxfYmFja2VuZCA9IHsKKwkubmFtZSA9ICJmMWYxN2NhNy0yODZlLTRhZTUtOWQxNS05ZmNj YWQ2YzY2NWQiLAorCS5hdHRycyA9ICBhdHRyc19yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5k LAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfc2FtcGxlcl9pZChzdHJ1Y3QgZGV2aWNlICpr ZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVy biBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1NBTVBMRVIpOworfQorCitzdGF0 aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHJfc2FtcGxlcl9pZCA9IHsKKwkuYXR0 ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3dfc2FtcGxl cl9pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHJzX3NhbXBsZXJbXSA9IHsKKwkmZGV2X2F0dHJfc2FtcGxlcl9pZC5hdHRyLAorCU5VTEwsCit9 OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9zYW1wbGVyID0geworCS5u YW1lID0gIjAwYTllMGZiLTNkMmUtNDQwNS04NTJjLWRjZTYzMzRmZmIzYiIsCisJLmF0dHJzID0g IGF0dHJzX3NhbXBsZXIsCit9OworCitzdGF0aWMgc3NpemVfdAorc2hvd190ZGxfMV9pZChzdHJ1 Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVm KQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBNRVRSSUNfU0VUX0lEX1RETF8xKTsK K30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3RkbF8xX2lkID0g eworCS5hdHRyID0geyAubmFtZSA9ICJpZCIsIC5tb2RlID0gMDQ0NCB9LAorCS5zaG93ID0gc2hv d190ZGxfMV9pZCwKKwkuc3RvcmUgPSBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHJzX3RkbF8xW10gPSB7CisJJmRldl9hdHRyX3RkbF8xX2lkLmF0dHIsCisJTlVMTCwK K307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3RkbF8xID0geworCS5u YW1lID0gIjEzZGNjNTBhLTdlYzAtNDA5Yi05OWQ2LWEzZjkzMmNlZGNiMyIsCisJLmF0dHJzID0g IGF0dHJzX3RkbF8xLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdGRsXzJfaWQoc3RydWN0 IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikK K3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9URExfMik7Cit9 CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl90ZGxfMl9pZCA9IHsK KwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwkuc2hvdyA9IHNob3df dGRsXzJfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyc190ZGxfMltdID0geworCSZkZXZfYXR0cl90ZGxfMl9pZC5hdHRyLAorCU5VTEwsCit9 OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF90ZGxfMiA9IHsKKwkubmFt ZSA9ICI5Nzg3NWUyMS02NjI0LTRhZWUtOTE5MS02ODJmZWIzZWFlMjEiLAorCS5hdHRycyA9ICBh dHRyc190ZGxfMiwKK307CisKK3N0YXRpYyBzc2l6ZV90CitzaG93X2NvbXB1dGVfZXh0cmFfaWQo c3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIg KmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9DT01Q VVRFX0VYVFJBKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRy X2NvbXB1dGVfZXh0cmFfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwgLm1vZGUgPSAw NDQ0IH0sCisJLnNob3cgPSBzaG93X2NvbXB1dGVfZXh0cmFfaWQsCisJLnN0b3JlID0gTlVMTCwK K307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc19jb21wdXRlX2V4dHJhW10gPSB7 CisJJmRldl9hdHRyX2NvbXB1dGVfZXh0cmFfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9leHRyYSA9IHsKKwkubmFtZSA9 ICJhNWFhODU3ZC1lOGYwLTRkZmEtODk4MS1jZTM0MGZhNzQ4ZmQiLAorCS5hdHRycyA9ICBhdHRy c19jb21wdXRlX2V4dHJhLAorfTsKKworc3RhdGljIHNzaXplX3QKK3Nob3dfdm1lX3BpcGVfaWQo c3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIg KmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgTUVUUklDX1NFVF9JRF9WTUVf UElQRSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl92bWVf cGlwZV9pZCA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiaWQiLCAubW9kZSA9IDA0NDQgfSwKKwku c2hvdyA9IHNob3dfdm1lX3BpcGVfaWQsCisJLnN0b3JlID0gTlVMTCwKK307CisKK3N0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlICphdHRyc192bWVfcGlwZVtdID0geworCSZkZXZfYXR0cl92bWVfcGlw ZV9pZC5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBn cm91cF92bWVfcGlwZSA9IHsKKwkubmFtZSA9ICIwZThkOGI4Ni00ZWU3LTRjZGQtYWFhYS01OGFk YzkyY2IyOWUiLAorCS5hdHRycyA9ICBhdHRyc192bWVfcGlwZSwKK307CisKK3N0YXRpYyBzc2l6 ZV90CitzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9h dHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxu IiwgTUVUUklDX1NFVF9JRF9URVNUX09BKTsKK30KKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlIGRldl9hdHRyX3Rlc3Rfb2FfaWQgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImlkIiwg Lm1vZGUgPSAwNDQ0IH0sCisJLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQsCisJLnN0b3JlID0gTlVM TCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdHRyc190ZXN0X29hW10gPSB7CisJ JmRldl9hdHRyX3Rlc3Rfb2FfaWQuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBh dHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfdGVzdF9vYSA9IHsKKwkubmFtZSA9ICI4ODJmYTQzMy0xZjRh LTRhNjctYTk2Mi1jNzQxODg4ZmU1ZjUiLAorCS5hdHRycyA9ICBhdHRyc190ZXN0X29hLAogfTsK IAogaW50CkBAIC0yMzAsOSArMjcyMywxNDUgQEAgaTkxNV9wZXJmX3JlZ2lzdGVyX3N5c2ZzX3Nr bGd0NChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWlmIChyZXQpCiAJCQln b3RvIGVycm9yX3JlbmRlcl9iYXNpYzsKIAl9CisJaWYgKGdldF9jb21wdXRlX2Jhc2ljX211eF9j b25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAo ZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9iYXNpYyk7CisJCWlm IChyZXQpCisJCQlnb3RvIGVycm9yX2NvbXB1dGVfYmFzaWM7CisJfQorCWlmIChnZXRfcmVuZGVy X3BpcGVfcHJvZmlsZV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0g c3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Jl bmRlcl9waXBlX3Byb2ZpbGUpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9yZW5kZXJfcGlw ZV9wcm9maWxlOworCX0KKwlpZiAoZ2V0X21lbW9yeV9yZWFkc19tdXhfY29uZmlnKGRldl9wcml2 LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJm Lm1ldHJpY3Nfa29iaiwgJmdyb3VwX21lbW9yeV9yZWFkcyk7CisJCWlmIChyZXQpCisJCQlnb3Rv IGVycm9yX21lbW9yeV9yZWFkczsKKwl9CisJaWYgKGdldF9tZW1vcnlfd3JpdGVzX211eF9jb25m aWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2 X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbWVtb3J5X3dyaXRlcyk7CisJCWlmIChy ZXQpCisJCQlnb3RvIGVycm9yX21lbW9yeV93cml0ZXM7CisJfQorCWlmIChnZXRfY29tcHV0ZV9l eHRlbmRlZF9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNf Y3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVf ZXh0ZW5kZWQpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJvcl9jb21wdXRlX2V4dGVuZGVkOwor CX0KKwlpZiAoZ2V0X2NvbXB1dGVfbDNfY2FjaGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9s ZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9jb21wdXRlX2wzX2NhY2hlKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJy b3JfY29tcHV0ZV9sM19jYWNoZTsKKwl9CisJaWYgKGdldF9oZGNfYW5kX3NmX211eF9jb25maWco ZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3By aXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfaGRjX2FuZF9zZik7CisJCWlmIChyZXQpCisJ CQlnb3RvIGVycm9yX2hkY19hbmRfc2Y7CisJfQorCWlmIChnZXRfbDNfMV9tdXhfY29uZmlnKGRl dl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2 LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzEpOworCQlpZiAocmV0KQorCQkJZ290byBl cnJvcl9sM18xOworCX0KKwlpZiAoZ2V0X2wzXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9s ZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNz X2tvYmosICZncm91cF9sM18yKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3JfbDNfMjsKKwl9 CisJaWYgKGdldF9sM18zX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkgeworCQlyZXQg PSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBf bDNfMyk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yX2wzXzM7CisJfQorCWlmIChnZXRfcmFz dGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZF9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikp IHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29i aiwgJmdyb3VwX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmQpOworCQlpZiAocmV0KQorCQkJ Z290byBlcnJvcl9yYXN0ZXJpemVyX2FuZF9waXhlbF9iYWNrZW5kOworCX0KKwlpZiAoZ2V0X3Nh bXBsZXJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2Ny ZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9zYW1wbGVyKTsK KwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyb3Jfc2FtcGxlcjsKKwl9CisJaWYgKGdldF90ZGxfMV9t dXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dy b3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8xKTsKKwkJaWYgKHJl dCkKKwkJCWdvdG8gZXJyb3JfdGRsXzE7CisJfQorCWlmIChnZXRfdGRsXzJfbXV4X2NvbmZpZyhk ZXZfcHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF90ZGxfMik7CisJCWlmIChyZXQpCisJCQlnb3Rv IGVycm9yX3RkbF8yOworCX0KKwlpZiAoZ2V0X2NvbXB1dGVfZXh0cmFfbXV4X2NvbmZpZyhkZXZf cHJpdiwgJm11eF9sZW4pKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+ cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2V4dHJhKTsKKwkJaWYgKHJldCkKKwkJ CWdvdG8gZXJyb3JfY29tcHV0ZV9leHRyYTsKKwl9CisJaWYgKGdldF92bWVfcGlwZV9tdXhfY29u ZmlnKGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRl dl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3ZtZV9waXBlKTsKKwkJaWYgKHJldCkK KwkJCWdvdG8gZXJyb3Jfdm1lX3BpcGU7CisJfQorCWlmIChnZXRfdGVzdF9vYV9tdXhfY29uZmln KGRldl9wcml2LCAmbXV4X2xlbikpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9w cml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3Rlc3Rfb2EpOworCQlpZiAocmV0KQorCQkJ Z290byBlcnJvcl90ZXN0X29hOworCX0KIAogCXJldHVybiAwOwogCitlcnJvcl90ZXN0X29hOgor CWlmIChnZXRfdm1lX3BpcGVfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNm c19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdm1lX3Bp cGUpOworZXJyb3Jfdm1lX3BpcGU6CisJaWYgKGdldF9jb21wdXRlX2V4dHJhX211eF9jb25maWco ZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJm Lm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfZXh0cmEpOworZXJyb3JfY29tcHV0ZV9leHRy YToKKwlpZiAoZ2V0X3RkbF8yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lz ZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3RkbF8y KTsKK2Vycm9yX3RkbF8yOgorCWlmIChnZXRfdGRsXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11 eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2Jq LCAmZ3JvdXBfdGRsXzEpOworZXJyb3JfdGRsXzE6CisJaWYgKGdldF9zYW1wbGVyX211eF9jb25m aWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5w ZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3NhbXBsZXIpOworZXJyb3Jfc2FtcGxlcjoKKwlpZiAo Z2V0X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11 eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2Jq LCAmZ3JvdXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCk7CitlcnJvcl9yYXN0ZXJpemVy X2FuZF9waXhlbF9iYWNrZW5kOgorCWlmIChnZXRfbDNfM19tdXhfY29uZmlnKGRldl9wcml2LCAm bXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tv YmosICZncm91cF9sM18zKTsKK2Vycm9yX2wzXzM6CisJaWYgKGdldF9sM18yX211eF9jb25maWco ZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJm Lm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzIpOworZXJyb3JfbDNfMjoKKwlpZiAoZ2V0X2wzXzFf bXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2 X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbDNfMSk7CitlcnJvcl9sM18xOgorCWlm IChnZXRfaGRjX2FuZF9zZl9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2Zz X3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9oZGNfYW5k X3NmKTsKK2Vycm9yX2hkY19hbmRfc2Y6CisJaWYgKGdldF9jb21wdXRlX2wzX2NhY2hlX211eF9j b25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2 LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfbDNfY2FjaGUpOworZXJyb3JfY29t cHV0ZV9sM19jYWNoZToKKwlpZiAoZ2V0X2NvbXB1dGVfZXh0ZW5kZWRfbXV4X2NvbmZpZyhkZXZf cHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0 cmljc19rb2JqLCAmZ3JvdXBfY29tcHV0ZV9leHRlbmRlZCk7CitlcnJvcl9jb21wdXRlX2V4dGVu ZGVkOgorCWlmIChnZXRfbWVtb3J5X3dyaXRlc19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xl bikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZn cm91cF9tZW1vcnlfd3JpdGVzKTsKK2Vycm9yX21lbW9yeV93cml0ZXM6CisJaWYgKGdldF9tZW1v cnlfcmVhZHNfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVf Z3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbWVtb3J5X3JlYWRzKTsK K2Vycm9yX21lbW9yeV9yZWFkczoKKwlpZiAoZ2V0X3JlbmRlcl9waXBlX3Byb2ZpbGVfbXV4X2Nv bmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYt PnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfcmVuZGVyX3BpcGVfcHJvZmlsZSk7CitlcnJvcl9y ZW5kZXJfcGlwZV9wcm9maWxlOgorCWlmIChnZXRfY29tcHV0ZV9iYXNpY19tdXhfY29uZmlnKGRl dl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5t ZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2Jhc2ljKTsKK2Vycm9yX2NvbXB1dGVfYmFzaWM6 CisJaWYgKGdldF9yZW5kZXJfYmFzaWNfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQor CQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBf cmVuZGVyX2Jhc2ljKTsKIGVycm9yX3JlbmRlcl9iYXNpYzoKIAlyZXR1cm4gcmV0OwogfQpAQCAt MjQ0LDQgKzI4NzMsMzggQEAgaTkxNV9wZXJmX3VucmVnaXN0ZXJfc3lzZnNfc2tsZ3Q0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCWlmIChnZXRfcmVuZGVyX2Jhc2ljX211 eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKIAkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9w cml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3JlbmRlcl9iYXNpYyk7CisJaWYgKGdldF9j b21wdXRlX2Jhc2ljX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVt b3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfYmFz aWMpOworCWlmIChnZXRfcmVuZGVyX3BpcGVfcHJvZmlsZV9tdXhfY29uZmlnKGRldl9wcml2LCAm bXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tv YmosICZncm91cF9yZW5kZXJfcGlwZV9wcm9maWxlKTsKKwlpZiAoZ2V0X21lbW9yeV9yZWFkc19t dXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZf cHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfcmVhZHMpOworCWlmIChnZXRf bWVtb3J5X3dyaXRlc19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9tZW1vcnlfd3Jp dGVzKTsKKwlpZiAoZ2V0X2NvbXB1dGVfZXh0ZW5kZWRfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11 eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2Jq LCAmZ3JvdXBfY29tcHV0ZV9leHRlbmRlZCk7CisJaWYgKGdldF9jb21wdXRlX2wzX2NhY2hlX211 eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9w cml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2NvbXB1dGVfbDNfY2FjaGUpOworCWlmIChn ZXRfaGRjX2FuZF9zZl9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9oZGNfYW5kX3Nm KTsKKwlpZiAoZ2V0X2wzXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNm c19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfbDNfMSk7 CisJaWYgKGdldF9sM18yX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNf cmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX2wzXzIpOwor CWlmIChnZXRfbDNfM19tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9sM18zKTsKKwlp ZiAoZ2V0X3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tlbmRfbXV4X2NvbmZpZyhkZXZfcHJpdiwg Jm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19r b2JqLCAmZ3JvdXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCk7CisJaWYgKGdldF9zYW1w bGVyX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkKKwkJc3lzZnNfcmVtb3ZlX2dyb3Vw KGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3VwX3NhbXBsZXIpOworCWlmIChnZXRf dGRsXzFfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3Jv dXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzEpOworCWlmIChnZXRf dGRsXzJfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9sZW4pKQorCQlzeXNmc19yZW1vdmVfZ3Jv dXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAmZ3JvdXBfdGRsXzIpOworCWlmIChnZXRf Y29tcHV0ZV9leHRyYV9tdXhfY29uZmlnKGRldl9wcml2LCAmbXV4X2xlbikpCisJCXN5c2ZzX3Jl bW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosICZncm91cF9jb21wdXRlX2V4 dHJhKTsKKwlpZiAoZ2V0X3ZtZV9waXBlX211eF9jb25maWcoZGV2X3ByaXYsICZtdXhfbGVuKSkK KwkJc3lzZnNfcmVtb3ZlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaiwgJmdyb3Vw X3ZtZV9waXBlKTsKKwlpZiAoZ2V0X3Rlc3Rfb2FfbXV4X2NvbmZpZyhkZXZfcHJpdiwgJm11eF9s ZW4pKQorCQlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLCAm Z3JvdXBfdGVzdF9vYSk7CiB9Ci0tIAoyLjEyLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=