From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH] drm/i915: Deconstruct struct sgt_dma initialiser Date: Tue, 07 Nov 2017 13:15:58 +0200 Message-ID: <87d14u1gr5.fsf@gaia.fi.intel.com> References: <20171106211128.12538-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id C7B556E41E for ; Tue, 7 Nov 2017 11:16:27 +0000 (UTC) In-Reply-To: <20171106211128.12538-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Kelly French List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gZ2NjLTQu NCBjb21wbGFpbnMgYWJvdXQ6Cj4KPiAJc3RydWN0IHNndF9kbWEgaXRlciA9IHsKPiAJCS5zZyA9 IHZtYS0+cGFnZXMtPnNnbCwKPiAJCS5kbWEgPSBzZ19kbWFfYWRkcmVzcyhpdGVyLnNnKSwKPiAJ CS5tYXggPSBpdGVyLmRtYSArIGl0ZXIuc2ctPmxlbmd0aCwKPiAJfTsKPgo+IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jOiBJbiBmdW5jdGlvbiDigJhnZW44X3BwZ3R0X2luc2Vy dF80bHZs4oCZOgo+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jOjkzODogZXJy b3I6IOKAmGl0ZXIuc2figJkgaXMgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24K PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYzo5Mzk6IGVycm9yOiDigJhpdGVy LmRtYeKAmSBpcyB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgo+Cj4gYW5kIHdv cnNlIGdlbmVyYXRlcyBpbnZhbGlkIGNvZGUgdGhhdCB0cmlnZ2VycyBhIEdQRjoKPgo+IEJVRzog dW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IDAwMDAw MDAwMDAwMDAwMTAKPiBJUDogZ2VuOF9wcGd0dF9pbnNlcnRfNGx2bCsweDFiLzB4MWUwIFtpOTE1 XQo+IFBHRCAwCj4KPiBPb3BzOiAwMDAwIFsjMV0gU01QCj4gTW9kdWxlcyBsaW5rZWQgaW46IHNu ZF9hbG9vcCBuZl9jb25udHJhY2tfaXB2NiBuZl9kZWZyYWdfaXB2NiBuZl9sb2dfaXB2NiBpcDZ0 YWJsZV9maWx0ZXIgaXA2X3RhYmxlcyBjdHIgY2NtIHh0X3N0YXRlIG5mX2xvZ19pcHY0Cj4gbmZf bG9nX2NvbW1vbiB4dF9MT0cgeHRfbGltaXQgeHRfcmVjZW50IHh0X293bmVyIHh0X2FkZHJ0eXBl IGlwdGFibGVfZmlsdGVyIGlwdF9NQVNRVUVSQURFIG5mX25hdF9tYXNxdWVyYWRlX2lwdjQgaXB0 YWJsZV9uYXQKPiBuZl9jb25udHJhY2tfaXB2NCBuZl9kZWZyYWdfaXB2NCBuZl9uYXRfaXB2NCBu Zl9uYXQgbmZfY29ubnRyYWNrIGxpYmNyYzMyYyBpcF90YWJsZXMgZG1fbW9kIHZob3N0X25ldCBt YWN2dGFwIG1hY3ZsYW4gdmhvc3QgdHVuIGt2bV9pbnRlbCBrdm0KPiBpcnFieXBhc3MgdWFzIHVz Yl9zdG9yYWdlIGhpZF9tdWx0aXRvdWNoIGJ0dXNiIGJ0cnRsIHV2Y3ZpZGVvIHZpZGVvYnVmMl92 NGwyIHZpZGVvYnVmMl9jb3JlIHZpZGVvZGV2IG1lZGlhIHZpZGVvYnVmMl92bWFsbG9jIHZpZGVv YnVmMl9tZW1vcHMKPiBzZyBwcGRldiBkZWxsX3dtaSBzcGFyc2Vfa2V5bWFwIG1laV93ZHQgc2Rf bW9kIGlUQ09fd2R0IGlUQ09fdmVuZG9yX3N1cHBvcnQgcnRzeF9wY2lfbXMgbWVtc3RpY2sgcnRz eF9wY2lfc2RtbWMgbW1jX2NvcmUgZGVsbF9zbW1faHdtb24gaHdtb24KPiBkZWxsX2xhcHRvcCBk ZWxsX3NtYmlvcyBkY2RiYXMgam95ZGV2IGlucHV0X2xlZHMgaGNpX3VhcnQgYnRpbnRlbCBidHFj YSBidGJjbSBibHVldG9vdGggcGFycG9ydF9wYyBwYXJwb3J0IGkyY19oaWQKPiAgIGludGVsX2xw c3NfYWNwaSBpbnRlbF9scHNzIHBjc3BrciB3bWkgaW50MzQwMF90aGVybWFsIGFjcGlfdGhlcm1h bF9yZWwgZGVsbF9yYnRuIG1laV9tZSBtZWkgc25kX2hkYV9jb2RlY19oZG1pIHNuZF9oZGFfY29k ZWNfcmVhbHRlawo+IHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBhaGNpIGxpYmFoY2kgYWNwaV9wYWQg eGhjaV9wY2kgeGhjaV9oY2Qgc25kX2hkYV9pbnRlbCBzbmRfaGRhX2NvZGVjIHNuZF9oZGFfY29y ZSBzbmRfaHdkZXAgc25kX3NlcSBzbmRfc2VxX2RldmljZQo+IHNuZF9wY20gc25kX3RpbWVyIHNu ZCBzb3VuZGNvcmUgaW50MzQwM190aGVybWFsIGFyYzQgZTEwMDBlIHB0cCBwcHNfY29yZSBpMmNf aTgwMSBpd2xtdm0gbWFjODAyMTEgcnRzeF9wY2kgaXdsd2lmaSBjZmc4MDIxMSByZmtpbGwKPiBp bnRlbF9wY2hfdGhlcm1hbCBwcm9jZXNzb3JfdGhlcm1hbF9kZXZpY2UgaW50MzQweF90aGVybWFs X3pvbmUgaW50ZWxfc29jX2R0c19pb3NmIGk5MTUgdmlkZW8gZmplcwo+IENQVTogMiBQSUQ6IDI0 MDggQ29tbTogWCBOb3QgdGFpbnRlZCA0LjEwLjAtcmM1KyAjMQo+IEhhcmR3YXJlIG5hbWU6IERl bGwgSW5jLiBMYXRpdHVkZSBFNzQ3MC8wVDZISEosIEJJT1MgMS4xMS4zIDExLzA5LzIwMTYKPiB0 YXNrOiBmZmZmODgwMjE5ZmU0NzQwIHRhc2suc3RhY2s6IGZmZmZjOTAwMDVmOTgwMDAKPiBSSVA6 IDAwMTA6Z2VuOF9wcGd0dF9pbnNlcnRfNGx2bCsweDFiLzB4MWUwIFtpOTE1XQo+IFJTUDogMDAx ODpmZmZmYzkwMDA1ZjliOGM4IEVGTEFHUzogMDAwMTAyNDYKPiBSQVg6IDAwMDAwMDAwMDAwMDAw MDAgUkJYOiBmZmZmODgwMjE2N2Q4MDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwMQo+IFJEWDogMDAw MDAwMDBmZmZmNzAwMCBSU0k6IGZmZmY4ODAyMTlmOTQxNDAgUkRJOiBmZmZmODgwMjI4NDQ0MDAw Cj4gUkJQOiBmZmZmYzkwMDA1ZjliOTQ4IFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAw MDAwMDAwMDAwMDAKPiBSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMDAw IFIxMjogMDAwMDAwMDAwMDAwMDA4MAo+IFIxMzogMDAwMDAwMDAwMDAwMDAwMSBSMTQ6IGZmZmZj OTAwMDVmOWJjZDcgUjE1OiBmZmZmODgwMjBjOWE4M2MwCj4gRlM6ICAwMDAwN2ZiNTNlMWVlOTIw KDAwMDApIEdTOmZmZmY4ODAyNGRkMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMAo+ IENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKPiBDUjI6 IDAwMDAwMDAwMDAwMDAwMTAgQ1IzOiAwMDAwMDAwMjJlZjk1MDAwIENSNDogMDAwMDAwMDAwMDM0 MDZlMAo+IERSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAw MDAwMDAwMDAwMDAwMDAwCj4gRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZl MGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKPiBDYWxsIFRyYWNlOgo+ICAgcHBndHRfYmluZF92 bWErMHg0MC8weDUwIFtpOTE1XQo+ICAgaTkxNV92bWFfYmluZCsweGNiLzB4MWMwIFtpOTE1XQo+ ICAgX19pOTE1X3ZtYV9kb19waW4rMHg2ZS8weGQwIFtpOTE1XQo+ICAgaTkxNV9nZW1fZXhlY2J1 ZmZlcl9yZXNlcnZlX3ZtYSsweDE2Mi8weDFkMCBbaTkxNV0KPiAgIGk5MTVfZ2VtX2V4ZWNidWZm ZXJfcmVzZXJ2ZSsweDRmYy8weDUxMCBbaTkxNV0KPiAgID8gX19rbWFsbG9jKzB4MTM0LzB4MjUw Cj4gICA/IGk5MTVfZ2VtX3dhaXRfZm9yX2Vycm9yKzB4MjUvMHgxMDAgW2k5MTVdCj4gICA/IGk5 MTVfZ2VtX3dhaXRfZm9yX2Vycm9yKzB4MjUvMHgxMDAgW2k5MTVdCj4gICBpOTE1X2dlbV9kb19l eGVjYnVmZmVyKzB4MmRmLzB4YTAwIFtpOTE1XQo+ICAgPyBkcm1fbWFsbG9jX2dmcC5jbG9uZS4w KzB4NDIvMHg4MCBbaTkxNV0KPiAgID8gcGF0aF9wdXQrMHgyMi8weDMwCj4gICA/IF9fY2hlY2tf b2JqZWN0X3NpemUrMHg2Mi8weDFmMAo+ICAgPyB0ZXJtaW5hdGVfd2FsaysweDQ0LzB4OTAKPiAg IGk5MTVfZ2VtX2V4ZWNidWZmZXIyKzB4OTUvMHgxZTAgW2k5MTVdCj4gICBkcm1faW9jdGwrMHgy NDMvMHg0OTAKPiAgID8gaGFuZGxlX3B0ZV9mYXVsdCsweDFkNy8weDIyMAo+ICAgPyBpOTE1X2dl bV9kb19leGVjYnVmZmVyKzB4YTAwLzB4YTAwIFtpOTE1XQo+ICAgPyBoYW5kbGVfbW1fZmF1bHQr MHgxMGQvMHgyYTAKPiAgIHZmc19pb2N0bCsweDE4LzB4MzAKPiAgIGRvX3Zmc19pb2N0bCsweDE0 Yi8weDNmMAo+ICAgU3lTX2lvY3RsKzB4OTIvMHhhMAo+ICAgZW50cnlfU1lTQ0FMTF82NF9mYXN0 cGF0aCsweDFhLzB4YTkKPiBSSVA6IDAwMzM6MHg3ZmI1M2I0ZmNiNzcKPiBSU1A6IDAwMmI6MDAw MDdmZmUwYzU3Mjg5OCBFRkxBR1M6IDAwMDAzMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDEw Cj4gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDdmYjUzZTE3YzAzOCBSQ1g6IDAwMDA3 ZmI1M2I0ZmNiNzcKPiBSRFg6IDAwMDA3ZmZlMGM1NzI5MDAgUlNJOiAwMDAwMDAwMDQwNDA2NDY5 IFJESTogMDAwMDAwMDAwMDAwMDAwYgo+IFJCUDogMDAwMDdmYjUzNzZkNjdlMCBSMDg6IDAwMDAw MDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwCj4gUjEwOiAwMDAwMDAwMDAwMDAwMDI4 IFIxMTogMDAwMDAwMDAwMDAwMzI0NiBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKPiBSMTM6IDAwMDAw MDAwMDAwMDAwMDAgUjE0OiAwMDAwNTVlZWNiMzE0ZDAwIFIxNTogMDAwMDU1ZWVjYjMxNTQ2MAo+ IENvZGU6IDBmIDg0IDVkIGZmIGZmIGZmIGViIGEyIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDU1 IDQ4IDg5IGU1IDQxIDU3IDQxIDU2IDQxIDU1IDQxIDU0IDUzIDQ4IDgzIGVjIDU4IDBmIDFmIDQ0 IDAwIDAwIDMxIGMwIDg5IDRkIGIwIDw0Yz4KPiA4YiA2MCAxMCA0NCA4YiA3MCAwYyA0OCA4OSBk MCA0YyA4YiAyZSA0OCBjMSBlOCAyNyAyNSBmZiAwMQo+IFJJUDogZ2VuOF9wcGd0dF9pbnNlcnRf NGx2bCsweDFiLzB4MWUwIFtpOTE1XSBSU1A6IGZmZmZjOTAwMDVmOWI4YzgKPiBDUjI6IDAwMDAw MDAwMDAwMDAwMTAKPgo+IFJlY2VudCBnY2NzLCBzdWNoIGFzIDQuOSwgNi4zIG9yIDcuMiwgZG8g bm90IGdlbmVyYXRlIHRoZSB3YXJuaW5nIG5vciBkbwo+IHRoZXkgZXhwbG9kZSBvbiB1c2UuIElm IHdlIG1hbnVhbGx5IGNyZWF0ZSB0aGUgc3RydWN0IHVzaW5nIGxvY2FscyBmcm9tCj4gdGhlIHN0 YWNrLCB0aGlzIHNob3VsZCBlbGltaW5hdGUgdGhpcyBpc3N1ZSwgYW5kIGRvZXMgbm90IGFsdGVy IGNvZGUKPiBnZW5lcmF0aW9uIHdpdGggZ2NjLTcuMi4KPgo+IEZpeGVzOiA4OTRjY2ViZWUyYjAg KCJkcm0vaTkxNTogTWljcm8tb3B0aW1pc2UgZ2VuOF9wcGd0dF9pbnNlcnRfZW50cmllcygpIikK PiBSZXBvcnRlZC1ieTogS2VsbHkgRnJlbmNoIDxrZnJlbmNoQGZlZGVyYWxoaWxsLm5ldD4KPiBT aWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBD YzogS2VsbHkgRnJlbmNoIDxrZnJlbmNoQGZlZGVyYWxoaWxsLm5ldD4KPiBDYzogIk1pa2EgS3Vv cHBhbGEiIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KClJldmlld2VkLWJ5OiBNaWthIEt1b3Bw YWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIHwgMjUgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+ ICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKPgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggMDY4NGQ1ZGY5N2Q5Li4yODQ3YTZi NDFjMTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBAIC05NTgsMTAg Kzk1OCwxNCBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyXzRsdmwoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCj4gIAl9Cj4gIH0KPiAgCj4gLXN0cnVjdCBzZ3RfZG1hIHsKPiAr c3RhdGljIGlubGluZSBzdHJ1Y3Qgc2d0X2RtYSB7Cj4gIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNn Owo+ICAJZG1hX2FkZHJfdCBkbWEsIG1heDsKPiAtfTsKPiArfSBzZ3RfZG1hKHN0cnVjdCBpOTE1 X3ZtYSAqdm1hKSB7Cj4gKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnID0gdm1hLT5wYWdlcy0+c2ds Owo+ICsJZG1hX2FkZHJfdCBhZGRyID0gc2dfZG1hX2FkZHJlc3Moc2cpOwo+ICsJcmV0dXJuIChz dHJ1Y3Qgc2d0X2RtYSkgeyBzZywgYWRkciwgYWRkciArIHNnLT5sZW5ndGggfTsKPiArfQo+ICAK PiAgc3RydWN0IGdlbjhfaW5zZXJ0X3B0ZSB7Cj4gIAl1MTYgcG1sNGU7Cj4gQEAgLTEwNDIsMTEg KzEwNDYsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2luc2VydF8zbHZsKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAJCQkJICAgdTMyIHVudXNlZCkKPiAgewo+ICAJc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gaTkxNV92bV90b19wcGd0dCh2bSk7Cj4gLQlzdHJ1Y3Qg c2d0X2RtYSBpdGVyID0gewo+IC0JCS5zZyA9IHZtYS0+cGFnZXMtPnNnbCwKPiAtCQkuZG1hID0g c2dfZG1hX2FkZHJlc3MoaXRlci5zZyksCj4gLQkJLm1heCA9IGl0ZXIuZG1hICsgaXRlci5zZy0+ bGVuZ3RoLAo+IC0JfTsKPiArCXN0cnVjdCBzZ3RfZG1hIGl0ZXIgPSBzZ3RfZG1hKHZtYSk7Cj4g IAlzdHJ1Y3QgZ2VuOF9pbnNlcnRfcHRlIGlkeCA9IGdlbjhfaW5zZXJ0X3B0ZSh2bWEtPm5vZGUu c3RhcnQpOwo+ICAKPiAgCWdlbjhfcHBndHRfaW5zZXJ0X3B0ZV9lbnRyaWVzKHBwZ3R0LCAmcHBn dHQtPnBkcCwgJml0ZXIsICZpZHgsCj4gQEAgLTExNTgsMTEgKzExNTgsNyBAQCBzdGF0aWMgdm9p ZCBnZW44X3BwZ3R0X2luc2VydF80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ ICAJCQkJICAgdTMyIHVudXNlZCkKPiAgewo+ICAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0 ID0gaTkxNV92bV90b19wcGd0dCh2bSk7Cj4gLQlzdHJ1Y3Qgc2d0X2RtYSBpdGVyID0gewo+IC0J CS5zZyA9IHZtYS0+cGFnZXMtPnNnbCwKPiAtCQkuZG1hID0gc2dfZG1hX2FkZHJlc3MoaXRlci5z ZyksCj4gLQkJLm1heCA9IGl0ZXIuZG1hICsgaXRlci5zZy0+bGVuZ3RoLAo+IC0JfTsKPiArCXN0 cnVjdCBzZ3RfZG1hIGl0ZXIgPSBzZ3RfZG1hKHZtYSk7Cj4gIAlzdHJ1Y3QgaTkxNV9wYWdlX2Rp cmVjdG9yeV9wb2ludGVyICoqcGRwcyA9IHBwZ3R0LT5wbWw0LnBkcHM7Cj4gIAo+ICAJaWYgKHZt YS0+cGFnZV9zaXplcy5zZyA+IEk5MTVfR1RUX1BBR0VfU0laRSkgewo+IEBAIC0xODY5LDEzICsx ODY1LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAl1bnNpZ25lZCBhY3RfcHQgPSBmaXJzdF9lbnRyeSAv IEdFTjZfUFRFUzsKPiAgCXVuc2lnbmVkIGFjdF9wdGUgPSBmaXJzdF9lbnRyeSAlIEdFTjZfUFRF UzsKPiAgCWNvbnN0IHUzMiBwdGVfZW5jb2RlID0gdm0tPnB0ZV9lbmNvZGUoMCwgY2FjaGVfbGV2 ZWwsIGZsYWdzKTsKPiAtCXN0cnVjdCBzZ3RfZG1hIGl0ZXI7Cj4gKwlzdHJ1Y3Qgc2d0X2RtYSBp dGVyID0gc2d0X2RtYSh2bWEpOwo+ICAJZ2VuNl9wdGVfdCAqdmFkZHI7Cj4gIAo+ICAJdmFkZHIg PSBrbWFwX2F0b21pY19weChwcGd0dC0+cGQucGFnZV90YWJsZVthY3RfcHRdKTsKPiAtCWl0ZXIu c2cgPSB2bWEtPnBhZ2VzLT5zZ2w7Cj4gLQlpdGVyLmRtYSA9IHNnX2RtYV9hZGRyZXNzKGl0ZXIu c2cpOwo+IC0JaXRlci5tYXggPSBpdGVyLmRtYSArIGl0ZXIuc2ctPmxlbmd0aDsKPiAgCWRvIHsK PiAgCQl2YWRkclthY3RfcHRlXSA9IHB0ZV9lbmNvZGUgfCBHRU42X1BURV9BRERSX0VOQ09ERShp dGVyLmRtYSk7Cj4gIAo+IC0tIAo+IDIuMTUuMAo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=