From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v12] This is the ABI for the two halves of a para-virtualized sound driver to communicate with each to other. Date: Fri, 25 Nov 2016 13:57:45 +0200 Message-ID: <1480075065-4007-2-git-send-email-andr2000@gmail.com> References: <1480075065-4007-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: <1480075065-4007-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 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 X1hFTl9QVUJMSUNfSU9fU05ESUZfSF9fCi0tLQotLS0KIHhlbi9pbmNsdWRlL3B1YmxpYy9pby9z bmRpZi5oIHwgNzA5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDcwOSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVu L2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmgKCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJs aWMvaW8vc25kaWYuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRpZi5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkNzc4NGUKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4v aW5jbHVkZS9wdWJsaWMvaW8vc25kaWYuaApAQCAtMCwwICsxLDcwOSBAQAorLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICogc25kaWYuaAorICoKKyAqIFVuaWZpZWQgc291bmQtZGV2aWNlIEkvTyBp bnRlcmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkK KyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0 cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1 c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us IGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl cnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQg aW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJl LgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVW RU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQg KEMpIDIwMTMtMjAxNSBHbG9iYWxMb2dpYyBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgRVBB TSBTeXN0ZW1zIEluYy4KKyAqCisgKiBBdXRob3JzOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8 T2xla3NhbmRyX0FuZHJ1c2hjaGVua29AZXBhbS5jb20+CisgKiAgICAgICAgICBPbGVrc2FuZHIg R3J5dHNvdiA8T2xla3NhbmRyX0dyeXRzb3ZAZXBhbS5jb20+CisgKiAgICAgICAgICBPbGVrc2Fu ZHIgRG15dHJ5c2h5biA8b2xla3NhbmRyLmRteXRyeXNoeW5AZ2xvYmFsbG9naWMuY29tPgorICog ICAgICAgICAgSXVyaWkgS29ub3ZhbGVua28gPGl1cmlpLmtvbm92YWxlbmtvQGdsb2JhbGxvZ2lj LmNvbT4KKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19JT19TTkRJRl9IX18KKyNkZWZpbmUg X19YRU5fUFVCTElDX0lPX1NORElGX0hfXworCisjaW5jbHVkZSAicmluZy5oIgorI2luY2x1ZGUg Ii4uL2dyYW50X3RhYmxlLmgiCisKKy8qCisgKiBGcm9udC0+YmFjayBub3RpZmljYXRpb25zOiBX aGVuIGVucXVldWluZyBhIG5ldyByZXF1ZXN0LCBzZW5kaW5nIGEKKyAqIG5vdGlmaWNhdGlvbiBj YW4gYmUgbWFkZSBjb25kaXRpb25hbCBvbiByZXFfZXZlbnQgKGkuZS4sIHRoZSBnZW5lcmljCisg KiBob2xkLW9mZiBtZWNoYW5pc20gcHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gQmFja2Vu ZHMgbXVzdCBzZXQKKyAqIHJlcV9ldmVudCBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5H X0ZJTkFMX0NIRUNLX0ZPUl9SRVFVRVNUUygpKS4KKyAqCisgKiBCYWNrLT5mcm9udCBub3RpZmlj YXRpb25zOiBXaGVuIGVucXVldWluZyBhIG5ldyByZXNwb25zZSwgc2VuZGluZyBhCisgKiBub3Rp ZmljYXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24gcnNwX2V2ZW50IChpLmUuLCB0aGUg Z2VuZXJpYworICogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3Jv cykuIEZyb250ZW5kcyBtdXN0IHNldAorICogcnNwX2V2ZW50IGFwcHJvcHJpYXRlbHkgKGUuZy4s IHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFU1BPTlNFUygpKS4KKyAqLworCisvKgorICog RmVhdHVyZSBhbmQgUGFyYW1ldGVyIE5lZ290aWF0aW9uCisgKiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgUGFyYS12aXJ0dWFsIHNvdW5k IGNhcmQgZHJpdmVyIHV0aWxpemUgbm9kZXMgd2l0aGluIHRoZQorICogWGVuU3RvcmUgdG8gY29t bXVuaWNhdGUgY2FwYWJpbGl0aWVzIGFuZCB0byBuZWdvdGlhdGUgb3BlcmF0aW5nIHBhcmFtZXRl cnMuCisgKiBUaGlzIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2RlcyB3aGljaCByZXNpZGUg aW4gdGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCisgKiBiYWNrZW5kIHBvcnRpb25zIG9mIHRoZSBY ZW5TdG9yZSwgZm9sbG93aW5nIHRoZSBYZW5CdXMgY29udmVudGlvbi4KKyAqCisgKiBBbGwgZGF0 YSBpbiB0aGUgWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuICBOb2RlcyBzcGVjaWZ5aW5n IG51bWVyaWMKKyAqIHZhbHVlcyBhcmUgZW5jb2RlZCBpbiBkZWNpbWFsLiAgSW50ZWdlciB2YWx1 ZSByYW5nZXMgbGlzdGVkIGJlbG93IGFyZQorICogZXhwcmVzc2VkIGFzIGZpeGVkIHNpemVkIGlu dGVnZXIgdHlwZXMgY2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252ZXJzaW9uCisgKiBvZiBhIHBy b3Blcmx5IGZvcm1hdGVkIG5vZGUgc3RyaW5nLCB3aXRob3V0IGxvc3Mgb2YgaW5mb3JtYXRpb24u CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCYWNrZW5kIFhlbkJ1cyBOb2RlcworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBZGRyZXNzaW5nIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEluZGljZXMgdXNlZCB0byBhZGRyZXNzIGZyb250ZW5k cywgZHJpdmVyIGluc3RhbmNlcywgY2FyZHMsCisgKiBkZXZpY2VzIGFuZCBzdHJlYW1zLgorICoK KyAqIGZyb250ZW5kX2lkCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAg ICAgIERvbWFpbiBJRCBvZiB0aGUgc291bmQgZnJvbnRlbmQuCisgKgorICogZHJ2X2lkeAorICog ICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBaZXJvIGJhc2VkIGNvbnRp Z3VvdXMgaW5kZXggb2YgdGhlIHZpcnR1YWxpemVkIHNvdW5kIGRyaXZlciBpbnN0YW5jZSBpbgor ICogICAgICB0aGlzIGRvbWFpbi4gTXVsdGlwbGUgUFYgZHJpdmVycyBhcmUgYWxsb3dlZCBpbiB0 aGUgZG9tYWluCisgKiAgICAgIGF0IHRoZSBzYW1lIHRpbWUuCisgKgorICogZGV2X2lkCisgKiAg ICAgIFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFVuaXF1ZSBkZXZpY2UgSUQu CisgKiAgICAgIERvZXNuJ3QgaGF2ZSB0byBiZSB6ZXJvIGJhc2VkIGFuZC9vciB0byBiZSBjb250 aWd1b3VzLgorICoKKyAqIHN0cmVhbV9pZHgKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50 PgorICoKKyAqICAgICAgWmVybyBiYXNlZCBjb250aWd1b3VzIGluZGV4IG9mIHRoZSBzdHJlYW0g b2YgdGhlIGRldmljZS4KKyAqCisgKiBFeGFtcGxlIGZvciB0aGUgZnJvbnRlbmQgcnVubmluZyBp biBkb21haW4gNSwgaW5zdGFuY2Ugb2YgdGhlIGRyaXZlcgorICogaW4gdGhlIGZyb250IGlzIDAg KHNpbmdsZSBvciBmaXJzdCBQViBkcml2ZXIpLCBkZXZpY2UgaWQgMiwKKyAqIGZpcnN0IHN0cmVh bSAoMCk6CisgKiAvbG9jYWwvZG9tYWluLzxmcm9udGVuZF9pZD4vZGV2aWNlL3ZzbmQvPGRydl9p ZHg+LworICogICAgICAgICBkZXZpY2UvPGRldl9pZD4vc3RyZWFtLzxzdHJlYW1faWR4Pi90eXBl ID0gInAiCisgKiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9kZXZpY2UvMi9zdHJlYW0v MC90eXBlID0gInAiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBDTSBz ZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEV2ZXJ5IHZp cnR1YWxpemVkIHNvdW5kIGZyb250ZW5kIGhhcyBzZXQgb2YgZGV2aWNlcyBhbmQgc3RyZWFtcywg ZWFjaAorICogaXMgaW5kaXZpZHVhbGx5IGNvbmZpZ3VyZWQuIFBhcnQgb2YgdGhlIFBDTSBjb25m aWd1cmF0aW9uIGNhbiBiZSBkZWZpbmVkIGF0CisgKiBoaWdoZXIgbGV2ZWwgYW5kIGJlIGZ1bGx5 IG9yIHBhcnRpYWxseSByZS11c2VkIGJ5IHRoZSB1bmRlcmx5aW5nIGxheWVycy4KKyAqIFRoZXNl IGNvbmZpZ3VyYXRpb24gdmFsdWVzIGFyZToKKyAqICBvIG51bWJlciBvZiBjaGFubmVscyAobWlu L21heCkKKyAqICBvIHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMKKyAqICBvIHN1cHBvcnRlZCBzYW1w bGUgZm9ybWF0cy4KKyAqIEUuZy4gb25lIGNhbiBkZWZpbmUgdGhlc2UgdmFsdWVzIGZvciB0aGUg d2hvbGUgZHJpdmVyLCBkZXZpY2Ugb3Igc3RyZWFtLgorICogRXZlcnkgdW5kZXJseWluZyBsYXll ciBpbiB0dXJuIGNhbiByZS1kZWZpbmUgc29tZSBvciBhbGwgb2YgdGhlbSB0byBiZXR0ZXIKKyAq IGZpdCBpdHMgbmVlZHMuIEZvciBleGFtcGxlLCBkcml2ZXIgbWF5IGRlZmluZSBudW1iZXIgb2Yg Y2hhbm5lbHMgdG8gYmUKKyAqIGluIFsxOyA4XSByYW5nZSwgYW5kIHNvbWUgcGFydGljdWxhciBz dHJlYW0gbWF5IGJlIGxpbWl0ZWQgdG8gWzE7IDJdIG9ubHkuCisgKiBUaGUgcnVsZSBpcyB0aGF0 IHRoZSB1bmRlcmx5aW5nIGxheWVyIG11c3QgYmUgYSBzdWJzZXQgb2YgdGhlIHVwcGVyIGxheWVy CisgKiByYW5nZS4KKyAqCisgKiBOb3RlOiBpZiBhbnkgb2YgdGhlIHZhbHVlcyBhcmUgbm90IGRl ZmluZWQgdGhlbiBQViBkcml2ZXIgc2hvdWxkIHVzZQorICogaXRzIGRlZmF1bHQgdmFsdWVzIGlu c3RlYWQuCisgKgorICogY2hhbm5lbHMtbWluCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWlu dD4KKyAqCisgKiAgICAgIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBjaGFubmVscyB0aGF0IGlzIHN1 cHBvcnRlZC4KKyAqICAgICAgTXVzdCBiZSBhdCBsZWFzdCAxLiBJZiBub3QgZGVmaW5lZCB0aGVu IHVzZSBmcm9udGVuZCdzIGRlZmF1bHQuCisgKgorICogY2hhbm5lbHMtbWF4CisgKiAgICAgIFZh bHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBj aGFubmVscyB0aGF0IGlzIHN1cHBvcnRlZC4KKyAqICAgICAgTXVzdCBiZSBhdCBsZWFzdCA8Y2hh bm5lbHMtbWluPi4gSWYgbm90IGRlZmluZWQgdGhlbiB1c2UgZnJvbnRlbmQncworICogICAgICBk ZWZhdWx0LgorICoKKyAqIHNhbXBsZS1yYXRlcworICogICAgICBWYWx1ZXM6ICAgICAgICAgPGxp c3Qgb2YgdWludHM+CisgKgorICogICAgICBMaXN0IG9mIHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMg c2VwYXJhdGVkIGJ5IFhFTlNORF9MSVNUX1NFUEFSQVRPUi4KKyAqICAgICAgSWYgbm90IGRlZmlu ZWQgdGhlbiB1c2UgZnJvbnRlbmQncyBkZWZhdWx0LiBTYW1wbGUgcmF0ZXMgYXJlIGV4cHJlc3Nl ZAorICogICAgICBhcyBhIGxpc3Qgb2YgZGVjaW1hbCB2YWx1ZXMgdy9vIGFueSBvcmRlcmluZyBy ZXF1aXJlbWVudC4KKyAqCisgKiBzYW1wbGUtZm9ybWF0cworICogICAgICBWYWx1ZXM6ICAgICAg ICAgPGxpc3Qgb2YgWEVOU05EX1BDTV9GT1JNQVRfWFhYX1NUUj4KKyAqCisgKiAgICAgIExpc3Qg b2Ygc3VwcG9ydGVkIHNhbXBsZSBmb3JtYXRzIHNlcGFyYXRlZCBieSBYRU5TTkRfTElTVF9TRVBB UkFUT1IuCisgKiAgICAgIElmIG5vdCBkZWZpbmVkIHRoZW4gdXNlIGZyb250ZW5kJ3MgZGVmYXVs dC4KKyAqCisgKiBidWZmZXItc2l6ZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+Cisg KgorICogICAgICBUaGUgbWF4aW11bSBzaXplIGluIG9jdGV0cyBvZiB0aGUgYnVmZmVyIHRvIGFs bG9jYXRlIHBlciBzdHJlYW0uCisgKgorICogRXhhbXBsZSBjb25maWd1cmF0aW9uOgorICoKKyAq IERyaXZlciBjb25maWd1cmF0aW9uIHVzZWQgYnkgYWxsIHN0cmVhbXM6CisgKiAvbG9jYWwvZG9t YWluLzUvZGV2aWNlL3ZzbmQvMC9zYW1wbGUtZm9ybWF0cyA9ICJzODt1ODtzMTZfbGU7czE2X2Jl IgorICogU3RyZWFtIG92ZXJyaWRlcyBzYW1wbGUgcmF0ZXMgc3VwcG9ydGVkOgorICogL2xvY2Fs L2RvbWFpbi81L2RldmljZS92c25kLzAvZGV2aWNlLzIvc3RyZWFtLzAvc2FtcGxlLXJhdGVzID0K KyAqICAgICAgICAiODAwMDsyMjA1MDs0NDEwMDs0ODAwMCIKKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIFZpcnR1YWwgc291bmQgY2FyZCBzZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICogc2hvcnQtbmFtZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgPGNoYXJbMzJd PgorICoKKyAqICAgICAgU2hvcnQgbmFtZSBvZiB0aGUgdmlydHVhbCBzb3VuZCBjYXJkLiBPcHRp b25hbC4KKyAqCisgKiBsb25nLW5hbWUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxjaGFyWzgw XT4KKyAqCisgKiAgICAgIExvbmcgbmFtZSBvZiB0aGUgdmlydHVhbCBzb3VuZCBjYXJkLiBPcHRp b25hbC4KKyAqCisgKiBGb3IgZXhhbXBsZSwKKyAqIC9sb2NhbC9kb21haW4vNS9kZXZpY2UvdnNu ZC8wL3Nob3J0LW5hbWUgPSAiVmlydHVhbCBhdWRpbyIKKyAqIC9sb2NhbC9kb21haW4vNS9kZXZp Y2UvdnNuZC8wL2xvbmctbmFtZSA9CisgKiAgICAgICAgICJWaXJ0dWFsIGF1ZGlvIGF0IGNlbnRl ciBzdGFjayIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERldmljZSBzZXR0 aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogbmFtZQorICogICAgICBW YWx1ZXM6ICAgICAgICAgPGNoYXJbODBdPgorICoKKyAqICAgICAgTmFtZSBvZiB0aGUgc291bmQg ZGV2aWNlIHdpdGhpbiB0aGUgdmlydHVhbCBzb3VuZCBjYXJkLiBPcHRpb25hbC4KKyAqCisgKiBG b3IgZXhhbXBsZSwKKyAqIC9sb2NhbC9kb21haW4vNS9kZXZpY2UvdnNuZC8wL2RldmljZS8wL25h bWUgPSAiR2VuZXJhbCBhbmFsb2ciCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSBTdHJlYW0gc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IHR5cGUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgICJwIiwgImMiCisgKgorICogICAgICBTdHJl YW0gdHlwZTogInAiIC0gcGxheWJhY2sgc3RyZWFtLCAiYyIgLSBjYXB0dXJlIHN0cmVhbQorICoK KyAqICAgICAgSWYgYm90aCBjYXB0dXJlIGFuZCBwbGF5YmFjayBhcmUgbmVlZGVkIHRoZW4gdHdv IHN0cmVhbXMgbmVlZCB0byBiZQorICogICAgICBkZWZpbmVkIHVuZGVyIHRoZSBzYW1lIGRldmlj ZS4gRm9yIGV4YW1wbGUsCisgKiAgICAgIC9sb2NhbC9kb21haW4vNS9kZXZpY2UvdnNuZC8wL2Rl dmljZS8wL3N0cmVhbS8wL3R5cGUgPSAicCIKKyAqICAgICAgL2xvY2FsL2RvbWFpbi81L2Rldmlj ZS92c25kLzAvZGV2aWNlLzAvc3RyZWFtLzEvdHlwZSA9ICJjIgorICoKKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVuQnVzIE5v ZGVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IFJlcXVlc3QgVHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiBUaGVzZSBhcmUgcGVyIHN0cmVhbS4KKyAqCisgKiBldmVudC1jaGFubmVsCisgKiAgICAg IFZhbHVlczogICAgICAgICA8dWludD4KKyAqCisgKiAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRo ZSBYZW4gZXZlbnQgY2hhbm5lbCB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eQorICogICAgICBpbiB0 aGUgcmluZyBidWZmZXIuCisgKgorICogcmluZy1yZWYKKyAqICAgICAgVmFsdWVzOiAgICAgICAg IDx1aW50PgorICoKKyAqICAgICAgVGhlIFhlbiBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcgcGVy bWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwCisgKiAgICAgIGEgc29sZSBwYWdlIGluIGEg c2luZ2xlIHBhZ2Ugc2l6ZWQgcmluZyBidWZmZXIuCisgKgorICogaW5kZXgKKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDx1aW50PgorICoKKyAqICAgICAgQWZ0ZXIgc3RyZWFtIGluaXRpYWxpemF0 aW9uIGl0IGlzIGFzc2lnbmVkIGEgdW5pcXVlIElEICh3aXRoaW4gdGhlIGZyb250CisgKiAgICAg IGRyaXZlciksIHNvIGV2ZXJ5IHN0cmVhbSBvZiB0aGUgZnJvbnRlbmQgY2FuIGJlIGlkZW50aWZp ZWQgYnkgdGhlCisgKiAgICAgIGJhY2tlbmQgYnkgdGhpcyBJRC4gVGhpcyBpcyBub3QgZXF1YWwg dG8gc3RyZWFtX2lkeCBhcyB0aGUgbGF0ZXIgaXMKKyAqICAgICAgemVybyBiYXNlZCB3aXRoaW4g YSBkZXZpY2UsIGJ1dCB0aGlzIGluZGV4IGlzIGNvbnRpZ3VvdXMgd2l0aGluIHRoZQorICogICAg ICBkcml2ZXIuCisgKi8KKworLyoKKyAqIFNUQVRFIERJQUdSQU1TCisgKgorICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnR1cCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor ICoKKyAqIFRvb2wgc3RhY2sgY3JlYXRlcyBmcm9udCBhbmQgYmFjayBzdGF0ZSBub2RlcyB3aXRo IGluaXRpYWwgc3RhdGUKKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nLgorICogVG9vbCBzdGFj ayBjcmVhdGVzIGFuZCBzZXRzIHVwIGZyb250ZW5kIHNvdW5kIGNvbmZpZ3VyYXRpb24gbm9kZXMg cGVyIGRvbWFpbi4KKyAqCisgKiBGcm9udCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QmFjaworICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAgID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nICAg ICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZworICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvIFF1ZXJ5IGJhY2tlbmQgZGV2aWNlIGlkZW50aWZpY2F0aW9u CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS4KKyAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBPcGVuIGFuZCB2YWxpZGF0ZSBi YWNrZW5kIGRldmljZS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFYKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBYZW5idXNTdGF0ZUluaXRXYWl0CisgKgorICogbyBRdWVyeSBmcm9udGVuZCBjb25maWd1 cmF0aW9uCisgKiBvIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplCisgKiAgIGV2ZW50IGNoYW5uZWxz IHBlciBjb25maWd1cmVkCisgKiAgIHBsYXliYWNrL2NhcHR1cmUgc3RyZWFtLgorICogbyBQdWJs aXNoIHRyYW5zcG9ydCBwYXJhbWV0ZXJzCisgKiAgIHRoYXQgd2lsbCBiZSBpbiBlZmZlY3QgZHVy aW5nCisgKiAgIHRoaXMgY29ubmVjdGlvbi4KKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAg ICAgICAgfAorICogICAgICAgICAgICAgIFYKKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQKKyAq CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgZnJvbnRl bmQgdHJhbnNwb3J0IHBhcmFtZXRlcnMuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG8gQ29ubmVjdCB0byB0aGUgZXZlbnQgY2hhbm5lbHMuCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCisgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDb25uZWN0ZWQKKyAq CisgKiAgbyBDcmVhdGUgYW5kIGluaXRpYWxpemUgT1MKKyAqICB2aXJ0dWFsIHNvdW5kIGRldmlj ZSBpbnN0YW5jZXMKKyAqICBhcyBwZXIgY29uZmlndXJhdGlvbi4KKyAqICAgICAgICAgICAgICB8 CisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIFYKKyAqIFhlbmJ1c1N0YXRlQ29u bmVjdGVkCisgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1 c1N0YXRlVW5rbm93bgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhl bmJ1c1N0YXRlQ2xvc2VkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WGVuYnVzU3RhdGVDbG9zaW5nCisgKiBvIFJlbW92ZSB2aXJ0dWFsIHNvdW5kIGRldmljZQorICog byBSZW1vdmUgZXZlbnQgY2hhbm5lbHMKKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAg ICAgfAorICogICAgICAgICAgICAgIFYKKyAqIFhlbmJ1c1N0YXRlQ2xvc2VkCisgKgorICovCisK Ky8qCisgKiBQQ00gRk9STUFUUworICoKKyAqIFhFTlNORF9QQ01fRk9STUFUXzxmb3JtYXQ+W188 ZW5kaWFuPl0KKyAqCisgKiBmb3JtYXQ6IDxTL1UvRj48Yml0cz4gb3IgPG5hbWU+CisgKiAgICAg UyAtIHNpZ25lZCwgVSAtIHVuc2lnbmVkLCBGIC0gZmxvYXQKKyAqICAgICBiaXRzIC0gOCwgMTYs IDI0LCAzMgorICogICAgIG5hbWUgLSBNVV9MQVcsIEdTTSwgZXRjLgorICoKKyAqIGVuZGlhbjog PExFL0JFPiwgbWF5IGJlIGFic2VudAorICogICAgIExFIC0gTGl0dGxlIGVuZGlhbiwgQkUgLSBC aWcgZW5kaWFuCisgKi8KKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzggICAgICAgICAgICAw CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1U4ICAgICAgICAgICAgMQorI2RlZmluZSBYRU5T TkRfUENNX0ZPUk1BVF9TMTZfTEUgICAgICAgIDIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRf UzE2X0JFICAgICAgICAzCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UxNl9MRSAgICAgICAg NAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMTZfQkUgICAgICAgIDUKKyNkZWZpbmUgWEVO U05EX1BDTV9GT1JNQVRfUzI0X0xFICAgICAgICA2CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU X1MyNF9CRSAgICAgICAgNworI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRfTEUgICAgICAg IDgKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTI0X0JFICAgICAgICA5CisjZGVmaW5lIFhF TlNORF9QQ01fRk9STUFUX1MzMl9MRSAgICAgICAgMTAKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfUzMyX0JFICAgICAgICAxMQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMzJfTEUgICAg ICAgIDEyCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9CRSAgICAgICAgMTMKKyNkZWZp bmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0xFICAgICAgICAxNCAvKiA0LWJ5dGUgZmxvYXQsIElF RUUtNzU0IDMyLWJpdCwgKi8KKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0JFICAgICAg ICAxNSAvKiByYW5nZSAtMS4wIHRvIDEuMCAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgWEVOU05E X1BDTV9GT1JNQVRfRjY0X0xFICAgICAgICAxNiAvKiA4LWJ5dGUgZmxvYXQsIElFRUUtNzU0IDY0 LWJpdCwgKi8KKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjY0X0JFICAgICAgICAxNyAvKiBy YW5nZSAtMS4wIHRvIDEuMCAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfSUVDOTU4X1NVQkZSQU1FX0xFIDE4CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1 OF9TVUJGUkFNRV9CRSAxOQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NVV9MQVcgICAgICAg IDIwCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0FfTEFXICAgICAgICAgMjEKKyNkZWZpbmUg WEVOU05EX1BDTV9GT1JNQVRfSU1BX0FEUENNICAgICAyMgorI2RlZmluZSBYRU5TTkRfUENNX0ZP Uk1BVF9NUEVHICAgICAgICAgIDIzCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0dTTSAgICAg ICAgICAgMjQKKworLyoKKyAqIFJFUVVFU1QgQ09ERVMuCisgKi8KKyNkZWZpbmUgWEVOU05EX09Q X09QRU4gICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFhFTlNORF9PUF9DTE9TRSAgICAgICAg ICAgICAgICAgMQorI2RlZmluZSBYRU5TTkRfT1BfUkVBRCAgICAgICAgICAgICAgICAgIDIKKyNk ZWZpbmUgWEVOU05EX09QX1dSSVRFICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIFhFTlNORF9P UF9TRVRfVk9MVU1FICAgICAgICAgICAgNAorI2RlZmluZSBYRU5TTkRfT1BfR0VUX1ZPTFVNRSAg ICAgICAgICAgIDUKKyNkZWZpbmUgWEVOU05EX09QX01VVEUgICAgICAgICAgICAgICAgICA2Cisj ZGVmaW5lIFhFTlNORF9PUF9VTk1VVEUgICAgICAgICAgICAgICAgNworCisvKgorICogWEVOU1RP UkUgRklFTEQgQU5EIFBBVEggTkFNRSBTVFJJTkdTLCBIRUxQRVJTLgorICovCisjZGVmaW5lIFhF TlNORF9EUklWRVJfTkFNRSAgICAgICAgICAgICAgICAgICAidnNuZCIKKworI2RlZmluZSBYRU5T TkRfTElTVF9TRVBBUkFUT1IgICAgICAgICAgICAgICAgIjsiCisvKiBQYXRoIGVudHJpZXMgKi8K KyNkZWZpbmUgWEVOU05EX1BBVEhfREVWSUNFICAgICAgICAgICAgICAgICAgICJkZXZpY2UiCisj ZGVmaW5lIFhFTlNORF9QQVRIX1NUUkVBTSAgICAgICAgICAgICAgICAgICAic3RyZWFtIgorLyog RmllbGQgbmFtZXMgKi8KKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1ZDQVJEX1NIT1JUX05BTUUgICAg ICAgICJzaG9ydC1uYW1lIgorI2RlZmluZSBYRU5TTkRfRklFTERfVkNBUkRfTE9OR19OQU1FICAg ICAgICAgImxvbmctbmFtZSIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1JJTkdfUkVGICAgICAgICAg ICAgICAgICJyaW5nLXJlZiIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0VWVF9DSE5MICAgICAgICAg ICAgICAgICJldmVudC1jaGFubmVsIgorI2RlZmluZSBYRU5TTkRfRklFTERfREVWSUNFX05BTUUg ICAgICAgICAgICAgIm5hbWUiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9UWVBFICAgICAgICAgICAg ICAgICAgICAidHlwZSIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1NUUkVBTV9JTkRFWCAgICAgICAg ICAgICJpbmRleCIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0NIQU5ORUxTX01JTiAgICAgICAgICAg ICJjaGFubmVscy1taW4iCisjZGVmaW5lIFhFTlNORF9GSUVMRF9DSEFOTkVMU19NQVggICAgICAg ICAgICAiY2hhbm5lbHMtbWF4IgorI2RlZmluZSBYRU5TTkRfRklFTERfU0FNUExFX1JBVEVTICAg ICAgICAgICAgInNhbXBsZS1yYXRlcyIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1NBTVBMRV9GT1JN QVRTICAgICAgICAgICJzYW1wbGUtZm9ybWF0cyIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0JVRkZF Ul9TSVpFICAgICAgICAgICAgICJidWZmZXItc2l6ZSIKKworLyogU3RyZWFtIHR5cGUgZmllbGQg dmFsdWVzLiAqLworI2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVfUExBWUJBQ0sgICAgICAgICAg InAiCisjZGVmaW5lIFhFTlNORF9TVFJFQU1fVFlQRV9DQVBUVVJFICAgICAgICAgICAiYyIKKy8q IFNhbXBsZSByYXRlIG1heCBzdHJpbmcgbGVuZ3RoICovCisjZGVmaW5lIFhFTlNORF9TQU1QTEVf UkFURV9NQVhfTEVOICAgICAgICAgICAgNgorLyogU2FtcGxlIGZvcm1hdCBmaWVsZCB2YWx1ZXMg Ki8KKyNkZWZpbmUgWEVOU05EX1NBTVBMRV9GT1JNQVRfTUFYX0xFTiAgICAgICAgIDI0CisKKyNk ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzhfU1RSICAgICAgICAgICAgICAgICAiczgiCisjZGVm aW5lIFhFTlNORF9QQ01fRk9STUFUX1U4X1NUUiAgICAgICAgICAgICAgICAgInU4IgorI2RlZmlu ZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfTEVfU1RSICAgICAgICAgICAgICJzMTZfbGUiCisjZGVm aW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9CRV9TVFIgICAgICAgICAgICAgInMxNl9iZSIKKyNk ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0xFX1NUUiAgICAgICAgICAgICAidTE2X2xlIgor I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMTZfQkVfU1RSICAgICAgICAgICAgICJ1MTZfYmUi CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9MRV9TVFIgICAgICAgICAgICAgInMyNF9s ZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0X0JFX1NUUiAgICAgICAgICAgICAiczI0 X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRfTEVfU1RSICAgICAgICAgICAgICJ1 MjRfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9CRV9TVFIgICAgICAgICAgICAg InUyNF9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0xFX1NUUiAgICAgICAgICAg ICAiczMyX2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfQkVfU1RSICAgICAgICAg ICAgICJzMzJfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9MRV9TVFIgICAgICAg ICAgICAgInUzMl9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTMyX0JFX1NUUiAgICAg ICAgICAgICAidTMyX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJfTEVfU1RSICAg ICAgICAgICAgICJmbG9hdF9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0JFX1NU UiAgICAgICAgICAgICAiZmxvYXRfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2NF9M RV9TVFIgICAgICAgICAgICAgImZsb2F0NjRfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU X0Y2NF9CRV9TVFIgICAgICAgICAgICAgImZsb2F0NjRfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRV9TVFIgImllYzk1OF9zdWJmcmFtZV9sZSIKKyNkZWZp bmUgWEVOU05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0JFX1NUUiAiaWVjOTU4X3N1YmZy YW1lX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NVV9MQVdfU1RSICAgICAgICAgICAg ICJtdV9sYXciCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0FfTEFXX1NUUiAgICAgICAgICAg ICAgImFfbGF3IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JTUFfQURQQ01fU1RSICAgICAg ICAgICJpbWFfYWRwY20iCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01QRUdfU1RSICAgICAg ICAgICAgICAgIm1wZWciCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0dTTV9TVFIgICAgICAg ICAgICAgICAgImdzbSIKKworLyoKKyAqIFNUQVRVUyBSRVRVUk4gQ09ERVMuCisgKi8KKy8qIE9w ZXJhdGlvbiBub3Qgc3VwcG9ydGVkLiAqLworI2RlZmluZSBYRU5TTkRfUlNQX05PVFNVUFAgICAg ICAgICAgICAgICAoLTIpCisvKiBPcGVyYXRpb24gZmFpbGVkIGZvciBzb21lIHVuc3BlY2lmaWVk IHJlYXNvbiAoZS4gZy4gLUVJTykuICovCisjZGVmaW5lIFhFTlNORF9SU1BfRVJST1IgICAgICAg ICAgICAgICAgICgtMSkKKy8qIE9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LiAqLwor I2RlZmluZSBYRU5TTkRfUlNQX09LQVkgICAgICAgICAgICAgICAgICAwCisKKy8qCisgKiBEZXNj cmlwdGlvbiBvZiB0aGUgcHJvdG9jb2wgYmV0d2VlbiBmcm9udGVuZCBhbmQgYmFja2VuZCBkcml2 ZXIuCisgKgorICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJhLXZpcnR1YWwgc291bmQgZHJpdmVy IGNvbW11bmljYXRlcyB3aXRoCisgKiBlYWNoIG90aGVyIHVzaW5nIGEgc2hhcmVkIHBhZ2UgYW5k IGFuIGV2ZW50IGNoYW5uZWwuCisgKiBTaGFyZWQgcGFnZSBjb250YWlucyBhIHJpbmcgd2l0aCBy ZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMuCisgKgorICoKKyAqIEFsbCByZXF1ZXN0IHBhY2tldHMg aGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IG9jdGV0cykKKyAqCisgKgorICogUmVxdWVzdCBvcGVu IC0gb3BlbiBhIFBDTSBzdHJlYW0gZm9yIHBsYXliYWNrIG9yIGNhcHR1cmU6CisgKiAgICAgICAg ICAwICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAz ICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAg aWQgICAgICAgICAgICAgICAgfCAgICBvcGVyYXRpb24gICAgfCAgICAgc3RyZWFtX2lkeCAgfAor ICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGFkZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNtX3JhdGUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgcGNt X2Zvcm1hdCAgICAgfCAgcGNtX2NoYW5uZWxzICAgfCAgICAgICAgICAgICByZXNlcnZlZCAgICAg ICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg ICAgICBncmVmX2RpcmVjdG9yeV9zdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICog Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t KworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorICogKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGlkIC0g dWludDE2X3QsIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQorICogb3Bl cmF0aW9uIC0gdWludDhfdCwgWEVOU05EX09QX09QRU4KKyAqIHN0cmVhbV9pZHggLSB1aW50OF90 LCBpbmRleCBvZiB0aGUgc3RyZWFtICgic3RyZWFtc19pZHgiIFhlblN0b3JlIGVudHJ5CisgKiAg IG9mIHRoZSBzdHJlYW0pCisgKiBwY21fcmF0ZSAtIHVpbnQzMl90LCBzdHJlYW0gZGF0YSByYXRl LCBIegorICogcGNtX2Zvcm1hdCAtIHVpbnQ4X3QsIFhFTlNORF9QQ01fRk9STUFUX1hYWCB2YWx1 ZQorICogcGNtX2NoYW5uZWxzIC0gdWludDhfdCwgbnVtYmVyIG9mIGNoYW5uZWxzIG9mIHRoaXMg c3RyZWFtCisgKiBncmVmX2RpcmVjdG9yeV9zdGFydCAtIGdyYW50X3JlZl90LCBhIHJlZmVyZW5j ZSB0byB0aGUgZmlyc3Qgc2hhcmVkIHBhZ2UKKyAqICAgZGVzY3JpYmluZyBzaGFyZWQgYnVmZmVy IHJlZmVyZW5jZXMuIEF0IGxlYXN0IG9uZSBwYWdlIGV4aXN0cy4gSWYgc2hhcmVkCisgKiAgIGJ1 ZmZlciBzaXplIGV4Y2VlZHMgd2hhdCBjYW4gYmUgYWRkcmVzc2VkIGJ5IHRoaXMgc2luZ2xlIHBh Z2UsIHRoZW4KKyAqICAgcmVmZXJlbmNlIHRvIHRoZSBuZXh0IHBhZ2UgbXVzdCBiZSBzdXBwbGll ZCAoZ3JlZl9kaXJfbmV4dF9wYWdlIGJlbG93CisgKiAgIGlzIG5vdCBOVUxMKQorICovCisKK3N0 cnVjdCB4ZW5zbmRfb3Blbl9yZXEgeworICAgIHVpbnQzMl90IHBjbV9yYXRlOyAvKiBpbiBIeiAq LworICAgIHVpbnQ4X3QgcGNtX2Zvcm1hdDsKKyAgICB1aW50OF90IHBjbV9jaGFubmVsczsKKyAg ICB1aW50MTZfdCByZXNlcnZlZDsKKyAgICBncmFudF9yZWZfdCBncmVmX2RpcmVjdG9yeV9zdGFy dDsKK307CisKKy8qCisgKiBTaGFyZWQgcGFnZSBmb3IgWEVOU05EX09QX09QRU4gYnVmZmVyIGRl c2NyaXB0b3IgKGdyZWZfZGlyZWN0b3J5IGluIHRoZQorICogICByZXF1ZXN0KSBlbXBsb3lzIGEg bGlzdCBvZiBwYWdlcywgZGVzY3JpYmluZyBhbGwgcGFnZXMgb2YgdGhlIHNoYXJlZCBkYXRhCisg KiAgIGJ1ZmZlcjoKKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg ICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmX2Rpcl9uZXh0X3BhZ2UgICAgICAg ICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBudW1fZ3JlZnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBncmVmWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmWzFd ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisg KiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBncmVmW04gLTFdICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogZ3JlZl9kaXJfbmV4dF9wYWdlIC0gZ3Jh bnRfcmVmX3QsIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIGRlc2NyaWJpbmcKKyAqICAgcGFn ZSBkaXJlY3RvcnkKKyAqIG51bV9ncmVmcyAtIG51bWJlciBvZiBncmVmcyBpbiB0aGlzIHBhZ2UK KyAqIGdyZWZbaV0gLSBncmFudF9yZWZfdCwgcmVmZXJlbmNlIHRvIGEgc2hhcmVkIHBhZ2Ugb2Yg dGhlIGJ1ZmZlcgorICogICBhbGxvY2F0ZWQgYXQgWEVOU05EX09QX09QRU4KKyAqLworCitzdHJ1 Y3QgeGVuc25kX3BhZ2VfZGlyZWN0b3J5IHsKKyAgICBncmFudF9yZWZfdCBncmVmX2Rpcl9uZXh0 X3BhZ2U7CisgICAgdWludDMyX3QgbnVtX2dyZWZzOworICAgIC8qIHplcm8tc2l6ZWQgYXJyYXlz IGFyZSBub3QgYWxsb3dlZCAqLworICAgIGdyYW50X3JlZl90IGdyZWZbMV0gLyogVmFyaWFibGUg bGVuZ3RoICovCit9OworCisvKgorICogIFJlcXVlc3QgY2xvc2UgLSBjbG9zZSBhbiBvcGVuZWQg cGNtIHN0cmVhbToKKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg ICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r CisgKiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAg ICB8ICAgICBzdHJlYW1faWR4ICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQgLSB1aW50 MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGluIHJlc3BvbnNlCisgKiBvcGVyYXRp b24gLSB1aW50OF90LCBYRU5TTkRfT1BfQ0xPU0UKKyAqIHN0cmVhbV9pZHggLSB1aW50OF90LCBp bmRleCBvZiB0aGUgc3RyZWFtICgic3RyZWFtc19pZHgiIFhlblN0b3JlIGVudHJ5CisgKiAgIG9m IHRoZSBzdHJlYW0pCisgKi8KKworc3RydWN0IHhlbnNuZF9jbG9zZV9yZXEgeworICAgIC8qIHBs YWNlIGhvbGRlciwgcmVtb3ZlIGlmIGNoYW5naW5nIHRoZSBzdHJ1Y3R1cmUgKi8KKyAgICB1aW50 OF90IHBsYWNlaG9sZGVyOworfTsKKworLyoKKyAqIFJlcXVlc3QgcmVhZC93cml0ZSAtIHVzZWQg Zm9yIHJlYWQgKGZvciBjYXB0dXJlKSBvciB3cml0ZSAoZm9yIHBsYXliYWNrKToKKyAqICAgICAg ICAgIDAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAg IDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAg ICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgICB8ICAgICBzdHJlYW1faWR4ICB8 CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisg KiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQg LSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGluIHJlc3BvbnNlCisgKiBv cGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRfT1BfUkVBRC9YRU5TTkRfT1BfV1JJVEUKKyAqIHN0 cmVhbV9pZHggLSB1aW50OF90LCBpbmRleCBvZiB0aGUgc3RyZWFtICgic3RyZWFtc19pZHgiIFhl blN0b3JlIGVudHJ5CisgKiAgIG9mIHRoZSBzdHJlYW0pCisgKiBvZmZzZXQgLSB1aW50MzJfdCwg cmVhZCBvciB3cml0ZSBkYXRhIG9mZnNldCB3aXRoaW4gdGhlIHNoYXJlZCBidWZmZXIKKyAqICAg cGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gcmVxdWVzdAorICogbGVuZ3RoIC0gdWludDMyX3Qs IHJlYWQgb3Igd3JpdGUgZGF0YSBsZW5ndGgKKyAqLworCitzdHJ1Y3QgeGVuc25kX3dyaXRlX3Jl cSB7CisgICAgdWludDMyX3Qgb2Zmc2V0OworICAgIHVpbnQzMl90IGxlbjsKK307CisKK3N0cnVj dCB4ZW5zbmRfcmVhZF9yZXEgeworICAgIHVpbnQzMl90IG9mZnNldDsKKyAgICB1aW50MzJfdCBs ZW47Cit9OworCisvKgorICogUmVxdWVzdCBzZXQvZ2V0IHZvbHVtZSAtIHNldC9nZXQgY2hhbm5l bHMnIHZvbHVtZSBvZiB0aGUgc3RyZWFtIGdpdmVuOgorICogICAgICAgICAgMCAgICAgICAgICAg ICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQK KyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgIGlkICAgICAgICAgICAg ICAgIHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9pZHggIHwKKyAqICstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmcgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAq ICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBwcml2YXRlIGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4g cmVzcG9uc2UKKyAqIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIFhFTlNORF9PUF9TRVRfVk9MVU1FIG9y IFhFTlNORF9PUF9HRVRfVk9MVU1FCisgKiBzdHJlYW1faWR4IC0gdWludDhfdCwgaW5kZXggb2Yg dGhlIHN0cmVhbSAoInN0cmVhbXNfaWR4IiBYZW5TdG9yZSBlbnRyeQorICogICBvZiB0aGUgc3Ry ZWFtKQorICogQnVmZmVyIHBhc3NlZCB3aXRoIFhFTlNORF9PUF9PUEVOIGlzIHVzZWQgdG8gZXhj aGFuZ2Ugdm9sdW1lCisgKiB2YWx1ZXM6CisgKgorICogICAgICAgICAgMCAgICAgICAgICAgICAg ICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAq ICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh bm5lbFswXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFsxXSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqICsvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICAgICAgICAgICAgY2hhbm5l bFtYRU5TTkRfT1BfT1BFTi5wY21fY2hhbm5lbHMgLSAxXSAgICAgICAgICAgICAgIHwKKyAqICst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSsKKyAqCisgKiBjaGFubmVsW2ldIC0gc2ludDMyX3QsIHZvbHVtZSBvZiBp LXRoIGNoYW5uZWwKKyAqIFZvbHVtZSBpcyBleHByZXNzZWQgYXMgYSBzaWduZWQgdmFsdWUgaW4g c3RlcHMgb2YgMC4wMDEgZEIsCisgKiB3aGlsZSAwIGJlaW5nIDAgZEIuCisgKi8KKworc3RydWN0 IHhlbnNuZF9nZXRfdm9sX3JlcSB7CisgICAgLyogcGxhY2UgaG9sZGVyLCByZW1vdmUgaWYgY2hh bmdpbmcgdGhlIHN0cnVjdHVyZSAqLworICAgIHVpbnQ4X3QgcGxhY2Vob2xkZXI7Cit9OworCitz dHJ1Y3QgeGVuc25kX3NldF92b2xfcmVxIHsKKyAgICAvKiBwbGFjZSBob2xkZXIsIHJlbW92ZSBp ZiBjaGFuZ2luZyB0aGUgc3RydWN0dXJlICovCisgICAgdWludDhfdCBwbGFjZWhvbGRlcjsKK307 CisKKy8qCisgKiBSZXF1ZXN0IG11dGUvdW5tdXRlIC0gbXV0ZS91bm11dGUgc3RyZWFtOgorICog ICAgICAgICAgMCAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgIDIgICAgICAgICAg ICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg ICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgIHwgICAgIHN0cmVhbV9p ZHggIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhZGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAq IHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBwcml2YXRlIGd1 ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAqIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIFhF TlNORF9PUF9NVVRFL1hFTlNORF9PUF9VTk1VVEUKKyAqIHN0cmVhbV9pZHggLSB1aW50OF90LCBp bmRleCBvZiB0aGUgc3RyZWFtICgic3RyZWFtc19pZHgiIFhlblN0b3JlIGVudHJ5CisgKiAgIG9m IHRoZSBzdHJlYW0pCisgKiBCdWZmZXIgcGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gaXMgdXNl ZCB0byBleGNoYW5nZSBtdXRlL3VubXV0ZQorICogdmFsdWVzOgorICoKKyAqICAgICAgICAgIDAg ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAg ICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgY2hhbm5lbFswXSAgICB8ICAg Y2hhbm5lbFsxXSAgICB8ICAgY2hhbm5lbFsyXSAgICB8ICAgY2hhbm5lbFszXSAgICB8CisgKiAr LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rCisgKiArL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r CisgKiB8ICAgY2hhbm5lbFtpXSAgICB8ICAgY2hhbm5lbFtpKzFdICB8ICAgY2hhbm5lbFtpKzJd ICB8ICAgY2hhbm5lbFtpKzNdICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiArL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogY2hhbm5lbFtpXSAtIHVpbnQ4X3Qs IG5vbi16ZXJvIGlmIGktdGggY2hhbm5lbCBuZWVkcyB0byBiZSBtdXRlZC91bm11dGVkCisgKiBO dW1iZXIgb2YgY2hhbm5lbHMgcGFzc2VkIGlzIGVxdWFsIHRvIFhFTlNORF9PUF9PUEVOIHJlcXVl c3QgcGNtX2NoYW5uZWxzCisgKiBmaWVsZAorICovCisKK3N0cnVjdCB4ZW5zbmRfbXV0ZV9yZXEg eworICAgIC8qIHBsYWNlIGhvbGRlciwgcmVtb3ZlIGlmIGNoYW5naW5nIHRoZSBzdHJ1Y3R1cmUg Ki8KKyAgICB1aW50OF90IHBsYWNlaG9sZGVyOworfTsKKworc3RydWN0IHhlbnNuZF91bm11dGVf cmVxIHsKKyAgICAvKiBwbGFjZSBob2xkZXIsIHJlbW92ZSBpZiBjaGFuZ2luZyB0aGUgc3RydWN0 dXJlICovCisgICAgdWludDhfdCBwbGFjZWhvbGRlcjsKK307CisKKy8qCisgKiBBbGwgcmVzcG9u c2UgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgYnl0ZXMpCisgKgorICogUmVzcG9u c2UgZm9yIGFsbCByZXF1ZXN0czoKKyAqICAgICAgICAgIDAgICAgICAgICAgICAgICAgIDEgICAg ICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9w ZXJhdGlvbiAgICB8ICAgICBzdHJlYW1faWR4ICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgc3RhdHVzICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICB8 CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogaWQgLSB1aW50MTZfdCwg Y29waWVkIGZyb20gdGhlIHJlcXVlc3QKKyAqIHN0cmVhbV9pZHggLSB1aW50OF90LCBjb3BpZWQg ZnJvbSByZXF1ZXN0CisgKiBvcGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRfT1BfWFhYIC0gY29w aWVkIGZyb20gcmVxdWVzdAorICogc3RhdHVzIC0gaW50OF90LCByZXNwb25zZSBzdGF0dXMgKFhF TlNORF9SU1BfPz8/KQorICovCisKK3VuaW9uIHhlbnNuZF9yZXEgeworICAgIHN0cnVjdCB7Cisg ICAgICAgIHVpbnQxNl90IGlkOworICAgICAgICB1aW50OF90IG9wZXJhdGlvbjsKKyAgICAgICAg dWludDhfdCBzdHJlYW1faWR4OworICAgICAgICB1aW50MzJfdCBwYWRkaW5nOworICAgICAgICB1 bmlvbiB7CisgICAgICAgICAgICBzdHJ1Y3QgeGVuc25kX29wZW5fcmVxIG9wZW47CisgICAgICAg ICAgICBzdHJ1Y3QgeGVuc25kX2Nsb3NlX3JlcSBjbG9zZTsKKyAgICAgICAgICAgIHN0cnVjdCB4 ZW5zbmRfd3JpdGVfcmVxIHdyaXRlOworICAgICAgICAgICAgc3RydWN0IHhlbnNuZF9yZWFkX3Jl cSByZWFkOworICAgICAgICAgICAgc3RydWN0IHhlbnNuZF9nZXRfdm9sX3JlcSBnZXRfdm9sOwor ICAgICAgICAgICAgc3RydWN0IHhlbnNuZF9zZXRfdm9sX3JlcSBzZXRfdm9sOworICAgICAgICAg ICAgc3RydWN0IHhlbnNuZF9tdXRlX3JlcSBtdXRlOworICAgICAgICAgICAgc3RydWN0IHhlbnNu ZF91bm11dGVfcmVxIHVubXV0ZTsKKyAgICAgICAgfSBvcDsKKyAgICB9IGRhdGE7CisgICAgdWlu dDhfdCByYXdbNjRdOworfTsKKwordW5pb24geGVuc25kX3Jlc3AgeworICAgIHN0cnVjdCB7Cisg ICAgICAgIHVpbnQxNl90IGlkOworICAgICAgICB1aW50OF90IG9wZXJhdGlvbjsKKyAgICAgICAg dWludDhfdCBzdHJlYW1faWR4OworICAgICAgICBpbnQ4X3Qgc3RhdHVzOworICAgICAgICB1aW50 OF90IHBhZGRpbmdbM107CisgICAgfSBkYXRhOworICAgIHVpbnQ4X3QgcmF3WzY0XTsKK307CisK K0RFRklORV9SSU5HX1RZUEVTKHhlbl9zbmRpZiwgdW5pb24geGVuc25kX3JlcSwgdW5pb24geGVu c25kX3Jlc3ApOworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX1NORElGX0hfXyAqLwotLSAK Mi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK