From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ilia Mirkin Subject: [PATCH] drm/nouveau/kms/gf119-: allow both 256- and 1024-sized LUTs to be used Date: Fri, 6 Sep 2019 00:13:59 -0400 Message-ID: <20190906041359.14209-1-imirkin@alum.mit.edu> 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: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: bskeggs@redhat.com Cc: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIGhhcmR3YXJlIHN1cHBvcnRzIGVpdGhlciBzaXplLiBBbHNvIGFkZCBjaGVja3MgdG8gZW5z dXJlIHRoYXQgb25seQp0aGVzZSB0d28gc2l6ZXMgbWF5IGJlIHVzZWQgZm9yIHN1cHBseWluZyBh IExVVC4KClNpZ25lZC1vZmYtYnk6IElsaWEgTWlya2luIDxpbWlya2luQGFsdW0ubWl0LmVkdT4K LS0tCgpPbmx5IHRlc3RlZCBvbiBHODQgYW5kIEdLMjA4LiBUaGUgR1YxMDArIGlzIGVudGlyZWx5 IHVudGVzdGVkLgoKV2l0aCB0aGUgZml4ZWQgbW9kZXRlc3QgdG9vbCwgc2V0dGluZyBpbHV0IGFu ZCBvbHV0IHNpemVzIHRvIGRpZmZlcmVudApxdWFudGl0aWVzIHNlZW1zIHRvIHdvcmsgb3V0IE9L LCBhY3Jvc3MgYSByYW5nZSBvZiBmb3JtYXRzIChYUjI0LCBYQjMwLApYQjRIKS4KCiBkcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9iYXNlOTA3Yy5jIHwgMTEgKysrKysrKystLS0KIGRy aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQuYyAgICAgfCAxNCArKysrKysrKyst LS0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5oICAgICB8ICA3ICsr KystLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQ1MDdkLmMgfCAgOSAr KysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQ4MjdkLmMgfCAg MSArCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9oZWFkOTA3ZC5jIHwgMTEgKysr KysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQ5MTdkLmMgfCAg MSArCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9oZWFkYzM3ZC5jIHwgMTEgKysr KysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWRjNTdkLmMgfCAx MiArKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2x1dC5jICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kdy5jICAgICB8 IDE3ICsrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC93 bmR3LmggICAgIHwgIDMgKystCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC93bmR3 YzM3ZS5jIHwgMTEgKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUw L3duZHdjNTdlLmMgfCAxMSArKysrKysrLS0tLQogMTQgZmlsZXMgY2hhbmdlZCwgODQgaW5zZXJ0 aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvZGlzcG52NTAvYmFzZTkwN2MuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3Bu djUwL2Jhc2U5MDdjLmMKaW5kZXggNWYyZGU3N2UwZjMyLi4yMjRhMzRjMzQwZmUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Jhc2U5MDdjLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvYmFzZTkwN2MuYwpAQCAtNzUsMTIgKzc1LDE2 IEBAIGJhc2U5MDdjX3hsdXRfc2V0KHN0cnVjdCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUw X3duZHdfYXRvbSAqYXN5dykKIAl9CiB9CiAKLXN0YXRpYyB2b2lkCi1iYXNlOTA3Y19pbHV0KHN0 cnVjdCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dykKK3N0YXRp YyBib29sCitiYXNlOTA3Y19pbHV0KHN0cnVjdCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUw X3duZHdfYXRvbSAqYXN5dywgaW50IHNpemUpCiB7Ci0JYXN5dy0+eGx1dC5pLm1vZGUgPSA3Owor CWlmIChzaXplICE9IDI1NiAmJiBzaXplICE9IDEwMjQpCisJCXJldHVybiBmYWxzZTsKKworCWFz eXctPnhsdXQuaS5tb2RlID0gc2l6ZSA9PSAxMDI0ID8gNCA6IDc7CiAJYXN5dy0+eGx1dC5pLmVu YWJsZSA9IDI7CiAJYXN5dy0+eGx1dC5pLmxvYWQgPSBoZWFkOTA3ZF9vbHV0X2xvYWQ7CisJcmV0 dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTMyCkBAIC0xNjAsNiArMTY0LDcgQEAgYmFz ZTkwN2MgPSB7CiAJLmNzY19zZXQgPSBiYXNlOTA3Y19jc2Nfc2V0LAogCS5jc2NfY2xyID0gYmFz ZTkwN2NfY3NjX2NsciwKIAkub2x1dF9jb3JlID0gdHJ1ZSwKKwkuaWx1dF9zaXplID0gMTAyNCwK IAkueGx1dF9zZXQgPSBiYXNlOTA3Y194bHV0X3NldCwKIAkueGx1dF9jbHIgPSBiYXNlOTA3Y194 bHV0X2NsciwKIAkuaW1hZ2Vfc2V0ID0gYmFzZTkwN2NfaW1hZ2Vfc2V0LApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5jIGIvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvZGlzcG52NTAvaGVhZC5jCmluZGV4IDcxYzIzYmYxZmUyNS4uNDJiYTY4ZGFkYjgw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9oZWFkLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5jCkBAIC0yMzUsOSArMjM1 LDEzIEBAIG52NTBfaGVhZF9hdG9taWNfY2hlY2tfbHV0KHN0cnVjdCBudjUwX2hlYWQgKmhlYWQs CiAJCXJldHVybiAwOwogCX0KIAorCWlmICghaGVhZC0+ZnVuYy0+b2x1dChoZWFkLCBhc3loLCBk cm1fY29sb3JfbHV0X3NpemUob2x1dCkpKSB7CisJCURSTV9ERUJVR19LTVMoIkludmFsaWQgb2x1 dFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KIAlhc3loLT5vbHV0LmhhbmRsZSA9IGRpc3At PmNvcmUtPmNoYW4udnJhbS5oYW5kbGU7CiAJYXN5aC0+b2x1dC5idWZmZXIgPSAhYXN5aC0+b2x1 dC5idWZmZXI7Ci0JaGVhZC0+ZnVuYy0+b2x1dChoZWFkLCBhc3loKTsKKwogCXJldHVybiAwOwog fQogCkBAIC01MTEsMTEgKzUxNSwxMSBAQCBudjUwX2hlYWRfY3JlYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCBpbmRleCkKIAlkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKGRldiwgY3J0 YywgJmJhc2UtPnBsYW5lLCAmY3Vycy0+cGxhbmUsCiAJCQkJICAmbnY1MF9oZWFkX2Z1bmMsICJo ZWFkLSVkIiwgaGVhZC0+YmFzZS5pbmRleCk7CiAJZHJtX2NydGNfaGVscGVyX2FkZChjcnRjLCAm bnY1MF9oZWFkX2hlbHApOworCS8qIEtlZXAgdGhlIGxlZ2FjeSBnYW1tYSBzaXplIGF0IDI1NiB0 byBhdm9pZCBjb21wYXRpYmlsaXR5IGlzc3VlcyAqLwogCWRybV9tb2RlX2NydGNfc2V0X2dhbW1h X3NpemUoY3J0YywgMjU2KTsKLQlpZiAoZGlzcC0+ZGlzcC0+b2JqZWN0Lm9jbGFzcyA+PSBHRjEx MF9ESVNQKQotCQlkcm1fY3J0Y19lbmFibGVfY29sb3JfbWdtdChjcnRjLCAyNTYsIHRydWUsIDI1 Nik7Ci0JZWxzZQotCQlkcm1fY3J0Y19lbmFibGVfY29sb3JfbWdtdChjcnRjLCAwLCBmYWxzZSwg MjU2KTsKKwlkcm1fY3J0Y19lbmFibGVfY29sb3JfbWdtdChjcnRjLCBiYXNlLT5mdW5jLT5pbHV0 X3NpemUsCisJCQkJICAgZGlzcC0+ZGlzcC0+b2JqZWN0Lm9jbGFzcyA+PSBHRjExMF9ESVNQLAor CQkJCSAgIGhlYWQtPmZ1bmMtPm9sdXRfc2l6ZSk7CiAKIAlpZiAoaGVhZC0+ZnVuYy0+b2x1dF9z ZXQpIHsKIAkJcmV0ID0gbnY1MF9sdXRfaW5pdChkaXNwLCAmZHJtLT5jbGllbnQubW11LCAmaGVh ZC0+b2x1dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9o ZWFkLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9oZWFkLmgKaW5kZXggZDFj MDAyZjUzNGQ0Li41YzJjZGEyZjMyYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L2Rpc3BudjUwL2hlYWQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1 MC9oZWFkLmgKQEAgLTIwLDggKzIwLDkgQEAgdm9pZCBudjUwX2hlYWRfZmx1c2hfY2xyKHN0cnVj dCBudjUwX2hlYWQgKiwgc3RydWN0IG52NTBfaGVhZF9hdG9tICosIGJvb2wgeSk7CiBzdHJ1Y3Qg bnY1MF9oZWFkX2Z1bmMgewogCXZvaWQgKCp2aWV3KShzdHJ1Y3QgbnY1MF9oZWFkICosIHN0cnVj dCBudjUwX2hlYWRfYXRvbSAqKTsKIAl2b2lkICgqbW9kZSkoc3RydWN0IG52NTBfaGVhZCAqLCBz dHJ1Y3QgbnY1MF9oZWFkX2F0b20gKik7Ci0Jdm9pZCAoKm9sdXQpKHN0cnVjdCBudjUwX2hlYWQg Kiwgc3RydWN0IG52NTBfaGVhZF9hdG9tICopOworCWJvb2wgKCpvbHV0KShzdHJ1Y3QgbnY1MF9o ZWFkICosIHN0cnVjdCBudjUwX2hlYWRfYXRvbSAqLCBpbnQpOwogCWJvb2wgb2x1dF9pZGVudGl0 eTsKKwlpbnQgIG9sdXRfc2l6ZTsKIAl2b2lkICgqb2x1dF9zZXQpKHN0cnVjdCBudjUwX2hlYWQg Kiwgc3RydWN0IG52NTBfaGVhZF9hdG9tICopOwogCXZvaWQgKCpvbHV0X2Nscikoc3RydWN0IG52 NTBfaGVhZCAqKTsKIAl2b2lkICgqY29yZV9jYWxjKShzdHJ1Y3QgbnY1MF9oZWFkICosIHN0cnVj dCBudjUwX2hlYWRfYXRvbSAqKTsKQEAgLTQzLDcgKzQ0LDcgQEAgc3RydWN0IG52NTBfaGVhZF9m dW5jIHsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgbnY1MF9oZWFkX2Z1bmMgaGVhZDUwN2Q7CiB2b2lk IGhlYWQ1MDdkX3ZpZXcoc3RydWN0IG52NTBfaGVhZCAqLCBzdHJ1Y3QgbnY1MF9oZWFkX2F0b20g Kik7CiB2b2lkIGhlYWQ1MDdkX21vZGUoc3RydWN0IG52NTBfaGVhZCAqLCBzdHJ1Y3QgbnY1MF9o ZWFkX2F0b20gKik7Ci12b2lkIGhlYWQ1MDdkX29sdXQoc3RydWN0IG52NTBfaGVhZCAqLCBzdHJ1 Y3QgbnY1MF9oZWFkX2F0b20gKik7Citib29sIGhlYWQ1MDdkX29sdXQoc3RydWN0IG52NTBfaGVh ZCAqLCBzdHJ1Y3QgbnY1MF9oZWFkX2F0b20gKiwgaW50KTsKIHZvaWQgaGVhZDUwN2RfY29yZV9j YWxjKHN0cnVjdCBudjUwX2hlYWQgKiwgc3RydWN0IG52NTBfaGVhZF9hdG9tICopOwogdm9pZCBo ZWFkNTA3ZF9jb3JlX2NscihzdHJ1Y3QgbnY1MF9oZWFkICopOwogaW50IGhlYWQ1MDdkX2N1cnNf bGF5b3V0KHN0cnVjdCBudjUwX2hlYWQgKiwgc3RydWN0IG52NTBfd25kd19hdG9tICosCkBAIC02 MCw3ICs2MSw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgbnY1MF9oZWFkX2Z1bmMgaGVhZDgyN2Q7 CiBleHRlcm4gY29uc3Qgc3RydWN0IG52NTBfaGVhZF9mdW5jIGhlYWQ5MDdkOwogdm9pZCBoZWFk OTA3ZF92aWV3KHN0cnVjdCBudjUwX2hlYWQgKiwgc3RydWN0IG52NTBfaGVhZF9hdG9tICopOwog dm9pZCBoZWFkOTA3ZF9tb2RlKHN0cnVjdCBudjUwX2hlYWQgKiwgc3RydWN0IG52NTBfaGVhZF9h dG9tICopOwotdm9pZCBoZWFkOTA3ZF9vbHV0KHN0cnVjdCBudjUwX2hlYWQgKiwgc3RydWN0IG52 NTBfaGVhZF9hdG9tICopOworYm9vbCBoZWFkOTA3ZF9vbHV0KHN0cnVjdCBudjUwX2hlYWQgKiwg c3RydWN0IG52NTBfaGVhZF9hdG9tICosIGludCk7CiB2b2lkIGhlYWQ5MDdkX29sdXRfc2V0KHN0 cnVjdCBudjUwX2hlYWQgKiwgc3RydWN0IG52NTBfaGVhZF9hdG9tICopOwogdm9pZCBoZWFkOTA3 ZF9vbHV0X2NscihzdHJ1Y3QgbnY1MF9oZWFkICopOwogdm9pZCBoZWFkOTA3ZF9jb3JlX3NldChz dHJ1Y3QgbnY1MF9oZWFkICosIHN0cnVjdCBudjUwX2hlYWRfYXRvbSAqKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQ1MDdkLmMgYi9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9kaXNwbnY1MC9oZWFkNTA3ZC5jCmluZGV4IDc1NjFiZTVjYTcwNy4uNjZj Y2YzNmI1NmEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9o ZWFkNTA3ZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQ1MDdk LmMKQEAgLTI3MSwxNSArMjcxLDE5IEBAIGhlYWQ1MDdkX29sdXRfbG9hZChzdHJ1Y3QgZHJtX2Nv bG9yX2x1dCAqaW4sIGludCBzaXplLCB2b2lkIF9faW9tZW0gKm1lbSkKIAl3cml0ZXcocmVhZHco bWVtIC0gNCksIG1lbSArIDQpOwogfQogCi12b2lkCi1oZWFkNTA3ZF9vbHV0KHN0cnVjdCBudjUw X2hlYWQgKmhlYWQsIHN0cnVjdCBudjUwX2hlYWRfYXRvbSAqYXN5aCkKK2Jvb2wKK2hlYWQ1MDdk X29sdXQoc3RydWN0IG52NTBfaGVhZCAqaGVhZCwgc3RydWN0IG52NTBfaGVhZF9hdG9tICphc3lo LCBpbnQgc2l6ZSkKIHsKKwlpZiAoc2l6ZSAhPSAyNTYpCisJCXJldHVybiBmYWxzZTsKKwogCWlm IChhc3loLT5iYXNlLmNwcCA9PSAxKQogCQlhc3loLT5vbHV0Lm1vZGUgPSAwOwogCWVsc2UKIAkJ YXN5aC0+b2x1dC5tb2RlID0gMTsKIAogCWFzeWgtPm9sdXQubG9hZCA9IGhlYWQ1MDdkX29sdXRf bG9hZDsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZApAQCAtMzI4LDYgKzMzMiw3IEBAIGhlYWQ1 MDdkID0gewogCS52aWV3ID0gaGVhZDUwN2RfdmlldywKIAkubW9kZSA9IGhlYWQ1MDdkX21vZGUs CiAJLm9sdXQgPSBoZWFkNTA3ZF9vbHV0LAorCS5vbHV0X3NpemUgPSAyNTYsCiAJLm9sdXRfc2V0 ID0gaGVhZDUwN2Rfb2x1dF9zZXQsCiAJLm9sdXRfY2xyID0gaGVhZDUwN2Rfb2x1dF9jbHIsCiAJ LmNvcmVfY2FsYyA9IGhlYWQ1MDdkX2NvcmVfY2FsYywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQ4MjdkLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9kaXNwbnY1MC9oZWFkODI3ZC5jCmluZGV4IGFmNWU3YmQ1OTc4Yi4uMTE4NzcxMTllZWE0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9oZWFkODI3ZC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQ4MjdkLmMKQEAgLTEwOCw2 ICsxMDgsNyBAQCBoZWFkODI3ZCA9IHsKIAkudmlldyA9IGhlYWQ1MDdkX3ZpZXcsCiAJLm1vZGUg PSBoZWFkNTA3ZF9tb2RlLAogCS5vbHV0ID0gaGVhZDUwN2Rfb2x1dCwKKwkub2x1dF9zaXplID0g MjU2LAogCS5vbHV0X3NldCA9IGhlYWQ4MjdkX29sdXRfc2V0LAogCS5vbHV0X2NsciA9IGhlYWQ4 MjdkX29sdXRfY2xyLAogCS5jb3JlX2NhbGMgPSBoZWFkNTA3ZF9jb3JlX2NhbGMsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9oZWFkOTA3ZC5jIGIvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZDkwN2QuYwppbmRleCBjMmQwOWRkOTdiMWYu LjMwMDJlYzIzZDdhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52 NTAvaGVhZDkwN2QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9oZWFk OTA3ZC5jCkBAIC0yMzAsMTEgKzIzMCwxNSBAQCBoZWFkOTA3ZF9vbHV0X2xvYWQoc3RydWN0IGRy bV9jb2xvcl9sdXQgKmluLCBpbnQgc2l6ZSwgdm9pZCBfX2lvbWVtICptZW0pCiAJd3JpdGV3KHJl YWR3KG1lbSAtIDQpLCBtZW0gKyA0KTsKIH0KIAotdm9pZAotaGVhZDkwN2Rfb2x1dChzdHJ1Y3Qg bnY1MF9oZWFkICpoZWFkLCBzdHJ1Y3QgbnY1MF9oZWFkX2F0b20gKmFzeWgpCitib29sCitoZWFk OTA3ZF9vbHV0KHN0cnVjdCBudjUwX2hlYWQgKmhlYWQsIHN0cnVjdCBudjUwX2hlYWRfYXRvbSAq YXN5aCwgaW50IHNpemUpCiB7Ci0JYXN5aC0+b2x1dC5tb2RlID0gNzsKKwlpZiAoc2l6ZSAhPSAy NTYgJiYgc2l6ZSAhPSAxMDI0KQorCQlyZXR1cm4gZmFsc2U7CisKKwlhc3loLT5vbHV0Lm1vZGUg PSBzaXplID09IDEwMjQgPyA0IDogNzsKIAlhc3loLT5vbHV0LmxvYWQgPSBoZWFkOTA3ZF9vbHV0 X2xvYWQ7CisJcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQKQEAgLTI4NSw2ICsyODksNyBAQCBoZWFk OTA3ZCA9IHsKIAkudmlldyA9IGhlYWQ5MDdkX3ZpZXcsCiAJLm1vZGUgPSBoZWFkOTA3ZF9tb2Rl LAogCS5vbHV0ID0gaGVhZDkwN2Rfb2x1dCwKKwkub2x1dF9zaXplID0gMTAyNCwKIAkub2x1dF9z ZXQgPSBoZWFkOTA3ZF9vbHV0X3NldCwKIAkub2x1dF9jbHIgPSBoZWFkOTA3ZF9vbHV0X2NsciwK IAkuY29yZV9jYWxjID0gaGVhZDUwN2RfY29yZV9jYWxjLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZDkxN2QuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L2Rpc3BudjUwL2hlYWQ5MTdkLmMKaW5kZXggMzAzZGY4NDU5Y2E4Li43Njk1OGNlZGQ1MWYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWQ5MTdkLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZDkxN2QuYwpAQCAtODMs NiArODMsNyBAQCBoZWFkOTE3ZCA9IHsKIAkudmlldyA9IGhlYWQ5MDdkX3ZpZXcsCiAJLm1vZGUg PSBoZWFkOTA3ZF9tb2RlLAogCS5vbHV0ID0gaGVhZDkwN2Rfb2x1dCwKKwkub2x1dF9zaXplID0g MTAyNCwKIAkub2x1dF9zZXQgPSBoZWFkOTA3ZF9vbHV0X3NldCwKIAkub2x1dF9jbHIgPSBoZWFk OTA3ZF9vbHV0X2NsciwKIAkuY29yZV9jYWxjID0gaGVhZDUwN2RfY29yZV9jYWxjLApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZGMzN2QuYyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWRjMzdkLmMKaW5kZXggZWY2YTk5ZDk1YTlj Li4wMDAxMWNlMTA5YTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3Bu djUwL2hlYWRjMzdkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVh ZGMzN2QuYwpAQCAtMTQ4LDE0ICsxNDgsMTggQEAgaGVhZGMzN2Rfb2x1dF9zZXQoc3RydWN0IG52 NTBfaGVhZCAqaGVhZCwgc3RydWN0IG52NTBfaGVhZF9hdG9tICphc3loKQogCX0KIH0KIAotc3Rh dGljIHZvaWQKLWhlYWRjMzdkX29sdXQoc3RydWN0IG52NTBfaGVhZCAqaGVhZCwgc3RydWN0IG52 NTBfaGVhZF9hdG9tICphc3loKQorc3RhdGljIGJvb2wKK2hlYWRjMzdkX29sdXQoc3RydWN0IG52 NTBfaGVhZCAqaGVhZCwgc3RydWN0IG52NTBfaGVhZF9hdG9tICphc3loLCBpbnQgc2l6ZSkKIHsK KwlpZiAoc2l6ZSAhPSAyNTYgJiYgc2l6ZSAhPSAxMDI0KQorCQlyZXR1cm4gZmFsc2U7CisKIAlh c3loLT5vbHV0Lm1vZGUgPSAyOwotCWFzeWgtPm9sdXQuc2l6ZSA9IDA7CisJYXN5aC0+b2x1dC5z aXplID0gc2l6ZSA9PSAxMDI0ID8gMiA6IDA7CiAJYXN5aC0+b2x1dC5yYW5nZSA9IDA7CiAJYXN5 aC0+b2x1dC5vdXRwdXRfbW9kZSA9IDE7CiAJYXN5aC0+b2x1dC5sb2FkID0gaGVhZDkwN2Rfb2x1 dF9sb2FkOworCXJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMjAxLDYgKzIwNSw3 IEBAIGhlYWRjMzdkID0gewogCS52aWV3ID0gaGVhZGMzN2RfdmlldywKIAkubW9kZSA9IGhlYWRj MzdkX21vZGUsCiAJLm9sdXQgPSBoZWFkYzM3ZF9vbHV0LAorCS5vbHV0X3NpemUgPSAxMDI0LAog CS5vbHV0X3NldCA9IGhlYWRjMzdkX29sdXRfc2V0LAogCS5vbHV0X2NsciA9IGhlYWRjMzdkX29s dXRfY2xyLAogCS5jdXJzX2xheW91dCA9IGhlYWQ5MTdkX2N1cnNfbGF5b3V0LApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZGM1N2QuYyBiL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2hlYWRjNTdkLmMKaW5kZXggMzJhN2Y5ZTg1ZmIwLi40 NmM2ODIyZmVlZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUw L2hlYWRjNTdkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZGM1 N2QuYwpAQCAtMTUxLDE3ICsxNTEsMjAgQEAgaGVhZGM1N2Rfb2x1dF9sb2FkKHN0cnVjdCBkcm1f Y29sb3JfbHV0ICppbiwgaW50IHNpemUsIHZvaWQgX19pb21lbSAqbWVtKQogCXdyaXRldyhyZWFk dyhtZW0gLSA0KSwgbWVtICsgNCk7CiB9CiAKLXZvaWQKLWhlYWRjNTdkX29sdXQoc3RydWN0IG52 NTBfaGVhZCAqaGVhZCwgc3RydWN0IG52NTBfaGVhZF9hdG9tICphc3loKQorYm9vbAoraGVhZGM1 N2Rfb2x1dChzdHJ1Y3QgbnY1MF9oZWFkICpoZWFkLCBzdHJ1Y3QgbnY1MF9oZWFkX2F0b20gKmFz eWgsIGludCBzaXplKQogeworCWlmIChzaXplICE9IDI1NiAmJiBzaXplICE9IDEwMjQpCisJCXJl dHVybiBmYWxzZTsKKwogCWFzeWgtPm9sdXQubW9kZSA9IDI7IC8qIERJUkVDVDEwICovCiAJYXN5 aC0+b2x1dC5zaXplID0gNCAvKiBWU1MgaGVhZGVyLiAqLyArIDEwMjQgKyAxIC8qIEVudHJpZXMu ICovOwogCWFzeWgtPm9sdXQub3V0cHV0X21vZGUgPSAxOyAvKiBJTlRFUlBPTEFURV9FTkFCTEUu ICovCi0JaWYgKGFzeWgtPnN0YXRlLmdhbW1hX2x1dCAmJgotCSAgICBhc3loLT5zdGF0ZS5nYW1t YV9sdXQtPmxlbmd0aCAvIHNpemVvZihzdHJ1Y3QgZHJtX2NvbG9yX2x1dCkgPT0gMjU2KQorCWlm IChzaXplID09IDI1NikKIAkJYXN5aC0+b2x1dC5sb2FkID0gaGVhZGM1N2Rfb2x1dF9sb2FkXzg7 CiAJZWxzZQogCQlhc3loLT5vbHV0LmxvYWQgPSBoZWFkYzU3ZF9vbHV0X2xvYWQ7CisJcmV0dXJu IHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xOTQsNiArMTk3LDcgQEAgaGVhZGM1N2QgPSB7 CiAJLm1vZGUgPSBoZWFkYzU3ZF9tb2RlLAogCS5vbHV0ID0gaGVhZGM1N2Rfb2x1dCwKIAkub2x1 dF9pZGVudGl0eSA9IHRydWUsCisJLm9sdXRfc2l6ZSA9IDEwMjQsCiAJLm9sdXRfc2V0ID0gaGVh ZGM1N2Rfb2x1dF9zZXQsCiAJLm9sdXRfY2xyID0gaGVhZGM1N2Rfb2x1dF9jbHIsCiAJLmN1cnNf bGF5b3V0ID0gaGVhZDkxN2RfY3Vyc19sYXlvdXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9kaXNwbnY1MC9sdXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3Bu djUwL2x1dC5jCmluZGV4IDk5NGRlZjRmZDUxYS4uNGU5NWNhNTYwNGFiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9sdXQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9kaXNwbnY1MC9sdXQuYwpAQCAtNDksNyArNDksNyBAQCBudjUwX2x1dF9sb2Fk KHN0cnVjdCBudjUwX2x1dCAqbHV0LCBpbnQgYnVmZmVyLCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Js b2IgKmJsb2IsCiAJCQlrdmZyZWUoaW4pOwogCQl9CiAJfSBlbHNlIHsKLQkJbG9hZChpbiwgYmxv Yi0+bGVuZ3RoIC8gc2l6ZW9mKCppbiksIG1lbSk7CisJCWxvYWQoaW4sIGRybV9jb2xvcl9sdXRf c2l6ZShibG9iKSwgbWVtKTsKIAl9CiAKIAlyZXR1cm4gYWRkcjsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHcuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L2Rpc3BudjUwL3duZHcuYwppbmRleCAyZGIwMjkzNzFjOTEuLjNhNDNlMTQ4ZGM5NiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kdy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHcuYwpAQCAtMzE4LDcgKzMxOCw3IEBA IG52NTBfd25kd19hdG9taWNfY2hlY2tfYWNxdWlyZShzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBi b29sIG1vZGVzZXQsCiAJcmV0dXJuIHduZHctPmZ1bmMtPmFjcXVpcmUod25kdywgYXN5dywgYXN5 aCk7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgaW50CiBudjUwX3duZHdfYXRvbWljX2NoZWNr X2x1dChzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LAogCQkJICAgc3RydWN0IG52NTBfd25kd19hdG9t ICphcm13LAogCQkJICAgc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3LApAQCAtMzQwLDcgKzM0 MCw3IEBAIG52NTBfd25kd19hdG9taWNfY2hlY2tfbHV0KHN0cnVjdCBudjUwX3duZHcgKnduZHcs CiAJCSAqLwogCQlpZiAoIShpbHV0ID0gYXN5aC0+c3RhdGUuZ2FtbWFfbHV0KSkgewogCQkJYXN5 dy0+dmlzaWJsZSA9IGZhbHNlOwotCQkJcmV0dXJuOworCQkJcmV0dXJuIDA7CiAJCX0KIAogCQlp ZiAod25kdy0+ZnVuYy0+aWx1dCkKQEAgLTM1OSw3ICszNTksMTAgQEAgbnY1MF93bmR3X2F0b21p Y19jaGVja19sdXQoc3RydWN0IG52NTBfd25kdyAqd25kdywKIAkvKiBSZWNhbGN1bGF0ZSBMVVQg c3RhdGUuICovCiAJbWVtc2V0KCZhc3l3LT54bHV0LCAweDAwLCBzaXplb2YoYXN5dy0+eGx1dCkp OwogCWlmICgoYXN5dy0+aWx1dCA9IHduZHctPmZ1bmMtPmlsdXQgPyBpbHV0IDogTlVMTCkpIHsK LQkJd25kdy0+ZnVuYy0+aWx1dCh3bmR3LCBhc3l3KTsKKwkJaWYgKCF3bmR3LT5mdW5jLT5pbHV0 KHduZHcsIGFzeXcsIGRybV9jb2xvcl9sdXRfc2l6ZShpbHV0KSkpIHsKKwkJCURSTV9ERUJVR19L TVMoIkludmFsaWQgaWx1dFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQogCQlhc3l3LT54 bHV0LmhhbmRsZSA9IHduZHctPnduZHcudnJhbS5oYW5kbGU7CiAJCWFzeXctPnhsdXQuaS5idWZm ZXIgPSAhYXN5dy0+eGx1dC5pLmJ1ZmZlcjsKIAkJYXN5dy0+c2V0LnhsdXQgPSB0cnVlOwpAQCAt Mzg0LDYgKzM4Nyw3IEBAIG52NTBfd25kd19hdG9taWNfY2hlY2tfbHV0KHN0cnVjdCBudjUwX3du ZHcgKnduZHcsCiAKIAkvKiBDYW4ndCBkbyBhbiBpbW1lZGlhdGUgZmxpcCB3aGlsZSBjaGFuZ2lu ZyB0aGUgTFVULiAqLwogCWFzeWgtPnN0YXRlLnBhZ2VmbGlwX2ZsYWdzICY9IH5EUk1fTU9ERV9Q QUdFX0ZMSVBfQVNZTkM7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTQyNCw4ICs0 MjgsMTEgQEAgbnY1MF93bmR3X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwg c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiAJICAgICghYXJtdy0+dmlzaWJsZSB8fAog CSAgICAgYXN5aC0+c3RhdGUuY29sb3JfbWdtdF9jaGFuZ2VkIHx8CiAJICAgICBhc3l3LT5zdGF0 ZS5mYi0+Zm9ybWF0LT5mb3JtYXQgIT0KLQkgICAgIGFybXctPnN0YXRlLmZiLT5mb3JtYXQtPmZv cm1hdCkpCi0JCW52NTBfd25kd19hdG9taWNfY2hlY2tfbHV0KHduZHcsIGFybXcsIGFzeXcsIGFz eWgpOworCSAgICAgYXJtdy0+c3RhdGUuZmItPmZvcm1hdC0+Zm9ybWF0KSkgeworCQlyZXQgPSBu djUwX3duZHdfYXRvbWljX2NoZWNrX2x1dCh3bmR3LCBhcm13LCBhc3l3LCBhc3loKTsKKwkJaWYg KHJldCkKKwkJCXJldHVybiByZXQ7CisJfQogCiAJLyogQ2FsY3VsYXRlIG5ldyB3aW5kb3cgc3Rh dGUuICovCiAJaWYgKGFzeXctPnZpc2libGUpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L2Rpc3BudjUwL3duZHcuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3Bu djUwL3duZHcuaAppbmRleCBjNjNiZDNiZGFmMDYuLmNhZjM5NzQ3NTkxOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kdy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHcuaApAQCAtNjQsMTIgKzY0LDEzIEBAIHN0cnVjdCBu djUwX3duZHdfZnVuYyB7CiAJdm9pZCAoKm50ZnlfY2xyKShzdHJ1Y3QgbnY1MF93bmR3ICopOwog CWludCAoKm50Znlfd2FpdF9iZWd1bikoc3RydWN0IG5vdXZlYXVfYm8gKiwgdTMyIG9mZnNldCwK IAkJCSAgICAgICBzdHJ1Y3QgbnZpZl9kZXZpY2UgKik7Ci0Jdm9pZCAoKmlsdXQpKHN0cnVjdCBu djUwX3duZHcgKiwgc3RydWN0IG52NTBfd25kd19hdG9tICopOworCWJvb2wgKCppbHV0KShzdHJ1 Y3QgbnY1MF93bmR3ICosIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqLCBpbnQpOwogCXZvaWQgKCpj c2MpKHN0cnVjdCBudjUwX3duZHcgKiwgc3RydWN0IG52NTBfd25kd19hdG9tICosCiAJCSAgICBj b25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqKTsKIAl2b2lkICgqY3NjX3NldCkoc3RydWN0IG52 NTBfd25kdyAqLCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKik7CiAJdm9pZCAoKmNzY19jbHIpKHN0 cnVjdCBudjUwX3duZHcgKik7CiAJYm9vbCBpbHV0X2lkZW50aXR5OworCWludCAgaWx1dF9zaXpl OwogCWJvb2wgb2x1dF9jb3JlOwogCXZvaWQgKCp4bHV0X3NldCkoc3RydWN0IG52NTBfd25kdyAq LCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKik7CiAJdm9pZCAoKnhsdXRfY2xyKShzdHJ1Y3QgbnY1 MF93bmR3ICopOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAv d25kd2MzN2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHdjMzdlLmMK aW5kZXggMGY5NDAyMTYyYmRlLi5iOTJkYzM0NjFiYmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHdjMzdlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvZGlzcG52NTAvd25kd2MzN2UuYwpAQCAtNzEsMTQgKzcxLDE4IEBAIHduZHdjMzdlX2ls dXRfc2V0KHN0cnVjdCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5 dykKIAl9CiB9CiAKLXN0YXRpYyB2b2lkCi13bmR3YzM3ZV9pbHV0KHN0cnVjdCBudjUwX3duZHcg KnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dykKK3N0YXRpYyBib29sCit3bmR3YzM3 ZV9pbHV0KHN0cnVjdCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5 dywgaW50IHNpemUpCiB7CisJaWYgKHNpemUgIT0gMjU2ICYmIHNpemUgIT0gMTAyNCkKKwkJcmV0 dXJuIGZhbHNlOworCiAJYXN5dy0+eGx1dC5pLm1vZGUgPSAyOwotCWFzeXctPnhsdXQuaS5zaXpl ID0gMDsKKwlhc3l3LT54bHV0Lmkuc2l6ZSA9IHNpemUgPT0gMTAyNCA/IDIgOiAwOwogCWFzeXct PnhsdXQuaS5yYW5nZSA9IDA7CiAJYXN5dy0+eGx1dC5pLm91dHB1dF9tb2RlID0gMTsKIAlhc3l3 LT54bHV0LmkubG9hZCA9IGhlYWQ5MDdkX29sdXRfbG9hZDsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAog dm9pZApAQCAtMjYxLDYgKzI2NSw3IEBAIHduZHdjMzdlID0gewogCS5udGZ5X3Jlc2V0ID0gY29y ZWMzN2RfbnRmeV9pbml0LAogCS5udGZ5X3dhaXRfYmVndW4gPSBiYXNlNTA3Y19udGZ5X3dhaXRf YmVndW4sCiAJLmlsdXQgPSB3bmR3YzM3ZV9pbHV0LAorCS5pbHV0X3NpemUgPSAxMDI0LAogCS54 bHV0X3NldCA9IHduZHdjMzdlX2lsdXRfc2V0LAogCS54bHV0X2NsciA9IHduZHdjMzdlX2lsdXRf Y2xyLAogCS5jc2MgPSBiYXNlOTA3Y19jc2MsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9kaXNwbnY1MC93bmR3YzU3ZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlz cG52NTAvd25kd2M1N2UuYwppbmRleCBhMzExYzc5ZTUyOTUuLmM0NmYzMjM4YjE1ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvd25kd2M1N2UuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC93bmR3YzU3ZS5jCkBAIC0xNTYsMTkgKzE1 NiwyMSBAQCB3bmR3YzU3ZV9pbHV0X2xvYWQoc3RydWN0IGRybV9jb2xvcl9sdXQgKmluLCBpbnQg c2l6ZSwgdm9pZCBfX2lvbWVtICptZW0pCiAJd3JpdGV3KHJlYWR3KG1lbSAtIDQpLCBtZW0gKyA0 KTsKIH0KIAotc3RhdGljIHZvaWQKLXduZHdjNTdlX2lsdXQoc3RydWN0IG52NTBfd25kdyAqd25k dywgc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3KQorc3RhdGljIGJvb2wKK3duZHdjNTdlX2ls dXQoc3RydWN0IG52NTBfd25kdyAqd25kdywgc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3LCBp bnQgc2l6ZSkKIHsKLQl1MTYgc2l6ZSA9IGFzeXctPmlsdXQtPmxlbmd0aCAvIHNpemVvZihzdHJ1 Y3QgZHJtX2NvbG9yX2x1dCk7CisJaWYgKHNpemUgIT0gMjU2ICYmIHNpemUgIT0gMTAyNCkKKwkJ cmV0dXJuIGZhbHNlOworCiAJaWYgKHNpemUgPT0gMjU2KSB7CiAJCWFzeXctPnhsdXQuaS5tb2Rl ID0gMTsgLyogRElSRUNUOC4gKi8KIAl9IGVsc2UgewogCQlhc3l3LT54bHV0LmkubW9kZSA9IDI7 IC8qIERJUkVDVDEwLiAqLwotCQlzaXplID0gMTAyNDsKIAl9CiAJYXN5dy0+eGx1dC5pLnNpemUg PSA0IC8qIFZTUyBoZWFkZXIuICovICsgc2l6ZSArIDEgLyogRW50cmllcy4gKi87CiAJYXN5dy0+ eGx1dC5pLm91dHB1dF9tb2RlID0gMDsgLyogSU5URVJQT0xBVEVfRElTQUJMRS4gKi8KIAlhc3l3 LT54bHV0LmkubG9hZCA9IHduZHdjNTdlX2lsdXRfbG9hZDsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAog c3RhdGljIGNvbnN0IHN0cnVjdCBudjUwX3duZHdfZnVuYwpAQCAtMTgzLDYgKzE4NSw3IEBAIHdu ZHdjNTdlID0gewogCS5udGZ5X3dhaXRfYmVndW4gPSBiYXNlNTA3Y19udGZ5X3dhaXRfYmVndW4s CiAJLmlsdXQgPSB3bmR3YzU3ZV9pbHV0LAogCS5pbHV0X2lkZW50aXR5ID0gdHJ1ZSwKKwkuaWx1 dF9zaXplID0gMTAyNCwKIAkueGx1dF9zZXQgPSB3bmR3YzU3ZV9pbHV0X3NldCwKIAkueGx1dF9j bHIgPSB3bmR3YzU3ZV9pbHV0X2NsciwKIAkuY3NjID0gYmFzZTkwN2NfY3NjLAotLSAKMi4yMS4w CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=