From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxime Ripard Subject: [PATCH v5 07/12] drm/modes: Allow to specify rotation and reflection on the commandline Date: Mon, 17 Jun 2019 16:51:34 +0200 Message-ID: <777da16e42db757c1f5b414b5ca34507097fed5c.1560783090.git-series.maxime.ripard@bootlin.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from relay10.mail.gandi.net (relay10.mail.gandi.net [217.70.178.230]) by gabe.freedesktop.org (Postfix) with ESMTPS id 311388931E for ; Mon, 17 Jun 2019 14:52:24 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst , Sean Paul , Maxime Ripard , Daniel Vetter , David Airlie Cc: eben@raspberrypi.org, dri-devel@lists.freedesktop.org, Paul Kocialkowski , Thomas Petazzoni , linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org Um90YXRpb25zIGFuZCByZWZsZWN0aW9ucyBzZXR1cCBhcmUgbmVlZGVkIGluIHNvbWUgc2NlbmFy aW9zIHRvIGluaXRpYWxpc2UKcHJvcGVybHkgdGhlIGluaXRpYWwgZnJhbWVidWZmZXIuIFNvbWUg ZHJpdmVycyBhbHJlYWR5IGhhZCBhIGJ1bmNoIG9mCnF1aXJrcyB0byBkZWFsIHdpdGggdGhpcywg c3VjaCBhcyBlaXRoZXIgYSBwcml2YXRlIGtlcm5lbCBjb21tYW5kIGxpbmUKcGFyYW1ldGVyIChv bWFwZHNzKSBvciBvbiB0aGUgZGV2aWNlIHRyZWUgKHZhcmlvdXMgcGFuZWxzKS4KCkluIG9yZGVy IHRvIGFjY29tb2RhdGUgdGhpcywgbGV0J3MgY3JlYXRlIGEgdmlkZW8gbW9kZSBwYXJhbWV0ZXIg dG8gZGVhbAp3aXRoIHRoZSByb3RhdGlvbiBhbmQgcmVmbGV4aW9uLgoKU2lnbmVkLW9mZi1ieTog TWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBib290bGluLmNvbT4KLS0tCiBEb2N1bWVudGF0 aW9uL2ZiL21vZGVkYi5yc3QgICAgICAgICAgfCAgMTEgKysrLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9jbGllbnRfbW9kZXNldC5jIHwgIDMwICsrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vZHJtX21v ZGVzLmMgICAgICAgICAgfCAxMTQgKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogaW5jbHVk ZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgICAgIHwgIDEwICsrLQogNCBmaWxlcyBjaGFuZ2Vk LCAxNDUgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1l bnRhdGlvbi9mYi9tb2RlZGIucnN0IGIvRG9jdW1lbnRhdGlvbi9mYi9tb2RlZGIucnN0CmluZGV4 IDNjMjM5NzI5Mzk3Ny4uM2U4YTZmNzlkY2Q3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2Zi L21vZGVkYi5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9mYi9tb2RlZGIucnN0CkBAIC01Myw2ICs1 MywxNyBAQCBTcGVjaWZ5aW5nIHRoZSBvcHRpb24gbXVsdGlwbGUgdGltZXMgZm9yIGRpZmZlcmVu dCBwb3J0cyBpcyBwb3NzaWJsZSwgZS5nLjo6CiAKICAgICB2aWRlbz1MVkRTLTE6ZCB2aWRlbz1I RE1JLTE6RAogCitPcHRpb25zIGNhbiBhbHNvIGJlIHBhc3NlZCBhZnRlciB0aGUgbW9kZSwgdXNp bmcgY29tbWFzIGFzIHNlcGFyYXRvci4KKworICAgICAgIFNhbXBsZSB1c2FnZTogNzIweDQ4MCxy b3RhdGU9MTgwIC0gNzIweDQ4MCBtb2RlLCByb3RhdGVkIGJ5IDE4MCBkZWdyZWVzCisKK1ZhbGlk IG9wdGlvbnMgYXJlOgorCisgIC0gcmVmbGVjdF94IChib29sZWFuKTogUGVyZm9ybSBhbiBheGlh bCBzeW1ldHJ5IG9uIHRoZSBYIGF4aXMKKyAgLSByZWZsZWN0X3kgKGJvb2xlYW4pOiBQZXJmb3Jt IGFuIGF4aWFsIHN5bWV0cnkgb24gdGhlIFkgYXhpcworICAtIHJvdGF0ZSAoaW50ZWdlcik6IFJv dGF0ZSB0aGUgaW5pdGlhbCBmcmFtZWJ1ZmZlciBieSB4CisgICAgZGVncmVlcy4gVmFsaWQgdmFs dWVzIGFyZSAwLCA5MCwgMTgwIGFuZCAyNzAuCisKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdo YXQgaXMgdGhlIFZFU0EoVE0pIENvb3JkaW5hdGVkIFZpZGVvIFRpbWluZ3MgKENWVCk/CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMKaW5kZXggMzNkNDk4OGYyMmFlLi5lOTVmY2VhYzhm OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMKQEAgLTgyNCw2ICs4MjQsNyBA QCBib29sIGRybV9jbGllbnRfcm90YXRpb24oc3RydWN0IGRybV9tb2RlX3NldCAqbW9kZXNldCwg dW5zaWduZWQgaW50ICpyb3RhdGlvbikKIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yID0gbW9kZXNldC0+Y29ubmVjdG9yc1swXTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9 IG1vZGVzZXQtPmNydGMtPnByaW1hcnk7CisJc3RydWN0IGRybV9jbWRsaW5lX21vZGUgKmNtZGxp bmU7CiAJdTY0IHZhbGlkX21hc2sgPSAwOwogCXVuc2lnbmVkIGludCBpOwogCkBAIC04NDQsNiAr ODQ1LDM1IEBAIGJvb2wgZHJtX2NsaWVudF9yb3RhdGlvbihzdHJ1Y3QgZHJtX21vZGVfc2V0ICpt b2Rlc2V0LCB1bnNpZ25lZCBpbnQgKnJvdGF0aW9uKQogCQkqcm90YXRpb24gPSBEUk1fTU9ERV9S T1RBVEVfMDsKIAl9CiAKKwkvKioKKwkgKiBUaGUgcGFuZWwgYWxyZWFkeSBkZWZpbmVkIHRoZSBk ZWZhdWx0IHJvdGF0aW9uCisJICogdGhyb3VnaCBpdHMgb3JpZW50YXRpb24uIFdoYXRldmVyIGhh cyBiZWVuIHByb3ZpZGVkCisJICogb24gdGhlIGNvbW1hbmQgbGluZSBuZWVkcyB0byBiZSBhZGRl ZCB0byB0aGF0LgorCSAqCisJICogVW5mb3J0dW5hdGVseSwgdGhlIHJvdGF0aW9ucyBhcmUgYXQg ZGlmZmVyZW50IGJpdAorCSAqIGluZGljZXMsIHNvIHRoZSBtYXRoIHRvIGFkZCB0aGVtIHVwIGFy ZSBub3QgYXMKKwkgKiB0cml2aWFsIGFzIHRoZXkgY291bGQuCisJICoKKwkgKiBSZWZsZWN0aW9u cyBvbiB0aGUgb3RoZXIgaGFuZCBhcmUgcHJldHR5IHRyaXZpYWwgdG8gZGVhbCB3aXRoLCBhCisJ ICogc2ltcGxlIFhPUiBiZXR3ZWVuIHRoZSB0d28gaGFuZGxlIHRoZSBhZGRpdGlvbiBuaWNlbHku CisJICovCisJY21kbGluZSA9ICZjb25uZWN0b3ItPmNtZGxpbmVfbW9kZTsKKwlpZiAoY21kbGlu ZS0+c3BlY2lmaWVkKSB7CisJCXVuc2lnbmVkIGludCBjbWRsaW5lX3Jlc3QsIHBhbmVsX3Jlc3Q7 CisJCXVuc2lnbmVkIGludCBjbWRsaW5lX3JvdCwgcGFuZWxfcm90OworCQl1bnNpZ25lZCBpbnQg c3VtX3JvdCwgc3VtX3Jlc3Q7CisKKwkJcGFuZWxfcm90ID0gaWxvZzIoKnJvdGF0aW9uICYgRFJN X01PREVfUk9UQVRFX01BU0spOworCQljbWRsaW5lX3JvdCA9IGlsb2cyKGNtZGxpbmUtPnJvdGF0 aW9uX3JlZmxlY3Rpb24gJiBEUk1fTU9ERV9ST1RBVEVfTUFTSyk7CisJCXN1bV9yb3QgPSAocGFu ZWxfcm90ICsgY21kbGluZV9yb3QpICUgNDsKKworCQlwYW5lbF9yZXN0ID0gKnJvdGF0aW9uICYg fkRSTV9NT0RFX1JPVEFURV9NQVNLOworCQljbWRsaW5lX3Jlc3QgPSBjbWRsaW5lLT5yb3RhdGlv bl9yZWZsZWN0aW9uICYgfkRSTV9NT0RFX1JPVEFURV9NQVNLOworCQlzdW1fcmVzdCA9IHBhbmVs X3Jlc3QgXiBjbWRsaW5lX3Jlc3Q7CisKKwkJKnJvdGF0aW9uID0gKDEgPDwgc3VtX3JvdCkgfCBz dW1fcmVzdDsKKwl9CisKIAkvKgogCSAqIFRPRE86IHN1cHBvcnQgOTAgLyAyNzAgZGVncmVlIGhh cmR3YXJlIHJvdGF0aW9uLAogCSAqIGRlcGVuZGluZyBvbiB0aGUgaGFyZHdhcmUgdGhpcyBtYXkg cmVxdWlyZSB0aGUgZnJhbWVidWZmZXIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwppbmRleCA0MjlkM2JlMTc4MDAu LmRjNmQxMTI5MjY4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwpAQCAtMTU1NCw2ICsxNTU0LDcxIEBAIHN0 YXRpYyBpbnQgZHJtX21vZGVfcGFyc2VfY21kbGluZV9yZXNfbW9kZShjb25zdCBjaGFyICpzdHIs IHVuc2lnbmVkIGludCBsZW5ndGgsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgZHJtX21v ZGVfcGFyc2VfY21kbGluZV9vcHRpb25zKGNoYXIgKnN0ciwgc2l6ZV90IGxlbiwKKwkJCQkJICBz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCQkgIHN0cnVjdCBkcm1fY21kbGlu ZV9tb2RlICptb2RlKQoreworCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IDA7CisJY2hhciAqc2Vw ID0gc3RyOworCisJd2hpbGUgKChzZXAgPSBzdHJjaHIoc2VwLCAnLCcpKSkgeworCQljaGFyICpk ZWxpbSwgKm9wdGlvbjsKKworCQlvcHRpb24gPSBzZXAgKyAxOworCQlkZWxpbSA9IHN0cmNocihv cHRpb24sICc9Jyk7CisJCWlmICghZGVsaW0pIHsKKwkJCWRlbGltID0gc3RyY2hyKG9wdGlvbiwg JywnKTsKKworCQkJaWYgKCFkZWxpbSkKKwkJCQlkZWxpbSA9IHN0ciArIGxlbjsKKwkJfQorCisJ CWlmICghc3RybmNtcChvcHRpb24sICJyb3RhdGUiLCBkZWxpbSAtIG9wdGlvbikpIHsKKwkJCWNv bnN0IGNoYXIgKnZhbHVlID0gZGVsaW0gKyAxOworCQkJdW5zaWduZWQgaW50IGRlZzsKKworCQkJ ZGVnID0gc2ltcGxlX3N0cnRvbCh2YWx1ZSwgJnNlcCwgMTApOworCisJCQkvKiBNYWtlIHN1cmUg d2UgaGF2ZSBwYXJzZWQgc29tZXRoaW5nICovCisJCQlpZiAoc2VwID09IHZhbHVlKQorCQkJCXJl dHVybiAtRUlOVkFMOworCisJCQlzd2l0Y2ggKGRlZykgeworCQkJY2FzZSAwOgorCQkJCXJvdGF0 aW9uIHw9IERSTV9NT0RFX1JPVEFURV8wOworCQkJCWJyZWFrOworCisJCQljYXNlIDkwOgorCQkJ CXJvdGF0aW9uIHw9IERSTV9NT0RFX1JPVEFURV85MDsKKwkJCQlicmVhazsKKworCQkJY2FzZSAx ODA6CisJCQkJcm90YXRpb24gfD0gRFJNX01PREVfUk9UQVRFXzE4MDsKKwkJCQlicmVhazsKKwor CQkJY2FzZSAyNzA6CisJCQkJcm90YXRpb24gfD0gRFJNX01PREVfUk9UQVRFXzI3MDsKKwkJCQli cmVhazsKKworCQkJZGVmYXVsdDoKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCX0KKwkJfSBlbHNl IGlmICghc3RybmNtcChvcHRpb24sICJyZWZsZWN0X3giLCBkZWxpbSAtIG9wdGlvbikpIHsKKwkJ CXJvdGF0aW9uIHw9IERSTV9NT0RFX1JFRkxFQ1RfWDsKKwkJCXNlcCA9IGRlbGltOworCQl9IGVs c2UgaWYgKCFzdHJuY21wKG9wdGlvbiwgInJlZmxlY3RfeSIsIGRlbGltIC0gb3B0aW9uKSkgewor CQkJcm90YXRpb24gfD0gRFJNX01PREVfUkVGTEVDVF9ZOworCQkJc2VwID0gZGVsaW07CisJCX0g ZWxzZSB7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0KKworCW1vZGUtPnJvdGF0aW9uX3Jl ZmxlY3Rpb24gPSByb3RhdGlvbjsKKworCXJldHVybiAwOworfQorCiAvKioKICAqIGRybV9tb2Rl X3BhcnNlX2NvbW1hbmRfbGluZV9mb3JfY29ubmVjdG9yIC0gcGFyc2UgY29tbWFuZCBsaW5lIG1v ZGVsaW5lIGZvciBjb25uZWN0b3IKICAqIEBtb2RlX29wdGlvbjogb3B0aW9uYWwgcGVyIGNvbm5l Y3RvciBtb2RlIG9wdGlvbgpAQCAtMTU2OSw2ICsxNjM0LDEwIEBAIHN0YXRpYyBpbnQgZHJtX21v ZGVfcGFyc2VfY21kbGluZV9yZXNfbW9kZShjb25zdCBjaGFyICpzdHIsIHVuc2lnbmVkIGludCBs ZW5ndGgsCiAgKgogICoJPHhyZXM+eDx5cmVzPltNXVtSXVstPGJwcD5dW0A8cmVmcmVzaD5dW2ld W21dW2VEZF0KICAqCisgKiBBZGRpdGlvbmFscyBvcHRpb25zIGNhbiBiZSBwcm92aWRlZCBmb2xs b3dpbmcgdGhlIG1vZGUsIHVzaW5nIGEgY29tbWEgdG8KKyAqIHNlcGFyYXRlIGVhY2ggb3B0aW9u LiBWYWxpZCBvcHRpb25zIGNhbiBiZSBmb3VuZCBpbgorICogRG9jdW1lbnRhdGlvbi9mYi9tb2Rl ZGIudHh0LgorICoKICAqIFRoZSBpbnRlcm1lZGlhdGUgZHJtX2NtZGxpbmVfbW9kZSBzdHJ1Y3R1 cmUgaXMgcmVxdWlyZWQgdG8gc3RvcmUgYWRkaXRpb25hbAogICogb3B0aW9ucyBmcm9tIHRoZSBj b21tYW5kIGxpbmUgbW9kbGluZSBsaWtlIHRoZSBmb3JjZS1lbmFibGUvZGlzYWJsZSBmbGFnLgog ICoKQEAgLTE1ODEsOSArMTY1MCwxMCBAQCBib29sIGRybV9tb2RlX3BhcnNlX2NvbW1hbmRfbGlu ZV9mb3JfY29ubmVjdG9yKGNvbnN0IGNoYXIgKm1vZGVfb3B0aW9uLAogewogCWNvbnN0IGNoYXIg Km5hbWU7CiAJYm9vbCBuYW1lZF9tb2RlID0gZmFsc2UsIHBhcnNlX2V4dHJhcyA9IGZhbHNlOwot CXVuc2lnbmVkIGludCBicHBfb2ZmID0gMCwgcmVmcmVzaF9vZmYgPSAwOworCXVuc2lnbmVkIGlu dCBicHBfb2ZmID0gMCwgcmVmcmVzaF9vZmYgPSAwLCBvcHRpb25zX29mZiA9IDA7CiAJdW5zaWdu ZWQgaW50IG1vZGVfZW5kID0gMDsKIAljaGFyICpicHBfcHRyID0gTlVMTCwgKnJlZnJlc2hfcHRy ID0gTlVMTCwgKmV4dHJhX3B0ciA9IE5VTEw7CisJY2hhciAqb3B0aW9uc19wdHIgPSBOVUxMOwog CWNoYXIgKmJwcF9lbmRfcHRyID0gTlVMTCwgKnJlZnJlc2hfZW5kX3B0ciA9IE5VTEw7CiAJaW50 IHJldDsKIApAQCAtMTYzMiwxMyArMTcwMiwxOCBAQCBib29sIGRybV9tb2RlX3BhcnNlX2NvbW1h bmRfbGluZV9mb3JfY29ubmVjdG9yKGNvbnN0IGNoYXIgKm1vZGVfb3B0aW9uLAogCQltb2RlLT5y ZWZyZXNoX3NwZWNpZmllZCA9IHRydWU7CiAJfQogCisJLyogTG9jYXRlIHRoZSBzdGFydCBvZiBu YW1lZCBvcHRpb25zICovCisJb3B0aW9uc19wdHIgPSBzdHJjaHIobmFtZSwgJywnKTsKKwlpZiAo b3B0aW9uc19wdHIpCisJCW9wdGlvbnNfb2ZmID0gb3B0aW9uc19wdHIgLSBuYW1lOworCiAJLyog TG9jYXRlIHRoZSBlbmQgb2YgdGhlIG5hbWUgLyByZXNvbHV0aW9uLCBhbmQgcGFyc2UgaXQgKi8K LQlpZiAoYnBwX3B0ciAmJiByZWZyZXNoX3B0cikgewotCQltb2RlX2VuZCA9IG1pbihicHBfb2Zm LCByZWZyZXNoX29mZik7Ci0JfSBlbHNlIGlmIChicHBfcHRyKSB7CisJaWYgKGJwcF9wdHIpIHsK IAkJbW9kZV9lbmQgPSBicHBfb2ZmOwogCX0gZWxzZSBpZiAocmVmcmVzaF9wdHIpIHsKIAkJbW9k ZV9lbmQgPSByZWZyZXNoX29mZjsKKwl9IGVsc2UgaWYgKG9wdGlvbnNfcHRyKSB7CisJCW1vZGVf ZW5kID0gb3B0aW9uc19vZmY7CiAJfSBlbHNlIHsKIAkJbW9kZV9lbmQgPSBzdHJsZW4obmFtZSk7 CiAJCXBhcnNlX2V4dHJhcyA9IHRydWU7CkBAIC0xNjgwLDI0ICsxNzU1LDIzIEBAIGJvb2wgZHJt X21vZGVfcGFyc2VfY29tbWFuZF9saW5lX2Zvcl9jb25uZWN0b3IoY29uc3QgY2hhciAqbW9kZV9v cHRpb24sCiAJZWxzZSBpZiAocmVmcmVzaF9wdHIpCiAJCWV4dHJhX3B0ciA9IHJlZnJlc2hfZW5k X3B0cjsKIAotCWlmIChleHRyYV9wdHIpIHsKLQkJaWYgKCFuYW1lZF9tb2RlKSB7Ci0JCQlpbnQg bGVuID0gc3RybGVuKG5hbWUpIC0gKGV4dHJhX3B0ciAtIG5hbWUpOworCWlmIChleHRyYV9wdHIg JiYKKwkgICAgZXh0cmFfcHRyICE9IG9wdGlvbnNfcHRyKSB7CisJCWludCBsZW4gPSBzdHJsZW4o bmFtZSkgLSAoZXh0cmFfcHRyIC0gbmFtZSk7CiAKLQkJCXJldCA9IGRybV9tb2RlX3BhcnNlX2Nt ZGxpbmVfZXh0cmEoZXh0cmFfcHRyLCBsZW4sCi0JCQkJCQkJICAgY29ubmVjdG9yLCBtb2RlKTsK LQkJCWlmIChyZXQpCi0JCQkJcmV0dXJuIGZhbHNlOwotCQl9IGVsc2UgewotCQkJaW50IHJlbWFp bmluZyA9IHN0cmxlbihuYW1lKSAtIChleHRyYV9wdHIgLSBuYW1lKTsKKwkJcmV0ID0gZHJtX21v ZGVfcGFyc2VfY21kbGluZV9leHRyYShleHRyYV9wdHIsIGxlbiwKKwkJCQkJCSAgIGNvbm5lY3Rv ciwgbW9kZSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gZmFsc2U7CisJfQogCi0JCQkvKgotCQkJ ICogV2Ugc3RpbGwgaGF2ZSBjaGFyYWN0ZXJzIHRvIHByb2Nlc3MsIHdoaWxlCi0JCQkgKiB3ZSBz aG91bGRuJ3QgaGF2ZSBhbnkKLQkJCSAqLwotCQkJaWYgKHJlbWFpbmluZyA+IDApCi0JCQkJcmV0 dXJuIGZhbHNlOwotCQl9CisJaWYgKG9wdGlvbnNfcHRyKSB7CisJCWludCBsZW4gPSBzdHJsZW4o bmFtZSkgLSAob3B0aW9uc19wdHIgLSBuYW1lKTsKKworCQlyZXQgPSBkcm1fbW9kZV9wYXJzZV9j bWRsaW5lX29wdGlvbnMob3B0aW9uc19wdHIsIGxlbiwKKwkJCQkJCSAgICAgY29ubmVjdG9yLCBt b2RlKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiBmYWxzZTsKIAl9CiAKIAlyZXR1cm4gdHJ1ZTsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2Ry bV9jb25uZWN0b3IuaAppbmRleCBjZGYyZmI5MTAwMTAuLjhlZWJlMDQzMmM3MyAxMDA2NDQKLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25u ZWN0b3IuaApAQCAtMTAyNSw2ICsxMDI1LDE2IEBAIHN0cnVjdCBkcm1fY21kbGluZV9tb2RlIHsK IAkgKiBzdGF0ZSB0byBvbmUgb2YgdGhlIERSTV9GT1JDRV8qIHZhbHVlcy4KIAkgKi8KIAllbnVt IGRybV9jb25uZWN0b3JfZm9yY2UgZm9yY2U7CisKKwkvKioKKwkgKiBAcm90YXRpb25fcmVmbGVj dGlvbjoKKwkgKgorCSAqIEluaXRpYWwgcm90YXRpb24gYW5kIHJlZmxlY3Rpb24gb2YgdGhlIG1v ZGUgc2V0dXAgZnJvbSB0aGUKKwkgKiBjb21tYW5kIGxpbmUuIFNlZSBEUk1fTU9ERV9ST1RBVEVf KiBhbmQKKwkgKiBEUk1fTU9ERV9SRUZMRUNUXyouIFRoZSBvbmx5IHJvdGF0aW9ucyBzdXBwb3J0 ZWQgYXJlCisJICogRFJNX01PREVfUk9UQVRFXzAgYW5kIERSTV9NT0RFX1JPVEFURV8xODAuCisJ ICovCisJdW5zaWduZWQgaW50IHJvdGF0aW9uX3JlZmxlY3Rpb247CiB9OwogCiAvKioKLS0gCmdp dC1zZXJpZXMgMC45LjEKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVs