From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak S Subject: Re: [PATCH v5 1/4] drm/i915/bdw: Clean up execlist queue items in retire_work Date: Tue, 18 Nov 2014 11:59:33 +0530 Message-ID: <546AE74D.20503@intel.com> References: <1415372150-30455-1-git-send-email-thomas.daniel@intel.com> <1415874425-314-1-git-send-email-thomas.daniel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 9E7DF6E519 for ; Sun, 16 Nov 2014 22:33:22 -0800 (PST) In-Reply-To: <1415874425-314-1-git-send-email-thomas.daniel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIFRodXJzZGF5IDEzIE5vdmVtYmVyIDIwMTQgMDM6NTcgUE0sIFRob21hcyBEYW5pZWwgd3Jv dGU6Cj4gTm8gbG9uZ2VyIGNyZWF0ZSBhIHdvcmsgaXRlbSB0byBjbGVhbiBlYWNoIGV4ZWNsaXN0 IHF1ZXVlIGl0ZW0uCj4gSW5zdGVhZCwgbW92ZSByZXRpcmVkIGV4ZWNsaXN0IHJlcXVlc3RzIHRv IGEgcXVldWUgYW5kIGNsZWFuIHVwIHRoZQo+IGl0ZW1zIGR1cmluZyByZXRpcmVfcmVxdWVzdHMu Cj4KPiB2MjogRml4IGxlZ2FjeSByaW5nIHBhdGggYnJva2VuIGR1cmluZyBvdmVyemVhbG91cyBj bGVhbnVwCj4KPiB2MzogVXBkYXRlIGlkbGUgZGV0ZWN0aW9uIHRvIHRha2UgZXhlY2xpc3RzIHF1 ZXVlIGludG8gYWNjb3VudAo+Cj4gdjQ6IEdyYWIgZXhlY2xpc3QgbG9jayB3aGVuIGNoZWNraW5n IHF1ZXVlIHN0YXRlCj4KPiB2NTogRml4IGxlYWtpbmcgcmVxdWVzdHMgYnkgZnJlZWluZyBpbiBl eGVjbGlzdHNfcmV0aXJlX3JlcXVlc3RzLgo+Cj4gSXNzdWU6IFZJWi00Mjc0Cj4gU2lnbmVkLW9m Zi1ieTogVGhvbWFzIERhbmllbCA8dGhvbWFzLmRhbmllbEBpbnRlbC5jb20+Cj4gLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCAgICA5ICsrKysrKwo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgICA1MyArKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu aCAgICAgICAgfCAgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmggfCAgICAxICsKPiAgIDQgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMjMg ZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA4MjdlZGI1Li40 MDhhZmU3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTI3MTgsNiArMjcxOCwx NSBAQCBpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg IAlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7Cj4gICAJCWk5MTVfZ2VtX3JldGly ZV9yZXF1ZXN0c19yaW5nKHJpbmcpOwo+ICAgCQlpZGxlICY9IGxpc3RfZW1wdHkoJnJpbmctPnJl cXVlc3RfbGlzdCk7Cj4gKwkJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewo+ICsJCQl1bnNp Z25lZCBsb25nIGZsYWdzOwo+ICsKPiArCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnJpbmctPmV4ZWNs aXN0X2xvY2ssIGZsYWdzKTsKPiArCQkJaWRsZSAmPSBsaXN0X2VtcHR5KCZyaW5nLT5leGVjbGlz dF9xdWV1ZSk7Cj4gKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJpbmctPmV4ZWNsaXN0X2xv Y2ssIGZsYWdzKTsKPiArCj4gKwkJCWludGVsX2V4ZWNsaXN0c19yZXRpcmVfcmVxdWVzdHMocmlu Zyk7Cj4gKwkJfQo+ICAgCX0KPiAgIAo+ICAgCWlmIChpZGxlKQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCj4gaW5kZXggY2Q3NGU1Yy4uZDkyMDI5NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCj4gQEAgLTM4Niw3ICszODYsNiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29udGV4 dF91bnF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICB7Cj4gICAJc3RydWN0 IGludGVsX2N0eF9zdWJtaXRfcmVxdWVzdCAqcmVxMCA9IE5VTEwsICpyZXExID0gTlVMTDsKPiAg IAlzdHJ1Y3QgaW50ZWxfY3R4X3N1Ym1pdF9yZXF1ZXN0ICpjdXJzb3IgPSBOVUxMLCAqdG1wID0g TlVMTDsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ ZGV2X3ByaXZhdGU7Cj4gICAKPiAgIAlhc3NlcnRfc3Bpbl9sb2NrZWQoJnJpbmctPmV4ZWNsaXN0 X2xvY2spOwo+ICAgCj4gQEAgLTQwMyw3ICs0MDIsOCBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNf Y29udGV4dF91bnF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICAJCQkgKiB3 aWxsIHVwZGF0ZSB0YWlsIHBhc3QgZmlyc3QgcmVxdWVzdCdzIHdvcmtsb2FkICovCj4gICAJCQlj dXJzb3ItPmVsc3Bfc3VibWl0dGVkID0gcmVxMC0+ZWxzcF9zdWJtaXR0ZWQ7Cj4gICAJCQlsaXN0 X2RlbCgmcmVxMC0+ZXhlY2xpc3RfbGluayk7Cj4gLQkJCXF1ZXVlX3dvcmsoZGV2X3ByaXYtPndx LCAmcmVxMC0+d29yayk7Cj4gKwkJCWxpc3RfYWRkX3RhaWwoJnJlcTAtPmV4ZWNsaXN0X2xpbmss Cj4gKwkJCQkmcmluZy0+ZXhlY2xpc3RfcmV0aXJlZF9yZXFfbGlzdCk7Cj4gICAJCQlyZXEwID0g Y3Vyc29yOwo+ICAgCQl9IGVsc2Ugewo+ICAgCQkJcmVxMSA9IGN1cnNvcjsKPiBAQCAtNDI1LDcg KzQyNSw2IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250ZXh0X3VucXVldWUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIHN0YXRpYyBib29sIGV4ZWNsaXN0c19jaGVja19yZW1v dmVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQkJCQkgICB1MzIg cmVxdWVzdF9pZCkKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJc3RydWN0IGludGVsX2N0eF9zdWJtaXRfcmVx dWVzdCAqaGVhZF9yZXE7Cj4gICAKPiAgIAlhc3NlcnRfc3Bpbl9sb2NrZWQoJnJpbmctPmV4ZWNs aXN0X2xvY2spOwo+IEBAIC00NDMsNyArNDQyLDggQEAgc3RhdGljIGJvb2wgZXhlY2xpc3RzX2No ZWNrX3JlbW92ZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAKPiAg IAkJCWlmICgtLWhlYWRfcmVxLT5lbHNwX3N1Ym1pdHRlZCA8PSAwKSB7Cj4gICAJCQkJbGlzdF9k ZWwoJmhlYWRfcmVxLT5leGVjbGlzdF9saW5rKTsKPiAtCQkJCXF1ZXVlX3dvcmsoZGV2X3ByaXYt PndxLCAmaGVhZF9yZXEtPndvcmspOwo+ICsJCQkJbGlzdF9hZGRfdGFpbCgmaGVhZF9yZXEtPmV4 ZWNsaXN0X2xpbmssCj4gKwkJCQkJJnJpbmctPmV4ZWNsaXN0X3JldGlyZWRfcmVxX2xpc3QpOwo+ ICAgCQkJCXJldHVybiB0cnVlOwo+ICAgCQkJfQo+ICAgCQl9Cj4gQEAgLTUxMiwyMiArNTEyLDYg QEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfaGFuZGxlX2N0eF9ldmVudHMoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZykKPiAgIAkJICAgKCh1MzIpcmluZy0+bmV4dF9jb250ZXh0X3N0YXR1c19i dWZmZXIgJiAweDA3KSA8PCA4KTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgdm9pZCBleGVjbGlzdHNf ZnJlZV9yZXF1ZXN0X3Rhc2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IC17Cj4gLQlzdHJ1 Y3QgaW50ZWxfY3R4X3N1Ym1pdF9yZXF1ZXN0ICpyZXEgPQo+IC0JCWNvbnRhaW5lcl9vZih3b3Jr LCBzdHJ1Y3QgaW50ZWxfY3R4X3N1Ym1pdF9yZXF1ZXN0LCB3b3JrKTsKPiAtCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSByZXEtPnJpbmctPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQo+IC0JaW50ZWxfcnVudGltZV9wbV9w dXQoZGV2X3ByaXYpOwo+IC0KPiAtCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAt CWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UocmVxLT5jdHgpOwo+IC0JbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gLQo+IC0Ja2ZyZWUocmVxKTsKPiAtfQo+IC0KPiAgIHN0 YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKPiAgIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqdG8sCj4gICAJCQkJICAgdTMy IHRhaWwpCj4gQEAgLTU0NCw3ICs1MjgsNiBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0 X3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJaTkxNV9nZW1fY29udGV4 dF9yZWZlcmVuY2UocmVxLT5jdHgpOwo+ICAgCXJlcS0+cmluZyA9IHJpbmc7Cj4gICAJcmVxLT50 YWlsID0gdGFpbDsKPiAtCUlOSVRfV09SSygmcmVxLT53b3JrLCBleGVjbGlzdHNfZnJlZV9yZXF1 ZXN0X3Rhc2spOwo+ICAgCj4gICAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwo+ICAg Cj4gQEAgLTU2NSw3ICs1NDgsOCBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQlXQVJOKHRhaWxfcmVxLT5lbHNw X3N1Ym1pdHRlZCAhPSAwLAo+ICAgCQkJICAgICAiTW9yZSB0aGFuIDIgYWxyZWFkeS1zdWJtaXR0 ZWQgcmVxcyBxdWV1ZWRcbiIpOwo+ICAgCQkJbGlzdF9kZWwoJnRhaWxfcmVxLT5leGVjbGlzdF9s aW5rKTsKPiAtCQkJcXVldWVfd29yayhkZXZfcHJpdi0+d3EsICZ0YWlsX3JlcS0+d29yayk7Cj4g KwkJCWxpc3RfYWRkX3RhaWwoJnRhaWxfcmVxLT5leGVjbGlzdF9saW5rLAo+ICsJCQkJJnJpbmct PmV4ZWNsaXN0X3JldGlyZWRfcmVxX2xpc3QpOwo+ICAgCQl9Cj4gICAJfQo+ICAgCj4gQEAgLTcz Myw2ICs3MTcsMzAgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiAgIAlyZXR1cm4gMDsKPiAgIH0K PiAgIAo+ICt2b2lkIGludGVsX2V4ZWNsaXN0c19yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZykKPiArewo+ICsJc3RydWN0IGludGVsX2N0eF9zdWJtaXRfcmVxdWVz dCAqcmVxLCAqdG1wOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmlu Zy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwlzdHJ1Y3Qg bGlzdF9oZWFkIHJldGlyZWRfbGlzdDsKPiArCj4gKwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQo JnJpbmctPmRldi0+c3RydWN0X211dGV4KSk7Cj4gKwlpZiAobGlzdF9lbXB0eSgmcmluZy0+ZXhl Y2xpc3RfcmV0aXJlZF9yZXFfbGlzdCkpCj4gKwkJcmV0dXJuOwo+ICsKPiArCUlOSVRfTElTVF9I RUFEKCZyZXRpcmVkX2xpc3QpOwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJnJpbmctPmV4ZWNsaXN0 X2xvY2ssIGZsYWdzKTsKPiArCWxpc3RfcmVwbGFjZV9pbml0KCZyaW5nLT5leGVjbGlzdF9yZXRp cmVkX3JlcV9saXN0LCAmcmV0aXJlZF9saXN0KTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JnJpbmctPmV4ZWNsaXN0X2xvY2ssIGZsYWdzKTsKPiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUocmVxLCB0bXAsICZyZXRpcmVkX2xpc3QsIGV4ZWNsaXN0X2xpbmspIHsKPiArCQlpbnRl bF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gKwkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVy ZW5jZShyZXEtPmN0eCk7Cj4gKwkJbGlzdF9kZWwoJnJlcS0+ZXhlY2xpc3RfbGluayk7Cj4gKwkJ a2ZyZWUocmVxKTsKCkhpIFRob21hcywKCkkgYW0gZmluZSB3aXRoIHRoZSBjdXJyZW50IGNoYW5n ZXMgYWZ0ZXIgdjUuClJldmlld2VkLWJ5OiBEZWVwYWsgUyA8ZGVlcGFrLnNAbGludXguaW50ZWwu Y29tPgoKVGhhbmtzCkRlZXBhawoKPiArCX0KPiArfQo+ICsKPiAgIHZvaWQgaW50ZWxfbG9naWNh bF9yaW5nX3N0b3Aoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIHsKPiAgIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwo+ IEBAIC0xMjQ4LDYgKzEyNTYsNyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbgo+ICAgCWluaXRf d2FpdHF1ZXVlX2hlYWQoJnJpbmctPmlycV9xdWV1ZSk7Cj4gICAKPiAgIAlJTklUX0xJU1RfSEVB RCgmcmluZy0+ZXhlY2xpc3RfcXVldWUpOwo+ICsJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmV4ZWNs aXN0X3JldGlyZWRfcmVxX2xpc3QpOwo+ICAgCXNwaW5fbG9ja19pbml0KCZyaW5nLT5leGVjbGlz dF9sb2NrKTsKPiAgIAlyaW5nLT5uZXh0X2NvbnRleHRfc3RhdHVzX2J1ZmZlciA9IDA7Cj4gICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IGluZGV4IDMzYzNiNGIuLjg0YmJmMTkgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IEBAIC0xMDQsMTEgKzEwNCwxMSBAQCBzdHJ1Y3Qg aW50ZWxfY3R4X3N1Ym1pdF9yZXF1ZXN0IHsKPiAgIAl1MzIgdGFpbDsKPiAgIAo+ICAgCXN0cnVj dCBsaXN0X2hlYWQgZXhlY2xpc3RfbGluazsKPiAtCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwo+ ICAgCj4gICAJaW50IGVsc3Bfc3VibWl0dGVkOwo+ICAgfTsKPiAgIAo+ICAgdm9pZCBpbnRlbF9l eGVjbGlzdHNfaGFuZGxlX2N0eF9ldmVudHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7 Cj4gK3ZvaWQgaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nKTsKPiAgIAo+ICAgI2VuZGlmIC8qIF9JTlRFTF9MUkNfSF8gKi8KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggOTY0NzljOC4uOGMwMDJk MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMjM1 LDYgKzIzNSw3IEBAIHN0cnVjdCAgaW50ZWxfZW5naW5lX2NzIHsKPiAgIAkvKiBFeGVjbGlzdHMg Ki8KPiAgIAlzcGlubG9ja190IGV4ZWNsaXN0X2xvY2s7Cj4gICAJc3RydWN0IGxpc3RfaGVhZCBl eGVjbGlzdF9xdWV1ZTsKPiArCXN0cnVjdCBsaXN0X2hlYWQgZXhlY2xpc3RfcmV0aXJlZF9yZXFf bGlzdDsKPiAgIAl1OCBuZXh0X2NvbnRleHRfc3RhdHVzX2J1ZmZlcjsKPiAgIAl1MzIgICAgICAg ICAgICAgaXJxX2tlZXBfbWFzazsgLyogYml0bWFzayBmb3IgaW50ZXJydXB0cyB0aGF0IHNob3Vs ZCBub3QgYmUgbWFza2VkICovCj4gICAJaW50CQkoKmVtaXRfcmVxdWVzdCkoc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmdidWYpOwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK