From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6532398432427966464 X-Received: by 10.202.225.66 with SMTP id y63mr131721oig.42.1520942531101; Tue, 13 Mar 2018 05:02:11 -0700 (PDT) X-BeenThere: outreachy-kernel@googlegroups.com Received: by 10.157.26.6 with SMTP id a6ls8767743ote.16.gmail; Tue, 13 Mar 2018 05:02:09 -0700 (PDT) X-Google-Smtp-Source: AG47ELv6/o0numfj/Jc3dLUDSHAY/2FVKZwgMC4ECoVYJHbb3UjN4tmaqBgmayiFJ/aK+aLPx7pg X-Received: by 10.157.114.17 with SMTP id u17mr128330otj.16.1520942529106; Tue, 13 Mar 2018 05:02:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1520942529; cv=none; d=google.com; s=arc-20160816; b=wppb9cvfzK1JoLiydcvK6B06AZ1tV05xlMDtUVNYccHXSC0R4JlYwD+JE0p3CF/FzF ymYMyGTO9WOdW8uGMLWS1hYfH38x7bUaS4qOeyOK8TX061DDkBoX8Yay7/0y0cCVVqSg Sr2drhVCq4p9poV8zfHx8G8QZTEQwG5onKdFKfWzI10fKDT7Hy/RN91tSFJaEl66f0xQ yes2ANrlf9JhkMgIWBbWK4qjan65Y9UXn2+/0MD5mO3CItwnW5X2r8Iy3S/TWbTzBYPb jr10YNTnopOnAG6Thf42ng4yoTQQK/SOZdsPVbPJYRFxqeyoUqdIqM4pTN5XD5h0AYc1 m0bA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=user-agent:content-disposition:mime-version:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=+s1plrU1UFvbIgXzAkVBbb7xrxmWqQsIzL1+k4+g1JE=; b=UjfzAgKs/ESelgs8VTsK/WGGQixYqykf8Th80YzBSOVK9/1lGFcNIhzTWTSCktCVs+ ygl/C/ooTXzys9hr0mkQksP+71Ai11JDgQasfa1voQQikj8TfIiWiKQyivD/RTOml2X/ vQbbd7RrLnIt4wvZeo7JBlZBpKKrkn3JizqnZ8T5vk+FPfXs/B2IGoepeBXQv6QXe1UU 1RutqYFENrS6C5ggSI4xKwnkqVrgaQGwN+wJSS++yIhE+SXnbuSmiier/S+7IPUdUP5F cgODGyvF3+VUNbqXH0lj2ARCJ7oiZdWZhkr8RlLv9RZ4Dn4+oDNrrQegZN7ryE6Ei1G4 HZIg== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=LMd7JKd4; spf=pass (google.com: domain of hamohammed.sa@gmail.com designates 2607:f8b0:400d:c0d::244 as permitted sender) smtp.mailfrom=hamohammed.sa@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from mail-qt0-x244.google.com (mail-qt0-x244.google.com. [2607:f8b0:400d:c0d::244]) by gmr-mx.google.com with ESMTPS id l10si6271oth.1.2018.03.13.05.02.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Mar 2018 05:02:09 -0700 (PDT) Received-SPF: pass (google.com: domain of hamohammed.sa@gmail.com designates 2607:f8b0:400d:c0d::244 as permitted sender) client-ip=2607:f8b0:400d:c0d::244; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=LMd7JKd4; spf=pass (google.com: domain of hamohammed.sa@gmail.com designates 2607:f8b0:400d:c0d::244 as permitted sender) smtp.mailfrom=hamohammed.sa@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: by mail-qt0-x244.google.com with SMTP id v90so22301206qte.12 for ; Tue, 13 Mar 2018 05:02:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=+s1plrU1UFvbIgXzAkVBbb7xrxmWqQsIzL1+k4+g1JE=; b=LMd7JKd4Oqf+NfCP4m7WS/W9rReq4hCK4YXtt3r2w+nvJQhrptaHYTp3+u931/f0Re d8Oi1elQWztN+0ghdoaVty4BSAFLhkoD2qEZoJsjxk1qaancXnUu1i3Li9Mij0Y0DV2Y KTfn97U0+S2Ya/jFSgC8KY0XBP9+CrrMKEvRzgLd8dAKiO3bjBRuYoGcvk0fVRv3PgCh B8LGnddpWhKnhrzA/cGozVWM1MfD59+q+QmMrRW+R3xpUnwkeJH4BZ0zxCBWluCRwOlQ Sfguwl9JkFxgJn2ryj+8pliZ+Bf4Cqflba41g2Zhgh9OShGslOQAesvpCBoUoMBEa/aR /K8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=+s1plrU1UFvbIgXzAkVBbb7xrxmWqQsIzL1+k4+g1JE=; b=C6QUjhK+cUz0Ng9jZz9cvdNfGXDYgz51R/grl9SY1ibilq7ZHzzY0o9obFrylIHrKp B9AJvmnJYl7bofFhCcJMFE/Cz1rzFgey6XYIORg2hndrPF1AORrzPPZTEIYK5nAO1f5b PX2Y3N+Jw7XKAWwuShnNGNqBLXQvNg28YyXbUpi7nUzikv81EIjMMgPY1KrZW9ncuaAw 2hUL+/mMSWU0j93kOrx5ftw6g+HBVHdDRDK9RKKZtRyH+mOZEuRy6KbQOn93gv/ThDcL qGXMNT7f4KjuyAszRBSqfnBmOvTGqSpkMbXUT4QFPi5+h7bBNDCnUI6Kf8Gav8F3VX4W yaCA== X-Gm-Message-State: AElRT7HIZUwUgao9J5ALifluD3W+RwMabNIp7T56peVTRVnyKjjaqV6y jYzPf80QhnQnUvIumOR5DkM= X-Received: by 10.200.56.109 with SMTP id r42mr577366qtb.125.1520942528516; Tue, 13 Mar 2018 05:02:08 -0700 (PDT) Return-Path: Received: from Haneen ([2601:184:4881:288:55e9:133d:c79:d67e]) by smtp.gmail.com with ESMTPSA id f54sm27027qta.87.2018.03.13.05.02.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Mar 2018 05:02:07 -0700 (PDT) Date: Tue, 13 Mar 2018 08:02:05 -0400 From: Haneen Mohammed To: Daniel Vetter , Gustavo Padovan , Sean Paul , David Airlie Cc: outreachy-kernel@googlegroups.com, hamohammed.sa@gmail.com, dri-devel@lists.freedesktop.org Subject: [PATCH DRM] drm: Introduce drm_global_item_{get/put}() Message-ID: <20180313120205.GA12094@Haneen> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) For consistency with other reference counting APIs in the kernel, introduce drm_global_item_{get/put} functions instead of drm_global_item_{ref/unref}. Compatibility aliases are added to keep existing code working. The semantic patch scripts/coccinelle/api/drm-get-put.cocci has been extended to account for the new helpers. Signed-off-by: Haneen Mohammed --- drivers/gpu/drm/drm_global.c | 43 +++++++++++++++++++++++++++----- include/drm/drm_global.h | 2 ++ scripts/coccinelle/api/drm-get-put.cocci | 10 ++++++++ 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_global.c b/drivers/gpu/drm/drm_global.c index b2dc21e..76cf948 100644 --- a/drivers/gpu/drm/drm_global.c +++ b/drivers/gpu/drm/drm_global.c @@ -64,7 +64,7 @@ void drm_global_release(void) } /** - * drm_global_item_ref - Initialize and acquire reference to memory + * drm_global_item_get - Initialize and acquire reference to memory * object * @ref: Object for initialization * @@ -75,7 +75,7 @@ void drm_global_release(void) * Returns: * Zero on success, non-zero otherwise. */ -int drm_global_item_ref(struct drm_global_reference *ref) +int drm_global_item_get(struct drm_global_reference *ref) { int ret = 0; struct drm_global_item *item = &glob[ref->global_type]; @@ -107,10 +107,10 @@ int drm_global_item_ref(struct drm_global_reference *ref) mutex_unlock(&item->mutex); return ret; } -EXPORT_SYMBOL(drm_global_item_ref); +EXPORT_SYMBOL(drm_global_item_get); /** - * drm_global_item_unref - Drop reference to memory + * drm_global_item_put - Drop reference to memory * object * @ref: Object being removed * @@ -120,7 +120,7 @@ EXPORT_SYMBOL(drm_global_item_ref); * */ -void drm_global_item_unref(struct drm_global_reference *ref) +void drm_global_item_put(struct drm_global_reference *ref) { struct drm_global_item *item = &glob[ref->global_type]; @@ -133,5 +133,36 @@ void drm_global_item_unref(struct drm_global_reference *ref) } mutex_unlock(&item->mutex); } -EXPORT_SYMBOL(drm_global_item_unref); +EXPORT_SYMBOL(drm_global_item_put); +/** + * drm_global_item_ref - Initialize and acquire reference to memory + * object + * @ref: Object for initialization + * + * This is a compatibility alias for drm_global_item_get() and should + * not be used by new code. + * + * Returns: + * Zero on success, non-zero otherwise. + */ +int drm_global_item_ref(struct drm_global_reference *ref) +{ + return drm_global_item_get(ref); +} +EXPORT_SYMBOL(drm_global_item_ref); + +/** + * drm_global_item_unref - Drop reference to memory + * object + * @ref: Object being removed + * + * This is a compatibility alias for drm_global_item_get() and should not + * be used by new code. + */ + +void drm_global_item_unref(struct drm_global_reference *ref) +{ + drm_global_item_put(ref); +} +EXPORT_SYMBOL(drm_global_item_unref); diff --git a/include/drm/drm_global.h b/include/drm/drm_global.h index 3a83060..5eb6f0c 100644 --- a/include/drm/drm_global.h +++ b/include/drm/drm_global.h @@ -47,6 +47,8 @@ struct drm_global_reference { void drm_global_init(void); void drm_global_release(void); +int drm_global_item_get(struct drm_global_reference *ref); +void drm_global_item_put(struct drm_global_reference *ref); int drm_global_item_ref(struct drm_global_reference *ref); void drm_global_item_unref(struct drm_global_reference *ref); diff --git a/scripts/coccinelle/api/drm-get-put.cocci b/scripts/coccinelle/api/drm-get-put.cocci index 91fceb8..db1c465 100644 --- a/scripts/coccinelle/api/drm-get-put.cocci +++ b/scripts/coccinelle/api/drm-get-put.cocci @@ -54,6 +54,12 @@ expression object; | - drm_dev_unref(object) + drm_dev_put(object) +| +- drm_global_item_ref(object) ++ drm_global_item_get(object) +| +- drm_global_item_unref(object) ++ drm_global_item_put(object) ) @r depends on report@ @@ -87,6 +93,10 @@ drm_property_unreference_blob@p(object) drm_property_reference_blob@p(object) | drm_dev_unref@p(object) +| +drm_global_item_ref@p(object) +| +drm_global_item_unref@p(object) ) @script:python depends on report@ -- 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haneen Mohammed Subject: [PATCH DRM] drm: Introduce drm_global_item_{get/put}() Date: Tue, 13 Mar 2018 08:02:05 -0400 Message-ID: <20180313120205.GA12094@Haneen> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt0-x241.google.com (mail-qt0-x241.google.com [IPv6:2607:f8b0:400d:c0d::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id B1D036E483 for ; Tue, 13 Mar 2018 12:02:09 +0000 (UTC) Received: by mail-qt0-x241.google.com with SMTP id z14so22345307qti.2 for ; Tue, 13 Mar 2018 05:02:09 -0700 (PDT) Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , Gustavo Padovan , Sean Paul , David Airlie Cc: outreachy-kernel@googlegroups.com, dri-devel@lists.freedesktop.org, hamohammed.sa@gmail.com List-Id: dri-devel@lists.freedesktop.org Rm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgcmVmZXJlbmNlIGNvdW50aW5nIEFQSXMgaW4gdGhl IGtlcm5lbCwKaW50cm9kdWNlIGRybV9nbG9iYWxfaXRlbV97Z2V0L3B1dH0gZnVuY3Rpb25zIGlu c3RlYWQgb2YKZHJtX2dsb2JhbF9pdGVtX3tyZWYvdW5yZWZ9LgoKQ29tcGF0aWJpbGl0eSBhbGlh c2VzIGFyZSBhZGRlZCB0byBrZWVwIGV4aXN0aW5nIGNvZGUgd29ya2luZy4KClRoZSBzZW1hbnRp YyBwYXRjaCBzY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpIGhhcyBiZWVu CmV4dGVuZGVkIHRvIGFjY291bnQgZm9yIHRoZSBuZXcgaGVscGVycy4KClNpZ25lZC1vZmYtYnk6 IEhhbmVlbiBNb2hhbW1lZCA8aGFtb2hhbW1lZC5zYUBnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2RybV9nbG9iYWwuYyAgICAgICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tCiBpbmNsdWRlL2RybS9kcm1fZ2xvYmFsLmggICAgICAgICAgICAgICAgIHwg IDIgKysKIHNjcmlwdHMvY29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kgfCAxMCArKysr KysrKwogMyBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2xvYmFsLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2dsb2JhbC5jCmluZGV4IGIyZGMyMWUuLjc2Y2Y5NDggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZ2xvYmFsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nbG9iYWwu YwpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIGRybV9nbG9iYWxfcmVsZWFzZSh2b2lkKQogfQogCiAv KioKLSAqIGRybV9nbG9iYWxfaXRlbV9yZWYgLSBJbml0aWFsaXplIGFuZCBhY3F1aXJlIHJlZmVy ZW5jZSB0byBtZW1vcnkKKyAqIGRybV9nbG9iYWxfaXRlbV9nZXQgLSBJbml0aWFsaXplIGFuZCBh Y3F1aXJlIHJlZmVyZW5jZSB0byBtZW1vcnkKICAqIG9iamVjdAogICogQHJlZjogT2JqZWN0IGZv ciBpbml0aWFsaXphdGlvbgogICoKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBkcm1fZ2xvYmFsX3Jl bGVhc2Uodm9pZCkKICAqIFJldHVybnM6CiAgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIG90 aGVyd2lzZS4KICAqLwotaW50IGRybV9nbG9iYWxfaXRlbV9yZWYoc3RydWN0IGRybV9nbG9iYWxf cmVmZXJlbmNlICpyZWYpCitpbnQgZHJtX2dsb2JhbF9pdGVtX2dldChzdHJ1Y3QgZHJtX2dsb2Jh bF9yZWZlcmVuY2UgKnJlZikKIHsKIAlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3QgZHJtX2dsb2JhbF9p dGVtICppdGVtID0gJmdsb2JbcmVmLT5nbG9iYWxfdHlwZV07CkBAIC0xMDcsMTAgKzEwNywxMCBA QCBpbnQgZHJtX2dsb2JhbF9pdGVtX3JlZihzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKnJl ZikKIAltdXRleF91bmxvY2soJml0ZW0tPm11dGV4KTsKIAlyZXR1cm4gcmV0OwogfQotRVhQT1JU X1NZTUJPTChkcm1fZ2xvYmFsX2l0ZW1fcmVmKTsKK0VYUE9SVF9TWU1CT0woZHJtX2dsb2JhbF9p dGVtX2dldCk7CiAKIC8qKgotICogZHJtX2dsb2JhbF9pdGVtX3VucmVmIC0gRHJvcCByZWZlcmVu Y2UgdG8gbWVtb3J5CisgKiBkcm1fZ2xvYmFsX2l0ZW1fcHV0IC0gRHJvcCByZWZlcmVuY2UgdG8g bWVtb3J5CiAgKiBvYmplY3QKICAqIEByZWY6IE9iamVjdCBiZWluZyByZW1vdmVkCiAgKgpAQCAt MTIwLDcgKzEyMCw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2dsb2JhbF9pdGVtX3JlZik7CiAgKgog ICovCiAKLXZvaWQgZHJtX2dsb2JhbF9pdGVtX3VucmVmKHN0cnVjdCBkcm1fZ2xvYmFsX3JlZmVy ZW5jZSAqcmVmKQordm9pZCBkcm1fZ2xvYmFsX2l0ZW1fcHV0KHN0cnVjdCBkcm1fZ2xvYmFsX3Jl ZmVyZW5jZSAqcmVmKQogewogCXN0cnVjdCBkcm1fZ2xvYmFsX2l0ZW0gKml0ZW0gPSAmZ2xvYlty ZWYtPmdsb2JhbF90eXBlXTsKIApAQCAtMTMzLDUgKzEzMywzNiBAQCB2b2lkIGRybV9nbG9iYWxf aXRlbV91bnJlZihzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKnJlZikKIAl9CiAJbXV0ZXhf dW5sb2NrKCZpdGVtLT5tdXRleCk7CiB9Ci1FWFBPUlRfU1lNQk9MKGRybV9nbG9iYWxfaXRlbV91 bnJlZik7CitFWFBPUlRfU1lNQk9MKGRybV9nbG9iYWxfaXRlbV9wdXQpOwogCisvKioKKyAqIGRy bV9nbG9iYWxfaXRlbV9yZWYgLSBJbml0aWFsaXplIGFuZCBhY3F1aXJlIHJlZmVyZW5jZSB0byBt ZW1vcnkKKyAqIG9iamVjdAorICogQHJlZjogT2JqZWN0IGZvciBpbml0aWFsaXphdGlvbgorICoK KyAqIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IGFsaWFzIGZvciBkcm1fZ2xvYmFsX2l0ZW1fZ2V0 KCkgYW5kIHNob3VsZAorICogbm90IGJlIHVzZWQgYnkgbmV3IGNvZGUuCisgKgorICogUmV0dXJu czoKKyAqIFplcm8gb24gc3VjY2Vzcywgbm9uLXplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgZHJt X2dsb2JhbF9pdGVtX3JlZihzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKnJlZikKK3sKKwly ZXR1cm4gZHJtX2dsb2JhbF9pdGVtX2dldChyZWYpOworfQorRVhQT1JUX1NZTUJPTChkcm1fZ2xv YmFsX2l0ZW1fcmVmKTsKKworLyoqCisgKiBkcm1fZ2xvYmFsX2l0ZW1fdW5yZWYgLSBEcm9wIHJl ZmVyZW5jZSB0byBtZW1vcnkKKyAqIG9iamVjdAorICogQHJlZjogT2JqZWN0IGJlaW5nIHJlbW92 ZWQKKyAqCisgKiBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBhbGlhcyBmb3IgZHJtX2dsb2JhbF9p dGVtX2dldCgpIGFuZCBzaG91bGQgbm90CisgKiBiZSB1c2VkIGJ5IG5ldyBjb2RlLgorICovCisK K3ZvaWQgZHJtX2dsb2JhbF9pdGVtX3VucmVmKHN0cnVjdCBkcm1fZ2xvYmFsX3JlZmVyZW5jZSAq cmVmKQoreworCWRybV9nbG9iYWxfaXRlbV9wdXQocmVmKTsKK30KK0VYUE9SVF9TWU1CT0woZHJt X2dsb2JhbF9pdGVtX3VucmVmKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9nbG9iYWwu aCBiL2luY2x1ZGUvZHJtL2RybV9nbG9iYWwuaAppbmRleCAzYTgzMDYwLi41ZWI2ZjBjIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZ2xvYmFsLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2ds b2JhbC5oCkBAIC00Nyw2ICs0Nyw4IEBAIHN0cnVjdCBkcm1fZ2xvYmFsX3JlZmVyZW5jZSB7CiAK IHZvaWQgZHJtX2dsb2JhbF9pbml0KHZvaWQpOwogdm9pZCBkcm1fZ2xvYmFsX3JlbGVhc2Uodm9p ZCk7CitpbnQgZHJtX2dsb2JhbF9pdGVtX2dldChzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2Ug KnJlZik7Cit2b2lkIGRybV9nbG9iYWxfaXRlbV9wdXQoc3RydWN0IGRybV9nbG9iYWxfcmVmZXJl bmNlICpyZWYpOwogaW50IGRybV9nbG9iYWxfaXRlbV9yZWYoc3RydWN0IGRybV9nbG9iYWxfcmVm ZXJlbmNlICpyZWYpOwogdm9pZCBkcm1fZ2xvYmFsX2l0ZW1fdW5yZWYoc3RydWN0IGRybV9nbG9i YWxfcmVmZXJlbmNlICpyZWYpOwogCmRpZmYgLS1naXQgYS9zY3JpcHRzL2NvY2NpbmVsbGUvYXBp L2RybS1nZXQtcHV0LmNvY2NpIGIvc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5j b2NjaQppbmRleCA5MWZjZWI4Li5kYjFjNDY1IDEwMDY0NAotLS0gYS9zY3JpcHRzL2NvY2NpbmVs bGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpCisrKyBiL3NjcmlwdHMvY29jY2luZWxsZS9hcGkvZHJt LWdldC1wdXQuY29jY2kKQEAgLTU0LDYgKzU0LDEyIEBAIGV4cHJlc3Npb24gb2JqZWN0OwogfAog LSBkcm1fZGV2X3VucmVmKG9iamVjdCkKICsgZHJtX2Rldl9wdXQob2JqZWN0KQorfAorLSBkcm1f Z2xvYmFsX2l0ZW1fcmVmKG9iamVjdCkKKysgZHJtX2dsb2JhbF9pdGVtX2dldChvYmplY3QpCit8 CistIGRybV9nbG9iYWxfaXRlbV91bnJlZihvYmplY3QpCisrIGRybV9nbG9iYWxfaXRlbV9wdXQo b2JqZWN0KQogKQogCiBAciBkZXBlbmRzIG9uIHJlcG9ydEAKQEAgLTg3LDYgKzkzLDEwIEBAIGRy bV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iQHAob2JqZWN0KQogZHJtX3Byb3BlcnR5X3JlZmVy ZW5jZV9ibG9iQHAob2JqZWN0KQogfAogZHJtX2Rldl91bnJlZkBwKG9iamVjdCkKK3wKK2RybV9n bG9iYWxfaXRlbV9yZWZAcChvYmplY3QpCit8Citkcm1fZ2xvYmFsX2l0ZW1fdW5yZWZAcChvYmpl Y3QpCiApCiAKIEBzY3JpcHQ6cHl0aG9uIGRlcGVuZHMgb24gcmVwb3J0QAotLSAKMi43LjQKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=