From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Tue, 13 Nov 2018 14:36:28 +0000 Message-Id: <20181113143629.28101-4-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20181113143629.28101-1-tvrtko.ursulin@linux.intel.com> References: <20181113143629.28101-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH i-g-t 3/4] tests/gem_media_vme: Simple test to exercise the VME block List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-ID: RnJvbTogVG9ueSBZZSA8dG9ueS55ZUBpbnRlbC5jb20+CgpTaW1wbGUgdGVzdCB3aGljaCBleGVy Y2lzZXMgdGhlIFZNRSBmaXhlZCBmdW5jdGlvbiBibG9jay4KCnYyOiAoVHZydGtvIFVyc3VsaW4p CiAqIFNtYWxsIGNsZWFudXBzIGxpa2UgY29weXJpZ2h0IGRhdGUsIHRhYnMsIHJlbW92ZSB1bnVz ZWQgYml0cy4KCnYzOiAoVG9ueSBZZSkKICogQWRkZWQgY3VyYmUgZGF0YSBlbnRyeSBmb3IgZHN0 IHN1cmZhY2UuCiAqIFJlYWQgdGhlIGRzdCBzdXJmYWNlIGFmdGVyIHRoZSBWTUUga2VybmVsIGJl aW5nIGV4ZWN1dGVkLgoKU2lnbmVkLW9mZi1ieTogVG9ueSBZZSA8dG9ueS55ZUBpbnRlbC5jb20+ ClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ Ci0tLQogbGliL2dwdV9jbWRzLmMgICAgICAgICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogbGliL2dwdV9jbWRzLmggICAgICAgICAgICAgfCAgMjAgKysr KystCiBsaWIvaW50ZWxfYmF0Y2hidWZmZXIuYyAgICB8ICAgOSArKysKIGxpYi9pbnRlbF9iYXRj aGJ1ZmZlci5oICAgIHwgICA3ICsrCiBsaWIvbWVkaWFfZmlsbC5jICAgICAgICAgICB8IDExNyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvbWVkaWFfZmlsbC5oICAgICAgICAg ICB8ICAgNiArKwogbGliL3N1cmZhY2Vmb3JtYXQuaCAgICAgICAgfCAgIDIgKwogdGVzdHMvTWFr ZWZpbGUuc291cmNlcyAgICAgfCAgIDMgKwogdGVzdHMvaTkxNS9nZW1fbWVkaWFfdm1lLmMgfCAx MTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdGVzdHMvbWVzb24uYnVpbGQgICAg ICAgICAgfCAgIDEgKwogMTAgZmlsZXMgY2hhbmdlZCwgNDEzIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvaTkxNS9nZW1fbWVkaWFfdm1lLmMK CmRpZmYgLS1naXQgYS9saWIvZ3B1X2NtZHMuYyBiL2xpYi9ncHVfY21kcy5jCmluZGV4IDU1NmE5 NGM2ZjBiNi4uYjQ5MGE2M2JkZmVmIDEwMDY0NAotLS0gYS9saWIvZ3B1X2NtZHMuYworKysgYi9s aWIvZ3B1X2NtZHMuYwpAQCAtNTIsNiArNTIsMjIgQEAgZ2VuN19maWxsX2N1cmJlX2J1ZmZlcl9k YXRhKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJcmV0dXJuIG9mZnNldDsKIH0K IAordWludDMyX3QKK2dlbjExX2ZpbGxfY3VyYmVfYnVmZmVyX2RhdGEoc3RydWN0IGludGVsX2Jh dGNoYnVmZmVyICpiYXRjaCkKK3sKKwl1aW50MzJfdCAqY3VyYmVfYnVmZmVyOworCXVpbnQzMl90 IG9mZnNldDsKKworCWN1cmJlX2J1ZmZlciA9IGludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFfYWxs b2MoYmF0Y2gsCisJCQkJCQkgICAgICAgc2l6ZW9mKHVpbnQzMl90KSAqIDgsCisJCQkJCQkgICAg ICAgNjQpOworCW9mZnNldCA9IGludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFfb2Zmc2V0KGJhdGNo LCBjdXJiZV9idWZmZXIpOworCSpjdXJiZV9idWZmZXIrKyA9IDA7CisJKmN1cmJlX2J1ZmZlciAg ID0gMTsKKworCXJldHVybiBvZmZzZXQ7Cit9CisKIHVpbnQzMl90CiBnZW43X2ZpbGxfc3VyZmFj ZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQkJY29uc3Qgc3RydWN0 IGlndF9idWYgKmJ1ZiwKQEAgLTExOSw2ICsxMzUsMjYgQEAgZ2VuN19maWxsX2JpbmRpbmdfdGFi bGUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIAlyZXR1cm4gb2Zmc2V0OwogfQog Cit1aW50MzJfdAorZ2VuMTFfZmlsbF9iaW5kaW5nX3RhYmxlKHN0cnVjdCBpbnRlbF9iYXRjaGJ1 ZmZlciAqYmF0Y2gsCisJCQljb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqc3JjLGNvbnN0IHN0cnVjdCBp Z3RfYnVmICpkc3QpCit7CisJdWludDMyX3QgKmJpbmRpbmdfdGFibGUsIG9mZnNldDsKKworCWJp bmRpbmdfdGFibGUgPSBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJkYXRhX2FsbG9jKGJhdGNoLCA2NCwg NjQpOworCW9mZnNldCA9IGludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFfb2Zmc2V0KGJhdGNoLCBi aW5kaW5nX3RhYmxlKTsKKwliaW5kaW5nX3RhYmxlWzBdID0gZ2VuMTFfZmlsbF9zdXJmYWNlX3N0 YXRlKGJhdGNoLCBzcmMsCisJCQkJCQlTVVJGQUNFXzFELFNVUkZBQ0VGT1JNQVRfUjMyRzMyQjMy QTMyX0ZMT0FULAorCQkJCQkJMCwwLAorCQkJCQkJMCk7CisJYmluZGluZ190YWJsZVsxXSA9IGdl bjExX2ZpbGxfc3VyZmFjZV9zdGF0ZShiYXRjaCwgZHN0LAorCQkJCQkJU1VSRkFDRV9CVUZGRVIs IFNVUkZBQ0VGT1JNQVRfUkFXLAorCQkJCQkJMSwxLAorCQkJCQkJMSk7CisKKwlyZXR1cm4gb2Zm c2V0OworfQorCiB1aW50MzJfdAogZ2VuN19maWxsX2tlcm5lbChzdHJ1Y3QgaW50ZWxfYmF0Y2hi dWZmZXIgKmJhdGNoLAogCQljb25zdCB1aW50MzJfdCBrZXJuZWxbXVs0XSwKQEAgLTM4NCw2ICs0 MjAsNzEgQEAgZ2VuOF9maWxsX3N1cmZhY2Vfc3RhdGUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVy ICpiYXRjaCwKIAlyZXR1cm4gb2Zmc2V0OwogfQogCit1aW50MzJfdAorZ2VuMTFfZmlsbF9zdXJm YWNlX3N0YXRlKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCisJCQljb25zdCBzdHJ1 Y3QgaWd0X2J1ZiAqYnVmLAorCQkJdWludDMyX3Qgc3VyZmFjZV90eXBlLAorCQkJdWludDMyX3Qg Zm9ybWF0LAorCQkJdWludDMyX3QgdmVydGljYWxfYWxpZ25tZW50LAorCQkJdWludDMyX3QgaG9y aXpvbnRhbF9hbGlnbm1lbnQsCisJCQlpbnQgaXNfZHN0KQoreworCXN0cnVjdCBnZW44X3N1cmZh Y2Vfc3RhdGUgKnNzOworCXVpbnQzMl90IHdyaXRlX2RvbWFpbiwgcmVhZF9kb21haW4sIG9mZnNl dDsKKwlpbnQgcmV0OworCisJaWYgKGlzX2RzdCkgeworCQl3cml0ZV9kb21haW4gPSByZWFkX2Rv bWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7CisJfSBlbHNlIHsKKwkJd3JpdGVfZG9tYWlu ID0gMDsKKwkJcmVhZF9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fU0FNUExFUjsKKwl9CisKKwlz cyA9IGludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFfYWxsb2MoYmF0Y2gsIHNpemVvZigqc3MpLCA2 NCk7CisJb2Zmc2V0ID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9vZmZzZXQoYmF0Y2gsIHNz KTsKKworCXNzLT5zczAuc3VyZmFjZV90eXBlID0gc3VyZmFjZV90eXBlOworCXNzLT5zczAuc3Vy ZmFjZV9mb3JtYXQgPSBmb3JtYXQ7CisJc3MtPnNzMC5yZW5kZXJfY2FjaGVfcmVhZF93cml0ZSA9 IDE7CisJc3MtPnNzMC52ZXJ0aWNhbF9hbGlnbm1lbnQgPSB2ZXJ0aWNhbF9hbGlnbm1lbnQ7IC8q IGFsaWduIDQgKi8KKwlzcy0+c3MwLmhvcml6b250YWxfYWxpZ25tZW50ID0gaG9yaXpvbnRhbF9h bGlnbm1lbnQ7IC8qIGFsaWduIDQgKi8KKworCWlmIChidWYtPnRpbGluZyA9PSBJOTE1X1RJTElO R19YKQorCQlzcy0+c3MwLnRpbGVkX21vZGUgPSAyOworCWVsc2UgaWYgKGJ1Zi0+dGlsaW5nID09 IEk5MTVfVElMSU5HX1kpCisJCXNzLT5zczAudGlsZWRfbW9kZSA9IDM7CisJZWxzZQorCQlzcy0+ c3MwLnRpbGVkX21vZGUgPSAwOworCisJc3MtPnNzOC5iYXNlX2FkZHIgPSBidWYtPmJvLT5vZmZz ZXQ7CisKKwlyZXQgPSBkcm1faW50ZWxfYm9fZW1pdF9yZWxvYyhiYXRjaC0+Ym8sCisJCQkJaW50 ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9vZmZzZXQoYmF0Y2gsIHNzKSArIDggKiA0LAorCQkJCWJ1 Zi0+Ym8sIDAsIHJlYWRfZG9tYWluLCB3cml0ZV9kb21haW4pOworCWlndF9hc3NlcnQocmV0ID09 IDApOworCisJaWYgKGlzX2RzdCkgeworCQlzcy0+c3MxLm1lbW9yeV9vYmplY3RfY29udHJvbCA9 IDI7CisJCXNzLT5zczIuaGVpZ2h0ID0gMTsKKwkJc3MtPnNzMi53aWR0aCAgPSA5NTsKKwkJc3Mt PnNzMy5waXRjaCAgPSAwOworCQlzcy0+c3M3LnNoYWRlcl9jaGFuZWxfc2VsZWN0X3IgPSA0Owor CQlzcy0+c3M3LnNoYWRlcl9jaGFuZWxfc2VsZWN0X2cgPSA1OworCQlzcy0+c3M3LnNoYWRlcl9j aGFuZWxfc2VsZWN0X2IgPSA2OworCQlzcy0+c3M3LnNoYWRlcl9jaGFuZWxfc2VsZWN0X2EgPSA3 OworCX0KKwllbHNlIHsKKwkJc3MtPnNzMS5xcGl0Y2ggPSA0MDQwOworCQlzcy0+c3MxLmJhc2Vf bWlwX2xldmVsID0gMzE7CisJCXNzLT5zczIuaGVpZ2h0ID0gOTIxNjsKKwkJc3MtPnNzMi53aWR0 aCAgPSAxMDE5OworCQlzcy0+c3MzLnBpdGNoICA9IDY0OworCQlzcy0+c3M1Lm1pcF9jb3VudCA9 IDI7CisJfQorCisJcmV0dXJuIG9mZnNldDsKK30KKwogdWludDMyX3QKIGdlbjhfZmlsbF9pbnRl cmZhY2VfZGVzY3JpcHRvcihzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQkJICAg ICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpkc3QsCkBAIC00MTksNiArNTIwLDQxIEBAIGdlbjhf ZmlsbF9pbnRlcmZhY2VfZGVzY3JpcHRvcihzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNo LAogCXJldHVybiBvZmZzZXQ7CiB9CiAKK3VpbnQzMl90CitnZW4xMV9maWxsX2ludGVyZmFjZV9k ZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCisJCQkgICAgICAgY29u c3Qgc3RydWN0IGlndF9idWYgKnNyYyxjb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0LAorCQkJICAg ICAgIGNvbnN0IHVpbnQzMl90IGtlcm5lbFtdWzRdLAorCQkJICAgICAgIHNpemVfdCBzaXplKQor eworCXN0cnVjdCBnZW44X2ludGVyZmFjZV9kZXNjcmlwdG9yX2RhdGEgKmlkZDsKKwl1aW50MzJf dCBvZmZzZXQ7CisJdWludDMyX3QgYmluZGluZ190YWJsZV9vZmZzZXQsIGtlcm5lbF9vZmZzZXQ7 CisKKwliaW5kaW5nX3RhYmxlX29mZnNldCA9IGdlbjExX2ZpbGxfYmluZGluZ190YWJsZShiYXRj aCwgc3JjLGRzdCk7CisJa2VybmVsX29mZnNldCA9IGdlbjdfZmlsbF9rZXJuZWwoYmF0Y2gsIGtl cm5lbCwgc2l6ZSk7CisKKwlpZGQgPSBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJkYXRhX2FsbG9jKGJh dGNoLCBzaXplb2YoKmlkZCksIDY0KTsKKwlvZmZzZXQgPSBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJk YXRhX29mZnNldChiYXRjaCwgaWRkKTsKKworCWlkZC0+ZGVzYzAua2VybmVsX3N0YXJ0X3BvaW50 ZXIgPSAoa2VybmVsX29mZnNldCA+PiA2KTsKKworCWlkZC0+ZGVzYzIuc2luZ2xlX3Byb2dyYW1f ZmxvdyA9IDE7CisJaWRkLT5kZXNjMi5mbG9hdGluZ19wb2ludF9tb2RlID0gR0VOOF9GTE9BVElO R19QT0lOVF9JRUVFXzc1NDsKKworCWlkZC0+ZGVzYzMuc2FtcGxlcl9jb3VudCA9IDA7ICAgICAg LyogMCBzYW1wbGVycyB1c2VkICovCisJaWRkLT5kZXNjMy5zYW1wbGVyX3N0YXRlX3BvaW50ZXIg PSAwOworCisJaWRkLT5kZXNjNC5iaW5kaW5nX3RhYmxlX2VudHJ5X2NvdW50ID0gMDsKKwlpZGQt PmRlc2M0LmJpbmRpbmdfdGFibGVfcG9pbnRlciA9IChiaW5kaW5nX3RhYmxlX29mZnNldCA+PiA1 KTsKKworCWlkZC0+ZGVzYzUuY29uc3RhbnRfdXJiX2VudHJ5X3JlYWRfb2Zmc2V0ID0gMDsKKwlp ZGQtPmRlc2M1LmNvbnN0YW50X3VyYl9lbnRyeV9yZWFkX2xlbmd0aCA9IDE7IC8qIGdyZiAxICov CisKKwlpZGQtPmRlc2M2Lm51bV90aHJlYWRzX2luX3RnID0gMTsKKworCXJldHVybiBvZmZzZXQ7 Cit9CisKIHZvaWQKIGdlbjhfZW1pdF9zdGF0ZV9iYXNlX2FkZHJlc3Moc3RydWN0IGludGVsX2Jh dGNoYnVmZmVyICpiYXRjaCkKIHsKZGlmZiAtLWdpdCBhL2xpYi9ncHVfY21kcy5oIGIvbGliL2dw dV9jbWRzLmgKaW5kZXggNzliYzRkNjQ3M2JhLi5jYTY3MWZiNTJkYWYgMTAwNjQ0Ci0tLSBhL2xp Yi9ncHVfY21kcy5oCisrKyBiL2xpYi9ncHVfY21kcy5oCkBAIC00Myw2ICs0Myw4IEBAIGdlbjdf cmVuZGVyX2ZsdXNoKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsIHVpbnQzMl90IGJh dGNoX2VuZCk7CiB1aW50MzJfdAogZ2VuN19maWxsX2N1cmJlX2J1ZmZlcl9kYXRhKHN0cnVjdCBp bnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJCQl1aW50OF90IGNvbG9yKTsKK3VpbnQzMl90Citn ZW4xMV9maWxsX2N1cmJlX2J1ZmZlcl9kYXRhKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0 Y2gpOwogCiB1aW50MzJfdAogZ2VuN19maWxsX3N1cmZhY2Vfc3RhdGUoc3RydWN0IGludGVsX2Jh dGNoYnVmZmVyICpiYXRjaCwKQEAgLTUzLDYgKzU1LDkgQEAgZ2VuN19maWxsX3N1cmZhY2Vfc3Rh dGUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIHVpbnQzMl90CiBnZW43X2ZpbGxf YmluZGluZ190YWJsZShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQkJY29uc3Qg c3RydWN0IGlndF9idWYgKmRzdCk7Cit1aW50MzJfdAorZ2VuMTFfZmlsbF9iaW5kaW5nX3RhYmxl KHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCisJCQljb25zdCBzdHJ1Y3QgaWd0X2J1 ZiAqc3JjLGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpkc3QpOwogCiB1aW50MzJfdAogZ2VuN19maWxs X2tlcm5lbChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLApAQCAtOTksMTMgKzEwNCwy NCBAQCBnZW44X2ZpbGxfc3VyZmFjZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJh dGNoLAogCQkJY29uc3Qgc3RydWN0IGlndF9idWYgKmJ1ZiwKIAkJCXVpbnQzMl90IGZvcm1hdCwK IAkJCWludCBpc19kc3QpOwotCit1aW50MzJfdAorZ2VuMTFfZmlsbF9zdXJmYWNlX3N0YXRlKHN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCisJCQljb25zdCBzdHJ1Y3QgaWd0X2J1ZiAq YnVmLAorCQkJdWludDMyX3Qgc3VyZmFjZV90eXBlLAorCQkJdWludDMyX3QgZm9ybWF0LAorCQkJ dWludDMyX3QgdmVydGljYWxfYWxpZ25tZW50LAorCQkJdWludDMyX3QgaG9yaXpvbnRhbF9hbGln bm1lbnQsCisJCQlpbnQgaXNfZHN0KTsKIHVpbnQzMl90CiBnZW44X2ZpbGxfaW50ZXJmYWNlX2Rl c2NyaXB0b3Ioc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIAkJCSAgICAgICBjb25z dCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0LAogCQkJICAgICAgIGNvbnN0IHVpbnQzMl90IGtlcm5lbFtd WzRdLAogCQkJICAgICAgIHNpemVfdCBzaXplKTsKLQordWludDMyX3QKK2dlbjExX2ZpbGxfaW50 ZXJmYWNlX2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKKwkJCSAg ICAgICBjb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqc3JjLGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpkc3Qs CisJCQkgICAgICAgY29uc3QgdWludDMyX3Qga2VybmVsW11bNF0sCisJCQkgICAgICAgc2l6ZV90 IHNpemUpOwogdm9pZAogZ2VuOF9lbWl0X3N0YXRlX2Jhc2VfYWRkcmVzcyhzdHJ1Y3QgaW50ZWxf YmF0Y2hidWZmZXIgKmJhdGNoKTsKIApkaWZmIC0tZ2l0IGEvbGliL2ludGVsX2JhdGNoYnVmZmVy LmMgYi9saWIvaW50ZWxfYmF0Y2hidWZmZXIuYwppbmRleCBjMTNiMWRjNDc2YTMuLjIwNDUzY2Zh NWRlYyAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2JhdGNoYnVmZmVyLmMKKysrIGIvbGliL2ludGVs X2JhdGNoYnVmZmVyLmMKQEAgLTg3Miw2ICs4NzIsMTUgQEAgaWd0X2ZpbGxmdW5jX3QgaWd0X2dl dF9tZWRpYV9maWxsZnVuYyhpbnQgZGV2aWQpCiAJcmV0dXJuIGZpbGw7CiB9CiAKK2lndF92bWVf ZnVuY190IGlndF9nZXRfbWVkaWFfdm1lX2Z1bmMoaW50IGRldmlkKQoreworCWlndF92bWVfZnVu Y190IGZpbGwgPSBOVUxMOworCisJaWYgKElTX0dFTjkoZGV2aWQpIHx8IElTX0dFTjEwKGRldmlk KSB8fCBJU19HRU4xMShkZXZpZCkpCisJCWZpbGwgPSBnZW4xMV9tZWRpYV92bWVfZnVuYzsKKwor CXJldHVybiBmaWxsOworfQogLyoqCiAgKiBpZ3RfZ2V0X2dwZ3B1X2ZpbGxmdW5jOgogICogQGRl dmlkOiBwY2kgZGV2aWNlIGlkCmRpZmYgLS1naXQgYS9saWIvaW50ZWxfYmF0Y2hidWZmZXIuaCBi L2xpYi9pbnRlbF9iYXRjaGJ1ZmZlci5oCmluZGV4IDJkY2IwOWNlOGYwOC4uZDIxZmI5MGVkMTQ3 IDEwMDY0NAotLS0gYS9saWIvaW50ZWxfYmF0Y2hidWZmZXIuaAorKysgYi9saWIvaW50ZWxfYmF0 Y2hidWZmZXIuaApAQCAtMzIzLDYgKzMyMywxMyBAQCB0eXBlZGVmIHZvaWQgKCppZ3RfZmlsbGZ1 bmNfdCkoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIGlndF9maWxsZnVuY190IGln dF9nZXRfbWVkaWFfZmlsbGZ1bmMoaW50IGRldmlkKTsKIGlndF9maWxsZnVuY190IGlndF9nZXRf Z3BncHVfZmlsbGZ1bmMoaW50IGRldmlkKTsKIAordHlwZWRlZiB2b2lkICgqaWd0X3ZtZV9mdW5j X3QpKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCisJCQkgICAgICAgY29uc3Qgc3Ry dWN0IGlndF9idWYgKnNyYywKKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgd2lkdGgsIHVuc2lnbmVk IGludCBoZWlnaHQsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGlndF9idWYgKmRzdCk7CisKK2ln dF92bWVfZnVuY190IGlndF9nZXRfbWVkaWFfdm1lX2Z1bmMoaW50IGRldmlkKTsKKwogLyoqCiAg KiBpZ3RfbWVkaWFfc3BpbmZ1bmNfdDoKICAqIEBiYXRjaDogYmF0Y2hidWZmZXIgb2JqZWN0CmRp ZmYgLS1naXQgYS9saWIvbWVkaWFfZmlsbC5jIGIvbGliL21lZGlhX2ZpbGwuYwppbmRleCA0OTQy MjI5NTA1ZmYuLmFiNjEzYjMwODc0MiAxMDA2NDQKLS0tIGEvbGliL21lZGlhX2ZpbGwuYworKysg Yi9saWIvbWVkaWFfZmlsbC5jCkBAIC02MSw2ICs2MSw1MyBAQCBzdGF0aWMgY29uc3QgdWludDMy X3QgZ2VuOF9tZWRpYV9rZXJuZWxbXVs0XSA9IHsKIAl7IDB4MDc4MDAwMzEsIDB4MjAwMDBhNDAs IDB4MGUwMDBlMDAsIDB4ODIwMDAwMTAgfSwKIH07CiAKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBn ZW4xMV9tZWRpYV92bWVfa2VybmVsW11bNF0gPSB7CisgICAgeyAweDAwMDAwMDAxLCAweDAwMDAw MDQwLCAweDAwMDAwMDAwLDB4MDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDAsIDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsMHgwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDAwMCwgMHgwMDAwMDAw MCwgMHgwMDAwMDAwMCwweDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDAwMDAwLCAweDAwMDAwMDAw LCAweDAwMDAwMDAwLDB4MDAwMDAwMDAgfSwKKyAgICB7IDB4MDA2MDAwMDEsIDB4MjAzMDJlNjgs IDB4MDAwMDAwMDAsMHgyMDAwMDAwMCB9LAorICAgIHsgMHgwMDYwMDAwMSwgMHgyMjgwMmU2OCwg MHgwMDAwMDAwMCwweDAwMDAwMDAxIH0sCisgICAgeyAweDAwMDAwMDAxLCAweDIwMjg0ZjJjLCAw eDAwMDAwMDAwLDB4MzgxODAwMGMgfSwKKyAgICB7IDB4MDA2MDAwMDEsIDB4MjI5MDJlNjgsIDB4 MDAwMDAwMDAsMHgwMDAwMDAxMCB9LAorICAgIHsgMHgwMDYwMDAwMSwgMHgyMmEwMmU2OCwgMHgw MDAwMDAwMCwweDAwMDEwMDAwIH0sCisgICAgeyAweDAwMDAwMDAxLCAweDIwMmM0ZjJjLCAweDAw MDAwMDAwLDB4MjIyMjIyMjIgfSwKKyAgICB7IDB4MDAwMDAwNDAsIDB4MjIwMDBhMjAsIDB4MGUw MDAwMjAsMHgxMDc4MjAwMCB9LAorICAgIHsgMHgwMDYwMDAwMSwgMHgyMDQwNGYyOCwgMHgwMDAw MDAwMCwweDAwMDAwMDAwIH0sCisgICAgeyAweDAwNjAwMDAxLCAweDIwYTA0ZjI4LCAweDAwMDAw MDAwLDB4MDAwMDAwMDAgfSwKKyAgICB7IDB4MDA2MDAwMDEsIDB4MjBjMDRmMjgsIDB4MDAwMDAw MDAsMHgwMDAwMDAwMCB9LAorICAgIHsgMHgwMDYwMDAwMSwgMHgyMTIwNGYyOCwgMHgwMDAwMDAw MCwweDAwMDAwMDAwIH0sCisgICAgeyAweDAwNjAwMDAxLCAweDIwNjAxYTI4LCAweDAwOGQwMDMw LDB4MDAwMDAwMDAgfSwKKyAgICB7IDB4MDA2MDAwNDEsIDB4MjA4MDBhMjgsIDB4MWEwMDAwMjgs MHgwMDhkMDI4MCB9LAorICAgIHsgMHgwMDYwMDA0MSwgMHgyMGUwMWEyOCwgMHgxZThkMDI5MCww eDAxMDAwMTAwIH0sCisgICAgeyAweDAwNjAwMDQxLCAweDIxMDAwYTI4LCAweDFhMDAwMDJjLDB4 MDA4ZDAyYTAgfSwKKyAgICB7IDB4MDAwMDAwMDEsIDB4MjIyODRmMmMsIDB4MDAwMDAwMDAsMHgw MDAwMDAwMCB9LAorICAgIHsgMHgwZDgwYzAzMSwgMHgyMTQwNGE0OCwgMHgwMDAwMDA0MCwweDAw MDAwMjAwIH0sCisgICAgeyAweDAwMDAwMDAxLCAweDIxNWM0NzA4LCAweDAwMDAwMDAwLDB4YmVl ZmJlZWYgfSwKKyAgICB7IDB4MDAwMDAwNDAsIDB4MjIwMDAyMDQsIDB4MDYwMDAwMjQsMHgwMjBh MDQwMCB9LAorICAgIHsgMHgwMDAwMDAwMSwgMHgyMTVlNDcwOCwgMHgwMDAwMDAwMCwweGRlYWRk ZWFkIH0sCisgICAgeyAweDAwMDAwMDAxLCAweDIyNDg0ZjJjLCAweDAwMDAwMDAwLDB4MDAwMDAw MDggfSwKKyAgICB7IDB4MDAwMDAwMDEsIDB4MjI2ODRmMmMsIDB4MDAwMDAwMDAsMHgwMDAwMDAw YyB9LAorICAgIHsgMHgwMDYwMDAwMSwgMHgyZmUwNGIyYywgMHgwMDhkMDAwMCwweDAwMDAwMDAw IH0sCisgICAgeyAweDBhODAwMDMzLCAweDAwMDBhMDU0LCAweDAwMDAyMjI0LDB4MDAwMDAwMDAg fSwKKyAgICB7IDB4MDAwMDAwNDAsIDB4MjIwMDAyMDQsIDB4MDYwMDAwMjQsMHgwMjBhMDMwMCB9 LAorICAgIHsgMHgwYTgwMDAzMywgMHgwMDAwZTA1NCwgMHgwMDAwMjI0MiwweDAwMDAwMDAwIH0s CisgICAgeyAweDAwMDAwMDQwLCAweDIyMDAwMjA0LCAweDA2MDAwMDI0LDB4MDIwYTAyMDAgfSwK KyAgICB7IDB4MGE2MDAwMzMsIDB4MDAwMTAwMTQsIDB4MDAwMDIyNjEsMHgwMDAwMDAwMCB9LAor ICAgIHsgMHgwNzYwMDAzMSwgMHgyMDAwNGEwNCwgMHgwNjAwMGZlMCwweDgyMDAwMDEwIH0sCisg ICAgeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLDB4MDAwMDAwMDAgfSwKKyAg ICB7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsMHgwMDAwMDAwMCB9LAorICAg IHsgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwweDAwMDAwMDAwIH0sCisgICAg eyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLDB4MDAwMDAwMDAgfSwKKyAgICB7 IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsMHgwMDAwMDAwMCB9LAorICAgIHsg MHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwweDAwMDAwMDAwIH0sCisgICAgeyAw eDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLDB4MDAwMDAwMDAgfSwKKyAgICB7IDB4 MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsMHgwMDAwMDAwMCB9LAorICAgIHsgMHgw MDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwweDAwMDAwMDAwIH0sCisgICAgeyAweDAw MDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLDB4MDAwMDAwMDAgfSwKKyAgICB7IDB4MDAw MDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsMHgwMDAwMDAwMCB9LAorfTsKKwogLyoKICAq IFRoaXMgc2V0cyB1cCB0aGUgbWVkaWEgcGlwZWxpbmUsCiAgKgpAQCAtMjQ1LDMgKzI5Miw3MyBA QCBnZW45X21lZGlhX2ZpbGxmdW5jKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJ CQkgICAgICBnZW44X21lZGlhX2tlcm5lbCwgc2l6ZW9mKGdlbjhfbWVkaWFfa2VybmVsKSk7CiAK IH0KKworc3RhdGljIHZvaWQKK19fZ2VuMTFfbWVkaWFfdm1lX2Z1bmMoc3RydWN0IGludGVsX2Jh dGNoYnVmZmVyICpiYXRjaCwKKwkJICAgICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpzcmMsCisJ CSAgICAgICB1bnNpZ25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQsCisJCSAgICAg ICBjb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0LAorCQkgICAgICAgY29uc3QgdWludDMyX3Qga2Vy bmVsW11bNF0sCisJCSAgICAgICBzaXplX3Qga2VybmVsX3NpemUpCit7CisJdWludDMyX3QgY3Vy YmVfYnVmZmVyLCBpbnRlcmZhY2VfZGVzY3JpcHRvcjsKKwl1aW50MzJfdCBiYXRjaF9lbmQ7CisK KwlpbnRlbF9iYXRjaGJ1ZmZlcl9mbHVzaChiYXRjaCk7CisKKwkvKiBzZXR1cCBzdGF0ZXMgKi8K KwliYXRjaC0+cHRyID0gJmJhdGNoLT5idWZmZXJbQkFUQ0hfU1RBVEVfU1BMSVRdOworCisJY3Vy YmVfYnVmZmVyID0gZ2VuMTFfZmlsbF9jdXJiZV9idWZmZXJfZGF0YShiYXRjaCk7CisJaW50ZXJm YWNlX2Rlc2NyaXB0b3IgPSBnZW4xMV9maWxsX2ludGVyZmFjZV9kZXNjcmlwdG9yKGJhdGNoLCBz cmMsIGRzdCwKKwkJCQkJa2VybmVsLCBrZXJuZWxfc2l6ZSk7CisJYXNzZXJ0KGJhdGNoLT5wdHIg PCAmYmF0Y2gtPmJ1ZmZlcls0MDk1XSk7CisKKwkvKiBtZWRpYSBwaXBlbGluZSAqLworCWJhdGNo LT5wdHIgPSBiYXRjaC0+YnVmZmVyOworCU9VVF9CQVRDSChHRU44X1BJUEVMSU5FX1NFTEVDVCB8 IFBJUEVMSU5FX1NFTEVDVF9NRURJQSB8CisJCSAgR0VOOV9GT1JDRV9NRURJQV9BV0FLRV9FTkFC TEUgfAorCQkgIEdFTjlfU0FNUExFUl9ET1BfR0FURV9ESVNBQkxFIHwKKwkJICBHRU45X1BJUEVM SU5FX1NFTEVDVElPTl9NQVNLIHwKKwkJICBHRU45X1NBTVBMRVJfRE9QX0dBVEVfTUFTSyB8CisJ CSAgR0VOOV9GT1JDRV9NRURJQV9BV0FLRV9NQVNLKTsKKwlnZW45X2VtaXRfc3RhdGVfYmFzZV9h ZGRyZXNzKGJhdGNoKTsKKworCWdlbjhfZW1pdF92ZmVfc3RhdGUoYmF0Y2gsIFRIUkVBRFMsIE1F RElBX1VSQl9FTlRSSUVTLCBNRURJQV9VUkJfU0laRSwKKwkJCSAgICBNRURJQV9DVVJCRV9TSVpF KTsKKworCWdlbjdfZW1pdF9jdXJiZV9sb2FkKGJhdGNoLCBjdXJiZV9idWZmZXIpOworCisJZ2Vu N19lbWl0X2ludGVyZmFjZV9kZXNjcmlwdG9yX2xvYWQoYmF0Y2gsIGludGVyZmFjZV9kZXNjcmlw dG9yKTsKKworCWdlbjdfZW1pdF9tZWRpYV9vYmplY3RzKGJhdGNoLCAwLCAwLCB3aWR0aCwgaGVp Z2h0KTsKKworCU9VVF9CQVRDSChHRU44X1BJUEVMSU5FX1NFTEVDVCB8IFBJUEVMSU5FX1NFTEVD VF9NRURJQSB8CisJCSAgR0VOOV9GT1JDRV9NRURJQV9BV0FLRV9ESVNBQkxFIHwKKwkJICBHRU45 X1NBTVBMRVJfRE9QX0dBVEVfRU5BQkxFIHwKKwkJICBHRU45X1BJUEVMSU5FX1NFTEVDVElPTl9N QVNLIHwKKwkJICBHRU45X1NBTVBMRVJfRE9QX0dBVEVfTUFTSyB8CisJCSAgR0VOOV9GT1JDRV9N RURJQV9BV0FLRV9NQVNLKTsKKworCU9VVF9CQVRDSChNSV9CQVRDSF9CVUZGRVJfRU5EKTsKKwor CWJhdGNoX2VuZCA9IGludGVsX2JhdGNoYnVmZmVyX2FsaWduKGJhdGNoLCA4KTsKKwlhc3NlcnQo YmF0Y2hfZW5kIDwgQkFUQ0hfU1RBVEVfU1BMSVQpOworCisJZ2VuN19yZW5kZXJfZmx1c2goYmF0 Y2gsIGJhdGNoX2VuZCk7CisJaW50ZWxfYmF0Y2hidWZmZXJfcmVzZXQoYmF0Y2gpOworfQorCit2 b2lkCitnZW4xMV9tZWRpYV92bWVfZnVuYyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNo LAorCQkgICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpzcmMsCisJCSAgICAgdW5zaWduZWQgaW50 IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAorCQkgICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVm ICpkc3QpCit7CisJX19nZW4xMV9tZWRpYV92bWVfZnVuYyhiYXRjaCwKKwkJCSAgICAgICBzcmMs CisJCQkgICAgICAgd2lkdGgsIGhlaWdodCwKKwkJCSAgICAgICBkc3QsCisJCQkgICAgICAgZ2Vu MTFfbWVkaWFfdm1lX2tlcm5lbCwKKwkJCSAgICAgICBzaXplb2YoZ2VuMTFfbWVkaWFfdm1lX2tl cm5lbCkpOworfQpkaWZmIC0tZ2l0IGEvbGliL21lZGlhX2ZpbGwuaCBiL2xpYi9tZWRpYV9maWxs LmgKaW5kZXggZTM2NWRhOWU0N2QyLi4xZDVjNWZhODI2YTMgMTAwNjQ0Ci0tLSBhL2xpYi9tZWRp YV9maWxsLmgKKysrIGIvbGliL21lZGlhX2ZpbGwuaApAQCAtNDksNCArNDksMTAgQEAgZ2VuOV9t ZWRpYV9maWxsZnVuYyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQkgICAgdW5z aWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogCQkgICAgdWludDhfdCBjb2xv cik7CiAKK3ZvaWQKK2dlbjExX21lZGlhX3ZtZV9mdW5jKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZl ciAqYmF0Y2gsCisJCSAgICAgY29uc3Qgc3RydWN0IGlndF9idWYgKnNyYywKKwkJICAgICB1bnNp Z25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQsCisJCSAgICAgY29uc3Qgc3RydWN0 IGlndF9idWYgKmRzdCk7CisKICNlbmRpZiAvKiBSRU5ERV9NRURJQV9GSUxMX0ggKi8KZGlmZiAt LWdpdCBhL2xpYi9zdXJmYWNlZm9ybWF0LmggYi9saWIvc3VyZmFjZWZvcm1hdC5oCmluZGV4IDVk N2VkMmNhZGMyZC4uMzJlYTM3MzI2MmNhIDEwMDY0NAotLS0gYS9saWIvc3VyZmFjZWZvcm1hdC5o CisrKyBiL2xpYi9zdXJmYWNlZm9ybWF0LmgKQEAgLTE3MSw2ICsxNzEsOCBAQAogI2RlZmluZSBT VVJGQUNFRk9STUFUX1IxNkcxNkIxNl9TU0NBTEVECTB4MTlFCiAjZGVmaW5lIFNVUkZBQ0VGT1JN QVRfUjE2RzE2QjE2X1VTQ0FMRUQJMHgxOUYKIAorI2RlZmluZSBTVVJGQUNFRk9STUFUX1JBVwkw eDFGRgorCiAjZGVmaW5lIFNVUkZBQ0VSRVRVUk5GT1JNQVRfRkxPQVQzMgkwCiAjZGVmaW5lIFNV UkZBQ0VSRVRVUk5GT1JNQVRfUzEJMQogCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRleCBmZDk5YmMxNWRhNjcuLjYyOGEyOGY2 MTM2NCAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtl ZmlsZS5zb3VyY2VzCkBAIC0zMDAsNiArMzAwLDkgQEAgZ2VtX21hZHZpc2VfU09VUkNFUyA9IGk5 MTUvZ2VtX21hZHZpc2UuYwogVEVTVFNfcHJvZ3MgKz0gZ2VtX21lZGlhX2ZpbGwKIGdlbV9tZWRp YV9maWxsX1NPVVJDRVMgPSBpOTE1L2dlbV9tZWRpYV9maWxsLmMKIAorVEVTVFNfcHJvZ3MgKz0g Z2VtX21lZGlhX3ZtZQorZ2VtX21lZGlhX3ZtZV9TT1VSQ0VTID0gaTkxNS9nZW1fbWVkaWFfdm1l LmMKKwogVEVTVFNfcHJvZ3MgKz0gZ2VtX21tYXAKIGdlbV9tbWFwX1NPVVJDRVMgPSBpOTE1L2dl bV9tbWFwLmMKIApkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fbWVkaWFfdm1lLmMgYi90ZXN0 cy9pOTE1L2dlbV9tZWRpYV92bWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjFjMmYzM2E0NWViNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX21l ZGlhX3ZtZS5jCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTggSW50 ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1 ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNl bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFw aCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdB UkUuCisgKi8KKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVk ZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+ CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxmY250 bC5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRl IDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSAiZHJtLmgiCisj aW5jbHVkZSAiaW50ZWxfYnVmbWdyLmgiCisKK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJBIHZlcnkg c2ltcGxlIHdvcmtsb2FkIGZvciB0aGUgVk1FIG1lZGlhIGJsb2NrLiIpOworCisjZGVmaW5lIFdJ RFRICTY0CisjZGVmaW5lIFNUUklERQkoV0lEVEgpCisjZGVmaW5lIEhFSUdIVAk2NAorCisjZGVm aW5lIElOUFVUX1NJWkUJKFdJRFRIICogSEVJR0hUICogc2l6ZW9mKGNoYXIpICogMS41KQorI2Rl ZmluZSBPVVRQVVRfU0laRQkoNTYqc2l6ZW9mKGludCkpCisKK3N0YXRpYyB2b2lkCitzY3JhdGNo X2J1Zl9pbml0KGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1nciwKKwkJIHN0cnVjdCBpZ3RfYnVmICpi dWYsCisJCSB1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKwlkcm1faW50ZWxfYm8gKmJvOworCisJYm8g PSBkcm1faW50ZWxfYm9fYWxsb2MoYnVmbWdyLCAiIiwgc2l6ZSwgNDA5Nik7CisJaWd0X2Fzc2Vy dChibyk7CisKKwltZW1zZXQoYnVmLCAwLCBzaXplb2YoKmJ1ZikpOworCisJYnVmLT5ibyA9IGJv OworCWJ1Zi0+dGlsaW5nID0gSTkxNV9USUxJTkdfTk9ORTsKKwlidWYtPnNpemUgPSBzaXplOwor fQorCitzdGF0aWMgdm9pZCBzY3JhdGNoX2J1Zl9pbml0X3NyYyhkcm1faW50ZWxfYnVmbWdyICpi dWZtZ3IsIHN0cnVjdCBpZ3RfYnVmICpidWYpCit7CisJc2NyYXRjaF9idWZfaW5pdChidWZtZ3Is IGJ1ZiwgSU5QVVRfU0laRSk7CisKKwkvKgorCSAqIElkZWFsbHkgd2Ugd291bGQgcmVhZCBzcmMg c3VyZmFjZSBmcm9tIGZpbGUgIlNvdXJjZUZyYW1lSS55dTEyIi4KKwkgKiBCdXQgZXZlbiB3aXRo b3V0IGl0LCB3ZSBjYW4gc3RpbGwgdHJpZ2VyIHRoZSByY3MwIHJlc2V0dGluZworCSAqIHdpdGgg dGhpcyB2bWUga2VybmVsLgorCSAqLworCisJYnVmLT5zdHJpZGUgPSBTVFJJREU7Cit9CisKK3N0 YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2luaXRfZHN0KGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1nciwg c3RydWN0IGlndF9idWYgKmJ1ZikKK3sKKwlzY3JhdGNoX2J1Zl9pbml0KGJ1Zm1nciwgYnVmLCBP VVRQVVRfU0laRSk7CisKKwlidWYtPnN0cmlkZSA9IDE7Cit9CisKK2lndF9zaW1wbGVfbWFpbgor eworCWludCBkcm1fZmQ7CisJdWludDMyX3QgZGV2aWQ7CisJZHJtX2ludGVsX2J1Zm1nciAqYnVm bWdyOworCWlndF92bWVfZnVuY190IG1lZGlhX3ZtZTsKKwlzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZm ZXIgKmJhdGNoOworCXN0cnVjdCBpZ3RfYnVmIHNyYywgZHN0OworCXVpbnQ4X3QgZHN0X2xpbmVh cltPVVRQVVRfU0laRV07CisKKwlkcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXJfcmVuZGVyKERSSVZF Ul9JTlRFTCk7CisJaWd0X3JlcXVpcmVfZ2VtKGRybV9mZCk7CisKKwlkZXZpZCA9IGludGVsX2dl dF9kcm1fZGV2aWQoZHJtX2ZkKTsKKworCW1lZGlhX3ZtZSA9IGlndF9nZXRfbWVkaWFfdm1lX2Z1 bmMoZGV2aWQpOworCWlndF9yZXF1aXJlX2YobWVkaWFfdm1lLCAibm8gbWVkaWEtdm1lIGZ1bmN0 aW9uXG4iKTsKKworCWJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZHJtX2ZkLCA0 MDk2KTsKKwlpZ3RfYXNzZXJ0KGJ1Zm1ncik7CisKKwliYXRjaCA9IGludGVsX2JhdGNoYnVmZmVy X2FsbG9jKGJ1Zm1nciwgZGV2aWQpOworCWlndF9hc3NlcnQoYmF0Y2gpOworCisJc2NyYXRjaF9i dWZfaW5pdF9zcmMoYnVmbWdyLCAmc3JjKTsKKwlzY3JhdGNoX2J1Zl9pbml0X2RzdChidWZtZ3Is ICZkc3QpOworCisJbWVkaWFfdm1lKGJhdGNoLCAmc3JjLCBXSURUSCwgSEVJR0hULCAmZHN0KTsK KwlnZW1fcmVhZChkcm1fZmQsIGRzdC5iby0+aGFuZGxlLCAwLAorCQkJZHN0X2xpbmVhciwgc2l6 ZW9mKGRzdF9saW5lYXIpKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVz dHMvbWVzb24uYnVpbGQKaW5kZXggMTk5MmIwNzQwZjM1Li40ZWM0MzQ3NzZmNGMgMTAwNjQ0Ci0t LSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCkBAIC0xNjEsNiAr MTYxLDcgQEAgZ2VtX3Byb2dzID0gWwogCSdnZW1fbHV0X2hhbmRsZScsCiAJJ2dlbV9tYWR2aXNl JywKIAknZ2VtX21lZGlhX2ZpbGwnLAorCSdnZW1fbWVkaWFfdm1lJywKIAknZ2VtX21tYXAnLAog CSdnZW1fbW1hcF9ndHQnLAogCSdnZW1fbW1hcF9vZmZzZXRfZXhoYXVzdGlvbicsCi0tIAoyLjE5 LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=