From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Rodriguez Subject: [PATCH] drm/amdgpu: cleanup firmware requests v2 Date: Tue, 17 Apr 2018 18:12:32 -0400 Message-ID: <20180417221232.13179-1-andresx7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: dri-devel@lists.freedesktop.org QWRkIGEgbmV3IGZ1bmN0aW9uIGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKCkgdGhhdCBl bmNhcHN1bGF0ZXMgYQpsb3Qgb2YgdGhlIGNvbW1vbiBiZWhhdmlvdXIgd2UgaGF2ZSBhcm91bmQg ZmlybXdhcmUgcmVxdWVzdHMuCgpUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIG15IHF1ZXN0IHRv IGdldCByaWQgb2YgdGhlIGZvbGxvd2luZyBhbm5veWluZwptZXNzYWdlcyB3aGVuIG15IHBvbGFy aXMxMCBib290cyB1cDoKWyAgICAwLjU1ODUzN10gYW1kZ3B1IDAwMDA6MDE6MDAuMDogRGlyZWN0 IGZpcm13YXJlIGxvYWQgZm9yIGFtZGdwdS9wb2xhcmlzMTBfcGZwXzIuYmluIGZhaWxlZCB3aXRo IGVycm9yIC0yClsgICAgMC41NTg1NTFdIGFtZGdwdSAwMDAwOjAxOjAwLjA6IERpcmVjdCBmaXJt d2FyZSBsb2FkIGZvciBhbWRncHUvcG9sYXJpczEwX21lXzIuYmluIGZhaWxlZCB3aXRoIGVycm9y IC0yClsgICAgMC41NTg1NjJdIGFtZGdwdSAwMDAwOjAxOjAwLjA6IERpcmVjdCBmaXJtd2FyZSBs b2FkIGZvciBhbWRncHUvcG9sYXJpczEwX2NlXzIuYmluIGZhaWxlZCB3aXRoIGVycm9yIC0yClsg ICAgMC41NTg1ODBdIGFtZGdwdSAwMDAwOjAxOjAwLjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZv ciBhbWRncHUvcG9sYXJpczEwX21lY18yLmJpbiBmYWlsZWQgd2l0aCBlcnJvciAtMgpbICAgIDAu NTU4NjE5XSBhbWRncHUgMDAwMDowMTowMC4wOiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3IgYW1k Z3B1L3BvbGFyaXMxMF9tZWMyXzIuYmluIGZhaWxlZCB3aXRoIGVycm9yIC0yCgp2MjogbWFrZSBh bWRncHVfdWNvZGVfdmFsaWRhdGUgZmlsZSBzY29wZSBvbmx5CiAgICBhZGQga2VybmVsLWRvYyBm b3IgYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoKQoKU2lnbmVkLW9mZi1ieTogQW5kcmVz IFJvZHJpZ3VleiA8YW5kcmVzeDdAZ21haWwuY29tPgotLS0KClNvcnJ5IGZvciB0aGUgcXVpY2sg VjIsIG5vdGljZWQgc29tZSBkb2NzIG1pZ2h0IGhlbHAgYW5kIHRoYXQKX3ZhbGlkYXRlKCkgY291 bGQgYmUgcmVkdWNlZCBpbiBzY29wZS4gUGFzdGluZyBteSBvbGQgbWVzc2FnZQphZ2FpbiBqdXN0 IGluIGNhc2UuCgpIZXkgQ2hyaXN0aWFuLAoKV2FudGVkIHRvIGdvIHRocm91Z2ggYSBjbGVhbnVw IG9mIHRoZSB1Y29kZSBsb2FkaW5nIGluIGFtZGdwdQp0byBmYWNpbGl0YXRlIHNvbWUgb2Ygb3Vy IGhlYXRlZCBkaXNjdXNzaW9ucyA6KQoKRm9yIG5vdywgZnVuY3Rpb25hbGl0eSBzaG91bGQgcmVt YWluIHRoZSBzYW1lLiBPbmNlIF9ub3dhcm4oKQpsYW5kcyB3ZSBjYW4gY2hhbmdlIGFtZGdwdV91 Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKCkgd2l0aCBlaXRoZXI6CgpBbHRlcm5hdGl2ZSBBOgotICAg ICAgIGVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmxvYWRlZF9mdywgbmFtZSwgYWRldi0+ZGV2KTsK KyAgICAgICBlcnIgPSByZXF1ZXN0X2Zpcm13YXJlX25vd2FybigmbG9hZGVkX2Z3LCBuYW1lLCBh ZGV2LT5kZXYpOwoKQWx0ZXJuYXRpdmUgQjoKLSAgICAgICBlcnIgPSByZXF1ZXN0X2Zpcm13YXJl KCZsb2FkZWRfZncsIG5hbWUsIGFkZXYtPmRldik7CisgICAgICAgaWYgKG9wdGlvbmFsKQorICAg ICAgICAgICAgICAgZXJyID0gcmVxdWVzdF9maXJtd2FyZV9ub3dhcm4oJmxvYWRlZF9mdywgbmFt ZSwgYWRldi0+ZGV2KTsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgICBlcnIgPSByZXF1ZXN0 X2Zpcm13YXJlKCZsb2FkZWRfZncsIG5hbWUsIGFkZXYtPmRldik7CgpJIHByZWZlciBBLCBidXQg SSdtIG5vdCBvcHBvc2VkIHRvIEIuIEknbGwgbGVhdmUgaXQgdXAgdG8geW91LgoKUmVnYXJkcywK QW5kcmVzCgogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nncy5jICAgIHwgIDE0 ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8ICAxNiAr LS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Vjb2RlLmMgIHwgIDc0ICsr KysrKysrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91Y29k ZS5oICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jICAg IHwgIDE2ICstLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmMgICAg fCAgMTYgKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uYyAgICB8 ICAxNiArLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lfZHBtLmMgICAgICAgIHwg IDE1ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMgICAgICB8ICAg NSArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y2XzAuYyAgICAgIHwgIDE5ICsr LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jICAgICAgfCAgMzAgKyst LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMgICAgICB8IDExMiAr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y5XzAuYyAgICAgIHwgIDM5ICsrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dtY192Nl8wLmMgICAgICB8ICAxNyArLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ21jX3Y3XzAuYyAgICAgIHwgIDE0ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dtY192OF8wLmMgICAgICB8ICAxNCArLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9w c3BfdjEwXzAuYyAgICAgfCAgMTggKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Bz cF92M18xLmMgICAgICB8ICAxNSArLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1h X3YyXzQuYyAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNf MC5jICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMg ICAgIHwgICA3ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9kcG0uYyAgICAgICAg fCAgMTYgKy0tLS0KIDIyIGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspLCAzMjUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2Nncy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nncy5jCmluZGV4IGE4 YTk0MmM2MGVhMi4uMzQ3YWIxNzEwNTIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfY2dzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2Nncy5jCkBAIC00MDIsMTkgKzQwMiw5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nnc19nZXRf ZmlybXdhcmVfaW5mbyhzdHJ1Y3QgY2dzX2RldmljZSAqY2dzX2RldmljZSwKIAkJCQlyZXR1cm4g LUVJTlZBTDsKIAkJCX0KIAotCQkJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+cG0uZncs IGZ3X25hbWUsIGFkZXYtPmRldik7Ci0JCQlpZiAoZXJyKSB7Ci0JCQkJRFJNX0VSUk9SKCJGYWls ZWQgdG8gcmVxdWVzdCBmaXJtd2FyZVxuIik7CisJCQllcnIgPSBhbWRncHVfdWNvZGVfcmVxdWVz dF9maXJtd2FyZShhZGV2LCAmYWRldi0+cG0uZncsIGZ3X25hbWUsIGZhbHNlKTsKKwkJCWlmIChl cnIpCiAJCQkJcmV0dXJuIGVycjsKLQkJCX0KLQotCQkJZXJyID0gYW1kZ3B1X3Vjb2RlX3ZhbGlk YXRlKGFkZXYtPnBtLmZ3KTsKLQkJCWlmIChlcnIpIHsKLQkJCQlEUk1fRVJST1IoIkZhaWxlZCB0 byBsb2FkIGZpcm13YXJlIFwiJXNcIiIsIGZ3X25hbWUpOwotCQkJCXJlbGVhc2VfZmlybXdhcmUo YWRldi0+cG0uZncpOwotCQkJCWFkZXYtPnBtLmZ3ID0gTlVMTDsKLQkJCQlyZXR1cm4gZXJyOwot CQkJfQogCiAJCQlpZiAoYWRldi0+ZmlybXdhcmUubG9hZF90eXBlID09IEFNREdQVV9GV19MT0FE X1BTUCkgewogCQkJCXVjb2RlID0gJmFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9J RF9TTUNdOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rl dmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCmluZGV4 IGFiYzMzNDY0OTU5ZS4uOTY3ZTE0ZjE0YWJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2RldmljZS5jCkBAIC0xMzU1LDIwICsxMzU1LDEwIEBAIHN0YXRpYyBpbnQgYW1k Z3B1X2RldmljZV9wYXJzZV9ncHVfaW5mb19mdyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK IAl9CiAKIAlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfZ3B1 X2luZm8uYmluIiwgY2hpcF9uYW1lKTsKLQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5m aXJtd2FyZS5ncHVfaW5mb19mdywgZndfbmFtZSwgYWRldi0+ZGV2KTsKLQlpZiAoZXJyKSB7Ci0J CWRldl9lcnIoYWRldi0+ZGV2LAotCQkJIkZhaWxlZCB0byBsb2FkIGdwdV9pbmZvIGZpcm13YXJl IFwiJXNcIlxuIiwKLQkJCWZ3X25hbWUpOworCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zp cm13YXJlKGFkZXYsICZhZGV2LT5maXJtd2FyZS5ncHVfaW5mb19mdywKKwkJCQkJICAgIGZ3X25h bWUsIGZhbHNlKTsKKwlpZiAoZXJyKQogCQlnb3RvIG91dDsKLQl9Ci0JZXJyID0gYW1kZ3B1X3Vj b2RlX3ZhbGlkYXRlKGFkZXYtPmZpcm13YXJlLmdwdV9pbmZvX2Z3KTsKLQlpZiAoZXJyKSB7Ci0J CWRldl9lcnIoYWRldi0+ZGV2LAotCQkJIkZhaWxlZCB0byB2YWxpZGF0ZSBncHVfaW5mbyBmaXJt d2FyZSBcIiVzXCJcbiIsCi0JCQlmd19uYW1lKTsKLQkJZ290byBvdXQ7Ci0JfQogCiAJaGRyID0g KGNvbnN0IHN0cnVjdCBncHVfaW5mb19maXJtd2FyZV9oZWFkZXJfdjFfMCAqKWFkZXYtPmZpcm13 YXJlLmdwdV9pbmZvX2Z3LT5kYXRhOwogCWFtZGdwdV91Y29kZV9wcmludF9ncHVfaW5mb19oZHIo Jmhkci0+aGVhZGVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV91Y29kZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Vjb2RlLmMK aW5kZXggZGQ2Zjk4OTIxOTE4Li5iOWNiOGE0ODhkM2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91Y29kZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV91Y29kZS5jCkBAIC0yOCw2ICsyOCw3MCBAQAogI2luY2x1ZGUgImFtZGdw dS5oIgogI2luY2x1ZGUgImFtZGdwdV91Y29kZS5oIgogCitzdGF0aWMgaW50IGFtZGdwdV91Y29k ZV92YWxpZGF0ZShjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQoreworCWNvbnN0IHN0cnVjdCBj b21tb25fZmlybXdhcmVfaGVhZGVyICpoZHIgPQorCQkoY29uc3Qgc3RydWN0IGNvbW1vbl9maXJt d2FyZV9oZWFkZXIgKilmdy0+ZGF0YTsKKworCWlmIChmdy0+c2l6ZSA9PSBsZTMyX3RvX2NwdSho ZHItPnNpemVfYnl0ZXMpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAtRUlOVkFMOworfQorCisv KioKKyAqIGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKCkgLSByZXF1ZXN0IGEgZmlybXdh cmUgYmluYXJ5IGZpbGUKKyAqCisgKiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKiBA Znc6IHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggdGhlIGZpcm13YXJlIG9uIHN1Y2Nlc3MsIE5VTEwg b24gZmFpbHVyZQorICogQG5hbWU6IG5hbWUgb2YgdGhlIGZpcm13YXJlIGZpbGUgdG8gbG9hZAor ICogQG9wdGlvbmFsOiBzaWduYWwgd2UgYXJlIGxvYWRpbmcgYSBub24tZXNzZW50aWFsIGZ3IGZp bGUuCisgKgorICogV2hlbiBsb2FkaW5nIG9wdGlvbmFsIGZpcm13YXJlLCBpZiB0aGUgZmlsZSBp cyBub3QgZm91bmQgaXQgd2lsbCBub3QKKyAqIGJlIHRyZWF0ZWQgYXMgYW4gZXJyb3IuIEhvd2V2 ZXIsIGlmIHRoZSBmaWxlIGlzIGZvdW5kLCBidXQgd2UgZW5jb3VudGVyCisgKiB2YWxpZGF0aW9u IG9yIG90aGVyIGVycm9ycywgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWlsdXJlLgorICoK KyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBlcnJubyBvbiBmYWlsdXJlCisgKi8KK2ludCBhbWRn cHVfdWNvZGVfcmVxdWVzdF9maXJtd2FyZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJ CQkgIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqKmZ3LAorCQkJCSAgY29uc3QgY2hhciAqbmFtZSwg Ym9vbCBvcHRpb25hbCkKK3sKKwlpbnQgZXJyOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqbG9h ZGVkX2Z3ID0gTlVMTDsKKworCWlmICghZncpCisJCXJldHVybiAtRUlOVkFMOworCisJZXJyID0g cmVxdWVzdF9maXJtd2FyZSgmbG9hZGVkX2Z3LCBuYW1lLCBhZGV2LT5kZXYpOworCWlmIChlcnIp CisJCWdvdG8gZXJyb3I7CisKKwllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUobG9hZGVkX2Z3 KTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycm9yOworCisJKmZ3ID0gbG9hZGVkX2Z3OworCXJldHVy biBlcnI7CisKK2Vycm9yOgorCWlmIChsb2FkZWRfZncpCisJCXJlbGVhc2VfZmlybXdhcmUobG9h ZGVkX2Z3KTsKKworCWlmICghb3B0aW9uYWwpCisJCWRldl9lcnIoYWRldi0+ZGV2LCAiZmFpbGVk IHRvIGxvYWQgZmlybXdhcmUgJXNcbiIsIG5hbWUpOworCisJLy8gTm90aGluZyB1c2VmdWwgd2Fz IGxvYWRlZAorCSpmdyA9IE5VTEw7CisKKwkvLyBJZiB3ZSBjYW4ndCBmaW5kIG9wdGlvbmFsIEZX LCBkb24ndCByZXR1cm4gYW4gZXJyb3IKKwlpZiAob3B0aW9uYWwgJiYgIWxvYWRlZF9mdykKKwkJ ZXJyID0gMDsKKworCXJldHVybiBlcnI7Cit9CisKKwogc3RhdGljIHZvaWQgYW1kZ3B1X3Vjb2Rl X3ByaW50X2NvbW1vbl9oZHIoY29uc3Qgc3RydWN0IGNvbW1vbl9maXJtd2FyZV9oZWFkZXIgKmhk cikKIHsKIAlEUk1fREVCVUcoInNpemVfYnl0ZXM6ICV1XG4iLCBsZTMyX3RvX2NwdShoZHItPnNp emVfYnl0ZXMpKTsKQEAgLTIxOCwxNiArMjgyLDYgQEAgdm9pZCBhbWRncHVfdWNvZGVfcHJpbnRf Z3B1X2luZm9faGRyKGNvbnN0IHN0cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICpoZHIpCiAJ fQogfQogCi1pbnQgYW1kZ3B1X3Vjb2RlX3ZhbGlkYXRlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAq ZncpCi17Ci0JY29uc3Qgc3RydWN0IGNvbW1vbl9maXJtd2FyZV9oZWFkZXIgKmhkciA9Ci0JCShj b25zdCBzdHJ1Y3QgY29tbW9uX2Zpcm13YXJlX2hlYWRlciAqKWZ3LT5kYXRhOwotCi0JaWYgKGZ3 LT5zaXplID09IGxlMzJfdG9fY3B1KGhkci0+c2l6ZV9ieXRlcykpCi0JCXJldHVybiAwOwotCi0J cmV0dXJuIC1FSU5WQUw7Ci19CiAKIGJvb2wgYW1kZ3B1X3Vjb2RlX2hkcl92ZXJzaW9uKHVuaW9u IGFtZGdwdV9maXJtd2FyZV9oZWFkZXIgKmhkciwKIAkJCQl1aW50MTZfdCBoZHJfbWFqb3IsIHVp bnQxNl90IGhkcl9taW5vcikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV91Y29kZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Vjb2Rl LmgKaW5kZXggMzBiNTUwMGRjMTUyLi4wODkzYmNmNjg2ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91Y29kZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV91Y29kZS5oCkBAIC0yMDYsMTMgKzIwNiwxNSBAQCBzdHJ1Y3QgYW1k Z3B1X2Zpcm13YXJlX2luZm8gewogCXVpbnQzMl90IHVjb2RlX3NpemU7CiB9OwogCitpbnQgYW1k Z3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJ CQkJICBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKipmdywKKwkJCQkgIGNvbnN0IGNoYXIgKm5hbWUs IGJvb2wgb3B0aW9uYWwpOwogdm9pZCBhbWRncHVfdWNvZGVfcHJpbnRfbWNfaGRyKGNvbnN0IHN0 cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICpoZHIpOwogdm9pZCBhbWRncHVfdWNvZGVfcHJp bnRfc21jX2hkcihjb25zdCBzdHJ1Y3QgY29tbW9uX2Zpcm13YXJlX2hlYWRlciAqaGRyKTsKIHZv aWQgYW1kZ3B1X3Vjb2RlX3ByaW50X2dmeF9oZHIoY29uc3Qgc3RydWN0IGNvbW1vbl9maXJtd2Fy ZV9oZWFkZXIgKmhkcik7CiB2b2lkIGFtZGdwdV91Y29kZV9wcmludF9ybGNfaGRyKGNvbnN0IHN0 cnVjdCBjb21tb25fZmlybXdhcmVfaGVhZGVyICpoZHIpOwogdm9pZCBhbWRncHVfdWNvZGVfcHJp bnRfc2RtYV9oZHIoY29uc3Qgc3RydWN0IGNvbW1vbl9maXJtd2FyZV9oZWFkZXIgKmhkcik7CiB2 b2lkIGFtZGdwdV91Y29kZV9wcmludF9ncHVfaW5mb19oZHIoY29uc3Qgc3RydWN0IGNvbW1vbl9m aXJtd2FyZV9oZWFkZXIgKmhkcik7Ci1pbnQgYW1kZ3B1X3Vjb2RlX3ZhbGlkYXRlKGNvbnN0IHN0 cnVjdCBmaXJtd2FyZSAqZncpOwogYm9vbCBhbWRncHVfdWNvZGVfaGRyX3ZlcnNpb24odW5pb24g YW1kZ3B1X2Zpcm13YXJlX2hlYWRlciAqaGRyLAogCQkJCXVpbnQxNl90IGhkcl9tYWpvciwgdWlu dDE2X3QgaGRyX21pbm9yKTsKIGludCBhbWRncHVfdWNvZGVfaW5pdF9ibyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdXZkLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKaW5k ZXggNjI3NTQyYjIyYWU0Li5mYjNjNzU5NWFkMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdXZkLmMKQEAgLTE3NiwyMSArMTc2LDkgQEAgaW50IGFtZGdwdV91dmRfc3dfaW5p dChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0J ciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPnV2ZC5mdywgZndfbmFtZSwgYWRldi0+ZGV2KTsK LQlpZiAocikgewotCQlkZXZfZXJyKGFkZXYtPmRldiwgImFtZGdwdV91dmQ6IENhbid0IGxvYWQg ZmlybXdhcmUgXCIlc1wiXG4iLAotCQkJZndfbmFtZSk7Ci0JCXJldHVybiByOwotCX0KLQotCXIg PSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoYWRldi0+dXZkLmZ3KTsKLQlpZiAocikgewotCQlkZXZf ZXJyKGFkZXYtPmRldiwgImFtZGdwdV91dmQ6IENhbid0IHZhbGlkYXRlIGZpcm13YXJlIFwiJXNc IlxuIiwKLQkJCWZ3X25hbWUpOwotCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYtPnV2ZC5mdyk7Ci0J CWFkZXYtPnV2ZC5mdyA9IE5VTEw7CisJciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJl KGFkZXYsICZhZGV2LT51dmQuZncsIGZ3X25hbWUsIGZhbHNlKTsKKwlpZiAocikKIAkJcmV0dXJu IHI7Ci0JfQogCiAJLyogU2V0IHRoZSBkZWZhdWx0IFVWRCBoYW5kbGVzIHRoYXQgdGhlIGZpcm13 YXJlIGNhbiBoYW5kbGUgKi8KIAlhZGV2LT51dmQubWF4X2hhbmRsZXMgPSBBTURHUFVfREVGQVVM VF9VVkRfSEFORExFUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92Y2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYwppbmRl eCBhMzM4MDRiZDMzMTQuLjRmNDFmM2ZkMjc4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92Y2UuYwpAQCAtMTQzLDIxICsxNDMsOSBAQCBpbnQgYW1kZ3B1X3ZjZV9zd19pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1bnNpZ25lZCBsb25nIHNpemUpCiAJCXJldHVy biAtRUlOVkFMOwogCX0KIAotCXIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT52Y2UuZncsIGZ3 X25hbWUsIGFkZXYtPmRldik7Ci0JaWYgKHIpIHsKLQkJZGV2X2VycihhZGV2LT5kZXYsICJhbWRn cHVfdmNlOiBDYW4ndCBsb2FkIGZpcm13YXJlIFwiJXNcIlxuIiwKLQkJCWZ3X25hbWUpOwotCQly ZXR1cm4gcjsKLQl9Ci0KLQlyID0gYW1kZ3B1X3Vjb2RlX3ZhbGlkYXRlKGFkZXYtPnZjZS5mdyk7 Ci0JaWYgKHIpIHsKLQkJZGV2X2VycihhZGV2LT5kZXYsICJhbWRncHVfdmNlOiBDYW4ndCB2YWxp ZGF0ZSBmaXJtd2FyZSBcIiVzXCJcbiIsCi0JCQlmd19uYW1lKTsKLQkJcmVsZWFzZV9maXJtd2Fy ZShhZGV2LT52Y2UuZncpOwotCQlhZGV2LT52Y2UuZncgPSBOVUxMOworCXIgPSBhbWRncHVfdWNv ZGVfcmVxdWVzdF9maXJtd2FyZShhZGV2LCAmYWRldi0+dmNlLmZ3LCBmd19uYW1lLCBmYWxzZSk7 CisJaWYgKHIpCiAJCXJldHVybiByOwotCX0KIAogCWhkciA9IChjb25zdCBzdHJ1Y3QgY29tbW9u X2Zpcm13YXJlX2hlYWRlciAqKWFkZXYtPnZjZS5mdy0+ZGF0YTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3Zjbi5jCmluZGV4IDU4ZTQ5NTMzMGIzOC4uMDdmMzk5YTY0Y2IyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNuLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jCkBAIC02NywyMSArNjcsOSBA QCBpbnQgYW1kZ3B1X3Zjbl9zd19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQly ZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+dmNuLmZ3 LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCWlmIChyKSB7Ci0JCWRldl9lcnIoYWRldi0+ZGV2LCAi YW1kZ3B1X3ZjbjogQ2FuJ3QgbG9hZCBmaXJtd2FyZSBcIiVzXCJcbiIsCi0JCQlmd19uYW1lKTsK LQkJcmV0dXJuIHI7Ci0JfQotCi0JciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT52Y24u ZncpOwotCWlmIChyKSB7Ci0JCWRldl9lcnIoYWRldi0+ZGV2LCAiYW1kZ3B1X3ZjbjogQ2FuJ3Qg dmFsaWRhdGUgZmlybXdhcmUgXCIlc1wiXG4iLAotCQkJZndfbmFtZSk7Ci0JCXJlbGVhc2VfZmly bXdhcmUoYWRldi0+dmNuLmZ3KTsKLQkJYWRldi0+dmNuLmZ3ID0gTlVMTDsKKwlyID0gYW1kZ3B1 X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPnZjbi5mdywgZndfbmFtZSwgZmFs c2UpOworCWlmIChyKQogCQlyZXR1cm4gcjsKLQl9CiAKIAloZHIgPSAoY29uc3Qgc3RydWN0IGNv bW1vbl9maXJtd2FyZV9oZWFkZXIgKilhZGV2LT52Y24uZnctPmRhdGE7CiAJZmFtaWx5X2lkID0g bGUzMl90b19jcHUoaGRyLT51Y29kZV92ZXJzaW9uKSAmIDB4ZmY7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaV9kcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2NpX2RwbS5jCmluZGV4IGJlNmIxOTk1MWU2YS4uMzQxMTgwMzE4OGFhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaV9kcG0uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9jaV9kcG0uYwpAQCAtNTc4OSw3ICs1Nzg5LDYgQEAgc3RhdGljIGludCBj aV9kcG1faW5pdF9taWNyb2NvZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJY29u c3QgY2hhciAqY2hpcF9uYW1lOwogCWNoYXIgZndfbmFtZVszMF07Ci0JaW50IGVycjsKIAogCURS TV9ERUJVRygiXG4iKTsKIApAQCAtNTgxNSwxOCArNTgxNCw4IEBAIHN0YXRpYyBpbnQgY2lfZHBt X2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCX0KIAogCXNucHJp bnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgInJhZGVvbi8lc19zbWMuYmluIiwgY2hpcF9u YW1lKTsKLQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5wbS5mdywgZndfbmFtZSwgYWRl di0+ZGV2KTsKLQlpZiAoZXJyKQotCQlnb3RvIG91dDsKLQllcnIgPSBhbWRncHVfdWNvZGVfdmFs aWRhdGUoYWRldi0+cG0uZncpOwotCi1vdXQ6Ci0JaWYgKGVycikgewotCQlwcl9lcnIoImNpa19z bWM6IEZhaWxlZCB0byBsb2FkIGZpcm13YXJlIFwiJXNcIlxuIiwgZndfbmFtZSk7Ci0JCXJlbGVh c2VfZmlybXdhcmUoYWRldi0+cG0uZncpOwotCQlhZGV2LT5wbS5mdyA9IE5VTEw7Ci0JfQotCXJl dHVybiBlcnI7CisJcmV0dXJuIGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZh ZGV2LT5wbS5mdywgZndfbmFtZSwKKwkJCQkJICAgICBmYWxzZSk7CiB9CiAKIHN0YXRpYyBpbnQg Y2lfZHBtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvY2lrX3NkbWEuYwppbmRleCBhNzU3NjI1NWNjMzAuLjc3NGQ5YWVjYWIwMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX3NkbWEuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jCkBAIC0xMzUsMTQgKzEzNSwxMyBAQCBzdGF0 aWMgaW50IGNpa19zZG1hX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCQkJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAicmFkZW9uLyVzX3NkbWEu YmluIiwgY2hpcF9uYW1lKTsKIAkJZWxzZQogCQkJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3 X25hbWUpLCAicmFkZW9uLyVzX3NkbWExLmJpbiIsIGNoaXBfbmFtZSk7Ci0JCWVyciA9IHJlcXVl c3RfZmlybXdhcmUoJmFkZXYtPnNkbWEuaW5zdGFuY2VbaV0uZncsIGZ3X25hbWUsIGFkZXYtPmRl dik7CisJCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2LT5z ZG1hLmluc3RhbmNlW2ldLmZ3LAorCQkJCQkJICAgIGZ3X25hbWUsIGZhbHNlKTsKIAkJaWYgKGVy cikKIAkJCWdvdG8gb3V0OwotCQllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoYWRldi0+c2Rt YS5pbnN0YW5jZVtpXS5mdyk7CiAJfQogb3V0OgogCWlmIChlcnIpIHsKLQkJcHJfZXJyKCJjaWtf c2RtYTogRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgXCIlc1wiXG4iLCBmd19uYW1lKTsKIAkJZm9y IChpID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7CiAJCQlyZWxlYXNl X2Zpcm13YXJlKGFkZXYtPnNkbWEuaW5zdGFuY2VbaV0uZncpOwogCQkJYWRldi0+c2RtYS5pbnN0 YW5jZVtpXS5mdyA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nZnhfdjZfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y2XzAuYwppbmRl eCBjZDZiZjI5MWE4NTMuLmU1YmNiZWM0MWExZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZ2Z4X3Y2XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n ZnhfdjZfMC5jCkBAIC0zMzYsMTAgKzMzNiw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y2XzBfaW5pdF9t aWNyb2NvZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJfQogCiAJc25wcmludGYoZndf bmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAicmFkZW9uLyVzX3BmcC5iaW4iLCBjaGlwX25hbWUpOwot CWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5wZnBfZncsIGZ3X25hbWUsIGFkZXYt PmRldik7Ci0JaWYgKGVycikKLQkJZ290byBvdXQ7Ci0JZXJyID0gYW1kZ3B1X3Vjb2RlX3ZhbGlk YXRlKGFkZXYtPmdmeC5wZnBfZncpOworCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13 YXJlKGFkZXYsICZhZGV2LT5nZngucGZwX2Z3LCBmd19uYW1lLCBmYWxzZSk7CiAJaWYgKGVycikK IAkJZ290byBvdXQ7CiAJY3BfaGRyID0gKGNvbnN0IHN0cnVjdCBnZnhfZmlybXdhcmVfaGVhZGVy X3YxXzAgKilhZGV2LT5nZngucGZwX2Z3LT5kYXRhOwpAQCAtMzQ3LDEwICszNDQsNyBAQCBzdGF0 aWMgaW50IGdmeF92Nl8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCWFkZXYtPmdmeC5wZnBfZmVhdHVyZV92ZXJzaW9uID0gbGUzMl90b19jcHUoY3BfaGRyLT51 Y29kZV9mZWF0dXJlX3ZlcnNpb24pOwogCiAJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25h bWUpLCAicmFkZW9uLyVzX21lLmJpbiIsIGNoaXBfbmFtZSk7Ci0JZXJyID0gcmVxdWVzdF9maXJt d2FyZSgmYWRldi0+Z2Z4Lm1lX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCWlmIChlcnIpCi0J CWdvdG8gb3V0OwotCWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5nZngubWVfZncp OworCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2LT5nZngu bWVfZncsIGZ3X25hbWUsIGZhbHNlKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAljcF9oZHIg PSAoY29uc3Qgc3RydWN0IGdmeF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqKWFkZXYtPmdmeC5tZV9m dy0+ZGF0YTsKQEAgLTM1OCwxMCArMzUyLDcgQEAgc3RhdGljIGludCBnZnhfdjZfMF9pbml0X21p Y3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlhZGV2LT5nZngubWVfZmVhdHVy ZV92ZXJzaW9uID0gbGUzMl90b19jcHUoY3BfaGRyLT51Y29kZV9mZWF0dXJlX3ZlcnNpb24pOwog CiAJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAicmFkZW9uLyVzX2NlLmJpbiIs IGNoaXBfbmFtZSk7Ci0JZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z2Z4LmNlX2Z3LCBm d19uYW1lLCBhZGV2LT5kZXYpOwotCWlmIChlcnIpCi0JCWdvdG8gb3V0OwotCWVyciA9IGFtZGdw dV91Y29kZV92YWxpZGF0ZShhZGV2LT5nZnguY2VfZncpOworCWVyciA9IGFtZGdwdV91Y29kZV9y ZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2LT5nZnguY2VfZncsIGZ3X25hbWUsIGZhbHNlKTsK IAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAljcF9oZHIgPSAoY29uc3Qgc3RydWN0IGdmeF9maXJt d2FyZV9oZWFkZXJfdjFfMCAqKWFkZXYtPmdmeC5jZV9mdy0+ZGF0YTsKQEAgLTM2OSwxNyArMzYw LDE1IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y2XzBfaW5pdF9taWNyb2NvZGUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJYWRldi0+Z2Z4LmNlX2ZlYXR1cmVfdmVyc2lvbiA9IGxlMzJfdG9fY3B1 KGNwX2hkci0+dWNvZGVfZmVhdHVyZV92ZXJzaW9uKTsKIAogCXNucHJpbnRmKGZ3X25hbWUsIHNp emVvZihmd19uYW1lKSwgInJhZGVvbi8lc19ybGMuYmluIiwgY2hpcF9uYW1lKTsKLQllcnIgPSBy ZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5nZngucmxjX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwor CWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2LT5nZngucmxj X2Z3LCBmd19uYW1lLCBmYWxzZSk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7Ci0JZXJyID0gYW1k Z3B1X3Vjb2RlX3ZhbGlkYXRlKGFkZXYtPmdmeC5ybGNfZncpOwogCXJsY19oZHIgPSAoY29uc3Qg c3RydWN0IHJsY19maXJtd2FyZV9oZWFkZXJfdjFfMCAqKWFkZXYtPmdmeC5ybGNfZnctPmRhdGE7 CiAJYWRldi0+Z2Z4LnJsY19md192ZXJzaW9uID0gbGUzMl90b19jcHUocmxjX2hkci0+aGVhZGVy LnVjb2RlX3ZlcnNpb24pOwogCWFkZXYtPmdmeC5ybGNfZmVhdHVyZV92ZXJzaW9uID0gbGUzMl90 b19jcHUocmxjX2hkci0+dWNvZGVfZmVhdHVyZV92ZXJzaW9uKTsKIAogb3V0OgogCWlmIChlcnIp IHsKLQkJcHJfZXJyKCJnZng2OiBGYWlsZWQgdG8gbG9hZCBmaXJtd2FyZSBcIiVzXCJcbiIsIGZ3 X25hbWUpOwogCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYtPmdmeC5wZnBfZncpOwogCQlhZGV2LT5n ZngucGZwX2Z3ID0gTlVMTDsKIAkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5nZngubWVfZncpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMKaW5kZXggNDJiNjE0NGMxZmQ1Li45YWVk MWJlMWM5YjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18w LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwpAQCAtOTI2LDU2 ICs5MjYsNDAgQEAgc3RhdGljIGludCBnZnhfdjdfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAl9CiAKIAlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFt ZSksICJyYWRlb24vJXNfcGZwLmJpbiIsIGNoaXBfbmFtZSk7Ci0JZXJyID0gcmVxdWVzdF9maXJt d2FyZSgmYWRldi0+Z2Z4LnBmcF9mdywgZndfbmFtZSwgYWRldi0+ZGV2KTsKLQlpZiAoZXJyKQot CQlnb3RvIG91dDsKLQllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoYWRldi0+Z2Z4LnBmcF9m dyk7CisJZXJyID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPmdm eC5wZnBfZncsIGZ3X25hbWUsIGZhbHNlKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAogCXNu cHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgInJhZGVvbi8lc19tZS5iaW4iLCBjaGlw X25hbWUpOwotCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5tZV9mdywgZndfbmFt ZSwgYWRldi0+ZGV2KTsKLQlpZiAoZXJyKQotCQlnb3RvIG91dDsKLQllcnIgPSBhbWRncHVfdWNv ZGVfdmFsaWRhdGUoYWRldi0+Z2Z4Lm1lX2Z3KTsKKwllcnIgPSBhbWRncHVfdWNvZGVfcmVxdWVz dF9maXJtd2FyZShhZGV2LCAmYWRldi0+Z2Z4Lm1lX2Z3LCBmd19uYW1lLCBmYWxzZSk7CiAJaWYg KGVycikKIAkJZ290byBvdXQ7CiAKIAlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSks ICJyYWRlb24vJXNfY2UuYmluIiwgY2hpcF9uYW1lKTsKLQllcnIgPSByZXF1ZXN0X2Zpcm13YXJl KCZhZGV2LT5nZnguY2VfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7Ci0JaWYgKGVycikKLQkJZ290 byBvdXQ7Ci0JZXJyID0gYW1kZ3B1X3Vjb2RlX3ZhbGlkYXRlKGFkZXYtPmdmeC5jZV9mdyk7CisJ ZXJyID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPmdmeC5jZV9m dywgZndfbmFtZSwgZmFsc2UpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCiAJc25wcmludGYo ZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAicmFkZW9uLyVzX21lYy5iaW4iLCBjaGlwX25hbWUp OwotCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5tZWNfZncsIGZ3X25hbWUsIGFk ZXYtPmRldik7Ci0JaWYgKGVycikKLQkJZ290byBvdXQ7Ci0JZXJyID0gYW1kZ3B1X3Vjb2RlX3Zh bGlkYXRlKGFkZXYtPmdmeC5tZWNfZncpOworCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zp cm13YXJlKGFkZXYsICZhZGV2LT5nZngubWVjX2Z3LCBmd19uYW1lLCBmYWxzZSk7CiAJaWYgKGVy cikKIAkJZ290byBvdXQ7CiAKIAlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfS0FWRVJJKSB7 CiAJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgInJhZGVvbi8lc19tZWMyLmJp biIsIGNoaXBfbmFtZSk7Ci0JCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5tZWMy X2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7Ci0JCWVy ciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5nZngubWVjMl9mdyk7CisJCWVyciA9IGFt ZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2LT5nZngubWVjMl9mdywgZndf bmFtZSwKKwkJCQkJCSAgICBmYWxzZSk7CiAJCWlmIChlcnIpCiAJCQlnb3RvIG91dDsKIAl9CiAK IAlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJyYWRlb24vJXNfcmxjLmJpbiIs IGNoaXBfbmFtZSk7Ci0JZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z2Z4LnJsY19mdywg ZndfbmFtZSwgYWRldi0+ZGV2KTsKKwllcnIgPSBhbWRncHVfdWNvZGVfcmVxdWVzdF9maXJtd2Fy ZShhZGV2LCAmYWRldi0+Z2Z4LnJsY19mdywgZndfbmFtZSwgZmFsc2UpOwogCWlmIChlcnIpCiAJ CWdvdG8gb3V0OwotCWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5nZngucmxjX2Z3 KTsKIAogb3V0OgogCWlmIChlcnIpIHsKLQkJcHJfZXJyKCJnZng3OiBGYWlsZWQgdG8gbG9hZCBm aXJtd2FyZSBcIiVzXCJcbiIsIGZ3X25hbWUpOwogCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYtPmdm eC5wZnBfZncpOwogCQlhZGV2LT5nZngucGZwX2Z3ID0gTlVMTDsKIAkJcmVsZWFzZV9maXJtd2Fy ZShhZGV2LT5nZngubWVfZncpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ2Z4X3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKaW5k ZXggYjBlNTkxZWFhNzFhLi5iMTBjZTQ3ODZiOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y4XzAuYwpAQCAtOTM0LDYzICs5MzQsNTcgQEAgc3RhdGljIGludCBnZnhfdjhfMF9pbml0 X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJQlVHKCk7CiAJfQogCisJ YWRldi0+Z2Z4LnBmcF9mdyA9IE5VTEw7CiAJaWYgKGFkZXYtPmFzaWNfdHlwZSA+PSBDSElQX1BP TEFSSVMxMCAmJiBhZGV2LT5hc2ljX3R5cGUgPD0gQ0hJUF9QT0xBUklTMTIpIHsKIAkJc25wcmlu dGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX3BmcF8yLmJpbiIsIGNoaXBf bmFtZSk7Ci0JCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5wZnBfZncsIGZ3X25h bWUsIGFkZXYtPmRldik7Ci0JCWlmIChlcnIgPT0gLUVOT0VOVCkgewotCQkJc25wcmludGYoZndf bmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX3BmcC5iaW4iLCBjaGlwX25hbWUpOwot CQkJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z2Z4LnBmcF9mdywgZndfbmFtZSwgYWRl di0+ZGV2KTsKLQkJfQotCX0gZWxzZSB7CisJCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zp cm13YXJlKGFkZXYsICZhZGV2LT5nZngucGZwX2Z3LCBmd19uYW1lLCB0cnVlKTsKKwkJaWYgKGVy cikKKwkJCWdvdG8gb3V0OworCX0KKworCWlmICghYWRldi0+Z2Z4LnBmcF9mdykgewogCQlzbnBy aW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfcGZwLmJpbiIsIGNoaXBf bmFtZSk7Ci0JCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5wZnBfZncsIGZ3X25h bWUsIGFkZXYtPmRldik7CisJCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFk ZXYsICZhZGV2LT5nZngucGZwX2Z3LCBmd19uYW1lLCBmYWxzZSk7CisJCWlmIChlcnIpCisJCQln b3RvIG91dDsKIAl9Ci0JaWYgKGVycikKLQkJZ290byBvdXQ7Ci0JZXJyID0gYW1kZ3B1X3Vjb2Rl X3ZhbGlkYXRlKGFkZXYtPmdmeC5wZnBfZncpOwotCWlmIChlcnIpCi0JCWdvdG8gb3V0OworCiAJ Y3BfaGRyID0gKGNvbnN0IHN0cnVjdCBnZnhfZmlybXdhcmVfaGVhZGVyX3YxXzAgKilhZGV2LT5n ZngucGZwX2Z3LT5kYXRhOwogCWFkZXYtPmdmeC5wZnBfZndfdmVyc2lvbiA9IGxlMzJfdG9fY3B1 KGNwX2hkci0+aGVhZGVyLnVjb2RlX3ZlcnNpb24pOwogCWFkZXYtPmdmeC5wZnBfZmVhdHVyZV92 ZXJzaW9uID0gbGUzMl90b19jcHUoY3BfaGRyLT51Y29kZV9mZWF0dXJlX3ZlcnNpb24pOwogCisJ YWRldi0+Z2Z4Lm1lX2Z3ID0gTlVMTDsKIAlpZiAoYWRldi0+YXNpY190eXBlID49IENISVBfUE9M QVJJUzEwICYmIGFkZXYtPmFzaWNfdHlwZSA8PSBDSElQX1BPTEFSSVMxMikgewogCQlzbnByaW50 Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfbWVfMi5iaW4iLCBjaGlwX25h bWUpOwotCQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5nZngubWVfZncsIGZ3X25hbWUs IGFkZXYtPmRldik7Ci0JCWlmIChlcnIgPT0gLUVOT0VOVCkgewotCQkJc25wcmludGYoZndfbmFt ZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX21lLmJpbiIsIGNoaXBfbmFtZSk7Ci0JCQll cnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5nZngubWVfZncsIGZ3X25hbWUsIGFkZXYtPmRl dik7Ci0JCX0KLQl9IGVsc2UgeworCQllcnIgPSBhbWRncHVfdWNvZGVfcmVxdWVzdF9maXJtd2Fy ZShhZGV2LCAmYWRldi0+Z2Z4Lm1lX2Z3LCBmd19uYW1lLCB0cnVlKTsKKwkJaWYgKGVycikKKwkJ CWdvdG8gb3V0OworCX0KKworCWlmICghYWRldi0+Z2Z4Lm1lX2Z3KSB7CiAJCXNucHJpbnRmKGZ3 X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19tZS5iaW4iLCBjaGlwX25hbWUpOwot CQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5nZngubWVfZncsIGZ3X25hbWUsIGFkZXYt PmRldik7CisJCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2 LT5nZngubWVfZncsIGZ3X25hbWUsIGZhbHNlKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0Owog CX0KLQlpZiAoZXJyKQotCQlnb3RvIG91dDsKLQllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUo YWRldi0+Z2Z4Lm1lX2Z3KTsKLQlpZiAoZXJyKQotCQlnb3RvIG91dDsKIAljcF9oZHIgPSAoY29u c3Qgc3RydWN0IGdmeF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqKWFkZXYtPmdmeC5tZV9mdy0+ZGF0 YTsKIAlhZGV2LT5nZngubWVfZndfdmVyc2lvbiA9IGxlMzJfdG9fY3B1KGNwX2hkci0+aGVhZGVy LnVjb2RlX3ZlcnNpb24pOwogCiAJYWRldi0+Z2Z4Lm1lX2ZlYXR1cmVfdmVyc2lvbiA9IGxlMzJf dG9fY3B1KGNwX2hkci0+dWNvZGVfZmVhdHVyZV92ZXJzaW9uKTsKIAorCWFkZXYtPmdmeC5jZV9m dyA9IE5VTEw7CiAJaWYgKGFkZXYtPmFzaWNfdHlwZSA+PSBDSElQX1BPTEFSSVMxMCAmJiBhZGV2 LT5hc2ljX3R5cGUgPD0gQ0hJUF9QT0xBUklTMTIpIHsKIAkJc25wcmludGYoZndfbmFtZSwgc2l6 ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX2NlXzIuYmluIiwgY2hpcF9uYW1lKTsKLQkJZXJyID0g cmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z2Z4LmNlX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwot CQlpZiAoZXJyID09IC1FTk9FTlQpIHsKLQkJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19u YW1lKSwgImFtZGdwdS8lc19jZS5iaW4iLCBjaGlwX25hbWUpOwotCQkJZXJyID0gcmVxdWVzdF9m aXJtd2FyZSgmYWRldi0+Z2Z4LmNlX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCQl9Ci0JfSBl bHNlIHsKKwkJZXJyID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYt PmdmeC5jZV9mdywgZndfbmFtZSwgdHJ1ZSk7CisJCWlmIChlcnIpCisJCQlnb3RvIG91dDsKKwl9 CisJaWYgKCFhZGV2LT5nZnguY2VfZncpIHsKIAkJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3 X25hbWUpLCAiYW1kZ3B1LyVzX2NlLmJpbiIsIGNoaXBfbmFtZSk7Ci0JCWVyciA9IHJlcXVlc3Rf ZmlybXdhcmUoJmFkZXYtPmdmeC5jZV9mdywgZndfbmFtZSwgYWRldi0+ZGV2KTsKKwkJZXJyID0g YW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPmdmeC5jZV9mdywgZndf bmFtZSwgZmFsc2UpOworCQlpZiAoZXJyKQorCQkJZ290byBvdXQ7CiAJfQotCWlmIChlcnIpCi0J CWdvdG8gb3V0OwotCWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5nZnguY2VfZncp OwotCWlmIChlcnIpCi0JCWdvdG8gb3V0OwogCWNwX2hkciA9IChjb25zdCBzdHJ1Y3QgZ2Z4X2Zp cm13YXJlX2hlYWRlcl92MV8wICopYWRldi0+Z2Z4LmNlX2Z3LT5kYXRhOwogCWFkZXYtPmdmeC5j ZV9md192ZXJzaW9uID0gbGUzMl90b19jcHUoY3BfaGRyLT5oZWFkZXIudWNvZGVfdmVyc2lvbik7 CiAJYWRldi0+Z2Z4LmNlX2ZlYXR1cmVfdmVyc2lvbiA9IGxlMzJfdG9fY3B1KGNwX2hkci0+dWNv ZGVfZmVhdHVyZV92ZXJzaW9uKTsKQEAgLTEwMDcsMTAgKzEwMDEsOSBAQCBzdGF0aWMgaW50IGdm eF92OF8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlhZGV2 LT52aXJ0LmNoYWluZWRfaWJfc3VwcG9ydCA9IGZhbHNlOwogCiAJc25wcmludGYoZndfbmFtZSwg c2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX3JsYy5iaW4iLCBjaGlwX25hbWUpOwotCWVyciA9 IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5ybGNfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7 CisJZXJyID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPmdmeC5y bGNfZncsIGZ3X25hbWUsIGZhbHNlKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKLQllcnIgPSBh bWRncHVfdWNvZGVfdmFsaWRhdGUoYWRldi0+Z2Z4LnJsY19mdyk7CiAJcmxjX2hkciA9IChjb25z dCBzdHJ1Y3QgcmxjX2Zpcm13YXJlX2hlYWRlcl92Ml8wICopYWRldi0+Z2Z4LnJsY19mdy0+ZGF0 YTsKIAlhZGV2LT5nZngucmxjX2Z3X3ZlcnNpb24gPSBsZTMyX3RvX2NwdShybGNfaGRyLT5oZWFk ZXIudWNvZGVfdmVyc2lvbik7CiAJYWRldi0+Z2Z4LnJsY19mZWF0dXJlX3ZlcnNpb24gPSBsZTMy X3RvX2NwdShybGNfaGRyLT51Y29kZV9mZWF0dXJlX3ZlcnNpb24pOwpAQCAtMTA1NSw0MyArMTA0 OCwzOSBAQCBzdGF0aWMgaW50IGdmeF92OF8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCWZvciAoaSA9IDAgOyBpIDwgKHJsY19oZHItPnJlZ19saXN0X3NpemVf Ynl0ZXMgPj4gMik7IGkrKykKIAkJYWRldi0+Z2Z4LnJsYy5yZWdpc3Rlcl9yZXN0b3JlW2ldID0g bGUzMl90b19jcHUodG1wW2ldKTsKIAorCWFkZXYtPmdmeC5tZWNfZncgPSBOVUxMOwogCWlmIChh ZGV2LT5hc2ljX3R5cGUgPj0gQ0hJUF9QT0xBUklTMTAgJiYgYWRldi0+YXNpY190eXBlIDw9IENI SVBfUE9MQVJJUzEyKSB7CiAJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFt ZGdwdS8lc19tZWNfMi5iaW4iLCBjaGlwX25hbWUpOwotCQllcnIgPSByZXF1ZXN0X2Zpcm13YXJl KCZhZGV2LT5nZngubWVjX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCQlpZiAoZXJyID09IC1F Tk9FTlQpIHsKLQkJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8l c19tZWMuYmluIiwgY2hpcF9uYW1lKTsKLQkJCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYt PmdmeC5tZWNfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7Ci0JCX0KLQl9IGVsc2UgeworCQllcnIg PSBhbWRncHVfdWNvZGVfcmVxdWVzdF9maXJtd2FyZShhZGV2LCAmYWRldi0+Z2Z4Lm1lY19mdywg ZndfbmFtZSwgdHJ1ZSk7CisJCWlmIChlcnIpCisJCQlnb3RvIG91dDsKKwl9CisJaWYgKCFhZGV2 LT5nZngubWVjX2Z3KSB7CiAJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFt ZGdwdS8lc19tZWMuYmluIiwgY2hpcF9uYW1lKTsKLQkJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgm YWRldi0+Z2Z4Lm1lY19mdywgZndfbmFtZSwgYWRldi0+ZGV2KTsKKwkJZXJyID0gYW1kZ3B1X3Vj b2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPmdmeC5tZWNfZncsIGZ3X25hbWUsIGZh bHNlKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0OwogCX0KLQlpZiAoZXJyKQotCQlnb3RvIG91 dDsKLQllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoYWRldi0+Z2Z4Lm1lY19mdyk7Ci0JaWYg KGVycikKLQkJZ290byBvdXQ7CiAJY3BfaGRyID0gKGNvbnN0IHN0cnVjdCBnZnhfZmlybXdhcmVf aGVhZGVyX3YxXzAgKilhZGV2LT5nZngubWVjX2Z3LT5kYXRhOwogCWFkZXYtPmdmeC5tZWNfZndf dmVyc2lvbiA9IGxlMzJfdG9fY3B1KGNwX2hkci0+aGVhZGVyLnVjb2RlX3ZlcnNpb24pOwogCWFk ZXYtPmdmeC5tZWNfZmVhdHVyZV92ZXJzaW9uID0gbGUzMl90b19jcHUoY3BfaGRyLT51Y29kZV9m ZWF0dXJlX3ZlcnNpb24pOwogCiAJaWYgKChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9TVE9ORVkp ICYmCiAJICAgIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9UT1BBWikpIHsKKwkJYWRldi0+Z2Z4 Lm1lYzJfZncgPSBOVUxMOwogCQlpZiAoYWRldi0+YXNpY190eXBlID49IENISVBfUE9MQVJJUzEw ICYmIGFkZXYtPmFzaWNfdHlwZSA8PSBDSElQX1BPTEFSSVMxMikgewogCQkJc25wcmludGYoZndf bmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX21lYzJfMi5iaW4iLCBjaGlwX25hbWUp OwotCQkJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z2Z4Lm1lYzJfZncsIGZ3X25hbWUs IGFkZXYtPmRldik7Ci0JCQlpZiAoZXJyID09IC1FTk9FTlQpIHsKLQkJCQlzbnByaW50Zihmd19u YW1lLCBzaXplb2YoZndfbmFtZSksICJhbWRncHUvJXNfbWVjMi5iaW4iLCBjaGlwX25hbWUpOwot CQkJCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5tZWMyX2Z3LCBmd19uYW1lLCBh ZGV2LT5kZXYpOwotCQkJfQotCQl9IGVsc2UgewotCQkJc25wcmludGYoZndfbmFtZSwgc2l6ZW9m KGZ3X25hbWUpLCAiYW1kZ3B1LyVzX21lYzIuYmluIiwgY2hpcF9uYW1lKTsKLQkJCWVyciA9IHJl cXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5tZWMyX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwor CQkJZXJyID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPmdmeC5t ZWMyX2Z3LCBmd19uYW1lLCB0cnVlKTsKKwkJCWlmIChlcnIpCisJCQkJZ290byBvdXQ7CiAJCX0K LQkJaWYgKCFlcnIpIHsKLQkJCWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5nZngu bWVjMl9mdyk7CisJCWlmICghYWRldi0+Z2Z4Lm1lYzJfZncpIHsKKwkJCXNucHJpbnRmKGZ3X25h bWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19tZWMyLmJpbiIsIGNoaXBfbmFtZSk7CisJ CQllcnIgPSBhbWRncHVfdWNvZGVfcmVxdWVzdF9maXJtd2FyZShhZGV2LCAmYWRldi0+Z2Z4Lm1l YzJfZncsIGZ3X25hbWUsIHRydWUpOwogCQkJaWYgKGVycikKIAkJCQlnb3RvIG91dDsKKwkJfQor CQlpZiAoIWVycikgewogCQkJY3BfaGRyID0gKGNvbnN0IHN0cnVjdCBnZnhfZmlybXdhcmVfaGVh ZGVyX3YxXzAgKikKIAkJCQlhZGV2LT5nZngubWVjMl9mdy0+ZGF0YTsKIAkJCWFkZXYtPmdmeC5t ZWMyX2Z3X3ZlcnNpb24gPQpAQCAtMTE2Niw5ICsxMTU1LDYgQEAgc3RhdGljIGludCBnZnhfdjhf MF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogb3V0OgogCWlm IChlcnIpIHsKLQkJZGV2X2VycihhZGV2LT5kZXYsCi0JCQkiZ2Z4ODogRmFpbGVkIHRvIGxvYWQg ZmlybXdhcmUgXCIlc1wiXG4iLAotCQkJZndfbmFtZSk7CiAJCXJlbGVhc2VfZmlybXdhcmUoYWRl di0+Z2Z4LnBmcF9mdyk7CiAJCWFkZXYtPmdmeC5wZnBfZncgPSBOVUxMOwogCQlyZWxlYXNlX2Zp cm13YXJlKGFkZXYtPmdmeC5tZV9mdyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjlfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAu YwppbmRleCA5ZDM5ZmQ1YjE4MjIuLmRhMmE4MjlkNzcyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nZnhfdjlfMC5jCkBAIC00MzAsMTAgKzQzMCw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBf aW5pdF9taWNyb2NvZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJfQogCiAJc25wcmlu dGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX3BmcC5iaW4iLCBjaGlwX25h bWUpOwotCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5wZnBfZncsIGZ3X25hbWUs IGFkZXYtPmRldik7Ci0JaWYgKGVycikKLQkJZ290byBvdXQ7Ci0JZXJyID0gYW1kZ3B1X3Vjb2Rl X3ZhbGlkYXRlKGFkZXYtPmdmeC5wZnBfZncpOworCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0 X2Zpcm13YXJlKGFkZXYsICZhZGV2LT5nZngucGZwX2Z3LCBmd19uYW1lLCBmYWxzZSk7CiAJaWYg KGVycikKIAkJZ290byBvdXQ7CiAJY3BfaGRyID0gKGNvbnN0IHN0cnVjdCBnZnhfZmlybXdhcmVf aGVhZGVyX3YxXzAgKilhZGV2LT5nZngucGZwX2Z3LT5kYXRhOwpAQCAtNDQxLDEwICs0MzgsNyBA QCBzdGF0aWMgaW50IGdmeF92OV8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCWFkZXYtPmdmeC5wZnBfZmVhdHVyZV92ZXJzaW9uID0gbGUzMl90b19jcHUoY3Bf aGRyLT51Y29kZV9mZWF0dXJlX3ZlcnNpb24pOwogCiAJc25wcmludGYoZndfbmFtZSwgc2l6ZW9m KGZ3X25hbWUpLCAiYW1kZ3B1LyVzX21lLmJpbiIsIGNoaXBfbmFtZSk7Ci0JZXJyID0gcmVxdWVz dF9maXJtd2FyZSgmYWRldi0+Z2Z4Lm1lX2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCWlmIChl cnIpCi0JCWdvdG8gb3V0OwotCWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5nZngu bWVfZncpOworCWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2 LT5nZngubWVfZncsIGZ3X25hbWUsIGZhbHNlKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAlj cF9oZHIgPSAoY29uc3Qgc3RydWN0IGdmeF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqKWFkZXYtPmdm eC5tZV9mdy0+ZGF0YTsKQEAgLTQ1MiwxMCArNDQ2LDcgQEAgc3RhdGljIGludCBnZnhfdjlfMF9p bml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlhZGV2LT5nZngubWVf ZmVhdHVyZV92ZXJzaW9uID0gbGUzMl90b19jcHUoY3BfaGRyLT51Y29kZV9mZWF0dXJlX3ZlcnNp b24pOwogCiAJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX2Nl LmJpbiIsIGNoaXBfbmFtZSk7Ci0JZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z2Z4LmNl X2Z3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCWlmIChlcnIpCi0JCWdvdG8gb3V0OwotCWVyciA9 IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5nZnguY2VfZncpOworCWVyciA9IGFtZGdwdV91 Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2LT5nZnguY2VfZncsIGZ3X25hbWUsIGZh bHNlKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAljcF9oZHIgPSAoY29uc3Qgc3RydWN0IGdm eF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqKWFkZXYtPmdmeC5jZV9mdy0+ZGF0YTsKQEAgLTQ2Mywx MCArNDU0LDkgQEAgc3RhdGljIGludCBnZnhfdjlfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAlhZGV2LT5nZnguY2VfZmVhdHVyZV92ZXJzaW9uID0gbGUzMl90 b19jcHUoY3BfaGRyLT51Y29kZV9mZWF0dXJlX3ZlcnNpb24pOwogCiAJc25wcmludGYoZndfbmFt ZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX3JsYy5iaW4iLCBjaGlwX25hbWUpOwotCWVy ciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPmdmeC5ybGNfZncsIGZ3X25hbWUsIGFkZXYtPmRl dik7CisJZXJyID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPmdm eC5ybGNfZncsIGZ3X25hbWUsIGZhbHNlKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKLQllcnIg PSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoYWRldi0+Z2Z4LnJsY19mdyk7CiAJcmxjX2hkciA9IChj b25zdCBzdHJ1Y3QgcmxjX2Zpcm13YXJlX2hlYWRlcl92Ml8wICopYWRldi0+Z2Z4LnJsY19mdy0+ ZGF0YTsKIAlhZGV2LT5nZngucmxjX2Z3X3ZlcnNpb24gPSBsZTMyX3RvX2NwdShybGNfaGRyLT5o ZWFkZXIudWNvZGVfdmVyc2lvbik7CiAJYWRldi0+Z2Z4LnJsY19mZWF0dXJlX3ZlcnNpb24gPSBs ZTMyX3RvX2NwdShybGNfaGRyLT51Y29kZV9mZWF0dXJlX3ZlcnNpb24pOwpAQCAtNTA5LDEwICs0 OTksNyBAQCBzdGF0aWMgaW50IGdmeF92OV8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCQlhZGV2LT5nZngucmxjLnJlZ2lzdGVyX3Jlc3RvcmVbaV0gPSBsZTMy X3RvX2NwdSh0bXBbaV0pOwogCiAJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAi YW1kZ3B1LyVzX21lYy5iaW4iLCBjaGlwX25hbWUpOwotCWVyciA9IHJlcXVlc3RfZmlybXdhcmUo JmFkZXYtPmdmeC5tZWNfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7Ci0JaWYgKGVycikKLQkJZ290 byBvdXQ7Ci0JZXJyID0gYW1kZ3B1X3Vjb2RlX3ZhbGlkYXRlKGFkZXYtPmdmeC5tZWNfZncpOwor CWVyciA9IGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2LT5nZngubWVj X2Z3LCBmd19uYW1lLCBmYWxzZSk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAJY3BfaGRyID0g KGNvbnN0IHN0cnVjdCBnZnhfZmlybXdhcmVfaGVhZGVyX3YxXzAgKilhZGV2LT5nZngubWVjX2Z3 LT5kYXRhOwpAQCAtNTIxLDIwICs1MDgsMTcgQEAgc3RhdGljIGludCBnZnhfdjlfMF9pbml0X21p Y3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCiAJc25wcmludGYoZndfbmFt ZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX21lYzIuYmluIiwgY2hpcF9uYW1lKTsKLQll cnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5nZngubWVjMl9mdywgZndfbmFtZSwgYWRldi0+ ZGV2KTsKLQlpZiAoIWVycikgewotCQllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoYWRldi0+ Z2Z4Lm1lYzJfZncpOwotCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7CisJZXJyID0gYW1kZ3B1X3Vj b2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPmdmeC5tZWMyX2Z3LCBmd19uYW1lLCB0 cnVlKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dDsKKworCWlmIChhZGV2LT5nZngubWVjMl9mdykg ewogCQljcF9oZHIgPSAoY29uc3Qgc3RydWN0IGdmeF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqKQog CQlhZGV2LT5nZngubWVjMl9mdy0+ZGF0YTsKIAkJYWRldi0+Z2Z4Lm1lYzJfZndfdmVyc2lvbiA9 CiAJCWxlMzJfdG9fY3B1KGNwX2hkci0+aGVhZGVyLnVjb2RlX3ZlcnNpb24pOwogCQlhZGV2LT5n ZngubWVjMl9mZWF0dXJlX3ZlcnNpb24gPQogCQlsZTMyX3RvX2NwdShjcF9oZHItPnVjb2RlX2Zl YXR1cmVfdmVyc2lvbik7Ci0JfSBlbHNlIHsKLQkJZXJyID0gMDsKLQkJYWRldi0+Z2Z4Lm1lYzJf ZncgPSBOVUxMOwogCX0KIAogCWlmIChhZGV2LT5maXJtd2FyZS5sb2FkX3R5cGUgPT0gQU1ER1BV X0ZXX0xPQURfUFNQKSB7CkBAIC01OTksOSArNTgzLDYgQEAgc3RhdGljIGludCBnZnhfdjlfMF9p bml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogb3V0OgogCWlmIChl cnIpIHsKLQkJZGV2X2VycihhZGV2LT5kZXYsCi0JCQkiZ2Z4OTogRmFpbGVkIHRvIGxvYWQgZmly bXdhcmUgXCIlc1wiXG4iLAotCQkJZndfbmFtZSk7CiAJCXJlbGVhc2VfZmlybXdhcmUoYWRldi0+ Z2Z4LnBmcF9mdyk7CiAJCWFkZXYtPmdmeC5wZnBfZncgPSBOVUxMOwogCQlyZWxlYXNlX2Zpcm13 YXJlKGFkZXYtPmdmeC5tZV9mdyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nbWNfdjZfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYwpp bmRleCA1NjE3Y2Y2MmM1NjYuLmI0OWFkMjFmNTQ2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nbWNfdjZfMC5jCkBAIC0xMDUsNyArMTA1LDYgQEAgc3RhdGljIGludCBnbWNfdjZfMF9pbml0 X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAljb25zdCBjaGFyICpj aGlwX25hbWU7CiAJY2hhciBmd19uYW1lWzMwXTsKLQlpbnQgZXJyOwogCWJvb2wgaXNfNThfZncg PSBmYWxzZTsKIAogCURSTV9ERUJVRygiXG4iKTsKQEAgLTEzNywyMSArMTM2LDcgQEAgc3RhdGlj IGludCBnbWNfdjZfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK IAkJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAicmFkZW9uL3NpNThfbWMuYmlu Iik7CiAJZWxzZQogCQlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJyYWRlb24v JXNfbWMuYmluIiwgY2hpcF9uYW1lKTsKLQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5n bWMuZncsIGZ3X25hbWUsIGFkZXYtPmRldik7Ci0JaWYgKGVycikKLQkJZ290byBvdXQ7Ci0KLQll cnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoYWRldi0+Z21jLmZ3KTsKLQotb3V0OgotCWlmIChl cnIpIHsKLQkJZGV2X2VycihhZGV2LT5kZXYsCi0JCSAgICAgICAic2lfbWM6IEZhaWxlZCB0byBs b2FkIGZpcm13YXJlIFwiJXNcIlxuIiwKLQkJICAgICAgIGZ3X25hbWUpOwotCQlyZWxlYXNlX2Zp cm13YXJlKGFkZXYtPmdtYy5mdyk7Ci0JCWFkZXYtPmdtYy5mdyA9IE5VTEw7Ci0JfQotCXJldHVy biBlcnI7CisJcmV0dXJuIGFtZGdwdV91Y29kZV9yZXF1ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2 LT5nbWMuZncsIGZ3X25hbWUsIGZhbHNlKTsKIH0KIAogc3RhdGljIGludCBnbWNfdjZfMF9tY19s b2FkX21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nbWNfdjdfMC5jCmluZGV4IDgwMDU0ZjM2ZTQ4Ny4uN2IwMTBmZWRiNmVjIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKQEAgLTEyNiw3ICsxMjYsNiBAQCBzdGF0 aWMgaW50IGdtY192N18wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogewogCWNvbnN0IGNoYXIgKmNoaXBfbmFtZTsKIAljaGFyIGZ3X25hbWVbMzBdOwotCWludCBl cnI7CiAKIAlEUk1fREVCVUcoIlxuIik7CiAKQEAgLTE1MiwxOCArMTUxLDcgQEAgc3RhdGljIGlu dCBnbWNfdjdfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAll bHNlCiAJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgInJhZGVvbi8lc19tYy5i aW4iLCBjaGlwX25hbWUpOwogCi0JZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+Z21jLmZ3 LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCWlmIChlcnIpCi0JCWdvdG8gb3V0OwotCWVyciA9IGFt ZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5nbWMuZncpOwotCi1vdXQ6Ci0JaWYgKGVycikgewot CQlwcl9lcnIoImNpa19tYzogRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgXCIlc1wiXG4iLCBmd19u YW1lKTsKLQkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5nbWMuZncpOwotCQlhZGV2LT5nbWMuZncg PSBOVUxMOwotCX0KLQlyZXR1cm4gZXJyOworCXJldHVybiBhbWRncHVfdWNvZGVfcmVxdWVzdF9m aXJtd2FyZShhZGV2LCAmYWRldi0+Z21jLmZ3LCBmd19uYW1lLCBmYWxzZSk7CiB9CiAKIC8qKgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMKaW5kZXggZDcxZDRjYjY4ZjljLi4zNjkz ODczYWU2NDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8w LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYwpAQCAtMjExLDcg KzIxMSw2IEBAIHN0YXRpYyBpbnQgZ21jX3Y4XzBfaW5pdF9taWNyb2NvZGUoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiB7CiAJY29uc3QgY2hhciAqY2hpcF9uYW1lOwogCWNoYXIgZndfbmFt ZVszMF07Ci0JaW50IGVycjsKIAogCURSTV9ERUJVRygiXG4iKTsKIApAQCAtMjM2LDE4ICsyMzUs NyBAQCBzdGF0aWMgaW50IGdtY192OF8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQogCX0KIAogCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFt ZGdwdS8lc19tYy5iaW4iLCBjaGlwX25hbWUpOwotCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFk ZXYtPmdtYy5mdywgZndfbmFtZSwgYWRldi0+ZGV2KTsKLQlpZiAoZXJyKQotCQlnb3RvIG91dDsK LQllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoYWRldi0+Z21jLmZ3KTsKLQotb3V0OgotCWlm IChlcnIpIHsKLQkJcHJfZXJyKCJtYzogRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgXCIlc1wiXG4i LCBmd19uYW1lKTsKLQkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5nbWMuZncpOwotCQlhZGV2LT5n bWMuZncgPSBOVUxMOwotCX0KLQlyZXR1cm4gZXJyOworCXJldHVybiBhbWRncHVfdWNvZGVfcmVx dWVzdF9maXJtd2FyZShhZGV2LCAmYWRldi0+Z21jLmZ3LCBmd19uYW1lLCBmYWxzZSk7CiB9CiAK IC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMF8wLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjEwXzAuYwppbmRleCA4ODczZDgzM2E3 ZjcuLjlhZDNiZjZlYmM1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv cHNwX3YxMF8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMF8wLmMK QEAgLTEwNSwxMyArMTA1LDkgQEAgc3RhdGljIGludCBwc3BfdjEwXzBfaW5pdF9taWNyb2NvZGUo c3RydWN0IHBzcF9jb250ZXh0ICpwc3ApCiAJfQogCiAJc25wcmludGYoZndfbmFtZSwgc2l6ZW9m KGZ3X25hbWUpLCAiYW1kZ3B1LyVzX2FzZC5iaW4iLCBjaGlwX25hbWUpOwotCWVyciA9IHJlcXVl c3RfZmlybXdhcmUoJmFkZXYtPnBzcC5hc2RfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7CisJZXJy ID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPnBzcC5hc2RfZncs IGZ3X25hbWUsIGZhbHNlKTsKIAlpZiAoZXJyKQotCQlnb3RvIG91dDsKLQotCWVyciA9IGFtZGdw dV91Y29kZV92YWxpZGF0ZShhZGV2LT5wc3AuYXNkX2Z3KTsKLQlpZiAoZXJyKQotCQlnb3RvIG91 dDsKKwkJcmV0dXJuIGVycjsKIAogCWhkciA9IChjb25zdCBzdHJ1Y3QgcHNwX2Zpcm13YXJlX2hl YWRlcl92MV8wICopYWRldi0+cHNwLmFzZF9mdy0+ZGF0YTsKIAlhZGV2LT5wc3AuYXNkX2Z3X3Zl cnNpb24gPSBsZTMyX3RvX2NwdShoZHItPmhlYWRlci51Y29kZV92ZXJzaW9uKTsKQEAgLTEyMSwx NiArMTE3LDYgQEAgc3RhdGljIGludCBwc3BfdjEwXzBfaW5pdF9taWNyb2NvZGUoc3RydWN0IHBz cF9jb250ZXh0ICpwc3ApCiAJCQkJbGUzMl90b19jcHUoaGRyLT5oZWFkZXIudWNvZGVfYXJyYXlf b2Zmc2V0X2J5dGVzKTsKIAogCXJldHVybiAwOwotb3V0OgotCWlmIChlcnIpIHsKLQkJZGV2X2Vy cihhZGV2LT5kZXYsCi0JCQkicHNwIHYxMC4wOiBGYWlsZWQgdG8gbG9hZCBmaXJtd2FyZSBcIiVz XCJcbiIsCi0JCQlmd19uYW1lKTsKLQkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5wc3AuYXNkX2Z3 KTsKLQkJYWRldi0+cHNwLmFzZF9mdyA9IE5VTEw7Ci0JfQotCi0JcmV0dXJuIGVycjsKIH0KIAog c3RhdGljIGludCBwc3BfdjEwXzBfcHJlcF9jbWRfYnVmKHN0cnVjdCBhbWRncHVfZmlybXdhcmVf aW5mbyAqdWNvZGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3Bf djNfMS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YzXzEuYwppbmRleCAxOTZl NzVkZWYxZjIuLmI5MWY3YWYxMTk4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvcHNwX3YzXzEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjNf MS5jCkBAIC0xMTYsMTEgKzExNiw3IEBAIHN0YXRpYyBpbnQgcHNwX3YzXzFfaW5pdF9taWNyb2Nv ZGUoc3RydWN0IHBzcF9jb250ZXh0ICpwc3ApCiAJfQogCiAJc25wcmludGYoZndfbmFtZSwgc2l6 ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX3Nvcy5iaW4iLCBjaGlwX25hbWUpOwotCWVyciA9IHJl cXVlc3RfZmlybXdhcmUoJmFkZXYtPnBzcC5zb3NfZncsIGZ3X25hbWUsIGFkZXYtPmRldik7Ci0J aWYgKGVycikKLQkJZ290byBvdXQ7Ci0KLQllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRhdGUoYWRl di0+cHNwLnNvc19mdyk7CisJZXJyID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRl diwgJmFkZXYtPnBzcC5zb3NfZncsIGZ3X25hbWUsIGZhbHNlKTsKIAlpZiAoZXJyKQogCQlnb3Rv IG91dDsKIApAQCAtMTM2LDExICsxMzIsNyBAQCBzdGF0aWMgaW50IHBzcF92M18xX2luaXRfbWlj cm9jb2RlKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQogCQkJCWxlMzJfdG9fY3B1KGhkci0+c29z X29mZnNldF9ieXRlcyk7CiAKIAlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSksICJh bWRncHUvJXNfYXNkLmJpbiIsIGNoaXBfbmFtZSk7Ci0JZXJyID0gcmVxdWVzdF9maXJtd2FyZSgm YWRldi0+cHNwLmFzZF9mdywgZndfbmFtZSwgYWRldi0+ZGV2KTsKLQlpZiAoZXJyKQotCQlnb3Rv IG91dDsKLQotCWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5wc3AuYXNkX2Z3KTsK KwllcnIgPSBhbWRncHVfdWNvZGVfcmVxdWVzdF9maXJtd2FyZShhZGV2LCAmYWRldi0+cHNwLmFz ZF9mdywgZndfbmFtZSwgZmFsc2UpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCkBAIC0xNTQs OSArMTQ2LDYgQEAgc3RhdGljIGludCBwc3BfdjNfMV9pbml0X21pY3JvY29kZShzdHJ1Y3QgcHNw X2NvbnRleHQgKnBzcCkKIAlyZXR1cm4gMDsKIG91dDoKIAlpZiAoZXJyKSB7Ci0JCWRldl9lcnIo YWRldi0+ZGV2LAotCQkJInBzcCB2My4xOiBGYWlsZWQgdG8gbG9hZCBmaXJtd2FyZSBcIiVzXCJc biIsCi0JCQlmd19uYW1lKTsKIAkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5wc3Auc29zX2Z3KTsK IAkJYWRldi0+cHNwLnNvc19mdyA9IE5VTEw7CiAJCXJlbGVhc2VfZmlybXdhcmUoYWRldi0+cHNw LmFzZF9mdyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Yy XzQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5jCmluZGV4IGM3MTkw YzM5YzRmNS4uNzFlMmQ4MjJlMjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9zZG1hX3YyXzQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Yy XzQuYwpAQCAtMTQ2LDEwICsxNDYsNyBAQCBzdGF0aWMgaW50IHNkbWFfdjJfNF9pbml0X21pY3Jv Y29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCXNucHJpbnRmKGZ3X25hbWUsIHNp emVvZihmd19uYW1lKSwgImFtZGdwdS8lc19zZG1hLmJpbiIsIGNoaXBfbmFtZSk7CiAJCWVsc2UK IAkJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19zZG1hMS5i aW4iLCBjaGlwX25hbWUpOwotCQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5zZG1hLmlu c3RhbmNlW2ldLmZ3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCQlpZiAoZXJyKQotCQkJZ290byBv dXQ7Ci0JCWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5zZG1hLmluc3RhbmNlW2ld LmZ3KTsKKwkJZXJyID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYt PnNkbWEuaW5zdGFuY2VbaV0uZncsIGZ3X25hbWUsIGZhbHNlKTsKIAkJaWYgKGVycikKIAkJCWdv dG8gb3V0OwogCQloZHIgPSAoY29uc3Qgc3RydWN0IHNkbWFfZmlybXdhcmVfaGVhZGVyX3YxXzAg KilhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3LT5kYXRhOwpAQCAtMTcwLDcgKzE2Nyw2IEBAIHN0 YXRpYyBpbnQgc2RtYV92Ml80X2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQogCiBvdXQ6CiAJaWYgKGVycikgewotCQlwcl9lcnIoInNkbWFfdjJfNDogRmFpbGVkIHRv IGxvYWQgZmlybXdhcmUgXCIlc1wiXG4iLCBmd19uYW1lKTsKIAkJZm9yIChpID0gMDsgaSA8IGFk ZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7CiAJCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYt PnNkbWEuaW5zdGFuY2VbaV0uZncpOwogCQkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5mdyA9IE5V TEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jCmluZGV4IGJlMjBhMzg3ZDk2 MS4uZGUzMTViYWVmMzBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9z ZG1hX3YzXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYwpA QCAtMjk4LDEwICsyOTgsNyBAQCBzdGF0aWMgaW50IHNkbWFfdjNfMF9pbml0X21pY3JvY29kZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihm d19uYW1lKSwgImFtZGdwdS8lc19zZG1hLmJpbiIsIGNoaXBfbmFtZSk7CiAJCWVsc2UKIAkJCXNu cHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgImFtZGdwdS8lc19zZG1hMS5iaW4iLCBj aGlwX25hbWUpOwotCQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5zZG1hLmluc3RhbmNl W2ldLmZ3LCBmd19uYW1lLCBhZGV2LT5kZXYpOwotCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7Ci0J CWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3KTsK KwkJZXJyID0gYW1kZ3B1X3Vjb2RlX3JlcXVlc3RfZmlybXdhcmUoYWRldiwgJmFkZXYtPnNkbWEu aW5zdGFuY2VbaV0uZncsIGZ3X25hbWUsIGZhbHNlKTsKIAkJaWYgKGVycikKIAkJCWdvdG8gb3V0 OwogCQloZHIgPSAoY29uc3Qgc3RydWN0IHNkbWFfZmlybXdhcmVfaGVhZGVyX3YxXzAgKilhZGV2 LT5zZG1hLmluc3RhbmNlW2ldLmZ3LT5kYXRhOwpAQCAtMzIxLDcgKzMxOCw2IEBAIHN0YXRpYyBp bnQgc2RtYV92M18wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQog CX0KIG91dDoKIAlpZiAoZXJyKSB7Ci0JCXByX2Vycigic2RtYV92M18wOiBGYWlsZWQgdG8gbG9h ZCBmaXJtd2FyZSBcIiVzXCJcbiIsIGZ3X25hbWUpOwogCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+ c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKIAkJCXJlbGVhc2VfZmlybXdhcmUoYWRldi0+c2Rt YS5pbnN0YW5jZVtpXS5mdyk7CiAJCQlhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3ID0gTlVMTDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMKaW5kZXggMmM2MThhMWJlMDNlLi4w Nzc2YmY0MTA3OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFf djRfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jCkBAIC0x OTQsMTAgKzE5NCw4IEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX2luaXRfbWljcm9jb2RlKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJc25wcmludGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25h bWUpLCAiYW1kZ3B1LyVzX3NkbWEuYmluIiwgY2hpcF9uYW1lKTsKIAkJZWxzZQogCQkJc25wcmlu dGYoZndfbmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX3NkbWExLmJpbiIsIGNoaXBf bmFtZSk7Ci0JCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmFkZXYtPnNkbWEuaW5zdGFuY2VbaV0u ZncsIGZ3X25hbWUsIGFkZXYtPmRldik7Ci0JCWlmIChlcnIpCi0JCQlnb3RvIG91dDsKLQkJZXJy ID0gYW1kZ3B1X3Vjb2RlX3ZhbGlkYXRlKGFkZXYtPnNkbWEuaW5zdGFuY2VbaV0uZncpOworCQll cnIgPSBhbWRncHVfdWNvZGVfcmVxdWVzdF9maXJtd2FyZShhZGV2LCAmYWRldi0+c2RtYS5pbnN0 YW5jZVtpXS5mdywKKwkJCQkJCSAgICBmd19uYW1lLCBmYWxzZSk7CiAJCWlmIChlcnIpCiAJCQln b3RvIG91dDsKIAkJaGRyID0gKGNvbnN0IHN0cnVjdCBzZG1hX2Zpcm13YXJlX2hlYWRlcl92MV8w ICopYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5mdy0+ZGF0YTsKQEAgLTIxOSw3ICsyMTcsNiBAQCBz dGF0aWMgaW50IHNkbWFfdjRfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIAl9CiBvdXQ6CiAJaWYgKGVycikgewotCQlEUk1fRVJST1IoInNkbWFfdjRfMDogRmFp bGVkIHRvIGxvYWQgZmlybXdhcmUgXCIlc1wiXG4iLCBmd19uYW1lKTsKIAkJZm9yIChpID0gMDsg aSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7CiAJCQlyZWxlYXNlX2Zpcm13YXJl KGFkZXYtPnNkbWEuaW5zdGFuY2VbaV0uZncpOwogCQkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5m dyA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9kcG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpX2RwbS5jCmluZGV4IGIxMmQ3YzlkNDJh MC4uYmVlMmIwYTVkZjVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9z aV9kcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9kcG0uYwpAQCAtNzYw NSw3ICs3NjA1LDYgQEAgc3RhdGljIGludCBzaV9kcG1faW5pdF9taWNyb2NvZGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJY29uc3QgY2hhciAqY2hpcF9uYW1lOwogCWNoYXIgZndf bmFtZVszMF07Ci0JaW50IGVycjsKIAogCURSTV9ERUJVRygiXG4iKTsKIAlzd2l0Y2ggKGFkZXYt PmFzaWNfdHlwZSkgewpAQCAtNzY2NSwyMCArNzY2NCw3IEBAIHN0YXRpYyBpbnQgc2lfZHBtX2lu aXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCX0KIAogCXNucHJpbnRm KGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwgInJhZGVvbi8lc19zbWMuYmluIiwgY2hpcF9uYW1l KTsKLQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZhZGV2LT5wbS5mdywgZndfbmFtZSwgYWRldi0+ ZGV2KTsKLQlpZiAoZXJyKQotCQlnb3RvIG91dDsKLQllcnIgPSBhbWRncHVfdWNvZGVfdmFsaWRh dGUoYWRldi0+cG0uZncpOwotCi1vdXQ6Ci0JaWYgKGVycikgewotCQlEUk1fRVJST1IoInNpX3Nt YzogRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUuIGVyciA9ICVkXCIlc1wiXG4iLAotCQkJICBlcnIs IGZ3X25hbWUpOwotCQlyZWxlYXNlX2Zpcm13YXJlKGFkZXYtPnBtLmZ3KTsKLQkJYWRldi0+cG0u ZncgPSBOVUxMOwotCX0KLQlyZXR1cm4gZXJyOwotCisJcmV0dXJuIGFtZGdwdV91Y29kZV9yZXF1 ZXN0X2Zpcm13YXJlKGFkZXYsICZhZGV2LT5wbS5mdywgZndfbmFtZSwgZmFsc2UpOwogfQogCiBz dGF0aWMgaW50IHNpX2RwbV9zd19pbml0KHZvaWQgKmhhbmRsZSkKLS0gCjIuMTQuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5n IGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==