From: Andres Rodriguez Subject: [PATCH] drm/amdgpu: introduce AMDGPU_GEM_CREATE_EXPLICIT_SYNC Date: Mon, 18 Sep 2017 19:16:51 -0400 Message-ID: <20170918231652.2340-3-andresx7@gmail.com> References: <20170918231652.2340-1-andresx7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170918231652.2340-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org, andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org SW50cm9kdWNlIGEgZmxhZyB0byBzaWduYWwgdGhhdCBhY2Nlc3MgdG8gYSBCTyB3aWxsIGJlIHN5 bmNocm9uaXplZAp0aHJvdWdoIGFuIGV4dGVybmFsIG1lY2hhbmlzbS4KCkN1cnJlbnRseSBhbGwg YnVmZmVycyBzaGFyZWQgYmV0d2VlbiBjb250ZXh0cyBhcmUgc3ViamVjdCB0byBpbXBsaWNpdApz eW5jaHJvbml6YXRpb24uIEhvd2V2ZXIsIHRoaXMgaXMgb25seSByZXF1aXJlZCBmb3IgcHJvdG9j b2xzIHRoYXQKY3VycmVudGx5IGRvbid0IHN1cHBvcnQgYW4gZXhwbGljaXQgc3luY2hyb25pemF0 aW9uIG1lY2hhbmlzbSAoRFJJMi8zKS4KClRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0aGUgQU1ER1BV X0dFTV9DUkVBVEVfRVhQTElDSVRfU1lOQywgc28gdGhhdAp1c2VycyBjYW4gc3BlY2lmeSB3aGVu IGl0IGlzIHNhZmUgdG8gZGlzYWJsZSBpbXBsaWNpdCBzeW5jLgoKU2lnbmVkLW9mZi1ieTogQW5k cmVzIFJvZHJpZ3VleiA8YW5kcmVzeDdAZ21haWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9jcy5jICAgICB8ICA0ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9nZW0uYyAgICB8ICA0ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9vYmplY3QuaCB8ICA4ICsrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfc3luYy5jICAgfCAgOCArKysrKystLQogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3N5bmMuaCAgIHwgIDMgKystCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdHRtLmMgICAgfCAgNiArKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92bS5jICAgICB8IDEwICsrKysrKy0tLS0KIGluY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1 X2RybS5oICAgICAgICAgICAgICB8ICAyICsrCiA4IGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlv bnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nz LmMKaW5kZXggZGI5N2U3OC4uMTA3NTMzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2NzLmMKQEAgLTcwNCw3ICs3MDQsOSBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19zeW5jX3Jp bmdzKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShl LCAmcC0+dmFsaWRhdGVkLCB0di5oZWFkKSB7CiAJCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3Qg KnJlc3YgPSBlLT5yb2JqLT50Ym8ucmVzdjsKLQkJciA9IGFtZGdwdV9zeW5jX3Jlc3YocC0+YWRl diwgJnAtPmpvYi0+c3luYywgcmVzdiwgcC0+ZmlscCk7CisJCXIgPSBhbWRncHVfc3luY19yZXN2 KHAtPmFkZXYsICZwLT5qb2ItPnN5bmMsIHJlc3YsCisJCQkJICAgICBwLT5maWxwLAorCQkJCSAg ICAgYW1kZ3B1X2JvX2V4cGxpY2l0X3N5bmMoZS0+cm9iaikpOwogCiAJCWlmIChyKQogCQkJcmV0 dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Vt LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKaW5kZXggYjBkNDVj OC4uMjFlOTkzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYwpAQCAt MjEyLDcgKzIxMiw5IEBAIGludCBhbWRncHVfZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkgICAgICBBTURHUFVfR0VNX0NSRUFURV9OT19DUFVf QUNDRVNTIHwKIAkJICAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0dUVF9VU1dDIHwKIAkJICAg ICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DTEVBUkVEIHwKLQkJICAgICAgQU1ER1BVX0dFTV9D UkVBVEVfVk1fQUxXQVlTX1ZBTElEKSkKKwkJICAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVk1fQUxX QVlTX1ZBTElEIHwKKwkJICAgICAgQU1ER1BVX0dFTV9DUkVBVEVfRVhQTElDSVRfU1lOQykpCisK IAkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKiByZWplY3QgaW52YWxpZCBnZW0gZG9tYWlucyAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCmluZGV4IGMyNmVmNTMu LjQyOGFhZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9v YmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmgK QEAgLTE5Myw2ICsxOTMsMTQgQEAgc3RhdGljIGlubGluZSBib29sIGFtZGdwdV9ib19ncHVfYWNj ZXNzaWJsZShzdHJ1Y3QgYW1kZ3B1X2JvICpibykKIAl9CiB9CiAKKy8qKgorICogYW1kZ3B1X2Jv X2V4cGxpY2l0X3N5bmMgLSByZXR1cm4gd2hldGhlciB0aGUgYm8gaXMgZXhwbGljaXRseSBzeW5j ZWQKKyAqLworc3RhdGljIGlubGluZSBib29sIGFtZGdwdV9ib19leHBsaWNpdF9zeW5jKHN0cnVj dCBhbWRncHVfYm8gKmJvKQoreworCXJldHVybiBiby0+ZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFU RV9FWFBMSUNJVF9TWU5DOworfQorCiBpbnQgYW1kZ3B1X2JvX2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwKIAkJCSAgICB1bnNpZ25lZCBsb25nIHNpemUsIGludCBieXRlX2FsaWdu LAogCQkJICAgIGJvb2wga2VybmVsLCB1MzIgZG9tYWluLCB1NjQgZmxhZ3MsCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYwppbmRleCBjNTg2ZjQ0Li42YmY0YmVkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zeW5jLmMKQEAgLTE2OSwxNCArMTY5LDE1 IEBAIGludCBhbWRncHVfc3luY19mZW5jZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3Ry dWN0IGFtZGdwdV9zeW5jICpzeW5jLAogICoKICAqIEBzeW5jOiBzeW5jIG9iamVjdCB0byBhZGQg ZmVuY2VzIGZyb20gcmVzZXJ2YXRpb24gb2JqZWN0IHRvCiAgKiBAcmVzdjogcmVzZXJ2YXRpb24g b2JqZWN0IHdpdGggZW1iZWRkZWQgZmVuY2UKLSAqIEBzaGFyZWQ6IHRydWUgaWYgd2Ugc2hvdWxk IG9ubHkgc3luYyB0byB0aGUgZXhjbHVzaXZlIGZlbmNlCisgKiBAZXhwbGljaXRfc3luYzogdHJ1 ZSBpZiB3ZSBzaG91bGQgb25seSBzeW5jIHRvIHRoZSBleGNsdXNpdmUgZmVuY2UKICAqCiAgKiBT eW5jIHRvIHRoZSBmZW5jZQogICovCiBpbnQgYW1kZ3B1X3N5bmNfcmVzdihzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwKIAkJICAgICBzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCiAJCSAgICAg c3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJICAgICB2b2lkICpvd25lcikKKwkJ ICAgICB2b2lkICpvd25lciwKKwkJICAgICBib29sIGV4cGxpY2l0X3N5bmMpCiB7CiAJc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmbGlzdDsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwpA QCAtMTkxLDYgKzE5Miw5IEBAIGludCBhbWRncHVfc3luY19yZXN2KHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAogCWYgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2wocmVzdik7CiAJciA9 IGFtZGdwdV9zeW5jX2ZlbmNlKGFkZXYsIHN5bmMsIGYpOwogCisJaWYgKGV4cGxpY2l0X3N5bmMp CisJCXJldHVybiByOworCiAJZmxpc3QgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3QocmVz dik7CiAJaWYgKCFmbGlzdCB8fCByKQogCQlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zeW5jLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfc3luYy5oCmluZGV4IGRjNzY4NzkuLjcwZDdlM2EgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zeW5jLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuaApAQCAtNDUsNyArNDUsOCBAQCBpbnQgYW1kZ3B1 X3N5bmNfZmVuY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfc3lu YyAqc3luYywKIGludCBhbWRncHVfc3luY19yZXN2KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAogCQkgICAgIHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKIAkJICAgICBzdHJ1Y3QgcmVzZXJ2 YXRpb25fb2JqZWN0ICpyZXN2LAotCQkgICAgIHZvaWQgKm93bmVyKTsKKwkJICAgICB2b2lkICpv d25lciwKKwkJICAgICBib29sIGV4cGxpY2l0X3N5bmMpOwogc3RydWN0IGRtYV9mZW5jZSAqYW1k Z3B1X3N5bmNfcGVla19mZW5jZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCiAJCQkJICAgICBz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOwogc3RydWN0IGRtYV9mZW5jZSAqYW1kZ3B1X3N5bmNf Z2V0X2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYyk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdHRtLmMKaW5kZXggYzljMDU5ZC4uMThjNTY2MiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwpAQCAtMTUxMCw3ICsxNTEwLDggQEAgaW50IGFtZGdw dV9jb3B5X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQ2NF90IHNyY19vZmZz ZXQsCiAJam9iLT52bV9uZWVkc19mbHVzaCA9IHZtX25lZWRzX2ZsdXNoOwogCWlmIChyZXN2KSB7 CiAJCXIgPSBhbWRncHVfc3luY19yZXN2KGFkZXYsICZqb2ItPnN5bmMsIHJlc3YsCi0JCQkJICAg ICBBTURHUFVfRkVOQ0VfT1dORVJfVU5ERUZJTkVEKTsKKwkJCQkgICAgIEFNREdQVV9GRU5DRV9P V05FUl9VTkRFRklORUQsCisJCQkJICAgICBmYWxzZSk7CiAJCWlmIChyKSB7CiAJCQlEUk1fRVJS T1IoInN5bmMgZmFpbGVkICglZCkuXG4iLCByKTsKIAkJCWdvdG8gZXJyb3JfZnJlZTsKQEAgLTE2 MDIsNyArMTYwMyw4IEBAIGludCBhbWRncHVfZmlsbF9idWZmZXIoc3RydWN0IGFtZGdwdV9ibyAq Ym8sCiAKIAlpZiAocmVzdikgewogCQlyID0gYW1kZ3B1X3N5bmNfcmVzdihhZGV2LCAmam9iLT5z eW5jLCByZXN2LAotCQkJCSAgICAgQU1ER1BVX0ZFTkNFX09XTkVSX1VOREVGSU5FRCk7CisJCQkJ ICAgICBBTURHUFVfRkVOQ0VfT1dORVJfVU5ERUZJTkVELAorCQkJCSAgICAgYW1kZ3B1X2JvX2V4 cGxpY2l0X3N5bmMoYm8pKTsKIAkJaWYgKHIpIHsKIAkJCURSTV9FUlJPUigic3luYyBmYWlsZWQg KCVkKS5cbiIsIHIpOwogCQkJZ290byBlcnJvcl9mcmVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdm0uYwppbmRleCAyZGYyNTRjLi5jYTlhOWI0IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uYwpAQCAtOTg3LDcgKzk4Nyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X3ZtX3dhaXRfcGQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0g KnZtLAogCWludCByOwogCiAJYW1kZ3B1X3N5bmNfY3JlYXRlKCZzeW5jKTsKLQlhbWRncHVfc3lu Y19yZXN2KGFkZXYsICZzeW5jLCB2bS0+cm9vdC5iYXNlLmJvLT50Ym8ucmVzdiwgb3duZXIpOwor CWFtZGdwdV9zeW5jX3Jlc3YoYWRldiwgJnN5bmMsIHZtLT5yb290LmJhc2UuYm8tPnRiby5yZXN2 LCBvd25lciwgZmFsc2UpOwogCXIgPSBhbWRncHVfc3luY193YWl0KCZzeW5jLCB0cnVlKTsKIAlh bWRncHVfc3luY19mcmVlKCZzeW5jKTsKIApAQCAtMTEyOCwxMSArMTEyOCwxMyBAQCBzdGF0aWMg aW50IGFtZGdwdV92bV91cGRhdGVfbGV2ZWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJ CQlhbWRncHVfcmluZ19wYWRfaWIocmluZywgcGFyYW1zLmliKTsKIAkJCWFtZGdwdV9zeW5jX3Jl c3YoYWRldiwgJmpvYi0+c3luYywKIAkJCQkJIHBhcmVudC0+YmFzZS5iby0+dGJvLnJlc3YsCi0J CQkJCSBBTURHUFVfRkVOQ0VfT1dORVJfVk0pOworCQkJCQkgQU1ER1BVX0ZFTkNFX09XTkVSX1ZN LAorCQkJCQkgYW1kZ3B1X2JvX2V4cGxpY2l0X3N5bmMocGFyZW50LT5iYXNlLmJvKSk7CiAJCQlp ZiAoc2hhZG93KQogCQkJCWFtZGdwdV9zeW5jX3Jlc3YoYWRldiwgJmpvYi0+c3luYywKIAkJCQkJ CSBzaGFkb3ctPnRiby5yZXN2LAotCQkJCQkJIEFNREdQVV9GRU5DRV9PV05FUl9WTSk7CisJCQkJ CQkgQU1ER1BVX0ZFTkNFX09XTkVSX1ZNLAorCQkJCQkJIGFtZGdwdV9ib19leHBsaWNpdF9zeW5j KHNoYWRvdykpOwogCiAJCQlXQVJOX09OKHBhcmFtcy5pYi0+bGVuZ3RoX2R3ID4gbmR3KTsKIAkJ CXIgPSBhbWRncHVfam9iX3N1Ym1pdChqb2IsIHJpbmcsICZ2bS0+ZW50aXR5LApAQCAtMTU5NSw3 ICsxNTk3LDcgQEAgc3RhdGljIGludCBhbWRncHVfdm1fYm9fdXBkYXRlX21hcHBpbmcoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCWdvdG8gZXJyb3JfZnJlZTsKIAogCXIgPSBhbWRncHVf c3luY19yZXN2KGFkZXYsICZqb2ItPnN5bmMsIHZtLT5yb290LmJhc2UuYm8tPnRiby5yZXN2LAot CQkJICAgICBvd25lcik7CisJCQkgICAgIG93bmVyLCBhbWRncHVfYm9fZXhwbGljaXRfc3luYyh2 bS0+cm9vdC5iYXNlLmJvKSk7CiAJaWYgKHIpCiAJCWdvdG8gZXJyb3JfZnJlZTsKIApkaWZmIC0t Z2l0IGEvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2Ft ZGdwdV9kcm0uaAppbmRleCA2OWQ2NGU1Li45NmZjZGU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3Vh cGkvZHJtL2FtZGdwdV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaApA QCAtOTEsNiArOTEsOCBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgQU1ER1BVX0dFTV9DUkVBVEVf VlJBTV9DT05USUdVT1VTCSgxIDw8IDUpCiAvKiBGbGFnIHRoYXQgQk8gaXMgYWx3YXlzIHZhbGlk IGluIHRoaXMgVk0gKi8KICNkZWZpbmUgQU1ER1BVX0dFTV9DUkVBVEVfVk1fQUxXQVlTX1ZBTElE CSgxIDw8IDYpCisvKiBGbGFnIHRoYXQgQk8gc2hhcmluZyB3aWxsIGJlIGV4cGxpY2l0bHkgc3lu Y2hyb25pemVkICovCisjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRFX0VYUExJQ0lUX1NZTkMJCSgx IDw8IDcpCiAKIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV9jcmVhdGVfaW4gIHsKIAkvKiogdGhlIHJl cXVlc3RlZCBtZW1vcnkgc2l6ZSAqLwotLSAKMi45LjMKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vYW1kLWdmeAo=