From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v2 07/13] drm/i915: Populate gamma_mode for all platforms Date: Thu, 7 Feb 2019 16:49:47 +0100 Message-ID: <33e1a3be-da7d-8f4f-d3dc-b461759dfbbe@linux.intel.com> References: <20190205160848.24662-1-ville.syrjala@linux.intel.com> <20190205160848.24662-8-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 97FCA6EC7E for ; Thu, 7 Feb 2019 15:49:49 +0000 (UTC) In-Reply-To: <20190205160848.24662-8-ville.syrjala@linux.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMDUtMDItMjAxOSBvbSAxNzowOCBzY2hyZWVmIFZpbGxlIFN5cmphbGE6Cj4gRnJvbTogVmls bGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPgo+IE9uIHByZS1I U1cgZ2FtbWEgbW9kZSBpcyBjb25maWd1cmVkIHZpYSBQSVBFQ09ORi4gVGhlIGJpdHMgYXJlCj4g dGhlIHNhbWUgZXhjZXB0IHNoaWZ0ZWQgdXAsIHNvIHdlIGNhbiByZXVzZSBqdXN0IHN0b3JlIHRo ZW0gaW4KPiBjcnRjX3N0YXRlLT5nYW1tYV9tb2RlIGluIHRoZSBIU1crIHdheSwgYWxsb3dpbmcg dXMgdG8gc2hhcmUKPiBzb21lIGNvZGUgbGF0ZXIuCj4KPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAxMCArKysrLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jb2xvci5jICAgfCA2MCArKysrKysrKysrKysrKysrKysrKystLS0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE0ICsrKysrKy0KPiAg MyBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKPgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IGVkZTU0ZmRjMTY3Ni4uNDExMTFhMTdlNTE5IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTU1OTAsOSArNTU5MCwxNSBAQCBlbnVt IHsKPiAgI2RlZmluZSAgIFBJUEVDT05GX1NJTkdMRV9XSURFCTAKPiAgI2RlZmluZSAgIFBJUEVD T05GX1BJUEVfVU5MT0NLRUQgMAo+ICAjZGVmaW5lICAgUElQRUNPTkZfUElQRV9MT0NLRUQJKDEg PDwgMjUpCj4gLSNkZWZpbmUgICBQSVBFQ09ORl9QQUxFVFRFCTAKPiAtI2RlZmluZSAgIFBJUEVD T05GX0dBTU1BCQkoMSA8PCAyNCkKPiAgI2RlZmluZSAgIFBJUEVDT05GX0ZPUkNFX0JPUkRFUgko MSA8PCAyNSkKPiArI2RlZmluZSAgIFBJUEVDT05GX0dBTU1BX01PREVfTUFTS19JOVhYCSgxIDw8 IDI0KSAvKiBnbWNoICovCj4gKyNkZWZpbmUgICBQSVBFQ09ORl9HQU1NQV9NT0RFX01BU0tfSUxL CSgzIDw8IDI0KSAvKiBpbGstaXZiICovCj4gKyNkZWZpbmUgICBQSVBFQ09ORl9HQU1NQV9NT0RF XzhCSVQJKDAgPDwgMjQpIC8qIGdtY2gsaWxrLWl2YiAqLwo+ICsjZGVmaW5lICAgUElQRUNPTkZf R0FNTUFfTU9ERV8xMEJJVAkoMSA8PCAyNCkgLyogZ21jaCxpbGstaXZiICovCj4gKyNkZWZpbmUg ICBQSVBFQ09ORl9HQU1NQV9NT0RFXzEyQklUCSgyIDw8IDI0KSAvKiBpbGstaXZiICovCj4gKyNk ZWZpbmUgICBQSVBFQ09ORl9HQU1NQV9NT0RFX1NQTElUCSgzIDw8IDI0KSAvKiBpdmIgKi8KPiAr I2RlZmluZSAgIFBJUEVDT05GX0dBTU1BX01PREUoeCkJKCh4KTw8MjQpIC8qIHBhc3MgaW4gR0FN TUFfTU9ERV9NT0RFXyogKi8KPiArI2RlZmluZSAgIFBJUEVDT05GX0dBTU1BX01PREVfU0hJRlQJ MjQKPiAgI2RlZmluZSAgIFBJUEVDT05GX0lOVEVSTEFDRV9NQVNLCSg3IDw8IDIxKQo+ICAjZGVm aW5lICAgUElQRUNPTkZfSU5URVJMQUNFX01BU0tfSFNXCSgzIDw8IDIxKQo+ICAvKiBOb3RlIHRo YXQgcHJlLWdlbjMgZG9lcyBub3Qgc3VwcG9ydCBpbnRlcmxhY2VkIGRpc3BsYXkgZGlyZWN0bHku IFBhbmVsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gaW5kZXggMmEzNzFlZWQ4MDYx Li5lN2RkMDc0OTBjNjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29sb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiBAQCAt MzUxLDYgKzM1MSwzMiBAQCBzdGF0aWMgdm9pZCBpOXh4X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCWk5eHhfbG9hZF9sdXRzX2ludGVybmFs KGNydGNfc3RhdGUsIGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0KTsKPiAgfQo+ICAKPiArc3Rh dGljIHZvaWQgaTl4eF9jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gKwllbnVtIHBpcGUgcGlwZSA9 IGNydGMtPnBpcGU7Cj4gKwl1MzIgdmFsOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChQSVBFQ09O RihwaXBlKSk7Cj4gKwl2YWwgJj0gflBJUEVDT05GX0dBTU1BX01PREVfTUFTS19JOVhYOwo+ICsJ dmFsIHw9IFBJUEVDT05GX0dBTU1BX01PREUoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4gKwlJ OTE1X1dSSVRFKFBJUEVDT05GKHBpcGUpLCB2YWwpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBp bGtfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBl Owo+ICsJdTMyIHZhbDsKPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQoUElQRUNPTkYocGlwZSkpOwo+ ICsJdmFsICY9IH5QSVBFQ09ORl9HQU1NQV9NT0RFX01BU0tfSUxLOwo+ICsJdmFsIHw9IFBJUEVD T05GX0dBTU1BX01PREUoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4gKwlJOTE1X1dSSVRFKFBJ UEVDT05GKHBpcGUpLCB2YWwpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBoc3dfY29sb3JfY29t bWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKPiBAQCAtNTg1LDggKzYxMSw3IEBAIHZvaWQgaW50ZWxfY29sb3JfY29tbWl0KGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ ZGV2KTsKPiAgCj4gLQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0KQo+IC0JCWRl dl9wcml2LT5kaXNwbGF5LmNvbG9yX2NvbW1pdChjcnRjX3N0YXRlKTsKPiArCWRldl9wcml2LT5k aXNwbGF5LmNvbG9yX2NvbW1pdChjcnRjX3N0YXRlKTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBj aGVja19sdXRfc2l6ZShjb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmx1dCwgaW50IGV4 cGVjdGVkKQo+IEBAIC02NDksMjAgKzY3NCwyNSBAQCB2b2lkIGludGVsX2NvbG9yX2luaXQoc3Ry dWN0IGludGVsX2NydGMgKmNydGMpCj4gIAo+ICAJZHJtX21vZGVfY3J0Y19zZXRfZ2FtbWFfc2l6 ZSgmY3J0Yy0+YmFzZSwgMjU2KTsKPiAgCj4gLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikp IHsKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBjaGVycnl2aWV3X2xvYWRfbHV0 czsKPiAtCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKPiAtCQlkZXZfcHJpdi0+ ZGlzcGxheS5sb2FkX2x1dHMgPSBpOXh4X2xvYWRfbHV0czsKPiAtCQlkZXZfcHJpdi0+ZGlzcGxh eS5jb2xvcl9jb21taXQgPSBoc3dfY29sb3JfY29tbWl0Owo+IC0JfSBlbHNlIGlmIChJU19CUk9B RFdFTEwoZGV2X3ByaXYpIHx8IElTX0dFTjlfQkMoZGV2X3ByaXYpIHx8Cj4gLQkJICAgSVNfQlJP WFRPTihkZXZfcHJpdikpIHsKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBicm9h ZHdlbGxfbG9hZF9sdXRzOwo+IC0JCWRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2NvbW1pdCA9IGhz d19jb2xvcl9jb21taXQ7Cj4gLQl9IGVsc2UgaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8 IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7Cj4gLQkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9s dXRzID0gZ2xrX2xvYWRfbHV0czsKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jb21taXQg PSBoc3dfY29sb3JfY29tbWl0Owo+ICsJaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKSB7 Cj4gKwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxh eS5sb2FkX2x1dHMgPSBjaGVycnl2aWV3X2xvYWRfbHV0czsKPiArCQllbHNlCj4gKwkJCWRldl9w cml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGk5eHhfbG9hZF9sdXRzOwo+ICsKPiArCQlkZXZfcHJp di0+ZGlzcGxheS5jb2xvcl9jb21taXQgPSBpOXh4X2NvbG9yX2NvbW1pdDsKPiAgCX0gZWxzZSB7 Cj4gLQkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gaTl4eF9sb2FkX2x1dHM7Cj4gKwkJ aWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpIHx8IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBnbGtfbG9hZF9sdXRzOwo+ICsJCWVs c2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYp KQo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBicm9hZHdlbGxfbG9hZF9sdXRz Owo+ICsJCWVsc2UKPiArCQkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gaTl4eF9sb2Fk X2x1dHM7Cj4gKwo+ICsJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDggfHwgSVNfSEFTV0VM TChkZXZfcHJpdikpCj4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2NvbW1pdCA9IGhzd19j b2xvcl9jb21taXQ7Cj4gKwkJZWxzZQo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jb21t aXQgPSBpbGtfY29sb3JfY29tbWl0Owo+ICAJfQo+ICAKPiAgCS8qIEVuYWJsZSBjb2xvciBtYW5h Z2VtZW50IHN1cHBvcnQgd2hlbiB3ZSBoYXZlIGRlZ2FtbWEgJiBnYW1tYSBMVVRzLiAqLwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBhZDVkMzlkODFkNmUuLjhlOTM0 NTlmMzEyZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMzQ1 MCw3ICszNDUwLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBpbnRl bF9wbGFuZSAqcGxhbmUsCj4gIAkgKgo+ICAJICogT24gcHJlLWc0eCB0aGVyZSBpcyBubyB3YXkg dG8gZ2FtbWEgY29ycmVjdCB0aGUKPiAgCSAqIHBpcGUgYm90dG9tIGNvbG9yIGJ1dCB3ZSdsbCBr ZWVwIG9uIGRvaW5nIHRoaXMKPiAtCSAqIGFueXdheS4KPiArCSAqIGFueXdheSBzbyB0aGF0IHRo ZSBjcnRjIHN0YXRlIHJlYWRvdXQgd29ya3MgY29ycmVjdGx5Lgo+ICAJICovCj4gIAlkc3BjbnRy ID0gaTl4eF9wbGFuZV9jdGxfY3J0YyhjcnRjX3N0YXRlKTsKPiAgCj4gQEAgLTc2NzQsNiArNzY3 NCw4IEBAIHN0YXRpYyB2b2lkIGk5eHhfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJICAgICBjcnRjX3N0YXRlLT5saW1pdGVkX2NvbG9y X3JhbmdlKQo+ICAJCXBpcGVjb25mIHw9IFBJUEVDT05GX0NPTE9SX1JBTkdFX1NFTEVDVDsKPiAg Cj4gKwlwaXBlY29uZiB8PSBQSVBFQ09ORl9HQU1NQV9NT0RFKGNydGNfc3RhdGUtPmdhbW1hX21v ZGUpOwo+ICsKPiAgCUk5MTVfV1JJVEUoUElQRUNPTkYoY3J0Yy0+cGlwZSksIHBpcGVjb25mKTsK PiAgCVBPU1RJTkdfUkVBRChQSVBFQ09ORihjcnRjLT5waXBlKSk7Cj4gIH0KPiBAQCAtODEyNiw2 ICs4MTI4LDkgQEAgc3RhdGljIGJvb2wgaTl4eF9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVs X2NydGMgKmNydGMsCj4gIAkgICAgKHRtcCAmIFBJUEVDT05GX0NPTE9SX1JBTkdFX1NFTEVDVCkp Cj4gIAkJcGlwZV9jb25maWctPmxpbWl0ZWRfY29sb3JfcmFuZ2UgPSB0cnVlOwo+ICAKPiArCXBp cGVfY29uZmlnLT5nYW1tYV9tb2RlID0gKHRtcCAmIFBJUEVDT05GX0dBTU1BX01PREVfTUFTS19J OVhYKSA+Pgo+ICsJCVBJUEVDT05GX0dBTU1BX01PREVfU0hJRlQ7Cj4gKwo+ICAJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPCA0KQo+ICAJCXBpcGVfY29uZmlnLT5kb3VibGVfd2lkZSA9IHRtcCAm IFBJUEVDT05GX0RPVUJMRV9XSURFOwo+ICAKPiBAQCAtODY2NSw2ICs4NjcwLDggQEAgc3RhdGlj IHZvaWQgaXJvbmxha2Vfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQo+ICAJaWYgKGNydGNfc3RhdGUtPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCj4g IAkJdmFsIHw9IFBJUEVDT05GX0NPTE9SX1JBTkdFX1NFTEVDVDsKPiAgCj4gKwl2YWwgfD0gUElQ RUNPTkZfR0FNTUFfTU9ERShjcnRjX3N0YXRlLT5nYW1tYV9tb2RlKTsKPiArCj4gIAlJOTE1X1dS SVRFKFBJUEVDT05GKHBpcGUpLCB2YWwpOwo+ICAJUE9TVElOR19SRUFEKFBJUEVDT05GKHBpcGUp KTsKPiAgfQo+IEBAIC05MTk5LDYgKzkyMDYsOSBAQCBzdGF0aWMgYm9vbCBpcm9ubGFrZV9nZXRf cGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAlpZiAodG1wICYgUElQRUNP TkZfQ09MT1JfUkFOR0VfU0VMRUNUKQo+ICAJCXBpcGVfY29uZmlnLT5saW1pdGVkX2NvbG9yX3Jh bmdlID0gdHJ1ZTsKPiAgCj4gKwlwaXBlX2NvbmZpZy0+Z2FtbWFfbW9kZSA9ICh0bXAgJiBQSVBF Q09ORl9HQU1NQV9NT0RFX01BU0tfSUxLKSA+Pgo+ICsJCVBJUEVDT05GX0dBTU1BX01PREVfU0hJ RlQ7Cj4gKwo+ICAJaWYgKEk5MTVfUkVBRChQQ0hfVFJBTlNDT05GKGNydGMtPnBpcGUpKSAmIFRS QU5TX0VOQUJMRSkgewo+ICAJCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ICAJCWVu dW0gaW50ZWxfZHBsbF9pZCBwbGxfaWQ7Cj4gQEAgLTEyMDY5LDYgKzEyMDc5LDggQEAgaW50ZWxf cGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IAo+ICAJUElQRV9DT05GX0NIRUNLX0JPT0woZG91YmxlX3dpZGUpOwo+ICAKPiArCVBJUEVfQ09O Rl9DSEVDS19YKGdhbW1hX21vZGUpOwoKSG1tLi4uwqAgV2Ugc2hvdWxkIG9ubHkgY2hlY2sgdGhp cyBpZiBhZGp1c3QgaXMgdW5zZXQsIG9yIHdlIHdpbGwgc3RhcnQgc2tpcHBpbmcgZmFzdHNldCBv biBhIGxvdCBvZiBwbGF0Zm9ybXMuCgpXaXRoIHRoYXQgZml4ZWQ6CgpSZXZpZXdlZC1ieTogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KCn5NYWFy dGVuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK