From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 1/8] drm/i915/icl: compute the TBT PLL registers Date: Wed, 18 Jul 2018 14:58:31 -0700 Message-ID: <20180718215831.GL5545@intel.com> References: <20180711215909.23945-1-paulo.r.zanoni@intel.com> <20180711215909.23945-2-paulo.r.zanoni@intel.com> <20180713210858.GF21149@intel.com> <1531522665.2601.27.camel@intel.com> <20180716224719.GC2324@intel.com> <1531782352.2503.30.camel@intel.com> <20180716232214.GE2324@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D5A86E22A for ; Wed, 18 Jul 2018 21:58:46 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180716232214.GE2324@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdWwgMTYsIDIwMTggYXQgMDQ6MjI6MTVQTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIE1vbiwgSnVsIDE2LCAyMDE4IGF0IDA0OjA1OjUyUE0gLTA3MDAsIFBhdWxvIFph bm9uaSB3cm90ZToKPiA+IEVtIFNlZywgMjAxOC0wNy0xNiDDoHMgMTU6NDcgLTA3MDAsIFJvZHJp Z28gVml2aSBlc2NyZXZldToKPiA+ID4gT24gRnJpLCBKdWwgMTMsIDIwMTggYXQgMDM6NTc6NDVQ TSAtMDcwMCwgUGF1bG8gWmFub25pIHdyb3RlOgo+ID4gPiA+IEVtIFNleCwgMjAxOC0wNy0xMyDD oHMgMTQ6MDggLTA3MDAsIFJvZHJpZ28gVml2aSBlc2NyZXZldToKPiA+ID4gPiA+IE9uIFdlZCwg SnVsIDExLCAyMDE4IGF0IDAyOjU5OjAyUE0gLTA3MDAsIFBhdWxvIFphbm9uaSB3cm90ZToKPiA+ ID4gPiA+ID4gVXNlIHRoZSBoYXJkY29kZWQgdGFibGVzIHByb3ZpZGVkIGJ5IG91ciBzcGVjLgo+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gdjI6Cj4gPiA+ID4gPiA+ICAgLSBTU0Mgc3RheXMgZGlz YWJsZWQuCj4gPiA+ID4gPiA+ICAgLSBVc2UgaW50ZWxfcG9ydF9pc190YygpLgo+ID4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVs LmNvbT4KPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnph bm9uaUBpbnRlbC5jb20+Cj4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyB8IDIyCj4gPiA+ID4gPiA+ICsrKysrKysrKysrKysr KysrKysrKy0KPiA+ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+ID4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPiA+ID4gPiA+ID4gaW5kZXggYjUxYWQyOTE3ZGJl Li43ZTVlNmViNWRmZTIgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwbGxfbWdyLmMKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBsbF9tZ3IuYwo+ID4gPiA+ID4gPiBAQCAtMjQ1Miw2ICsyNDUyLDE2IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgc2tsX3dycGxsX3BhcmFtcwo+ID4gPiA+ID4gPiBpY2xfZHBfY29t Ym9fcGxsXzE5XzJNSHpfdmFsdWVzW10gPSB7Cj4gPiA+ID4gPiA+ICAJICAucGRpdiA9IDB4MSAv KiAyICovLCAua2RpdiA9IDEsIC5xZGl2X21vZGUgPSAwLAo+ID4gPiA+ID4gPiAucWRpdl9yYXRp byA9IDB9LAo+ID4gPiA+ID4gPiAgfTsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBza2xfd3JwbGxfcGFyYW1zIGljbF90YnRfcGxsXzI0TUh6X3ZhbHVlcwo+ ID4gPiA+ID4gPiA9IHsKPiA+ID4gPiA+ID4gKwkuZGNvX2ludGVnZXIgPSAweDE1MSwgLmRjb19m cmFjdGlvbiA9IDB4NDAwMCwKPiA+ID4gPiA+ID4gKwkucGRpdiA9IDB4NCAvKiA1ICovLCAua2Rp diA9IDEsIC5xZGl2X21vZGUgPSAwLAo+ID4gPiA+ID4gPiAucWRpdl9yYXRpbyA9IDAsCj4gPiA+ ID4gPiA+ICt9Owo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IHNrbF93cnBsbF9wYXJhbXMKPiA+ID4gPiA+ID4gaWNsX3RidF9wbGxfMTlfMk1Iel92YWx1ZXMg PQo+ID4gPiA+ID4gPiB7Cj4gPiA+ID4gPiA+ICsJLmRjb19pbnRlZ2VyID0gMHgxQTUsIC5kY29f ZnJhY3Rpb24gPSAweDcwMDAsCj4gPiA+ID4gPiA+ICsJLnBkaXYgPSAweDQgLyogNSAqLywgLmtk aXYgPSAxLCAucWRpdl9tb2RlID0gMCwKPiA+ID4gPiA+ID4gLnFkaXZfcmF0aW8gPSAwLAo+ID4g PiA+ID4gCj4gPiA+ID4gPiBpbiBvdGhlciB3b3JkcywgaW4gYSBjbGVhbmVyIHZpZXc6Cj4gPiA+ ID4gPiAKPiA+ID4gPiA+IHMvcWRpdl9yYXRpbyA9IDAvcWRpdl9yYXRpbyA9IDEvZyAjYm90aCB0 YWJsZXMKPiA+ID4gPiAKPiA+ID4gPiBGcm9tIHRoZSBxZGl2IHJhdGlvIGJpdDoKPiA+ID4gPiAK PiA+ID4gPiAiVGhpcyBmaWVsZCBzcGVjaWZpZXMgdGhlIFEgZGl2aWRlciByYXRpby4gVGhpcyBm aWVsZCBpcyBvbmx5IHVzZWQKPiA+ID4gPiB3aGVuCj4gPiA+ID4gUWRpdiBNb2RlIGlzIHNldCB0 byBFbmFibGUgdG8gZ2V0IGEgZGl2aWRlciB2YWx1ZSBvdGhlciB0aGFuIDEuIi4KPiA+ID4gPiAK PiA+ID4gPiBTbyBoYXZpbmcgMCBvciAxIHNob3VsZG4ndCBtYXR0ZXIgc2luY2UgcWRpdl9tb2Rl IGlzIHplcm8uCj4gPiA+ID4gCj4gPiA+ID4gT24gdGhlIG90aGVyIGhhbmQsIGlmIHlvdSBsb29r IGF0IHRoZSBDb21ibyBQTEwgdGFibGUsIHdoZW4KPiA+ID4gPiBxZGl2X21vZGU9MAo+ID4gPiA+ IGl0IGV4cGxpY2l0bHkgdGVsbHMgdXMgdG8gdXNlIHFkaXZfcmF0aW89MCwgb3Bwb3NpdGUgdG8g d2hhdCB5b3UncmUKPiA+ID4gPiBhc2tpbmcuCj4gPiA+ID4gCj4gPiA+ID4gVGhlbiB0aGUgZXhh bXBsZSBiZWxvdyBhbmQgYWxzbyB0aGUgRFNJIGV4YW1wbGUgbGF0ZXIgYm90aCBrZWVwCj4gPiA+ ID4gc2F5aW5nCj4gPiA+ID4gdG8gdXNlIHFkaXZfbW9kZT0wICsgcWRpdl9yYXRpbz0wLgo+ID4g PiA+IAo+ID4gPiA+IE5vdyB0aGUgVEJUIFBMTCBleGFtcGxlIGxhdGVyIGFza3MgZm9yIHFkaXZf bW9kZT0wIHFkaXZfcmF0aW89MSwKPiA+ID4gPiB3aGljaAo+ID4gPiA+IGlzIHdoYXQgeW91J3Jl IGFza2luZyBoZXJlLCBidXQgaXQncyB0aGUgb25seSB0aGUgb25seSB0aGluZyB0aGF0Cj4gPiA+ ID4gYXNrcwo+ID4gPiA+IGZvciB0aGF0IHBhdHRlcm4gaW4gdGhhdCB3YXksIHdoaWNoIG1ha2Vz IG1lIGJlbGlldmUgdGhhdCBlaXRoZXIKPiA+ID4gPiBpdCdzCj4gPiA+ID4gd3JvbmcgKHVubGlr ZWx5KSBvciBpdCBzaW1wbHkgZG9lc24ndCBtYXR0ZXIgKGFzIHdyaXR0ZW4gaW4gdGhlIGJpdAo+ ID4gPiA+IGRlZmluaXRpb24pLgo+ID4gPiAKPiA+ID4gKGp1c3QgYWRkaW5nIGEgbm90ZSBhYm91 dCB3aGF0IHdlIGFscmVhZHkgZGlzY3Vzc2VkIGluIHB2dCBsYXN0Cj4gPiA+IGZyaWRheSkKPiA+ ID4gCj4gPiA+IE9uIHRoZSBUQkwgc2VjdGlvbiB0aGVyZSBhcmUgMyBwbGFjZXMgdGhleSBhZGQg cWRpdiA9IDEsIHNvIHNwZWMgaXMKPiA+ID4gY2xlYXJseQo+ID4gPiBub24tc2Vuc2UgYmVjYXVz ZSBhdCBzYW1lIHRpbWUgaXQgImluZGljYXRlcyIgdGhhdCBmb3IgcW1vZGU9MCBxZGl2Cj4gPiA+ IGlzIGFsd2F5cyAxCj4gPiA+IGl0IGFza3MgZHJpdmVyIHRvIHNldCwgYmVjYXVzZSBxbW9kZSBm b3IgVEJMIGlzIGFsd2F5cyAwIGFueXdheXMuCj4gPiA+IAo+ID4gPiBTbyBpbiBteSB2aWV3IG9y IGJzcGVjIGlzIGp1c3QgY29tcGxldGVseSB3cm9uZyBvciBpdCBpcyBzdGF0aW5nIHRoYXQKPiA+ ID4gaXQgaXMKPiA+ID4gZHJpdmVyJ3MgcmVzcG9uc2liaWxpdHkgdG8gc2V0IGl0IHRvIDEuCj4g PiA+IAo+ID4gPiBBbnl3YXlzIHNpbmNlIHlvdSBhbHJlYWR5IGZpbGVkIHRoZSBidWcgYWdhaW5z dCB0aGUgYnNwZWMgd2UgY291bGQKPiA+ID4ganVzdCBtb3ZlCj4gPiA+IHRvIGVpdGhlciB3YXkg Zm9yIG5vdy4uLiBhbmQgZml4IGxhdGVyLi4uCj4gPiA+IAo+ID4gPiBIb3dldmVyIG9uZSB0aGlu ZyBzdGlsbCBidWdzIG1lLi4uIHRoZSBtaXNtYXRjaCBvZiBjb2RlIGFuZCBzcGVjCj4gPiA+IHRh YmxlLiBFdmVuCj4gPiA+IGlmIHNwZWMgdGVsbHMgaXQgZG9lc24ndCBtYXR0ZXIgYnV0IHRoZXkg ZG9uJ3QgdXBkYXRlIHRoZSB2YWx1ZSAKPiA+ID4gdGhlcmUuCj4gPiAKPiA+IEFzIEkgZXhwbGFp bmVkIGluIHBlcnNvbiwgSSBkb24ndCB0aGluayB0aGVyZSBpcyBhIG1pc21hdGNoIG9mIGNvZGUg YW5kCj4gPiB0YWJsZS4KPiAKPiBvaywgc28gdGhpcyBpcyB0aGUgcGFydCB0aGF0IHdlIGRpc2Fn cmVlIG1vc3RseSA7KQo+IEkgbG9vayB0byBzcGVjIGFuZCB0aGVyZSBpcyBxZGl2ID0gMSBJIGxv b2sgdG8gdGhlIGNvZGUgYW5kIEkgc2VlIHFkaXYgPSAwCj4gZm9yIG15IGF2ZXJhZ2UgZGV2ZWxv cGVyIGJyYWluIHRoaXMgaXMgYSBtaXNtYXRjaC4KCk5vIGRpc2FncmVlbWVudHMgYW55bW9yZS4g U3BlYyB3YXMgdXBkYXRlZCBzbyBjb2RlIG1hdGNoZXMgdGhhdCBub3cuCgpSZXZpZXdlZC1ieTog Um9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgoKVGhhbmtzIGZvciBmaWxpbmcg dGhlIHNwZWMgYnVnLgoKPiAKPiA+IFdoZW4gdGhlIHNwZWMgc2F5cyAicWRpdiIgaXQgbWVhbnMg dGhlIGhpZ2gtbGV2ZWwgcWRpdiB2YWx1ZSwKPiA+IHdoaWNoIGlzIHNldCB0aHJvdWdoIHRoZSBj b21iaW5hdGlvbiBvZiBxZGl2X21vZGUgYW5kIHFkaXZfcmF0aW8uCj4gPiAKPiA+IFNvIHRoZSBU QlQgdGFibGUgc2F5cyAicWRpdj0xIiwgd2hpY2ggeW91IGNhbiBhY2hpZXZlIGJ5IHNldHRpbmcK PiA+IHFkaXZfbW9kZT0wIHFkaXZfcmF0aW89d2hhdGV2ZXIuIAo+ID4gCj4gPiBUaGUgQ29tYm8g dGFibGUgaXMgbW9yZSBleHBsaWNpdCB0aGF0IGl0IGxpc3RzIGJvdGggcWRpdl9tb2RlIGFuZAo+ ID4gcWRpdl9yYXRpbyB0byBiZSBzZXQsIGFuZCBpdCBhbHNvIGxpc3RzIHRoZSByZWFsICJxZGl2 IiBhcyBhIG51bWJlciBpbgo+ID4gcGFyZW5zIG9uIHRoZSBxZGl2X3JhdGlvIGNvbHVtbi4KPiAK PiBJIGtub3csIGJ1dCBJIHNob3VsZG4ndCBoYXZlIHRvIGxvb2sgdG8gb3RoZXIgdGFibGUgdGhh biB0aGUgdGJsIG9uZSB0bwo+IGNoZWNrIHRidCBjb2RlIGFuZCBhcnJpdmUgdG8gY29uY2x1c2lv bnMuLi4gIEFjdHVhbGx5IHlvdSBwb2ludGVkIG1lIHRoYXQKPiB0YWJsZSBhdCBmaXJzdCBoYW5k IGJlY2F1c2UgSSB3YXMgbG9va2luZyB0byB0aGUgQ29tYm8gb25lIGluc3RlYWQgb2YgdGhlIFRC VCA6UAo+IAo+ID4gCj4gPiBUaGUgb25seSB0aGluZyB0aGF0IHJlYWxseSAibWlzbWF0Y2hlcyIg aXMgdGhhdCBpbiB0aGUgZXhhbXBsZXMsIHdoZW4KPiA+IHFkaXYgaXMgMSwgaW4gdGhyZWUgcGxh Y2VzIHRoZXkgc2F5IHdlIG5lZWQgcWRpdl9tb2RlPTAgcWRpdl9yYXRpbz0wCj4gCj4gb24gQ29t Ym8gc2VjdGlvbi4uLiBvbiBUQlQgc2VjdGlvbiBpdHNlbGYgdGhleSBhbGwgbWVudGlvbiBxZGl2 PTEuCj4gCj4gPiBhbmQgaW4gdGhlIFRCVCBleGFtcGxlIHRoZXkgc2F5IHRvIHVzZSBxZGl2X21v ZGU9MCBhbmQgcWRpdl9yYXRpbz0xLgo+ID4gQnV0IHRoYXQgcGVyY2VpdmVkICJtaXNtYXRjaCIg c2hvdWxkbid0IG1hdHRlciBzaW5jZSB3aGVuIHFkaXZfbW9kZT0wCj4gPiBxZGl2X3JhdGlvIGNh biBiZSBhbnl0aGluZy4gU3RpbGwgaW5jb25zaXN0ZW50LCBidXQgSU1ITyBpcnJlbGV2YW50Lgo+ ID4gCj4gPiA+IAo+ID4gPiBJIGNhbiBzZWUgbW9yZSBkZXZzIGluIHRoZSBmdXR1cmUgZ2V0dGlu ZyBjb25mdXNlZCBiZWNhdXNlIHFkaXY9MSBpcwo+ID4gPiBwYXJ0IG9mCj4gPiA+IHNwZWMncyB0 YWJsZSBhbmQgY29kZSdzIHRhYmxlIG1pc21hdGNoIHNldHRpbmcgaXQgdG8gMC4KPiA+IAo+ID4g SSB0aGluayB5b3VyIGNvbmZ1c2lvbiBpcyB0aGF0IHlvdSBkb24ndCBzZWUgcWRpdiBhcyBhIHRo aW5nIHRoYXQgaXMKPiA+IGFjaGlldmVkIHRocm91Z2ggcWRpdl9tb2RlIGFuZCBxZGl2X3JhdGlv Lgo+ID4gCj4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4gPiB3aXRoIHRoYXQ6Cj4g PiA+ID4gPiAKPiA+ID4gPiA+IFJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2 aUBpbnRlbC5jb20+Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gK307Cj4gPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ID4gIHN0YXRpYyBib29sIGljbF9jYWxjX2RwX2NvbWJvX3BsbChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZQo+ID4gPiA+ID4gPiAqZGV2X3ByaXYsIGludCBjbG9jaywKPiA+ID4gPiA+ID4g IAkJCQkgIHN0cnVjdCBza2xfd3JwbGxfcGFyYW1zCj4gPiA+ID4gPiA+ICpwbGxfcGFyYW1zKQo+ ID4gPiA+ID4gPiAgewo+ID4gPiA+ID4gPiBAQCAtMjQ5NCw2ICsyNTA0LDE0IEBAIHN0YXRpYyBi b29sIGljbF9jYWxjX2RwX2NvbWJvX3BsbChzdHJ1Y3QKPiA+ID4gPiA+ID4gZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGludCBjbG9jaywKPiA+ID4gPiA+ID4gIAlyZXR1cm4gdHJ1ZTsKPiA+ ID4gPiA+ID4gIH0KPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiArc3RhdGljIGJvb2wgaWNsX2Nh bGNfdGJ0X3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiA+ID4gPiAqZGV2X3ByaXYs Cj4gPiA+ID4gPiA+IGludCBjbG9jaywKPiA+ID4gPiA+ID4gKwkJCSAgICAgc3RydWN0IHNrbF93 cnBsbF9wYXJhbXMKPiA+ID4gPiA+ID4gKnBsbF9wYXJhbXMpCj4gPiA+ID4gPiA+ICt7Cj4gPiA+ ID4gPiA+ICsJKnBsbF9wYXJhbXMgPSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmID09IDI0MDAwID8K PiA+ID4gPiA+ID4gKwkJCWljbF90YnRfcGxsXzI0TUh6X3ZhbHVlcyA6Cj4gPiA+ID4gPiA+IGlj bF90YnRfcGxsXzE5XzJNSHpfdmFsdWVzOwo+ID4gPiA+ID4gPiArCXJldHVybiB0cnVlOwo+ID4g PiA+ID4gPiArfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICBzdGF0aWMgYm9vbCBpY2xfY2Fs Y19kcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiA+ID4gPiA+ICpjcnRjX3N0 YXRlLAo+ID4gPiA+ID4gPiAgCQkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4g PiA+ID4gPiBpbnQKPiA+ID4gPiA+ID4gY2xvY2ssCj4gPiA+ID4gPiA+ICAJCQkJc3RydWN0IGlu dGVsX2RwbGxfaHdfc3RhdGUKPiA+ID4gPiA+ID4gKnBsbF9zdGF0ZSkKPiA+ID4gPiA+ID4gQEAg LTI1MDMsNyArMjUyMSw5IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0 Cj4gPiA+ID4gPiA+IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiA+ID4gPiA+ICAJ c3RydWN0IHNrbF93cnBsbF9wYXJhbXMgcGxsX3BhcmFtcyA9IHsgMCB9Owo+ID4gPiA+ID4gPiAg CWJvb2wgcmV0Owo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+IC0JaWYgKGludGVsX2NydGNfaGFz X3R5cGUoY3J0Y19zdGF0ZSwKPiA+ID4gPiA+ID4gSU5URUxfT1VUUFVUX0hETUkpKQo+ID4gPiA+ ID4gPiArCWlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KSkKPiA+ ID4gPiA+ID4gKwkJcmV0ID0gaWNsX2NhbGNfdGJ0X3BsbChkZXZfcHJpdiwgY2xvY2ssCj4gPiA+ ID4gPiA+ICZwbGxfcGFyYW1zKTsKPiA+ID4gPiA+ID4gKwllbHNlIGlmIChpbnRlbF9jcnRjX2hh c190eXBlKGNydGNfc3RhdGUsCj4gPiA+ID4gPiA+IElOVEVMX09VVFBVVF9IRE1JKSkKPiA+ID4g PiA+ID4gIAkJcmV0ID0gY25sX2RkaV9jYWxjdWxhdGVfd3JwbGwoY2xvY2ssIGRldl9wcml2LAo+ ID4gPiA+ID4gPiAmcGxsX3BhcmFtcyk7Cj4gPiA+ID4gPiA+ICAJZWxzZQo+ID4gPiA+ID4gPiAg CQlyZXQgPSBpY2xfY2FsY19kcF9jb21ib19wbGwoZGV2X3ByaXYsIGNsb2NrLAo+ID4gPiA+ID4g PiAmcGxsX3BhcmFtcyk7Cj4gPiA+ID4gPiA+IC0tIAo+ID4gPiA+ID4gPiAyLjE0LjQKPiA+ID4g PiA+ID4gCj4gPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gPiA+ID4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gPiA+ID4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ID4gPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4gPiA+ID4gCj4g PiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ ID4gPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiA+ID4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK