From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Liu, Monk" Subject: RE: [PATCH 3/4] drm/amdgpu: don't return when ring not ready for fill_buffer Date: Thu, 1 Mar 2018 09:25:26 +0000 Message-ID: References: <1519802463-9090-1-git-send-email-Monk.Liu@amd.com> <1519802463-9090-3-git-send-email-Monk.Liu@amd.com> <01879d0d-edea-680e-c9f2-1005d94f1dfd@gmail.com> <3a8945f9-848e-dd19-373d-5dddc69f76cb@amd.com> <7af9b6fb-28e8-4e25-5d4a-5b566a00cbea@gmail.com> <6dedfc7f-cf69-676f-463d-be52cda1b1bb@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US 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: "Liu, Monk" , "Koenig, Christian" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" T2theSBJIG1pc3NlZCB0aGUgcGFydCBvZiBzdXNwZW5kL3Jlc3VtZS9zMw0KDQpGb3IgU1JJT1Yg d2UgZG9uJ3QgcnVuIGludG8gdGhhdCBsb2dpYywgbG9va3MgSSBuZWVkIHRvIGtlZXAgaXQgaW4g cHJpdmF0ZSBicmFuY2ggdGlsbCANCkEgYmV0dGVyIHNvbHV0aW9uIHJhaXNlZCANCg0KL01vbmsN Cg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGFtZC1nZnggW21haWx0bzphbWQt Z2Z4LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnXSBPbiBCZWhhbGYgT2YgTGl1LCBNb25r DQpTZW50OiAyMDE45bm0M+aciDHml6UgMTY6NTINClRvOiBLb2VuaWcsIENocmlzdGlhbiA8Q2hy aXN0aWFuLktvZW5pZ0BhbWQuY29tPjsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNClN1 YmplY3Q6IFJFOiBbUEFUQ0ggMy80XSBkcm0vYW1kZ3B1OiBkb24ndCByZXR1cm4gd2hlbiByaW5n IG5vdCByZWFkeSBmb3IgZmlsbF9idWZmZXINCg0KPiBhbWRncHVfZXZpY3RfZmxhZ3MoKSBhbmQg YW1kZ3B1X2JvX21vdmUoKSBuZWVkcyB0byBrbm93IGlmIHRoZSBTRE1BIHJpbmcgaXMgYXZhaWxh YmxlIGR1cmluZyBzdXNwZW5kL3Jlc3VtZS4NCg0KQXMgbG9uZyBhcyB3ZSBhcmUgaW4gZ3B1IHJl c2V0LCB3ZSBkb24ndCByZXR1cm4gZXJyb3Igd2hlbiByaW5nIG5vdCByZWFkeSwgY3V6IGV2ZW50 dWFsbHkgaXQgZWl0aGVyIHN1Y2Nlc3Mgb3IgZmFpbGVkIGFuZCByZXNjaGVkdWxlZCBieSBzY2hl ZHVsZXIgc2luY2UgaXQgaXMga2VybmVsIGpvYiBXaGF0J3MgeW91ciBjb25jZXJuID8NCg0KL01v bmsNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogS29lbmlnLCBDaHJpc3Rp YW4NClNlbnQ6IDIwMTjlubQz5pyIMeaXpSAxNjo0MQ0KVG86IExpdSwgTW9uayA8TW9uay5MaXVA YW1kLmNvbT47IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQpTdWJqZWN0OiBSZTogW1BB VENIIDMvNF0gZHJtL2FtZGdwdTogZG9uJ3QgcmV0dXJuIHdoZW4gcmluZyBub3QgcmVhZHkgZm9y IGZpbGxfYnVmZmVyDQoNCj4gSWYgd2UgYXJlIGluIGdwdSByZXN0IHN0YWdlLCB3ZSBjYW4gbGV0 IFNETUEgam9iIGxpdmUgd2l0aCB0aGUgY2FzZSBvZiByaW5nIG5vdCByZWFkeSwgIGNhbiB5b3Ug cG9pbnQgb3V0IHdoZXJlIGlzIHRoZSBwcm9ibGVtID8NCmFtZGdwdV9ldmljdF9mbGFncygpIGFu ZCBhbWRncHVfYm9fbW92ZSgpIG5lZWRzIHRvIGtub3cgaWYgdGhlIFNETUEgcmluZyBpcyBhdmFp bGFibGUgZHVyaW5nIHN1c3BlbmQvcmVzdW1lLg0KDQpFLmcuIHN1c3BlbmQgd29ya3MgYXMgdGhp czoNCjEuIEV2aWN0IGFsbCBub3JtYWwgQk9zIGZyb20gVlJBTSB1c2luZyB0aGUgU0RNQS4NCjIu IERpc2FibGUgU0RNQSwgR0FSVCwgUFNQIGV0Yy4uLiBlLmcuIGRpc2FibGUgdGhlIGhhcmR3YXJl Lg0KMy4gVW5waW4gYWxsIEJPcyBpbiBWUkFNIHVzZWQgYnkgaGFyZHdhcmUgZW5naW5lcywgZS5n LiB0aGUgR0FSVCB0YWJsZSwgZmlybXdhcmUgZXRjLi4uDQo0LiBFdmljdCBhbGwgcmVtYWluaW5n IEJPcyBmcm9tIFZSQU0gdXNpbmcgQ1BVIGNvcGllcy4NCg0KUmVzdW1lIHdvcmtzIHRoZSBvdGhl ciB3YXkgYXJvdW5kOg0KMS4gTW92ZSBhbGwgQk9zIGZvciBHQVJUIHRhYmxlIGFuZCBmaXJtd2Fy ZSBiYWNrIGludG8gVlJBTSB1c2luZyBDUFUgY29waWVzLg0KMi4gUGluIHRob3NlIEJPcyBpbiBW UkFNIGFuZCBlbmFibGUgdGhlIGhhcmR3YXJlLg0KMy4gVXNlIHRoZSBTRE1BIHRvIG1vdmUgYmFj ayBhbGwgb3RoZXIgQk9zIGludG8gVlJBTS4NCg0KVG8gZmlndXJlIG91dCBpZiB3ZSBzaG91bGQg dXNlIHRoZSBDUFUgY29weSBvciB0aGUgU0RNQSB0aGUgcmluZy0+cmVhZHkgZmxhZyBpcyB1c2Vk LiBTbyByZW1vdmluZyB0aGlzIGNoZWNrIGlzIHJlYWxseSBhIG5vLWdvIGJlY2F1c2UgaXQgd291 bGQgYnJlYWsgc3VzcGVuZC9yZXN1bWUuDQoNClRoZSBvbmx5IG90aGVyIGFsdGVybmF0aXZlIEkg Y2FuIHNlZSBpcyB0byBhZGQgYSBzZXBhcmF0ZSBmbGFnIGluIGFtZGdwdV9tbWFuIGlmIGJ1ZmZl cl9mdW5jcyBzaG91bGQgYmUgdXNlZCBvciBub3QuIFNlZSBhbGwgdGhlIGNhbGxlcnMgb2YgYW1k Z3B1X3R0bV9zZXRfYWN0aXZlX3ZyYW1fc2l6ZSgpIGFzIHdlbGwuDQoNClNvbWV0aGluZyBsaWtl IHJlbmFtaW5nIGFtZGdwdV90dG1fc2V0X2FjdGl2ZV92cmFtX3NpemUoKSBpbnRvDQphbWRncHVf dHRtX3NldF9idWZmZXJfZnVuY3NfcmVhZCgpIGFuZCBpZ25vcmluZyBhbnkgY2hhbmdlIGlmIGdw dV9yZXNldCBpcyBzZXQuDQoNCkJUVzogQ2hhbmdpbmcgdGhlIGFjdGl2ZSBWUkFNIHNpemUgaW4g R1BVIHJlc2V0IGlzIHF1aXRlIGEgYnVnIHlvdSBzdHVtYmxlZCBvdmVyIGhlcmUsIHNvIHRoaXMg cmVhbGx5IG5lZWRzIGZpeGluZyBhbnl3YXkuDQoNClJlZ2FyZHMsDQpDaHJpc3RpYW4uDQoNCkFt IDAxLjAzLjIwMTggdW0gMDk6MjMgc2NocmllYiBMaXUsIE1vbms6DQo+IEFjY2VsX3dvcmtpbmcg aXMgb25seSBmb3IgR0ZYIHJpbmcsIEkgZG9uJ3QgdGhpbmsgdGVzdCBpdCBpcyBhcHByb3ByaWF0 ZSBmb3IgU0RNQSBqb2JzIC4uLi4NCj4NCj4gSWYgd2UgYXJlIGluIGdwdSByZXN0IHN0YWdlLCB3 ZSBjYW4gbGV0IFNETUEgam9iIGxpdmUgd2l0aCB0aGUgY2FzZSBvZiByaW5nIG5vdCByZWFkeSwg IGNhbiB5b3UgcG9pbnQgb3V0IHdoZXJlIGlzIHRoZSBwcm9ibGVtID8NCj4NCj4gSW4gZmFjdCB3 ZSBkaWQgc3RyZXNzIFREUiB0ZXN0IHdpdGggdGhpcyBwYXRjaCBhbmQgaXQgY2FuIHJlYWxseSBm aXggDQo+IGNvdXBsZSBvdmVyIGtpbGwgaXNzdWVzDQo+DQo+DQo+IC9Nb25rDQo+DQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IENocmlzdGlhbiBLw7ZuaWcgW21haWx0bzpj a29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbV0NCj4gU2VudDogMjAxOOW5tDPmnIgx5pel IDE2OjE2DQo+IFRvOiBMaXUsIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20+OyBLb2VuaWcsIENocmlz dGlhbiANCj4gPENocmlzdGlhbi5Lb2VuaWdAYW1kLmNvbT47IGFtZC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMy80XSBkcm0vYW1kZ3B1OiBkb24ndCBy ZXR1cm4gd2hlbiByaW5nIG5vdCByZWFkeSANCj4gZm9yIGZpbGxfYnVmZmVyDQo+DQo+IEFoLCBj cmFwIHllYWggdGhhdCB3b24ndCB3b3JrIHNpbmNlIHdlIGRvbid0IGZyZWUgdGhlIHJpbmcuDQo+ DQo+IEtleSBwb2ludCBpcyB3ZSBuZWVkIHRvIGRpc3RpbmN0IGJldHdlZW4gdGhlIHJpbmcgZG9l c24ndCB3b3JrIHRlbXBvcmFyeSBiZWNhdXNlIHdlIGFyZSBpbiBhIEdQVSByZXNldCBhbmQgaXQg ZG9lc24ndCB3b3JrIGF0IGFsbCBiZWNhdXNlIHdlIGFyZSBtaXNzaW5nIGZpcm13YXJlIG9yIHN0 dWZmIGxpa2UgdGhhdC4NCj4NCj4gQW5kIG5vLCBjaGVja2luZyB0aGUgZ3B1X3Jlc2V0IGZsYWcg aXMgdG90YWxseSByYWN5IGFuZCBjYW4ndCBiZSBkb25lIGVpdGhlci4gSG93IGFib3V0IGNoZWNr aW5nIGFjY2VsX3dvcmtpbmcgaW5zdGVhZD8NCj4NCj4gQ2hyaXN0aWFuLg0KPg0KPiBBbSAwMS4w My4yMDE4IHVtIDA3OjAxIHNjaHJpZWIgTGl1LCBNb25rOg0KPj4+IFBsZWFzZSBjaGFuZ2UgdGhl IHRlc3QgdG8gdXNlIHJpbmctPnJpbmdfb2JqIGluc3RlYWQsIHRoaXMgd2F5IHdlIHN0aWxsIGJh aWwgb3V0IGlmIHNvbWVib2R5IHRyaWVzIHRvIHN1Ym1pdCBjb21tYW5kcyBiZWZvcmUgdGhlIHJp bmcgaXMgZXZlbiBhbGxvY2F0ZWQuDQo+PiBJIGRvbid0IHVuZGVyc3RhbmQgaG93IGNvdWxkIGZp bGxfYnVmZmVyKCkgZ2V0IHJ1biB1bmRlciB0aGUgY2FzZSB0aGF0IHJpbmctPnJpbmdfb2JqIGlz IG5vdCBldmVuIGFsbG9jYXRlZCAuLi4gd2hlcmUgaXMgc3VjaCBjYXNlID8NCj4+DQo+Pg0KPj4g L01vbmsNCj4+DQo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogS29lbmln LCBDaHJpc3RpYW4NCj4+IFNlbnQ6IDIwMTjlubQy5pyIMjjml6UgMjA6NDYNCj4+IFRvOiBMaXUs IE1vbmsgPE1vbmsuTGl1QGFtZC5jb20+OyBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0K Pj4gU3ViamVjdDogUmU6IFtQQVRDSCAzLzRdIGRybS9hbWRncHU6IGRvbid0IHJldHVybiB3aGVu IHJpbmcgbm90IHJlYWR5IA0KPj4gZm9yIGZpbGxfYnVmZmVyDQo+Pg0KPj4gR29vZCBwb2ludCwg YnV0IGluIHRoaXMgY2FzZSB3ZSBuZWVkIHNvbWUgb3RoZXIgaGFuZGxpbmcuDQo+Pg0KPj4gUGxl YXNlIGNoYW5nZSB0aGUgdGVzdCB0byB1c2UgcmluZy0+cmluZ19vYmogaW5zdGVhZCwgdGhpcyB3 YXkgd2Ugc3RpbGwgYmFpbCBvdXQgaWYgc29tZWJvZHkgdHJpZXMgdG8gc3VibWl0IGNvbW1hbmRz IGJlZm9yZSB0aGUgcmluZyBpcyBldmVuIGFsbG9jYXRlZC4NCj4+DQo+PiBBbmQgeW91IGFsc28g bmVlZCB0byBmaXggYSBjb3VwbGUgb2Ygb3RoZXIgcGxhY2VzIGluIGFtZGdwdV90dG0uYy4NCj4+ DQo+PiBSZWdhcmRzLA0KPj4gQ2hyaXN0aWFuLg0KPj4NCj4+IEFtIDI4LjAyLjIwMTggdW0gMTM6 MzQgc2NocmllYiBMaXUsIE1vbms6DQo+Pj4gQmVjYXVzZSB3aGVuIFNETUEgd2FzIGhhbmcgYnkg bGlrZSBwcm9jZXNzIEEsIGFuZCBtZWFud2hpbGUgYW5vdGhlciANCj4+PiBwcm9jZXNzIEIgaXMg YWxyZWFkeSBydW5uaW5nIGludG8gdGhlIGNvZGUgb2YgZmlsbF9idWZmZXIoKSBTbyBqdXN0IGxl dCBwcm9jZXNzIEIgY29udGludWUsIGRvbid0IGJsb2NrIGl0IG90aGVyd2lzZSBwcm9jZXNzIEIg d291bGQgZmFpbCBieSBzb2Z0d2FyZSByZWFzb24gLg0KPj4+DQo+Pj4gTGV0IGl0IHJ1biBhbmQg ZmluYWxseSBwcm9jZXNzIEIncyBqb2Igd291bGQgZmFpbCBhbmQgR1BVIHJlY292ZXIgDQo+Pj4g d2lsbCByZXBlYXQgaXQgYWdhaW4gKHNpbmNlIGl0IGlzIGEga2VybmVsIGpvYikNCj4+Pg0KPj4+ IFdpdGhvdXQgdGhpcyBzb2x1dGlvbiBvdGhlciBwcm9jZXNzIHdpbGwgYmUgZ3JlYXRseSBoYXJt ZWQgYnkgb25lIA0KPj4+IGJsYWNrIHNoZWVwIHRoYXQgdHJpZ2dlcmluZyBHUFUgcmVjb3Zlcg0K Pj4+DQo+Pj4gL01vbmsNCj4+Pg0KPj4+DQo+Pj4NCj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPj4+IEZyb206IENocmlzdGlhbiBLw7ZuaWcgW21haWx0bzpja29lbmlnLmxlaWNodHp1 bWVya2VuQGdtYWlsLmNvbV0NCj4+PiBTZW50OiAyMDE45bm0MuaciDI45pelIDIwOjI0DQo+Pj4g VG86IExpdSwgTW9uayA8TW9uay5MaXVAYW1kLmNvbT47IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnDQo+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCAzLzRdIGRybS9hbWRncHU6IGRvbid0IHJl dHVybiB3aGVuIHJpbmcgbm90IA0KPj4+IHJlYWR5IGZvciBmaWxsX2J1ZmZlcg0KPj4+DQo+Pj4g QW0gMjguMDIuMjAxOCB1bSAwODoyMSBzY2hyaWViIE1vbmsgTGl1Og0KPj4+PiBiZWNhdXNlIHRo aXMgdGltZSBTRE1BIG1heSB1bmRlciBHUFUgUkVTRVQgc28gaXRzIHJpbmctPnJlYWR5IG1heSAN Cj4+Pj4gbm90IHRydWUsIGtlZXAgZ29pbmcgYW5kIEdQVSBzY2hlZHVsZXIgd2lsbCByZXNjaGVk dWxlIHRoaXMgam9iIGlmIA0KPj4+PiBpdCBmYWlsZWQuDQo+Pj4+DQo+Pj4+IGdpdmUgYSB3YXJu aW5nIG9uIGNvcHlfYnVmZmVyIHdoZW4gZ28gdGhyb3VnaCBkaXJlY3Rfc3VibWl0IHdoaWxlDQo+ Pj4+IHJpbmctPnJlYWR5IGlzIGZhbHNlDQo+Pj4gTkFLLCB0aGF0IHRlc3QgaGFzIGFscmVhZHkg c2F2ZWQgdXMgcXVpdGUgYSBidW5jaCBvZiB0cm91YmxlIHdpdGggdGhlIGZiIGxheWVyLg0KPj4+ DQo+Pj4gV2h5IGV4YWN0bHkgYXJlIHlvdSBydW5uaW5nIGludG8gaXNzdWVzIHdpdGggdGhhdD8N Cj4+Pg0KPj4+IENocmlzdGlhbi4NCj4+Pg0KPj4+PiBDaGFuZ2UtSWQ6IElmZTZjZDU1ZTBlODQz ZDk5OTAwZTViZWQ1NDE4NDk5ZTg4NjMzNjg1DQo+Pj4+IFNpZ25lZC1vZmYtYnk6IE1vbmsgTGl1 IDxNb25rLkxpdUBhbWQuY29tPg0KPj4+PiAtLS0NCj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgfCA2ICstLS0tLQ0KPj4+PiAgICAgIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgNSBkZWxldGlvbnMoLSkNCj4+Pj4NCj4+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYw0KPj4+PiBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYw0KPj4+PiBpbmRleCBlMzhlNmRiLi43 Yjc1YWM5IDEwMDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdHRtLmMNCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jDQo+Pj4+IEBAIC0xNjU2LDYgKzE2NTYsNyBAQCBpbnQgYW1kZ3B1X2NvcHlfYnVmZmVyKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDY0X3Qgc3JjX29mZnNldCwNCj4+Pj4gICAgICAJ YW1kZ3B1X3JpbmdfcGFkX2liKHJpbmcsICZqb2ItPmlic1swXSk7DQo+Pj4+ICAgICAgCVdBUk5f T04oam9iLT5pYnNbMF0ubGVuZ3RoX2R3ID4gbnVtX2R3KTsNCj4+Pj4gICAgICAJaWYgKGRpcmVj dF9zdWJtaXQpIHsNCj4+Pj4gKwkJV0FSTl9PTighcmluZy0+cmVhZHkpOw0KPj4+PiAgICAgIAkJ ciA9IGFtZGdwdV9pYl9zY2hlZHVsZShyaW5nLCBqb2ItPm51bV9pYnMsIGpvYi0+aWJzLA0KPj4+ PiAgICAgIAkJCQkgICAgICAgTlVMTCwgZmVuY2UpOw0KPj4+PiAgICAgIAkJam9iLT5mZW5jZSA9 IGRtYV9mZW5jZV9nZXQoKmZlbmNlKTsgQEAgLTE2OTIsMTEgKzE2OTMsNiBAQCANCj4+Pj4gaW50 IGFtZGdwdV9maWxsX2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibywNCj4+Pj4gICAgICAJc3Ry dWN0IGFtZGdwdV9qb2IgKmpvYjsNCj4+Pj4gICAgICAJaW50IHI7DQo+Pj4+ICAgICAgDQo+Pj4+ IC0JaWYgKCFyaW5nLT5yZWFkeSkgew0KPj4+PiAtCQlEUk1fRVJST1IoIlRyeWluZyB0byBjbGVh ciBtZW1vcnkgd2l0aCByaW5nIHR1cm5lZCBvZmYuXG4iKTsNCj4+Pj4gLQkJcmV0dXJuIC1FSU5W QUw7DQo+Pj4+IC0JfQ0KPj4+PiAtDQo+Pj4+ICAgICAgCWlmIChiby0+dGJvLm1lbS5tZW1fdHlw ZSA9PSBUVE1fUExfVFQpIHsNCj4+Pj4gICAgICAJCXIgPSBhbWRncHVfdHRtX2FsbG9jX2dhcnQo JmJvLT50Ym8pOw0KPj4+PiAgICAgIAkJaWYgKHIpDQo+PiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QNCj4+IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngNCg0KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCmFtZC1nZnggbWFpbGluZyBsaXN0DQphbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZw0KaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9hbWQtZ2Z4DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1n ZngK