From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/1] drm/i915: eliminate 'temp' in gen8_for_each_{pdd, pdpe, pml4e} macros Date: Thu, 10 Dec 2015 09:39:22 +0100 Message-ID: <20151210083922.GW20822@phenom.ffwll.local> References: <20151006115335.GK26237@nuc-i3427.alporthouse.com> <1449581451-11848-2-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3FC0F6E0AA for ; Thu, 10 Dec 2015 00:39:26 -0800 (PST) Received: by mail-wm0-f42.google.com with SMTP id u63so13602215wmu.0 for ; Thu, 10 Dec 2015 00:39:26 -0800 (PST) Content-Disposition: inline In-Reply-To: <1449581451-11848-2-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBEZWMgMDgsIDIwMTUgYXQgMDE6MzA6NTFQTSArMDAwMCwgRGF2ZSBHb3Jkb24gd3Jv dGU6Cj4gQWxsIG9mIHRoZXNlIGl0ZXJhdG9yIG1hY3JvcyByZXF1aXJlIGEgJ3RlbXAnIGFyZ3Vt ZW50LCB1c2VkIG1lcmVseSB0bwo+IGhvbGQgaW50ZXJuYWwgcGFydGlhbCByZXN1bHRzLiBXZSBj YW4gaW5zdGVhZCBkZWNsYXJlIHRoZSB0ZW1wb3JhcnkKPiB2YXJpYWJsZSBpbnNpZGUgdGhlIG1h Y3JvLCBzbyB0aGUgY2FsbGVyIG5lZWQgbm90IHByb3ZpZGUgaXQuCj4gCj4gU29tZSBvZiB0aGUg b2xkIGNvZGUgY29udGFpbmVkIG5lc3RlZCBpdGVyYXRvcnMgdGhhdCBhY3R1YWxseSByZXVzZWQg dGhlCj4gc2FtZSAndGVtcCcgdmFyaWFibGUgZm9yIGJvdGggaW5uZXIgYW5kIG91dGVyIGluc3Rh bmNlcy4gSXQncyBxdWl0ZQo+IHN1cnByaXNpbmcgdGhhdCB0aGlzIGRpZG4ndCBpbnRyb2R1Y2Ug YnVncyEgQnV0IGl0IGRvZXMgc2hvdyB0aGF0IHRoZQo+IHZhbHVlIG9mICd0ZW1wJyBpc24ndCBy ZXF1aXJlZCB0byBwZXJzaXN0IGR1cmluZyB0aGUgaXRlcmF0ZWQgYm9keS4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgoKUXVldWVkIGZv ciAtbmV4dCwgdGhhbmtzIGZvciB0aGUgcGF0Y2guCi1EYW5pZWwKCj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIHwgMzkgKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggfCA0OSArKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNDEgaW5z ZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmMKPiBpbmRleCAxZjdlNmI5Li5jMjVlOGIwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMKPiBAQCAtNzcwLDEwICs3NzAsMTAgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0 dF9jbGVhcl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCQlnZW44X3Bw Z3R0X2NsZWFyX3B0ZV9yYW5nZSh2bSwgJnBwZ3R0LT5wZHAsIHN0YXJ0LCBsZW5ndGgsCj4gIAkJ CQkJICAgc2NyYXRjaF9wdGUpOwo+ICAJfSBlbHNlIHsKPiAtCQl1aW50NjRfdCB0ZW1wbDQsIHBt bDRlOwo+ICsJCXVpbnQ2NF90IHBtbDRlOwo+ICAJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5 X3BvaW50ZXIgKnBkcDsKPiAgCj4gLQkJZ2VuOF9mb3JfZWFjaF9wbWw0ZShwZHAsICZwcGd0dC0+ cG1sNCwgc3RhcnQsIGxlbmd0aCwgdGVtcGw0LCBwbWw0ZSkgewo+ICsJCWdlbjhfZm9yX2VhY2hf cG1sNGUocGRwLCAmcHBndHQtPnBtbDQsIHN0YXJ0LCBsZW5ndGgsIHBtbDRlKSB7Cj4gIAkJCWdl bjhfcHBndHRfY2xlYXJfcHRlX3JhbmdlKHZtLCBwZHAsIHN0YXJ0LCBsZW5ndGgsCj4gIAkJCQkJ CSAgIHNjcmF0Y2hfcHRlKTsKPiAgCQl9Cj4gQEAgLTgzOSwxMCArODM5LDEwIEBAIHN0YXRpYyB2 b2lkIGdlbjhfcHBndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0sCj4gIAkJCQkJICAgICAgY2FjaGVfbGV2ZWwpOwo+ICAJfSBlbHNlIHsKPiAgCQlzdHJ1Y3Qg aTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyICpwZHA7Cj4gLQkJdWludDY0X3QgdGVtcGw0LCBw bWw0ZTsKPiArCQl1aW50NjRfdCBwbWw0ZTsKPiAgCQl1aW50NjRfdCBsZW5ndGggPSAodWludDY0 X3QpcGFnZXMtPm9yaWdfbmVudHMgPDwgUEFHRV9TSElGVDsKPiAgCj4gLQkJZ2VuOF9mb3JfZWFj aF9wbWw0ZShwZHAsICZwcGd0dC0+cG1sNCwgc3RhcnQsIGxlbmd0aCwgdGVtcGw0LCBwbWw0ZSkg ewo+ICsJCWdlbjhfZm9yX2VhY2hfcG1sNGUocGRwLCAmcHBndHQtPnBtbDQsIHN0YXJ0LCBsZW5n dGgsIHBtbDRlKSB7Cj4gIAkJCWdlbjhfcHBndHRfaW5zZXJ0X3B0ZV9lbnRyaWVzKHZtLCBwZHAs ICZzZ19pdGVyLAo+ICAJCQkJCQkgICAgICBzdGFydCwgY2FjaGVfbGV2ZWwpOwo+ICAJCX0KPiBA QCAtMTAyMCwxMCArMTAyMCw5IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wYWdldGFi cyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgewo+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IHZtLT5kZXY7Cj4gIAlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdDsKPiAtCXVp bnQ2NF90IHRlbXA7Cj4gIAl1aW50MzJfdCBwZGU7Cj4gIAo+IC0JZ2VuOF9mb3JfZWFjaF9wZGUo cHQsIHBkLCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBwZGUpIHsKPiArCWdlbjhfZm9yX2VhY2hfcGRl KHB0LCBwZCwgc3RhcnQsIGxlbmd0aCwgcGRlKSB7Cj4gIAkJLyogRG9uJ3QgcmVhbGxvY2F0ZSBw YWdlIHRhYmxlcyAqLwo+ICAJCWlmICh0ZXN0X2JpdChwZGUsIHBkLT51c2VkX3BkZXMpKSB7Cj4g IAkJCS8qIFNjcmF0Y2ggaXMgbmV2ZXIgYWxsb2NhdGVkIHRoaXMgd2F5ICovCj4gQEAgLTEwODIs MTMgKzEwODEsMTIgQEAgZ2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVzKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g dm0tPmRldjsKPiAgCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKPiAtCXVpbnQ2NF90 IHRlbXA7Cj4gIAl1aW50MzJfdCBwZHBlOwo+ICAJdWludDMyX3QgcGRwZXMgPSBJOTE1X1BEUEVT X1BFUl9QRFAoZGV2KTsKPiAgCj4gIAlXQVJOX09OKCFiaXRtYXBfZW1wdHkobmV3X3BkcywgcGRw ZXMpKTsKPiAgCj4gLQlnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwgc3RhcnQsIGxlbmd0aCwg dGVtcCwgcGRwZSkgewo+ICsJZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCBwZHAsIHN0YXJ0LCBsZW5n dGgsIHBkcGUpIHsKPiAgCQlpZiAodGVzdF9iaXQocGRwZSwgcGRwLT51c2VkX3BkcGVzKSkKPiAg CQkJY29udGludWU7Cj4gIAo+IEBAIC0xMTM2LDEyICsxMTM0LDExIEBAIGdlbjhfcHBndHRfYWxs b2NfcGFnZV9kaXJwb2ludGVycyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgewo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHZtLT5kZXY7Cj4gIAlzdHJ1Y3QgaTkxNV9wYWdl X2RpcmVjdG9yeV9wb2ludGVyICpwZHA7Cj4gLQl1aW50NjRfdCB0ZW1wOwo+ICAJdWludDMyX3Qg cG1sNGU7Cj4gIAo+ICAJV0FSTl9PTighYml0bWFwX2VtcHR5KG5ld19wZHBzLCBHRU44X1BNTDRF U19QRVJfUE1MNCkpOwo+ICAKPiAtCWdlbjhfZm9yX2VhY2hfcG1sNGUocGRwLCBwbWw0LCBzdGFy dCwgbGVuZ3RoLCB0ZW1wLCBwbWw0ZSkgewo+ICsJZ2VuOF9mb3JfZWFjaF9wbWw0ZShwZHAsIHBt bDQsIHN0YXJ0LCBsZW5ndGgsIHBtbDRlKSB7Cj4gIAkJaWYgKCF0ZXN0X2JpdChwbWw0ZSwgcG1s NC0+dXNlZF9wbWw0ZXMpKSB7Cj4gIAkJCXBkcCA9IGFsbG9jX3BkcChkZXYpOwo+ICAJCQlpZiAo SVNfRVJSKHBkcCkpCj4gQEAgLTEyMjUsNyArMTIyMiw2IEBAIHN0YXRpYyBpbnQgZ2VuOF9hbGxv Y192YV9yYW5nZV8zbHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAJc3RydWN0 IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkOwo+ICAJY29uc3QgdWludDY0X3Qgb3JpZ19zdGFydCA9 IHN0YXJ0Owo+ICAJY29uc3QgdWludDY0X3Qgb3JpZ19sZW5ndGggPSBsZW5ndGg7Cj4gLQl1aW50 NjRfdCB0ZW1wOwo+ICAJdWludDMyX3QgcGRwZTsKPiAgCXVpbnQzMl90IHBkcGVzID0gSTkxNV9Q RFBFU19QRVJfUERQKGRldik7Cj4gIAlpbnQgcmV0Owo+IEBAIC0xMjUyLDcgKzEyNDgsNyBAQCBz dGF0aWMgaW50IGdlbjhfYWxsb2NfdmFfcmFuZ2VfM2x2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlICp2bSwKPiAgCX0KPiAgCj4gIAkvKiBGb3IgZXZlcnkgcGFnZSBkaXJlY3RvcnkgcmVmZXJl bmNlZCwgYWxsb2NhdGUgcGFnZSB0YWJsZXMgKi8KPiAtCWdlbjhfZm9yX2VhY2hfcGRwZShwZCwg cGRwLCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBwZHBlKSB7Cj4gKwlnZW44X2Zvcl9lYWNoX3BkcGUo cGQsIHBkcCwgc3RhcnQsIGxlbmd0aCwgcGRwZSkgewo+ICAJCXJldCA9IGdlbjhfcHBndHRfYWxs b2NfcGFnZXRhYnModm0sIHBkLCBzdGFydCwgbGVuZ3RoLAo+ICAJCQkJCQluZXdfcGFnZV90YWJs ZXMgKyBwZHBlICogQklUU19UT19MT05HUyhJOTE1X1BERVMpKTsKPiAgCQlpZiAocmV0KQo+IEBA IC0xMjY0LDcgKzEyNjAsNyBAQCBzdGF0aWMgaW50IGdlbjhfYWxsb2NfdmFfcmFuZ2VfM2x2bChz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCj4gIAkvKiBBbGxvY2F0aW9ucyBoYXZl IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIHNvIHNldCB0aGUgYml0bWFwcywgYW5kIGRvCj4gIAkg KiB0aGUgbWFwcGluZ3MuICovCj4gLQlnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwgc3RhcnQs IGxlbmd0aCwgdGVtcCwgcGRwZSkgewo+ICsJZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCBwZHAsIHN0 YXJ0LCBsZW5ndGgsIHBkcGUpIHsKPiAgCQlnZW44X3BkZV90ICpjb25zdCBwYWdlX2RpcmVjdG9y eSA9IGttYXBfcHgocGQpOwo+ICAJCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0Owo+ICAJCXVp bnQ2NF90IHBkX2xlbiA9IGxlbmd0aDsKPiBAQCAtMTI3NCw3ICsxMjcwLDcgQEAgc3RhdGljIGlu dCBnZW44X2FsbG9jX3ZhX3JhbmdlXzNsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s Cj4gIAkJLyogRXZlcnkgcGQgc2hvdWxkIGJlIGFsbG9jYXRlZCwgd2UganVzdCBkaWQgdGhhdCBh Ym92ZS4gKi8KPiAgCQlXQVJOX09OKCFwZCk7Cj4gIAo+IC0JCWdlbjhfZm9yX2VhY2hfcGRlKHB0 LCBwZCwgcGRfc3RhcnQsIHBkX2xlbiwgdGVtcCwgcGRlKSB7Cj4gKwkJZ2VuOF9mb3JfZWFjaF9w ZGUocHQsIHBkLCBwZF9zdGFydCwgcGRfbGVuLCBwZGUpIHsKPiAgCQkJLyogU2FtZSByZWFzb25p bmcgYXMgcGQgKi8KPiAgCQkJV0FSTl9PTighcHQpOwo+ICAJCQlXQVJOX09OKCFwZF9sZW4pOwo+ IEBAIC0xMzExLDYgKzEzMDcsOCBAQCBzdGF0aWMgaW50IGdlbjhfYWxsb2NfdmFfcmFuZ2VfM2x2 bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCj4gIGVycl9vdXQ6Cj4gIAl3aGls ZSAocGRwZS0tKSB7Cj4gKwkJdW5zaWduZWQgbG9uZyB0ZW1wOwo+ICsKPiAgCQlmb3JfZWFjaF9z ZXRfYml0KHRlbXAsIG5ld19wYWdlX3RhYmxlcyArIHBkcGUgKgo+ICAJCQkJQklUU19UT19MT05H UyhJOTE1X1BERVMpLCBJOTE1X1BERVMpCj4gIAkJCWZyZWVfcHQoZGV2LCBwZHAtPnBhZ2VfZGly ZWN0b3J5W3BkcGVdLT5wYWdlX3RhYmxlW3RlbXBdKTsKPiBAQCAtMTMzMyw3ICsxMzMxLDcgQEAg c3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlXzRsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0sCj4gIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPQo+ICAJCQljb250YWlu ZXJfb2Yodm0sIHN0cnVjdCBpOTE1X2h3X3BwZ3R0LCBiYXNlKTsKPiAgCXN0cnVjdCBpOTE1X3Bh Z2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcDsKPiAtCXVpbnQ2NF90IHRlbXAsIHBtbDRlOwo+ICsJ dWludDY0X3QgcG1sNGU7Cj4gIAlpbnQgcmV0ID0gMDsKPiAgCj4gIAkvKiBEbyB0aGUgcG1sNCBh bGxvY2F0aW9ucyBmaXJzdCwgc28gd2UgZG9uJ3QgbmVlZCB0byB0cmFjayB0aGUgbmV3bHkKPiBA QCAtMTM1Miw3ICsxMzUwLDcgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlXzRsdmwo c3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAkgICAgICJUaGUgYWxsb2NhdGlvbiBo YXMgc3Bhbm5lZCBtb3JlIHRoYW4gNTEyR0IuICIKPiAgCSAgICAgIkl0IGlzIGhpZ2hseSBsaWtl bHkgdGhpcyBpcyBpbmNvcnJlY3QuIik7Cj4gIAo+IC0JZ2VuOF9mb3JfZWFjaF9wbWw0ZShwZHAs IHBtbDQsIHN0YXJ0LCBsZW5ndGgsIHRlbXAsIHBtbDRlKSB7Cj4gKwlnZW44X2Zvcl9lYWNoX3Bt bDRlKHBkcCwgcG1sNCwgc3RhcnQsIGxlbmd0aCwgcG1sNGUpIHsKPiAgCQlXQVJOX09OKCFwZHAp Owo+ICAKPiAgCQlyZXQgPSBnZW44X2FsbG9jX3ZhX3JhbmdlXzNsdmwodm0sIHBkcCwgc3RhcnQs IGxlbmd0aCk7Cj4gQEAgLTEzOTIsMTAgKzEzOTAsOSBAQCBzdGF0aWMgdm9pZCBnZW44X2R1bXBf cGRwKHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCwKPiAgCQkJICBzdHJ1 Y3Qgc2VxX2ZpbGUgKm0pCj4gIHsKPiAgCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsK PiAtCXVpbnQ2NF90IHRlbXA7Cj4gIAl1aW50MzJfdCBwZHBlOwo+ICAKPiAtCWdlbjhfZm9yX2Vh Y2hfcGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBwZHBlKSB7Cj4gKwlnZW44X2Zv cl9lYWNoX3BkcGUocGQsIHBkcCwgc3RhcnQsIGxlbmd0aCwgcGRwZSkgewo+ICAJCXN0cnVjdCBp OTE1X3BhZ2VfdGFibGUgKnB0Owo+ICAJCXVpbnQ2NF90IHBkX2xlbiA9IGxlbmd0aDsKPiAgCQl1 aW50NjRfdCBwZF9zdGFydCA9IHN0YXJ0Owo+IEBAIC0xNDA1LDcgKzE0MDIsNyBAQCBzdGF0aWMg dm9pZCBnZW44X2R1bXBfcGRwKHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBk cCwKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCXNlcV9wcmludGYobSwgIlx0UERQRSAjJWRcbiIs IHBkcGUpOwo+IC0JCWdlbjhfZm9yX2VhY2hfcGRlKHB0LCBwZCwgcGRfc3RhcnQsIHBkX2xlbiwg dGVtcCwgcGRlKSB7Cj4gKwkJZ2VuOF9mb3JfZWFjaF9wZGUocHQsIHBkLCBwZF9zdGFydCwgcGRf bGVuLCBwZGUpIHsKPiAgCQkJdWludDMyX3QgIHB0ZTsKPiAgCQkJZ2VuOF9wdGVfdCAqcHRfdmFk ZHI7Cj4gIAo+IEBAIC0xNDU1LDExICsxNDUyLDExIEBAIHN0YXRpYyB2b2lkIGdlbjhfZHVtcF9w cGd0dChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsIHN0cnVjdCBzZXFfZmlsZSAqbSkKPiAg CWlmICghVVNFU19GVUxMXzQ4QklUX1BQR1RUKHZtLT5kZXYpKSB7Cj4gIAkJZ2VuOF9kdW1wX3Bk cCgmcHBndHQtPnBkcCwgc3RhcnQsIGxlbmd0aCwgc2NyYXRjaF9wdGUsIG0pOwo+ICAJfSBlbHNl IHsKPiAtCQl1aW50NjRfdCB0ZW1wbDQsIHBtbDRlOwo+ICsJCXVpbnQ2NF90IHBtbDRlOwo+ICAJ CXN0cnVjdCBpOTE1X3BtbDQgKnBtbDQgPSAmcHBndHQtPnBtbDQ7Cj4gIAkJc3RydWN0IGk5MTVf cGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwOwo+ICAKPiAtCQlnZW44X2Zvcl9lYWNoX3BtbDRl KHBkcCwgcG1sNCwgc3RhcnQsIGxlbmd0aCwgdGVtcGw0LCBwbWw0ZSkgewo+ICsJCWdlbjhfZm9y X2VhY2hfcG1sNGUocGRwLCBwbWw0LCBzdGFydCwgbGVuZ3RoLCBwbWw0ZSkgewo+ICAJCQlpZiAo IXRlc3RfYml0KHBtbDRlLCBwbWw0LT51c2VkX3BtbDRlcykpCj4gIAkJCQljb250aW51ZTsKPiAg Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBpbmRleCA4NzdjMzJjLi5iNDQ4YWQ4 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBAQCAtNDU1LDMyICs0NTUs MjkgQEAgc3RhdGljIGlubGluZSB1aW50MzJfdCBnZW42X3BkZV9pbmRleCh1aW50MzJfdCBhZGRy KQo+ICAgKiBiZXR3ZWVuIGZyb20gc3RhcnQgdW50aWwgc3RhcnQgKyBsZW5ndGguIE9uIGdlbjgr IGl0IHNpbXBseSBpdGVyYXRlcwo+ICAgKiBvdmVyIGV2ZXJ5IHBhZ2UgZGlyZWN0b3J5IGVudHJ5 IGluIGEgcGFnZSBkaXJlY3RvcnkuCj4gICAqLwo+IC0jZGVmaW5lIGdlbjhfZm9yX2VhY2hfcGRl KHB0LCBwZCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgaXRlcikJCVwKPiAtCWZvciAoaXRlciA9IGdl bjhfcGRlX2luZGV4KHN0YXJ0KTsgXAo+IC0JICAgICBsZW5ndGggPiAwICYmIGl0ZXIgPCBJOTE1 X1BERVMgPyBcCj4gLQkJCShwdCA9IChwZCktPnBhZ2VfdGFibGVbaXRlcl0pLCAxIDogMDsgXAo+ IC0JICAgICBpdGVyKyssCQkJCVwKPiAtCSAgICAgdGVtcCA9IEFMSUdOKHN0YXJ0KzEsIDEgPDwg R0VOOF9QREVfU0hJRlQpIC0gc3RhcnQsCVwKPiAtCSAgICAgdGVtcCA9IG1pbih0ZW1wLCBsZW5n dGgpLAkJCQkJXAo+IC0JICAgICBzdGFydCArPSB0ZW1wLCBsZW5ndGggLT0gdGVtcCkKPiAtCj4g LSNkZWZpbmUgZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCBwZHAsIHN0YXJ0LCBsZW5ndGgsIHRlbXAs IGl0ZXIpCVwKPiAtCWZvciAoaXRlciA9IGdlbjhfcGRwZV9pbmRleChzdGFydCk7IFwKPiAtCSAg ICAgbGVuZ3RoID4gMCAmJiAoaXRlciA8IEk5MTVfUERQRVNfUEVSX1BEUChkZXYpKSA/IFwKPiAt CQkJKHBkID0gKHBkcCktPnBhZ2VfZGlyZWN0b3J5W2l0ZXJdKSwgMSA6IDA7IFwKPiAtCSAgICAg aXRlcisrLAkJCQlcCj4gLQkgICAgIHRlbXAgPSBBTElHTihzdGFydCsxLCAxIDw8IEdFTjhfUERQ RV9TSElGVCkgLSBzdGFydCwJXAo+IC0JICAgICB0ZW1wID0gbWluKHRlbXAsIGxlbmd0aCksCQkJ CQlcCj4gLQkgICAgIHN0YXJ0ICs9IHRlbXAsIGxlbmd0aCAtPSB0ZW1wKQo+IC0KPiAtI2RlZmlu ZSBnZW44X2Zvcl9lYWNoX3BtbDRlKHBkcCwgcG1sNCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgaXRl cikJXAo+IC0JZm9yIChpdGVyID0gZ2VuOF9wbWw0ZV9pbmRleChzdGFydCk7CVwKPiAtCSAgICAg bGVuZ3RoID4gMCAmJiBpdGVyIDwgR0VOOF9QTUw0RVNfUEVSX1BNTDQgPyBcCj4gLQkJCShwZHAg PSAocG1sNCktPnBkcHNbaXRlcl0pLCAxIDogMDsgXAo+IC0JICAgICBpdGVyKyssCQkJCVwKPiAt CSAgICAgdGVtcCA9IEFMSUdOKHN0YXJ0KzEsIDFVTEwgPDwgR0VOOF9QTUw0RV9TSElGVCkgLSBz dGFydCwJXAo+IC0JICAgICB0ZW1wID0gbWluKHRlbXAsIGxlbmd0aCksCQkJCQlcCj4gLQkgICAg IHN0YXJ0ICs9IHRlbXAsIGxlbmd0aCAtPSB0ZW1wKQo+ICsjZGVmaW5lIGdlbjhfZm9yX2VhY2hf cGRlKHB0LCBwZCwgc3RhcnQsIGxlbmd0aCwgaXRlcikJCQlcCj4gKwlmb3IgKGl0ZXIgPSBnZW44 X3BkZV9pbmRleChzdGFydCk7CQkJCVwKPiArCSAgICAgbGVuZ3RoID4gMCAmJiBpdGVyIDwgSTkx NV9QREVTICYmCQkJCVwKPiArCQkocHQgPSAocGQpLT5wYWdlX3RhYmxlW2l0ZXJdLCB0cnVlKTsJ CQlcCj4gKwkgICAgICh7IHU2NCB0ZW1wID0gQUxJR04oc3RhcnQrMSwgMSA8PCBHRU44X1BERV9T SElGVCk7CQlcCj4gKwkJICAgIHRlbXAgPSBtaW4odGVtcCAtIHN0YXJ0LCBsZW5ndGgpOwkJCVwK PiArCQkgICAgc3RhcnQgKz0gdGVtcCwgbGVuZ3RoIC09IHRlbXA7IH0pLCArK2l0ZXIpCj4gKwo+ ICsjZGVmaW5lIGdlbjhfZm9yX2VhY2hfcGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3RoLCBpdGVy KQkJXAo+ICsJZm9yIChpdGVyID0gZ2VuOF9wZHBlX2luZGV4KHN0YXJ0KTsJCQkJXAo+ICsJICAg ICBsZW5ndGggPiAwICYmIGl0ZXIgPCBJOTE1X1BEUEVTX1BFUl9QRFAoZGV2KSAmJgkJXAo+ICsJ CShwZCA9IChwZHApLT5wYWdlX2RpcmVjdG9yeVtpdGVyXSwgdHJ1ZSk7CQlcCj4gKwkgICAgICh7 IHU2NCB0ZW1wID0gQUxJR04oc3RhcnQrMSwgMSA8PCBHRU44X1BEUEVfU0hJRlQpOwlcCj4gKwkJ ICAgIHRlbXAgPSBtaW4odGVtcCAtIHN0YXJ0LCBsZW5ndGgpOwkJCVwKPiArCQkgICAgc3RhcnQg Kz0gdGVtcCwgbGVuZ3RoIC09IHRlbXA7IH0pLCArK2l0ZXIpCj4gKwo+ICsjZGVmaW5lIGdlbjhf Zm9yX2VhY2hfcG1sNGUocGRwLCBwbWw0LCBzdGFydCwgbGVuZ3RoLCBpdGVyKQkJXAo+ICsJZm9y IChpdGVyID0gZ2VuOF9wbWw0ZV9pbmRleChzdGFydCk7CQkJCVwKPiArCSAgICAgbGVuZ3RoID4g MCAmJiBpdGVyIDwgR0VOOF9QTUw0RVNfUEVSX1BNTDQgJiYJCVwKPiArCQkocGRwID0gKHBtbDQp LT5wZHBzW2l0ZXJdLCB0cnVlKTsJCQlcCj4gKwkgICAgICh7IHU2NCB0ZW1wID0gQUxJR04oc3Rh cnQrMSwgMVVMTCA8PCBHRU44X1BNTDRFX1NISUZUKTsJXAo+ICsJCSAgICB0ZW1wID0gbWluKHRl bXAgLSBzdGFydCwgbGVuZ3RoKTsJCQlcCj4gKwkJICAgIHN0YXJ0ICs9IHRlbXAsIGxlbmd0aCAt PSB0ZW1wOyB9KSwgKytpdGVyKQo+ICAKPiAgc3RhdGljIGlubGluZSB1aW50MzJfdCBnZW44X3B0 ZV9pbmRleCh1aW50NjRfdCBhZGRyZXNzKQo+ICB7Cj4gLS0gCj4gMS45LjEKPiAKPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBW ZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZm d2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==