From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: Fwd: [PATCH] drm/i915: Avoid vblank counter for gen9+ Date: Thu, 18 Feb 2016 19:55:38 +0200 Message-ID: <1455818138.7638.29.camel@intel.com> References: <1455210047-1574-1-git-send-email-rodrigo.vivi@intel.com> <20160216155013.GO32705@phenom.ffwll.local> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id A012A6E39A for ; Thu, 18 Feb 2016 17:55:41 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi , patrik.jakobsson@intel.com, intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTYtMDItMTggYXQgMDg6NTYgLTA4MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPiBJ bXJlLCBQYXRyaWssIGRvIHlvdSBrbm93IGlmIEknbSBtaXNzaW5nIHNvbWV0aGluZyBvciB3aGF0 IEknbSBkb2luZwo+IHdyb25nIHdpdGggdGhpcyBwb3dlciBkb21haW4gaGFuZGxlciBmb3IgdmJs YW5rcyB0byBhdm9pZCBEQyBzdGF0ZXMKPiB3aGVuIHdlIG5lZWQgYSByZWxpYWJsZSBmcmFtZSBj b3VudGVyIGluIHBsYWNlLgoKVGhlIFdBUk4gaXMgZHVlIHRvIHRoZSBzcGluX2xvY2soKSBpbsKg ZHJtX3ZibGFua19lbmFibGUoKSwgeW91IGNhbid0CmNhbGwgcG93ZXIgZG9tYWluIGZ1bmN0aW9u cyBpbiBhdG9taWMgY29udGV4dCwgZHVlIHRvIHRoZSBtdXRleCB0aGUKcG93ZXIgZG9tYWluIGFu ZCBydW50aW1lIFBNIGZ3IHVzZXMuCgotLUltcmUKCj4gCj4gRG8geW91IGhhdmUgYmV0dGVyIGlk ZWFzPwo+IAo+IFRoYW5rcywKPiBSb2RyaWdvLgo+IAo+IC0tLS0tLS0tLS0gRm9yd2FyZGVkIG1l c3NhZ2UgLS0tLS0tLS0tLQo+IEZyb206IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGdtYWls LmNvbT4KPiBEYXRlOiBXZWQsIEZlYiAxNywgMjAxNiBhdCAzOjE0IFBNCj4gU3ViamVjdDogUmU6 IFtJbnRlbC1nZnhdIFtQQVRDSF0gZHJtL2k5MTU6IEF2b2lkIHZibGFuayBjb3VudGVyIGZvcgo+ IGdlbjkrCj4gVG86IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4sIFBhdHJpayBKYWtv YnNzb24KPiA8cGF0cmlrLmpha29ic3NvbkBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFJvZHJpZ28g Vml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4sIGludGVsLWdmeAo+IDxpbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnPgo+IAo+IAo+IE9uIFR1ZSwgRmViIDE2LCAyMDE2IGF0IDc6NTAg QU0sIERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPiB3cm90ZToKPiA+IE9uIFRodSwg RmViIDExLCAyMDE2IGF0IDA5OjAwOjQ3QU0gLTA4MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPiA+ ID4gRnJhbWVjb3VudGVyIHJlZ2lzdGVyIGlzIHJlYWQtb25seSBzbyBETUMgY2Fubm90IHJlc3Rv cmUgaXQKPiA+ID4gYWZ0ZXIgZXhpdGluZyBEQzUgYW5kIERDNi4KPiA+ID4gCj4gPiA+IEVhc2ll c3Qgd2F5IHRvIGdvIGlzIHRvIGF2b2lkIHRoZSBjb3VudGVyIGFuZCB1c2UgdmJsYW5rCj4gPiA+ IGludGVycnVwdGlvbnMgZm9yIHRoaXMgcGxhdGZvcm0gYW5kIGZvciBhbGwgdGhlIGZvbGxvd2lu Zwo+ID4gPiBvbmVzIHNpbmNlIERNQyBjYW1lIHRvIHN0YXkuIEF0IGxlYXN0IHdoaWxlIHdlIGNh bid0IGNoYW5nZQo+ID4gPiB0aGlzIHJlZ2lzdGVyIHRvIHJlYWQtd3JpdGUuCj4gPiA+IAo+ID4g PiBTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4g PiAKPiA+IE5vdyBteSBjb21tZW50cyBhbHNvIGluIHB1YmxpYzoKPiA+IC0gRG8gd2Ugc3RpbGwg Z2V0IHJlYXNvbmFibGUgZGM1IHJlc2lkZW5jeSB3aXRoIHRoaXMgLSBpdCBtZWFucwo+ID4gd2Un bGwga2VlcAo+ID4gwqAgdmJsYW5rIGlycSBydW5uaW5nIGZvcmV2ZXIuCj4gPiAKPiA+IC0gSSdt IGEgYml0IHVuY2xlYXIgb24gd2hhdCBleGFjdGx5IHRoaXMgZml4ZXMgLSBoYXZlIHlvdSB0ZXN0 ZWQKPiA+IHRoYXQKPiA+IMKgIGxvbmctbGFzdGluZyB2Ymxhbmsgd2FpdHMgYXJlIHN0aWxsIGFj Y3VyYXRlPyBKdXN0IHdhbnQgdG8gbWFrZQo+ID4gc3VyZSB3ZQo+ID4gwqAgZG9uJ3QganVzdCBw YXBlciBvdmVyIHRoZSBpc3N1ZSBhbmQgZGVza3RvcHMgY2FuIHN0aWxsIGdldCBzdHVjawo+ID4g d2FpdGluZwo+ID4gwqAgZm9yIGEgdmJsYW5rLgo+IAo+IGFwcGFyZW50bHkgbm8uLi4gc28gcGxl YXNlIGp1c3QgaWdub3JlIHRoaXMgcGF0Y2ggZm9yIG5vdy4uLiBhZnRlciBhCj4gd2hpbGUgd2l0 aCB0aGF0IHBhdGNoIEkgd2FzIHNlZWluZyB0aGUgaXNzdWUgYWdhaW4uLi4KPiAKPiA+IAo+ID4g SnVzdCBhIGJpdCBzdXByaXNlZCB0aGF0IHRoZSBvbmx5IHByb2JsZW0gaXMgdGhlIGZyYW1lY291 bnRlciwgYW5kCj4gPiBub3QKPiA+IHRoYXQgdmJsYW5rcyBzdG9wIGhhcHBlbmluZyB0b28uCj4g PiAKPiA+IFdlIG5lZWQgdG8gYWxzbyBrbm93IHRoZXNlIGRldGFpbHMgZm9yIHRoZSBwcm9wZXIg Zml4LCB3aGljaCB3aWxsCj4gPiBpbnZvbHZlCj4gPiBncmFiYmluZyBwb3dlciB3ZWxsIHJlZmVy ZW5jZXMgKG1pZ2h0IG5lZWQgYSBuZXcgb25lIGZvciB2YmxhbmsKPiA+IGludGVycnVwdHMpIHRv IG1ha2Ugc3VyZS4KPiAKPiBZZWFwLCBJIGxpa2VkIHRoaXMgaWRlYS4uLiBzbyBjb21iaW5pbmcg YSBwb3dlciBkb21haW4gcmVmZXJlbmNlIHdpdGgKPiBhIHZibGFuayBjb3VudCByZXN0b3JlIG9u Y2Ugd2Uga25vdyB0aGUgZGMgb2ZmIGlzIGJsb2NrZWQgd2UgY291bGQKPiB3b3JrYXJvdW5kIHRo aXMgY2FzZS4uLiBzb21ldGhpbmcgbGlrZToKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ IGluZGV4IDI1YTg5MzcuLjJiMTg3NzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBA QCAtMjc0Myw3ICsyNzQzLDEwIEBAIHN0YXRpYyBpbnQgZ2VuOF9lbmFibGVfdmJsYW5rKHN0cnVj dAo+IGRybV9kZXZpY2UKPiAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiDCoMKgwqDCoMKgwqDC oMKgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiDCoMKgwqDCoMKgwqDCoMKgdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiAKPiArwqDCoMKgwqDC oMKgwqBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX1ZCTEFO Syk7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqBzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmly cV9sb2NrLCBpcnFmbGFncyk7Cj4gK8KgwqDCoMKgwqDCoMKgZGV2LT52YmxhbmtbcGlwZV0ubGFz dCA9IGc0eF9nZXRfdmJsYW5rX2NvdW50ZXIoZGV2LCBwaXBlKTsKPiDCoMKgwqDCoMKgwqDCoMKg YmR3X2VuYWJsZV9waXBlX2lycShkZXZfcHJpdiwgcGlwZSwgR0VOOF9QSVBFX1ZCTEFOSyk7Cj4g wqDCoMKgwqDCoMKgwqDCoHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9j aywgaXJxZmxhZ3MpOwo+IAo+IEBAIC0yNzk2LDYgKzI3OTksOCBAQCBzdGF0aWMgdm9pZCBnZW44 X2Rpc2FibGVfdmJsYW5rKHN0cnVjdAo+IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBp cGUpCj4gwqDCoMKgwqDCoMKgwqDCoHNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xv Y2ssIGlycWZsYWdzKTsKPiDCoMKgwqDCoMKgwqDCoMKgYmR3X2Rpc2FibGVfcGlwZV9pcnEoZGV2 X3ByaXYsIHBpcGUsIEdFTjhfUElQRV9WQkxBTkspOwo+IMKgwqDCoMKgwqDCoMKgwqBzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKPiArCj4gK8Kg wqDCoMKgwqDCoMKgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJ Tl9WQkxBTkspOwo+IMKgfQo+IAo+IHdoZXJlIFBPV0VSX0RPTUFJTl9WQkxBTksgaXMgcGFydCBv ZjoKPiAjZGVmaW5lIFNLTF9ESVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5TICjCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgXAo+IMKgwqDCoMKgwqDCoMKgwqBCSVQoUE9XRVJfRE9NQUlOX1ZC TEFOSykgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXAo+IAo+ IAo+IEhvd2V2ZXIgSSBoYXZlIG15IGRtZXNnIGZsb29kZWQgYnk6Cj4gCj4gCj4gW8KgwqDCoDY5 LjAyNTU2Ml0gQlVHOiBzbGVlcGluZyBmdW5jdGlvbiBjYWxsZWQgZnJvbSBpbnZhbGlkIGNvbnRl eHQgYXQKPiBkcml2ZXJzL2Jhc2UvcG93ZXIvcnVudGltZS5jOjk1NQo+IFvCoMKgwqA2OS4wMjU1 NzZdIGluX2F0b21pYygpOiAxLCBpcnFzX2Rpc2FibGVkKCk6IDEsIHBpZDogOTk1LCBuYW1lOgo+ IFhvcmcKPiBbwqDCoMKgNjkuMDI1NTgyXSBQcmVlbXB0aW9uIGRpc2FibGVkIGF0Ols8ZmZmZmZm ZmY4MTVhMWZlZT5dCj4gZHJtX3ZibGFua19nZXQrMHg0ZS8weGQwCj4gCj4gW8KgwqDCoDY5LjAy NTYxOV0gQ1BVOiAzIFBJRDogOTk1IENvbW06IFhvcmcgVGFpbnRlZDogR8KgwqDCoMKgwqBVwqDC oFcKPiA0LjUuMC1yYzQrICMxMQo+IFvCoMKgwqA2OS4wMjU2MjhdIEhhcmR3YXJlIG5hbWU6IElu dGVsIENvcnBvcmF0aW9uIEthYnlsYWtlIENsaWVudAo+IHBsYXRmb3JtL1NreWxha2UgVSBERFIz TCBSVlA3LCBCSU9TIEtCTFNFMlIxLlIwMC5YMDE5LkIwMS4xNTEyMjMwNzQzCj4gMTIvMjMvMjAx NQo+IFvCoMKgwqA2OS4wMjU2MzddwqDCoDAwMDAwMDAwMDAwMDAwMDAgZmZmZjg4MDAzZjBiZmJi MCBmZmZmZmZmZjgxNDhlOTgzCj4gMDAwMDAwMDAwMDAwMDAwMAo+IFvCoMKgwqA2OS4wMjU2NTNd wqDCoGZmZmY4ODAwODViMDQyMDAgZmZmZjg4MDAzZjBiZmJkMCBmZmZmZmZmZjgxMTMzZWNlCj4g ZmZmZmZmZmY4MWQ3N2YyMwo+IFvCoMKgwqA2OS4wMjU2NjddwqDCoDAwMDAwMDAwMDAwMDAzYmIg ZmZmZjg4MDAzZjBiZmJmOCBmZmZmZmZmZjgxMTMzZjg5Cj4gZmZmZjg4MDE2OTEzYTA5OAo+IFvC oMKgwqA2OS4wMjU2ODBdIENhbGwgVHJhY2U6Cj4gW8KgwqDCoDY5LjAyNTY5N13CoMKgWzxmZmZm ZmZmZjgxNDhlOTgzPl0gZHVtcF9zdGFjaysweDY1LzB4OTIKPiBbwqDCoMKgNjkuMDI1NzExXcKg wqBbPGZmZmZmZmZmODExMzNlY2U+XSBfX19taWdodF9zbGVlcCsweDEwZS8weDE4MAo+IFvCoMKg wqA2OS4wMjU3MjJdwqDCoFs8ZmZmZmZmZmY4MTEzM2Y4OT5dIF9fbWlnaHRfc2xlZXArMHg0OS8w eDgwCj4gW8KgwqDCoDY5LjAyNTczOV3CoMKgWzxmZmZmZmZmZjgxNWQyMWQ5Pl0gX19wbV9ydW50 aW1lX3Jlc3VtZSsweDc5LzB4ODAKPiBbwqDCoMKgNjkuMDI1ODQxXcKgwqBbPGZmZmZmZmZmYTAw NWViYzg+XSBpbnRlbF9ydW50aW1lX3BtX2dldCsweDI4LzB4OTAKPiBbaTkxNV0KPiBbwqDCoMKg NjkuMDI1OTI0XcKgwqBbPGZmZmZmZmZmYTAwNWVjNDk+XQo+IGludGVsX2Rpc3BsYXlfcG93ZXJf Z2V0KzB4MTkvMHg1MCBbaTkxNV0KPiBbwqDCoMKgNjkuMDI1OTk1XcKgwqBbPGZmZmZmZmZmYTAw NGFlYTQ+XSBnZW44X2VuYWJsZV92YmxhbmsrMHgzNC8weGMwCj4gW2k5MTVdCj4gW8KgwqDCoDY5 LjAyNjAxNl3CoMKgWzxmZmZmZmZmZjgxNWExZjQ2Pl0gZHJtX3ZibGFua19lbmFibGUrMHg3Ni8w eGQwCj4gCj4gCj4gCj4gCj4gQW5vdGhlciB0aGluZyB0aGF0IEkgc2VhcmNoIGluIHRoZSBzcGVj IHdhcyBmb3IgYW4gSW50ZXJydXB0IHRvIGtub3cKPiB3aGVuIHdlIGNhbWUgYmFjayBmcm9tIERD NSBvciBEQzYgb3IgZ290IHBvd2VyIHdlbGwgcmUtZW5hYmxlZCwgc28gd2UKPiB3b3VsZCBiZSBh YmxlIHRvIHJlc3RvcmUgdGhlIGRybSBsYXN0IGNvdW50ZXIuLi4gYnV0IEkgY291bGRuJ3QgZmlu ZAo+IGFueS4uLgo+IAo+IAo+IEFueSBvdGhlciBpZGVhPwo+IAo+IAo+ID4gCj4gPiBDaGVlcnMs IERhbmllbAo+ID4gCj4gPiA+IC0tLQo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMgfCA3ICsrKysrLS0KPiA+ID4gwqAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j Cj4gPiA+IGluZGV4IDI1YTg5MzcuLmMyOTRhNGIgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYwo+ID4gPiBAQCAtNDU1Niw3ICs0NTU2LDEwIEBAIHZvaWQgaW50ZWxfaXJxX2lu aXQoc3RydWN0Cj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gPiAKPiA+ID4g wqDCoMKgwqDCoMKgcG1fcW9zX2FkZF9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1fcW9zLAo+ID4gPiBQ TV9RT1NfQ1BVX0RNQV9MQVRFTkNZLCBQTV9RT1NfREVGQVVMVF9WQUxVRSk7Cj4gPiA+IAo+ID4g PiAtwqDCoMKgwqDCoGlmIChJU19HRU4yKGRldl9wcml2KSkgewo+ID4gPiArwqDCoMKgwqDCoGlm IChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDkpIHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZGV2LT5tYXhfdmJsYW5rX2NvdW50ID0gMDsKPiA+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRlciA9Cj4gPiA+IGc0 eF9nZXRfdmJsYW5rX2NvdW50ZXI7Cj4gPiA+ICvCoMKgwqDCoMKgfSBlbHNlIGlmIChJU19HRU4y KGRldl9wcml2KSkgewo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2LT5tYXhf dmJsYW5rX2NvdW50ID0gMDsKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRldi0+ ZHJpdmVyLT5nZXRfdmJsYW5rX2NvdW50ZXIgPQo+ID4gPiBpOHh4X2dldF92YmxhbmtfY291bnRl cjsKPiA+ID4gwqDCoMKgwqDCoMKgfSBlbHNlIGlmIChJU19HNFgoZGV2X3ByaXYpIHx8IElOVEVM X0lORk8oZGV2X3ByaXYpLT5nZW4gPj0KPiA+ID4gNSkgewo+ID4gPiBAQCAtNDU3Miw3ICs0NTc1 LDcgQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiAq ZGV2X3ByaXYpCj4gPiA+IMKgwqDCoMKgwqDCoMKgKiBHZW4yIGRvZXNuJ3QgaGF2ZSBhIGhhcmR3 YXJlIGZyYW1lIGNvdW50ZXIgYW5kIHNvCj4gPiA+IGRlcGVuZHMgb24KPiA+ID4gwqDCoMKgwqDC oMKgwqAqIHZibGFuayBpbnRlcnJ1cHRzIHRvIHByb2R1Y2Ugc2FuZSB2Ymxhbmsgc2V1cXVlbmNl Cj4gPiA+IG51bWJlcnMuCj4gPiA+IMKgwqDCoMKgwqDCoMKgKi8KPiA+ID4gLcKgwqDCoMKgwqBp ZiAoIUlTX0dFTjIoZGV2X3ByaXYpKQo+ID4gPiArwqDCoMKgwqDCoGlmICghSVNfR0VOMihkZXZf cHJpdikgJiYgIUlOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gOSkKPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGRldi0+dmJsYW5rX2Rpc2FibGVfaW1tZWRpYXRlID0gdHJ1ZTsK PiA+ID4gCj4gPiA+IMKgwqDCoMKgwqDCoGRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX3RpbWVzdGFt cCA9Cj4gPiA+IGk5MTVfZ2V0X3ZibGFua190aW1lc3RhbXA7Cj4gPiA+IC0tCj4gPiA+IDIuNC4z Cj4gPiA+IAo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+IEludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngKPiA+IAo+ID4gLS0KPiA+IERhbmllbCBWZXR0ZXIKPiA+IFNv ZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDovL2Jsb2cuZmZ3bGwu Y2gKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo+IAo+IAo+IAo+IC0tCj4gUm9kcmlnbyBWaXZpCj4gQmxvZzogaHR0cDovL2Jsb2cu dml2aS5lbmcuYnIKPiAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==