From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sfi-mx-1.v28.ch3.sourceforge.com ([172.29.28.121] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.69) (envelope-from ) id 1Nr1uw-0001vx-4R for ltp-list@lists.sourceforge.net; Mon, 15 Mar 2010 04:28:38 +0000 Received: from e35.co.us.ibm.com ([32.97.110.153]) by sfi-mx-1.v28.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.69) id 1Nr1ut-00053e-Br for ltp-list@lists.sourceforge.net; Mon, 15 Mar 2010 04:28:38 +0000 Date: Mon, 15 Mar 2010 09:29:18 +0530 From: Rishikesh K Rajak Message-ID: <20100315035918.GA2889@linux.vnet.ibm.com> References: <1268596049.7567.2.camel@subratamodak.linux.ibm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1268596049.7567.2.camel@subratamodak.linux.ibm.com> Subject: Re: [LTP] [BUILD FAILURE] cpuset_syscall_test.c fails to build for Feb 2010 release List-Id: Linux Test Project General Discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ltp-list-bounces@lists.sourceforge.net To: Subrata Modak Cc: ltp-list SGkgU3VicmF0YSwKCmNhbiB5b3UgY29uZmlybSBpZiB0aGlzIGVycm9yIHN0aWxsIG9jY3VycyB3 aXRoIGxhdGVzdCBnaXQgYW5kIGFsc28geW91IGhhdmUKbnVtYS1kZXZlbCBwYWNrYWdlIGluc3Rh bGxlZCA/CgpvciwganVzdCBhZGQgIm51bWFpZi5oIiB0byBjcHVzZXRfc3lzY2FsbF90ZXN0LmMg YW5kIHRyeSB0byByZWJ1aWxkLiBMZXQgdXMgCmtub3cgdGhlIHJlc3VsdCB0b28uCgpUaGFua3MK LVJpc2hpCgoKT24gTW9uLCBNYXIgMTUsIDIwMTAgYXQgMDE6MTc6MjZBTSArMDUzMCwgU3VicmF0 YSBNb2RhayB3cm90ZToKPiAjIHVuYW1lIC1hCj4gTGludXggc3VicmF0YW1vZGFrLmxpbnV4Lmli bS5jb20gMi42LjE4LTkyLmVsNSAjMSBTTVAgVHVlIEFwciAyOQo+IDEzOjE2OjEyIEVEVCAyMDA4 IGk2ODYgaTY4NiBpMzg2IEdOVS9MaW51eAo+IAo+IGdjYyAtZyAtTzIgLWcgLU8yIC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC1waXBlIC1XYWxsCj4gLUkvaG9tZS9zdWJyYXRhbW9kYWsvT0ZGSUNFX1dP UktTL0xUUF9QUk9KRUNUX0NPREUvTFRQX1RBUlMvRkVCUlVBUllfMjAxMF9SRUxFQVNFL2x0cC1m dWxsLTIwMTAwMjI4L3Rlc3RjYXNlcy9rZXJuZWwvaW5jbHVkZSAtSS4uLy4uLy4uLy4uLy4uL2lu Y2x1ZGUgLUkuLi8uLi8uLi8uLi8uLi9pbmNsdWRlICAgLUwvaG9tZS9zdWJyYXRhbW9kYWsvT0ZG SUNFX1dPUktTL0xUUF9QUk9KRUNUX0NPREUvTFRQX1RBUlMvRkVCUlVBUllfMjAxMF9SRUxFQVNF L2x0cC1mdWxsLTIwMTAwMjI4L3Rlc3RjYXNlcy9rZXJuZWwvY29udHJvbGxlcnMvY3B1c2V0L2Nw dXNldF9zeXNjYWxsX3Rlc3QvLi4vY3B1c2V0X2xpYiAtTC9ob21lL3N1YnJhdGFtb2Rhay9PRkZJ Q0VfV09SS1MvTFRQX1BST0pFQ1RfQ09ERS9MVFBfVEFSUy9GRUJSVUFSWV8yMDEwX1JFTEVBU0Uv bHRwLWZ1bGwtMjAxMDAyMjgvdGVzdGNhc2VzL2tlcm5lbC9jb250cm9sbGVycy9jcHVzZXQvY3B1 c2V0X3N5c2NhbGxfdGVzdC8uLi8uLi9saWJjb250cm9sbGVycyAtTC4uLy4uLy4uLy4uLy4uL2xp YiAgY3B1c2V0X3N5c2NhbGxfdGVzdC5jICAgLWxsdHAgLWxjcHVfc2V0IC1sY29udHJvbGxlcnMg LWxsdHAgLW8gY3B1c2V0X3N5c2NhbGxfdGVzdAo+IGNwdXNldF9zeXNjYWxsX3Rlc3QuYzogSW4g ZnVuY3Rpb24g4oCYdGVzdF9nZXRfbWVtcG9saWN54oCZOgo+IGNwdXNldF9zeXNjYWxsX3Rlc3Qu YzoyMDk6IGVycm9yOiDigJhNUE9MX0ZfTUVNU19BTExPV0VE4oCZIHVuZGVjbGFyZWQKPiAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCj4gY3B1c2V0X3N5c2NhbGxfdGVzdC5jOjIwOTogZXJy b3I6IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcwo+IHJlcG9ydGVkIG9ubHkgb25jZQo+ IGNwdXNldF9zeXNjYWxsX3Rlc3QuYzoyMDk6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlvbiBpdCBh cHBlYXJzIGluLikKPiBtYWtlWzVdOiAqKiogW2NwdXNldF9zeXNjYWxsX3Rlc3RdIEVycm9yIDEK PiBtYWtlWzVdOiBMZWF2aW5nIGRpcmVjdG9yeQo+IGAvaG9tZS9zdWJyYXRhbW9kYWsvT0ZGSUNF X1dPUktTL0xUUF9QUk9KRUNUX0NPREUvTFRQX1RBUlMvRkVCUlVBUllfMjAxMF9SRUxFQVNFL2x0 cC1mdWxsLTIwMTAwMjI4L3Rlc3RjYXNlcy9rZXJuZWwvY29udHJvbGxlcnMvY3B1c2V0L2NwdXNl dF9zeXNjYWxsX3Rlc3QnCj4gbWFrZVs0XTogKioqIFthbGxdIEVycm9yIDIKPiBtYWtlWzRdOiBM ZWF2aW5nIGRpcmVjdG9yeQo+IGAvaG9tZS9zdWJyYXRhbW9kYWsvT0ZGSUNFX1dPUktTL0xUUF9Q Uk9KRUNUX0NPREUvTFRQX1RBUlMvRkVCUlVBUllfMjAxMF9SRUxFQVNFL2x0cC1mdWxsLTIwMTAw MjI4L3Rlc3RjYXNlcy9rZXJuZWwvY29udHJvbGxlcnMvY3B1c2V0Jwo+IG1ha2VbM106ICoqKiBb YWxsXSBFcnJvciAyCj4gbWFrZVszXTogTGVhdmluZyBkaXJlY3RvcnkKPiBgL2hvbWUvc3VicmF0 YW1vZGFrL09GRklDRV9XT1JLUy9MVFBfUFJPSkVDVF9DT0RFL0xUUF9UQVJTL0ZFQlJVQVJZXzIw MTBfUkVMRUFTRS9sdHAtZnVsbC0yMDEwMDIyOC90ZXN0Y2FzZXMva2VybmVsL2NvbnRyb2xsZXJz Jwo+IG1ha2VbMl06ICoqKiBbYWxsXSBFcnJvciAyCj4gbWFrZVsyXTogTGVhdmluZyBkaXJlY3Rv cnkKPiBgL2hvbWUvc3VicmF0YW1vZGFrL09GRklDRV9XT1JLUy9MVFBfUFJPSkVDVF9DT0RFL0xU UF9UQVJTL0ZFQlJVQVJZXzIwMTBfUkVMRUFTRS9sdHAtZnVsbC0yMDEwMDIyOC90ZXN0Y2FzZXMv a2VybmVsJwo+IG1ha2VbMV06ICoqKiBbYWxsXSBFcnJvciAyCj4gbWFrZVsxXTogTGVhdmluZyBk aXJlY3RvcnkKPiBgL2hvbWUvc3VicmF0YW1vZGFrL09GRklDRV9XT1JLUy9MVFBfUFJPSkVDVF9D T0RFL0xUUF9UQVJTL0ZFQlJVQVJZXzIwMTBfUkVMRUFTRS9sdHAtZnVsbC0yMDEwMDIyOC90ZXN0 Y2FzZXMnCj4gbWFrZTogKioqIFt0ZXN0Y2FzZXMtYWxsXSBFcnJvciAyCj4gCj4gTG9nIEF0dGFj aGVkLgo+IAo+IFJlZ2FyZHMtLQo+IFN1YnJhdGEKPiAKCj4gVGhpcyBmaWxlIGNvbnRhaW5zIGFu eSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKPiBydW5uaW5nIGNvbmZpZ3Vy ZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgo+IAo+IEl0 IHdhcyBjcmVhdGVkIGJ5IGx0cCBjb25maWd1cmUgTFRQX1ZFUlNJT04sIHdoaWNoIHdhcwo+IGdl bmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NC4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdh cwo+IAo+ICAgJCAuL2NvbmZpZ3VyZSAKPiAKPiAjIyAtLS0tLS0tLS0gIyMKPiAjIyBQbGF0Zm9y bS4gIyMKPiAjIyAtLS0tLS0tLS0gIyMKPiAKPiBob3N0bmFtZSA9IHN1YnJhdGFtb2Rhay5saW51 eC5pYm0uY29tCj4gdW5hbWUgLW0gPSBpNjg2Cj4gdW5hbWUgLXIgPSAyLjYuMTgtOTIuZWw1Cj4g dW5hbWUgLXMgPSBMaW51eAo+IHVuYW1lIC12ID0gIzEgU01QIFR1ZSBBcHIgMjkgMTM6MTY6MTIg RURUIDIwMDgKPiAKPiAvdXNyL2Jpbi91bmFtZSAtcCA9IHVua25vd24KPiAvYmluL3VuYW1lIC1Y ICAgICA9IHVua25vd24KPiAKPiAvYmluL2FyY2ggICAgICAgICAgICAgID0gaTY4Ngo+IC91c3Iv YmluL2FyY2ggLWsgICAgICAgPSB1bmtub3duCj4gL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IHVu a25vd24KPiAvdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gdW5rbm93bgo+IC9iaW4vbWFjaGluZSAg ICAgICAgICAgPSB1bmtub3duCj4gL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25vd24KPiAv YmluL3VuaXZlcnNlICAgICAgICAgID0gdW5rbm93bgo+IAo+IFBBVEg6IC91c3IvYmluCj4gUEFU SDogL3Vzci9saWIvcXQtMy4zL2Jpbgo+IFBBVEg6IC91c3IvYmluCj4gUEFUSDogL3Vzci9sb2Nh bC9iaW4KPiBQQVRIOiAvdXNyL2Jpbgo+IFBBVEg6IC9iaW4KPiBQQVRIOiAvdXNyL1gxMVI2L2Jp bgo+IFBBVEg6IC9vcHQvaWJtL2M0ZWIvYmluCj4gUEFUSDogL2hvbWUvc3VicmF0YW1vZGFrL1NP RlRXQVJFX0RPV05MT0FEUy9BQkFUX0NMSUVOVC8KPiBQQVRIOiAvaG9tZS9zdWJyYXRhbW9kYWsv YmluCj4gUEFUSDogL3Vzci9rZXJiZXJvcy9iaW4KPiBQQVRIOiAvaG9tZS9zdWJyYXRhbW9kYWsv U09GVFdBUkVfRE9XTkxPQURTL0FCQVRfQ0xJRU5ULwo+IFBBVEg6IC9ob21lL3N1YnJhdGFtb2Rh ay9iaW4KPiAKPiAKPiAjIyAtLS0tLS0tLS0tLSAjIwo+ICMjIENvcmUgdGVzdHMuICMjCj4gIyMg LS0tLS0tLS0tLS0gIyMKPiAKPiBjb25maWd1cmU6MjMzMzogY2hlY2tpbmcgZm9yIGEgQlNELWNv bXBhdGlibGUgaW5zdGFsbAo+IGNvbmZpZ3VyZToyNDAxOiByZXN1bHQ6IC91c3IvYmluL2luc3Rh bGwgLWMKPiBjb25maWd1cmU6MjQxMjogY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVu dCBpcyBzYW5lCj4gY29uZmlndXJlOjI0NDk6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjI0NzQ6 IGNoZWNraW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wCj4gY29uZmlndXJlOjI1MTM6IHJl c3VsdDogL2Jpbi9ta2RpciAtcAo+IGNvbmZpZ3VyZToyNTI2OiBjaGVja2luZyBmb3IgZ2F3awo+ IGNvbmZpZ3VyZToyNTQyOiBmb3VuZCAvdXNyL2Jpbi9nYXdrCj4gY29uZmlndXJlOjI1NTM6IHJl c3VsdDogZ2F3awo+IGNvbmZpZ3VyZToyNTY0OiBjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAk KE1BS0UpCj4gY29uZmlndXJlOjI1ODY6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjI3ODY6IGNo ZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlCj4gY29uZmlndXJlOjI4MDA6IHJlc3VsdDogaTY4Ni1w Yy1saW51eC1nbnUKPiBjb25maWd1cmU6MjgyMDogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQo+ IGNvbmZpZ3VyZToyODMzOiByZXN1bHQ6IGk2ODYtcGMtbGludXgtZ251Cj4gY29uZmlndXJlOjI5 MDI6IGNoZWNraW5nIGZvciBnY2MKPiBjb25maWd1cmU6MjkxODogZm91bmQgL3Vzci9sb2NhbC9i aW4vZ2NjCj4gY29uZmlndXJlOjI5Mjk6IHJlc3VsdDogZ2NjCj4gY29uZmlndXJlOjMxNTg6IGNo ZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24KPiBjb25maWd1cmU6MzE2NzogZ2NjIC0tdmVy c2lvbiA+JjUKPiBnY2MgKEdDQykgNC40LjEgMjAwOTA0MjkgKHByZXJlbGVhc2UpCj4gQ29weXJp Z2h0IChDKSAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgo+IFRoaXMgaXMgZnJl ZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJl IGlzIE5PCj4gd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCj4gCj4gY29uZmlndXJlOjMxNzg6ICQ/ID0gMAo+ IGNvbmZpZ3VyZTozMTY3OiBnY2MgLXYgPiY1Cj4gVXNpbmcgYnVpbHQtaW4gc3BlY3MuCj4gVGFy Z2V0OiBpNjg2LXBjLWxpbnV4LWdudQo+IENvbmZpZ3VyZWQgd2l0aDogLi9jb25maWd1cmUKPiBU aHJlYWQgbW9kZWw6IHBvc2l4Cj4gZ2NjIHZlcnNpb24gNC40LjEgMjAwOTA0MjkgKHByZXJlbGVh c2UpIChHQ0MpIAo+IGNvbmZpZ3VyZTozMTc4OiAkPyA9IDAKPiBjb25maWd1cmU6MzE2NzogZ2Nj IC1WID4mNQo+IGdjYzogJy1WJyBvcHRpb24gbXVzdCBoYXZlIGFyZ3VtZW50Cj4gY29uZmlndXJl OjMxNzg6ICQ/ID0gMQo+IGNvbmZpZ3VyZTozMTY3OiBnY2MgLXF2ZXJzaW9uID4mNQo+IGdjYzog dW5yZWNvZ25pemVkIG9wdGlvbiAnLXF2ZXJzaW9uJwo+IGdjYzogbm8gaW5wdXQgZmlsZXMKPiBj b25maWd1cmU6MzE3ODogJD8gPSAxCj4gY29uZmlndXJlOjMyMDA6IGNoZWNraW5nIGZvciBDIGNv bXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZQo+IGNvbmZpZ3VyZTozMjIyOiBnY2MgICAg Y29uZnRlc3QuYyAgPiY1Cj4gY29uZmlndXJlOjMyMjY6ICQ/ID0gMAo+IGNvbmZpZ3VyZTozMjYz OiByZXN1bHQ6IGEub3V0Cj4gY29uZmlndXJlOjMyNzk6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMg Y29tcGlsZXIgd29ya3MKPiBjb25maWd1cmU6MzI4ODogLi9hLm91dAo+IGNvbmZpZ3VyZTozMjky OiAkPyA9IDAKPiBjb25maWd1cmU6MzMwNzogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6MzMxNDog Y2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nCj4gY29uZmlndXJlOjMzMTY6 IHJlc3VsdDogbm8KPiBjb25maWd1cmU6MzMxOTogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVj dXRhYmxlcwo+IGNvbmZpZ3VyZTozMzI2OiBnY2MgLW8gY29uZnRlc3QgICAgY29uZnRlc3QuYyAg PiY1Cj4gY29uZmlndXJlOjMzMzA6ICQ/ID0gMAo+IGNvbmZpZ3VyZTozMzUyOiByZXN1bHQ6IAo+ IGNvbmZpZ3VyZTozMzU4OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcwo+IGNv bmZpZ3VyZTozMzgwOiBnY2MgLWMgICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTozMzg0OiAk PyA9IDAKPiBjb25maWd1cmU6MzQwNTogcmVzdWx0OiBvCj4gY29uZmlndXJlOjM0MDk6IGNoZWNr aW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcgo+IGNvbmZpZ3VyZToz NDI4OiBnY2MgLWMgICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTozNDI4OiAkPyA9IDAKPiBj b25maWd1cmU6MzQzNzogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6MzQ0NjogY2hlY2tpbmcgd2hl dGhlciBnY2MgYWNjZXB0cyAtZwo+IGNvbmZpZ3VyZTozNDY2OiBnY2MgLWMgLWcgIGNvbmZ0ZXN0 LmMgPiY1Cj4gY29uZmlndXJlOjM0NjY6ICQ/ID0gMAo+IGNvbmZpZ3VyZTozNTA3OiByZXN1bHQ6 IHllcwo+IGNvbmZpZ3VyZTozNTI0OiBjaGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBhY2NlcHQg SVNPIEM4OQo+IGNvbmZpZ3VyZTozNTg4OiBnY2MgIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK PiBjb25maWd1cmU6MzU4ODogJD8gPSAwCj4gY29uZmlndXJlOjM2MDE6IHJlc3VsdDogbm9uZSBu ZWVkZWQKPiBjb25maWd1cmU6MzYzMjogY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNl ZCBieSBtYWtlCj4gY29uZmlndXJlOjM2NjA6IHJlc3VsdDogR05VCj4gY29uZmlndXJlOjM2ODU6 IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2NjCj4gY29uZmlndXJlOjM3NzY6IHJlc3Vs dDogbm9uZQo+IGNvbmZpZ3VyZTozODM3OiBjaGVja2luZyBmb3IgYXIKPiBjb25maWd1cmU6Mzg1 MzogZm91bmQgL3Vzci9iaW4vYXIKPiBjb25maWd1cmU6Mzg2NDogcmVzdWx0OiBhcgo+IGNvbmZp Z3VyZTozODkxOiBjaGVja2luZyBmb3IgZmxleAo+IGNvbmZpZ3VyZTozOTA3OiBmb3VuZCAvdXNy L2Jpbi9mbGV4Cj4gY29uZmlndXJlOjM5MTg6IHJlc3VsdDogZmxleAo+IGNvbmZpZ3VyZTozOTU1 OiBmbGV4IGNvbmZ0ZXN0LmwKPiBjb25maWd1cmU6Mzk1OTogJD8gPSAwCj4gY29uZmlndXJlOjM5 NjE6IGNoZWNraW5nIGxleCBvdXRwdXQgZmlsZSByb290Cj4gY29uZmlndXJlOjM5NzU6IHJlc3Vs dDogbGV4Lnl5Cj4gY29uZmlndXJlOjM5ODA6IGNoZWNraW5nIGxleCBsaWJyYXJ5Cj4gY29uZmln dXJlOjM5OTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAgPiY1Cj4gY29u ZnRlc3QubDogSW4gZnVuY3Rpb24gJ3l5bGV4JzoKPiBjb25mdGVzdC5sOjY6IHdhcm5pbmc6IGNv bXBhcmlzb24gYmV0d2VlbiBwb2ludGVyIGFuZCBpbnRlZ2VyCj4gY29uZnRlc3QubDo2OiB3YXJu aW5nOiBhc3NpZ25tZW50IG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0 Cj4gL3RtcC9jY0FMc2hXYy5vOiBJbiBmdW5jdGlvbiBgaW5wdXQnOgo+IC9ob21lL3N1YnJhdGFt b2Rhay9PRkZJQ0VfV09SS1MvTFRQX1BST0pFQ1RfQ09ERS9MVFBfVEFSUy9GRUJSVUFSWV8yMDEw X1JFTEVBU0UvbHRwLWZ1bGwtMjAxMDAyMjgvbGV4Lnl5LmM6MTA5NjogdW5kZWZpbmVkIHJlZmVy ZW5jZSB0byBgeXl3cmFwJwo+IC90bXAvY2NBTHNoV2MubzogSW4gZnVuY3Rpb24gYHl5bGV4JzoK PiAvaG9tZS9zdWJyYXRhbW9kYWsvT0ZGSUNFX1dPUktTL0xUUF9QUk9KRUNUX0NPREUvTFRQX1RB UlMvRkVCUlVBUllfMjAxMF9SRUxFQVNFL2x0cC1mdWxsLTIwMTAwMjI4L2xleC55eS5jOjc1Mjog dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeXl3cmFwJwo+IC90bXAvY2NBTHNoV2MubzogSW4gZnVu Y3Rpb24gYG1haW4nOgo+IC9ob21lL3N1YnJhdGFtb2Rhay9PRkZJQ0VfV09SS1MvTFRQX1BST0pF Q1RfQ09ERS9MVFBfVEFSUy9GRUJSVUFSWV8yMDEwX1JFTEVBU0UvbHRwLWZ1bGwtMjAxMDAyMjgv Y29uZnRlc3QubDoxNjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeXl3cmFwJwo+IGNvbGxlY3Qy OiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCj4gY29uZmlndXJlOjM5OTQ6ICQ/ID0gMQo+IGNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyogY29uZmRlZnMuaCAqLwo+IHwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsdHAi Cj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ T1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCj4gfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIKPiB8ICNkZWZpbmUgVkVSU0lPTiAi TFRQX1ZFUlNJT04iCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCj4gfCAvKiBBIGxleGljYWwg c2Nhbm5lciBnZW5lcmF0ZWQgYnkgZmxleCovCj4gfCAKPiB8IC8qIFNjYW5uZXIgc2tlbGV0b24g dmVyc2lvbjoKPiB8ICAqICRIZWFkZXI6IC9ob21lL2RhZmZ5L3UwL3Zlcm4vZmxleC9SQ1MvZmxl eC5za2wsdiAyLjkxIDk2LzA5LzEwIDE2OjU4OjQ4IHZlcm4gRXhwICQKPiB8ICAqLwo+IHwgCj4g fCAjZGVmaW5lIEZMRVhfU0NBTk5FUgo+IHwgI2RlZmluZSBZWV9GTEVYX01BSk9SX1ZFUlNJT04g Mgo+IHwgI2RlZmluZSBZWV9GTEVYX01JTk9SX1ZFUlNJT04gNQo+IHwgCj4gfCAjaW5jbHVkZSA8 c3RkaW8uaD4KPiB8ICNpbmNsdWRlIDx1bmlzdGQuaD4KPiB8IAo+IHwgCj4gfCAvKiBjZnJvbnQg MS4yIGRlZmluZXMgImNfcGx1c3BsdXMiIGluc3RlYWQgb2YgIl9fY3BsdXNwbHVzIiAqLwo+IHwg I2lmZGVmIGNfcGx1c3BsdXMKPiB8ICNpZm5kZWYgX19jcGx1c3BsdXMKPiB8ICNkZWZpbmUgX19j cGx1c3BsdXMKPiB8ICNlbmRpZgo+IHwgI2VuZGlmCj4gfCAKPiB8IAo+IHwgI2lmZGVmIF9fY3Bs dXNwbHVzCj4gfCAKPiB8ICNpbmNsdWRlIDxzdGRsaWIuaD4KPiB8IAo+IHwgLyogVXNlIHByb3Rv dHlwZXMgaW4gZnVuY3Rpb24gZGVjbGFyYXRpb25zLiAqLwo+IHwgI2RlZmluZSBZWV9VU0VfUFJP VE9TCj4gfCAKPiB8IC8qIFRoZSAiY29uc3QiIHN0b3JhZ2UtY2xhc3MtbW9kaWZpZXIgaXMgdmFs aWQuICovCj4gfCAjZGVmaW5lIFlZX1VTRV9DT05TVAo+IHwgCj4gfCAjZWxzZQkvKiAhIF9fY3Bs dXNwbHVzICovCj4gfCAKPiB8ICNpZiBfX1NURENfXwo+IHwgCj4gfCAjZGVmaW5lIFlZX1VTRV9Q Uk9UT1MKPiB8ICNkZWZpbmUgWVlfVVNFX0NPTlNUCj4gfCAKPiB8ICNlbmRpZgkvKiBfX1NURENf XyAqLwo+IHwgI2VuZGlmCS8qICEgX19jcGx1c3BsdXMgKi8KPiB8IAo+IHwgI2lmZGVmIF9fVFVS Qk9DX18KPiB8ICAjcHJhZ21hIHdhcm4gLXJjaAo+IHwgICNwcmFnbWEgd2FybiAtdXNlCj4gfCAj aW5jbHVkZSA8aW8uaD4KPiB8ICNpbmNsdWRlIDxzdGRsaWIuaD4KPiB8ICNkZWZpbmUgWVlfVVNF X0NPTlNUCj4gfCAjZGVmaW5lIFlZX1VTRV9QUk9UT1MKPiB8ICNlbmRpZgo+IHwgCj4gfCAjaWZk ZWYgWVlfVVNFX0NPTlNUCj4gfCAjZGVmaW5lIHl5Y29uc3QgY29uc3QKPiB8ICNlbHNlCj4gfCAj ZGVmaW5lIHl5Y29uc3QKPiB8ICNlbmRpZgo+IHwgCj4gfCAKPiB8ICNpZmRlZiBZWV9VU0VfUFJP VE9TCj4gfCAjZGVmaW5lIFlZX1BST1RPKHByb3RvKSBwcm90bwo+IHwgI2Vsc2UKPiB8ICNkZWZp bmUgWVlfUFJPVE8ocHJvdG8pICgpCj4gfCAjZW5kaWYKPiB8IAo+IHwgLyogUmV0dXJuZWQgdXBv biBlbmQtb2YtZmlsZS4gKi8KPiB8ICNkZWZpbmUgWVlfTlVMTCAwCj4gfCAKPiB8IC8qIFByb21v dGVzIGEgcG9zc2libHkgbmVnYXRpdmUsIHBvc3NpYmx5IHNpZ25lZCBjaGFyIHRvIGFuIHVuc2ln bmVkCj4gfCAgKiBpbnRlZ2VyIGZvciB1c2UgYXMgYW4gYXJyYXkgaW5kZXguICBJZiB0aGUgc2ln bmVkIGNoYXIgaXMgbmVnYXRpdmUsCj4gfCAgKiB3ZSB3YW50IHRvIGluc3RlYWQgdHJlYXQgaXQg YXMgYW4gOC1iaXQgdW5zaWduZWQgY2hhciwgaGVuY2UgdGhlCj4gfCAgKiBkb3VibGUgY2FzdC4K PiB8ICAqLwo+IHwgI2RlZmluZSBZWV9TQ19UT19VSShjKSAoKHVuc2lnbmVkIGludCkgKHVuc2ln bmVkIGNoYXIpIGMpCj4gfCAKPiB8IC8qIEVudGVyIGEgc3RhcnQgY29uZGl0aW9uLiAgVGhpcyBt YWNybyByZWFsbHkgb3VnaHQgdG8gdGFrZSBhIHBhcmFtZXRlciwKPiB8ICAqIGJ1dCB3ZSBkbyBp dCB0aGUgZGlzZ3VzdGluZyBjcnVmdHkgd2F5IGZvcmNlZCBvbiB1cyBieSB0aGUgKCktbGVzcwo+ IHwgICogZGVmaW5pdGlvbiBvZiBCRUdJTi4KPiB8ICAqLwo+IHwgI2RlZmluZSBCRUdJTiB5eV9z dGFydCA9IDEgKyAyICoKPiB8IAo+IHwgLyogVHJhbnNsYXRlIHRoZSBjdXJyZW50IHN0YXJ0IHN0 YXRlIGludG8gYSB2YWx1ZSB0aGF0IGNhbiBiZSBsYXRlciBoYW5kZWQKPiB8ICAqIHRvIEJFR0lO IHRvIHJldHVybiB0byB0aGUgc3RhdGUuICBUaGUgWVlTVEFURSBhbGlhcyBpcyBmb3IgbGV4Cj4g fCAgKiBjb21wYXRpYmlsaXR5Lgo+IHwgICovCj4gfCAjZGVmaW5lIFlZX1NUQVJUICgoeXlfc3Rh cnQgLSAxKSAvIDIpCj4gfCAjZGVmaW5lIFlZU1RBVEUgWVlfU1RBUlQKPiB8IAo+IHwgLyogQWN0 aW9uIG51bWJlciBmb3IgRU9GIHJ1bGUgb2YgYSBnaXZlbiBzdGFydCBzdGF0ZS4gKi8KPiB8ICNk ZWZpbmUgWVlfU1RBVEVfRU9GKHN0YXRlKSAoWVlfRU5EX09GX0JVRkZFUiArIHN0YXRlICsgMSkK PiB8IAo+IHwgLyogU3BlY2lhbCBhY3Rpb24gbWVhbmluZyAic3RhcnQgcHJvY2Vzc2luZyBhIG5l dyBmaWxlIi4gKi8KPiB8ICNkZWZpbmUgWVlfTkVXX0ZJTEUgeXlyZXN0YXJ0KCB5eWluICkKPiB8 IAo+IHwgI2RlZmluZSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVIgMAo+IHwgCj4gfCAvKiBTaXplIG9m IGRlZmF1bHQgaW5wdXQgYnVmZmVyLiAqLwo+IHwgI2RlZmluZSBZWV9CVUZfU0laRSAxNjM4NAo+ IHwgCj4gfCB0eXBlZGVmIHN0cnVjdCB5eV9idWZmZXJfc3RhdGUgKllZX0JVRkZFUl9TVEFURTsK PiB8IAo+IHwgZXh0ZXJuIGludCB5eWxlbmc7Cj4gfCBleHRlcm4gRklMRSAqeXlpbiwgKnl5b3V0 Owo+IHwgCj4gfCAjZGVmaW5lIEVPQl9BQ1RfQ09OVElOVUVfU0NBTiAwCj4gfCAjZGVmaW5lIEVP Ql9BQ1RfRU5EX09GX0ZJTEUgMQo+IHwgI2RlZmluZSBFT0JfQUNUX0xBU1RfTUFUQ0ggMgo+IHwg Cj4gfCAvKiBUaGUgZnVua3kgZG8td2hpbGUgaW4gdGhlIGZvbGxvd2luZyAjZGVmaW5lIGlzIHVz ZWQgdG8gdHVybiB0aGUgZGVmaW5pdGlvbgo+IHwgICogaW50IGEgc2luZ2xlIEMgc3RhdGVtZW50 ICh3aGljaCBuZWVkcyBhIHNlbWktY29sb24gdGVybWluYXRvcikuICBUaGlzCj4gfCAgKiBhdm9p ZHMgcHJvYmxlbXMgd2l0aCBjb2RlIGxpa2U6Cj4gfCAgKgo+IHwgICogCWlmICggY29uZGl0aW9u X2hvbGRzICkKPiB8ICAqCQl5eWxlc3MoIDUgKTsKPiB8ICAqCWVsc2UKPiB8ICAqCQlkb19zb21l dGhpbmdfZWxzZSgpOwo+IHwgICoKPiB8ICAqIFByaW9yIHRvIHVzaW5nIHRoZSBkby13aGlsZSB0 aGUgY29tcGlsZXIgd291bGQgZ2V0IHVwc2V0IGF0IHRoZQo+IHwgICogImVsc2UiIGJlY2F1c2Ug aXQgaW50ZXJwcmV0ZWQgdGhlICJpZiIgc3RhdGVtZW50IGFzIGJlaW5nIGFsbAo+IHwgICogZG9u ZSB3aGVuIGl0IHJlYWNoZWQgdGhlICc7JyBhZnRlciB0aGUgeXlsZXNzKCkgY2FsbC4KPiB8ICAq Lwo+IHwgCj4gfCAvKiBSZXR1cm4gYWxsIGJ1dCB0aGUgZmlyc3QgJ24nIG1hdGNoZWQgY2hhcmFj dGVycyBiYWNrIHRvIHRoZSBpbnB1dCBzdHJlYW0uICovCj4gfCAKPiB8ICNkZWZpbmUgeXlsZXNz KG4pIFwKPiB8IAlkbyBcCj4gfCAJCXsgXAo+IHwgCQkvKiBVbmRvIGVmZmVjdHMgb2Ygc2V0dGlu ZyB1cCB5eXRleHQuICovIFwKPiB8IAkJKnl5X2NwID0geXlfaG9sZF9jaGFyOyBcCj4gfCAJCVlZ X1JFU1RPUkVfWVlfTU9SRV9PRkZTRVQgXAo+IHwgCQl5eV9jX2J1Zl9wID0geXlfY3AgPSB5eV9i cCArIG4gLSBZWV9NT1JFX0FESjsgXAo+IHwgCQlZWV9ET19CRUZPUkVfQUNUSU9OOyAvKiBzZXQg dXAgeXl0ZXh0IGFnYWluICovIFwKPiB8IAkJfSBcCj4gfCAJd2hpbGUgKCAwICkKPiB8IAo+IHwg I2RlZmluZSB1bnB1dChjKSB5eXVucHV0KCBjLCB5eXRleHRfcHRyICkKPiB8IAo+IHwgLyogU29t ZSByb3V0aW5lcyBsaWtlIHl5X2ZsZXhfcmVhbGxvYygpIGFyZSBlbWl0dGVkIGFzIHN0YXRpYyBi dXQgYXJlCj4gfCAgICBub3QgY2FsbGVkIGJ5IGFsbCBsZXhlcnMuIFRoaXMgZ2VuZXJhdGVzIHdh cm5pbmdzIGluIHNvbWUgY29tcGlsZXJzLAo+IHwgICAgbm90YWJseSBHQ0MuIEFycmFuZ2UgdG8g c3VwcHJlc3MgdGhlc2UuICovCj4gfCAjaWZkZWYgX19HTlVDX18KPiB8ICNkZWZpbmUgWVlfTUFZ X0JFX1VOVVNFRCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQo+IHwgI2Vsc2UKPiB8ICNkZWZpbmUg WVlfTUFZX0JFX1VOVVNFRAo+IHwgI2VuZGlmCj4gfCAKPiB8IC8qIFRoZSBmb2xsb3dpbmcgaXMg YmVjYXVzZSB3ZSBjYW5ub3QgcG9ydGFibHkgZ2V0IG91ciBoYW5kcyBvbiBzaXplX3QKPiB8ICAq ICh3aXRob3V0IGF1dG9jb25mJ3MgaGVscCwgd2hpY2ggaXNuJ3QgYXZhaWxhYmxlIGJlY2F1c2Ug d2Ugd2FudAo+IHwgICogZmxleC1nZW5lcmF0ZWQgc2Nhbm5lcnMgdG8gY29tcGlsZSBvbiB0aGVp ciBvd24pLgo+IHwgICovCj4gfCB0eXBlZGVmIHVuc2lnbmVkIGludCB5eV9zaXplX3Q7Cj4gfCAK PiB8IAo+IHwgc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZQo+IHwgCXsKPiB8IAlGSUxFICp5eV9pbnB1 dF9maWxlOwo+IHwgCj4gfCAJY2hhciAqeXlfY2hfYnVmOwkJLyogaW5wdXQgYnVmZmVyICovCj4g fCAJY2hhciAqeXlfYnVmX3BvczsJCS8qIGN1cnJlbnQgcG9zaXRpb24gaW4gaW5wdXQgYnVmZmVy ICovCj4gfCAKPiB8IAkvKiBTaXplIG9mIGlucHV0IGJ1ZmZlciBpbiBieXRlcywgbm90IGluY2x1 ZGluZyByb29tIGZvciBFT0IKPiB8IAkgKiBjaGFyYWN0ZXJzLgo+IHwgCSAqLwo+IHwgCXl5X3Np emVfdCB5eV9idWZfc2l6ZTsKPiB8IAo+IHwgCS8qIE51bWJlciBvZiBjaGFyYWN0ZXJzIHJlYWQg aW50byB5eV9jaF9idWYsIG5vdCBpbmNsdWRpbmcgRU9CCj4gfCAJICogY2hhcmFjdGVycy4KPiB8 IAkgKi8KPiB8IAlpbnQgeXlfbl9jaGFyczsKPiB8IAo+IHwgCS8qIFdoZXRoZXIgd2UgIm93biIg dGhlIGJ1ZmZlciAtIGkuZS4sIHdlIGtub3cgd2UgY3JlYXRlZCBpdCwKPiB8IAkgKiBhbmQgY2Fu IHJlYWxsb2MoKSBpdCB0byBncm93IGl0LCBhbmQgc2hvdWxkIGZyZWUoKSBpdCB0bwo+IHwgCSAq IGRlbGV0ZSBpdC4KPiB8IAkgKi8KPiB8IAlpbnQgeXlfaXNfb3VyX2J1ZmZlcjsKPiB8IAo+IHwg CS8qIFdoZXRoZXIgdGhpcyBpcyBhbiAiaW50ZXJhY3RpdmUiIGlucHV0IHNvdXJjZTsgaWYgc28s IGFuZAo+IHwgCSAqIGlmIHdlJ3JlIHVzaW5nIHN0ZGlvIGZvciBpbnB1dCwgdGhlbiB3ZSB3YW50 IHRvIHVzZSBnZXRjKCkKPiB8IAkgKiBpbnN0ZWFkIG9mIGZyZWFkKCksIHRvIG1ha2Ugc3VyZSB3 ZSBzdG9wIGZldGNoaW5nIGlucHV0IGFmdGVyCj4gfCAJICogZWFjaCBuZXdsaW5lLgo+IHwgCSAq Lwo+IHwgCWludCB5eV9pc19pbnRlcmFjdGl2ZTsKPiB8IAo+IHwgCS8qIFdoZXRoZXIgd2UncmUg Y29uc2lkZXJlZCB0byBiZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZS4KPiB8IAkgKiBJZiBz bywgJ14nIHJ1bGVzIHdpbGwgYmUgYWN0aXZlIG9uIHRoZSBuZXh0IG1hdGNoLCBvdGhlcndpc2UK PiB8IAkgKiBub3QuCj4gfCAJICovCj4gfCAJaW50IHl5X2F0X2JvbDsKPiB8IAo+IHwgCS8qIFdo ZXRoZXIgdG8gdHJ5IHRvIGZpbGwgdGhlIGlucHV0IGJ1ZmZlciB3aGVuIHdlIHJlYWNoIHRoZQo+ IHwgCSAqIGVuZCBvZiBpdC4KPiB8IAkgKi8KPiB8IAlpbnQgeXlfZmlsbF9idWZmZXI7Cj4gfCAK PiB8IAlpbnQgeXlfYnVmZmVyX3N0YXR1czsKPiB8ICNkZWZpbmUgWVlfQlVGRkVSX05FVyAwCj4g fCAjZGVmaW5lIFlZX0JVRkZFUl9OT1JNQUwgMQo+IHwgCS8qIFdoZW4gYW4gRU9GJ3MgYmVlbiBz ZWVuIGJ1dCB0aGVyZSdzIHN0aWxsIHNvbWUgdGV4dCB0byBwcm9jZXNzCj4gfCAJICogdGhlbiB3 ZSBtYXJrIHRoZSBidWZmZXIgYXMgWVlfRU9GX1BFTkRJTkcsIHRvIGluZGljYXRlIHRoYXQgd2UK PiB8IAkgKiBzaG91bGRuJ3QgdHJ5IHJlYWRpbmcgZnJvbSB0aGUgaW5wdXQgc291cmNlIGFueSBt b3JlLiAgV2UgbWlnaHQKPiB8IAkgKiBzdGlsbCBoYXZlIGEgYnVuY2ggb2YgdG9rZW5zIHRvIG1h dGNoLCB0aG91Z2gsIGJlY2F1c2Ugb2YKPiB8IAkgKiBwb3NzaWJsZSBiYWNraW5nLXVwLgo+IHwg CSAqCj4gfCAJICogV2hlbiB3ZSBhY3R1YWxseSBzZWUgdGhlIEVPRiwgd2UgY2hhbmdlIHRoZSBz dGF0dXMgdG8gIm5ldyIKPiB8IAkgKiAodmlhIHl5cmVzdGFydCgpKSwgc28gdGhhdCB0aGUgdXNl ciBjYW4gY29udGludWUgc2Nhbm5pbmcgYnkKPiB8IAkgKiBqdXN0IHBvaW50aW5nIHl5aW4gYXQg YSBuZXcgaW5wdXQgZmlsZS4KPiB8IAkgKi8KPiB8ICNkZWZpbmUgWVlfQlVGRkVSX0VPRl9QRU5E SU5HIDIKPiB8IAl9Owo+IHwgCj4gfCBzdGF0aWMgWVlfQlVGRkVSX1NUQVRFIHl5X2N1cnJlbnRf YnVmZmVyID0gMDsKPiB8IAo+IHwgLyogV2UgcHJvdmlkZSBtYWNyb3MgZm9yIGFjY2Vzc2luZyBi dWZmZXIgc3RhdGVzIGluIGNhc2UgaW4gdGhlCj4gfCAgKiBmdXR1cmUgd2Ugd2FudCB0byBwdXQg dGhlIGJ1ZmZlciBzdGF0ZXMgaW4gYSBtb3JlIGdlbmVyYWwKPiB8ICAqICJzY2FubmVyIHN0YXRl Ii4KPiB8ICAqLwo+IHwgI2RlZmluZSBZWV9DVVJSRU5UX0JVRkZFUiB5eV9jdXJyZW50X2J1ZmZl cgo+IHwgCj4gfCAKPiB8IC8qIHl5X2hvbGRfY2hhciBob2xkcyB0aGUgY2hhcmFjdGVyIGxvc3Qg d2hlbiB5eXRleHQgaXMgZm9ybWVkLiAqLwo+IHwgc3RhdGljIGNoYXIgeXlfaG9sZF9jaGFyOwo+ IHwgCj4gfCBzdGF0aWMgaW50IHl5X25fY2hhcnM7CQkvKiBudW1iZXIgb2YgY2hhcmFjdGVycyBy ZWFkIGludG8geXlfY2hfYnVmICovCj4gfCAKPiB8IAo+IHwgaW50IHl5bGVuZzsKPiB8IAo+IHwg LyogUG9pbnRzIHRvIGN1cnJlbnQgY2hhcmFjdGVyIGluIGJ1ZmZlci4gKi8KPiB8IHN0YXRpYyBj aGFyICp5eV9jX2J1Zl9wID0gKGNoYXIgKikgMDsKPiB8IHN0YXRpYyBpbnQgeXlfaW5pdCA9IDE7 CQkvKiB3aGV0aGVyIHdlIG5lZWQgdG8gaW5pdGlhbGl6ZSAqLwo+IHwgc3RhdGljIGludCB5eV9z dGFydCA9IDA7CS8qIHN0YXJ0IHN0YXRlIG51bWJlciAqLwo+IHwgCj4gfCAvKiBGbGFnIHdoaWNo IGlzIHVzZWQgdG8gYWxsb3cgeXl3cmFwKCkncyB0byBkbyBidWZmZXIgc3dpdGNoZXMKPiB8ICAq IGluc3RlYWQgb2Ygc2V0dGluZyB1cCBhIGZyZXNoIHl5aW4uICBBIGJpdCBvZiBhIGhhY2sgLi4u Cj4gfCAgKi8KPiB8IHN0YXRpYyBpbnQgeXlfZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9mOwo+IHwg Cj4gfCB2b2lkIHl5cmVzdGFydCBZWV9QUk9UTygoIEZJTEUgKmlucHV0X2ZpbGUgKSk7Cj4gfCAK PiB8IHZvaWQgeXlfc3dpdGNoX3RvX2J1ZmZlciBZWV9QUk9UTygoIFlZX0JVRkZFUl9TVEFURSBu ZXdfYnVmZmVyICkpOwo+IHwgdm9pZCB5eV9sb2FkX2J1ZmZlcl9zdGF0ZSBZWV9QUk9UTygoIHZv aWQgKSk7Cj4gfCBZWV9CVUZGRVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlciBZWV9QUk9UTygoIEZJ TEUgKmZpbGUsIGludCBzaXplICkpOwo+IHwgdm9pZCB5eV9kZWxldGVfYnVmZmVyIFlZX1BST1RP KCggWVlfQlVGRkVSX1NUQVRFIGIgKSk7Cj4gfCB2b2lkIHl5X2luaXRfYnVmZmVyIFlZX1BST1RP KCggWVlfQlVGRkVSX1NUQVRFIGIsIEZJTEUgKmZpbGUgKSk7Cj4gfCB2b2lkIHl5X2ZsdXNoX2J1 ZmZlciBZWV9QUk9UTygoIFlZX0JVRkZFUl9TVEFURSBiICkpOwo+IHwgI2RlZmluZSBZWV9GTFVT SF9CVUZGRVIgeXlfZmx1c2hfYnVmZmVyKCB5eV9jdXJyZW50X2J1ZmZlciApCj4gfCAKPiB8IFlZ X0JVRkZFUl9TVEFURSB5eV9zY2FuX2J1ZmZlciBZWV9QUk9UTygoIGNoYXIgKmJhc2UsIHl5X3Np emVfdCBzaXplICkpOwo+IHwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fc3RyaW5nIFlZX1BST1RP KCggeXljb25zdCBjaGFyICp5eV9zdHIgKSk7Cj4gfCBZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9i eXRlcyBZWV9QUk9UTygoIHl5Y29uc3QgY2hhciAqYnl0ZXMsIGludCBsZW4gKSk7Cj4gfCAKPiB8 IHN0YXRpYyB2b2lkICp5eV9mbGV4X2FsbG9jIFlZX1BST1RPKCggeXlfc2l6ZV90ICkpOwo+IHwg c3RhdGljIHZvaWQgKnl5X2ZsZXhfcmVhbGxvYyBZWV9QUk9UTygoIHZvaWQgKiwgeXlfc2l6ZV90 ICkpIFlZX01BWV9CRV9VTlVTRUQ7Cj4gfCBzdGF0aWMgdm9pZCB5eV9mbGV4X2ZyZWUgWVlfUFJP VE8oKCB2b2lkICogKSk7Cj4gfCAKPiB8ICNkZWZpbmUgeXlfbmV3X2J1ZmZlciB5eV9jcmVhdGVf YnVmZmVyCj4gfCAKPiB8ICNkZWZpbmUgeXlfc2V0X2ludGVyYWN0aXZlKGlzX2ludGVyYWN0aXZl KSBcCj4gfCAJeyBcCj4gfCAJaWYgKCAhIHl5X2N1cnJlbnRfYnVmZmVyICkgXAo+IHwgCQl5eV9j dXJyZW50X2J1ZmZlciA9IHl5X2NyZWF0ZV9idWZmZXIoIHl5aW4sIFlZX0JVRl9TSVpFICk7IFwK PiB8IAl5eV9jdXJyZW50X2J1ZmZlci0+eXlfaXNfaW50ZXJhY3RpdmUgPSBpc19pbnRlcmFjdGl2 ZTsgXAo+IHwgCX0KPiB8IAo+IHwgI2RlZmluZSB5eV9zZXRfYm9sKGF0X2JvbCkgXAo+IHwgCXsg XAo+IHwgCWlmICggISB5eV9jdXJyZW50X2J1ZmZlciApIFwKPiB8IAkJeXlfY3VycmVudF9idWZm ZXIgPSB5eV9jcmVhdGVfYnVmZmVyKCB5eWluLCBZWV9CVUZfU0laRSApOyBcCj4gfCAJeXlfY3Vy cmVudF9idWZmZXItPnl5X2F0X2JvbCA9IGF0X2JvbDsgXAo+IHwgCX0KPiB8IAo+IHwgI2RlZmlu ZSBZWV9BVF9CT0woKSAoeXlfY3VycmVudF9idWZmZXItPnl5X2F0X2JvbCkKPiB8IAo+IHwgCj4g fCAjZGVmaW5lIFlZX1VTRVNfUkVKRUNUCj4gfCB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgWVlfQ0hB UjsKPiB8IEZJTEUgKnl5aW4gPSAoRklMRSAqKSAwLCAqeXlvdXQgPSAoRklMRSAqKSAwOwo+IHwg dHlwZWRlZiBpbnQgeXlfc3RhdGVfdHlwZTsKPiB8IGV4dGVybiBjaGFyICp5eXRleHQ7Cj4gfCAj ZGVmaW5lIHl5dGV4dF9wdHIgeXl0ZXh0Cj4gfCAKPiB8IHN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5 X2dldF9wcmV2aW91c19zdGF0ZSBZWV9QUk9UTygoIHZvaWQgKSk7Cj4gfCBzdGF0aWMgeXlfc3Rh dGVfdHlwZSB5eV90cnlfTlVMX3RyYW5zIFlZX1BST1RPKCggeXlfc3RhdGVfdHlwZSBjdXJyZW50 X3N0YXRlICkpOwo+IHwgc3RhdGljIGludCB5eV9nZXRfbmV4dF9idWZmZXIgWVlfUFJPVE8oKCB2 b2lkICkpOwo+IHwgc3RhdGljIHZvaWQgeXlfZmF0YWxfZXJyb3IgWVlfUFJPVE8oKCB5eWNvbnN0 IGNoYXIgbXNnW10gKSk7Cj4gfCAKPiB8IC8qIERvbmUgYWZ0ZXIgdGhlIGN1cnJlbnQgcGF0dGVy biBoYXMgYmVlbiBtYXRjaGVkIGFuZCBiZWZvcmUgdGhlCj4gfCAgKiBjb3JyZXNwb25kaW5nIGFj dGlvbiAtIHNldHMgdXAgeXl0ZXh0Lgo+IHwgICovCj4gfCAjZGVmaW5lIFlZX0RPX0JFRk9SRV9B Q1RJT04gXAo+IHwgCXl5dGV4dF9wdHIgPSB5eV9icDsgXAo+IHwgCXl5dGV4dF9wdHIgLT0geXlf bW9yZV9sZW47IFwKPiB8IAl5eWxlbmcgPSAoaW50KSAoeXlfY3AgLSB5eXRleHRfcHRyKTsgXAo+ IHwgCXl5X2hvbGRfY2hhciA9ICp5eV9jcDsgXAo+IHwgCSp5eV9jcCA9ICdcMCc7IFwKPiB8IAl5 eV9jX2J1Zl9wID0geXlfY3A7Cj4gfCAKPiB8ICNkZWZpbmUgWVlfTlVNX1JVTEVTIDgKPiB8ICNk ZWZpbmUgWVlfRU5EX09GX0JVRkZFUiA5Cj4gfCBzdGF0aWMgeXljb25zdCBzaG9ydCBpbnQgeXlf YWNjbGlzdFsyM10gPQo+IHwgICAgIHsgICAwLAo+IHwgICAgICAgICA5LCAgICA3LCAgICA4LCAg ICA4LCAgICAxLCAgICA3LCAgICA4LCAgICAyLCAgICA3LCAgICA4LAo+IHwgICAgICAgICAzLCAg ICA3LCAgICA4LCAgICA0LCAgICA3LCAgICA4LCAgICA1LCAgICA3LCAgICA4LCAgICA2LAo+IHwg ICAgICAgICA3LCAgICA4Cj4gfCAgICAgfSA7Cj4gfCAKPiB8IHN0YXRpYyB5eWNvbnN0IHNob3J0 IGludCB5eV9hY2NlcHRbMTRdID0KPiB8ICAgICB7ICAgMCwKPiB8ICAgICAgICAgMSwgICAgMSwg ICAgMSwgICAgMiwgICAgNCwgICAgNSwgICAgOCwgICAxMSwgICAxNCwgICAxNywKPiB8ICAgICAg ICAyMCwgICAyMywgICAyMwo+IHwgICAgIH0gOwo+IHwgCj4gfCBzdGF0aWMgeXljb25zdCBpbnQg eXlfZWNbMjU2XSA9Cj4gfCAgICAgeyAgIDAsCj4gfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDIsCj4gfCAgICAgICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCj4gfCAg ICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsCj4gfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsCj4gfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCj4gfCAgICAgICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCj4gfCAgICAgICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCj4g fCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsCj4gfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsCj4gfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDMsICAgIDQsICAgIDUsICAgIDYsCj4gfCAKPiB8ICAgICAgICAgNywgICAg OCwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKPiB8ICAg ICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwKPiB8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwKPiB8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKPiB8ICAgICAgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKPiB8ICAgICAgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKPiB8 ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwKPiB8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwKPiB8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKPiB8ICAgICAgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKPiB8IAo+IHwgICAg ICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLAo+IHwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLAo+IHwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAo+IHwgICAgICAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAo+IHwgICAgICAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAo+IHwg ICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxCj4gfCAgICAgfSA7Cj4gfCAKPiB8IHN0 YXRpYyB5eWNvbnN0IGludCB5eV9tZXRhWzldID0KPiB8ICAgICB7ICAgMCwKPiB8ICAgICAgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMQo+IHwgICAgIH0gOwo+ IHwgCj4gfCBzdGF0aWMgeXljb25zdCBzaG9ydCBpbnQgeXlfYmFzZVsxM10gPQo+IHwgICAgIHsg ICAwLAo+IHwgICAgICAgICAwLCAgICAwLCAgICA5LCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAg IDEwLCAgIDEwLCAgIDEwLAo+IHwgICAgICAgIDEwLCAgIDEwCj4gfCAgICAgfSA7Cj4gfCAKPiB8 IHN0YXRpYyB5eWNvbnN0IHNob3J0IGludCB5eV9kZWZbMTNdID0KPiB8ICAgICB7ICAgMCwKPiB8 ICAgICAgICAxMiwgICAgMSwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAx MiwgICAxMiwKPiB8ICAgICAgICAxMiwgICAgMAo+IHwgICAgIH0gOwo+IHwgCj4gfCBzdGF0aWMg eXljb25zdCBzaG9ydCBpbnQgeXlfbnh0WzE5XSA9Cj4gfCAgICAgeyAgIDAsCj4gfCAgICAgICAg IDQsICAgIDUsICAgIDYsICAgIDcsICAgIDgsICAgIDksICAgMTAsICAgMTEsICAgMTIsICAgIDMs Cj4gfCAgICAgICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIK PiB8ICAgICB9IDsKPiB8IAo+IHwgc3RhdGljIHl5Y29uc3Qgc2hvcnQgaW50IHl5X2Noa1sxOV0g PQo+IHwgICAgIHsgICAwLAo+IHwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAzLCAgIDEyLAo+IHwgICAgICAgIDEyLCAgIDEyLCAgIDEyLCAg IDEyLCAgIDEyLCAgIDEyLCAgIDEyLCAgIDEyCj4gfCAgICAgfSA7Cj4gfCAKPiB8IHN0YXRpYyB5 eV9zdGF0ZV90eXBlIHl5X3N0YXRlX2J1ZltZWV9CVUZfU0laRSArIDJdLCAqeXlfc3RhdGVfcHRy Owo+IHwgc3RhdGljIGNoYXIgKnl5X2Z1bGxfbWF0Y2g7Cj4gfCBzdGF0aWMgaW50IHl5X2xwOwo+ IHwgI2RlZmluZSBSRUpFQ1QgXAo+IHwgeyBcCj4gfCAqeXlfY3AgPSB5eV9ob2xkX2NoYXI7IC8q IHVuZG8gZWZmZWN0cyBvZiBzZXR0aW5nIHVwIHl5dGV4dCAqLyBcCj4gfCB5eV9jcCA9IHl5X2Z1 bGxfbWF0Y2g7IC8qIHJlc3RvcmUgcG9zcy4gYmFja2VkLW92ZXIgdGV4dCAqLyBcCj4gfCArK3l5 X2xwOyBcCj4gfCBnb3RvIGZpbmRfcnVsZTsgXAo+IHwgfQo+IHwgc3RhdGljIGludCB5eV9tb3Jl X2ZsYWcgPSAwOwo+IHwgc3RhdGljIGludCB5eV9tb3JlX2xlbiA9IDA7Cj4gfCAjZGVmaW5lIHl5 bW9yZSgpICh5eV9tb3JlX2ZsYWcgPSAxKQo+IHwgI2RlZmluZSBZWV9NT1JFX0FESiB5eV9tb3Jl X2xlbgo+IHwgI2RlZmluZSBZWV9SRVNUT1JFX1lZX01PUkVfT0ZGU0VUCj4gfCBjaGFyICp5eXRl eHQ7Cj4gfCAjbGluZSAxICJjb25mdGVzdC5sIgo+IHwgI2RlZmluZSBJTklUSUFMIDAKPiB8ICNs aW5lIDM5MiAibGV4Lnl5LmMiCj4gfCAKPiB8IC8qIE1hY3JvcyBhZnRlciB0aGlzIHBvaW50IGNh biBhbGwgYmUgb3ZlcnJpZGRlbiBieSB1c2VyIGRlZmluaXRpb25zIGluCj4gfCAgKiBzZWN0aW9u IDEuCj4gfCAgKi8KPiB8IAo+IHwgI2lmbmRlZiBZWV9TS0lQX1lZV1JBUAo+IHwgI2lmZGVmIF9f Y3BsdXNwbHVzCj4gfCBleHRlcm4gIkMiIGludCB5eXdyYXAgWVlfUFJPVE8oKCB2b2lkICkpOwo+ IHwgI2Vsc2UKPiB8IGV4dGVybiBpbnQgeXl3cmFwIFlZX1BST1RPKCggdm9pZCApKTsKPiB8ICNl bmRpZgo+IHwgI2VuZGlmCj4gfCAKPiB8ICNpZm5kZWYgWVlfTk9fVU5QVVQKPiB8IHN0YXRpYyB2 b2lkIHl5dW5wdXQgWVlfUFJPVE8oKCBpbnQgYywgY2hhciAqYnVmX3B0ciApKTsKPiB8ICNlbmRp Zgo+IHwgCj4gfCAjaWZuZGVmIHl5dGV4dF9wdHIKPiB8IHN0YXRpYyB2b2lkIHl5X2ZsZXhfc3Ry bmNweSBZWV9QUk9UTygoIGNoYXIgKiwgeXljb25zdCBjaGFyICosIGludCApKTsKPiB8ICNlbmRp Zgo+IHwgCj4gfCAjaWZkZWYgWVlfTkVFRF9TVFJMRU4KPiB8IHN0YXRpYyBpbnQgeXlfZmxleF9z dHJsZW4gWVlfUFJPVE8oKCB5eWNvbnN0IGNoYXIgKiApKTsKPiB8ICNlbmRpZgo+IHwgCj4gfCAj aWZuZGVmIFlZX05PX0lOUFVUCj4gfCAjaWZkZWYgX19jcGx1c3BsdXMKPiB8IHN0YXRpYyBpbnQg eXlpbnB1dCBZWV9QUk9UTygoIHZvaWQgKSk7Cj4gfCAjZWxzZQo+IHwgc3RhdGljIGludCBpbnB1 dCBZWV9QUk9UTygoIHZvaWQgKSk7Cj4gfCAjZW5kaWYKPiB8ICNlbmRpZgo+IHwgCj4gfCAjaWYg WVlfU1RBQ0tfVVNFRAo+IHwgc3RhdGljIGludCB5eV9zdGFydF9zdGFja19wdHIgPSAwOwo+IHwg c3RhdGljIGludCB5eV9zdGFydF9zdGFja19kZXB0aCA9IDA7Cj4gfCBzdGF0aWMgaW50ICp5eV9z dGFydF9zdGFjayA9IDA7Cj4gfCAjaWZuZGVmIFlZX05PX1BVU0hfU1RBVEUKPiB8IHN0YXRpYyB2 b2lkIHl5X3B1c2hfc3RhdGUgWVlfUFJPVE8oKCBpbnQgbmV3X3N0YXRlICkpOwo+IHwgI2VuZGlm Cj4gfCAjaWZuZGVmIFlZX05PX1BPUF9TVEFURQo+IHwgc3RhdGljIHZvaWQgeXlfcG9wX3N0YXRl IFlZX1BST1RPKCggdm9pZCApKTsKPiB8ICNlbmRpZgo+IHwgI2lmbmRlZiBZWV9OT19UT1BfU1RB VEUKPiB8IHN0YXRpYyBpbnQgeXlfdG9wX3N0YXRlIFlZX1BST1RPKCggdm9pZCApKTsKPiB8ICNl bmRpZgo+IHwgCj4gfCAjZWxzZQo+IHwgI2RlZmluZSBZWV9OT19QVVNIX1NUQVRFIDEKPiB8ICNk ZWZpbmUgWVlfTk9fUE9QX1NUQVRFIDEKPiB8ICNkZWZpbmUgWVlfTk9fVE9QX1NUQVRFIDEKPiB8 ICNlbmRpZgo+IHwgCj4gfCAjaWZkZWYgWVlfTUFMTE9DX0RFQ0wKPiB8IFlZX01BTExPQ19ERUNM Cj4gfCAjZWxzZQo+IHwgI2lmIF9fU1REQ19fCj4gfCAjaWZuZGVmIF9fY3BsdXNwbHVzCj4gfCAj aW5jbHVkZSA8c3RkbGliLmg+Cj4gfCAjZW5kaWYKPiB8ICNlbHNlCj4gfCAvKiBKdXN0IHRyeSB0 byBnZXQgYnkgd2l0aG91dCBkZWNsYXJpbmcgdGhlIHJvdXRpbmVzLiAgVGhpcyB3aWxsIGZhaWwK PiB8ICAqIG1pc2VyYWJseSBvbiBub24tQU5TSSBzeXN0ZW1zIGZvciB3aGljaCBzaXplb2Yoc2l6 ZV90KSAhPSBzaXplb2YoaW50KQo+IHwgICogb3Igc2l6ZW9mKHZvaWQqKSAhPSBzaXplb2YoaW50 KS4KPiB8ICAqLwo+IHwgI2VuZGlmCj4gfCAjZW5kaWYKPiB8IAo+IHwgLyogQW1vdW50IG9mIHN0 dWZmIHRvIHNsdXJwIHVwIHdpdGggZWFjaCByZWFkLiAqLwo+IHwgI2lmbmRlZiBZWV9SRUFEX0JV Rl9TSVpFCj4gfCAjZGVmaW5lIFlZX1JFQURfQlVGX1NJWkUgODE5Mgo+IHwgI2VuZGlmCj4gfCAK PiB8IC8qIENvcHkgd2hhdGV2ZXIgdGhlIGxhc3QgcnVsZSBtYXRjaGVkIHRvIHRoZSBzdGFuZGFy ZCBvdXRwdXQuICovCj4gfCAKPiB8ICNpZm5kZWYgRUNITwo+IHwgLyogVGhpcyB1c2VkIHRvIGJl IGFuIGZwdXRzKCksIGJ1dCBzaW5jZSB0aGUgc3RyaW5nIG1pZ2h0IGNvbnRhaW4gTlVMJ3MsCj4g fCAgKiB3ZSBub3cgdXNlIGZ3cml0ZSgpLgo+IHwgICovCj4gfCAjZGVmaW5lIEVDSE8gKHZvaWQp IGZ3cml0ZSggeXl0ZXh0LCB5eWxlbmcsIDEsIHl5b3V0ICkKPiB8ICNlbmRpZgo+IHwgCj4gfCAv KiBHZXRzIGlucHV0IGFuZCBzdHVmZnMgaXQgaW50byAiYnVmIi4gIG51bWJlciBvZiBjaGFyYWN0 ZXJzIHJlYWQsIG9yIFlZX05VTEwsCj4gfCAgKiBpcyByZXR1cm5lZCBpbiAicmVzdWx0Ii4KPiB8 ICAqLwo+IHwgI2lmbmRlZiBZWV9JTlBVVAo+IHwgI2RlZmluZSBZWV9JTlBVVChidWYscmVzdWx0 LG1heF9zaXplKSBcCj4gfCAJaWYgKCB5eV9jdXJyZW50X2J1ZmZlci0+eXlfaXNfaW50ZXJhY3Rp dmUgKSBcCj4gfCAJCXsgXAo+IHwgCQlpbnQgYyA9ICcqJywgbjsgXAo+IHwgCQlmb3IgKCBuID0g MDsgbiA8IG1heF9zaXplICYmIFwKPiB8IAkJCSAgICAgKGMgPSBnZXRjKCB5eWluICkpICE9IEVP RiAmJiBjICE9ICdcbic7ICsrbiApIFwKPiB8IAkJCWJ1ZltuXSA9IChjaGFyKSBjOyBcCj4gfCAJ CWlmICggYyA9PSAnXG4nICkgXAo+IHwgCQkJYnVmW24rK10gPSAoY2hhcikgYzsgXAo+IHwgCQlp ZiAoIGMgPT0gRU9GICYmIGZlcnJvciggeXlpbiApICkgXAo+IHwgCQkJWVlfRkFUQUxfRVJST1Io ICJpbnB1dCBpbiBmbGV4IHNjYW5uZXIgZmFpbGVkIiApOyBcCj4gfCAJCXJlc3VsdCA9IG47IFwK PiB8IAkJfSBcCj4gfCAJZWxzZSBpZiAoICgocmVzdWx0ID0gZnJlYWQoIGJ1ZiwgMSwgbWF4X3Np emUsIHl5aW4gKSkgPT0gMCkgXAo+IHwgCQkgICYmIGZlcnJvciggeXlpbiApICkgXAo+IHwgCQlZ WV9GQVRBTF9FUlJPUiggImlucHV0IGluIGZsZXggc2Nhbm5lciBmYWlsZWQiICk7Cj4gfCAjZW5k aWYKPiB8IAo+IHwgLyogTm8gc2VtaS1jb2xvbiBhZnRlciByZXR1cm47IGNvcnJlY3QgdXNhZ2Ug aXMgdG8gd3JpdGUgInl5dGVybWluYXRlKCk7IiAtCj4gfCAgKiB3ZSBkb24ndCB3YW50IGFuIGV4 dHJhICc7JyBhZnRlciB0aGUgInJldHVybiIgYmVjYXVzZSB0aGF0IHdpbGwgY2F1c2UKPiB8ICAq IHNvbWUgY29tcGlsZXJzIHRvIGNvbXBsYWluIGFib3V0IHVucmVhY2hhYmxlIHN0YXRlbWVudHMu Cj4gfCAgKi8KPiB8ICNpZm5kZWYgeXl0ZXJtaW5hdGUKPiB8ICNkZWZpbmUgeXl0ZXJtaW5hdGUo KSByZXR1cm4gWVlfTlVMTAo+IHwgI2VuZGlmCj4gfCAKPiB8IC8qIE51bWJlciBvZiBlbnRyaWVz IGJ5IHdoaWNoIHN0YXJ0LWNvbmRpdGlvbiBzdGFjayBncm93cy4gKi8KPiB8ICNpZm5kZWYgWVlf U1RBUlRfU1RBQ0tfSU5DUgo+IHwgI2RlZmluZSBZWV9TVEFSVF9TVEFDS19JTkNSIDI1Cj4gfCAj ZW5kaWYKPiB8IAo+IHwgLyogUmVwb3J0IGEgZmF0YWwgZXJyb3IuICovCj4gfCAjaWZuZGVmIFlZ X0ZBVEFMX0VSUk9SCj4gfCAjZGVmaW5lIFlZX0ZBVEFMX0VSUk9SKG1zZykgeXlfZmF0YWxfZXJy b3IoIG1zZyApCj4gfCAjZW5kaWYKPiB8IAo+IHwgLyogRGVmYXVsdCBkZWNsYXJhdGlvbiBvZiBn ZW5lcmF0ZWQgc2Nhbm5lciAtIGEgZGVmaW5lIHNvIHRoZSB1c2VyIGNhbgo+IHwgICogZWFzaWx5 IGFkZCBwYXJhbWV0ZXJzLgo+IHwgICovCj4gfCAjaWZuZGVmIFlZX0RFQ0wKPiB8ICNkZWZpbmUg WVlfREVDTCBpbnQgeXlsZXggWVlfUFJPVE8oKCB2b2lkICkpCj4gfCAjZW5kaWYKPiB8IAo+IHwg LyogQ29kZSBleGVjdXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggcnVsZSwgYWZ0ZXIgeXl0 ZXh0IGFuZCB5eWxlbmcKPiB8ICAqIGhhdmUgYmVlbiBzZXQgdXAuCj4gfCAgKi8KPiB8ICNpZm5k ZWYgWVlfVVNFUl9BQ1RJT04KPiB8ICNkZWZpbmUgWVlfVVNFUl9BQ1RJT04KPiB8ICNlbmRpZgo+ IHwgCj4gfCAvKiBDb2RlIGV4ZWN1dGVkIGF0IHRoZSBlbmQgb2YgZWFjaCBydWxlLiAqLwo+IHwg I2lmbmRlZiBZWV9CUkVBSwo+IHwgI2RlZmluZSBZWV9CUkVBSyBicmVhazsKPiB8ICNlbmRpZgo+ IHwgCj4gfCAjZGVmaW5lIFlZX1JVTEVfU0VUVVAgXAo+IHwgCVlZX1VTRVJfQUNUSU9OCj4gfCAK PiB8IFlZX0RFQ0wKPiB8IAl7Cj4gfCAJcmVnaXN0ZXIgeXlfc3RhdGVfdHlwZSB5eV9jdXJyZW50 X3N0YXRlOwo+IHwgCXJlZ2lzdGVyIGNoYXIgKnl5X2NwID0gTlVMTCwgKnl5X2JwID0gTlVMTDsK PiB8IAlyZWdpc3RlciBpbnQgeXlfYWN0Owo+IHwgCj4gfCAjbGluZSAxICJjb25mdGVzdC5sIgo+ IHwgCj4gfCAjbGluZSA1NDUgImxleC55eS5jIgo+IHwgCj4gfCAJaWYgKCB5eV9pbml0ICkKPiB8 IAkJewo+IHwgCQl5eV9pbml0ID0gMDsKPiB8IAo+IHwgI2lmZGVmIFlZX1VTRVJfSU5JVAo+IHwg CQlZWV9VU0VSX0lOSVQ7Cj4gfCAjZW5kaWYKPiB8IAo+IHwgCQlpZiAoICEgeXlfc3RhcnQgKQo+ IHwgCQkJeXlfc3RhcnQgPSAxOwkvKiBmaXJzdCBzdGFydCBzdGF0ZSAqLwo+IHwgCj4gfCAJCWlm ICggISB5eWluICkKPiB8IAkJCXl5aW4gPSBzdGRpbjsKPiB8IAo+IHwgCQlpZiAoICEgeXlvdXQg KQo+IHwgCQkJeXlvdXQgPSBzdGRvdXQ7Cj4gfCAKPiB8IAkJaWYgKCAhIHl5X2N1cnJlbnRfYnVm ZmVyICkKPiB8IAkJCXl5X2N1cnJlbnRfYnVmZmVyID0KPiB8IAkJCQl5eV9jcmVhdGVfYnVmZmVy KCB5eWluLCBZWV9CVUZfU0laRSApOwo+IHwgCj4gfCAJCXl5X2xvYWRfYnVmZmVyX3N0YXRlKCk7 Cj4gfCAJCX0KPiB8IAo+IHwgCXdoaWxlICggMSApCQkvKiBsb29wcyB1bnRpbCBlbmQtb2YtZmls ZSBpcyByZWFjaGVkICovCj4gfCAJCXsKPiB8IAkJeXlfbW9yZV9sZW4gPSAwOwo+IHwgCQlpZiAo IHl5X21vcmVfZmxhZyApCj4gfCAJCQl7Cj4gfCAJCQl5eV9tb3JlX2xlbiA9IHl5X2NfYnVmX3Ag LSB5eXRleHRfcHRyOwo+IHwgCQkJeXlfbW9yZV9mbGFnID0gMDsKPiB8IAkJCX0KPiB8IAkJeXlf Y3AgPSB5eV9jX2J1Zl9wOwo+IHwgCj4gfCAJCS8qIFN1cHBvcnQgb2YgeXl0ZXh0LiAqLwo+IHwg CQkqeXlfY3AgPSB5eV9ob2xkX2NoYXI7Cj4gfCAKPiB8IAkJLyogeXlfYnAgcG9pbnRzIHRvIHRo ZSBwb3NpdGlvbiBpbiB5eV9jaF9idWYgb2YgdGhlIHN0YXJ0IG9mCj4gfCAJCSAqIHRoZSBjdXJy ZW50IHJ1bi4KPiB8IAkJICovCj4gfCAJCXl5X2JwID0geXlfY3A7Cj4gfCAKPiB8IAkJeXlfY3Vy cmVudF9zdGF0ZSA9IHl5X3N0YXJ0Owo+IHwgCQl5eV9zdGF0ZV9wdHIgPSB5eV9zdGF0ZV9idWY7 Cj4gfCAJCSp5eV9zdGF0ZV9wdHIrKyA9IHl5X2N1cnJlbnRfc3RhdGU7Cj4gfCB5eV9tYXRjaDoK PiB8IAkJZG8KPiB8IAkJCXsKPiB8IAkJCXJlZ2lzdGVyIFlZX0NIQVIgeXlfYyA9IHl5X2VjW1lZ X1NDX1RPX1VJKCp5eV9jcCldOwo+IHwgCQkJd2hpbGUgKCB5eV9jaGtbeXlfYmFzZVt5eV9jdXJy ZW50X3N0YXRlXSArIHl5X2NdICE9IHl5X2N1cnJlbnRfc3RhdGUgKQo+IHwgCQkJCXsKPiB8IAkJ CQl5eV9jdXJyZW50X3N0YXRlID0gKGludCkgeXlfZGVmW3l5X2N1cnJlbnRfc3RhdGVdOwo+IHwg CQkJCWlmICggeXlfY3VycmVudF9zdGF0ZSA+PSAxMyApCj4gfCAJCQkJCXl5X2MgPSB5eV9tZXRh Wyh1bnNpZ25lZCBpbnQpIHl5X2NdOwo+IHwgCQkJCX0KPiB8IAkJCXl5X2N1cnJlbnRfc3RhdGUg PSB5eV9ueHRbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArICh1bnNpZ25lZCBpbnQpIHl5X2Nd Owo+IHwgCQkJKnl5X3N0YXRlX3B0cisrID0geXlfY3VycmVudF9zdGF0ZTsKPiB8IAkJCSsreXlf Y3A7Cj4gfCAJCQl9Cj4gfCAJCXdoaWxlICggeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSAhPSAx MCApOwo+IHwgCj4gfCB5eV9maW5kX2FjdGlvbjoKPiB8IAkJeXlfY3VycmVudF9zdGF0ZSA9ICot LXl5X3N0YXRlX3B0cjsKPiB8IAkJeXlfbHAgPSB5eV9hY2NlcHRbeXlfY3VycmVudF9zdGF0ZV07 Cj4gfCBmaW5kX3J1bGU6IC8qIHdlIGJyYW5jaCB0byB0aGlzIGxhYmVsIHdoZW4gYmFja2luZyB1 cCAqLwo+IHwgCQlmb3IgKCA7IDsgKSAvKiB1bnRpbCB3ZSBmaW5kIHdoYXQgcnVsZSB3ZSBtYXRj aGVkICovCj4gfCAJCQl7Cj4gfCAJCQlpZiAoIHl5X2xwICYmIHl5X2xwIDwgeXlfYWNjZXB0W3l5 X2N1cnJlbnRfc3RhdGUgKyAxXSApCj4gfCAJCQkJewo+IHwgCQkJCXl5X2FjdCA9IHl5X2FjY2xp c3RbeXlfbHBdOwo+IHwgCQkJCQl7Cj4gfCAJCQkJCXl5X2Z1bGxfbWF0Y2ggPSB5eV9jcDsKPiB8 IAkJCQkJYnJlYWs7Cj4gfCAJCQkJCX0KPiB8IAkJCQl9Cj4gfCAJCQktLXl5X2NwOwo+IHwgCQkJ eXlfY3VycmVudF9zdGF0ZSA9ICotLXl5X3N0YXRlX3B0cjsKPiB8IAkJCXl5X2xwID0geXlfYWNj ZXB0W3l5X2N1cnJlbnRfc3RhdGVdOwo+IHwgCQkJfQo+IHwgCj4gfCAJCVlZX0RPX0JFRk9SRV9B Q1RJT047Cj4gfCAKPiB8IAo+IHwgZG9fYWN0aW9uOgkvKiBUaGlzIGxhYmVsIGlzIHVzZWQgb25s eSB0byBhY2Nlc3MgRU9GIGFjdGlvbnMuICovCj4gfCAKPiB8IAo+IHwgCQlzd2l0Y2ggKCB5eV9h Y3QgKQo+IHwgCXsgLyogYmVnaW5uaW5nIG9mIGFjdGlvbiBzd2l0Y2ggKi8KPiB8IGNhc2UgMToK PiB8IFlZX1JVTEVfU0VUVVAKPiB8ICNsaW5lIDIgImNvbmZ0ZXN0LmwiCj4gfCB7IEVDSE87IH0K PiB8IAlZWV9CUkVBSwo+IHwgY2FzZSAyOgo+IHwgWVlfUlVMRV9TRVRVUAo+IHwgI2xpbmUgMyAi Y29uZnRlc3QubCIKPiB8IHsgUkVKRUNUOyB9Cj4gfCAJWVlfQlJFQUsKPiB8IGNhc2UgMzoKPiB8 IFlZX1JVTEVfU0VUVVAKPiB8ICNsaW5lIDQgImNvbmZ0ZXN0LmwiCj4gfCB7IHl5bW9yZSAoKTsg fQo+IHwgCVlZX0JSRUFLCj4gfCBjYXNlIDQ6Cj4gfCBZWV9SVUxFX1NFVFVQCj4gfCAjbGluZSA1 ICJjb25mdGVzdC5sIgo+IHwgeyB5eWxlc3MgKDEpOyB9Cj4gfCAJWVlfQlJFQUsKPiB8IGNhc2Ug NToKPiB8IFlZX1JVTEVfU0VUVVAKPiB8ICNsaW5lIDYgImNvbmZ0ZXN0LmwiCj4gfCB7IHl5bGVz cyAoaW5wdXQgKCkgIT0gMCk7IH0KPiB8IAlZWV9CUkVBSwo+IHwgY2FzZSA2Ogo+IHwgWVlfUlVM RV9TRVRVUAo+IHwgI2xpbmUgNyAiY29uZnRlc3QubCIKPiB8IHsgdW5wdXQgKHl5dGV4dFswXSk7 IH0KPiB8IAlZWV9CUkVBSwo+IHwgY2FzZSA3Ogo+IHwgWVlfUlVMRV9TRVRVUAo+IHwgI2xpbmUg OCAiY29uZnRlc3QubCIKPiB8IHsgQkVHSU4gSU5JVElBTDsgfQo+IHwgCVlZX0JSRUFLCj4gfCBj YXNlIDg6Cj4gfCBZWV9SVUxFX1NFVFVQCj4gfCAjbGluZSA5ICJjb25mdGVzdC5sIgo+IHwgRUNI TzsKPiB8IAlZWV9CUkVBSwo+IHwgI2xpbmUgNjc1ICJsZXgueXkuYyIKPiB8IAkJCWNhc2UgWVlf U1RBVEVfRU9GKElOSVRJQUwpOgo+IHwgCQkJCXl5dGVybWluYXRlKCk7Cj4gfCAKPiB8IAljYXNl IFlZX0VORF9PRl9CVUZGRVI6Cj4gfCAJCXsKPiB8IAkJLyogQW1vdW50IG9mIHRleHQgbWF0Y2hl ZCBub3QgaW5jbHVkaW5nIHRoZSBFT0IgY2hhci4gKi8KPiB8IAkJaW50IHl5X2Ftb3VudF9vZl9t YXRjaGVkX3RleHQgPSAoaW50KSAoeXlfY3AgLSB5eXRleHRfcHRyKSAtIDE7Cj4gfCAKPiB8IAkJ LyogVW5kbyB0aGUgZWZmZWN0cyBvZiBZWV9ET19CRUZPUkVfQUNUSU9OLiAqLwo+IHwgCQkqeXlf Y3AgPSB5eV9ob2xkX2NoYXI7Cj4gfCAJCVlZX1JFU1RPUkVfWVlfTU9SRV9PRkZTRVQKPiB8IAo+ IHwgCQlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZmZXJfc3RhdHVzID09IFlZX0JVRkZF Ul9ORVcgKQo+IHwgCQkJewo+IHwgCQkJLyogV2UncmUgc2Nhbm5pbmcgYSBuZXcgZmlsZSBvciBp bnB1dCBzb3VyY2UuICBJdCdzCj4gfCAJCQkgKiBwb3NzaWJsZSB0aGF0IHRoaXMgaGFwcGVuZWQg YmVjYXVzZSB0aGUgdXNlcgo+IHwgCQkJICoganVzdCBwb2ludGVkIHl5aW4gYXQgYSBuZXcgc291 cmNlIGFuZCBjYWxsZWQKPiB8IAkJCSAqIHl5bGV4KCkuICBJZiBzbywgdGhlbiB3ZSBoYXZlIHRv IGFzc3VyZQo+IHwgCQkJICogY29uc2lzdGVuY3kgYmV0d2VlbiB5eV9jdXJyZW50X2J1ZmZlciBh bmQgb3VyCj4gfCAJCQkgKiBnbG9iYWxzLiAgSGVyZSBpcyB0aGUgcmlnaHQgcGxhY2UgdG8gZG8g c28sIGJlY2F1c2UKPiB8IAkJCSAqIHRoaXMgaXMgdGhlIGZpcnN0IGFjdGlvbiAob3RoZXIgdGhh biBwb3NzaWJseSBhCj4gfCAJCQkgKiBiYWNrLXVwKSB0aGF0IHdpbGwgbWF0Y2ggZm9yIHRoZSBu ZXcgaW5wdXQgc291cmNlLgo+IHwgCQkJICovCj4gfCAJCQl5eV9uX2NoYXJzID0geXlfY3VycmVu dF9idWZmZXItPnl5X25fY2hhcnM7Cj4gfCAJCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfaW5wdXRf ZmlsZSA9IHl5aW47Cj4gfCAJCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfYnVmZmVyX3N0YXR1cyA9 IFlZX0JVRkZFUl9OT1JNQUw7Cj4gfCAJCQl9Cj4gfCAKPiB8IAkJLyogTm90ZSB0aGF0IGhlcmUg d2UgdGVzdCBmb3IgeXlfY19idWZfcCAiPD0iIHRvIHRoZSBwb3NpdGlvbgo+IHwgCQkgKiBvZiB0 aGUgZmlyc3QgRU9CIGluIHRoZSBidWZmZXIsIHNpbmNlIHl5X2NfYnVmX3Agd2lsbAo+IHwgCQkg KiBhbHJlYWR5IGhhdmUgYmVlbiBpbmNyZW1lbnRlZCBwYXN0IHRoZSBOVUwgY2hhcmFjdGVyCj4g fCAJCSAqIChzaW5jZSBhbGwgc3RhdGVzIG1ha2UgdHJhbnNpdGlvbnMgb24gRU9CIHRvIHRoZQo+ IHwgCQkgKiBlbmQtb2YtYnVmZmVyIHN0YXRlKS4gIENvbnRyYXN0IHRoaXMgd2l0aCB0aGUgdGVz dAo+IHwgCQkgKiBpbiBpbnB1dCgpLgo+IHwgCQkgKi8KPiB8IAkJaWYgKCB5eV9jX2J1Zl9wIDw9 ICZ5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmW3l5X25fY2hhcnNdICkKPiB8IAkJCXsgLyog VGhpcyB3YXMgcmVhbGx5IGEgTlVMLiAqLwo+IHwgCQkJeXlfc3RhdGVfdHlwZSB5eV9uZXh0X3N0 YXRlOwo+IHwgCj4gfCAJCQl5eV9jX2J1Zl9wID0geXl0ZXh0X3B0ciArIHl5X2Ftb3VudF9vZl9t YXRjaGVkX3RleHQ7Cj4gfCAKPiB8IAkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9nZXRfcHJldmlv dXNfc3RhdGUoKTsKPiB8IAo+IHwgCQkJLyogT2theSwgd2UncmUgbm93IHBvc2l0aW9uZWQgdG8g bWFrZSB0aGUgTlVMCj4gfCAJCQkgKiB0cmFuc2l0aW9uLiAgV2UgY291bGRuJ3QgaGF2ZQo+IHwg CQkJICogeXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCkgZ28gYWhlYWQgYW5kIGRvIGl0Cj4gfCAJCQkg KiBmb3IgdXMgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cgaG93IHRvIGRlYWwKPiB8IAkJCSAqIHdp dGggdGhlIHBvc3NpYmlsaXR5IG9mIGphbW1pbmcgKGFuZCB3ZSBkb24ndAo+IHwgCQkJICogd2Fu dCB0byBidWlsZCBqYW1taW5nIGludG8gaXQgYmVjYXVzZSB0aGVuIGl0Cj4gfCAJCQkgKiB3aWxs IHJ1biBtb3JlIHNsb3dseSkuCj4gfCAJCQkgKi8KPiB8IAo+IHwgCQkJeXlfbmV4dF9zdGF0ZSA9 IHl5X3RyeV9OVUxfdHJhbnMoIHl5X2N1cnJlbnRfc3RhdGUgKTsKPiB8IAo+IHwgCQkJeXlfYnAg PSB5eXRleHRfcHRyICsgWVlfTU9SRV9BREo7Cj4gfCAKPiB8IAkJCWlmICggeXlfbmV4dF9zdGF0 ZSApCj4gfCAJCQkJewo+IHwgCQkJCS8qIENvbnN1bWUgdGhlIE5VTC4gKi8KPiB8IAkJCQl5eV9j cCA9ICsreXlfY19idWZfcDsKPiB8IAkJCQl5eV9jdXJyZW50X3N0YXRlID0geXlfbmV4dF9zdGF0 ZTsKPiB8IAkJCQlnb3RvIHl5X21hdGNoOwo+IHwgCQkJCX0KPiB8IAo+IHwgCQkJZWxzZQo+IHwg CQkJCXsKPiB8IAkJCQl5eV9jcCA9IHl5X2NfYnVmX3A7Cj4gfCAJCQkJZ290byB5eV9maW5kX2Fj dGlvbjsKPiB8IAkJCQl9Cj4gfCAJCQl9Cj4gfCAKPiB8IAkJZWxzZSBzd2l0Y2ggKCB5eV9nZXRf bmV4dF9idWZmZXIoKSApCj4gfCAJCQl7Cj4gfCAJCQljYXNlIEVPQl9BQ1RfRU5EX09GX0ZJTEU6 Cj4gfCAJCQkJewo+IHwgCQkJCXl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZiA9IDA7Cj4gfCAK PiB8IAkJCQlpZiAoIHl5d3JhcCgpICkKPiB8IAkJCQkJewo+IHwgCQkJCQkvKiBOb3RlOiBiZWNh dXNlIHdlJ3ZlIHRha2VuIGNhcmUgaW4KPiB8IAkJCQkJICogeXlfZ2V0X25leHRfYnVmZmVyKCkg dG8gaGF2ZSBzZXQgdXAKPiB8IAkJCQkJICogeXl0ZXh0LCB3ZSBjYW4gbm93IHNldCB1cAo+IHwg CQkJCQkgKiB5eV9jX2J1Zl9wIHNvIHRoYXQgaWYgc29tZSB0b3RhbAo+IHwgCQkJCQkgKiBob3Nl ciAobGlrZSBmbGV4IGl0c2VsZikgd2FudHMgdG8KPiB8IAkJCQkJICogY2FsbCB0aGUgc2Nhbm5l ciBhZnRlciB3ZSByZXR1cm4gdGhlCj4gfCAJCQkJCSAqIFlZX05VTEwsIGl0J2xsIHN0aWxsIHdv cmsgLSBhbm90aGVyCj4gfCAJCQkJCSAqIFlZX05VTEwgd2lsbCBnZXQgcmV0dXJuZWQuCj4gfCAJ CQkJCSAqLwo+IHwgCQkJCQl5eV9jX2J1Zl9wID0geXl0ZXh0X3B0ciArIFlZX01PUkVfQURKOwo+ IHwgCj4gfCAJCQkJCXl5X2FjdCA9IFlZX1NUQVRFX0VPRihZWV9TVEFSVCk7Cj4gfCAJCQkJCWdv dG8gZG9fYWN0aW9uOwo+IHwgCQkJCQl9Cj4gfCAKPiB8IAkJCQllbHNlCj4gfCAJCQkJCXsKPiB8 IAkJCQkJaWYgKCAhIHl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZiApCj4gfCAJCQkJCQlZWV9O RVdfRklMRTsKPiB8IAkJCQkJfQo+IHwgCQkJCWJyZWFrOwo+IHwgCQkJCX0KPiB8IAo+IHwgCQkJ Y2FzZSBFT0JfQUNUX0NPTlRJTlVFX1NDQU46Cj4gfCAJCQkJeXlfY19idWZfcCA9Cj4gfCAJCQkJ CXl5dGV4dF9wdHIgKyB5eV9hbW91bnRfb2ZfbWF0Y2hlZF90ZXh0Owo+IHwgCj4gfCAJCQkJeXlf Y3VycmVudF9zdGF0ZSA9IHl5X2dldF9wcmV2aW91c19zdGF0ZSgpOwo+IHwgCj4gfCAJCQkJeXlf Y3AgPSB5eV9jX2J1Zl9wOwo+IHwgCQkJCXl5X2JwID0geXl0ZXh0X3B0ciArIFlZX01PUkVfQURK Owo+IHwgCQkJCWdvdG8geXlfbWF0Y2g7Cj4gfCAKPiB8IAkJCWNhc2UgRU9CX0FDVF9MQVNUX01B VENIOgo+IHwgCQkJCXl5X2NfYnVmX3AgPQo+IHwgCQkJCSZ5eV9jdXJyZW50X2J1ZmZlci0+eXlf Y2hfYnVmW3l5X25fY2hhcnNdOwo+IHwgCj4gfCAJCQkJeXlfY3VycmVudF9zdGF0ZSA9IHl5X2dl dF9wcmV2aW91c19zdGF0ZSgpOwo+IHwgCj4gfCAJCQkJeXlfY3AgPSB5eV9jX2J1Zl9wOwo+IHwg CQkJCXl5X2JwID0geXl0ZXh0X3B0ciArIFlZX01PUkVfQURKOwo+IHwgCQkJCWdvdG8geXlfZmlu ZF9hY3Rpb247Cj4gfCAJCQl9Cj4gfCAJCWJyZWFrOwo+IHwgCQl9Cj4gfCAKPiB8IAlkZWZhdWx0 Ogo+IHwgCQlZWV9GQVRBTF9FUlJPUigKPiB8IAkJCSJmYXRhbCBmbGV4IHNjYW5uZXIgaW50ZXJu YWwgZXJyb3ItLW5vIGFjdGlvbiBmb3VuZCIgKTsKPiB8IAl9IC8qIGVuZCBvZiBhY3Rpb24gc3dp dGNoICovCj4gfCAJCX0gLyogZW5kIG9mIHNjYW5uaW5nIG9uZSB0b2tlbiAqLwo+IHwgCX0gLyog ZW5kIG9mIHl5bGV4ICovCj4gfCAKPiB8IAo+IHwgLyogeXlfZ2V0X25leHRfYnVmZmVyIC0gdHJ5 IHRvIHJlYWQgaW4gYSBuZXcgYnVmZmVyCj4gfCAgKgo+IHwgICogUmV0dXJucyBhIGNvZGUgcmVw cmVzZW50aW5nIGFuIGFjdGlvbjoKPiB8ICAqCUVPQl9BQ1RfTEFTVF9NQVRDSCAtCj4gfCAgKglF T0JfQUNUX0NPTlRJTlVFX1NDQU4gLSBjb250aW51ZSBzY2FubmluZyBmcm9tIGN1cnJlbnQgcG9z aXRpb24KPiB8ICAqCUVPQl9BQ1RfRU5EX09GX0ZJTEUgLSBlbmQgb2YgZmlsZQo+IHwgICovCj4g fCAKPiB8IHN0YXRpYyBpbnQgeXlfZ2V0X25leHRfYnVmZmVyKCkKPiB8IAl7Cj4gfCAJcmVnaXN0 ZXIgY2hhciAqZGVzdCA9IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWY7Cj4gfCAJcmVnaXN0 ZXIgY2hhciAqc291cmNlID0geXl0ZXh0X3B0cjsKPiB8IAlyZWdpc3RlciBpbnQgbnVtYmVyX3Rv X21vdmUsIGk7Cj4gfCAJaW50IHJldF92YWw7Cj4gfCAKPiB8IAlpZiAoIHl5X2NfYnVmX3AgPiAm eXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1Zlt5eV9uX2NoYXJzICsgMV0gKQo+IHwgCQlZWV9G QVRBTF9FUlJPUigKPiB8IAkJImZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tZW5k IG9mIGJ1ZmZlciBtaXNzZWQiICk7Cj4gfCAKPiB8IAlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyLT55 eV9maWxsX2J1ZmZlciA9PSAwICkKPiB8IAkJeyAvKiBEb24ndCB0cnkgdG8gZmlsbCB0aGUgYnVm ZmVyLCBzbyB0aGlzIGlzIGFuIEVPRi4gKi8KPiB8IAkJaWYgKCB5eV9jX2J1Zl9wIC0geXl0ZXh0 X3B0ciAtIFlZX01PUkVfQURKID09IDEgKQo+IHwgCQkJewo+IHwgCQkJLyogV2UgbWF0Y2hlZCBh IHNpbmdsZSBjaGFyYWN0ZXIsIHRoZSBFT0IsIHNvCj4gfCAJCQkgKiB0cmVhdCB0aGlzIGFzIGEg ZmluYWwgRU9GLgo+IHwgCQkJICovCj4gfCAJCQlyZXR1cm4gRU9CX0FDVF9FTkRfT0ZfRklMRTsK PiB8IAkJCX0KPiB8IAo+IHwgCQllbHNlCj4gfCAJCQl7Cj4gfCAJCQkvKiBXZSBtYXRjaGVkIHNv bWUgdGV4dCBwcmlvciB0byB0aGUgRU9CLCBmaXJzdAo+IHwgCQkJICogcHJvY2VzcyBpdC4KPiB8 IAkJCSAqLwo+IHwgCQkJcmV0dXJuIEVPQl9BQ1RfTEFTVF9NQVRDSDsKPiB8IAkJCX0KPiB8IAkJ fQo+IHwgCj4gfCAJLyogVHJ5IHRvIHJlYWQgbW9yZSBkYXRhLiAqLwo+IHwgCj4gfCAJLyogRmly c3QgbW92ZSBsYXN0IGNoYXJzIHRvIHN0YXJ0IG9mIGJ1ZmZlci4gKi8KPiB8IAludW1iZXJfdG9f bW92ZSA9IChpbnQpICh5eV9jX2J1Zl9wIC0geXl0ZXh0X3B0cikgLSAxOwo+IHwgCj4gfCAJZm9y ICggaSA9IDA7IGkgPCBudW1iZXJfdG9fbW92ZTsgKytpICkKPiB8IAkJKihkZXN0KyspID0gKihz b3VyY2UrKyk7Cj4gfCAKPiB8IAlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZmZXJfc3Rh dHVzID09IFlZX0JVRkZFUl9FT0ZfUEVORElORyApCj4gfCAJCS8qIGRvbid0IGRvIHRoZSByZWFk LCBpdCdzIG5vdCBndWFyYW50ZWVkIHRvIHJldHVybiBhbiBFT0YsCj4gfCAJCSAqIGp1c3QgZm9y Y2UgYW4gRU9GCj4gfCAJCSAqLwo+IHwgCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9jaGFycyA9 IHl5X25fY2hhcnMgPSAwOwo+IHwgCj4gfCAJZWxzZQo+IHwgCQl7Cj4gfCAJCWludCBudW1fdG9f cmVhZCA9Cj4gfCAJCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfYnVmX3NpemUgLSBudW1iZXJfdG9f bW92ZSAtIDE7Cj4gfCAKPiB8IAkJd2hpbGUgKCBudW1fdG9fcmVhZCA8PSAwICkKPiB8IAkJCXsg LyogTm90IGVub3VnaCByb29tIGluIHRoZSBidWZmZXIgLSBncm93IGl0LiAqLwo+IHwgI2lmZGVm IFlZX1VTRVNfUkVKRUNUCj4gfCAJCQlZWV9GQVRBTF9FUlJPUigKPiB8ICJpbnB1dCBidWZmZXIg b3ZlcmZsb3csIGNhbid0IGVubGFyZ2UgYnVmZmVyIGJlY2F1c2Ugc2Nhbm5lciB1c2VzIFJFSkVD VCIgKTsKPiB8ICNlbHNlCj4gfCAKPiB8IAkJCS8qIGp1c3QgYSBzaG9ydGVyIG5hbWUgZm9yIHRo ZSBjdXJyZW50IGJ1ZmZlciAqLwo+IHwgCQkJWVlfQlVGRkVSX1NUQVRFIGIgPSB5eV9jdXJyZW50 X2J1ZmZlcjsKPiB8IAo+IHwgCQkJaW50IHl5X2NfYnVmX3Bfb2Zmc2V0ID0KPiB8IAkJCQkoaW50 KSAoeXlfY19idWZfcCAtIGItPnl5X2NoX2J1Zik7Cj4gfCAKPiB8IAkJCWlmICggYi0+eXlfaXNf b3VyX2J1ZmZlciApCj4gfCAJCQkJewo+IHwgCQkJCWludCBuZXdfc2l6ZSA9IGItPnl5X2J1Zl9z aXplICogMjsKPiB8IAo+IHwgCQkJCWlmICggbmV3X3NpemUgPD0gMCApCj4gfCAJCQkJCWItPnl5 X2J1Zl9zaXplICs9IGItPnl5X2J1Zl9zaXplIC8gODsKPiB8IAkJCQllbHNlCj4gfCAJCQkJCWIt Pnl5X2J1Zl9zaXplICo9IDI7Cj4gfCAKPiB8IAkJCQliLT55eV9jaF9idWYgPSAoY2hhciAqKQo+ IHwgCQkJCQkvKiBJbmNsdWRlIHJvb20gaW4gZm9yIDIgRU9CIGNoYXJzLiAqLwo+IHwgCQkJCQl5 eV9mbGV4X3JlYWxsb2MoICh2b2lkICopIGItPnl5X2NoX2J1ZiwKPiB8IAkJCQkJCQkgYi0+eXlf YnVmX3NpemUgKyAyICk7Cj4gfCAJCQkJfQo+IHwgCQkJZWxzZQo+IHwgCQkJCS8qIENhbid0IGdy b3cgaXQsIHdlIGRvbid0IG93biBpdC4gKi8KPiB8IAkJCQliLT55eV9jaF9idWYgPSAwOwo+IHwg Cj4gfCAJCQlpZiAoICEgYi0+eXlfY2hfYnVmICkKPiB8IAkJCQlZWV9GQVRBTF9FUlJPUigKPiB8 IAkJCQkiZmF0YWwgZXJyb3IgLSBzY2FubmVyIGlucHV0IGJ1ZmZlciBvdmVyZmxvdyIgKTsKPiB8 IAo+IHwgCQkJeXlfY19idWZfcCA9ICZiLT55eV9jaF9idWZbeXlfY19idWZfcF9vZmZzZXRdOwo+ IHwgCj4gfCAJCQludW1fdG9fcmVhZCA9IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfc2l6ZSAt Cj4gfCAJCQkJCQludW1iZXJfdG9fbW92ZSAtIDE7Cj4gfCAjZW5kaWYKPiB8IAkJCX0KPiB8IAo+ IHwgCQlpZiAoIG51bV90b19yZWFkID4gWVlfUkVBRF9CVUZfU0laRSApCj4gfCAJCQludW1fdG9f cmVhZCA9IFlZX1JFQURfQlVGX1NJWkU7Cj4gfCAKPiB8IAkJLyogUmVhZCBpbiBtb3JlIGRhdGEu ICovCj4gfCAJCVlZX0lOUFVUKCAoJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbbnVtYmVy X3RvX21vdmVdKSwKPiB8IAkJCXl5X25fY2hhcnMsIG51bV90b19yZWFkICk7Cj4gfCAKPiB8IAkJ eXlfY3VycmVudF9idWZmZXItPnl5X25fY2hhcnMgPSB5eV9uX2NoYXJzOwo+IHwgCQl9Cj4gfCAK PiB8IAlpZiAoIHl5X25fY2hhcnMgPT0gMCApCj4gfCAJCXsKPiB8IAkJaWYgKCBudW1iZXJfdG9f bW92ZSA9PSBZWV9NT1JFX0FESiApCj4gfCAJCQl7Cj4gfCAJCQlyZXRfdmFsID0gRU9CX0FDVF9F TkRfT0ZfRklMRTsKPiB8IAkJCXl5cmVzdGFydCggeXlpbiApOwo+IHwgCQkJfQo+IHwgCj4gfCAJ CWVsc2UKPiB8IAkJCXsKPiB8IAkJCXJldF92YWwgPSBFT0JfQUNUX0xBU1RfTUFUQ0g7Cj4gfCAJ CQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfYnVmZmVyX3N0YXR1cyA9Cj4gfCAJCQkJWVlfQlVGRkVS X0VPRl9QRU5ESU5HOwo+IHwgCQkJfQo+IHwgCQl9Cj4gfCAKPiB8IAllbHNlCj4gfCAJCXJldF92 YWwgPSBFT0JfQUNUX0NPTlRJTlVFX1NDQU47Cj4gfCAKPiB8IAl5eV9uX2NoYXJzICs9IG51bWJl cl90b19tb3ZlOwo+IHwgCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbeXlfbl9jaGFyc10g PSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVI7Cj4gfCAJeXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1 Zlt5eV9uX2NoYXJzICsgMV0gPSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVI7Cj4gfCAKPiB8IAl5eXRl eHRfcHRyID0gJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbMF07Cj4gfCAKPiB8IAlyZXR1 cm4gcmV0X3ZhbDsKPiB8IAl9Cj4gfCAKPiB8IAo+IHwgLyogeXlfZ2V0X3ByZXZpb3VzX3N0YXRl IC0gZ2V0IHRoZSBzdGF0ZSBqdXN0IGJlZm9yZSB0aGUgRU9CIGNoYXIgd2FzIHJlYWNoZWQgKi8K PiB8IAo+IHwgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCkKPiB8 IAl7Cj4gfCAJcmVnaXN0ZXIgeXlfc3RhdGVfdHlwZSB5eV9jdXJyZW50X3N0YXRlOwo+IHwgCXJl Z2lzdGVyIGNoYXIgKnl5X2NwOwo+IHwgCj4gfCAJeXlfY3VycmVudF9zdGF0ZSA9IHl5X3N0YXJ0 Owo+IHwgCXl5X3N0YXRlX3B0ciA9IHl5X3N0YXRlX2J1ZjsKPiB8IAkqeXlfc3RhdGVfcHRyKysg PSB5eV9jdXJyZW50X3N0YXRlOwo+IHwgCj4gfCAJZm9yICggeXlfY3AgPSB5eXRleHRfcHRyICsg WVlfTU9SRV9BREo7IHl5X2NwIDwgeXlfY19idWZfcDsgKyt5eV9jcCApCj4gfCAJCXsKPiB8IAkJ cmVnaXN0ZXIgWVlfQ0hBUiB5eV9jID0gKCp5eV9jcCA/IHl5X2VjW1lZX1NDX1RPX1VJKCp5eV9j cCldIDogMSk7Cj4gfCAJCXdoaWxlICggeXlfY2hrW3l5X2Jhc2VbeXlfY3VycmVudF9zdGF0ZV0g KyB5eV9jXSAhPSB5eV9jdXJyZW50X3N0YXRlICkKPiB8IAkJCXsKPiB8IAkJCXl5X2N1cnJlbnRf c3RhdGUgPSAoaW50KSB5eV9kZWZbeXlfY3VycmVudF9zdGF0ZV07Cj4gfCAJCQlpZiAoIHl5X2N1 cnJlbnRfc3RhdGUgPj0gMTMgKQo+IHwgCQkJCXl5X2MgPSB5eV9tZXRhWyh1bnNpZ25lZCBpbnQp IHl5X2NdOwo+IHwgCQkJfQo+IHwgCQl5eV9jdXJyZW50X3N0YXRlID0geXlfbnh0W3l5X2Jhc2Vb eXlfY3VycmVudF9zdGF0ZV0gKyAodW5zaWduZWQgaW50KSB5eV9jXTsKPiB8IAkJKnl5X3N0YXRl X3B0cisrID0geXlfY3VycmVudF9zdGF0ZTsKPiB8IAkJfQo+IHwgCj4gfCAJcmV0dXJuIHl5X2N1 cnJlbnRfc3RhdGU7Cj4gfCAJfQo+IHwgCj4gfCAKPiB8IC8qIHl5X3RyeV9OVUxfdHJhbnMgLSB0 cnkgdG8gbWFrZSBhIHRyYW5zaXRpb24gb24gdGhlIE5VTCBjaGFyYWN0ZXIKPiB8ICAqCj4gfCAg KiBzeW5vcHNpcwo+IHwgICoJbmV4dF9zdGF0ZSA9IHl5X3RyeV9OVUxfdHJhbnMoIGN1cnJlbnRf c3RhdGUgKTsKPiB8ICAqLwo+IHwgCj4gfCAjaWZkZWYgWVlfVVNFX1BST1RPUwo+IHwgc3RhdGlj IHl5X3N0YXRlX3R5cGUgeXlfdHJ5X05VTF90cmFucyggeXlfc3RhdGVfdHlwZSB5eV9jdXJyZW50 X3N0YXRlICkKPiB8ICNlbHNlCj4gfCBzdGF0aWMgeXlfc3RhdGVfdHlwZSB5eV90cnlfTlVMX3Ry YW5zKCB5eV9jdXJyZW50X3N0YXRlICkKPiB8IHl5X3N0YXRlX3R5cGUgeXlfY3VycmVudF9zdGF0 ZTsKPiB8ICNlbmRpZgo+IHwgCXsKPiB8IAlyZWdpc3RlciBpbnQgeXlfaXNfamFtOwo+IHwgCj4g fCAJcmVnaXN0ZXIgWVlfQ0hBUiB5eV9jID0gMTsKPiB8IAl3aGlsZSAoIHl5X2Noa1t5eV9iYXNl W3l5X2N1cnJlbnRfc3RhdGVdICsgeXlfY10gIT0geXlfY3VycmVudF9zdGF0ZSApCj4gfCAJCXsK PiB8IAkJeXlfY3VycmVudF9zdGF0ZSA9IChpbnQpIHl5X2RlZlt5eV9jdXJyZW50X3N0YXRlXTsK PiB8IAkJaWYgKCB5eV9jdXJyZW50X3N0YXRlID49IDEzICkKPiB8IAkJCXl5X2MgPSB5eV9tZXRh Wyh1bnNpZ25lZCBpbnQpIHl5X2NdOwo+IHwgCQl9Cj4gfCAJeXlfY3VycmVudF9zdGF0ZSA9IHl5 X254dFt5eV9iYXNlW3l5X2N1cnJlbnRfc3RhdGVdICsgKHVuc2lnbmVkIGludCkgeXlfY107Cj4g fCAJeXlfaXNfamFtID0gKHl5X2N1cnJlbnRfc3RhdGUgPT0gMTIpOwo+IHwgCWlmICggISB5eV9p c19qYW0gKQo+IHwgCQkqeXlfc3RhdGVfcHRyKysgPSB5eV9jdXJyZW50X3N0YXRlOwo+IHwgCj4g fCAJcmV0dXJuIHl5X2lzX2phbSA/IDAgOiB5eV9jdXJyZW50X3N0YXRlOwo+IHwgCX0KPiB8IAo+ IHwgCj4gfCAjaWZuZGVmIFlZX05PX1VOUFVUCj4gfCAjaWZkZWYgWVlfVVNFX1BST1RPUwo+IHwg c3RhdGljIHZvaWQgeXl1bnB1dCggaW50IGMsIHJlZ2lzdGVyIGNoYXIgKnl5X2JwICkKPiB8ICNl bHNlCj4gfCBzdGF0aWMgdm9pZCB5eXVucHV0KCBjLCB5eV9icCApCj4gfCBpbnQgYzsKPiB8IHJl Z2lzdGVyIGNoYXIgKnl5X2JwOwo+IHwgI2VuZGlmCj4gfCAJewo+IHwgCXJlZ2lzdGVyIGNoYXIg Knl5X2NwID0geXlfY19idWZfcDsKPiB8IAo+IHwgCS8qIHVuZG8gZWZmZWN0cyBvZiBzZXR0aW5n IHVwIHl5dGV4dCAqLwo+IHwgCSp5eV9jcCA9IHl5X2hvbGRfY2hhcjsKPiB8IAo+IHwgCWlmICgg eXlfY3AgPCB5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmICsgMiApCj4gfCAJCXsgLyogbmVl ZCB0byBzaGlmdCB0aGluZ3MgdXAgdG8gbWFrZSByb29tICovCj4gfCAJCS8qICsyIGZvciBFT0Ig Y2hhcnMuICovCj4gfCAJCXJlZ2lzdGVyIGludCBudW1iZXJfdG9fbW92ZSA9IHl5X25fY2hhcnMg KyAyOwo+IHwgCQlyZWdpc3RlciBjaGFyICpkZXN0ID0gJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9j aF9idWZbCj4gfCAJCQkJCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfc2l6ZSArIDJdOwo+IHwg CQlyZWdpc3RlciBjaGFyICpzb3VyY2UgPQo+IHwgCQkJCSZ5eV9jdXJyZW50X2J1ZmZlci0+eXlf Y2hfYnVmW251bWJlcl90b19tb3ZlXTsKPiB8IAo+IHwgCQl3aGlsZSAoIHNvdXJjZSA+IHl5X2N1 cnJlbnRfYnVmZmVyLT55eV9jaF9idWYgKQo+IHwgCQkJKi0tZGVzdCA9ICotLXNvdXJjZTsKPiB8 IAo+IHwgCQl5eV9jcCArPSAoaW50KSAoZGVzdCAtIHNvdXJjZSk7Cj4gfCAJCXl5X2JwICs9IChp bnQpIChkZXN0IC0gc291cmNlKTsKPiB8IAkJeXlfY3VycmVudF9idWZmZXItPnl5X25fY2hhcnMg PQo+IHwgCQkJeXlfbl9jaGFycyA9IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfc2l6ZTsKPiB8 IAo+IHwgCQlpZiAoIHl5X2NwIDwgeXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1ZiArIDIgKQo+ IHwgCQkJWVlfRkFUQUxfRVJST1IoICJmbGV4IHNjYW5uZXIgcHVzaC1iYWNrIG92ZXJmbG93IiAp Owo+IHwgCQl9Cj4gfCAKPiB8IAkqLS15eV9jcCA9IChjaGFyKSBjOwo+IHwgCj4gfCAKPiB8IAl5 eXRleHRfcHRyID0geXlfYnA7Cj4gfCAJeXlfaG9sZF9jaGFyID0gKnl5X2NwOwo+IHwgCXl5X2Nf YnVmX3AgPSB5eV9jcDsKPiB8IAl9Cj4gfCAjZW5kaWYJLyogaWZuZGVmIFlZX05PX1VOUFVUICov Cj4gfCAKPiB8IAo+IHwgI2lmbmRlZiBZWV9OT19JTlBVVAo+IHwgI2lmZGVmIF9fY3BsdXNwbHVz Cj4gfCBzdGF0aWMgaW50IHl5aW5wdXQoKQo+IHwgI2Vsc2UKPiB8IHN0YXRpYyBpbnQgaW5wdXQo KQo+IHwgI2VuZGlmCj4gfCAJewo+IHwgCWludCBjOwo+IHwgCj4gfCAJKnl5X2NfYnVmX3AgPSB5 eV9ob2xkX2NoYXI7Cj4gfCAKPiB8IAlpZiAoICp5eV9jX2J1Zl9wID09IFlZX0VORF9PRl9CVUZG RVJfQ0hBUiApCj4gfCAJCXsKPiB8IAkJLyogeXlfY19idWZfcCBub3cgcG9pbnRzIHRvIHRoZSBj aGFyYWN0ZXIgd2Ugd2FudCB0byByZXR1cm4uCj4gfCAJCSAqIElmIHRoaXMgb2NjdXJzICpiZWZv cmUqIHRoZSBFT0IgY2hhcmFjdGVycywgdGhlbiBpdCdzIGEKPiB8IAkJICogdmFsaWQgTlVMOyBp ZiBub3QsIHRoZW4gd2UndmUgaGl0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KPiB8IAkJICovCj4g fCAJCWlmICggeXlfY19idWZfcCA8ICZ5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmW3l5X25f Y2hhcnNdICkKPiB8IAkJCS8qIFRoaXMgd2FzIHJlYWxseSBhIE5VTC4gKi8KPiB8IAkJCSp5eV9j X2J1Zl9wID0gJ1wwJzsKPiB8IAo+IHwgCQllbHNlCj4gfCAJCQl7IC8qIG5lZWQgbW9yZSBpbnB1 dCAqLwo+IHwgCQkJaW50IG9mZnNldCA9IHl5X2NfYnVmX3AgLSB5eXRleHRfcHRyOwo+IHwgCQkJ Kyt5eV9jX2J1Zl9wOwo+IHwgCj4gfCAJCQlzd2l0Y2ggKCB5eV9nZXRfbmV4dF9idWZmZXIoKSAp Cj4gfCAJCQkJewo+IHwgCQkJCWNhc2UgRU9CX0FDVF9MQVNUX01BVENIOgo+IHwgCQkJCQkvKiBU aGlzIGhhcHBlbnMgYmVjYXVzZSB5eV9nX25fYigpCj4gfCAJCQkJCSAqIHNlZXMgdGhhdCB3ZSd2 ZSBhY2N1bXVsYXRlZCBhCj4gfCAJCQkJCSAqIHRva2VuIGFuZCBmbGFncyB0aGF0IHdlIG5lZWQg dG8KPiB8IAkJCQkJICogdHJ5IG1hdGNoaW5nIHRoZSB0b2tlbiBiZWZvcmUKPiB8IAkJCQkJICog cHJvY2VlZGluZy4gIEJ1dCBmb3IgaW5wdXQoKSwKPiB8IAkJCQkJICogdGhlcmUncyBubyBtYXRj aGluZyB0byBjb25zaWRlci4KPiB8IAkJCQkJICogU28gY29udmVydCB0aGUgRU9CX0FDVF9MQVNU X01BVENICj4gfCAJCQkJCSAqIHRvIEVPQl9BQ1RfRU5EX09GX0ZJTEUuCj4gfCAJCQkJCSAqLwo+ IHwgCj4gfCAJCQkJCS8qIFJlc2V0IGJ1ZmZlciBzdGF0dXMuICovCj4gfCAJCQkJCXl5cmVzdGFy dCggeXlpbiApOwo+IHwgCj4gfCAJCQkJCS8qIGZhbGwgdGhyb3VnaCAqLwo+IHwgCj4gfCAJCQkJ Y2FzZSBFT0JfQUNUX0VORF9PRl9GSUxFOgo+IHwgCQkJCQl7Cj4gfCAJCQkJCWlmICggeXl3cmFw KCkgKQo+IHwgCQkJCQkJcmV0dXJuIEVPRjsKPiB8IAo+IHwgCQkJCQlpZiAoICEgeXlfZGlkX2J1 ZmZlcl9zd2l0Y2hfb25fZW9mICkKPiB8IAkJCQkJCVlZX05FV19GSUxFOwo+IHwgI2lmZGVmIF9f Y3BsdXNwbHVzCj4gfCAJCQkJCXJldHVybiB5eWlucHV0KCk7Cj4gfCAjZWxzZQo+IHwgCQkJCQly ZXR1cm4gaW5wdXQoKTsKPiB8ICNlbmRpZgo+IHwgCQkJCQl9Cj4gfCAKPiB8IAkJCQljYXNlIEVP Ql9BQ1RfQ09OVElOVUVfU0NBTjoKPiB8IAkJCQkJeXlfY19idWZfcCA9IHl5dGV4dF9wdHIgKyBv ZmZzZXQ7Cj4gfCAJCQkJCWJyZWFrOwo+IHwgCQkJCX0KPiB8IAkJCX0KPiB8IAkJfQo+IHwgCj4g fCAJYyA9ICoodW5zaWduZWQgY2hhciAqKSB5eV9jX2J1Zl9wOwkvKiBjYXN0IGZvciA4LWJpdCBj aGFyJ3MgKi8KPiB8IAkqeXlfY19idWZfcCA9ICdcMCc7CS8qIHByZXNlcnZlIHl5dGV4dCAqLwo+ IHwgCXl5X2hvbGRfY2hhciA9ICorK3l5X2NfYnVmX3A7Cj4gfCAKPiB8IAo+IHwgCXJldHVybiBj Owo+IHwgCX0KPiB8ICNlbmRpZiAvKiBZWV9OT19JTlBVVCAqLwo+IHwgCj4gfCAjaWZkZWYgWVlf VVNFX1BST1RPUwo+IHwgdm9pZCB5eXJlc3RhcnQoIEZJTEUgKmlucHV0X2ZpbGUgKQo+IHwgI2Vs c2UKPiB8IHZvaWQgeXlyZXN0YXJ0KCBpbnB1dF9maWxlICkKPiB8IEZJTEUgKmlucHV0X2ZpbGU7 Cj4gfCAjZW5kaWYKPiB8IAl7Cj4gfCAJaWYgKCAhIHl5X2N1cnJlbnRfYnVmZmVyICkKPiB8IAkJ eXlfY3VycmVudF9idWZmZXIgPSB5eV9jcmVhdGVfYnVmZmVyKCB5eWluLCBZWV9CVUZfU0laRSAp Owo+IHwgCj4gfCAJeXlfaW5pdF9idWZmZXIoIHl5X2N1cnJlbnRfYnVmZmVyLCBpbnB1dF9maWxl ICk7Cj4gfCAJeXlfbG9hZF9idWZmZXJfc3RhdGUoKTsKPiB8IAl9Cj4gfCAKPiB8IAo+IHwgI2lm ZGVmIFlZX1VTRV9QUk9UT1MKPiB8IHZvaWQgeXlfc3dpdGNoX3RvX2J1ZmZlciggWVlfQlVGRkVS X1NUQVRFIG5ld19idWZmZXIgKQo+IHwgI2Vsc2UKPiB8IHZvaWQgeXlfc3dpdGNoX3RvX2J1ZmZl ciggbmV3X2J1ZmZlciApCj4gfCBZWV9CVUZGRVJfU1RBVEUgbmV3X2J1ZmZlcjsKPiB8ICNlbmRp Zgo+IHwgCXsKPiB8IAlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyID09IG5ld19idWZmZXIgKQo+IHwg CQlyZXR1cm47Cj4gfCAKPiB8IAlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyICkKPiB8IAkJewo+IHwg CQkvKiBGbHVzaCBvdXQgaW5mb3JtYXRpb24gZm9yIG9sZCBidWZmZXIuICovCj4gfCAJCSp5eV9j X2J1Zl9wID0geXlfaG9sZF9jaGFyOwo+IHwgCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfYnVmX3Bv cyA9IHl5X2NfYnVmX3A7Cj4gfCAJCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9uX2NoYXJzID0geXlf bl9jaGFyczsKPiB8IAkJfQo+IHwgCj4gfCAJeXlfY3VycmVudF9idWZmZXIgPSBuZXdfYnVmZmVy Owo+IHwgCXl5X2xvYWRfYnVmZmVyX3N0YXRlKCk7Cj4gfCAKPiB8IAkvKiBXZSBkb24ndCBhY3R1 YWxseSBrbm93IHdoZXRoZXIgd2UgZGlkIHRoaXMgc3dpdGNoIGR1cmluZwo+IHwgCSAqIEVPRiAo eXl3cmFwKCkpIHByb2Nlc3NpbmcsIGJ1dCB0aGUgb25seSB0aW1lIHRoaXMgZmxhZwo+IHwgCSAq IGlzIGxvb2tlZCBhdCBpcyBhZnRlciB5eXdyYXAoKSBpcyBjYWxsZWQsIHNvIGl0J3Mgc2FmZQo+ IHwgCSAqIHRvIGdvIGFoZWFkIGFuZCBhbHdheXMgc2V0IGl0Lgo+IHwgCSAqLwo+IHwgCXl5X2Rp ZF9idWZmZXJfc3dpdGNoX29uX2VvZiA9IDE7Cj4gfCAJfQo+IHwgCj4gfCAKPiB8ICNpZmRlZiBZ WV9VU0VfUFJPVE9TCj4gfCB2b2lkIHl5X2xvYWRfYnVmZmVyX3N0YXRlKCB2b2lkICkKPiB8ICNl bHNlCj4gfCB2b2lkIHl5X2xvYWRfYnVmZmVyX3N0YXRlKCkKPiB8ICNlbmRpZgo+IHwgCXsKPiB8 IAl5eV9uX2NoYXJzID0geXlfY3VycmVudF9idWZmZXItPnl5X25fY2hhcnM7Cj4gfCAJeXl0ZXh0 X3B0ciA9IHl5X2NfYnVmX3AgPSB5eV9jdXJyZW50X2J1ZmZlci0+eXlfYnVmX3BvczsKPiB8IAl5 eWluID0geXlfY3VycmVudF9idWZmZXItPnl5X2lucHV0X2ZpbGU7Cj4gfCAJeXlfaG9sZF9jaGFy ID0gKnl5X2NfYnVmX3A7Cj4gfCAJfQo+IHwgCj4gfCAKPiB8ICNpZmRlZiBZWV9VU0VfUFJPVE9T Cj4gfCBZWV9CVUZGRVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlciggRklMRSAqZmlsZSwgaW50IHNp emUgKQo+IHwgI2Vsc2UKPiB8IFlZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVfYnVmZmVyKCBmaWxl LCBzaXplICkKPiB8IEZJTEUgKmZpbGU7Cj4gfCBpbnQgc2l6ZTsKPiB8ICNlbmRpZgo+IHwgCXsK PiB8IAlZWV9CVUZGRVJfU1RBVEUgYjsKPiB8IAo+IHwgCWIgPSAoWVlfQlVGRkVSX1NUQVRFKSB5 eV9mbGV4X2FsbG9jKCBzaXplb2YoIHN0cnVjdCB5eV9idWZmZXJfc3RhdGUgKSApOwo+IHwgCWlm ICggISBiICkKPiB8IAkJWVlfRkFUQUxfRVJST1IoICJvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4g eXlfY3JlYXRlX2J1ZmZlcigpIiApOwo+IHwgCj4gfCAJYi0+eXlfYnVmX3NpemUgPSBzaXplOwo+ IHwgCj4gfCAJLyogeXlfY2hfYnVmIGhhcyB0byBiZSAyIGNoYXJhY3RlcnMgbG9uZ2VyIHRoYW4g dGhlIHNpemUgZ2l2ZW4gYmVjYXVzZQo+IHwgCSAqIHdlIG5lZWQgdG8gcHV0IGluIDIgZW5kLW9m LWJ1ZmZlciBjaGFyYWN0ZXJzLgo+IHwgCSAqLwo+IHwgCWItPnl5X2NoX2J1ZiA9IChjaGFyICop IHl5X2ZsZXhfYWxsb2MoIGItPnl5X2J1Zl9zaXplICsgMiApOwo+IHwgCWlmICggISBiLT55eV9j aF9idWYgKQo+IHwgCQlZWV9GQVRBTF9FUlJPUiggIm91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5 eV9jcmVhdGVfYnVmZmVyKCkiICk7Cj4gfCAKPiB8IAliLT55eV9pc19vdXJfYnVmZmVyID0gMTsK PiB8IAo+IHwgCXl5X2luaXRfYnVmZmVyKCBiLCBmaWxlICk7Cj4gfCAKPiB8IAlyZXR1cm4gYjsK PiB8IAl9Cj4gfCAKPiB8IAo+IHwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKPiB8IHZvaWQgeXlfZGVs ZXRlX2J1ZmZlciggWVlfQlVGRkVSX1NUQVRFIGIgKQo+IHwgI2Vsc2UKPiB8IHZvaWQgeXlfZGVs ZXRlX2J1ZmZlciggYiApCj4gfCBZWV9CVUZGRVJfU1RBVEUgYjsKPiB8ICNlbmRpZgo+IHwgCXsK PiB8IAlpZiAoICEgYiApCj4gfCAJCXJldHVybjsKPiB8IAo+IHwgCWlmICggYiA9PSB5eV9jdXJy ZW50X2J1ZmZlciApCj4gfCAJCXl5X2N1cnJlbnRfYnVmZmVyID0gKFlZX0JVRkZFUl9TVEFURSkg MDsKPiB8IAo+IHwgCWlmICggYi0+eXlfaXNfb3VyX2J1ZmZlciApCj4gfCAJCXl5X2ZsZXhfZnJl ZSggKHZvaWQgKikgYi0+eXlfY2hfYnVmICk7Cj4gfCAKPiB8IAl5eV9mbGV4X2ZyZWUoICh2b2lk ICopIGIgKTsKPiB8IAl9Cj4gfCAKPiB8IAo+IHwgCj4gfCAjaWZkZWYgWVlfVVNFX1BST1RPUwo+ IHwgdm9pZCB5eV9pbml0X2J1ZmZlciggWVlfQlVGRkVSX1NUQVRFIGIsIEZJTEUgKmZpbGUgKQo+ IHwgI2Vsc2UKPiB8IHZvaWQgeXlfaW5pdF9idWZmZXIoIGIsIGZpbGUgKQo+IHwgWVlfQlVGRkVS X1NUQVRFIGI7Cj4gfCBGSUxFICpmaWxlOwo+IHwgI2VuZGlmCj4gfCAKPiB8IAo+IHwgCXsKPiB8 IAl5eV9mbHVzaF9idWZmZXIoIGIgKTsKPiB8IAo+IHwgCWItPnl5X2lucHV0X2ZpbGUgPSBmaWxl Owo+IHwgCWItPnl5X2ZpbGxfYnVmZmVyID0gMTsKPiB8IAo+IHwgI2lmIFlZX0FMV0FZU19JTlRF UkFDVElWRQo+IHwgCWItPnl5X2lzX2ludGVyYWN0aXZlID0gMTsKPiB8ICNlbHNlCj4gfCAjaWYg WVlfTkVWRVJfSU5URVJBQ1RJVkUKPiB8IAliLT55eV9pc19pbnRlcmFjdGl2ZSA9IDA7Cj4gfCAj ZWxzZQo+IHwgCWItPnl5X2lzX2ludGVyYWN0aXZlID0gZmlsZSA/IChpc2F0dHkoIGZpbGVubyhm aWxlKSApID4gMCkgOiAwOwo+IHwgI2VuZGlmCj4gfCAjZW5kaWYKPiB8IAl9Cj4gfCAKPiB8IAo+ IHwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKPiB8IHZvaWQgeXlfZmx1c2hfYnVmZmVyKCBZWV9CVUZG RVJfU1RBVEUgYiApCj4gfCAjZWxzZQo+IHwgdm9pZCB5eV9mbHVzaF9idWZmZXIoIGIgKQo+IHwg WVlfQlVGRkVSX1NUQVRFIGI7Cj4gfCAjZW5kaWYKPiB8IAo+IHwgCXsKPiB8IAlpZiAoICEgYiAp Cj4gfCAJCXJldHVybjsKPiB8IAo+IHwgCWItPnl5X25fY2hhcnMgPSAwOwo+IHwgCj4gfCAJLyog V2UgYWx3YXlzIG5lZWQgdHdvIGVuZC1vZi1idWZmZXIgY2hhcmFjdGVycy4gIFRoZSBmaXJzdCBj YXVzZXMKPiB8IAkgKiBhIHRyYW5zaXRpb24gdG8gdGhlIGVuZC1vZi1idWZmZXIgc3RhdGUuICBU aGUgc2Vjb25kIGNhdXNlcwo+IHwgCSAqIGEgamFtIGluIHRoYXQgc3RhdGUuCj4gfCAJICovCj4g fCAJYi0+eXlfY2hfYnVmWzBdID0gWVlfRU5EX09GX0JVRkZFUl9DSEFSOwo+IHwgCWItPnl5X2No X2J1ZlsxXSA9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUjsKPiB8IAo+IHwgCWItPnl5X2J1Zl9wb3Mg PSAmYi0+eXlfY2hfYnVmWzBdOwo+IHwgCj4gfCAJYi0+eXlfYXRfYm9sID0gMTsKPiB8IAliLT55 eV9idWZmZXJfc3RhdHVzID0gWVlfQlVGRkVSX05FVzsKPiB8IAo+IHwgCWlmICggYiA9PSB5eV9j dXJyZW50X2J1ZmZlciApCj4gfCAJCXl5X2xvYWRfYnVmZmVyX3N0YXRlKCk7Cj4gfCAJfQo+IHwg Cj4gfCAKPiB8ICNpZm5kZWYgWVlfTk9fU0NBTl9CVUZGRVIKPiB8ICNpZmRlZiBZWV9VU0VfUFJP VE9TCj4gfCBZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9idWZmZXIoIGNoYXIgKmJhc2UsIHl5X3Np emVfdCBzaXplICkKPiB8ICNlbHNlCj4gfCBZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9idWZmZXIo IGJhc2UsIHNpemUgKQo+IHwgY2hhciAqYmFzZTsKPiB8IHl5X3NpemVfdCBzaXplOwo+IHwgI2Vu ZGlmCj4gfCAJewo+IHwgCVlZX0JVRkZFUl9TVEFURSBiOwo+IHwgCj4gfCAJaWYgKCBzaXplIDwg MiB8fAo+IHwgCSAgICAgYmFzZVtzaXplLTJdICE9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUiB8fAo+ IHwgCSAgICAgYmFzZVtzaXplLTFdICE9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUiApCj4gfCAJCS8q IFRoZXkgZm9yZ290IHRvIGxlYXZlIHJvb20gZm9yIHRoZSBFT0Incy4gKi8KPiB8IAkJcmV0dXJu IDA7Cj4gfCAKPiB8IAliID0gKFlZX0JVRkZFUl9TVEFURSkgeXlfZmxleF9hbGxvYyggc2l6ZW9m KCBzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlICkgKTsKPiB8IAlpZiAoICEgYiApCj4gfCAJCVlZX0ZB VEFMX0VSUk9SKCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X3NjYW5fYnVmZmVyKCkiICk7 Cj4gfCAKPiB8IAliLT55eV9idWZfc2l6ZSA9IHNpemUgLSAyOwkvKiAiLSAyIiB0byB0YWtlIGNh cmUgb2YgRU9CJ3MgKi8KPiB8IAliLT55eV9idWZfcG9zID0gYi0+eXlfY2hfYnVmID0gYmFzZTsK PiB8IAliLT55eV9pc19vdXJfYnVmZmVyID0gMDsKPiB8IAliLT55eV9pbnB1dF9maWxlID0gMDsK PiB8IAliLT55eV9uX2NoYXJzID0gYi0+eXlfYnVmX3NpemU7Cj4gfCAJYi0+eXlfaXNfaW50ZXJh Y3RpdmUgPSAwOwo+IHwgCWItPnl5X2F0X2JvbCA9IDE7Cj4gfCAJYi0+eXlfZmlsbF9idWZmZXIg PSAwOwo+IHwgCWItPnl5X2J1ZmZlcl9zdGF0dXMgPSBZWV9CVUZGRVJfTkVXOwo+IHwgCj4gfCAJ eXlfc3dpdGNoX3RvX2J1ZmZlciggYiApOwo+IHwgCj4gfCAJcmV0dXJuIGI7Cj4gfCAJfQo+IHwg I2VuZGlmCj4gfCAKPiB8IAo+IHwgI2lmbmRlZiBZWV9OT19TQ0FOX1NUUklORwo+IHwgI2lmZGVm IFlZX1VTRV9QUk9UT1MKPiB8IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX3N0cmluZyggeXljb25z dCBjaGFyICp5eV9zdHIgKQo+IHwgI2Vsc2UKPiB8IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX3N0 cmluZyggeXlfc3RyICkKPiB8IHl5Y29uc3QgY2hhciAqeXlfc3RyOwo+IHwgI2VuZGlmCj4gfCAJ ewo+IHwgCWludCBsZW47Cj4gfCAJZm9yICggbGVuID0gMDsgeXlfc3RyW2xlbl07ICsrbGVuICkK PiB8IAkJOwo+IHwgCj4gfCAJcmV0dXJuIHl5X3NjYW5fYnl0ZXMoIHl5X3N0ciwgbGVuICk7Cj4g fCAJfQo+IHwgI2VuZGlmCj4gfCAKPiB8IAo+IHwgI2lmbmRlZiBZWV9OT19TQ0FOX0JZVEVTCj4g fCAjaWZkZWYgWVlfVVNFX1BST1RPUwo+IHwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnl0ZXMo IHl5Y29uc3QgY2hhciAqYnl0ZXMsIGludCBsZW4gKQo+IHwgI2Vsc2UKPiB8IFlZX0JVRkZFUl9T VEFURSB5eV9zY2FuX2J5dGVzKCBieXRlcywgbGVuICkKPiB8IHl5Y29uc3QgY2hhciAqYnl0ZXM7 Cj4gfCBpbnQgbGVuOwo+IHwgI2VuZGlmCj4gfCAJewo+IHwgCVlZX0JVRkZFUl9TVEFURSBiOwo+ IHwgCWNoYXIgKmJ1ZjsKPiB8IAl5eV9zaXplX3QgbjsKPiB8IAlpbnQgaTsKPiB8IAo+IHwgCS8q IEdldCBtZW1vcnkgZm9yIGZ1bGwgYnVmZmVyLCBpbmNsdWRpbmcgc3BhY2UgZm9yIHRyYWlsaW5n IEVPQidzLiAqLwo+IHwgCW4gPSBsZW4gKyAyOwo+IHwgCWJ1ZiA9IChjaGFyICopIHl5X2ZsZXhf YWxsb2MoIG4gKTsKPiB8IAlpZiAoICEgYnVmICkKPiB8IAkJWVlfRkFUQUxfRVJST1IoICJvdXQg b2YgZHluYW1pYyBtZW1vcnkgaW4geXlfc2Nhbl9ieXRlcygpIiApOwo+IHwgCj4gfCAJZm9yICgg aSA9IDA7IGkgPCBsZW47ICsraSApCj4gfCAJCWJ1ZltpXSA9IGJ5dGVzW2ldOwo+IHwgCj4gfCAJ YnVmW2xlbl0gPSBidWZbbGVuKzFdID0gWVlfRU5EX09GX0JVRkZFUl9DSEFSOwo+IHwgCj4gfCAJ YiA9IHl5X3NjYW5fYnVmZmVyKCBidWYsIG4gKTsKPiB8IAlpZiAoICEgYiApCj4gfCAJCVlZX0ZB VEFMX0VSUk9SKCAiYmFkIGJ1ZmZlciBpbiB5eV9zY2FuX2J5dGVzKCkiICk7Cj4gfCAKPiB8IAkv KiBJdCdzIG9rYXkgdG8gZ3JvdyBldGMuIHRoaXMgYnVmZmVyLCBhbmQgd2Ugc2hvdWxkIHRocm93 IGl0Cj4gfCAJICogYXdheSB3aGVuIHdlJ3JlIGRvbmUuCj4gfCAJICovCj4gfCAJYi0+eXlfaXNf b3VyX2J1ZmZlciA9IDE7Cj4gfCAKPiB8IAlyZXR1cm4gYjsKPiB8IAl9Cj4gfCAjZW5kaWYKPiB8 IAo+IHwgCj4gfCAjaWZuZGVmIFlZX05PX1BVU0hfU1RBVEUKPiB8ICNpZmRlZiBZWV9VU0VfUFJP VE9TCj4gfCBzdGF0aWMgdm9pZCB5eV9wdXNoX3N0YXRlKCBpbnQgbmV3X3N0YXRlICkKPiB8ICNl bHNlCj4gfCBzdGF0aWMgdm9pZCB5eV9wdXNoX3N0YXRlKCBuZXdfc3RhdGUgKQo+IHwgaW50IG5l d19zdGF0ZTsKPiB8ICNlbmRpZgo+IHwgCXsKPiB8IAlpZiAoIHl5X3N0YXJ0X3N0YWNrX3B0ciA+ PSB5eV9zdGFydF9zdGFja19kZXB0aCApCj4gfCAJCXsKPiB8IAkJeXlfc2l6ZV90IG5ld19zaXpl Owo+IHwgCj4gfCAJCXl5X3N0YXJ0X3N0YWNrX2RlcHRoICs9IFlZX1NUQVJUX1NUQUNLX0lOQ1I7 Cj4gfCAJCW5ld19zaXplID0geXlfc3RhcnRfc3RhY2tfZGVwdGggKiBzaXplb2YoIGludCApOwo+ IHwgCj4gfCAJCWlmICggISB5eV9zdGFydF9zdGFjayApCj4gfCAJCQl5eV9zdGFydF9zdGFjayA9 IChpbnQgKikgeXlfZmxleF9hbGxvYyggbmV3X3NpemUgKTsKPiB8IAo+IHwgCQllbHNlCj4gfCAJ CQl5eV9zdGFydF9zdGFjayA9IChpbnQgKikgeXlfZmxleF9yZWFsbG9jKAo+IHwgCQkJCQkodm9p ZCAqKSB5eV9zdGFydF9zdGFjaywgbmV3X3NpemUgKTsKPiB8IAo+IHwgCQlpZiAoICEgeXlfc3Rh cnRfc3RhY2sgKQo+IHwgCQkJWVlfRkFUQUxfRVJST1IoCj4gfCAJCQkib3V0IG9mIG1lbW9yeSBl eHBhbmRpbmcgc3RhcnQtY29uZGl0aW9uIHN0YWNrIiApOwo+IHwgCQl9Cj4gfCAKPiB8IAl5eV9z dGFydF9zdGFja1t5eV9zdGFydF9zdGFja19wdHIrK10gPSBZWV9TVEFSVDsKPiB8IAo+IHwgCUJF R0lOKG5ld19zdGF0ZSk7Cj4gfCAJfQo+IHwgI2VuZGlmCj4gfCAKPiB8IAo+IHwgI2lmbmRlZiBZ WV9OT19QT1BfU1RBVEUKPiB8IHN0YXRpYyB2b2lkIHl5X3BvcF9zdGF0ZSgpCj4gfCAJewo+IHwg CWlmICggLS15eV9zdGFydF9zdGFja19wdHIgPCAwICkKPiB8IAkJWVlfRkFUQUxfRVJST1IoICJz dGFydC1jb25kaXRpb24gc3RhY2sgdW5kZXJmbG93IiApOwo+IHwgCj4gfCAJQkVHSU4oeXlfc3Rh cnRfc3RhY2tbeXlfc3RhcnRfc3RhY2tfcHRyXSk7Cj4gfCAJfQo+IHwgI2VuZGlmCj4gfCAKPiB8 IAo+IHwgI2lmbmRlZiBZWV9OT19UT1BfU1RBVEUKPiB8IHN0YXRpYyBpbnQgeXlfdG9wX3N0YXRl KCkKPiB8IAl7Cj4gfCAJcmV0dXJuIHl5X3N0YXJ0X3N0YWNrW3l5X3N0YXJ0X3N0YWNrX3B0ciAt IDFdOwo+IHwgCX0KPiB8ICNlbmRpZgo+IHwgCj4gfCAjaWZuZGVmIFlZX0VYSVRfRkFJTFVSRQo+ IHwgI2RlZmluZSBZWV9FWElUX0ZBSUxVUkUgMgo+IHwgI2VuZGlmCj4gfCAKPiB8ICNpZmRlZiBZ WV9VU0VfUFJPVE9TCj4gfCBzdGF0aWMgdm9pZCB5eV9mYXRhbF9lcnJvciggeXljb25zdCBjaGFy IG1zZ1tdICkKPiB8ICNlbHNlCj4gfCBzdGF0aWMgdm9pZCB5eV9mYXRhbF9lcnJvciggbXNnICkK PiB8IGNoYXIgbXNnW107Cj4gfCAjZW5kaWYKPiB8IAl7Cj4gfCAJKHZvaWQpIGZwcmludGYoIHN0 ZGVyciwgIiVzXG4iLCBtc2cgKTsKPiB8IAlleGl0KCBZWV9FWElUX0ZBSUxVUkUgKTsKPiB8IAl9 Cj4gfCAKPiB8IAo+IHwgCj4gfCAvKiBSZWRlZmluZSB5eWxlc3MoKSBzbyBpdCB3b3JrcyBpbiBz ZWN0aW9uIDMgY29kZS4gKi8KPiB8IAo+IHwgI3VuZGVmIHl5bGVzcwo+IHwgI2RlZmluZSB5eWxl c3MobikgXAo+IHwgCWRvIFwKPiB8IAkJeyBcCj4gfCAJCS8qIFVuZG8gZWZmZWN0cyBvZiBzZXR0 aW5nIHVwIHl5dGV4dC4gKi8gXAo+IHwgCQl5eXRleHRbeXlsZW5nXSA9IHl5X2hvbGRfY2hhcjsg XAo+IHwgCQl5eV9jX2J1Zl9wID0geXl0ZXh0ICsgbjsgXAo+IHwgCQl5eV9ob2xkX2NoYXIgPSAq eXlfY19idWZfcDsgXAo+IHwgCQkqeXlfY19idWZfcCA9ICdcMCc7IFwKPiB8IAkJeXlsZW5nID0g bjsgXAo+IHwgCQl9IFwKPiB8IAl3aGlsZSAoIDAgKQo+IHwgCj4gfCAKPiB8IC8qIEludGVybmFs IHV0aWxpdHkgcm91dGluZXMuICovCj4gfCAKPiB8ICNpZm5kZWYgeXl0ZXh0X3B0cgo+IHwgI2lm ZGVmIFlZX1VTRV9QUk9UT1MKPiB8IHN0YXRpYyB2b2lkIHl5X2ZsZXhfc3RybmNweSggY2hhciAq czEsIHl5Y29uc3QgY2hhciAqczIsIGludCBuICkKPiB8ICNlbHNlCj4gfCBzdGF0aWMgdm9pZCB5 eV9mbGV4X3N0cm5jcHkoIHMxLCBzMiwgbiApCj4gfCBjaGFyICpzMTsKPiB8IHl5Y29uc3QgY2hh ciAqczI7Cj4gfCBpbnQgbjsKPiB8ICNlbmRpZgo+IHwgCXsKPiB8IAlyZWdpc3RlciBpbnQgaTsK PiB8IAlmb3IgKCBpID0gMDsgaSA8IG47ICsraSApCj4gfCAJCXMxW2ldID0gczJbaV07Cj4gfCAJ fQo+IHwgI2VuZGlmCj4gfCAKPiB8ICNpZmRlZiBZWV9ORUVEX1NUUkxFTgo+IHwgI2lmZGVmIFlZ X1VTRV9QUk9UT1MKPiB8IHN0YXRpYyBpbnQgeXlfZmxleF9zdHJsZW4oIHl5Y29uc3QgY2hhciAq cyApCj4gfCAjZWxzZQo+IHwgc3RhdGljIGludCB5eV9mbGV4X3N0cmxlbiggcyApCj4gfCB5eWNv bnN0IGNoYXIgKnM7Cj4gfCAjZW5kaWYKPiB8IAl7Cj4gfCAJcmVnaXN0ZXIgaW50IG47Cj4gfCAJ Zm9yICggbiA9IDA7IHNbbl07ICsrbiApCj4gfCAJCTsKPiB8IAo+IHwgCXJldHVybiBuOwo+IHwg CX0KPiB8ICNlbmRpZgo+IHwgCj4gfCAKPiB8ICNpZmRlZiBZWV9VU0VfUFJPVE9TCj4gfCBzdGF0 aWMgdm9pZCAqeXlfZmxleF9hbGxvYyggeXlfc2l6ZV90IHNpemUgKQo+IHwgI2Vsc2UKPiB8IHN0 YXRpYyB2b2lkICp5eV9mbGV4X2FsbG9jKCBzaXplICkKPiB8IHl5X3NpemVfdCBzaXplOwo+IHwg I2VuZGlmCj4gfCAJewo+IHwgCXJldHVybiAodm9pZCAqKSBtYWxsb2MoIHNpemUgKTsKPiB8IAl9 Cj4gfCAKPiB8ICNpZmRlZiBZWV9VU0VfUFJPVE9TCj4gfCBzdGF0aWMgdm9pZCAqeXlfZmxleF9y ZWFsbG9jKCB2b2lkICpwdHIsIHl5X3NpemVfdCBzaXplICkKPiB8ICNlbHNlCj4gfCBzdGF0aWMg dm9pZCAqeXlfZmxleF9yZWFsbG9jKCBwdHIsIHNpemUgKQo+IHwgdm9pZCAqcHRyOwo+IHwgeXlf c2l6ZV90IHNpemU7Cj4gfCAjZW5kaWYKPiB8IAl7Cj4gfCAJLyogVGhlIGNhc3QgdG8gKGNoYXIg KikgaW4gdGhlIGZvbGxvd2luZyBhY2NvbW1vZGF0ZXMgYm90aAo+IHwgCSAqIGltcGxlbWVudGF0 aW9ucyB0aGF0IHVzZSBjaGFyKiBnZW5lcmljIHBvaW50ZXJzLCBhbmQgdGhvc2UKPiB8IAkgKiB0 aGF0IHVzZSB2b2lkKiBnZW5lcmljIHBvaW50ZXJzLiAgSXQgd29ya3Mgd2l0aCB0aGUgbGF0dGVy Cj4gfCAJICogYmVjYXVzZSBib3RoIEFOU0kgQyBhbmQgQysrIGFsbG93IGNhc3RsZXNzIGFzc2ln bm1lbnQgZnJvbQo+IHwgCSAqIGFueSBwb2ludGVyIHR5cGUgdG8gdm9pZCosIGFuZCBkZWFsIHdp dGggYXJndW1lbnQgY29udmVyc2lvbnMKPiB8IAkgKiBhcyB0aG91Z2ggZG9pbmcgYW4gYXNzaWdu bWVudC4KPiB8IAkgKi8KPiB8IAlyZXR1cm4gKHZvaWQgKikgcmVhbGxvYyggKGNoYXIgKikgcHRy LCBzaXplICk7Cj4gfCAJfQo+IHwgCj4gfCAjaWZkZWYgWVlfVVNFX1BST1RPUwo+IHwgc3RhdGlj IHZvaWQgeXlfZmxleF9mcmVlKCB2b2lkICpwdHIgKQo+IHwgI2Vsc2UKPiB8IHN0YXRpYyB2b2lk IHl5X2ZsZXhfZnJlZSggcHRyICkKPiB8IHZvaWQgKnB0cjsKPiB8ICNlbmRpZgo+IHwgCXsKPiB8 IAlmcmVlKCBwdHIgKTsKPiB8IAl9Cj4gfCAKPiB8ICNpZiBZWV9NQUlOCj4gfCBpbnQgbWFpbigp Cj4gfCAJewo+IHwgCXl5bGV4KCk7Cj4gfCAJcmV0dXJuIDA7Cj4gfCAJfQo+IHwgI2VuZGlmCj4g fCAjbGluZSA5ICJjb25mdGVzdC5sIgo+IHwgCj4gfCAjaWZkZWYgWVlURVhUX1BPSU5URVIKPiB8 IGV4dGVybiBjaGFyICp5eXRleHQ7Cj4gfCAjZW5kaWYKPiB8IGludAo+IHwgbWFpbiAodm9pZCkK PiB8IHsKPiB8ICAgcmV0dXJuICEgeXlsZXggKCkgKyAhIHl5d3JhcCAoKTsKPiB8IH0KPiBjb25m aWd1cmU6Mzk5NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgLWxmbCAgPiY1 Cj4gY29uZnRlc3QubDogSW4gZnVuY3Rpb24gJ3l5bGV4JzoKPiBjb25mdGVzdC5sOjY6IHdhcm5p bmc6IGNvbXBhcmlzb24gYmV0d2VlbiBwb2ludGVyIGFuZCBpbnRlZ2VyCj4gY29uZnRlc3QubDo2 OiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQg YSBjYXN0Cj4gY29uZmlndXJlOjM5OTQ6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0MDA0OiByZXN1bHQ6 IC1sZmwKPiBjb25maWd1cmU6NDAxMDogY2hlY2tpbmcgd2hldGhlciB5eXRleHQgaXMgYSBwb2lu dGVyCj4gY29uZmlndXJlOjQwMjY6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5j IC1sZmwgID4mNQo+IGNvbmZ0ZXN0Lmw6IEluIGZ1bmN0aW9uICd5eWxleCc6Cj4gY29uZnRlc3Qu bDo2OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gcG9pbnRlciBhbmQgaW50ZWdlcgo+IGNv bmZ0ZXN0Lmw6Njogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdl ciB3aXRob3V0IGEgY2FzdAo+IGNvbmZpZ3VyZTo0MDI2OiAkPyA9IDAKPiBjb25maWd1cmU6NDAz NDogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NDA4NzogY2hlY2tpbmcgZm9yIHJhbmxpYgo+IGNv bmZpZ3VyZTo0MTAzOiBmb3VuZCAvdXNyL2Jpbi9yYW5saWIKPiBjb25maWd1cmU6NDExNDogcmVz dWx0OiByYW5saWIKPiBjb25maWd1cmU6NDE4MDogY2hlY2tpbmcgZm9yIHN0cmlwCj4gY29uZmln dXJlOjQxOTY6IGZvdW5kIC91c3IvYmluL3N0cmlwCj4gY29uZmlndXJlOjQyMDc6IHJlc3VsdDog c3RyaXAKPiBjb25maWd1cmU6NDIzMzogY2hlY2tpbmcgZm9yIGJpc29uCj4gY29uZmlndXJlOjQy NDk6IGZvdW5kIC91c3IvYmluL2Jpc29uCj4gY29uZmlndXJlOjQyNjA6IHJlc3VsdDogYmlzb24g LXkKPiBjb25maWd1cmU6NDI4MDogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNz b3IKPiBjb25maWd1cmU6NDMxMTogZ2NjIC1FICBjb25mdGVzdC5jCj4gY29uZmlndXJlOjQzMTE6 ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0MzI1OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25mdGVzdC5j OjEyOjI4OiBlcnJvcjogYWNfbm9uZXhpc3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQo+IGNvbmZpZ3VyZTo0MzI1OiAkPyA9IDEKPiBjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKPiB8IC8qIGNvbmZkZWZzLmggKi8KPiB8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsdHAiCj4g fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibHRwIExUUF9WRVJT SU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibHRwLXJlc3VsdHNAbGlzdHMuc291 cmNlZm9yZ2UubmV0Igo+IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgo+IHwgI2RlZmluZSBQQUNL QUdFICJsdHAiCj4gfCAjZGVmaW5lIFZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBZ WVRFWFRfUE9JTlRFUiAxCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCj4gfCAjaW5jbHVkZSA8 YWNfbm9uZXhpc3RlbnQuaD4KPiBjb25maWd1cmU6NDM1MDogcmVzdWx0OiBnY2MgLUUKPiBjb25m aWd1cmU6NDM3MDogZ2NjIC1FICBjb25mdGVzdC5jCj4gY29uZmlndXJlOjQzNzA6ICQ/ID0gMAo+ IGNvbmZpZ3VyZTo0Mzg0OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25mdGVzdC5jOjEyOjI4OiBl cnJvcjogYWNfbm9uZXhpc3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQo+IGNvbmZp Z3VyZTo0Mzg0OiAkPyA9IDEKPiBjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKPiB8IC8q IGNvbmZkZWZzLmggKi8KPiB8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsdHAiCj4gfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIkxUUF9W RVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibHRwIExUUF9WRVJTSU9OIgo+IHwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibHRwLXJlc3VsdHNAbGlzdHMuc291cmNlZm9yZ2Uu bmV0Igo+IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgo+IHwgI2RlZmluZSBQQUNLQUdFICJsdHAi Cj4gfCAjZGVmaW5lIFZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBZWVRFWFRfUE9J TlRFUiAxCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCj4gfCAjaW5jbHVkZSA8YWNfbm9uZXhp c3RlbnQuaD4KPiBjb25maWd1cmU6NDQxMzogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVz IGxvbmcgbGluZXMgYW5kIC1lCj4gY29uZmlndXJlOjQ0NzE6IHJlc3VsdDogL2Jpbi9ncmVwCj4g Y29uZmlndXJlOjQ0NzY6IGNoZWNraW5nIGZvciBlZ3JlcAo+IGNvbmZpZ3VyZTo0NTM4OiByZXN1 bHQ6IC9iaW4vZ3JlcCAtRQo+IGNvbmZpZ3VyZTo0NTQzOiBjaGVja2luZyBmb3IgQU5TSSBDIGhl YWRlciBmaWxlcwo+IGNvbmZpZ3VyZTo0NTYzOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQo+IGNvbmZpZ3VyZTo0NTYzOiAkPyA9IDAKPiBjb25maWd1cmU6NDYzNjogZ2NjIC1vIGNvbmZ0 ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQo+IGNvbmZpZ3VyZTo0NjM2OiAkPyA9IDAKPiBj b25maWd1cmU6NDYzNjogLi9jb25mdGVzdAo+IGNvbmZpZ3VyZTo0NjM2OiAkPyA9IDAKPiBjb25m aWd1cmU6NDY0NzogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NDY2MDogY2hlY2tpbmcgZm9yIHN5 cy90eXBlcy5oCj4gY29uZmlndXJlOjQ2NjA6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1 Cj4gY29uZmlndXJlOjQ2NjA6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjYwOiByZXN1bHQ6IHllcwo+ IGNvbmZpZ3VyZTo0NjYwOiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaAo+IGNvbmZpZ3VyZTo0NjYw OiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo0NjYwOiAkPyA9IDAK PiBjb25maWd1cmU6NDY2MDogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NDY2MDogY2hlY2tpbmcg Zm9yIHN0ZGxpYi5oCj4gY29uZmlndXJlOjQ2NjA6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1Cj4gY29uZmlndXJlOjQ2NjA6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjYwOiByZXN1bHQ6IHll cwo+IGNvbmZpZ3VyZTo0NjYwOiBjaGVja2luZyBmb3Igc3RyaW5nLmgKPiBjb25maWd1cmU6NDY2 MDogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NDY2MDogJD8gPSAw Cj4gY29uZmlndXJlOjQ2NjA6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ2NjA6IGNoZWNraW5n IGZvciBtZW1vcnkuaAo+IGNvbmZpZ3VyZTo0NjYwOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5j ID4mNQo+IGNvbmZpZ3VyZTo0NjYwOiAkPyA9IDAKPiBjb25maWd1cmU6NDY2MDogcmVzdWx0OiB5 ZXMKPiBjb25maWd1cmU6NDY2MDogY2hlY2tpbmcgZm9yIHN0cmluZ3MuaAo+IGNvbmZpZ3VyZTo0 NjYwOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo0NjYwOiAkPyA9 IDAKPiBjb25maWd1cmU6NDY2MDogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NDY2MDogY2hlY2tp bmcgZm9yIGludHR5cGVzLmgKPiBjb25maWd1cmU6NDY2MDogZ2NjIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKPiBjb25maWd1cmU6NDY2MDogJD8gPSAwCj4gY29uZmlndXJlOjQ2NjA6IHJlc3Vs dDogeWVzCj4gY29uZmlndXJlOjQ2NjA6IGNoZWNraW5nIGZvciBzdGRpbnQuaAo+IGNvbmZpZ3Vy ZTo0NjYwOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo0NjYwOiAk PyA9IDAKPiBjb25maWd1cmU6NDY2MDogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NDY2MDogY2hl Y2tpbmcgZm9yIHVuaXN0ZC5oCj4gY29uZmlndXJlOjQ2NjA6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1Cj4gY29uZmlndXJlOjQ2NjA6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjYwOiByZXN1 bHQ6IHllcwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBkbWFwaS5oIHVzYWJpbGl0eQo+IGNv bmZpZ3VyZTo0NjkxOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZ0ZXN0LmM6 NTU6MTk6IGVycm9yOiBkbWFwaS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cj4gY29uZmln dXJlOjQ2OTE6ICQ/ID0gMQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyog Y29uZmRlZnMuaCAqLwo+IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZF UlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIK PiB8ICNkZWZpbmUgVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZVEVYVF9QT0lO VEVSIDEKPiB8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQ RVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQo+IHwgLyogZW5kIGNvbmZkZWZzLmguICAqLwo+IHwgI2luY2x1ZGUgPHN0ZGlvLmg+ Cj4gfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAo+IHwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4K PiB8ICNlbmRpZgo+IHwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAo+IHwgIyBpbmNsdWRlIDxzeXMv c3RhdC5oPgo+IHwgI2VuZGlmCj4gfCAjaWZkZWYgU1REQ19IRUFERVJTCj4gfCAjIGluY2x1ZGUg PHN0ZGxpYi5oPgo+IHwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KPiB8ICNlbHNlCj4gfCAjIGlmZGVm IEhBVkVfU1RETElCX0gKPiB8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgo+IHwgIyBlbmRpZgo+IHwg I2VuZGlmCj4gfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAo+IHwgIyBpZiAhZGVmaW5lZCBTVERDX0hF QURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICj4gfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4K PiB8ICMgZW5kaWYKPiB8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cj4gfCAjZW5kaWYKPiB8ICNpZmRl ZiBIQVZFX1NUUklOR1NfSAo+IHwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cj4gfCAjZW5kaWYKPiB8 ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKPiB8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KPiB8ICNl bmRpZgo+IHwgI2lmZGVmIEhBVkVfU1RESU5UX0gKPiB8ICMgaW5jbHVkZSA8c3RkaW50Lmg+Cj4g fCAjZW5kaWYKPiB8ICNpZmRlZiBIQVZFX1VOSVNURF9ICj4gfCAjIGluY2x1ZGUgPHVuaXN0ZC5o Pgo+IHwgI2VuZGlmCj4gfCAjaW5jbHVkZSA8ZG1hcGkuaD4KPiBjb25maWd1cmU6NDY5MTogcmVz dWx0OiBubwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBkbWFwaS5oIHByZXNlbmNlCj4gY29u ZmlndXJlOjQ2OTE6IGdjYyAtRSAgY29uZnRlc3QuYwo+IGNvbmZ0ZXN0LmM6MjI6MTk6IGVycm9y OiBkbWFwaS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cj4gY29uZmlndXJlOjQ2OTE6ICQ/ ID0gMQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyogY29uZmRlZnMuaCAq Lwo+IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCj4gfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIKPiB8ICNkZWZpbmUg VkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKPiB8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCj4gfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQo+IHwg I2RlZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCj4gfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKPiB8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQo+IHwg LyogZW5kIGNvbmZkZWZzLmguICAqLwo+IHwgI2luY2x1ZGUgPGRtYXBpLmg+Cj4gY29uZmlndXJl OjQ2OTE6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcgZm9yIGRtYXBpLmgK PiBjb25maWd1cmU6NDY5MTogcmVzdWx0OiBubwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBp ZmFkZHJzLmggdXNhYmlsaXR5Cj4gY29uZmlndXJlOjQ2OTE6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1Cj4gY29uZmlndXJlOjQ2OTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1 bHQ6IHllcwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBpZmFkZHJzLmggcHJlc2VuY2UKPiBj b25maWd1cmU6NDY5MTogZ2NjIC1FICBjb25mdGVzdC5jCj4gY29uZmlndXJlOjQ2OTE6ICQ/ID0g MAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2lu ZyBmb3IgaWZhZGRycy5oCj4gY29uZmlndXJlOjQ2OTE6IHJlc3VsdDogeWVzCj4gY29uZmlndXJl OjQ2OTE6IGNoZWNraW5nIGxpYmFpby5oIHVzYWJpbGl0eQo+IGNvbmZpZ3VyZTo0NjkxOiBnY2Mg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo0NjkxOiAkPyA9IDAKPiBjb25m aWd1cmU6NDY5MTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcgbGliYWlv LmggcHJlc2VuY2UKPiBjb25maWd1cmU6NDY5MTogZ2NjIC1FICBjb25mdGVzdC5jCj4gY29uZmln dXJlOjQ2OTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3Vy ZTo0NjkxOiBjaGVja2luZyBmb3IgbGliYWlvLmgKPiBjb25maWd1cmU6NDY5MTogcmVzdWx0OiB5 ZXMKPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcgbW0uaCB1c2FiaWxpdHkKPiBjb25maWd1cmU6 NDY5MTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NDY5MTogJD8g PSAwCj4gY29uZmlndXJlOjQ2OTE6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ2OTE6IGNoZWNr aW5nIG1tLmggcHJlc2VuY2UKPiBjb25maWd1cmU6NDY5MTogZ2NjIC1FICBjb25mdGVzdC5jCj4g Y29uZmlndXJlOjQ2OTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+IGNv bmZpZ3VyZTo0NjkxOiBjaGVja2luZyBmb3IgbW0uaAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6 IHllcwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBwdGhyZWFkLmggdXNhYmlsaXR5Cj4gY29u ZmlndXJlOjQ2OTE6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29uZmlndXJlOjQ2 OTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo0Njkx OiBjaGVja2luZyBwdGhyZWFkLmggcHJlc2VuY2UKPiBjb25maWd1cmU6NDY5MTogZ2NjIC1FICBj b25mdGVzdC5jCj4gY29uZmlndXJlOjQ2OTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1 bHQ6IHllcwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBmb3IgcHRocmVhZC5oCj4gY29uZmln dXJlOjQ2OTE6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ2OTE6IGNoZWNraW5nIGxpbnV4L2dl bmV0bGluay5oIHVzYWJpbGl0eQo+IGNvbmZpZ3VyZTo0NjkxOiBnY2MgLWMgLWcgLU8yICBjb25m dGVzdC5jID4mNQo+IEluIGZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL2luY2x1ZGUvbGludXgvZ2Vu ZXRsaW5rLmg6NCwKPiAgICAgICAgICAgICAgICAgIGZyb20gY29uZnRlc3QuYzo1OToKPiAvdXNy L2luY2x1ZGUvbGludXgvbmV0bGluay5oOjMyOiBlcnJvcjogZXhwZWN0ZWQgc3BlY2lmaWVyLXF1 YWxpZmllci1saXN0IGJlZm9yZSAnc2FfZmFtaWx5X3QnCj4gY29uZmlndXJlOjQ2OTE6ICQ/ID0g MQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyogY29uZmRlZnMuaCAqLwo+ IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCj4gfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIKPiB8ICNkZWZpbmUgVkVS U0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKPiB8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCj4gfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCj4gfCAjZGVm aW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKPiB8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX0lGQUREUlNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCQUlPX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX01NX0ggMQo+IHwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCj4gfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCj4gfCAjaW5jbHVkZSA8c3RkaW8uaD4KPiB8ICNpZmRlZiBIQVZFX1NZ U19UWVBFU19ICj4gfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgo+IHwgI2VuZGlmCj4gfCAjaWZk ZWYgSEFWRV9TWVNfU1RBVF9ICj4gfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cj4gfCAjZW5kaWYK PiB8ICNpZmRlZiBTVERDX0hFQURFUlMKPiB8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cj4gfCAjIGlu Y2x1ZGUgPHN0ZGRlZi5oPgo+IHwgI2Vsc2UKPiB8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAo+IHwg IyAgaW5jbHVkZSA8c3RkbGliLmg+Cj4gfCAjIGVuZGlmCj4gfCAjZW5kaWYKPiB8ICNpZmRlZiBI QVZFX1NUUklOR19ICj4gfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKPiB8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgo+IHwgIyBlbmRpZgo+IHwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KPiB8ICNlbmRpZgo+IHwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICj4g fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KPiB8ICNlbmRpZgo+IHwgI2lmZGVmIEhBVkVfSU5UVFlQ RVNfSAo+IHwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgo+IHwgI2VuZGlmCj4gfCAjaWZkZWYgSEFW RV9TVERJTlRfSAo+IHwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KPiB8ICNlbmRpZgo+IHwgI2lmZGVm IEhBVkVfVU5JU1REX0gKPiB8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cj4gfCAjZW5kaWYKPiB8ICNp bmNsdWRlIDxsaW51eC9nZW5ldGxpbmsuaD4KPiBjb25maWd1cmU6NDY5MTogcmVzdWx0OiBubwo+ IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBsaW51eC9nZW5ldGxpbmsuaCBwcmVzZW5jZQo+IGNv bmZpZ3VyZTo0NjkxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25maWd1cmU6NDY5MTogJD8gPSAw Cj4gY29uZmlndXJlOjQ2OTE6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ2OTE6IFdBUk5JTkc6 IGxpbnV4L2dlbmV0bGluay5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQKPiBjb25m aWd1cmU6NDY5MTogV0FSTklORzogbGludXgvZ2VuZXRsaW5rLmg6ICAgICBjaGVjayBmb3IgbWlz c2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8KPiBjb25maWd1cmU6NDY5MTogV0FSTklORzogbGlu dXgvZ2VuZXRsaW5rLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbgo+IGNvbmZpZ3Vy ZTo0NjkxOiBXQVJOSU5HOiBsaW51eC9nZW5ldGxpbmsuaDogICAgIHNlY3Rpb24gIlByZXNlbnQg QnV0IENhbm5vdCBCZSBDb21waWxlZCIKPiBjb25maWd1cmU6NDY5MTogV0FSTklORzogbGludXgv Z2VuZXRsaW5rLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQKPiBjb25m aWd1cmU6NDY5MTogY2hlY2tpbmcgZm9yIGxpbnV4L2dlbmV0bGluay5oCj4gY29uZmlndXJlOjQ2 OTE6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcgbGludXgvbWVtcG9saWN5 LmggdXNhYmlsaXR5Cj4gY29uZmlndXJlOjQ2OTE6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1Cj4gY29uZmlndXJlOjQ2OTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHll cwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBsaW51eC9tZW1wb2xpY3kuaCBwcmVzZW5jZQo+ IGNvbmZpZ3VyZTo0NjkxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25maWd1cmU6NDY5MTogJD8g PSAwCj4gY29uZmlndXJlOjQ2OTE6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ2OTE6IGNoZWNr aW5nIGZvciBsaW51eC9tZW1wb2xpY3kuaAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+ IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBsaW51eC9tb2R1bGUuaCB1c2FiaWxpdHkKPiBjb25m aWd1cmU6NDY5MTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25mdGVzdC5jOjYw OjI2OiBlcnJvcjogbGludXgvbW9kdWxlLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKPiBj b25maWd1cmU6NDY5MTogJD8gPSAxCj4gY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cj4g fCAvKiBjb25mZGVmcy5oICovCj4gfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibHRwIgo+IHwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJM VFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImx0cCBMVFBfVkVSU0lPTiIK PiB8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImx0cC1yZXN1bHRzQGxpc3RzLnNvdXJjZWZv cmdlLm5ldCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKPiB8ICNkZWZpbmUgUEFDS0FHRSAi bHRwIgo+IHwgI2RlZmluZSBWRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgWVlURVhU X1BPSU5URVIgMQo+IHwgI2RlZmluZSBTVERDX0hFQURFUlMgMQo+IHwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKPiB8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQo+IHwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQo+IHwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKPiB8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSUZBRERSU19IIDEKPiB8ICNkZWZpbmUgSEFW RV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVfTU1fSCAxCj4gfCAjZGVmaW5lIEhBVkVfUFRI UkVBRF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCj4gfCAjaW5jbHVkZSA8c3RkaW8uaD4KPiB8ICNpZmRlZiBIQVZFX1NZ U19UWVBFU19ICj4gfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgo+IHwgI2VuZGlmCj4gfCAjaWZk ZWYgSEFWRV9TWVNfU1RBVF9ICj4gfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cj4gfCAjZW5kaWYK PiB8ICNpZmRlZiBTVERDX0hFQURFUlMKPiB8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cj4gfCAjIGlu Y2x1ZGUgPHN0ZGRlZi5oPgo+IHwgI2Vsc2UKPiB8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAo+IHwg IyAgaW5jbHVkZSA8c3RkbGliLmg+Cj4gfCAjIGVuZGlmCj4gfCAjZW5kaWYKPiB8ICNpZmRlZiBI QVZFX1NUUklOR19ICj4gfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKPiB8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgo+IHwgIyBlbmRpZgo+IHwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KPiB8ICNlbmRpZgo+IHwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICj4g fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KPiB8ICNlbmRpZgo+IHwgI2lmZGVmIEhBVkVfSU5UVFlQ RVNfSAo+IHwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgo+IHwgI2VuZGlmCj4gfCAjaWZkZWYgSEFW RV9TVERJTlRfSAo+IHwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KPiB8ICNlbmRpZgo+IHwgI2lmZGVm IEhBVkVfVU5JU1REX0gKPiB8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cj4gfCAjZW5kaWYKPiB8ICNp bmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiBjb25maWd1cmU6NDY5MTogcmVzdWx0OiBubwo+IGNv bmZpZ3VyZTo0NjkxOiBjaGVja2luZyBsaW51eC9tb2R1bGUuaCBwcmVzZW5jZQo+IGNvbmZpZ3Vy ZTo0NjkxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25mdGVzdC5jOjI3OjI2OiBlcnJvcjogbGlu dXgvbW9kdWxlLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKPiBjb25maWd1cmU6NDY5MTog JD8gPSAxCj4gY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cj4gfCAvKiBjb25mZGVmcy5o ICovCj4gfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImx0cCBMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImx0cC1yZXN1bHRzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCIKPiB8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgIiIKPiB8ICNkZWZpbmUgUEFDS0FHRSAibHRwIgo+IHwgI2RlZmlu ZSBWRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQo+IHwg I2RlZmluZSBTVERDX0hFQURFUlMgMQo+IHwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKPiB8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQo+IHwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCj4g fCAjZGVmaW5lIEhBVkVfSUZBRERSU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4g fCAjZGVmaW5lIEhBVkVfTU1fSCAxCj4gfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICov Cj4gfCAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gY29uZmlndXJlOjQ2OTE6IHJlc3VsdDog bm8KPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcgZm9yIGxpbnV4L21vZHVsZS5oCj4gY29uZmln dXJlOjQ2OTE6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcgbGludXgvbmV0 bGluay5oIHVzYWJpbGl0eQo+IGNvbmZpZ3VyZTo0NjkxOiBnY2MgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQo+IEluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjYwOgo+IC91c3IvaW5j bHVkZS9saW51eC9uZXRsaW5rLmg6MzI6IGVycm9yOiBleHBlY3RlZCBzcGVjaWZpZXItcXVhbGlm aWVyLWxpc3QgYmVmb3JlICdzYV9mYW1pbHlfdCcKPiBjb25maWd1cmU6NDY5MTogJD8gPSAxCj4g Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cj4gfCAvKiBjb25mZGVmcy5oICovCj4gfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImx0 cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgImx0cCBMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImx0cC1yZXN1bHRzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCIKPiB8ICNkZWZpbmUgUEFD S0FHRV9VUkwgIiIKPiB8ICNkZWZpbmUgUEFDS0FHRSAibHRwIgo+IHwgI2RlZmluZSBWRVJTSU9O ICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQo+IHwgI2RlZmluZSBT VERDX0hFQURFUlMgMQo+IHwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKPiB8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCj4gfCAjZGVmaW5l IEhBVkVfU1RSSU5HX0ggMQo+IHwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKPiB8ICNkZWZpbmUg SEFWRV9TVFJJTkdTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQo+IHwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCj4gfCAjZGVmaW5l IEhBVkVfSUZBRERSU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5l IEhBVkVfTU1fSCAxCj4gfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKPiB8ICNkZWZpbmUgSEFW RV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCj4gfCAjaW5j bHVkZSA8c3RkaW8uaD4KPiB8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICj4gfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgo+IHwgI2VuZGlmCj4gfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICj4gfCAj IGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cj4gfCAjZW5kaWYKPiB8ICNpZmRlZiBTVERDX0hFQURFUlMK PiB8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cj4gfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgo+IHwgI2Vs c2UKPiB8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAo+IHwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cj4g fCAjIGVuZGlmCj4gfCAjZW5kaWYKPiB8ICNpZmRlZiBIQVZFX1NUUklOR19ICj4gfCAjIGlmICFk ZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKPiB8ICMgIGluY2x1 ZGUgPG1lbW9yeS5oPgo+IHwgIyBlbmRpZgo+IHwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KPiB8ICNl bmRpZgo+IHwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICj4gfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K PiB8ICNlbmRpZgo+IHwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAo+IHwgIyBpbmNsdWRlIDxpbnR0 eXBlcy5oPgo+IHwgI2VuZGlmCj4gfCAjaWZkZWYgSEFWRV9TVERJTlRfSAo+IHwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KPiB8ICNlbmRpZgo+IHwgI2lmZGVmIEhBVkVfVU5JU1REX0gKPiB8ICMgaW5j bHVkZSA8dW5pc3RkLmg+Cj4gfCAjZW5kaWYKPiB8ICNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+ Cj4gY29uZmlndXJlOjQ2OTE6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcg bGludXgvbmV0bGluay5oIHByZXNlbmNlCj4gY29uZmlndXJlOjQ2OTE6IGdjYyAtRSAgY29uZnRl c3QuYwo+IGNvbmZpZ3VyZTo0NjkxOiAkPyA9IDAKPiBjb25maWd1cmU6NDY5MTogcmVzdWx0OiB5 ZXMKPiBjb25maWd1cmU6NDY5MTogV0FSTklORzogbGludXgvbmV0bGluay5oOiBwcmVzZW50IGJ1 dCBjYW5ub3QgYmUgY29tcGlsZWQKPiBjb25maWd1cmU6NDY5MTogV0FSTklORzogbGludXgvbmV0 bGluay5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/Cj4gY29u ZmlndXJlOjQ2OTE6IFdBUk5JTkc6IGxpbnV4L25ldGxpbmsuaDogc2VlIHRoZSBBdXRvY29uZiBk b2N1bWVudGF0aW9uCj4gY29uZmlndXJlOjQ2OTE6IFdBUk5JTkc6IGxpbnV4L25ldGxpbmsuaDog ICAgIHNlY3Rpb24gIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZCIKPiBjb25maWd1cmU6 NDY5MTogV0FSTklORzogbGludXgvbmV0bGluay5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBp bGVyJ3MgcmVzdWx0Cj4gY29uZmlndXJlOjQ2OTE6IGNoZWNraW5nIGZvciBsaW51eC9uZXRsaW5r LmgKPiBjb25maWd1cmU6NDY5MTogcmVzdWx0OiBubwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2lu ZyBzeXMvYWNsLmggdXNhYmlsaXR5Cj4gY29uZmlndXJlOjQ2OTE6IGdjYyAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1Cj4gY29uZmlndXJlOjQ2OTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiBy ZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBzeXMvYWNsLmggcHJlc2VuY2UK PiBjb25maWd1cmU6NDY5MTogZ2NjIC1FICBjb25mdGVzdC5jCj4gY29uZmlndXJlOjQ2OTE6ICQ/ ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVj a2luZyBmb3Igc3lzL2FjbC5oCj4gY29uZmlndXJlOjQ2OTE6IHJlc3VsdDogeWVzCj4gY29uZmln dXJlOjQ2OTE6IGNoZWNraW5nIHN5cy9lcG9sbC5oIHVzYWJpbGl0eQo+IGNvbmZpZ3VyZTo0Njkx OiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo0NjkxOiAkPyA9IDAK PiBjb25maWd1cmU6NDY5MTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcg c3lzL2Vwb2xsLmggcHJlc2VuY2UKPiBjb25maWd1cmU6NDY5MTogZ2NjIC1FICBjb25mdGVzdC5j Cj4gY29uZmlndXJlOjQ2OTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+ IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBmb3Igc3lzL2Vwb2xsLmgKPiBjb25maWd1cmU6NDY5 MTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcgc3lzL2lub3RpZnkuaCB1 c2FiaWxpdHkKPiBjb25maWd1cmU6NDY5MTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK PiBjb25maWd1cmU6NDY5MTogJD8gPSAwCj4gY29uZmlndXJlOjQ2OTE6IHJlc3VsdDogeWVzCj4g Y29uZmlndXJlOjQ2OTE6IGNoZWNraW5nIHN5cy9pbm90aWZ5LmggcHJlc2VuY2UKPiBjb25maWd1 cmU6NDY5MTogZ2NjIC1FICBjb25mdGVzdC5jCj4gY29uZmlndXJlOjQ2OTE6ICQ/ID0gMAo+IGNv bmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBmb3Ig c3lzL2lub3RpZnkuaAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo0 NjkxOiBjaGVja2luZyBzeXMvamZzZG1hcGkuaCB1c2FiaWxpdHkKPiBjb25maWd1cmU6NDY5MTog Z2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25mdGVzdC5jOjYzOjI2OiBlcnJvcjog c3lzL2pmc2RtYXBpLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKPiBjb25maWd1cmU6NDY5 MTogJD8gPSAxCj4gY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cj4gfCAvKiBjb25mZGVm cy5oICovCj4gfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJMVFBfVkVSU0lPTiIK PiB8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImx0cCBMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImx0cC1yZXN1bHRzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCIKPiB8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKPiB8ICNkZWZpbmUgUEFDS0FHRSAibHRwIgo+IHwgI2Rl ZmluZSBWRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQo+ IHwgI2RlZmluZSBTVERDX0hFQURFUlMgMQo+IHwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK PiB8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx Cj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQo+IHwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK PiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQo+IHwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx Cj4gfCAjZGVmaW5lIEhBVkVfSUZBRERSU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAx Cj4gfCAjZGVmaW5lIEhBVkVfTU1fSCAxCj4gfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0FD TF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lT X0lOT1RJRllfSCAxCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCj4gfCAjaW5jbHVkZSA8c3Rk aW8uaD4KPiB8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICj4gfCAjIGluY2x1ZGUgPHN5cy90eXBl cy5oPgo+IHwgI2VuZGlmCj4gfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICj4gfCAjIGluY2x1ZGUg PHN5cy9zdGF0Lmg+Cj4gfCAjZW5kaWYKPiB8ICNpZmRlZiBTVERDX0hFQURFUlMKPiB8ICMgaW5j bHVkZSA8c3RkbGliLmg+Cj4gfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgo+IHwgI2Vsc2UKPiB8ICMg aWZkZWYgSEFWRV9TVERMSUJfSAo+IHwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cj4gfCAjIGVuZGlm Cj4gfCAjZW5kaWYKPiB8ICNpZmRlZiBIQVZFX1NUUklOR19ICj4gfCAjIGlmICFkZWZpbmVkIFNU RENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKPiB8ICMgIGluY2x1ZGUgPG1lbW9y eS5oPgo+IHwgIyBlbmRpZgo+IHwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KPiB8ICNlbmRpZgo+IHwg I2lmZGVmIEhBVkVfU1RSSU5HU19ICj4gfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KPiB8ICNlbmRp Zgo+IHwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAo+IHwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgo+ IHwgI2VuZGlmCj4gfCAjaWZkZWYgSEFWRV9TVERJTlRfSAo+IHwgIyBpbmNsdWRlIDxzdGRpbnQu aD4KPiB8ICNlbmRpZgo+IHwgI2lmZGVmIEhBVkVfVU5JU1REX0gKPiB8ICMgaW5jbHVkZSA8dW5p c3RkLmg+Cj4gfCAjZW5kaWYKPiB8ICNpbmNsdWRlIDxzeXMvamZzZG1hcGkuaD4KPiBjb25maWd1 cmU6NDY5MTogcmVzdWx0OiBubwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBzeXMvamZzZG1h cGkuaCBwcmVzZW5jZQo+IGNvbmZpZ3VyZTo0NjkxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25m dGVzdC5jOjMwOjI2OiBlcnJvcjogc3lzL2pmc2RtYXBpLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkKPiBjb25maWd1cmU6NDY5MTogJD8gPSAxCj4gY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6Cj4gfCAvKiBjb25mZGVmcy5oICovCj4gfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibHRw Igo+IHwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImx0cCBMVFBf VkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImx0cC1yZXN1bHRzQGxpc3Rz LnNvdXJjZWZvcmdlLm5ldCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKPiB8ICNkZWZpbmUg UEFDS0FHRSAibHRwIgo+IHwgI2RlZmluZSBWRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZp bmUgWVlURVhUX1BPSU5URVIgMQo+IHwgI2RlZmluZSBTVERDX0hFQURFUlMgMQo+IHwgI2RlZmlu ZSBIQVZFX1NZU19UWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX01FTU9SWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSUZBRERSU19IIDEKPiB8ICNk ZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVfTU1fSCAxCj4gfCAjZGVmaW5l IEhBVkVfUFRIUkVBRF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAx Cj4gfCAjZGVmaW5lIEhBVkVfU1lTX0lOT1RJRllfSCAxCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCj4gfCAjaW5jbHVkZSA8c3lzL2pmc2RtYXBpLmg+Cj4gY29uZmlndXJlOjQ2OTE6IHJlc3Vs dDogbm8KPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcgZm9yIHN5cy9qZnNkbWFwaS5oCj4gY29u ZmlndXJlOjQ2OTE6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NDY5MTogY2hlY2tpbmcgc3lzL3By Y3RsLmggdXNhYmlsaXR5Cj4gY29uZmlndXJlOjQ2OTE6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1Cj4gY29uZmlndXJlOjQ2OTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6 IHllcwo+IGNvbmZpZ3VyZTo0NjkxOiBjaGVja2luZyBzeXMvcHJjdGwuaCBwcmVzZW5jZQo+IGNv bmZpZ3VyZTo0NjkxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25maWd1cmU6NDY5MTogJD8gPSAw Cj4gY29uZmlndXJlOjQ2OTE6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ2OTE6IGNoZWNraW5n IGZvciBzeXMvcHJjdGwuaAo+IGNvbmZpZ3VyZTo0NjkxOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3Vy ZTo0NzE5OiBjaGVja2luZyBzeXMvY2FwYWJpbGl0eS5oIHVzYWJpbGl0eQo+IGNvbmZpZ3VyZTo0 NzE5OiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo0NzE5OiAkPyA9 IDAKPiBjb25maWd1cmU6NDcxOTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NDcxOTogY2hlY2tp bmcgc3lzL2NhcGFiaWxpdHkuaCBwcmVzZW5jZQo+IGNvbmZpZ3VyZTo0NzE5OiBnY2MgLUUgIGNv bmZ0ZXN0LmMKPiBjb25maWd1cmU6NDcxOTogJD8gPSAwCj4gY29uZmlndXJlOjQ3MTk6IHJlc3Vs dDogeWVzCj4gY29uZmlndXJlOjQ3MTk6IGNoZWNraW5nIGZvciBzeXMvY2FwYWJpbGl0eS5oCj4g Y29uZmlndXJlOjQ3MTk6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ3Mjc6IGNoZWNraW5nIGF0 dHIveGF0dHIuaCB1c2FiaWxpdHkKPiBjb25maWd1cmU6NDcyNzogZ2NjIC1jIC1nIC1PMiAgY29u ZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NDcyNzogJD8gPSAwCj4gY29uZmlndXJlOjQ3Mjc6IHJl c3VsdDogeWVzCj4gY29uZmlndXJlOjQ3Mjc6IGNoZWNraW5nIGF0dHIveGF0dHIuaCBwcmVzZW5j ZQo+IGNvbmZpZ3VyZTo0NzI3OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25maWd1cmU6NDcyNzog JD8gPSAwCj4gY29uZmlndXJlOjQ3Mjc6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ3Mjc6IGNo ZWNraW5nIGZvciBhdHRyL3hhdHRyLmgKPiBjb25maWd1cmU6NDcyNzogcmVzdWx0OiB5ZXMKPiBj b25maWd1cmU6NDczODogY2hlY2tpbmcgZm9yIGNhcF9mcmVlIGluIC1sY2FwCj4gY29uZmlndXJl OjQ3NjM6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jIC1sY2FwICAgPiY1Cj4g Y29uZmlndXJlOjQ3NjM6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0NzcyOiByZXN1bHQ6IHllcwo+IGNv bmZpZ3VyZTo0Nzc2OiBjaGVja2luZyBmb3IgY2FwX2Zyb21fdGV4dCBpbiAtbGNhcAo+IGNvbmZp Z3VyZTo0ODAxOiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAtbGNhcCAgID4m NQo+IGNvbmZpZ3VyZTo0ODAxOiAkPyA9IDAKPiBjb25maWd1cmU6NDgxMDogcmVzdWx0OiB5ZXMK PiBjb25maWd1cmU6NDgxNDogY2hlY2tpbmcgZm9yIGNhcF9zZXRfcHJvYyBpbiAtbGNhcAo+IGNv bmZpZ3VyZTo0ODM5OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAtbGNhcCAg ID4mNQo+IGNvbmZpZ3VyZTo0ODM5OiAkPyA9IDAKPiBjb25maWd1cmU6NDg0ODogcmVzdWx0OiB5 ZXMKPiBjb25maWd1cmU6NDg1MjogY2hlY2tpbmcgZm9yIGNhcF9jb21wYXJlIGluIC1sY2FwCj4g Y29uZmlndXJlOjQ4Nzc6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jIC1sY2Fw ICAgPiY1Cj4gY29uZmlndXJlOjQ4Nzc6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo0ODg2OiByZXN1bHQ6 IHllcwo+IGNvbmZpZ3VyZTo0OTAzOiBjaGVja2luZyB3aGV0aGVyIENBUF9CU0VUX0RST1AgaXMg ZGVjbGFyZWQKPiBjb25maWd1cmU6NDkwMzogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK PiBjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Cj4gY29uZnRlc3QuYzo0MDogZXJyb3I6 ICdDQVBfQlNFVF9EUk9QJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK PiBjb25mdGVzdC5jOjQwOiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJl cG9ydGVkIG9ubHkgb25jZQo+IGNvbmZ0ZXN0LmM6NDA6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlv biBpdCBhcHBlYXJzIGluLikKPiBjb25maWd1cmU6NDkwMzogJD8gPSAxCj4gY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6Cj4gfCAvKiBjb25mZGVmcy5oICovCj4gfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImx0cCIKPiB8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgImx0cCBMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImx0cC1y ZXN1bHRzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIK PiB8ICNkZWZpbmUgUEFDS0FHRSAibHRwIgo+IHwgI2RlZmluZSBWRVJTSU9OICJMVFBfVkVSU0lP TiIKPiB8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQo+IHwgI2RlZmluZSBTVERDX0hFQURFUlMg MQo+IHwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfU1RB VF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQo+IHwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdT X0ggMQo+IHwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURElO VF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSUZBRERS U19IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVfTU1fSCAx Cj4gfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9NRU1Q T0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9T WVNfRVBPTExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0lOT1RJRllfSCAxCj4gfCAjZGVmaW5l IEhBVkVfU1lTX1BSQ1RMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19DQVBBQklMSVRZX0ggMQo+ IHwgI2RlZmluZSBIQVZFX0FUVFJfWEFUVFJfSCAxCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICov Cj4gfCAjaW5jbHVkZSA8c3lzL2NhcGFiaWxpdHkuaD4KPiB8IAo+IHwgCj4gfCBpbnQKPiB8IG1h aW4gKCkKPiB8IHsKPiB8ICNpZm5kZWYgQ0FQX0JTRVRfRFJPUAo+IHwgICAodm9pZCkgQ0FQX0JT RVRfRFJPUDsKPiB8ICNlbmRpZgo+IHwgCj4gfCAgIDsKPiB8ICAgcmV0dXJuIDA7Cj4gfCB9Cj4g Y29uZmlndXJlOjQ5MDM6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NDkxNTogY2hlY2tpbmcgd2hl dGhlciBDQVBfQlNFVF9SRUFEIGlzIGRlY2xhcmVkCj4gY29uZmlndXJlOjQ5MTU6IGdjYyAtYyAt ZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgo+ IGNvbmZ0ZXN0LmM6NDE6IGVycm9yOiAnQ0FQX0JTRVRfUkVBRCcgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCj4gY29uZnRlc3QuYzo0MTogZXJyb3I6IChFYWNoIHVuZGVj bGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UKPiBjb25mdGVzdC5jOjQxOiBl cnJvcjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pCj4gY29uZmlndXJlOjQ5MTU6 ICQ/ID0gMQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyogY29uZmRlZnMu aCAqLwo+IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4g fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCj4gfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIKPiB8ICNkZWZp bmUgVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKPiB8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK PiB8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQo+ IHwgI2RlZmluZSBIQVZFX0lGQUREUlNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCQUlPX0ggMQo+ IHwgI2RlZmluZSBIQVZFX01NX0ggMQo+IHwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCj4gfCAj ZGVmaW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19BQ0xf SCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19J Tk9USUZZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKPiB8ICNkZWZpbmUgSEFW RV9TWVNfQ0FQQUJJTElUWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9BVFRSX1hBVFRSX0ggMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfRFJPUCAwCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCj4gfCAjaW5jbHVkZSA8c3lzL2NhcGFiaWxpdHkuaD4KPiB8IAo+IHwgCj4gfCBpbnQKPiB8 IG1haW4gKCkKPiB8IHsKPiB8ICNpZm5kZWYgQ0FQX0JTRVRfUkVBRAo+IHwgICAodm9pZCkgQ0FQ X0JTRVRfUkVBRDsKPiB8ICNlbmRpZgo+IHwgCj4gfCAgIDsKPiB8ICAgcmV0dXJuIDA7Cj4gfCB9 Cj4gY29uZmlndXJlOjQ5MTU6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NDkyNzogY2hlY2tpbmcg d2hldGhlciBQUl9DQVBCU0VUX1JFQUQgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NDkyNzogZ2Nj IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFp bic6Cj4gY29uZnRlc3QuYzo0MjogZXJyb3I6ICdQUl9DQVBCU0VUX1JFQUQnIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQo+IGNvbmZ0ZXN0LmM6NDI6IGVycm9yOiAoRWFj aCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlCj4gY29uZnRlc3Qu Yzo0MjogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQo+IGNvbmZpZ3Vy ZTo0OTI3OiAkPyA9IDEKPiBjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKPiB8IC8qIGNv bmZkZWZzLmggKi8KPiB8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIkxUUF9WRVJT SU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibHRwIExUUF9WRVJTSU9OIgo+IHwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibHRwLXJlc3VsdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0 Igo+IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgo+IHwgI2RlZmluZSBQQUNLQUdFICJsdHAiCj4g fCAjZGVmaW5lIFZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBZWVRFWFRfUE9JTlRF UiAxCj4gfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTUVNT1JZ X0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQo+IHwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9JRkFERFJTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJQkFJ T19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NTV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0gg MQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9T WVNfQUNMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKPiB8ICNkZWZpbmUgSEFW RV9TWVNfSU5PVElGWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCj4gfCAjZGVm aW5lIEhBVkVfU1lTX0NBUEFCSUxJVFlfSCAxCj4gfCAjZGVmaW5lIEhBVkVfQVRUUl9YQVRUUl9I IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9CU0VUX0RST1AgMAo+IHwgI2RlZmluZSBIQVZF X0RFQ0xfQ0FQX0JTRVRfUkVBRCAwCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCj4gfCAjaW5j bHVkZSA8c3lzL2NhcGFiaWxpdHkuaD4KPiB8IAo+IHwgCj4gfCBpbnQKPiB8IG1haW4gKCkKPiB8 IHsKPiB8ICNpZm5kZWYgUFJfQ0FQQlNFVF9SRUFECj4gfCAgICh2b2lkKSBQUl9DQVBCU0VUX1JF QUQ7Cj4gfCAjZW5kaWYKPiB8IAo+IHwgICA7Cj4gfCAgIHJldHVybiAwOwo+IHwgfQo+IGNvbmZp Z3VyZTo0OTI3OiByZXN1bHQ6IG5vCj4gY29uZmlndXJlOjQ5Mzk6IGNoZWNraW5nIHdoZXRoZXIg Y2FwX2NvbXBhcmUgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NDkzOTogZ2NjIC1jIC1nIC1PMiAg Y29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NDkzOTogJD8gPSAwCj4gY29uZmlndXJlOjQ5Mzk6 IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ5NTE6IGNoZWNraW5nIHdoZXRoZXIgY2FwX2ZyZWUg aXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NDk1MTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKPiBjb25maWd1cmU6NDk1MTogJD8gPSAwCj4gY29uZmlndXJlOjQ5NTE6IHJlc3VsdDogeWVz Cj4gY29uZmlndXJlOjQ5NjM6IGNoZWNraW5nIHdoZXRoZXIgY2FwX2Zyb21fdGV4dCBpcyBkZWNs YXJlZAo+IGNvbmZpZ3VyZTo0OTYzOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNv bmZpZ3VyZTo0OTYzOiAkPyA9IDAKPiBjb25maWd1cmU6NDk2MzogcmVzdWx0OiB5ZXMKPiBjb25m aWd1cmU6NDk3NTogY2hlY2tpbmcgd2hldGhlciBjYXBfZ2V0X3Byb2MgaXMgZGVjbGFyZWQKPiBj b25maWd1cmU6NDk3NTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6 NDk3NTogJD8gPSAwCj4gY29uZmlndXJlOjQ5NzU6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjQ5 ODc6IGNoZWNraW5nIHdoZXRoZXIgY2FwX3NldF9maWxlIGlzIGRlY2xhcmVkCj4gY29uZmlndXJl OjQ5ODc6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29uZmlndXJlOjQ5ODc6ICQ/ ID0gMAo+IGNvbmZpZ3VyZTo0OTg3OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo0OTk5OiBjaGVj a2luZyB3aGV0aGVyIGNhcF9zZXRfZmxhZyBpcyBkZWNsYXJlZAo+IGNvbmZpZ3VyZTo0OTk5OiBn Y2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo0OTk5OiAkPyA9IDAKPiBj b25maWd1cmU6NDk5OTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTAxMTogY2hlY2tpbmcgd2hl dGhlciBjYXBfc2V0X3Byb2MgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NTAxMTogZ2NjIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NTAxMTogJD8gPSAwCj4gY29uZmlndXJl OjUwMTE6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjUwMjM6IGNoZWNraW5nIHdoZXRoZXIgY2Fw X3RvX3RleHQgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NTAyMzogZ2NjIC1jIC1nIC1PMiAgY29u ZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NTAyMzogJD8gPSAwCj4gY29uZmlndXJlOjUwMjM6IHJl c3VsdDogeWVzCj4gY29uZmlndXJlOjUwNDQ6IGNoZWNraW5nIG9wZW5zc2wvc2hhLmggdXNhYmls aXR5Cj4gY29uZmlndXJlOjUwNDQ6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29u ZmlndXJlOjUwNDQ6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo1MDQ0OiByZXN1bHQ6IHllcwo+IGNvbmZp Z3VyZTo1MDQ0OiBjaGVja2luZyBvcGVuc3NsL3NoYS5oIHByZXNlbmNlCj4gY29uZmlndXJlOjUw NDQ6IGdjYyAtRSAgY29uZnRlc3QuYwo+IGNvbmZpZ3VyZTo1MDQ0OiAkPyA9IDAKPiBjb25maWd1 cmU6NTA0NDogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTA0NDogY2hlY2tpbmcgZm9yIG9wZW5z c2wvc2hhLmgKPiBjb25maWd1cmU6NTA0NDogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTA2Njog Y2hlY2tpbmcgc3lzL3B0cmFjZS5oIHVzYWJpbGl0eQo+IGNvbmZpZ3VyZTo1MDY2OiBnY2MgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo1MDY2OiAkPyA9IDAKPiBjb25maWd1 cmU6NTA2NjogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTA2NjogY2hlY2tpbmcgc3lzL3B0cmFj ZS5oIHByZXNlbmNlCj4gY29uZmlndXJlOjUwNjY6IGdjYyAtRSAgY29uZnRlc3QuYwo+IGNvbmZp Z3VyZTo1MDY2OiAkPyA9IDAKPiBjb25maWd1cmU6NTA2NjogcmVzdWx0OiB5ZXMKPiBjb25maWd1 cmU6NTA2NjogY2hlY2tpbmcgZm9yIHN5cy9wdHJhY2UuaAo+IGNvbmZpZ3VyZTo1MDY2OiByZXN1 bHQ6IHllcwo+IGNvbmZpZ3VyZTo1MDY2OiBjaGVja2luZyBzeXMvcmVnLmggdXNhYmlsaXR5Cj4g Y29uZmlndXJlOjUwNjY6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29uZmlndXJl OjUwNjY6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo1MDY2OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1 MDY2OiBjaGVja2luZyBzeXMvcmVnLmggcHJlc2VuY2UKPiBjb25maWd1cmU6NTA2NjogZ2NjIC1F ICBjb25mdGVzdC5jCj4gY29uZmlndXJlOjUwNjY6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo1MDY2OiBy ZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1MDY2OiBjaGVja2luZyBmb3Igc3lzL3JlZy5oCj4gY29u ZmlndXJlOjUwNjY6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjUwNjY6IGNoZWNraW5nIGFzbS9w dHJhY2UuaCB1c2FiaWxpdHkKPiBjb25maWd1cmU6NTA2NjogZ2NjIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKPiBjb25maWd1cmU6NTA2NjogJD8gPSAwCj4gY29uZmlndXJlOjUwNjY6IHJlc3Vs dDogeWVzCj4gY29uZmlndXJlOjUwNjY6IGNoZWNraW5nIGFzbS9wdHJhY2UuaCBwcmVzZW5jZQo+ IGNvbmZpZ3VyZTo1MDY2OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25maWd1cmU6NTA2NjogJD8g PSAwCj4gY29uZmlndXJlOjUwNjY6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjUwNjY6IGNoZWNr aW5nIGZvciBhc20vcHRyYWNlLmgKPiBjb25maWd1cmU6NTA2NjogcmVzdWx0OiB5ZXMKPiBjb25m aWd1cmU6NTA2NjogY2hlY2tpbmcgbGludXgvcHRyYWNlLmggdXNhYmlsaXR5Cj4gY29uZmlndXJl OjUwNjY6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29uZmlndXJlOjUwNjY6ICQ/ ID0gMAo+IGNvbmZpZ3VyZTo1MDY2OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1MDY2OiBjaGVj a2luZyBsaW51eC9wdHJhY2UuaCBwcmVzZW5jZQo+IGNvbmZpZ3VyZTo1MDY2OiBnY2MgLUUgIGNv bmZ0ZXN0LmMKPiBjb25maWd1cmU6NTA2NjogJD8gPSAwCj4gY29uZmlndXJlOjUwNjY6IHJlc3Vs dDogeWVzCj4gY29uZmlndXJlOjUwNjY6IGNoZWNraW5nIGZvciBsaW51eC9wdHJhY2UuaAo+IGNv bmZpZ3VyZTo1MDY2OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1MDc5OiBjaGVja2luZyBmb3Ig c3RydWN0IHVzZXJfcmVnc19zdHJ1Y3QKPiBjb25maWd1cmU6NTA3OTogZ2NjIC1jIC1nIC1PMiAg LUkuL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvcHRyYWNlIGNvbmZ0ZXN0LmMgPiY1Cj4gY29u ZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgo+IGNvbmZ0ZXN0LmM6NTQ6IGVycm9yOiBpbnZh bGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IHVz ZXJfcmVnc19zdHJ1Y3QnIAo+IGNvbmZpZ3VyZTo1MDc5OiAkPyA9IDEKPiBjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKPiB8IC8qIGNvbmZkZWZzLmggKi8KPiB8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibHRwIgo+IHwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAibHRwIExUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibHRwLXJl c3VsdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Igo+IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgo+ IHwgI2RlZmluZSBQQUNLQUdFICJsdHAiCj4gfCAjZGVmaW5lIFZFUlNJT04gIkxUUF9WRVJTSU9O Igo+IHwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCj4gfCAjZGVmaW5lIFNURENfSEVBREVSUyAx Cj4gfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCj4gfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCj4gfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQo+IHwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9JRkFERFJT X0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NTV9IIDEK PiB8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBP TElDWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZ U19FUE9MTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfSU5PVElGWV9IIDEKPiB8ICNkZWZpbmUg SEFWRV9TWVNfUFJDVExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0NBUEFCSUxJVFlfSCAxCj4g fCAjZGVmaW5lIEhBVkVfQVRUUl9YQVRUUl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9C U0VUX0RST1AgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfUkVBRCAwCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9QUl9DQVBCU0VUX1JFQUQgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQ X0NPTVBBUkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZSRUUgMQo+IHwgI2RlZmluZSBI QVZFX0RFQ0xfQ0FQX0ZST01fVEVYVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfR0VUX1BS T0MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GSUxFIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX0NBUF9TRVRfRkxBRyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX1BST0Mg MQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1RPX1RFWFQgMQo+IHwgI2RlZmluZSBIQVZFX09Q RU5TU0xfU0hBX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCj4gfCAjZGVmaW5l IEhBVkVfU1lTX1JFR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9BU01fUFRSQUNFX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKPiB8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KPiB8 ICNpbmNsdWRlICJwdHJhY2UuaCIKPiB8IAo+IHwgaW50Cj4gfCBtYWluICgpCj4gfCB7Cj4gfCBp ZiAoc2l6ZW9mIChzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdCkpCj4gfCAJIHJldHVybiAwOwo+IHwg ICA7Cj4gfCAgIHJldHVybiAwOwo+IHwgfQo+IGNvbmZpZ3VyZTo1MDc5OiByZXN1bHQ6IG5vCj4g Y29uZmlndXJlOjUwODk6IGNoZWNraW5nIGZvciBzdHJ1Y3QgcHRfcmVncwo+IGNvbmZpZ3VyZTo1 MDg5OiBnY2MgLWMgLWcgLU8yICAtSS4vdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9wdHJhY2Ug Y29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NTA4OTogJD8gPSAwCj4gY29uZmlndXJlOjUwODk6 IGdjYyAtYyAtZyAtTzIgIC1JLi90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL3B0cmFjZSBjb25m dGVzdC5jID4mNQo+IGNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKPiBjb25mdGVzdC5j OjU0OiBlcnJvcjogZXhwZWN0ZWQgZXhwcmVzc2lvbiBiZWZvcmUgJyknIHRva2VuCj4gY29uZmln dXJlOjUwODk6ICQ/ID0gMQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyog Y29uZmRlZnMuaCAqLwo+IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZF UlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIK PiB8ICNkZWZpbmUgVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZVEVYVF9QT0lO VEVSIDEKPiB8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQ RVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lGQUREUlNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElC QUlPX0ggMQo+IHwgI2RlZmluZSBIQVZFX01NX0ggMQo+IHwgI2RlZmluZSBIQVZFX1BUSFJFQURf SCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2RlZmluZSBIQVZF X1NZU19BQ0xfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQo+IHwgI2RlZmluZSBI QVZFX1NZU19JTk9USUZZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9TWVNfQ0FQQUJJTElUWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9BVFRSX1hBVFRS X0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfRFJPUCAwCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9DQVBfQlNFVF9SRUFEIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BSX0NBUEJTRVRf UkVBRCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQ09NUEFSRSAxCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9DQVBfRlJFRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfRlJPTV9URVhUIDEK PiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9HRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9DQVBfU0VUX0ZJTEUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GTEFHIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9D QVBfVE9fVEVYVCAxCj4gfCAjZGVmaW5lIEhBVkVfT1BFTlNTTF9TSEFfSCAxCj4gfCAjZGVmaW5l IEhBVkVfU1lTX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX0FTTV9QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0gg MQo+IHwgLyogZW5kIGNvbmZkZWZzLmguICAqLwo+IHwgI2luY2x1ZGUgInB0cmFjZS5oIgo+IHwg Cj4gfCBpbnQKPiB8IG1haW4gKCkKPiB8IHsKPiB8IGlmIChzaXplb2YgKChzdHJ1Y3QgcHRfcmVn cykpKQo+IHwgCSAgICByZXR1cm4gMDsKPiB8ICAgOwo+IHwgICByZXR1cm4gMDsKPiB8IH0KPiBj b25maWd1cmU6NTA4OTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTEwMDogY2hlY2tpbmcgd2hl dGhlciBQVFJBQ0VfR0VUU0lHSU5GTyBpcyBkZWNsYXJlZAo+IGNvbmZpZ3VyZTo1MTAwOiBnY2Mg LWMgLWcgLU8yICAtSS4vdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9wdHJhY2UgY29uZnRlc3Qu YyA+JjUKPiBjb25maWd1cmU6NTEwMDogJD8gPSAwCj4gY29uZmlndXJlOjUxMDA6IHJlc3VsdDog eWVzCj4gY29uZmlndXJlOjUxMTE6IGNoZWNraW5nIHdoZXRoZXIgUFRSQUNFX09fVFJBQ0VWRk9S S0RPTkUgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NTExMTogZ2NjIC1jIC1nIC1PMiAgLUkuL3Rl c3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvcHRyYWNlIGNvbmZ0ZXN0LmMgPiY1Cj4gY29uZmlndXJl OjUxMTE6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo1MTExOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1 MTIyOiBjaGVja2luZyB3aGV0aGVyIFBUUkFDRV9TRVRPUFRJT05TIGlzIGRlY2xhcmVkCj4gY29u ZmlndXJlOjUxMjI6IGdjYyAtYyAtZyAtTzIgIC1JLi90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxz L3B0cmFjZSBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo1MTIyOiAkPyA9IDAKPiBjb25maWd1 cmU6NTEyMjogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTE0MDogY2hlY2tpbmcgc2VsaW51eC9z ZWxpbnV4LmggdXNhYmlsaXR5Cj4gY29uZmlndXJlOjUxNDA6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1Cj4gY29uZmlndXJlOjUxNDA6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo1MTQwOiByZXN1 bHQ6IHllcwo+IGNvbmZpZ3VyZTo1MTQwOiBjaGVja2luZyBzZWxpbnV4L3NlbGludXguaCBwcmVz ZW5jZQo+IGNvbmZpZ3VyZTo1MTQwOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25maWd1cmU6NTE0 MDogJD8gPSAwCj4gY29uZmlndXJlOjUxNDA6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjUxNDA6 IGNoZWNraW5nIGZvciBzZWxpbnV4L3NlbGludXguaAo+IGNvbmZpZ3VyZTo1MTQwOiByZXN1bHQ6 IHllcwo+IGNvbmZpZ3VyZTo1MTQ2OiBjaGVja2luZyBmb3IgaXNfc2VsaW51eF9lbmFibGVkIGlu IC1sc2VsaW51eAo+IGNvbmZpZ3VyZTo1MTcxOiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yICAgY29u ZnRlc3QuYyAtbHNlbGludXggICA+JjUKPiBjb25maWd1cmU6NTE3MTogJD8gPSAwCj4gY29uZmln dXJlOjUxODA6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjUxOTk6IGNoZWNraW5nIGZvciBzdHJ1 Y3Qgc2lnYWN0aW9uLnNhX3NpZ2FjdGlvbgo+IGNvbmZpZ3VyZTo1MTk5OiBnY2MgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo1MTk5OiAkPyA9IDAKPiBjb25maWd1cmU6NTE5 OTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTIxNjogY2hlY2tpbmcgZm9yIGxpYmFpby5oCj4g Y29uZmlndXJlOjUyMTY6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjUyMjI6IGNoZWNraW5nIGZv ciBpb19zZXR1cCBpbiAtbGFpbwo+IGNvbmZpZ3VyZTo1MjQ3OiBnY2MgLW8gY29uZnRlc3QgLWcg LU8yICAgY29uZnRlc3QuYyAtbGFpbyAgID4mNQo+IGNvbmZpZ3VyZTo1MjQ3OiAkPyA9IDAKPiBj b25maWd1cmU6NTI1NjogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTI2MTogY2hlY2tpbmcgaW9f c2V0X2V2ZW50ZmQgaXMgZGVmaW5lZCBpbiBhaW8gbGlicmFyeSBvciBhaW8gaGVhZGVyCj4gY29u ZmlndXJlOjUyNzc6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKPiAv dG1wL2Nja3cweVZLLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKPiAvaG9tZS9zdWJyYXRhbW9kYWsv T0ZGSUNFX1dPUktTL0xUUF9QUk9KRUNUX0NPREUvTFRQX1RBUlMvRkVCUlVBUllfMjAxMF9SRUxF QVNFL2x0cC1mdWxsLTIwMTAwMjI4L2NvbmZ0ZXN0LmM6NjM6IHVuZGVmaW5lZCByZWZlcmVuY2Ug dG8gYGlvX3NldF9ldmVudGZkJwo+IGNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz Cj4gY29uZmlndXJlOjUyNzc6ICQ/ID0gMQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogo+IHwgLyogY29uZmRlZnMuaCAqLwo+IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJ T04iCj4gfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3Vy Y2Vmb3JnZS5uZXQiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tB R0UgImx0cCIKPiB8ICNkZWZpbmUgVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZ VEVYVF9QT0lOVEVSIDEKPiB8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFW RV9TWVNfVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUg SEFWRV9NRU1PUllfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lGQUREUlNfSCAxCj4gfCAjZGVmaW5l IEhBVkVfTElCQUlPX0ggMQo+IHwgI2RlZmluZSBIQVZFX01NX0ggMQo+IHwgI2RlZmluZSBIQVZF X1BUSFJFQURfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NZU19BQ0xfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQo+IHwg I2RlZmluZSBIQVZFX1NZU19JTk9USUZZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9I IDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfQ0FQQUJJTElUWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9B VFRSX1hBVFRSX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfRFJPUCAwCj4gfCAj ZGVmaW5lIEhBVkVfREVDTF9DQVBfQlNFVF9SRUFEIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BS X0NBUEJTRVRfUkVBRCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQ09NUEFSRSAxCj4gfCAj ZGVmaW5lIEhBVkVfREVDTF9DQVBfRlJFRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfRlJP TV9URVhUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9HRVRfUFJPQyAxCj4gfCAjZGVmaW5l IEhBVkVfREVDTF9DQVBfU0VUX0ZJTEUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9G TEFHIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9DQVBfVE9fVEVYVCAxCj4gfCAjZGVmaW5lIEhBVkVfT1BFTlNTTF9TSEFfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0gg MQo+IHwgI2RlZmluZSBIQVZFX0FTTV9QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhf UFRSQUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9QVF9SRUdTIDEKPiB8ICNkZWZpbmUg SEFWRV9ERUNMX1BUUkFDRV9HRVRTSUdJTkZPIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFD RV9PX1RSQUNFVkZPUktET05FIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9TRVRPUFRJ T05TIDEKPiB8ICNkZWZpbmUgSEFWRV9TRUxJTlVYX1NFTElOVVhfSCAxCj4gfCAjZGVmaW5lIEhB VkVfTElCU0VMSU5VWF9ERVZFTCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NJR0FDVElPTl9T QV9TSUdBQ1RJT04gMQo+IHwgI2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KPiB8ICNpbmNsdWRlIDxzdGRpby5oPgo+IHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjaW5jbHVkZSA8bGliYWlvLmg+Cj4gfCAKPiB8IGludAo+IHwgbWFpbiAoKQo+ IHwgewo+IHwgaW9fc2V0X2V2ZW50ZmQoTlVMTCwgMCk7IHJldHVybiAwOwo+IHwgCj4gfCAgIDsK PiB8ICAgcmV0dXJuIDA7Cj4gfCB9Cj4gY29uZmlndXJlOjUyODM6IHJlc3VsdDogbm8KPiBjb25m aWd1cmU6NTMwMDogY2hlY2tpbmcgZm9yIG1vZGlmeV9sZHQKPiBjb25maWd1cmU6NTMwMDogZ2Nj IC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQo+IGNvbmZpZ3VyZTo1MzAwOiAk PyA9IDAKPiBjb25maWd1cmU6NTMwMDogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTMxMTogY2hl Y2tpbmcgYXNtL2xkdC5oIHVzYWJpbGl0eQo+IGNvbmZpZ3VyZTo1MzExOiBnY2MgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo1MzExOiAkPyA9IDAKPiBjb25maWd1cmU6NTMx MTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTMxMTogY2hlY2tpbmcgYXNtL2xkdC5oIHByZXNl bmNlCj4gY29uZmlndXJlOjUzMTE6IGdjYyAtRSAgY29uZnRlc3QuYwo+IGNvbmZpZ3VyZTo1MzEx OiAkPyA9IDAKPiBjb25maWd1cmU6NTMxMTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTMxMTog Y2hlY2tpbmcgZm9yIGFzbS9sZHQuaAo+IGNvbmZpZ3VyZTo1MzExOiByZXN1bHQ6IHllcwo+IGNv bmZpZ3VyZTo1MzIyOiBjaGVja2luZyBmb3Igc3RydWN0IHVzZXJfZGVzYwo+IGNvbmZpZ3VyZTo1 MzIyOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo1MzIyOiAkPyA9 IDAKPiBjb25maWd1cmU6NTMyMjogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25m dGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Cj4gY29uZnRlc3QuYzo2NTogZXJyb3I6IGV4cGVj dGVkIGV4cHJlc3Npb24gYmVmb3JlICcpJyB0b2tlbgo+IGNvbmZpZ3VyZTo1MzIyOiAkPyA9IDEK PiBjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKPiB8IC8qIGNvbmZkZWZzLmggKi8KPiB8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi bHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAibHRwIExUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAibHRwLXJlc3VsdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Igo+IHwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiIgo+IHwgI2RlZmluZSBQQUNLQUdFICJsdHAiCj4gfCAjZGVmaW5lIFZFUlNJ T04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCj4gfCAjZGVmaW5l IFNURENfSEVBREVSUyAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQo+IHwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKPiB8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQo+IHwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCj4gfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQo+IHwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKPiB8ICNkZWZp bmUgSEFWRV9JRkFERFJTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNkZWZp bmUgSEFWRV9NTV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQo+IHwgI2RlZmluZSBI QVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQo+IHwg I2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfSU5PVElGWV9I IDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0NB UEFCSUxJVFlfSCAxCj4gfCAjZGVmaW5lIEhBVkVfQVRUUl9YQVRUUl9IIDEKPiB8ICNkZWZpbmUg SEFWRV9ERUNMX0NBUF9CU0VUX0RST1AgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRf UkVBRCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QUl9DQVBCU0VUX1JFQUQgMAo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfQ0FQX0NPTVBBUkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZSRUUg MQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZST01fVEVYVCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9DQVBfR0VUX1BST0MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GSUxFIDEK PiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfRkxBRyAxCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9DQVBfU0VUX1BST0MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1RPX1RFWFQgMQo+IHwg I2RlZmluZSBIQVZFX09QRU5TU0xfU0hBX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0Vf SCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9BU01fUFRS QUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFW RV9TVFJVQ1RfUFRfUkVHUyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfR0VUU0lHSU5G TyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfT19UUkFDRVZGT1JLRE9ORSAxCj4gfCAj ZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfU0VUT1BUSU9OUyAxCj4gfCAjZGVmaW5lIEhBVkVfU0VM SU5VWF9TRUxJTlVYX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJQlNFTElOVVhfREVWRUwgMQo+IHwg I2RlZmluZSBIQVZFX1NUUlVDVF9TSUdBQ1RJT05fU0FfU0lHQUNUSU9OIDEKPiB8ICNkZWZpbmUg SEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVfTU9ESUZZX0xEVCAxCj4gfCAjZGVmaW5l IEhBVkVfQVNNX0xEVF9IIDEKPiB8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KPiB8ICNpbmNsdWRl IDxhc20vbGR0Lmg+Cj4gfCAKPiB8IAo+IHwgaW50Cj4gfCBtYWluICgpCj4gfCB7Cj4gfCBpZiAo c2l6ZW9mICgoc3RydWN0IHVzZXJfZGVzYykpKQo+IHwgCSAgICByZXR1cm4gMDsKPiB8ICAgOwo+ IHwgICByZXR1cm4gMDsKPiB8IH0KPiBjb25maWd1cmU6NTMyMjogcmVzdWx0OiB5ZXMKPiBjb25m aWd1cmU6NTMzMzogY2hlY2tpbmcgZm9yIHN0cnVjdCBtb2RpZnlfbGR0X2xkdF9zCj4gY29uZmln dXJlOjUzMzM6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29uZnRlc3QuYzogSW4g ZnVuY3Rpb24gJ21haW4nOgo+IGNvbmZ0ZXN0LmM6NjY6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0 aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IG1vZGlmeV9sZHRfbGR0 X3MnIAo+IGNvbmZpZ3VyZTo1MzMzOiAkPyA9IDEKPiBjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKPiB8IC8qIGNvbmZkZWZzLmggKi8KPiB8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsdHAi Cj4gfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibHRwIExUUF9W RVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibHRwLXJlc3VsdHNAbGlzdHMu c291cmNlZm9yZ2UubmV0Igo+IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgo+IHwgI2RlZmluZSBQ QUNLQUdFICJsdHAiCj4gfCAjZGVmaW5lIFZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmlu ZSBZWVRFWFRfUE9JTlRFUiAxCj4gfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCj4gfCAjZGVmaW5l IEhBVkVfU1lTX1RZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCj4gfCAjZGVm aW5lIEhBVkVfTUVNT1JZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCj4gfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9JRkFERFJTX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NTV9IIDEKPiB8ICNkZWZpbmUg SEFWRV9QVEhSRUFEX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEK PiB8ICNkZWZpbmUgSEFWRV9TWVNfSU5PVElGWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUFJD VExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0NBUEFCSUxJVFlfSCAxCj4gfCAjZGVmaW5lIEhB VkVfQVRUUl9YQVRUUl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9CU0VUX0RST1AgMAo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfUkVBRCAwCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9QUl9DQVBCU0VUX1JFQUQgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0NPTVBBUkUgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZSRUUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQ X0ZST01fVEVYVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfR0VUX1BST0MgMQo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GSUxFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9T RVRfRkxBRyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX1BST0MgMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfQ0FQX1RPX1RFWFQgMQo+IHwgI2RlZmluZSBIQVZFX09QRU5TU0xfU0hBX0gg MQo+IHwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1JF R19IIDEKPiB8ICNkZWZpbmUgSEFWRV9BU01fUFRSQUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJ TlVYX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfUFRfUkVHUyAxCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9QVFJBQ0VfR0VUU0lHSU5GTyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9Q VFJBQ0VfT19UUkFDRVZGT1JLRE9ORSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfU0VU T1BUSU9OUyAxCj4gfCAjZGVmaW5lIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0ggMQo+IHwgI2RlZmlu ZSBIQVZFX0xJQlNFTElOVVhfREVWRUwgMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9TSUdBQ1RJ T05fU0FfU0lHQUNUSU9OIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5l IEhBVkVfTU9ESUZZX0xEVCAxCj4gfCAjZGVmaW5lIEhBVkVfQVNNX0xEVF9IIDEKPiB8ICNkZWZp bmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKPiB8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KPiB8 ICNpbmNsdWRlIDxhc20vbGR0Lmg+Cj4gfCAKPiB8IAo+IHwgaW50Cj4gfCBtYWluICgpCj4gfCB7 Cj4gfCBpZiAoc2l6ZW9mIChzdHJ1Y3QgbW9kaWZ5X2xkdF9sZHRfcykpCj4gfCAJIHJldHVybiAw Owo+IHwgICA7Cj4gfCAgIHJldHVybiAwOwo+IHwgfQo+IGNvbmZpZ3VyZTo1MzMzOiByZXN1bHQ6 IG5vCj4gY29uZmlndXJlOjUzNDk6IGNoZWNraW5nIGZvciBsaW51eC9tZW1wb2xpY3kuaAo+IGNv bmZpZ3VyZTo1MzQ5OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1MzU5OiBjaGVja2luZyBmb3Ig bnVtYV9hbGxvY19vbm5vZGUKPiBjb25maWd1cmU6NTM1OTogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1P MiAgIGNvbmZ0ZXN0LmMgID4mNQo+IC90bXAvY2NLckhTNGsubzogSW4gZnVuY3Rpb24gYG1haW4n Ogo+IC9ob21lL3N1YnJhdGFtb2Rhay9PRkZJQ0VfV09SS1MvTFRQX1BST0pFQ1RfQ09ERS9MVFBf VEFSUy9GRUJSVUFSWV8yMDEwX1JFTEVBU0UvbHRwLWZ1bGwtMjAxMDAyMjgvY29uZnRlc3QuYzo5 NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgbnVtYV9hbGxvY19vbm5vZGUnCj4gY29sbGVjdDI6 IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKPiBjb25maWd1cmU6NTM1OTogJD8gPSAxCj4gY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cj4gfCAvKiBjb25mZGVmcy5oICovCj4gfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImx0cCIK PiB8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgImx0cCBMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImx0cC1yZXN1bHRzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCIKPiB8ICNkZWZpbmUgUEFDS0FH RV9VUkwgIiIKPiB8ICNkZWZpbmUgUEFDS0FHRSAibHRwIgo+IHwgI2RlZmluZSBWRVJTSU9OICJM VFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQo+IHwgI2RlZmluZSBTVERD X0hFQURFUlMgMQo+IHwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCj4gfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQo+IHwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKPiB8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQo+IHwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCj4gfCAjZGVmaW5lIEhB VkVfSUZBRERSU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhB VkVfTU1fSCAxCj4gfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9M SU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKPiB8ICNkZWZp bmUgSEFWRV9TWVNfRVBPTExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0lOT1RJRllfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19DQVBBQklM SVRZX0ggMQo+IHwgI2RlZmluZSBIQVZFX0FUVFJfWEFUVFJfSCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9DQVBfQlNFVF9EUk9QIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9CU0VUX1JFQUQg MAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFJfQ0FQQlNFVF9SRUFEIDAKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX0NBUF9DT01QQVJFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9GUkVFIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9GUk9NX1RFWFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf Q0FQX0dFVF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfRklMRSAxCj4gfCAj ZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX0ZMQUcgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQ X1NFVF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9UT19URVhUIDEKPiB8ICNkZWZp bmUgSEFWRV9PUEVOU1NMX1NIQV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCj4gfCAjZGVmaW5lIEhBVkVfQVNNX1BUUkFDRV9I IDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RS VUNUX1BUX1JFR1MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX0dFVFNJR0lORk8gMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX09fVFJBQ0VWRk9SS0RPTkUgMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfUFRSQUNFX1NFVE9QVElPTlMgMQo+IHwgI2RlZmluZSBIQVZFX1NFTElOVVhf U0VMSU5VWF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJTRUxJTlVYX0RFVkVMIDEKPiB8ICNkZWZp bmUgSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTiAxCj4gfCAjZGVmaW5lIEhBVkVf TElCQUlPX0ggMQo+IHwgI2RlZmluZSBIQVZFX01PRElGWV9MRFQgMQo+IHwgI2RlZmluZSBIQVZF X0FTTV9MRFRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCj4gfCAjZGVm aW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgLyogZW5kIGNvbmZkZWZzLmguICAqLwo+ IHwgLyogRGVmaW5lIG51bWFfYWxsb2Nfb25ub2RlIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBp biBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgbnVtYV9hbGxvY19vbm5vZGUuCj4gfCAgICBGb3Ig ZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8K PiB8ICNkZWZpbmUgbnVtYV9hbGxvY19vbm5vZGUgaW5ub2N1b3VzX251bWFfYWxsb2Nfb25ub2Rl Cj4gfCAKPiB8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhv cGVmdWxseSBmZXcgcHJvdG90eXBlcywKPiB8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBj aGFyIG51bWFfYWxsb2Nfb25ub2RlICgpOyBiZWxvdy4KPiB8ICAgICBQcmVmZXIgPGxpbWl0cy5o PiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCj4gfCAgICAgPGxp bWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KPiB8IAo+ IHwgI2lmZGVmIF9fU1REQ19fCj4gfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgo+IHwgI2Vsc2UKPiB8 ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+Cj4gfCAjZW5kaWYKPiB8IAo+IHwgI3VuZGVmIG51bWFfYWxs b2Nfb25ub2RlCj4gfCAKPiB8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgo+IHwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCj4gfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwo+IHwgI2lmZGVmIF9fY3Bs dXNwbHVzCj4gfCBleHRlcm4gIkMiCj4gfCAjZW5kaWYKPiB8IGNoYXIgbnVtYV9hbGxvY19vbm5v ZGUgKCk7Cj4gfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9u cyB3aGljaCBpdCBpbXBsZW1lbnRzCj4gfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMu ICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKPiB8ICAgICBzb21ldGhpbmcgc3Rh cnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KPiB8ICNp ZiBkZWZpbmVkIF9fc3R1Yl9udW1hX2FsbG9jX29ubm9kZSB8fCBkZWZpbmVkIF9fc3R1Yl9fX251 bWFfYWxsb2Nfb25ub2RlCj4gfCBjaG9rZSBtZQo+IHwgI2VuZGlmCj4gfCAKPiB8IGludAo+IHwg bWFpbiAoKQo+IHwgewo+IHwgcmV0dXJuIG51bWFfYWxsb2Nfb25ub2RlICgpOwo+IHwgICA7Cj4g fCAgIHJldHVybiAwOwo+IHwgfQo+IGNvbmZpZ3VyZTo1MzU5OiByZXN1bHQ6IG5vCj4gY29uZmln dXJlOjUzNjk6IGNoZWNraW5nIGZvciBudW1hX2F2YWlsYWJsZSBpbiAtbG51bWEKPiBjb25maWd1 cmU6NTM5NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgLWxudW1hICAgPiY1 Cj4gY29uZmlndXJlOjUzOTQ6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo1NDAzOiByZXN1bHQ6IHllcwo+ IGNvbmZpZ3VyZTo1NDEyOiBjaGVja2luZyB3aGV0aGVyIE1QT0xfQklORCBpcyBkZWNsYXJlZAo+ IGNvbmZpZ3VyZTo1NDEyOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3Vy ZTo1NDEyOiAkPyA9IDAKPiBjb25maWd1cmU6NTQxMjogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6 NTQyNjogY2hlY2tpbmcgd2hldGhlciBNUE9MX0RFRkFVTFQgaXMgZGVjbGFyZWQKPiBjb25maWd1 cmU6NTQyNjogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NTQyNjog JD8gPSAwCj4gY29uZmlndXJlOjU0MjY6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjU0NDA6IGNo ZWNraW5nIHdoZXRoZXIgTVBPTF9GX0FERFIgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NTQ0MDog Z2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NTQ0MDogJD8gPSAwCj4g Y29uZmlndXJlOjU0NDA6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjU0NTQ6IGNoZWNraW5nIHdo ZXRoZXIgTVBPTF9GX01FTVNfQUxMT1dFRCBpcyBkZWNsYXJlZAo+IGNvbmZpZ3VyZTo1NDU0OiBn Y2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo1NDU0OiAkPyA9IDAKPiBj b25maWd1cmU6NTQ1NDogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTQ2ODogY2hlY2tpbmcgd2hl dGhlciBNUE9MX0ZfTk9ERSBpcyBkZWNsYXJlZAo+IGNvbmZpZ3VyZTo1NDY4OiBnY2MgLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo1NDY4OiAkPyA9IDAKPiBjb25maWd1cmU6 NTQ2ODogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTQ4MjogY2hlY2tpbmcgd2hldGhlciBNUE9M X0lOVEVSTEVBVkUgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NTQ4MjogZ2NjIC1jIC1nIC1PMiAg Y29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NTQ4MjogJD8gPSAwCj4gY29uZmlndXJlOjU0ODI6 IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjU0OTY6IGNoZWNraW5nIHdoZXRoZXIgTVBPTF9QUkVG RVJSRUQgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NTQ5NjogZ2NjIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKPiBjb25maWd1cmU6NTQ5NjogJD8gPSAwCj4gY29uZmlndXJlOjU0OTY6IHJlc3Vs dDogeWVzCj4gY29uZmlndXJlOjUzNDk6IGNoZWNraW5nIG51bWEuaCB1c2FiaWxpdHkKPiBjb25m aWd1cmU6NTM0OTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25maWd1cmU6NTM0 OTogJD8gPSAwCj4gY29uZmlndXJlOjUzNDk6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjUzNDk6 IGNoZWNraW5nIG51bWEuaCBwcmVzZW5jZQo+IGNvbmZpZ3VyZTo1MzQ5OiBnY2MgLUUgIGNvbmZ0 ZXN0LmMKPiBjb25maWd1cmU6NTM0OTogJD8gPSAwCj4gY29uZmlndXJlOjUzNDk6IHJlc3VsdDog eWVzCj4gY29uZmlndXJlOjUzNDk6IGNoZWNraW5nIGZvciBudW1hLmgKPiBjb25maWd1cmU6NTM0 OTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTM1OTogY2hlY2tpbmcgZm9yIG51bWFfYWxsb2Nf b25ub2RlCj4gY29uZmlndXJlOjUzNTk6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NTM2OTogY2hl Y2tpbmcgZm9yIG51bWFfYXZhaWxhYmxlIGluIC1sbnVtYQo+IGNvbmZpZ3VyZTo1NDAzOiByZXN1 bHQ6IHllcwo+IGNvbmZpZ3VyZTo1NDEyOiBjaGVja2luZyB3aGV0aGVyIE1QT0xfQklORCBpcyBk ZWNsYXJlZAo+IGNvbmZpZ3VyZTo1NDEyOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1NDI2OiBj aGVja2luZyB3aGV0aGVyIE1QT0xfREVGQVVMVCBpcyBkZWNsYXJlZAo+IGNvbmZpZ3VyZTo1NDI2 OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1NDQwOiBjaGVja2luZyB3aGV0aGVyIE1QT0xfRl9B RERSIGlzIGRlY2xhcmVkCj4gY29uZmlndXJlOjU0NDA6IHJlc3VsdDogeWVzCj4gY29uZmlndXJl OjU0NTQ6IGNoZWNraW5nIHdoZXRoZXIgTVBPTF9GX01FTVNfQUxMT1dFRCBpcyBkZWNsYXJlZAo+ IGNvbmZpZ3VyZTo1NDU0OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1NDY4OiBjaGVja2luZyB3 aGV0aGVyIE1QT0xfRl9OT0RFIGlzIGRlY2xhcmVkCj4gY29uZmlndXJlOjU0Njg6IHJlc3VsdDog eWVzCj4gY29uZmlndXJlOjU0ODI6IGNoZWNraW5nIHdoZXRoZXIgTVBPTF9JTlRFUkxFQVZFIGlz IGRlY2xhcmVkCj4gY29uZmlndXJlOjU0ODI6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjU0OTY6 IGNoZWNraW5nIHdoZXRoZXIgTVBPTF9QUkVGRVJSRUQgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6 NTQ5NjogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTM0OTogY2hlY2tpbmcgbnVtYWlmLmggdXNh YmlsaXR5Cj4gY29uZmlndXJlOjUzNDk6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4g Y29uZmlndXJlOjUzNDk6ICQ/ID0gMAo+IGNvbmZpZ3VyZTo1MzQ5OiByZXN1bHQ6IHllcwo+IGNv bmZpZ3VyZTo1MzQ5OiBjaGVja2luZyBudW1haWYuaCBwcmVzZW5jZQo+IGNvbmZpZ3VyZTo1MzQ5 OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKPiBjb25maWd1cmU6NTM0OTogJD8gPSAwCj4gY29uZmlndXJl OjUzNDk6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjUzNDk6IGNoZWNraW5nIGZvciBudW1haWYu aAo+IGNvbmZpZ3VyZTo1MzQ5OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1MzU5OiBjaGVja2lu ZyBmb3IgbnVtYV9hbGxvY19vbm5vZGUKPiBjb25maWd1cmU6NTM1OTogcmVzdWx0OiBubwo+IGNv bmZpZ3VyZTo1MzY5OiBjaGVja2luZyBmb3IgbnVtYV9hdmFpbGFibGUgaW4gLWxudW1hCj4gY29u ZmlndXJlOjU0MDM6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjU0MTI6IGNoZWNraW5nIHdoZXRo ZXIgTVBPTF9CSU5EIGlzIGRlY2xhcmVkCj4gY29uZmlndXJlOjU0MTI6IHJlc3VsdDogeWVzCj4g Y29uZmlndXJlOjU0MjY6IGNoZWNraW5nIHdoZXRoZXIgTVBPTF9ERUZBVUxUIGlzIGRlY2xhcmVk Cj4gY29uZmlndXJlOjU0MjY6IHJlc3VsdDogeWVzCj4gY29uZmlndXJlOjU0NDA6IGNoZWNraW5n IHdoZXRoZXIgTVBPTF9GX0FERFIgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NTQ0MDogcmVzdWx0 OiB5ZXMKPiBjb25maWd1cmU6NTQ1NDogY2hlY2tpbmcgd2hldGhlciBNUE9MX0ZfTUVNU19BTExP V0VEIGlzIGRlY2xhcmVkCj4gY29uZmlndXJlOjU0NTQ6IHJlc3VsdDogeWVzCj4gY29uZmlndXJl OjU0Njg6IGNoZWNraW5nIHdoZXRoZXIgTVBPTF9GX05PREUgaXMgZGVjbGFyZWQKPiBjb25maWd1 cmU6NTQ2ODogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTQ4MjogY2hlY2tpbmcgd2hldGhlciBN UE9MX0lOVEVSTEVBVkUgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NTQ4MjogcmVzdWx0OiB5ZXMK PiBjb25maWd1cmU6NTQ5NjogY2hlY2tpbmcgd2hldGhlciBNUE9MX1BSRUZFUlJFRCBpcyBkZWNs YXJlZAo+IGNvbmZpZ3VyZTo1NDk2OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1NTQzOiBnY2Mg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZpZ3VyZTo1NTQzOiAkPyA9IDAKPiBjb25m aWd1cmU6NTU4NzogY2hlY2tpbmcgZm9yIHNpZ25hbGZkCj4gY29uZmlndXJlOjU1ODc6IGdjYyAt byBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKPiAvdG1wL2NjaWFPcFhxLm86IElu IGZ1bmN0aW9uIGBtYWluJzoKPiAvaG9tZS9zdWJyYXRhbW9kYWsvT0ZGSUNFX1dPUktTL0xUUF9Q Uk9KRUNUX0NPREUvTFRQX1RBUlMvRkVCUlVBUllfMjAxMF9SRUxFQVNFL2x0cC1mdWxsLTIwMTAw MjI4L2NvbmZ0ZXN0LmM6MTIyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBzaWduYWxmZCcKPiBj b2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwo+IGNvbmZpZ3VyZTo1NTg3OiAkPyA9 IDEKPiBjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKPiB8IC8qIGNvbmZkZWZzLmggKi8K PiB8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAibHRwIExUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAibHRwLXJlc3VsdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Igo+IHwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiIgo+IHwgI2RlZmluZSBQQUNLQUdFICJsdHAiCj4gfCAjZGVmaW5lIFZF UlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCj4gfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCj4gfCAj ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQo+IHwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9JRkFERFJTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNk ZWZpbmUgSEFWRV9NTV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQo+IHwgI2RlZmlu ZSBIQVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfSU5PVElG WV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lT X0NBUEFCSUxJVFlfSCAxCj4gfCAjZGVmaW5lIEhBVkVfQVRUUl9YQVRUUl9IIDEKPiB8ICNkZWZp bmUgSEFWRV9ERUNMX0NBUF9CU0VUX0RST1AgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JT RVRfUkVBRCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QUl9DQVBCU0VUX1JFQUQgMAo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfQ0FQX0NPTVBBUkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZS RUUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZST01fVEVYVCAxCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9DQVBfR0VUX1BST0MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GSUxF IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfRkxBRyAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9DQVBfU0VUX1BST0MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1RPX1RFWFQgMQo+ IHwgI2RlZmluZSBIQVZFX09QRU5TU0xfU0hBX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QVFJB Q0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9BU01f UFRSQUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUg SEFWRV9TVFJVQ1RfUFRfUkVHUyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfR0VUU0lH SU5GTyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfT19UUkFDRVZGT1JLRE9ORSAxCj4g fCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfU0VUT1BUSU9OUyAxCj4gfCAjZGVmaW5lIEhBVkVf U0VMSU5VWF9TRUxJTlVYX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJQlNFTElOVVhfREVWRUwgMQo+ IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9TSUdBQ1RJT05fU0FfU0lHQUNUSU9OIDEKPiB8ICNkZWZp bmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVfTU9ESUZZX0xEVCAxCj4gfCAjZGVm aW5lIEhBVkVfQVNNX0xEVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEK PiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9NUE9MX0JJTkQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8ICNk ZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9BRERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xf Rl9NRU1TX0FMTE9XRUQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X01QT0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gfCAj ZGVmaW5lIEhBVkVfTlVNQV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAxCj4g fCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf TVBPTF9GX0FERFIgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dFRCAx Cj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJSRUQg MQo+IHwgI2RlZmluZSBIQVZFX01QT0xfQ09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFWRV9OVU1B SUZfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmluZSBIQVZF X0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9BRERSIDEK PiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2RlZmluZSBI QVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRFUkxF QVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZpbmUg SEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gfCAjZGVmaW5lIEhBU19RVU9UQVYyIDEKPiB8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KPiB8IC8qIERlZmluZSBzaWduYWxmZCB0byBhbiBpbm5vY3VvdXMg dmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHNpZ25hbGZkLgo+IHwgICAgRm9y IGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICov Cj4gfCAjZGVmaW5lIHNpZ25hbGZkIGlubm9jdW91c19zaWduYWxmZAo+IHwgCj4gfCAvKiBTeXN0 ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3Rv dHlwZXMsCj4gfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzaWduYWxmZCAoKTsg YmVsb3cuCj4gfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENf XyBpcyBkZWZpbmVkLCBzaW5jZQo+IHwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJl ZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCj4gfCAKPiB8ICNpZmRlZiBfX1NURENfXwo+IHwgIyBp bmNsdWRlIDxsaW1pdHMuaD4KPiB8ICNlbHNlCj4gfCAjIGluY2x1ZGUgPGFzc2VydC5oPgo+IHwg I2VuZGlmCj4gfCAKPiB8ICN1bmRlZiBzaWduYWxmZAo+IHwgCj4gfCAvKiBPdmVycmlkZSBhbnkg R0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KPiB8ICAgIFVzZSBjaGFy IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwo+IHwgICAg YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KPiB8ICNpZmRlZiBfX2NwbHVzcGx1cwo+IHwgZXh0ZXJuICJDIgo+IHwgI2VuZGlmCj4g fCBjaGFyIHNpZ25hbGZkICgpOwo+IHwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlz IGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwo+IHwgICAgIHRvIGFsd2F5cyBmYWls IHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCj4gfCAgICAg c29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlh cy4gICovCj4gfCAjaWYgZGVmaW5lZCBfX3N0dWJfc2lnbmFsZmQgfHwgZGVmaW5lZCBfX3N0dWJf X19zaWduYWxmZAo+IHwgY2hva2UgbWUKPiB8ICNlbmRpZgo+IHwgCj4gfCBpbnQKPiB8IG1haW4g KCkKPiB8IHsKPiB8IHJldHVybiBzaWduYWxmZCAoKTsKPiB8ICAgOwo+IHwgICByZXR1cm4gMDsK PiB8IH0KPiBjb25maWd1cmU6NTU4NzogcmVzdWx0OiBubwo+IGNvbmZpZ3VyZTo1NTk5OiBjaGVj a2luZyBzeXMvc2lnbmFsZmQuaCB1c2FiaWxpdHkKPiBjb25maWd1cmU6NTU5OTogZ2NjIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25mdGVzdC5jOjEyMToyNjogZXJyb3I6IHN5cy9zaWdu YWxmZC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cj4gY29uZmlndXJlOjU1OTk6ICQ/ID0g MQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyogY29uZmRlZnMuaCAqLwo+ IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCj4gfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIKPiB8ICNkZWZpbmUgVkVS U0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKPiB8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCj4gfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCj4gfCAjZGVm aW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKPiB8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX0lGQUREUlNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCQUlPX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX01NX0ggMQo+IHwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCj4gfCAjZGVmaW5l IEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19JTk9USUZZ X0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNf Q0FQQUJJTElUWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9BVFRSX1hBVFRSX0ggMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfRFJPUCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQlNF VF9SRUFEIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BSX0NBUEJTRVRfUkVBRCAwCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9DQVBfQ09NUEFSRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfRlJF RSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfRlJPTV9URVhUIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX0NBUF9HRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX0ZJTEUg MQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GTEFHIDEKPiB8ICNkZWZpbmUgSEFWRV9E RUNMX0NBUF9TRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfVE9fVEVYVCAxCj4g fCAjZGVmaW5lIEhBVkVfT1BFTlNTTF9TSEFfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFD RV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQo+IHwgI2RlZmluZSBIQVZFX0FTTV9Q VFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQo+IHwgI2RlZmluZSBI QVZFX1NUUlVDVF9QVF9SRUdTIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9HRVRTSUdJ TkZPIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9PX1RSQUNFVkZPUktET05FIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9TRVRPUFRJT05TIDEKPiB8ICNkZWZpbmUgSEFWRV9T RUxJTlVYX1NFTElOVVhfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCU0VMSU5VWF9ERVZFTCAxCj4g fCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NJR0FDVElPTl9TQV9TSUdBQ1RJT04gMQo+IHwgI2RlZmlu ZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NT0RJRllfTERUIDEKPiB8ICNkZWZp bmUgSEFWRV9BU01fTERUX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9VU0VSX0RFU0MgMQo+ IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X01QT0xfQklORCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0RFRkFVTFQgMQo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9G X01FTVNfQUxMT1dFRCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9ERSAxCj4gfCAj ZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf TVBPTF9QUkVGRVJSRUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xfQ09OU1RBTlRTIDEKPiB8ICNk ZWZpbmUgSEFWRV9OVU1BX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5EIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfREVGQVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9N UE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTUVNU19BTExPV0VEIDEK PiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X01QT0xfSU5URVJMRUFWRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BSRUZFUlJFRCAx Cj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9DT05TVEFOVFMgMQo+IHwgI2RlZmluZSBIQVZFX05VTUFJ Rl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dFRCAxCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9NUE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVB VkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJSRUQgMQo+IHwgI2RlZmluZSBI QVZFX01QT0xfQ09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFTX1FVT1RBVjIgMQo+IHwgLyogZW5k IGNvbmZkZWZzLmguICAqLwo+IHwgI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gfCAjaWZkZWYgSEFWRV9T WVNfVFlQRVNfSAo+IHwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KPiB8ICNlbmRpZgo+IHwgI2lm ZGVmIEhBVkVfU1lTX1NUQVRfSAo+IHwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgo+IHwgI2VuZGlm Cj4gfCAjaWZkZWYgU1REQ19IRUFERVJTCj4gfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgo+IHwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KPiB8ICNlbHNlCj4gfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKPiB8 ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgo+IHwgIyBlbmRpZgo+IHwgI2VuZGlmCj4gfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAo+IHwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBI QVZFX01FTU9SWV9ICj4gfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KPiB8ICMgZW5kaWYKPiB8ICMg aW5jbHVkZSA8c3RyaW5nLmg+Cj4gfCAjZW5kaWYKPiB8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAo+ IHwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cj4gfCAjZW5kaWYKPiB8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKPiB8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KPiB8ICNlbmRpZgo+IHwgI2lmZGVmIEhB VkVfU1RESU5UX0gKPiB8ICMgaW5jbHVkZSA8c3RkaW50Lmg+Cj4gfCAjZW5kaWYKPiB8ICNpZmRl ZiBIQVZFX1VOSVNURF9ICj4gfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgo+IHwgI2VuZGlmCj4gfCAj aW5jbHVkZSA8c3lzL3NpZ25hbGZkLmg+Cj4gY29uZmlndXJlOjU1OTk6IHJlc3VsdDogbm8KPiBj b25maWd1cmU6NTU5OTogY2hlY2tpbmcgc3lzL3NpZ25hbGZkLmggcHJlc2VuY2UKPiBjb25maWd1 cmU6NTU5OTogZ2NjIC1FICBjb25mdGVzdC5jCj4gY29uZnRlc3QuYzo4ODoyNjogZXJyb3I6IHN5 cy9zaWduYWxmZC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cj4gY29uZmlndXJlOjU1OTk6 ICQ/ID0gMQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyogY29uZmRlZnMu aCAqLwo+IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4g fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCj4gfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIKPiB8ICNkZWZp bmUgVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKPiB8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK PiB8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQo+ IHwgI2RlZmluZSBIQVZFX0lGQUREUlNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCQUlPX0ggMQo+ IHwgI2RlZmluZSBIQVZFX01NX0ggMQo+IHwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCj4gfCAj ZGVmaW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19BQ0xf SCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19J Tk9USUZZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKPiB8ICNkZWZpbmUgSEFW RV9TWVNfQ0FQQUJJTElUWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9BVFRSX1hBVFRSX0ggMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfRFJPUCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9D QVBfQlNFVF9SRUFEIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BSX0NBUEJTRVRfUkVBRCAwCj4g fCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQ09NUEFSRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9D QVBfRlJFRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfRlJPTV9URVhUIDEKPiB8ICNkZWZp bmUgSEFWRV9ERUNMX0NBUF9HRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VU X0ZJTEUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GTEFHIDEKPiB8ICNkZWZpbmUg SEFWRV9ERUNMX0NBUF9TRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfVE9fVEVY VCAxCj4gfCAjZGVmaW5lIEhBVkVfT1BFTlNTTF9TSEFfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lT X1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQo+IHwgI2RlZmluZSBIQVZF X0FTTV9QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NUUlVDVF9QVF9SRUdTIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9H RVRTSUdJTkZPIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9PX1RSQUNFVkZPUktET05F IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9TRVRPUFRJT05TIDEKPiB8ICNkZWZpbmUg SEFWRV9TRUxJTlVYX1NFTElOVVhfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCU0VMSU5VWF9ERVZF TCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NJR0FDVElPTl9TQV9TSUdBQ1RJT04gMQo+IHwg I2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NT0RJRllfTERUIDEKPiB8 ICNkZWZpbmUgSEFWRV9BU01fTERUX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9VU0VSX0RF U0MgMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX01QT0xfQklORCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0RFRkFVTFQgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf TVBPTF9GX01FTVNfQUxMT1dFRCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9ERSAx Cj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwgI2RlZmluZSBIQVZF X0RFQ0xfTVBPTF9QUkVGRVJSRUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xfQ09OU1RBTlRTIDEK PiB8ICNkZWZpbmUgSEFWRV9OVU1BX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5E IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfREVGQVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTUVNU19BTExP V0VEIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BSRUZF UlJFRCAxCj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9DT05TVEFOVFMgMQo+IHwgI2RlZmluZSBIQVZF X05VTUFJRl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAxCj4gfCAjZGVmaW5l IEhBVkVfREVDTF9NUE9MX0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FE RFIgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dFRCAxCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lO VEVSTEVBVkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJSRUQgMQo+IHwgI2Rl ZmluZSBIQVZFX01QT0xfQ09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFTX1FVT1RBVjIgMQo+IHwg LyogZW5kIGNvbmZkZWZzLmguICAqLwo+IHwgI2luY2x1ZGUgPHN5cy9zaWduYWxmZC5oPgo+IGNv bmZpZ3VyZTo1NTk5OiByZXN1bHQ6IG5vCj4gY29uZmlndXJlOjU1OTk6IGNoZWNraW5nIGZvciBz eXMvc2lnbmFsZmQuaAo+IGNvbmZpZ3VyZTo1NTk5OiByZXN1bHQ6IG5vCj4gY29uZmlndXJlOjU1 OTk6IGNoZWNraW5nIGxpbnV4L3R5cGVzLmggdXNhYmlsaXR5Cj4gY29uZmlndXJlOjU1OTk6IGdj YyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29uZmlndXJlOjU1OTk6ICQ/ID0gMAo+IGNv bmZpZ3VyZTo1NTk5OiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1NTk5OiBjaGVja2luZyBsaW51 eC90eXBlcy5oIHByZXNlbmNlCj4gY29uZmlndXJlOjU1OTk6IGdjYyAtRSAgY29uZnRlc3QuYwo+ IGNvbmZpZ3VyZTo1NTk5OiAkPyA9IDAKPiBjb25maWd1cmU6NTU5OTogcmVzdWx0OiB5ZXMKPiBj b25maWd1cmU6NTU5OTogY2hlY2tpbmcgZm9yIGxpbnV4L3R5cGVzLmgKPiBjb25maWd1cmU6NTU5 OTogcmVzdWx0OiB5ZXMKPiBjb25maWd1cmU6NTYxMzogY2hlY2tpbmcgZm9yIGxpbnV4L3NpZ25h bGZkLmgKPiBjb25maWd1cmU6NTYxMzogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBj b25mdGVzdC5jOjk0OjI4OiBlcnJvcjogbGludXgvc2lnbmFsZmQuaDogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQo+IGNvbmZpZ3VyZTo1NjEzOiAkPyA9IDEKPiBjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKPiB8IC8qIGNvbmZkZWZzLmggKi8KPiB8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibHRw IExUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibHRwLXJlc3VsdHNA bGlzdHMuc291cmNlZm9yZ2UubmV0Igo+IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgo+IHwgI2Rl ZmluZSBQQUNLQUdFICJsdHAiCj4gfCAjZGVmaW5lIFZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwg I2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCj4gfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCj4gfCAj ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCj4g fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCj4g fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9JRkFERFJTX0ggMQo+ IHwgI2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NTV9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9I IDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19FUE9M TF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfSU5PVElGWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9T WVNfUFJDVExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0NBUEFCSUxJVFlfSCAxCj4gfCAjZGVm aW5lIEhBVkVfQVRUUl9YQVRUUl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9CU0VUX0RS T1AgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfUkVBRCAwCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9QUl9DQVBCU0VUX1JFQUQgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0NPTVBB UkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZSRUUgMQo+IHwgI2RlZmluZSBIQVZFX0RF Q0xfQ0FQX0ZST01fVEVYVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfR0VUX1BST0MgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GSUxFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X0NBUF9TRVRfRkxBRyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX1BST0MgMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1RPX1RFWFQgMQo+IHwgI2RlZmluZSBIQVZFX09QRU5TU0xf U0hBX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVf U1lTX1JFR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9BU01fUFRSQUNFX0ggMQo+IHwgI2RlZmluZSBI QVZFX0xJTlVYX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfUFRfUkVHUyAxCj4g fCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfR0VUU0lHSU5GTyAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9QVFJBQ0VfT19UUkFDRVZGT1JLRE9ORSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJB Q0VfU0VUT1BUSU9OUyAxCj4gfCAjZGVmaW5lIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0ggMQo+IHwg I2RlZmluZSBIQVZFX0xJQlNFTElOVVhfREVWRUwgMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9T SUdBQ1RJT05fU0FfU0lHQUNUSU9OIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAj ZGVmaW5lIEhBVkVfTU9ESUZZX0xEVCAxCj4gfCAjZGVmaW5lIEhBVkVfQVNNX0xEVF9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9N RU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9B RERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9J TlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNk ZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gfCAjZGVmaW5lIEhBVkVfTlVNQV9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9M X0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dFRCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9N UE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJSRUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xf Q09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFWRV9OVU1BSUZfSCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9BRERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01Q T0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9E RUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4g fCAjZGVmaW5lIEhBU19RVU9UQVYyIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9UWVBFU19IIDEK PiB8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KPiB8ICNpZmRlZiBIQVZFX0xJTlVYX1RZUEVTX0gK PiB8ICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+IHwgI2VuZGlmCj4gfCAKPiB8IAo+IHwgI2lu Y2x1ZGUgPGxpbnV4L3NpZ25hbGZkLmg+Cj4gY29uZmlndXJlOjU2MTM6IHJlc3VsdDogbm8KPiBj b25maWd1cmU6NTYxMzogY2hlY2tpbmcgZm9yIHNpZ25hbGZkLmgKPiBjb25maWd1cmU6NTYxMzog Z2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25mdGVzdC5jOjk0OjIyOiBlcnJvcjog c2lnbmFsZmQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQo+IGNvbmZpZ3VyZTo1NjEzOiAk PyA9IDEKPiBjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKPiB8IC8qIGNvbmZkZWZzLmgg Ki8KPiB8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAibHRwIExUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAibHRwLXJlc3VsdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Igo+IHwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiIgo+IHwgI2RlZmluZSBQQUNLQUdFICJsdHAiCj4gfCAjZGVmaW5l IFZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCj4gfCAj ZGVmaW5lIFNURENfSEVBREVSUyAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQo+IHwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQo+IHwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCj4g fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQo+IHwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9JRkFERFJTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8 ICNkZWZpbmUgSEFWRV9NTV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0gg MQo+IHwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfSU5P VElGWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCj4gfCAjZGVmaW5lIEhBVkVf U1lTX0NBUEFCSUxJVFlfSCAxCj4gfCAjZGVmaW5lIEhBVkVfQVRUUl9YQVRUUl9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9ERUNMX0NBUF9CU0VUX0RST1AgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQ X0JTRVRfUkVBRCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QUl9DQVBCU0VUX1JFQUQgMAo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0NPTVBBUkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQ X0ZSRUUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZST01fVEVYVCAxCj4gfCAjZGVmaW5l IEhBVkVfREVDTF9DQVBfR0VUX1BST0MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9G SUxFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfRkxBRyAxCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9DQVBfU0VUX1BST0MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1RPX1RFWFQg MQo+IHwgI2RlZmluZSBIQVZFX09QRU5TU0xfU0hBX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19Q VFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9B U01fUFRSQUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKPiB8ICNkZWZp bmUgSEFWRV9TVFJVQ1RfUFRfUkVHUyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfR0VU U0lHSU5GTyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfT19UUkFDRVZGT1JLRE9ORSAx Cj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfU0VUT1BUSU9OUyAxCj4gfCAjZGVmaW5lIEhB VkVfU0VMSU5VWF9TRUxJTlVYX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJQlNFTElOVVhfREVWRUwg MQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9TSUdBQ1RJT05fU0FfU0lHQUNUSU9OIDEKPiB8ICNk ZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVfTU9ESUZZX0xEVCAxCj4gfCAj ZGVmaW5lIEhBVkVfQVNNX0xEVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVND IDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9BRERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01Q T0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9E RUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4g fCAjZGVmaW5lIEhBVkVfTlVNQV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAx Cj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RF Q0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dF RCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJS RUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xfQ09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFWRV9O VU1BSUZfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmluZSBI QVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9BRERS IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRF UkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZp bmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gfCAjZGVmaW5lIEhBU19RVU9UQVYyIDEKPiB8ICNk ZWZpbmUgSEFWRV9MSU5VWF9UWVBFU19IIDEKPiB8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KPiB8 ICNpZmRlZiBIQVZFX0xJTlVYX1RZUEVTX0gKPiB8ICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ IHwgI2VuZGlmCj4gfCAKPiB8IAo+IHwgI2luY2x1ZGUgPHNpZ25hbGZkLmg+Cj4gY29uZmlndXJl OjU2MTM6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NTY3NzogY2hlY2tpbmcgZm9yIHVuc2hhcmUK PiBjb25maWd1cmU6NTY3NzogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4m NQo+IGNvbmZpZ3VyZTo1Njc3OiAkPyA9IDAKPiBjb25maWd1cmU6NTY3NzogcmVzdWx0OiB5ZXMK PiBjb25maWd1cmU6NTY5MzogY2hlY2tpbmcgZm9yIGxpbnV4L3Rhc2tzdGF0cy5oCj4gY29uZmln dXJlOjU2OTM6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29uZmlndXJlOjU2OTM6 ICQ/ID0gMAo+IGNvbmZpZ3VyZTo1NjkzOiByZXN1bHQ6IHllcwo+IGNvbmZpZ3VyZTo1NzAyOiBj aGVja2luZyBmb3Igc3RydWN0IHRhc2tzdGF0cy5mcmVlcGFnZXNfY291bnQKPiBjb25maWd1cmU6 NTcwMjogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBJbiBmaWxlIGluY2x1ZGVkIGZy b20gY29uZnRlc3QuYzo5MToKPiAvdXNyL2luY2x1ZGUvbGludXgvdGFza3N0YXRzLmg6Mzc6IGVy cm9yOiBleHBlY3RlZCBzcGVjaWZpZXItcXVhbGlmaWVyLWxpc3QgYmVmb3JlICdfX3UxNicKPiBj b25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Cj4gY29uZnRlc3QuYzo5ODogZXJyb3I6ICdz dHJ1Y3QgdGFza3N0YXRzJyBoYXMgbm8gbWVtYmVyIG5hbWVkICdmcmVlcGFnZXNfY291bnQnCj4g Y29uZmlndXJlOjU3MDI6ICQ/ID0gMQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+ IHwgLyogY29uZmRlZnMuaCAqLwo+IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi TFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04i Cj4gfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vm b3JnZS5uZXQiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0Ug Imx0cCIKPiB8ICNkZWZpbmUgVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZVEVY VF9QT0lOVEVSIDEKPiB8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUgSEFW RV9NRU1PUllfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lGQUREUlNfSCAxCj4gfCAjZGVmaW5lIEhB VkVfTElCQUlPX0ggMQo+IHwgI2RlZmluZSBIQVZFX01NX0ggMQo+IHwgI2RlZmluZSBIQVZFX1BU SFJFQURfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2RlZmlu ZSBIQVZFX1NZU19BQ0xfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NZU19JTk9USUZZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEK PiB8ICNkZWZpbmUgSEFWRV9TWVNfQ0FQQUJJTElUWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9BVFRS X1hBVFRSX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfRFJPUCAwCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9DQVBfQlNFVF9SRUFEIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BSX0NB UEJTRVRfUkVBRCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQ09NUEFSRSAxCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9DQVBfRlJFRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfRlJPTV9U RVhUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9HRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9DQVBfU0VUX0ZJTEUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GTEFH IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9DQVBfVE9fVEVYVCAxCj4gfCAjZGVmaW5lIEhBVkVfT1BFTlNTTF9TSEFfSCAxCj4gfCAj ZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQo+ IHwgI2RlZmluZSBIQVZFX0FTTV9QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRS QUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9QVF9SRUdTIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX1BUUkFDRV9HRVRTSUdJTkZPIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9P X1RSQUNFVkZPUktET05FIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9TRVRPUFRJT05T IDEKPiB8ICNkZWZpbmUgSEFWRV9TRUxJTlVYX1NFTElOVVhfSCAxCj4gfCAjZGVmaW5lIEhBVkVf TElCU0VMSU5VWF9ERVZFTCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NJR0FDVElPTl9TQV9T SUdBQ1RJT04gMQo+IHwgI2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNkZWZpbmUgSEFWRV9N T0RJRllfTERUIDEKPiB8ICNkZWZpbmUgSEFWRV9BU01fTERUX0ggMQo+IHwgI2RlZmluZSBIQVZF X1NUUlVDVF9VU0VSX0RFU0MgMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9IIDEK PiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9N UE9MX0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dFRCAxCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9NUE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJSRUQgMQo+IHwgI2RlZmluZSBIQVZFX01Q T0xfQ09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFWRV9OVU1BX0ggMQo+IHwgI2RlZmluZSBIQVZF X0RFQ0xfTVBPTF9CSU5EIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfREVGQVVMVCAxCj4g fCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9N UE9MX0ZfTUVNU19BTExPV0VEIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9OT0RFIDEK PiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX1BSRUZFUlJFRCAxCj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9DT05TVEFOVFMgMQo+ IHwgI2RlZmluZSBIQVZFX05VTUFJRl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklO RCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZF X0RFQ0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxM T1dFRCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVG RVJSRUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xfQ09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFT X1FVT1RBVjIgMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX1RZUEVTX0ggMQo+IHwgI2RlZmluZSBI QVZFX1VOU0hBUkUgMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX1RBU0tTVEFUU19IIDEKPiB8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KPiB8ICNpbmNsdWRlIDxsaW51eC90YXNrc3RhdHMuaD4KPiB8 IAo+IHwgCj4gfCBpbnQKPiB8IG1haW4gKCkKPiB8IHsKPiB8IHN0YXRpYyBzdHJ1Y3QgdGFza3N0 YXRzIGFjX2FnZ3I7Cj4gfCBpZiAoYWNfYWdnci5mcmVlcGFnZXNfY291bnQpCj4gfCByZXR1cm4g MDsKPiB8ICAgOwo+IHwgICByZXR1cm4gMDsKPiB8IH0KPiBjb25maWd1cmU6NTcwMjogZ2NjIC1j IC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3Qu Yzo5MToKPiAvdXNyL2luY2x1ZGUvbGludXgvdGFza3N0YXRzLmg6Mzc6IGVycm9yOiBleHBlY3Rl ZCBzcGVjaWZpZXItcXVhbGlmaWVyLWxpc3QgYmVmb3JlICdfX3UxNicKPiBjb25mdGVzdC5jOiBJ biBmdW5jdGlvbiAnbWFpbic6Cj4gY29uZnRlc3QuYzo5ODogZXJyb3I6ICdzdHJ1Y3QgdGFza3N0 YXRzJyBoYXMgbm8gbWVtYmVyIG5hbWVkICdmcmVlcGFnZXNfY291bnQnCj4gY29uZmlndXJlOjU3 MDI6ICQ/ID0gMQo+IGNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyogY29uZmRl ZnMuaCAqLwo+IHwgI2RlZmluZSBQQUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZFUlNJT04i Cj4gfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJsdHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCj4g fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIKPiB8ICNk ZWZpbmUgVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEK PiB8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx Cj4gfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx Cj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKPiB8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQo+IHwgI2RlZmluZSBIQVZFX0lGQUREUlNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCQUlPX0gg MQo+IHwgI2RlZmluZSBIQVZFX01NX0ggMQo+IHwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCj4g fCAjZGVmaW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19B Q0xfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZ U19JTk9USUZZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKPiB8ICNkZWZpbmUg SEFWRV9TWVNfQ0FQQUJJTElUWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9BVFRSX1hBVFRSX0ggMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfRFJPUCAwCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9DQVBfQlNFVF9SRUFEIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BSX0NBUEJTRVRfUkVBRCAw Cj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQ09NUEFSRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9DQVBfRlJFRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfRlJPTV9URVhUIDEKPiB8ICNk ZWZpbmUgSEFWRV9ERUNMX0NBUF9HRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBf U0VUX0ZJTEUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GTEFHIDEKPiB8ICNkZWZp bmUgSEFWRV9ERUNMX0NBUF9TRVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfVE9f VEVYVCAxCj4gfCAjZGVmaW5lIEhBVkVfT1BFTlNTTF9TSEFfSCAxCj4gfCAjZGVmaW5lIEhBVkVf U1lTX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQo+IHwgI2RlZmluZSBI QVZFX0FTTV9QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQo+IHwg I2RlZmluZSBIQVZFX1NUUlVDVF9QVF9SRUdTIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFD RV9HRVRTSUdJTkZPIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9PX1RSQUNFVkZPUktE T05FIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9TRVRPUFRJT05TIDEKPiB8ICNkZWZp bmUgSEFWRV9TRUxJTlVYX1NFTElOVVhfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCU0VMSU5VWF9E RVZFTCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NJR0FDVElPTl9TQV9TSUdBQ1RJT04gMQo+ IHwgI2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NT0RJRllfTERUIDEK PiB8ICNkZWZpbmUgSEFWRV9BU01fTERUX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9VU0VS X0RFU0MgMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8ICNkZWZpbmUg SEFWRV9ERUNMX01QT0xfQklORCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0RFRkFVTFQg MQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmluZSBIQVZFX0RF Q0xfTVBPTF9GX01FTVNfQUxMT1dFRCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9E RSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwgI2RlZmluZSBI QVZFX0RFQ0xfTVBPTF9QUkVGRVJSRUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xfQ09OU1RBTlRT IDEKPiB8ICNkZWZpbmUgSEFWRV9OVU1BX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9C SU5EIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfREVGQVVMVCAxCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9NUE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTUVNU19B TExPV0VEIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUg SEFWRV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BS RUZFUlJFRCAxCj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9DT05TVEFOVFMgMQo+IHwgI2RlZmluZSBI QVZFX05VTUFJRl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAxCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9NUE9MX0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9G X0FERFIgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dFRCAxCj4gfCAj ZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9M X0lOVEVSTEVBVkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJSRUQgMQo+IHwg I2RlZmluZSBIQVZFX01QT0xfQ09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFTX1FVT1RBVjIgMQo+ IHwgI2RlZmluZSBIQVZFX0xJTlVYX1RZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1VOU0hBUkUg MQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX1RBU0tTVEFUU19IIDEKPiB8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KPiB8ICNpbmNsdWRlIDxsaW51eC90YXNrc3RhdHMuaD4KPiB8IAo+IHwgCj4gfCBp bnQKPiB8IG1haW4gKCkKPiB8IHsKPiB8IHN0YXRpYyBzdHJ1Y3QgdGFza3N0YXRzIGFjX2FnZ3I7 Cj4gfCBpZiAoc2l6ZW9mIGFjX2FnZ3IuZnJlZXBhZ2VzX2NvdW50KQo+IHwgcmV0dXJuIDA7Cj4g fCAgIDsKPiB8ICAgcmV0dXJuIDA7Cj4gfCB9Cj4gY29uZmlndXJlOjU3MDI6IHJlc3VsdDogbm8K PiBjb25maWd1cmU6NTcxMzogY2hlY2tpbmcgZm9yIHN0cnVjdCB0YXNrc3RhdHMubnZjc3cKPiBj b25maWd1cmU6NTcxMzogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gY29uZnRlc3QuYzo5MToKPiAvdXNyL2luY2x1ZGUvbGludXgvdGFza3N0YXRz Lmg6Mzc6IGVycm9yOiBleHBlY3RlZCBzcGVjaWZpZXItcXVhbGlmaWVyLWxpc3QgYmVmb3JlICdf X3UxNicKPiBjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Cj4gY29uZnRlc3QuYzo5ODog ZXJyb3I6ICdzdHJ1Y3QgdGFza3N0YXRzJyBoYXMgbm8gbWVtYmVyIG5hbWVkICdudmNzdycKPiBj b25maWd1cmU6NTcxMzogJD8gPSAxCj4gY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cj4g fCAvKiBjb25mZGVmcy5oICovCj4gfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibHRwIgo+IHwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJM VFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImx0cCBMVFBfVkVSU0lPTiIK PiB8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImx0cC1yZXN1bHRzQGxpc3RzLnNvdXJjZWZv cmdlLm5ldCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKPiB8ICNkZWZpbmUgUEFDS0FHRSAi bHRwIgo+IHwgI2RlZmluZSBWRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgWVlURVhU X1BPSU5URVIgMQo+IHwgI2RlZmluZSBTVERDX0hFQURFUlMgMQo+IHwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKPiB8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQo+IHwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQo+IHwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKPiB8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSUZBRERSU19IIDEKPiB8ICNkZWZpbmUgSEFW RV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVfTU1fSCAxCj4gfCAjZGVmaW5lIEhBVkVfUFRI UkVBRF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5l IEhBVkVfU1lTX0FDTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCj4gfCAjZGVm aW5lIEhBVkVfU1lTX0lOT1RJRllfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1NZU19DQVBBQklMSVRZX0ggMQo+IHwgI2RlZmluZSBIQVZFX0FUVFJf WEFUVFJfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQlNFVF9EUk9QIDAKPiB8ICNkZWZp bmUgSEFWRV9ERUNMX0NBUF9CU0VUX1JFQUQgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFJfQ0FQ QlNFVF9SRUFEIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9DT01QQVJFIDEKPiB8ICNkZWZp bmUgSEFWRV9ERUNMX0NBUF9GUkVFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9GUk9NX1RF WFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0dFVF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX0NBUF9TRVRfRklMRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX0ZMQUcg MQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFWRV9E RUNMX0NBUF9UT19URVhUIDEKPiB8ICNkZWZpbmUgSEFWRV9PUEVOU1NMX1NIQV9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCj4g fCAjZGVmaW5lIEhBVkVfQVNNX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJB Q0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1BUX1JFR1MgMQo+IHwgI2RlZmluZSBIQVZF X0RFQ0xfUFRSQUNFX0dFVFNJR0lORk8gMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX09f VFJBQ0VWRk9SS0RPTkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX1NFVE9QVElPTlMg MQo+IHwgI2RlZmluZSBIQVZFX1NFTElOVVhfU0VMSU5VWF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9M SUJTRUxJTlVYX0RFVkVMIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJ R0FDVElPTiAxCj4gfCAjZGVmaW5lIEhBVkVfTElCQUlPX0ggMQo+IHwgI2RlZmluZSBIQVZFX01P RElGWV9MRFQgMQo+IHwgI2RlZmluZSBIQVZFX0FTTV9MRFRfSCAxCj4gfCAjZGVmaW5lIEhBVkVf U1RSVUNUX1VTRVJfREVTQyAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5EIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01Q T0xfREVGQVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfQUREUiAxCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9NUE9MX0ZfTUVNU19BTExPV0VEIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X01QT0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4g fCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BSRUZFUlJFRCAxCj4gfCAjZGVmaW5lIEhBVkVfTVBP TF9DT05TVEFOVFMgMQo+IHwgI2RlZmluZSBIQVZFX05VTUFfSCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9BRERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01Q T0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9E RUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4g fCAjZGVmaW5lIEhBVkVfTlVNQUlGX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5E IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfREVGQVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTUVNU19BTExP V0VEIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BSRUZF UlJFRCAxCj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9DT05TVEFOVFMgMQo+IHwgI2RlZmluZSBIQVNf UVVPVEFWMiAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhB VkVfVU5TSEFSRSAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfVEFTS1NUQVRTX0ggMQo+IHwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwo+IHwgI2luY2x1ZGUgPGxpbnV4L3Rhc2tzdGF0cy5oPgo+IHwg Cj4gfCAKPiB8IGludAo+IHwgbWFpbiAoKQo+IHwgewo+IHwgc3RhdGljIHN0cnVjdCB0YXNrc3Rh dHMgYWNfYWdncjsKPiB8IGlmIChhY19hZ2dyLm52Y3N3KQo+IHwgcmV0dXJuIDA7Cj4gfCAgIDsK PiB8ICAgcmV0dXJuIDA7Cj4gfCB9Cj4gY29uZmlndXJlOjU3MTM6IGdjYyAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1Cj4gSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6OTE6Cj4gL3Vz ci9pbmNsdWRlL2xpbnV4L3Rhc2tzdGF0cy5oOjM3OiBlcnJvcjogZXhwZWN0ZWQgc3BlY2lmaWVy LXF1YWxpZmllci1saXN0IGJlZm9yZSAnX191MTYnCj4gY29uZnRlc3QuYzogSW4gZnVuY3Rpb24g J21haW4nOgo+IGNvbmZ0ZXN0LmM6OTg6IGVycm9yOiAnc3RydWN0IHRhc2tzdGF0cycgaGFzIG5v IG1lbWJlciBuYW1lZCAnbnZjc3cnCj4gY29uZmlndXJlOjU3MTM6ICQ/ID0gMQo+IGNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgo+IHwgLyogY29uZmRlZnMuaCAqLwo+IHwgI2RlZmluZSBQ QUNLQUdFX05BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsdHAiCj4gfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJsdHAgTFRQX1ZFUlNJT04iCj4gfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJs dHAtcmVzdWx0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICIiCj4gfCAjZGVmaW5lIFBBQ0tBR0UgImx0cCIKPiB8ICNkZWZpbmUgVkVSU0lPTiAiTFRQX1ZF UlNJT04iCj4gfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKPiB8ICNkZWZpbmUgU1REQ19IRUFE RVJTIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NU UklOR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lG QUREUlNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCQUlPX0ggMQo+IHwgI2RlZmluZSBIQVZFX01N X0ggMQo+IHwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhf TUVNUE9MSUNZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCj4gfCAjZGVmaW5lIEhB VkVfU1lTX0VQT0xMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19JTk9USUZZX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfQ0FQQUJJTElUWV9I IDEKPiB8ICNkZWZpbmUgSEFWRV9BVFRSX1hBVFRSX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf Q0FQX0JTRVRfRFJPUCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQlNFVF9SRUFEIDAKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX1BSX0NBUEJTRVRfUkVBRCAwCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9DQVBfQ09NUEFSRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfRlJFRSAxCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9DQVBfRlJPTV9URVhUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9H RVRfUFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX0ZJTEUgMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GTEFHIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRf UFJPQyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfVE9fVEVYVCAxCj4gfCAjZGVmaW5lIEhB VkVfT1BFTlNTTF9TSEFfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQo+IHwgI2RlZmluZSBIQVZFX0FTTV9QVFJBQ0VfSCAxCj4g fCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9Q VF9SRUdTIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9HRVRTSUdJTkZPIDEKPiB8ICNk ZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9PX1RSQUNFVkZPUktET05FIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX1BUUkFDRV9TRVRPUFRJT05TIDEKPiB8ICNkZWZpbmUgSEFWRV9TRUxJTlVYX1NFTElO VVhfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTElCU0VMSU5VWF9ERVZFTCAxCj4gfCAjZGVmaW5lIEhB VkVfU1RSVUNUX1NJR0FDVElPTl9TQV9TSUdBQ1RJT04gMQo+IHwgI2RlZmluZSBIQVZFX0xJQkFJ T19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NT0RJRllfTERUIDEKPiB8ICNkZWZpbmUgSEFWRV9BU01f TERUX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9VU0VSX0RFU0MgMQo+IHwgI2RlZmluZSBI QVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAx Cj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RF Q0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dF RCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJS RUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xfQ09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFWRV9O VU1BX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5EIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX01QT0xfREVGQVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfQUREUiAx Cj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTUVNU19BTExPV0VEIDEKPiB8ICNkZWZpbmUg SEFWRV9ERUNMX01QT0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfSU5URVJM RUFWRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BSRUZFUlJFRCAxCj4gfCAjZGVmaW5l IEhBVkVfTVBPTF9DT05TVEFOVFMgMQo+IHwgI2RlZmluZSBIQVZFX05VTUFJRl9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0RF RkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmluZSBI QVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dFRCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9M X0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJSRUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xfQ09O U1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFTX1FVT1RBVjIgMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVY X1RZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1VOU0hBUkUgMQo+IHwgI2RlZmluZSBIQVZFX0xJ TlVYX1RBU0tTVEFUU19IIDEKPiB8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KPiB8ICNpbmNsdWRl IDxsaW51eC90YXNrc3RhdHMuaD4KPiB8IAo+IHwgCj4gfCBpbnQKPiB8IG1haW4gKCkKPiB8IHsK PiB8IHN0YXRpYyBzdHJ1Y3QgdGFza3N0YXRzIGFjX2FnZ3I7Cj4gfCBpZiAoc2l6ZW9mIGFjX2Fn Z3IubnZjc3cpCj4gfCByZXR1cm4gMDsKPiB8ICAgOwo+IHwgICByZXR1cm4gMDsKPiB8IH0KPiBj b25maWd1cmU6NTcxMzogcmVzdWx0OiBubwo+IGNvbmZpZ3VyZTo1NzI0OiBjaGVja2luZyBmb3Ig c3RydWN0IHRhc2tzdGF0cy5yZWFkX2J5dGVzCj4gY29uZmlndXJlOjU3MjQ6IGdjYyAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6OTE6 Cj4gL3Vzci9pbmNsdWRlL2xpbnV4L3Rhc2tzdGF0cy5oOjM3OiBlcnJvcjogZXhwZWN0ZWQgc3Bl Y2lmaWVyLXF1YWxpZmllci1saXN0IGJlZm9yZSAnX191MTYnCj4gY29uZnRlc3QuYzogSW4gZnVu Y3Rpb24gJ21haW4nOgo+IGNvbmZ0ZXN0LmM6OTg6IGVycm9yOiAnc3RydWN0IHRhc2tzdGF0cycg aGFzIG5vIG1lbWJlciBuYW1lZCAncmVhZF9ieXRlcycKPiBjb25maWd1cmU6NTcyNDogJD8gPSAx Cj4gY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cj4gfCAvKiBjb25mZGVmcy5oICovCj4g fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgImx0cCBMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImx0cC1yZXN1bHRzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCIKPiB8ICNkZWZpbmUg UEFDS0FHRV9VUkwgIiIKPiB8ICNkZWZpbmUgUEFDS0FHRSAibHRwIgo+IHwgI2RlZmluZSBWRVJT SU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQo+IHwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQo+IHwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKPiB8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCj4gfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQo+IHwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKPiB8ICNkZWZp bmUgSEFWRV9TVFJJTkdTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCj4gfCAjZGVm aW5lIEhBVkVfSUZBRERSU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVm aW5lIEhBVkVfTU1fSCAxCj4gfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKPiB8ICNkZWZpbmUg SEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0lOT1RJRllf SCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19D QVBBQklMSVRZX0ggMQo+IHwgI2RlZmluZSBIQVZFX0FUVFJfWEFUVFJfSCAxCj4gfCAjZGVmaW5l IEhBVkVfREVDTF9DQVBfQlNFVF9EUk9QIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9CU0VU X1JFQUQgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFJfQ0FQQlNFVF9SRUFEIDAKPiB8ICNkZWZp bmUgSEFWRV9ERUNMX0NBUF9DT01QQVJFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9GUkVF IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9GUk9NX1RFWFQgMQo+IHwgI2RlZmluZSBIQVZF X0RFQ0xfQ0FQX0dFVF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfRklMRSAx Cj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX0ZMQUcgMQo+IHwgI2RlZmluZSBIQVZFX0RF Q0xfQ0FQX1NFVF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9UT19URVhUIDEKPiB8 ICNkZWZpbmUgSEFWRV9PUEVOU1NMX1NIQV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNF X0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCj4gfCAjZGVmaW5lIEhBVkVfQVNNX1BU UkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhB VkVfU1RSVUNUX1BUX1JFR1MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX0dFVFNJR0lO Rk8gMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX09fVFJBQ0VWRk9SS0RPTkUgMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX1NFVE9QVElPTlMgMQo+IHwgI2RlZmluZSBIQVZFX1NF TElOVVhfU0VMSU5VWF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJTRUxJTlVYX0RFVkVMIDEKPiB8 ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTiAxCj4gfCAjZGVmaW5l IEhBVkVfTElCQUlPX0ggMQo+IHwgI2RlZmluZSBIQVZFX01PRElGWV9MRFQgMQo+IHwgI2RlZmlu ZSBIQVZFX0FTTV9MRFRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCj4g fCAjZGVmaW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf TVBPTF9CSU5EIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfREVGQVVMVCAxCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9NUE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0Zf TUVNU19BTExPV0VEIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9OT0RFIDEKPiB8ICNk ZWZpbmUgSEFWRV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9N UE9MX1BSRUZFUlJFRCAxCj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9DT05TVEFOVFMgMQo+IHwgI2Rl ZmluZSBIQVZFX05VTUFfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01Q T0xfRl9BRERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf TVBPTF9JTlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVEIDEK PiB8ICNkZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gfCAjZGVmaW5lIEhBVkVfTlVNQUlG X0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5EIDEKPiB8ICNkZWZpbmUgSEFWRV9E RUNMX01QT0xfREVGQVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfQUREUiAxCj4g fCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTUVNU19BTExPV0VEIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX01QT0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfSU5URVJMRUFW RSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BSRUZFUlJFRCAxCj4gfCAjZGVmaW5lIEhB VkVfTVBPTF9DT05TVEFOVFMgMQo+IHwgI2RlZmluZSBIQVNfUVVPVEFWMiAxCj4gfCAjZGVmaW5l IEhBVkVfTElOVVhfVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5TSEFSRSAxCj4gfCAjZGVm aW5lIEhBVkVfTElOVVhfVEFTS1NUQVRTX0ggMQo+IHwgLyogZW5kIGNvbmZkZWZzLmguICAqLwo+ IHwgI2luY2x1ZGUgPGxpbnV4L3Rhc2tzdGF0cy5oPgo+IHwgCj4gfCAKPiB8IGludAo+IHwgbWFp biAoKQo+IHwgewo+IHwgc3RhdGljIHN0cnVjdCB0YXNrc3RhdHMgYWNfYWdncjsKPiB8IGlmIChh Y19hZ2dyLnJlYWRfYnl0ZXMpCj4gfCByZXR1cm4gMDsKPiB8ICAgOwo+IHwgICByZXR1cm4gMDsK PiB8IH0KPiBjb25maWd1cmU6NTcyNDogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPiBJ biBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzo5MToKPiAvdXNyL2luY2x1ZGUvbGludXgv dGFza3N0YXRzLmg6Mzc6IGVycm9yOiBleHBlY3RlZCBzcGVjaWZpZXItcXVhbGlmaWVyLWxpc3Qg YmVmb3JlICdfX3UxNicKPiBjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Cj4gY29uZnRl c3QuYzo5ODogZXJyb3I6ICdzdHJ1Y3QgdGFza3N0YXRzJyBoYXMgbm8gbWVtYmVyIG5hbWVkICdy ZWFkX2J5dGVzJwo+IGNvbmZpZ3VyZTo1NzI0OiAkPyA9IDEKPiBjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKPiB8IC8qIGNvbmZkZWZzLmggKi8KPiB8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJsdHAiCj4gfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibHRw IExUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibHRwLXJlc3VsdHNA bGlzdHMuc291cmNlZm9yZ2UubmV0Igo+IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgo+IHwgI2Rl ZmluZSBQQUNLQUdFICJsdHAiCj4gfCAjZGVmaW5lIFZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwg I2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCj4gfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCj4gfCAj ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCj4g fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCj4g fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQo+ IHwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9JRkFERFJTX0ggMQo+ IHwgI2RlZmluZSBIQVZFX0xJQkFJT19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NTV9IIDEKPiB8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9I IDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19FUE9M TF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfSU5PVElGWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9T WVNfUFJDVExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0NBUEFCSUxJVFlfSCAxCj4gfCAjZGVm aW5lIEhBVkVfQVRUUl9YQVRUUl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9CU0VUX0RS T1AgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfUkVBRCAwCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9QUl9DQVBCU0VUX1JFQUQgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0NPTVBB UkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZSRUUgMQo+IHwgI2RlZmluZSBIQVZFX0RF Q0xfQ0FQX0ZST01fVEVYVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfR0VUX1BST0MgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9GSUxFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X0NBUF9TRVRfRkxBRyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX1BST0MgMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1RPX1RFWFQgMQo+IHwgI2RlZmluZSBIQVZFX09QRU5TU0xf U0hBX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVf U1lTX1JFR19IIDEKPiB8ICNkZWZpbmUgSEFWRV9BU01fUFRSQUNFX0ggMQo+IHwgI2RlZmluZSBI QVZFX0xJTlVYX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfUFRfUkVHUyAxCj4g fCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfR0VUU0lHSU5GTyAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9QVFJBQ0VfT19UUkFDRVZGT1JLRE9ORSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJB Q0VfU0VUT1BUSU9OUyAxCj4gfCAjZGVmaW5lIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0ggMQo+IHwg I2RlZmluZSBIQVZFX0xJQlNFTElOVVhfREVWRUwgMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9T SUdBQ1RJT05fU0FfU0lHQUNUSU9OIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAj ZGVmaW5lIEhBVkVfTU9ESUZZX0xEVCAxCj4gfCAjZGVmaW5lIEhBVkVfQVNNX0xEVF9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9N RU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9B RERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9J TlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNk ZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gfCAjZGVmaW5lIEhBVkVfTlVNQV9IIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfQklORCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9M X0RFRkFVTFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfTVBPTF9GX01FTVNfQUxMT1dFRCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9N UE9MX0ZfTk9ERSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVGRVJSRUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xf Q09OU1RBTlRTIDEKPiB8ICNkZWZpbmUgSEFWRV9OVU1BSUZfSCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9BRERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01Q T0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9E RUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4g fCAjZGVmaW5lIEhBU19RVU9UQVYyIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9UWVBFU19IIDEK PiB8ICNkZWZpbmUgSEFWRV9VTlNIQVJFIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9UQVNLU1RB VFNfSCAxCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCj4gfCAjaW5jbHVkZSA8bGludXgvdGFz a3N0YXRzLmg+Cj4gfCAKPiB8IAo+IHwgaW50Cj4gfCBtYWluICgpCj4gfCB7Cj4gfCBzdGF0aWMg c3RydWN0IHRhc2tzdGF0cyBhY19hZ2dyOwo+IHwgaWYgKHNpemVvZiBhY19hZ2dyLnJlYWRfYnl0 ZXMpCj4gfCByZXR1cm4gMDsKPiB8ICAgOwo+IHwgICByZXR1cm4gMDsKPiB8IH0KPiBjb25maWd1 cmU6NTcyNDogcmVzdWx0OiBubwo+IGNvbmZpZ3VyZTo1NzQyOiBjaGVja2luZyB3aGV0aGVyIENM T0NLX01PTk9UT05JQ19SQVcgaXMgZGVjbGFyZWQKPiBjb25maWd1cmU6NTc0MjogZ2NjIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKPiBjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Cj4g Y29uZnRlc3QuYzoxMDI6IGVycm9yOiAnQ0xPQ0tfTU9OT1RPTklDX1JBVycgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCj4gY29uZnRlc3QuYzoxMDI6IGVycm9yOiAoRWFj aCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlCj4gY29uZnRlc3Qu YzoxMDI6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluLikKPiBjb25maWd1 cmU6NTc0MjogJD8gPSAxCj4gY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cj4gfCAvKiBj b25mZGVmcy5oICovCj4gfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImx0cCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJMVFBfVkVS U0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImx0cCBMVFBfVkVSU0lPTiIKPiB8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImx0cC1yZXN1bHRzQGxpc3RzLnNvdXJjZWZvcmdlLm5l dCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKPiB8ICNkZWZpbmUgUEFDS0FHRSAibHRwIgo+ IHwgI2RlZmluZSBWRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgWVlURVhUX1BPSU5U RVIgMQo+IHwgI2RlZmluZSBTVERDX0hFQURFUlMgMQo+IHwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQo+IHwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lOVFRZ UEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSUZBRERSU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJB SU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVfTU1fSCAxCj4gfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9I IDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVf U1lTX0FDTF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCj4gfCAjZGVmaW5lIEhB VkVfU1lTX0lOT1RJRllfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX1NZU19DQVBBQklMSVRZX0ggMQo+IHwgI2RlZmluZSBIQVZFX0FUVFJfWEFUVFJf SCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQlNFVF9EUk9QIDAKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX0NBUF9CU0VUX1JFQUQgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFJfQ0FQQlNFVF9S RUFEIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9DT01QQVJFIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX0NBUF9GUkVFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9GUk9NX1RFWFQgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0dFVF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X0NBUF9TRVRfRklMRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX0ZMQUcgMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NFVF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NB UF9UT19URVhUIDEKPiB8ICNkZWZpbmUgSEFWRV9PUEVOU1NMX1NIQV9IIDEKPiB8ICNkZWZpbmUg SEFWRV9TWVNfUFRSQUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCj4gfCAjZGVm aW5lIEhBVkVfQVNNX1BUUkFDRV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAx Cj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1BUX1JFR1MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf UFRSQUNFX0dFVFNJR0lORk8gMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX09fVFJBQ0VW Rk9SS0RPTkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX1NFVE9QVElPTlMgMQo+IHwg I2RlZmluZSBIQVZFX1NFTElOVVhfU0VMSU5VWF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJTRUxJ TlVYX0RFVkVMIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElP TiAxCj4gfCAjZGVmaW5lIEhBVkVfTElCQUlPX0ggMQo+IHwgI2RlZmluZSBIQVZFX01PRElGWV9M RFQgMQo+IHwgI2RlZmluZSBIQVZFX0FTTV9MRFRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNU X1VTRVJfREVTQyAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5EIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfREVG QVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5lIEhB VkVfREVDTF9NUE9MX0ZfTUVNU19BTExPV0VEIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xf Rl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9NUE9MX1BSRUZFUlJFRCAxCj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9DT05T VEFOVFMgMQo+IHwgI2RlZmluZSBIQVZFX05VTUFfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9N UE9MX0JJTkQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8ICNkZWZp bmUgSEFWRV9ERUNMX01QT0xfRl9BRERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9N RU1TX0FMTE9XRUQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01Q T0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gfCAjZGVm aW5lIEhBVkVfTlVNQUlGX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5EIDEKPiB8 ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfREVGQVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9N UE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTUVNU19BTExPV0VEIDEK PiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X01QT0xfSU5URVJMRUFWRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BSRUZFUlJFRCAx Cj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9DT05TVEFOVFMgMQo+IHwgI2RlZmluZSBIQVNfUVVPVEFW MiAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5T SEFSRSAxCj4gfCAjZGVmaW5lIEhBVkVfTElOVVhfVEFTS1NUQVRTX0ggMQo+IHwgLyogZW5kIGNv bmZkZWZzLmguICAqLwo+IHwgCj4gfCAjaWZuZGVmIF9HTlVfU09VUkNFCj4gfCAjZGVmaW5lIF9H TlVfU09VUkNFCj4gfCAjZW5kaWYKPiB8ICNpbmNsdWRlIDx0aW1lLmg+Cj4gfCAKPiB8IAo+IHwg aW50Cj4gfCBtYWluICgpCj4gfCB7Cj4gfCAjaWZuZGVmIENMT0NLX01PTk9UT05JQ19SQVcKPiB8 ICAgKHZvaWQpIENMT0NLX01PTk9UT05JQ19SQVc7Cj4gfCAjZW5kaWYKPiB8IAo+IHwgICA7Cj4g fCAgIHJldHVybiAwOwo+IHwgfQo+IGNvbmZpZ3VyZTo1NzQyOiByZXN1bHQ6IG5vCj4gY29uZmln dXJlOjU3NTg6IGNoZWNraW5nIHdoZXRoZXIgQ0xPQ0tfUkVBTFRJTUVfQ09BUlNFIGlzIGRlY2xh cmVkCj4gY29uZmlndXJlOjU3NTg6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cj4gY29u ZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgo+IGNvbmZ0ZXN0LmM6MTAzOiBlcnJvcjogJ0NM T0NLX1JFQUxUSU1FX0NPQVJTRScgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rp b24pCj4gY29uZnRlc3QuYzoxMDM6IGVycm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIg aXMgcmVwb3J0ZWQgb25seSBvbmNlCj4gY29uZnRlc3QuYzoxMDM6IGVycm9yOiBmb3IgZWFjaCBm dW5jdGlvbiBpdCBhcHBlYXJzIGluLikKPiBjb25maWd1cmU6NTc1ODogJD8gPSAxCj4gY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cj4gfCAvKiBjb25mZGVmcy5oICovCj4gfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImx0cCIKPiB8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgImx0cCBMVFBfVkVSU0lPTiIKPiB8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg Imx0cC1yZXN1bHRzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCIKPiB8ICNkZWZpbmUgUEFDS0FHRV9V UkwgIiIKPiB8ICNkZWZpbmUgUEFDS0FHRSAibHRwIgo+IHwgI2RlZmluZSBWRVJTSU9OICJMVFBf VkVSU0lPTiIKPiB8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQo+IHwgI2RlZmluZSBTVERDX0hF QURFUlMgMQo+IHwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCj4gfCAjZGVmaW5lIEhBVkVf U1RSSU5HX0ggMQo+IHwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQo+IHwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCj4gfCAjZGVmaW5lIEhBVkVf SUZBRERSU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVf TU1fSCAxCj4gfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5V WF9NRU1QT0xJQ1lfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKPiB8ICNkZWZpbmUg SEFWRV9TWVNfRVBPTExfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX0lOT1RJRllfSCAxCj4gfCAj ZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19DQVBBQklMSVRZ X0ggMQo+IHwgI2RlZmluZSBIQVZFX0FUVFJfWEFUVFJfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9DQVBfQlNFVF9EUk9QIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9CU0VUX1JFQUQgMAo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFJfQ0FQQlNFVF9SRUFEIDAKPiB8ICNkZWZpbmUgSEFWRV9E RUNMX0NBUF9DT01QQVJFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9GUkVFIDEKPiB8ICNk ZWZpbmUgSEFWRV9ERUNMX0NBUF9GUk9NX1RFWFQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQ X0dFVF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfRklMRSAxCj4gfCAjZGVm aW5lIEhBVkVfREVDTF9DQVBfU0VUX0ZMQUcgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX1NF VF9QUk9DIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9UT19URVhUIDEKPiB8ICNkZWZpbmUg SEFWRV9PUEVOU1NMX1NIQV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQo+IHwg I2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCj4gfCAjZGVmaW5lIEhBVkVfQVNNX1BUUkFDRV9IIDEK PiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNU X1BUX1JFR1MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX0dFVFNJR0lORk8gMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX09fVFJBQ0VWRk9SS0RPTkUgMQo+IHwgI2RlZmluZSBI QVZFX0RFQ0xfUFRSQUNFX1NFVE9QVElPTlMgMQo+IHwgI2RlZmluZSBIQVZFX1NFTElOVVhfU0VM SU5VWF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJTRUxJTlVYX0RFVkVMIDEKPiB8ICNkZWZpbmUg SEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTiAxCj4gfCAjZGVmaW5lIEhBVkVfTElC QUlPX0ggMQo+IHwgI2RlZmluZSBIQVZFX01PRElGWV9MRFQgMQo+IHwgI2RlZmluZSBIQVZFX0FT TV9MRFRfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCj4gfCAjZGVmaW5l IEhBVkVfTElOVVhfTUVNUE9MSUNZX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5E IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfREVGQVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVf REVDTF9NUE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTUVNU19BTExP V0VEIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFW RV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BSRUZF UlJFRCAxCj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9DT05TVEFOVFMgMQo+IHwgI2RlZmluZSBIQVZF X05VTUFfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmluZSBI QVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9BRERS IDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2RlZmlu ZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRF UkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZp bmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gfCAjZGVmaW5lIEhBVkVfTlVNQUlGX0ggMQo+IHwg I2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9CSU5EIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xf REVGQVVMVCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfQUREUiAxCj4gfCAjZGVmaW5l IEhBVkVfREVDTF9NUE9MX0ZfTUVNU19BTExPV0VEIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01Q T0xfRl9OT0RFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4gfCAj ZGVmaW5lIEhBVkVfREVDTF9NUE9MX1BSRUZFUlJFRCAxCj4gfCAjZGVmaW5lIEhBVkVfTVBPTF9D T05TVEFOVFMgMQo+IHwgI2RlZmluZSBIQVNfUVVPVEFWMiAxCj4gfCAjZGVmaW5lIEhBVkVfTElO VVhfVFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfVU5TSEFSRSAxCj4gfCAjZGVmaW5lIEhBVkVf TElOVVhfVEFTS1NUQVRTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xPQ0tfTU9OT1RPTklD X1JBVyAwCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCj4gfCAKPiB8ICNpZm5kZWYgX0dOVV9T T1VSQ0UKPiB8ICNkZWZpbmUgX0dOVV9TT1VSQ0UKPiB8ICNlbmRpZgo+IHwgI2luY2x1ZGUgPHRp bWUuaD4KPiB8IAo+IHwgCj4gfCBpbnQKPiB8IG1haW4gKCkKPiB8IHsKPiB8ICNpZm5kZWYgQ0xP Q0tfUkVBTFRJTUVfQ09BUlNFCj4gfCAgICh2b2lkKSBDTE9DS19SRUFMVElNRV9DT0FSU0U7Cj4g fCAjZW5kaWYKPiB8IAo+IHwgICA7Cj4gfCAgIHJldHVybiAwOwo+IHwgfQo+IGNvbmZpZ3VyZTo1 NzU4OiByZXN1bHQ6IG5vCj4gY29uZmlndXJlOjU3NzQ6IGNoZWNraW5nIHdoZXRoZXIgQ0xPQ0tf TU9OT1RPTklDX0NPQVJTRSBpcyBkZWNsYXJlZAo+IGNvbmZpZ3VyZTo1Nzc0OiBnY2MgLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQo+IGNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKPiBj b25mdGVzdC5jOjEwNDogZXJyb3I6ICdDTE9DS19NT05PVE9OSUNfQ09BUlNFJyB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKPiBjb25mdGVzdC5jOjEwNDogZXJyb3I6IChF YWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UKPiBjb25mdGVz dC5jOjEwNDogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQo+IGNvbmZp Z3VyZTo1Nzc0OiAkPyA9IDEKPiBjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKPiB8IC8q IGNvbmZkZWZzLmggKi8KPiB8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsdHAiCj4gfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAibHRwIgo+IHwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIkxUUF9W RVJTSU9OIgo+IHwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibHRwIExUUF9WRVJTSU9OIgo+IHwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibHRwLXJlc3VsdHNAbGlzdHMuc291cmNlZm9yZ2Uu bmV0Igo+IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgo+IHwgI2RlZmluZSBQQUNLQUdFICJsdHAi Cj4gfCAjZGVmaW5lIFZFUlNJT04gIkxUUF9WRVJTSU9OIgo+IHwgI2RlZmluZSBZWVRFWFRfUE9J TlRFUiAxCj4gfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCj4gfCAjZGVmaW5lIEhBVkVfTUVN T1JZX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCj4gfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQo+IHwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9JRkFERFJTX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJ QkFJT19IIDEKPiB8ICNkZWZpbmUgSEFWRV9NTV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX01FTVBPTElDWV9IIDEKPiB8ICNkZWZpbmUgSEFW RV9TWVNfQUNMX0ggMQo+IHwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKPiB8ICNkZWZpbmUg SEFWRV9TWVNfSU5PVElGWV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCj4gfCAj ZGVmaW5lIEhBVkVfU1lTX0NBUEFCSUxJVFlfSCAxCj4gfCAjZGVmaW5lIEhBVkVfQVRUUl9YQVRU Ul9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9CU0VUX0RST1AgMAo+IHwgI2RlZmluZSBI QVZFX0RFQ0xfQ0FQX0JTRVRfUkVBRCAwCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QUl9DQVBCU0VU X1JFQUQgMAo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0NPTVBBUkUgMQo+IHwgI2RlZmluZSBI QVZFX0RFQ0xfQ0FQX0ZSRUUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZST01fVEVYVCAx Cj4gfCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfR0VUX1BST0MgMQo+IHwgI2RlZmluZSBIQVZFX0RF Q0xfQ0FQX1NFVF9GSUxFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfRkxBRyAxCj4g fCAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX1BST0MgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf Q0FQX1RPX1RFWFQgMQo+IHwgI2RlZmluZSBIQVZFX09QRU5TU0xfU0hBX0ggMQo+IHwgI2RlZmlu ZSBIQVZFX1NZU19QVFJBQ0VfSCAxCj4gfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKPiB8ICNk ZWZpbmUgSEFWRV9BU01fUFRSQUNFX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9I IDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfUFRfUkVHUyAxCj4gfCAjZGVmaW5lIEhBVkVfREVD TF9QVFJBQ0VfR0VUU0lHSU5GTyAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfT19UUkFD RVZGT1JLRE9ORSAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfU0VUT1BUSU9OUyAxCj4g fCAjZGVmaW5lIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0ggMQo+IHwgI2RlZmluZSBIQVZFX0xJQlNF TElOVVhfREVWRUwgMQo+IHwgI2RlZmluZSBIQVZFX1NUUlVDVF9TSUdBQ1RJT05fU0FfU0lHQUNU SU9OIDEKPiB8ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gfCAjZGVmaW5lIEhBVkVfTU9ESUZZ X0xEVCAxCj4gfCAjZGVmaW5lIEhBVkVfQVNNX0xEVF9IIDEKPiB8ICNkZWZpbmUgSEFWRV9TVFJV Q1RfVVNFUl9ERVNDIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9NRU1QT0xJQ1lfSCAxCj4gfCAj ZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9E RUZBVUxUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9BRERSIDEKPiB8ICNkZWZpbmUg SEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBP TF9GX05PREUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9JTlRFUkxFQVZFIDEKPiB8ICNk ZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVEIDEKPiB8ICNkZWZpbmUgSEFWRV9NUE9MX0NP TlNUQU5UUyAxCj4gfCAjZGVmaW5lIEhBVkVfTlVNQV9IIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X01QT0xfQklORCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0RFRkFVTFQgMQo+IHwgI2Rl ZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9G X01FTVNfQUxMT1dFRCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0ZfTk9ERSAxCj4gfCAj ZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xf TVBPTF9QUkVGRVJSRUQgMQo+IHwgI2RlZmluZSBIQVZFX01QT0xfQ09OU1RBTlRTIDEKPiB8ICNk ZWZpbmUgSEFWRV9OVU1BSUZfSCAxCj4gfCAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+ IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNM X01QT0xfRl9BRERSIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQg MQo+IHwgI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+IHwgI2RlZmluZSBIQVZFX0RF Q0xfTVBPTF9JTlRFUkxFQVZFIDEKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVE IDEKPiB8ICNkZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gfCAjZGVmaW5lIEhBU19RVU9U QVYyIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9UWVBFU19IIDEKPiB8ICNkZWZpbmUgSEFWRV9V TlNIQVJFIDEKPiB8ICNkZWZpbmUgSEFWRV9MSU5VWF9UQVNLU1RBVFNfSCAxCj4gfCAjZGVmaW5l IEhBVkVfREVDTF9DTE9DS19NT05PVE9OSUNfUkFXIDAKPiB8ICNkZWZpbmUgSEFWRV9ERUNMX0NM T0NLX1JFQUxUSU1FX0NPQVJTRSAwCj4gfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCj4gfCAKPiB8 ICNpZm5kZWYgX0dOVV9TT1VSQ0UKPiB8ICNkZWZpbmUgX0dOVV9TT1VSQ0UKPiB8ICNlbmRpZgo+ IHwgI2luY2x1ZGUgPHRpbWUuaD4KPiB8IAo+IHwgCj4gfCBpbnQKPiB8IG1haW4gKCkKPiB8IHsK PiB8ICNpZm5kZWYgQ0xPQ0tfTU9OT1RPTklDX0NPQVJTRQo+IHwgICAodm9pZCkgQ0xPQ0tfTU9O T1RPTklDX0NPQVJTRTsKPiB8ICNlbmRpZgo+IHwgCj4gfCAgIDsKPiB8ICAgcmV0dXJuIDA7Cj4g fCB9Cj4gY29uZmlndXJlOjU3NzQ6IHJlc3VsdDogbm8KPiBjb25maWd1cmU6NTkwNzogY3JlYXRp bmcgLi9jb25maWcuc3RhdHVzCj4gCj4gIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwo+ICMj IFJ1bm5pbmcgY29uZmlnLnN0YXR1cy4gIyMKPiAjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMj Cj4gCj4gVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBsdHAgY29uZmlnLnN0YXR1cyBMVFBfVkVS U0lPTiwgd2hpY2ggd2FzCj4gZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY0LiAgSW52b2Nh dGlvbiBjb21tYW5kIGxpbmUgd2FzCj4gCj4gICBDT05GSUdfRklMRVMgICAgPSAKPiAgIENPTkZJ R19IRUFERVJTICA9IAo+ICAgQ09ORklHX0xJTktTICAgID0gCj4gICBDT05GSUdfQ09NTUFORFMg PSAKPiAgICQgLi9jb25maWcuc3RhdHVzIAo+IAo+IG9uIHN1YnJhdGFtb2Rhay5saW51eC5pYm0u Y29tCj4gCj4gY29uZmlnLnN0YXR1czo5NDY6IGNyZWF0aW5nIGluY2x1ZGUvbWsvY29uZmlnLm1r Cj4gY29uZmlnLnN0YXR1czo5NDY6IGNyZWF0aW5nIGxpYi9sdHAucGMKPiBjb25maWcuc3RhdHVz Ojk0NjogY3JlYXRpbmcgbHRwLWRldmVsLnNwZWMKPiBjb25maWcuc3RhdHVzOjk0NjogY3JlYXRp bmcgbTQvTWFrZWZpbGUKPiBjb25maWcuc3RhdHVzOjk0NjogY3JlYXRpbmcgZXhlY2x0cAo+IGNv bmZpZy5zdGF0dXM6OTQ2OiBjcmVhdGluZyBSRUFETUUubHRwLWRldmVsCj4gY29uZmlnLnN0YXR1 czo5NDY6IGNyZWF0aW5nIGluY2x1ZGUvY29uZmlnLmgKPiBjb25maWcuc3RhdHVzOjExNjY6IGV4 ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcwo+IGNvbmZpZ3VyZTo3Mjg0OiA9PT0gY29uZmlndXJp bmcgaW4gdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9saWJldmVudCAoL2hvbWUvc3VicmF0YW1v ZGFrL09GRklDRV9XT1JLUy9MVFBfUFJPSkVDVF9DT0RFL0xUUF9UQVJTL0ZFQlJVQVJZXzIwMTBf UkVMRUFTRS9sdHAtZnVsbC0yMDEwMDIyOC90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL2xpYmV2 ZW50KQo+IGNvbmZpZ3VyZTo3MzQ3OiBydW5uaW5nIC9iaW4vc2ggLi9jb25maWd1cmUgLS1kaXNh YmxlLW9wdGlvbi1jaGVja2luZyAnLS1wcmVmaXg9L29wdC9sdHAnICAtLWNhY2hlLWZpbGU9L2Rl di9udWxsIC0tc3JjZGlyPS4KPiBjb25maWd1cmU6NzI4NDogPT09IGNvbmZpZ3VyaW5nIGluIHRl c3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvcGNsbGliLyAoL2hvbWUvc3VicmF0YW1vZGFrL09GRklD RV9XT1JLUy9MVFBfUFJPSkVDVF9DT0RFL0xUUF9UQVJTL0ZFQlJVQVJZXzIwMTBfUkVMRUFTRS9s dHAtZnVsbC0yMDEwMDIyOC90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL3BjbGxpYi8pCj4gY29u ZmlndXJlOjczNDc6IHJ1bm5pbmcgL2Jpbi9zaCAuL2NvbmZpZ3VyZSAtLWRpc2FibGUtb3B0aW9u LWNoZWNraW5nICctLXByZWZpeD0vb3B0L2x0cCcgIC0tY2FjaGUtZmlsZT0vZGV2L251bGwgLS1z cmNkaXI9Lgo+IGNvbmZpZ3VyZTo3Mjg0OiA9PT0gY29uZmlndXJpbmcgaW4gdGVzdGNhc2VzL3Jl YWx0aW1lICgvaG9tZS9zdWJyYXRhbW9kYWsvT0ZGSUNFX1dPUktTL0xUUF9QUk9KRUNUX0NPREUv TFRQX1RBUlMvRkVCUlVBUllfMjAxMF9SRUxFQVNFL2x0cC1mdWxsLTIwMTAwMjI4L3Rlc3RjYXNl cy9yZWFsdGltZSkKPiBjb25maWd1cmU6NzM0NzogcnVubmluZyAvYmluL3NoIC4vY29uZmlndXJl IC0tZGlzYWJsZS1vcHRpb24tY2hlY2tpbmcgJy0tcHJlZml4PS9vcHQvbHRwJyAgLS1jYWNoZS1m aWxlPS9kZXYvbnVsbCAtLXNyY2Rpcj0uCj4gCj4gIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwo+ICMj IENhY2hlIHZhcmlhYmxlcy4gIyMKPiAjIyAtLS0tLS0tLS0tLS0tLS0tICMjCj4gCj4gYWNfY3Zf YnVpbGQ9aTY4Ni1wYy1saW51eC1nbnUKPiBhY19jdl9jX2NvbXBpbGVyX2dudT15ZXMKPiBhY19j dl9lbnZfQ0Nfc2V0PQo+IGFjX2N2X2Vudl9DQ192YWx1ZT0KPiBhY19jdl9lbnZfQ0ZMQUdTX3Nl dD0KPiBhY19jdl9lbnZfQ0ZMQUdTX3ZhbHVlPQo+IGFjX2N2X2Vudl9DUFBGTEFHU19zZXQ9Cj4g YWNfY3ZfZW52X0NQUEZMQUdTX3ZhbHVlPQo+IGFjX2N2X2Vudl9DUFBfc2V0PQo+IGFjX2N2X2Vu dl9DUFBfdmFsdWU9Cj4gYWNfY3ZfZW52X0xERkxBR1Nfc2V0PQo+IGFjX2N2X2Vudl9MREZMQUdT X3ZhbHVlPQo+IGFjX2N2X2Vudl9MSUJTX3NldD0KPiBhY19jdl9lbnZfTElCU192YWx1ZT0KPiBh Y19jdl9lbnZfWUFDQ19zZXQ9Cj4gYWNfY3ZfZW52X1lBQ0NfdmFsdWU9Cj4gYWNfY3ZfZW52X1lG TEFHU19zZXQ9Cj4gYWNfY3ZfZW52X1lGTEFHU192YWx1ZT0KPiBhY19jdl9lbnZfYnVpbGRfYWxp YXNfc2V0PQo+IGFjX2N2X2Vudl9idWlsZF9hbGlhc192YWx1ZT0KPiBhY19jdl9lbnZfaG9zdF9h bGlhc19zZXQ9Cj4gYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9Cj4gYWNfY3ZfZW52X3Rhcmdl dF9hbGlhc19zZXQ9Cj4gYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0KPiBhY19jdl9mdW5j X21vZGlmeV9sZHQ9eWVzCj4gYWNfY3ZfZnVuY19udW1hX2FsbG9jX29ubm9kZT1ubwo+IGFjX2N2 X2Z1bmNfc2lnbmFsZmQ9bm8KPiBhY19jdl9mdW5jX3Vuc2hhcmU9eWVzCj4gYWNfY3ZfaGF2ZV9k ZWNsX0NBUF9CU0VUX0RST1A9bm8KPiBhY19jdl9oYXZlX2RlY2xfQ0FQX0JTRVRfUkVBRD1ubwo+ IGFjX2N2X2hhdmVfZGVjbF9DTE9DS19NT05PVE9OSUNfQ09BUlNFPW5vCj4gYWNfY3ZfaGF2ZV9k ZWNsX0NMT0NLX01PTk9UT05JQ19SQVc9bm8KPiBhY19jdl9oYXZlX2RlY2xfQ0xPQ0tfUkVBTFRJ TUVfQ09BUlNFPW5vCj4gYWNfY3ZfaGF2ZV9kZWNsX01QT0xfQklORD15ZXMKPiBhY19jdl9oYXZl X2RlY2xfTVBPTF9ERUZBVUxUPXllcwo+IGFjX2N2X2hhdmVfZGVjbF9NUE9MX0ZfQUREUj15ZXMK PiBhY19jdl9oYXZlX2RlY2xfTVBPTF9GX01FTVNfQUxMT1dFRD15ZXMKPiBhY19jdl9oYXZlX2Rl Y2xfTVBPTF9GX05PREU9eWVzCj4gYWNfY3ZfaGF2ZV9kZWNsX01QT0xfSU5URVJMRUFWRT15ZXMK PiBhY19jdl9oYXZlX2RlY2xfTVBPTF9QUkVGRVJSRUQ9eWVzCj4gYWNfY3ZfaGF2ZV9kZWNsX1BS X0NBUEJTRVRfUkVBRD1ubwo+IGFjX2N2X2hhdmVfZGVjbF9QVFJBQ0VfR0VUU0lHSU5GTz15ZXMK PiBhY19jdl9oYXZlX2RlY2xfUFRSQUNFX09fVFJBQ0VWRk9SS0RPTkU9eWVzCj4gYWNfY3ZfaGF2 ZV9kZWNsX1BUUkFDRV9TRVRPUFRJT05TPXllcwo+IGFjX2N2X2hhdmVfZGVjbF9jYXBfY29tcGFy ZT15ZXMKPiBhY19jdl9oYXZlX2RlY2xfY2FwX2ZyZWU9eWVzCj4gYWNfY3ZfaGF2ZV9kZWNsX2Nh cF9mcm9tX3RleHQ9eWVzCj4gYWNfY3ZfaGF2ZV9kZWNsX2NhcF9nZXRfcHJvYz15ZXMKPiBhY19j dl9oYXZlX2RlY2xfY2FwX3NldF9maWxlPXllcwo+IGFjX2N2X2hhdmVfZGVjbF9jYXBfc2V0X2Zs YWc9eWVzCj4gYWNfY3ZfaGF2ZV9kZWNsX2NhcF9zZXRfcHJvYz15ZXMKPiBhY19jdl9oYXZlX2Rl Y2xfY2FwX3RvX3RleHQ9eWVzCj4gYWNfY3ZfaGVhZGVyX2FzbV9sZHRfaD15ZXMKPiBhY19jdl9o ZWFkZXJfYXNtX3B0cmFjZV9oPXllcwo+IGFjX2N2X2hlYWRlcl9hdHRyX3hhdHRyX2g9eWVzCj4g YWNfY3ZfaGVhZGVyX2RtYXBpX2g9bm8KPiBhY19jdl9oZWFkZXJfaWZhZGRyc19oPXllcwo+IGFj X2N2X2hlYWRlcl9pbnR0eXBlc19oPXllcwo+IGFjX2N2X2hlYWRlcl9saWJhaW9faD15ZXMKPiBh Y19jdl9oZWFkZXJfbGludXhfZ2VuZXRsaW5rX2g9bm8KPiBhY19jdl9oZWFkZXJfbGludXhfbWVt cG9saWN5X2g9eWVzCj4gYWNfY3ZfaGVhZGVyX2xpbnV4X21vZHVsZV9oPW5vCj4gYWNfY3ZfaGVh ZGVyX2xpbnV4X25ldGxpbmtfaD1ubwo+IGFjX2N2X2hlYWRlcl9saW51eF9wdHJhY2VfaD15ZXMK PiBhY19jdl9oZWFkZXJfbGludXhfc2lnbmFsZmRfaD1ubwo+IGFjX2N2X2hlYWRlcl9saW51eF90 YXNrc3RhdHNfaD15ZXMKPiBhY19jdl9oZWFkZXJfbGludXhfdHlwZXNfaD15ZXMKPiBhY19jdl9o ZWFkZXJfbWVtb3J5X2g9eWVzCj4gYWNfY3ZfaGVhZGVyX21tX2g9eWVzCj4gYWNfY3ZfaGVhZGVy X251bWFfaD15ZXMKPiBhY19jdl9oZWFkZXJfbnVtYWlmX2g9eWVzCj4gYWNfY3ZfaGVhZGVyX29w ZW5zc2xfc2hhX2g9eWVzCj4gYWNfY3ZfaGVhZGVyX3B0aHJlYWRfaD15ZXMKPiBhY19jdl9oZWFk ZXJfc2VsaW51eF9zZWxpbnV4X2g9eWVzCj4gYWNfY3ZfaGVhZGVyX3NpZ25hbGZkX2g9bm8KPiBh Y19jdl9oZWFkZXJfc3RkYz15ZXMKPiBhY19jdl9oZWFkZXJfc3RkaW50X2g9eWVzCj4gYWNfY3Zf aGVhZGVyX3N0ZGxpYl9oPXllcwo+IGFjX2N2X2hlYWRlcl9zdHJpbmdfaD15ZXMKPiBhY19jdl9o ZWFkZXJfc3RyaW5nc19oPXllcwo+IGFjX2N2X2hlYWRlcl9zeXNfYWNsX2g9eWVzCj4gYWNfY3Zf aGVhZGVyX3N5c19jYXBhYmlsaXR5X2g9eWVzCj4gYWNfY3ZfaGVhZGVyX3N5c19lcG9sbF9oPXll cwo+IGFjX2N2X2hlYWRlcl9zeXNfaW5vdGlmeV9oPXllcwo+IGFjX2N2X2hlYWRlcl9zeXNfamZz ZG1hcGlfaD1ubwo+IGFjX2N2X2hlYWRlcl9zeXNfcHJjdGxfaD15ZXMKPiBhY19jdl9oZWFkZXJf c3lzX3B0cmFjZV9oPXllcwo+IGFjX2N2X2hlYWRlcl9zeXNfcmVnX2g9eWVzCj4gYWNfY3ZfaGVh ZGVyX3N5c19zaWduYWxmZF9oPW5vCj4gYWNfY3ZfaGVhZGVyX3N5c19zdGF0X2g9eWVzCj4gYWNf Y3ZfaGVhZGVyX3N5c190eXBlc19oPXllcwo+IGFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKPiBh Y19jdl9ob3N0PWk2ODYtcGMtbGludXgtZ251Cj4gYWNfY3ZfbGliX2Fpb19pb19zZXR1cD15ZXMK PiBhY19jdl9saWJfY2FwX2NhcF9jb21wYXJlPXllcwo+IGFjX2N2X2xpYl9jYXBfY2FwX2ZyZWU9 eWVzCj4gYWNfY3ZfbGliX2NhcF9jYXBfZnJvbV90ZXh0PXllcwo+IGFjX2N2X2xpYl9jYXBfY2Fw X3NldF9wcm9jPXllcwo+IGFjX2N2X2xpYl9sZXg9LWxmbAo+IGFjX2N2X2xpYl9udW1hX251bWFf YXZhaWxhYmxlPXllcwo+IGFjX2N2X2xpYl9zZWxpbnV4X2lzX3NlbGludXhfZW5hYmxlZD15ZXMK PiBhY19jdl9tZW1iZXJfc3RydWN0X3NpZ2FjdGlvbl9zYV9zaWdhY3Rpb249eWVzCj4gYWNfY3Zf bWVtYmVyX3N0cnVjdF90YXNrc3RhdHNfZnJlZXBhZ2VzX2NvdW50PW5vCj4gYWNfY3ZfbWVtYmVy X3N0cnVjdF90YXNrc3RhdHNfbnZjc3c9bm8KPiBhY19jdl9tZW1iZXJfc3RydWN0X3Rhc2tzdGF0 c19yZWFkX2J5dGVzPW5vCj4gYWNfY3Zfb2JqZXh0PW8KPiBhY19jdl9wYXRoX0VHUkVQPScvYmlu L2dyZXAgLUUnCj4gYWNfY3ZfcGF0aF9HUkVQPS9iaW4vZ3JlcAo+IGFjX2N2X3BhdGhfaW5zdGFs bD0nL3Vzci9iaW4vaW5zdGFsbCAtYycKPiBhY19jdl9wYXRoX21rZGlyPS9iaW4vbWtkaXIKPiBh Y19jdl9wcm9nX0FXSz1nYXdrCj4gYWNfY3ZfcHJvZ19DUFA9J2djYyAtRScKPiBhY19jdl9wcm9n X0xFWD1mbGV4Cj4gYWNfY3ZfcHJvZ19ZQUNDPSdiaXNvbiAteScKPiBhY19jdl9wcm9nX2FjX2N0 X0FSPWFyCj4gYWNfY3ZfcHJvZ19hY19jdF9DQz1nY2MKPiBhY19jdl9wcm9nX2FjX2N0X1JBTkxJ Qj1yYW5saWIKPiBhY19jdl9wcm9nX2FjX2N0X1NUUklQPXN0cmlwCj4gYWNfY3ZfcHJvZ19jY19j ODk9Cj4gYWNfY3ZfcHJvZ19jY19nPXllcwo+IGFjX2N2X3Byb2dfbGV4X3Jvb3Q9bGV4Lnl5Cj4g YWNfY3ZfcHJvZ19sZXhfeXl0ZXh0X3BvaW50ZXI9eWVzCj4gYWNfY3ZfcHJvZ19tYWtlX21ha2Vf c2V0PXllcwo+IGFjX2N2X3R5cGVfc3RydWN0X21vZGlmeV9sZHRfbGR0X3M9bm8KPiBhY19jdl90 eXBlX3N0cnVjdF9wdF9yZWdzPXllcwo+IGFjX2N2X3R5cGVfc3RydWN0X3VzZXJfZGVzYz15ZXMK PiBhY19jdl90eXBlX3N0cnVjdF91c2VyX3JlZ3Nfc3RydWN0PW5vCj4gYW1fY3ZfQ0NfZGVwZW5k ZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQo+IAo+ICMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCj4g IyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKPiAjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwo+IAo+IEFD TE9DQUw9JyR7U0hFTEx9IC9ob21lL3N1YnJhdGFtb2Rhay9PRkZJQ0VfV09SS1MvTFRQX1BST0pF Q1RfQ09ERS9MVFBfVEFSUy9GRUJSVUFSWV8yMDEwX1JFTEVBU0UvbHRwLWZ1bGwtMjAxMDAyMjgv bWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuMTAnCj4gQUlPX0xJQlM9Jy1sYWlvJwo+IEFNREVQQkFD S1NMQVNIPSdcJwo+IEFNREVQX0ZBTFNFPScjJwo+IEFNREVQX1RSVUU9JycKPiBBTVRBUj0nJHtT SEVMTH0gL2hvbWUvc3VicmF0YW1vZGFrL09GRklDRV9XT1JLUy9MVFBfUFJPSkVDVF9DT0RFL0xU UF9UQVJTL0ZFQlJVQVJZXzIwMTBfUkVMRUFTRS9sdHAtZnVsbC0yMDEwMDIyOC9taXNzaW5nIC0t cnVuIHRhcicKPiBBUj0nYXInCj4gQVVUT0NPTkY9JyR7U0hFTEx9IC9ob21lL3N1YnJhdGFtb2Rh ay9PRkZJQ0VfV09SS1MvTFRQX1BST0pFQ1RfQ09ERS9MVFBfVEFSUy9GRUJSVUFSWV8yMDEwX1JF TEVBU0UvbHRwLWZ1bGwtMjAxMDAyMjgvbWlzc2luZyAtLXJ1biBhdXRvY29uZicKPiBBVVRPSEVB REVSPScke1NIRUxMfSAvaG9tZS9zdWJyYXRhbW9kYWsvT0ZGSUNFX1dPUktTL0xUUF9QUk9KRUNU X0NPREUvTFRQX1RBUlMvRkVCUlVBUllfMjAxMF9SRUxFQVNFL2x0cC1mdWxsLTIwMTAwMjI4L21p c3NpbmcgLS1ydW4gYXV0b2hlYWRlcicKPiBBVVRPTUFLRT0nJHtTSEVMTH0gL2hvbWUvc3VicmF0 YW1vZGFrL09GRklDRV9XT1JLUy9MVFBfUFJPSkVDVF9DT0RFL0xUUF9UQVJTL0ZFQlJVQVJZXzIw MTBfUkVMRUFTRS9sdHAtZnVsbC0yMDEwMDIyOC9taXNzaW5nIC0tcnVuIGF1dG9tYWtlLTEuMTAn Cj4gQVdLPSdnYXdrJwo+IENBUF9MSUJTPSctbGNhcCcKPiBDQz0nZ2NjJwo+IENDREVQTU9ERT0n ZGVwbW9kZT1ub25lJwo+IENGTEFHUz0nLWcgLU8yJwo+IENQUD0nZ2NjIC1FJwo+IENQUEZMQUdT PScnCj4gQ1JPU1NfQ09NUElMQVRJT05fRkFMU0U9JycKPiBDUk9TU19DT01QSUxBVElPTl9UUlVF PScjJwo+IENSWVBUT19MSUJTPSctbGNyeXB0bycKPiBDWUdQQVRIX1c9J2VjaG8nCj4gREVGUz0n LURIQVZFX0NPTkZJR19IJwo+IERFUERJUj0nLmRlcHMnCj4gRUNIT19DPScnCj4gRUNIT19OPSct bicKPiBFQ0hPX1Q9JycKPiBFR1JFUD0nL2Jpbi9ncmVwIC1FJwo+IEVYRUVYVD0nJwo+IEdSRVA9 Jy9iaW4vZ3JlcCcKPiBJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0Jwo+IElOU1RBTExf UFJPR1JBTT0nJHtJTlNUQUxMfScKPiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKPiBJTlNU QUxMX1NUUklQX1BST0dSQU09JyQoaW5zdGFsbF9zaCkgLWMgLXMnCj4gTERGTEFHUz0nJwo+IExF WD0nZmxleCcKPiBMRVhMSUI9Jy1sZmwnCj4gTEVYX09VVFBVVF9ST09UPSdsZXgueXknCj4gTElC T0JKUz0nJwo+IExJQlM9JycKPiBMVExJQk9CSlM9JycKPiBNQUtFSU5GTz0nJHtTSEVMTH0gL2hv bWUvc3VicmF0YW1vZGFrL09GRklDRV9XT1JLUy9MVFBfUFJPSkVDVF9DT0RFL0xUUF9UQVJTL0ZF QlJVQVJZXzIwMTBfUkVMRUFTRS9sdHAtZnVsbC0yMDEwMDIyOC9taXNzaW5nIC0tcnVuIG1ha2Vp bmZvJwo+IE1LRElSX1A9Jy9iaW4vbWtkaXIgLXAnCj4gTlVNQV9DUFBGTEFHUz0nLUROVU1BX1ZF UlNJT04xX0NPTVBBVElCSUxJVFknCj4gTlVNQV9MSUJTPSctbG51bWEnCj4gT0JKRVhUPSdvJwo+ IFBBQ0tBR0U9J2x0cCcKPiBQQUNLQUdFX0JVR1JFUE9SVD0nbHRwLXJlc3VsdHNAbGlzdHMuc291 cmNlZm9yZ2UubmV0Jwo+IFBBQ0tBR0VfTkFNRT0nbHRwJwo+IFBBQ0tBR0VfU1RSSU5HPSdsdHAg TFRQX1ZFUlNJT04nCj4gUEFDS0FHRV9UQVJOQU1FPSdsdHAnCj4gUEFDS0FHRV9VUkw9JycKPiBQ QUNLQUdFX1ZFUlNJT049J0xUUF9WRVJTSU9OJwo+IFBBVEhfU0VQQVJBVE9SPSc6Jwo+IFJBTkxJ Qj0ncmFubGliJwo+IFNFTElOVVhfTElCUz0nLWxzZWxpbnV4Jwo+IFNFVF9NQUtFPScnCj4gU0hF TEw9Jy9iaW4vc2gnCj4gU1RSSVA9J3N0cmlwJwo+IFZFUlNJT049J0xUUF9WRVJTSU9OJwo+IFlB Q0M9J2Jpc29uIC15Jwo+IFlGTEFHUz0nJwo+IGFjX2N0X0NDPSdnY2MnCj4gYW1fX2Zhc3RkZXBD Q19GQUxTRT0nJwo+IGFtX19mYXN0ZGVwQ0NfVFJVRT0nIycKPiBhbV9faW5jbHVkZT0naW5jbHVk ZScKPiBhbV9faXNyYz0nJwo+IGFtX19sZWFkaW5nX2RvdD0nLicKPiBhbV9fcXVvdGU9JycKPiBh bV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIicKPiBhbV9fdW50YXI9JyR7QU1UQVJ9 IHhmIC0nCj4gYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCj4gYnVpbGQ9J2k2ODYtcGMtbGlu dXgtZ251Jwo+IGJ1aWxkX2FsaWFzPScnCj4gYnVpbGRfY3B1PSdpNjg2Jwo+IGJ1aWxkX29zPSds aW51eC1nbnUnCj4gYnVpbGRfdmVuZG9yPSdwYycKPiBkYXRhZGlyPScke2RhdGFyb290ZGlyfScK PiBkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwo+IGRvY2Rpcj0nJHtkYXRhcm9vdGRpcn0v ZG9jLyR7UEFDS0FHRV9UQVJOQU1FfScKPiBkdmlkaXI9JyR7ZG9jZGlyfScKPiBleGVjX3ByZWZp eD0nJHtwcmVmaXh9Jwo+IGhvc3Q9J2k2ODYtcGMtbGludXgtZ251Jwo+IGhvc3RfYWxpYXM9JycK PiBob3N0X2NwdT0naTY4NicKPiBob3N0X29zPSdsaW51eC1nbnUnCj4gaG9zdF92ZW5kb3I9J3Bj Jwo+IGh0bWxkaXI9JyR7ZG9jZGlyfScKPiBpbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScK PiBpbmZvZGlyPScke2RhdGFyb290ZGlyfS9pbmZvJwo+IGluc3RhbGxfc2g9JyQoU0hFTEwpIC9o b21lL3N1YnJhdGFtb2Rhay9PRkZJQ0VfV09SS1MvTFRQX1BST0pFQ1RfQ09ERS9MVFBfVEFSUy9G RUJSVUFSWV8yMDEwX1JFTEVBU0UvbHRwLWZ1bGwtMjAxMDAyMjgvaW5zdGFsbC1zaCcKPiBsaWJk aXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKPiBsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJl eGVjJwo+IGxvY2FsZWRpcj0nJHtkYXRhcm9vdGRpcn0vbG9jYWxlJwo+IGxvY2Fsc3RhdGVkaXI9 JyR7cHJlZml4fS92YXInCj4gbWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCj4gbWtkaXJfcD0n L2Jpbi9ta2RpciAtcCcKPiBvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUnCj4gcGRmZGlyPSck e2RvY2Rpcn0nCj4gcHJlZml4PScvb3B0L2x0cCcKPiBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSdz LHgseCwnCj4gcHNkaXI9JyR7ZG9jZGlyfScKPiBzYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmlu Jwo+IHNoYXJlZHN0YXRlZGlyPScke3ByZWZpeH0vY29tJwo+IHN1YmRpcnM9JyB0ZXN0Y2FzZXMv a2VybmVsL3N5c2NhbGxzL2xpYmV2ZW50IHRlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvcGNsbGli LyB0ZXN0Y2FzZXMvcmVhbHRpbWUnCj4gc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKPiB0YXJn ZXRfYWxpYXM9JycKPiAKPiAjIyAtLS0tLS0tLS0tLSAjIwo+ICMjIGNvbmZkZWZzLmguICMjCj4g IyMgLS0tLS0tLS0tLS0gIyMKPiAKPiAvKiBjb25mZGVmcy5oICovCj4gI2RlZmluZSBQQUNLQUdF X05BTUUgImx0cCIKPiAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibHRwIgo+ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICJMVFBfVkVSU0lPTiIKPiAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsdHAg TFRQX1ZFUlNJT04iCj4gI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibHRwLXJlc3VsdHNAbGlz dHMuc291cmNlZm9yZ2UubmV0Igo+ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKPiAjZGVmaW5lIFBB Q0tBR0UgImx0cCIKPiAjZGVmaW5lIFZFUlNJT04gIkxUUF9WRVJTSU9OIgo+ICNkZWZpbmUgWVlU RVhUX1BPSU5URVIgMQo+ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKPiAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQo+ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKPiAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQo+ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCj4gI2RlZmluZSBIQVZFX01FTU9SWV9I IDEKPiAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKPiAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx Cj4gI2RlZmluZSBIQVZFX1NURElOVF9IIDEKPiAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQo+ICNk ZWZpbmUgSEFWRV9JRkFERFJTX0ggMQo+ICNkZWZpbmUgSEFWRV9MSUJBSU9fSCAxCj4gI2RlZmlu ZSBIQVZFX01NX0ggMQo+ICNkZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQo+ICNkZWZpbmUgSEFWRV9M SU5VWF9NRU1QT0xJQ1lfSCAxCj4gI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCj4gI2RlZmluZSBI QVZFX1NZU19FUE9MTF9IIDEKPiAjZGVmaW5lIEhBVkVfU1lTX0lOT1RJRllfSCAxCj4gI2RlZmlu ZSBIQVZFX1NZU19QUkNUTF9IIDEKPiAjZGVmaW5lIEhBVkVfU1lTX0NBUEFCSUxJVFlfSCAxCj4g I2RlZmluZSBIQVZFX0FUVFJfWEFUVFJfSCAxCj4gI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRf RFJPUCAwCj4gI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0JTRVRfUkVBRCAwCj4gI2RlZmluZSBIQVZF X0RFQ0xfUFJfQ0FQQlNFVF9SRUFEIDAKPiAjZGVmaW5lIEhBVkVfREVDTF9DQVBfQ09NUEFSRSAx Cj4gI2RlZmluZSBIQVZFX0RFQ0xfQ0FQX0ZSRUUgMQo+ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9G Uk9NX1RFWFQgMQo+ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9HRVRfUFJPQyAxCj4gI2RlZmluZSBI QVZFX0RFQ0xfQ0FQX1NFVF9GSUxFIDEKPiAjZGVmaW5lIEhBVkVfREVDTF9DQVBfU0VUX0ZMQUcg MQo+ICNkZWZpbmUgSEFWRV9ERUNMX0NBUF9TRVRfUFJPQyAxCj4gI2RlZmluZSBIQVZFX0RFQ0xf Q0FQX1RPX1RFWFQgMQo+ICNkZWZpbmUgSEFWRV9PUEVOU1NMX1NIQV9IIDEKPiAjZGVmaW5lIEhB VkVfU1lTX1BUUkFDRV9IIDEKPiAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKPiAjZGVmaW5lIEhB VkVfQVNNX1BUUkFDRV9IIDEKPiAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQo+ICNkZWZp bmUgSEFWRV9TVFJVQ1RfUFRfUkVHUyAxCj4gI2RlZmluZSBIQVZFX0RFQ0xfUFRSQUNFX0dFVFNJ R0lORk8gMQo+ICNkZWZpbmUgSEFWRV9ERUNMX1BUUkFDRV9PX1RSQUNFVkZPUktET05FIDEKPiAj ZGVmaW5lIEhBVkVfREVDTF9QVFJBQ0VfU0VUT1BUSU9OUyAxCj4gI2RlZmluZSBIQVZFX1NFTElO VVhfU0VMSU5VWF9IIDEKPiAjZGVmaW5lIEhBVkVfTElCU0VMSU5VWF9ERVZFTCAxCj4gI2RlZmlu ZSBIQVZFX1NUUlVDVF9TSUdBQ1RJT05fU0FfU0lHQUNUSU9OIDEKPiAjZGVmaW5lIEhBVkVfTElC QUlPX0ggMQo+ICNkZWZpbmUgSEFWRV9NT0RJRllfTERUIDEKPiAjZGVmaW5lIEhBVkVfQVNNX0xE VF9IIDEKPiAjZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCj4gI2RlZmluZSBIQVZFX0xJ TlVYX01FTVBPTElDWV9IIDEKPiAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+ICNkZWZp bmUgSEFWRV9ERUNMX01QT0xfREVGQVVMVCAxCj4gI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FE RFIgMQo+ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQgMQo+ICNkZWZpbmUg SEFWRV9ERUNMX01QT0xfRl9OT0RFIDEKPiAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVB VkUgMQo+ICNkZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVEIDEKPiAjZGVmaW5lIEhBVkVf TVBPTF9DT05TVEFOVFMgMQo+ICNkZWZpbmUgSEFWRV9OVU1BX0ggMQo+ICNkZWZpbmUgSEFWRV9E RUNMX01QT0xfQklORCAxCj4gI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9ERUZBVUxUIDEKPiAjZGVm aW5lIEhBVkVfREVDTF9NUE9MX0ZfQUREUiAxCj4gI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX01F TVNfQUxMT1dFRCAxCj4gI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX05PREUgMQo+ICNkZWZpbmUg SEFWRV9ERUNMX01QT0xfSU5URVJMRUFWRSAxCj4gI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9QUkVG RVJSRUQgMQo+ICNkZWZpbmUgSEFWRV9NUE9MX0NPTlNUQU5UUyAxCj4gI2RlZmluZSBIQVZFX05V TUFJRl9IIDEKPiAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0JJTkQgMQo+ICNkZWZpbmUgSEFWRV9E RUNMX01QT0xfREVGQVVMVCAxCj4gI2RlZmluZSBIQVZFX0RFQ0xfTVBPTF9GX0FERFIgMQo+ICNk ZWZpbmUgSEFWRV9ERUNMX01QT0xfRl9NRU1TX0FMTE9XRUQgMQo+ICNkZWZpbmUgSEFWRV9ERUNM X01QT0xfRl9OT0RFIDEKPiAjZGVmaW5lIEhBVkVfREVDTF9NUE9MX0lOVEVSTEVBVkUgMQo+ICNk ZWZpbmUgSEFWRV9ERUNMX01QT0xfUFJFRkVSUkVEIDEKPiAjZGVmaW5lIEhBVkVfTVBPTF9DT05T VEFOVFMgMQo+ICNkZWZpbmUgSEFTX1FVT1RBVjIgMQo+ICNkZWZpbmUgSEFWRV9MSU5VWF9UWVBF U19IIDEKPiAjZGVmaW5lIEhBVkVfVU5TSEFSRSAxCj4gI2RlZmluZSBIQVZFX0xJTlVYX1RBU0tT VEFUU19IIDEKPiAjZGVmaW5lIEhBVkVfREVDTF9DTE9DS19NT05PVE9OSUNfUkFXIDAKPiAjZGVm aW5lIEhBVkVfREVDTF9DTE9DS19SRUFMVElNRV9DT0FSU0UgMAo+ICNkZWZpbmUgSEFWRV9ERUNM X0NMT0NLX01PTk9UT05JQ19DT0FSU0UgMAo+IAo+IGNvbmZpZ3VyZTogZXhpdCAwCgo+IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQo+IERvd25sb2FkIEludGVsJiMxNzQ7IFBhcmFsbGVsIFN0dWRpbyBF dmFsCj4gVHJ5IHRoZSBuZXcgc29mdHdhcmUgdG9vbHMgZm9yIHlvdXJzZWxmLiBTcGVlZCBjb21w aWxpbmcsIGZpbmQgYnVncwo+IHByb2FjdGl2ZWx5LCBhbmQgZmluZS10dW5lIGFwcGxpY2F0aW9u cyBmb3IgcGFyYWxsZWwgcGVyZm9ybWFuY2UuCj4gU2VlIHdoeSBJbnRlbCBQYXJhbGxlbCBTdHVk aW8gZ290IGhpZ2ggbWFya3MgZHVyaW5nIGJldGEuCj4gaHR0cDovL3Auc2YubmV0L3NmdS9pbnRl bC1zdy1kZXYKCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiBMdHAtbGlzdCBtYWlsaW5nIGxpc3QKPiBMdHAtbGlzdEBsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQKPiBodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9sdHAtbGlz dAoKCi0tIApUaGFua3MgJiBSZWdhcmRzClJpc2hpCkxUUCBNYWludGFpbmVyCklCTSwgTFRDLCBC YW5nYWxvcmUKUGxlYXNlIGpvaW4gSVJDICNsdHAgQCBpcmMuZnJlZW5vZGUubmV0CgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KRG93bmxvYWQgSW50ZWwmIzE3NDsgUGFyYWxsZWwgU3R1ZGlvIEV2YWwK VHJ5IHRoZSBuZXcgc29mdHdhcmUgdG9vbHMgZm9yIHlvdXJzZWxmLiBTcGVlZCBjb21waWxpbmcs IGZpbmQgYnVncwpwcm9hY3RpdmVseSwgYW5kIGZpbmUtdHVuZSBhcHBsaWNhdGlvbnMgZm9yIHBh cmFsbGVsIHBlcmZvcm1hbmNlLgpTZWUgd2h5IEludGVsIFBhcmFsbGVsIFN0dWRpbyBnb3QgaGln aCBtYXJrcyBkdXJpbmcgYmV0YS4KaHR0cDovL3Auc2YubmV0L3NmdS9pbnRlbC1zdy1kZXYKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTHRwLWxpc3QgbWFp bGluZyBsaXN0Ckx0cC1saXN0QGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNv dXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9sdHAtbGlzdAo=