From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v13] This is the ABI for the two halves of a para-virtualized sound driver to communicate with each to other. Date: Mon, 28 Nov 2016 14:30:27 +0200 Message-ID: <1480336227-26457-2-git-send-email-andr2000@gmail.com> References: <1480336227-26457-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: <1480336227-26457-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.xenproject.org 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 YW0uY29tPgoKU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPE9sZWtzYW5k cl9BbmRydXNoY2hlbmtvQGVwYW0uY29tPgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgR3J5dHNv diA8T2xla3NhbmRyX0dyeXRzb3ZAZXBhbS5jb20+ClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBE bXl0cnlzaHluIDxvbGVrc2FuZHIuZG15dHJ5c2h5bkBnbG9iYWxsb2dpYy5jb20+ClNpZ25lZC1v ZmYtYnk6IEl1cmlpIEtvbm92YWxlbmtvIDxpdXJpaS5rb25vdmFsZW5rb0BnbG9iYWxsb2dpYy5j b20+CgotLS0KQ2hhbmdlcyBzaW5jZSB2MToKICogcmVtb3ZlZCBfX2F0dHJpYnV0ZV9fKChfX3Bh Y2tlZF9fKSkgZnJvbSBhbGwgc3RydWN0dXJlcyBkZWZpbml0aW9ucwoKQ2hhbmdlcyBzaW5jZSB2 MjoKICogcmVtb3ZlZCBhbGwgQyBzdHJ1Y3R1cmVzCiAqIGFkZGVkIHByb3RvY29sIGRlc2NyaXB0 aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgZHJpdmVycwoKQ2hhbmdlcyBzaW5jZSB2 MzoKICogZml4ZWQgc29tZSB0eXBvcwogKiByZW5hbWVkIFhFTlNORF9QQ01fRk9STUFUX0ZMT0FU XyoqIHRvIFhFTlNORF9QQ01fRk9STUFUX0YzMl8qKgogKiByZW5hbWVkIFhFTlNORF9QQ01fRk9S TUFUX0ZMT0FUNjRfKiogdG8gWEVOU05EX1BDTV9GT1JNQVRfRjY0XyoqCiAqIGFkZGVkICdpZCcg ZmllbGQgdG8gdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHBhY2tldHMKICogcmVuYW1lZCAnc3Ry ZWFtX2lkJyB0byAnc3RyZWFtJyBpbiB0aGUgcGFja2V0cyBkZXNjcmlwdGlvbgogKiByZW5hbWVk ICdwY21fZGF0YV9yYXRlJyB0byAncGNtX3JhdGUnIGluIHRoZSBwYWNrZXRzIGRlc2NyaXB0aW9u CiAqIHJlbmFtZWQgJ3BjbV9zdHJlYW1fdHlwZScgdG8gJ3BjbV90eXBlJyBpbiB0aGUgcGFja2V0 cyBkZXNjcmlwdGlvbgogKiByZW1vdmVkICdzdHJlYW1faWQnIGZpZWxkIGZyb20gdGhlIHJlc3Bv bnNlIHBhY2tldHMKCkNoYW5nZXMgc2luY2UgdjQ6CiAqIHJlbmFtZWQgJ3N0cmVhbV9pZCcgYmFj ayB0byB0aGUgdG8gJ3N0cmVhbScgaW4gdGhlIHBhY2tldHMgZGVzY3JpcHRpb24KICogbW92ZWQg J2lkJyBmaWVsZCB0byB0aGUgdXBwZXIgcG9zaXRpb24gaW4gdGhlIHJlc3BvbnNlIHBhY2tldHMK CkNoYW5nZXMgc2luY2UgdjU6CiAqIFNsaWdodGx5IHJld29ya2VkIHJlcXVlc3QvcmVzcG9uc2Ug cGFja2V0cwogKiBTaXplIG9mIHRoZSByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldCBpcyBjaGFuZ2Vk IHRvIHRoZSA2NCBieXRlcwogKiBOb3cgcGFyYW1ldGVycyBmb3IgdGhlIFhFTlNORF9PUF9TRVRf Vk9MVU1FL1hFTlNORF9PUF9HRVRfVk9MVU1FIGFyZQogICBwYXNzZWQgdmlhIHNoYXJlZCBwYWdl CiAqIEFkZGVkIHBhcmFtZXRlcnMgZm9yIHRoZSBYZW5CdXMgbm9kZXMgKG5vdyBlYWNoIHN0cmVh bSBjYW4gYmUgbWFwcGVkCiAgIHRvIHRoZSBkZWZpbmVkIHNvdW5kIGRldmljZSBpbiB0aGUgYmFj a2VuZCB1c2luZyB0aG9zZSBwYXJhbWV0ZXJzKQogKiBBZGRlZCBYZW5CdXMgc3RhdGUgZGlhZ3Jh bXMgZGVzY3JpcHRpb24KCkNoYW5nZXMgc2luY2UgdjY6CiAqIFJld29ya2VkIHN0cmVhbXMgZGVz Y3JpcHRpb24gIGluIHRoZSBCYWNrZW5kIFhlbkJ1cyBOb2RlcwoKQ2hhbmdlcyBzaW5jZSB2NzoK ICogcmUtd29ya2VkIGJhY2tlbmQgZGV2aWNlIHBhcmFtZXRlcnMgdG8gYmUgbW9yZSBnZW5lcmlj IGFuZCBmbGV4aWJsZQogKiBleHRlbmRlZCBmcm9udGVuZCBkZXZpY2UgcGFyYW1ldGVycwogKiBz bGlnaHRseSB1cGRhdGVkIHN0YXRlIG1hY2hpbmUgZGVzY3JpcHRpb24gYWRkZWQgbXV0ZS91bm11 dGUgY29tbWFuZHMKICogYWRkZWQgY29uc3RhbnRzIGZvciBYZW5TdG9yZSBjb25maWd1cmF0aW9u IHN0cmluZ3MKICAgKGZpZWxkcywgUENNIGZvcm1hdHMgZXRjLikKICogY2hhbmdlZCByZXF1ZXN0 L3Jlc3BvbnNlIHN0cnVjdHVyZSBzaXplIGZyb20gNjQgb2N0ZXRzIHRvIDE2CiAqIGludHJvZHVj ZWQgZHluYW1pYyBidWZmZXIgYWxsb2NhdGlvbiBpbnN0ZWFkIG9mCiAgIHN0YXRpYyBYRU5TTkRf TUFYX1BBR0VTX1BFUl9SRVFVRVNUCiAqIHJlLXdvcmtlZCBvcGVuIHJlcXVlc3QgdG8gYWxsb3cg ZHluYW1pYyBidWZmZXIgYWxsb2NhdGlvbgogKiByZS13b3JrZWQgcmVhZC93cml0ZS92b2x1bWUg cmVxdWVzdHMsIHNvIHRoZXkgZG9uJ3QgcGFzcyBncmVmczoKICAgYnVmZmVyIGZyb20gdGhlIG9w ZW4gcmVxdWVzdCBpcyB1c2VkIGZvciB0aGVzZSBvcGVyYXRpb25zIHRvIHBhc3MgZGF0YQogKiBz cGVjaWZpZWQgdHlwZSBvZiB0aGUgdm9sdW1lIHZhbHVlIHRvIGJlIGEgc2lnbmVkIHZhbHVlIGlu IHN0ZXBzCiAgIG9mIDAuMDAxIGRCbSwgd2hpbGUgMCBiZWluZyAwZEJtLgogKiBhZGRlZCBMaW51 eCBpbmNsdWRlIGZpbGUgd2l0aCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMKCkNoYW5nZXMgc2luY2Ug djg6CiAqIGNoYW5nZWQgZnJvbnRlbmQtaWQgdG8gZnJvbnRlbmRfaWQKICogc2luZ2xlIHNvdW5k IGNhcmQgc3VwcG9ydCwgY29uZmlndXJlZCB3aXRoIGJ1bmNoIG9mCiAgIGRldmljZXMvc3RyZWFt cwogKiBjbGFyaWZ1Y2F0aW9uIG1hZGUgb24gc2FtcGxlIHJhdGVzIGFuZCBmb3JtYXRzIGV4cHJl c3NlZCBhcwogICBkZWNpbWFscyB3L28gYW55IHBhcnRpY3VsYXIgb3JkZXJpbmcKICogcHV0IGRl c2NyaXB0aW9uIG9mIG1pZ3JhdGlvbi9kaXNjb25uZWN0aW9uIHN0YXRlCiAqIHJlcGxhY2VkIF9f YXR0cmlidXRlX18oKHBhY2tlZCkpIHRvIF9fcGFja2VkCiAqIGNoYW5nZWQgcGFkZGluZyBvZiBy aW5nIHN0cnVjdHVyZXMgdG8gNjQgdG8gZml0IGNhY2hlIGxpbmUKICogcmVtb3ZlZWQgI2lmZGVm IF9fS0VSTkVMCiAqIGV4cGxpY2l0bHkgc3RhdGVkIHdoaWNoIGluZGljZXMgaW4gWGVuU3RvcmUg Y29uZmlndXJhdGlvbgogICBhcmUgY29udGlndW91cwogKiBhZGRlZCBkZXNjcmlwdGlvbiB0byB3 aGF0IGZyb250ZW5kJ3MgZGVmYXVsdHMgYXJlCiAqIG1hZGUgbmFtZXMgb2YgdmlydHVhbCBjYXJk L2RldmljZXMgb3B0aW9uYWwKICogcmVtb3ZlZCBQQ01fRk9STUFUX1NQRUNJQUwKICogY2hhbmdl ZCB2b2x1bWUgdW5pdHMgZnJvbSBkQm0gdG8gZEIKCkNoYW5nZXMgc2luY2Ugdjk6CiAqIHJlbW92 ZWQgc25kaWZfbGludXguaAogKiBtb3ZlZCBhbGwgc3RydWN0dXJlcyBmcm9tIHNuZGlmX2xpbnV4 LmggdG8gc25kaWYuaAogKiBzdHJ1Y3R1cmVzIHBhZGRlZCB3aGVyZSBuZWVkZWQKICogZml4ZWQg SHogY29tbWVudAoKQ2hhbmdlcyBzaW5jZSB2MTA6CiAqIGZpeGVkIHRhYnMgdG8gNCBzcGFjZXMg dG8gY29tcGx5IHdpdGggWGVuIGNvZGluZyBzdHlsZQogKiBhZGRlZCBwbGFjZWhvbGRlcnMgdG8g ZW1wdHkgc3RydWN0dXJlcyAoQzg5IGNvbmNlcm4pCiAqIGFkZGVkIG1pc3NpbmcgaGVhZGVyIGlu Y2x1ZGVzCgpDaGFuZ2VzIHNpbmNlIHYxMToKICogYWRkZWQgWEVOU05EX1JTUF9OT1RTVVBQIGVy cm9yIGNvZGUKICogY2hhbmdlZCBncmVmWzBdIHRvIGdyZWZbMV0gd2l0aCBjb21tZW50CiAqIG1v ZGlmaWVkIGNvbW1lbnRzIG9uIGVtcHR5IHN0cnVjdHVyZXMKICogcmVtb3ZlZCAiX18iIGZyb20g bWVtYmVyIG5hbWVzCiAqIGZpeGVkIGluZGVudGF0aW9uCiAqIGFkZGVkIHBhZGRpbmcgaW4gdW5p b24geGVuc25kX3Jlc3AKICogY2hhbmdlZCBfX1hFTl9QVUJMSUNfSU9fWEVOU05EX0hfXyB0byBf X1hFTl9QVUJMSUNfSU9fU05ESUZfSF9fCgpDaGFuZ2VzIHNpbmNlIHYxMjoKICogY2hhbmdlZCBp bmRlbnRhdGlvbiBmb3IgZGVmaW5lcwogKiBtaXNzZWQgIjsiIGFmdGVyIGdyZWZbMV0KICogZG9j dW1lbnRhdGlvbiBjaGFuZ2VzCiAqIGNoYW5nZWQgcmVxL3Jlc3Agc3RydWN0dXJlcwogKiBjaGFu Z2VkIHhlbnNuZF9wYWdlX2RpcmVjdG9yeSBzdHJ1Y3R1cmUKICogcGFzcyBidWZmZXIgc2l6ZSBp biBvcGVuIHJlcXVlc3QKLS0tCi0tLQogeGVuL2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmggfCA2 OTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hh bmdlZCwgNjk4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9w dWJsaWMvaW8vc25kaWYuaAoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRp Zi5oIGIveGVuL2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uODQ3YTlhOQotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9pby9zbmRpZi5oCkBAIC0wLDAgKzEsNjk4IEBACisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisgKiBzbmRpZi5oCisgKgorICogVW5pZmllZCBzb3VuZC1kZXZpY2UgSS9PIGludGVyZmFjZSBm b3IgWGVuIGd1ZXN0IE9TZXMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisg KiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxs IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICog VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwg VEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgor ICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMy0y MDE1IEdsb2JhbExvZ2ljIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBFUEFNIFN5c3RlbXMg SW5jLgorICoKKyAqIEF1dGhvcnM6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxPbGVrc2FuZHJf QW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4KKyAqICAgICAgICAgIE9sZWtzYW5kciBHcnl0c292IDxP bGVrc2FuZHJfR3J5dHNvdkBlcGFtLmNvbT4KKyAqICAgICAgICAgIE9sZWtzYW5kciBEbXl0cnlz aHluIDxvbGVrc2FuZHIuZG15dHJ5c2h5bkBnbG9iYWxsb2dpYy5jb20+CisgKiAgICAgICAgICBJ dXJpaSBLb25vdmFsZW5rbyA8aXVyaWkua29ub3ZhbGVua29AZ2xvYmFsbG9naWMuY29tPgorICov CisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0lPX1NORElGX0hfXworI2RlZmluZSBfX1hFTl9QVUJM SUNfSU9fU05ESUZfSF9fCisKKyNpbmNsdWRlICJyaW5nLmgiCisjaW5jbHVkZSAiLi4vZ3JhbnRf dGFibGUuaCIKKworLyoKKyAqIEZyb250LT5iYWNrIG5vdGlmaWNhdGlvbnM6IFdoZW4gZW5xdWV1 aW5nIGEgbmV3IHJlcXVlc3QsIHNlbmRpbmcgYQorICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRl IGNvbmRpdGlvbmFsIG9uIHJlcV9ldmVudCAoaS5lLiwgdGhlIGdlbmVyaWMKKyAqIGhvbGQtb2Zm IG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNyb3MpLiBCYWNrZW5kcyBtdXN0IHNl dAorICogcmVxX2V2ZW50IGFwcHJvcHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hF Q0tfRk9SX1JFUVVFU1RTKCkpLgorICoKKyAqIEJhY2stPmZyb250IG5vdGlmaWNhdGlvbnM6IFdo ZW4gZW5xdWV1aW5nIGEgbmV3IHJlc3BvbnNlLCBzZW5kaW5nIGEKKyAqIG5vdGlmaWNhdGlvbiBj YW4gYmUgbWFkZSBjb25kaXRpb25hbCBvbiByc3BfZXZlbnQgKGkuZS4sIHRoZSBnZW5lcmljCisg KiBob2xkLW9mZiBtZWNoYW5pc20gcHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gRnJvbnRl bmRzIG11c3Qgc2V0CisgKiByc3BfZXZlbnQgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklO R19GSU5BTF9DSEVDS19GT1JfUkVTUE9OU0VTKCkpLgorICovCisKKy8qCisgKiBGZWF0dXJlIGFu ZCBQYXJhbWV0ZXIgTmVnb3RpYXRpb24KKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJhLXZpcnR1YWwgc291bmQgY2FyZCBkcml2 ZXIgdXRpbGl6ZSBub2RlcyB3aXRoaW4gdGhlCisgKiBYZW5TdG9yZSB0byBjb21tdW5pY2F0ZSBj YXBhYmlsaXRpZXMgYW5kIHRvIG5lZ290aWF0ZSBvcGVyYXRpbmcgcGFyYW1ldGVycy4KKyAqIFRo aXMgc2VjdGlvbiBlbnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0aGUgcmVz cGVjdGl2ZSBmcm9udCBhbmQKKyAqIGJhY2tlbmQgcG9ydGlvbnMgb2YgdGhlIFhlblN0b3JlLCBm b2xsb3dpbmcgdGhlIFhlbkJ1cyBjb252ZW50aW9uLgorICoKKyAqIEFsbCBkYXRhIGluIHRoZSBY ZW5TdG9yZSBpcyBzdG9yZWQgYXMgc3RyaW5ncy4gIE5vZGVzIHNwZWNpZnlpbmcgbnVtZXJpYwor ICogdmFsdWVzIGFyZSBlbmNvZGVkIGluIGRlY2ltYWwuICBJbnRlZ2VyIHZhbHVlIHJhbmdlcyBs aXN0ZWQgYmVsb3cgYXJlCisgKiBleHByZXNzZWQgYXMgZml4ZWQgc2l6ZWQgaW50ZWdlciB0eXBl cyBjYXBhYmxlIG9mIHN0b3JpbmcgdGhlIGNvbnZlcnNpb24KKyAqIG9mIGEgcHJvcGVybHkgZm9y bWF0ZWQgbm9kZSBzdHJpbmcsIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4KKyAqCisgKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tlbmQg WGVuQnVzIE5vZGVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tIEFkZHJlc3NpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKgorICogSW5kaWNlcyB1c2VkIHRvIGFkZHJlc3MgZnJvbnRlbmRzLCBkcml2ZXIg aW5zdGFuY2VzLCBjYXJkcywKKyAqIGRldmljZXMgYW5kIHN0cmVhbXMuCisgKgorICogZnJvbnRl bmRfaWQKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgRG9tYWlu IElEIG9mIHRoZSBzb3VuZCBmcm9udGVuZC4KKyAqCisgKiBkcnZfaWR4CisgKiAgICAgIFZhbHVl czogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFplcm8gYmFzZWQgY29udGlndW91cyBpbmRl eCBvZiB0aGUgdmlydHVhbGl6ZWQgc291bmQgZHJpdmVyIGluc3RhbmNlIGluCisgKiAgICAgIHRo aXMgZG9tYWluLiBNdWx0aXBsZSBQViBkcml2ZXJzIGFyZSBhbGxvd2VkIGluIHRoZSBkb21haW4K KyAqICAgICAgYXQgdGhlIHNhbWUgdGltZS4KKyAqCisgKiBkZXZfaWQKKyAqICAgICAgVmFsdWVz OiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgVW5pcXVlIGRldmljZSBJRC4KKyAqICAgICAg RG9lc24ndCBoYXZlIHRvIGJlIHplcm8gYmFzZWQgYW5kL29yIHRvIGJlIGNvbnRpZ3VvdXMuCisg KgorICogc3RyZWFtX2lkeAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICog ICAgICBaZXJvIGJhc2VkIGNvbnRpZ3VvdXMgaW5kZXggb2YgdGhlIHN0cmVhbSBvZiB0aGUgZGV2 aWNlLgorICoKKyAqIEV4YW1wbGUgZm9yIHRoZSBmcm9udGVuZCBydW5uaW5nIGluIGRvbWFpbiA1 LCBpbnN0YW5jZSBvZiB0aGUgZHJpdmVyCisgKiBpbiB0aGUgZnJvbnQgaXMgMCAoc2luZ2xlIG9y IGZpcnN0IFBWIGRyaXZlciksIGRldmljZSBpZCAyLAorICogZmlyc3Qgc3RyZWFtICgwKToKKyAq IC9sb2NhbC9kb21haW4vPGZyb250ZW5kX2lkPi9kZXZpY2UvdnNuZC88ZHJ2X2lkeD4vCisgKiAg ICAgICAgIGRldmljZS88ZGV2X2lkPi9zdHJlYW0vPHN0cmVhbV9pZHg+L3R5cGUgPSAicCIKKyAq IC9sb2NhbC9kb21haW4vNS9kZXZpY2UvdnNuZC8wL2RldmljZS8yL3N0cmVhbS8wL3R5cGUgPSAi cCIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUENNIHNldHRpbmdzIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogRXZlcnkgdmlydHVhbGl6ZWQg c291bmQgZnJvbnRlbmQgaGFzIHNldCBvZiBkZXZpY2VzIGFuZCBzdHJlYW1zLCBlYWNoCisgKiBp cyBpbmRpdmlkdWFsbHkgY29uZmlndXJlZC4gUGFydCBvZiB0aGUgUENNIGNvbmZpZ3VyYXRpb24g Y2FuIGJlIGRlZmluZWQgYXQKKyAqIGhpZ2hlciBsZXZlbCBhbmQgYmUgZnVsbHkgb3IgcGFydGlh bGx5IHJlLXVzZWQgYnkgdGhlIHVuZGVybHlpbmcgbGF5ZXJzLgorICogVGhlc2UgY29uZmlndXJh dGlvbiB2YWx1ZXMgYXJlOgorICogIG8gbnVtYmVyIG9mIGNoYW5uZWxzIChtaW4vbWF4KQorICog IG8gc3VwcG9ydGVkIHNhbXBsZSByYXRlcworICogIG8gc3VwcG9ydGVkIHNhbXBsZSBmb3JtYXRz LgorICogRS5nLiBvbmUgY2FuIGRlZmluZSB0aGVzZSB2YWx1ZXMgZm9yIHRoZSB3aG9sZSBkcml2 ZXIsIGRldmljZSBvciBzdHJlYW0uCisgKiBFdmVyeSB1bmRlcmx5aW5nIGxheWVyIGluIHR1cm4g Y2FuIHJlLWRlZmluZSBzb21lIG9yIGFsbCBvZiB0aGVtIHRvIGJldHRlcgorICogZml0IGl0cyBu ZWVkcy4gRm9yIGV4YW1wbGUsIGRyaXZlciBtYXkgZGVmaW5lIG51bWJlciBvZiBjaGFubmVscyB0 byBiZQorICogaW4gWzE7IDhdIHJhbmdlLCBhbmQgc29tZSBwYXJ0aWN1bGFyIHN0cmVhbSBtYXkg YmUgbGltaXRlZCB0byBbMTsgMl0gb25seS4KKyAqIFRoZSBydWxlIGlzIHRoYXQgdGhlIHVuZGVy bHlpbmcgbGF5ZXIgbXVzdCBiZSBhIHN1YnNldCBvZiB0aGUgdXBwZXIgbGF5ZXIKKyAqIHJhbmdl LgorICoKKyAqIE5vdGU6IGlmIGFueSBvZiB0aGUgdmFsdWVzIGFyZSBub3QgZGVmaW5lZCB0aGVu IFBWIGRyaXZlciBzaG91bGQgdXNlCisgKiBpdHMgZGVmYXVsdCB2YWx1ZXMgaW5zdGVhZC4KKyAq CisgKiBjaGFubmVscy1taW4KKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50PgorICoKKyAq ICAgICAgVGhlIG1pbmltdW0gYW1vdW50IG9mIGNoYW5uZWxzIHRoYXQgaXMgc3VwcG9ydGVkLgor ICogICAgICBNdXN0IGJlIGF0IGxlYXN0IDEuIElmIG5vdCBkZWZpbmVkIHRoZW4gdXNlIGZyb250 ZW5kJ3MgZGVmYXVsdC4KKyAqCisgKiBjaGFubmVscy1tYXgKKyAqICAgICAgVmFsdWVzOiAgICAg ICAgIDx1aW50PgorICoKKyAqICAgICAgVGhlIG1heGltdW0gYW1vdW50IG9mIGNoYW5uZWxzIHRo YXQgaXMgc3VwcG9ydGVkLgorICogICAgICBNdXN0IGJlIGF0IGxlYXN0IDxjaGFubmVscy1taW4+ LiBJZiBub3QgZGVmaW5lZCB0aGVuIHVzZSBmcm9udGVuZCdzCisgKiAgICAgIGRlZmF1bHQuCisg KgorICogc2FtcGxlLXJhdGVzCisgKiAgICAgIFZhbHVlczogICAgICAgICA8bGlzdCBvZiB1aW50 cz4KKyAqCisgKiAgICAgIExpc3Qgb2Ygc3VwcG9ydGVkIHNhbXBsZSByYXRlcyBzZXBhcmF0ZWQg YnkgWEVOU05EX0xJU1RfU0VQQVJBVE9SLgorICogICAgICBJZiBub3QgZGVmaW5lZCB0aGVuIHVz ZSBmcm9udGVuZCdzIGRlZmF1bHQuIFNhbXBsZSByYXRlcyBhcmUgZXhwcmVzc2VkCisgKiAgICAg IGFzIGEgbGlzdCBvZiBkZWNpbWFsIHZhbHVlcyB3L28gYW55IG9yZGVyaW5nIHJlcXVpcmVtZW50 LgorICoKKyAqIHNhbXBsZS1mb3JtYXRzCisgKiAgICAgIFZhbHVlczogICAgICAgICA8bGlzdCBv ZiBYRU5TTkRfUENNX0ZPUk1BVF9YWFhfU1RSPgorICoKKyAqICAgICAgTGlzdCBvZiBzdXBwb3J0 ZWQgc2FtcGxlIGZvcm1hdHMgc2VwYXJhdGVkIGJ5IFhFTlNORF9MSVNUX1NFUEFSQVRPUi4KKyAq ICAgICAgSWYgbm90IGRlZmluZWQgdGhlbiB1c2UgZnJvbnRlbmQncyBkZWZhdWx0LgorICoKKyAq IGJ1ZmZlci1zaXplCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAg IFRoZSBtYXhpbXVtIHNpemUgaW4gb2N0ZXRzIG9mIHRoZSBidWZmZXIgdG8gYWxsb2NhdGUgcGVy IHN0cmVhbS4KKyAqCisgKiBFeGFtcGxlIGNvbmZpZ3VyYXRpb246CisgKgorICogRHJpdmVyIGNv bmZpZ3VyYXRpb24gdXNlZCBieSBhbGwgc3RyZWFtczoKKyAqIC9sb2NhbC9kb21haW4vNS9kZXZp Y2UvdnNuZC8wL3NhbXBsZS1mb3JtYXRzID0gInM4O3U4O3MxNl9sZTtzMTZfYmUiCisgKiBTdHJl YW0gb3ZlcnJpZGVzIHNhbXBsZSByYXRlcyBzdXBwb3J0ZWQ6CisgKiAvbG9jYWwvZG9tYWluLzUv ZGV2aWNlL3ZzbmQvMC9kZXZpY2UvMi9zdHJlYW0vMC9zYW1wbGUtcmF0ZXMgPQorICogICAgICAg ICI4MDAwOzIyMDUwOzQ0MTAwOzQ4MDAwIgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g VmlydHVhbCBzb3VuZCBjYXJkIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KiBzaG9ydC1uYW1lCisgKiAgICAgIFZhbHVlczogICAgICAgICA8Y2hhclszMl0+CisgKgorICog ICAgICBTaG9ydCBuYW1lIG9mIHRoZSB2aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgorICoK KyAqIGxvbmctbmFtZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgPGNoYXJbODBdPgorICoKKyAq ICAgICAgTG9uZyBuYW1lIG9mIHRoZSB2aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgorICoK KyAqIEZvciBleGFtcGxlLAorICogL2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAvc2hvcnQt bmFtZSA9ICJWaXJ0dWFsIGF1ZGlvIgorICogL2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAv bG9uZy1uYW1lID0KKyAqICAgICAgICAgIlZpcnR1YWwgYXVkaW8gYXQgY2VudGVyIHN0YWNrIgor ICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGV2aWNlIHNldHRpbmdzIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBuYW1lCisgKiAgICAgIFZhbHVlczogICAg ICAgICA8Y2hhcls4MF0+CisgKgorICogICAgICBOYW1lIG9mIHRoZSBzb3VuZCBkZXZpY2Ugd2l0 aGluIHRoZSB2aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgorICoKKyAqIEZvciBleGFtcGxl LAorICogL2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAvZGV2aWNlLzAvbmFtZSA9ICJHZW5l cmFsIGFuYWxvZyIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSBz ZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogdHlwZQorICog ICAgICBWYWx1ZXM6ICAgICAgICAgInAiLCAiYyIKKyAqCisgKiAgICAgIFN0cmVhbSB0eXBlOiAi cCIgLSBwbGF5YmFjayBzdHJlYW0sICJjIiAtIGNhcHR1cmUgc3RyZWFtCisgKgorICogICAgICBJ ZiBib3RoIGNhcHR1cmUgYW5kIHBsYXliYWNrIGFyZSBuZWVkZWQgdGhlbiB0d28gc3RyZWFtcyBu ZWVkIHRvIGJlCisgKiAgICAgIGRlZmluZWQgdW5kZXIgdGhlIHNhbWUgZGV2aWNlLiBGb3IgZXhh bXBsZSwKKyAqICAgICAgL2xvY2FsL2RvbWFpbi81L2RldmljZS92c25kLzAvZGV2aWNlLzAvc3Ry ZWFtLzAvdHlwZSA9ICJwIgorICogICAgICAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9k ZXZpY2UvMC9zdHJlYW0vMS90eXBlID0gImMiCisgKgorICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZCBYZW5CdXMgTm9kZXMKKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVxdWVzdCBU cmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoZXNl IGFyZSBwZXIgc3RyZWFtLgorICoKKyAqIGV2ZW50LWNoYW5uZWwKKyAqICAgICAgVmFsdWVzOiAg ICAgICAgIDx1aW50PgorICoKKyAqICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBldmVu dCBjaGFubmVsIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5CisgKiAgICAgIGluIHRoZSByaW5nIGJ1 ZmZlci4KKyAqCisgKiByaW5nLXJlZgorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+Cisg KgorICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZv ciB0aGUgYmFja2VuZCB0byBtYXAKKyAqICAgICAgYSBzb2xlIHBhZ2UgaW4gYSBzaW5nbGUgcGFn ZSBzaXplZCByaW5nIGJ1ZmZlci4KKyAqCisgKiBpbmRleAorICogICAgICBWYWx1ZXM6ICAgICAg ICAgPHVpbnQ+CisgKgorICogICAgICBBZnRlciBzdHJlYW0gaW5pdGlhbGl6YXRpb24gaXQgaXMg YXNzaWduZWQgYSB1bmlxdWUgSUQgKHdpdGhpbiB0aGUgZnJvbnQKKyAqICAgICAgZHJpdmVyKSwg c28gZXZlcnkgc3RyZWFtIG9mIHRoZSBmcm9udGVuZCBjYW4gYmUgaWRlbnRpZmllZCBieSB0aGUK KyAqICAgICAgYmFja2VuZCBieSB0aGlzIElELiBUaGlzIGlzIG5vdCBlcXVhbCB0byBzdHJlYW1f aWR4IGFzIHRoZSBsYXRlciBpcworICogICAgICB6ZXJvIGJhc2VkIHdpdGhpbiBhIGRldmljZSwg YnV0IHRoaXMgaW5kZXggaXMgY29udGlndW91cyB3aXRoaW4gdGhlCisgKiAgICAgIGRyaXZlci4K KyAqLworCisvKgorICogU1RBVEUgRElBR1JBTVMKKyAqCisgKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydHVwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogVG9v bCBzdGFjayBjcmVhdGVzIGZyb250IGFuZCBiYWNrIHN0YXRlIG5vZGVzIHdpdGggaW5pdGlhbCBz dGF0ZQorICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcuCisgKiBUb29sIHN0YWNrIGNyZWF0ZXMg YW5kIHNldHMgdXAgZnJvbnRlbmQgc291bmQgY29uZmlndXJhdGlvbiBub2RlcyBwZXIgZG9tYWlu LgorICoKKyAqIEZyb250ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrCisgKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gICAgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgICAgICAgICAgICAg IFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG8gUXVlcnkgYmFja2VuZCBkZXZpY2UgaWRlbnRpZmljYXRpb24KKyAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLgorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvIE9wZW4gYW5kIHZhbGlkYXRlIGJhY2tlbmQgZGV2 aWNlLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1 c1N0YXRlSW5pdFdhaXQKKyAqCisgKiBvIFF1ZXJ5IGZyb250ZW5kIGNvbmZpZ3VyYXRpb24KKyAq IG8gQWxsb2NhdGUgYW5kIGluaXRpYWxpemUKKyAqICAgZXZlbnQgY2hhbm5lbHMgcGVyIGNvbmZp Z3VyZWQKKyAqICAgcGxheWJhY2svY2FwdHVyZSBzdHJlYW0uCisgKiBvIFB1Ymxpc2ggdHJhbnNw b3J0IHBhcmFtZXRlcnMKKyAqICAgdGhhdCB3aWxsIGJlIGluIGVmZmVjdCBkdXJpbmcKKyAqICAg dGhpcyBjb25uZWN0aW9uLgorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8Cisg KiAgICAgICAgICAgICAgVgorICogWGVuYnVzU3RhdGVJbml0aWFsaXNlZAorICoKKyAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBRdWVyeSBmcm9udGVuZCB0cmFuc3Bv cnQgcGFyYW1ldGVycy4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg byBDb25uZWN0IHRvIHRoZSBldmVudCBjaGFubmVscy4KKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYKKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNvbm5lY3RlZAorICoKKyAqICBvIENy ZWF0ZSBhbmQgaW5pdGlhbGl6ZSBPUworICogIHZpcnR1YWwgc291bmQgZGV2aWNlIGluc3RhbmNl cworICogIGFzIHBlciBjb25maWd1cmF0aW9uLgorICogICAgICAgICAgICAgIHwKKyAqICAgICAg ICAgICAgICB8CisgKiAgICAgICAgICAgICAgVgorICogWGVuYnVzU3RhdGVDb25uZWN0ZWQKKyAq CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVVbmtu b3duCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVD bG9zZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0 ZUNsb3NpbmcKKyAqIG8gUmVtb3ZlIHZpcnR1YWwgc291bmQgZGV2aWNlCisgKiBvIFJlbW92ZSBl dmVudCBjaGFubmVscworICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8CisgKiAg ICAgICAgICAgICAgVgorICogWGVuYnVzU3RhdGVDbG9zZWQKKyAqCisgKi8KKworLyoKKyAqIFBD TSBGT1JNQVRTCisgKgorICogWEVOU05EX1BDTV9GT1JNQVRfPGZvcm1hdD5bXzxlbmRpYW4+XQor ICoKKyAqIGZvcm1hdDogPFMvVS9GPjxiaXRzPiBvciA8bmFtZT4KKyAqICAgICBTIC0gc2lnbmVk LCBVIC0gdW5zaWduZWQsIEYgLSBmbG9hdAorICogICAgIGJpdHMgLSA4LCAxNiwgMjQsIDMyCisg KiAgICAgbmFtZSAtIE1VX0xBVywgR1NNLCBldGMuCisgKgorICogZW5kaWFuOiA8TEUvQkU+LCBt YXkgYmUgYWJzZW50CisgKiAgICAgTEUgLSBMaXR0bGUgZW5kaWFuLCBCRSAtIEJpZyBlbmRpYW4K KyAqLworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TOCAgICAgICAgICAgIDAKKyNkZWZpbmUg WEVOU05EX1BDTV9GT1JNQVRfVTggICAgICAgICAgICAxCisjZGVmaW5lIFhFTlNORF9QQ01fRk9S TUFUX1MxNl9MRSAgICAgICAgMgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfQkUgICAg ICAgIDMKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0xFICAgICAgICA0CisjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX1UxNl9CRSAgICAgICAgNQorI2RlZmluZSBYRU5TTkRfUENNX0ZP Uk1BVF9TMjRfTEUgICAgICAgIDYKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0X0JFICAg ICAgICA3CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9MRSAgICAgICAgOAorI2RlZmlu ZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRfQkUgICAgICAgIDkKKyNkZWZpbmUgWEVOU05EX1BDTV9G T1JNQVRfUzMyX0xFICAgICAgICAxMAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfQkUg ICAgICAgIDExCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9MRSAgICAgICAgMTIKKyNk ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTMyX0JFICAgICAgICAxMworI2RlZmluZSBYRU5TTkRf UENNX0ZPUk1BVF9GMzJfTEUgICAgICAgIDE0IC8qIDQtYnl0ZSBmbG9hdCwgSUVFRS03NTQgMzIt Yml0LCAqLworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJfQkUgICAgICAgIDE1IC8qIHJh bmdlIC0xLjAgdG8gMS4wICAgICAgICAgICAgICAqLworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1B VF9GNjRfTEUgICAgICAgIDE2IC8qIDgtYnl0ZSBmbG9hdCwgSUVFRS03NTQgNjQtYml0LCAqLwor I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRfQkUgICAgICAgIDE3IC8qIHJhbmdlIC0xLjAg dG8gMS4wICAgICAgICAgICAgICAqLworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JRUM5NThf U1VCRlJBTUVfTEUgMTgKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1F X0JFIDE5CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01VX0xBVyAgICAgICAgMjAKKyNkZWZp bmUgWEVOU05EX1BDTV9GT1JNQVRfQV9MQVcgICAgICAgICAyMQorI2RlZmluZSBYRU5TTkRfUENN X0ZPUk1BVF9JTUFfQURQQ00gICAgIDIyCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01QRUcg ICAgICAgICAgMjMKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfR1NNICAgICAgICAgICAyNAor CisvKgorICogUkVRVUVTVCBDT0RFUy4KKyAqLworI2RlZmluZSBYRU5TTkRfT1BfT1BFTiAgICAg ICAgICAgICAgICAgIDAKKyNkZWZpbmUgWEVOU05EX09QX0NMT1NFICAgICAgICAgICAgICAgICAx CisjZGVmaW5lIFhFTlNORF9PUF9SRUFEICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBYRU5T TkRfT1BfV1JJVEUgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgWEVOU05EX09QX1NFVF9WT0xV TUUgICAgICAgICAgICA0CisjZGVmaW5lIFhFTlNORF9PUF9HRVRfVk9MVU1FICAgICAgICAgICAg NQorI2RlZmluZSBYRU5TTkRfT1BfTVVURSAgICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgWEVO U05EX09QX1VOTVVURSAgICAgICAgICAgICAgICA3CisKKy8qCisgKiBYRU5TVE9SRSBGSUVMRCBB TkQgUEFUSCBOQU1FIFNUUklOR1MsIEhFTFBFUlMuCisgKi8KKyNkZWZpbmUgWEVOU05EX0RSSVZF Ul9OQU1FICAgICAgICAgICAgICAidnNuZCIKKworI2RlZmluZSBYRU5TTkRfTElTVF9TRVBBUkFU T1IgICAgICAgICAgICI7IgorLyogUGF0aCBlbnRyaWVzICovCisjZGVmaW5lIFhFTlNORF9QQVRI X0RFVklDRSAgICAgICAgICAgICAgImRldmljZSIKKyNkZWZpbmUgWEVOU05EX1BBVEhfU1RSRUFN ICAgICAgICAgICAgICAic3RyZWFtIgorLyogRmllbGQgbmFtZXMgKi8KKyNkZWZpbmUgWEVOU05E X0ZJRUxEX1ZDQVJEX1NIT1JUX05BTUUgICAic2hvcnQtbmFtZSIKKyNkZWZpbmUgWEVOU05EX0ZJ RUxEX1ZDQVJEX0xPTkdfTkFNRSAgICAibG9uZy1uYW1lIgorI2RlZmluZSBYRU5TTkRfRklFTERf UklOR19SRUYgICAgICAgICAgICJyaW5nLXJlZiIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0VWVF9D SE5MICAgICAgICAgICAiZXZlbnQtY2hhbm5lbCIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0RFVklD RV9OQU1FICAgICAgICAibmFtZSIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1RZUEUgICAgICAgICAg ICAgICAidHlwZSIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1NUUkVBTV9JTkRFWCAgICAgICAiaW5k ZXgiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9DSEFOTkVMU19NSU4gICAgICAgImNoYW5uZWxzLW1p biIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0NIQU5ORUxTX01BWCAgICAgICAiY2hhbm5lbHMtbWF4 IgorI2RlZmluZSBYRU5TTkRfRklFTERfU0FNUExFX1JBVEVTICAgICAgICJzYW1wbGUtcmF0ZXMi CisjZGVmaW5lIFhFTlNORF9GSUVMRF9TQU1QTEVfRk9STUFUUyAgICAgInNhbXBsZS1mb3JtYXRz IgorI2RlZmluZSBYRU5TTkRfRklFTERfQlVGRkVSX1NJWkUgICAgICAgICJidWZmZXItc2l6ZSIK KworLyogU3RyZWFtIHR5cGUgZmllbGQgdmFsdWVzLiAqLworI2RlZmluZSBYRU5TTkRfU1RSRUFN X1RZUEVfUExBWUJBQ0sgICAgICJwIgorI2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVfQ0FQVFVS RSAgICAgICJjIgorLyogU2FtcGxlIHJhdGUgbWF4IHN0cmluZyBsZW5ndGggKi8KKyNkZWZpbmUg WEVOU05EX1NBTVBMRV9SQVRFX01BWF9MRU4gICAgICA2CisvKiBTYW1wbGUgZm9ybWF0IGZpZWxk IHZhbHVlcyAqLworI2RlZmluZSBYRU5TTkRfU0FNUExFX0ZPUk1BVF9NQVhfTEVOICAgIDI0CisK KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzhfU1RSICAgICAgICAiczgiCisjZGVmaW5lIFhF TlNORF9QQ01fRk9STUFUX1U4X1NUUiAgICAgICAgInU4IgorI2RlZmluZSBYRU5TTkRfUENNX0ZP Uk1BVF9TMTZfTEVfU1RSICAgICJzMTZfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1Mx Nl9CRV9TVFIgICAgInMxNl9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0xFX1NU UiAgICAidTE2X2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMTZfQkVfU1RSICAgICJ1 MTZfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9MRV9TVFIgICAgInMyNF9sZSIK KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0X0JFX1NUUiAgICAiczI0X2JlIgorI2RlZmlu ZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRfTEVfU1RSICAgICJ1MjRfbGUiCisjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX1UyNF9CRV9TVFIgICAgInUyNF9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9G T1JNQVRfUzMyX0xFX1NUUiAgICAiczMyX2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9T MzJfQkVfU1RSICAgICJzMzJfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9MRV9T VFIgICAgInUzMl9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTMyX0JFX1NUUiAgICAi dTMyX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJfTEVfU1RSICAgICJmbG9hdF9s ZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0JFX1NUUiAgICAiZmxvYXRfYmUiCisj ZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2NF9MRV9TVFIgICAgImZsb2F0NjRfbGUiCisjZGVm aW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2NF9CRV9TVFIgICAgImZsb2F0NjRfYmUiCisjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRV9TVFIgImllYzk1OF9zdWJmcmFt ZV9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0JFX1NUUiAi aWVjOTU4X3N1YmZyYW1lX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NVV9MQVdfU1RS ICAgICJtdV9sYXciCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0FfTEFXX1NUUiAgICAgImFf bGF3IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JTUFfQURQQ01fU1RSICJpbWFfYWRwY20i CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01QRUdfU1RSICAgICAgIm1wZWciCisjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX0dTTV9TVFIgICAgICAgImdzbSIKKworLyoKKyAqIFNUQVRVUyBS RVRVUk4gQ09ERVMuCisgKi8KKy8qIE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkLiAqLworI2RlZmlu ZSBYRU5TTkRfUlNQX05PVFNVUFAgICAgICAgICAgICAgICgtMikKKy8qIE9wZXJhdGlvbiBmYWls ZWQgZm9yIHNvbWUgdW5zcGVjaWZpZWQgcmVhc29uIChlLiBnLiAtRUlPKS4gKi8KKyNkZWZpbmUg WEVOU05EX1JTUF9FUlJPUiAgICAgICAgICAgICAgICAoLTEpCisvKiBPcGVyYXRpb24gY29tcGxl dGVkIHN1Y2Nlc3NmdWxseS4gKi8KKyNkZWZpbmUgWEVOU05EX1JTUF9PS0FZICAgICAgICAgICAg ICAgICAwCisKKy8qCisgKiBEZXNjcmlwdGlvbiBvZiB0aGUgcHJvdG9jb2wgYmV0d2VlbiBmcm9u dGVuZCBhbmQgYmFja2VuZCBkcml2ZXIuCisgKgorICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJh LXZpcnR1YWwgc291bmQgZHJpdmVyIGNvbW11bmljYXRlcyB3aXRoCisgKiBlYWNoIG90aGVyIHVz aW5nIGEgc2hhcmVkIHBhZ2UgYW5kIGFuIGV2ZW50IGNoYW5uZWwuCisgKiBTaGFyZWQgcGFnZSBj b250YWlucyBhIHJpbmcgd2l0aCByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMuCisgKgorICogQWxs IHJlc2VydmVkIGFuZCBwYWRkaW5nIGZpZWxkcyBpbiB0aGUgc3RydWN0dXJlcyBiZWxvdyBtdXN0 IGJlIDAuCisgKgorICogQWxsIHJlcXVlc3QgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAo MzIgb2N0ZXRzKQorICogQWxsIHJlcXVlc3QgcGFja2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6Cisg KiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAg ICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg ICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgc3RyZWFt X2lkeCAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogICBpZCAtIHVpbnQxNl90LCBwcml2YXRl IGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAqICAgb3BlcmF0aW9uIC0gdWludDhf dCwgb3BlcmF0aW9uIGNvZGUKKyAqICAgc3RyZWFtX2lkeCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRo ZSBzdHJlYW0gKCJzdHJlYW1zX2lkeCIgWGVuU3RvcmUgZW50cnkKKyAqICAgICBvZiB0aGUgc3Ry ZWFtKQorICoKKyAqCisgKiBSZXF1ZXN0IG9wZW4gLSBvcGVuIGEgUENNIHN0cmVhbSBmb3IgcGxh eWJhY2sgb3IgY2FwdHVyZToKKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAg ICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IFhFTlNORF9P UF9PUEVOICB8ICAgICBzdHJlYW1faWR4ICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwY21fcmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICBwY21fZm9ybWF0ICAgICB8ICBwY21fY2hhbm5lbHMg ICB8ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zeiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgIGdyZWZfZGlyZWN0b3J5X3N0YXJ0ICAgICAgICAgICAgICAgICAg ICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiAr LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r CisgKgorICogcGNtX3JhdGUgLSB1aW50MzJfdCwgc3RyZWFtIGRhdGEgcmF0ZSwgSHoKKyAqIHBj bV9mb3JtYXQgLSB1aW50OF90LCBYRU5TTkRfUENNX0ZPUk1BVF9YWFggdmFsdWUKKyAqIHBjbV9j aGFubmVscyAtIHVpbnQ4X3QsIG51bWJlciBvZiBjaGFubmVscyBvZiB0aGlzIHN0cmVhbQorICog YnVmZmVyX3N6IC0gdWludDMyX3QsIGJ1ZmZlciBzaXplIHRvIGJlIGFsbG9jYXRlZCBpbiBvY3Rl dHMKKyAqIGdyZWZfZGlyZWN0b3J5X3N0YXJ0IC0gZ3JhbnRfcmVmX3QsIGEgcmVmZXJlbmNlIHRv IHRoZSBmaXJzdCBzaGFyZWQgcGFnZQorICogICBkZXNjcmliaW5nIHNoYXJlZCBidWZmZXIgcmVm ZXJlbmNlcy4gQXQgbGVhc3Qgb25lIHBhZ2UgZXhpc3RzLiBJZiBzaGFyZWQKKyAqICAgYnVmZmVy IHNpemUgZXhjZWVkcyB3aGF0IGNhbiBiZSBhZGRyZXNzZWQgYnkgdGhpcyBzaW5nbGUgcGFnZSwg dGhlbgorICogICByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFnZSBtdXN0IGJlIHN1cHBsaWVkIChz ZWUgZ3JlZl9kaXJfbmV4dF9wYWdlIGJlbG93KQorICovCisKK3N0cnVjdCB4ZW5zbmRfb3Blbl9y ZXEgeworICAgIHVpbnQzMl90IHBjbV9yYXRlOyAvKiBpbiBIeiAqLworICAgIHVpbnQ4X3QgcGNt X2Zvcm1hdDsKKyAgICB1aW50OF90IHBjbV9jaGFubmVsczsKKyAgICB1aW50MTZfdCByZXNlcnZl ZDsKKyAgICB1aW50MzJfdCBidWZmZXJfc3o7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZl9kaXJlY3Rv cnlfc3RhcnQ7Cit9OworCisvKgorICogU2hhcmVkIHBhZ2UgZm9yIFhFTlNORF9PUF9PUEVOIGJ1 ZmZlciBkZXNjcmlwdG9yIChncmVmX2RpcmVjdG9yeSBpbiB0aGUKKyAqICAgcmVxdWVzdCkgZW1w bG95cyBhIGxpc3Qgb2YgcGFnZXMsIGRlc2NyaWJpbmcgYWxsIHBhZ2VzIG9mIHRoZSBzaGFyZWQg ZGF0YQorICogICBidWZmZXI6CisgKiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAg ICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJfbmV4dF9wYWdl ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZlswXSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3JlZltpXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZltOIC0xXSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGdyZWZfZGlyX25leHRfcGFn ZSAtIGdyYW50X3JlZl90LCByZWZlcmVuY2UgdG8gdGhlIG5leHQgcGFnZSBkZXNjcmliaW5nCisg KiAgIHBhZ2UgZGlyZWN0b3J5LiBNdXN0IGJlIDAgaWYgbm8gbW9yZSBwYWdlcyBpbiB0aGUgbGlz dC4KKyAqIGdyZWZbaV0gLSBncmFudF9yZWZfdCwgcmVmZXJlbmNlIHRvIGEgc2hhcmVkIHBhZ2Ug b2YgdGhlIGJ1ZmZlcgorICogICBhbGxvY2F0ZWQgYXQgWEVOU05EX09QX09QRU4KKyAqCisgKiBO dW1iZXIgb2YgZ3JhbnRfcmVmX3QgZW50cmllcyBpbiB0aGUgd2hvbGUgcGFnZSBkaXJlY3Rvcnkg aXMgbm90CisgKiBwYXNzZWQsIGJ1dCBpbnN0ZWFkIGNhbiBiZSBjYWxjdWxhdGVkIGFzOgorICog ICBudW1fZ3JlZnNfdG90YWwgPSBESVZfUk9VTkRfVVAoWEVOU05EX09QX09QRU4uYnVmZmVyX3N6 LCBQQUdFX1NJWkUpOworICovCisKK3N0cnVjdCB4ZW5zbmRfcGFnZV9kaXJlY3RvcnkgeworICAg IGdyYW50X3JlZl90IGdyZWZfZGlyX25leHRfcGFnZTsKKyAgICBncmFudF9yZWZfdCBncmVmWzFd OyAvKiBWYXJpYWJsZSBsZW5ndGggKi8KK307CisKKy8qCisgKiAgUmVxdWVzdCBjbG9zZSAtIGNs b3NlIGFuIG9wZW5lZCBwY20gc3RyZWFtOgorICogICAgICAgICAgMCAgICAgICAgICAgICAgICAg MSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwg WEVOU05EX09QX0NMT1NFIHwgICAgIHN0cmVhbV9pZHggIHwKKyAqICstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsK KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmcgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAq LworCitzdHJ1Y3QgeGVuc25kX2Nsb3NlX3JlcSB7CisgICAgLyogcGxhY2UgaG9sZGVyLCByZW1v dmUgaWYgY2hhbmdpbmcgdGhlIHN0cnVjdHVyZSAqLworICAgIHVpbnQ4X3QgcGxhY2Vob2xkZXI7 Cit9OworCisvKgorICogUmVxdWVzdCByZWFkL3dyaXRlIC0gdXNlZCBmb3IgcmVhZCAoZm9yIGNh cHR1cmUpIG9yIHdyaXRlIChmb3IgcGxheWJhY2spOgorICogICAgICAgICAgMCAgICAgICAgICAg ICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQK KyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgIGlkICAgICAgICAgICAg ICAgIHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9pZHggIHwKKyAqICstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmcgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAq ICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBvcGVyYXRpb24gLSBYRU5TTkRf T1BfUkVBRCBmb3IgcmVhZCBvciBYRU5TTkRfT1BfV1JJVEUgZm9yIHdyaXRlCisgKiBvZmZzZXQg LSB1aW50MzJfdCwgcmVhZCBvciB3cml0ZSBkYXRhIG9mZnNldCB3aXRoaW4gdGhlIHNoYXJlZCBi dWZmZXIKKyAqICAgcGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gcmVxdWVzdAorICogbGVuZ3Ro IC0gdWludDMyX3QsIHJlYWQgb3Igd3JpdGUgZGF0YSBsZW5ndGgKKyAqLworCitzdHJ1Y3QgeGVu c25kX3J3X3JlcSB7CisgICAgdWludDMyX3Qgb2Zmc2V0OworICAgIHVpbnQzMl90IGxlbjsKK307 CisKKy8qCisgKiBSZXF1ZXN0IHNldC9nZXQgdm9sdW1lIC0gc2V0L2dldCBjaGFubmVscycgdm9s dW1lIG9mIHRoZSBzdHJlYW0gZ2l2ZW46CisgKiAgICAgICAgICAwICAgICAgICAgICAgICAgICAx ICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAg ICBvcGVyYXRpb24gICAgfCAgICAgc3RyZWFtX2lkeCAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwor ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoK KyAqIG9wZXJhdGlvbiAtIFhFTlNORF9PUF9TRVRfVk9MVU1FIGZvciB2b2x1bWUgc2V0CisgKiAg IG9yIFhFTlNORF9PUF9HRVRfVk9MVU1FIGZvciB2b2x1bWUgZ2V0CisgKiBCdWZmZXIgcGFzc2Vk IHdpdGggWEVOU05EX09QX09QRU4gaXMgdXNlZCB0byBleGNoYW5nZSB2b2x1bWUKKyAqIHZhbHVl czoKKyAqCisgKiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAg MiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICog fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsWzBdICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogKy9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv fAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjaGFubmVsW2ldICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogKy9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogICAg ICAgICAgICAgICAgICBjaGFubmVsW1hFTlNORF9PUF9PUEVOLnBjbV9jaGFubmVscyAtIDFdICAg ICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGNoYW5uZWxbaV0gLSBz aW50MzJfdCwgdm9sdW1lIG9mIGktdGggY2hhbm5lbAorICogVm9sdW1lIGlzIGV4cHJlc3NlZCBh cyBhIHNpZ25lZCB2YWx1ZSBpbiBzdGVwcyBvZiAwLjAwMSBkQiwKKyAqIHdoaWxlIDAgYmVpbmcg MCBkQi4KKyAqLworCitzdHJ1Y3QgeGVuc25kX2dldF92b2xfcmVxIHsKKyAgICAvKiBwbGFjZSBo b2xkZXIsIHJlbW92ZSBpZiBjaGFuZ2luZyB0aGUgc3RydWN0dXJlICovCisgICAgdWludDhfdCBw bGFjZWhvbGRlcjsKK307CisKK3N0cnVjdCB4ZW5zbmRfc2V0X3ZvbF9yZXEgeworICAgIC8qIHBs YWNlIGhvbGRlciwgcmVtb3ZlIGlmIGNoYW5naW5nIHRoZSBzdHJ1Y3R1cmUgKi8KKyAgICB1aW50 OF90IHBsYWNlaG9sZGVyOworfTsKKworLyoKKyAqIFJlcXVlc3QgbXV0ZS91bm11dGUgLSBtdXRl L3VubXV0ZSBzdHJlYW06CisgKiAgICAgICAgICAwICAgICAgICAgICAgICAgICAxICAgICAgICAg ICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKworICogfCAgICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRp b24gICAgfCAgICAgc3RyZWFtX2lkeCAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICog Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t KworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIG9wZXJh dGlvbiAtIFhFTlNORF9PUF9NVVRFIGZvciBtdXRlIG9yIFhFTlNORF9PUF9VTk1VVEUgZm9yIHVu bXV0ZQorICogQnVmZmVyIHBhc3NlZCB3aXRoIFhFTlNORF9PUF9PUEVOIGlzIHVzZWQgdG8gZXhj aGFuZ2UgbXV0ZS91bm11dGUKKyAqIHZhbHVlczoKKyAqCisgKiAgICAgICAgICAwICAgICAgICAg ICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAzICAgICAgICBvY3Rl dAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgIGNoYW5uZWxbMF0gICAgfCAgIGNoYW5uZWxb MV0gICAgfCAgIGNoYW5uZWxbMl0gICAgfCAgIGNoYW5uZWxbM10gICAgfAorICogKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKworICogKy9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAg IGNoYW5uZWxbaV0gICAgfCAgIGNoYW5uZWxbaSsxXSAgfCAgIGNoYW5uZWxbaSsyXSAgfCAgIGNo YW5uZWxbaSszXSAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogKy9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGNoYW5uZWxbaV0gLSB1aW50OF90LCBub24temVy byBpZiBpLXRoIGNoYW5uZWwgbmVlZHMgdG8gYmUgbXV0ZWQvdW5tdXRlZAorICogTnVtYmVyIG9m IGNoYW5uZWxzIHBhc3NlZCBpcyBlcXVhbCB0byBYRU5TTkRfT1BfT1BFTiByZXF1ZXN0IHBjbV9j aGFubmVscworICogZmllbGQKKyAqLworCitzdHJ1Y3QgeGVuc25kX211dGVfcmVxIHsKKyAgICAv KiBwbGFjZSBob2xkZXIsIHJlbW92ZSBpZiBjaGFuZ2luZyB0aGUgc3RydWN0dXJlICovCisgICAg dWludDhfdCBwbGFjZWhvbGRlcjsKK307CisKK3N0cnVjdCB4ZW5zbmRfdW5tdXRlX3JlcSB7Cisg ICAgLyogcGxhY2UgaG9sZGVyLCByZW1vdmUgaWYgY2hhbmdpbmcgdGhlIHN0cnVjdHVyZSAqLwor ICAgIHVpbnQ4X3QgcGxhY2Vob2xkZXI7Cit9OworCisvKgorICogQWxsIHJlc3BvbnNlIHBhY2tl dHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDMyIG9jdGV0cykKKyAqCisgKiBSZXNwb25zZSBmb3Ig YWxsIHJlcXVlc3RzOgorICogICAgICAgICAgMCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAg ICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwgICAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9u ICAgIHwgICAgIHN0cmVhbV9pZHggIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICBzdGF0dXMgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsK KyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBjb3BpZWQg ZnJvbSB0aGUgcmVxdWVzdAorICogc3RyZWFtX2lkeCAtIHVpbnQ4X3QsIGNvcGllZCBmcm9tIHJl cXVlc3QKKyAqIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIFhFTlNORF9PUF9YWFggLSBjb3BpZWQgZnJv bSByZXF1ZXN0CisgKiBzdGF0dXMgLSBpbnQ4X3QsIHJlc3BvbnNlIHN0YXR1cyAoWEVOU05EX1JT UF8/Pz8pCisgKi8KKworc3RydWN0IHhlbnNuZF9yZXEgeworICAgIHVpbnQxNl90IGlkOworICAg IHVpbnQ4X3Qgb3BlcmF0aW9uOworICAgIHVpbnQ4X3Qgc3RyZWFtX2lkeDsKKyAgICB1aW50MzJf dCByZXNlcnZlZDsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4ZW5zbmRfb3Blbl9yZXEg b3BlbjsKKyAgICAgICAgc3RydWN0IHhlbnNuZF9jbG9zZV9yZXEgY2xvc2U7CisgICAgICAgIHN0 cnVjdCB4ZW5zbmRfcndfcmVxIHdyaXRlOworICAgICAgICBzdHJ1Y3QgeGVuc25kX3J3X3JlcSBy ZWFkOworICAgICAgICBzdHJ1Y3QgeGVuc25kX2dldF92b2xfcmVxIGdldF92b2w7CisgICAgICAg IHN0cnVjdCB4ZW5zbmRfc2V0X3ZvbF9yZXEgc2V0X3ZvbDsKKyAgICAgICAgc3RydWN0IHhlbnNu ZF9tdXRlX3JlcSBtdXRlOworICAgICAgICBzdHJ1Y3QgeGVuc25kX3VubXV0ZV9yZXEgdW5tdXRl OworICAgICAgICB1aW50OF90IHBhZGRpbmdbMjRdOworICAgIH0gb3A7Cit9OworCitzdHJ1Y3Qg eGVuc25kX3Jlc3AgeworICAgIHVpbnQxNl90IGlkOworICAgIHVpbnQ4X3Qgb3BlcmF0aW9uOwor ICAgIHVpbnQ4X3Qgc3RyZWFtX2lkeDsKKyAgICBpbnQ4X3Qgc3RhdHVzOworICAgIHVpbnQ4X3Qg cGFkZGluZ1syNl07Cit9OworCitERUZJTkVfUklOR19UWVBFUyh4ZW5fc25kaWYsIHN0cnVjdCB4 ZW5zbmRfcmVxLCBzdHJ1Y3QgeGVuc25kX3Jlc3ApOworCisjZW5kaWYgLyogX19YRU5fUFVCTElD X0lPX1NORElGX0hfXyAqLwotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK