From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH v3] drm/i915: Make power domain masks 64 bit long Date: Thu, 09 Feb 2017 11:32:51 +0200 Message-ID: <1486632771.4835.6.camel@gmail.com> References: <20170209081445.14674-1-ander.conselvan.de.oliveira@intel.com> <20170209093121.24410-1-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x242.google.com (mail-pg0-x242.google.com [IPv6:2607:f8b0:400e:c05::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 746936E17A for ; Thu, 9 Feb 2017 09:32:57 +0000 (UTC) Received: by mail-pg0-x242.google.com with SMTP id 194so17482244pgd.0 for ; Thu, 09 Feb 2017 01:32:57 -0800 (PST) In-Reply-To: <20170209093121.24410-1-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE3LTAyLTA5IGF0IDExOjMxICswMjAwLCBBbmRlciBDb25zZWx2YW4gZGUgT2xp dmVpcmEgd3JvdGU6Cj4gVGhlcmUgYXJlIGN1cnJlbnRseSAzMCBwb3dlciBkb21haW5zLCB3aGlj aCBwdXRzIHVzIHByZXR0eSBjbG9zZSB0byB0aGUKPiBsaW1pdCB3aXRoIDMyIGJpdCBtYXNrcy4g UHJlcGFyZSBmb3IgdGhlIGZ1dHVyZSBhbmQgaW5jcmVhc2UgdGhlIGxpbWl0Cj4gdG8gNjQgYml0 Lgo+IAo+IHYyOiBSZWJhc2UKPiB2Mzogcy91bnNpZ25lZCBsb25nIGxvbmcvdTY0LyAoSm9vbmFz KQo+IMKgwqDCoMKgQWxsb3cgdGhlIDY0dGggYml0IG9mIHRoZSBtYXNrIHRvIGJlIHVzZWQuIChK b29uYXMpCgo2M3JkLgoKPiAKPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50 ZWwuY29tPgo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gQ2M6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVk LW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUu b2xpdmVpcmFAaW50ZWwuCj4gY29tPgo+IFJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4gPGpv b25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5owqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDQgKy0KPiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuY8KgwqDCoMKgfMKgwqAzNCArLS0KPiDCoGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKgwqDCoMKgwqDCoHzCoMKgwqAyICstCj4g wqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAzNzggKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLQo+IC0KPiDCoDQgZmlsZXMgY2hhbmdlZCwgMjA5IGluc2Vy dGlvbnMoKyksIDIwOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBp bmRleCA1OGJiNWNhLi5jZWI3Njk5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAg LTQ5NCw3ICs0OTQsNyBAQCBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKPiDCoAo+IMKgI2RlZmluZSBm b3JfZWFjaF9wb3dlcl9kb21haW4oZG9tYWluLCBtYXNrKQkJCQlcCj4gwqAJZm9yICgoZG9tYWlu KSA9IDA7IChkb21haW4pIDwgUE9XRVJfRE9NQUlOX05VTTsgKGRvbWFpbikrKykJXAo+IC0JCWZv cl9lYWNoX2lmICgoMSA8PCAoZG9tYWluKSkgJiAobWFzaykpCj4gKwkJZm9yX2VhY2hfaWYgKEJJ VF9VTEwoZG9tYWluKSAmIChtYXNrKSkKPiDCoAo+IMKgc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7 Cj4gwqBzdHJ1Y3QgaTkxNV9tbV9zdHJ1Y3Q7Cj4gQEAgLTE0MDUsNyArMTQwNSw3IEBAIHN0cnVj dCBpOTE1X3Bvd2VyX3dlbGwgewo+IMKgCWludCBjb3VudDsKPiDCoAkvKiBjYWNoZWQgaHcgZW5h YmxlZCBzdGF0ZSAqLwo+IMKgCWJvb2wgaHdfZW5hYmxlZDsKPiAtCXVuc2lnbmVkIGxvbmcgZG9t YWluczsKPiArCXU2NCBkb21haW5zOwo+IMKgCS8qIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlz IHBvd2VyIHdlbGwgKi8KPiDCoAl1bnNpZ25lZCBsb25nIGlkOwo+IMKgCS8qCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggZjYyNTljOS4uYWI3OGRmOSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNTY2NiwxNSArNTY2NiwxNSBA QCBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihzdHJ1Y3QKPiBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyKQo+IMKgCX0KPiDCoH0KPiDCoAo+IC1zdGF0aWMgdW5zaWduZWQg bG9uZyBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAtCQkJ CQnCoMKgwqDCoHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gKmNydGNfc3RhdGUpCj4gK3N0YXRp YyB1NjQgZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKwkJ CQnCoMKgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gwqB7Cj4gwqAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gwqAJc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyOwo+IMKgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjKTsKPiDCoAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gLQl1bnNp Z25lZCBsb25nIG1hc2s7Cj4gKwl1NjQgbWFzazsKPiDCoAllbnVtIHRyYW5zY29kZXIgdHJhbnNj b2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwo+IMKgCj4gwqAJaWYgKCFjcnRjX3N0 YXRlLT5iYXNlLmFjdGl2ZSkKPiBAQCAtNTY4NCwxOSArNTY4NCwxOSBAQCBzdGF0aWMgdW5zaWdu ZWQgbG9uZyBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdAo+IGRybV9jcnRjICpjcnRjLAo+ IMKgCW1hc2sgfD0gQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSKHRyYW5zY29kZXIpKTsKPiDC oAlpZiAoY3J0Y19zdGF0ZS0+cGNoX3BmaXQuZW5hYmxlZCB8fAo+IMKgCcKgwqDCoMKgY3J0Y19z dGF0ZS0+cGNoX3BmaXQuZm9yY2VfdGhydSkKPiAtCQltYXNrIHw9IEJJVChQT1dFUl9ET01BSU5f UElQRV9QQU5FTF9GSVRURVIocGlwZSkpOwo+ICsJCW1hc2sgfD0gQklUX1VMTChQT1dFUl9ET01B SU5fUElQRV9QQU5FTF9GSVRURVIocGlwZSkpOwo+IMKgCj4gwqAJZHJtX2Zvcl9lYWNoX2VuY29k ZXJfbWFzayhlbmNvZGVyLCBkZXYsIGNydGNfc3RhdGUtCj4gPmJhc2UuZW5jb2Rlcl9tYXNrKSB7 Cj4gwqAJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0KPiB0b19pbnRlbF9l bmNvZGVyKGVuY29kZXIpOwo+IMKgCj4gLQkJbWFzayB8PSBCSVQoaW50ZWxfZGlzcGxheV9wb3J0 X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKSk7Cj4gKwkJbWFzayB8PQo+IEJJVF9VTEwoaW50 ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKSk7Cj4gwqAJfQo+IMKg Cj4gwqAJaWYgKEhBU19EREkoZGV2X3ByaXYpICYmIGNydGNfc3RhdGUtPmhhc19hdWRpbykKPiDC oAkJbWFzayB8PSBCSVQoUE9XRVJfRE9NQUlOX0FVRElPKTsKPiDCoAo+IMKgCWlmIChjcnRjX3N0 YXRlLT5zaGFyZWRfZHBsbCkKPiAtCQltYXNrIHw9IEJJVChQT1dFUl9ET01BSU5fUExMUyk7Cj4g KwkJbWFzayB8PSBCSVRfVUxMKFBPV0VSX0RPTUFJTl9QTExTKTsKPiDCoAo+IMKgCXJldHVybiBt YXNrOwo+IMKgfQo+IEBAIC01NzA4LDcgKzU3MDgsNyBAQCBtb2Rlc2V0X2dldF9jcnRjX3Bvd2Vy X2RvbWFpbnMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKPiDCoAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gwqAJZW51bSBpbnRlbF9kaXNw bGF5X3Bvd2VyX2RvbWFpbiBkb21haW47Cj4gLQl1bnNpZ25lZCBsb25nIGRvbWFpbnMsIG5ld19k b21haW5zLCBvbGRfZG9tYWluczsKPiArCXU2NCBkb21haW5zLCBuZXdfZG9tYWlucywgb2xkX2Rv bWFpbnM7Cj4gwqAKPiDCoAlvbGRfZG9tYWlucyA9IGludGVsX2NydGMtPmVuYWJsZWRfcG93ZXJf ZG9tYWluczsKPiDCoAlpbnRlbF9jcnRjLT5lbmFibGVkX3Bvd2VyX2RvbWFpbnMgPSBuZXdfZG9t YWlucyA9Cj4gQEAgLTU3MjMsNyArNTcyMyw3IEBAIG1vZGVzZXRfZ2V0X2NydGNfcG93ZXJfZG9t YWlucyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyB2b2lkIG1v ZGVzZXRfcHV0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+IC0JCQkJwqDCoMKgwqDCoMKgdW5zaWduZWQgbG9uZyBkb21haW5zKQo+ICsJCQkJwqDCoMKg wqDCoMKgdTY0IGRvbWFpbnMpCj4gwqB7Cj4gwqAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2Rv bWFpbiBkb21haW47Cj4gwqAKPiBAQCAtODk5Miw3ICs4OTkyLDcgQEAgc3RhdGljIHZvaWQgaGFz d2VsbF9nZXRfZGRpX3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdiwKPiDC oAo+IMKgc3RhdGljIGJvb2wgaHN3X2dldF90cmFuc2NvZGVyX3N0YXRlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAo+IMKgCQkJCcKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCj4gLQkJCQnCoMKgwqDCoMKgdW5zaWduZWQgbG9uZyAqcG93ZXJfZG9tYWluX21h c2spCj4gKwkJCQnCoMKgwqDCoMKgdTY0ICpwb3dlcl9kb21haW5fbWFzaykKPiDCoHsKPiDCoAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gwqAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IEBAIC05MDM0LDcgKzkwMzQs NyBAQCBzdGF0aWMgYm9vbCBoc3dfZ2V0X3RyYW5zY29kZXJfc3RhdGUoc3RydWN0IGludGVsX2Ny dGMKPiAqY3J0YywKPiDCoAlwb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fVFJBTlNDT0RFUihw aXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIpOwo+IMKgCWlmICghaW50ZWxfZGlzcGxheV9wb3dl cl9nZXRfaWZfZW5hYmxlZChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKSkKPiDCoAkJcmV0dXJuIGZh bHNlOwo+IC0JKnBvd2VyX2RvbWFpbl9tYXNrIHw9IEJJVChwb3dlcl9kb21haW4pOwo+ICsJKnBv d2VyX2RvbWFpbl9tYXNrIHw9IEJJVF9VTEwocG93ZXJfZG9tYWluKTsKPiDCoAo+IMKgCXRtcCA9 IEk5MTVfUkVBRChQSVBFQ09ORihwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIpKTsKPiDCoAo+ IEBAIC05MDQzLDcgKzkwNDMsNyBAQCBzdGF0aWMgYm9vbCBoc3dfZ2V0X3RyYW5zY29kZXJfc3Rh dGUoc3RydWN0IGludGVsX2NydGMKPiAqY3J0YywKPiDCoAo+IMKgc3RhdGljIGJvb2wgYnh0X2dl dF9kc2lfdHJhbnNjb2Rlcl9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiDCoAkJCQkJ wqBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ICpwaXBlX2NvbmZpZywKPiAtCQkJCQnCoHVuc2ln bmVkIGxvbmcgKnBvd2VyX2RvbWFpbl9tYXNrKQo+ICsJCQkJCcKgdTY0ICpwb3dlcl9kb21haW5f bWFzaykKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7 Cj4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ IEBAIC05MDYxLDcgKzkwNjEsNyBAQCBzdGF0aWMgYm9vbCBieHRfZ2V0X2RzaV90cmFuc2NvZGVy X3N0YXRlKHN0cnVjdAo+IGludGVsX2NydGMgKmNydGMsCj4gwqAJCXBvd2VyX2RvbWFpbiA9IFBP V0VSX0RPTUFJTl9UUkFOU0NPREVSKGNwdV90cmFuc2NvZGVyKTsKPiDCoAkJaWYgKCFpbnRlbF9k aXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRldl9wcml2LAo+IHBvd2VyX2RvbWFpbikpCj4g wqAJCQljb250aW51ZTsKPiAtCQkqcG93ZXJfZG9tYWluX21hc2sgfD0gQklUKHBvd2VyX2RvbWFp bik7Cj4gKwkJKnBvd2VyX2RvbWFpbl9tYXNrIHw9IEJJVF9VTEwocG93ZXJfZG9tYWluKTsKPiDC oAo+IMKgCQkvKgo+IMKgCQnCoCogVGhlIFBMTCBuZWVkcyB0byBiZSBlbmFibGVkIHdpdGggYSB2 YWxpZCBkaXZpZGVyCj4gQEAgLTkxMzYsMTMgKzkxMzYsMTMgQEAgc3RhdGljIGJvb2wgaGFzd2Vs bF9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMKPiAqY3J0YywKPiDCoHsKPiDCoAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKPiDCoAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiAt CXVuc2lnbmVkIGxvbmcgcG93ZXJfZG9tYWluX21hc2s7Cj4gKwl1NjQgcG93ZXJfZG9tYWluX21h c2s7Cj4gwqAJYm9vbCBhY3RpdmU7Cj4gwqAKPiDCoAlwb3dlcl9kb21haW4gPSBQT1dFUl9ET01B SU5fUElQRShjcnRjLT5waXBlKTsKPiDCoAlpZiAoIWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0X2lm X2VuYWJsZWQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbikpCj4gwqAJCXJldHVybiBmYWxzZTsKPiAt CXBvd2VyX2RvbWFpbl9tYXNrID0gQklUKHBvd2VyX2RvbWFpbik7Cj4gKwlwb3dlcl9kb21haW5f bWFzayA9IEJJVF9VTEwocG93ZXJfZG9tYWluKTsKPiDCoAo+IMKgCXBpcGVfY29uZmlnLT5zaGFy ZWRfZHBsbCA9IE5VTEw7Cj4gwqAKPiBAQCAtOTE3Niw3ICs5MTc2LDcgQEAgc3RhdGljIGJvb2wg aGFzd2VsbF9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMKPiAqY3J0YywKPiDCoAo+ IMKgCXBvd2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9QSVBFX1BBTkVMX0ZJVFRFUihjcnRjLT5w aXBlKTsKPiDCoAlpZiAoaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZfcHJp diwgcG93ZXJfZG9tYWluKSkgewo+IC0JCXBvd2VyX2RvbWFpbl9tYXNrIHw9IEJJVChwb3dlcl9k b21haW4pOwo+ICsJCXBvd2VyX2RvbWFpbl9tYXNrIHw9IEJJVF9VTEwocG93ZXJfZG9tYWluKTsK PiDCoAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiDCoAkJCXNreWxha2VfZ2V0X3Bm aXRfY29uZmlnKGNydGMsIHBpcGVfY29uZmlnKTsKPiDCoAkJZWxzZQo+IEBAIC0xMjg0MSw3ICsx Mjg0MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QKPiBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiDCoAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gwqAJ c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NzdGF0ZTsKPiDCoAlib29sIGh3X2NoZWNr ID0gaW50ZWxfc3RhdGUtPm1vZGVzZXQ7Cj4gLQl1bnNpZ25lZCBsb25nIHB1dF9kb21haW5zW0k5 MTVfTUFYX1BJUEVTXSA9IHt9Owo+ICsJdTY0IHB1dF9kb21haW5zW0k5MTVfTUFYX1BJUEVTXSA9 IHt9Owo+IMKgCXVuc2lnbmVkIGNydGNfdmJsYW5rX21hc2sgPSAwOwo+IMKgCWludCBpOwo+IMKg Cj4gQEAgLTE1NTY1LDcgKzE1NTY1LDcgQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IMKgCQlpbGtfd21fZ2V0X2h3X3N0YXRlKGRldik7Cj4g wqAKPiDCoAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0Yykgewo+IC0JCXVuc2lnbmVkIGxv bmcgcHV0X2RvbWFpbnM7Cj4gKwkJdTY0IHB1dF9kb21haW5zOwo+IMKgCj4gwqAJCXB1dF9kb21h aW5zID0gbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5zKCZjcnRjLT5iYXNlLAo+IGNydGMt PmNvbmZpZyk7Cj4gwqAJCWlmIChXQVJOX09OKHB1dF9kb21haW5zKSkKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggZWZkMWJiYS4uY2YwYzc3ZiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gQEAgLTcxNSw3ICs3MTUsNyBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7Cj4g wqAJYm9vbCBhY3RpdmU7Cj4gwqAJYm9vbCBsb3dmcmVxX2F2YWlsOwo+IMKgCXU4IHBsYW5lX2lk c19tYXNrOwo+IC0JdW5zaWduZWQgbG9uZyBlbmFibGVkX3Bvd2VyX2RvbWFpbnM7Cj4gKwl1bnNp Z25lZCBsb25nIGxvbmcgZW5hYmxlZF9wb3dlcl9kb21haW5zOwo+IMKgCXN0cnVjdCBpbnRlbF9v dmVybGF5ICpvdmVybGF5Owo+IMKgCXN0cnVjdCBpbnRlbF9mbGlwX3dvcmsgKmZsaXBfd29yazsK PiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3Bt LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IGluZGV4IDBm MDBhNWEuLjg3OTU2NzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cnVudGltZV9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9w bS5jCj4gQEAgLTIxMCw3ICsyMTAsNyBAQCBib29sIF9faW50ZWxfZGlzcGxheV9wb3dlcl9pc19l bmFibGVkKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCj4gwqAJaXNf ZW5hYmxlZCA9IHRydWU7Cj4gwqAKPiAtCWZvcl9lYWNoX3Bvd2VyX3dlbGxfcmV2KGksIHBvd2Vy X3dlbGwsIEJJVChkb21haW4pLCBwb3dlcl9kb21haW5zKSB7Cj4gKwlmb3JfZWFjaF9wb3dlcl93 ZWxsX3JldihpLCBwb3dlcl93ZWxsLCBCSVRfVUxMKGRvbWFpbiksCj4gcG93ZXJfZG9tYWlucykg ewo+IMKgCQlpZiAocG93ZXJfd2VsbC0+YWx3YXlzX29uKQo+IMKgCQkJY29udGludWU7Cj4gwqAK PiBAQCAtMzg1LDEyNCArMzg1LDEyNCBAQCBzdGF0aWMgdm9pZCBoc3dfc2V0X3Bvd2VyX3dlbGwo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gwqB9Cj4gwqAKPiDCoCNkZWZp bmUgU0tMX0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUyAoCQlcCj4gLQlCSVQoUE9X RVJfRE9NQUlOX1RSQU5TQ09ERVJfQSkgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0Ip IHwJCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQikgfAkJXAo+IC0JQklUKFBP V0VSX0RPTUFJTl9QSVBFX0MpIHwJCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJf QykgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0JfUEFORUxfRklUVEVSKSB8CQlcCj4g LQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQ19QQU5FTF9GSVRURVIpIHwJCVwKPiAtCUJJVChQT1dF Ul9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QT1JU X0RESV9DX0xBTkVTKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMp IHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfRV9MQU5FUykgfAkJXAo+IC0JQklU KFBPV0VSX0RPTUFJTl9BVVhfQikgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQkJXAo+IC0JQklUKFBP V0VSX0RPTUFJTl9BVVhfRCkgfAkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVESU8pIHwJCQlc Cj4gLQlCSVQoUE9XRVJfRE9NQUlOX1ZHQSkgfAkJCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0lO SVQpKQo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9BKSB8CQlcCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9QSVBFX0IpIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9U UkFOU0NPREVSX0IpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQykgfAkJCVwK PiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQykgfAkJXAo+ICsJQklUX1VMTChQ T1dFUl9ET01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9E T01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5f UE9SVF9ERElfQl9MQU5FUykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElf Q19MQU5FUykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUykg fAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfRV9MQU5FUykgfAkJXAo+ICsJ QklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0IpIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCQlc Cj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfRCkgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJf RE9NQUlOX0FVRElPKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fVkdBKSB8CQkJCVwK PiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+IMKgI2RlZmluZSBTS0xfRElTUExBWV9E RElfQV9FX1BPV0VSX0RPTUFJTlMgKAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9B X0xBTkVTKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0VfTEFORVMpIHwJCVwK PiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JU X0RESV9BX0xBTkVTKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0xB TkVTKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoCNkZWZpbmUgU0tM X0RJU1BMQVlfRERJX0JfUE9XRVJfRE9NQUlOUyAoCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BP UlRfRERJX0JfTEFORVMpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VS X0RPTUFJTl9JTklUKSkKPiDCoCNkZWZpbmUgU0tMX0RJU1BMQVlfRERJX0NfUE9XRVJfRE9NQUlO UyAoCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJCVwKPiAtCUJJ VChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9D X0xBTkVTKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoCNkZWZpbmUg U0tMX0RJU1BMQVlfRERJX0RfUE9XRVJfRE9NQUlOUyAoCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlO X1BPUlRfRERJX0RfTEFORVMpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlC SVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0xBTkVTKSB8CQlcCj4gKwlCSVRfVUxMKFBP V0VSX0RPTUFJTl9JTklUKSkKPiDCoCNkZWZpbmUgU0tMX0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RP TUFJTlMgKAkJXAo+IMKgCVNLTF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMgfAkJ XAo+IC0JQklUKFBPV0VSX0RPTUFJTl9NT0RFU0VUKSB8CQkJXAo+IC0JQklUKFBPV0VSX0RPTUFJ Tl9BVVhfQSkgfAkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRfVUxMKFBP V0VSX0RPTUFJTl9NT0RFU0VUKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0Ep IHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoAo+IMKgI2RlZmluZSBC WFRfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TICgJCVwKPiAtCUJJVChQT1dFUl9E T01BSU5fVFJBTlNDT0RFUl9BKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQikgfAkJ CVwKPiAtCUJJVChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9CKSB8CQlcCj4gLQlCSVQoUE9XRVJf RE9NQUlOX1BJUEVfQykgfAkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9DKSB8 CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQl9QQU5FTF9GSVRURVIpIHwJCVwKPiAtCUJJ VChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAkJXAo+IC0JQklUKFBPV0VSX0RP TUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJ X0NfTEFORVMpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVYX0IpIHwJCQlcCj4gLQlCSVQo UE9XRVJfRE9NQUlOX0FVWF9DKSB8CQkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9BVURJTykgfAkJ CVwKPiAtCUJJVChQT1dFUl9ET01BSU5fVkdBKSB8CQkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5f R01CVVMpIHwJCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsJQklUX1VMTChQT1dF Ul9ET01BSU5fVFJBTlNDT0RFUl9BKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBF X0IpIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJCVwKPiAr CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQykgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9N QUlOX1RSQU5TQ09ERVJfQykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9CX1BB TkVMX0ZJVFRFUikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJ VFRFUikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAkJ XAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykgfAkJXAo+ICsJQklU X1VMTChQT1dFUl9ET01BSU5fQVVYX0IpIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9B VVhfQykgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVRElPKSB8CQkJXAo+ICsJQklU X1VMTChQT1dFUl9ET01BSU5fVkdBKSB8CQkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0dN QlVTKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCj4gwqAjZGVmaW5lIEJY VF9ESVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5TICgJCVwKPiDCoAlCWFRfRElTUExBWV9QT1dF UldFTExfMl9QT1dFUl9ET01BSU5TIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fTU9ERVNFVCkg fAkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCj4gLQlCSVQoUE9XRVJfRE9N QUlOX0lOSVQpKQo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwKPiArCUJJ VF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5f SU5JVCkpCj4gwqAjZGVmaW5lIEJYVF9EUElPX0NNTl9BX1BPV0VSX0RPTUFJTlMgKAkJCVwKPiAt CUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQV9MQU5FUykgfAkJXAo+IC0JQklUKFBPV0VSX0RP TUFJTl9BVVhfQSkgfAkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRfVUxM KFBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVTKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RP TUFJTl9BVVhfQSkgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+IMKgI2Rl ZmluZSBCWFRfRFBJT19DTU5fQkNfUE9XRVJfRE9NQUlOUyAoCQkJXAo+IC0JQklUKFBPV0VSX0RP TUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJ X0NfTEFORVMpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVYX0IpIHwJCQlcCj4gLQlCSVQo UE9XRVJfRE9NQUlOX0FVWF9DKSB8CQkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiAr CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwKPiArCUJJVF9VTEwo UE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9N QUlOX0FVWF9CKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCQlcCj4g KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoAo+IMKgI2RlZmluZSBHTEtfRElTUExB WV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TICgJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fVFJB TlNDT0RFUl9BKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQikgfAkJCVwKPiAtCUJJ VChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9CKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BJ UEVfQykgfAkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9DKSB8CQlcCj4gLQlC SVQoUE9XRVJfRE9NQUlOX1BJUEVfQl9QQU5FTF9GSVRURVIpIHwJCVwKPiAtCUJJVChQT1dFUl9E T01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QT1JU X0RESV9CX0xBTkVTKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMp IHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVYX0IpIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJ CVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVESU8pIHwJCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlO X1ZHQSkgfAkJCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsJQklUX1VMTChQT1dF Ul9ET01BSU5fVFJBTlNDT0RFUl9BKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBF X0IpIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJCVwKPiAr CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQykgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9N QUlOX1RSQU5TQ09ERVJfQykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9CX1BB TkVMX0ZJVFRFUikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJ VFRFUikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAkJ XAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykgfAkJXAo+ICsJQklU X1VMTChQT1dFUl9ET01BSU5fQVVYX0IpIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCQlcCj4g KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVURJTykgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9N QUlOX1ZHQSkgfAkJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoCNkZWZp bmUgR0xLX0RJU1BMQVlfRERJX0FfUE9XRVJfRE9NQUlOUyAoCQlcCj4gLQlCSVQoUE9XRVJfRE9N QUlOX1BPUlRfRERJX0FfTEFORVMpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4g KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVTKSB8CQlcCj4gKwlCSVRfVUxM KFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoCNkZWZpbmUgR0xLX0RJU1BMQVlfRERJX0JfUE9XRVJf RE9NQUlOUyAoCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwK PiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JU X0RESV9CX0xBTkVTKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoCNk ZWZpbmUgR0xLX0RJU1BMQVlfRERJX0NfUE9XRVJfRE9NQUlOUyAoCQlcCj4gLQlCSVQoUE9XRVJf RE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkp Cj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CQlcCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoCNkZWZpbmUgR0xLX0RQSU9fQ01OX0FfUE9XRVJf RE9NQUlOUyAoCQkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVTKSB8CQlc Cj4gLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9J TklUKSkKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0FfTEFORVMpIHwJCVwKPiAr CUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fSU5JVCkpCj4gwqAjZGVmaW5lIEdMS19EUElPX0NNTl9CX1BPV0VSX0RPTUFJTlMgKAkJCVwK PiAtCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAkJXAo+IC0JQklUKFBPV0VS X0RPTUFJTl9BVVhfQikgfAkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VS X0RPTUFJTl9BVVhfQikgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+IMKg I2RlZmluZSBHTEtfRFBJT19DTU5fQ19QT1dFUl9ET01BSU5TICgJCQlcCj4gLQlCSVQoUE9XRVJf RE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVYX0Mp IHwJCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fUE9SVF9ERElfQ19MQU5FUykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0Mp IHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoCNkZWZpbmUgR0xLX0RJ U1BMQVlfQVVYX0FfUE9XRVJfRE9NQUlOUyAoCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9B KSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fQVVYX0EpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+IMKgI2RlZmlu ZSBHTEtfRElTUExBWV9BVVhfQl9QT1dFUl9ET01BSU5TICgJCVwKPiAtCUJJVChQT1dFUl9ET01B SU5fQVVYX0IpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRfVUxMKFBP V0VSX0RPTUFJTl9BVVhfQikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCj4g wqAjZGVmaW5lIEdMS19ESVNQTEFZX0FVWF9DX1BPV0VSX0RPTUFJTlMgKAkJXAo+IC0JQklUKFBP V0VSX0RPTUFJTl9BVVhfQykgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiArCUJJ VF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9J TklUKSkKPiDCoCNkZWZpbmUgR0xLX0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMgKAkJXAo+ IMKgCUdMS19ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMgfAkJXAo+IC0JQklUKFBP V0VSX0RPTUFJTl9NT0RFU0VUKSB8CQkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJ CVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9N T0RFU0VUKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCj4gKwlC SVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoAo+IMKgc3RhdGljIHZvaWQgYXNzZXJ0X2Nh bl9lbmFibGVfZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiBA QCAtMTI1MSw3ICsxMjUxLDcgQEAgc3RhdGljIHZvaWQgdmx2X2RwaW9fY21uX3Bvd2VyX3dlbGxf ZGlzYWJsZShzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAl2bHZfc2V0 X3Bvd2VyX3dlbGwoZGV2X3ByaXYsIHBvd2VyX3dlbGwsIGZhbHNlKTsKPiDCoH0KPiDCoAo+IC0j ZGVmaW5lIFBPV0VSX0RPTUFJTl9NQVNLIChHRU5NQVNLKFBPV0VSX0RPTUFJTl9OVU0gLSAxLCAw KSkKPiArI2RlZmluZSBQT1dFUl9ET01BSU5fTUFTSyAoR0VOTUFTS19VTEwoUE9XRVJfRE9NQUlO X05VTSAtIDEsIDApKQo+IMKgCj4gwqBzdGF0aWMgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqbG9v a3VwX3Bvd2VyX3dlbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gwqAJ CQkJCQnCoGludCBwb3dlcl93ZWxsX2lkKQo+IEBAIC0xNjk3LDcgKzE2OTcsNyBAQCBfX2ludGVs X2Rpc3BsYXlfcG93ZXJfZ2V0X2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZf cHJpdiwKPiDCoAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsOwo+IMKgCWludCBp Owo+IMKgCj4gLQlmb3JfZWFjaF9wb3dlcl93ZWxsKGksIHBvd2VyX3dlbGwsIEJJVChkb21haW4p LCBwb3dlcl9kb21haW5zKQo+ICsJZm9yX2VhY2hfcG93ZXJfd2VsbChpLCBwb3dlcl93ZWxsLCBC SVRfVUxMKGRvbWFpbiksIHBvd2VyX2RvbWFpbnMpCj4gwqAJCWludGVsX3Bvd2VyX3dlbGxfZ2V0 KGRldl9wcml2LCBwb3dlcl93ZWxsKTsKPiDCoAo+IMKgCXBvd2VyX2RvbWFpbnMtPmRvbWFpbl91 c2VfY291bnRbZG9tYWluXSsrOwo+IEBAIC0xNzkyLDcgKzE3OTIsNyBAQCB2b2lkIGludGVsX2Rp c3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LAo+IMKg CcKgwqDCoMKgwqBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZG9tYWluKSk7Cj4gwqAJ cG93ZXJfZG9tYWlucy0+ZG9tYWluX3VzZV9jb3VudFtkb21haW5dLS07Cj4gwqAKPiAtCWZvcl9l YWNoX3Bvd2VyX3dlbGxfcmV2KGksIHBvd2VyX3dlbGwsIEJJVChkb21haW4pLCBwb3dlcl9kb21h aW5zKQo+ICsJZm9yX2VhY2hfcG93ZXJfd2VsbF9yZXYoaSwgcG93ZXJfd2VsbCwgQklUX1VMTChk b21haW4pLAo+IHBvd2VyX2RvbWFpbnMpCj4gwqAJCWludGVsX3Bvd2VyX3dlbGxfcHV0KGRldl9w cml2LCBwb3dlcl93ZWxsKTsKPiDCoAo+IMKgCW11dGV4X3VubG9jaygmcG93ZXJfZG9tYWlucy0+ bG9jayk7Cj4gQEAgLTE4MDEsMTE3ICsxODAxLDExNyBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcG93 ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LAo+IMKgfQo+IMKgCj4g wqAjZGVmaW5lIEhTV19ESVNQTEFZX1BPV0VSX0RPTUFJTlMgKAkJCVwKPiAtCUJJVChQT1dFUl9E T01BSU5fUElQRV9CKSB8CQkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0MpIHwJCQlcCj4g LQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQV9QQU5FTF9GSVRURVIpIHwJCVwKPiAtCUJJVChQT1dF Ul9ET01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9Q SVBFX0NfUEFORUxfRklUVEVSKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJf QSkgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJCVwKPiAtCUJJVChQ T1dFUl9ET01BSU5fVFJBTlNDT0RFUl9DKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRf RERJX0JfTEFORVMpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykg fAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0xBTkVTKSB8CQlcCj4gLQlCSVQo UE9XRVJfRE9NQUlOX1BPUlRfQ1JUKSB8IC8qIERESSBFICovCVwKPiAtCUJJVChQT1dFUl9ET01B SU5fVkdBKSB8CQkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVESU8pIHwJCQlcCj4gLQlCSVQo UE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9CKSB8CQkJ XAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DKSB8CQkJXAo+ICsJQklUX1VMTChQT1dF Ul9ET01BSU5fUElQRV9BX1BBTkVMX0ZJVFRFUikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQ RV9DX1BBTkVMX0ZJVFRFUikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fVFJBTlNDT0RF Ul9BKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJCVwKPiAr CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQykgfAkJXAo+ICsJQklUX1VMTChQT1dF Ul9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5f UE9SVF9ERElfQ19MQU5FUykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElf RF9MQU5FUykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9DUlQpIHwgLyogRERJ IEUgKi8JXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fVkdBKSB8CQkJCVwKPiArCUJJVF9VTEwo UE9XRVJfRE9NQUlOX0FVRElPKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkp Cj4gwqAKPiDCoCNkZWZpbmUgQkRXX0RJU1BMQVlfUE9XRVJfRE9NQUlOUyAoCQkJXAo+IC0JQklU KFBPV0VSX0RPTUFJTl9QSVBFX0IpIHwJCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQykg fAkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAkJXAo+IC0J QklUKFBPV0VSX0RPTUFJTl9QSVBFX0NfUEFORUxfRklUVEVSKSB8CQlcCj4gLQlCSVQoUE9XRVJf RE9NQUlOX1RSQU5TQ09ERVJfQSkgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVS X0IpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9DKSB8CQlcCj4gLQlCSVQo UE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5f UE9SVF9ERElfQ19MQU5FUykgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0xB TkVTKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfQ1JUKSB8IC8qIERESSBFICovCVwK PiAtCUJJVChQT1dFUl9ET01BSU5fVkdBKSB8CQkJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVE SU8pIHwJCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsJQklUX1VMTChQT1dFUl9E T01BSU5fUElQRV9CKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DKSB8CQkJ XAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAkJXAo+ICsJ QklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAkJXAo+ICsJQklUX1VM TChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9BKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJ Tl9UUkFOU0NPREVSX0IpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJf QykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAkJXAo+ ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykgfAkJXAo+ICsJQklUX1VM TChQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9E T01BSU5fUE9SVF9DUlQpIHwgLyogRERJIEUgKi8JXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5f VkdBKSB8CQkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVRElPKSB8CQkJXAo+ICsJQklU X1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCj4gwqAKPiDCoCNkZWZpbmUgVkxWX0RJU1BMQVlfUE9X RVJfRE9NQUlOUyAoCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQSkgfAkJXAo+IC0JQklU KFBPV0VSX0RPTUFJTl9QSVBFX0IpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fUElQRV9BX1BB TkVMX0ZJVFRFUikgfAlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQl9QQU5FTF9GSVRURVIp IHwJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0EpIHwJXAo+IC0JQklUKFBPV0VS X0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9C X0xBTkVTKSB8CVwKPiAtCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykgfAlcCj4g LQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRFNJKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BP UlRfQ1JUKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1ZHQSkgfAkJCVwKPiAtCUJJVChQT1dF Ul9ET01BSU5fQVVESU8pIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVYX0IpIHwJCVwKPiAt CUJJVChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fR01CVVMp IHwJCVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJ Tl9QSVBFX0EpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQikgfAkJXAo+ICsJ QklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9BX1BBTkVMX0ZJVFRFUikgfAlcCj4gKwlCSVRfVUxM KFBPV0VSX0RPTUFJTl9QSVBFX0JfUEFORUxfRklUVEVSKSB8CVwKPiArCUJJVF9VTEwoUE9XRVJf RE9NQUlOX1RSQU5TQ09ERVJfQSkgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NP REVSX0IpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAlc Cj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CVwKPiArCUJJVF9V TEwoUE9XRVJfRE9NQUlOX1BPUlRfRFNJKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9Q T1JUX0NSVCkgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fVkdBKSB8CQkJXAo+ICsJQklU X1VMTChQT1dFUl9ET01BSU5fQVVESU8pIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FV WF9CKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJXAo+ICsJQklUX1VM TChQT1dFUl9ET01BSU5fR01CVVMpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQp KQo+IMKgCj4gwqAjZGVmaW5lIFZMVl9EUElPX0NNTl9CQ19QT1dFUl9ET01BSU5TICgJCVwKPiAt CUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAlcCj4gLQlCSVQoUE9XRVJfRE9N QUlOX1BPUlRfRERJX0NfTEFORVMpIHwJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0NSVCkg fAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9BVVhfQikgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJ Tl9BVVhfQykgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiArCUJJVF9VTEwoUE9X RVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5f UE9SVF9ERElfQ19MQU5FUykgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0NSVCkg fAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0IpIHwJCVwKPiArCUJJVF9VTEwoUE9X RVJfRE9NQUlOX0FVWF9DKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDC oAo+IMKgI2RlZmluZSBWTFZfRFBJT19UWF9CX0xBTkVTXzAxX1BPV0VSX0RPTUFJTlMgKAlcCj4g LQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJXAo+IC0JQklUKFBPV0VSX0RP TUFJTl9BVVhfQikgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiArCUJJVF9VTEwo UE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fQVVYX0IpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+IMKgCj4gwqAj ZGVmaW5lIFZMVl9EUElPX1RYX0JfTEFORVNfMjNfUE9XRVJfRE9NQUlOUyAoCVwKPiAtCUJJVChQ T1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0FV WF9CKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsJQklUX1VMTChQT1dFUl9E T01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhf QikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCj4gwqAKPiDCoCNkZWZpbmUg VkxWX0RQSU9fVFhfQ19MQU5FU18wMV9QT1dFUl9ET01BSU5TICgJXAo+IC0JQklUKFBPV0VSX0RP TUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CVwKPiAtCUJJVChQT1dFUl9ET01BSU5fQVVYX0MpIHwJ CVwKPiAtCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9Q T1JUX0RESV9DX0xBTkVTKSB8CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQlc Cj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoAo+IMKgI2RlZmluZSBWTFZfRFBJ T19UWF9DX0xBTkVTXzIzX1BPV0VSX0RPTUFJTlMgKAlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BP UlRfRERJX0NfTEFORVMpIHwJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJXAo+IC0J QklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJ X0NfTEFORVMpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCVwKPiArCUJJ VF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+IMKgCj4gwqAjZGVmaW5lIENIVl9ESVNQTEFZX1BP V0VSX0RPTUFJTlMgKAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0EpIHwJCVwKPiAtCUJJ VChQT1dFUl9ET01BSU5fUElQRV9CKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQykg fAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0FfUEFORUxfRklUVEVSKSB8CVwKPiAtCUJJ VChQT1dFUl9ET01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAlcCj4gLQlCSVQoUE9XRVJfRE9N QUlOX1BJUEVfQ19QQU5FTF9GSVRURVIpIHwJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NP REVSX0EpIHwJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJXAo+IC0JQklU KFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0MpIHwJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9QT1JU X0RESV9CX0xBTkVTKSB8CVwKPiAtCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykg fAlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMpIHwJXAo+IC0JQklUKFBP V0VSX0RPTUFJTl9QT1JUX0RTSSkgfAkJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9WR0EpIHwJCQlc Cj4gLQlCSVQoUE9XRVJfRE9NQUlOX0FVRElPKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0FV WF9CKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQlcCj4gLQlCSVQoUE9XRVJf RE9NQUlOX0FVWF9EKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0dNQlVTKSB8CQlcCj4gLQlC SVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9BKSB8 CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0IpIHwJCVwKPiArCUJJVF9VTEwoUE9X RVJfRE9NQUlOX1BJUEVfQykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9BX1BB TkVMX0ZJVFRFUikgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0JfUEFORUxfRklU VEVSKSB8CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQ19QQU5FTF9GSVRURVIpIHwJ XAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9BKSB8CVwKPiArCUJJVF9VTEwo UE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQikgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9U UkFOU0NPREVSX0MpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5F UykgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CVwKPiAr CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMpIHwJXAo+ICsJQklUX1VMTChQ T1dFUl9ET01BSU5fUE9SVF9EU0kpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1ZHQSkg fAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVRElPKSB8CQlcCj4gKwlCSVRfVUxMKFBP V0VSX0RPTUFJTl9BVVhfQikgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0MpIHwJ CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9EKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VS X0RPTUFJTl9HTUJVUykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCj4gwqAK PiDCoCNkZWZpbmUgQ0hWX0RQSU9fQ01OX0JDX1BPV0VSX0RPTUFJTlMgKAkJXAo+IC0JQklUKFBP V0VSX0RPTUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8CVwKPiAtCUJJVChQT1dFUl9ET01BSU5fUE9S VF9ERElfQ19MQU5FUykgfAlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9CKSB8CQlcCj4gLQlC SVQoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAlcCj4gKwlCSVRfVUxM KFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9N QUlOX0FVWF9CKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJXAo+ICsJ QklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCj4gwqAKPiDCoCNkZWZpbmUgQ0hWX0RQSU9fQ01O X0RfUE9XRVJfRE9NQUlOUyAoCQlcCj4gLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFO RVMpIHwJXAo+IC0JQklUKFBPV0VSX0RPTUFJTl9BVVhfRCkgfAkJXAo+IC0JQklUKFBPV0VSX0RP TUFJTl9JTklUKSkKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMpIHwJ XAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0QpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJf RE9NQUlOX0lOSVQpKQo+IMKgCj4gwqBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2Vs bF9vcHMgaTl4eF9hbHdheXNfb25fcG93ZXJfd2VsbF9vcHMgPSB7Cj4gwqAJLnN5bmNfaHcgPSBp OXh4X2Fsd2F5c19vbl9wb3dlcl93ZWxsX25vb3AsCj4gQEAgLTIzODgsNyArMjM4OCw3IEBAIGlu dCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2 X3ByaXYpCj4gwqAJZGV2X3ByaXYtPmNzci5hbGxvd2VkX2RjX21hc2sgPSBnZXRfYWxsb3dlZF9k Y19tYXNrKGRldl9wcml2LAo+IMKgCQkJCQkJCcKgwqDCoMKgaTkxNS5lbmFibGVfZGMpOwo+IMKg Cj4gLQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX05VTSA+IDMxKTsKPiArCUJVSUxEX0JVR19P TihQT1dFUl9ET01BSU5fTlVNID4gNjQpOwo+IMKgCj4gwqAJbXV0ZXhfaW5pdCgmcG93ZXJfZG9t YWlucy0+bG9jayk7Cj4gwqAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==