From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v10] xen: add para-virtual sound interface header file Date: Thu, 24 Nov 2016 18:01:17 +0200 Message-ID: <1480003277-14658-2-git-send-email-andr2000@gmail.com> References: <1480003277-14658-1-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1480003277-14658-1-git-send-email-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xensource.com Cc: embedded-pv-devel@lists.xenproject.org, lars.kurth@citrix.com, vlad.babchuk@gmail.com, ian.jackson@eu.citrix.com, dario.faggioli@citrix.com, tim@xen.org, iurii.konovalenko@globallogic.com, andrii.anisov@gmail.com, olekstysh@gmail.com, andr2000@gmail.com, al1img@gmail.com, david.vrabel@citrix.com, JBeulich@suse.com, julien.grall@arm.com, oleksandr.dmytryshyn@globallogic.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPE9sZWtzYW5kcl9BbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKVGhpcyBpcyB0aGUgQUJJIGZvciB0aGUgdHdvIGhhbHZlcyBvZiBhIHBhcmEtdmly dHVhbGl6ZWQKc291bmQgZHJpdmVyIHRvIGNvbW11bmljYXRlIHdpdGggZWFjaCB0byBvdGhlci4K ClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxPbGVrc2FuZHJfQW5kcnVz aGNoZW5rb0BlcGFtLmNvbT4KU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEdyeXRzb3YgPE9sZWtz YW5kcl9Hcnl0c292QGVwYW0uY29tPgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgRG15dHJ5c2h5 biA8b2xla3NhbmRyLmRteXRyeXNoeW5AZ2xvYmFsbG9naWMuY29tPgpTaWduZWQtb2ZmLWJ5OiBJ dXJpaSBLb25vdmFsZW5rbyA8aXVyaWkua29ub3ZhbGVua29AZ2xvYmFsbG9naWMuY29tPgoKLS0t CkNoYW5nZXMgc2luY2UgdjE6CiAqIHJlbW92ZWQgX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykp IGZyb20gYWxsIHN0cnVjdHVyZXMgZGVmaW5pdGlvbnMKCkNoYW5nZXMgc2luY2UgdjI6CiAqIHJl bW92ZWQgYWxsIEMgc3RydWN0dXJlcwogKiBhZGRlZCBwcm90b2NvbCBkZXNjcmlwdGlvbiBiZXR3 ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGRyaXZlcnMKCkNoYW5nZXMgc2luY2UgdjM6CiAqIGZp eGVkIHNvbWUgdHlwb3MKICogcmVuYW1lZCBYRU5TTkRfUENNX0ZPUk1BVF9GTE9BVF8qKiB0byBY RU5TTkRfUENNX0ZPUk1BVF9GMzJfKioKICogcmVuYW1lZCBYRU5TTkRfUENNX0ZPUk1BVF9GTE9B VDY0XyoqIHRvIFhFTlNORF9QQ01fRk9STUFUX0Y2NF8qKgogKiBhZGRlZCAnaWQnIGZpZWxkIHRv IHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBwYWNrZXRzCiAqIHJlbmFtZWQgJ3N0cmVhbV9pZCcg dG8gJ3N0cmVhbScgaW4gdGhlIHBhY2tldHMgZGVzY3JpcHRpb24KICogcmVuYW1lZCAncGNtX2Rh dGFfcmF0ZScgdG8gJ3BjbV9yYXRlJyBpbiB0aGUgcGFja2V0cyBkZXNjcmlwdGlvbgogKiByZW5h bWVkICdwY21fc3RyZWFtX3R5cGUnIHRvICdwY21fdHlwZScgaW4gdGhlIHBhY2tldHMgZGVzY3Jp cHRpb24KICogcmVtb3ZlZCAnc3RyZWFtX2lkJyBmaWVsZCBmcm9tIHRoZSByZXNwb25zZSBwYWNr ZXRzCgpDaGFuZ2VzIHNpbmNlIHY0OgogKiByZW5hbWVkICdzdHJlYW1faWQnIGJhY2sgdG8gdGhl IHRvICdzdHJlYW0nIGluIHRoZSBwYWNrZXRzIGRlc2NyaXB0aW9uCiAqIG1vdmVkICdpZCcgZmll bGQgdG8gdGhlIHVwcGVyIHBvc2l0aW9uIGluIHRoZSByZXNwb25zZSBwYWNrZXRzCgpDaGFuZ2Vz IHNpbmNlIHY1OgogKiBTbGlnaHRseSByZXdvcmtlZCByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMK ICogU2l6ZSBvZiB0aGUgcmVxdWVzdC9yZXNwb25zZSBwYWNrZXQgaXMgY2hhbmdlZCB0byB0aGUg NjQgYnl0ZXMKICogTm93IHBhcmFtZXRlcnMgZm9yIHRoZSBYRU5TTkRfT1BfU0VUX1ZPTFVNRS9Y RU5TTkRfT1BfR0VUX1ZPTFVNRSBhcmUKICAgcGFzc2VkIHZpYSBzaGFyZWQgcGFnZQogKiBBZGRl ZCBwYXJhbWV0ZXJzIGZvciB0aGUgWGVuQnVzIG5vZGVzIChub3cgZWFjaCBzdHJlYW0gY2FuIGJl IG1hcHBlZAogICB0byB0aGUgZGVmaW5lZCBzb3VuZCBkZXZpY2UgaW4gdGhlIGJhY2tlbmQgdXNp bmcgdGhvc2UgcGFyYW1ldGVycykKICogQWRkZWQgWGVuQnVzIHN0YXRlIGRpYWdyYW1zIGRlc2Ny aXB0aW9uCgpDaGFuZ2VzIHNpbmNlIHY2OgogKiBSZXdvcmtlZCBzdHJlYW1zIGRlc2NyaXB0aW9u ICBpbiB0aGUgQmFja2VuZCBYZW5CdXMgTm9kZXMKCkNoYW5nZXMgc2luY2Ugdjc6CiAqIHJlLXdv cmtlZCBiYWNrZW5kIGRldmljZSBwYXJhbWV0ZXJzIHRvIGJlIG1vcmUgZ2VuZXJpYyBhbmQgZmxl eGlibGUKICogZXh0ZW5kZWQgZnJvbnRlbmQgZGV2aWNlIHBhcmFtZXRlcnMKICogc2xpZ2h0bHkg dXBkYXRlZCBzdGF0ZSBtYWNoaW5lIGRlc2NyaXB0aW9uIGFkZGVkIG11dGUvdW5tdXRlIGNvbW1h bmRzCiAqIGFkZGVkIGNvbnN0YW50cyBmb3IgWGVuU3RvcmUgY29uZmlndXJhdGlvbiBzdHJpbmdz CiAgIChmaWVsZHMsIFBDTSBmb3JtYXRzIGV0Yy4pCiAqIGNoYW5nZWQgcmVxdWVzdC9yZXNwb25z ZSBzdHJ1Y3R1cmUgc2l6ZSBmcm9tIDY0IG9jdGV0cyB0byAxNgogKiBpbnRyb2R1Y2VkIGR5bmFt aWMgYnVmZmVyIGFsbG9jYXRpb24gaW5zdGVhZCBvZgogICBzdGF0aWMgWEVOU05EX01BWF9QQUdF U19QRVJfUkVRVUVTVAogKiByZS13b3JrZWQgb3BlbiByZXF1ZXN0IHRvIGFsbG93IGR5bmFtaWMg YnVmZmVyIGFsbG9jYXRpb24KICogcmUtd29ya2VkIHJlYWQvd3JpdGUvdm9sdW1lIHJlcXVlc3Rz LCBzbyB0aGV5IGRvbid0IHBhc3MgZ3JlZnM6CiAgIGJ1ZmZlciBmcm9tIHRoZSBvcGVuIHJlcXVl c3QgaXMgdXNlZCBmb3IgdGhlc2Ugb3BlcmF0aW9ucyB0byBwYXNzIGRhdGEKICogc3BlY2lmaWVk IHR5cGUgb2YgdGhlIHZvbHVtZSB2YWx1ZSB0byBiZSBhIHNpZ25lZCB2YWx1ZSBpbiBzdGVwcwog ICBvZiAwLjAwMSBkQm0sIHdoaWxlIDAgYmVpbmcgMGRCbS4KICogYWRkZWQgTGludXggaW5jbHVk ZSBmaWxlIHdpdGggc3RydWN0dXJlIGRlZmluaXRpb25zCgpDaGFuZ2VzIHNpbmNlIHY4OgogKiBj aGFuZ2VkIGZyb250ZW5kLWlkIHRvIGZyb250ZW5kX2lkCiAqIHNpbmdsZSBzb3VuZCBjYXJkIHN1 cHBvcnQsIGNvbmZpZ3VyZWQgd2l0aCBidW5jaCBvZgogICBkZXZpY2VzL3N0cmVhbXMKICogY2xh cmlmdWNhdGlvbiBtYWRlIG9uIHNhbXBsZSByYXRlcyBhbmQgZm9ybWF0cyBleHByZXNzZWQgYXMK ICAgZGVjaW1hbHMgdy9vIGFueSBwYXJ0aWN1bGFyIG9yZGVyaW5nCiAqIHB1dCBkZXNjcmlwdGlv biBvZiBtaWdyYXRpb24vZGlzY29ubmVjdGlvbiBzdGF0ZQogKiByZXBsYWNlZCBfX2F0dHJpYnV0 ZV9fKChwYWNrZWQpKSB0byBfX3BhY2tlZAogKiBjaGFuZ2VkIHBhZGRpbmcgb2YgcmluZyBzdHJ1 Y3R1cmVzIHRvIDY0IHRvIGZpdCBjYWNoZSBsaW5lCiAqIHJlbW92ZWVkICNpZmRlZiBfX0tFUk5F TAogKiBleHBsaWNpdGx5IHN0YXRlZCB3aGljaCBpbmRpY2VzIGluIFhlblN0b3JlIGNvbmZpZ3Vy YXRpb24KICAgYXJlIGNvbnRpZ3VvdXMKICogYWRkZWQgZGVzY3JpcHRpb24gdG8gd2hhdCBmcm9u dGVuZCdzIGRlZmF1bHRzIGFyZQogKiBtYWRlIG5hbWVzIG9mIHZpcnR1YWwgY2FyZC9kZXZpY2Vz IG9wdGlvbmFsCiAqIHJlbW92ZWQgUENNX0ZPUk1BVF9TUEVDSUFMCiAqIGNoYW5nZWQgdm9sdW1l IHVuaXRzIGZyb20gZEJtIHRvIGRCCgpDaGFuZ2VzIHNpbmNlIHY5OgogKiByZW1vdmVkIHNuZGlm X2xpbnV4LmgKICogbW92ZWQgYWxsIHN0cnVjdHVyZXMgZnJvbSBzbmRpZl9saW51eC5oIHRvIHNu ZGlmLmgKICogc3RydWN0dXJlcyBwYWRkZWQgd2hlcmUgbmVlZGVkCiAqIGZpeGVkIEh6IGNvbW1l bnQKLS0tCiBpbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vc25kaWYuaCB8IDcwMCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3MDAgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2ludGVyZmFjZS9pby9zbmRp Zi5oCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL3NuZGlmLmggYi9pbmNs dWRlL3hlbi9pbnRlcmZhY2UvaW8vc25kaWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi44MmE2NTViCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNl L2lvL3NuZGlmLmgKQEAgLTAsMCArMSw3MDAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAq IHNuZGlmLmgKKyAqCisgKiBVbmlmaWVkIHNvdW5kLWRldmljZSBJL08gaW50ZXJmYWNlIGZvciBY ZW4gZ3Vlc3QgT1Nlcy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1 ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNl bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU SEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUK KyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s IERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBE RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUg R2xvYmFsTG9naWMgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDE2IEVQQU0gU3lzdGVtcyBJbmMu CisgKgorICogQXV0aG9yczogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPE9sZWtzYW5kcl9BbmRy dXNoY2hlbmtvQGVwYW0uY29tPgorICogICAgICAgICAgT2xla3NhbmRyIEdyeXRzb3YgPE9sZWtz YW5kcl9Hcnl0c292QGVwYW0uY29tPgorICogICAgICAgICAgT2xla3NhbmRyIERteXRyeXNoeW4g PG9sZWtzYW5kci5kbXl0cnlzaHluQGdsb2JhbGxvZ2ljLmNvbT4KKyAqICAgICAgICAgIEl1cmlp IEtvbm92YWxlbmtvIDxpdXJpaS5rb25vdmFsZW5rb0BnbG9iYWxsb2dpYy5jb20+CisgKi8KKwor I2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fWEVOU05EX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNf SU9fWEVOU05EX0hfXworCisvKgorICogRnJvbnQtPmJhY2sgbm90aWZpY2F0aW9uczogV2hlbiBl bnF1ZXVpbmcgYSBuZXcgcmVxdWVzdCwgc2VuZGluZyBhCisgKiBub3RpZmljYXRpb24gY2FuIGJl IG1hZGUgY29uZGl0aW9uYWwgb24gcmVxX2V2ZW50IChpLmUuLCB0aGUgZ2VuZXJpYworICogaG9s ZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3JvcykuIEJhY2tlbmRzIG11 c3Qgc2V0CisgKiByZXFfZXZlbnQgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5B TF9DSEVDS19GT1JfUkVRVUVTVFMoKSkuCisgKgorICogQmFjay0+ZnJvbnQgbm90aWZpY2F0aW9u czogV2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVzcG9uc2UsIHNlbmRpbmcgYQorICogbm90aWZpY2F0 aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHJzcF9ldmVudCAoaS5lLiwgdGhlIGdlbmVy aWMKKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNyb3MpLiBG cm9udGVuZHMgbXVzdCBzZXQKKyAqIHJzcF9ldmVudCBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2lu ZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVNQT05TRVMoKSkuCisgKi8KKworLyoKKyAqIEZlYXR1 cmUgYW5kIFBhcmFtZXRlciBOZWdvdGlhdGlvbgorICogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisgKiBUaGUgdHdvIGhhbHZlcyBvZiBhIFBhcmEtdmlydHVhbCBzb3VuZCBjYXJk IGRyaXZlciB1dGlsaXplIG5vZGVzIHdpdGhpbiB0aGUKKyAqIFhlblN0b3JlIHRvIGNvbW11bmlj YXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVnb3RpYXRlIG9wZXJhdGluZyBwYXJhbWV0ZXJzLgor ICogVGhpcyBzZWN0aW9uIGVudW1lcmF0ZXMgdGhlc2Ugbm9kZXMgd2hpY2ggcmVzaWRlIGluIHRo ZSByZXNwZWN0aXZlIGZyb250IGFuZAorICogYmFja2VuZCBwb3J0aW9ucyBvZiB0aGUgWGVuU3Rv cmUsIGZvbGxvd2luZyB0aGUgWGVuQnVzIGNvbnZlbnRpb24uCisgKgorICogQWxsIGRhdGEgaW4g dGhlIFhlblN0b3JlIGlzIHN0b3JlZCBhcyBzdHJpbmdzLiAgTm9kZXMgc3BlY2lmeWluZyBudW1l cmljCisgKiB2YWx1ZXMgYXJlIGVuY29kZWQgaW4gZGVjaW1hbC4gIEludGVnZXIgdmFsdWUgcmFu Z2VzIGxpc3RlZCBiZWxvdyBhcmUKKyAqIGV4cHJlc3NlZCBhcyBmaXhlZCBzaXplZCBpbnRlZ2Vy IHR5cGVzIGNhcGFibGUgb2Ygc3RvcmluZyB0aGUgY29udmVyc2lvbgorICogb2YgYSBwcm9wZXJs eSBmb3JtYXRlZCBub2RlIHN0cmluZywgd2l0aG91dCBsb3NzIG9mIGluZm9ybWF0aW9uLgorICoK KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFj a2VuZCBYZW5CdXMgTm9kZXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkcmVzc2luZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqCisgKiBJbmRpY2VzIHVzZWQgdG8gYWRkcmVzcyBmcm9udGVuZHMsIGRy aXZlciBpbnN0YW5jZXMsIGNhcmRzLAorICogZGV2aWNlcyBhbmQgc3RyZWFtcy4KKyAqCisgKiBm cm9udGVuZF9pZAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBE b21haW4gSUQgb2YgdGhlIHNvdW5kIGZyb250ZW5kLgorICoKKyAqIGRydl9pZHgKKyAqICAgICAg VmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgWmVybyBiYXNlZCBjb250aWd1b3Vz IGluZGV4IG9mIHRoZSB2aXJ0dWFsaXplZCBzb3VuZCBkcml2ZXIgaW5zdGFuY2UgaW4KKyAqICAg ICAgdGhpcyBkb21haW4uIE11bHRpcGxlIFBWIGRyaXZlcnMgYXJlIGFsbG93ZWQgaW4gdGhlIGRv bWFpbgorICogICAgICBhdCB0aGUgc2FtZSB0aW1lLgorICoKKyAqIGRldl9pZAorICogICAgICBW YWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBVbmlxdWUgZGV2aWNlIElELgorICog ICAgICBEb2Vzbid0IGhhdmUgdG8gYmUgemVybyBiYXNlZCBhbmQvb3IgdG8gYmUgY29udGlndW91 cy4KKyAqCisgKiBzdHJlYW1faWR4CisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAq CisgKiAgICAgIFplcm8gYmFzZWQgY29udGlndW91cyBpbmRleCBvZiB0aGUgc3RyZWFtIG9mIHRo ZSBkZXZpY2UuCisgKgorICogRXhhbXBsZSBmb3IgdGhlIGZyb250ZW5kIHJ1bm5pbmcgaW4gZG9t YWluIDUsIGluc3RhbmNlIG9mIHRoZSBkcml2ZXIKKyAqIGluIHRoZSBmcm9udCBpcyAwIChzaW5n bGUgb3IgZmlyc3QgUFYgZHJpdmVyKSwgZGV2aWNlIGlkIDIsCisgKiBmaXJzdCBzdHJlYW0gKDAp OgorICogL2xvY2FsL2RvbWFpbi88ZnJvbnRlbmRfaWQ+L2RldmljZS92c25kLzxkcnZfaWR4Pi8K KyAqICAgICAgICAgZGV2aWNlLzxkZXZfaWQ+L3N0cmVhbS88c3RyZWFtX2lkeD4vdHlwZSA9ICJw IgorICogL2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAvZGV2aWNlLzIvc3RyZWFtLzAvdHlw ZSA9ICJwIgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQQ00gc2V0dGlu Z3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBFdmVyeSB2aXJ0dWFs aXplZCBzb3VuZCBmcm9udGVuZCBoYXMgc2V0IG9mIGRldmljZXMgYW5kIHN0cmVhbXMsIGVhY2gK KyAqIGlzIGluZGl2aWR1YWxseSBjb25maWd1cmVkLiBQYXJ0IG9mIHRoZSBQQ00gY29uZmlndXJh dGlvbiBjYW4gYmUgZGVmaW5lZCBhdAorICogaGlnaGVyIGxldmVsIGFuZCBiZSBmdWxseSBvciBw YXJ0aWFsbHkgcmUtdXNlZCBieSB0aGUgdW5kZXJseWluZyBsYXllcnMuCisgKiBUaGVzZSBjb25m aWd1cmF0aW9uIHZhbHVlcyBhcmU6CisgKiAgbyBudW1iZXIgb2YgY2hhbm5lbHMgKG1pbi9tYXgp CisgKiAgbyBzdXBwb3J0ZWQgc2FtcGxlIHJhdGVzCisgKiAgbyBzdXBwb3J0ZWQgc2FtcGxlIGZv cm1hdHMuCisgKiBFLmcuIG9uZSBjYW4gZGVmaW5lIHRoZXNlIHZhbHVlcyBmb3IgdGhlIHdob2xl IGRyaXZlciwgZGV2aWNlIG9yIHN0cmVhbS4KKyAqIEV2ZXJ5IHVuZGVybHlpbmcgbGF5ZXIgaW4g dHVybiBjYW4gcmUtZGVmaW5lIHNvbWUgb3IgYWxsIG9mIHRoZW0gdG8gYmV0dGVyCisgKiBmaXQg aXRzIG5lZWRzLiBGb3IgZXhhbXBsZSwgZHJpdmVyIG1heSBkZWZpbmUgbnVtYmVyIG9mIGNoYW5u ZWxzIHRvIGJlCisgKiBpbiBbMTsgOF0gcmFuZ2UsIGFuZCBzb21lIHBhcnRpY3VsYXIgc3RyZWFt IG1heSBiZSBsaW1pdGVkIHRvIFsxOyAyXSBvbmx5LgorICogVGhlIHJ1bGUgaXMgdGhhdCB0aGUg dW5kZXJseWluZyBsYXllciBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSB1cHBlciBsYXllcgorICog cmFuZ2UuCisgKgorICogTm90ZTogaWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIG5vdCBkZWZpbmVk IHRoZW4gUFYgZHJpdmVyIHNob3VsZCB1c2UKKyAqIGl0cyBkZWZhdWx0IHZhbHVlcyBpbnN0ZWFk LgorICoKKyAqIGNoYW5uZWxzLW1pbgorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+Cisg KgorICogICAgICBUaGUgbWluaW11bSBhbW91bnQgb2YgY2hhbm5lbHMgdGhhdCBpcyBzdXBwb3J0 ZWQuCisgKiAgICAgIE11c3QgYmUgYXQgbGVhc3QgMS4gSWYgbm90IGRlZmluZWQgdGhlbiB1c2Ug ZnJvbnRlbmQncyBkZWZhdWx0LgorICoKKyAqIGNoYW5uZWxzLW1heAorICogICAgICBWYWx1ZXM6 ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBUaGUgbWF4aW11bSBhbW91bnQgb2YgY2hhbm5l bHMgdGhhdCBpcyBzdXBwb3J0ZWQuCisgKiAgICAgIE11c3QgYmUgYXQgbGVhc3QgPGNoYW5uZWxz LW1pbj4uIElmIG5vdCBkZWZpbmVkIHRoZW4gdXNlIGZyb250ZW5kJ3MKKyAqICAgICAgZGVmYXVs dC4KKyAqCisgKiBzYW1wbGUtcmF0ZXMKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxsaXN0IG9m IHVpbnRzPgorICoKKyAqICAgICAgTGlzdCBvZiBzdXBwb3J0ZWQgc2FtcGxlIHJhdGVzIHNlcGFy YXRlZCBieSBYRU5TTkRfTElTVF9TRVBBUkFUT1IuCisgKiAgICAgIElmIG5vdCBkZWZpbmVkIHRo ZW4gdXNlIGZyb250ZW5kJ3MgZGVmYXVsdC4gU2FtcGxlIHJhdGVzIGFyZSBleHByZXNzZWQKKyAq ICAgICAgYXMgYSBsaXN0IG9mIGRlY2ltYWwgdmFsdWVzIHcvbyBhbnkgb3JkZXJpbmcgcmVxdWly ZW1lbnQuCisgKgorICogc2FtcGxlLWZvcm1hdHMKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxs aXN0IG9mIFhFTlNORF9QQ01fRk9STUFUX1hYWF9TVFI+CisgKgorICogICAgICBMaXN0IG9mIHN1 cHBvcnRlZCBzYW1wbGUgZm9ybWF0cyBzZXBhcmF0ZWQgYnkgWEVOU05EX0xJU1RfU0VQQVJBVE9S LgorICogICAgICBJZiBub3QgZGVmaW5lZCB0aGVuIHVzZSBmcm9udGVuZCdzIGRlZmF1bHQuCisg KgorICogYnVmZmVyLXNpemUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAq ICAgICAgVGhlIG1heGltdW0gc2l6ZSBpbiBvY3RldHMgb2YgdGhlIGJ1ZmZlciB0byBhbGxvY2F0 ZSBwZXIgc3RyZWFtLgorICoKKyAqIEV4YW1wbGUgY29uZmlndXJhdGlvbjoKKyAqCisgKiBEcml2 ZXIgY29uZmlndXJhdGlvbiB1c2VkIGJ5IGFsbCBzdHJlYW1zOgorICogL2xvY2FsL2RvbWFpbi81 L2RldmljZS92c25kLzAvc2FtcGxlLWZvcm1hdHMgPSAiczg7dTg7czE2X2xlO3MxNl9iZSIKKyAq IFN0cmVhbSBvdmVycmlkZXMgc2FtcGxlIHJhdGVzIHN1cHBvcnRlZDoKKyAqIC9sb2NhbC9kb21h aW4vNS9kZXZpY2UvdnNuZC8wL2RldmljZS8yL3N0cmVhbS8wL3NhbXBsZS1yYXRlcyA9CisgKiAg ICAgICAgIjgwMDA7MjIwNTA7NDQxMDA7NDgwMDAiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBWaXJ0dWFsIHNvdW5kIGNhcmQgc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqIHNob3J0LW5hbWUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxjaGFyWzMyXT4KKyAq CisgKiAgICAgIFNob3J0IG5hbWUgb2YgdGhlIHZpcnR1YWwgc291bmQgY2FyZC4gT3B0aW9uYWwu CisgKgorICogbG9uZy1uYW1lCisgKiAgICAgIFZhbHVlczogICAgICAgICA8Y2hhcls4MF0+Cisg KgorICogICAgICBMb25nIG5hbWUgb2YgdGhlIHZpcnR1YWwgc291bmQgY2FyZC4gT3B0aW9uYWwu CisgKgorICogRm9yIGV4YW1wbGUsCisgKiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9z aG9ydC1uYW1lID0gIlZpcnR1YWwgYXVkaW8iCisgKiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3Zz bmQvMC9sb25nLW5hbWUgPQorICogICAgICAgICAiVmlydHVhbCBhdWRpbyBhdCBjZW50ZXIgc3Rh Y2siCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEZXZpY2Ugc2V0dGluZ3Mg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIG5hbWUKKyAqICAgICAgVmFsdWVz OiAgICAgICAgIDxjaGFyWzgwXT4KKyAqCisgKiAgICAgIE5hbWUgb2YgdGhlIHNvdW5kIGRldmlj ZSB3aXRoaW4gdGhlIHZpcnR1YWwgc291bmQgY2FyZC4gT3B0aW9uYWwuCisgKgorICogRm9yIGV4 YW1wbGUsCisgKiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9kZXZpY2UvMC9uYW1lID0g IkdlbmVyYWwgYW5hbG9nIgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3Ry ZWFtIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiB0eXBl CisgKiAgICAgIFZhbHVlczogICAgICAgICAicCIsICJjIgorICoKKyAqICAgICAgU3RyZWFtIHR5 cGU6ICJwIiAtIHBsYXliYWNrIHN0cmVhbSwgImMiIC0gY2FwdHVyZSBzdHJlYW0KKyAqCisgKiAg ICAgIElmIGJvdGggY2FwdHVyZSBhbmQgcGxheWJhY2sgYXJlIG5lZWRlZCB0aGVuIHR3byBzdHJl YW1zIG5lZWQgdG8gYmUKKyAqICAgICAgZGVmaW5lZCB1bmRlciB0aGUgc2FtZSBkZXZpY2UuIEZv ciBleGFtcGxlLAorICogICAgICAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9kZXZpY2Uv MC9zdHJlYW0vMC90eXBlID0gInAiCisgKiAgICAgIC9sb2NhbC9kb21haW4vNS9kZXZpY2UvdnNu ZC8wL2RldmljZS8wL3N0cmVhbS8xL3R5cGUgPSAiYyIKKyAqCisgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kIFhlbkJ1cyBOb2Rlcwor ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXF1 ZXN0IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog VGhlc2UgYXJlIHBlciBzdHJlYW0uCisgKgorICogZXZlbnQtY2hhbm5lbAorICogICAgICBWYWx1 ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgWGVu IGV2ZW50IGNoYW5uZWwgdXNlZCB0byBzaWduYWwgYWN0aXZpdHkKKyAqICAgICAgaW4gdGhlIHJp bmcgYnVmZmVyLgorICoKKyAqIHJpbmctcmVmCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWlu dD4KKyAqCisgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Np b24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAorICogICAgICBhIHNvbGUgcGFnZSBpbiBhIHNpbmds ZSBwYWdlIHNpemVkIHJpbmcgYnVmZmVyLgorICoKKyAqIGluZGV4CisgKiAgICAgIFZhbHVlczog ICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIEFmdGVyIHN0cmVhbSBpbml0aWFsaXphdGlvbiBp dCBpcyBhc3NpZ25lZCBhIHVuaXF1ZSBJRCAod2l0aGluIHRoZSBmcm9udAorICogICAgICBkcml2 ZXIpLCBzbyBldmVyeSBzdHJlYW0gb2YgdGhlIGZyb250ZW5kIGNhbiBiZSBpZGVudGlmaWVkIGJ5 IHRoZQorICogICAgICBiYWNrZW5kIGJ5IHRoaXMgSUQuIFRoaXMgaXMgbm90IGVxdWFsIHRvIHN0 cmVhbV9pZHggYXMgdGhlIGxhdGVyIGlzCisgKiAgICAgIHplcm8gYmFzZWQgd2l0aGluIGEgZGV2 aWNlLCBidXQgdGhpcyBpbmRleCBpcyBjb250aWd1b3VzIHdpdGhpbiB0aGUKKyAqICAgICAgZHJp dmVyLgorICovCisKKy8qCisgKiBTVEFURSBESUFHUkFNUworICoKKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0dXAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisg KiBUb29sIHN0YWNrIGNyZWF0ZXMgZnJvbnQgYW5kIGJhY2sgc3RhdGUgbm9kZXMgd2l0aCBpbml0 aWFsIHN0YXRlCisgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4KKyAqIFRvb2wgc3RhY2sgY3Jl YXRlcyBhbmQgc2V0cyB1cCBmcm9udGVuZCBzb3VuZCBjb25maWd1cmF0aW9uIG5vZGVzIHBlciBk b21haW4uCisgKgorICogRnJvbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sK KyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CisgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyAgICAgICAg ICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcKKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbyBRdWVyeSBiYWNrZW5kIGRldmljZSBpZGVudGlmaWNhdGlvbgorICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuCisgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gT3BlbiBhbmQgdmFsaWRhdGUgYmFja2Vu ZCBkZXZpY2UuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBWCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WGVuYnVzU3RhdGVJbml0V2FpdAorICoKKyAqIG8gUXVlcnkgZnJvbnRlbmQgY29uZmlndXJhdGlv bgorICogbyBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZQorICogICBldmVudCBjaGFubmVscyBwZXIg Y29uZmlndXJlZAorICogICBwbGF5YmFjay9jYXB0dXJlIHN0cmVhbS4KKyAqIG8gUHVibGlzaCB0 cmFuc3BvcnQgcGFyYW1ldGVycworICogICB0aGF0IHdpbGwgYmUgaW4gZWZmZWN0IGR1cmluZwor ICogICB0aGlzIGNvbm5lY3Rpb24uCisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAg IHwKKyAqICAgICAgICAgICAgICBWCisgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2VkCisgKgorICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIFF1ZXJ5IGZyb250ZW5kIHRy YW5zcG9ydCBwYXJhbWV0ZXJzLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvIENvbm5lY3QgdG8gdGhlIGV2ZW50IGNoYW5uZWxzLgorICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgorICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ29ubmVjdGVkCisgKgorICog IG8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIE9TCisgKiAgdmlydHVhbCBzb3VuZCBkZXZpY2UgaW5z dGFuY2VzCisgKiAgYXMgcGVyIGNvbmZpZ3VyYXRpb24uCisgKiAgICAgICAgICAgICAgfAorICog ICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICBWCisgKiBYZW5idXNTdGF0ZUNvbm5lY3Rl ZAorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0 ZVVua25vd24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNT dGF0ZUNsb3NlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1 c1N0YXRlQ2xvc2luZworICogbyBSZW1vdmUgdmlydHVhbCBzb3VuZCBkZXZpY2UKKyAqIG8gUmVt b3ZlIGV2ZW50IGNoYW5uZWxzCisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIHwK KyAqICAgICAgICAgICAgICBWCisgKiBYZW5idXNTdGF0ZUNsb3NlZAorICoKKyAqLworCisvKgor ICogUENNIEZPUk1BVFMKKyAqCisgKiBYRU5TTkRfUENNX0ZPUk1BVF88Zm9ybWF0PltfPGVuZGlh bj5dCisgKgorICogZm9ybWF0OiA8Uy9VL0Y+PGJpdHM+IG9yIDxuYW1lPgorICogICAgIFMgLSBz aWduZWQsIFUgLSB1bnNpZ25lZCwgRiAtIGZsb2F0CisgKiAgICAgYml0cyAtIDgsIDE2LCAyNCwg MzIKKyAqICAgICBuYW1lIC0gTVVfTEFXLCBHU00sIGV0Yy4KKyAqCisgKiBlbmRpYW46IDxMRS9C RT4sIG1heSBiZSBhYnNlbnQKKyAqICAgICBMRSAtIExpdHRsZSBlbmRpYW4sIEJFIC0gQmlnIGVu ZGlhbgorICovCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1M4ICAgICAgICAgICAgMAorI2Rl ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VOCAgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOU05EX1BD TV9GT1JNQVRfUzE2X0xFICAgICAgICAyCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9C RSAgICAgICAgMworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMTZfTEUgICAgICAgIDQKKyNk ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0JFICAgICAgICA1CisjZGVmaW5lIFhFTlNORF9Q Q01fRk9STUFUX1MyNF9MRSAgICAgICAgNgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMjRf QkUgICAgICAgIDcKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTI0X0xFICAgICAgICA4Cisj ZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9CRSAgICAgICAgOQorI2RlZmluZSBYRU5TTkRf UENNX0ZPUk1BVF9TMzJfTEUgICAgICAgIDEwCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1Mz Ml9CRSAgICAgICAgMTEKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTMyX0xFICAgICAgICAx MgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMzJfQkUgICAgICAgIDEzCisjZGVmaW5lIFhF TlNORF9QQ01fRk9STUFUX0YzMl9MRSAgICAgICAgMTQgLyogNC1ieXRlIGZsb2F0LCBJRUVFLTc1 NCAzMi1iaXQsICovCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0YzMl9CRSAgICAgICAgMTUg LyogcmFuZ2UgLTEuMCB0byAxLjAgICAgICAgICAgICAgICovCisjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX0Y2NF9MRSAgICAgICAgMTYgLyogOC1ieXRlIGZsb2F0LCBJRUVFLTc1NCA2NC1iaXQs ICovCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2NF9CRSAgICAgICAgMTcgLyogcmFuZ2Ug LTEuMCB0byAxLjAgICAgICAgICAgICAgICovCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lF Qzk1OF9TVUJGUkFNRV9MRSAxOAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JRUM5NThfU1VC RlJBTUVfQkUgMTkKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfTVVfTEFXICAgICAgICAyMAor I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9BX0xBVyAgICAgICAgIDIxCisjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX0lNQV9BRFBDTSAgICAgMjIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRf TVBFRyAgICAgICAgICAyMworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9HU00gICAgICAgICAg IDI0CisKKy8qCisgKiBSRVFVRVNUIENPREVTLgorICovCisjZGVmaW5lIFhFTlNORF9PUF9PUEVO ICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBYRU5TTkRfT1BfQ0xPU0UgICAgICAgICAgICAg ICAgIDEKKyNkZWZpbmUgWEVOU05EX09QX1JFQUQgICAgICAgICAgICAgICAgICAyCisjZGVmaW5l IFhFTlNORF9PUF9XUklURSAgICAgICAgICAgICAgICAgMworI2RlZmluZSBYRU5TTkRfT1BfU0VU X1ZPTFVNRSAgICAgICAgICAgIDQKKyNkZWZpbmUgWEVOU05EX09QX0dFVF9WT0xVTUUgICAgICAg ICAgICA1CisjZGVmaW5lIFhFTlNORF9PUF9NVVRFICAgICAgICAgICAgICAgICAgNgorI2RlZmlu ZSBYRU5TTkRfT1BfVU5NVVRFICAgICAgICAgICAgICAgIDcKKworLyoKKyAqIFhFTlNUT1JFIEZJ RUxEIEFORCBQQVRIIE5BTUUgU1RSSU5HUywgSEVMUEVSUy4KKyAqLworI2RlZmluZSBYRU5TTkRf RFJJVkVSX05BTUUgICAgICAgICAgICAgICAgICAgInZzbmQiCisKKyNkZWZpbmUgWEVOU05EX0xJ U1RfU0VQQVJBVE9SICAgICAgICAgICAgICAgICI7IgorLyogUGF0aCBlbnRyaWVzICovCisjZGVm aW5lIFhFTlNORF9QQVRIX0RFVklDRSAgICAgICAgICAgICAgICAgICAiZGV2aWNlIgorI2RlZmlu ZSBYRU5TTkRfUEFUSF9TVFJFQU0gICAgICAgICAgICAgICAgICAgInN0cmVhbSIKKy8qIEZpZWxk IG5hbWVzICovCisjZGVmaW5lIFhFTlNORF9GSUVMRF9WQ0FSRF9TSE9SVF9OQU1FICAgICAgICAi c2hvcnQtbmFtZSIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1ZDQVJEX0xPTkdfTkFNRSAgICAgICAg ICJsb25nLW5hbWUiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9SSU5HX1JFRiAgICAgICAgICAgICAg ICAicmluZy1yZWYiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9FVlRfQ0hOTCAgICAgICAgICAgICAg ICAiZXZlbnQtY2hhbm5lbCIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0RFVklDRV9OQU1FICAgICAg ICAgICAgICJuYW1lIgorI2RlZmluZSBYRU5TTkRfRklFTERfVFlQRSAgICAgICAgICAgICAgICAg ICAgInR5cGUiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9TVFJFQU1fSU5ERVggICAgICAgICAgICAi aW5kZXgiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9DSEFOTkVMU19NSU4gICAgICAgICAgICAiY2hh bm5lbHMtbWluIgorI2RlZmluZSBYRU5TTkRfRklFTERfQ0hBTk5FTFNfTUFYICAgICAgICAgICAg ImNoYW5uZWxzLW1heCIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1NBTVBMRV9SQVRFUyAgICAgICAg ICAgICJzYW1wbGUtcmF0ZXMiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9TQU1QTEVfRk9STUFUUyAg ICAgICAgICAic2FtcGxlLWZvcm1hdHMiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9CVUZGRVJfU0la RSAgICAgICAgICAgICAiYnVmZmVyLXNpemUiCisKKy8qIFN0cmVhbSB0eXBlIGZpZWxkIHZhbHVl cy4gKi8KKyNkZWZpbmUgWEVOU05EX1NUUkVBTV9UWVBFX1BMQVlCQUNLICAgICAgICAgICJwIgor I2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVfQ0FQVFVSRSAgICAgICAgICAgImMiCisvKiBTYW1w bGUgcmF0ZSBtYXggc3RyaW5nIGxlbmd0aCAqLworI2RlZmluZSBYRU5TTkRfU0FNUExFX1JBVEVf TUFYX0xFTiAgICAgICAgICAgIDYKKy8qIFNhbXBsZSBmb3JtYXQgZmllbGQgdmFsdWVzICovCisj ZGVmaW5lIFhFTlNORF9TQU1QTEVfRk9STUFUX01BWF9MRU4gICAgICAgICAyNAorCisjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX1M4X1NUUiAgICAgICAgICAgICAgICAgInM4IgorI2RlZmluZSBY RU5TTkRfUENNX0ZPUk1BVF9VOF9TVFIgICAgICAgICAgICAgICAgICJ1OCIKKyNkZWZpbmUgWEVO U05EX1BDTV9GT1JNQVRfUzE2X0xFX1NUUiAgICAgICAgICAgICAiczE2X2xlIgorI2RlZmluZSBY RU5TTkRfUENNX0ZPUk1BVF9TMTZfQkVfU1RSICAgICAgICAgICAgICJzMTZfYmUiCisjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX1UxNl9MRV9TVFIgICAgICAgICAgICAgInUxNl9sZSIKKyNkZWZp bmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0JFX1NUUiAgICAgICAgICAgICAidTE2X2JlIgorI2Rl ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMjRfTEVfU1RSICAgICAgICAgICAgICJzMjRfbGUiCisj ZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9CRV9TVFIgICAgICAgICAgICAgInMyNF9iZSIK KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTI0X0xFX1NUUiAgICAgICAgICAgICAidTI0X2xl IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRfQkVfU1RSICAgICAgICAgICAgICJ1MjRf YmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MzMl9MRV9TVFIgICAgICAgICAgICAgInMz Ml9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0JFX1NUUiAgICAgICAgICAgICAi czMyX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMzJfTEVfU1RSICAgICAgICAgICAg ICJ1MzJfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9CRV9TVFIgICAgICAgICAg ICAgInUzMl9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0xFX1NUUiAgICAgICAg ICAgICAiZmxvYXRfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0YzMl9CRV9TVFIgICAg ICAgICAgICAgImZsb2F0X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRfTEVfU1RS ICAgICAgICAgICAgICJmbG9hdDY0X2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRf QkVfU1RSICAgICAgICAgICAgICJmbG9hdDY0X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1B VF9JRUM5NThfU1VCRlJBTUVfTEVfU1RSICJpZWM5NThfc3ViZnJhbWVfbGUiCisjZGVmaW5lIFhF TlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9CRV9TVFIgImllYzk1OF9zdWJmcmFtZV9i ZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfTVVfTEFXX1NUUiAgICAgICAgICAgICAibXVf bGF3IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9BX0xBV19TVFIgICAgICAgICAgICAgICJh X2xhdyIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSU1BX0FEUENNX1NUUiAgICAgICAgICAi aW1hX2FkcGNtIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NUEVHX1NUUiAgICAgICAgICAg ICAgICJtcGVnIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9HU01fU1RSICAgICAgICAgICAg ICAgICJnc20iCisKKy8qCisgKiBTVEFUVVMgUkVUVVJOIENPREVTLgorICovCisgLyogT3BlcmF0 aW9uIGZhaWxlZCBmb3Igc29tZSB1bnNwZWNpZmllZCByZWFzb24gKGUuIGcuIC1FSU8pLiAqLwor I2RlZmluZSBYRU5TTkRfUlNQX0VSUk9SICAgICAgICAgICAgICAgICAoLTEpCisgLyogT3BlcmF0 aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuICovCisjZGVmaW5lIFhFTlNORF9SU1BfT0tBWSAg ICAgICAgICAgICAgICAgIDAKKworLyoKKyAqIERlc2NyaXB0aW9uIG9mIHRoZSBwcm90b2NvbCBi ZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGRyaXZlci4KKyAqCisgKiBUaGUgdHdvIGhhbHZl cyBvZiBhIFBhcmEtdmlydHVhbCBzb3VuZCBkcml2ZXIgY29tbXVuaWNhdGVzIHdpdGgKKyAqIGVh Y2ggb3RoZXIgdXNpbmcgYSBzaGFyZWQgcGFnZSBhbmQgYW4gZXZlbnQgY2hhbm5lbC4KKyAqIFNo YXJlZCBwYWdlIGNvbnRhaW5zIGEgcmluZyB3aXRoIHJlcXVlc3QvcmVzcG9uc2UgcGFja2V0cy4K KyAqCisgKgorICogQWxsIHJlcXVlc3QgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQg b2N0ZXRzKQorICoKKyAqCisgKiBSZXF1ZXN0IG9wZW4gLSBvcGVuIGEgUENNIHN0cmVhbSBmb3Ig cGxheWJhY2sgb3IgY2FwdHVyZToKKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAg ICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9w ZXJhdGlvbiAgICB8ICAgICBzdHJlYW1faWR4ICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwY21fcmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICBwY21fZm9ybWF0ICAgICB8ICBwY21fY2hhbm5l bHMgICB8ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZfZGlyZWN0b3J5X3N0YXJ0 ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2 YWx1ZSwgZWNob2VkIGluIHJlc3BvbnNlCisgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRf T1BfT1BFTgorICogc3RyZWFtX2lkeCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBzdHJlYW0gKCJz dHJlYW1zX2lkeCIgWGVuU3RvcmUgZW50cnkKKyAqICAgb2YgdGhlIHN0cmVhbSkKKyAqIHBjbV9y YXRlIC0gdWludDMyX3QsIHN0cmVhbSBkYXRhIHJhdGUsIEh6CisgKiBwY21fZm9ybWF0IC0gdWlu dDhfdCwgWEVOU05EX1BDTV9GT1JNQVRfWFhYIHZhbHVlCisgKiBwY21fY2hhbm5lbHMgLSB1aW50 OF90LCBudW1iZXIgb2YgY2hhbm5lbHMgb2YgdGhpcyBzdHJlYW0KKyAqIGdyZWZfZGlyZWN0b3J5 X3N0YXJ0IC0gZ3JhbnRfcmVmX3QsIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBzaGFyZWQgcGFn ZQorICogICBkZXNjcmliaW5nIHNoYXJlZCBidWZmZXIgcmVmZXJlbmNlcy4gQXQgbGVhc3Qgb25l IHBhZ2UgZXhpc3RzLiBJZiBzaGFyZWQKKyAqICAgYnVmZmVyIHNpemUgZXhjZWVkcyB3aGF0IGNh biBiZSBhZGRyZXNzZWQgYnkgdGhpcyBzaW5nbGUgcGFnZSwgdGhlbgorICogICByZWZlcmVuY2Ug dG8gdGhlIG5leHQgcGFnZSBtdXN0IGJlIHN1cHBsaWVkIChncmVmX2Rpcl9uZXh0X3BhZ2UgYmVs b3cKKyAqICAgaXMgbm90IE5VTEwpCisgKi8KKworc3RydWN0IHhlbnNuZF9vcGVuX3JlcSB7CisJ dWludDMyX3QgcGNtX3JhdGU7IC8qIGluIEh6ICovCisJdWludDhfdCBwY21fZm9ybWF0OworCXVp bnQ4X3QgcGNtX2NoYW5uZWxzOworCXVpbnQxNl90IF9fcmVzZXJ2ZWQwOworCWdyYW50X3JlZl90 IGdyZWZfZGlyZWN0b3J5X3N0YXJ0OworfTsKKworLyoKKyAqIFNoYXJlZCBwYWdlIGZvciBYRU5T TkRfT1BfT1BFTiBidWZmZXIgZGVzY3JpcHRvciAoZ3JlZl9kaXJlY3RvcnkgaW4gdGhlCisgKiAg IHJlcXVlc3QpIGVtcGxveXMgYSBsaXN0IG9mIHBhZ2VzLCBkZXNjcmliaW5nIGFsbCBwYWdlcyBv ZiB0aGUgc2hhcmVkIGRhdGEKKyAqICAgYnVmZmVyOgorICogICAgICAgICAgMCAgICAgICAgICAg ICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQK KyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZf ZGlyX25leHRfcGFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bV9ncmVmcyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbMF0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdyZWZbMV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAq ICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbTiAtMV0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBncmVm X2Rpcl9uZXh0X3BhZ2UgLSBncmFudF9yZWZfdCwgcmVmZXJlbmNlIHRvIHRoZSBuZXh0IHBhZ2Ug ZGVzY3JpYmluZworICogICBwYWdlIGRpcmVjdG9yeQorICogbnVtX2dyZWZzIC0gbnVtYmVyIG9m IGdyZWZzIGluIHRoaXMgcGFnZQorICogZ3JlZltpXSAtIGdyYW50X3JlZl90LCByZWZlcmVuY2Ug dG8gYSBzaGFyZWQgcGFnZSBvZiB0aGUgYnVmZmVyCisgKiAgIGFsbG9jYXRlZCBhdCBYRU5TTkRf T1BfT1BFTgorICovCisKK3N0cnVjdCB4ZW5zbmRfcGFnZV9kaXJlY3RvcnkgeworCWdyYW50X3Jl Zl90IGdyZWZfZGlyX25leHRfcGFnZTsKKwl1aW50MzJfdCBudW1fZ3JlZnM7CisJZ3JhbnRfcmVm X3QgZ3JlZlswXTsKK307CisKKy8qCisgKiAgUmVxdWVzdCBjbG9zZSAtIGNsb3NlIGFuIG9wZW5l ZCBwY20gc3RyZWFtOgorICogICAgICAgICAgMCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAg ICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwgICAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9u ICAgIHwgICAgIHN0cmVhbV9pZHggIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsK KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVp bnQxNl90LCBwcml2YXRlIGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAqIG9wZXJh dGlvbiAtIHVpbnQ4X3QsIFhFTlNORF9PUF9DTE9TRQorICogc3RyZWFtX2lkeCAtIHVpbnQ4X3Qs IGluZGV4IG9mIHRoZSBzdHJlYW0gKCJzdHJlYW1zX2lkeCIgWGVuU3RvcmUgZW50cnkKKyAqICAg b2YgdGhlIHN0cmVhbSkKKyAqLworCitzdHJ1Y3QgeGVuc25kX2Nsb3NlX3JlcSB7Cit9OworCisv KgorICogUmVxdWVzdCByZWFkL3dyaXRlIC0gdXNlZCBmb3IgcmVhZCAoZm9yIGNhcHR1cmUpIG9y IHdyaXRlIChmb3IgcGxheWJhY2spOgorICogICAgICAgICAgMCAgICAgICAgICAgICAgICAgMSAg ICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAg b3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9pZHggIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmcgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK KyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBwcml2YXRlIGd1ZXN0 IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAqIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIFhFTlNO RF9PUF9SRUFEL1hFTlNORF9PUF9XUklURQorICogc3RyZWFtX2lkeCAtIHVpbnQ4X3QsIGluZGV4 IG9mIHRoZSBzdHJlYW0gKCJzdHJlYW1zX2lkeCIgWGVuU3RvcmUgZW50cnkKKyAqICAgb2YgdGhl IHN0cmVhbSkKKyAqIG9mZnNldCAtIHVpbnQzMl90LCByZWFkIG9yIHdyaXRlIGRhdGEgb2Zmc2V0 IHdpdGhpbiB0aGUgc2hhcmVkIGJ1ZmZlcgorICogICBwYXNzZWQgd2l0aCBYRU5TTkRfT1BfT1BF TiByZXF1ZXN0CisgKiBsZW5ndGggLSB1aW50MzJfdCwgcmVhZCBvciB3cml0ZSBkYXRhIGxlbmd0 aAorICovCisKK3N0cnVjdCB4ZW5zbmRfd3JpdGVfcmVxIHsKKwl1aW50MzJfdCBvZmZzZXQ7CisJ dWludDMyX3QgbGVuOworfTsKKworc3RydWN0IHhlbnNuZF9yZWFkX3JlcSB7CisJdWludDMyX3Qg b2Zmc2V0OworCXVpbnQzMl90IGxlbjsKK307CisKKy8qCisgKiBSZXF1ZXN0IHNldC9nZXQgdm9s dW1lIC0gc2V0L2dldCBjaGFubmVscycgdm9sdW1lIG9mIHRoZSBzdHJlYW0gZ2l2ZW46CisgKiAg ICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAg ICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg ICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgc3RyZWFtX2lk eCAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFkZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICog fC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGlkIC0gdWludDE2X3QsIHByaXZhdGUgZ3Vl c3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQorICogb3BlcmF0aW9uIC0gdWludDhfdCwgWEVO U05EX09QX1NFVF9WT0xVTUUgb3IgWEVOU05EX09QX0dFVF9WT0xVTUUKKyAqIHN0cmVhbV9pZHgg LSB1aW50OF90LCBpbmRleCBvZiB0aGUgc3RyZWFtICgic3RyZWFtc19pZHgiIFhlblN0b3JlIGVu dHJ5CisgKiAgIG9mIHRoZSBzdHJlYW0pCisgKiBCdWZmZXIgcGFzc2VkIHdpdGggWEVOU05EX09Q X09QRU4gaXMgdXNlZCB0byBleGNoYW5nZSB2b2x1bWUKKyAqIHZhbHVlczoKKyAqCisgKiAgICAg ICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAg ICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGFubmVsWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjaGFubmVsWzFdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogKy9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogICAg ICAgICAgICAgICAgICBjaGFubmVsW1hFTlNORF9PUF9PUEVOLnBjbV9jaGFubmVscyAtIDFdICAg ICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGNoYW5uZWxbaV0gLSBz aW50MzJfdCwgdm9sdW1lIG9mIGktdGggY2hhbm5lbAorICogVm9sdW1lIGlzIGV4cHJlc3NlZCBh cyBhIHNpZ25lZCB2YWx1ZSBpbiBzdGVwcyBvZiAwLjAwMSBkQiwKKyAqIHdoaWxlIDAgYmVpbmcg MCBkQi4KKyAqLworCitzdHJ1Y3QgeGVuc25kX2dldF92b2xfcmVxIHsKK307CisKK3N0cnVjdCB4 ZW5zbmRfc2V0X3ZvbF9yZXEgeworfTsKKworLyoKKyAqIFJlcXVlc3QgbXV0ZS91bm11dGUgLSBt dXRlL3VubXV0ZSBzdHJlYW06CisgKiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAg ICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVy YXRpb24gICAgfCAgICAgc3RyZWFtX2lkeCAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGlk IC0gdWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQorICog b3BlcmF0aW9uIC0gdWludDhfdCwgWEVOU05EX09QX01VVEUvWEVOU05EX09QX1VOTVVURQorICog c3RyZWFtX2lkeCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBzdHJlYW0gKCJzdHJlYW1zX2lkeCIg WGVuU3RvcmUgZW50cnkKKyAqICAgb2YgdGhlIHN0cmVhbSkKKyAqIEJ1ZmZlciBwYXNzZWQgd2l0 aCBYRU5TTkRfT1BfT1BFTiBpcyB1c2VkIHRvIGV4Y2hhbmdlIG11dGUvdW5tdXRlCisgKiB2YWx1 ZXM6CisgKgorICogICAgICAgICAgMCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAg IDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAq IHwgICBjaGFubmVsWzBdICAgIHwgICBjaGFubmVsWzFdICAgIHwgICBjaGFubmVsWzJdICAgIHwg ICBjaGFubmVsWzNdICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqICsvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICBjaGFubmVsW2ldICAgIHwgICBjaGFubmVs W2krMV0gIHwgICBjaGFubmVsW2krMl0gIHwgICBjaGFubmVsW2krM10gIHwKKyAqICstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSsKKyAqICsvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisg KiBjaGFubmVsW2ldIC0gdWludDhfdCwgbm9uLXplcm8gaWYgaS10aCBjaGFubmVsIG5lZWRzIHRv IGJlIG11dGVkL3VubXV0ZWQKKyAqIE51bWJlciBvZiBjaGFubmVscyBwYXNzZWQgaXMgZXF1YWwg dG8gWEVOU05EX09QX09QRU4gcmVxdWVzdCBwY21fY2hhbm5lbHMKKyAqIGZpZWxkCisgKi8KKwor c3RydWN0IHhlbnNuZF9tdXRlX3JlcSB7Cit9OworCitzdHJ1Y3QgeGVuc25kX3VubXV0ZV9yZXEg eworfTsKKworLyoKKyAqIEFsbCByZXNwb25zZSBwYWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3Ro ICg2NCBieXRlcykKKyAqCisgKiBSZXNwb25zZSBmb3IgYWxsIHJlcXVlc3RzOgorICogICAgICAg ICAgMCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAg MyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAg IGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9pZHggIHwK KyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBhZGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSsKKyAqIHwgICAgICBzdGF0dXMgICAgIHwgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2 ZWQgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAq ICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVzdAorICogc3Ry ZWFtX2lkeCAtIHVpbnQ4X3QsIGNvcGllZCBmcm9tIHJlcXVlc3QKKyAqIG9wZXJhdGlvbiAtIHVp bnQ4X3QsIFhFTlNORF9PUF9YWFggLSBjb3BpZWQgZnJvbSByZXF1ZXN0CisgKiBzdGF0dXMgLSBp bnQ4X3QsIHJlc3BvbnNlIHN0YXR1cyAoWEVOU05EX1JTUF8/Pz8pCisgKi8KKworc3RydWN0IHhl bnNuZF9yZXF1ZXN0IHsKKwl1aW50OF90IHJhd1s2NF07Cit9OworCitzdHJ1Y3QgeGVuc25kX3Jl c3BvbnNlIHsKKwl1aW50OF90IHJhd1s2NF07Cit9OworCit1bmlvbiB4ZW5zbmRfcmVxIHsKKwlz dHJ1Y3QgeGVuc25kX3JlcXVlc3QgcmF3OworCXN0cnVjdCB7CisJCXVpbnQxNl90IGlkOworCQl1 aW50OF90IG9wZXJhdGlvbjsKKwkJdWludDhfdCBzdHJlYW1faWR4OworCQl1aW50MzJfdCBwYWRk aW5nOworCQl1bmlvbiB7CisJCQlzdHJ1Y3QgeGVuc25kX29wZW5fcmVxIG9wZW47CisJCQlzdHJ1 Y3QgeGVuc25kX2Nsb3NlX3JlcSBjbG9zZTsKKwkJCXN0cnVjdCB4ZW5zbmRfd3JpdGVfcmVxIHdy aXRlOworCQkJc3RydWN0IHhlbnNuZF9yZWFkX3JlcSByZWFkOworCQkJc3RydWN0IHhlbnNuZF9n ZXRfdm9sX3JlcSBnZXRfdm9sOworCQkJc3RydWN0IHhlbnNuZF9zZXRfdm9sX3JlcSBzZXRfdm9s OworCQkJc3RydWN0IHhlbnNuZF9tdXRlX3JlcSBtdXRlOworCQkJc3RydWN0IHhlbnNuZF91bm11 dGVfcmVxIHVubXV0ZTsKKwkJfSBvcDsKKwl9IGRhdGE7Cit9OworCit1bmlvbiB4ZW5zbmRfcmVz cCB7CisJc3RydWN0IHhlbnNuZF9yZXNwb25zZSByYXc7CisJc3RydWN0IHsKKwkJdWludDE2X3Qg aWQ7CisJCXVpbnQ4X3Qgb3BlcmF0aW9uOworCQl1aW50OF90IHN0cmVhbV9pZHg7CisJCWludDhf dCBzdGF0dXM7CisJfSBkYXRhOworfTsKKworREVGSU5FX1JJTkdfVFlQRVMoeGVuX3NuZGlmLCBz dHJ1Y3QgeGVuc25kX3JlcSwgc3RydWN0IHhlbnNuZF9yZXNwKTsKKworI2VuZGlmIC8qIF9fWEVO X1BVQkxJQ19JT19YRU5TTkRfSF9fICovCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=