From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD9DA6E44B for ; Wed, 3 Oct 2018 12:07:27 +0000 (UTC) Received: by mail-wm1-x32e.google.com with SMTP id 185-v6so5397473wmt.2 for ; Wed, 03 Oct 2018 05:07:27 -0700 (PDT) From: Tvrtko Ursulin Date: Wed, 3 Oct 2018 13:07:13 +0100 Message-Id: <20181003120718.6898-2-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20181003120718.6898-1-tvrtko.ursulin@linux.intel.com> References: <20181003120718.6898-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC i-g-t 1/6] include: DRM uAPI headers update List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNpZ25lZC1v ZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogaW5j bHVkZS9kcm0tdWFwaS9hbWRncHVfZHJtLmggIHwgIDUyICsrKy0KIGluY2x1ZGUvZHJtLXVhcGkv ZHJtLmggICAgICAgICB8ICAxNiArKwogaW5jbHVkZS9kcm0tdWFwaS9kcm1fZm91cmNjLmggIHwg MjE1ICsrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS11YXBpL2RybV9tb2RlLmggICAgfCAgMjYg Ky0KIGluY2x1ZGUvZHJtLXVhcGkvZXRuYXZpdl9kcm0uaCB8ICAgNiArCiBpbmNsdWRlL2RybS11 YXBpL2V4eW5vc19kcm0uaCAgfCAyNDAgKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0tdWFw aS9pOTE1X2RybS5oICAgIHwgIDQ5ICsrKy0KIGluY2x1ZGUvZHJtLXVhcGkvbXNtX2RybS5oICAg ICB8ICAgMiArCiBpbmNsdWRlL2RybS11YXBpL3RlZ3JhX2RybS5oICAgfCA0OTIgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystCiBpbmNsdWRlL2RybS11YXBpL3YzZF9kcm0uaCAgICAg fCAxOTQgKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0tdWFwaS92YzRfZHJtLmggICAgIHwgIDEz ICstCiBpbmNsdWRlL2RybS11YXBpL3ZpcnRncHVfZHJtLmggfCAgIDEgKwogaW5jbHVkZS9kcm0t dWFwaS92bXdnZnhfZHJtLmggIHwgMTY2ICsrKysrKysrLS0tCiAxMyBmaWxlcyBjaGFuZ2VkLCAx NDE1IGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGlu Y2x1ZGUvZHJtLXVhcGkvdjNkX2RybS5oCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS9h bWRncHVfZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL2FtZGdwdV9kcm0uaAppbmRleCAxODE2YmQ4 MjAwZDEuLjM3MGU5YTU1MzZlZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0tdWFwaS9hbWRncHVf ZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFwaS9hbWRncHVfZHJtLmgKQEAgLTcyLDEyICs3Miw0 MSBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgRFJNX0lPQ1RMX0FNREdQVV9GRU5DRV9UT19IQU5E TEUgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9BTURHUFVfRkVOQ0VfVE9fSEFORExF LCB1bmlvbiBkcm1fYW1kZ3B1X2ZlbmNlX3RvX2hhbmRsZSkKICNkZWZpbmUgRFJNX0lPQ1RMX0FN REdQVV9TQ0hFRAkJRFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0FNREdQVV9TQ0hFRCwg dW5pb24gZHJtX2FtZGdwdV9zY2hlZCkKIAorLyoqCisgKiBET0M6IG1lbW9yeSBkb21haW5zCisg KgorICogJUFNREdQVV9HRU1fRE9NQUlOX0NQVQlTeXN0ZW0gbWVtb3J5IHRoYXQgaXMgbm90IEdQ VSBhY2Nlc3NpYmxlLgorICogTWVtb3J5IGluIHRoaXMgcG9vbCBjb3VsZCBiZSBzd2FwcGVkIG91 dCB0byBkaXNrIGlmIHRoZXJlIGlzIHByZXNzdXJlLgorICoKKyAqICVBTURHUFVfR0VNX0RPTUFJ Tl9HVFQJR1BVIGFjY2Vzc2libGUgc3lzdGVtIG1lbW9yeSwgbWFwcGVkIGludG8gdGhlCisgKiBH UFUncyB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgdmlhIGdhcnQuIEdhcnQgbWVtb3J5IGxpbmVhcml6 ZXMgbm9uLWNvbnRpZ3VvdXMKKyAqIHBhZ2VzIG9mIHN5c3RlbSBtZW1vcnksIGFsbG93cyBHUFUg YWNjZXNzIHN5c3RlbSBtZW1vcnkgaW4gYSBsaW5lenJpemVkCisgKiBmYXNoaW9uLgorICoKKyAq ICVBTURHUFVfR0VNX0RPTUFJTl9WUkFNCUxvY2FsIHZpZGVvIG1lbW9yeS4gRm9yIEFQVXMsIGl0 IGlzIG1lbW9yeQorICogY2FydmVkIG91dCBieSB0aGUgQklPUy4KKyAqCisgKiAlQU1ER1BVX0dF TV9ET01BSU5fR0RTCUdsb2JhbCBvbi1jaGlwIGRhdGEgc3RvcmFnZSB1c2VkIHRvIHNoYXJlIGRh dGEKKyAqIGFjcm9zcyBzaGFkZXIgdGhyZWFkcy4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01BSU5f R1dTCUdsb2JhbCB3YXZlIHN5bmMsIHVzZWQgdG8gc3luY2hyb25pemUgdGhlCisgKiBleGVjdXRp b24gb2YgYWxsIHRoZSB3YXZlcyBvbiBhIGRldmljZS4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01B SU5fT0EJT3JkZXJlZCBhcHBlbmQsIHVzZWQgYnkgM0Qgb3IgQ29tcHV0ZSBlbmdpbmVzCisgKiBm b3IgYXBwZW5kaW5nIGRhdGEuCisgKi8KICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fQ1BVCQkw eDEKICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fR1RUCQkweDIKICNkZWZpbmUgQU1ER1BVX0dF TV9ET01BSU5fVlJBTQkJMHg0CiAjZGVmaW5lIEFNREdQVV9HRU1fRE9NQUlOX0dEUwkJMHg4CiAj ZGVmaW5lIEFNREdQVV9HRU1fRE9NQUlOX0dXUwkJMHgxMAogI2RlZmluZSBBTURHUFVfR0VNX0RP TUFJTl9PQQkJMHgyMAorI2RlZmluZSBBTURHUFVfR0VNX0RPTUFJTl9NQVNLCQkoQU1ER1BVX0dF TV9ET01BSU5fQ1BVIHwgXAorCQkJCQkgQU1ER1BVX0dFTV9ET01BSU5fR1RUIHwgXAorCQkJCQkg QU1ER1BVX0dFTV9ET01BSU5fVlJBTSB8IFwKKwkJCQkJIEFNREdQVV9HRU1fRE9NQUlOX0dEUyB8 IFwKKwkJCQkJIEFNREdQVV9HRU1fRE9NQUlOX0dXUyB8IFwKKwkJCQkJIEFNREdQVV9HRU1fRE9N QUlOX09BKQogCiAvKiBGbGFnIHRoYXQgQ1BVIGFjY2VzcyB3aWxsIGJlIHJlcXVpcmVkIGZvciB0 aGUgY2FzZSBvZiBWUkFNIGRvbWFpbiAqLwogI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9DUFVf QUNDRVNTX1JFUVVJUkVECSgxIDw8IDApCkBAIC05NSw2ICsxMjQsMTAgQEAgZXh0ZXJuICJDIiB7 CiAjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRFX1ZNX0FMV0FZU19WQUxJRAkoMSA8PCA2KQogLyog RmxhZyB0aGF0IEJPIHNoYXJpbmcgd2lsbCBiZSBleHBsaWNpdGx5IHN5bmNocm9uaXplZCAqLwog I2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9FWFBMSUNJVF9TWU5DCQkoMSA8PCA3KQorLyogRmxh ZyB0aGF0IGluZGljYXRlcyBhbGxvY2F0aW5nIE1RRCBnYXJ0IG9uIEdGWDksIHdoZXJlIHRoZSBt dHlwZQorICogZm9yIHRoZSBzZWNvbmQgcGFnZSBvbndhcmQgc2hvdWxkIGJlIHNldCB0byBOQy4K KyAqLworI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9NUURfR0ZYOQkJKDEgPDwgOCkKIAogc3Ry dWN0IGRybV9hbWRncHVfZ2VtX2NyZWF0ZV9pbiAgewogCS8qKiB0aGUgcmVxdWVzdGVkIG1lbW9y eSBzaXplICovCkBAIC00NzMsNyArNTA2LDggQEAgc3RydWN0IGRybV9hbWRncHVfZ2VtX3ZhIHsK ICNkZWZpbmUgQU1ER1BVX0hXX0lQX1VWRF9FTkMgICAgICA1CiAjZGVmaW5lIEFNREdQVV9IV19J UF9WQ05fREVDICAgICAgNgogI2RlZmluZSBBTURHUFVfSFdfSVBfVkNOX0VOQyAgICAgIDcKLSNk ZWZpbmUgQU1ER1BVX0hXX0lQX05VTSAgICAgICAgICA4CisjZGVmaW5lIEFNREdQVV9IV19JUF9W Q05fSlBFRyAgICAgOAorI2RlZmluZSBBTURHUFVfSFdfSVBfTlVNICAgICAgICAgIDkKIAogI2Rl ZmluZSBBTURHUFVfSFdfSVBfSU5TVEFOQ0VfTUFYX0NPVU5UIDEKIApAQCAtNDgyLDYgKzUxNiw3 IEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV92YSB7CiAjZGVmaW5lIEFNREdQVV9DSFVOS19JRF9E RVBFTkRFTkNJRVMJMHgwMwogI2RlZmluZSBBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9JTiAgICAg IDB4MDQKICNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfT1VUICAgICAweDA1CisjZGVm aW5lIEFNREdQVV9DSFVOS19JRF9CT19IQU5ETEVTICAgICAgMHgwNgogCiBzdHJ1Y3QgZHJtX2Ft ZGdwdV9jc19jaHVuayB7CiAJX191MzIJCWNodW5rX2lkOwpAQCAtNTIwLDYgKzU1NSwxMCBAQCB1 bmlvbiBkcm1fYW1kZ3B1X2NzIHsKIC8qIFByZWVtcHQgZmxhZywgSUIgc2hvdWxkIHNldCBQcmVf ZW5iIGJpdCBpZiBQUkVFTVBUIGZsYWcgZGV0ZWN0ZWQgKi8KICNkZWZpbmUgQU1ER1BVX0lCX0ZM QUdfUFJFRU1QVCAoMTw8MikKIAorLyogVGhlIElCIGZlbmNlIHNob3VsZCBkbyB0aGUgTDIgd3Jp dGViYWNrIGJ1dCBub3QgaW52YWxpZGF0ZSBhbnkgc2hhZGVyCisgKiBjYWNoZXMgKEwyL3ZMMS9z TDEvSSQpLiAqLworI2RlZmluZSBBTURHUFVfSUJfRkxBR19UQ19XQl9OT1RfSU5WQUxJREFURSAo MSA8PCAzKQorCiBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19pYiB7CiAJX191MzIgX3BhZDsK IAkvKiogQU1ER1BVX0lCX0ZMQUdfKiAqLwpAQCAtNjE4LDYgKzY1NywxNiBAQCBzdHJ1Y3QgZHJt X2FtZGdwdV9jc19jaHVua19kYXRhIHsKIAkjZGVmaW5lIEFNREdQVV9JTkZPX0ZXX1NPUwkJMHgw YwogCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBQU1AgQVNEIGZpcm13YXJlIHZlcnNpb24gKi8KIAkj ZGVmaW5lIEFNREdQVV9JTkZPX0ZXX0FTRAkJMHgwZAorCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBW Q04gZmlybXdhcmUgdmVyc2lvbiAqLworCSNkZWZpbmUgQU1ER1BVX0lORk9fRldfVkNOCQkweDBl CisJLyogU3VicXVlcnkgaWQ6IFF1ZXJ5IEdGWCBSTEMgU1JMQyBmaXJtd2FyZSB2ZXJzaW9uICov CisJI2RlZmluZSBBTURHUFVfSU5GT19GV19HRlhfUkxDX1JFU1RPUkVfTElTVF9DTlRMIDB4MGYK KwkvKiBTdWJxdWVyeSBpZDogUXVlcnkgR0ZYIFJMQyBTUkxHIGZpcm13YXJlIHZlcnNpb24gKi8K KwkjZGVmaW5lIEFNREdQVV9JTkZPX0ZXX0dGWF9STENfUkVTVE9SRV9MSVNUX0dQTV9NRU0gMHgx MAorCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBHRlggUkxDIFNSTFMgZmlybXdhcmUgdmVyc2lvbiAq LworCSNkZWZpbmUgQU1ER1BVX0lORk9fRldfR0ZYX1JMQ19SRVNUT1JFX0xJU1RfU1JNX01FTSAw eDExCisJLyogU3VicXVlcnkgaWQ6IFF1ZXJ5IERNQ1UgZmlybXdhcmUgdmVyc2lvbiAqLworCSNk ZWZpbmUgQU1ER1BVX0lORk9fRldfRE1DVQkJMHgxMgogLyogbnVtYmVyIG9mIGJ5dGVzIG1vdmVk IGZvciBUVE0gbWlncmF0aW9uICovCiAjZGVmaW5lIEFNREdQVV9JTkZPX05VTV9CWVRFU19NT1ZF RAkJMHgwZgogLyogdGhlIHVzZWQgVlJBTSBzaXplICovCkBAIC04MDYsNiArODU1LDcgQEAgc3Ry dWN0IGRybV9hbWRncHVfaW5mb19maXJtd2FyZSB7CiAjZGVmaW5lIEFNREdQVV9WUkFNX1RZUEVf R0REUjUgNQogI2RlZmluZSBBTURHUFVfVlJBTV9UWVBFX0hCTSAgIDYKICNkZWZpbmUgQU1ER1BV X1ZSQU1fVFlQRV9ERFIzICA3CisjZGVmaW5lIEFNREdQVV9WUkFNX1RZUEVfRERSNCAgOAogCiBz dHJ1Y3QgZHJtX2FtZGdwdV9pbmZvX2RldmljZSB7CiAJLyoqIFBDSSBEZXZpY2UgSUQgKi8KZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL2RybS5o CmluZGV4IGYwYmQ5MWRlMGNmOS4uODVjNjg1YTIwNzVlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Ry bS11YXBpL2RybS5oCisrKyBiL2luY2x1ZGUvZHJtLXVhcGkvZHJtLmgKQEAgLTY3NCw2ICs2NzQs MjIgQEAgc3RydWN0IGRybV9nZXRfY2FwIHsKICAqLwogI2RlZmluZSBEUk1fQ0xJRU5UX0NBUF9B VE9NSUMJMwogCisvKioKKyAqIERSTV9DTElFTlRfQ0FQX0FTUEVDVF9SQVRJTworICoKKyAqIElm IHNldCB0byAxLCB0aGUgRFJNIGNvcmUgd2lsbCBwcm92aWRlIGFzcGVjdCByYXRpbyBpbmZvcm1h dGlvbiBpbiBtb2Rlcy4KKyAqLworI2RlZmluZSBEUk1fQ0xJRU5UX0NBUF9BU1BFQ1RfUkFUSU8g ICAgNAorCisvKioKKyAqIERSTV9DTElFTlRfQ0FQX1dSSVRFQkFDS19DT05ORUNUT1JTCisgKgor ICogSWYgc2V0IHRvIDEsIHRoZSBEUk0gY29yZSB3aWxsIGV4cG9zZSBzcGVjaWFsIGNvbm5lY3Rv cnMgdG8gYmUgdXNlZCBmb3IKKyAqIHdyaXRpbmcgYmFjayB0byBtZW1vcnkgdGhlIHNjZW5lIHNl dHVwIGluIHRoZSBjb21taXQuIERlcGVuZHMgb24gY2xpZW50CisgKiBhbHNvIHN1cHBvcnRpbmcg RFJNX0NMSUVOVF9DQVBfQVRPTUlDCisgKi8KKyNkZWZpbmUgRFJNX0NMSUVOVF9DQVBfV1JJVEVC QUNLX0NPTk5FQ1RPUlMJNQorCiAvKiogRFJNX0lPQ1RMX1NFVF9DTElFTlRfQ0FQIGlvY3RsIGFy Z3VtZW50IHR5cGUgKi8KIHN0cnVjdCBkcm1fc2V0X2NsaWVudF9jYXAgewogCV9fdTY0IGNhcGFi aWxpdHk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2MuaCBiL2luY2x1 ZGUvZHJtLXVhcGkvZHJtX2ZvdXJjYy5oCmluZGV4IGUwNDYxM2QzMGExMy4uMTM5NjMyYjg3MTgx IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2MuaAorKysgYi9pbmNsdWRl L2RybS11YXBpL2RybV9mb3VyY2MuaApAQCAtMzAsMTEgKzMwLDUwIEBACiBleHRlcm4gIkMiIHsK ICNlbmRpZgogCisvKioKKyAqIERPQzogb3ZlcnZpZXcKKyAqCisgKiBJbiB0aGUgRFJNIHN1YnN5 c3RlbSwgZnJhbWVidWZmZXIgcGl4ZWwgZm9ybWF0cyBhcmUgZGVzY3JpYmVkIHVzaW5nIHRoZQor ICogZm91cmNjIGNvZGVzIGRlZmluZWQgaW4gYGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5o YC4gSW4gYWRkaXRpb24gdG8gdGhlCisgKiBmb3VyY2MgY29kZSwgYSBGb3JtYXQgTW9kaWZpZXIg bWF5IG9wdGlvbmFsbHkgYmUgcHJvdmlkZWQsIGluIG9yZGVyIHRvCisgKiBmdXJ0aGVyIGRlc2Ny aWJlIHRoZSBidWZmZXIncyBmb3JtYXQgLSBmb3IgZXhhbXBsZSB0aWxpbmcgb3IgY29tcHJlc3Np b24uCisgKgorICogRm9ybWF0IE1vZGlmaWVycworICogLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IEZvcm1hdCBtb2RpZmllcnMgYXJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhIGZvdXJjYyBj b2RlLCBmb3JtaW5nIGEKKyAqIHVuaXF1ZSBmb3VyY2M6bW9kaWZpZXIgcGFpci4gVGhpcyBmb3Jt YXQ6bW9kaWZpZXIgcGFpciBtdXN0IGZ1bGx5IGRlZmluZSB0aGUKKyAqIGZvcm1hdCBhbmQgZGF0 YSBsYXlvdXQgb2YgdGhlIGJ1ZmZlciwgYW5kIHNob3VsZCBiZSB0aGUgb25seSB3YXkgdG8gZGVz Y3JpYmUKKyAqIHRoYXQgcGFydGljdWxhciBidWZmZXIuCisgKgorICogSGF2aW5nIG11bHRpcGxl IGZvdXJjYzptb2RpZmllciBwYWlycyB3aGljaCBkZXNjcmliZSB0aGUgc2FtZSBsYXlvdXQgc2hv dWxkCisgKiBiZSBhdm9pZGVkLCBhcyBzdWNoIGFsaWFzZXMgcnVuIHRoZSByaXNrIG9mIGRpZmZl cmVudCBkcml2ZXJzIGV4cG9zaW5nCisgKiBkaWZmZXJlbnQgbmFtZXMgZm9yIHRoZSBzYW1lIGRh dGEgZm9ybWF0LCBmb3JjaW5nIHVzZXJzcGFjZSB0byB1bmRlcnN0YW5kCisgKiB0aGF0IHRoZXkg YXJlIGFsaWFzZXMuCisgKgorICogRm9ybWF0IG1vZGlmaWVycyBtYXkgY2hhbmdlIGFueSBwcm9w ZXJ0eSBvZiB0aGUgYnVmZmVyLCBpbmNsdWRpbmcgdGhlIG51bWJlcgorICogb2YgcGxhbmVzIGFu ZC9vciB0aGUgcmVxdWlyZWQgYWxsb2NhdGlvbiBzaXplLiBGb3JtYXQgbW9kaWZpZXJzIGFyZQor ICogdmVuZG9yLW5hbWVzcGFjZWQsIGFuZCBhcyBzdWNoIHRoZSByZWxhdGlvbnNoaXAgYmV0d2Vl biBhIGZvdXJjYyBjb2RlIGFuZCBhCisgKiBtb2RpZmllciBpcyBzcGVjaWZpYyB0byB0aGUgbW9k aWZlciBiZWluZyB1c2VkLiBGb3IgZXhhbXBsZSwgc29tZSBtb2RpZmllcnMKKyAqIG1heSBwcmVz ZXJ2ZSBtZWFuaW5nIC0gc3VjaCBhcyBudW1iZXIgb2YgcGxhbmVzIC0gZnJvbSB0aGUgZm91cmNj IGNvZGUsCisgKiB3aGVyZWFzIG90aGVycyBtYXkgbm90LgorICoKKyAqIFZlbmRvcnMgc2hvdWxk IGRvY3VtZW50IHRoZWlyIG1vZGlmaWVyIHVzYWdlIGluIGFzIG11Y2ggZGV0YWlsIGFzCisgKiBw b3NzaWJsZSwgdG8gZW5zdXJlIG1heGltdW0gY29tcGF0aWJpbGl0eSBhY3Jvc3MgZGV2aWNlcywg ZHJpdmVycyBhbmQKKyAqIGFwcGxpY2F0aW9ucy4KKyAqCisgKiBUaGUgYXV0aG9yaXRhdGl2ZSBs aXN0IG9mIGZvcm1hdCBtb2RpZmllciBjb2RlcyBpcyBmb3VuZCBpbgorICogYGluY2x1ZGUvdWFw aS9kcm0vZHJtX2ZvdXJjYy5oYAorICovCisKICNkZWZpbmUgZm91cmNjX2NvZGUoYSwgYiwgYywg ZCkgKChfX3UzMikoYSkgfCAoKF9fdTMyKShiKSA8PCA4KSB8IFwKIAkJCQkgKChfX3UzMikoYykg PDwgMTYpIHwgKChfX3UzMikoZCkgPDwgMjQpKQogCiAjZGVmaW5lIERSTV9GT1JNQVRfQklHX0VO RElBTiAoMTw8MzEpIC8qIGZvcm1hdCBpcyBiaWcgZW5kaWFuIGluc3RlYWQgb2YgbGl0dGxlIGVu ZGlhbiAqLwogCisvKiBSZXNlcnZlIDAgZm9yIHRoZSBpbnZhbGlkIGZvcm1hdCBzcGVjaWZpZXIg Ki8KKyNkZWZpbmUgRFJNX0ZPUk1BVF9JTlZBTElECTAKKwogLyogY29sb3IgaW5kZXggKi8KICNk ZWZpbmUgRFJNX0ZPUk1BVF9DOAkJZm91cmNjX2NvZGUoJ0MnLCAnOCcsICcgJywgJyAnKSAvKiBb NzowXSBDICovCiAKQEAgLTE4Myw2ICsyMjIsNyBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgRFJN X0ZPUk1BVF9NT0RfVkVORE9SX1FDT00gICAgMHgwNQogI2RlZmluZSBEUk1fRk9STUFUX01PRF9W RU5ET1JfVklWQU5URSAweDA2CiAjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9CUk9BRENP TSAweDA3CisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9BUk0gICAgIDB4MDgKIC8qIGFk ZCBtb3JlIHRvIHRoZSBlbmQgYXMgbmVlZGVkICovCiAKICNkZWZpbmUgRFJNX0ZPUk1BVF9SRVNF UlZFRAkgICAgICAoKDFVTEwgPDwgNTYpIC0gMSkKQEAgLTI5OCw2ICszMzgsMTkgQEAgZXh0ZXJu ICJDIiB7CiAgKi8KICNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfU0FNU1VOR182NF8zMl9USUxFCWZv dXJjY19tb2RfY29kZShTQU1TVU5HLCAxKQogCisvKgorICogUXVhbGNvbW0gQ29tcHJlc3NlZCBG b3JtYXQKKyAqCisgKiBSZWZlcnMgdG8gYSBjb21wcmVzc2VkIHZhcmlhbnQgb2YgdGhlIGJhc2Ug Zm9ybWF0IHRoYXQgaXMgY29tcHJlc3NlZC4KKyAqIEltcGxlbWVudGF0aW9uIG1heSBiZSBwbGF0 Zm9ybSBhbmQgYmFzZS1mb3JtYXQgc3BlY2lmaWMuCisgKgorICogRWFjaCBtYWNyb3RpbGUgY29u c2lzdHMgb2YgbSB4IG4gKG1vc3RseSA0IHggNCkgdGlsZXMuCisgKiBQaXhlbCBkYXRhIHBpdGNo L3N0cmlkZSBpcyBhbGlnbmVkIHdpdGggbWFjcm90aWxlIHdpZHRoLgorICogUGl4ZWwgZGF0YSBo ZWlnaHQgaXMgYWxpZ25lZCB3aXRoIG1hY3JvdGlsZSBoZWlnaHQuCisgKiBFbnRpcmUgcGl4ZWwg ZGF0YSBidWZmZXIgaXMgYWxpZ25lZCB3aXRoIDRrKGJ5dGVzKS4KKyAqLworI2RlZmluZSBEUk1f Rk9STUFUX01PRF9RQ09NX0NPTVBSRVNTRUQJZm91cmNjX21vZF9jb2RlKFFDT00sIDEpCisKIC8q IFZpdmFudGUgZnJhbWVidWZmZXIgbW9kaWZpZXJzICovCiAKIC8qCkBAIC0zODQsNiArNDM3LDIz IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fRk9STUFUX01PRF9OVklESUFfMTZCWDJfQkxP Q0tfVEhJUlRZVFdPX0dPQiBcCiAJZm91cmNjX21vZF9jb2RlKE5WSURJQSwgMHgxNSkKIAorLyoK KyAqIFNvbWUgQnJvYWRjb20gbW9kaWZpZXJzIHRha2UgcGFyYW1ldGVycywgZm9yIGV4YW1wbGUg dGhlIG51bWJlciBvZgorICogdmVydGljYWwgbGluZXMgaW4gdGhlIGltYWdlLiBSZXNlcnZlIHRo ZSBsb3dlciAzMiBiaXRzIGZvciBtb2RpZmllcgorICogdHlwZSwgYW5kIHRoZSBuZXh0IDI0IGJp dHMgZm9yIHBhcmFtZXRlcnMuIFRvcCA4IGJpdHMgYXJlIHRoZQorICogdmVuZG9yIGNvZGUuCisg Ki8KKyNkZWZpbmUgX19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFtX3NoaWZ0IDgKKyNkZWZpbmUg X19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFtX2JpdHMgNDgKKyNkZWZpbmUgZm91cmNjX21vZF9i cm9hZGNvbV9jb2RlKHZhbCwgcGFyYW1zKSBcCisJZm91cmNjX21vZF9jb2RlKEJST0FEQ09NLCAo KCgoX191NjQpcGFyYW1zKSA8PCBfX2ZvdXJjY19tb2RfYnJvYWRjb21fcGFyYW1fc2hpZnQpIHwg dmFsKSkKKyNkZWZpbmUgZm91cmNjX21vZF9icm9hZGNvbV9wYXJhbShtKSBcCisJKChpbnQpKCgo bSkgPj4gX19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFtX3NoaWZ0KSAmCVwKKwkgICAgICAgKCgx VUxMIDw8IF9fZm91cmNjX21vZF9icm9hZGNvbV9wYXJhbV9iaXRzKSAtIDEpKSkKKyNkZWZpbmUg Zm91cmNjX21vZF9icm9hZGNvbV9tb2QobSkgXAorCSgobSkgJiB+KCgoMVVMTCA8PCBfX2ZvdXJj Y19tb2RfYnJvYWRjb21fcGFyYW1fYml0cykgLSAxKSA8PAlcCisJCSBfX2ZvdXJjY19tb2RfYnJv YWRjb21fcGFyYW1fc2hpZnQpKQorCiAvKgogICogQnJvYWRjb20gVkM0ICJUIiBmb3JtYXQKICAq CkBAIC00MDUsNiArNDc1LDE1MSBAQCBleHRlcm4gIkMiIHsKICAqLwogI2RlZmluZSBEUk1fRk9S TUFUX01PRF9CUk9BRENPTV9WQzRfVF9USUxFRCBmb3VyY2NfbW9kX2NvZGUoQlJPQURDT00sIDEp CiAKKy8qCisgKiBCcm9hZGNvbSBTQU5EIGZvcm1hdAorICoKKyAqIFRoaXMgaXMgdGhlIG5hdGl2 ZSBmb3JtYXQgdGhhdCB0aGUgSC4yNjQgY29kZWMgYmxvY2sgdXNlcy4gIEZvciBWQzQKKyAqIEhW UywgaXQgaXMgb25seSB2YWxpZCBmb3IgSC4yNjQgKE5WMTIvMjEpIGFuZCBSR0JBIG1vZGVzLgor ICoKKyAqIFRoZSBpbWFnZSBjYW4gYmUgY29uc2lkZXJlZCB0byBiZSBzcGxpdCBpbnRvIGNvbHVt bnMsIGFuZCB0aGUKKyAqIGNvbHVtbnMgYXJlIHBsYWNlZCBjb25zZWN1dGl2ZWx5IGludG8gbWVt b3J5LiAgVGhlIHdpZHRoIG9mIHRob3NlCisgKiBjb2x1bW5zIGNhbiBiZSBlaXRoZXIgMzIsIDY0 LCAxMjgsIG9yIDI1NiBwaXhlbHMsIGJ1dCBpbiBwcmFjdGljZQorICogb25seSAxMjggcGl4ZWwg Y29sdW1ucyBhcmUgdXNlZC4KKyAqCisgKiBUaGUgcGl0Y2ggYmV0d2VlbiB0aGUgc3RhcnQgb2Yg ZWFjaCBjb2x1bW4gaXMgc2V0IHRvIG9wdGltYWxseQorICogc3dpdGNoIGJldHdlZW4gU0RSQU0g YmFua3MuIFRoaXMgaXMgcGFzc2VkIGFzIHRoZSBudW1iZXIgb2YgbGluZXMKKyAqIG9mIGNvbHVt biB3aWR0aCBpbiB0aGUgbW9kaWZpZXIgKHdlIGNhbid0IHVzZSB0aGUgc3RyaWRlIHZhbHVlIGR1 ZQorICogdG8gdmFyaW91cyBjb3JlIGNoZWNrcyB0aGF0IGxvb2sgYXQgaXQgLCBzbyB5b3Ugc2hv dWxkIHNldCB0aGUKKyAqIHN0cmlkZSB0byB3aWR0aCpjcHApLgorICoKKyAqIE5vdGUgdGhhdCB0 aGUgY29sdW1uIGhlaWdodCBmb3IgdGhpcyBmb3JtYXQgbW9kaWZpZXIgaXMgdGhlIHNhbWUKKyAq IGZvciBhbGwgb2YgdGhlIHBsYW5lcywgYXNzdW1pbmcgdGhhdCBlYWNoIGNvbHVtbiBjb250YWlu cyBib3RoIFkKKyAqIGFuZCBVVi4gIFNvbWUgU0FORC11c2luZyBoYXJkd2FyZSBzdG9yZXMgVVYg aW4gYSBzZXBhcmF0ZSB0aWxlZAorICogaW1hZ2UgZnJvbSBZIHRvIHJlZHVjZSB0aGUgY29sdW1u IGhlaWdodCwgd2hpY2ggaXMgbm90IHN1cHBvcnRlZAorICogd2l0aCB0aGVzZSBtb2RpZmllcnMu CisgKi8KKworI2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5EMzJfQ09MX0hFSUdI VCh2KSBcCisJZm91cmNjX21vZF9icm9hZGNvbV9jb2RlKDIsIHYpCisjZGVmaW5lIERSTV9GT1JN QVRfTU9EX0JST0FEQ09NX1NBTkQ2NF9DT0xfSEVJR0hUKHYpIFwKKwlmb3VyY2NfbW9kX2Jyb2Fk Y29tX2NvZGUoMywgdikKKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDEyOF9D T0xfSEVJR0hUKHYpIFwKKwlmb3VyY2NfbW9kX2Jyb2FkY29tX2NvZGUoNCwgdikKKyNkZWZpbmUg RFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDI1Nl9DT0xfSEVJR0hUKHYpIFwKKwlmb3VyY2Nf bW9kX2Jyb2FkY29tX2NvZGUoNSwgdikKKworI2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENP TV9TQU5EMzIgXAorCURSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQzMl9DT0xfSEVJR0hUKDAp CisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQ2NCBcCisJRFJNX0ZPUk1BVF9N T0RfQlJPQURDT01fU0FORDY0X0NPTF9IRUlHSFQoMCkKKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0Rf QlJPQURDT01fU0FORDEyOCBcCisJRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDEyOF9DT0xf SEVJR0hUKDApCisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQyNTYgXAorCURS TV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQyNTZfQ09MX0hFSUdIVCgwKQorCisvKiBCcm9hZGNv bSBVSUYgZm9ybWF0CisgKgorICogVGhpcyBpcyB0aGUgY29tbW9uIGZvcm1hdCBmb3IgdGhlIGN1 cnJlbnQgQnJvYWRjb20gbXVsdGltZWRpYQorICogYmxvY2tzLCBpbmNsdWRpbmcgVjNEIDMueCBh bmQgbmV3ZXIsIG5ld2VyIHZpZGVvIGNvZGVjcywgYW5kCisgKiBkaXNwbGF5cy4KKyAqCisgKiBU aGUgaW1hZ2UgY29uc2lzdHMgb2YgdXRpbGVzICg2NGIgYmxvY2tzKSwgVUlGIGJsb2NrcyAoMngy IHV0aWxlcyksCisgKiBhbmQgbWFjcm9ibG9ja3MgKDR4NCBVSUYgYmxvY2tzKS4gIFRob3NlIDR4 NCBVSUYgYmxvY2sgZ3JvdXBzIGFyZQorICogc3RvcmVkIGluIGNvbHVtbnMsIHdpdGggcGFkZGlu ZyBiZXR3ZWVuIHRoZSBjb2x1bW5zIHRvIGVuc3VyZSB0aGF0CisgKiBtb3ZpbmcgZnJvbSBvbmUg Y29sdW1uIHRvIHRoZSBuZXh0IGRvZXNuJ3QgaGl0IHRoZSBzYW1lIFNEUkFNIHBhZ2UKKyAqIGJh bmsuCisgKgorICogVG8gY2FsY3VsYXRlIHRoZSBwYWRkaW5nLCBpdCBpcyBhc3N1bWVkIHRoYXQg ZWFjaCBoYXJkd2FyZSBibG9jaworICogYW5kIHRoZSBzb2Z0d2FyZSBkcml2aW5nIGl0IGtub3dz IHRoZSBwbGF0Zm9ybSdzIFNEUkFNIHBhZ2Ugc2l6ZSwKKyAqIG51bWJlciBvZiBiYW5rcywgYW5k IFhPUiBhZGRyZXNzLCBhbmQgdGhhdCBpdCdzIGlkZW50aWNhbCBiZXR3ZWVuCisgKiBhbGwgYmxv Y2tzIHVzaW5nIHRoZSBmb3JtYXQuICBUaGlzIHRpbGluZyBtb2RpZmllciB3aWxsIHVzZSBYT1Ig YXMKKyAqIG5lY2Vzc2FyeSB0byByZWR1Y2UgdGhlIHBhZGRpbmcuICBJZiBhIGhhcmR3YXJlIGJs b2NrIGNhbid0IGRvIFhPUiwKKyAqIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgYSBuby1YT1IgdGls aW5nIG1vZGlmaWVyIHdpbGwgYmUgY3JlYXRlZC4KKyAqLworI2RlZmluZSBEUk1fRk9STUFUX01P RF9CUk9BRENPTV9VSUYgZm91cmNjX21vZF9jb2RlKEJST0FEQ09NLCA2KQorCisvKgorICogQXJt IEZyYW1lYnVmZmVyIENvbXByZXNzaW9uIChBRkJDKSBtb2RpZmllcnMKKyAqCisgKiBBRkJDIGlz IGEgcHJvcHJpZXRhcnkgbG9zc2xlc3MgaW1hZ2UgY29tcHJlc3Npb24gcHJvdG9jb2wgYW5kIGZv cm1hdC4KKyAqIEl0IHByb3ZpZGVzIGZpbmUtZ3JhaW5lZCByYW5kb20gYWNjZXNzIGFuZCBtaW5p bWl6ZXMgdGhlIGFtb3VudCBvZiBkYXRhCisgKiB0cmFuc2ZlcnJlZCBiZXR3ZWVuIElQIGJsb2Nr cy4KKyAqCisgKiBBRkJDIGhhcyBzZXZlcmFsIGZlYXR1cmVzIHdoaWNoIG1heSBiZSBzdXBwb3J0 ZWQgYW5kL29yIHVzZWQsIHdoaWNoIGFyZQorICogcmVwcmVzZW50ZWQgdXNpbmcgYml0cyBpbiB0 aGUgbW9kaWZpZXIuIE5vdCBhbGwgY29tYmluYXRpb25zIGFyZSB2YWxpZCwKKyAqIGFuZCBkaWZm ZXJlbnQgZGV2aWNlcyBvciB1c2UtY2FzZXMgbWF5IHN1cHBvcnQgZGlmZmVyZW50IGNvbWJpbmF0 aW9ucy4KKyAqLworI2RlZmluZSBEUk1fRk9STUFUX01PRF9BUk1fQUZCQyhfX2FmYmNfbW9kZSkJ Zm91cmNjX21vZF9jb2RlKEFSTSwgX19hZmJjX21vZGUpCisKKy8qCisgKiBBRkJDIHN1cGVyYmxv Y2sgc2l6ZQorICoKKyAqIEluZGljYXRlcyB0aGUgc3VwZXJibG9jayBzaXplKHMpIHVzZWQgZm9y IHRoZSBBRkJDIGJ1ZmZlci4gVGhlIGJ1ZmZlcgorICogc2l6ZSAoaW4gcGl4ZWxzKSBtdXN0IGJl IGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiB0aGUgc3VwZXJibG9jayBzaXplLgorICogRm91ciBs b3dlc3Qgc2lnbmlmaWNhbnQgYml0cyhMU0JzKSBhcmUgcmVzZXJ2ZWQgZm9yIGJsb2NrIHNpemUu CisgKi8KKyNkZWZpbmUgQUZCQ19GT1JNQVRfTU9EX0JMT0NLX1NJWkVfTUFTSyAgICAgIDB4Zgor I2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tfU0laRV8xNngxNiAgICAgKDFVTEwpCisjZGVm aW5lIEFGQkNfRk9STUFUX01PRF9CTE9DS19TSVpFXzMyeDggICAgICAoMlVMTCkKKworLyoKKyAq IEFGQkMgbG9zc2xlc3MgY29sb3JzcGFjZSB0cmFuc2Zvcm0KKyAqCisgKiBJbmRpY2F0ZXMgdGhh dCB0aGUgYnVmZmVyIG1ha2VzIHVzZSBvZiB0aGUgQUZCQyBsb3NzbGVzcyBjb2xvcnNwYWNlCisg KiB0cmFuc2Zvcm0uCisgKi8KKyNkZWZpbmUgQUZCQ19GT1JNQVRfTU9EX1lUUiAgICAgKDFVTEwg PDwgIDQpCisKKy8qCisgKiBBRkJDIGJsb2NrLXNwbGl0CisgKgorICogSW5kaWNhdGVzIHRoYXQg dGhlIHBheWxvYWQgb2YgZWFjaCBzdXBlcmJsb2NrIGlzIHNwbGl0LiBUaGUgc2Vjb25kCisgKiBo YWxmIG9mIHRoZSBwYXlsb2FkIGlzIHBvc2l0aW9uZWQgYXQgYSBwcmVkZWZpbmVkIG9mZnNldCBm cm9tIHRoZSBzdGFydAorICogb2YgdGhlIHN1cGVyYmxvY2sgcGF5bG9hZC4KKyAqLworI2RlZmlu ZSBBRkJDX0ZPUk1BVF9NT0RfU1BMSVQgICAoMVVMTCA8PCAgNSkKKworLyoKKyAqIEFGQkMgc3Bh cnNlIGxheW91dAorICoKKyAqIFRoaXMgZmxhZyBpbmRpY2F0ZXMgdGhhdCB0aGUgcGF5bG9hZCBv ZiBlYWNoIHN1cGVyYmxvY2sgbXVzdCBiZSBzdG9yZWQgYXQgYQorICogcHJlZGVmaW5lZCBwb3Np dGlvbiByZWxhdGl2ZSB0byB0aGUgb3RoZXIgc3VwZXJibG9ja3MgaW4gdGhlIHNhbWUgQUZCQwor ICogYnVmZmVyLiBUaGlzIG9yZGVyIGlzIHRoZSBzYW1lIG9yZGVyIHVzZWQgYnkgdGhlIGhlYWRl ciBidWZmZXIuIEluIHRoaXMgbW9kZQorICogZWFjaCBzdXBlcmJsb2NrIGlzIGdpdmVuIHRoZSBz YW1lIGFtb3VudCBvZiBzcGFjZSBhcyBhbiB1bmNvbXByZXNzZWQKKyAqIHN1cGVyYmxvY2sgb2Yg dGhlIHBhcnRpY3VsYXIgZm9ybWF0IHdvdWxkIHJlcXVpcmUsIHJvdW5kaW5nIHVwIHRvIHRoZSBu ZXh0CisgKiBtdWx0aXBsZSBvZiAxMjggYnl0ZXMgaW4gc2l6ZS4KKyAqLworI2RlZmluZSBBRkJD X0ZPUk1BVF9NT0RfU1BBUlNFICAoMVVMTCA8PCAgNikKKworLyoKKyAqIEFGQkMgY29weS1ibG9j ayByZXN0cmljdAorICoKKyAqIEJ1ZmZlcnMgd2l0aCB0aGlzIGZsYWcgbXVzdCBvYmV5IHRoZSBj b3B5LWJsb2NrIHJlc3RyaWN0aW9uLiBUaGUgcmVzdHJpY3Rpb24KKyAqIGlzIHN1Y2ggdGhhdCB0 aGVyZSBhcmUgbm8gY29weS1ibG9ja3MgcmVmZXJyaW5nIGFjcm9zcyB0aGUgYm9yZGVyIG9mIDh4 OAorICogYmxvY2tzLiBGb3IgdGhlIHN1YnNhbXBsZWQgZGF0YSB0aGUgOHg4IGxpbWl0YXRpb24g aXMgYWxzbyBzdWJzYW1wbGVkLgorICovCisjZGVmaW5lIEFGQkNfRk9STUFUX01PRF9DQlIgICAg ICgxVUxMIDw8ICA3KQorCisvKgorICogQUZCQyB0aWxlZCBsYXlvdXQKKyAqCisgKiBUaGUgdGls ZWQgbGF5b3V0IGdyb3VwcyBzdXBlcmJsb2NrcyBpbiA4eDggb3IgNHg0IHRpbGVzLCB3aGVyZSBh bGwKKyAqIHN1cGVyYmxvY2tzIGluc2lkZSBhIHRpbGUgYXJlIHN0b3JlZCB0b2dldGhlciBpbiBt ZW1vcnkuIDh4OCB0aWxlcyBhcmUgdXNlZAorICogZm9yIHBpeGVsIGZvcm1hdHMgdXAgdG8gYW5k IGluY2x1ZGluZyAzMiBicHAgd2hpbGUgNHg0IHRpbGVzIGFyZSB1c2VkIGZvcgorICogbGFyZ2Vy IGJwcCBmb3JtYXRzLiBUaGUgb3JkZXIgYmV0d2VlbiB0aGUgdGlsZXMgaXMgc2NhbiBsaW5lLgor ICogV2hlbiB0aGUgdGlsZWQgbGF5b3V0IGlzIHVzZWQsIHRoZSBidWZmZXIgc2l6ZSAoaW4gcGl4 ZWxzKSBtdXN0IGJlIGFsaWduZWQKKyAqIHRvIHRoZSB0aWxlIHNpemUuCisgKi8KKyNkZWZpbmUg QUZCQ19GT1JNQVRfTU9EX1RJTEVEICAgKDFVTEwgPDwgIDgpCisKKy8qCisgKiBBRkJDIHNvbGlk IGNvbG9yIGJsb2NrcworICoKKyAqIEluZGljYXRlcyB0aGF0IHRoZSBidWZmZXIgbWFrZXMgdXNl IG9mIHNvbGlkLWNvbG9yIGJsb2Nrcywgd2hlcmVieSBiYW5kd2lkdGgKKyAqIGNhbiBiZSByZWR1 Y2VkIGlmIGEgd2hvbGUgc3VwZXJibG9jayBpcyBhIHNpbmdsZSBjb2xvci4KKyAqLworI2RlZmlu ZSBBRkJDX0ZPUk1BVF9NT0RfU0MgICAgICAoMVVMTCA8PCAgOSkKKwogI2lmIGRlZmluZWQoX19j cGx1c3BsdXMpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvZHJtX21v ZGUuaCBiL2luY2x1ZGUvZHJtLXVhcGkvZHJtX21vZGUuaAppbmRleCAyYzU3NTc5NGZiNTIuLmQz ZTBmZTMxZWZjNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0tdWFwaS9kcm1fbW9kZS5oCisrKyBi L2luY2x1ZGUvZHJtLXVhcGkvZHJtX21vZGUuaApAQCAtOTMsNiArOTMsMTUgQEAgZXh0ZXJuICJD IiB7CiAjZGVmaW5lIERSTV9NT0RFX1BJQ1RVUkVfQVNQRUNUX05PTkUJCTAKICNkZWZpbmUgRFJN X01PREVfUElDVFVSRV9BU1BFQ1RfNF8zCQkxCiAjZGVmaW5lIERSTV9NT0RFX1BJQ1RVUkVfQVNQ RUNUXzE2XzkJCTIKKyNkZWZpbmUgRFJNX01PREVfUElDVFVSRV9BU1BFQ1RfNjRfMjcJCTMKKyNk ZWZpbmUgRFJNX01PREVfUElDVFVSRV9BU1BFQ1RfMjU2XzEzNQkJNAorCisvKiBDb250ZW50IHR5 cGUgb3B0aW9ucyAqLworI2RlZmluZSBEUk1fTU9ERV9DT05URU5UX1RZUEVfTk9fREFUQQkJMAor I2RlZmluZSBEUk1fTU9ERV9DT05URU5UX1RZUEVfR1JBUEhJQ1MJCTEKKyNkZWZpbmUgRFJNX01P REVfQ09OVEVOVF9UWVBFX1BIT1RPCQkyCisjZGVmaW5lIERSTV9NT0RFX0NPTlRFTlRfVFlQRV9D SU5FTUEJCTMKKyNkZWZpbmUgRFJNX01PREVfQ09OVEVOVF9UWVBFX0dBTUUJCTQKIAogLyogQXNw ZWN0IHJhdGlvIGZsYWcgYml0bWFzayAoNCBiaXRzIDIyOjE5KSAqLwogI2RlZmluZSBEUk1fTU9E RV9GTEFHX1BJQ19BUl9NQVNLCQkoMHgwRjw8MTkpCkBAIC0xMDIsNiArMTExLDEwIEBAIGV4dGVy biAiQyIgewogCQkJKERSTV9NT0RFX1BJQ1RVUkVfQVNQRUNUXzRfMzw8MTkpCiAjZGVmaW5lICBE Uk1fTU9ERV9GTEFHX1BJQ19BUl8xNl85IFwKIAkJCShEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF8x Nl85PDwxOSkKKyNkZWZpbmUgIERSTV9NT0RFX0ZMQUdfUElDX0FSXzY0XzI3IFwKKwkJCShEUk1f TU9ERV9QSUNUVVJFX0FTUEVDVF82NF8yNzw8MTkpCisjZGVmaW5lICBEUk1fTU9ERV9GTEFHX1BJ Q19BUl8yNTZfMTM1IFwKKwkJCShEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF8yNTZfMTM1PDwxOSkK IAogI2RlZmluZSAgRFJNX01PREVfRkxBR19BTEwJKERSTV9NT0RFX0ZMQUdfUEhTWU5DIHwJCVwK IAkJCQkgRFJNX01PREVfRkxBR19OSFNZTkMgfAkJXApAQCAtMTczLDggKzE4Niw5IEBAIGV4dGVy biAiQyIgewogLyoKICAqIERSTV9NT0RFX1JFRkxFQ1RfPGF4aXM+CiAgKgotICogU2lnbmFscyB0 aGF0IHRoZSBjb250ZW50cyBvZiBhIGRybSBwbGFuZSBpcyByZWZsZWN0ZWQgaW4gdGhlIDxheGlz PiBheGlzLAorICogU2lnbmFscyB0aGF0IHRoZSBjb250ZW50cyBvZiBhIGRybSBwbGFuZSBpcyBy ZWZsZWN0ZWQgYWxvbmcgdGhlIDxheGlzPiBheGlzLAogICogaW4gdGhlIHNhbWUgd2F5IGFzIG1p cnJvcmluZy4KKyAqIFNlZSBrZXJuZWxkb2MgY2hhcHRlciAiUGxhbmUgQ29tcG9zaXRpb24gUHJv cGVydGllcyIgZm9yIG1vcmUgZGV0YWlscy4KICAqCiAgKiBUaGlzIGRlZmluZSBpcyBwcm92aWRl ZCBhcyBhIGNvbnZlbmllbmNlLCBsb29raW5nIHVwIHRoZSBwcm9wZXJ0eSBpZAogICogdXNpbmcg dGhlIG5hbWUtPnByb3AgaWQgbG9va3VwIGlzIHRoZSBwcmVmZXJyZWQgbWV0aG9kLgpAQCAtMzM4 LDYgKzM1Miw3IEBAIGVudW0gZHJtX21vZGVfc3ViY29ubmVjdG9yIHsKICNkZWZpbmUgRFJNX01P REVfQ09OTkVDVE9SX1ZJUlRVQUwgICAgICAxNQogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1Jf RFNJCQkxNgogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNUT1JfRFBJCQkxNworI2RlZmluZSBEUk1f TU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLCTE4CiAKIHN0cnVjdCBkcm1fbW9kZV9nZXRfY29ubmVj dG9yIHsKIApAQCAtMzYzLDcgKzM3OCw3IEBAIHN0cnVjdCBkcm1fbW9kZV9nZXRfY29ubmVjdG9y IHsKIAlfX3UzMiBwYWQ7CiB9OwogCi0jZGVmaW5lIERSTV9NT0RFX1BST1BfUEVORElORwkoMTw8 MCkKKyNkZWZpbmUgRFJNX01PREVfUFJPUF9QRU5ESU5HCSgxPDwwKSAvKiBkZXByZWNhdGVkLCBk byBub3QgdXNlICovCiAjZGVmaW5lIERSTV9NT0RFX1BST1BfUkFOR0UJKDE8PDEpCiAjZGVmaW5l IERSTV9NT0RFX1BST1BfSU1NVVRBQkxFCSgxPDwyKQogI2RlZmluZSBEUk1fTU9ERV9QUk9QX0VO VU0JKDE8PDMpIC8qIGVudW1lcmF0ZWQgdHlwZSB3aXRoIHRleHQgc3RyaW5ncyAqLwpAQCAtNTk4 LDggKzYxMywxMSBAQCBzdHJ1Y3QgZHJtX21vZGVfY3J0Y19sdXQgewogfTsKIAogc3RydWN0IGRy bV9jb2xvcl9jdG0gewotCS8qIENvbnZlcnNpb24gbWF0cml4IGluIFMzMS4zMiBmb3JtYXQuICov Ci0JX19zNjQgbWF0cml4WzldOworCS8qCisJICogQ29udmVyc2lvbiBtYXRyaXggaW4gUzMxLjMy IHNpZ24tbWFnbml0dWRlCisJICogKG5vdCB0d28ncyBjb21wbGVtZW50ISkgZm9ybWF0LgorCSAq LworCV9fdTY0IG1hdHJpeFs5XTsKIH07CiAKIHN0cnVjdCBkcm1fY29sb3JfbHV0IHsKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvZXRuYXZpdl9kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkv ZXRuYXZpdl9kcm0uaAppbmRleCBlOWI5OTdhMGVmMjcuLjBkNWM0OWRjNDc4YyAxMDA2NDQKLS0t IGEvaW5jbHVkZS9kcm0tdWFwaS9ldG5hdml2X2RybS5oCisrKyBiL2luY2x1ZGUvZHJtLXVhcGkv ZXRuYXZpdl9kcm0uaApAQCAtNTUsNiArNTUsMTIgQEAgc3RydWN0IGRybV9ldG5hdml2X3RpbWVz cGVjIHsKICNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfRkVBVFVSRVNfNCAgICAgICAgICAgICAg ICAweDA3CiAjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0ZFQVRVUkVTXzUgICAgICAgICAgICAg ICAgMHgwOAogI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9GRUFUVVJFU182ICAgICAgICAgICAg ICAgIDB4MDkKKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfRkVBVFVSRVNfNyAgICAgICAgICAg ICAgICAweDBhCisjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0ZFQVRVUkVTXzggICAgICAgICAg ICAgICAgMHgwYgorI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9GRUFUVVJFU185ICAgICAgICAg ICAgICAgIDB4MGMKKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfRkVBVFVSRVNfMTAgICAgICAg ICAgICAgICAweDBkCisjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0ZFQVRVUkVTXzExICAgICAg ICAgICAgICAgMHgwZQorI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9GRUFUVVJFU18xMiAgICAg ICAgICAgICAgIDB4MGYKIAogI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9TVFJFQU1fQ09VTlQg ICAgICAgICAgICAgIDB4MTAKICNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfUkVHSVNURVJfTUFY ICAgICAgICAgICAgICAweDExCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS11YXBpL2V4eW5vc19k cm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvZXh5bm9zX2RybS5oCmluZGV4IGEwMDExNmI1Y2M1Yy4u NzQxNGNmZDc2NDE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11YXBpL2V4eW5vc19kcm0uaAor KysgYi9pbmNsdWRlL2RybS11YXBpL2V4eW5vc19kcm0uaApAQCAtMTM1LDYgKzEzNSwyMTkgQEAg c3RydWN0IGRybV9leHlub3NfZzJkX2V4ZWMgewogCV9fdTY0CQkJCQlhc3luYzsKIH07CiAKKy8q IEV4eW5vcyBEUk0gSVBQIHYyIEFQSSAqLworCisvKioKKyAqIEVudW1lcmF0ZSBhdmFpbGFibGUg SVBQIGhhcmR3YXJlIG1vZHVsZXMuCisgKgorICogQGNvdW50X2lwcHM6IHNpemUgb2YgaXBwX2lk IGFycmF5IC8gbnVtYmVyIG9mIGlwcCBtb2R1bGVzIChzZXQgYnkgZHJpdmVyKQorICogQHJlc2Vy dmVkOiBwYWRkaW5nCisgKiBAaXBwX2lkX3B0cjogcG9pbnRlciB0byBpcHBfaWQgYXJyYXkgb3Ig TlVMTAorICovCitzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9pcHBfZ2V0X3JlcyB7CisJX191MzIg Y291bnRfaXBwczsKKwlfX3UzMiByZXNlcnZlZDsKKwlfX3U2NCBpcHBfaWRfcHRyOworfTsKKwor ZW51bSBkcm1fZXh5bm9zX2lwcF9mb3JtYXRfdHlwZSB7CisJRFJNX0VYWU5PU19JUFBfRk9STUFU X1NPVVJDRQkJPSAweDAxLAorCURSTV9FWFlOT1NfSVBQX0ZPUk1BVF9ERVNUSU5BVElPTgk9IDB4 MDIsCit9OworCitzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfZm9ybWF0IHsKKwlfX3UzMiBmb3VyY2M7 CisJX191MzIgdHlwZTsKKwlfX3U2NCBtb2RpZmllcjsKK307CisKK2VudW0gZHJtX2V4eW5vc19p cHBfY2FwYWJpbGl0eSB7CisJRFJNX0VYWU5PU19JUFBfQ0FQX0NST1AJCT0gMHgwMSwKKwlEUk1f RVhZTk9TX0lQUF9DQVBfUk9UQVRFCT0gMHgwMiwKKwlEUk1fRVhZTk9TX0lQUF9DQVBfU0NBTEUJ PSAweDA0LAorCURSTV9FWFlOT1NfSVBQX0NBUF9DT05WRVJUCT0gMHgwOCwKK307CisKKy8qKgor ICogR2V0IElQUCBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgYW5kIHN1cHBvcnRlZCBpbWFnZSBmb3Jt YXRzLgorICoKKyAqIEBpcHBfaWQ6IGlkIG9mIElQUCBtb2R1bGUgdG8gcXVlcnkKKyAqIEBjYXBh YmlsaXRpZXM6IGJpdG1hc2sgb2YgZHJtX2V4eW5vc19pcHBfY2FwYWJpbGl0eSAoc2V0IGJ5IGRy aXZlcikKKyAqIEByZXNlcnZlZDogcGFkZGluZworICogQGZvcm1hdHNfY291bnQ6IHNpemUgb2Yg Zm9ybWF0cyBhcnJheSAoaW4gZW50cmllcykgLyBudW1iZXIgb2YgZmlsbGVkCisgKgkJICAgZm9y bWF0cyAoc2V0IGJ5IGRyaXZlcikKKyAqIEBmb3JtYXRzX3B0cjogcG9pbnRlciB0byBmb3JtYXRz IGFycmF5IG9yIE5VTEwKKyAqLworc3RydWN0IGRybV9leHlub3NfaW9jdGxfaXBwX2dldF9jYXBz IHsKKwlfX3UzMiBpcHBfaWQ7CisJX191MzIgY2FwYWJpbGl0aWVzOworCV9fdTMyIHJlc2VydmVk OworCV9fdTMyIGZvcm1hdHNfY291bnQ7CisJX191NjQgZm9ybWF0c19wdHI7Cit9OworCitlbnVt IGRybV9leHlub3NfaXBwX2xpbWl0X3R5cGUgeworCS8qIHNpemUgKGhvcml6b250YWwvdmVydGlh bCkgbGltaXRzLCBpbiBwaXhlbHMgKG1pbiwgbWF4LCBhbGlnbm1lbnQpICovCisJRFJNX0VYWU5P U19JUFBfTElNSVRfVFlQRV9TSVpFCQk9IDB4MDAwMSwKKwkvKiBzY2FsZSByYXRpbyAoaG9yaXpv bnRhL3ZlcnRpYWwpLCAxNi4xNiBmaXhlZCBwb2ludCAobWluLCBtYXgpICovCisJRFJNX0VYWU5P U19JUFBfTElNSVRfVFlQRV9TQ0FMRQkJPSAweDAwMDIsCisKKwkvKiBpbWFnZSBidWZmZXIgYXJl YSAqLworCURSTV9FWFlOT1NfSVBQX0xJTUlUX1NJWkVfQlVGRkVSCT0gMHgwMDAxIDw8IDE2LAor CS8qIHNyYy9kc3QgcmVjdGFuZ2xlIGFyZWEgKi8KKwlEUk1fRVhZTk9TX0lQUF9MSU1JVF9TSVpF X0FSRUEJCT0gMHgwMDAyIDw8IDE2LAorCS8qIHNyYy9kc3QgcmVjdGFuZ2xlIGFyZWEgd2hlbiBy b3RhdGlvbiBlbmFibGVkICovCisJRFJNX0VYWU5PU19JUFBfTElNSVRfU0laRV9ST1RBVEVECT0g MHgwMDAzIDw8IDE2LAorCisJRFJNX0VYWU5PU19JUFBfTElNSVRfVFlQRV9NQVNLCQk9IDB4MDAw ZiwKKwlEUk1fRVhZTk9TX0lQUF9MSU1JVF9TSVpFX01BU0sJCT0gMHgwMDBmIDw8IDE2LAorfTsK Kworc3RydWN0IGRybV9leHlub3NfaXBwX2xpbWl0X3ZhbCB7CisJX191MzIgbWluOworCV9fdTMy IG1heDsKKwlfX3UzMiBhbGlnbjsKKwlfX3UzMiByZXNlcnZlZDsKK307CisKKy8qKgorICogSVBQ IG1vZHVsZSBsaW1pdGF0aW9uLgorICoKKyAqIEB0eXBlOiBsaW1pdCB0eXBlIChzZWUgZHJtX2V4 eW5vc19pcHBfbGltaXRfdHlwZSBlbnVtKQorICogQHJlc2VydmVkOiBwYWRkaW5nCisgKiBAaDog aG9yaXpvbnRhbCBsaW1pdHMKKyAqIEB2OiB2ZXJ0aWNhbCBsaW1pdHMKKyAqLworc3RydWN0IGRy bV9leHlub3NfaXBwX2xpbWl0IHsKKwlfX3UzMiB0eXBlOworCV9fdTMyIHJlc2VydmVkOworCXN0 cnVjdCBkcm1fZXh5bm9zX2lwcF9saW1pdF92YWwgaDsKKwlzdHJ1Y3QgZHJtX2V4eW5vc19pcHBf bGltaXRfdmFsIHY7Cit9OworCisvKioKKyAqIEdldCBJUFAgbGltaXRzIGZvciBnaXZlbiBpbWFn ZSBmb3JtYXQuCisgKgorICogQGlwcF9pZDogaWQgb2YgSVBQIG1vZHVsZSB0byBxdWVyeQorICog QGZvdXJjYzogaW1hZ2UgZm9ybWF0IGNvZGUgKHNlZSBEUk1fRk9STUFUXyogaW4gZHJtX2ZvdXJj Yy5oKQorICogQG1vZGlmaWVyOiBpbWFnZSBmb3JtYXQgbW9kaWZpZXIgKHNlZSBEUk1fRk9STUFU X01PRF8qIGluIGRybV9mb3VyY2MuaCkKKyAqIEB0eXBlOiBzb3VyY2UvZGVzdGluYXRpb24gaWRl bnRpZmllciAoZHJtX2V4eW5vc19pcHBfZm9ybWF0X2ZsYWcgZW51bSkKKyAqIEBsaW1pdHNfY291 bnQ6IHNpemUgb2YgbGltaXRzIGFycmF5IChpbiBlbnRyaWVzKSAvIG51bWJlciBvZiBmaWxsZWQg ZW50cmllcworICoJCSAoc2V0IGJ5IGRyaXZlcikKKyAqIEBsaW1pdHNfcHRyOiBwb2ludGVyIHRv IGxpbWl0cyBhcnJheSBvciBOVUxMCisgKi8KK3N0cnVjdCBkcm1fZXh5bm9zX2lvY3RsX2lwcF9n ZXRfbGltaXRzIHsKKwlfX3UzMiBpcHBfaWQ7CisJX191MzIgZm91cmNjOworCV9fdTY0IG1vZGlm aWVyOworCV9fdTMyIHR5cGU7CisJX191MzIgbGltaXRzX2NvdW50OworCV9fdTY0IGxpbWl0c19w dHI7Cit9OworCitlbnVtIGRybV9leHlub3NfaXBwX3Rhc2tfaWQgeworCS8qIGJ1ZmZlciBkZXNj cmliZWQgYnkgc3RydWN0IGRybV9leHlub3NfaXBwX3Rhc2tfYnVmZmVyICovCisJRFJNX0VYWU5P U19JUFBfVEFTS19CVUZGRVIJCT0gMHgwMDAxLAorCS8qIHJlY3RhbmdsZSBkZXNjcmliZWQgYnkg c3RydWN0IGRybV9leHlub3NfaXBwX3Rhc2tfcmVjdCAqLworCURSTV9FWFlOT1NfSVBQX1RBU0tf UkVDVEFOR0xFCQk9IDB4MDAwMiwKKwkvKiB0cmFuc2Zvcm1hdGlvbiBkZXNjcmliZWQgYnkgc3Ry dWN0IGRybV9leHlub3NfaXBwX3Rhc2tfdHJhbnNmb3JtICovCisJRFJNX0VYWU5PU19JUFBfVEFT S19UUkFOU0ZPUk0JCT0gMHgwMDAzLAorCS8qIGFscGhhIGNvbmZpZ3VyYXRpb24gZGVzY3JpYmVk IGJ5IHN0cnVjdCBkcm1fZXh5bm9zX2lwcF90YXNrX2FscGhhICovCisJRFJNX0VYWU5PU19JUFBf VEFTS19BTFBIQQkJPSAweDAwMDQsCisKKwkvKiBzb3VyY2UgaW1hZ2UgZGF0YSAoZm9yIGJ1ZmZl ciBhbmQgcmVjdGFuZ2xlIGNodW5rcykgKi8KKwlEUk1fRVhZTk9TX0lQUF9UQVNLX1RZUEVfU09V UkNFCQk9IDB4MDAwMSA8PCAxNiwKKwkvKiBkZXN0aW5hdGlvbiBpbWFnZSBkYXRhIChmb3IgYnVm ZmVyIGFuZCByZWN0YW5nbGUgY2h1bmtzKSAqLworCURSTV9FWFlOT1NfSVBQX1RBU0tfVFlQRV9E RVNUSU5BVElPTgk9IDB4MDAwMiA8PCAxNiwKK307CisKKy8qKgorICogTWVtb3J5IGJ1ZmZlciB3 aXRoIGltYWdlIGRhdGEuCisgKgorICogQGlkOiBtdXN0IGJlIERSTV9FWFlOT1NfSVBQX1RBU0tf QlVGRkVSCisgKiBvdGhlciBwYXJhbWV0ZXJzIGFyZSBzYW1lIGFzIGZvciBBZGRGQjIgZ2VuZXJp YyBEUk0gaW9jdGwKKyAqLworc3RydWN0IGRybV9leHlub3NfaXBwX3Rhc2tfYnVmZmVyIHsKKwlf X3UzMglpZDsKKwlfX3UzMglmb3VyY2M7CisJX191MzIJd2lkdGgsIGhlaWdodDsKKwlfX3UzMgln ZW1faWRbNF07CisJX191MzIJb2Zmc2V0WzRdOworCV9fdTMyCXBpdGNoWzRdOworCV9fdTY0CW1v ZGlmaWVyOworfTsKKworLyoqCisgKiBSZWN0YW5nbGUgZm9yIHByb2Nlc3NpbmcuCisgKgorICog QGlkOiBtdXN0IGJlIERSTV9FWFlOT1NfSVBQX1RBU0tfUkVDVEFOR0xFCisgKiBAcmVzZXJ2ZWQ6 IHBhZGRpbmcKKyAqIEB4LEB5OiBsZWZ0IGNvcm5lciBpbiBwaXhlbHMKKyAqIEB3LEBoOiB3aWR0 aC9oZWlnaHQgaW4gcGl4ZWxzCisgKi8KK3N0cnVjdCBkcm1fZXh5bm9zX2lwcF90YXNrX3JlY3Qg eworCV9fdTMyCWlkOworCV9fdTMyCXJlc2VydmVkOworCV9fdTMyCXg7CisJX191MzIJeTsKKwlf X3UzMgl3OworCV9fdTMyCWg7Cit9OworCisvKioKKyAqIEltYWdlIHRyYW5mb3JtYXRpb24gZGVz Y3JpcHRpb24uCisgKgorICogQGlkOiBtdXN0IGJlIERSTV9FWFlOT1NfSVBQX1RBU0tfVFJBTlNG T1JNCisgKiBAcm90YXRpb246IERSTV9NT0RFX1JPVEFURV8qIGFuZCBEUk1fTU9ERV9SRUZMRUNU XyogdmFsdWVzCisgKi8KK3N0cnVjdCBkcm1fZXh5bm9zX2lwcF90YXNrX3RyYW5zZm9ybSB7CisJ X191MzIJaWQ7CisJX191MzIJcm90YXRpb247Cit9OworCisvKioKKyAqIEltYWdlIGdsb2JhbCBh bHBoYSBjb25maWd1cmF0aW9uIGZvciBmb3JtYXRzIHdpdGhvdXQgYWxwaGEgdmFsdWVzLgorICoK KyAqIEBpZDogbXVzdCBiZSBEUk1fRVhZTk9TX0lQUF9UQVNLX0FMUEhBCisgKiBAdmFsdWU6IGds b2JhbCBhbHBoYSB2YWx1ZSAoMC0yNTUpCisgKi8KK3N0cnVjdCBkcm1fZXh5bm9zX2lwcF90YXNr X2FscGhhIHsKKwlfX3UzMglpZDsKKwlfX3UzMgl2YWx1ZTsKK307CisKK2VudW0gZHJtX2V4eW5v c19pcHBfZmxhZyB7CisJLyogZ2VuZXJhdGUgRFJNIGV2ZW50IGFmdGVyIHByb2Nlc3NpbmcgKi8K KwlEUk1fRVhZTk9TX0lQUF9GTEFHX0VWRU5UCT0gMHgwMSwKKwkvKiBkcnkgcnVuLCBvbmx5IGNo ZWNrIHRhc2sgcGFyYW1ldGVycyAqLworCURSTV9FWFlOT1NfSVBQX0ZMQUdfVEVTVF9PTkxZCT0g MHgwMiwKKwkvKiBub24tYmxvY2tpbmcgcHJvY2Vzc2luZyAqLworCURSTV9FWFlOT1NfSVBQX0ZM QUdfTk9OQkxPQ0sJPSAweDA0LAorfTsKKworI2RlZmluZSBEUk1fRVhZTk9TX0lQUF9GTEFHUyAo RFJNX0VYWU5PU19JUFBfRkxBR19FVkVOVCB8XAorCQlEUk1fRVhZTk9TX0lQUF9GTEFHX1RFU1Rf T05MWSB8IERSTV9FWFlOT1NfSVBQX0ZMQUdfTk9OQkxPQ0spCisKKy8qKgorICogUGVyZm9ybSBp bWFnZSBwcm9jZXNzaW5nIGRlc2NyaWJlZCBieSBhcnJheSBvZiBkcm1fZXh5bm9zX2lwcF90YXNr XyoKKyAqIHN0cnVjdHVyZXMgKHBhcmFtZXRlcnMgYXJyYXkpLgorICoKKyAqIEBpcHBfaWQ6IGlk IG9mIElQUCBtb2R1bGUgdG8gcnVuIHRoZSB0YXNrCisgKiBAZmxhZ3M6IGJpdG1hc2sgb2YgZHJt X2V4eW5vc19pcHBfZmxhZyB2YWx1ZXMKKyAqIEByZXNlcnZlZDogcGFkZGluZworICogQHBhcmFt c19zaXplOiBzaXplIG9mIHBhcmFtZXRlcnMgYXJyYXkgKGluIGJ5dGVzKQorICogQHBhcmFtc19w dHI6IHBvaW50ZXIgdG8gcGFyYW1ldGVycyBhcnJheSBvciBOVUxMCisgKiBAdXNlcl9kYXRhOiAo b3B0aW9uYWwpIGRhdGEgZm9yIGRybSBldmVudAorICovCitzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0 bF9pcHBfY29tbWl0IHsKKwlfX3UzMiBpcHBfaWQ7CisJX191MzIgZmxhZ3M7CisJX191MzIgcmVz ZXJ2ZWQ7CisJX191MzIgcGFyYW1zX3NpemU7CisJX191NjQgcGFyYW1zX3B0cjsKKwlfX3U2NCB1 c2VyX2RhdGE7Cit9OworCiAjZGVmaW5lIERSTV9FWFlOT1NfR0VNX0NSRUFURQkJMHgwMAogI2Rl ZmluZSBEUk1fRVhZTk9TX0dFTV9NQVAJCTB4MDEKIC8qIFJlc2VydmVkIDB4MDMgfiAweDA1IGZv ciBleHlub3Mgc3BlY2lmaWMgZ2VtIGlvY3RsICovCkBAIC0xNDcsNiArMzYwLDExIEBAIHN0cnVj dCBkcm1fZXh5bm9zX2cyZF9leGVjIHsKICNkZWZpbmUgRFJNX0VYWU5PU19HMkRfRVhFQwkJMHgy MgogCiAvKiBSZXNlcnZlZCAweDMwIH4gMHgzMyBmb3Igb2Jzb2xldGUgRXh5bm9zIElQUCBpb2N0 bHMgKi8KKy8qIElQUCAtIEltYWdlIFBvc3QgUHJvY2Vzc2luZyAqLworI2RlZmluZSBEUk1fRVhZ Tk9TX0lQUF9HRVRfUkVTT1VSQ0VTCTB4NDAKKyNkZWZpbmUgRFJNX0VYWU5PU19JUFBfR0VUX0NB UFMJCTB4NDEKKyNkZWZpbmUgRFJNX0VYWU5PU19JUFBfR0VUX0xJTUlUUwkweDQyCisjZGVmaW5l IERSTV9FWFlOT1NfSVBQX0NPTU1JVAkJMHg0MwogCiAjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1Nf R0VNX0NSRUFURQkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIFwKIAkJRFJNX0VYWU5PU19H RU1fQ1JFQVRFLCBzdHJ1Y3QgZHJtX2V4eW5vc19nZW1fY3JlYXRlKQpAQCAtMTY1LDggKzM4Mywy MCBAQCBzdHJ1Y3QgZHJtX2V4eW5vc19nMmRfZXhlYyB7CiAjZGVmaW5lIERSTV9JT0NUTF9FWFlO T1NfRzJEX0VYRUMJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBcCiAJCURSTV9FWFlOT1Nf RzJEX0VYRUMsIHN0cnVjdCBkcm1fZXh5bm9zX2cyZF9leGVjKQogCisjZGVmaW5lIERSTV9JT0NU TF9FWFlOT1NfSVBQX0dFVF9SRVNPVVJDRVMJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIFwK KwkJRFJNX0VYWU5PU19JUFBfR0VUX1JFU09VUkNFUywgXAorCQlzdHJ1Y3QgZHJtX2V4eW5vc19p b2N0bF9pcHBfZ2V0X3JlcykKKyNkZWZpbmUgRFJNX0lPQ1RMX0VYWU5PU19JUFBfR0VUX0NBUFMJ CURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBcCisJCURSTV9FWFlOT1NfSVBQX0dFVF9DQVBT LCBzdHJ1Y3QgZHJtX2V4eW5vc19pb2N0bF9pcHBfZ2V0X2NhcHMpCisjZGVmaW5lIERSTV9JT0NU TF9FWFlOT1NfSVBQX0dFVF9MSU1JVFMJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBcCisJ CURSTV9FWFlOT1NfSVBQX0dFVF9MSU1JVFMsIFwKKwkJc3RydWN0IGRybV9leHlub3NfaW9jdGxf aXBwX2dldF9saW1pdHMpCisjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfSVBQX0NPTU1JVAkJRFJN X0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIFwKKwkJRFJNX0VYWU5PU19JUFBfQ09NTUlULCBzdHJ1 Y3QgZHJtX2V4eW5vc19pb2N0bF9pcHBfY29tbWl0KQorCiAvKiBFWFlOT1Mgc3BlY2lmaWMgZXZl bnRzICovCiAjZGVmaW5lIERSTV9FWFlOT1NfRzJEX0VWRU5UCQkweDgwMDAwMDAwCisjZGVmaW5l IERSTV9FWFlOT1NfSVBQX0VWRU5UCQkweDgwMDAwMDAyCiAKIHN0cnVjdCBkcm1fZXh5bm9zX2cy ZF9ldmVudCB7CiAJc3RydWN0IGRybV9ldmVudAliYXNlOwpAQCAtMTc3LDYgKzQwNywxNiBAQCBz dHJ1Y3QgZHJtX2V4eW5vc19nMmRfZXZlbnQgewogCV9fdTMyCQkJcmVzZXJ2ZWQ7CiB9OwogCitz dHJ1Y3QgZHJtX2V4eW5vc19pcHBfZXZlbnQgeworCXN0cnVjdCBkcm1fZXZlbnQJYmFzZTsKKwlf X3U2NAkJCXVzZXJfZGF0YTsKKwlfX3UzMgkJCXR2X3NlYzsKKwlfX3UzMgkJCXR2X3VzZWM7CisJ X191MzIJCQlpcHBfaWQ7CisJX191MzIJCQlzZXF1ZW5jZTsKKwlfX3U2NAkJCXJlc2VydmVkOwor fTsKKwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaApp bmRleCAxNmU0NTJhYTEyZDQuLmNmOWRjZjA0MDMyMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0t dWFwaS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaApAQCAtMTEw LDkgKzExMCwxNyBAQCBlbnVtIGRybV9pOTE1X2dlbV9lbmdpbmVfY2xhc3MgewogZW51bSBkcm1f aTkxNV9wbXVfZW5naW5lX3NhbXBsZSB7CiAJSTkxNV9TQU1QTEVfQlVTWSA9IDAsCiAJSTkxNV9T QU1QTEVfV0FJVCA9IDEsCi0JSTkxNV9TQU1QTEVfU0VNQSA9IDIKKwlJOTE1X1NBTVBMRV9TRU1B ID0gMiwKKwlJOTE1X1NBTVBMRV9RVUVVRUQgPSAzLAorCUk5MTVfU0FNUExFX1JVTk5BQkxFID0g NCwKKwlJOTE1X1NBTVBMRV9SVU5OSU5HID0gNSwKIH07CiAKKyAvKiBEaXZpZGUgY291bnRlciB2 YWx1ZSBieSBkaXZpc29yIHRvIGdldCB0aGUgcmVhbCB2YWx1ZS4gKi8KKyNkZWZpbmUgSTkxNV9T QU1QTEVfUVVFVUVEX0RJVklTT1IgKDEwMDApCisjZGVmaW5lIEk5MTVfU0FNUExFX1JVTk5BQkxF X0RJVklTT1IgKDEwMDApCisjZGVmaW5lIEk5MTVfU0FNUExFX1JVTk5JTkdfRElWSVNPUiAoMTAw MCkKKwogI2RlZmluZSBJOTE1X1BNVV9TQU1QTEVfQklUUyAoNCkKICNkZWZpbmUgSTkxNV9QTVVf U0FNUExFX01BU0sgKDB4ZikKICNkZWZpbmUgSTkxNV9QTVVfU0FNUExFX0lOU1RBTkNFX0JJVFMg KDgpCkBAIC0xMzMsNiArMTQxLDE1IEBAIGVudW0gZHJtX2k5MTVfcG11X2VuZ2luZV9zYW1wbGUg ewogI2RlZmluZSBJOTE1X1BNVV9FTkdJTkVfU0VNQShjbGFzcywgaW5zdGFuY2UpIFwKIAlfX0k5 MTVfUE1VX0VOR0lORShjbGFzcywgaW5zdGFuY2UsIEk5MTVfU0FNUExFX1NFTUEpCiAKKyNkZWZp bmUgSTkxNV9QTVVfRU5HSU5FX1FVRVVFRChjbGFzcywgaW5zdGFuY2UpIFwKKwlfX0k5MTVfUE1V X0VOR0lORShjbGFzcywgaW5zdGFuY2UsIEk5MTVfU0FNUExFX1FVRVVFRCkKKworI2RlZmluZSBJ OTE1X1BNVV9FTkdJTkVfUlVOTkFCTEUoY2xhc3MsIGluc3RhbmNlKSBcCisJX19JOTE1X1BNVV9F TkdJTkUoY2xhc3MsIGluc3RhbmNlLCBJOTE1X1NBTVBMRV9SVU5OQUJMRSkKKworI2RlZmluZSBJ OTE1X1BNVV9FTkdJTkVfUlVOTklORyhjbGFzcywgaW5zdGFuY2UpIFwKKwlfX0k5MTVfUE1VX0VO R0lORShjbGFzcywgaW5zdGFuY2UsIEk5MTVfU0FNUExFX1JVTk5JTkcpCisKICNkZWZpbmUgX19J OTE1X1BNVV9PVEhFUih4KSAoX19JOTE1X1BNVV9FTkdJTkUoMHhmZiwgMHhmZiwgMHhmKSArIDEg KyAoeCkpCiAKICNkZWZpbmUgSTkxNV9QTVVfQUNUVUFMX0ZSRVFVRU5DWQlfX0k5MTVfUE1VX09U SEVSKDApCkBAIC00MTIsNiArNDI5LDE0IEBAIHR5cGVkZWYgc3RydWN0IGRybV9pOTE1X2lycV93 YWl0IHsKIAlpbnQgaXJxX3NlcTsKIH0gZHJtX2k5MTVfaXJxX3dhaXRfdDsKIAorLyoKKyAqIERp ZmZlcmVudCBtb2RlcyBvZiBwZXItcHJvY2VzcyBHcmFwaGljcyBUcmFuc2xhdGlvbiBUYWJsZSwK KyAqIHNlZSBJOTE1X1BBUkFNX0hBU19BTElBU0lOR19QUEdUVAorICovCisjZGVmaW5lIEk5MTVf R0VNX1BQR1RUX05PTkUJMAorI2RlZmluZSBJOTE1X0dFTV9QUEdUVF9BTElBU0lORwkxCisjZGVm aW5lIEk5MTVfR0VNX1BQR1RUX0ZVTEwJMgorCiAvKiBJb2N0bCB0byBxdWVyeSBrZXJuZWwgcGFy YW1zOgogICovCiAjZGVmaW5lIEk5MTVfUEFSQU1fSVJRX0FDVElWRSAgICAgICAgICAgIDEKQEAg LTUyOSw2ICs1NTQsMjggQEAgdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5MTVfaXJxX3dhaXQgewogICov CiAjZGVmaW5lIEk5MTVfUEFSQU1fQ1NfVElNRVNUQU1QX0ZSRVFVRU5DWSA1MQogCisvKgorICog T25jZSB1cG9uIGEgdGltZSB3ZSBzdXBwb3NlZCB0aGF0IHdyaXRlcyB0aHJvdWdoIHRoZSBHR1RU IHdvdWxkIGJlCisgKiBpbW1lZGlhdGVseSBpbiBwaHlzaWNhbCBtZW1vcnkgKG9uY2UgZmx1c2hl ZCBvdXQgb2YgdGhlIENQVSBwYXRoKS4gSG93ZXZlciwKKyAqIG9uIGEgZmV3IGRpZmZlcmVudCBw cm9jZXNzb3JzIGFuZCBjaGlwc2V0cywgdGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIGNhc2UK KyAqIGFzIHRoZSB3cml0ZXMgYXBwZWFyIHRvIGJlIGJ1ZmZlcmVkIGludGVybmFsbHkuIFRodXMg YSByZWFkIG9mIHRoZSBiYWNraW5nCisgKiBzdG9yYWdlIChwaHlzaWNhbCBtZW1vcnkpIHZpYSBh IGRpZmZlcmVudCBwYXRoICh3aXRoIGRpZmZlcmVudCBwaHlzaWNhbCB0YWdzCisgKiB0byB0aGUg aW5kaXJlY3Qgd3JpdGUgdmlhIHRoZSBHR1RUKSB3aWxsIHNlZSBzdGFsZSB2YWx1ZXMgZnJvbSBi ZWZvcmUKKyAqIHRoZSBHR1RUIHdyaXRlLiBJbnNpZGUgdGhlIGtlcm5lbCwgd2UgY2FuIGZvciB0 aGUgbW9zdCBwYXJ0IGtlZXAgdHJhY2sgb2YKKyAqIHRoZSBkaWZmZXJlbnQgcmVhZC93cml0ZSBk b21haW5zIGluIHVzZSAoZS5nLiBzZXQtZG9tYWluKSwgYnV0IHRoZSBhc3N1bXB0aW9uCisgKiBv ZiBjb2hlcmVuY3kgaXMgYmFrZWQgaW50byB0aGUgQUJJLCBoZW5jZSByZXBvcnRpbmcgaXRzIHRy dWUgc3RhdGUgaW4gdGhpcworICogcGFyYW1ldGVyLgorICoKKyAqIFJlcG9ydHMgdHJ1ZSB3aGVu IHdyaXRlcyB2aWEgbW1hcF9ndHQgYXJlIGltbWVkaWF0ZWx5IHZpc2libGUgZm9sbG93aW5nIGFu CisgKiBsZmVuY2UgdG8gZmx1c2ggdGhlIFdDQi4KKyAqCisgKiBSZXBvcnRzIGZhbHNlIHdoZW4g d3JpdGVzIHZpYSBtbWFwX2d0dCBhcmUgaW5kZXRlcm1pbmF0ZWx5IGRlbGF5ZWQgaW4gYW4gaW4K KyAqIGludGVybmFsIGJ1ZmZlciBhbmQgYXJlIF9ub3RfIGltbWVkaWF0ZWx5IHZpc2libGUgdG8g dGhpcmQgcGFydGllcyBhY2Nlc3NpbmcKKyAqIGRpcmVjdGx5IHZpYSBtbWFwX2NwdS9tbWFwX3dj LiBVc2Ugb2YgbW1hcF9ndHQgYXMgcGFydCBvZiBhbiBJUEMKKyAqIGNvbW11bmljYXRpb25zIGNo YW5uZWwgd2hlbiByZXBvcnRpbmcgZmFsc2UgaXMgc3Ryb25nbHkgZGlzYWR2aXNlZC4KKyAqLwor I2RlZmluZSBJOTE1X1BBUkFNX01NQVBfR1RUX0NPSEVSRU5UCTUyCisKIHR5cGVkZWYgc3RydWN0 IGRybV9pOTE1X2dldHBhcmFtIHsKIAlfX3MzMiBwYXJhbTsKIAkvKgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0tdWFwaS9tc21fZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL21zbV9kcm0uaAppbmRl eCBiYmJhZmZhZDc3MmQuLmMwNmQwYTViZGQ4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0tdWFw aS9tc21fZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFwaS9tc21fZHJtLmgKQEAgLTIwMSwxMCAr MjAxLDEyIEBAIHN0cnVjdCBkcm1fbXNtX2dlbV9zdWJtaXRfYm8gewogI2RlZmluZSBNU01fU1VC TUlUX05PX0lNUExJQ0lUICAgMHg4MDAwMDAwMCAvKiBkaXNhYmxlIGltcGxpY2l0IHN5bmMgKi8K ICNkZWZpbmUgTVNNX1NVQk1JVF9GRU5DRV9GRF9JTiAgIDB4NDAwMDAwMDAgLyogZW5hYmxlIGlu cHV0IGZlbmNlX2ZkICovCiAjZGVmaW5lIE1TTV9TVUJNSVRfRkVOQ0VfRkRfT1VUICAweDIwMDAw MDAwIC8qIGVuYWJsZSBvdXRwdXQgZmVuY2VfZmQgKi8KKyNkZWZpbmUgTVNNX1NVQk1JVF9TVURP ICAgICAgICAgIDB4MTAwMDAwMDAgLyogcnVuIHN1Ym1pdHRlZCBjbWRzIGZyb20gUkIgKi8KICNk ZWZpbmUgTVNNX1NVQk1JVF9GTEFHUyAgICAgICAgICAgICAgICAoIFwKIAkJTVNNX1NVQk1JVF9O T19JTVBMSUNJVCAgIHwgXAogCQlNU01fU1VCTUlUX0ZFTkNFX0ZEX0lOICAgfCBcCiAJCU1TTV9T VUJNSVRfRkVOQ0VfRkRfT1VUICB8IFwKKwkJTVNNX1NVQk1JVF9TVURPICAgICAgICAgIHwgXAog CQkwKQogCiAvKiBFYWNoIGNtZHN0cmVhbSBzdWJtaXQgY29uc2lzdHMgb2YgYSB0YWJsZSBvZiBi dWZmZXJzIGludm9sdmVkLCBhbmQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvdGVncmFf ZHJtLmggYi9pbmNsdWRlL2RybS11YXBpL3RlZ3JhX2RybS5oCmluZGV4IDEyZjliZjg0OGRiMS4u NmMwNzkxOWMwNGU5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS11YXBpL3RlZ3JhX2RybS5oCisr KyBiL2luY2x1ZGUvZHJtLXVhcGkvdGVncmFfZHJtLmgKQEAgLTMyLDE0MyArMzIsNjE1IEBAIGV4 dGVybiAiQyIgewogI2RlZmluZSBEUk1fVEVHUkFfR0VNX0NSRUFURV9USUxFRCAgICAgKDEgPDwg MCkKICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9DUkVBVEVfQk9UVE9NX1VQICgxIDw8IDEpCiAKKy8q KgorICogc3RydWN0IGRybV90ZWdyYV9nZW1fY3JlYXRlIC0gcGFyYW1ldGVycyBmb3IgdGhlIEdF TSBvYmplY3QgY3JlYXRpb24gSU9DVEwKKyAqLwogc3RydWN0IGRybV90ZWdyYV9nZW1fY3JlYXRl IHsKKwkvKioKKwkgKiBAc2l6ZToKKwkgKgorCSAqIFRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhl IGJ1ZmZlciBvYmplY3QgdG8gYmUgY3JlYXRlZC4KKwkgKi8KIAlfX3U2NCBzaXplOworCisJLyoq CisJICogQGZsYWdzOgorCSAqCisJICogQSBiaXRtYXNrIG9mIGZsYWdzIHRoYXQgaW5mbHVlbmNl IHRoZSBjcmVhdGlvbiBvZiBHRU0gb2JqZWN0czoKKwkgKgorCSAqIERSTV9URUdSQV9HRU1fQ1JF QVRFX1RJTEVECisJICogICBVc2UgdGhlIDE2eDE2IHRpbGluZyBmb3JtYXQgZm9yIHRoaXMgYnVm ZmVyLgorCSAqCisJICogRFJNX1RFR1JBX0dFTV9DUkVBVEVfQk9UVE9NX1VQCisJICogICBUaGUg YnVmZmVyIGhhcyBhIGJvdHRvbS11cCBsYXlvdXQuCisJICovCiAJX191MzIgZmxhZ3M7CisKKwkv KioKKwkgKiBAaGFuZGxlOgorCSAqCisJICogVGhlIGhhbmRsZSBvZiB0aGUgY3JlYXRlZCBHRU0g b2JqZWN0LiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uCisJICogc3VjY2Vzc2Z1bCBjb21wbGV0aW9u IG9mIHRoZSBJT0NUTC4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7CiB9OwogCisvKioKKyAqIHN0cnVj dCBkcm1fdGVncmFfZ2VtX21tYXAgLSBwYXJhbWV0ZXJzIGZvciB0aGUgR0VNIG1tYXAgSU9DVEwK KyAqLwogc3RydWN0IGRybV90ZWdyYV9nZW1fbW1hcCB7CisJLyoqCisJICogQGhhbmRsZToKKwkg KgorCSAqIEhhbmRsZSBvZiB0aGUgR0VNIG9iamVjdCB0byBvYnRhaW4gYW4gbW1hcCBvZmZzZXQg Zm9yLgorCSAqLwogCV9fdTMyIGhhbmRsZTsKKworCS8qKgorCSAqIEBwYWQ6CisJICoKKwkgKiBT dHJ1Y3R1cmUgcGFkZGluZyB0aGF0IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUg MC4KKwkgKi8KIAlfX3UzMiBwYWQ7CisKKwkvKioKKwkgKiBAb2Zmc2V0OgorCSAqCisJICogVGhl IG1tYXAgb2Zmc2V0IGZvciB0aGUgZ2l2ZW4gR0VNIG9iamVjdC4gU2V0IGJ5IHRoZSBrZXJuZWwg dXBvbgorCSAqIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCisJICovCiAJX191 NjQgb2Zmc2V0OwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF9yZWFkIC0g cGFyYW1ldGVycyBmb3IgdGhlIHJlYWQgc3luY3BvaW50IElPQ1RMCisgKi8KIHN0cnVjdCBkcm1f dGVncmFfc3luY3B0X3JlYWQgeworCS8qKgorCSAqIEBpZDoKKwkgKgorCSAqIElEIG9mIHRoZSBz eW5jcG9pbnQgdG8gcmVhZCB0aGUgY3VycmVudCB2YWx1ZSBmcm9tLgorCSAqLwogCV9fdTMyIGlk OworCisJLyoqCisJICogQHZhbHVlOgorCSAqCisJICogVGhlIGN1cnJlbnQgc3luY3BvaW50IHZh bHVlLiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwKKwkgKiBjb21wbGV0aW9uIG9m IHRoZSBJT0NUTC4KKwkgKi8KIAlfX3UzMiB2YWx1ZTsKIH07CiAKKy8qKgorICogc3RydWN0IGRy bV90ZWdyYV9zeW5jcHRfaW5jciAtIHBhcmFtZXRlcnMgZm9yIHRoZSBpbmNyZW1lbnQgc3luY3Bv aW50IElPQ1RMCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X2luY3IgeworCS8qKgorCSAq IEBpZDoKKwkgKgorCSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgdG8gaW5jcmVtZW50LgorCSAqLwog CV9fdTMyIGlkOworCisJLyoqCisJICogQHBhZDoKKwkgKgorCSAqIFN0cnVjdHVyZSBwYWRkaW5n IHRoYXQgbWF5IGJlIHVzZWQgaW4gdGhlIGZ1dHVyZS4gTXVzdCBiZSAwLgorCSAqLwogCV9fdTMy IHBhZDsKIH07CiAKKy8qKgorICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfd2FpdCAtIHBhcmFt ZXRlcnMgZm9yIHRoZSB3YWl0IHN5bmNwb2ludCBJT0NUTAorICovCiBzdHJ1Y3QgZHJtX3RlZ3Jh X3N5bmNwdF93YWl0IHsKKwkvKioKKwkgKiBAaWQ6CisJICoKKwkgKiBJRCBvZiB0aGUgc3luY3Bv aW50IHRvIHdhaXQgb24uCisJICovCiAJX191MzIgaWQ7CisKKwkvKioKKwkgKiBAdGhyZXNoOgor CSAqCisJICogVGhyZXNob2xkIHZhbHVlIGZvciB3aGljaCB0byB3YWl0LgorCSAqLwogCV9fdTMy IHRocmVzaDsKKworCS8qKgorCSAqIEB0aW1lb3V0OgorCSAqCisJICogVGltZW91dCwgaW4gbWls bGlzZWNvbmRzLCB0byB3YWl0LgorCSAqLwogCV9fdTMyIHRpbWVvdXQ7CisKKwkvKioKKwkgKiBA dmFsdWU6CisJICoKKwkgKiBUaGUgbmV3IHN5bmNwb2ludCB2YWx1ZSBhZnRlciB0aGUgd2FpdC4g U2V0IGJ5IHRoZSBrZXJuZWwgdXBvbgorCSAqIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUg SU9DVEwuCisJICovCiAJX191MzIgdmFsdWU7CiB9OwogCiAjZGVmaW5lIERSTV9URUdSQV9OT19U SU1FT1VUCSgweGZmZmZmZmZmKQogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfb3Blbl9jaGFu bmVsIC0gcGFyYW1ldGVycyBmb3IgdGhlIG9wZW4gY2hhbm5lbCBJT0NUTAorICovCiBzdHJ1Y3Qg ZHJtX3RlZ3JhX29wZW5fY2hhbm5lbCB7CisJLyoqCisJICogQGNsaWVudDoKKwkgKgorCSAqIFRo ZSBjbGllbnQgSUQgZm9yIHRoaXMgY2hhbm5lbC4KKwkgKi8KIAlfX3UzMiBjbGllbnQ7CisKKwkv KioKKwkgKiBAcGFkOgorCSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNl ZCBpbiB0aGUgZnV0dXJlLiBNdXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOworCisJLyoqCisJ ICogQGNvbnRleHQ6CisJICoKKwkgKiBUaGUgYXBwbGljYXRpb24gY29udGV4dCBvZiB0aGlzIGNo YW5uZWwuIFNldCBieSB0aGUga2VybmVsIHVwb24KKwkgKiBzdWNjZXNzZnVsIGNvbXBsZXRpb24g b2YgdGhlIElPQ1RMLiBUaGlzIGNvbnRleHQgbmVlZHMgdG8gYmUgcGFzc2VkCisJICogdG8gdGhl IERSTV9URUdSQV9DSEFOTkVMX0NMT1NFIG9yIHRoZSBEUk1fVEVHUkFfU1VCTUlUIElPQ1RMcy4K KwkgKi8KIAlfX3U2NCBjb250ZXh0OwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2Ns b3NlX2NoYW5uZWwgLSBwYXJhbWV0ZXJzIGZvciB0aGUgY2xvc2UgY2hhbm5lbCBJT0NUTAorICov CiBzdHJ1Y3QgZHJtX3RlZ3JhX2Nsb3NlX2NoYW5uZWwgeworCS8qKgorCSAqIEBjb250ZXh0Ogor CSAqCisJICogVGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgb2YgdGhpcyBjaGFubmVsLiBUaGlzIGlz IG9idGFpbmVkIGZyb20gdGhlCisJICogRFJNX1RFR1JBX09QRU5fQ0hBTk5FTCBJT0NUTC4KKwkg Ki8KIAlfX3U2NCBjb250ZXh0OwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9z eW5jcHQgLSBwYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IHN5bmNwb2ludCBJT0NUTAorICovCiBzdHJ1 Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHQgeworCS8qKgorCSAqIEBjb250ZXh0OgorCSAqCisJICog VGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgaWRlbnRpZnlpbmcgdGhlIGNoYW5uZWwgZm9yIHdoaWNo IHRvIG9idGFpbgorCSAqIHRoZSBzeW5jcG9pbnQgSUQuCisJICovCiAJX191NjQgY29udGV4dDsK KworCS8qKgorCSAqIEBpbmRleDoKKwkgKgorCSAqIEluZGV4IG9mIHRoZSBjbGllbnQgc3luY3Bv aW50IGZvciB3aGljaCB0byBvYnRhaW4gdGhlIElELgorCSAqLwogCV9fdTMyIGluZGV4OworCisJ LyoqCisJICogQGlkOgorCSAqCisJICogVGhlIElEIG9mIHRoZSBnaXZlbiBzeW5jcG9pbnQuIFNl dCBieSB0aGUga2VybmVsIHVwb24gc3VjY2Vzc2Z1bAorCSAqIGNvbXBsZXRpb24gb2YgdGhlIElP Q1RMLgorCSAqLwogCV9fdTMyIGlkOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dl dF9zeW5jcHRfYmFzZSAtIHBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgd2FpdCBiYXNlIElPQ1RMCisg Ki8KIHN0cnVjdCBkcm1fdGVncmFfZ2V0X3N5bmNwdF9iYXNlIHsKKwkvKioKKwkgKiBAY29udGV4 dDoKKwkgKgorCSAqIFRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGlkZW50aWZ5aW5nIGZvciB3aGlj aCBjaGFubmVsIHRvIG9idGFpbiB0aGUKKwkgKiB3YWl0IGJhc2UuCisJICovCiAJX191NjQgY29u dGV4dDsKKworCS8qKgorCSAqIEBzeW5jcHQ6CisJICoKKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50 IGZvciB3aGljaCB0byBvYnRhaW4gdGhlIHdhaXQgYmFzZS4KKwkgKi8KIAlfX3UzMiBzeW5jcHQ7 CisKKwkvKioKKwkgKiBAaWQ6CisJICoKKwkgKiBUaGUgSUQgb2YgdGhlIHdhaXQgYmFzZSBjb3Jy ZXNwb25kaW5nIHRvIHRoZSBjbGllbnQgc3luY3BvaW50LiBTZXQKKwkgKiBieSB0aGUga2VybmVs IHVwb24gc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4KKwkgKi8KIAlfX3UzMiBp ZDsKIH07CiAKKy8qKgorICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHQgLSBzeW5jcG9pbnQgaW5j cmVtZW50IG9wZXJhdGlvbgorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCB7CisJLyoqCisJ ICogQGlkOgorCSAqCisJICogSUQgb2YgdGhlIHN5bmNwb2ludCB0byBvcGVyYXRlIG9uLgorCSAq LwogCV9fdTMyIGlkOworCisJLyoqCisJICogQGluY3JzOgorCSAqCisJICogTnVtYmVyIG9mIGlu Y3JlbWVudHMgdG8gcGVyZm9ybSBmb3IgdGhlIHN5bmNwb2ludC4KKwkgKi8KIAlfX3UzMiBpbmNy czsKIH07CiAKKy8qKgorICogc3RydWN0IGRybV90ZWdyYV9jbWRidWYgLSBzdHJ1Y3R1cmUgZGVz Y3JpYmluZyBhIGNvbW1hbmQgYnVmZmVyCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfY21kYnVmIHsK KwkvKioKKwkgKiBAaGFuZGxlOgorCSAqCisJICogSGFuZGxlIHRvIGEgR0VNIG9iamVjdCBjb250 YWluaW5nIHRoZSBjb21tYW5kIGJ1ZmZlci4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7CisKKwkvKioK KwkgKiBAb2Zmc2V0OgorCSAqCisJICogT2Zmc2V0LCBpbiBieXRlcywgaW50byB0aGUgR0VNIG9i amVjdCBpZGVudGlmaWVkIGJ5IEBoYW5kbGUgYXQKKwkgKiB3aGljaCB0aGUgY29tbWFuZCBidWZm ZXIgc3RhcnRzLgorCSAqLwogCV9fdTMyIG9mZnNldDsKKworCS8qKgorCSAqIEB3b3JkczoKKwkg KgorCSAqIE51bWJlciBvZiAzMi1iaXQgd29yZHMgaW4gdGhpcyBjb21tYW5kIGJ1ZmZlci4KKwkg Ki8KIAlfX3UzMiB3b3JkczsKKworCS8qKgorCSAqIEBwYWQ6CisJICoKKwkgKiBTdHJ1Y3R1cmUg cGFkZGluZyB0aGF0IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KKwkgKi8K IAlfX3UzMiBwYWQ7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfcmVsb2MgLSBHRU0g b2JqZWN0IHJlbG9jYXRpb24gc3RydWN0dXJlCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfcmVsb2Mg ewogCXN0cnVjdCB7CisJCS8qKgorCQkgKiBAY21kYnVmLmhhbmRsZToKKwkJICoKKwkJICogSGFu ZGxlIHRvIHRoZSBHRU0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbW1hbmQgYnVmZmVyIGZvcgor CQkgKiB3aGljaCB0byBwZXJmb3JtIHRoaXMgR0VNIG9iamVjdCByZWxvY2F0aW9uLgorCQkgKi8K IAkJX191MzIgaGFuZGxlOworCisJCS8qKgorCQkgKiBAY21kYnVmLm9mZnNldDoKKwkJICoKKwkJ ICogT2Zmc2V0LCBpbiBieXRlcywgaW50byB0aGUgY29tbWFuZCBidWZmZXIgYXQgd2hpY2ggdG8K KwkJICogaW5zZXJ0IHRoZSByZWxvY2F0ZWQgYWRkcmVzcy4KKwkJICovCiAJCV9fdTMyIG9mZnNl dDsKIAl9IGNtZGJ1ZjsKIAlzdHJ1Y3QgeworCQkvKioKKwkJICogQHRhcmdldC5oYW5kbGU6CisJ CSAqCisJCSAqIEhhbmRsZSB0byB0aGUgR0VNIG9iamVjdCB0byBiZSByZWxvY2F0ZWQuCisJCSAq LwogCQlfX3UzMiBoYW5kbGU7CisKKwkJLyoqCisJCSAqIEB0YXJnZXQub2Zmc2V0OgorCQkgKgor CQkgKiBPZmZzZXQsIGluIGJ5dGVzLCBpbnRvIHRoZSB0YXJnZXQgR0VNIG9iamVjdCBhdCB3aGlj aCB0aGUKKwkJICogcmVsb2NhdGVkIGRhdGEgc3RhcnRzLgorCQkgKi8KIAkJX191MzIgb2Zmc2V0 OwogCX0gdGFyZ2V0OworCisJLyoqCisJICogQHNoaWZ0OgorCSAqCisJICogVGhlIG51bWJlciBv ZiBiaXRzIGJ5IHdoaWNoIHRvIHNoaWZ0IHJlbG9jYXRlZCBhZGRyZXNzZXMuCisJICovCiAJX191 MzIgc2hpZnQ7CisKKwkvKioKKwkgKiBAcGFkOgorCSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcg dGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJlLiBNdXN0IGJlIDAuCisJICovCiAJX191MzIg cGFkOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3dhaXRjaGsgLSB3YWl0IGNoZWNr IHN0cnVjdHVyZQorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX3dhaXRjaGsgeworCS8qKgorCSAqIEBo YW5kbGU6CisJICoKKwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgY29udGFpbmluZyBhIGNv bW1hbmQgc3RyZWFtIG9uIHdoaWNoIHRvCisJICogcGVyZm9ybSB0aGUgd2FpdCBjaGVjay4KKwkg Ki8KIAlfX3UzMiBoYW5kbGU7CisKKwkvKioKKwkgKiBAb2Zmc2V0OgorCSAqCisJICogT2Zmc2V0 LCBpbiBieXRlcywgb2YgdGhlIGxvY2F0aW9uIGluIHRoZSBjb21tYW5kIHN0cmVhbSB0byBwZXJm b3JtCisJICogdGhlIHdhaXQgY2hlY2sgb24uCisJICovCiAJX191MzIgb2Zmc2V0OworCisJLyoq CisJICogQHN5bmNwdDoKKwkgKgorCSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgdG8gd2FpdCBjaGVj ay4KKwkgKi8KIAlfX3UzMiBzeW5jcHQ7CisKKwkvKioKKwkgKiBAdGhyZXNoOgorCSAqCisJICog VGhyZXNob2xkIHZhbHVlIGZvciB3aGljaCB0byBjaGVjay4KKwkgKi8KIAlfX3UzMiB0aHJlc2g7 CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0IC0gam9iIHN1Ym1pc3Npb24g c3RydWN0dXJlCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0IHsKKwkvKioKKwkgKiBAY29u dGV4dDoKKwkgKgorCSAqIFRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGlkZW50aWZ5aW5nIHRoZSBj aGFubmVsIHRvIHVzZSBmb3IgdGhlCisJICogZXhlY3V0aW9uIG9mIHRoaXMgam9iLgorCSAqLwog CV9fdTY0IGNvbnRleHQ7CisKKwkvKioKKwkgKiBAbnVtX3N5bmNwdHM6CisJICoKKwkgKiBUaGUg bnVtYmVyIG9mIHN5bmNwb2ludHMgb3BlcmF0ZWQgb24gYnkgdGhpcyBqb2IuIFRoaXMgZGVmaW5l cyB0aGUKKwkgKiBsZW5ndGggb2YgdGhlIGFycmF5IHBvaW50ZWQgdG8gYnkgQHN5bmNwdHMuCisJ ICovCiAJX191MzIgbnVtX3N5bmNwdHM7CisKKwkvKioKKwkgKiBAbnVtX2NtZGJ1ZnM6CisJICoK KwkgKiBUaGUgbnVtYmVyIG9mIGNvbW1hbmQgYnVmZmVycyB0byBleGVjdXRlIGFzIHBhcnQgb2Yg dGhpcyBqb2IuIFRoaXMKKwkgKiBkZWZpbmVzIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHBvaW50 ZWQgdG8gYnkgQGNtZGJ1ZnMuCisJICovCiAJX191MzIgbnVtX2NtZGJ1ZnM7CisKKwkvKioKKwkg KiBAbnVtX3JlbG9jczoKKwkgKgorCSAqIFRoZSBudW1iZXIgb2YgcmVsb2NhdGlvbnMgdG8gcGVy Zm9ybSBiZWZvcmUgZXhlY3V0aW5nIHRoaXMgam9iLgorCSAqIFRoaXMgZGVmaW5lcyB0aGUgbGVu Z3RoIG9mIHRoZSBhcnJheSBwb2ludGVkIHRvIGJ5IEByZWxvY3MuCisJICovCiAJX191MzIgbnVt X3JlbG9jczsKKworCS8qKgorCSAqIEBudW1fd2FpdGNoa3M6CisJICoKKwkgKiBUaGUgbnVtYmVy IG9mIHdhaXQgY2hlY2tzIHRvIHBlcmZvcm0gYXMgcGFydCBvZiB0aGlzIGpvYi4gVGhpcworCSAq IGRlZmluZXMgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgcG9pbnRlZCB0byBieSBAd2FpdGNoa3Mu CisJICovCiAJX191MzIgbnVtX3dhaXRjaGtzOworCisJLyoqCisJICogQHdhaXRjaGtfbWFzazoK KwkgKgorCSAqIEJpdG1hc2sgb2YgdmFsaWQgd2FpdCBjaGVja3MuCisJICovCiAJX191MzIgd2Fp dGNoa19tYXNrOworCisJLyoqCisJICogQHRpbWVvdXQ6CisJICoKKwkgKiBUaW1lb3V0LCBpbiBt aWxsaXNlY29uZHMsIGJlZm9yZSB0aGlzIGpvYiBpcyBjYW5jZWxsZWQuCisJICovCiAJX191MzIg dGltZW91dDsKKworCS8qKgorCSAqIEBzeW5jcHRzOgorCSAqCisJICogQSBwb2ludGVyIHRvIGFu IGFycmF5IG9mICZzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCBzdHJ1Y3R1cmVzIHRoYXQKKwkgKiBz cGVjaWZ5IHRoZSBzeW5jcG9pbnQgb3BlcmF0aW9ucyBwZXJmb3JtZWQgYXMgcGFydCBvZiB0aGlz IGpvYi4KKwkgKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBtdXN0IGJlIGVx dWFsIHRvIHRoZSB2YWx1ZQorCSAqIGdpdmVuIGJ5IEBudW1fc3luY3B0cy4KKwkgKi8KIAlfX3U2 NCBzeW5jcHRzOworCisJLyoqCisJICogQGNtZGJ1ZnM6CisJICoKKwkgKiBBIHBvaW50ZXIgdG8g YW4gYXJyYXkgb2YgJnN0cnVjdCBkcm1fdGVncmFfY21kYnVmIHN0cnVjdHVyZXMgdGhhdAorCSAq IGRlZmluZSB0aGUgY29tbWFuZCBidWZmZXJzIHRvIGV4ZWN1dGUgYXMgcGFydCBvZiB0aGlzIGpv Yi4gVGhlCisJICogbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBtdXN0IGJlIGVxdWFs IHRvIHRoZSB2YWx1ZSBnaXZlbgorCSAqIGJ5IEBudW1fc3luY3B0cy4KKwkgKi8KIAlfX3U2NCBj bWRidWZzOworCisJLyoqCisJICogQHJlbG9jczoKKwkgKgorCSAqIEEgcG9pbnRlciB0byBhbiBh cnJheSBvZiAmc3RydWN0IGRybV90ZWdyYV9yZWxvYyBzdHJ1Y3R1cmVzIHRoYXQKKwkgKiBzcGVj aWZ5IHRoZSByZWxvY2F0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcGVyZm9ybWVkIGJlZm9yZSBleGVj dXRpbmcKKwkgKiB0aGlzIGpvYi4gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkg bXVzdCBiZSBlcXVhbCB0byB0aGUKKwkgKiB2YWx1ZSBnaXZlbiBieSBAbnVtX3JlbG9jcy4KKwkg Ki8KIAlfX3U2NCByZWxvY3M7CisKKwkvKioKKwkgKiBAd2FpdGNoa3M6CisJICoKKwkgKiBBIHBv aW50ZXIgdG8gYW4gYXJyYXkgb2YgJnN0cnVjdCBkcm1fdGVncmFfd2FpdGNoayBzdHJ1Y3R1cmVz IHRoYXQKKwkgKiBzcGVjaWZ5IHRoZSB3YWl0IGNoZWNrcyB0byBiZSBwZXJmb3JtZWQgd2hpbGUg ZXhlY3V0aW5nIHRoaXMgam9iLgorCSAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFy cmF5IG11c3QgYmUgZXF1YWwgdG8gdGhlIHZhbHVlCisJICogZ2l2ZW4gYnkgQG51bV93YWl0Y2hr cy4KKwkgKi8KIAlfX3U2NCB3YWl0Y2hrczsKLQlfX3UzMiBmZW5jZTsJCS8qIFJldHVybiB2YWx1 ZSAqLwogCi0JX191MzIgcmVzZXJ2ZWRbNV07CS8qIGZ1dHVyZSBleHBhbnNpb24gKi8KKwkvKioK KwkgKiBAZmVuY2U6CisJICoKKwkgKiBUaGUgdGhyZXNob2xkIG9mIHRoZSBzeW5jcG9pbnQgYXNz b2NpYXRlZCB3aXRoIHRoaXMgam9iIGFmdGVyIGl0CisJICogaGFzIGJlZW4gY29tcGxldGVkLiBT ZXQgYnkgdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZgorCSAqIHRoZSBJ T0NUTC4gVGhpcyBjYW4gYmUgdXNlZCB3aXRoIHRoZSBEUk1fVEVHUkFfU1lOQ1BUX1dBSVQgSU9D VEwgdG8KKwkgKiB3YWl0IGZvciB0aGlzIGpvYiB0byBiZSBmaW5pc2hlZC4KKwkgKi8KKwlfX3Uz MiBmZW5jZTsKKworCS8qKgorCSAqIEByZXNlcnZlZDoKKwkgKgorCSAqIFRoaXMgZmllbGQgaXMg cmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuIE11c3QgYmUgMC4KKwkgKi8KKwlfX3UzMiByZXNlcnZl ZFs1XTsKIH07CiAKICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9USUxJTkdfTU9ERV9QSVRDSCAwCiAj ZGVmaW5lIERSTV9URUdSQV9HRU1fVElMSU5HX01PREVfVElMRUQgMQogI2RlZmluZSBEUk1fVEVH UkFfR0VNX1RJTElOR19NT0RFX0JMT0NLIDIKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dl bV9zZXRfdGlsaW5nIC0gcGFyYW1ldGVycyBmb3IgdGhlIHNldCB0aWxpbmcgSU9DVEwKKyAqLwog c3RydWN0IGRybV90ZWdyYV9nZW1fc2V0X3RpbGluZyB7Ci0JLyogaW5wdXQgKi8KKwkvKioKKwkg KiBAaGFuZGxlOgorCSAqCisJICogSGFuZGxlIHRvIHRoZSBHRU0gb2JqZWN0IGZvciB3aGljaCB0 byBzZXQgdGhlIHRpbGluZyBwYXJhbWV0ZXJzLgorCSAqLwogCV9fdTMyIGhhbmRsZTsKKworCS8q KgorCSAqIEBtb2RlOgorCSAqCisJICogVGhlIHRpbGluZyBtb2RlIHRvIHNldC4gTXVzdCBiZSBv bmUgb2Y6CisJICoKKwkgKiBEUk1fVEVHUkFfR0VNX1RJTElOR19NT0RFX1BJVENICisJICogICBw aXRjaCBsaW5lYXIgZm9ybWF0CisJICoKKwkgKiBEUk1fVEVHUkFfR0VNX1RJTElOR19NT0RFX1RJ TEVECisJICogICAxNngxNiB0aWxpbmcgZm9ybWF0CisJICoKKwkgKiBEUk1fVEVHUkFfR0VNX1RJ TElOR19NT0RFX0JMT0NLCisJICogICAxNkJ4MiB0aWxpbmcgZm9ybWF0CisJICovCiAJX191MzIg bW9kZTsKKworCS8qKgorCSAqIEB2YWx1ZToKKwkgKgorCSAqIFRoZSB2YWx1ZSB0byBzZXQgZm9y IHRoZSB0aWxpbmcgbW9kZSBwYXJhbWV0ZXIuCisJICovCiAJX191MzIgdmFsdWU7CisKKwkvKioK KwkgKiBAcGFkOgorCSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBp biB0aGUgZnV0dXJlLiBNdXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOwogfTsKIAorLyoqCisg KiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9nZXRfdGlsaW5nIC0gcGFyYW1ldGVycyBmb3IgdGhlIGdl dCB0aWxpbmcgSU9DVEwKKyAqLwogc3RydWN0IGRybV90ZWdyYV9nZW1fZ2V0X3RpbGluZyB7Ci0J LyogaW5wdXQgKi8KKwkvKioKKwkgKiBAaGFuZGxlOgorCSAqCisJICogSGFuZGxlIHRvIHRoZSBH RU0gb2JqZWN0IGZvciB3aGljaCB0byBxdWVyeSB0aGUgdGlsaW5nIHBhcmFtZXRlcnMuCisJICov CiAJX191MzIgaGFuZGxlOwotCS8qIG91dHB1dCAqLworCisJLyoqCisJICogQG1vZGU6CisJICoK KwkgKiBUaGUgdGlsaW5nIG1vZGUgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgR0VNIG9i amVjdC4gU2V0IGJ5CisJICogdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBv ZiB0aGUgSU9DVEwuCisJICovCiAJX191MzIgbW9kZTsKKworCS8qKgorCSAqIEB2YWx1ZToKKwkg KgorCSAqIFRoZSB0aWxpbmcgbW9kZSBwYXJhbWV0ZXIgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0 aCB0aGUgR0VNIG9iamVjdC4KKwkgKiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwg Y29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCisJICovCiAJX191MzIgdmFsdWU7CisKKwkvKioKKwkg KiBAcGFkOgorCSAqCisJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0 aGUgZnV0dXJlLiBNdXN0IGJlIDAuCisJICovCiAJX191MzIgcGFkOwogfTsKIAogI2RlZmluZSBE Uk1fVEVHUkFfR0VNX0JPVFRPTV9VUAkJKDEgPDwgMCkKICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9G TEFHUwkJKERSTV9URUdSQV9HRU1fQk9UVE9NX1VQKQogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVn cmFfZ2VtX3NldF9mbGFncyAtIHBhcmFtZXRlcnMgZm9yIHRoZSBzZXQgZmxhZ3MgSU9DVEwKKyAq Lwogc3RydWN0IGRybV90ZWdyYV9nZW1fc2V0X2ZsYWdzIHsKLQkvKiBpbnB1dCAqLworCS8qKgor CSAqIEBoYW5kbGU6CisJICoKKwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgZm9yIHdoaWNo IHRvIHNldCB0aGUgZmxhZ3MuCisJICovCiAJX191MzIgaGFuZGxlOwotCS8qIG91dHB1dCAqLwor CisJLyoqCisJICogQGZsYWdzOgorCSAqCisJICogVGhlIGZsYWdzIHRvIHNldCBmb3IgdGhlIEdF TSBvYmplY3QuCisJICovCiAJX191MzIgZmxhZ3M7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1f dGVncmFfZ2VtX2dldF9mbGFncyAtIHBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgZmxhZ3MgSU9DVEwK KyAqLwogc3RydWN0IGRybV90ZWdyYV9nZW1fZ2V0X2ZsYWdzIHsKLQkvKiBpbnB1dCAqLworCS8q KgorCSAqIEBoYW5kbGU6CisJICoKKwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgZm9yIHdo aWNoIHRvIHF1ZXJ5IHRoZSBmbGFncy4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7Ci0JLyogb3V0cHV0 ICovCisKKwkvKioKKwkgKiBAZmxhZ3M6CisJICoKKwkgKiBUaGUgZmxhZ3MgY3VycmVudGx5IGFz c29jaWF0ZWQgd2l0aCB0aGUgR0VNIG9iamVjdC4gU2V0IGJ5IHRoZQorCSAqIGtlcm5lbCB1cG9u IHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCisJICovCiAJX191MzIgZmxhZ3M7 CiB9OwogCkBAIC0xOTMsNyArNjY1LDcgQEAgc3RydWN0IGRybV90ZWdyYV9nZW1fZ2V0X2ZsYWdz IHsKICNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX1NZTkNQVF9JTkNSIERSTV9JT1dSKERSTV9DT01N QU5EX0JBU0UgKyBEUk1fVEVHUkFfU1lOQ1BUX0lOQ1IsIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0 X2luY3IpCiAjZGVmaW5lIERSTV9JT0NUTF9URUdSQV9TWU5DUFRfV0FJVCBEUk1fSU9XUihEUk1f Q09NTUFORF9CQVNFICsgRFJNX1RFR1JBX1NZTkNQVF9XQUlULCBzdHJ1Y3QgZHJtX3RlZ3JhX3N5 bmNwdF93YWl0KQogI2RlZmluZSBEUk1fSU9DVExfVEVHUkFfT1BFTl9DSEFOTkVMIERSTV9JT1dS KERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfT1BFTl9DSEFOTkVMLCBzdHJ1Y3QgZHJtX3Rl Z3JhX29wZW5fY2hhbm5lbCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0NMT1NFX0NIQU5ORUwg RFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9DTE9TRV9DSEFOTkVMLCBzdHJ1 Y3QgZHJtX3RlZ3JhX29wZW5fY2hhbm5lbCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0NMT1NF X0NIQU5ORUwgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9DTE9TRV9DSEFO TkVMLCBzdHJ1Y3QgZHJtX3RlZ3JhX2Nsb3NlX2NoYW5uZWwpCiAjZGVmaW5lIERSTV9JT0NUTF9U RUdSQV9HRVRfU1lOQ1BUIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfR0VU X1NZTkNQVCwgc3RydWN0IGRybV90ZWdyYV9nZXRfc3luY3B0KQogI2RlZmluZSBEUk1fSU9DVExf VEVHUkFfU1VCTUlUIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfU1VCTUlU LCBzdHJ1Y3QgZHJtX3RlZ3JhX3N1Ym1pdCkKICNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0dFVF9T WU5DUFRfQkFTRSBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1RFR1JBX0dFVF9TWU5D UFRfQkFTRSwgc3RydWN0IGRybV90ZWdyYV9nZXRfc3luY3B0X2Jhc2UpCmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS11YXBpL3YzZF9kcm0uaCBiL2luY2x1ZGUvZHJtLXVhcGkvdjNkX2RybS5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2I2NjI3NzgzNjA4Ci0tLSAv ZGV2L251bGwKKysrIGIvaW5jbHVkZS9kcm0tdWFwaS92M2RfZHJtLmgKQEAgLTAsMCArMSwxOTQg QEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE4IEJyb2FkY29tCisgKgorICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0 aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0 ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5j bHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hB TEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VU IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF UiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX1YzRF9EUk1f SF8KKyNkZWZpbmUgX1YzRF9EUk1fSF8KKworI2luY2x1ZGUgImRybS5oIgorCisjaWYgZGVmaW5l ZChfX2NwbHVzcGx1cykKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNkZWZpbmUgRFJNX1YzRF9T VUJNSVRfQ0wgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAorI2RlZmluZSBEUk1fVjNEX1dB SVRfQk8gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIERSTV9WM0RfQ1JF QVRFX0JPICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgRFJNX1YzRF9NTUFQ X0JPICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMworI2RlZmluZSBEUk1fVjNEX0dFVF9Q QVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIERSTV9WM0RfR0VUX0JP X09GRlNFVCAgICAgICAgICAgICAgICAgICAgIDB4MDUKKworI2RlZmluZSBEUk1fSU9DVExfVjNE X1NVQk1JVF9DTCAgICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WM0Rf U1VCTUlUX0NMLCBzdHJ1Y3QgZHJtX3YzZF9zdWJtaXRfY2wpCisjZGVmaW5lIERSTV9JT0NUTF9W M0RfV0FJVF9CTyAgICAgICAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1Yz RF9XQUlUX0JPLCBzdHJ1Y3QgZHJtX3YzZF93YWl0X2JvKQorI2RlZmluZSBEUk1fSU9DVExfVjNE X0NSRUFURV9CTyAgICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WM0Rf Q1JFQVRFX0JPLCBzdHJ1Y3QgZHJtX3YzZF9jcmVhdGVfYm8pCisjZGVmaW5lIERSTV9JT0NUTF9W M0RfTU1BUF9CTyAgICAgICAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1Yz RF9NTUFQX0JPLCBzdHJ1Y3QgZHJtX3YzZF9tbWFwX2JvKQorI2RlZmluZSBEUk1fSU9DVExfVjNE X0dFVF9QQVJBTSAgICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9WM0Rf R0VUX1BBUkFNLCBzdHJ1Y3QgZHJtX3YzZF9nZXRfcGFyYW0pCisjZGVmaW5lIERSTV9JT0NUTF9W M0RfR0VUX0JPX09GRlNFVCAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1Yz RF9HRVRfQk9fT0ZGU0VULCBzdHJ1Y3QgZHJtX3YzZF9nZXRfYm9fb2Zmc2V0KQorCisvKioKKyAq IHN0cnVjdCBkcm1fdjNkX3N1Ym1pdF9jbCAtIGlvY3RsIGFyZ3VtZW50IGZvciBzdWJtaXR0aW5n IGNvbW1hbmRzIHRvIHRoZSAzRAorICogZW5naW5lLgorICoKKyAqIFRoaXMgYXNrcyB0aGUga2Vy bmVsIHRvIGhhdmUgdGhlIEdQVSBleGVjdXRlIGFuIG9wdGlvbmFsIGJpbm5lcgorICogY29tbWFu ZCBsaXN0LCBhbmQgYSByZW5kZXIgY29tbWFuZCBsaXN0LgorICovCitzdHJ1Y3QgZHJtX3YzZF9z dWJtaXRfY2wgeworCS8qIFBvaW50ZXIgdG8gdGhlIGJpbm5lciBjb21tYW5kIGxpc3QuCisJICoK KwkgKiBUaGlzIGlzIHRoZSBmaXJzdCBzZXQgb2YgY29tbWFuZHMgZXhlY3V0ZWQsIHdoaWNoIHJ1 bnMgdGhlCisJICogY29vcmRpbmF0ZSBzaGFkZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHByaW1pdGl2 ZXMgbGFuZCBvbiB0aGUgc2NyZWVuLAorCSAqIHRoZW4gd3JpdGVzIG91dCB0aGUgc3RhdGUgdXBk YXRlcyBhbmQgZHJhdyBjYWxscyBuZWNlc3NhcnkgcGVyIHRpbGUKKwkgKiB0byB0aGUgdGlsZSBh bGxvY2F0aW9uIEJPLgorCSAqLworCV9fdTMyIGJjbF9zdGFydDsKKworCSAvKiogRW5kIGFkZHJl c3Mgb2YgdGhlIEJDTCAoZmlyc3QgYnl0ZSBhZnRlciB0aGUgQkNMKSAqLworCV9fdTMyIGJjbF9l bmQ7CisKKwkvKiBPZmZzZXQgb2YgdGhlIHJlbmRlciBjb21tYW5kIGxpc3QuCisJICoKKwkgKiBU aGlzIGlzIHRoZSBzZWNvbmQgc2V0IG9mIGNvbW1hbmRzIGV4ZWN1dGVkLCB3aGljaCB3aWxsIGVp dGhlcgorCSAqIGV4ZWN1dGUgdGhlIHRpbGVzIHRoYXQgaGF2ZSBiZWVuIHNldCB1cCBieSB0aGUg QkNMLCBvciBhIGZpeGVkIHNldAorCSAqIG9mIHRpbGVzIChpbiB0aGUgY2FzZSBvZiBSQ0wtb25s eSBibGl0cykuCisJICovCisJX191MzIgcmNsX3N0YXJ0OworCisJIC8qKiBFbmQgYWRkcmVzcyBv ZiB0aGUgUkNMIChmaXJzdCBieXRlIGFmdGVyIHRoZSBSQ0wpICovCisJX191MzIgcmNsX2VuZDsK KworCS8qKiBBbiBvcHRpb25hbCBzeW5jIG9iamVjdCB0byB3YWl0IG9uIGJlZm9yZSBzdGFydGlu ZyB0aGUgQkNMLiAqLworCV9fdTMyIGluX3N5bmNfYmNsOworCS8qKiBBbiBvcHRpb25hbCBzeW5j IG9iamVjdCB0byB3YWl0IG9uIGJlZm9yZSBzdGFydGluZyB0aGUgUkNMLiAqLworCV9fdTMyIGlu X3N5bmNfcmNsOworCS8qKiBBbiBvcHRpb25hbCBzeW5jIG9iamVjdCB0byBwbGFjZSB0aGUgY29t cGxldGlvbiBmZW5jZSBpbi4gKi8KKwlfX3UzMiBvdXRfc3luYzsKKworCS8qIE9mZnNldCBvZiB0 aGUgdGlsZSBhbGxvYyBtZW1vcnkKKwkgKgorCSAqIFRoaXMgaXMgb3B0aW9uYWwgb24gVjNEIDMu MyAod2hlcmUgdGhlIENMIGNhbiBzZXQgdGhlIHZhbHVlKSBidXQKKwkgKiByZXF1aXJlZCBvbiBW M0QgNC4xLgorCSAqLworCV9fdTMyIHFtYTsKKworCS8qKiBTaXplIG9mIHRoZSB0aWxlIGFsbG9j IG1lbW9yeS4gKi8KKwlfX3UzMiBxbXM7CisKKwkvKiogT2Zmc2V0IG9mIHRoZSB0aWxlIHN0YXRl IGRhdGEgYXJyYXkuICovCisJX191MzIgcXRzOworCisJLyogUG9pbnRlciB0byBhIHUzMiBhcnJh eSBvZiB0aGUgQk9zIHRoYXQgYXJlIHJlZmVyZW5jZWQgYnkgdGhlIGpvYi4KKwkgKi8KKwlfX3U2 NCBib19oYW5kbGVzOworCisJLyogTnVtYmVyIG9mIEJPIGhhbmRsZXMgcGFzc2VkIGluIChzaXpl IGlzIHRoYXQgdGltZXMgNCkuICovCisJX191MzIgYm9faGFuZGxlX2NvdW50OworCisJLyogUGFk LCBtdXN0IGJlIHplcm8tZmlsbGVkLiAqLworCV9fdTMyIHBhZDsKK307CisKKy8qKgorICogc3Ry dWN0IGRybV92M2Rfd2FpdF9ibyAtIGlvY3RsIGFyZ3VtZW50IGZvciB3YWl0aW5nIGZvcgorICog Y29tcGxldGlvbiBvZiB0aGUgbGFzdCBEUk1fVjNEX1NVQk1JVF9DTCBvbiBhIEJPLgorICoKKyAq IFRoaXMgaXMgdXNlZnVsIGZvciBjYXNlcyB3aGVyZSBtdWx0aXBsZSBwcm9jZXNzZXMgbWlnaHQg YmUKKyAqIHJlbmRlcmluZyB0byBhIEJPIGFuZCB5b3Ugd2FudCB0byB3YWl0IGZvciBhbGwgcmVu ZGVyaW5nIHRvIGJlCisgKiBjb21wbGV0ZWQuCisgKi8KK3N0cnVjdCBkcm1fdjNkX3dhaXRfYm8g eworCV9fdTMyIGhhbmRsZTsKKwlfX3UzMiBwYWQ7CisJX191NjQgdGltZW91dF9uczsKK307CisK Ky8qKgorICogc3RydWN0IGRybV92M2RfY3JlYXRlX2JvIC0gaW9jdGwgYXJndW1lbnQgZm9yIGNy ZWF0aW5nIFYzRCBCT3MuCisgKgorICogVGhlcmUgYXJlIGN1cnJlbnRseSBubyB2YWx1ZXMgZm9y IHRoZSBmbGFncyBhcmd1bWVudCwgYnV0IGl0IG1heSBiZQorICogdXNlZCBpbiBhIGZ1dHVyZSBl eHRlbnNpb24uCisgKi8KK3N0cnVjdCBkcm1fdjNkX2NyZWF0ZV9ibyB7CisJX191MzIgc2l6ZTsK KwlfX3UzMiBmbGFnczsKKwkvKiogUmV0dXJuZWQgR0VNIGhhbmRsZSBmb3IgdGhlIEJPLiAqLwor CV9fdTMyIGhhbmRsZTsKKwkvKioKKwkgKiBSZXR1cm5lZCBvZmZzZXQgZm9yIHRoZSBCTyBpbiB0 aGUgVjNEIGFkZHJlc3Mgc3BhY2UuICBUaGlzIG9mZnNldAorCSAqIGlzIHByaXZhdGUgdG8gdGhl IERSTSBmZCBhbmQgaXMgdmFsaWQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgR0VNCisJICogaGFu ZGxlLgorCSAqCisJICogVGhpcyBvZmZzZXQgdmFsdWUgd2lsbCBhbHdheXMgYmUgbm9uemVybywg c2luY2UgdmFyaW91cyBIVworCSAqIHVuaXRzIHRyZWF0IDAgc3BlY2lhbGx5LgorCSAqLworCV9f dTMyIG9mZnNldDsKK307CisKKy8qKgorICogc3RydWN0IGRybV92M2RfbW1hcF9ibyAtIGlvY3Rs IGFyZ3VtZW50IGZvciBtYXBwaW5nIFYzRCBCT3MuCisgKgorICogVGhpcyBkb2Vzbid0IGFjdHVh bGx5IHBlcmZvcm0gYW4gbW1hcC4gIEluc3RlYWQsIGl0IHJldHVybnMgdGhlCisgKiBvZmZzZXQg eW91IG5lZWQgdG8gdXNlIGluIGFuIG1tYXAgb24gdGhlIERSTSBkZXZpY2Ugbm9kZS4gIFRoaXMK KyAqIG1lYW5zIHRoYXQgdG9vbHMgbGlrZSB2YWxncmluZCBlbmQgdXAga25vd2luZyBhYm91dCB0 aGUgbWFwcGVkCisgKiBtZW1vcnkuCisgKgorICogVGhlcmUgYXJlIGN1cnJlbnRseSBubyB2YWx1 ZXMgZm9yIHRoZSBmbGFncyBhcmd1bWVudCwgYnV0IGl0IG1heSBiZQorICogdXNlZCBpbiBhIGZ1 dHVyZSBleHRlbnNpb24uCisgKi8KK3N0cnVjdCBkcm1fdjNkX21tYXBfYm8geworCS8qKiBIYW5k bGUgZm9yIHRoZSBvYmplY3QgYmVpbmcgbWFwcGVkLiAqLworCV9fdTMyIGhhbmRsZTsKKwlfX3Uz MiBmbGFnczsKKwkvKiogb2Zmc2V0IGludG8gdGhlIGRybSBub2RlIHRvIHVzZSBmb3Igc3Vic2Vx dWVudCBtbWFwIGNhbGwuICovCisJX191NjQgb2Zmc2V0OworfTsKKworZW51bSBkcm1fdjNkX3Bh cmFtIHsKKwlEUk1fVjNEX1BBUkFNX1YzRF9VSUZDRkcsCisJRFJNX1YzRF9QQVJBTV9WM0RfSFVC X0lERU5UMSwKKwlEUk1fVjNEX1BBUkFNX1YzRF9IVUJfSURFTlQyLAorCURSTV9WM0RfUEFSQU1f VjNEX0hVQl9JREVOVDMsCisJRFJNX1YzRF9QQVJBTV9WM0RfQ09SRTBfSURFTlQwLAorCURSTV9W M0RfUEFSQU1fVjNEX0NPUkUwX0lERU5UMSwKKwlEUk1fVjNEX1BBUkFNX1YzRF9DT1JFMF9JREVO VDIsCit9OworCitzdHJ1Y3QgZHJtX3YzZF9nZXRfcGFyYW0geworCV9fdTMyIHBhcmFtOworCV9f dTMyIHBhZDsKKwlfX3U2NCB2YWx1ZTsKK307CisKKy8qKgorICogUmV0dXJucyB0aGUgb2Zmc2V0 IGZvciB0aGUgQk8gaW4gdGhlIFYzRCBhZGRyZXNzIHNwYWNlIGZvciB0aGlzIERSTSBmZC4KKyAq IFRoaXMgaXMgdGhlIHNhbWUgdmFsdWUgcmV0dXJuZWQgYnkgZHJtX3YzZF9jcmVhdGVfYm8sIGlm IHRoYXQgd2FzIGNhbGxlZAorICogZnJvbSB0aGlzIERSTSBmZC4KKyAqLworc3RydWN0IGRybV92 M2RfZ2V0X2JvX29mZnNldCB7CisJX191MzIgaGFuZGxlOworCV9fdTMyIG9mZnNldDsKK307CisK KyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorfQorI2VuZGlmCisKKyNlbmRpZiAvKiBfVjNEX0RS TV9IXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS92YzRfZHJtLmggYi9pbmNsdWRl L2RybS11YXBpL3ZjNF9kcm0uaAppbmRleCA0MTE3MTE3YjQyMDQuLjMxZjUwZGUzOWFjYiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9kcm0tdWFwaS92YzRfZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFw aS92YzRfZHJtLmgKQEAgLTE4MywxMCArMTgzLDE3IEBAIHN0cnVjdCBkcm1fdmM0X3N1Ym1pdF9j bCB7CiAJLyogSUQgb2YgdGhlIHBlcmZtb24gdG8gYXR0YWNoIHRvIHRoaXMgam9iLiAwIG1lYW5z IG5vIHBlcmZtb24uICovCiAJX191MzIgcGVyZm1vbmlkOwogCi0JLyogVW51c2VkIGZpZWxkIHRv IGFsaWduIHRoaXMgc3RydWN0IG9uIDY0IGJpdHMuIE11c3QgYmUgc2V0IHRvIDAuCi0JICogSWYg b25lIGV2ZXIgbmVlZHMgdG8gYWRkIGFuIHUzMiBmaWVsZCB0byB0aGlzIHN0cnVjdCwgdGhpcyBm aWVsZAotCSAqIGNhbiBiZSB1c2VkLgorCS8qIFN5bmNvYmogaGFuZGxlIHRvIHdhaXQgb24uIElm IHNldCwgcHJvY2Vzc2luZyBvZiB0aGlzIHJlbmRlciBqb2IKKwkgKiB3aWxsIG5vdCBzdGFydCB1 bnRpbCB0aGUgc3luY29iaiBpcyBzaWduYWxlZC4gMCBtZWFucyBpZ25vcmUuCiAJICovCisJX191 MzIgaW5fc3luYzsKKworCS8qIFN5bmNvYmogaGFuZGxlIHRvIGV4cG9ydCBmZW5jZSB0by4gSWYg c2V0LCB0aGUgZmVuY2UgaW4gdGhlIHN5bmNvYmoKKwkgKiB3aWxsIGJlIHJlcGxhY2VkIHdpdGgg YSBmZW5jZSB0aGF0IHNpZ25hbHMgdXBvbiBjb21wbGV0aW9uIG9mIHRoaXMKKwkgKiByZW5kZXIg am9iLiAwIG1lYW5zIGlnbm9yZS4KKwkgKi8KKwlfX3UzMiBvdXRfc3luYzsKKwogCV9fdTMyIHBh ZDI7CiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS11YXBpL3ZpcnRncHVfZHJtLmggYi9p bmNsdWRlL2RybS11YXBpL3ZpcnRncHVfZHJtLmgKaW5kZXggOTFhMzFmZmVkODI4Li45YTc4MWYw NjExZGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtLXVhcGkvdmlydGdwdV9kcm0uaAorKysgYi9p bmNsdWRlL2RybS11YXBpL3ZpcnRncHVfZHJtLmgKQEAgLTYzLDYgKzYzLDcgQEAgc3RydWN0IGRy bV92aXJ0Z3B1X2V4ZWNidWZmZXIgewogfTsKIAogI2RlZmluZSBWSVJUR1BVX1BBUkFNXzNEX0ZF QVRVUkVTIDEgLyogZG8gd2UgaGF2ZSAzRCBmZWF0dXJlcyBpbiB0aGUgaHcgKi8KKyNkZWZpbmUg VklSVEdQVV9QQVJBTV9DQVBTRVRfUVVFUllfRklYIDIgLyogZG8gd2UgaGF2ZSB0aGUgY2Fwc2V0 IGZpeCAqLwogCiBzdHJ1Y3QgZHJtX3ZpcnRncHVfZ2V0cGFyYW0gewogCV9fdTY0IHBhcmFtOwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS92bXdnZnhfZHJtLmggYi9pbmNsdWRlL2RybS11 YXBpL3Ztd2dmeF9kcm0uaAppbmRleCAwYmM3ODRmNWUwZGIuLjM5OWY1ODMxN2NmZiAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0tdWFwaS92bXdnZnhfZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0tdWFw aS92bXdnZnhfZHJtLmgKQEAgLTQwLDYgKzQwLDcgQEAgZXh0ZXJuICJDIiB7CiAKICNkZWZpbmUg RFJNX1ZNV19HRVRfUEFSQU0gICAgICAgICAgICAwCiAjZGVmaW5lIERSTV9WTVdfQUxMT0NfRE1B QlVGICAgICAgICAgMQorI2RlZmluZSBEUk1fVk1XX0FMTE9DX0JPICAgICAgICAgICAgIDEKICNk ZWZpbmUgRFJNX1ZNV19VTlJFRl9ETUFCVUYgICAgICAgICAyCiAjZGVmaW5lIERSTV9WTVdfSEFO RExFX0NMT1NFICAgICAgICAgMgogI2RlZmluZSBEUk1fVk1XX0NVUlNPUl9CWVBBU1MgICAgICAg IDMKQEAgLTY4LDYgKzY5LDggQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9WTVdfR0JfU1VS RkFDRV9SRUYgICAgICAgMjQKICNkZWZpbmUgRFJNX1ZNV19TWU5DQ1BVICAgICAgICAgICAgICAy NQogI2RlZmluZSBEUk1fVk1XX0NSRUFURV9FWFRFTkRFRF9DT05URVhUIDI2CisjZGVmaW5lIERS TV9WTVdfR0JfU1VSRkFDRV9DUkVBVEVfRVhUICAgMjcKKyNkZWZpbmUgRFJNX1ZNV19HQl9TVVJG QUNFX1JFRl9FWFQgICAgICAyOAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qKgpAQCAtNzksNiAr ODIsOSBAQCBleHRlcm4gIkMiIHsKICAqCiAgKiBEUk1fVk1XX1BBUkFNX09WRVJMQVlfSU9DVEw6 CiAgKiBEb2VzIHRoZSBkcml2ZXIgc3VwcG9ydCB0aGUgb3ZlcmxheSBpb2N0bC4KKyAqCisgKiBE Uk1fVk1XX1BBUkFNX1NNNF8xCisgKiBTTTRfMSBzdXBwb3J0IGlzIGVuYWJsZWQuCiAgKi8KIAog I2RlZmluZSBEUk1fVk1XX1BBUkFNX05VTV9TVFJFQU1TICAgICAgMApAQCAtOTQsNiArMTAwLDgg QEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9WTVdfUEFSQU1fTUFYX01PQl9TSVpFICAgICAx MAogI2RlZmluZSBEUk1fVk1XX1BBUkFNX1NDUkVFTl9UQVJHRVQgICAgMTEKICNkZWZpbmUgRFJN X1ZNV19QQVJBTV9EWCAgICAgICAgICAgICAgIDEyCisjZGVmaW5lIERSTV9WTVdfUEFSQU1fSFdf Q0FQUzIgICAgICAgICAxMworI2RlZmluZSBEUk1fVk1XX1BBUkFNX1NNNF8xICAgICAgICAgICAg MTQKIAogLyoqCiAgKiBlbnVtIGRybV92bXdfaGFuZGxlX3R5cGUgLSBoYW5kbGUgdHlwZSBmb3Ig cmVmIGlvY3RscwpAQCAtMzU2LDkgKzM2NCw5IEBAIHN0cnVjdCBkcm1fdm13X2ZlbmNlX3JlcCB7 CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLwogLyoqCi0gKiBEUk1fVk1XX0FMTE9DX0RNQUJVRgorICog RFJNX1ZNV19BTExPQ19CTwogICoKLSAqIEFsbG9jYXRlIGEgRE1BIGJ1ZmZlciB0aGF0IGlzIHZp c2libGUgYWxzbyB0byB0aGUgaG9zdC4KKyAqIEFsbG9jYXRlIGEgYnVmZmVyIG9iamVjdCB0aGF0 IGlzIHZpc2libGUgYWxzbyB0byB0aGUgaG9zdC4KICAqIE5PVEU6IFRoZSBidWZmZXIgaXMKICAq IGlkZW50aWZpZWQgYnkgYSBoYW5kbGUgYW5kIGFuIG9mZnNldCwgd2hpY2ggYXJlIHByaXZhdGUg dG8gdGhlIGd1ZXN0LCBidXQKICAqIHVzZWFibGUgaW4gdGhlIGNvbW1hbmQgc3RyZWFtLiBUaGUg Z3Vlc3Qga2VybmVsIG1heSB0cmFuc2xhdGUgdGhlc2UKQEAgLTM2NiwyNyArMzc0LDI4IEBAIHN0 cnVjdCBkcm1fdm13X2ZlbmNlX3JlcCB7CiAgKiBiZSB6ZXJvIGF0IGFsbCB0aW1lcywgb3IgaXQg bWF5IGRpc2FwcGVhciBmcm9tIHRoZSBpbnRlcmZhY2UgYmVmb3JlIGl0IGlzCiAgKiBmaXhlZC4K ICAqCi0gKiBUaGUgRE1BIGJ1ZmZlciBtYXkgc3RheSB1c2VyLXNwYWNlIG1hcHBlZCBpbiB0aGUg Z3Vlc3QgYXQgYWxsIHRpbWVzLAorICogVGhlIGJ1ZmZlciBvYmplY3QgbWF5IHN0YXkgdXNlci1z cGFjZSBtYXBwZWQgaW4gdGhlIGd1ZXN0IGF0IGFsbCB0aW1lcywKICAqIGFuZCBpcyB0aHVzIHN1 aXRhYmxlIGZvciBzdWItYWxsb2NhdGlvbi4KICAqCi0gKiBETUEgYnVmZmVycyBhcmUgbWFwcGVk IHVzaW5nIHRoZSBtbWFwKCkgc3lzY2FsbCBvbiB0aGUgZHJtIGRldmljZS4KKyAqIEJ1ZmZlciBv YmplY3RzIGFyZSBtYXBwZWQgdXNpbmcgdGhlIG1tYXAoKSBzeXNjYWxsIG9uIHRoZSBkcm0gZGV2 aWNlLgogICovCiAKIC8qKgotICogc3RydWN0IGRybV92bXdfYWxsb2NfZG1hYnVmX3JlcQorICog c3RydWN0IGRybV92bXdfYWxsb2NfYm9fcmVxCiAgKgogICogQHNpemU6IFJlcXVpcmVkIG1pbmlt dW0gc2l6ZSBvZiB0aGUgYnVmZmVyLgogICoKLSAqIElucHV0IGRhdGEgdG8gdGhlIERSTV9WTVdf QUxMT0NfRE1BQlVGIElvY3RsLgorICogSW5wdXQgZGF0YSB0byB0aGUgRFJNX1ZNV19BTExPQ19C TyBJb2N0bC4KICAqLwogCi1zdHJ1Y3QgZHJtX3Ztd19hbGxvY19kbWFidWZfcmVxIHsKK3N0cnVj dCBkcm1fdm13X2FsbG9jX2JvX3JlcSB7CiAJX191MzIgc2l6ZTsKIAlfX3UzMiBwYWQ2NDsKIH07 CisjZGVmaW5lIGRybV92bXdfYWxsb2NfZG1hYnVmX3JlcSBkcm1fdm13X2FsbG9jX2JvX3JlcQog CiAvKioKLSAqIHN0cnVjdCBkcm1fdm13X2RtYWJ1Zl9yZXAKKyAqIHN0cnVjdCBkcm1fdm13X2Jv X3JlcAogICoKICAqIEBtYXBfaGFuZGxlOiBPZmZzZXQgdG8gdXNlIGluIHRoZSBtbWFwKCkgY2Fs bCB1c2VkIHRvIG1hcCB0aGUgYnVmZmVyLgogICogQGhhbmRsZTogSGFuZGxlIHVuaXF1ZSB0byB0 aGlzIGJ1ZmZlci4gVXNlZCBmb3IgdW5yZWZlcmVuY2luZy4KQEAgLTM5NSw1MCArNDA0LDMyIEBA IHN0cnVjdCBkcm1fdm13X2FsbG9jX2RtYWJ1Zl9yZXEgewogICogQGN1cl9nbXJfb2Zmc2V0OiBP ZmZzZXQgdG8gdXNlIGluIHRoZSBjb21tYW5kIHN0cmVhbSB3aGVuIHRoaXMgYnVmZmVyIGlzCiAg KiByZWZlcmVuY2VkLiBTZWUgbm90ZSBhYm92ZS4KICAqCi0gKiBPdXRwdXQgZGF0YSBmcm9tIHRo ZSBEUk1fVk1XX0FMTE9DX0RNQUJVRiBJb2N0bC4KKyAqIE91dHB1dCBkYXRhIGZyb20gdGhlIERS TV9WTVdfQUxMT0NfQk8gSW9jdGwuCiAgKi8KIAotc3RydWN0IGRybV92bXdfZG1hYnVmX3JlcCB7 CitzdHJ1Y3QgZHJtX3Ztd19ib19yZXAgewogCV9fdTY0IG1hcF9oYW5kbGU7CiAJX191MzIgaGFu ZGxlOwogCV9fdTMyIGN1cl9nbXJfaWQ7CiAJX191MzIgY3VyX2dtcl9vZmZzZXQ7CiAJX191MzIg cGFkNjQ7CiB9OworI2RlZmluZSBkcm1fdm13X2RtYWJ1Zl9yZXAgZHJtX3Ztd19ib19yZXAKIAog LyoqCi0gKiB1bmlvbiBkcm1fdm13X2RtYWJ1Zl9hcmcKKyAqIHVuaW9uIGRybV92bXdfYWxsb2Nf Ym9fYXJnCiAgKgogICogQHJlcTogSW5wdXQgZGF0YSBhcyBkZXNjcmliZWQgYWJvdmUuCiAgKiBA cmVwOiBPdXRwdXQgZGF0YSBhcyBkZXNjcmliZWQgYWJvdmUuCiAgKgotICogQXJndW1lbnQgdG8g dGhlIERSTV9WTVdfQUxMT0NfRE1BQlVGIElvY3RsLgorICogQXJndW1lbnQgdG8gdGhlIERSTV9W TVdfQUxMT0NfQk8gSW9jdGwuCiAgKi8KIAotdW5pb24gZHJtX3Ztd19hbGxvY19kbWFidWZfYXJn IHsKLQlzdHJ1Y3QgZHJtX3Ztd19hbGxvY19kbWFidWZfcmVxIHJlcTsKLQlzdHJ1Y3QgZHJtX3Zt d19kbWFidWZfcmVwIHJlcDsKLX07Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqCi0gKiBEUk1f Vk1XX1VOUkVGX0RNQUJVRiAtIEZyZWUgYSBETUEgYnVmZmVyLgotICoKLSAqLwotCi0vKioKLSAq IHN0cnVjdCBkcm1fdm13X3VucmVmX2RtYWJ1Zl9hcmcKLSAqCi0gKiBAaGFuZGxlOiBIYW5kbGUg aW5kaWNhdGluZyB3aGF0IGJ1ZmZlciB0byBmcmVlLiBPYnRhaW5lZCBmcm9tIHRoZQotICogRFJN X1ZNV19BTExPQ19ETUFCVUYgSW9jdGwuCi0gKgotICogQXJndW1lbnQgdG8gdGhlIERSTV9WTVdf VU5SRUZfRE1BQlVGIElvY3RsLgotICovCi0KLXN0cnVjdCBkcm1fdm13X3VucmVmX2RtYWJ1Zl9h cmcgewotCV9fdTMyIGhhbmRsZTsKLQlfX3UzMiBwYWQ2NDsKK3VuaW9uIGRybV92bXdfYWxsb2Nf Ym9fYXJnIHsKKwlzdHJ1Y3QgZHJtX3Ztd19hbGxvY19ib19yZXEgcmVxOworCXN0cnVjdCBkcm1f dm13X2JvX3JlcCByZXA7CiB9OworI2RlZmluZSBkcm1fdm13X2FsbG9jX2RtYWJ1Zl9hcmcgZHJt X3Ztd19hbGxvY19ib19hcmcKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKioKQEAgLTExMDMsOSAr MTA5NCw4IEBAIHVuaW9uIGRybV92bXdfZXh0ZW5kZWRfY29udGV4dF9hcmcgewogICogRFJNX1ZN V19IQU5ETEVfQ0xPU0UgLSBDbG9zZSBhIHVzZXItc3BhY2UgaGFuZGxlIGFuZCByZWxlYXNlIGl0 cwogICogdW5kZXJseWluZyByZXNvdXJjZS4KICAqCi0gKiBOb3RlIHRoYXQgdGhpcyBpb2N0bCBp cyBvdmVybGFpZCBvbiB0aGUgRFJNX1ZNV19VTlJFRl9ETUFCVUYgSW9jdGwuCi0gKiBUaGUgaW9j dGwgYXJndW1lbnRzIHRoZXJlZm9yZSBuZWVkIHRvIGJlIGlkZW50aWNhbCBpbiBsYXlvdXQuCi0g KgorICogTm90ZSB0aGF0IHRoaXMgaW9jdGwgaXMgb3ZlcmxhaWQgb24gdGhlIGRlcHJlY2F0ZWQg RFJNX1ZNV19VTlJFRl9ETUFCVUYKKyAqIElvY3RsLgogICovCiAKIC8qKgpAQCAtMTExOSw3ICsx MTA5LDEwNyBAQCBzdHJ1Y3QgZHJtX3Ztd19oYW5kbGVfY2xvc2VfYXJnIHsKIAlfX3UzMiBoYW5k bGU7CiAJX191MzIgcGFkNjQ7CiB9OworI2RlZmluZSBkcm1fdm13X3VucmVmX2RtYWJ1Zl9hcmcg ZHJtX3Ztd19oYW5kbGVfY2xvc2VfYXJnCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiBE Uk1fVk1XX0dCX1NVUkZBQ0VfQ1JFQVRFX0VYVCAtIENyZWF0ZSBhIGhvc3QgZ3Vlc3QtYmFja2Vk IHN1cmZhY2UuCisgKgorICogQWxsb2NhdGVzIGEgc3VyZmFjZSBoYW5kbGUgYW5kIHF1ZXVlcyBh IGNyZWF0ZSBzdXJmYWNlIGNvbW1hbmQKKyAqIGZvciB0aGUgaG9zdCBvbiB0aGUgZmlyc3QgdXNl IG9mIHRoZSBzdXJmYWNlLiBUaGUgc3VyZmFjZSBJRCBjYW4KKyAqIGJlIHVzZWQgYXMgdGhlIHN1 cmZhY2UgSUQgaW4gY29tbWFuZHMgcmVmZXJlbmNpbmcgdGhlIHN1cmZhY2UuCisgKgorICogVGhp cyBuZXcgY29tbWFuZCBleHRlbmRzIERSTV9WTVdfR0JfU1VSRkFDRV9DUkVBVEUgYnkgYWRkaW5n IHZlcnNpb24KKyAqIHBhcmFtZXRlciBhbmQgNjQgYml0IHN2Z2EgZmxhZy4KKyAqLworCisvKioK KyAqIGVudW0gZHJtX3Ztd19zdXJmYWNlX3ZlcnNpb24KKyAqCisgKiBAZHJtX3Ztd19zdXJmYWNl X2diX3YxOiBDb3JyZXNwb25kcyB0byBjdXJyZW50IGdiIHN1cmZhY2UgZm9ybWF0IHdpdGgKKyAq IHN2Z2EzZCBzdXJmYWNlIGZsYWdzIHNwbGl0IGludG8gMiwgdXBwZXIgaGFsZiBhbmQgbG93ZXIg aGFsZi4KKyAqLworZW51bSBkcm1fdm13X3N1cmZhY2VfdmVyc2lvbiB7CisJZHJtX3Ztd19nYl9z dXJmYWNlX3YxCit9OworCisvKioKKyAqIHN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRl X2V4dF9yZXEKKyAqCisgKiBAYmFzZTogU3VyZmFjZSBjcmVhdGUgcGFyYW1ldGVycy4KKyAqIEB2 ZXJzaW9uOiBWZXJzaW9uIG9mIHN1cmZhY2UgY3JlYXRlIGlvY3RsLgorICogQHN2Z2EzZF9mbGFn c191cHBlcl8zMl9iaXRzOiBVcHBlciAzMiBiaXRzIG9mIHN2Z2EzZCBmbGFncy4KKyAqIEBtdWx0 aXNhbXBsZV9wYXR0ZXJuOiBNdWx0aXNhbXBsaW5nIHBhdHRlcm4gd2hlbiBtc2FhIGlzIHN1cHBv cnRlZC4KKyAqIEBxdWFsaXR5X2xldmVsOiBQcmVjaXNpb24gc2V0dGluZ3MgZm9yIGVhY2ggc2Ft cGxlLgorICogQG11c3RfYmVfemVybzogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZS4KKyAqCisg KiBJbnB1dCBhcmd1bWVudCB0byB0aGUgIERSTV9WTVdfR0JfU1VSRkFDRV9DUkVBVEVfRVhUIElv Y3RsLgorICogUGFydCBvZiBvdXRwdXQgYXJndW1lbnQgZm9yIHRoZSBEUk1fVk1XX0dCX1NVUkZB Q0VfUkVGX0VYVCBJb2N0bC4KKyAqLworc3RydWN0IGRybV92bXdfZ2Jfc3VyZmFjZV9jcmVhdGVf ZXh0X3JlcSB7CisJc3RydWN0IGRybV92bXdfZ2Jfc3VyZmFjZV9jcmVhdGVfcmVxIGJhc2U7CisJ ZW51bSBkcm1fdm13X3N1cmZhY2VfdmVyc2lvbiB2ZXJzaW9uOworCXVpbnQzMl90IHN2Z2EzZF9m bGFnc191cHBlcl8zMl9iaXRzOworCVNWR0EzZE1TUGF0dGVybiBtdWx0aXNhbXBsZV9wYXR0ZXJu OworCVNWR0EzZE1TUXVhbGl0eUxldmVsIHF1YWxpdHlfbGV2ZWw7CisJdWludDY0X3QgbXVzdF9i ZV96ZXJvOworfTsKKworLyoqCisgKiB1bmlvbiBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRlX2V4 dF9hcmcKKyAqCisgKiBAcmVxOiBJbnB1dCBhcmd1bWVudCBhcyBkZXNjcmliZWQgYWJvdmUuCisg KiBAcmVwOiBPdXRwdXQgYXJndW1lbnQgYXMgZGVzY3JpYmVkIGFib3ZlLgorICoKKyAqIEFyZ3Vt ZW50IHRvIHRoZSBEUk1fVk1XX0dCX1NVUkZBQ0VfQ1JFQVRFX0VYVCBpb2N0bC4KKyAqLwordW5p b24gZHJtX3Ztd19nYl9zdXJmYWNlX2NyZWF0ZV9leHRfYXJnIHsKKwlzdHJ1Y3QgZHJtX3Ztd19n Yl9zdXJmYWNlX2NyZWF0ZV9yZXAgcmVwOworCXN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3Jl YXRlX2V4dF9yZXEgcmVxOworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIERSTV9W TVdfR0JfU1VSRkFDRV9SRUZfRVhUIC0gUmVmZXJlbmNlIGEgaG9zdCBzdXJmYWNlLgorICoKKyAq IFB1dHMgYSByZWZlcmVuY2Ugb24gYSBob3N0IHN1cmZhY2Ugd2l0aCBhIGdpdmVuIGhhbmRsZSwg YXMgcHJldmlvdXNseQorICogcmV0dXJuZWQgYnkgdGhlIERSTV9WTVdfR0JfU1VSRkFDRV9DUkVB VEVfRVhUIGlvY3RsLgorICogQSByZWZlcmVuY2Ugd2lsbCBtYWtlIHN1cmUgdGhlIHN1cmZhY2Ug aXNuJ3QgZGVzdHJveWVkIHdoaWxlIHdlIGhvbGQKKyAqIGl0IGFuZCB3aWxsIGFsbG93IHRoZSBj YWxsaW5nIGNsaWVudCB0byB1c2UgdGhlIHN1cmZhY2UgaGFuZGxlIGluCisgKiB0aGUgY29tbWFu ZCBzdHJlYW0uCisgKgorICogT24gc3VjY2Vzc2Z1bCByZXR1cm4sIHRoZSBJb2N0bCByZXR1cm5z IHRoZSBzdXJmYWNlIGluZm9ybWF0aW9uIGdpdmVuCisgKiB0byBhbmQgcmV0dXJuZWQgZnJvbSB0 aGUgRFJNX1ZNV19HQl9TVVJGQUNFX0NSRUFURV9FWFQgaW9jdGwuCisgKi8KIAorLyoqCisgKiBz dHJ1Y3QgZHJtX3Ztd19nYl9zdXJmYWNlX3JlZl9leHRfcmVwCisgKgorICogQGNyZXE6IFRoZSBk YXRhIHVzZWQgYXMgaW5wdXQgd2hlbiB0aGUgc3VyZmFjZSB3YXMgY3JlYXRlZCwgYXMgZGVzY3Jp YmVkCisgKiAgICAgICAgYWJvdmUgYXQgInN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2VfY3JlYXRl X2V4dF9yZXEiCisgKiBAY3JlcDogQWRkaXRpb25hbCBkYXRhIG91dHB1dCB3aGVuIHRoZSBzdXJm YWNlIHdhcyBjcmVhdGVkLCBhcyBkZXNjcmliZWQKKyAqICAgICAgICBhYm92ZSBhdCAic3RydWN0 IGRybV92bXdfZ2Jfc3VyZmFjZV9jcmVhdGVfcmVwIgorICoKKyAqIE91dHB1dCBBcmd1bWVudCB0 byB0aGUgRFJNX1ZNV19HQl9TVVJGQUNFX1JFRl9FWFQgaW9jdGwuCisgKi8KK3N0cnVjdCBkcm1f dm13X2diX3N1cmZhY2VfcmVmX2V4dF9yZXAgeworCXN0cnVjdCBkcm1fdm13X2diX3N1cmZhY2Vf Y3JlYXRlX2V4dF9yZXEgY3JlcTsKKwlzdHJ1Y3QgZHJtX3Ztd19nYl9zdXJmYWNlX2NyZWF0ZV9y ZXAgY3JlcDsKK307CisKKy8qKgorICogdW5pb24gZHJtX3Ztd19nYl9zdXJmYWNlX3JlZmVyZW5j ZV9leHRfYXJnCisgKgorICogQHJlcTogSW5wdXQgZGF0YSBhcyBkZXNjcmliZWQgYWJvdmUgYXQg InN0cnVjdCBkcm1fdm13X3N1cmZhY2VfYXJnIgorICogQHJlcDogT3V0cHV0IGRhdGEgYXMgZGVz Y3JpYmVkIGFib3ZlIGF0CisgKiAgICAgICAic3RydWN0IGRybV92bXdfZ2Jfc3VyZmFjZV9yZWZf ZXh0X3JlcCIKKyAqCisgKiBBcmd1bWVudCB0byB0aGUgRFJNX1ZNV19HQl9TVVJGQUNFX1JFRiBJ b2N0bC4KKyAqLwordW5pb24gZHJtX3Ztd19nYl9zdXJmYWNlX3JlZmVyZW5jZV9leHRfYXJnIHsK KwlzdHJ1Y3QgZHJtX3Ztd19nYl9zdXJmYWNlX3JlZl9leHRfcmVwIHJlcDsKKwlzdHJ1Y3QgZHJt X3Ztd19zdXJmYWNlX2FyZyByZXE7Cit9OwogCiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKIH0K LS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==