From mboxrd@z Thu Jan 1 00:00:00 1970 From: Akash Goel Subject: Re: [PATCH v4 2/4] drm/i915: New drm crtc property for varying the Pipe Src size Date: Sun, 04 May 2014 15:51:51 +0530 Message-ID: <1399198911.22943.48.camel@akashgoe-desktop> References: <1395805781-21617-1-git-send-email-akash.goel@intel.com> <1397990658-24812-1-git-send-email-akash.goel@intel.com> <20140429140659.GF18465@intel.com> 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 ESMTP id 94A836E030 for ; Sun, 4 May 2014 03:18:52 -0700 (PDT) In-Reply-To: <20140429140659.GF18465@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMDE0LTA0LTI5IGF0IDE3OjA2ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 Cj4gT24gU3VuLCBBcHIgMjAsIDIwMTQgYXQgMDQ6MTQ6MThQTSArMDUzMCwgYWthc2guZ29lbEBp bnRlbC5jb20gd3JvdGU6Cj4gPiBGcm9tOiBBa2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNv bT4KPiA+IAo+ID4gVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGRybSBjcnRjIHByb3BlcnR5IGZvciB2 YXJ5aW5nIHRoZSBQaXBlIFNyYyBzaXplCj4gPiBvciB0aGUgUGFuZWwgZml0dGVyIGlucHV0IHNp emUuIFBpcGUgU3JjIGNvbnRyb2xzIHRoZSBzaXplIHRoYXQgaXMKPiA+IHNjYWxlZCBmcm9tLgo+ ID4gVGhpcyB3aWxsIGFsbG93IHRvIGR5bmFtaWNhbGx5IGZsaXAgKHdpdGhvdXQgbW9kZXNldCkg dGhlIGZyYW1lIGJ1ZmZlcnMKPiA+IG9mIGRpZmZlcmVudCByZXNvbHV0aW9ucwo+ID4gCj4gPiB2 MjogQWRkZWQgYSBjaGVjayB0byBmYWlsIHRoZSBzZXQgcHJvcGVydHkgY2FsbCBpZiBQYW5lbCBm aXR0ZXIgaXMKPiA+IGRpc2FibGVkICYgbmV3IFBJUEVTUkMgcHJvZ3JhbW1pbmcgZG8gbm90IG1h dGNoIHdpdGggUElQRSB0aW1pbmdzLgo+ID4gUmVtb3ZlZCB0aGUgcGl0Y2ggbWlzbWF0Y2ggY2hl Y2sgb24gZnJhbWUgYnVmZmVyLCB3aGVuIGJlaW5nIGZsaXBwZWQuCj4gPiBUaGlzIGlzIGN1cnJl bnRseSBkb25lIG9ubHkgZm9yIFZMVi9IU1cuCj4gPiAKPiA+IHYzOiBNb2RpZmllZCB0aGUgY2hl Y2ssIGFkZGVkIGluIHYyLCB0byBjb25zaWRlciB0aGUgcGxhdGZvcm1zIGhhdmluZwo+ID4gU3Bs aXQgUENILgo+ID4gCj4gPiB2NDogUmVmYWN0b3JlZCBiYXNlZCBvbiBsYXRlc3QgY29kZWJhc2Uu Cj4gPiBVc2VkICdVSU5UX01BWCcgbWFjcm8gaW4gcGxhY2Ugb2YgY29uc3RhbnQuCj4gPiAKPiA+ IFRlc3RjYXNlOiBpZ3Qva21zX3BhbmVsX2ZpdHRlcl90ZXN0Cj4gPiAKPiA+IFNpZ25lZC1vZmYt Ynk6IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDYgKysrCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNzYgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IGluZGV4IDdkNmFjYjQu LjEwNGEyMzIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtMTQ0MSw2 ICsxNDQxLDEyIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiA+ICAJc3RydWN0IGRybV9w cm9wZXJ0eSAqYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eTsKPiA+ICAJc3RydWN0IGRybV9wcm9wZXJ0 eSAqZm9yY2VfYXVkaW9fcHJvcGVydHk7Cj4gPiAgCj4gPiArCS8qCj4gPiArCSAqIFByb3BlcnR5 IHRvIGR5bmFtaWNhbGx5IHZhcnkgdGhlIHNpemUgb2YgdGhlCj4gPiArCSAqIFBJUEVTUkMgb3Ig UGFuZWwgZml0dGVyIGlucHV0IHNpemUKPiA+ICsJICovCj4gPiArCXN0cnVjdCBkcm1fcHJvcGVy dHkgKmlucHV0X3NpemVfcHJvcGVydHk7Cj4gPiArCj4gPiAgCXVpbnQzMl90IGh3X2NvbnRleHRf c2l6ZTsKPiA+ICAJc3RydWN0IGxpc3RfaGVhZCBjb250ZXh0X2xpc3Q7Cj4gPiAgCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCBmMjZiZTRlLi41NDg0YWUyIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC04OTAyLDgg Kzg5MDIsMTggQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCj4gPiAgCSAqIE5vdGUgdGhhdCBwaXRjaCBjaGFuZ2VzIGNvdWxkIGFsc28gYWZm ZWN0IHRoZXNlIHJlZ2lzdGVyLgo+ID4gIAkgKi8KPiA+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuID4gMyAmJgo+ID4gLQkgICAgKGZiLT5vZmZzZXRzWzBdICE9IGNydGMtPnByaW1hcnktPmZi LT5vZmZzZXRzWzBdIHx8Cj4gPiAtCSAgICAgZmItPnBpdGNoZXNbMF0gIT0gY3J0Yy0+cHJpbWFy eS0+ZmItPnBpdGNoZXNbMF0pKQo+ID4gKwkgICAgKGZiLT5vZmZzZXRzWzBdICE9IGNydGMtPnBy aW1hcnktPmZiLT5vZmZzZXRzWzBdKSkKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4g KwkvKgo+ID4gKwkgKiBCeXBhc3NpbmcgdGhlIGZiIHBpdGNoIGNoZWNrIGZvciBWTFYvSFNXLCBh cyBwdXJwb3J0ZWRseSB0aGVyZQo+ID4gKwkgKiBpcyBhIGR5bmFtaWMgZmxpcCBzdXBwb3J0IGlu IFZMVi9IU1cuIFRoaXMgd2lsbCBhbGxvdyB0bwo+ID4gKwkgKiBmbGlwIGZicyBvZiBkaWZmZXJl bnQgcmVzb2x1dGlvbnMgd2l0aG91dCBkb2luZyBhIG1vZGVzZXQuCj4gPiArCSAqIFRCRCwgY29u ZmlybSB0aGUgc2FtZSBmb3Igb3RoZXIgbmV3ZXIgZ2VuIHBsYXRmb3JtcyBhbHNvLgo+ID4gKwkg Ki8KPiA+ICsJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID4gMyAmJgo+ID4gKwkgICAgIUlTX1ZB TExFWVZJRVcoZGV2KSAmJiAhSVNfSEFTV0VMTChkZXYpICYmCj4gPiArCSAgICAoZmItPnBpdGNo ZXNbMF0gIT0gY3J0Yy0+cHJpbWFyeS0+ZmItPnBpdGNoZXNbMF0pKQo+IAo+IE5BSy4gUGxlYXNl IHJlYWQgdGhlIGNvbW1lbnQgYWJvdmUgdGhlIGNoZWNrIHRvIHVuZGVyc3RhbmQgd2h5IHdlIGNh bid0Cj4ganVzdCBjaGFuZ2UgdGhlIHN0cmlkZSBoZXJlLiBJIGd1ZXNzIG9uIEhTVysgaXQgbWln aHQgYmUgcG9zc2libGUgc2luY2UKPiBpdCB1c2VzIHRoZSB4L3kgb2Zmc2V0cyBldmVuIHdpdGgg bGluZWFyIEZCcyBzbyBzdHJpZGUgY2hhbmdlcyBkb24ndAo+IGFmZmVjdCB0aGUgb2Zmc2V0LiBB bHNvIHN1Y2ggY2hhbmdlcyBzb3VsZCBiZSBpbiBzZXBhcmF0ZSBwYXRjaGVzCj4gYW55d2F5Lgo+ IAoKQWN0dWFsbHkgYXMgcGVyIHRoZSBCc3BlYywgcHJvYmFibHkgdGhlIHBpdGNoL3N0cmlkZSBj YW4gYmUgY2hhbmdlZCBmb3IKc3luY2hyb25vdXMgZmxpcHMuIApBcyBwZXIgdGhlIGRlc2NyaXB0 aW9uIG9mIE1JX0RJU1BMQVlfRkxJUCBmcm9tIHRoZSBCc3BlYwoiMTU6NiBEaXNwbGF5IEJ1ZmZl ciBQaXRjaApGb3IgU3luY2hyb25vdXMgRmxpcHMgYW5kIFN0ZXJlbyAzRCBGbGlwcyBvbmx5LCB0 aGlzIGZpZWxkIHNwZWNpZmllcyB0aGUKNjQtYnl0ZSBhbGlnbmVkIHBpdGNoIG9mIHRoZSBuZXcg ZGlzcGxheSBidWZmZXIuIEZvciBBc3luY2hyb25vdXMgRmxpcHMsCnRoaXMgcGFyYW1ldGVyIGlz IHByb2dyYW1tZWQgc28gdGhhdCBhbGwgdGhlIGZsaXBzIGluIGEgZmxpcCBjaGFpbgpzaG91bGQg bWFpbnRhaW4gdGhlIHNhbWUgcGl0Y2ggYXMgcHJvZ3JhbW1lZCB3aXRoIHRoZSBsYXN0IHN5bmNo cm9ub3VzCmZsaXAgb3Igc3RlcmVvIDNEIGZsaXAgb3IgZGlyZWN0IHRocm91Z2ggTU1JTy4KVGhl IERpc3BsYXkgQnVmZmVyIFBpdGNoIGFuZCBUaWxlIHBhcmFtZXRlciBhbmQgRGVjcnlwdCBSZXF1 ZXN0IGZpZWxkcwpjYW5ub3QgYmUgY2hhbmdlZCBmb3IgYXN5bmNocm9ub3VzIGZsaXBzIChpLmUu LCB0aGUgbmV3IGJ1ZmZlciBtdXN0IGhhdmUKdGhlIHNhbWUgcGl0Y2gvdGlsZSBmb3JtYXQgYXMg dGhlIHByZXZpb3VzIGJ1ZmZlcikuCkFzeW5jaCBmbGlwcyBhcmUgU3VwcG9ydGVkIG9uIFgtVGls ZWQgRnJhbWUgYnVmZmVycyBvbmx5LiIKCj4gSSBndWVzcyBvbmUgb3B0aW9uIHdvdWxkIGJlIHVw ZGF0ZSB0aGUgbGluZWFyIG9mZnNldCB3aXRoIExSSSwgYnV0Cj4gc2luY2UgdGhlIG9mZnNldCBy ZWdpc3RlciBnZXRzIGxhdGNoZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgRFNQU1VSRgo+IHdyaXRl IHRoZSBjaGFuZ2VzIGFyZW4ndCBndWFyYW50ZWVkIHRvIGhhcHBlbiBhdG9taWNhbGx5LiBBbHNv IG9uCj4gVkxWIExSSSB0byBkaXNwbGF5IHJlZ2lzdGVycyBpcyBhcHBhcmVudGx5IGJ1c3RlZC4K PiAKPiBJZiB5b3UgZG8gZmluZCBhIHdheSB0byBtYWtlIHRoaXMgd29yayBvbiBzb21lIHBsYXRm b3JtcywgdGhlbiB3ZQo+IG5lZWQgdG8gaGF2ZSBhIHRlc3QgZm9yIGl0IHRvIG1ha2Ugc3VyZSBp dCBkb2VzIHRoZSByaWdodCB0aGluZy4KPiAKCkFjdHVhbGx5IHdlIGhhdmUgYmVlbiB1c2luZyBN TUlPIGJhc2VkIGZsaXBzIG9uIEJZVCwgaW5zdGVhZCBvZiBjb21tYW5kCnN0cmVhbWVyIGJhc2Vk IGZsaXBzLCBzbyB0aGUgRFNQU1RSSURFICYgRFNQVElMRU9GRiByZWdpc3RlcnMgYXJlIGJlaW5n CndyaXR0ZW4gYWxvbmcgd2l0aCBEU1BTVVJGIG9uIGV2ZXJ5IGZsaXAuIApBcyBwZXIgdGhlIGRl c2NyaXB0aW9uIG9mIERTUFNUUklERSByZWdpc3RlciBpbiBCc3BlYywgCiJUaGlzIHJlZ2lzdGVy IGlzIHVwZGF0ZWQgZWl0aGVyIHRocm91Z2ggYSBjb21tYW5kIHBhY2tldCBwYXNzZWQgdGhyb3Vn aAp0aGUgY29tbWFuZCBzdHJlYW0gb3Igd3JpdGVzIHRvIHRoaXMgcmVnaXN0ZXIuIFdoZW4gaXQg aXMgZGVzaXJlZCB0bwp1cGRhdGUgYm90aCB0aGlzIGFuZCB0aGUgc3RhcnQgcmVnaXN0ZXIsIAp0 aGUgc3RyaWRlIHJlZ2lzdGVyIG11c3QgYmUgd3JpdHRlbiBmaXJzdCBiZWNhdXNlIHRoZSB3cml0 ZSB0byB0aGUgc3RhcnQKcmVnaXN0ZXIgaXMgdGhlIHRyaWdnZXIgdGhhdCBjYXVzZXMgdGhlIHVw ZGF0ZSBvZiBib3RoIHJlZ2lzdGVycyBvbiB0aGUKbmV4dCBWQkxBTksgZXZlbnQiClNvIG9uY2Ug d2Ugc3dpdGNoIHRvIE1NSU8gZmxpcCwgdGhlbiBpdCBzaGFsbCBiZSB0YWtlbiBjYXJlLgoKCj4g PiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICAKPiA+ICAJaWYgKGk5MTVfdGVybWluYWxseV93ZWRn ZWQoJmRldl9wcml2LT5ncHVfZXJyb3IpKQo+ID4gQEAgLTEwNDIyLDExICsxMDQzMiw3MSBAQCBv dXRfY29uZmlnOgo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9p ZCBpbnRlbF9jcmVhdGVfY3J0Y19wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+ ICt7Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiArCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+ICsK PiA+ICsJaWYgKCFkZXZfcHJpdi0+aW5wdXRfc2l6ZV9wcm9wZXJ0eSkKPiA+ICsJCWRldl9wcml2 LT5pbnB1dF9zaXplX3Byb3BlcnR5ID0KPiA+ICsJCQlkcm1fcHJvcGVydHlfY3JlYXRlX3Jhbmdl KGRldiwgMCwgImlucHV0IHNpemUiLAo+ID4gKwkJCQkJCSAgMCwgVUlOVF9NQVgpOwo+IAo+IEkg dGhpbmsgcGVvcGxlIHdvdWxkIGJlIGhhcHBpZXIgd2l0aCBzZXBhcmF0ZSB3aWR0aC9oZWlnaHQg cHJvcGVydGllcwo+IGluc3RlYWQgb2Ygc3RpY2tpbmcgYm90aCBpbnRvIG9uZSBwcm9wZXJ0eS4K PiAKPiBBbHNvIHRoaXMgc291bmRzIGxpa2UgYSBnZW5lcmFsbHkgdXNlZnVsIHByb3BlcnR5IGZv ciBoYXJkd2FyZSBhbnkgd2hpY2gKPiBoYXMgc29tZSBraW5kIG9mIGZ1bGwgY3J0YyBzY2FsZXIu IFNvIG1heWJlIGl0IHNob3VsZCBiZSBpbiBkcm0gY29yZS4KPiBBbHNvIHdoYXQgZXZlciBoYXBw ZW5kZWQgdG8gdGhlIHByb3BlcnR5IGRvY3VtZW50YXRpb24gZWZmb3J0LiBEaWQgdGhlCj4gcGF0 Y2ggZ2V0IGluLCBvciB3YXMgaXQgcmVqZWN0ZWQsIG9yIGlzIGl0IGluIGxpbWJvPwo+IApGaW5l IHdpbGwgc3BsaXQgdGhpcyBpbnRvIDIgcHJvcGVydGllcyBidXQgd2lsbCB0aGVyZSBiZSBhbnkg bGltaXRhdGlvbgppbiBmdXR1cmUgaWYgYSBzaW5nbGUgcHJvcGVydHkgaXMgcGVyc2lzdGVkIHdp dGggdG8gc3BlY2lmeSBib3RoIGhlaWdodAomIHdpZHRoIGhlcmUuCgpTYWdhciBoYXMgc3VibWl0 dGVkIHRoZSBwYXRjaCBmb3IgcHJvcGVydHkgZG9jdW1lbnRhdGlvbiBhbmQgaGUgZ290IHRoZQpB Q0sgYWxzbyBmcm9tIHRoZSBMYXVyZW50IFBpbmNoYXJ0LCBidXQgSSB0aGluayBEYW5pZWwgaGFz IG5vdCBkb25lIHRoZQpzYW1lLiBQbGVhc2UgY2FuIHlvdSBraW5kbHkgb25jZSBjaGVjayB3aXRo IERhbmllbCBmb3IgdGhpcy4KCj4gPiArCj4gPiArCWlmIChkZXZfcHJpdi0+aW5wdXRfc2l6ZV9w cm9wZXJ0eSkKPiA+ICsJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZpbnRlbF9jcnRjLT5i YXNlLmJhc2UsCj4gPiArCQkJCQkgICBkZXZfcHJpdi0+aW5wdXRfc2l6ZV9wcm9wZXJ0eSwKPiA+ ICsJCQkJCSAgIDApOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgaW50IGludGVsX2NydGNfc2V0 X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJCXN0cnVjdCBkcm1fcHJvcGVy dHkgKnByb3BlcnR5LCB1aW50NjRfdCB2YWwpCj4gPiAgewo+ID4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPiAgCWludCByZXQgPSAtRU5PRU5UOwo+ID4gIAo+ ID4gKwlpZiAocHJvcGVydHkgPT0gZGV2X3ByaXYtPmlucHV0X3NpemVfcHJvcGVydHkpIHsKPiA+ ICsJCWludCBuZXdfd2lkdGggPSAoaW50KSgodmFsID4+IDE2KSAmIDB4ZmZmZik7Cj4gPiArCQlp bnQgbmV3X2hlaWdodCA9IChpbnQpKHZhbCAmIDB4ZmZmZik7Cj4gPiArCQljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gPiArCQkJCSZpbnRlbF9jcnRjLT5j b25maWcuYWRqdXN0ZWRfbW9kZTsKPiA+ICsKPiA+ICsJCWlmICgobmV3X3dpZHRoID09IGludGVs X2NydGMtPmNvbmZpZy5waXBlX3NyY193KSAmJgo+ID4gKwkJICAgIChuZXdfaGVpZ2h0ID09IGlu dGVsX2NydGMtPmNvbmZpZy5waXBlX3NyY19oKSkKPiA+ICsJCQlyZXR1cm4gMDsKPiA+ICsKPiA+ ICsJCWlmICgoKGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkgIT0gbmV3X3dpZHRoKSB8fAo+ ID4gKwkJICAgICAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheSAhPSBuZXdfaGVpZ2h0KSkg JiYKPiA+ICsJCSAgICAoKEhBU19QQ0hfU1BMSVQoZGV2KSAmJgo+ID4gKwkJCSghaW50ZWxfY3J0 Yy0+Y29uZmlnLnBjaF9wZml0LmVuYWJsZWQpKSB8fAo+ID4gKwkJICAgICAoIUhBU19QQ0hfU1BM SVQoZGV2KSAmJgo+ID4gKwkJCSghaW50ZWxfY3J0Yy0+Y29uZmlnLmdtY2hfcGZpdC5jb250cm9s KSkpKSB7Cj4gPiArCQkJRFJNX0VSUk9SKCJQSVBFU1JDIG1pc21hdGNoIHdpdGggUGlwZSB0aW1p bmdzICYiCj4gPiArCQkJCSAgIlBGIGlzIGRpc2FibGVkXG4iKTsKPiA+ICsJCQlyZXR1cm4gLUVJ TlZBTDsKPiAKPiBUaGlzIHJhaXNlcyBhbiBpbnRlcmVzdGluZyBxdWVzdGlvbi4gSWYgd2UgY2Fu J3QgdG9nZ2xlIHRoZSBwZml0IG9uL29mZgo+IGR5bmFtaWNhbGx5IHNob3VsZCB3ZSBoYXZlIHNv bWUgd2F5IHRvIGZvcmNlIHRoZSBwZml0IG9uIGF0IG1vZGVzZXQKPiB0aW1lIChldmVuIHcvIDE6 MSBzY2FsaW5nKSBzbyB0aGF0IGl0J3MgcG9zc2libHkgdG8gY2hhbmdlIHRoZSBzY2FsaW5nCj4g ZHluYW1pY2FsbHkgdy9vIGEgZnVsbCBtb2Rlc2V0Lgo+IAo+IE9uZSBpZGVhIG1pZ2h0IGJlIHRv IHRyZWF0IDAgYXMgYSBzcGVjaWFsIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LiBJZgo+IGJvdGgg d2lkdGggYW5kIGhlaWdodCBhcmUgMCB3ZSBkbyB0aGUgb2xkIHRoaW5nIGFuZCBkaXNhYmxlIHBm aXQgaWYKPiB0aGUgc2NhbGluZyBiYXNlZCBvbiB1c2VyIG1vZGUgdnMuIGFkanVzdGVkIG1vZGUg aXMgMToxLCBidXQgaWYgdGhpcwo+IHByb3BlcnR5IGhhcyBhbnl0aGluZyBidXQgMCwgYWx3YXlz IGVuYWJsZSBwZml0LiBUaG91Z2h0cyBhbnlvbmU/Cj4gCgpZZXMgaW4gb3JkZXIgdG8gYmUgYWJs ZSB0byBkeW5hbWljYWxseSBjaGFuZ2UgdGhlIHJlc29sdXRpb24gb2YgZmIncwpiZWluZyBmbGlw cGVkICh3aXRob3V0IGEgbW9kZXNldCkgZmlyc3QgUGFuZWwgZml0dGVyIGhhcyB0byBiZSBlbmFi bGVkLgoKU28gMCB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IHdpbGwgY29uc2lkZXJlZCBhcyBkaXNh YmxlZCBhbmQgb2xkCmNvbmRpdGlvbiBvZiBlbmFibGluZyBQYW5lbCBmaXR0ZXIgd2lsbCBiZSBm b2xsb3dlZChyZXF1ZXN0ZWQgbW9kZSAhPQphZGp1c3RlZCBtb2RlKS4gCkJ1dCBpZiB0aGlzIHBy b3BlcnR5IGlzIHNldCB0byBzb21lIHZhbHVlLCBhbmQgaWYgUGFuZWwgZml0dGVyIGlzIG5vdApl bmFibGVkIGFscmVhZHksIGl0IHNoYWxsIGJlIGVuYWJsZWQgKHdoaWNoIHdpbGwgcmVxdWlyZSBh IG1vZGVzZXQpLgpDYW4gd2UgZG8gaXQgbGlrZSB0aGlzIHdoZW4gdXNlciBzZXRzIGEgbm9uIHpl cm8gdmFsdWUgZm9yIHRoaXMKcHJvcGVydHkuCjEuIENoZWNrIGZpcnN0IGlmIFBhbmVsIGZpdHRl ciBpcyBlbmFibGVkIG9yIG5vdCwgYW5kIGlmIG5vdCB0aGVuIGVuYWJsZQppdCBmb3JjZWZ1bGx5 IGJ5cGFzc2luZyB0aGUgb3JpZ2luYWwgY29uZGl0aW9uLgoyLiBVcGRhdGUgdGhlIFBJUEVTUkMg cmVnaXN0ZXIgbGF0ZXIgb24sIHdpdGggdGhlIG5ldyB2YWx1ZXMsIGluIHRoZQpzdWJzZXF1ZW50 IFBhZ2UgZmxpcCBpb2N0bCAoYW5kIG5vdCBpbiB0aGUgc2V0IHByb3BlcnR5IGNhbGwgaXRzZWxm KSwKd2hlbiBGQiBvZiB0aGUgbmV3IHJlc29sdXRpb24gd2lsbCBiZSBwYXNzZWQuCiAKPiA+ICsJ CX0KPiA+ICsKPiA+ICsJCWludGVsX2NydGMtPmNvbmZpZy5waXBlX3NyY193ID0gbmV3X3dpZHRo Owo+ID4gKwkJaW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX2ggPSBuZXdfaGVpZ2h0Owo+IAo+ IFRoaXMgbG9va3MgbGlrZSBpdCBuZWVkcyBtb3JlIGVycm9yIGNoZWNrcyB0byBtYWtlIHN1cmUg dGhlIHNjYWxpbmcKPiByYXRpbyBzdGF5cyB3aXRoaW4gYWNjZXB0YWJsZSBsaW1pdHMuCj4gCj4g QWxzbyB3ZSBuZWVkIHRvIHJlY2hlY2sgcHJpbWFyeSBwbGFuZSBGQiBzaXplIHZzLiBuZXcgUElQ RVNSQy4KPiAKT24gc2V0dGluZyB0aGlzIHByb3BlcnR5LCAgRkIncyBiZWluZyBzdWJzZXF1ZW50 bHkgZmxpcHBlZCBvbiBwcmltYXJ5CnBsYW5lIHNoYWxsIGNvbXBseSB3aXRoIHRoZSBuZXcgUGlw ZSBTUkMgdmFsdWVzLgpBbmQgY2hlY2sgZm9yIHRoaXMsIGlzIGFscmVhZHkgZG9uZSBieSB0aGUg ZHJtX2NydGNfY2hlY2tfdmlld3BvcnQKZnVuY3Rpb24gaW4gcGFnZSBmbGlwIGlvY3RsLgoKPiBB bmQgd2UgbmVlZCB0byByZWNsaXAgc3ByaXRlcyBhbmQgY3Vyc29ycy4KCj4gCj4gVGhpcyBpcyBz dGFydGluZyB0byBiZSBxdWl0ZSBhIGxvdCBvZiBzdHVmZi4gU28gZm9yIHRoZSBpbml0aWFsCj4g aW1wbGVtZW50YXRpb24gbWF5IGJlIGl0J3MgZWFzaWVyIHRvIGp1c3QgZG8gYSBmdWxsIG1vZGVz ZXQgaGVyZS4gQW5kCj4gb25jZSB0aGF0J3MgZG9uZSB3ZSBjYW4gZmlndXJlIG91dCBob3cgdG8g YXZvaWQgdGhlIG1vZGVzZXQuIFdlIHNob3VsZAo+IGFueXdheSBiZSBtb3ZpbmcgdG93YXJkcyBh IHdvcmxkIHdoZXJlIHdlIGNvbXB1dGUgdGhlIG5ldyBjb25maWcsCj4gdmFsaWRhdGUgaXQsIGFu ZCB0aGVuIGZpZ3VyZSBvdXQgaWYgd2UgY2FuIGdldCB0aGVyZSB3L28gYSBmdWxsIG1vZGVzZXQu Cj4gU28gbWF5YmUgd2UgbmVlZCB0byBzdGFydCB3cml0aW5nIHRoZSBjb2RlIHRvIGp1c3QgdGhh dCBhbmQgbm90IGxpbWl0Cj4gb3Vyc2VsdmVzIHRvIGltcGxlbWVudGluZyBzcGVjaWFsIGNvZGUg Zm9yIHNwZWNpZmljIHByb3BlcnRpZXMuCj4gCgpTb3JyeSBjb3VsZG4ndCBmdWxseSBjb21wcmVo ZW5kIHlvdXIgbGFzdCBwb2ludCBoZXJlLgoKPiA+ICsKPiA+ICsJCWludGVsX2NydGMtPmNvbmZp Zy5yZXF1ZXN0ZWRfbW9kZS5oZGlzcGxheSA9IG5ld193aWR0aDsKPiA+ICsJCWludGVsX2NydGMt PmNvbmZpZy5yZXF1ZXN0ZWRfbW9kZS52ZGlzcGxheSA9IG5ld19oZWlnaHQ7Cj4gPiArCj4gPiAr CQljcnRjLT5tb2RlLmhkaXNwbGF5ID0gbmV3X3dpZHRoOwo+ID4gKwkJY3J0Yy0+bW9kZS52ZGlz cGxheSA9IG5ld19oZWlnaHQ7Cj4gCj4gSG1tLiBUaGlzIHdpbGwgY2F1c2UgcHJvYmxlbXMgaWYg d2UgaGF2ZSB0byBkbyBhIG1vZGVzZXQgdy9vIGEgbmV3IHVzZXIKPiBzcGVjaWZpZWQgbW9kZSAo ZWcuIGF0b21pYyBtb2Rlc2V0IHdoZXJlIGNoYW5nZSBvbiBhbm90aGVyIHBpcGUgcmVxdWlyZXMK PiB1cyB0byBwZXJmb3JtIG1vZGVzZXQgb24gdGhpcyBwaXBlIGFzIHdlbGwpLgo+IAo+IFNvIEkg dGhpbmsgd2UgbmVlZCB0byBsZWF2ZSB0aGUgbW9kZXMgYWxvbmUuIE9uZSB0aGluZyB0byB3b3Jy eSBhYm91dCBpcwo+IG9sZCB1c2Vyc3BhY2UgdGhhdCBkb2Vzbid0IHJlYWxpemUgdGhhdCBjaGFu Z2VzIGluIHRoaXMgcHJvcGVydHkgd291bGQKPiBoYXZlIHJhbWlmaWNhdGlvbnMgb24gdGhlIGNy dGMgdmlld3BvcnQuIEknbSBub3Qgc3VyZSB0aGVyZSdzIGFueXRoaW5nCj4gc2FuZSB3ZSBjYW4g ZG8gYnV0IGxldCBvbGQgdXNlcnNwYWNlIHNob290IGl0c2VsZiBpbiB0aGUgZm9vdCBpZiBpdCBw bGF5cwo+IHdpdGggdGhpcyBwcm9wZXJ0eS4KPiAKCkFnYWluIHNvcnJ5LCBidXQgY291bGRuJ3Qg Z2V0IHlvdXIgb2xkIHVzZXIgc3BhY2UgcG9pbnQuClNob3VsZCB0aGUgJ2hkaXNwbGF5JywgJ3Zk aXNwbGF5JyBmaWVsZHMgaW4gbW9kZSAmIHBpcGUgY29uZmlnCnN0cnVjdHVyZXMgYmUgYWxzbyB1 cGRhdGVkIGhlcmUsIHdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQgb3IgdGhleSBzaGFsbApiZSBs ZWZ0IHVuY2hhbmdlZCA/Cgo+IFNvIGF0IG1vZGVzZXQgdGltZSB3ZSBuZWVkIHRvIHBvcHVsYXRl IHBpcGVfc3JjX3t3LGh9IGZyb20gdGhlIHVzZXIgbW9kZQo+IGZpcnN0LCBhbmQgdGhlbiBvdmVy d3JpdGUgdGhvc2Ugd2l0aCB0aGUgdmFsdWVzIGZyb20gdGhpcyBwcm9wZXJ0eSBpZgo+IHRoZSBw cm9wZXJ0eSB2YWx1ZSAhPSAwLiBBc3N1bWluZyB3ZSBnbyB3aXRoIG15ICIwIGlzIHNwZWNpYWwi IHBsYW4uCj4gCgpJZiB0aGlzIHByb3BlcnR5IGlzIG9uY2Ugc2V0IGJ5IFVzZXIsIGFuZCB0aGVu IGlmIGl0IHN1YnNlcXVlbnRseSBkb2VzIGEKbW9kZXNldCwgdGhlbiB0aGUgJ2ZiJyBwYXNzZWQg d2l0aCB0aGF0IG1vZGVzZXQgY2FsbCwgc2hhbGwgY29uZm9ybSB0bwp3aGljaCByZXNvbHV0aW9u LCBpLmUgdG8gdGhlIG1vZGUgcGFzc2VkIGJ5IFVzZXIgb3IgdG8gdGhlIGhlaWdodCAmCndpZHRo IHNwZWNpZmllZCBieSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5ID8gT3IgVXNl ciAKCj4gPiArCj4gPiArCQkvKiBwaXBlc3JjIGNvbnRyb2xzIHRoZSBzaXplIHRoYXQgaXMgc2Nh bGVkIGZyb20sIHdoaWNoIHNob3VsZAo+ID4gKwkJKiBhbHdheXMgYmUgdGhlIHVzZXIncyByZXF1 ZXN0ZWQgc2l6ZS4KPiA+ICsJCSovCj4gPiArCQlJOTE1X1dSSVRFKFBJUEVTUkMoaW50ZWxfY3J0 Yy0+cGlwZSksCj4gPiArCQkJKChpbnRlbF9jcnRjLT5jb25maWcucGlwZV9zcmNfdyAtIDEpIDw8 IDE2KSB8Cj4gPiArCQkJIChpbnRlbF9jcnRjLT5jb25maWcucGlwZV9zcmNfaCAtIDEpKTsKPiAK PiBBbmQgZG8gd2UgbmVlZCB0byByZXByb2dyYW0gdGhlIHBmaXQgb24gZ21jaD8KPiAKPiA+ICsK PiA+ICsJCXJldHVybiAwOwo+ID4gKwl9Cj4gPiArCj4gPiAgCXJldHVybiByZXQ7Cj4gPiAgfQo+ ID4gIAo+ID4gQEAgLTEwNTc3LDYgKzEwNjQ3LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ID4gIAlkZXZfcHJpdi0+cGlw ZV90b19jcnRjX21hcHBpbmdbaW50ZWxfY3J0Yy0+cGlwZV0gPSAmaW50ZWxfY3J0Yy0+YmFzZTsK PiA+ICAKPiA+ICAJZHJtX2NydGNfaGVscGVyX2FkZCgmaW50ZWxfY3J0Yy0+YmFzZSwgJmludGVs X2hlbHBlcl9mdW5jcyk7Cj4gPiArCj4gPiArCWludGVsX2NyZWF0ZV9jcnRjX3Byb3BlcnRpZXMo JmludGVsX2NydGMtPmJhc2UpOwo+ID4gIH0KPiA+ICAKPiA+ICBlbnVtIHBpcGUgaW50ZWxfZ2V0 X3BpcGVfZnJvbV9jb25uZWN0b3Ioc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ID4gLS0gCj4gPiAxLjkuMgo+ID4gCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==