From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4 3/5] drm/i915/gen11: Convert combo PHY logic to use new 'enum phy' namespace Date: Thu, 4 Jul 2019 12:39:30 +0300 Message-ID: <20190704093930.GH5942@intel.com> References: <20190703233736.5816-1-matthew.d.roper@intel.com> <20190703233736.5816-4-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0DFAF897B5 for ; Thu, 4 Jul 2019 09:39:34 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190703233736.5816-4-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdWwgMDMsIDIwMTkgYXQgMDQ6Mzc6MzRQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBDb252ZXJ0IHRoZSBjb2RlIHRoYXQgb3BlcmF0ZXMgZGlyZWN0bHkgb24gZ2VuMTEgY29t Ym8gUEhZJ3MgdG8gdXNlIHRoZQo+IG5ldyBuYW1lc3BhY2UuICBDb21ibyBQSFkgcmVnaXN0ZXJz IGFyZSB0aG9zZSBuYW1lZCAiSUNMX1BPUlRfKiIgcGx1cwo+IElDTF9EUEhZX0NIS04uCj4gCj4g Tm90ZSB0aGF0IGEgbG90IG9mIHRoZSBQSFkgcHJvZ3JhbW1pbmcgaGFwcGVucyBpbiB0aGUgTUlQ SSBEU0kgY29kZS4KPiBGb3IgY2xhcml0eSBJJ3ZlIGFkZGVkIGEgZm9yX2VhY2hfZHNpX3BoeSgp IHRvIGxvb3Agb3ZlciB0aGUgcGh5cyB1c2VkCj4gYnkgRFNJLiAgU2luY2UgRFNJIGFsd2F5cyB1 c2VzIEEgJiBCIG9uIGdlbjExLCBwb3J0PXBoeSBpbiBhbGwgY2FzZXMgc28KPiBpdCBkb2Vzbid0 IGFjdHVhbGx5IG1hdHRlciB3aGljaCBmb3JtIHdlIHVzZSBpbiB0aGUgRFNJIGNvZGUuICBJJ3Zl IHVzZWQKPiB0aGUgcGh5IGl0ZXJhdG9yIGluIGNvZGUgdGhhdCdzIGV4cGxpY2l0bHkgd29ya2lu ZyB3aXRoIHRoZSBjb21ibyBQSFksCj4gYnV0IGxlZnQgdGhlIHJlc3Qgb2YgdGhlIERTSSBjb2Rl IHVzaW5nIHRoZSBwb3J0IGl0ZXJhdG9yIGFuZCBuYW1lc3BhY2UKPiB0byBtaW5pbWl6ZSBwYXRj aCBkZWx0YXMuICBXZSBjYW4gc3dpdGNoIHRoZSByZXN0IG9mIHRoZSBEU0kgY29kZSBvdmVyCj4g dG8gdXNlIHBoeSB0ZXJtaW5vbG9neSBsYXRlciBpZiB0aGlzIHdpbmRzIHVwIGJlaW5nIHRvbyBj b25mdXNpbmcuCj4gCj4gQ2M6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRl bC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jICAg ICAgICB8IDEyNyArKysrKysrKy0tLS0tLS0tCj4gIC4uLi9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9jb21ib19waHkuYyAgICB8IDE0MyArKysrKysrKystLS0tLS0tLS0KPiAgLi4uL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbWJvX3BoeS5oICAgIHwgICAzICstCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgICB8ICA0NSArKystLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmggIHwgICA0ICsKPiAgLi4u L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jICAgIHwgIDE2ICstCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpLmggICAgICB8ICAxMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICAgfCAgNzQgKysrKy0t LS0tCj4gIDggZmlsZXMgY2hhbmdlZCwgMjEzIGluc2VydGlvbnMoKyksIDIxMSBkZWxldGlvbnMo LSkKPiAKPHNuaXA+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5LmgKPiBpbmRleCBkNTMyODVmYjg4M2YuLjhhNGE1N2VmODJhMiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCj4gQEAgLTI2OCw2ICsyNjgs MTAgQEAgZW51bSBwaHkgewo+ICAJZm9yICgoX19wb3J0KSA9IFBPUlRfQTsgKF9fcG9ydCkgPCBJ OTE1X01BWF9QT1JUUzsgKF9fcG9ydCkrKykJXAo+ICAJCWZvcl9lYWNoX2lmKChfX3BvcnRzX21h c2spICYgQklUKF9fcG9ydCkpCj4gIAo+ICsjZGVmaW5lIGZvcl9lYWNoX3BoeV9tYXNrZWQoX19w aHksIF9fcGh5c19tYXNrKSBcCj4gKwlmb3IgKChfX3BoeSkgPSBQSFlfQTsgKF9fcGh5KSA8IEk5 MTVfTUFYX1BIWVM7IChfX3BoeSkrKykJXAo+ICsJCWZvcl9lYWNoX2lmKChfX3BoeXNfbWFzaykg JiBCSVQoX19waHkpKQo+ICsKPiAgI2RlZmluZSBmb3JfZWFjaF9jcnRjKGRldiwgY3J0YykgXAo+ ICAJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmKGRldiktPm1vZGVfY29uZmlnLmNydGNfbGlz dCwgaGVhZCkKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV9wb3dlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5X3Bvd2VyLmMKPiBpbmRleCBjMTliOTU4NDYxY2EuLjY0NjI3YzExN2MzMSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93 ZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9w b3dlci5jCj4gQEAgLTM5NSw3ICszOTUsNyBAQCBzdGF0aWMgdm9pZCBoc3dfcG93ZXJfd2VsbF9k aXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWhzd193YWl0X2Zv cl9wb3dlcl93ZWxsX2Rpc2FibGUoZGV2X3ByaXYsIHBvd2VyX3dlbGwpOwo+ICB9Cj4gIAo+IC0j ZGVmaW5lIElDTF9BVVhfUFdfVE9fUE9SVChwd19pZHgpCSgocHdfaWR4KSAtIElDTF9QV19DVExf SURYX0FVWF9BKQo+ICsjZGVmaW5lIElDTF9BVVhfUFdfVE9fUEhZKHB3X2lkeCkJKChwd19pZHgp IC0gSUNMX1BXX0NUTF9JRFhfQVVYX0EpCj4gIAo+ICBzdGF0aWMgdm9pZAo+ICBpY2xfY29tYm9f cGh5X2F1eF9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gQEAgLTQwMywyMSArNDAzLDIxIEBAIGljbF9jb21ib19waHlfYXV4X3Bvd2VyX3dlbGxf ZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgewo+ICAJY29uc3Qg c3RydWN0IGk5MTVfcG93ZXJfd2VsbF9yZWdzICpyZWdzID0gcG93ZXJfd2VsbC0+ZGVzYy0+aHN3 LnJlZ3M7Cj4gIAlpbnQgcHdfaWR4ID0gcG93ZXJfd2VsbC0+ZGVzYy0+aHN3LmlkeDsKPiAtCWVu dW0gcG9ydCBwb3J0ID0gSUNMX0FVWF9QV19UT19QT1JUKHB3X2lkeCk7Cj4gKwllbnVtIHBoeSBw aHkgPSBJQ0xfQVVYX1BXX1RPX1BIWShwd19pZHgpOwo+ICAJdTMyIHZhbDsKPiAgCj4gIAl2YWwg PSBJOTE1X1JFQUQocmVncy0+ZHJpdmVyKTsKPiAgCUk5MTVfV1JJVEUocmVncy0+ZHJpdmVyLCB2 YWwgfCBIU1dfUFdSX1dFTExfQ1RMX1JFUShwd19pZHgpKTsKPiAgCj4gLQl2YWwgPSBJOTE1X1JF QUQoSUNMX1BPUlRfQ0xfRFcxMihwb3J0KSk7Cj4gLQlJOTE1X1dSSVRFKElDTF9QT1JUX0NMX0RX MTIocG9ydCksIHZhbCB8IElDTF9MQU5FX0VOQUJMRV9BVVgpOwo+ICsJdmFsID0gSTkxNV9SRUFE KElDTF9QT1JUX0NMX0RXMTIocGh5KSk7Cj4gKwlJOTE1X1dSSVRFKElDTF9QT1JUX0NMX0RXMTIo cGh5KSwgdmFsIHwgSUNMX0xBTkVfRU5BQkxFX0FVWCk7Cj4gIAo+ICAJaHN3X3dhaXRfZm9yX3Bv d2VyX3dlbGxfZW5hYmxlKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKPiAgCj4gIAkvKiBEaXNwbGF5 IFdBICMxMTc4OiBpY2wgKi8KPiAgCWlmIChJU19JQ0VMQUtFKGRldl9wcml2KSAmJgo+ICAJICAg IHB3X2lkeCA+PSBJQ0xfUFdfQ1RMX0lEWF9BVVhfQSAmJiBwd19pZHggPD0gSUNMX1BXX0NUTF9J RFhfQVVYX0IgJiYKPiAtCSAgICAhaW50ZWxfYmlvc19pc19wb3J0X2VkcChkZXZfcHJpdiwgcG9y dCkpIHsKPiArCSAgICAhaW50ZWxfYmlvc19pc19wb3J0X2VkcChkZXZfcHJpdiwgKGVudW0gcG9y dClwaHkpKSB7CgpXZSBkb24ndCBuZWVkIHRoaXMgb24gZWhsPwoKUGF0Y2ggaXMKUmV2aWV3ZWQt Ynk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cgo+ICAJ CXZhbCA9IEk5MTVfUkVBRChJQ0xfQVVYX0FOQU9WUkQxKHB3X2lkeCkpOwo+ICAJCXZhbCB8PSBJ Q0xfQVVYX0FOQU9WUkQxX0VOQUJMRSB8IElDTF9BVVhfQU5BT1ZSRDFfTERPX0JZUEFTUzsKPiAg CQlJOTE1X1dSSVRFKElDTF9BVVhfQU5BT1ZSRDEocHdfaWR4KSwgdmFsKTsKPiBAQCAtNDMwLDEx ICs0MzAsMTEgQEAgaWNsX2NvbWJvX3BoeV9hdXhfcG93ZXJfd2VsbF9kaXNhYmxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgewo+ICAJY29uc3Qgc3RydWN0IGk5MTVfcG93 ZXJfd2VsbF9yZWdzICpyZWdzID0gcG93ZXJfd2VsbC0+ZGVzYy0+aHN3LnJlZ3M7Cj4gIAlpbnQg cHdfaWR4ID0gcG93ZXJfd2VsbC0+ZGVzYy0+aHN3LmlkeDsKPiAtCWVudW0gcG9ydCBwb3J0ID0g SUNMX0FVWF9QV19UT19QT1JUKHB3X2lkeCk7Cj4gKwllbnVtIHBoeSBwaHkgPSBJQ0xfQVVYX1BX X1RPX1BIWShwd19pZHgpOwo+ICAJdTMyIHZhbDsKPiAgCj4gLQl2YWwgPSBJOTE1X1JFQUQoSUNM X1BPUlRfQ0xfRFcxMihwb3J0KSk7Cj4gLQlJOTE1X1dSSVRFKElDTF9QT1JUX0NMX0RXMTIocG9y dCksIHZhbCAmIH5JQ0xfTEFORV9FTkFCTEVfQVVYKTsKPiArCXZhbCA9IEk5MTVfUkVBRChJQ0xf UE9SVF9DTF9EVzEyKHBoeSkpOwo+ICsJSTkxNV9XUklURShJQ0xfUE9SVF9DTF9EVzEyKHBoeSks IHZhbCAmIH5JQ0xfTEFORV9FTkFCTEVfQVVYKTsKPiAgCj4gIAl2YWwgPSBJOTE1X1JFQUQocmVn cy0+ZHJpdmVyKTsKPiAgCUk5MTVfV1JJVEUocmVncy0+ZHJpdmVyLCB2YWwgJiB+SFNXX1BXUl9X RUxMX0NUTF9SRVEocHdfaWR4KSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHNpLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RzaS5oCj4gaW5kZXggNmQyMDQzNDYzNmNkLi4xY2QyNGJkNDY1MTggMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2kuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpLmgKPiBAQCAtNDksOCArNDksMTEgQEAgc3Ry dWN0IGludGVsX2RzaSB7Cj4gIAo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqYXR0YWNoZWRf Y29ubmVjdG9yOwo+ICAKPiAtCS8qIGJpdCBtYXNrIG9mIHBvcnRzIGJlaW5nIGRyaXZlbiAqLwo+ IC0JdTE2IHBvcnRzOwo+ICsJLyogYml0IG1hc2sgb2YgcG9ydHMgKHZsdiBkc2kpIG9yIHBoeXMg KGljbCBkc2kpIGJlaW5nIGRyaXZlbiAqLwo+ICsJdW5pb24gewo+ICsJCXUxNiBwb3J0czsJLyog VkxWIERTSSAqLwo+ICsJCXUxNiBwaHlzOwkvKiBJQ0wgRFNJICovCj4gKwl9Owo+ICAKPiAgCS8q IGlmIHRydWUsIHVzZSBIUyBtb2RlLCBvdGhlcndpc2UgTFAgKi8KPiAgCWJvb2wgaHM7Cj4gQEAg LTEzMiw3ICsxMzUsMTAgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZHNpX2hvc3QgKnRv X2ludGVsX2RzaV9ob3N0KHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpoKQo+ICAJcmV0dXJuIGNvbnRh aW5lcl9vZihoLCBzdHJ1Y3QgaW50ZWxfZHNpX2hvc3QsIGJhc2UpOwo+ICB9Cj4gIAo+IC0jZGVm aW5lIGZvcl9lYWNoX2RzaV9wb3J0KF9fcG9ydCwgX19wb3J0c19tYXNrKSBmb3JfZWFjaF9wb3J0 X21hc2tlZChfX3BvcnQsIF9fcG9ydHNfbWFzaykKPiArI2RlZmluZSBmb3JfZWFjaF9kc2lfcG9y dChfX3BvcnQsIF9fcG9ydHNfbWFzaykgXAo+ICsJZm9yX2VhY2hfcG9ydF9tYXNrZWQoX19wb3J0 LCBfX3BvcnRzX21hc2spCj4gKyNkZWZpbmUgZm9yX2VhY2hfZHNpX3BoeShfX3BoeSwgX19waHlz X21hc2spIFwKPiArCWZvcl9lYWNoX3BoeV9tYXNrZWQoX19waHksIF9fcGh5c19tYXNrKQo+ICAK PiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZHNpICplbmNfdG9faW50ZWxfZHNpKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGlu ZGV4IGM5ZTJlMDliNmYwMS4uYjc2NmJhMjIwNDViIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gQEAgLTE3OTQsMjAgKzE3OTQsMjAgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewo+ ICAjZGVmaW5lIF9JQ0xfQ09NQk9QSFlfQQkJCTB4MTYyMDAwCj4gICNkZWZpbmUgX0lDTF9DT01C T1BIWV9CCQkJMHg2QzAwMAo+ICAjZGVmaW5lIF9FSExfQ09NQk9QSFlfQwkJCTB4MTYwMDAwCj4g LSNkZWZpbmUgX0lDTF9DT01CT1BIWShwb3J0KQkJX1BJQ0socG9ydCwgX0lDTF9DT01CT1BIWV9B LCBcCj4gKyNkZWZpbmUgX0lDTF9DT01CT1BIWShwaHkpCQlfUElDSyhwaHksIF9JQ0xfQ09NQk9Q SFlfQSwgXAo+ICAJCQkJCSAgICAgIF9JQ0xfQ09NQk9QSFlfQiwgXAo+ICAJCQkJCSAgICAgIF9F SExfQ09NQk9QSFlfQykKPiAgCj4gIC8qIENOTC9JQ0wgUG9ydCBDTF9EVyByZWdpc3RlcnMgKi8K PiAtI2RlZmluZSBfSUNMX1BPUlRfQ0xfRFcoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQp ICsgXAo+ICsjZGVmaW5lIF9JQ0xfUE9SVF9DTF9EVyhkdywgcGh5KQkoX0lDTF9DT01CT1BIWShw aHkpICsgXAo+ICAJCQkJCSA0ICogKGR3KSkKPiAgCj4gICNkZWZpbmUgQ05MX1BPUlRfQ0wxQ01f RFc1CQlfTU1JTygweDE2MjAxNCkKPiAtI2RlZmluZSBJQ0xfUE9SVF9DTF9EVzUocG9ydCkJCV9N TUlPKF9JQ0xfUE9SVF9DTF9EVyg1LCBwb3J0KSkKPiArI2RlZmluZSBJQ0xfUE9SVF9DTF9EVzUo cGh5KQkJX01NSU8oX0lDTF9QT1JUX0NMX0RXKDUsIHBoeSkpCj4gICNkZWZpbmUgICBDTF9QT1dF Ul9ET1dOX0VOQUJMRQkJKDEgPDwgNCkKPiAgI2RlZmluZSAgIFNVU19DTE9DS19DT05GSUcJCSgz IDw8IDApCj4gIAo+IC0jZGVmaW5lIElDTF9QT1JUX0NMX0RXMTAocG9ydCkJCV9NTUlPKF9JQ0xf UE9SVF9DTF9EVygxMCwgcG9ydCkpCj4gKyNkZWZpbmUgSUNMX1BPUlRfQ0xfRFcxMChwaHkpCQlf TU1JTyhfSUNMX1BPUlRfQ0xfRFcoMTAsIHBoeSkpCj4gICNkZWZpbmUgIFBHX1NFUV9ERUxBWV9P VkVSUklERV9NQVNLCSgzIDw8IDI1KQo+ICAjZGVmaW5lICBQR19TRVFfREVMQVlfT1ZFUlJJREVf U0hJRlQJMjUKPiAgI2RlZmluZSAgUEdfU0VRX0RFTEFZX09WRVJSSURFX0VOQUJMRQkoMSA8PCAy NCkKPiBAQCAtMTgyMiwyMyArMTgyMiwyMyBAQCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7Cj4g ICNkZWZpbmUgIFBXUl9ET1dOX0xOX01BU0sJCSgweGYgPDwgNCkKPiAgI2RlZmluZSAgUFdSX0RP V05fTE5fU0hJRlQJCTQKPiAgCj4gLSNkZWZpbmUgSUNMX1BPUlRfQ0xfRFcxMihwb3J0KQkJX01N SU8oX0lDTF9QT1JUX0NMX0RXKDEyLCBwb3J0KSkKPiArI2RlZmluZSBJQ0xfUE9SVF9DTF9EVzEy KHBoeSkJCV9NTUlPKF9JQ0xfUE9SVF9DTF9EVygxMiwgcGh5KSkKPiAgI2RlZmluZSAgIElDTF9M QU5FX0VOQUJMRV9BVVgJCSgxIDw8IDApCj4gIAo+ICAvKiBDTkwvSUNMIFBvcnQgQ09NUF9EVyBy ZWdpc3RlcnMgKi8KPiAgI2RlZmluZSBfSUNMX1BPUlRfQ09NUAkJCTB4MTAwCj4gLSNkZWZpbmUg X0lDTF9QT1JUX0NPTVBfRFcoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAo+ICsj ZGVmaW5lIF9JQ0xfUE9SVF9DT01QX0RXKGR3LCBwaHkpCShfSUNMX0NPTUJPUEhZKHBoeSkgKyBc Cj4gIAkJCQkJIF9JQ0xfUE9SVF9DT01QICsgNCAqIChkdykpCj4gIAo+ICAjZGVmaW5lIENOTF9Q T1JUX0NPTVBfRFcwCQlfTU1JTygweDE2MjEwMCkKPiAtI2RlZmluZSBJQ0xfUE9SVF9DT01QX0RX MChwb3J0KQkJX01NSU8oX0lDTF9QT1JUX0NPTVBfRFcoMCwgcG9ydCkpCj4gKyNkZWZpbmUgSUNM X1BPUlRfQ09NUF9EVzAocGh5KQkJX01NSU8oX0lDTF9QT1JUX0NPTVBfRFcoMCwgcGh5KSkKPiAg I2RlZmluZSAgIENPTVBfSU5JVAkJCSgxIDw8IDMxKQo+ICAKPiAgI2RlZmluZSBDTkxfUE9SVF9D T01QX0RXMQkJX01NSU8oMHgxNjIxMDQpCj4gLSNkZWZpbmUgSUNMX1BPUlRfQ09NUF9EVzEocG9y dCkJCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDEsIHBvcnQpKQo+ICsjZGVmaW5lIElDTF9QT1JU X0NPTVBfRFcxKHBoeSkJCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDEsIHBoeSkpCj4gIAo+ICAj ZGVmaW5lIENOTF9QT1JUX0NPTVBfRFczCQlfTU1JTygweDE2MjEwYykKPiAtI2RlZmluZSBJQ0xf UE9SVF9DT01QX0RXMyhwb3J0KQkJX01NSU8oX0lDTF9QT1JUX0NPTVBfRFcoMywgcG9ydCkpCj4g KyNkZWZpbmUgSUNMX1BPUlRfQ09NUF9EVzMocGh5KQkJX01NSU8oX0lDTF9QT1JUX0NPTVBfRFco MywgcGh5KSkKPiAgI2RlZmluZSAgIFBST0NFU1NfSU5GT19ET1RfMAkJKDAgPDwgMjYpCj4gICNk ZWZpbmUgICBQUk9DRVNTX0lORk9fRE9UXzEJCSgxIDw8IDI2KQo+ICAjZGVmaW5lICAgUFJPQ0VT U19JTkZPX0RPVF80CQkoMiA8PCAyNikKPiBAQCAtMTg1MCwxNCArMTg1MCwxNCBAQCBlbnVtIGk5 MTVfcG93ZXJfd2VsbF9pZCB7Cj4gICNkZWZpbmUgICBWT0xUQUdFX0lORk9fTUFTSwkJKDMgPDwg MjQpCj4gICNkZWZpbmUgICBWT0xUQUdFX0lORk9fU0hJRlQJCTI0Cj4gIAo+IC0jZGVmaW5lIElD TF9QT1JUX0NPTVBfRFc4KHBvcnQpCQlfTU1JTyhfSUNMX1BPUlRfQ09NUF9EVyg4LCBwb3J0KSkK PiArI2RlZmluZSBJQ0xfUE9SVF9DT01QX0RXOChwaHkpCQlfTU1JTyhfSUNMX1BPUlRfQ09NUF9E Vyg4LCBwaHkpKQo+ICAjZGVmaW5lICAgSVJFRkdFTgkJCSgxIDw8IDI0KQo+ICAKPiAgI2RlZmlu ZSBDTkxfUE9SVF9DT01QX0RXOQkJX01NSU8oMHgxNjIxMjQpCj4gLSNkZWZpbmUgSUNMX1BPUlRf Q09NUF9EVzkocG9ydCkJCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDksIHBvcnQpKQo+ICsjZGVm aW5lIElDTF9QT1JUX0NPTVBfRFc5KHBoeSkJCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RXKDksIHBo eSkpCj4gIAo+ICAjZGVmaW5lIENOTF9QT1JUX0NPTVBfRFcxMAkJX01NSU8oMHgxNjIxMjgpCj4g LSNkZWZpbmUgSUNMX1BPUlRfQ09NUF9EVzEwKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9DT01QX0RX KDEwLCBwb3J0KSkKPiArI2RlZmluZSBJQ0xfUE9SVF9DT01QX0RXMTAocGh5KQkJX01NSU8oX0lD TF9QT1JUX0NPTVBfRFcoMTAsIHBoeSkpCj4gIAo+ICAvKiBDTkwvSUNMIFBvcnQgUENTIHJlZ2lz dGVycyAqLwo+ICAjZGVmaW5lIF9DTkxfUE9SVF9QQ1NfRFcxX0dSUF9BRQkweDE2MjMwNAo+IEBA IC0xODcwLDE0ICsxODcwLDE0IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiAgI2RlZmlu ZSBfQ05MX1BPUlRfUENTX0RXMV9MTjBfQwkJMHgxNjJDMDQKPiAgI2RlZmluZSBfQ05MX1BPUlRf UENTX0RXMV9MTjBfRAkJMHgxNjJFMDQKPiAgI2RlZmluZSBfQ05MX1BPUlRfUENTX0RXMV9MTjBf RgkJMHgxNjI4MDQKPiAtI2RlZmluZSBDTkxfUE9SVF9QQ1NfRFcxX0dSUChwb3J0KQlfTU1JTyhf UElDSyhwb3J0LCBcCj4gKyNkZWZpbmUgQ05MX1BPUlRfUENTX0RXMV9HUlAocGh5KQlfTU1JTyhf UElDSyhwaHksIFwKPiAgCQkJCQkJICAgIF9DTkxfUE9SVF9QQ1NfRFcxX0dSUF9BRSwgXAo+ICAJ CQkJCQkgICAgX0NOTF9QT1JUX1BDU19EVzFfR1JQX0IsIFwKPiAgCQkJCQkJICAgIF9DTkxfUE9S VF9QQ1NfRFcxX0dSUF9DLCBcCj4gIAkJCQkJCSAgICBfQ05MX1BPUlRfUENTX0RXMV9HUlBfRCwg XAo+ICAJCQkJCQkgICAgX0NOTF9QT1JUX1BDU19EVzFfR1JQX0FFLCBcCj4gIAkJCQkJCSAgICBf Q05MX1BPUlRfUENTX0RXMV9HUlBfRikpCj4gLSNkZWZpbmUgQ05MX1BPUlRfUENTX0RXMV9MTjAo cG9ydCkJX01NSU8oX1BJQ0socG9ydCwgXAo+ICsjZGVmaW5lIENOTF9QT1JUX1BDU19EVzFfTE4w KHBoeSkJX01NSU8oX1BJQ0socGh5LCBcCj4gIAkJCQkJCSAgICBfQ05MX1BPUlRfUENTX0RXMV9M TjBfQUUsIFwKPiAgCQkJCQkJICAgIF9DTkxfUE9SVF9QQ1NfRFcxX0xOMF9CLCBcCj4gIAkJCQkJ CSAgICBfQ05MX1BPUlRfUENTX0RXMV9MTjBfQywgXAo+IEBAIC0xODg4LDE1ICsxODg4LDE1IEBA IGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiAgI2RlZmluZSBfSUNMX1BPUlRfUENTX0FVWAkJ MHgzMDAKPiAgI2RlZmluZSBfSUNMX1BPUlRfUENTX0dSUAkJMHg2MDAKPiAgI2RlZmluZSBfSUNM X1BPUlRfUENTX0xOKGxuKQkJKDB4ODAwICsgKGxuKSAqIDB4MTAwKQo+IC0jZGVmaW5lIF9JQ0xf UE9SVF9QQ1NfRFdfQVVYKGR3LCBwb3J0KQkoX0lDTF9DT01CT1BIWShwb3J0KSArIFwKPiArI2Rl ZmluZSBfSUNMX1BPUlRfUENTX0RXX0FVWChkdywgcGh5KQkoX0lDTF9DT01CT1BIWShwaHkpICsg XAo+ICAJCQkJCSBfSUNMX1BPUlRfUENTX0FVWCArIDQgKiAoZHcpKQo+IC0jZGVmaW5lIF9JQ0xf UE9SVF9QQ1NfRFdfR1JQKGR3LCBwb3J0KQkoX0lDTF9DT01CT1BIWShwb3J0KSArIFwKPiArI2Rl ZmluZSBfSUNMX1BPUlRfUENTX0RXX0dSUChkdywgcGh5KQkoX0lDTF9DT01CT1BIWShwaHkpICsg XAo+ICAJCQkJCSBfSUNMX1BPUlRfUENTX0dSUCArIDQgKiAoZHcpKQo+IC0jZGVmaW5lIF9JQ0xf UE9SVF9QQ1NfRFdfTE4oZHcsIGxuLCBwb3J0KSAoX0lDTF9DT01CT1BIWShwb3J0KSArIFwKPiAr I2RlZmluZSBfSUNMX1BPUlRfUENTX0RXX0xOKGR3LCBsbiwgcGh5KSAoX0lDTF9DT01CT1BIWShw aHkpICsgXAo+ICAJCQkJCSAgX0lDTF9QT1JUX1BDU19MTihsbikgKyA0ICogKGR3KSkKPiAtI2Rl ZmluZSBJQ0xfUE9SVF9QQ1NfRFcxX0FVWChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfUENTX0RXX0FV WCgxLCBwb3J0KSkKPiAtI2RlZmluZSBJQ0xfUE9SVF9QQ1NfRFcxX0dSUChwb3J0KQlfTU1JTyhf SUNMX1BPUlRfUENTX0RXX0dSUCgxLCBwb3J0KSkKPiAtI2RlZmluZSBJQ0xfUE9SVF9QQ1NfRFcx X0xOMChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfUENTX0RXX0xOKDEsIDAsIHBvcnQpKQo+ICsjZGVm aW5lIElDTF9QT1JUX1BDU19EVzFfQVVYKHBoeSkJX01NSU8oX0lDTF9QT1JUX1BDU19EV19BVVgo MSwgcGh5KSkKPiArI2RlZmluZSBJQ0xfUE9SVF9QQ1NfRFcxX0dSUChwaHkpCV9NTUlPKF9JQ0xf UE9SVF9QQ1NfRFdfR1JQKDEsIHBoeSkpCj4gKyNkZWZpbmUgSUNMX1BPUlRfUENTX0RXMV9MTjAo cGh5KQlfTU1JTyhfSUNMX1BPUlRfUENTX0RXX0xOKDEsIDAsIHBoeSkpCj4gICNkZWZpbmUgICBD T01NT05fS0VFUEVSX0VOCQkoMSA8PCAyNikKPiAgI2RlZmluZSAgIExBVEVOQ1lfT1BUSU1fTUFT SwkJKDB4MyA8PCAyKQo+ICAjZGVmaW5lICAgTEFURU5DWV9PUFRJTV9WQUwoeCkJCSgoeCkgPDwg MikKPiBAQCAtMTkzMywxOCArMTkzMywxOCBAQCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7Cj4g ICNkZWZpbmUgX0lDTF9QT1JUX1RYX0dSUAkJMHg2ODAKPiAgI2RlZmluZSBfSUNMX1BPUlRfVFhf TE4obG4pCQkoMHg4ODAgKyAobG4pICogMHgxMDApCj4gIAo+IC0jZGVmaW5lIF9JQ0xfUE9SVF9U WF9EV19BVVgoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAo+ICsjZGVmaW5lIF9J Q0xfUE9SVF9UWF9EV19BVVgoZHcsIHBoeSkJKF9JQ0xfQ09NQk9QSFkocGh5KSArIFwKPiAgCQkJ CQkgX0lDTF9QT1JUX1RYX0FVWCArIDQgKiAoZHcpKQo+IC0jZGVmaW5lIF9JQ0xfUE9SVF9UWF9E V19HUlAoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAo+ICsjZGVmaW5lIF9JQ0xf UE9SVF9UWF9EV19HUlAoZHcsIHBoeSkJKF9JQ0xfQ09NQk9QSFkocGh5KSArIFwKPiAgCQkJCQkg X0lDTF9QT1JUX1RYX0dSUCArIDQgKiAoZHcpKQo+IC0jZGVmaW5lIF9JQ0xfUE9SVF9UWF9EV19M TihkdywgbG4sIHBvcnQpIChfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAo+ICsjZGVmaW5lIF9JQ0xf UE9SVF9UWF9EV19MTihkdywgbG4sIHBoeSkgKF9JQ0xfQ09NQk9QSFkocGh5KSArIFwKPiAgCQkJ CQkgIF9JQ0xfUE9SVF9UWF9MTihsbikgKyA0ICogKGR3KSkKPiAgCj4gICNkZWZpbmUgQ05MX1BP UlRfVFhfRFcyX0dSUChwb3J0KQlfTU1JTyhfQ05MX1BPUlRfVFhfRFdfR1JQKDIsIHBvcnQpKQo+ ICAjZGVmaW5lIENOTF9QT1JUX1RYX0RXMl9MTjAocG9ydCkJX01NSU8oX0NOTF9QT1JUX1RYX0RX X0xOMCgyLCBwb3J0KSkKPiAtI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzJfQVVYKHBvcnQpCV9NTUlP KF9JQ0xfUE9SVF9UWF9EV19BVVgoMiwgcG9ydCkpCj4gLSNkZWZpbmUgSUNMX1BPUlRfVFhfRFcy X0dSUChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfR1JQKDIsIHBvcnQpKQo+IC0jZGVmaW5l IElDTF9QT1JUX1RYX0RXMl9MTjAocG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0xOKDIsIDAs IHBvcnQpKQo+ICsjZGVmaW5lIElDTF9QT1JUX1RYX0RXMl9BVVgocGh5KQlfTU1JTyhfSUNMX1BP UlRfVFhfRFdfQVVYKDIsIHBoeSkpCj4gKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFcyX0dSUChwaHkp CV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19HUlAoMiwgcGh5KSkKPiArI2RlZmluZSBJQ0xfUE9SVF9U WF9EVzJfTE4wKHBoeSkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0xOKDIsIDAsIHBoeSkpCj4gICNk ZWZpbmUgICBTV0lOR19TRUxfVVBQRVIoeCkJCSgoKHgpID4+IDMpIDw8IDE1KQo+ICAjZGVmaW5l ICAgU1dJTkdfU0VMX1VQUEVSX01BU0sJCSgxIDw8IDE1KQo+ICAjZGVmaW5lICAgU1dJTkdfU0VM X0xPV0VSKHgpCQkoKCh4KSAmIDB4NykgPDwgMTEpCj4gQEAgLTE5NjEsMTAgKzE5NjEsMTAgQEAg ZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewo+ICAjZGVmaW5lIENOTF9QT1JUX1RYX0RXNF9MTihs biwgcG9ydCkgICBfTU1JTyhfQ05MX1BPUlRfVFhfRFdfTE4wKDQsIChwb3J0KSkgKyBcCj4gIAkJ CQkJICAgKChsbikgKiAoX0NOTF9QT1JUX1RYX0RXNF9MTjFfQUUgLSBcCj4gIAkJCQkJCSAgICBf Q05MX1BPUlRfVFhfRFc0X0xOMF9BRSkpKQo+IC0jZGVmaW5lIElDTF9QT1JUX1RYX0RXNF9BVVgo cG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0FVWCg0LCBwb3J0KSkKPiAtI2RlZmluZSBJQ0xf UE9SVF9UWF9EVzRfR1JQKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19HUlAoNCwgcG9ydCkp Cj4gLSNkZWZpbmUgSUNMX1BPUlRfVFhfRFc0X0xOMChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhf RFdfTE4oNCwgMCwgcG9ydCkpCj4gLSNkZWZpbmUgSUNMX1BPUlRfVFhfRFc0X0xOKGxuLCBwb3J0 KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfTE4oNCwgbG4sIHBvcnQpKQo+ICsjZGVmaW5lIElDTF9Q T1JUX1RYX0RXNF9BVVgocGh5KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfQVVYKDQsIHBoeSkpCj4g KyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc0X0dSUChwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19H UlAoNCwgcGh5KSkKPiArI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzRfTE4wKHBoeSkJX01NSU8oX0lD TF9QT1JUX1RYX0RXX0xOKDQsIDAsIHBoeSkpCj4gKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc0X0xO KGxuLCBwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19MTig0LCBsbiwgcGh5KSkKPiAgI2RlZmlu ZSAgIExPQURHRU5fU0VMRUNUCQkoMSA8PCAzMSkKPiAgI2RlZmluZSAgIFBPU1RfQ1VSU09SXzEo eCkJCSgoeCkgPDwgMTIpCj4gICNkZWZpbmUgICBQT1NUX0NVUlNPUl8xX01BU0sJCSgweDNGIDw8 IDEyKQo+IEBAIC0xOTc1LDkgKzE5NzUsOSBAQCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCB7Cj4g IAo+ICAjZGVmaW5lIENOTF9QT1JUX1RYX0RXNV9HUlAocG9ydCkJX01NSU8oX0NOTF9QT1JUX1RY X0RXX0dSUCg1LCBwb3J0KSkKPiAgI2RlZmluZSBDTkxfUE9SVF9UWF9EVzVfTE4wKHBvcnQpCV9N TUlPKF9DTkxfUE9SVF9UWF9EV19MTjAoNSwgcG9ydCkpCj4gLSNkZWZpbmUgSUNMX1BPUlRfVFhf RFc1X0FVWChwb3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfQVVYKDUsIHBvcnQpKQo+IC0jZGVm aW5lIElDTF9QT1JUX1RYX0RXNV9HUlAocG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0dSUCg1 LCBwb3J0KSkKPiAtI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzVfTE4wKHBvcnQpCV9NTUlPKF9JQ0xf UE9SVF9UWF9EV19MTig1LCAwLCBwb3J0KSkKPiArI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzVfQVVY KHBoeSkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0FVWCg1LCBwaHkpKQo+ICsjZGVmaW5lIElDTF9Q T1JUX1RYX0RXNV9HUlAocGh5KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfR1JQKDUsIHBoeSkpCj4g KyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc1X0xOMChwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19M Tig1LCAwLCBwaHkpKQo+ICAjZGVmaW5lICAgVFhfVFJBSU5JTkdfRU4JCSgxIDw8IDMxKQo+ICAj ZGVmaW5lICAgVEFQMl9ESVNBQkxFCQkJKDEgPDwgMzApCj4gICNkZWZpbmUgICBUQVAzX0RJU0FC TEUJCQkoMSA8PCAyOSkKPiBAQCAtMTk4OCwxMCArMTk4OCwxMCBAQCBlbnVtIGk5MTVfcG93ZXJf d2VsbF9pZCB7Cj4gIAo+ICAjZGVmaW5lIENOTF9QT1JUX1RYX0RXN19HUlAocG9ydCkJX01NSU8o X0NOTF9QT1JUX1RYX0RXX0dSUCg3LCAocG9ydCkpKQo+ICAjZGVmaW5lIENOTF9QT1JUX1RYX0RX N19MTjAocG9ydCkJX01NSU8oX0NOTF9QT1JUX1RYX0RXX0xOMCg3LCAocG9ydCkpKQo+IC0jZGVm aW5lIElDTF9QT1JUX1RYX0RXN19BVVgocG9ydCkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0FVWCg3 LCBwb3J0KSkKPiAtI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzdfR1JQKHBvcnQpCV9NTUlPKF9JQ0xf UE9SVF9UWF9EV19HUlAoNywgcG9ydCkpCj4gLSNkZWZpbmUgSUNMX1BPUlRfVFhfRFc3X0xOMChw b3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfTE4oNywgMCwgcG9ydCkpCj4gLSNkZWZpbmUgSUNM X1BPUlRfVFhfRFc3X0xOKGxuLCBwb3J0KQlfTU1JTyhfSUNMX1BPUlRfVFhfRFdfTE4oNywgbG4s IHBvcnQpKQo+ICsjZGVmaW5lIElDTF9QT1JUX1RYX0RXN19BVVgocGh5KQlfTU1JTyhfSUNMX1BP UlRfVFhfRFdfQVVYKDcsIHBoeSkpCj4gKyNkZWZpbmUgSUNMX1BPUlRfVFhfRFc3X0dSUChwaHkp CV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19HUlAoNywgcGh5KSkKPiArI2RlZmluZSBJQ0xfUE9SVF9U WF9EVzdfTE4wKHBoeSkJX01NSU8oX0lDTF9QT1JUX1RYX0RXX0xOKDcsIDAsIHBoeSkpCj4gKyNk ZWZpbmUgSUNMX1BPUlRfVFhfRFc3X0xOKGxuLCBwaHkpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19M Tig3LCBsbiwgcGh5KSkKPiAgI2RlZmluZSAgIE5fU0NBTEFSKHgpCQkJKCh4KSA8PCAyNCkKPiAg I2RlZmluZSAgIE5fU0NBTEFSX01BU0sJCQkoMHg3RiA8PCAyNCkKPiAgCj4gLS0gCj4gMi4xNy4y Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJ bnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA==