From: Juergen Gross Subject: [PATCH v7 01/20] xen: add some xen headers Date: Fri, 7 Dec 2018 13:11:29 +0100 Message-ID: <20181207121148.15419-2-jgross@suse.com> References: <20181207121148.15419-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181207121148.15419-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: grub-devel@gnu.org Cc: Juergen Gross , phcoder@gmail.com, daniel.kiper@oracle.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SW4gb3JkZXIgdG8gc3VwcG9ydCBncnViMiBpbiBYZW4gUFZIIGVudmlyb25tZW50IHNvbWUgYWRk aXRpb25hbCBYZW4KaGVhZGVycyBhcmUgbmVlZGVkIGFzIGdydWIyIHdpbGwgYmUgc3RhcnRlZCBp biBQVkggbW9kZSByZXF1aXJpbmcgdG8KdXNlIHNldmVyYWwgSFZNIGh5cGVyY2FsbHMgYW5kIHN0 cnVjdHVyZXMuCgpBZGQgdGhlIG5lZWRlZCBoZWFkZXJzIGZyb20gWGVuIDQuMTAgYmVpbmcgdGhl IGZpcnN0IFhlbiB2ZXJzaW9uIHdpdGgKZnVsbCAobm90IG9ubHkgZXhwZXJpbWVudGFsKSBQVkgg Z3Vlc3Qgc3VwcG9ydC4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNl LmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+ Ci0tLQpWMjogdXBkYXRlIGNvbW1pdCBtZXNzYWdlIChEYW5pZWwgS2lwZXIpCi0tLQogaW5jbHVk ZS94ZW4vaHZtL2h2bV9vcC5oICAgICB8IDI5NiArKysrKysrKysrKysrKysrKysrCiBpbmNsdWRl L3hlbi9odm0vcGFyYW1zLmggICAgIHwgMjg0ICsrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94 ZW4vaHZtL3N0YXJ0X2luZm8uaCB8ICA5OCArKysrKysrCiBpbmNsdWRlL3hlbi9tZW1vcnkuaCAg ICAgICAgIHwgNjY1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGluY2x1ZGUveGVuL3BoeXNkZXYuaCAgICAgICAgfCAzODcgKysrKysrKysrKysrKysrKysrKysr KysrKwogaW5jbHVkZS94ZW4vdHJhY2UuaCAgICAgICAgICB8IDMzOSArKysrKysrKysrKysrKysr KysrKysrCiBpbmNsdWRlL3hlbi94ZW4uaCAgICAgICAgICAgIHwgMTA0ICsrKysrLS0KIDcgZmls ZXMgY2hhbmdlZCwgMjE0MiBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9odm0vaHZtX29wLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBp bmNsdWRlL3hlbi9odm0vcGFyYW1zLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9o dm0vc3RhcnRfaW5mby5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vbWVtb3J5LmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9waHlzZGV2LmgKIGNyZWF0ZSBtb2RlIDEw MDY0NCBpbmNsdWRlL3hlbi90cmFjZS5oCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaHZtL2h2 bV9vcC5oIGIvaW5jbHVkZS94ZW4vaHZtL2h2bV9vcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uMGJkYWZkZjU5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4v aHZtL2h2bV9vcC5oCkBAIC0wLDAgKzEsMjk2IEBACisvKgorICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29w eQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRl ZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdh cmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS UkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8g RVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICog RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdo dCAoYykgMjAwNywgS2VpciBGcmFzZXIKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19IVk1f SFZNX09QX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSFZNX0hWTV9PUF9IX18KKworI2luY2x1 ZGUgIi4uL3hlbi5oIgorI2luY2x1ZGUgIi4uL3RyYWNlLmgiCisjaW5jbHVkZSAiLi4vZXZlbnRf Y2hhbm5lbC5oIgorCisvKiBHZXQvc2V0IHN1YmNvbW1hbmRzOiBleHRyYSBhcmd1bWVudCA9PSBw b2ludGVyIHRvIHhlbl9odm1fcGFyYW0gc3RydWN0LiAqLworI2RlZmluZSBIVk1PUF9zZXRfcGFy YW0gICAgICAgICAgIDAKKyNkZWZpbmUgSFZNT1BfZ2V0X3BhcmFtICAgICAgICAgICAxCitzdHJ1 Y3QgeGVuX2h2bV9wYXJhbSB7CisgICAgZG9taWRfdCAgZG9taWQ7ICAgIC8qIElOICovCisgICAg dWludDMyX3QgaW5kZXg7ICAgIC8qIElOICovCisgICAgdWludDY0X3QgdmFsdWU7ICAgIC8qIElO L09VVCAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fcGFyYW0geGVuX2h2bV9wYXJhbV90 OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9wYXJhbV90KTsKKworI2lmIF9fWEVO X0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwOTAwCisKKy8qIFNldCB0aGUgbG9naWNhbCBs ZXZlbCBvZiBvbmUgb2YgYSBkb21haW4ncyBQQ0kgSU5UeCB3aXJlcy4gKi8KKyNkZWZpbmUgSFZN T1Bfc2V0X3BjaV9pbnR4X2xldmVsICAyCitzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2 ZWwgeworICAgIC8qIERvbWFpbiB0byBiZSB1cGRhdGVkLiAqLworICAgIGRvbWlkX3QgIGRvbWlk OworICAgIC8qIFBDSSBJTlR4IGlkZW50aWZpY2F0aW9uIGluIFBDSSB0b3BvbG9neSAoZG9tYWlu OmJ1czpkZXZpY2U6aW50eCkuICovCisgICAgdWludDhfdCAgZG9tYWluLCBidXMsIGRldmljZSwg aW50eDsKKyAgICAvKiBBc3NlcnRpb24gbGV2ZWwgKDAgPSB1bmFzc2VydGVkLCAxID0gYXNzZXJ0 ZWQpLiAqLworICAgIHVpbnQ4X3QgIGxldmVsOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9odm1f c2V0X3BjaV9pbnR4X2xldmVsIHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsX3Q7CitERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3NldF9wY2lfaW50eF9sZXZlbF90KTsKKworLyogU2V0 IHRoZSBsb2dpY2FsIGxldmVsIG9mIG9uZSBvZiBhIGRvbWFpbidzIElTQSBJUlEgd2lyZXMuICov CisjZGVmaW5lIEhWTU9QX3NldF9pc2FfaXJxX2xldmVsICAgMworc3RydWN0IHhlbl9odm1fc2V0 X2lzYV9pcnFfbGV2ZWwgeworICAgIC8qIERvbWFpbiB0byBiZSB1cGRhdGVkLiAqLworICAgIGRv bWlkX3QgIGRvbWlkOworICAgIC8qIElTQSBkZXZpY2UgaWRlbnRpZmljYXRpb24sIGJ5IElTQSBJ UlEgKDAtMTUpLiAqLworICAgIHVpbnQ4X3QgIGlzYV9pcnE7CisgICAgLyogQXNzZXJ0aW9uIGxl dmVsICgwID0gdW5hc3NlcnRlZCwgMSA9IGFzc2VydGVkKS4gKi8KKyAgICB1aW50OF90ICBsZXZl bDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3NldF9pc2FfaXJxX2xldmVsIHhlbl9odm1f c2V0X2lzYV9pcnFfbGV2ZWxfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fc2V0 X2lzYV9pcnFfbGV2ZWxfdCk7CisKKyNkZWZpbmUgSFZNT1Bfc2V0X3BjaV9saW5rX3JvdXRlICA0 CitzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgeworICAgIC8qIERvbWFpbiB0byBi ZSB1cGRhdGVkLiAqLworICAgIGRvbWlkX3QgIGRvbWlkOworICAgIC8qIFBDSSBsaW5rIGlkZW50 aWZpZXIgKDAtMykuICovCisgICAgdWludDhfdCAgbGluazsKKyAgICAvKiBJU0EgSVJRICgxLTE1 KSwgb3IgMCAoZGlzYWJsZSBsaW5rKS4gKi8KKyAgICB1aW50OF90ICBpc2FfaXJxOworfTsKK3R5 cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlIHhlbl9odm1fc2V0X3BjaV9s aW5rX3JvdXRlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3NldF9wY2lfbGlu a19yb3V0ZV90KTsKKworI2VuZGlmIC8qIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAw MDQwOTAwICovCisKKy8qIEZsdXNoZXMgYWxsIFZDUFUgVExCczogQGFyZyBtdXN0IGJlIE5VTEwu ICovCisjZGVmaW5lIEhWTU9QX2ZsdXNoX3RsYnMgICAgICAgICAgNQorCit0eXBlZGVmIGVudW0g eworICAgIEhWTU1FTV9yYW1fcncsICAgICAgICAgICAgIC8qIE5vcm1hbCByZWFkL3dyaXRlIGd1 ZXN0IFJBTSAqLworICAgIEhWTU1FTV9yYW1fcm8sICAgICAgICAgICAgIC8qIFJlYWQtb25seTsg d3JpdGVzIGFyZSBkaXNjYXJkZWQgKi8KKyAgICBIVk1NRU1fbW1pb19kbSwgICAgICAgICAgICAv KiBSZWFkcyBhbmQgd3JpdGUgZ28gdG8gdGhlIGRldmljZSBtb2RlbCAqLworI2lmIF9fWEVOX0lO VEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwNzAwCisgICAgSFZNTUVNX21taW9fd3JpdGVfZG0s ICAgICAgLyogUmVhZC1vbmx5OyB3cml0ZXMgZ28gdG8gdGhlIGRldmljZSBtb2RlbCAqLworI2Vs c2UKKyAgICBIVk1NRU1fdW51c2VkLCAgICAgICAgICAgICAvKiBQbGFjZWhvbGRlcjsgc2V0dGlu ZyBtZW1vcnkgdG8gdGhpcyB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg d2lsbCBmYWlsIGZvciBjb2RlIGFmdGVyIDQuNy4wICovCisjZW5kaWYKKyAgICBIVk1NRU1faW9y ZXFfc2VydmVyICAgICAgICAvKiBNZW1vcnkgdHlwZSBjbGFpbWVkIGJ5IGFuIGlvcmVxIHNlcnZl cjsgdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZXMgdG8gdGhp cyB2YWx1ZSBhcmUgb25seSBhbGxvd2VkIGFmdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYW4gaW9yZXEgc2VydmVyIGhhcyBjbGFpbWVkIGl0cyBvd25lcnNoaXAuCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBwYWdlcyB3aXRoIEhWTU1FTV9yYW1f cncgYXJlIGFsbG93ZWQgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFu Z2UgdG8gdGhpcyB0eXBlOyBjb252ZXJzZWx5LCBwYWdlcyB3aXRoCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGhpcyB0eXBlIGFyZSBvbmx5IGFsbG93ZWQgdG8gYmUgY2hhbmdl ZCBiYWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gSFZNTUVNX3JhbV9y dy4gKi8KK30gaHZtbWVtX3R5cGVfdDsKKworLyogSGludCBmcm9tIFBWIGRyaXZlcnMgZm9yIHBh Z2V0YWJsZSBkZXN0cnVjdGlvbi4gKi8KKyNkZWZpbmUgSFZNT1BfcGFnZXRhYmxlX2R5aW5nICAg ICAgICA5CitzdHJ1Y3QgeGVuX2h2bV9wYWdldGFibGVfZHlpbmcgeworICAgIC8qIERvbWFpbiB3 aXRoIGEgcGFnZXRhYmxlIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gKi8KKyAgICBkb21pZF90ICBk b21pZDsKKyAgICB1aW50MTZfdCBwYWRbM107IC8qIGFsaWduIG5leHQgZmllbGQgb24gOC1ieXRl IGJvdW5kYXJ5ICovCisgICAgLyogZ3Vlc3QgcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgdG9wbGV2 ZWwgcGFnZXRhYmxlIGR5aW5nICovCisgICAgdWludDY0X3QgZ3BhOworfTsKK3R5cGVkZWYgc3Ry dWN0IHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nIHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nX3Q7CitE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3BhZ2V0YWJsZV9keWluZ190KTsKKworLyog R2V0IHRoZSBjdXJyZW50IFhlbiB0aW1lLCBpbiBuYW5vc2Vjb25kcyBzaW5jZSBzeXN0ZW0gYm9v dC4gKi8KKyNkZWZpbmUgSFZNT1BfZ2V0X3RpbWUgICAgICAgICAgICAgIDEwCitzdHJ1Y3QgeGVu X2h2bV9nZXRfdGltZSB7CisgICAgdWludDY0X3Qgbm93OyAgICAgIC8qIE9VVCAqLworfTsKK3R5 cGVkZWYgc3RydWN0IHhlbl9odm1fZ2V0X3RpbWUgeGVuX2h2bV9nZXRfdGltZV90OworREVGSU5F X1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9nZXRfdGltZV90KTsKKworI2RlZmluZSBIVk1PUF94 ZW50cmFjZSAgICAgICAgICAgICAgMTEKK3N0cnVjdCB4ZW5faHZtX3hlbnRyYWNlIHsKKyAgICB1 aW50MTZfdCBldmVudCwgZXh0cmFfYnl0ZXM7CisgICAgdWludDhfdCBleHRyYVtUUkFDRV9FWFRS QV9NQVggKiBzaXplb2YodWludDMyX3QpXTsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3hl bnRyYWNlIHhlbl9odm1feGVudHJhY2VfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9o dm1feGVudHJhY2VfdCk7CisKKy8qIEZvbGxvd2luZyB0b29scy1vbmx5IGludGVyZmFjZXMgbWF5 IGNoYW5nZSBpbiBmdXR1cmUuICovCisjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9f WEVOX1RPT0xTX18pCisKKy8qIERlcHJlY2F0ZWQgYnkgWEVOTUVNX2FjY2Vzc19vcF9zZXRfYWNj ZXNzICovCisjZGVmaW5lIEhWTU9QX3NldF9tZW1fYWNjZXNzICAgICAgICAxMgorCisvKiBEZXBy ZWNhdGVkIGJ5IFhFTk1FTV9hY2Nlc3Nfb3BfZ2V0X2FjY2VzcyAqLworI2RlZmluZSBIVk1PUF9n ZXRfbWVtX2FjY2VzcyAgICAgICAgMTMKKworI2VuZGlmIC8qIGRlZmluZWQoX19YRU5fXykgfHwg ZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLworCisjZGVmaW5lIEhWTU9QX2dldF9tZW1fdHlwZSAg ICAxNQorLyogUmV0dXJuIGh2bW1lbV90eXBlX3QgZm9yIHRoZSBzcGVjaWZpZWQgcGZuLiAqLwor c3RydWN0IHhlbl9odm1fZ2V0X21lbV90eXBlIHsKKyAgICAvKiBEb21haW4gdG8gYmUgcXVlcmll ZC4gKi8KKyAgICBkb21pZF90IGRvbWlkOworICAgIC8qIE9VVCB2YXJpYWJsZS4gKi8KKyAgICB1 aW50MTZfdCBtZW1fdHlwZTsKKyAgICB1aW50MTZfdCBwYWRbMl07IC8qIGFsaWduIG5leHQgZmll bGQgb24gOC1ieXRlIGJvdW5kYXJ5ICovCisgICAgLyogSU4gdmFyaWFibGUuICovCisgICAgdWlu dDY0X3QgcGZuOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fZ2V0X21lbV90eXBlIHhlbl9o dm1fZ2V0X21lbV90eXBlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2dldF9t ZW1fdHlwZV90KTsKKworLyogRm9sbG93aW5nIHRvb2xzLW9ubHkgaW50ZXJmYWNlcyBtYXkgY2hh bmdlIGluIGZ1dHVyZS4gKi8KKyNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5f VE9PTFNfXykKKworLyoKKyAqIERlZmluaXRpb25zIHJlbGF0aW5nIHRvIERNT1BfY3JlYXRlX2lv cmVxX3NlcnZlci4gKERlZmluZWQgaGVyZSBmb3IKKyAqIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 KS4KKyAqLworCisjZGVmaW5lIEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9PRkYgICAgMAorI2RlZmlu ZSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfTEVHQUNZIDEKKy8qCisgKiBVc2UgdGhpcyB3aGVuIHJl YWRfcG9pbnRlciBnZXRzIHVwZGF0ZWQgYXRvbWljYWxseSBhbmQKKyAqIHRoZSBwb2ludGVyIHBh aXIgZ2V0cyByZWFkIGF0b21pY2FsbHk6CisgKi8KKyNkZWZpbmUgSFZNX0lPUkVRU1JWX0JVRklP UkVRX0FUT01JQyAyCisKKyNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19Y RU5fVE9PTFNfXykgKi8KKworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykKKworLyoKKyAqIEhWTU9QX3NldF9ldnRjaG5fdXBjYWxsX3ZlY3RvcjogU2V0IGEgPHZl Y3Rvcj4gdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgZXZlbnQKKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2hhbm5lbCB1cGNhbGxzIG9uIHRoZSBzcGVjaWZpZWQgPHZjcHU+LiBJ ZiBzZXQsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgdmVjdG9yIHdp bGwgYmUgdXNlZCBpbiBwcmVmZXJlbmNlIHRvIHRoZQorICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkb21haW4gZ2xvYmFsIGNhbGxiYWNrIHZpYSAoc2VlCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEhWTV9QQVJBTV9DQUxMQkFDS19JUlEpLgorICovCisjZGVm aW5lIEhWTU9QX3NldF9ldnRjaG5fdXBjYWxsX3ZlY3RvciAyMworc3RydWN0IHhlbl9odm1fZXZ0 Y2huX3VwY2FsbF92ZWN0b3IgeworICAgIHVpbnQzMl90IHZjcHU7CisgICAgdWludDhfdCB2ZWN0 b3I7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9ldnRjaG5fdXBjYWxsX3ZlY3RvciB4ZW5f aHZtX2V2dGNobl91cGNhbGxfdmVjdG9yX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f aHZtX2V2dGNobl91cGNhbGxfdmVjdG9yX3QpOworCisjZW5kaWYgLyogZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAqLworCisjZGVmaW5lIEhWTU9QX2d1ZXN0X3JlcXVl c3Rfdm1fZXZlbnQgMjQKKworLyogSFZNT1BfYWx0cDJtOiBwZXJmb3JtIGFsdHAybSBzdGF0ZSBv cGVyYXRpb25zICovCisjZGVmaW5lIEhWTU9QX2FsdHAybSAyNQorCisjZGVmaW5lIEhWTU9QX0FM VFAyTV9JTlRFUkZBQ0VfVkVSU0lPTiAweDAwMDAwMDAxCisKK3N0cnVjdCB4ZW5faHZtX2FsdHAy bV9kb21haW5fc3RhdGUgeworICAgIC8qIElOIG9yIE9VVCB2YXJpYWJsZSBvbi9vZmYgKi8KKyAg ICB1aW50OF90IHN0YXRlOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fYWx0cDJtX2RvbWFp bl9zdGF0ZSB4ZW5faHZtX2FsdHAybV9kb21haW5fc3RhdGVfdDsKK0RFRklORV9YRU5fR1VFU1Rf SEFORExFKHhlbl9odm1fYWx0cDJtX2RvbWFpbl9zdGF0ZV90KTsKKworc3RydWN0IHhlbl9odm1f YWx0cDJtX3ZjcHVfZW5hYmxlX25vdGlmeSB7CisgICAgdWludDMyX3QgdmNwdV9pZDsKKyAgICB1 aW50MzJfdCBwYWQ7CisgICAgLyogI1ZFIGluZm8gYXJlYSBnZm4gKi8KKyAgICB1aW50NjRfdCBn Zm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5 IHhlbl9odm1fYWx0cDJtX3ZjcHVfZW5hYmxlX25vdGlmeV90OworREVGSU5FX1hFTl9HVUVTVF9I QU5ETEUoeGVuX2h2bV9hbHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5X3QpOworCitzdHJ1Y3QgeGVu X2h2bV9hbHRwMm1fdmlldyB7CisgICAgLyogSU4vT1VUIHZhcmlhYmxlICovCisgICAgdWludDE2 X3QgdmlldzsKKyAgICAvKiBDcmVhdGUgdmlldyBvbmx5OiBkZWZhdWx0IGFjY2VzcyB0eXBlCisg ICAgICogTk9URTogY3VycmVudGx5IGlnbm9yZWQgKi8KKyAgICB1aW50MTZfdCBodm1tZW1fZGVm YXVsdF9hY2Nlc3M7IC8qIHhlbm1lbV9hY2Nlc3NfdCAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhl bl9odm1fYWx0cDJtX3ZpZXcgeGVuX2h2bV9hbHRwMm1fdmlld190OworREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUoeGVuX2h2bV9hbHRwMm1fdmlld190KTsKKworc3RydWN0IHhlbl9odm1fYWx0cDJt X3NldF9tZW1fYWNjZXNzIHsKKyAgICAvKiB2aWV3ICovCisgICAgdWludDE2X3QgdmlldzsKKyAg ICAvKiBNZW1vcnkgdHlwZSAqLworICAgIHVpbnQxNl90IGh2bW1lbV9hY2Nlc3M7IC8qIHhlbm1l bV9hY2Nlc3NfdCAqLworICAgIHVpbnQzMl90IHBhZDsKKyAgICAvKiBnZm4gKi8KKyAgICB1aW50 NjRfdCBnZm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fc2V0X21lbV9hY2Nl c3MgeGVuX2h2bV9hbHRwMm1fc2V0X21lbV9hY2Nlc3NfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO RExFKHhlbl9odm1fYWx0cDJtX3NldF9tZW1fYWNjZXNzX3QpOworCitzdHJ1Y3QgeGVuX2h2bV9h bHRwMm1fY2hhbmdlX2dmbiB7CisgICAgLyogdmlldyAqLworICAgIHVpbnQxNl90IHZpZXc7Cisg ICAgdWludDE2X3QgcGFkMTsKKyAgICB1aW50MzJfdCBwYWQyOworICAgIC8qIG9sZCBnZm4gKi8K KyAgICB1aW50NjRfdCBvbGRfZ2ZuOworICAgIC8qIG5ldyBnZm4sIElOVkFMSURfR0ZOICh+MFVM KSBtZWFucyByZXZlcnQgKi8KKyAgICB1aW50NjRfdCBuZXdfZ2ZuOworfTsKK3R5cGVkZWYgc3Ry dWN0IHhlbl9odm1fYWx0cDJtX2NoYW5nZV9nZm4geGVuX2h2bV9hbHRwMm1fY2hhbmdlX2dmbl90 OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9hbHRwMm1fY2hhbmdlX2dmbl90KTsK Kworc3RydWN0IHhlbl9odm1fYWx0cDJtX29wIHsKKyAgICB1aW50MzJfdCB2ZXJzaW9uOyAgIC8q IEhWTU9QX0FMVFAyTV9JTlRFUkZBQ0VfVkVSU0lPTiAqLworICAgIHVpbnQzMl90IGNtZDsKKy8q IEdldC9zZXQgdGhlIGFsdHAybSBzdGF0ZSBmb3IgYSBkb21haW4gKi8KKyNkZWZpbmUgSFZNT1Bf YWx0cDJtX2dldF9kb21haW5fc3RhdGUgICAgIDEKKyNkZWZpbmUgSFZNT1BfYWx0cDJtX3NldF9k b21haW5fc3RhdGUgICAgIDIKKy8qIFNldCB0aGUgY3VycmVudCBWQ1BVIHRvIHJlY2VpdmUgYWx0 cDJtIGV2ZW50IG5vdGlmaWNhdGlvbnMgKi8KKyNkZWZpbmUgSFZNT1BfYWx0cDJtX3ZjcHVfZW5h YmxlX25vdGlmeSAgIDMKKy8qIENyZWF0ZSBhIG5ldyB2aWV3ICovCisjZGVmaW5lIEhWTU9QX2Fs dHAybV9jcmVhdGVfcDJtICAgICAgICAgICA0CisvKiBEZXN0cm95IGEgdmlldyAqLworI2RlZmlu ZSBIVk1PUF9hbHRwMm1fZGVzdHJveV9wMm0gICAgICAgICAgNQorLyogU3dpdGNoIHZpZXcgZm9y IGFuIGVudGlyZSBkb21haW4gKi8KKyNkZWZpbmUgSFZNT1BfYWx0cDJtX3N3aXRjaF9wMm0gICAg ICAgICAgIDYKKy8qIE5vdGlmeSB0aGF0IGEgcGFnZSBvZiBtZW1vcnkgaXMgdG8gaGF2ZSBzcGVj aWZpYyBhY2Nlc3MgdHlwZXMgKi8KKyNkZWZpbmUgSFZNT1BfYWx0cDJtX3NldF9tZW1fYWNjZXNz ICAgICAgIDcKKy8qIENoYW5nZSBhIHAybSBlbnRyeSB0byBoYXZlIGEgZGlmZmVyZW50IGdmbi0+ bWZuIG1hcHBpbmcgKi8KKyNkZWZpbmUgSFZNT1BfYWx0cDJtX2NoYW5nZV9nZm4gICAgICAgICAg IDgKKyAgICBkb21pZF90IGRvbWFpbjsKKyAgICB1aW50MTZfdCBwYWQxOworICAgIHVpbnQzMl90 IHBhZDI7CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fZG9tYWlu X3N0YXRlICAgICAgIGRvbWFpbl9zdGF0ZTsKKyAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0cDJt X3ZjcHVfZW5hYmxlX25vdGlmeSBlbmFibGVfbm90aWZ5OworICAgICAgICBzdHJ1Y3QgeGVuX2h2 bV9hbHRwMm1fdmlldyAgICAgICAgICAgICAgIHZpZXc7CisgICAgICAgIHN0cnVjdCB4ZW5faHZt X2FsdHAybV9zZXRfbWVtX2FjY2VzcyAgICAgc2V0X21lbV9hY2Nlc3M7CisgICAgICAgIHN0cnVj dCB4ZW5faHZtX2FsdHAybV9jaGFuZ2VfZ2ZuICAgICAgICAgY2hhbmdlX2dmbjsKKyAgICAgICAg dWludDhfdCBwYWRbNjRdOworICAgIH0gdTsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2Fs dHAybV9vcCB4ZW5faHZtX2FsdHAybV9vcF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu X2h2bV9hbHRwMm1fb3BfdCk7CisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSFZNX0hWTV9PUF9I X18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1z dHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGlu ZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hl bi9odm0vcGFyYW1zLmggYi9pbmNsdWRlL3hlbi9odm0vcGFyYW1zLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi4yZWMyZTdjODAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNs dWRlL3hlbi9odm0vcGFyYW1zLmgKQEAgLTAsMCArMSwyODQgQEAKKy8qCisgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p bmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp b24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiBy aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz dWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8g ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl IGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo ZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lU SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVE SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFks CisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwg V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT SU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICog Q29weXJpZ2h0IChjKSAyMDA3LCBLZWlyIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVC TElDX0hWTV9QQVJBTVNfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19IVk1fUEFSQU1TX0hfXwor CisjaW5jbHVkZSAiaHZtX29wLmgiCisKKy8qCisgKiBQYXJhbWV0ZXIgc3BhY2UgZm9yIEhWTU9Q X3tzZXQsZ2V0fV9wYXJhbS4KKyAqLworCisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19JUlEg MAorI2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfSVJRX1RZUEVfTUFTSyB4ZW5fbWtfdWxsb25n KDB4RkYwMDAwMDAwMDAwMDAwMCkKKy8qCisgKiBIb3cgc2hvdWxkIENQVTAgZXZlbnQtY2hhbm5l bCBub3RpZmljYXRpb25zIGJlIGRlbGl2ZXJlZD8KKyAqCisgKiBJZiB2YWwgPT0gMCB0aGVuIENQ VTAgZXZlbnQtY2hhbm5lbCBub3RpZmljYXRpb25zIGFyZSBub3QgZGVsaXZlcmVkLgorICogSWYg dmFsICE9IDAsIHZhbFs2Mzo1Nl0gZW5jb2RlcyB0aGUgdHlwZSwgYXMgZm9sbG93czoKKyAqLwor CisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19UWVBFX0dTSSAgICAgIDAKKy8qCisgKiB2YWxb NTU6MF0gaXMgYSBkZWxpdmVyeSBHU0kuICBHU0kgMCBjYW5ub3QgYmUgdXNlZCwgYXMgaXQgYWxp YXNlcyB2YWwgPT0gMCwKKyAqIGFuZCBkaXNhYmxlcyBhbGwgbm90aWZpY2F0aW9ucy4KKyAqLwor CisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19UWVBFX1BDSV9JTlRYIDEKKy8qCisgKiB2YWxb NTU6MF0gaXMgYSBkZWxpdmVyeSBQQ0kgSU5UeCBsaW5lOgorICogRG9tYWluID0gdmFsWzQ3OjMy XSwgQnVzID0gdmFsWzMxOjE2XSBEZXZGbiA9IHZhbFsxNTo4XSwgSW50WCA9IHZhbFsxOjBdCisg Ki8KKworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyNkZWZp bmUgSFZNX1BBUkFNX0NBTExCQUNLX1RZUEVfVkVDVE9SICAgMgorLyoKKyAqIHZhbFs3OjBdIGlz IGEgdmVjdG9yIG51bWJlci4gIENoZWNrIGZvciBYRU5GRUFUX2h2bV9jYWxsYmFja192ZWN0b3Ig dG8ga25vdworICogaWYgdGhpcyBkZWxpdmVyeSBtZXRob2QgaXMgYXZhaWxhYmxlLgorICovCisj ZWxpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCisjZGVmaW5lIEhW TV9QQVJBTV9DQUxMQkFDS19UWVBFX1BQSSAgICAgIDIKKy8qCisgKiB2YWxbNTU6MTZdIG5lZWRz IHRvIGJlIHplcm8uCisgKiB2YWxbMTU6OF0gaXMgaW50ZXJydXB0IGZsYWcgb2YgdGhlIFBQSSB1 c2VkIGJ5IGV2ZW50LWNoYW5uZWw6CisgKiAgYml0IDg6IHRoZSBQUEkgaXMgZWRnZSgxKSBvciBs ZXZlbCgwKSB0cmlnZ2VyZWQKKyAqICBiaXQgOTogdGhlIFBQSSBpcyBhY3RpdmUgbG93KDEpIG9y IGhpZ2goMCkKKyAqIHZhbFs3OjBdIGlzIGEgUFBJIG51bWJlciB1c2VkIGJ5IGV2ZW50LWNoYW5u ZWwuCisgKiBUaGlzIGlzIG9ubHkgdXNlZCBieSBBUk0vQVJNNjQgYW5kIG1hc2tpbmcvZW9pIHRo ZSBpbnRlcnJ1cHQgYXNzb2NpYXRlZCB0bworICogdGhlIG5vdGlmaWNhdGlvbiBpcyBoYW5kbGVk IGJ5IHRoZSBpbnRlcnJ1cHQgY29udHJvbGxlci4KKyAqLworI2RlZmluZSBIVk1fUEFSQU1fQ0FM TEJBQ0tfVFlQRV9QUElfRkxBR19NQVNLICAgICAgMHhGRjAwCisjZGVmaW5lIEhWTV9QQVJBTV9D QUxMQkFDS19UWVBFX1BQSV9GTEFHX0xPV19MRVZFTCAyCisjZW5kaWYKKworLyoKKyAqIFRoZXNl IGFyZSBub3QgdXNlZCBieSBYZW4uIFRoZXkgYXJlIGhlcmUgZm9yIGNvbnZlbmllbmNlIG9mIEhW TS1ndWVzdAorICogeGVuYnVzIGltcGxlbWVudGF0aW9ucy4KKyAqLworI2RlZmluZSBIVk1fUEFS QU1fU1RPUkVfUEZOICAgIDEKKyNkZWZpbmUgSFZNX1BBUkFNX1NUT1JFX0VWVENITiAyCisKKyNk ZWZpbmUgSFZNX1BBUkFNX1BBRV9FTkFCTEVEICA0CisKKyNkZWZpbmUgSFZNX1BBUkFNX0lPUkVR X1BGTiAgICA1CisKKyNkZWZpbmUgSFZNX1BBUkFNX0JVRklPUkVRX1BGTiA2CisjZGVmaW5lIEhW TV9QQVJBTV9CVUZJT1JFUV9FVlRDSE4gMjYKKworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykKKworLyoKKyAqIFZpcmlkaWFuIGVubGlnaHRlbm1lbnRzCisgKgor ICogKFNlZSBodHRwOi8vZG93bmxvYWQubWljcm9zb2Z0LmNvbS9kb3dubG9hZC9BL0IvNC9BQjQz QTM0RS1CREQwLTRGQTYtQkRFRi03OUVFRjE2RTg4MEIvSHlwZXJ2aXNvciUyMFRvcCUyMExldmVs JTIwRnVuY3Rpb25hbCUyMFNwZWNpZmljYXRpb24lMjB2NC4wLmRvY3gpCisgKgorICogVG8gZXhw b3NlIHZpcmlkaWFuIGVubGlnaHRlbm1lbnRzIHRvIHRoZSBndWVzdCBzZXQgdGhpcyBwYXJhbWV0 ZXIKKyAqIHRvIHRoZSBkZXNpcmVkIGZlYXR1cmUgbWFzay4gVGhlIGJhc2UgZmVhdHVyZSBzZXQg bXVzdCBiZSBwcmVzZW50CisgKiBpbiBhbnkgdmFsaWQgZmVhdHVyZSBtYXNrLgorICovCisjZGVm aW5lIEhWTV9QQVJBTV9WSVJJRElBTiAgICAgOQorCisvKiBCYXNlK0ZyZXEgdmlyaWRpYW4gZmVh dHVyZSBzZXRzOgorICoKKyAqIC0gSHlwZXJjYWxsIE1TUnMgKEhWX1g2NF9NU1JfR1VFU1RfT1Nf SUQgYW5kIEhWX1g2NF9NU1JfSFlQRVJDQUxMKQorICogLSBBUElDIGFjY2VzcyBNU1JzIChIVl9Y NjRfTVNSX0VPSSwgSFZfWDY0X01TUl9JQ1IgYW5kIEhWX1g2NF9NU1JfVFBSKQorICogLSBWaXJ0 dWFsIFByb2Nlc3NvciBpbmRleCBNU1IgKEhWX1g2NF9NU1JfVlBfSU5ERVgpCisgKiAtIFRpbWVy IGZyZXF1ZW5jeSBNU1JzIChIVl9YNjRfTVNSX1RTQ19GUkVRVUVOQ1kgYW5kCisgKiAgIEhWX1g2 NF9NU1JfQVBJQ19GUkVRVUVOQ1kpCisgKi8KKyNkZWZpbmUgX0hWTVBWX2Jhc2VfZnJlcSAwCisj ZGVmaW5lIEhWTVBWX2Jhc2VfZnJlcSAgKDEgPDwgX0hWTVBWX2Jhc2VfZnJlcSkKKworLyogRmVh dHVyZSBzZXQgbW9kaWZpY2F0aW9ucyAqLworCisvKiBEaXNhYmxlIHRpbWVyIGZyZXF1ZW5jeSBN U1JzIChIVl9YNjRfTVNSX1RTQ19GUkVRVUVOQ1kgYW5kCisgKiBIVl9YNjRfTVNSX0FQSUNfRlJF UVVFTkNZKS4KKyAqIFRoaXMgbW9kaWZpY2F0aW9uIHJlc3RvcmVzIHRoZSB2aXJpZGlhbiBmZWF0 dXJlIHNldCB0byB0aGUKKyAqIG9yaWdpbmFsICdiYXNlJyBzZXQgZXhwb3NlZCBpbiByZWxlYXNl cyBwcmlvciB0byBYZW4gNC40LgorICovCisjZGVmaW5lIF9IVk1QVl9ub19mcmVxIDEKKyNkZWZp bmUgSFZNUFZfbm9fZnJlcSAgKDEgPDwgX0hWTVBWX25vX2ZyZXEpCisKKy8qIEVuYWJsZSBQYXJ0 aXRpb24gVGltZSBSZWZlcmVuY2UgQ291bnRlciAoSFZfWDY0X01TUl9USU1FX1JFRl9DT1VOVCkg Ki8KKyNkZWZpbmUgX0hWTVBWX3RpbWVfcmVmX2NvdW50IDIKKyNkZWZpbmUgSFZNUFZfdGltZV9y ZWZfY291bnQgICgxIDw8IF9IVk1QVl90aW1lX3JlZl9jb3VudCkKKworLyogRW5hYmxlIFJlZmVy ZW5jZSBUU0MgUGFnZSAoSFZfWDY0X01TUl9SRUZFUkVOQ0VfVFNDKSAqLworI2RlZmluZSBfSFZN UFZfcmVmZXJlbmNlX3RzYyAzCisjZGVmaW5lIEhWTVBWX3JlZmVyZW5jZV90c2MgICgxIDw8IF9I Vk1QVl9yZWZlcmVuY2VfdHNjKQorCisvKiBVc2UgSHlwZXJjYWxsIGZvciByZW1vdGUgVExCIGZs dXNoICovCisjZGVmaW5lIF9IVk1QVl9oY2FsbF9yZW1vdGVfdGxiX2ZsdXNoIDQKKyNkZWZpbmUg SFZNUFZfaGNhbGxfcmVtb3RlX3RsYl9mbHVzaCAoMSA8PCBfSFZNUFZfaGNhbGxfcmVtb3RlX3Rs Yl9mbHVzaCkKKworLyogVXNlIEFQSUMgYXNzaXN0ICovCisjZGVmaW5lIF9IVk1QVl9hcGljX2Fz c2lzdCA1CisjZGVmaW5lIEhWTVBWX2FwaWNfYXNzaXN0ICgxIDw8IF9IVk1QVl9hcGljX2Fzc2lz dCkKKworLyogRW5hYmxlIGNyYXNoIE1TUnMgKi8KKyNkZWZpbmUgX0hWTVBWX2NyYXNoX2N0bCA2 CisjZGVmaW5lIEhWTVBWX2NyYXNoX2N0bCAoMSA8PCBfSFZNUFZfY3Jhc2hfY3RsKQorCisjZGVm aW5lIEhWTVBWX2ZlYXR1cmVfbWFzayBcCisgICAgICAgIChIVk1QVl9iYXNlX2ZyZXEgfCBcCisg ICAgICAgICBIVk1QVl9ub19mcmVxIHwgXAorICAgICAgICAgSFZNUFZfdGltZV9yZWZfY291bnQg fCBcCisgICAgICAgICBIVk1QVl9yZWZlcmVuY2VfdHNjIHwgXAorICAgICAgICAgSFZNUFZfaGNh bGxfcmVtb3RlX3RsYl9mbHVzaCB8IFwKKyAgICAgICAgIEhWTVBWX2FwaWNfYXNzaXN0IHwgXAor ICAgICAgICAgSFZNUFZfY3Jhc2hfY3RsKQorCisjZW5kaWYKKworLyoKKyAqIFNldCBtb2RlIGZv ciB2aXJ0dWFsIHRpbWVycyAoY3VycmVudGx5IHg4NiBvbmx5KToKKyAqICBkZWxheV9mb3JfbWlz c2VkX3RpY2tzIChkZWZhdWx0KToKKyAqICAgRG8gbm90IGFkdmFuY2UgYSB2Y3B1J3MgdGltZSBi ZXlvbmQgdGhlIGNvcnJlY3QgZGVsaXZlcnkgdGltZSBmb3IKKyAqICAgaW50ZXJydXB0cyB0aGF0 IGhhdmUgYmVlbiBtaXNzZWQgZHVlIHRvIHByZWVtcHRpb24uIERlbGl2ZXIgbWlzc2VkCisgKiAg IGludGVycnVwdHMgd2hlbiB0aGUgdmNwdSBpcyByZXNjaGVkdWxlZCBhbmQgYWR2YW5jZSB0aGUg dmNwdSdzIHZpcnR1YWwKKyAqICAgdGltZSBzdGVwd2lzZSBmb3IgZWFjaCBvbmUuCisgKiAgbm9f ZGVsYXlfZm9yX21pc3NlZF90aWNrczoKKyAqICAgQXMgYWJvdmUsIG1pc3NlZCBpbnRlcnJ1cHRz IGFyZSBkZWxpdmVyZWQsIGJ1dCBndWVzdCB0aW1lIGFsd2F5cyB0cmFja3MKKyAqICAgd2FsbGNs b2NrIChpLmUuLCByZWFsKSB0aW1lIHdoaWxlIGRvaW5nIHNvLgorICogIG5vX21pc3NlZF90aWNr c19wZW5kaW5nOgorICogICBObyBtaXNzZWQgaW50ZXJydXB0cyBhcmUgaGVsZCBwZW5kaW5nLiBJ bnN0ZWFkLCB0byBlbnN1cmUgdGlja3MgYXJlCisgKiAgIGRlbGl2ZXJlZCBhdCBzb21lIG5vbi16 ZXJvIHJhdGUsIGlmIHdlIGRldGVjdCBtaXNzZWQgdGlja3MgdGhlbiB0aGUKKyAqICAgaW50ZXJu YWwgdGljayBhbGFybSBpcyBub3QgZGlzYWJsZWQgaWYgdGhlIFZDUFUgaXMgcHJlZW1wdGVkIGR1 cmluZyB0aGUKKyAqICAgbmV4dCB0aWNrIHBlcmlvZC4KKyAqICBvbmVfbWlzc2VkX3RpY2tfcGVu ZGluZzoKKyAqICAgTWlzc2VkIGludGVycnVwdHMgYXJlIGNvbGxhcHNlZCB0b2dldGhlciBhbmQg ZGVsaXZlcmVkIGFzIG9uZSAnbGF0ZSB0aWNrJy4KKyAqICAgR3Vlc3QgdGltZSBhbHdheXMgdHJh Y2tzIHdhbGxjbG9jayAoaS5lLiwgcmVhbCkgdGltZS4KKyAqLworI2RlZmluZSBIVk1fUEFSQU1f VElNRVJfTU9ERSAgIDEwCisjZGVmaW5lIEhWTVBUTV9kZWxheV9mb3JfbWlzc2VkX3RpY2tzICAg IDAKKyNkZWZpbmUgSFZNUFRNX25vX2RlbGF5X2Zvcl9taXNzZWRfdGlja3MgMQorI2RlZmluZSBI Vk1QVE1fbm9fbWlzc2VkX3RpY2tzX3BlbmRpbmcgICAyCisjZGVmaW5lIEhWTVBUTV9vbmVfbWlz c2VkX3RpY2tfcGVuZGluZyAgIDMKKworLyogQm9vbGVhbjogRW5hYmxlIHZpcnR1YWwgSFBFVCAo aGlnaC1wcmVjaXNpb24gZXZlbnQgdGltZXIpPyAoeDg2LW9ubHkpICovCisjZGVmaW5lIEhWTV9Q QVJBTV9IUEVUX0VOQUJMRUQgMTEKKworLyogSWRlbnRpdHktbWFwIHBhZ2UgZGlyZWN0b3J5IHVz ZWQgYnkgSW50ZWwgRVBUIHdoZW4gQ1IwLlBHPTAuICovCisjZGVmaW5lIEhWTV9QQVJBTV9JREVO VF9QVCAgICAgMTIKKworLyogRGV2aWNlIE1vZGVsIGRvbWFpbiwgZGVmYXVsdHMgdG8gMC4gKi8K KyNkZWZpbmUgSFZNX1BBUkFNX0RNX0RPTUFJTiAgICAxMworCisvKiBBQ1BJIFMgc3RhdGU6IGN1 cnJlbnRseSBzdXBwb3J0IFMwIGFuZCBTMyBvbiB4ODYuICovCisjZGVmaW5lIEhWTV9QQVJBTV9B Q1BJX1NfU1RBVEUgMTQKKworLyogVFNTIHVzZWQgb24gSW50ZWwgd2hlbiBDUjAuUEU9MC4gKi8K KyNkZWZpbmUgSFZNX1BBUkFNX1ZNODZfVFNTICAgICAxNQorCisvKiBCb29sZWFuOiBFbmFibGUg YWxpZ25pbmcgYWxsIHBlcmlvZGljIHZwdHMgdG8gcmVkdWNlIGludGVycnVwdHMgKi8KKyNkZWZp bmUgSFZNX1BBUkFNX1ZQVF9BTElHTiAgICAxNgorCisvKiBDb25zb2xlIGRlYnVnIHNoYXJlZCBt ZW1vcnkgcmluZyBhbmQgZXZlbnQgY2hhbm5lbCAqLworI2RlZmluZSBIVk1fUEFSQU1fQ09OU09M RV9QRk4gICAgMTcKKyNkZWZpbmUgSFZNX1BBUkFNX0NPTlNPTEVfRVZUQ0hOIDE4CisKKy8qCisg KiBTZWxlY3QgbG9jYXRpb24gb2YgQUNQSSBQTTFhIGFuZCBUTVIgY29udHJvbCBibG9ja3MuIEN1 cnJlbnRseSB0d28gbG9jYXRpb25zCisgKiBhcmUgc3VwcG9ydGVkLCBzcGVjaWZpZWQgYnkgdmVy c2lvbiAwIG9yIDEgaW4gdGhpcyBwYXJhbWV0ZXI6CisgKiAgIC0gMDogZGVmYXVsdCwgdXNlIHRo ZSBvbGQgYWRkcmVzc2VzCisgKiAgICAgICAgUE0xQV9FVlQgPT0gMHgxZjQwOyBQTTFBX0NOVCA9 PSAweDFmNDQ7IFBNX1RNUiA9PSAweDFmNDgKKyAqICAgLSAxOiB1c2UgdGhlIG5ldyBkZWZhdWx0 IHFlbXUgYWRkcmVzc2VzCisgKiAgICAgICAgUE0xQV9FVlQgPT0gMHhiMDAwOyBQTTFBX0NOVCA9 PSAweGIwMDQ7IFBNX1RNUiA9PSAweGIwMDgKKyAqIFlvdSBjYW4gZmluZCB0aGVzZSBhZGRyZXNz IGRlZmluaXRpb25zIGluIDxodm0vaW9yZXEuaD4KKyAqLworI2RlZmluZSBIVk1fUEFSQU1fQUNQ SV9JT1BPUlRTX0xPQ0FUSU9OIDE5CisKKy8qIERlcHJlY2F0ZWQgKi8KKyNkZWZpbmUgSFZNX1BB UkFNX01FTU9SWV9FVkVOVF9DUjAgICAgICAgICAgMjAKKyNkZWZpbmUgSFZNX1BBUkFNX01FTU9S WV9FVkVOVF9DUjMgICAgICAgICAgMjEKKyNkZWZpbmUgSFZNX1BBUkFNX01FTU9SWV9FVkVOVF9D UjQgICAgICAgICAgMjIKKyNkZWZpbmUgSFZNX1BBUkFNX01FTU9SWV9FVkVOVF9JTlQzICAgICAg ICAgMjMKKyNkZWZpbmUgSFZNX1BBUkFNX01FTU9SWV9FVkVOVF9TSU5HTEVfU1RFUCAgMjUKKyNk ZWZpbmUgSFZNX1BBUkFNX01FTU9SWV9FVkVOVF9NU1IgICAgICAgICAgMzAKKworLyogQm9vbGVh bjogRW5hYmxlIG5lc3RlZGh2bSAoaHZtIG9ubHkpICovCisjZGVmaW5lIEhWTV9QQVJBTV9ORVNU RURIVk0gICAgMjQKKworLyogUGFyYW1zIGZvciB0aGUgbWVtIGV2ZW50IHJpbmdzICovCisjZGVm aW5lIEhWTV9QQVJBTV9QQUdJTkdfUklOR19QRk4gICAyNworI2RlZmluZSBIVk1fUEFSQU1fTU9O SVRPUl9SSU5HX1BGTiAgMjgKKyNkZWZpbmUgSFZNX1BBUkFNX1NIQVJJTkdfUklOR19QRk4gIDI5 CisKKy8qIFNIVVRET1dOXyogYWN0aW9uIGluIGNhc2Ugb2YgYSB0cmlwbGUgZmF1bHQgKi8KKyNk ZWZpbmUgSFZNX1BBUkFNX1RSSVBMRV9GQVVMVF9SRUFTT04gMzEKKworI2RlZmluZSBIVk1fUEFS QU1fSU9SRVFfU0VSVkVSX1BGTiAzMgorI2RlZmluZSBIVk1fUEFSQU1fTlJfSU9SRVFfU0VSVkVS X1BBR0VTIDMzCisKKy8qIExvY2F0aW9uIG9mIHRoZSBWTSBHZW5lcmF0aW9uIElEIGluIGd1ZXN0 IHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2UuICovCisjZGVmaW5lIEhWTV9QQVJBTV9WTV9HRU5FUkFU SU9OX0lEX0FERFIgMzQKKworLyoKKyAqIFNldCBtb2RlIGZvciBhbHRwMm06CisgKiAgZGlzYWJs ZWQ6IGRvbid0IGFjdGl2YXRlIGFsdHAybSAoZGVmYXVsdCkKKyAqICBtaXhlZDogYWxsb3cgYWNj ZXNzIHRvIGFsbCBhbHRwMm0gb3BzIGZvciBib3RoIGluLWd1ZXN0IGFuZCBleHRlcm5hbCB0b29s cworICogIGV4dGVybmFsOiBhbGxvdyBhY2Nlc3MgdG8gZXh0ZXJuYWwgcHJpdmlsZWdlZCB0b29s cyBvbmx5CisgKiAgbGltaXRlZDogZ3Vlc3Qgb25seSBoYXMgbGltaXRlZCBhY2Nlc3MgKGllLiBj b250cm9sIFZNRlVOQyBhbmQgI1ZFKQorICovCisjZGVmaW5lIEhWTV9QQVJBTV9BTFRQMk0gICAg ICAgMzUKKyNkZWZpbmUgWEVOX0FMVFAyTV9kaXNhYmxlZCAgICAgIDAKKyNkZWZpbmUgWEVOX0FM VFAyTV9taXhlZCAgICAgICAgIDEKKyNkZWZpbmUgWEVOX0FMVFAyTV9leHRlcm5hbCAgICAgIDIK KyNkZWZpbmUgWEVOX0FMVFAyTV9saW1pdGVkICAgICAgIDMKKworLyoKKyAqIFNpemUgb2YgdGhl IHg4NyBGUFUgRklQL0ZEUCByZWdpc3RlcnMgdGhhdCB0aGUgaHlwZXJ2aXNvciBuZWVkcyB0bwor ICogc2F2ZS9yZXN0b3JlLiAgVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIGEgaGFyZHdhcmUgbGlt aXRhdGlvbiB0aGF0CisgKiBkb2VzIG5vdCBhbGxvdyB0aGUgZnVsbCBGSVAvRkRQIGFuZCBGQ1Mv RkRTIHRvIGJlIHJlc3RvcmVkLgorICoKKyAqIFZhbGlkIHZhbHVlcyBhcmU6CisgKgorICogODog c2F2ZS9yZXN0b3JlIDY0LWJpdCBGSVAvRkRQIGFuZCBjbGVhciBGQ1MvRkRTIChkZWZhdWx0IGlm IENQVQorICogICAgaGFzIEZQQ1NEUyBmZWF0dXJlKS4KKyAqCisgKiA0OiBzYXZlL3Jlc3RvcmUg MzItYml0IEZJUC9GRFAsIEZDUy9GRFMsIGFuZCBjbGVhciB1cHBlciAzMi1iaXRzIG9mCisgKiAg ICBGSVAvRkRQLgorICoKKyAqIDA6IGFsbG93IGh5cGVydmlzb3IgdG8gY2hvb3NlIGJhc2VkIG9u IHRoZSB2YWx1ZSBvZiBGSVAvRkRQCisgKiAgICAoZGVmYXVsdCBpZiBDUFUgZG9lcyBub3QgaGF2 ZSBGUENTRFMpLgorICoKKyAqIElmIEZQQ1NEUyAoYml0IDEzIGluIENQVUlEIGxlYWYgMHg3LCBz dWJsZWFmIDB4MCkgaXMgc2V0LCB0aGUgQ1BVCisgKiBuZXZlciBzYXZlcyBGQ1MvRkRTIGFuZCB0 aGlzIHBhcmFtZXRlciBzaG91bGQgYmUgbGVmdCBhdCB0aGUKKyAqIGRlZmF1bHQgb2YgOC4KKyAq LworI2RlZmluZSBIVk1fUEFSQU1fWDg3X0ZJUF9XSURUSCAzNgorCisvKgorICogVFNTIChhbmQg aXRzIHNpemUpIHVzZWQgb24gSW50ZWwgd2hlbiBDUjAuUEU9MC4gVGhlIGFkZHJlc3Mgb2NjdXBp ZXMKKyAqIHRoZSBsb3cgMzIgYml0cywgd2hpbGUgdGhlIHNpemUgaXMgaW4gdGhlIGhpZ2ggMzIg b25lcy4KKyAqLworI2RlZmluZSBIVk1fUEFSQU1fVk04Nl9UU1NfU0laRUQgMzcKKworLyogRW5h YmxlIE1DQSBjYXBhYmlsaXRpZXMuICovCisjZGVmaW5lIEhWTV9QQVJBTV9NQ0FfQ0FQIDM4Cisj ZGVmaW5lIFhFTl9IVk1fTUNBX0NBUF9MTUNFICAgKHhlbl9ta191bGxvbmcoMSkgPDwgMCkKKyNk ZWZpbmUgWEVOX0hWTV9NQ0FfQ0FQX01BU0sgICBYRU5fSFZNX01DQV9DQVBfTE1DRQorCisjZGVm aW5lIEhWTV9OUl9QQVJBTVMgMzkKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fUEFSQU1T X0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaHZtL3N0YXJ0X2luZm8uaCBiL2luY2x1 ZGUveGVuL2h2bS9zdGFydF9pbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi42NDg0MTU5NzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9odm0vc3RhcnRf aW5mby5oCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv b3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisg KiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAq CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBT SEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAy MDE2LCBDaXRyaXggU3lzdGVtcywgSW5jLgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0FS Q0hfWDg2X0hWTV9TVEFSVF9JTkZPX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZf SFZNX1NUQVJUX0lORk9fSF9fCisKKy8qCisgKiBTdGFydCBvZiBkYXkgc3RydWN0dXJlIHBhc3Nl ZCB0byBQVkggZ3Vlc3RzIGFuZCB0byBIVk0gZ3Vlc3RzIGluICVlYnguCisgKgorICogTk9URTog bm90aGluZyB3aWxsIGJlIGxvYWRlZCBhdCBwaHlzaWNhbCBhZGRyZXNzIDAsIHNvIGEgMCB2YWx1 ZSBpbiBhbnkKKyAqIG9mIHRoZSBhZGRyZXNzIGZpZWxkcyBzaG91bGQgYmUgdHJlYXRlZCBhcyBu b3QgcHJlc2VudC4KKyAqCisgKiAgMCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgbWFnaWMg ICAgICAgICAgfCBDb250YWlucyB0aGUgbWFnaWMgdmFsdWUgWEVOX0hWTV9TVEFSVF9NQUdJQ19W QUxVRQorICogICAgfCAgICAgICAgICAgICAgICB8ICgieEVuMyIgd2l0aCB0aGUgMHg4MCBiaXQg b2YgdGhlICJFIiBzZXQpLgorICogIDQgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHZlcnNp b24gICAgICAgIHwgVmVyc2lvbiBvZiB0aGlzIHN0cnVjdHVyZS4gQ3VycmVudCB2ZXJzaW9uIGlz IDAuIE5ldworICogICAgfCAgICAgICAgICAgICAgICB8IHZlcnNpb25zIGFyZSBndWFyYW50ZWVk IHRvIGJlIGJhY2t3YXJkcy1jb21wYXRpYmxlLgorICogIDggKy0tLS0tLS0tLS0tLS0tLS0rCisg KiAgICB8IGZsYWdzICAgICAgICAgIHwgU0lGX3h4eCBmbGFncy4KKyAqIDEyICstLS0tLS0tLS0t LS0tLS0tKworICogICAgfCBucl9tb2R1bGVzICAgICB8IE51bWJlciBvZiBtb2R1bGVzIHBhc3Nl ZCB0byB0aGUga2VybmVsLgorICogMTYgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IG1vZGxp c3RfcGFkZHIgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiBhbiBhcnJheSBvZiBtb2R1bGVzCisgKiAg ICB8ICAgICAgICAgICAgICAgIHwgKGxheW91dCBvZiB0aGUgc3RydWN0dXJlIGJlbG93KS4KKyAq IDI0ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBjbWRsaW5lX3BhZGRyICB8IFBoeXNpY2Fs IGFkZHJlc3Mgb2YgdGhlIGNvbW1hbmQgbGluZSwKKyAqICAgIHwgICAgICAgICAgICAgICAgfCBh IHplcm8tdGVybWluYXRlZCBBU0NJSSBzdHJpbmcuCisgKiAzMiArLS0tLS0tLS0tLS0tLS0tLSsK KyAqICAgIHwgcnNkcF9wYWRkciAgICAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBSU0RQIEFD UEkgZGF0YSBzdHJ1Y3R1cmUuCisgKiA0MCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBUaGUg bGF5b3V0IG9mIGVhY2ggZW50cnkgaW4gdGhlIG1vZHVsZSBzdHJ1Y3R1cmUgaXMgdGhlIGZvbGxv d2luZzoKKyAqCisgKiAgMCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgcGFkZHIgICAgICAg ICAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBtb2R1bGUuCisgKiAgOCArLS0tLS0tLS0tLS0t LS0tLSsKKyAqICAgIHwgc2l6ZSAgICAgICAgICAgfCBTaXplIG9mIHRoZSBtb2R1bGUgaW4gYnl0 ZXMuCisgKiAxNiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgY21kbGluZV9wYWRkciAgfCBQ aHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBjb21tYW5kIGxpbmUsCisgKiAgICB8ICAgICAgICAgICAg ICAgIHwgYSB6ZXJvLXRlcm1pbmF0ZWQgQVNDSUkgc3RyaW5nLgorICogMjQgKy0tLS0tLS0tLS0t LS0tLS0rCisgKiAgICB8IHJlc2VydmVkICAgICAgIHwKKyAqIDMyICstLS0tLS0tLS0tLS0tLS0t KworICoKKyAqIFRoZSBhZGRyZXNzIGFuZCBzaXplcyBhcmUgYWx3YXlzIGEgNjRiaXQgbGl0dGxl IGVuZGlhbiB1bnNpZ25lZCBpbnRlZ2VyLgorICoKKyAqIE5COiBYZW4gb24geDg2IHdpbGwgYWx3 YXlzIHRyeSB0byBwbGFjZSBhbGwgdGhlIGRhdGEgYmVsb3cgdGhlIDRHaUIKKyAqIGJvdW5kYXJ5 LgorICovCisjZGVmaW5lIFhFTl9IVk1fU1RBUlRfTUFHSUNfVkFMVUUgMHgzMzZlYzU3OAorCisv KgorICogQyByZXByZXNlbnRhdGlvbiBvZiB0aGUgeDg2L0hWTSBzdGFydCBpbmZvIGxheW91dC4K KyAqCisgKiBUaGUgY2Fub25pY2FsIGRlZmluaXRpb24gb2YgdGhpcyBsYXlvdXQgaXMgYWJvdmUs IHRoaXMgaXMganVzdCBhIHdheSB0bworICogcmVwcmVzZW50IHRoZSBsYXlvdXQgZGVzY3JpYmVk IHRoZXJlIHVzaW5nIEMgdHlwZXMuCisgKi8KK3N0cnVjdCBodm1fc3RhcnRfaW5mbyB7CisgICAg dWludDMyX3QgbWFnaWM7ICAgICAgICAgICAgIC8qIENvbnRhaW5zIHRoZSBtYWdpYyB2YWx1ZSAw eDMzNmVjNTc4ICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICgi eEVuMyIgd2l0aCB0aGUgMHg4MCBiaXQgb2YgdGhlICJFIiBzZXQpLiovCisgICAgdWludDMyX3Qg dmVyc2lvbjsgICAgICAgICAgIC8qIFZlcnNpb24gb2YgdGhpcyBzdHJ1Y3R1cmUuICAgICAgICAg ICAgICAgICovCisgICAgdWludDMyX3QgZmxhZ3M7ICAgICAgICAgICAgIC8qIFNJRl94eHggZmxh Z3MuICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgdWludDMyX3QgbnJfbW9kdWxl czsgICAgICAgIC8qIE51bWJlciBvZiBtb2R1bGVzIHBhc3NlZCB0byB0aGUga2VybmVsLiAgICov CisgICAgdWludDY0X3QgbW9kbGlzdF9wYWRkcjsgICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2Yg YW4gYXJyYXkgb2YgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIGh2bV9tb2RsaXN0X2VudHJ5LiAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgdWlu dDY0X3QgY21kbGluZV9wYWRkcjsgICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIGNvbW1h bmQgbGluZS4gICAgICovCisgICAgdWludDY0X3QgcnNkcF9wYWRkcjsgICAgICAgIC8qIFBoeXNp Y2FsIGFkZHJlc3Mgb2YgdGhlIFJTRFAgQUNQSSBkYXRhICAgICovCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIHN0cnVjdHVyZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICovCit9OworCitzdHJ1Y3QgaHZtX21vZGxpc3RfZW50cnkgeworICAgIHVpbnQ2NF90IHBh ZGRyOyAgICAgICAgICAgICAvKiBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBtb2R1bGUuICAgICAg ICAgICAqLworICAgIHVpbnQ2NF90IHNpemU7ICAgICAgICAgICAgICAvKiBTaXplIG9mIHRoZSBt b2R1bGUgaW4gYnl0ZXMuICAgICAgICAgICAgICAqLworICAgIHVpbnQ2NF90IGNtZGxpbmVfcGFk ZHI7ICAgICAvKiBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBjb21tYW5kIGxpbmUuICAgICAqLwor ICAgIHVpbnQ2NF90IHJlc2VydmVkOworfTsKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19BUkNI X1g4Nl9IVk1fU1RBUlRfSU5GT19IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL21lbW9y eS5oIGIvaW5jbHVkZS94ZW4vbWVtb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwLi4yMGRlZWY1Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9tZW1vcnku aApAQCAtMCwwICsxLDY2NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogbWVtb3J5LmgK KyAqCisgKiBNZW1vcnkgcmVzZXJ2YXRpb24gYW5kIGluZm9ybWF0aW9uLgorICoKKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUK KyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklM SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us IEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAq CisgKiBDb3B5cmlnaHQgKGMpIDIwMDUsIEtlaXIgRnJhc2VyIDxrZWlyQHhlbnNvdXJjZS5jb20+ CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfTUVNT1JZX0hfXworI2RlZmluZSBfX1hFTl9Q VUJMSUNfTUVNT1JZX0hfXworCisjaW5jbHVkZSAieGVuLmgiCisjaW5jbHVkZSAicGh5c2Rldi5o IgorCisvKgorICogSW5jcmVhc2Ugb3IgZGVjcmVhc2UgdGhlIHNwZWNpZmllZCBkb21haW4ncyBt ZW1vcnkgcmVzZXJ2YXRpb24uIFJldHVybnMgdGhlCisgKiBudW1iZXIgb2YgZXh0ZW50cyBzdWNj ZXNzZnVsbHkgYWxsb2NhdGVkIG9yIGZyZWVkLgorICogYXJnID09IGFkZHIgb2Ygc3RydWN0IHhl bl9tZW1vcnlfcmVzZXJ2YXRpb24uCisgKi8KKyNkZWZpbmUgWEVOTUVNX2luY3JlYXNlX3Jlc2Vy dmF0aW9uIDAKKyNkZWZpbmUgWEVOTUVNX2RlY3JlYXNlX3Jlc2VydmF0aW9uIDEKKyNkZWZpbmUg WEVOTUVNX3BvcHVsYXRlX3BoeXNtYXAgICAgIDYKKworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJT SU9OX18gPj0gMHgwMDAzMDIwOQorLyoKKyAqIE1heGltdW0gIyBiaXRzIGFkZHJlc3NhYmxlIGJ5 IHRoZSB1c2VyIG9mIHRoZSBhbGxvY2F0ZWQgcmVnaW9uIChlLmcuLCBJL08KKyAqIGRldmljZXMg b2Z0ZW4gaGF2ZSBhIDMyLWJpdCBsaW1pdGF0aW9uIGV2ZW4gaW4gNjQtYml0IHN5c3RlbXMpLiBJ ZiB6ZXJvCisgKiB0aGVuIHRoZSB1c2VyIGhhcyBubyBhZGRyZXNzaW5nIHJlc3RyaWN0aW9uLiBU aGlzIGZpZWxkIGlzIG5vdCB1c2VkIGJ5CisgKiBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24u CisgKi8KKyNkZWZpbmUgWEVOTUVNRl9hZGRyZXNzX2JpdHMoeCkgICAgICh4KQorI2RlZmluZSBY RU5NRU1GX2dldF9hZGRyZXNzX2JpdHMoeCkgKCh4KSAmIDB4ZmZ1KQorLyogTlVNQSBub2RlIHRv IGFsbG9jYXRlIGZyb20uICovCisjZGVmaW5lIFhFTk1FTUZfbm9kZSh4KSAgICAgKCgoeCkgKyAx KSA8PCA4KQorI2RlZmluZSBYRU5NRU1GX2dldF9ub2RlKHgpICgoKCh4KSA+PiA4KSAtIDEpICYg MHhmZnUpCisvKiBGbGFnIHRvIHBvcHVsYXRlIHBoeXNtYXAgd2l0aCBwb3B1bGF0ZS1vbi1kZW1h bmQgZW50cmllcyAqLworI2RlZmluZSBYRU5NRU1GX3BvcHVsYXRlX29uX2RlbWFuZCAoMTw8MTYp CisvKiBGbGFnIHRvIHJlcXVlc3QgYWxsb2NhdGlvbiBvbmx5IGZyb20gdGhlIG5vZGUgc3BlY2lm aWVkICovCisjZGVmaW5lIFhFTk1FTUZfZXhhY3Rfbm9kZV9yZXF1ZXN0ICAoMTw8MTcpCisjZGVm aW5lIFhFTk1FTUZfZXhhY3Rfbm9kZShuKSAoWEVOTUVNRl9ub2RlKG4pIHwgWEVOTUVNRl9leGFj dF9ub2RlX3JlcXVlc3QpCisvKiBGbGFnIHRvIGluZGljYXRlIHRoZSBub2RlIHNwZWNpZmllZCBp cyB2aXJ0dWFsIG5vZGUgKi8KKyNkZWZpbmUgWEVOTUVNRl92bm9kZSAgKDE8PDE4KQorI2VuZGlm CisKK3N0cnVjdCB4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uIHsKKworICAgIC8qCisgICAgICogWEVO TUVNX2luY3JlYXNlX3Jlc2VydmF0aW9uOgorICAgICAqICAgT1VUOiBNRk4gKCpub3QqIEdNRk4p IGJhc2VzIG9mIGV4dGVudHMgdGhhdCB3ZXJlIGFsbG9jYXRlZAorICAgICAqIFhFTk1FTV9kZWNy ZWFzZV9yZXNlcnZhdGlvbjoKKyAgICAgKiAgIElOOiAgR01GTiBiYXNlcyBvZiBleHRlbnRzIHRv IGZyZWUKKyAgICAgKiBYRU5NRU1fcG9wdWxhdGVfcGh5c21hcDoKKyAgICAgKiAgIElOOiAgR1BG TiBiYXNlcyBvZiBleHRlbnRzIHRvIHBvcHVsYXRlIHdpdGggbWVtb3J5CisgICAgICogICBPVVQ6 IEdNRk4gYmFzZXMgb2YgZXh0ZW50cyB0aGF0IHdlcmUgYWxsb2NhdGVkCisgICAgICogICAoTkIu IFRoaXMgY29tbWFuZCBhbHNvIHVwZGF0ZXMgdGhlIG1hY2hfdG9fcGh5cyB0cmFuc2xhdGlvbiB0 YWJsZSkKKyAgICAgKiBYRU5NRU1fY2xhaW1fcGFnZXM6CisgICAgICogICBJTjogbXVzdCBiZSB6 ZXJvCisgICAgICovCisgICAgWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpIGV4dGVudF9zdGFy dDsKKworICAgIC8qIE51bWJlciBvZiBleHRlbnRzLCBhbmQgc2l6ZS9hbGlnbm1lbnQgb2YgZWFj aCAoMl5leHRlbnRfb3JkZXIgcGFnZXMpLiAqLworICAgIHhlbl91bG9uZ190ICAgIG5yX2V4dGVu dHM7CisgICAgdW5zaWduZWQgaW50ICAgZXh0ZW50X29yZGVyOworCisjaWYgX19YRU5fSU5URVJG QUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjA5CisgICAgLyogWEVOTUVNRiBmbGFncy4gKi8KKyAg ICB1bnNpZ25lZCBpbnQgICBtZW1fZmxhZ3M7CisjZWxzZQorICAgIHVuc2lnbmVkIGludCAgIGFk ZHJlc3NfYml0czsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBEb21haW4gd2hvc2UgcmVzZXJ2 YXRpb24gaXMgYmVpbmcgY2hhbmdlZC4KKyAgICAgKiBVbnByaXZpbGVnZWQgZG9tYWlucyBjYW4g c3BlY2lmeSBvbmx5IERPTUlEX1NFTEYuCisgICAgICovCisgICAgZG9taWRfdCAgICAgICAgZG9t aWQ7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX21lbW9yeV9yZXNlcnZhdGlvbiB4ZW5fbWVtb3J5 X3Jlc2VydmF0aW9uX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtb3J5X3Jlc2Vy dmF0aW9uX3QpOworCisvKgorICogQW4gYXRvbWljIGV4Y2hhbmdlIG9mIG1lbW9yeSBwYWdlcy4g SWYgcmV0dXJuIGNvZGUgaXMgemVybyB0aGVuCisgKiBAb3V0LmV4dGVudF9saXN0IHByb3ZpZGVz IEdNRk5zIG9mIHRoZSBuZXdseS1hbGxvY2F0ZWQgbWVtb3J5LgorICogUmV0dXJucyB6ZXJvIG9u IGNvbXBsZXRlIHN1Y2Nlc3MsIG90aGVyd2lzZSBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgKiBP biBjb21wbGV0ZSBzdWNjZXNzIHRoZW4gYWx3YXlzIEBucl9leGNoYW5nZWQgPT0gQGluLm5yX2V4 dGVudHMuCisgKiBPbiBwYXJ0aWFsIHN1Y2Nlc3MgQG5yX2V4Y2hhbmdlZCBpbmRpY2F0ZXMgaG93 IG11Y2ggd29yayB3YXMgZG9uZS4KKyAqCisgKiBOb3RlIHRoYXQgb25seSBQViBndWVzdHMgY2Fu IHVzZSB0aGlzIG9wZXJhdGlvbi4KKyAqLworI2RlZmluZSBYRU5NRU1fZXhjaGFuZ2UgICAgICAg ICAgICAgMTEKK3N0cnVjdCB4ZW5fbWVtb3J5X2V4Y2hhbmdlIHsKKyAgICAvKgorICAgICAqIFtJ Tl0gRGV0YWlscyBvZiBtZW1vcnkgZXh0ZW50cyB0byBiZSBleGNoYW5nZWQgKEdNRk4gYmFzZXMp LgorICAgICAqIE5vdGUgdGhhdCBAaW4uYWRkcmVzc19iaXRzIGlzIGlnbm9yZWQgYW5kIHVudXNl ZC4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgeGVuX21lbW9yeV9yZXNlcnZhdGlvbiBpbjsKKworICAg IC8qCisgICAgICogW0lOL09VVF0gRGV0YWlscyBvZiBuZXcgbWVtb3J5IGV4dGVudHMuCisgICAg ICogV2UgcmVxdWlyZSB0aGF0OgorICAgICAqICAxLiBAaW4uZG9taWQgPT0gQG91dC5kb21pZAor ICAgICAqICAyLiBAaW4ubnJfZXh0ZW50cyAgPDwgQGluLmV4dGVudF9vcmRlciA9PQorICAgICAq ICAgICBAb3V0Lm5yX2V4dGVudHMgPDwgQG91dC5leHRlbnRfb3JkZXIKKyAgICAgKiAgMy4gQGlu LmV4dGVudF9zdGFydCBhbmQgQG91dC5leHRlbnRfc3RhcnQgbGlzdHMgbXVzdCBub3Qgb3Zlcmxh cAorICAgICAqICA0LiBAb3V0LmV4dGVudF9zdGFydCBsaXN0cyBHUEZOIGJhc2VzIHRvIGJlIHBv cHVsYXRlZAorICAgICAqICA1LiBAb3V0LmV4dGVudF9zdGFydCBpcyBvdmVyd3JpdHRlbiB3aXRo IGFsbG9jYXRlZCBHTUZOIGJhc2VzCisgICAgICovCisgICAgc3RydWN0IHhlbl9tZW1vcnlfcmVz ZXJ2YXRpb24gb3V0OworCisgICAgLyoKKyAgICAgKiBbT1VUXSBOdW1iZXIgb2YgaW5wdXQgZXh0 ZW50cyB0aGF0IHdlcmUgc3VjY2Vzc2Z1bGx5IGV4Y2hhbmdlZDoKKyAgICAgKiAgMS4gVGhlIGZp cnN0IEBucl9leGNoYW5nZWQgaW5wdXQgZXh0ZW50cyB3ZXJlIHN1Y2Nlc3NmdWxseQorICAgICAq ICAgICBkZWFsbG9jYXRlZC4KKyAgICAgKiAgMi4gVGhlIGNvcnJlc3BvbmRpbmcgZmlyc3QgZW50 cmllcyBpbiB0aGUgb3V0cHV0IGV4dGVudCBsaXN0IGNvcnJlY3RseQorICAgICAqICAgICBpbmRp Y2F0ZSB0aGUgR01GTnMgdGhhdCB3ZXJlIHN1Y2Nlc3NmdWxseSBleGNoYW5nZWQuCisgICAgICog IDMuIEFsbCBvdGhlciBpbnB1dCBhbmQgb3V0cHV0IGV4dGVudHMgYXJlIHVudG91Y2hlZC4KKyAg ICAgKiAgNC4gSWYgbm90IGFsbCBpbnB1dCBleGVudHMgYXJlIGV4Y2hhbmdlZCB0aGVuIHRoZSBy ZXR1cm4gY29kZSBvZiB0aGlzCisgICAgICogICAgIGNvbW1hbmQgd2lsbCBiZSBub24temVyby4K KyAgICAgKiAgNS4gVEhJUyBGSUVMRCBNVVNUIEJFIElOSVRJQUxJU0VEIFRPIFpFUk8gQlkgVEhF IENBTExFUiEKKyAgICAgKi8KKyAgICB4ZW5fdWxvbmdfdCBucl9leGNoYW5nZWQ7Cit9OwordHlw ZWRlZiBzdHJ1Y3QgeGVuX21lbW9yeV9leGNoYW5nZSB4ZW5fbWVtb3J5X2V4Y2hhbmdlX3Q7CitE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtb3J5X2V4Y2hhbmdlX3QpOworCisvKgorICog UmV0dXJucyB0aGUgbWF4aW11bSBtYWNoaW5lIGZyYW1lIG51bWJlciBvZiBtYXBwZWQgUkFNIGlu IHRoaXMgc3lzdGVtLgorICogVGhpcyBjb21tYW5kIGFsd2F5cyBzdWNjZWVkcyAoaXQgbmV2ZXIg cmV0dXJucyBhbiBlcnJvciBjb2RlKS4KKyAqIGFyZyA9PSBOVUxMLgorICovCisjZGVmaW5lIFhF Tk1FTV9tYXhpbXVtX3JhbV9wYWdlICAgICAyCisKKy8qCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50 IG9yIG1heGltdW0gbWVtb3J5IHJlc2VydmF0aW9uLCBpbiBwYWdlcywgb2YgdGhlCisgKiBzcGVj aWZpZWQgZG9tYWluIChtYXkgYmUgRE9NSURfU0VMRikuIFJldHVybnMgLXZlIGVycmNvZGUgb24g ZmFpbHVyZS4KKyAqIGFyZyA9PSBhZGRyIG9mIGRvbWlkX3QuCisgKi8KKyNkZWZpbmUgWEVOTUVN X2N1cnJlbnRfcmVzZXJ2YXRpb24gIDMKKyNkZWZpbmUgWEVOTUVNX21heGltdW1fcmVzZXJ2YXRp b24gIDQKKworLyoKKyAqIFJldHVybnMgdGhlIG1heGltdW0gR1BGTiBpbiB1c2UgYnkgdGhlIGd1 ZXN0LCBvciAtdmUgZXJyY29kZSBvbiBmYWlsdXJlLgorICovCisjZGVmaW5lIFhFTk1FTV9tYXhp bXVtX2dwZm4gICAgICAgICAxNAorCisvKgorICogUmV0dXJucyBhIGxpc3Qgb2YgTUZOIGJhc2Vz IG9mIDJNQiBleHRlbnRzIGNvbXByaXNpbmcgdGhlIG1hY2hpbmVfdG9fcGh5cworICogbWFwcGlu ZyB0YWJsZS4gQXJjaGl0ZWN0dXJlcyB3aGljaCBkbyBub3QgaGF2ZSBhIG0ycCB0YWJsZSBkbyBu b3QgaW1wbGVtZW50CisgKiB0aGlzIGNvbW1hbmQuCisgKiBhcmcgPT0gYWRkciBvZiB4ZW5fbWFj aHBoeXNfbWZuX2xpc3RfdC4KKyAqLworI2RlZmluZSBYRU5NRU1fbWFjaHBoeXNfbWZuX2xpc3Qg ICAgNQorc3RydWN0IHhlbl9tYWNocGh5c19tZm5fbGlzdCB7CisgICAgLyoKKyAgICAgKiBTaXpl IG9mIHRoZSAnZXh0ZW50X3N0YXJ0JyBhcnJheS4gRmV3ZXIgZW50cmllcyB3aWxsIGJlIGZpbGxl ZCBpZiB0aGUKKyAgICAgKiBtYWNocGh5cyB0YWJsZSBpcyBzbWFsbGVyIHRoYW4gbWF4X2V4dGVu dHMgKiAyTUIuCisgICAgICovCisgICAgdW5zaWduZWQgaW50IG1heF9leHRlbnRzOworCisgICAg LyoKKyAgICAgKiBQb2ludGVyIHRvIGJ1ZmZlciB0byBmaWxsIHdpdGggbGlzdCBvZiBleHRlbnQg c3RhcnRzLiBJZiB0aGVyZSBhcmUKKyAgICAgKiBhbnkgbGFyZ2UgZGlzY29udGlndWl0aWVzIGlu IHRoZSBtYWNoaW5lIGFkZHJlc3Mgc3BhY2UsIDJNQiBnYXBzIGluCisgICAgICogdGhlIG1hY2hw aHlzIHRhYmxlIHdpbGwgYmUgcmVwcmVzZW50ZWQgYnkgYW4gTUZOIGJhc2Ugb2YgemVyby4KKyAg ICAgKi8KKyAgICBYRU5fR1VFU1RfSEFORExFKHhlbl9wZm5fdCkgZXh0ZW50X3N0YXJ0OworCisg ICAgLyoKKyAgICAgKiBOdW1iZXIgb2YgZXh0ZW50cyB3cml0dGVuIHRvIHRoZSBhYm92ZSBhcnJh eS4gVGhpcyB3aWxsIGJlIHNtYWxsZXIKKyAgICAgKiB0aGFuICdtYXhfZXh0ZW50cycgaWYgdGhl IG1hY2hwaHlzIHRhYmxlIGlzIHNtYWxsZXIgdGhhbiBtYXhfZSAqIDJNQi4KKyAgICAgKi8KKyAg ICB1bnNpZ25lZCBpbnQgbnJfZXh0ZW50czsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fbWFjaHBo eXNfbWZuX2xpc3QgeGVuX21hY2hwaHlzX21mbl9saXN0X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hB TkRMRSh4ZW5fbWFjaHBoeXNfbWZuX2xpc3RfdCk7CisKKy8qCisgKiBGb3IgYSBjb21wYXQgY2Fs bGVyLCB0aGlzIGlzIGlkZW50aWNhbCB0byBYRU5NRU1fbWFjaHBoeXNfbWZuX2xpc3QuCisgKgor ICogRm9yIGEgbm9uIGNvbXBhdCBjYWxsZXIsIHRoaXMgZnVuY3Rpb25zIHNpbWlsYXJseSB0bwor ICogWEVOTUVNX21hY2hwaHlzX21mbl9saXN0LCBidXQgcmV0dXJucyB0aGUgbWZucyBtYWtpbmcg dXAgdGhlIGNvbXBhdGliaWxpdHkKKyAqIG0ycCB0YWJsZS4KKyAqLworI2RlZmluZSBYRU5NRU1f bWFjaHBoeXNfY29tcGF0X21mbl9saXN0ICAgICAyNQorCisvKgorICogUmV0dXJucyB0aGUgbG9j YXRpb24gaW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlIG9mIHRoZSBtYWNoaW5lX3RvX3BoeXMKKyAq IG1hcHBpbmcgdGFibGUuIEFyY2hpdGVjdHVyZXMgd2hpY2ggZG8gbm90IGhhdmUgYSBtMnAgdGFi bGUsIG9yIHdoaWNoIGRvIG5vdAorICogbWFwIGl0IGJ5IGRlZmF1bHQgaW50byBndWVzdCBhZGRy ZXNzIHNwYWNlLCBkbyBub3QgaW1wbGVtZW50IHRoaXMgY29tbWFuZC4KKyAqIGFyZyA9PSBhZGRy IG9mIHhlbl9tYWNocGh5c19tYXBwaW5nX3QuCisgKi8KKyNkZWZpbmUgWEVOTUVNX21hY2hwaHlz X21hcHBpbmcgICAgIDEyCitzdHJ1Y3QgeGVuX21hY2hwaHlzX21hcHBpbmcgeworICAgIHhlbl91 bG9uZ190IHZfc3RhcnQsIHZfZW5kOyAvKiBTdGFydCBhbmQgZW5kIHZpcnR1YWwgYWRkcmVzc2Vz LiAgICovCisgICAgeGVuX3Vsb25nX3QgbWF4X21mbjsgICAgICAgIC8qIE1heGltdW0gTUZOIHRo YXQgY2FuIGJlIGxvb2tlZCB1cC4gKi8KK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fbWFjaHBoeXNf bWFwcGluZyB4ZW5fbWFjaHBoeXNfbWFwcGluZ190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo eGVuX21hY2hwaHlzX21hcHBpbmdfdCk7CisKKy8qIFNvdXJjZSBtYXBwaW5nIHNwYWNlLiAqLwor LyogYCBlbnVtIHBoeXNfbWFwX3NwYWNlIHsgKi8KKyNkZWZpbmUgWEVOTUFQU1BBQ0Vfc2hhcmVk X2luZm8gIDAgLyogc2hhcmVkIGluZm8gcGFnZSAqLworI2RlZmluZSBYRU5NQVBTUEFDRV9ncmFu dF90YWJsZSAgMSAvKiBncmFudCB0YWJsZSBwYWdlICovCisjZGVmaW5lIFhFTk1BUFNQQUNFX2dt Zm4gICAgICAgICAyIC8qIEdNRk4gKi8KKyNkZWZpbmUgWEVOTUFQU1BBQ0VfZ21mbl9yYW5nZSAg IDMgLyogR01GTiByYW5nZSwgWEVOTUVNX2FkZF90b19waHlzbWFwIG9ubHkuICovCisjZGVmaW5l IFhFTk1BUFNQQUNFX2dtZm5fZm9yZWlnbiA0IC8qIEdNRk4gZnJvbSBhbm90aGVyIGRvbSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogWEVOTUVNX2FkZF90b19waHlzbWFw X2JhdGNoIG9ubHkuICovCisjZGVmaW5lIFhFTk1BUFNQQUNFX2Rldl9tbWlvICAgICA1IC8qIGRl dmljZSBtbWlvIHJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB Uk0gb25seTsgdGhlIHJlZ2lvbiBpcyBtYXBwZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RhZ2UtMiB1c2luZyB0aGUgTm9ybWFsIE1lbW9yeQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbm5lci9PdXRlciBXcml0ZS1CYWNrIENhY2hl YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1vcnkgYXR0cmli dXRlLiAqLworLyogYCB9ICovCisKKy8qCisgKiBTZXRzIHRoZSBHUEZOIGF0IHdoaWNoIGEgcGFy dGljdWxhciBwYWdlIGFwcGVhcnMgaW4gdGhlIHNwZWNpZmllZCBndWVzdCdzCisgKiBwc2V1ZG9w aHlzaWNhbCBhZGRyZXNzIHNwYWNlLgorICogYXJnID09IGFkZHIgb2YgeGVuX2FkZF90b19waHlz bWFwX3QuCisgKi8KKyNkZWZpbmUgWEVOTUVNX2FkZF90b19waHlzbWFwICAgICAgNworc3RydWN0 IHhlbl9hZGRfdG9fcGh5c21hcCB7CisgICAgLyogV2hpY2ggZG9tYWluIHRvIGNoYW5nZSB0aGUg bWFwcGluZyBmb3IuICovCisgICAgZG9taWRfdCBkb21pZDsKKworICAgIC8qIE51bWJlciBvZiBw YWdlcyB0byBnbyB0aHJvdWdoIGZvciBnbWZuX3JhbmdlICovCisgICAgdWludDE2X3QgICAgc2l6 ZTsKKworICAgIHVuc2lnbmVkIGludCBzcGFjZTsgLyogPT4gZW51bSBwaHlzX21hcF9zcGFjZSAq LworCisjZGVmaW5lIFhFTk1BUElEWF9ncmFudF90YWJsZV9zdGF0dXMgMHg4MDAwMDAwMAorCisg ICAgLyogSW5kZXggaW50byBzcGFjZSBiZWluZyBtYXBwZWQuICovCisgICAgeGVuX3Vsb25nX3Qg aWR4OworCisgICAgLyogR1BGTiBpbiBkb21pZCB3aGVyZSB0aGUgc291cmNlIG1hcHBpbmcgcGFn ZSBzaG91bGQgYXBwZWFyLiAqLworICAgIHhlbl9wZm5fdCAgICAgZ3BmbjsKK307Cit0eXBlZGVm IHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXAgeGVuX2FkZF90b19waHlzbWFwX3Q7CitERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5fYWRkX3RvX3BoeXNtYXBfdCk7CisKKy8qIEEgYmF0Y2hlZCB2 ZXJzaW9uIG9mIGFkZF90b19waHlzbWFwLiAqLworI2RlZmluZSBYRU5NRU1fYWRkX3RvX3BoeXNt YXBfYmF0Y2ggMjMKK3N0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXBfYmF0Y2ggeworICAgIC8qIElO ICovCisgICAgLyogV2hpY2ggZG9tYWluIHRvIGNoYW5nZSB0aGUgbWFwcGluZyBmb3IuICovCisg ICAgZG9taWRfdCBkb21pZDsKKyAgICB1aW50MTZfdCBzcGFjZTsgLyogPT4gZW51bSBwaHlzX21h cF9zcGFjZSAqLworCisgICAgLyogTnVtYmVyIG9mIHBhZ2VzIHRvIGdvIHRocm91Z2ggKi8KKyAg ICB1aW50MTZfdCBzaXplOworCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAw NDA3MDAKKyAgICBkb21pZF90IGZvcmVpZ25fZG9taWQ7IC8qIElGRiBnbWZuX2ZvcmVpZ24uIFNo b3VsZCBiZSAwIGZvciBvdGhlciBzcGFjZXMuICovCisjZWxzZQorICAgIHVuaW9uIHhlbl9hZGRf dG9fcGh5c21hcF9iYXRjaF9leHRyYSB7CisgICAgICAgIGRvbWlkX3QgZm9yZWlnbl9kb21pZDsg LyogZ21mbl9mb3JlaWduICovCisgICAgICAgIHVpbnQxNl90IHJlczA7ICAvKiBBbGwgdGhlIG90 aGVyIHNwYWNlcy4gU2hvdWxkIGJlIDAgKi8KKyAgICB9IHU7CisjZW5kaWYKKworICAgIC8qIElu ZGV4ZXMgaW50byBzcGFjZSBiZWluZyBtYXBwZWQuICovCisgICAgWEVOX0dVRVNUX0hBTkRMRSh4 ZW5fdWxvbmdfdCkgaWR4czsKKworICAgIC8qIEdQRk4gaW4gZG9taWQgd2hlcmUgdGhlIHNvdXJj ZSBtYXBwaW5nIHBhZ2Ugc2hvdWxkIGFwcGVhci4gKi8KKyAgICBYRU5fR1VFU1RfSEFORExFKHhl bl9wZm5fdCkgZ3BmbnM7CisKKyAgICAvKiBPVVQgKi8KKworICAgIC8qIFBlciBpbmRleCBlcnJv ciBjb2RlLiAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoaW50KSBlcnJzOworfTsKK3R5cGVkZWYg c3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcF9iYXRjaCB4ZW5fYWRkX3RvX3BoeXNtYXBfYmF0Y2hf dDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9hZGRfdG9fcGh5c21hcF9iYXRjaF90KTsK KworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwNDAwCisjZGVmaW5lIFhF Tk1FTV9hZGRfdG9fcGh5c21hcF9yYW5nZSBYRU5NRU1fYWRkX3RvX3BoeXNtYXBfYmF0Y2gKKyNk ZWZpbmUgeGVuX2FkZF90b19waHlzbWFwX3JhbmdlIHhlbl9hZGRfdG9fcGh5c21hcF9iYXRjaAor dHlwZWRlZiBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwX2JhdGNoIHhlbl9hZGRfdG9fcGh5c21h cF9yYW5nZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2FkZF90b19waHlzbWFwX3Jh bmdlX3QpOworI2VuZGlmCisKKy8qCisgKiBVbm1hcHMgdGhlIHBhZ2UgYXBwZWFyaW5nIGF0IGEg cGFydGljdWxhciBHUEZOIGZyb20gdGhlIHNwZWNpZmllZCBndWVzdCdzCisgKiBwc2V1ZG9waHlz aWNhbCBhZGRyZXNzIHNwYWNlLgorICogYXJnID09IGFkZHIgb2YgeGVuX3JlbW92ZV9mcm9tX3Bo eXNtYXBfdC4KKyAqLworI2RlZmluZSBYRU5NRU1fcmVtb3ZlX2Zyb21fcGh5c21hcCAgICAgIDE1 CitzdHJ1Y3QgeGVuX3JlbW92ZV9mcm9tX3BoeXNtYXAgeworICAgIC8qIFdoaWNoIGRvbWFpbiB0 byBjaGFuZ2UgdGhlIG1hcHBpbmcgZm9yLiAqLworICAgIGRvbWlkX3QgZG9taWQ7CisKKyAgICAv KiBHUEZOIG9mIHRoZSBjdXJyZW50IG1hcHBpbmcgb2YgdGhlIHBhZ2UuICovCisgICAgeGVuX3Bm bl90ICAgICBncGZuOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9yZW1vdmVfZnJvbV9waHlzbWFw IHhlbl9yZW1vdmVfZnJvbV9waHlzbWFwX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f cmVtb3ZlX2Zyb21fcGh5c21hcF90KTsKKworLyoqKiBSRU1PVkVEICoqKi8KKy8qI2RlZmluZSBY RU5NRU1fdHJhbnNsYXRlX2dwZm5fbGlzdCAgOCovCisKKy8qCisgKiBSZXR1cm5zIHRoZSBwc2V1 ZG8tcGh5c2ljYWwgbWVtb3J5IG1hcCBhcyBpdCB3YXMgd2hlbiB0aGUgZG9tYWluCisgKiB3YXMg c3RhcnRlZCAoc3BlY2lmaWVkIGJ5IFhFTk1FTV9zZXRfbWVtb3J5X21hcCkuCisgKiBhcmcgPT0g YWRkciBvZiB4ZW5fbWVtb3J5X21hcF90LgorICovCisjZGVmaW5lIFhFTk1FTV9tZW1vcnlfbWFw ICAgICAgICAgICA5CitzdHJ1Y3QgeGVuX21lbW9yeV9tYXAgeworICAgIC8qCisgICAgICogT24g Y2FsbCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgd2hpY2ggY2FuIGJlIHN0b3JlZCBpbiBidWZmZXIu IE9uCisgICAgICogcmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyB3aGljaCBoYXZlIGJlZW4g c3RvcmVkIGluCisgICAgICogYnVmZmVyLgorICAgICAqLworICAgIHVuc2lnbmVkIGludCBucl9l bnRyaWVzOworCisgICAgLyoKKyAgICAgKiBFbnRyaWVzIGluIHRoZSBidWZmZXIgYXJlIGluIHRo ZSBzYW1lIGZvcm1hdCBhcyByZXR1cm5lZCBieSB0aGUKKyAgICAgKiBCSU9TIElOVCAweDE1IEVB WD0weEU4MjAgY2FsbC4KKyAgICAgKi8KKyAgICBYRU5fR1VFU1RfSEFORExFKHZvaWQpIGJ1ZmZl cjsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fbWVtb3J5X21hcCB4ZW5fbWVtb3J5X21hcF90Owor REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbW9yeV9tYXBfdCk7CisKKy8qCisgKiBSZXR1 cm5zIHRoZSByZWFsIHBoeXNpY2FsIG1lbW9yeSBtYXAuIFBhc3NlcyB0aGUgc2FtZSBzdHJ1Y3R1 cmUgYXMKKyAqIFhFTk1FTV9tZW1vcnlfbWFwLgorICogU3BlY2lmeWluZyBidWZmZXIgYXMgTlVM TCB3aWxsIHJldHVybiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgcmVxdWlyZWQKKyAqIHRvIHN0b3Jl IHRoZSBjb21wbGV0ZSBtZW1vcnkgbWFwLgorICogYXJnID09IGFkZHIgb2YgeGVuX21lbW9yeV9t YXBfdC4KKyAqLworI2RlZmluZSBYRU5NRU1fbWFjaGluZV9tZW1vcnlfbWFwICAgMTAKKworLyoK KyAqIFNldCB0aGUgcHNldWRvLXBoeXNpY2FsIG1lbW9yeSBtYXAgb2YgYSBkb21haW4sIGFzIHJl dHVybmVkIGJ5CisgKiBYRU5NRU1fbWVtb3J5X21hcC4KKyAqIGFyZyA9PSBhZGRyIG9mIHhlbl9m b3JlaWduX21lbW9yeV9tYXBfdC4KKyAqLworI2RlZmluZSBYRU5NRU1fc2V0X21lbW9yeV9tYXAg ICAgICAgMTMKK3N0cnVjdCB4ZW5fZm9yZWlnbl9tZW1vcnlfbWFwIHsKKyAgICBkb21pZF90IGRv bWlkOworICAgIHN0cnVjdCB4ZW5fbWVtb3J5X21hcCBtYXA7Cit9OwordHlwZWRlZiBzdHJ1Y3Qg eGVuX2ZvcmVpZ25fbWVtb3J5X21hcCB4ZW5fZm9yZWlnbl9tZW1vcnlfbWFwX3Q7CitERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5fZm9yZWlnbl9tZW1vcnlfbWFwX3QpOworCisjZGVmaW5lIFhF Tk1FTV9zZXRfcG9kX3RhcmdldCAgICAgICAxNgorI2RlZmluZSBYRU5NRU1fZ2V0X3BvZF90YXJn ZXQgICAgICAgMTcKK3N0cnVjdCB4ZW5fcG9kX3RhcmdldCB7CisgICAgLyogSU4gKi8KKyAgICB1 aW50NjRfdCB0YXJnZXRfcGFnZXM7CisgICAgLyogT1VUICovCisgICAgdWludDY0X3QgdG90X3Bh Z2VzOworICAgIHVpbnQ2NF90IHBvZF9jYWNoZV9wYWdlczsKKyAgICB1aW50NjRfdCBwb2RfZW50 cmllczsKKyAgICAvKiBJTiAqLworICAgIGRvbWlkX3QgZG9taWQ7Cit9OwordHlwZWRlZiBzdHJ1 Y3QgeGVuX3BvZF90YXJnZXQgeGVuX3BvZF90YXJnZXRfdDsKKworI2lmIGRlZmluZWQoX19YRU5f XykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorCisjaWZuZGVmIHVpbnQ2NF9hbGlnbmVkX3QK KyNkZWZpbmUgdWludDY0X2FsaWduZWRfdCB1aW50NjRfdAorI2VuZGlmCisKKy8qCisgKiBHZXQg dGhlIG51bWJlciBvZiBNRk5zIHNhdmVkIHRocm91Z2ggbWVtb3J5IHNoYXJpbmcuCisgKiBUaGUg Y2FsbCBuZXZlciBmYWlscy4KKyAqLworI2RlZmluZSBYRU5NRU1fZ2V0X3NoYXJpbmdfZnJlZWRf cGFnZXMgICAgMTgKKyNkZWZpbmUgWEVOTUVNX2dldF9zaGFyaW5nX3NoYXJlZF9wYWdlcyAgIDE5 CisKKyNkZWZpbmUgWEVOTUVNX3BhZ2luZ19vcCAgICAgICAgICAgICAgICAgICAgMjAKKyNkZWZp bmUgWEVOTUVNX3BhZ2luZ19vcF9ub21pbmF0ZSAgICAgICAgICAgMAorI2RlZmluZSBYRU5NRU1f cGFnaW5nX29wX2V2aWN0ICAgICAgICAgICAgICAxCisjZGVmaW5lIFhFTk1FTV9wYWdpbmdfb3Bf cHJlcCAgICAgICAgICAgICAgIDIKKworc3RydWN0IHhlbl9tZW1fcGFnaW5nX29wIHsKKyAgICB1 aW50OF90ICAgICBvcDsgICAgICAgICAvKiBYRU5NRU1fcGFnaW5nX29wXyogKi8KKyAgICBkb21p ZF90ICAgICBkb21haW47CisKKyAgICAvKiBQQUdJTkdfUFJFUCBJTjogYnVmZmVyIHRvIGltbWVk aWF0ZWx5IGZpbGwgcGFnZSBpbiAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgICAgYnVmZmVyOwor ICAgIC8qIE90aGVyIE9QcyAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgICAgZ2ZuOyAgICAgICAg ICAgLyogSU46ICBnZm4gb2YgcGFnZSBiZWluZyBvcGVyYXRlZCBvbiAqLworfTsKK3R5cGVkZWYg c3RydWN0IHhlbl9tZW1fcGFnaW5nX29wIHhlbl9tZW1fcGFnaW5nX29wX3Q7CitERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5fbWVtX3BhZ2luZ19vcF90KTsKKworI2RlZmluZSBYRU5NRU1fYWNj ZXNzX29wICAgICAgICAgICAgICAgICAgICAyMQorI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX3Nl dF9hY2Nlc3MgICAgICAgICAwCisjZGVmaW5lIFhFTk1FTV9hY2Nlc3Nfb3BfZ2V0X2FjY2VzcyAg ICAgICAgIDEKKy8qCisgKiBYRU5NRU1fYWNjZXNzX29wX2VuYWJsZV9lbXVsYXRlIGFuZCBYRU5N RU1fYWNjZXNzX29wX2Rpc2FibGVfZW11bGF0ZSBhcmUKKyAqIGN1cnJlbnRseSB1bnVzZWQsIGJ1 dCBzaW5jZSB0aGV5IGhhdmUgYmVlbiBpbiB1c2UgcGxlYXNlIGRvIG5vdCByZXVzZSB0aGVtLgor ICoKKyAqICNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9lbmFibGVfZW11bGF0ZSAgICAgMgorICog I2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX2Rpc2FibGVfZW11bGF0ZSAgICAzCisgKi8KKyNkZWZp bmUgWEVOTUVNX2FjY2Vzc19vcF9zZXRfYWNjZXNzX211bHRpICAgNAorCit0eXBlZGVmIGVudW0g eworICAgIFhFTk1FTV9hY2Nlc3NfbiwKKyAgICBYRU5NRU1fYWNjZXNzX3IsCisgICAgWEVOTUVN X2FjY2Vzc193LAorICAgIFhFTk1FTV9hY2Nlc3NfcncsCisgICAgWEVOTUVNX2FjY2Vzc194LAor ICAgIFhFTk1FTV9hY2Nlc3NfcngsCisgICAgWEVOTUVNX2FjY2Vzc193eCwKKyAgICBYRU5NRU1f YWNjZXNzX3J3eCwKKyAgICAvKgorICAgICAqIFBhZ2Ugc3RhcnRzIG9mZiBhcyByLXgsIGJ1dCBh dXRvbWF0aWNhbGx5CisgICAgICogY2hhbmdlIHRvIHItdyBvbiBhIHdyaXRlCisgICAgICovCisg ICAgWEVOTUVNX2FjY2Vzc19yeDJydywKKyAgICAvKgorICAgICAqIExvZyBhY2Nlc3M6IHN0YXJ0 cyBvZmYgYXMgbiwgYXV0b21hdGljYWxseQorICAgICAqIGdvZXMgdG8gcnd4LCBnZW5lcmF0aW5n IGFuIGV2ZW50IHdpdGhvdXQKKyAgICAgKiBwYXVzaW5nIHRoZSB2Y3B1CisgICAgICovCisgICAg WEVOTUVNX2FjY2Vzc19uMnJ3eCwKKyAgICAvKiBUYWtlIHRoZSBkb21haW4gZGVmYXVsdCAqLwor ICAgIFhFTk1FTV9hY2Nlc3NfZGVmYXVsdAorfSB4ZW5tZW1fYWNjZXNzX3Q7CisKK3N0cnVjdCB4 ZW5fbWVtX2FjY2Vzc19vcCB7CisgICAgLyogWEVOTUVNX2FjY2Vzc19vcF8qICovCisgICAgdWlu dDhfdCBvcDsKKyAgICAvKiB4ZW5tZW1fYWNjZXNzX3QgKi8KKyAgICB1aW50OF90IGFjY2VzczsK KyAgICBkb21pZF90IGRvbWlkOworICAgIC8qCisgICAgICogTnVtYmVyIG9mIHBhZ2VzIGZvciBz ZXQgb3AgKG9yIHNpemUgb2YgcGZuX2xpc3QgZm9yCisgICAgICogWEVOTUVNX2FjY2Vzc19vcF9z ZXRfYWNjZXNzX211bHRpKQorICAgICAqIElnbm9yZWQgb24gc2V0dGluZyBkZWZhdWx0IGFjY2Vz cyBhbmQgb3RoZXIgb3BzCisgICAgICovCisgICAgdWludDMyX3QgbnI7CisgICAgLyoKKyAgICAg KiBGaXJzdCBwZm4gZm9yIHNldCBvcAorICAgICAqIHBmbiBmb3IgZ2V0IG9wCisgICAgICogfjB1 bGwgaXMgdXNlZCB0byBzZXQgYW5kIGdldCB0aGUgZGVmYXVsdCBhY2Nlc3MgZm9yIHBhZ2VzCisg ICAgICovCisgICAgdWludDY0X2FsaWduZWRfdCBwZm47CisgICAgLyoKKyAgICAgKiBMaXN0IG9m IHBmbnMgdG8gc2V0IGFjY2VzcyBmb3IKKyAgICAgKiBVc2VkIG9ubHkgd2l0aCBYRU5NRU1fYWNj ZXNzX29wX3NldF9hY2Nlc3NfbXVsdGkKKyAgICAgKi8KKyAgICBYRU5fR1VFU1RfSEFORExFKGNv bnN0X3VpbnQ2NCkgcGZuX2xpc3Q7CisgICAgLyoKKyAgICAgKiBDb3JyZXNwb25kaW5nIGxpc3Qg b2YgYWNjZXNzIHNldHRpbmdzIGZvciBwZm5fbGlzdAorICAgICAqIFVzZWQgb25seSB3aXRoIFhF Tk1FTV9hY2Nlc3Nfb3Bfc2V0X2FjY2Vzc19tdWx0aQorICAgICAqLworICAgIFhFTl9HVUVTVF9I QU5ETEUoY29uc3RfdWludDgpIGFjY2Vzc19saXN0OworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9t ZW1fYWNjZXNzX29wIHhlbl9tZW1fYWNjZXNzX29wX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM RSh4ZW5fbWVtX2FjY2Vzc19vcF90KTsKKworI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcCAgICAg ICAgICAgICAgICAgICAyMgorI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9ub21pbmF0ZV9nZm4g ICAgICAwCisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX25vbWluYXRlX2dyZWYgICAgIDEKKyNk ZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3Bfc2hhcmUgICAgICAgICAgICAgMgorI2RlZmluZSBYRU5N RU1fc2hhcmluZ19vcF9kZWJ1Z19nZm4gICAgICAgICAzCisjZGVmaW5lIFhFTk1FTV9zaGFyaW5n X29wX2RlYnVnX21mbiAgICAgICAgIDQKKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfZGVidWdf Z3JlZiAgICAgICAgNQorI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9hZGRfcGh5c21hcCAgICAg ICA2CisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2F1ZGl0ICAgICAgICAgICAgIDcKKyNkZWZp bmUgWEVOTUVNX3NoYXJpbmdfb3BfcmFuZ2Vfc2hhcmUgICAgICAgOAorCisjZGVmaW5lIFhFTk1F TV9TSEFSSU5HX09QX1NfSEFORExFX0lOVkFMSUQgICgtMTApCisjZGVmaW5lIFhFTk1FTV9TSEFS SU5HX09QX0NfSEFORExFX0lOVkFMSUQgICgtOSkKKworLyogVGhlIGZvbGxvd2luZyBhbGxvd3Mg c2hhcmluZyBvZiBncmFudCByZWZzLiBUaGlzIGlzIHVzZWZ1bAorICogZm9yIHNoYXJpbmcgdXRp bGl0aWVzIHNpdHRpbmcgYXMgImZpbHRlcnMiIGluIElPIGJhY2tlbmRzCisgKiAoZS5nLiBtZW1z aHIgKyBibGt0YXAoMikpLiBUaGUgSU8gYmFja2VuZCBpcyBvbmx5IGV4cG9zZWQKKyAqIHRvIGdy YW50IHJlZmVyZW5jZXMsIGFuZCB0aGlzIGFsbG93cyBzaGFyaW5nIG9mIHRoZSBncmVmcyAqLwor I2RlZmluZSBYRU5NRU1fU0hBUklOR19PUF9GSUVMRF9JU19HUkVGX0ZMQUcgICAoeGVuX21rX3Vs bG9uZygxKSA8PCA2MikKKworI2RlZmluZSBYRU5NRU1fU0hBUklOR19PUF9GSUVMRF9NQUtFX0dS RUYoZmllbGQsIHZhbCkgIFwKKyAgICAoZmllbGQpID0gKFhFTk1FTV9TSEFSSU5HX09QX0ZJRUxE X0lTX0dSRUZfRkxBRyB8IHZhbCkKKyNkZWZpbmUgWEVOTUVNX1NIQVJJTkdfT1BfRklFTERfSVNf R1JFRihmaWVsZCkgICAgICAgICBcCisgICAgKChmaWVsZCkgJiBYRU5NRU1fU0hBUklOR19PUF9G SUVMRF9JU19HUkVGX0ZMQUcpCisjZGVmaW5lIFhFTk1FTV9TSEFSSU5HX09QX0ZJRUxEX0dFVF9H UkVGKGZpZWxkKSAgICAgICAgXAorICAgICgoZmllbGQpICYgKH5YRU5NRU1fU0hBUklOR19PUF9G SUVMRF9JU19HUkVGX0ZMQUcpKQorCitzdHJ1Y3QgeGVuX21lbV9zaGFyaW5nX29wIHsKKyAgICB1 aW50OF90ICAgICBvcDsgICAgIC8qIFhFTk1FTV9zaGFyaW5nX29wXyogKi8KKyAgICBkb21pZF90 ICAgICBkb21haW47CisKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBtZW1fc2hhcmluZ19v cF9ub21pbmF0ZSB7ICAvKiBPUF9OT01JTkFURV94eHggICAgICAgICAgICovCisgICAgICAgICAg ICB1bmlvbiB7CisgICAgICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBnZm47ICAgICAvKiBJ TjogZ2ZuIHRvIG5vbWluYXRlICAgICAgICovCisgICAgICAgICAgICAgICAgdWludDMyX3QgICAg ICBncmFudF9yZWY7ICAvKiBJTjogZ3JhbnQgcmVmIHRvIG5vbWluYXRlICovCisgICAgICAgICAg ICB9IHU7CisgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90ICBoYW5kbGU7ICAgICAvKiBPVVQ6 IHRoZSBoYW5kbGUgICAgICAgICAgICovCisgICAgICAgIH0gbm9taW5hdGU7CisgICAgICAgIHN0 cnVjdCBtZW1fc2hhcmluZ19vcF9zaGFyZSB7ICAgICAvKiBPUF9TSEFSRS9BRERfUEhZU01BUCAq LworICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBzb3VyY2VfZ2ZuOyAgICAvKiBJTjogdGhl IGdmbiBvZiB0aGUgc291cmNlIHBhZ2UgKi8KKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qg c291cmNlX2hhbmRsZTsgLyogSU46IGhhbmRsZSB0byB0aGUgc291cmNlIHBhZ2UgKi8KKyAgICAg ICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgY2xpZW50X2dmbjsgICAgLyogSU46IHRoZSBjbGllbnQg Z2ZuICovCisgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGNsaWVudF9oYW5kbGU7IC8qIElO OiBoYW5kbGUgdG8gdGhlIGNsaWVudCBwYWdlICovCisgICAgICAgICAgICBkb21pZF90ICBjbGll bnRfZG9tYWluOyAvKiBJTjogdGhlIGNsaWVudCBkb21haW4gaWQgKi8KKyAgICAgICAgfSBzaGFy ZTsKKyAgICAgICAgc3RydWN0IG1lbV9zaGFyaW5nX29wX3JhbmdlIHsgICAgICAgICAvKiBPUF9S QU5HRV9TSEFSRSAqLworICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9nZm47ICAg ICAgLyogSU46IHRoZSBmaXJzdCBnZm4gKi8KKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qg bGFzdF9nZm47ICAgICAgIC8qIElOOiB0aGUgbGFzdCBnZm4gKi8KKyAgICAgICAgICAgIHVpbnQ2 NF9hbGlnbmVkX3Qgb3BhcXVlOyAgICAgICAgIC8qIE11c3QgYmUgc2V0IHRvIDAgKi8KKyAgICAg ICAgICAgIGRvbWlkX3QgY2xpZW50X2RvbWFpbjsgICAgICAgICAgIC8qIElOOiB0aGUgY2xpZW50 IGRvbWFpbiBpZCAqLworICAgICAgICAgICAgdWludDE2X3QgX3BhZFszXTsgICAgICAgICAgICAg ICAgLyogTXVzdCBiZSBzZXQgdG8gMCAqLworICAgICAgICB9IHJhbmdlOworICAgICAgICBzdHJ1 Y3QgbWVtX3NoYXJpbmdfb3BfZGVidWcgeyAgICAgLyogT1BfREVCVUdfeHh4ICovCisgICAgICAg ICAgICB1bmlvbiB7CisgICAgICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBnZm47ICAgICAg LyogSU46IGdmbiB0byBkZWJ1ZyAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHVpbnQ2NF9h bGlnbmVkX3QgbWZuOyAgICAgIC8qIElOOiBtZm4gdG8gZGVidWcgICAgICAgICAgKi8KKyAgICAg ICAgICAgICAgICB1aW50MzJfdCBncmVmOyAgICAgLyogSU46IGdyZWYgdG8gZGVidWcgICAgICAg ICAqLworICAgICAgICAgICAgfSB1OworICAgICAgICB9IGRlYnVnOworICAgIH0gdTsKK307Cit0 eXBlZGVmIHN0cnVjdCB4ZW5fbWVtX3NoYXJpbmdfb3AgeGVuX21lbV9zaGFyaW5nX29wX3Q7CitE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtX3NoYXJpbmdfb3BfdCk7CisKKy8qCisgKiBB dHRlbXB0IHRvIHN0YWtlIGEgY2xhaW0gZm9yIGEgZG9tYWluIG9uIGEgcXVhbnRpdHkgb2YgcGFn ZXMKKyAqIG9mIHN5c3RlbSBSQU0sIGJ1dCBfbm90XyBhc3NpZ24gc3BlY2lmaWMgcGFnZWZyYW1l cy4gIE9ubHkKKyAqIGFyaXRobWV0aWMgaXMgcGVyZm9ybWVkIHNvIHRoZSBoeXBlcmNhbGwgaXMg dmVyeSBmYXN0IGFuZCBuZWVkCisgKiBub3QgYmUgcHJlZW1wdGlibGUsIHRodXMgc2lkZXN0ZXBw aW5nIHRpbWUtb2YtY2hlY2stdGltZS1vZi11c2UKKyAqIHJhY2VzIGZvciBtZW1vcnkgYWxsb2Nh dGlvbi4gIFJldHVybnMgMCBpZiB0aGUgaHlwZXJ2aXNvciBwYWdlCisgKiBhbGxvY2F0b3IgaGFz IGF0b21pY2FsbHkgYW5kIHN1Y2Nlc3NmdWxseSBjbGFpbWVkIHRoZSByZXF1ZXN0ZWQKKyAqIG51 bWJlciBvZiBwYWdlcywgZWxzZSBub24temVyby4KKyAqCisgKiBBbnkgZG9tYWluIG1heSBoYXZl IG9ubHkgb25lIGFjdGl2ZSBjbGFpbS4gIFdoZW4gc3VmZmljaWVudCBtZW1vcnkKKyAqIGhhcyBi ZWVuIGFsbG9jYXRlZCB0byByZXNvbHZlIHRoZSBjbGFpbSwgdGhlIGNsYWltIHNpbGVudGx5IGV4 cGlyZXMuCisgKiBDbGFpbWluZyB6ZXJvIHBhZ2VzIGVmZmVjdGl2ZWx5IHJlc2V0cyBhbnkgb3V0 c3RhbmRpbmcgY2xhaW0gYW5kCisgKiBpcyBhbHdheXMgc3VjY2Vzc2Z1bC4KKyAqCisgKiBOb3Rl IHRoYXQgYSB2YWxpZCBjbGFpbSBtYXkgYmUgc3Rha2VkIGV2ZW4gYWZ0ZXIgbWVtb3J5IGhhcyBi ZWVuCisgKiBhbGxvY2F0ZWQgZm9yIGEgZG9tYWluLiAgSW4gdGhpcyBjYXNlLCB0aGUgY2xhaW0g aXMgbm90IGluY3JlbWVudGFsLAorICogaS5lLiBpZiB0aGUgZG9tYWluJ3MgdG90X3BhZ2VzIGlz IDMsIGFuZCBhIGNsYWltIGlzIHN0YWtlZCBmb3IgMTAsCisgKiBvbmx5IDcgYWRkaXRpb25hbCBw YWdlcyBhcmUgY2xhaW1lZC4KKyAqCisgKiBDYWxsZXIgbXVzdCBiZSBwcml2aWxlZ2VkIG9yIHRo ZSBoeXBlcmNhbGwgZmFpbHMuCisgKi8KKyNkZWZpbmUgWEVOTUVNX2NsYWltX3BhZ2VzICAgICAg ICAgICAgICAgICAgMjQKKworLyoKKyAqIFhFTk1FTV9jbGFpbV9wYWdlcyBmbGFncyAtIHRoZSBh cmUgbm8gZmxhZ3MgYXQgdGhpcyB0aW1lLgorICogVGhlIHplcm8gdmFsdWUgaXMgYXBwcm9wcmlh dGUuCisgKi8KKworLyoKKyAqIFdpdGggc29tZSBsZWdhY3kgZGV2aWNlcywgY2VydGFpbiBndWVz dC1waHlzaWNhbCBhZGRyZXNzZXMgY2Fubm90IHNhZmVseQorICogYmUgdXNlZCBmb3Igb3RoZXIg cHVycG9zZXMsIGUuZy4gdG8gbWFwIGd1ZXN0IFJBTS4gIFRoaXMgaHlwZXJjYWxsCisgKiBlbnVt ZXJhdGVzIHRob3NlIHJlZ2lvbnMgc28gdGhlIHRvb2xzdGFjayBjYW4gYXZvaWQgdXNpbmcgdGhl bS4KKyAqLworI2RlZmluZSBYRU5NRU1fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgICAyNwor c3RydWN0IHhlbl9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5IHsKKyAgICB4ZW5fcGZuX3Qgc3RhcnRf cGZuOworICAgIHhlbl91bG9uZ190IG5yX3BhZ2VzOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9y ZXNlcnZlZF9kZXZpY2VfbWVtb3J5IHhlbl9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5X3Q7CitERUZJ TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV90KTsKKworc3Ry dWN0IHhlbl9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5X21hcCB7CisjZGVmaW5lIFhFTk1FTV9SRE1f QUxMIDEgLyogUmVxdWVzdCBhbGwgcmVnaW9ucyAoaWdub3JlIGRldiB1bmlvbikuICovCisgICAg LyogSU4gKi8KKyAgICB1aW50MzJfdCBmbGFnczsKKyAgICAvKgorICAgICAqIElOL09VVAorICAg ICAqCisgICAgICogR2V0cyBzZXQgdG8gdGhlIHJlcXVpcmVkIG51bWJlciBvZiBlbnRyaWVzIHdo ZW4gdG9vIGxvdywKKyAgICAgKiBzaWduYWxlZCBieSBlcnJvciBjb2RlIC1FUkFOR0UuCisgICAg ICovCisgICAgdW5zaWduZWQgaW50IG5yX2VudHJpZXM7CisgICAgLyogT1VUICovCisgICAgWEVO X0dVRVNUX0hBTkRMRSh4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV90KSBidWZmZXI7CisgICAg LyogSU4gKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2X3BjaV9kZXZpY2Ug cGNpOworICAgIH0gZGV2OworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9yZXNlcnZlZF9kZXZpY2Vf bWVtb3J5X21hcCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXBfdDsKK0RFRklORV9YRU5f R1VFU1RfSEFORExFKHhlbl9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5X21hcF90KTsKKworI2VuZGlm IC8qIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLworCisvKgor ICogWEVOTUVNX2dldF92bnVtYWluZm8gdXNlZCBieSBndWVzdCB0byBnZXQKKyAqIHZOVU1BIHRv cG9sb2d5IGZyb20gaHlwZXJ2aXNvci4KKyAqLworI2RlZmluZSBYRU5NRU1fZ2V0X3ZudW1haW5m byAgICAgICAgICAgICAgICAyNgorCisvKiB2TlVNQSBub2RlIG1lbW9yeSByYW5nZXMgKi8KK3N0 cnVjdCB4ZW5fdm1lbXJhbmdlIHsKKyAgICB1aW50NjRfdCBzdGFydCwgZW5kOworICAgIHVuc2ln bmVkIGludCBmbGFnczsKKyAgICB1bnNpZ25lZCBpbnQgbmlkOworfTsKK3R5cGVkZWYgc3RydWN0 IHhlbl92bWVtcmFuZ2UgeGVuX3ZtZW1yYW5nZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo eGVuX3ZtZW1yYW5nZV90KTsKKworLyoKKyAqIHZOVU1BIHRvcG9sb2d5IHNwZWNpZmllcyB2TlVN QSBub2RlIG51bWJlciwgZGlzdGFuY2UgdGFibGUsCisgKiBtZW1vcnkgcmFuZ2VzIGFuZCB2Y3B1 IG1hcHBpbmcgcHJvdmlkZWQgZm9yIGd1ZXN0cy4KKyAqIFhFTk1FTV9nZXRfdm51bWFpbmZvIGh5 cGVyY2FsbCBleHBlY3RzIHRvIHNlZSBmcm9tIGd1ZXN0CisgKiBucl92bm9kZXMsIG5yX3ZtZW1y YW5nZXMgYW5kIG5yX3ZjcHVzIHRvIGluZGljYXRlIGF2YWlsYWJsZSBtZW1vcnkuCisgKiBBZnRl ciBmaWxsaW5nIGd1ZXN0cyBzdHJ1Y3R1cmVzLCBucl92bm9kZXMsIG5yX3ZtZW1yYW5nZXMgYW5k IG5yX3ZjcHVzCisgKiBjb3BpZWQgYmFjayB0byBndWVzdC4gRG9tYWluIHJldHVybnMgZXhwZWN0 ZWQgdmFsdWVzIG9mIG5yX3Zub2RlcywKKyAqIG5yX3ZtZW1yYW5nZXMgYW5kIG5yX3ZjcHVzIHRv IGd1ZXN0IGlmIHRoZSB2YWx1ZXMgd2hlcmUgaW5jb3JyZWN0LgorICovCitzdHJ1Y3QgeGVuX3Zu dW1hX3RvcG9sb2d5X2luZm8geworICAgIC8qIElOICovCisgICAgZG9taWRfdCBkb21pZDsKKyAg ICB1aW50MTZfdCBwYWQ7CisgICAgLyogSU4vT1VUICovCisgICAgdW5zaWduZWQgaW50IG5yX3Zu b2RlczsKKyAgICB1bnNpZ25lZCBpbnQgbnJfdmNwdXM7CisgICAgdW5zaWduZWQgaW50IG5yX3Zt ZW1yYW5nZXM7CisgICAgLyogT1VUICovCisgICAgdW5pb24geworICAgICAgICBYRU5fR1VFU1Rf SEFORExFKHVpbnQpIGg7CisgICAgICAgIHVpbnQ2NF90IHBhZDsKKyAgICB9IHZkaXN0YW5jZTsK KyAgICB1bmlvbiB7CisgICAgICAgIFhFTl9HVUVTVF9IQU5ETEUodWludCkgaDsKKyAgICAgICAg dWludDY0X3QgcGFkOworICAgIH0gdmNwdV90b192bm9kZTsKKyAgICB1bmlvbiB7CisgICAgICAg IFhFTl9HVUVTVF9IQU5ETEUoeGVuX3ZtZW1yYW5nZV90KSBoOworICAgICAgICB1aW50NjRfdCBw YWQ7CisgICAgfSB2bWVtcmFuZ2U7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3ZudW1hX3RvcG9s b2d5X2luZm8geGVuX3ZudW1hX3RvcG9sb2d5X2luZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO RExFKHhlbl92bnVtYV90b3BvbG9neV9pbmZvX3QpOworCisvKiBOZXh0IGF2YWlsYWJsZSBzdWJv cCBudW1iZXIgaXMgMjggKi8KKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19NRU1PUllfSF9fICov CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6 ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQt dGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vcGh5 c2Rldi5oIGIvaW5jbHVkZS94ZW4vcGh5c2Rldi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uYjZmYWY4MzUwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vcGh5 c2Rldi5oCkBAIC0wLDAgKzEsMzg3IEBACisvKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICog b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k L29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgor ICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisg KgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg U0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoYykg MjAwNiwgS2VpciBGcmFzZXIKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19QSFlTREVWX0hf XworI2RlZmluZSBfX1hFTl9QVUJMSUNfUEhZU0RFVl9IX18KKworI2luY2x1ZGUgInhlbi5oIgor CisvKgorICogUHJvdG90eXBlIGZvciB0aGlzIGh5cGVyY2FsbCBpczoKKyAqICBpbnQgcGh5c2Rl dl9vcChpbnQgY21kLCB2b2lkICphcmdzKQorICogQGNtZCAgPT0gUEhZU0RFVk9QXz8/PyAocGh5 c2RldiBvcGVyYXRpb24pLgorICogQGFyZ3MgPT0gT3BlcmF0aW9uLXNwZWNpZmljIGV4dHJhIGFy Z3VtZW50cyAoTlVMTCBpZiBub25lKS4KKyAqLworCisvKgorICogTm90aWZ5IGVuZC1vZi1pbnRl cnJ1cHQgKEVPSSkgZm9yIHRoZSBzcGVjaWZpZWQgSVJRLgorICogQGFyZyA9PSBwb2ludGVyIHRv IHBoeXNkZXZfZW9pIHN0cnVjdHVyZS4KKyAqLworI2RlZmluZSBQSFlTREVWT1BfZW9pICAgICAg ICAgICAgICAgICAgIDEyCitzdHJ1Y3QgcGh5c2Rldl9lb2kgeworICAgIC8qIElOICovCisgICAg dWludDMyX3QgaXJxOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfZW9pIHBoeXNkZXZfZW9p X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X2VvaV90KTsKKworLyoKKyAqIFJl Z2lzdGVyIGEgc2hhcmVkIHBhZ2UgZm9yIHRoZSBoeXBlcnZpc29yIHRvIGluZGljYXRlIHdoZXRo ZXIgdGhlIGd1ZXN0CisgKiBtdXN0IGlzc3VlIFBIWVNERVZPUF9lb2kuIFRoZSBzZW1hbnRpY3Mg b2YgUEhZU0RFVk9QX2VvaSBjaGFuZ2Ugc2xpZ2h0bHkKKyAqIG9uY2UgdGhlIGd1ZXN0IHVzZWQg dGhpcyBmdW5jdGlvbiBpbiB0aGF0IHRoZSBhc3NvY2lhdGVkIGV2ZW50IGNoYW5uZWwKKyAqIHdp bGwgYXV0b21hdGljYWxseSBnZXQgdW5tYXNrZWQuIFRoZSBwYWdlIHJlZ2lzdGVyZWQgaXMgdXNl ZCBhcyBhIGJpdAorICogYXJyYXkgaW5kZXhlZCBieSBYZW4ncyBQSVJRIHZhbHVlLgorICovCisj ZGVmaW5lIFBIWVNERVZPUF9waXJxX2VvaV9nbWZuX3YxICAgICAgIDE3CisvKgorICogUmVnaXN0 ZXIgYSBzaGFyZWQgcGFnZSBmb3IgdGhlIGh5cGVydmlzb3IgdG8gaW5kaWNhdGUgd2hldGhlciB0 aGUKKyAqIGd1ZXN0IG11c3QgaXNzdWUgUEhZU0RFVk9QX2VvaS4gVGhpcyBoeXBlcmNhbGwgaXMg dmVyeSBzaW1pbGFyIHRvCisgKiBQSFlTREVWT1BfcGlycV9lb2lfZ21mbl92MSBidXQgaXQgZG9l c24ndCBjaGFuZ2UgdGhlIHNlbWFudGljcyBvZgorICogUEhZU0RFVk9QX2VvaS4gVGhlIHBhZ2Ug cmVnaXN0ZXJlZCBpcyB1c2VkIGFzIGEgYml0IGFycmF5IGluZGV4ZWQgYnkKKyAqIFhlbidzIFBJ UlEgdmFsdWUuCisgKi8KKyNkZWZpbmUgUEhZU0RFVk9QX3BpcnFfZW9pX2dtZm5fdjIgICAgICAg MjgKK3N0cnVjdCBwaHlzZGV2X3BpcnFfZW9pX2dtZm4geworICAgIC8qIElOICovCisgICAgeGVu X3Bmbl90IGdtZm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9waXJxX2VvaV9nbWZuIHBo eXNkZXZfcGlycV9lb2lfZ21mbl90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9w aXJxX2VvaV9nbWZuX3QpOworCisvKgorICogUXVlcnkgdGhlIHN0YXR1cyBvZiBhbiBJUlEgbGlu ZS4KKyAqIEBhcmcgPT0gcG9pbnRlciB0byBwaHlzZGV2X2lycV9zdGF0dXNfcXVlcnkgc3RydWN0 dXJlLgorICovCisjZGVmaW5lIFBIWVNERVZPUF9pcnFfc3RhdHVzX3F1ZXJ5ICAgICAgIDUKK3N0 cnVjdCBwaHlzZGV2X2lycV9zdGF0dXNfcXVlcnkgeworICAgIC8qIElOICovCisgICAgdWludDMy X3QgaXJxOworICAgIC8qIE9VVCAqLworICAgIHVpbnQzMl90IGZsYWdzOyAvKiBYRU5JUlFTVEFU XyogKi8KK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X2lycV9zdGF0dXNfcXVlcnkgcGh5c2Rl dl9pcnFfc3RhdHVzX3F1ZXJ5X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X2ly cV9zdGF0dXNfcXVlcnlfdCk7CisKKy8qIE5lZWQgdG8gY2FsbCBQSFlTREVWT1BfZW9pIHdoZW4g dGhlIElSUSBoYXMgYmVlbiBzZXJ2aWNlZD8gKi8KKyNkZWZpbmUgX1hFTklSUVNUQVRfbmVlZHNf ZW9pICAgKDApCisjZGVmaW5lICBYRU5JUlFTVEFUX25lZWRzX2VvaSAgICgxVTw8X1hFTklSUVNU QVRfbmVlZHNfZW9pKQorCisvKiBJUlEgc2hhcmVkIGJ5IG11bHRpcGxlIGd1ZXN0cz8gKi8KKyNk ZWZpbmUgX1hFTklSUVNUQVRfc2hhcmVkICAgICAgKDEpCisjZGVmaW5lICBYRU5JUlFTVEFUX3No YXJlZCAgICAgICgxVTw8X1hFTklSUVNUQVRfc2hhcmVkKQorCisvKgorICogU2V0IHRoZSBjdXJy ZW50IFZDUFUncyBJL08gcHJpdmlsZWdlIGxldmVsLgorICogQGFyZyA9PSBwb2ludGVyIHRvIHBo eXNkZXZfc2V0X2lvcGwgc3RydWN0dXJlLgorICovCisjZGVmaW5lIFBIWVNERVZPUF9zZXRfaW9w bCAgICAgICAgICAgICAgIDYKK3N0cnVjdCBwaHlzZGV2X3NldF9pb3BsIHsKKyAgICAvKiBJTiAq LworICAgIHVpbnQzMl90IGlvcGw7Cit9OwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9zZXRfaW9w bCBwaHlzZGV2X3NldF9pb3BsX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X3Nl dF9pb3BsX3QpOworCisvKgorICogU2V0IHRoZSBjdXJyZW50IFZDUFUncyBJL08tcG9ydCBwZXJt aXNzaW9ucyBiaXRtYXAuCisgKiBAYXJnID09IHBvaW50ZXIgdG8gcGh5c2Rldl9zZXRfaW9iaXRt YXAgc3RydWN0dXJlLgorICovCisjZGVmaW5lIFBIWVNERVZPUF9zZXRfaW9iaXRtYXAgICAgICAg ICAgIDcKK3N0cnVjdCBwaHlzZGV2X3NldF9pb2JpdG1hcCB7CisgICAgLyogSU4gKi8KKyNpZiBf X1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fID49IDB4MDAwMzAyMDUKKyAgICBYRU5fR1VFU1RfSEFO RExFKHVpbnQ4KSBiaXRtYXA7CisjZWxzZQorICAgIHVpbnQ4X3QgKmJpdG1hcDsKKyNlbmRpZgor ICAgIHVpbnQzMl90IG5yX3BvcnRzOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfc2V0X2lv Yml0bWFwIHBoeXNkZXZfc2V0X2lvYml0bWFwX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShw aHlzZGV2X3NldF9pb2JpdG1hcF90KTsKKworLyoKKyAqIFJlYWQgb3Igd3JpdGUgYW4gSU8tQVBJ QyByZWdpc3Rlci4KKyAqIEBhcmcgPT0gcG9pbnRlciB0byBwaHlzZGV2X2FwaWMgc3RydWN0dXJl LgorICovCisjZGVmaW5lIFBIWVNERVZPUF9hcGljX3JlYWQgICAgICAgICAgICAgIDgKKyNkZWZp bmUgUEhZU0RFVk9QX2FwaWNfd3JpdGUgICAgICAgICAgICAgOQorc3RydWN0IHBoeXNkZXZfYXBp YyB7CisgICAgLyogSU4gKi8KKyAgICB1bnNpZ25lZCBsb25nIGFwaWNfcGh5c2Jhc2U7CisgICAg dWludDMyX3QgcmVnOworICAgIC8qIElOIG9yIE9VVCAqLworICAgIHVpbnQzMl90IHZhbHVlOwor fTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfYXBpYyBwaHlzZGV2X2FwaWNfdDsKK0RFRklORV9Y RU5fR1VFU1RfSEFORExFKHBoeXNkZXZfYXBpY190KTsKKworLyoKKyAqIEFsbG9jYXRlIG9yIGZy ZWUgYSBwaHlzaWNhbCB1cGNhbGwgdmVjdG9yIGZvciB0aGUgc3BlY2lmaWVkIElSUSBsaW5lLgor ICogQGFyZyA9PSBwb2ludGVyIHRvIHBoeXNkZXZfaXJxIHN0cnVjdHVyZS4KKyAqLworI2RlZmlu ZSBQSFlTREVWT1BfYWxsb2NfaXJxX3ZlY3RvciAgICAgIDEwCisjZGVmaW5lIFBIWVNERVZPUF9m cmVlX2lycV92ZWN0b3IgICAgICAgMTEKK3N0cnVjdCBwaHlzZGV2X2lycSB7CisgICAgLyogSU4g Ki8KKyAgICB1aW50MzJfdCBpcnE7CisgICAgLyogSU4gb3IgT1VUICovCisgICAgdWludDMyX3Qg dmVjdG9yOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfaXJxIHBoeXNkZXZfaXJxX3Q7CitE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X2lycV90KTsKKworI2RlZmluZSBNQVBfUElS UV9UWVBFX01TSSAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNQVBfUElSUV9UWVBFX0dTSSAg ICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNQVBfUElSUV9UWVBFX1VOS05PV04gICAgICAgICAg IDB4MgorI2RlZmluZSBNQVBfUElSUV9UWVBFX01TSV9TRUcgICAgICAgICAgIDB4MworI2RlZmlu ZSBNQVBfUElSUV9UWVBFX01VTFRJX01TSSAgICAgICAgIDB4NAorCisjZGVmaW5lIFBIWVNERVZP UF9tYXBfcGlycSAgICAgICAgICAgICAgIDEzCitzdHJ1Y3QgcGh5c2Rldl9tYXBfcGlycSB7Cisg ICAgZG9taWRfdCBkb21pZDsKKyAgICAvKiBJTiAqLworICAgIGludCB0eXBlOworICAgIC8qIElO IChpZ25vcmVkIGZvciAuLi5fTVVMVElfTVNJKSAqLworICAgIGludCBpbmRleDsKKyAgICAvKiBJ TiBvciBPVVQgKi8KKyAgICBpbnQgcGlycTsKKyAgICAvKiBJTiAtIGhpZ2ggMTYgYml0cyBob2xk IHNlZ21lbnQgZm9yIC4uLl9NU0lfU0VHIGFuZCAuLi5fTVVMVElfTVNJICovCisgICAgaW50IGJ1 czsKKyAgICAvKiBJTiAqLworICAgIGludCBkZXZmbjsKKyAgICAvKiBJTiAoYWxzbyBPVVQgZm9y IC4uLl9NVUxUSV9NU0kpICovCisgICAgaW50IGVudHJ5X25yOworICAgIC8qIElOICovCisgICAg dWludDY0X3QgdGFibGVfYmFzZTsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X21hcF9waXJx IHBoeXNkZXZfbWFwX3BpcnFfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfbWFw X3BpcnFfdCk7CisKKyNkZWZpbmUgUEhZU0RFVk9QX3VubWFwX3BpcnEgICAgICAgICAgICAgMTQK K3N0cnVjdCBwaHlzZGV2X3VubWFwX3BpcnEgeworICAgIGRvbWlkX3QgZG9taWQ7CisgICAgLyog SU4gKi8KKyAgICBpbnQgcGlycTsKK307CisKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfdW5tYXBf cGlycSBwaHlzZGV2X3VubWFwX3BpcnFfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNk ZXZfdW5tYXBfcGlycV90KTsKKworI2RlZmluZSBQSFlTREVWT1BfbWFuYWdlX3BjaV9hZGQgICAg ICAgICAxNQorI2RlZmluZSBQSFlTREVWT1BfbWFuYWdlX3BjaV9yZW1vdmUgICAgICAxNgorc3Ry dWN0IHBoeXNkZXZfbWFuYWdlX3BjaSB7CisgICAgLyogSU4gKi8KKyAgICB1aW50OF90IGJ1czsK KyAgICB1aW50OF90IGRldmZuOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9tYW5hZ2Vf cGNpIHBoeXNkZXZfbWFuYWdlX3BjaV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rl dl9tYW5hZ2VfcGNpX3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9yZXN0b3JlX21zaSAgICAgICAg ICAgIDE5CitzdHJ1Y3QgcGh5c2Rldl9yZXN0b3JlX21zaSB7CisgICAgLyogSU4gKi8KKyAgICB1 aW50OF90IGJ1czsKKyAgICB1aW50OF90IGRldmZuOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNk ZXZfcmVzdG9yZV9tc2kgcGh5c2Rldl9yZXN0b3JlX21zaV90OworREVGSU5FX1hFTl9HVUVTVF9I QU5ETEUocGh5c2Rldl9yZXN0b3JlX21zaV90KTsKKworI2RlZmluZSBQSFlTREVWT1BfbWFuYWdl X3BjaV9hZGRfZXh0ICAgICAyMAorc3RydWN0IHBoeXNkZXZfbWFuYWdlX3BjaV9leHQgeworICAg IC8qIElOICovCisgICAgdWludDhfdCBidXM7CisgICAgdWludDhfdCBkZXZmbjsKKyAgICB1bnNp Z25lZCBpc19leHRmbjsKKyAgICB1bnNpZ25lZCBpc192aXJ0Zm47CisgICAgc3RydWN0IHsKKyAg ICAgICAgdWludDhfdCBidXM7CisgICAgICAgIHVpbnQ4X3QgZGV2Zm47CisgICAgfSBwaHlzZm47 Cit9OworCit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X21hbmFnZV9wY2lfZXh0IHBoeXNkZXZfbWFu YWdlX3BjaV9leHRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfbWFuYWdlX3Bj aV9leHRfdCk7CisKKy8qCisgKiBBcmd1bWVudCB0byBwaHlzZGV2X29wX2NvbXBhdCgpIGh5cGVy Y2FsbC4gU3VwZXJjZWRlZCBieSBuZXcgcGh5c2Rldl9vcCgpCisgKiBoeXBlcmNhbGwgc2luY2Ug MHgwMDAzMDIwMi4KKyAqLworc3RydWN0IHBoeXNkZXZfb3AgeworICAgIHVpbnQzMl90IGNtZDsK KyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2X2lycV9zdGF0dXNfcXVlcnkgICAg ICBpcnFfc3RhdHVzX3F1ZXJ5OworICAgICAgICBzdHJ1Y3QgcGh5c2Rldl9zZXRfaW9wbCAgICAg ICAgICAgICAgc2V0X2lvcGw7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2X3NldF9pb2JpdG1hcCAg ICAgICAgICBzZXRfaW9iaXRtYXA7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2X2FwaWMgICAgICAg ICAgICAgICAgICBhcGljX29wOworICAgICAgICBzdHJ1Y3QgcGh5c2Rldl9pcnEgICAgICAgICAg ICAgICAgICAgaXJxX29wOworICAgIH0gdTsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X29w IHBoeXNkZXZfb3BfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfb3BfdCk7CisK KyNkZWZpbmUgUEhZU0RFVk9QX3NldHVwX2dzaSAgICAyMQorc3RydWN0IHBoeXNkZXZfc2V0dXBf Z3NpIHsKKyAgICBpbnQgZ3NpOworICAgIC8qIElOICovCisgICAgdWludDhfdCB0cmlnZ2VyaW5n OworICAgIC8qIElOICovCisgICAgdWludDhfdCBwb2xhcml0eTsKKyAgICAvKiBJTiAqLworfTsK KwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9zZXR1cF9nc2kgcGh5c2Rldl9zZXR1cF9nc2lfdDsK K0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfc2V0dXBfZ3NpX3QpOworCisvKiBsZWF2 ZSBQSFlTREVWT1AgMjIgZnJlZSAqLworCisvKiB0eXBlIGlzIE1BUF9QSVJRX1RZUEVfR1NJIG9y IE1BUF9QSVJRX1RZUEVfTVNJCisgKiB0aGUgaHlwZXJjYWxsIHJldHVybnMgYSBmcmVlIHBpcnEg Ki8KKyNkZWZpbmUgUEhZU0RFVk9QX2dldF9mcmVlX3BpcnEgICAgMjMKK3N0cnVjdCBwaHlzZGV2 X2dldF9mcmVlX3BpcnEgeworICAgIC8qIElOICovCisgICAgaW50IHR5cGU7CisgICAgLyogT1VU ICovCisgICAgdWludDMyX3QgcGlycTsKK307CisKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfZ2V0 X2ZyZWVfcGlycSBwaHlzZGV2X2dldF9mcmVlX3BpcnFfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO RExFKHBoeXNkZXZfZ2V0X2ZyZWVfcGlycV90KTsKKworI2RlZmluZSBYRU5fUENJX01NQ0ZHX1JF U0VSVkVEICAgICAgICAgMHgxCisKKyNkZWZpbmUgUEhZU0RFVk9QX3BjaV9tbWNmZ19yZXNlcnZl ZCAgICAyNAorc3RydWN0IHBoeXNkZXZfcGNpX21tY2ZnX3Jlc2VydmVkIHsKKyAgICB1aW50NjRf dCBhZGRyZXNzOworICAgIHVpbnQxNl90IHNlZ21lbnQ7CisgICAgdWludDhfdCBzdGFydF9idXM7 CisgICAgdWludDhfdCBlbmRfYnVzOworICAgIHVpbnQzMl90IGZsYWdzOworfTsKK3R5cGVkZWYg c3RydWN0IHBoeXNkZXZfcGNpX21tY2ZnX3Jlc2VydmVkIHBoeXNkZXZfcGNpX21tY2ZnX3Jlc2Vy dmVkX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X3BjaV9tbWNmZ19yZXNlcnZl ZF90KTsKKworI2RlZmluZSBYRU5fUENJX0RFVl9FWFRGTiAgICAgICAgICAgICAgMHgxCisjZGVm aW5lIFhFTl9QQ0lfREVWX1ZJUlRGTiAgICAgICAgICAgICAweDIKKyNkZWZpbmUgWEVOX1BDSV9E RVZfUFhNICAgICAgICAgICAgICAgIDB4NAorCisjZGVmaW5lIFBIWVNERVZPUF9wY2lfZGV2aWNl X2FkZCAgICAgICAgMjUKK3N0cnVjdCBwaHlzZGV2X3BjaV9kZXZpY2VfYWRkIHsKKyAgICAvKiBJ TiAqLworICAgIHVpbnQxNl90IHNlZzsKKyAgICB1aW50OF90IGJ1czsKKyAgICB1aW50OF90IGRl dmZuOworICAgIHVpbnQzMl90IGZsYWdzOworICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQ4X3Qg YnVzOworICAgICAgICB1aW50OF90IGRldmZuOworICAgIH0gcGh5c2ZuOworICAgIC8qCisgICAg ICogT3B0aW9uYWwgcGFyYW1ldGVycyBhcnJheS4KKyAgICAgKiBGaXJzdCBlbGVtZW50IChbMF0p IGlzIFBYTSBkb21haW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UgKGlmCisgICAgICogWEVO X1BDSV9ERVZfUFhNIGlzIHNldCkKKyAgICAgKi8KKyNpZiBkZWZpbmVkKF9fU1REQ19WRVJTSU9O X18pICYmIF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTAorICAgIHVpbnQzMl90IG9wdGFycltd OworI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICB1aW50MzJfdCBvcHRhcnJbMF07CisjZW5k aWYKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X3BjaV9kZXZpY2VfYWRkIHBoeXNkZXZfcGNp X2RldmljZV9hZGRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfcGNpX2Rldmlj ZV9hZGRfdCk7CisKKyNkZWZpbmUgUEhZU0RFVk9QX3BjaV9kZXZpY2VfcmVtb3ZlICAgICAyNgor I2RlZmluZSBQSFlTREVWT1BfcmVzdG9yZV9tc2lfZXh0ICAgICAgIDI3CisvKgorICogRG9tMCBz aG91bGQgdXNlIHRoZXNlIHR3byB0byBhbm5vdW5jZSBNTUlPIHJlc291cmNlcyBhc3NpZ25lZCB0 bworICogTVNJLVggY2FwYWJsZSBkZXZpY2VzIHdvbid0IChwcmVwYXJlKSBvciBtYXkgKHJlbGVh c2UpIGNoYW5nZS4KKyAqLworI2RlZmluZSBQSFlTREVWT1BfcHJlcGFyZV9tc2l4ICAgICAgICAg IDMwCisjZGVmaW5lIFBIWVNERVZPUF9yZWxlYXNlX21zaXggICAgICAgICAgMzEKK3N0cnVjdCBw aHlzZGV2X3BjaV9kZXZpY2UgeworICAgIC8qIElOICovCisgICAgdWludDE2X3Qgc2VnOworICAg IHVpbnQ4X3QgYnVzOworICAgIHVpbnQ4X3QgZGV2Zm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgcGh5 c2Rldl9wY2lfZGV2aWNlIHBoeXNkZXZfcGNpX2RldmljZV90OworREVGSU5FX1hFTl9HVUVTVF9I QU5ETEUocGh5c2Rldl9wY2lfZGV2aWNlX3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9EQkdQX1JF U0VUX1BSRVBBUkUgICAgMQorI2RlZmluZSBQSFlTREVWT1BfREJHUF9SRVNFVF9ET05FICAgICAg IDIKKworI2RlZmluZSBQSFlTREVWT1BfREJHUF9CVVNfVU5LTk9XTiAgICAgIDAKKyNkZWZpbmUg UEhZU0RFVk9QX0RCR1BfQlVTX1BDSSAgICAgICAgICAxCisKKyNkZWZpbmUgUEhZU0RFVk9QX2Ri Z3Bfb3AgICAgICAgICAgICAgICAyOQorc3RydWN0IHBoeXNkZXZfZGJncF9vcCB7CisgICAgLyog SU4gKi8KKyAgICB1aW50OF90IG9wOworICAgIHVpbnQ4X3QgYnVzOworICAgIHVuaW9uIHsKKyAg ICAgICAgc3RydWN0IHBoeXNkZXZfcGNpX2RldmljZSBwY2k7CisgICAgfSB1OworfTsKK3R5cGVk ZWYgc3RydWN0IHBoeXNkZXZfZGJncF9vcCBwaHlzZGV2X2RiZ3Bfb3BfdDsKK0RFRklORV9YRU5f R1VFU1RfSEFORExFKHBoeXNkZXZfZGJncF9vcF90KTsKKworLyoKKyAqIE5vdGlmeSB0aGF0IHNv bWUgUElSUS1ib3VuZCBldmVudCBjaGFubmVscyBoYXZlIGJlZW4gdW5tYXNrZWQuCisgKiAqKiBU aGlzIGNvbW1hbmQgaXMgb2Jzb2xldGUgc2luY2UgaW50ZXJmYWNlIHZlcnNpb24gMHgwMDAzMDIw MiBhbmQgaXMgKioKKyAqICoqIHVuc3VwcG9ydGVkIGJ5IG5ld2VyIHZlcnNpb25zIG9mIFhlbi4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgorICovCisjZGVmaW5lIFBIWVNERVZPUF9J UlFfVU5NQVNLX05PVElGWSAgICAgIDQKKworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18g PCAweDAwMDQwNjAwCisvKgorICogVGhlc2UgYWxsLWNhcGl0YWxzIHBoeXNkZXYgb3BlcmF0aW9u IG5hbWVzIGFyZSBzdXBlcmNlZGVkIGJ5IHRoZSBuZXcgbmFtZXMKKyAqIChkZWZpbmVkIGFib3Zl KSBzaW5jZSBpbnRlcmZhY2UgdmVyc2lvbiAweDAwMDMwMjAyLiBUaGUgZ3VhcmQgYWJvdmUgd2Fz CisgKiBhZGRlZCBwb3N0LTQuNSBvbmx5IHRob3VnaCBhbmQgaGVuY2Ugc2hvdWxkbid0IGNoZWNr IGZvciAweDAwMDMwMjAyLgorICovCisjZGVmaW5lIFBIWVNERVZPUF9JUlFfU1RBVFVTX1FVRVJZ ICAgICAgIFBIWVNERVZPUF9pcnFfc3RhdHVzX3F1ZXJ5CisjZGVmaW5lIFBIWVNERVZPUF9TRVRf SU9QTCAgICAgICAgICAgICAgIFBIWVNERVZPUF9zZXRfaW9wbAorI2RlZmluZSBQSFlTREVWT1Bf U0VUX0lPQklUTUFQICAgICAgICAgICBQSFlTREVWT1Bfc2V0X2lvYml0bWFwCisjZGVmaW5lIFBI WVNERVZPUF9BUElDX1JFQUQgICAgICAgICAgICAgIFBIWVNERVZPUF9hcGljX3JlYWQKKyNkZWZp bmUgUEhZU0RFVk9QX0FQSUNfV1JJVEUgICAgICAgICAgICAgUEhZU0RFVk9QX2FwaWNfd3JpdGUK KyNkZWZpbmUgUEhZU0RFVk9QX0FTU0lHTl9WRUNUT1IgICAgICAgICAgUEhZU0RFVk9QX2FsbG9j X2lycV92ZWN0b3IKKyNkZWZpbmUgUEhZU0RFVk9QX0ZSRUVfVkVDVE9SICAgICAgICAgICAgUEhZ U0RFVk9QX2ZyZWVfaXJxX3ZlY3RvcgorI2RlZmluZSBQSFlTREVWT1BfSVJRX05FRURTX1VOTUFT S19OT1RJRlkgWEVOSVJRU1RBVF9uZWVkc19lb2kKKyNkZWZpbmUgUEhZU0RFVk9QX0lSUV9TSEFS RUQgICAgICAgICAgICAgWEVOSVJRU1RBVF9zaGFyZWQKKyNlbmRpZgorCisjaWYgX19YRU5fSU5U RVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDAyMDAKKyNkZWZpbmUgUEhZU0RFVk9QX3BpcnFfZW9p X2dtZm4gUEhZU0RFVk9QX3BpcnFfZW9pX2dtZm5fdjEKKyNlbHNlCisjZGVmaW5lIFBIWVNERVZP UF9waXJxX2VvaV9nbWZuIFBIWVNERVZPUF9waXJxX2VvaV9nbWZuX3YyCisjZW5kaWYKKworI2Vu ZGlmIC8qIF9fWEVOX1BVQkxJQ19QSFlTREVWX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFi bGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZz ZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6 CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3RyYWNlLmggYi9pbmNsdWRlL3hlbi90cmFj ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYTAwYzAxNzMzCi0tLSAv ZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vdHJhY2UuaApAQCAtMCwwICsxLDMzOSBAQAorLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorICogaW5jbHVkZS9wdWJsaWMvdHJhY2UuaAorICoKKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0 aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgor ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug c2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElB QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K KyAqCisgKiBNYXJrIFdpbGxpYW1zb24sIChDKSAyMDA0IEludGVsIFJlc2VhcmNoIENhbWJyaWRn ZQorICogQ29weXJpZ2h0IChDKSAyMDA1IEJpbiBSZW4KKyAqLworCisjaWZuZGVmIF9fWEVOX1BV QkxJQ19UUkFDRV9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX1RSQUNFX0hfXworCisjZGVmaW5l IFRSQUNFX0VYVFJBX01BWCAgICA3CisjZGVmaW5lIFRSQUNFX0VYVFJBX1NISUZUIDI4CisKKy8q IFRyYWNlIGNsYXNzZXMgKi8KKyNkZWZpbmUgVFJDX0NMU19TSElGVCAxNgorI2RlZmluZSBUUkNf R0VOICAgICAgMHgwMDAxZjAwMCAgICAvKiBHZW5lcmFsIHRyYWNlICAgICAgICAgICAgKi8KKyNk ZWZpbmUgVFJDX1NDSEVEICAgIDB4MDAwMmYwMDAgICAgLyogWGVuIFNjaGVkdWxlciB0cmFjZSAg ICAgICovCisjZGVmaW5lIFRSQ19ET00wT1AgICAweDAwMDRmMDAwICAgIC8qIFhlbiBET00wIG9w ZXJhdGlvbiB0cmFjZSAqLworI2RlZmluZSBUUkNfSFZNICAgICAgMHgwMDA4ZjAwMCAgICAvKiBY ZW4gSFZNIHRyYWNlICAgICAgICAgICAgKi8KKyNkZWZpbmUgVFJDX01FTSAgICAgIDB4MDAxMGYw MDAgICAgLyogWGVuIG1lbW9yeSB0cmFjZSAgICAgICAgICovCisjZGVmaW5lIFRSQ19QViAgICAg ICAweDAwMjBmMDAwICAgIC8qIFhlbiBQViB0cmFjZXMgICAgICAgICAgICAqLworI2RlZmluZSBU UkNfU0hBRE9XICAgMHgwMDQwZjAwMCAgICAvKiBYZW4gc2hhZG93IHRyYWNpbmcgICAgICAgKi8K KyNkZWZpbmUgVFJDX0hXICAgICAgIDB4MDA4MGYwMDAgICAgLyogWGVuIGhhcmR3YXJlLXJlbGF0 ZWQgdHJhY2VzICovCisjZGVmaW5lIFRSQ19HVUVTVCAgICAweDA4MDBmMDAwICAgIC8qIEd1ZXN0 LWdlbmVyYXRlZCB0cmFjZXMgICAqLworI2RlZmluZSBUUkNfQUxMICAgICAgMHgwZmZmZjAwMAor I2RlZmluZSBUUkNfSERfVE9fRVZFTlQoeCkgKCh4KSYweDBmZmZmZmZmKQorI2RlZmluZSBUUkNf SERfQ1lDTEVfRkxBRyAoMVVMPDwzMSkKKyNkZWZpbmUgVFJDX0hEX0lOQ0xVREVTX0NZQ0xFX0NP VU5UKHgpICggISEoICh4KSAmIFRSQ19IRF9DWUNMRV9GTEFHICkgKQorI2RlZmluZSBUUkNfSERf RVhUUkEoeCkgICAgKCgoeCk+PlRSQUNFX0VYVFJBX1NISUZUKSZUUkFDRV9FWFRSQV9NQVgpCisK Ky8qIFRyYWNlIHN1YmNsYXNzZXMgKi8KKyNkZWZpbmUgVFJDX1NVQkNMU19TSElGVCAxMgorCisv KiB0cmFjZSBzdWJjbGFzc2VzIGZvciBTVk0gKi8KKyNkZWZpbmUgVFJDX0hWTV9FTlRSWUVYSVQg ICAweDAwMDgxMDAwICAgLyogVk1FTlRSWSBhbmQgI1ZNRVhJVCAgICAgICAqLworI2RlZmluZSBU UkNfSFZNX0hBTkRMRVIgICAgIDB4MDAwODIwMDAgICAvKiB2YXJpb3VzIEhWTSBoYW5kbGVycyAg ICAgICovCisjZGVmaW5lIFRSQ19IVk1fRU1VTCAgICAgICAgMHgwMDA4NDAwMCAgIC8qIGVtdWxh dGVkIGRldmljZXMgKi8KKworI2RlZmluZSBUUkNfU0NIRURfTUlOICAgICAgIDB4MDAwMjEwMDAg ICAvKiBKdXN0IHJ1bnN0YXRlIGNoYW5nZXMgKi8KKyNkZWZpbmUgVFJDX1NDSEVEX0NMQVNTICAg ICAweDAwMDIyMDAwICAgLyogU2NoZWR1bGVyLXNwZWNpZmljICAgICovCisjZGVmaW5lIFRSQ19T Q0hFRF9WRVJCT1NFICAgMHgwMDAyODAwMCAgIC8qIE1vcmUgaW5jbHVzaXZlIHNjaGVkdWxpbmcg Ki8KKworLyoKKyAqIFRoZSBoaWdoZXN0IDMgYml0cyBvZiB0aGUgbGFzdCAxMiBiaXRzIG9mIFRS Q19TQ0hFRF9DTEFTUyBhYm92ZSBhcmUKKyAqIHJlc2VydmVkIGZvciBlbmNvZGluZyB3aGF0IHNj aGVkdWxlciBwcm9kdWNlZCB0aGUgaW5mb3JtYXRpb24uIFRoZQorICogYWN0dWFsIGV2ZW50IGlz IGVuY29kZWQgaW4gdGhlIGxhc3QgOSBiaXRzLgorICoKKyAqIFRoaXMgbWVhbnMgd2UgaGF2ZSA4 IHNjaGVkdWxpbmcgSURzIGF2YWlsYWJsZSAod2hpY2ggbWVhbnMgYXQgbW9zdCA4CisgKiBzY2hl ZHVsZXJzIGdlbmVyYXRpbmcgZXZlbnRzKSBhbmQsIGluIGVhY2ggc2NoZWR1bGVyLCB1cCB0byA1 MTIKKyAqIGRpZmZlcmVudCBldmVudHMuCisgKi8KKyNkZWZpbmUgVFJDX1NDSEVEX0lEX0JJVFMg MworI2RlZmluZSBUUkNfU0NIRURfSURfU0hJRlQgKFRSQ19TVUJDTFNfU0hJRlQgLSBUUkNfU0NI RURfSURfQklUUykKKyNkZWZpbmUgVFJDX1NDSEVEX0lEX01BU0sgKCgoMVVMPDxUUkNfU0NIRURf SURfQklUUykgLSAxKSA8PCBUUkNfU0NIRURfSURfU0hJRlQpCisjZGVmaW5lIFRSQ19TQ0hFRF9F VlRfTUFTSyAofihUUkNfU0NIRURfSURfTUFTSykpCisKKy8qIFBlci1zY2hlZHVsZXIgSURzLCB0 byBpZGVudGlmeSBzY2hlZHVsZXIgc3BlY2lmaWMgZXZlbnRzICovCisjZGVmaW5lIFRSQ19TQ0hF RF9DU0NIRUQgICAwCisjZGVmaW5lIFRSQ19TQ0hFRF9DU0NIRUQyICAxCisvKiAjZGVmaW5lIFhF Tl9TQ0hFRFVMRVJfU0VERiAyIChSZW1vdmVkKSAqLworI2RlZmluZSBUUkNfU0NIRURfQVJJTkM2 NTMgMworI2RlZmluZSBUUkNfU0NIRURfUlREUyAgICAgNAorI2RlZmluZSBUUkNfU0NIRURfU05V TEwgICAgNQorCisvKiBQZXItc2NoZWR1bGVyIHRyYWNpbmcgKi8KKyNkZWZpbmUgVFJDX1NDSEVE X0NMQVNTX0VWVChfYywgX2UpIFwKKyAgKCAoIFRSQ19TQ0hFRF9DTEFTUyB8IFwKKyAgICAgICgo VFJDX1NDSEVEXyMjX2MgPDwgVFJDX1NDSEVEX0lEX1NISUZUKSAmIFRSQ19TQ0hFRF9JRF9NQVNL KSApICsgXAorICAgIChfZSAmIFRSQ19TQ0hFRF9FVlRfTUFTSykgKQorCisvKiBUcmFjZSBjbGFz c2VzIGZvciBET00wIG9wZXJhdGlvbnMgKi8KKyNkZWZpbmUgVFJDX0RPTTBfRE9NT1BTICAgICAw eDAwMDQxMDAwICAgLyogRG9tYWlucyBtYW5pcHVsYXRpb25zICovCisKKy8qIFRyYWNlIGNsYXNz ZXMgZm9yIEhhcmR3YXJlICovCisjZGVmaW5lIFRSQ19IV19QTSAgICAgICAgICAgMHgwMDgwMTAw MCAgIC8qIFBvd2VyIG1hbmFnZW1lbnQgdHJhY2VzICovCisjZGVmaW5lIFRSQ19IV19JUlEgICAg ICAgICAgMHgwMDgwMjAwMCAgIC8qIFRyYWNlcyByZWxhdGluZyB0byB0aGUgaGFuZGxpbmcgb2Yg SVJRcyAqLworCisvKiBUcmFjZSBldmVudHMgcGVyIGNsYXNzICovCisjZGVmaW5lIFRSQ19MT1NU X1JFQ09SRFMgICAgICAgIChUUkNfR0VOICsgMSkKKyNkZWZpbmUgVFJDX1RSQUNFX1dSQVBfQlVG RkVSICAoVFJDX0dFTiArIDIpCisjZGVmaW5lIFRSQ19UUkFDRV9DUFVfQ0hBTkdFICAgIChUUkNf R0VOICsgMykKKworI2RlZmluZSBUUkNfU0NIRURfUlVOU1RBVEVfQ0hBTkdFICAgKFRSQ19TQ0hF RF9NSU4gKyAxKQorI2RlZmluZSBUUkNfU0NIRURfQ09OVElOVUVfUlVOTklORyAgKFRSQ19TQ0hF RF9NSU4gKyAyKQorI2RlZmluZSBUUkNfU0NIRURfRE9NX0FERCAgICAgICAgKFRSQ19TQ0hFRF9W RVJCT1NFICsgIDEpCisjZGVmaW5lIFRSQ19TQ0hFRF9ET01fUkVNICAgICAgICAoVFJDX1NDSEVE X1ZFUkJPU0UgKyAgMikKKyNkZWZpbmUgVFJDX1NDSEVEX1NMRUVQICAgICAgICAgIChUUkNfU0NI RURfVkVSQk9TRSArICAzKQorI2RlZmluZSBUUkNfU0NIRURfV0FLRSAgICAgICAgICAgKFRSQ19T Q0hFRF9WRVJCT1NFICsgIDQpCisjZGVmaW5lIFRSQ19TQ0hFRF9ZSUVMRCAgICAgICAgICAoVFJD X1NDSEVEX1ZFUkJPU0UgKyAgNSkKKyNkZWZpbmUgVFJDX1NDSEVEX0JMT0NLICAgICAgICAgIChU UkNfU0NIRURfVkVSQk9TRSArICA2KQorI2RlZmluZSBUUkNfU0NIRURfU0hVVERPV04gICAgICAg KFRSQ19TQ0hFRF9WRVJCT1NFICsgIDcpCisjZGVmaW5lIFRSQ19TQ0hFRF9DVEwgICAgICAgICAg ICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAgOCkKKyNkZWZpbmUgVFJDX1NDSEVEX0FESkRPTSAgICAg ICAgIChUUkNfU0NIRURfVkVSQk9TRSArICA5KQorI2RlZmluZSBUUkNfU0NIRURfU1dJVENIICAg ICAgICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTApCisjZGVmaW5lIFRSQ19TQ0hFRF9TX1RJTUVS X0ZOICAgICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxMSkKKyNkZWZpbmUgVFJDX1NDSEVEX1RfVElN RVJfRk4gICAgIChUUkNfU0NIRURfVkVSQk9TRSArIDEyKQorI2RlZmluZSBUUkNfU0NIRURfRE9N X1RJTUVSX0ZOICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTMpCisjZGVmaW5lIFRSQ19TQ0hFRF9T V0lUQ0hfSU5GUFJFViAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxNCkKKyNkZWZpbmUgVFJDX1NDSEVE X1NXSVRDSF9JTkZORVhUIChUUkNfU0NIRURfVkVSQk9TRSArIDE1KQorI2RlZmluZSBUUkNfU0NI RURfU0hVVERPV05fQ09ERSAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTYpCisjZGVmaW5lIFRSQ19T Q0hFRF9TV0lUQ0hfSU5GQ09OVCAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxNykKKworI2RlZmluZSBU UkNfRE9NMF9ET01fQUREICAgICAgICAgKFRSQ19ET00wX0RPTU9QUyArIDEpCisjZGVmaW5lIFRS Q19ET00wX0RPTV9SRU0gICAgICAgICAoVFJDX0RPTTBfRE9NT1BTICsgMikKKworI2RlZmluZSBU UkNfTUVNX1BBR0VfR1JBTlRfTUFQICAgICAgKFRSQ19NRU0gKyAxKQorI2RlZmluZSBUUkNfTUVN X1BBR0VfR1JBTlRfVU5NQVAgICAgKFRSQ19NRU0gKyAyKQorI2RlZmluZSBUUkNfTUVNX1BBR0Vf R1JBTlRfVFJBTlNGRVIgKFRSQ19NRU0gKyAzKQorI2RlZmluZSBUUkNfTUVNX1NFVF9QMk1fRU5U UlkgICAgICAgKFRSQ19NRU0gKyA0KQorI2RlZmluZSBUUkNfTUVNX0RFQ1JFQVNFX1JFU0VSVkFU SU9OIChUUkNfTUVNICsgNSkKKyNkZWZpbmUgVFJDX01FTV9QT0RfUE9QVUxBVEUgICAgICAgIChU UkNfTUVNICsgMTYpCisjZGVmaW5lIFRSQ19NRU1fUE9EX1pFUk9fUkVDTEFJTSAgICAoVFJDX01F TSArIDE3KQorI2RlZmluZSBUUkNfTUVNX1BPRF9TVVBFUlBBR0VfU1BMSU5URVIgKFRSQ19NRU0g KyAxOCkKKworI2RlZmluZSBUUkNfUFZfRU5UUlkgICAweDAwMjAxMDAwIC8qIEh5cGVydmlzb3Ig ZW50cnkgcG9pbnRzIGZvciBQViBndWVzdHMuICovCisjZGVmaW5lIFRSQ19QVl9TVUJDQUxMIDB4 MDAyMDIwMDAgLyogU3ViLWNhbGwgaW4gYSBtdWx0aWNhbGwgaHlwZXJjYWxsICovCisKKyNkZWZp bmUgVFJDX1BWX0hZUEVSQ0FMTCAgICAgICAgICAgICAoVFJDX1BWX0VOVFJZICsgIDEpCisjZGVm aW5lIFRSQ19QVl9UUkFQICAgICAgICAgICAgICAgICAgKFRSQ19QVl9FTlRSWSArICAzKQorI2Rl ZmluZSBUUkNfUFZfUEFHRV9GQVVMVCAgICAgICAgICAgIChUUkNfUFZfRU5UUlkgKyAgNCkKKyNk ZWZpbmUgVFJDX1BWX0ZPUkNFRF9JTlZBTElEX09QICAgICAoVFJDX1BWX0VOVFJZICsgIDUpCisj ZGVmaW5lIFRSQ19QVl9FTVVMQVRFX1BSSVZPUCAgICAgICAgKFRSQ19QVl9FTlRSWSArICA2KQor I2RlZmluZSBUUkNfUFZfRU1VTEFURV80R0IgICAgICAgICAgIChUUkNfUFZfRU5UUlkgKyAgNykK KyNkZWZpbmUgVFJDX1BWX01BVEhfU1RBVEVfUkVTVE9SRSAgICAoVFJDX1BWX0VOVFJZICsgIDgp CisjZGVmaW5lIFRSQ19QVl9QQUdJTkdfRklYVVAgICAgICAgICAgKFRSQ19QVl9FTlRSWSArICA5 KQorI2RlZmluZSBUUkNfUFZfR0RUX0xEVF9NQVBQSU5HX0ZBVUxUIChUUkNfUFZfRU5UUlkgKyAx MCkKKyNkZWZpbmUgVFJDX1BWX1BUV1JfRU1VTEFUSU9OICAgICAgICAoVFJDX1BWX0VOVFJZICsg MTEpCisjZGVmaW5lIFRSQ19QVl9QVFdSX0VNVUxBVElPTl9QQUUgICAgKFRSQ19QVl9FTlRSWSAr IDEyKQorI2RlZmluZSBUUkNfUFZfSFlQRVJDQUxMX1YyICAgICAgICAgIChUUkNfUFZfRU5UUlkg KyAxMykKKyNkZWZpbmUgVFJDX1BWX0hZUEVSQ0FMTF9TVUJDQUxMICAgICAoVFJDX1BWX1NVQkNB TEwgKyAxNCkKKworLyoKKyAqIFRSQ19QVl9IWVBFUkNBTExfVjIgZm9ybWF0CisgKgorICogT25s eSBzb21lIG9mIHRoZSBoeXBlcmNhbGwgYXJndW1lbnQgYXJlIHJlY29yZGVkLiBCaXQgZmllbGRz IEEwIHRvCisgKiBBNSBpbiB0aGUgZmlyc3QgZXh0cmEgd29yZCBhcmUgc2V0IGlmIHRoZSBhcmd1 bWVudCBpcyBwcmVzZW50IGFuZAorICogdGhlIGFyZ3VtZW50cyB0aGVtc2VsdmVzIGFyZSBwYWNr ZWQgc2VxdWVudGlhbGx5IGluIHRoZSBmb2xsb3dpbmcKKyAqIHdvcmRzLgorICoKKyAqIFRoZSBU UkNfNjRfRkxBRyBiaXQgaXMgbm90IHNldCBmb3IgdGhlc2UgZXZlbnRzIChldmVuIGlmIHRoZXJl IGFyZQorICogNjQtYml0IGFyZ3VtZW50cyBpbiB0aGUgcmVjb3JkKS4KKyAqCisgKiBXb3JkCisg KiAwICAgIGJpdCAzMSAzMHwyOSAyOHwyNyAyNnwyNSAyNHwyMyAyMnwyMSAyMHwxOSAuLi4gMAor ICogICAgICAgICAgQTUgICB8QTQgICB8QTMgICB8QTIgICB8QTEgICB8QTAgICB8SHlwZXJjYWxs IG9wCisgKiAxICAgIEZpcnN0IDMyIGJpdCAob3IgbG93IHdvcmQgb2YgZmlyc3QgNjQgYml0KSBh cmcgaW4gcmVjb3JkCisgKiAyICAgIFNlY29uZCAzMiBiaXQgKG9yIGhpZ2ggd29yZCBvZiBmaXJz dCA2NCBiaXQpIGFyZyBpbiByZWNvcmQKKyAqIC4uLgorICoKKyAqIEEwLUE1IGJpdGZpZWxkIHZh bHVlczoKKyAqCisgKiAgIDAwYiAgQXJndW1lbnQgbm90IHByZXNlbnQKKyAqICAgMDFiICAzMi1i aXQgYXJndW1lbnQgcHJlc2VudAorICogICAxMGIgIDY0LWJpdCBhcmd1bWVudCBwcmVzZW50Cisg KiAgIDExYiAgUmVzZXJ2ZWQKKyAqLworI2RlZmluZSBUUkNfUFZfSFlQRVJDQUxMX1YyX0FSR18z MihpKSAoMHgxIDw8ICgyMCArIDIqKGkpKSkKKyNkZWZpbmUgVFJDX1BWX0hZUEVSQ0FMTF9WMl9B UkdfNjQoaSkgKDB4MiA8PCAoMjAgKyAyKihpKSkpCisjZGVmaW5lIFRSQ19QVl9IWVBFUkNBTExf VjJfQVJHX01BU0sgICgweGZmZjAwMDAwKQorCisjZGVmaW5lIFRSQ19TSEFET1dfTk9UX1NIQURP VyAgICAgICAgICAgICAgICAgKFRSQ19TSEFET1cgKyAgMSkKKyNkZWZpbmUgVFJDX1NIQURPV19G QVNUX1BST1BBR0FURSAgICAgICAgICAgICAoVFJDX1NIQURPVyArICAyKQorI2RlZmluZSBUUkNf U0hBRE9XX0ZBU1RfTU1JTyAgICAgICAgICAgICAgICAgIChUUkNfU0hBRE9XICsgIDMpCisjZGVm aW5lIFRSQ19TSEFET1dfRkFMU0VfRkFTVF9QQVRIICAgICAgICAgICAgKFRSQ19TSEFET1cgKyAg NCkKKyNkZWZpbmUgVFJDX1NIQURPV19NTUlPICAgICAgICAgICAgICAgICAgICAgICAoVFJDX1NI QURPVyArICA1KQorI2RlZmluZSBUUkNfU0hBRE9XX0ZJWFVQICAgICAgICAgICAgICAgICAgICAg IChUUkNfU0hBRE9XICsgIDYpCisjZGVmaW5lIFRSQ19TSEFET1dfRE9NRl9EWUlORyAgICAgICAg ICAgICAgICAgKFRSQ19TSEFET1cgKyAgNykKKyNkZWZpbmUgVFJDX1NIQURPV19FTVVMQVRFICAg ICAgICAgICAgICAgICAgICAoVFJDX1NIQURPVyArICA4KQorI2RlZmluZSBUUkNfU0hBRE9XX0VN VUxBVEVfVU5TSEFET1dfVVNFUiAgICAgIChUUkNfU0hBRE9XICsgIDkpCisjZGVmaW5lIFRSQ19T SEFET1dfRU1VTEFURV9VTlNIQURPV19FVlRJTkogICAgKFRSQ19TSEFET1cgKyAxMCkKKyNkZWZp bmUgVFJDX1NIQURPV19FTVVMQVRFX1VOU0hBRE9XX1VOSEFORExFRCAoVFJDX1NIQURPVyArIDEx KQorI2RlZmluZSBUUkNfU0hBRE9XX1dSTUFQX0JGICAgICAgICAgICAgICAgICAgIChUUkNfU0hB RE9XICsgMTIpCisjZGVmaW5lIFRSQ19TSEFET1dfUFJFQUxMT0NfVU5QSU4gICAgICAgICAgICAg KFRSQ19TSEFET1cgKyAxMykKKyNkZWZpbmUgVFJDX1NIQURPV19SRVNZTkNfRlVMTCAgICAgICAg ICAgICAgICAoVFJDX1NIQURPVyArIDE0KQorI2RlZmluZSBUUkNfU0hBRE9XX1JFU1lOQ19PTkxZ ICAgICAgICAgICAgICAgIChUUkNfU0hBRE9XICsgMTUpCisKKy8qIHRyYWNlIGV2ZW50cyBwZXIg c3ViY2xhc3MgKi8KKyNkZWZpbmUgVFJDX0hWTV9ORVNURURGTEFHICAgICAgKDB4NDAwKQorI2Rl ZmluZSBUUkNfSFZNX1ZNRU5UUlkgICAgICAgICAoVFJDX0hWTV9FTlRSWUVYSVQgKyAweDAxKQor I2RlZmluZSBUUkNfSFZNX1ZNRVhJVCAgICAgICAgICAoVFJDX0hWTV9FTlRSWUVYSVQgKyAweDAy KQorI2RlZmluZSBUUkNfSFZNX1ZNRVhJVDY0ICAgICAgICAoVFJDX0hWTV9FTlRSWUVYSVQgKyBU UkNfNjRfRkxBRyArIDB4MDIpCisjZGVmaW5lIFRSQ19IVk1fUEZfWEVOICAgICAgICAgIChUUkNf SFZNX0hBTkRMRVIgKyAweDAxKQorI2RlZmluZSBUUkNfSFZNX1BGX1hFTjY0ICAgICAgICAoVFJD X0hWTV9IQU5ETEVSICsgVFJDXzY0X0ZMQUcgKyAweDAxKQorI2RlZmluZSBUUkNfSFZNX1BGX0lO SkVDVCAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwMikKKyNkZWZpbmUgVFJDX0hWTV9QRl9J TkpFQ1Q2NCAgICAgKFRSQ19IVk1fSEFORExFUiArIFRSQ182NF9GTEFHICsgMHgwMikKKyNkZWZp bmUgVFJDX0hWTV9JTkpfRVhDICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MDMpCisjZGVm aW5lIFRSQ19IVk1fSU5KX1ZJUlEgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDA0KQorI2Rl ZmluZSBUUkNfSFZNX1JFSU5KX1ZJUlEgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwNSkKKyNk ZWZpbmUgVFJDX0hWTV9JT19SRUFEICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MDYpCisj ZGVmaW5lIFRSQ19IVk1fSU9fV1JJVEUgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDA3KQor I2RlZmluZSBUUkNfSFZNX0NSX1JFQUQgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwOCkK KyNkZWZpbmUgVFJDX0hWTV9DUl9SRUFENjQgICAgICAgKFRSQ19IVk1fSEFORExFUiArIFRSQ182 NF9GTEFHICsgMHgwOCkKKyNkZWZpbmUgVFJDX0hWTV9DUl9XUklURSAgICAgICAgKFRSQ19IVk1f SEFORExFUiArIDB4MDkpCisjZGVmaW5lIFRSQ19IVk1fQ1JfV1JJVEU2NCAgICAgIChUUkNfSFZN X0hBTkRMRVIgKyBUUkNfNjRfRkxBRyArIDB4MDkpCisjZGVmaW5lIFRSQ19IVk1fRFJfUkVBRCAg ICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDBBKQorI2RlZmluZSBUUkNfSFZNX0RSX1dSSVRF ICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwQikKKyNkZWZpbmUgVFJDX0hWTV9NU1JfUkVB RCAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MEMpCisjZGVmaW5lIFRSQ19IVk1fTVNSX1dS SVRFICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDBEKQorI2RlZmluZSBUUkNfSFZNX0NQVUlE ICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwRSkKKyNkZWZpbmUgVFJDX0hWTV9JTlRS ICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MEYpCisjZGVmaW5lIFRSQ19IVk1fTk1J ICAgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDEwKQorI2RlZmluZSBUUkNfSFZNX1NN SSAgICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgxMSkKKyNkZWZpbmUgVFJDX0hWTV9W TU1DQUxMICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTIpCisjZGVmaW5lIFRSQ19IVk1f SExUICAgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDEzKQorI2RlZmluZSBUUkNfSFZN X0lOVkxQRyAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgxNCkKKyNkZWZpbmUgVFJDX0hW TV9JTlZMUEc2NCAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIFRSQ182NF9GTEFHICsgMHgxNCkK KyNkZWZpbmUgVFJDX0hWTV9NQ0UgICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTUp CisjZGVmaW5lIFRSQ19IVk1fSU9QT1JUX1JFQUQgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDE2 KQorI2RlZmluZSBUUkNfSFZNX0lPTUVNX1JFQUQgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgx NykKKyNkZWZpbmUgVFJDX0hWTV9DTFRTICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4 MTgpCisjZGVmaW5lIFRSQ19IVk1fTE1TVyAgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAw eDE5KQorI2RlZmluZSBUUkNfSFZNX0xNU1c2NCAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsg VFJDXzY0X0ZMQUcgKyAweDE5KQorI2RlZmluZSBUUkNfSFZNX1JEVFNDICAgICAgICAgICAoVFJD X0hWTV9IQU5ETEVSICsgMHgxYSkKKyNkZWZpbmUgVFJDX0hWTV9JTlRSX1dJTkRPVyAgICAgKFRS Q19IVk1fSEFORExFUiArIDB4MjApCisjZGVmaW5lIFRSQ19IVk1fTlBGICAgICAgICAgICAgIChU UkNfSFZNX0hBTkRMRVIgKyAweDIxKQorI2RlZmluZSBUUkNfSFZNX1JFQUxNT0RFX0VNVUxBVEUg KFRSQ19IVk1fSEFORExFUiArIDB4MjIpCisjZGVmaW5lIFRSQ19IVk1fVFJBUCAgICAgICAgICAg ICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyMykKKyNkZWZpbmUgVFJDX0hWTV9UUkFQX0RFQlVHICAg ICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDI0KQorI2RlZmluZSBUUkNfSFZNX1ZMQVBJQyAgICAg ICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MjUpCisKKyNkZWZpbmUgVFJDX0hWTV9JT1BPUlRf V1JJVEUgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MjE2KQorI2RlZmluZSBUUkNfSFZNX0lPTUVN X1dSSVRFICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyMTcpCisKKy8qIFRyYWNlIGV2ZW50cyBm b3IgZW11bGF0ZWQgZGV2aWNlcyAqLworI2RlZmluZSBUUkNfSFZNX0VNVUxfSFBFVF9TVEFSVF9U SU1FUiAgKFRSQ19IVk1fRU1VTCArIDB4MSkKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJVF9TVEFS VF9USU1FUiAgIChUUkNfSFZNX0VNVUwgKyAweDIpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9SVENf U1RBUlRfVElNRVIgICAoVFJDX0hWTV9FTVVMICsgMHgzKQorI2RlZmluZSBUUkNfSFZNX0VNVUxf TEFQSUNfU1RBUlRfVElNRVIgKFRSQ19IVk1fRU1VTCArIDB4NCkKKyNkZWZpbmUgVFJDX0hWTV9F TVVMX0hQRVRfU1RPUF9USU1FUiAgIChUUkNfSFZNX0VNVUwgKyAweDUpCisjZGVmaW5lIFRSQ19I Vk1fRU1VTF9QSVRfU1RPUF9USU1FUiAgICAoVFJDX0hWTV9FTVVMICsgMHg2KQorI2RlZmluZSBU UkNfSFZNX0VNVUxfUlRDX1NUT1BfVElNRVIgICAgKFRSQ19IVk1fRU1VTCArIDB4NykKKyNkZWZp bmUgVFJDX0hWTV9FTVVMX0xBUElDX1NUT1BfVElNRVIgIChUUkNfSFZNX0VNVUwgKyAweDgpCisj ZGVmaW5lIFRSQ19IVk1fRU1VTF9QSVRfVElNRVJfQ0IgICAgICAoVFJDX0hWTV9FTVVMICsgMHg5 KQorI2RlZmluZSBUUkNfSFZNX0VNVUxfTEFQSUNfVElNRVJfQ0IgICAgKFRSQ19IVk1fRU1VTCAr IDB4QSkKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJQ19JTlRfT1VUUFVUICAgIChUUkNfSFZNX0VN VUwgKyAweEIpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9QSUNfS0lDSyAgICAgICAgICAoVFJDX0hW TV9FTVVMICsgMHhDKQorI2RlZmluZSBUUkNfSFZNX0VNVUxfUElDX0lOVEFDSyAgICAgICAgKFRS Q19IVk1fRU1VTCArIDB4RCkKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJQ19QT1NFREdFICAgICAg IChUUkNfSFZNX0VNVUwgKyAweEUpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9QSUNfTkVHRURHRSAg ICAgICAoVFJDX0hWTV9FTVVMICsgMHhGKQorI2RlZmluZSBUUkNfSFZNX0VNVUxfUElDX1BFTkRf SVJRX0NBTEwgKFRSQ19IVk1fRU1VTCArIDB4MTApCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9MQVBJ Q19QSUNfSU5UUiAgICAoVFJDX0hWTV9FTVVMICsgMHgxMSkKKworLyogdHJhY2UgZXZlbnRzIGZv ciBwZXIgY2xhc3MgKi8KKyNkZWZpbmUgVFJDX1BNX0ZSRVFfQ0hBTkdFICAgICAgKFRSQ19IV19Q TSArIDB4MDEpCisjZGVmaW5lIFRSQ19QTV9JRExFX0VOVFJZICAgICAgIChUUkNfSFdfUE0gKyAw eDAyKQorI2RlZmluZSBUUkNfUE1fSURMRV9FWElUICAgICAgICAoVFJDX0hXX1BNICsgMHgwMykK KworLyogVHJhY2UgZXZlbnRzIGZvciBJUlFzICovCisjZGVmaW5lIFRSQ19IV19JUlFfTU9WRV9D TEVBTlVQX0RFTEFZIChUUkNfSFdfSVJRICsgMHgxKQorI2RlZmluZSBUUkNfSFdfSVJRX01PVkVf Q0xFQU5VUCAgICAgICAoVFJDX0hXX0lSUSArIDB4MikKKyNkZWZpbmUgVFJDX0hXX0lSUV9CSU5E X1ZFQ1RPUiAgICAgICAgKFRSQ19IV19JUlEgKyAweDMpCisjZGVmaW5lIFRSQ19IV19JUlFfQ0xF QVJfVkVDVE9SICAgICAgIChUUkNfSFdfSVJRICsgMHg0KQorI2RlZmluZSBUUkNfSFdfSVJRX01P VkVfRklOSVNIICAgICAgICAoVFJDX0hXX0lSUSArIDB4NSkKKyNkZWZpbmUgVFJDX0hXX0lSUV9B U1NJR05fVkVDVE9SICAgICAgKFRSQ19IV19JUlEgKyAweDYpCisjZGVmaW5lIFRSQ19IV19JUlFf VU5NQVBQRURfVkVDVE9SICAgIChUUkNfSFdfSVJRICsgMHg3KQorI2RlZmluZSBUUkNfSFdfSVJR X0hBTkRMRUQgICAgICAgICAgICAoVFJDX0hXX0lSUSArIDB4OCkKKworLyoKKyAqIEV2ZW50IEZs YWdzCisgKgorICogU29tZSBldmVudHMgKGUuZywgVFJDX1BWX1RSQVAgYW5kIFRSQ19IVk1fSU9N RU1fUkVBRCkgaGF2ZSBtdWx0aXBsZQorICogcmVjb3JkIGZvcm1hdHMuICBUaGVzZSBldmVudCBm bGFncyBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZQorICogZGlmZmVyZW50IGZvcm1hdHMuCisgKi8K KyNkZWZpbmUgVFJDXzY0X0ZMQUcgMHgxMDAgLyogQWRkcmVzc2VzIGFyZSA2NCBiaXRzIChpbnN0 ZWFkIG9mIDMyIGJpdHMpICovCisKKy8qIFRoaXMgc3RydWN0dXJlIHJlcHJlc2VudHMgYSBzaW5n bGUgdHJhY2UgYnVmZmVyIHJlY29yZC4gKi8KK3N0cnVjdCB0X3JlYyB7CisgICAgdWludDMyX3Qg ZXZlbnQ6Mjg7CisgICAgdWludDMyX3QgZXh0cmFfdTMyOjM7ICAgICAgICAgLyogIyBlbnRyaWVz IGluIHRyYWlsaW5nIGV4dHJhX3UzMltdIGFycmF5ICovCisgICAgdWludDMyX3QgY3ljbGVzX2lu Y2x1ZGVkOjE7ICAgLyogdS5jeWNsZXMgb3IgdS5ub19jeWNsZXM/ICovCisgICAgdW5pb24gewor ICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgY3ljbGVzX2xvLCBjeWNsZXNf aGk7IC8qIGN5Y2xlIGNvdW50ZXIgdGltZXN0YW1wICovCisgICAgICAgICAgICB1aW50MzJfdCBl eHRyYV91MzJbN107ICAgICAgICAgLyogZXZlbnQgZGF0YSBpdGVtcyAqLworICAgICAgICB9IGN5 Y2xlczsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGV4dHJhX3UzMls3 XTsgICAgICAgICAvKiBldmVudCBkYXRhIGl0ZW1zICovCisgICAgICAgIH0gbm9jeWNsZXM7Cisg ICAgfSB1OworfTsKKworLyoKKyAqIFRoaXMgc3RydWN0dXJlIGNvbnRhaW5zIHRoZSBtZXRhZGF0 YSBmb3IgYSBzaW5nbGUgdHJhY2UgYnVmZmVyLiAgVGhlIGhlYWQKKyAqIGZpZWxkLCBpbmRleGVz IGludG8gYW4gYXJyYXkgb2Ygc3RydWN0IHRfcmVjJ3MuCisgKi8KK3N0cnVjdCB0X2J1ZiB7Cisg ICAgLyogQXNzdW1lIHRoZSBkYXRhIGJ1ZmZlciBzaXplIGlzIFguICBYIGlzIGdlbmVyYWxseSBu b3QgYSBwb3dlciBvZiAyLgorICAgICAqIENPTlMgYW5kIFBST0QgYXJlIGluY3JlbWVudGVkIG1v ZHVsbyAoMipYKToKKyAgICAgKiAgICAgMCA8PSBjb25zIDwgMipYCisgICAgICogICAgIDAgPD0g cHJvZCA8IDIqWAorICAgICAqIFRoaXMgaXMgZG9uZSBiZWNhdXNlIGFkZGl0aW9uIG1vZHVsbyBY IGJyZWFrcyBhdCAyXjMyIHdoZW4gWCBpcyBub3QgYQorICAgICAqIHBvd2VyIG9mIDI6CisgICAg ICogICAgICgoKDJeMzIgLSAxKSAlIFgpICsgMSkgJSBYICE9ICgyXjMyKSAlIFgKKyAgICAgKi8K KyAgICB1aW50MzJfdCBjb25zOyAgIC8qIE9mZnNldCBvZiBuZXh0IGl0ZW0gdG8gYmUgY29uc3Vt ZWQgYnkgY29udHJvbCB0b29scy4gKi8KKyAgICB1aW50MzJfdCBwcm9kOyAgIC8qIE9mZnNldCBv ZiBuZXh0IGl0ZW0gdG8gYmUgcHJvZHVjZWQgYnkgWGVuLiAgICAgICAgICAgKi8KKyAgICAvKiAg UmVjb3JkcyBmb2xsb3cgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIG1ldGEtZGF0YSBoZWFkZXIuICAg ICovCit9OworCisvKiBTdHJ1Y3R1cmUgdXNlZCB0byBwYXNzIE1GTnMgdG8gdGhlIHRyYWNlIGJ1 ZmZlcnMgYmFjayB0byB0cmFjZSBjb25zdW1lcnMuCisgKiBPZmZzZXQgaXMgYW4gb2Zmc2V0IGlu dG8gdGhlIG1hcHBlZCBzdHJ1Y3R1cmUgd2hlcmUgdGhlIG1mbiBsaXN0IHdpbGwgYmUgaGVsZC4K KyAqIE1GTnMgd2lsbCBiZSBhdCAoKHVuc2lnbmVkIGxvbmcgKikodF9pbmZvKSkrKHRfaW5mby0+ Y3B1X29mZnNldFtjcHVdKS4KKyAqLworc3RydWN0IHRfaW5mbyB7CisgICAgdWludDE2X3QgdGJ1 Zl9zaXplOyAvKiBTaXplIGluIHBhZ2VzIG9mIGVhY2ggdHJhY2UgYnVmZmVyICovCisgICAgdWlu dDE2X3QgbWZuX29mZnNldFtdOyAgLyogT2Zmc2V0IHdpdGhpbiB0X2luZm8gc3RydWN0dXJlIG9m IHRoZSBwYWdlIGxpc3QgcGVyIGNwdSAqLworICAgIC8qIE1GTiBsaXN0cyBpbW1lZGlhdGVseSBh ZnRlciB0aGUgaGVhZGVyICovCit9OworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX1RSQUNFX0hf XyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0 eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5k ZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVu L3hlbi5oIGIvaW5jbHVkZS94ZW4veGVuLmgKaW5kZXggNmM5ZTQyYjJiLi4zMDgxMDlmMTcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3hlbi5oCisrKyBiL2luY2x1ZGUveGVuL3hlbi5oCkBAIC01 MywxNyArNTMsMjIgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDY0X3QpOwogREVGSU5F X1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KTsKIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhl bl91bG9uZ190KTsKIAotLyogVHVybiBhIHBsYWluIG51bWJlciBpbnRvIGEgQyB1bnNpZ25lZCAo bG9uZykgY29uc3RhbnQuICovCisvKiBUdXJuIGEgcGxhaW4gbnVtYmVyIGludG8gYSBDIHVuc2ln bmVkIChsb25nIChsb25nKSkgY29uc3RhbnQuICovCiAjZGVmaW5lIF9feGVuX21rX3VpbnQoeCkg IHggIyMgVQogI2RlZmluZSBfX3hlbl9ta191bG9uZyh4KSB4ICMjIFVMCisjaWZuZGVmIF9feGVu X21rX3VsbG9uZworIyBkZWZpbmUgX194ZW5fbWtfdWxsb25nKHgpIHggIyMgVUxMCisjZW5kaWYK ICNkZWZpbmUgeGVuX21rX3VpbnQoeCkgICAgX194ZW5fbWtfdWludCh4KQogI2RlZmluZSB4ZW5f bWtfdWxvbmcoeCkgICBfX3hlbl9ta191bG9uZyh4KQorI2RlZmluZSB4ZW5fbWtfdWxsb25nKHgp ICBfX3hlbl9ta191bGxvbmcoeCkKIAogI2Vsc2UKIAogLyogSW4gYXNzZW1ibHkgY29kZSB3ZSBj YW5ub3QgdXNlIEMgbnVtZXJpYyBjb25zdGFudCBzdWZmaXhlcy4gKi8KLSNkZWZpbmUgeGVuX21r X3VpbnQoeCkgIHgKLSNkZWZpbmUgeGVuX21rX3Vsb25nKHgpIHgKKyNkZWZpbmUgeGVuX21rX3Vp bnQoeCkgICB4CisjZGVmaW5lIHhlbl9ta191bG9uZyh4KSAgeAorI2RlZmluZSB4ZW5fbWtfdWxs b25nKHgpIHgKIAogI2VuZGlmCiAKQEAgLTExNSw2ICsxMjAsNyBAQCBERUZJTkVfWEVOX0dVRVNU X0hBTkRMRSh4ZW5fdWxvbmdfdCk7CiAjZGVmaW5lIF9fSFlQRVJWSVNPUl90bWVtX29wICAgICAg ICAgICAgICAzOAogI2RlZmluZSBfX0hZUEVSVklTT1JfeGNfcmVzZXJ2ZWRfb3AgICAgICAgMzkg LyogcmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAqLwogI2RlZmluZSBfX0hZUEVSVklTT1JfeGVucG11 X29wICAgICAgICAgICAgNDAKKyNkZWZpbmUgX19IWVBFUlZJU09SX2RtX29wICAgICAgICAgICAg ICAgIDQxCiAKIC8qIEFyY2hpdGVjdHVyZS1zcGVjaWZpYyBoeXBlcmNhbGwgZGVmaW5pdGlvbnMu ICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzAgICAgICAgICAgICAgICA0OApAQCAtNTAx LDYgKzUwNywyMSBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVleHRfb3BfdCk7CiAvKiB4 ODYvUEFFIGd1ZXN0czogc3VwcG9ydCBQRFBUcyBhYm92ZSA0R0IuICovCiAjZGVmaW5lIFZNQVNT VF9UWVBFX3BhZV9leHRlbmRlZF9jcjMgICAgIDMKIAorLyoKKyAqIHg4NiBndWVzdHM6IFNhbmUg YmVoYXZpb3VyIGZvciB2aXJ0dWFsIGlvcGwKKyAqICAtIHZpcnR1YWwgaW9wbCB1cGRhdGVkIGZy b20gZG9faXJldCgpIGh5cGVyY2FsbHMuCisgKiAgLSB2aXJ0dWFsIGlvcGwgcmVwb3J0ZWQgaW4g Ym91bmNlIGZyYW1lcy4KKyAqICAtIGd1ZXN0IGtlcm5lbHMgYXNzdW1lZCB0byBiZSBsZXZlbCAw IGZvciB0aGUgcHVycG9zZSBvZiBpb3BsIGNoZWNrcy4KKyAqLworI2RlZmluZSBWTUFTU1RfVFlQ RV9hcmNoaXRlY3R1cmFsX2lvcGwgICA0CisKKy8qCisgKiBBbGwgZ3Vlc3RzOiBhY3RpdmF0ZSB1 cGRhdGUgaW5kaWNhdG9yIGluIHZjcHVfcnVuc3RhdGVfaW5mbworICogRW5hYmxlIHNldHRpbmcg dGhlIFhFTl9SVU5TVEFURV9VUERBVEUgZmxhZyBpbiBndWVzdCBtZW1vcnkgbWFwcGVkCisgKiB2 Y3B1X3J1bnN0YXRlX2luZm8gZHVyaW5nIHVwZGF0ZXMgb2YgdGhlIHJ1bnN0YXRlIGluZm9ybWF0 aW9uLgorICovCisjZGVmaW5lIFZNQVNTVF9UWVBFX3J1bnN0YXRlX3VwZGF0ZV9mbGFnIDUKKwog LyoKICAqIHg4Ni82NCBndWVzdHM6IHN0cmljdGx5IGhpZGUgTTJQIGZyb20gdXNlciBtb2RlLgog ICogVGhpcyBhbGxvd3MgdGhlIGd1ZXN0IHRvIGNvbnRyb2wgcmVzcGVjdGl2ZSBoeXBlcnZpc29y IGJlaGF2aW9yOgpAQCAtNTI5LDE2ICs1NTAsMjEgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo bW11ZXh0X29wX3QpOwogICogaXMgdXNlZnVsIHRvIGVuc3VyZSB0aGF0IG5vIG1hcHBpbmdzIHRv IHRoZSBPUydzIG93biBoZWFwIGFyZSBhY2NpZGVudGFsbHkKICAqIGluc3RhbGxlZC4gKGUuZy4s IGluIExpbnV4IHRoaXMgY291bGQgY2F1c2UgaGF2b2MgYXMgcmVmZXJlbmNlIGNvdW50cwogICog YXJlbid0IGFkanVzdGVkIG9uIHRoZSBJL08tbWFwcGluZyBjb2RlIHBhdGgpLgotICogVGhpcyBv bmx5IG1ha2VzIHNlbnNlIGluIE1NVUVYVF9TRVRfRk9SRUlHTkRPTSwgYnV0IGluIHRoYXQgY29u dGV4dCBjYW4KLSAqIGJlIHNwZWNpZmllZCBieSBhbnkgY2FsbGluZyBkb21haW4uCisgKiBUaGlz IG9ubHkgbWFrZXMgc2Vuc2UgYXMgSFlQRVJWSVNPUl9tbXVfdXBkYXRlKCkncyBhbmQKKyAqIEhZ UEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4oKSdzICJmb3JlaWduZG9tIiBh cmd1bWVudC4gRm9yCisgKiBIWVBFUlZJU09SX21tdV91cGRhdGUoKSBjb250ZXh0IGl0IGNhbiBi ZSBzcGVjaWZpZWQgYnkgYW55IGNhbGxpbmcgZG9tYWluLAorICogb3RoZXJ3aXNlIGl0J3Mgb25s eSBwZXJtaXR0ZWQgaWYgdGhlIGNhbGxlciBpcyBwcml2aWxlZ2VkLgogICovCiAjZGVmaW5lIERP TUlEX0lPICAgICAgICAgICAgIHhlbl9ta191aW50KDB4N0ZGMSkKIAogLyoKICAqIERPTUlEX1hF TiBpcyB1c2VkIHRvIGFsbG93IHByaXZpbGVnZWQgZG9tYWlucyB0byBtYXAgcmVzdHJpY3RlZCBw YXJ0cyBvZgogICogWGVuJ3MgaGVhcCBzcGFjZSAoZS5nLiwgdGhlIG1hY2hpbmVfdG9fcGh5cyB0 YWJsZSkuCi0gKiBUaGlzIG9ubHkgbWFrZXMgc2Vuc2UgaW4gTU1VRVhUX1NFVF9GT1JFSUdORE9N LCBhbmQgaXMgb25seSBwZXJtaXR0ZWQgaWYKLSAqIHRoZSBjYWxsZXIgaXMgcHJpdmlsZWdlZC4K KyAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBhcworICogLSBIWVBFUlZJU09SX21tdV91cGRhdGUo KSdzLCBIWVBFUlZJU09SX21tdWV4dF9vcCgpJ3MsIG9yCisgKiAgIEhZUEVSVklTT1JfdXBkYXRl X3ZhX21hcHBpbmdfb3RoZXJkb21haW4oKSdzICJmb3JlaWduZG9tIiBhcmd1bWVudCwKKyAqIC0g d2l0aCBYRU5NQVBTUEFDRV9nbWZuX2ZvcmVpZ24sCisgKiBhbmQgaXMgb25seSBwZXJtaXR0ZWQg aWYgdGhlIGNhbGxlciBpcyBwcml2aWxlZ2VkLgogICovCiAjZGVmaW5lIERPTUlEX1hFTiAgICAg ICAgICAgIHhlbl9ta191aW50KDB4N0ZGMikKIApAQCAtNjE0LDEwICs2NDAsMTggQEAgc3RydWN0 IHZjcHVfdGltZV9pbmZvIHsKICAgICAgKi8KICAgICB1aW50MzJfdCB0c2NfdG9fc3lzdGVtX211 bDsKICAgICBpbnQ4X3QgICB0c2Nfc2hpZnQ7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f XyA+IDB4MDQwNjAwCisgICAgdWludDhfdCAgZmxhZ3M7CisgICAgdWludDhfdCAgcGFkMVsyXTsK KyNlbHNlCiAgICAgaW50OF90ICAgcGFkMVszXTsKKyNlbmRpZgogfTsgLyogMzIgYnl0ZXMgKi8K IHR5cGVkZWYgc3RydWN0IHZjcHVfdGltZV9pbmZvIHZjcHVfdGltZV9pbmZvX3Q7CiAKKyNkZWZp bmUgWEVOX1BWQ0xPQ0tfVFNDX1NUQUJMRV9CSVQgICAgICgxIDw8IDApCisjZGVmaW5lIFhFTl9Q VkNMT0NLX0dVRVNUX1NUT1BQRUQgICAgICAoMSA8PCAxKQorCiBzdHJ1Y3QgdmNwdV9pbmZvIHsK ICAgICAvKgogICAgICAqICdldnRjaG5fdXBjYWxsX3BlbmRpbmcnIGlzIHdyaXR0ZW4gbm9uLXpl cm8gYnkgWGVuIHRvIGluZGljYXRlCkBAIC03MzYsNyArNzcwLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg c2hhcmVkX2luZm8gc2hhcmVkX2luZm9fdDsKICAqICAgICAgICAgKG1heSBiZSBvbWl0dGVkKQog ICogICAgICBjLiBsaXN0IG9mIGFsbG9jYXRlZCBwYWdlIGZyYW1lcyBbbWZuX2xpc3QsIG5yX3Bh Z2VzXQogICogICAgICAgICAodW5sZXNzIHJlbG9jYXRlZCBkdWUgdG8gWEVOX0VMRk5PVEVfSU5J VF9QMk0pCi0gKiAgICAgIGQuIHN0YXJ0X2luZm9fdCBzdHJ1Y3R1cmUgICAgICAgIFtyZWdpc3Rl ciBFU0kgKHg4NildCisgKiAgICAgIGQuIHN0YXJ0X2luZm9fdCBzdHJ1Y3R1cmUgICAgICAgIFty ZWdpc3RlciByU0kgKHg4NildCiAgKiAgICAgICAgIGluIGNhc2Ugb2YgZG9tMCB0aGlzIHBhZ2Ug Y29udGFpbnMgdGhlIGNvbnNvbGUgaW5mbywgdG9vCiAgKiAgICAgIGUuIHVubGVzcyBkb20wOiB4 ZW5zdG9yZSByaW5nIHBhZ2UKICAqICAgICAgZi4gdW5sZXNzIGRvbTA6IGNvbnNvbGUgcmluZyBw YWdlCkBAIC03OTcsMjkgKzgzMSw2IEBAIHN0cnVjdCBzdGFydF9pbmZvIHsKIH07CiB0eXBlZGVm IHN0cnVjdCBzdGFydF9pbmZvIHN0YXJ0X2luZm9fdDsKIAotLyoKLSAqIFN0YXJ0IG9mIGRheSBz dHJ1Y3R1cmUgcGFzc2VkIHRvIFBWSCBndWVzdHMgaW4gJWVieC4KLSAqCi0gKiBOT1RFOiBub3Ro aW5nIHdpbGwgYmUgbG9hZGVkIGF0IHBoeXNpY2FsIGFkZHJlc3MgMCwgc28KLSAqIGEgMCB2YWx1 ZSBpbiBhbnkgb2YgdGhlIGFkZHJlc3MgZmllbGRzIHNob3VsZCBiZSB0cmVhdGVkCi0gKiBhcyBu b3QgcHJlc2VudC4KLSAqLwotc3RydWN0IGh2bV9zdGFydF9pbmZvIHsKLSNkZWZpbmUgSFZNX1NU QVJUX01BR0lDX1ZBTFVFIDB4MzM2ZWM1NzgKLSAgICB1aW50MzJfdCBtYWdpYzsgICAgICAgICAg ICAgLyogQ29udGFpbnMgdGhlIG1hZ2ljIHZhbHVlIDB4MzM2ZWM1NzggICAgICAgKi8KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogKCJ4RW4zIiB3aXRoIHRoZSAweDgwIGJpdCBv ZiB0aGUgIkUiIHNldCkuKi8KLSAgICB1aW50MzJfdCBmbGFnczsgICAgICAgICAgICAgLyogU0lG X3h4eCBmbGFncy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICB1aW50MzJfdCBj bWRsaW5lX3BhZGRyOyAgICAgLyogUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgY29tbWFuZCBsaW5l LiAgICAgKi8KLSAgICB1aW50MzJfdCBucl9tb2R1bGVzOyAgICAgICAgLyogTnVtYmVyIG9mIG1v ZHVsZXMgcGFzc2VkIHRvIHRoZSBrZXJuZWwuICAgKi8KLSAgICB1aW50MzJfdCBtb2RsaXN0X3Bh ZGRyOyAgICAgLyogUGh5c2ljYWwgYWRkcmVzcyBvZiBhbiBhcnJheSBvZiAgICAgICAgICAgKi8K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaHZtX21vZGxpc3RfZW50cnkuICAg ICAgICAgICAgICAgICAgICAgICAgKi8KLX07Ci0KLXN0cnVjdCBodm1fbW9kbGlzdF9lbnRyeSB7 Ci0gICAgdWludDMyX3QgcGFkZHI7ICAgICAgICAgICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2Yg dGhlIG1vZHVsZS4gICAgICAgICAgICovCi0gICAgdWludDMyX3Qgc2l6ZTsgICAgICAgICAgICAg IC8qIFNpemUgb2YgdGhlIG1vZHVsZSBpbiBieXRlcy4gICAgICAgICAgICAgICovCi19OwotCiAv KiBOZXcgY29uc29sZSB1bmlvbiBmb3IgZG9tMCBpbnRyb2R1Y2VkIGluIDB4MDAwMzAyMDMuICov CiAjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwMzAyMDMKICNkZWZpbmUgY29u c29sZV9tZm4gICAgY29uc29sZS5kb21VLm1mbgpAQCAtOTE5LDYgKzkzMCwzNyBAQCBfX0RFRklO RV9YRU5fR1VFU1RfSEFORExFKHVpbnQxNiwgdWludDE2X3QpOwogX19ERUZJTkVfWEVOX0dVRVNU X0hBTkRMRSh1aW50MzIsIHVpbnQzMl90KTsKIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWlu dDY0LCB1aW50NjRfdCk7CiAKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1aW50OF90IGFbMTZdOwor fSB4ZW5fdXVpZF90OworCisvKgorICogWEVOX0RFRklORV9VVUlEKDB4MDAxMTIyMzMsIDB4NDQ1 NSwgMHg2Njc3LCAweDg4OTksCisgKiAgICAgICAgICAgICAgICAgMHhhYSwgMHhiYiwgMHhjYywg MHhkZCwgMHhlZSwgMHhmZikKKyAqIHdpbGwgY29uc3RydWN0IFVVSUQgMDAxMTIyMzMtNDQ1NS02 Njc3LTg4OTktYWFiYmNjZGRlZWZmIHByZXNlbnRlZCBhcworICogezB4MDAsIDB4MTEsIDB4MjIs IDB4MzMsIDB4NDQsIDB4NTUsIDB4NjYsIDB4NzcsIDB4ODgsCisgKiAweDk5LCAweGFhLCAweGJi LCAweGNjLCAweGRkLCAweGVlLCAweGZmfTsKKyAqCisgKiBOQjogVGhpcyBpcyBjb21wYXRpYmxl IHdpdGggTGludXgga2VybmVsIGFuZCB3aXRoIGxpYnV1aWQsIGJ1dCBpdCBpcyBub3QKKyAqIGNv bXBhdGlibGUgd2l0aCBNaWNyb3NvZnQsIGFzIHRoZXkgdXNlIG1peGVkLWVuZGlhbiBlbmNvZGlu ZyAoc29tZQorICogY29tcG9uZW50cyBhcmUgbGl0dGxlLWVuZGlhbiwgc29tZSBhcmUgYmlnLWVu ZGlhbikuCisgKi8KKyNkZWZpbmUgWEVOX0RFRklORV9VVUlEXyhhLCBiLCBjLCBkLCBlMSwgZTIs IGUzLCBlNCwgZTUsIGU2KSAgICAgICAgICAgIFwKKyAgICB7eygoYSkgPj4gMjQpICYgMHhGRiwg KChhKSA+PiAxNikgJiAweEZGLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICgo YSkgPj4gIDgpICYgMHhGRiwgKChhKSA+PiAgMCkgJiAweEZGLCAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICgoYikgPj4gIDgpICYgMHhGRiwgKChiKSA+PiAgMCkgJiAweEZGLCAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICgoYykgPj4gIDgpICYgMHhGRiwgKChj KSA+PiAgMCkgJiAweEZGLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICgoZCkg Pj4gIDgpICYgMHhGRiwgKChkKSA+PiAgMCkgJiAweEZGLCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgICBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2fX0KKworI2lmIGRl ZmluZWQoX19TVERDX1ZFUlNJT05fXykgPyBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwgOiBk ZWZpbmVkKF9fR05VQ19fKQorI2RlZmluZSBYRU5fREVGSU5FX1VVSUQoYSwgYiwgYywgZCwgZTEs IGUyLCBlMywgZTQsIGU1LCBlNikgICAgICAgICAgICAgXAorICAgICgoeGVuX3V1aWRfdClYRU5f REVGSU5FX1VVSURfKGEsIGIsIGMsIGQsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpKQorI2Vsc2UK KyNkZWZpbmUgWEVOX0RFRklORV9VVUlEKGEsIGIsIGMsIGQsIGUxLCBlMiwgZTMsIGU0LCBlNSwg ZTYpICAgICAgICAgICAgIFwKKyAgICBYRU5fREVGSU5FX1VVSURfKGEsIGIsIGMsIGQsIGUxLCBl MiwgZTMsIGU0LCBlNSwgZTYpCisjZW5kaWYgLyogX19TVERDX1ZFUlNJT05fXyAvIF9fR05VQ19f ICovCisKICNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCiAKIC8qIERlZmF1bHQgZGVmaW5pdGlv bnMgZm9yIG1hY3JvcyB1c2VkIGJ5IGRvbWN0bC9zeXNjdGwuICovCi0tIAoyLjE2LjQKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs