From mboxrd@z Thu Jan 1 00:00:00 1970
From: Philipp Zabel
Subject: [PATCH v8 1/3] of: Decrement refcount of previous endpoint in
of_graph_get_next_endpoint
Date: Mon, 23 Feb 2015 11:54:04 +0100
Message-ID: <1424688846-10909-2-git-send-email-p.zabel@pengutronix.de>
References: <1424688846-10909-1-git-send-email-p.zabel@pengutronix.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path:
Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de
[92.198.50.35])
by gabe.freedesktop.org (Postfix) with ESMTP id DE8136E31B
for ; Mon, 23 Feb 2015 02:54:31 -0800 (PST)
In-Reply-To: <1424688846-10909-1-git-send-email-p.zabel@pengutronix.de>
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel"
To: Grant Likely , Benoit Parrot
Cc: Mathieu Poirier , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Darren Etheridge , Andrzej Hajda , Tomi Valkeinen , Laurent Pinchart , kernel@pengutronix.de, Russell King , Mauro Carvalho Chehab , Jean-Christophe Plagniol-Villard , Guennadi Liakhovetski , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org
List-Id: dri-devel@lists.freedesktop.org
RGVjcmVtZW50aW5nIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIHByZXZpb3VzIGVuZHBvaW50
IG5vZGUgYWxsb3dzIHRvCnVzZSB0aGUgb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQgZnVuY3Rp
b24gaW4gYSBmb3JfZWFjaF8uLi4gc3R5bGUgbWFjcm8uCkFsbCBjdXJyZW50IHVzZXJzIG9mIHRo
aXMgZnVuY3Rpb24gdGhhdCBwYXNzIGEgbm9uLU5VTEwgcHJldiBwYXJhbWV0ZXIKKHRoYXQgaXMs
IHNvY19jYW1lcmEgYW5kIGlteC1kcm0pIGFyZSBjaGFuZ2VkIHRvIG5vdCBkZWNyZW1lbnQgdGhl
IHBhc3NlZApwcmV2IGFyZ3VtZW50J3MgcmVmY291bnQgdGhlbXNlbHZlcy4KClNpZ25lZC1vZmYt
Ynk6IFBoaWxpcHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0cm9uaXguZGU+CkFja2VkLWJ5OiBNYXVy
byBDYXJ2YWxobyBDaGVoYWIgPG1jaGVoYWJAb3NnLnNhbXN1bmcuY29tPgpBY2tlZC1ieTogTWF0
aGlldSBQb2lyaWVyIDxtYXRoaWV1LnBvaXJpZXJAbGluYXJvLm9yZz4KQWNrZWQtYnk6IExhdXJl
bnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KQWNrZWQtYnk6
IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+Ci0tLQpDaGFuZ2VzIHNpbmNl
IHY3OgogLSBSZWJhc2VkIG9udG8gdjQuMC1yYzEKIC0gQWRkZWQgZml4IGZvciBhbTQzN3gtdnBm
ZQotLS0KIGRyaXZlcnMvY29yZXNpZ2h0L29mX2NvcmVzaWdodC5jICAgICAgICAgICAgICAgICAg
fCAxMyArKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaW14L2lteC1kcm0tY29yZS5jICAg
ICAgICAgICAgICAgIHwgMTEgKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj
YXJfZHVfa21zLmMgICAgICAgICAgICAgfCAxNSArKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvbWVk
aWEvcGxhdGZvcm0vYW00Mzd4L2FtNDM3eC12cGZlLmMgICAgICAgfCAgMSAtCiBkcml2ZXJzL21l
ZGlhL3BsYXRmb3JtL3NvY19jYW1lcmEvc29jX2NhbWVyYS5jICAgIHwgIDMgKystCiBkcml2ZXJz
L29mL2Jhc2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKy0tLS0tLS0t
CiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL2Rzcy9vbWFwZHNzLWJvb3QtaW5pdC5jIHwgIDcg
Ky0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NvcmVzaWdodC9vZl9jb3Jlc2lnaHQuYyBiL2RyaXZl
cnMvY29yZXNpZ2h0L29mX2NvcmVzaWdodC5jCmluZGV4IGMzZWZhNDEuLjZmNzVlOWQgMTAwNjQ0
Ci0tLSBhL2RyaXZlcnMvY29yZXNpZ2h0L29mX2NvcmVzaWdodC5jCisrKyBiL2RyaXZlcnMvY29y
ZXNpZ2h0L29mX2NvcmVzaWdodC5jCkBAIC01MiwxNSArNTIsNiBAQCBvZl9jb3Jlc2lnaHRfZ2V0
X2VuZHBvaW50X2RldmljZShzdHJ1Y3QgZGV2aWNlX25vZGUgKmVuZHBvaW50KQogCQkJICAgICAg
IGVuZHBvaW50LCBvZl9kZXZfbm9kZV9tYXRjaCk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZGV2aWNl
X25vZGUgKm9mX2dldF9jb3Jlc2lnaHRfZW5kcG9pbnQoCi0JCWNvbnN0IHN0cnVjdCBkZXZpY2Vf
bm9kZSAqcGFyZW50LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKnByZXYpCi17Ci0Jc3RydWN0IGRldmlj
ZV9ub2RlICpub2RlID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQocGFyZW50LCBwcmV2KTsK
LQotCW9mX25vZGVfcHV0KHByZXYpOwotCXJldHVybiBub2RlOwotfQotCiBzdGF0aWMgdm9pZCBv
Zl9jb3Jlc2lnaHRfZ2V0X3BvcnRzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIAkJCQkgICBp
bnQgKm5yX2lucG9ydCwgaW50ICpucl9vdXRwb3J0KQogewpAQCAtNjgsNyArNTksNyBAQCBzdGF0
aWMgdm9pZCBvZl9jb3Jlc2lnaHRfZ2V0X3BvcnRzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwK
IAlpbnQgaW4gPSAwLCBvdXQgPSAwOwogCiAJZG8gewotCQllcCA9IG9mX2dldF9jb3Jlc2lnaHRf
ZW5kcG9pbnQobm9kZSwgZXApOworCQllcCA9IG9mX2dyYXBoX2dldF9uZXh0X2VuZHBvaW50KG5v
ZGUsIGVwKTsKIAkJaWYgKCFlcCkKIAkJCWJyZWFrOwogCkBAIC0xNDAsNyArMTMxLDcgQEAgc3Ry
dWN0IGNvcmVzaWdodF9wbGF0Zm9ybV9kYXRhICpvZl9nZXRfY29yZXNpZ2h0X3BsYXRmb3JtX2Rh
dGEoCiAJCS8qIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIHBvcnQgdG8gZGlzY292ZXIgdG9wb2xvZ3kg
Ki8KIAkJZG8gewogCQkJLyogR2V0IGEgaGFuZGxlIG9uIGEgcG9ydCAqLwotCQkJZXAgPSBvZl9n
ZXRfY29yZXNpZ2h0X2VuZHBvaW50KG5vZGUsIGVwKTsKKwkJCWVwID0gb2ZfZ3JhcGhfZ2V0X25l
eHRfZW5kcG9pbnQobm9kZSwgZXApOwogCQkJaWYgKCFlcCkKIAkJCQlicmVhazsKIApkaWZmIC0t
Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYyBiL2RyaXZlcnMvZ3B1L2Ry
bS9pbXgvaW14LWRybS1jb3JlLmMKaW5kZXggYTAwMmY1My4uODRjZjk5ZiAxMDA2NDQKLS0tIGEv
ZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v
aW14L2lteC1kcm0tY29yZS5jCkBAIC00MzEsMTUgKzQzMSw2IEBAIGludCBpbXhfZHJtX2VuY29k
ZXJfcGFyc2Vfb2Yoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIH0KIEVYUE9SVF9TWU1CT0xfR1BM
KGlteF9kcm1fZW5jb2Rlcl9wYXJzZV9vZik7CiAKLXN0YXRpYyBzdHJ1Y3QgZGV2aWNlX25vZGUg
KmlteF9kcm1fb2ZfZ2V0X25leHRfZW5kcG9pbnQoCi0JCWNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9k
ZSAqcGFyZW50LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKnByZXYpCi17Ci0Jc3RydWN0IGRldmljZV9u
b2RlICpub2RlID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQocGFyZW50LCBwcmV2KTsKLQot
CW9mX25vZGVfcHV0KHByZXYpOwotCXJldHVybiBub2RlOwotfQotCiAvKgogICogQG5vZGU6IGRl
dmljZSB0cmVlIG5vZGUgY29udGFpbmluZyBlbmNvZGVyIGlucHV0IHBvcnRzCiAgKiBAZW5jb2Rl
cjogZHJtX2VuY29kZXIKQEAgLTQ1Nyw3ICs0NDgsNyBAQCBpbnQgaW14X2RybV9lbmNvZGVyX2dl
dF9tdXhfaWQoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCQlyZXR1cm4gLUVJTlZBTDsKIAog
CWRvIHsKLQkJZXAgPSBpbXhfZHJtX29mX2dldF9uZXh0X2VuZHBvaW50KG5vZGUsIGVwKTsKKwkJ
ZXAgPSBvZl9ncmFwaF9nZXRfbmV4dF9lbmRwb2ludChub2RlLCBlcCk7CiAJCWlmICghZXApCiAJ
CQlicmVhazsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9r
bXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfa21zLmMKaW5kZXggY2M5MTM2
ZS4uNjhkYWIyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9r
bXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCkBAIC0yMDYs
NyArMjA2LDcgQEAgc3RhdGljIGludCByY2FyX2R1X2VuY29kZXJzX2luaXRfb25lKHN0cnVjdCBy
Y2FyX2R1X2RldmljZSAqcmNkdSwKIAllbnVtIHJjYXJfZHVfZW5jb2Rlcl90eXBlIGVuY190eXBl
ID0gUkNBUl9EVV9FTkNPREVSX05PTkU7CiAJc3RydWN0IGRldmljZV9ub2RlICpjb25uZWN0b3Ig
PSBOVUxMOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZW5jb2RlciA9IE5VTEw7Ci0Jc3RydWN0IGRl
dmljZV9ub2RlICpwcmV2ID0gTlVMTDsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwX25vZGUgPSBO
VUxMOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZW50aXR5X2VwX25vZGU7CiAJc3RydWN0IGRldmlj
ZV9ub2RlICplbnRpdHk7CiAJaW50IHJldDsKQEAgLTIyNSwxMSArMjI1LDcgQEAgc3RhdGljIGlu
dCByY2FyX2R1X2VuY29kZXJzX2luaXRfb25lKHN0cnVjdCByY2FyX2R1X2RldmljZSAqcmNkdSwK
IAllbnRpdHlfZXBfbm9kZSA9IG9mX3BhcnNlX3BoYW5kbGUoZXAtPmxvY2FsX25vZGUsICJyZW1v
dGUtZW5kcG9pbnQiLCAwKTsKIAogCXdoaWxlICgxKSB7Ci0JCXN0cnVjdCBkZXZpY2Vfbm9kZSAq
ZXBfbm9kZTsKLQotCQllcF9ub2RlID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQoZW50aXR5
LCBwcmV2KTsKLQkJb2Zfbm9kZV9wdXQocHJldik7Ci0JCXByZXYgPSBlcF9ub2RlOworCQllcF9u
b2RlID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQoZW50aXR5LCBlcF9ub2RlKTsKIAogCQlp
ZiAoIWVwX25vZGUpCiAJCQlicmVhazsKQEAgLTMwMCw3ICsyOTYsNyBAQCBzdGF0aWMgaW50IHJj
YXJfZHVfZW5jb2RlcnNfaW5pdF9vbmUoc3RydWN0IHJjYXJfZHVfZGV2aWNlICpyY2R1LAogc3Rh
dGljIGludCByY2FyX2R1X2VuY29kZXJzX2luaXQoc3RydWN0IHJjYXJfZHVfZGV2aWNlICpyY2R1
KQogewogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSByY2R1LT5kZXYtPm9mX25vZGU7Ci0Jc3Ry
dWN0IGRldmljZV9ub2RlICpwcmV2ID0gTlVMTDsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwX25v
ZGUgPSBOVUxMOwogCXVuc2lnbmVkIGludCBudW1fZW5jb2RlcnMgPSAwOwogCiAJLyoKQEAgLTMw
OCwxNSArMzA0LDEyIEBAIHN0YXRpYyBpbnQgcmNhcl9kdV9lbmNvZGVyc19pbml0KHN0cnVjdCBy
Y2FyX2R1X2RldmljZSAqcmNkdSkKIAkgKiBwaXBlbGluZS4KIAkgKi8KIAl3aGlsZSAoMSkgewot
CQlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwX25vZGU7CiAJCWVudW0gcmNhcl9kdV9vdXRwdXQgb3V0
cHV0OwogCQlzdHJ1Y3Qgb2ZfZW5kcG9pbnQgZXA7CiAJCXVuc2lnbmVkIGludCBpOwogCQlpbnQg
cmV0OwogCi0JCWVwX25vZGUgPSBvZl9ncmFwaF9nZXRfbmV4dF9lbmRwb2ludChucCwgcHJldik7
Ci0JCW9mX25vZGVfcHV0KHByZXYpOwotCQlwcmV2ID0gZXBfbm9kZTsKKwkJZXBfbm9kZSA9IG9m
X2dyYXBoX2dldF9uZXh0X2VuZHBvaW50KG5wLCBlcF9ub2RlKTsKIAogCQlpZiAoZXBfbm9kZSA9
PSBOVUxMKQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2Ft
NDM3eC9hbTQzN3gtdnBmZS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbTQzN3gvYW00Mzd4
LXZwZmUuYwppbmRleCA1NmE1Y2IwLi4wZDA3ZmNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlh
L3BsYXRmb3JtL2FtNDM3eC9hbTQzN3gtdnBmZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv
cm0vYW00Mzd4L2FtNDM3eC12cGZlLmMKQEAgLTI1MDQsNyArMjUwNCw2IEBAIHZwZmVfZ2V0X3Bk
YXRhKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQkJCSAgICAgR0ZQX0tFUk5FTCk7
CiAJCXBkYXRhLT5hc2RbaV0tPm1hdGNoX3R5cGUgPSBWNEwyX0FTWU5DX01BVENIX09GOwogCQlw
ZGF0YS0+YXNkW2ldLT5tYXRjaC5vZi5ub2RlID0gcmVtOwotCQlvZl9ub2RlX3B1dChlbmRwb2lu
dCk7CiAJCW9mX25vZGVfcHV0KHJlbSk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh
L3BsYXRmb3JtL3NvY19jYW1lcmEvc29jX2NhbWVyYS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9y
bS9zb2NfY2FtZXJhL3NvY19jYW1lcmEuYwppbmRleCBjZWU3YjU2Li5mMmEzZDk2IDEwMDY0NAot
LS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NvY19jYW1lcmEvc29jX2NhbWVyYS5jCisrKyBi
L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc29jX2NhbWVyYS9zb2NfY2FtZXJhLmMKQEAgLTE2OTQs
NyArMTY5NCw2IEBAIHN0YXRpYyB2b2lkIHNjYW5fb2ZfaG9zdChzdHJ1Y3Qgc29jX2NhbWVyYV9o
b3N0ICppY2kpCiAJCWlmICghaSkKIAkJCXNvY19vZl9iaW5kKGljaSwgZXBuLCByZW4tPnBhcmVu
dCk7CiAKLQkJb2Zfbm9kZV9wdXQoZXBuKTsKIAkJb2Zfbm9kZV9wdXQocmVuKTsKIAogCQlpZiAo
aSkgewpAQCAtMTcwMiw2ICsxNzAxLDggQEAgc3RhdGljIHZvaWQgc2Nhbl9vZl9ob3N0KHN0cnVj
dCBzb2NfY2FtZXJhX2hvc3QgKmljaSkKIAkJCWJyZWFrOwogCQl9CiAJfQorCisJb2Zfbm9kZV9w
dXQoZXBuKTsKIH0KIAogI2Vsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2YvYmFzZS5jIGIvZHJp
dmVycy9vZi9iYXNlLmMKaW5kZXggMGE4YWViOC4uMDViMjBmMSAxMDA2NDQKLS0tIGEvZHJpdmVy
cy9vZi9iYXNlLmMKKysrIGIvZHJpdmVycy9vZi9iYXNlLmMKQEAgLTIwODYsOCArMjA4Niw3IEBA
IEVYUE9SVF9TWU1CT0wob2ZfZ3JhcGhfcGFyc2VfZW5kcG9pbnQpOwogICogQHByZXY6IHByZXZp
b3VzIGVuZHBvaW50IG5vZGUsIG9yIE5VTEwgdG8gZ2V0IGZpcnN0CiAgKgogICogUmV0dXJuOiBB
biAnZW5kcG9pbnQnIG5vZGUgcG9pbnRlciB3aXRoIHJlZmNvdW50IGluY3JlbWVudGVkLiBSZWZj
b3VudAotICogb2YgdGhlIHBhc3NlZCBAcHJldiBub2RlIGlzIG5vdCBkZWNyZW1lbnRlZCwgdGhl
IGNhbGxlciBoYXZlIHRvIHVzZQotICogb2Zfbm9kZV9wdXQoKSBvbiBpdCB3aGVuIGRvbmUuCisg
KiBvZiB0aGUgcGFzc2VkIEBwcmV2IG5vZGUgaXMgZGVjcmVtZW50ZWQuCiAgKi8KIHN0cnVjdCBk
ZXZpY2Vfbm9kZSAqb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9pbnQoY29uc3Qgc3RydWN0IGRldmlj
ZV9ub2RlICpwYXJlbnQsCiAJCQkJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcHJldikKQEAgLTIxMjMs
MTIgKzIxMjIsNiBAQCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX2dyYXBoX2dldF9uZXh0X2VuZHBv
aW50KGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqcGFyZW50LAogCQlpZiAoV0FSTl9PTkNFKCFw
b3J0LCAiJXMoKTogZW5kcG9pbnQgJXMgaGFzIG5vIHBhcmVudCBub2RlXG4iLAogCQkJICAgICAg
X19mdW5jX18sIHByZXYtPmZ1bGxfbmFtZSkpCiAJCQlyZXR1cm4gTlVMTDsKLQotCQkvKgotCQkg
KiBBdm9pZCBkcm9wcGluZyBwcmV2IG5vZGUgcmVmY291bnQgdG8gMCB3aGVuIGdldHRpbmcgdGhl
IG5leHQKLQkJICogY2hpbGQgYmVsb3cuCi0JCSAqLwotCQlvZl9ub2RlX2dldChwcmV2KTsKIAl9
CiAKIAl3aGlsZSAoMSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9k
c3Mvb21hcGRzcy1ib290LWluaXQuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvZHNzL29t
YXBkc3MtYm9vdC1pbml0LmMKaW5kZXggNDJiODdmOS4uOGI2ZjZkNSAxMDA2NDQKLS0tIGEvZHJp
dmVycy92aWRlby9mYmRldi9vbWFwMi9kc3Mvb21hcGRzcy1ib290LWluaXQuYworKysgYi9kcml2
ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL2Rzcy9vbWFwZHNzLWJvb3QtaW5pdC5jCkBAIC0xNjQsMjAg
KzE2NCwxNSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb21hcGRzc193YWxrX2RldmljZShzdHJ1Y3Qg
ZGV2aWNlX25vZGUgKm5vZGUsIGJvb2wgcm9vdCkKIAogCQlwbiA9IG9mX2dyYXBoX2dldF9yZW1v
dGVfcG9ydF9wYXJlbnQobik7CiAKLQkJaWYgKCFwbikgewotCQkJb2Zfbm9kZV9wdXQobik7CisJ
CWlmICghcG4pCiAJCQljb250aW51ZTsKLQkJfQogCiAJCWlmICghb2ZfZGV2aWNlX2lzX2F2YWls
YWJsZShwbikgfHwgb21hcGRzc19saXN0X2NvbnRhaW5zKHBuKSkgewogCQkJb2Zfbm9kZV9wdXQo
cG4pOwotCQkJb2Zfbm9kZV9wdXQobik7CiAJCQljb250aW51ZTsKIAkJfQogCiAJCW9tYXBkc3Nf
d2Fsa19kZXZpY2UocG4sIGZhbHNlKTsKLQotCQlvZl9ub2RlX3B1dChuKTsKIAl9CiB9CiAKLS0g
CjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk
cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0
cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=